summaryrefslogtreecommitdiff
path: root/bl1
diff options
context:
space:
mode:
authorSoby Mathew <soby.mathew@arm.com>2014-08-14 11:33:56 +0100
committerDan Handley <dan.handley@arm.com>2014-08-20 19:13:25 +0100
commit9b4768417051ead50135d1d7675cab940d864e8d (patch)
tree3105204d317eb7516d184923a8ea66da3aa767f2 /bl1
parentaecc0840805672279e4165f4d368a59b5c20771e (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 'bl1')
-rw-r--r--bl1/aarch64/bl1_entrypoint.S2
-rw-r--r--bl1/bl1.ld.S13
-rw-r--r--bl1/bl1.mk2
3 files changed, 15 insertions, 2 deletions
diff --git a/bl1/aarch64/bl1_entrypoint.S b/bl1/aarch64/bl1_entrypoint.S
index e7f92c71..82330c11 100644
--- a/bl1/aarch64/bl1_entrypoint.S
+++ b/bl1/aarch64/bl1_entrypoint.S
@@ -57,7 +57,7 @@ func bl1_entrypoint
* reset e.g. cache, tlb invalidations etc.
* ---------------------------------------------
*/
- bl cpu_reset_handler
+ bl reset_handler
/* ---------------------------------------------
* Enable the instruction cache, stack pointer
diff --git a/bl1/bl1.ld.S b/bl1/bl1.ld.S
index 0ca4a630..8092396e 100644
--- a/bl1/bl1.ld.S
+++ b/bl1/bl1.ld.S
@@ -50,10 +50,23 @@ SECTIONS
*bl1_entrypoint.o(.text*)
*(.text*)
*(.rodata*)
+
+ /*
+ * 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__ = .;
} >ROM
+ ASSERT(__CPU_OPS_END__ > __CPU_OPS_START__,
+ "cpu_ops not defined for this platform.")
+
/*
* The .data section gets copied from ROM to RAM at runtime.
* Its LMA must be 16-byte aligned.
diff --git a/bl1/bl1.mk b/bl1/bl1.mk
index 032dc5eb..8e73bef4 100644
--- a/bl1/bl1.mk
+++ b/bl1/bl1.mk
@@ -32,6 +32,6 @@ BL1_SOURCES += bl1/bl1_main.c \
bl1/aarch64/bl1_arch_setup.c \
bl1/aarch64/bl1_entrypoint.S \
bl1/aarch64/bl1_exceptions.S \
- lib/aarch64/cpu_helpers.S
+ lib/cpus/aarch64/cpu_helpers.S
BL1_LINKERFILE := bl1/bl1.ld.S