summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2011-11-22 13:54:50 -0800
committerGerrit <chrome-bot@google.com>2011-11-22 14:20:52 -0800
commit8e85e987739281161ece1dbc9ff2b73f3e8e1e35 (patch)
tree7cba63b23f20b688884d91b79fd7b1323b89c9b2
parent7272a6951107251a5c9b26330c506319a92a54b3 (diff)
downloadvboot-8e85e987739281161ece1dbc9ff2b73f3e8e1e35.tar.gz
Revert "Revert "Add x86_64 architecture support""
This reverts commit 354630570900cd5c2180610acfa47422ff484fe6 Change-Id: I832a675911f66837f31ea47d19babf5c656bfaf9 Reviewed-on: https://gerrit.chromium.org/gerrit/12044 Commit-Ready: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Simon Glass <sjg@chromium.org>
-rw-r--r--Makefile4
-rw-r--r--firmware/arch/x86_64/include/biosincludes.h46
2 files changed, 50 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 7652bde8..19b91d52 100644
--- a/Makefile
+++ b/Makefile
@@ -38,6 +38,10 @@ CFLAGS ?= \
-mpreferred-stack-boundary=2 -mregparm=3 \
$(COMMON_FLAGS)
endif
+ifeq ($(FIRMWARE_ARCH), x86_64)
+CFLAGS ?= $(COMMON_FLAGS) \
+ -fvisibility=hidden -fno-strict-aliasing -fomit-frame-pointer
+endif
CC ?= gcc
CXX ?= g++
diff --git a/firmware/arch/x86_64/include/biosincludes.h b/firmware/arch/x86_64/include/biosincludes.h
new file mode 100644
index 00000000..59bf931c
--- /dev/null
+++ b/firmware/arch/x86_64/include/biosincludes.h
@@ -0,0 +1,46 @@
+/* Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ *
+ * X86 firmware platform-specific definitions
+ */
+
+#ifndef __ARCH_X86_BIOSINCLUDES_H__
+#define __ARCH_X86_BIOSINCLUDES_H__
+
+typedef unsigned char uint8_t;
+typedef unsigned short int uint16_t;
+typedef unsigned int uint32_t;
+typedef unsigned long long uint64_t;
+typedef signed long long int64_t;
+typedef unsigned long size_t;
+
+#ifndef NULL
+#define NULL ((void*) 0)
+#endif
+
+#define UINT32_C(x) ((uint32_t) x)
+#define UINT64_C(x) ((uint64_t) x)
+#define PRIu64 "llu"
+extern void debug(const char *format, ...);
+
+#define POSSIBLY_UNUSED __attribute__((unused))
+
+#ifdef __STRICT_ANSI__
+#define INLINE
+#else
+#define INLINE inline
+#endif
+
+#define UINT64_RSHIFT(v, shiftby) (((uint64_t)(v)) >> (shiftby))
+#define UINT64_MULT32(v, multby) (((uint64_t)(v)) * ((uint32_t)(multby)))
+
+#ifndef UINT32_MAX
+#define UINT32_MAX (UINT32_C(0xffffffffU))
+#endif
+
+#ifndef UINT64_MAX
+#define UINT64_MAX (UINT64_C(0xffffffffffffffffULL))
+#endif
+
+#endif /*__ARCH_X86_BIOSINCLUDES_H__ */