[bootwrapper PATCH] aarch64: Enable BRBE for the non-secure world
Anshuman Khandual
anshuman.khandual at arm.com
Thu Jan 13 01:41:08 PST 2022
MDCR_EL3.SBRBE resets to an UNKNOWN value. Configure it to allow the BRBE
buffer usage and direct register access in the non-secure world. But just
before that, check AA64DFR0_EL1.BRBE and make sure BRBE is implemented. We
still continue to reset MDCR_EL3 register to zero with the exception of
MDCR_EL3.NSPB, MDCR_EL3.NSTB and MDCR_EL3.SBRBE.
Signed-off-by: Anshuman Khandual <anshuman.khandual at arm.com>
---
arch/aarch64/boot.S | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/arch/aarch64/boot.S b/arch/aarch64/boot.S
index bfbb6ec..ca1b292 100644
--- a/arch/aarch64/boot.S
+++ b/arch/aarch64/boot.S
@@ -103,6 +103,14 @@ ASM_FUNC(_start)
ldr x1, =(0x3 << 24)
orr x0, x0, x1
+1: mrs x1, id_aa64dfr0_el1
+ ubfx x1, x1, #52, #4
+ cbz x1, 1f
+
+ // Enable BRBE for the non-secure world.
+ ldr x1, =(0x3 << 32)
+ orr x0, x0, x1
+
1: msr mdcr_el3, x0 // Disable traps to EL3
mrs x0, id_aa64pfr0_el1
--
2.7.4
More information about the linux-arm-kernel
mailing list