summaryrefslogtreecommitdiff
path: root/arch/arm/include
diff options
context:
space:
mode:
authorBhupesh Sharma <bhupesh.sharma@freescale.com>2015-01-23 15:50:04 +0530
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>2015-01-31 23:43:06 +0100
commit37118fb27be72dc7f3af27b390306396ad6d56b2 (patch)
tree357e09f1dff859066624e2b8ef8a2a83c8f9fb5f /arch/arm/include
parent2af13d6b6265a6700c4f65597410b769895024bf (diff)
downloadu-boot-imx-37118fb27be72dc7f3af27b390306396ad6d56b2.zip
u-boot-imx-37118fb27be72dc7f3af27b390306396ad6d56b2.tar.gz
u-boot-imx-37118fb27be72dc7f3af27b390306396ad6d56b2.tar.bz2
Errata/ARM57: Add basic constructs to handle and apply A57 specific erratas
This patch adds basic constructs in the ARMv8 u-boot code to handle and apply Cortex-A57 specific erratas. As and example, the framework showcases how erratas 833069, 826974 and 828024 can be handled and applied. Later on this framework can be extended to include other erratas. Signed-off-by: Bhupesh Sharma <bhupesh.sharma@freescale.com>
Diffstat (limited to 'arch/arm/include')
-rw-r--r--arch/arm/include/asm/macro.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/arch/arm/include/asm/macro.h b/arch/arm/include/asm/macro.h
index 1c8c425..5f7c7e0 100644
--- a/arch/arm/include/asm/macro.h
+++ b/arch/arm/include/asm/macro.h
@@ -74,6 +74,28 @@ lr .req x30
.endm
/*
+ * Branch if current processor is a Cortex-A57 core.
+ */
+.macro branch_if_a57_core, xreg, a57_label
+ mrs \xreg, midr_el1
+ lsr \xreg, \xreg, #4
+ and \xreg, \xreg, #0x00000FFF
+ cmp \xreg, #0xD07 /* Cortex-A57 MPCore processor. */
+ b.eq \a57_label
+.endm
+
+/*
+ * Branch if current processor is a Cortex-A53 core.
+ */
+.macro branch_if_a53_core, xreg, a53_label
+ mrs \xreg, midr_el1
+ lsr \xreg, \xreg, #4
+ and \xreg, \xreg, #0x00000FFF
+ cmp \xreg, #0xD03 /* Cortex-A53 MPCore processor. */
+ b.eq \a53_label
+.endm
+
+/*
* Branch if current processor is a slave,
* choose processor with all zero affinity value as the master.
*/