Mark Rutland mark.rutland at
Thu Nov 5 03:10:52 PST 2015

On Wed, Nov 04, 2015 at 07:31:42PM +0000, Russell King - ARM Linux wrote:
> On Wed, Nov 04, 2015 at 05:10:49PM +0000, Mark Rutland wrote:
> > Yes, the CPU should start at __pa(secondary_entry) in head.S. From there
> > it will branch to secondary_startup:
> > 
> > ENTRY(secondary_entry)
> > 	bl      el2_setup                       // Drop to EL1
> > 	bl      set_cpu_boot_mode_flag
> > 	b       secondary_startup
> > ENDPROC(secondary_entry)
> We've been busy telling people to implement errata workarounds in firmware,
> and we're also busy telling people that their secondary CPUs should start
> in the kernel.  The two are incompatible with each other...

Indeed. The above should have read "having exited the firmware, the CPU
should enter the kernel at __pa(secondary_entry)".

Out of reset all CPUs will go through firmware, where any IMPLEMENTATION
DEFINED initialisation (including errata workarounds and coherency
management) will have taken place, the exception vectors necessary for
the PSCI implementation will be registered, etc.


More information about the linux-arm-kernel mailing list