How to wakeup other core?


#1

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?


#2

Check out the following blog - http://valtrix.in/programming/dragonboard-boot

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


#3

Thanks for you.

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

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


#4

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?


#5

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

Maybe,Possibly, PMIC not work?


#6

Incidentally

when use following ‘fip.bin’, wakeup slave cores.
http://people.linaro.org/~peter.griffin/hikey/hikey-u-boot-release_r1/fip.bin

what diffirence?


#7

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!!