summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2011-08-07 22:09:34 -0700
committerSimon Glass <sjg@chromium.org>2011-11-14 15:53:15 -0800
commitbf5540eb1e277f8dfad11691311ef062870e7a9c (patch)
tree2dfd80114ee777313d1b2e6cb6e4b763272d3332
parent77ce2e864e09d82111c92c5177ede3bb5163aeb5 (diff)
downloadvboot-bf5540eb1e277f8dfad11691311ef062870e7a9c.tar.gz
Add x86_64 architecture support
This is required for U-Boot's sandbox test system. BUG=chromium-os:16808 TEST=emerge vboot_reference-firmware for tegra2-seaboard, x86-mario Change-Id: I18b48b069dc56f9b2c826de99780dfff1e544ded Reviewed-on: https://gerrit.chromium.org/gerrit/5980 Reviewed-by: Randall Spangler <rspangler@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__ */