
3 Jun
2014
3 Jun
'14
11:19 a.m.
On Tue, Jun 03 2014 at 3:16:19 am BST, "TigerLiu@via-alliance.com" TigerLiu@via-alliance.com wrote:
Hi, Marc:
In short, if you're setting GICD_SGIR[24] to 1, you're sending SGI0 to all CPUs but yourself. This seems to match the name of the function, doesn't it?
I described my understanding based on 2014.07-RC2 u-boot source code: (For ARMv8 cores)
- smp_kick_all_cpus() will send SGI0 to all other cores except BSP. These non-BSP cores handled this SGI0 in gic_wait_for_interrupt(), and then switched to EL2/EL1 . These code is implemented in lowlevel_init in arch/arm/cpu/armv8/start.S.
Is my understanding right?
I can't tell, I haven't read that bit of code. But that seems similar to what ARMv7 used to do.
- if runing with ATF(Arm Trusted Firmware) + Uboot.bin ATF has put non-BSP cores to WFI state. So, before jumping to u-boot's entrypoint, there is only a BSP . So, smp_kick_all_cpus() could wake up these non-BSP cores?
My understanding is that if you're using the Trusted Firmware, then you have an implementation of PSCI, and that's what you must use to bring the CPUs into u-boot. U-Boot will be running non-secure anyway, so it requires the firmware to perform S to NS transition on its behalf.
M.
--
Jazz is not dead. It just smells funny.