diff options
author | Soby Mathew <soby.mathew@arm.com> | 2014-08-14 11:33:56 +0100 |
---|---|---|
committer | Dan Handley <dan.handley@arm.com> | 2014-08-20 19:13:25 +0100 |
commit | 9b4768417051ead50135d1d7675cab940d864e8d (patch) | |
tree | 3105204d317eb7516d184923a8ea66da3aa767f2 /bl31 | |
parent | aecc0840805672279e4165f4d368a59b5c20771e (diff) |
Introduce framework for CPU specific operations
This patch introduces a framework which will allow CPUs to perform
implementation defined actions after a CPU reset, during a CPU or cluster power
down, and when a crash occurs. CPU specific reset handlers have been implemented
in this patch. Other handlers will be implemented in subsequent patches.
Also moved cpu_helpers.S to the new directory lib/cpus/aarch64/.
Change-Id: I1ca1bade4d101d11a898fb30fea2669f9b37b956
Diffstat (limited to 'bl31')
-rw-r--r-- | bl31/aarch64/bl31_entrypoint.S | 2 | ||||
-rw-r--r-- | bl31/bl31.ld.S | 12 | ||||
-rw-r--r-- | bl31/bl31.mk | 2 |
3 files changed, 14 insertions, 2 deletions
diff --git a/bl31/aarch64/bl31_entrypoint.S b/bl31/aarch64/bl31_entrypoint.S index a088c2e..a9238dc 100644 --- a/bl31/aarch64/bl31_entrypoint.S +++ b/bl31/aarch64/bl31_entrypoint.S @@ -68,7 +68,7 @@ func bl31_entrypoint * Boot ROM(BL0) programming sequence * ----------------------------------------------------- */ - bl cpu_reset_handler + bl reset_handler #endif /* --------------------------------------------- * Enable the instruction cache, stack pointer diff --git a/bl31/bl31.ld.S b/bl31/bl31.ld.S index 83ef7e7..add65b8 100644 --- a/bl31/bl31.ld.S +++ b/bl31/bl31.ld.S @@ -58,6 +58,15 @@ SECTIONS KEEP(*(rt_svc_descs)) __RT_SVC_DESCS_END__ = .; + /* + * Ensure 8-byte alignment for cpu_ops so that its fields are also + * aligned. Also ensure cpu_ops inclusion. + */ + . = ALIGN(8); + __CPU_OPS_START__ = .; + KEEP(*(cpu_ops)) + __CPU_OPS_END__ = .; + *(.vectors) __RO_END_UNALIGNED__ = .; /* @@ -69,6 +78,9 @@ SECTIONS __RO_END__ = .; } >RAM + ASSERT(__CPU_OPS_END__ > __CPU_OPS_START__, + "cpu_ops not defined for this platform.") + .data . : { __DATA_START__ = .; *(.data*) diff --git a/bl31/bl31.mk b/bl31/bl31.mk index 53b58b3..f53a41f 100644 --- a/bl31/bl31.mk +++ b/bl31/bl31.mk @@ -39,7 +39,7 @@ BL31_SOURCES += bl31/bl31_main.c \ bl31/aarch64/cpu_data.S \ bl31/aarch64/runtime_exceptions.S \ bl31/aarch64/crash_reporting.S \ - lib/aarch64/cpu_helpers.S \ + lib/cpus/aarch64/cpu_helpers.S \ lib/locks/bakery/bakery_lock.c \ lib/locks/exclusive/spinlock.S \ services/std_svc/std_svc_setup.c \ |