diff --git a/lib/aarch64/cpu_helpers.S b/lib/aarch64/cpu_helpers.S index abb996d69b0ac632f535a086788fe3ac72c03ebf..b8be34027cfde0d9fc4f53b807bf1159aabb4ab0 100644 --- a/lib/aarch64/cpu_helpers.S +++ b/lib/aarch64/cpu_helpers.S @@ -43,13 +43,20 @@ func cpu_reset_handler lsr x0, x0, #MIDR_PN_SHIFT and x0, x0, #MIDR_PN_MASK cmp x0, #MIDR_PN_A57 - b.eq smp_setup_begin + b.eq a57_setup_begin cmp x0, #MIDR_PN_A53 - b.ne smp_setup_end + b.eq smp_setup_begin + b smp_setup_end + +a57_setup_begin: + mov x0, #0x082 + msr s3_1_c11_c0_2, x0 + smp_setup_begin: mrs x0, CPUECTLR_EL1 orr x0, x0, #CPUECTLR_SMP_BIT msr CPUECTLR_EL1, x0 isb + smp_setup_end: ret