How to wakeup other core?


I am developing multi-core’s bare-metal program for hikey board.

I done,
1. downlaod u-boot/arm-trusted-firmware(atf)/l-loader, and mcuimage.bin.
2. build u-boot.
3. build atf at BL30=mcuimage.bin BL33=u-boot.bin. (output is fip.bin)
4. build l-loader. (output is l-loader.bin)
5. burn to emmc l-loader.bin and fip.bin.
6. reboot a hikey board.
7. u-boot wakeup success.
My Bare-metal-program is called a PSCI. (X0:0xC4000003 X1:0x00000001, X2:execute_entry, X3:0x00000000)

download a program and run.
It is executed "hisi_ipc.c / hisi_ipc_cpu_on_off.
But not wakeup slave core. (not enter to “execute_entry”)

what problem?


Check out the following blog -

U-boot needs some changes on top in order to wakeup the slave cores. You can find the relevant details in the blog.


Thanks for you.

I tried again using “sthiruva/u-boot”.
Problem is yet.
It does not wakeup slave cores.

Is ssa-command Dragonboard only? (not work hikey-board?)


What the SSA command does might be specific to Dragonboard. So I am not sure if it will work for the Hikey boards as well. I see that you are using PSCI mechanism to wakeup the cores. Did you check the return code from the SMC call on running those instructions?


SMC-call(CPU__ON) return ‘SUCCESS(0)’.

Maybe,Possibly, PMIC not work?



when use following ‘fip.bin’, wakeup slave cores.

what diffirence?


It was resolved self.

When use older arm-trusted-firmware (2015/5), It was working.
When use new arm-trusted-firmware(2015/7), It was not working.

May be, change INTERFACE.

Thanks all!!