aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorDeepak Pandey <Deepak.Pandey@arm.com>2018-10-11 13:44:43 +0530
committerDeepak Pandey <Deepak.Pandey@arm.com>2018-10-15 13:08:52 +0530
commitda3b038fd5e39147792df02d87b61054f94da8a5 (patch)
treef216bbd645fcf1586f18ae87edccf904329aadd6 /include
parent424f68dd1dedba416105d513cc7f99904fe4ceac (diff)
downloadplatform_external_arm-trusted-firmware-da3b038fd5e39147792df02d87b61054f94da8a5.tar.gz
platform_external_arm-trusted-firmware-da3b038fd5e39147792df02d87b61054f94da8a5.tar.bz2
platform_external_arm-trusted-firmware-da3b038fd5e39147792df02d87b61054f94da8a5.zip
plat/arm: relocate the jump_if_cpu_midr macro.
macro jump_if_cpu_midr is used commonly by many arm platform. It has now been relocated to common place to remove duplication of code. Change-Id: Ic0876097dbc085df4f90eadb4b7687dde7c726da Signed-off-by: Deepak Pandey <Deepak.Pandey@arm.com>
Diffstat (limited to 'include')
-rw-r--r--include/lib/cpus/aarch32/cpu_macros.S13
-rw-r--r--include/lib/cpus/aarch64/cpu_macros.S14
2 files changed, 27 insertions, 0 deletions
diff --git a/include/lib/cpus/aarch32/cpu_macros.S b/include/lib/cpus/aarch32/cpu_macros.S
index 7703be339..525e18caf 100644
--- a/include/lib/cpus/aarch32/cpu_macros.S
+++ b/include/lib/cpus/aarch32/cpu_macros.S
@@ -214,5 +214,18 @@
bl errata_print_msg
.endm
#endif
+ /*
+ * Helper macro that reads the part number of the current CPU and jumps
+ * to the given label if it matches the CPU MIDR provided.
+ *
+ * Clobbers: r0-r1
+ */
+ .macro jump_if_cpu_midr _cpu_midr, _label
+ ldcopr r0, MIDR
+ ubfx r0, r0, #MIDR_PN_SHIFT, #12
+ ldr r1, =((\_cpu_midr >> MIDR_PN_SHIFT) & MIDR_PN_MASK)
+ cmp r0, r1
+ beq \_label
+ .endm
#endif /* __CPU_MACROS_S__ */
diff --git a/include/lib/cpus/aarch64/cpu_macros.S b/include/lib/cpus/aarch64/cpu_macros.S
index 026a48e32..4672cbc06 100644
--- a/include/lib/cpus/aarch64/cpu_macros.S
+++ b/include/lib/cpus/aarch64/cpu_macros.S
@@ -272,3 +272,17 @@
cmp \_reg, #1
beq \_label
.endm
+
+ /*
+ * Helper macro that reads the part number of the current
+ * CPU and jumps to the given label if it matches the CPU
+ * MIDR provided.
+ *
+ * Clobbers x0.
+ */
+ .macro jump_if_cpu_midr _cpu_midr, _label
+ mrs x0, midr_el1
+ ubfx x0, x0, MIDR_PN_SHIFT, #12
+ cmp w0, #((\_cpu_midr >> MIDR_PN_SHIFT) & MIDR_PN_MASK)
+ b.eq \_label
+ .endm