summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFurquan Shaikh <furquan@google.com>2015-07-10 15:25:26 -0700
committerPatrick Georgi <pgeorgi@google.com>2015-07-13 10:01:39 +0200
commit6e1dc0cd602cea4d2b401970b032dadf2a082346 (patch)
tree2fcfd87074ae43c5851e9753675e8567f492c9ed
parent8799fde76062b381721ad856fb382983b98c52a5 (diff)
downloadcoreboot-staging-6e1dc0cd602cea4d2b401970b032dadf2a082346.zip
coreboot-staging-6e1dc0cd602cea4d2b401970b032dadf2a082346.tar.gz
arm64: Define stage_entry as weak symbol
This allows SoCs/CPUs to have custom stage_entry in order to apply any fixups that need to run before standard cpu reset procedure. BUG=chrome-os-partner:41877 BRANCH=None TEST=Compiles successfully Change-Id: Iaae7636349140664b19e81b0082017b63b13f45b Signed-off-by: Patrick Georgi <pgeorgi@chromium.org> Original-Commit-Id: 498d04b0e9a3394943f03cad603c30ae8b3805d4 Original-Change-Id: I9a005502d4cfcb76017dcae3a655efc0c8814a93 Original-Signed-off-by: Furquan Shaikh <furquan@google.com> Original-Reviewed-on: https://chromium-review.googlesource.com/284867 Original-Trybot-Ready: Furquan Shaikh <furquan@chromium.org> Original-Tested-by: Furquan Shaikh <furquan@chromium.org> Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org> Original-Commit-Queue: Furquan Shaikh <furquan@chromium.org> Reviewed-on: http://review.coreboot.org/10897 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
-rw-r--r--src/arch/arm64/include/arch/asm.h4
-rw-r--r--src/arch/arm64/stage_entry.S8
2 files changed, 11 insertions, 1 deletions
diff --git a/src/arch/arm64/include/arch/asm.h b/src/arch/arm64/include/arch/asm.h
index 0dc2974..851f3f9 100644
--- a/src/arch/arm64/include/arch/asm.h
+++ b/src/arch/arm64/include/arch/asm.h
@@ -41,4 +41,8 @@
*/
#define CPU_RESET_ENTRY(name) ENTRY_WITH_ALIGN(name, 6)
+#define ENTRY_WEAK(name) \
+ ENTRY(name) \
+ .weak name \
+
#endif /* __ARM_ARM64_ASM_H */
diff --git a/src/arch/arm64/stage_entry.S b/src/arch/arm64/stage_entry.S
index 5ff2c4e..4e15dbb 100644
--- a/src/arch/arm64/stage_entry.S
+++ b/src/arch/arm64/stage_entry.S
@@ -228,6 +228,12 @@ CPU_RESET_ENTRY(arm64_cpu_startup_resume)
b arm64_c_environment
ENDPROC(arm64_cpu_startup_resume)
-ENTRY(stage_entry)
+/*
+ * stage_entry is defined as a weak symbol to allow SoCs/CPUs to define a custom
+ * entry point to perform any fixups that need to be done immediately after
+ * power on reset. In case SoC/CPU does not need any custom-defined entrypoint,
+ * this weak symbol can be used to jump directly to arm64_cpu_startup.
+ */
+ENTRY_WEAK(stage_entry)
b arm64_cpu_startup
ENDPROC(stage_entry)
OpenPOWER on IntegriCloud