hello, veryone
I want to run a single image .out on all 8 cores of C6678, which is booted by IBL in the IIC EEPROM from nor flash.
The nor flash was programmed with my own .out by norwriter ultility. The .out is all implemented in L2 SRAM, as my .cmd file is like below:
/*
* Linker command file
*
*/
-c
-heap 0x8000
-stack 0x10000
/* Memory Map 1 - the default */
MEMORY
{
/* Local L2, 0.5~1MB*/
VECTORS: o = 0x00800000 l = 0x0020000
LL2_RW_DATA: o = 0x00820000 l = 0x00060000
/* CORE0 L2, 0.5~1MB*/
CORE0_VECTORS: o = 0x10800000 l = 0x00000200
CORE0_LL2_RW_DATA: o = 0x10800200 l = 0x0003FE00
/* CORE1 L2, 0.5~1MB*/
CORE1_VECTORS: o = 0x11800000 l = 0x00000200
CORE1_LL2_RW_DATA: o = 0x11800200 l = 0x0003FE00
/* CORE2 L2, 0.5~1MB*/
CORE2_VECTORS: o = 0x12800000 l = 0x00000200
CORE2_LL2_RW_DATA: o = 0x12800200 l = 0x0003FE00
/* CORE3 L2, 0.5~1MB*/
CORE3_VECTORS: o = 0x13800000 l = 0x00000200
CORE3_LL2_RW_DATA: o = 0x13800200 l = 0x0003FE00
/* Shared L2 2~4MB*/
SL2_SRAM: o = 0x0C000000 l = 0x00400000
/*
SL2_CORE0: o = 0x0C000000 l = 0x00050000
SL2_CORE1: o = 0x0C050000 l = 0x00050000
SL2_CORE2: o = 0x0C100000 l = 0x00050000
SL2_CORE3: o = 0x0C150000 l = 0x00050000
*/
/* External DDR3, upto 2GB per core */
DDR3_CODE: o = 0x80000000 l = 0x01000000 /*set memory protection attribitue as execution only*/
DDR3_R_DATA: o = 0x81000000 l = 0x01000000 /*set memory protection attribitue as read only*/
DDR3_RW_DATA: o = 0x82000000 l = 0x06000000 /*set memory protection attribitue as read/write*/
}
SECTIONS
{
vecs > LL2_RW_DATA
.csl_vect: > LL2_RW_DATA
.cinit > LL2_RW_DATA
.const > LL2_RW_DATA
.switch > LL2_RW_DATA
.text: > LL2_RW_DATA
.boot > LL2_RW_DATA
.data > LL2_RW_DATA
.fardata > LL2_RW_DATA
.neardata > LL2_RW_DATA
.rodata > LL2_RW_DATA
.stack > LL2_RW_DATA
.bss > LL2_RW_DATA
.far > LL2_RW_DATA
.cio > LL2_RW_DATA
.sysmem > LL2_RW_DATA
platform_lib > LL2_RW_DATA
}
In my .out, core0 initialize the platform first, and then copy all the 512KB content of core0's local L2 SRAM to core1's local L2 SRAM After this done, modify the boot magic address of core1. At last send IPC to core1.
As my understanding of the multi core boot, core1 will run normally with the code of core1's local L2 SRAM, which copied by core0 from core0's local L2 SRAM. But core1 doesn't. As i want core1 toggle the led2 on the board when it's just always lighting.
I want to konw is there anything mistake i have taken with the process?
Many thanks!