aboutsummaryrefslogtreecommitdiff
path: root/payloads/libpayload/include/arm64/arch/asm.h
diff options
context:
space:
mode:
authorFurquan Shaikh <furquan@google.com>2014-02-19 11:35:30 -0800
committerMarc Jones <marc.jones@se-eng.com>2015-01-09 07:04:28 +0100
commit8c8c377584742755ca7a2f490e77d0cd8da36bee (patch)
tree7a61b2fb2a8a4e2a00350ab567034c2cde9eab3d /payloads/libpayload/include/arm64/arch/asm.h
parent24452743472a2480b88465de22db8adc7a9b544c (diff)
libpayload: Add support for arm64 in libpayload
Basic support for arm64 is enabled in libpayload. Features added: 1) mem* operations in assembly. 2) Basic exception handling and support for testing exceptions. 3) Caching support. Tested with arm64-generic board compilation. BUG=None BRANCH=None TEST=Compilation successful Original-Change-Id: I4e86301f9c6383abc078e2b70071fb84bd6e4741 Original-Signed-off-by: Furquan Shaikh <furquan@google.com> Original-Reviewed-on: https://chromium-review.googlesource.com/187067 Original-Tested-by: Furquan Shaikh <furquan@chromium.org> Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org> Original-Commit-Queue: Furquan Shaikh <furquan@chromium.org> (cherry picked from commit a70d13f3d225535843ab352290eab2e1ec7a9b4b) Signed-off-by: Marc Jones <marc.jones@se-eng.com> Change-Id: Ie3affe6a2bdd4fed3058de739d4c6aa573e5b251 Reviewed-on: http://review.coreboot.org/8063 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Reviewed-by: Furquan Shaikh <furquan@google.com>
Diffstat (limited to 'payloads/libpayload/include/arm64/arch/asm.h')
-rw-r--r--payloads/libpayload/include/arm64/arch/asm.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/payloads/libpayload/include/arm64/arch/asm.h b/payloads/libpayload/include/arm64/arch/asm.h
new file mode 100644
index 0000000000..de44482793
--- /dev/null
+++ b/payloads/libpayload/include/arm64/arch/asm.h
@@ -0,0 +1,29 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright 2013 Google Inc.
+ *
+ */
+
+#ifndef __ARM64_ASM_H
+#define __ARM64_ASM_H
+
+# define ARM64(x...) x
+# define W(instr) instr
+
+#define ALIGN .align 2
+
+#define ENDPROC(name) \
+ .type name, %function; \
+ END(name)
+
+#define ENTRY(name) \
+ .section .text.name, "ax", %progbits; \
+ .global name; \
+ ALIGN; \
+ name:
+
+#define END(name) \
+ .size name, .-name
+
+#endif /* __ARM64_ASM_H */