This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320C6678: KeystoneI Bootloader Resources and FAQ: Helloworld.zip Source missing

Part Number: TMS320C6678

The Helloworld.zip is missing in the page, to follow the procedure given in FAQ..

How to wake up secondary cores from primary core(core0)?

During the boot process, the boot loader executes an IDLE command on the secondary CorePacs and keeps the secondary CorePacs waiting for an interrupt. After loading the secondary CorePacs application, the BOOT_MAGIC_ADDRESS in individual corePacs are populated, the application code in the corePac0 can trigger the IPC interrupt to wake up the secondary cores and branch up to the address specified in the BOOT_MAGIC_ADDRESS. Please try below procedure in EVM,

Source: <a _fcknotitle="true" href="Helloworld.zip">Helloworld.zip</a>

1. Set the EVM in "No Boot" mode, connect to core0 and use gel file to initialize the core0. (Also, You can run Global_Default_Setup - to initialize the PLL and DDR).

2. Go to memory browser, read the address 0x1187FFFC and make a note of it.

3. Build the attached source and load and run on core0.

4. After completion of execution, core0 will wait in busy loop(while(1)). Pause the debugging.

5. Go to memory browser, enter the address 0x1187FFFC .=> 0xBABEFACE

This means that core0 wakes up core1 successfully. The value 0xBABEFACE has been written by core1 from function "write_boot_magic_number()".

You can follow this for all secondary cores by updating NUMBER_OF_CORES.

Note: 

Make sure to build the application with appropriate macros for EVM and magic address on step 2 & 5. The above steps are shown for C6678.

  /* Magic address RBL is polling */
#ifdef _EVMC6657L_
#define MAGIC_ADDR 0x8ffffc
#endif
#ifdef _EVMC6678L_
#define MAGIC_ADDR 0x87fffc
#endif
#ifdef _EVMC6670L_
#define MAGIC_ADDR 0x8ffffc
#endif