Hello,
I am designing a custom board that uses an intermediate bootloader (it's not the IBL provided for the C6678 EVM, but the concept is the same). The board is booting properly. The boot process is summarized as follows:
- At power-on, the ROM bootloader is configured to load the intermediate bootloader from SPI flash memory to MSM. The intermediate bootloader is then executed on CorePac0.
- The intermediate bootloader initializes a bunch of DSP peripherals for our application. Then, it loads the application firmware for the CorePacs from SPI flash memory, and sets each CorePac running by writing the firmware entry point to the CorePac's "boot magic address" (L2 SRAM offset 0x87FFFC) and generating an IPC interrupt to wake the core.
That's all working fine, but here is what I am trying to do now. I have the BOOTCOMPLETE pin connected to some external buffers. I want the BOOTCOMPLETE pin to be asserted during the intermediate bootloader -- specifically, I need it be asserted after the GPIO peripheral has been initialized, but before the other CorePacs are loaded.
At the point where I want the BOOTCOMPLETE pin to be asserted, the value of the BOOTCOMPLETE register is 0x1, because only CorePac0 was booted by the ROM bootloader. I've been able to break in at this point with Code Composer and change the BOOTCOMPLETE register from 0x1 to 0xF (I'm using a C6674), but this still isn't causing the BOOTCOMPLETE pin to be asserted. I really thought that would do the trick.
I'm hoping that someone familiar with the internal workings of the BOOTCOMPLETE register and pin can guide me on how I can cause the pin to be asserted during my intermediate bootloader. I know this isn't exactly the intended use of the BOOTCOMPLETE pin (it's normally controlled entirely by the ROM bootloader), but I think what I'm trying to do should be possible with a little guidance.
As always, thanks in advance!
Best regards,
Dave