
I'm using a SABRE SD board (from Freescale) based on i.MX6 and the u-boot version is the 2014.04 one. What I've been trying to do is to activate the secondary cores so that I would be able to use them. First of all I've imported the commands cpu status/release/reset, then I checked if they were working in this way: U-boot > cpu 1 status (which gives as result: core1 disabled ...) U-boot > cpu 1 release 0x12000000 0 U-boot > cpu 1 status (which gives as result: core1 enabled ...)
Next step was to run a standalone application on secondary cores. First I checked the hello_world application, but it seems that the serial debug for secondary cores is not set (but I'm not sure). So I wrote an application to check if I could get changes in memory. This is the simple application (I just modified the hello_world one):
//standalone app #include <common.h> #include <exports.h> volatile int test[5]={1,2,3,4,5}; int hello_world () { int i; for (i=0; i<5; i++) { test[i] = -test[i]; } return (0); }
First I used it on the boot core (core0) with the "go" command and with the "md" command I checked that the results were correct. Then I used the following command to run it on other cores (the application is at address 0x12000000): U-boot > cpu X release 0x12000000 0 But when I check with the "md" command, I can see that there are no changes in memory. What should I do to make it work? Am I missing something to set before running the application on other cores? I'm new to this subject so every suggestion would be appreciated. Thank you in advance.