
1 Mar
2015
1 Mar
'15
10:16 a.m.
On Sat, 2015-02-28 at 13:53 +0000, Marc Zyngier wrote:
+ENTRY(psci_cpu_entry)
- @ Set SMP bit
- mrc p15, 0, r0, c1, c0, 1 @ ACTLR
- orr r0, r0, #(1 << 6) @ Set SMP bit
- mcr p15, 0, r0, c1, c0, 1 @ ACTLR
- isb
- bl _nonsec_init
- adr r0, _psci_target_pc
- ldr r0, [r0]
- b _do_nonsec_entry
+ENDPROC(psci_cpu_entry)
I'd add a *big* comment at the top of this. ACTLR is implementation dependent, and while sticking the SMP bit at this location is fairly common among ARM cores, it is by no mean a strong guarantee (this is not an architectural feature).
I'd recommend making it override-able.
Tom R has a series which does something along those lines: https://patchwork.ozlabs.org/patch/431587/
I suppose it ought to be used here too one way or another.
Ian.