Part Number: TMS320C6746
Other Parts Discussed in Thread: AM3354
Hi guys,
I'm currently working on the HPI boot of C6746 via AM3354 (the host). Basically I'm following the procedures below:
• Bootloader interrupts the host by setting the HINT bit, in the HPIC register, to inform that it is ready and
that the host can start loading the application image to device memory.
• Host acknowledges this interrupt by clearing the HINT bit.
• Host loads the application image to device memory and writes application entry point to location
0x11800000 in device memory.
• Host reads back the final word it wrote to device memory to make sure all HPI writes have completed
successfully.
• Host interrupts bootloader by setting DSPINT bit in HPIC register to inform that loading of application
image is complete.
• Bootloader acknowledges host by clearing DSPINT bit.
• Bootloader reads application entry point (written by host) from address 0x11800000 and branches to it.
Now, the host has
0) reset the DSP, so that the boot pins are latched into BOOTCFG register, which exactly showed 0x4, indicating HPI boot mode. (Now HPIC = 0x44)
1) cleared HINT (HPIC turns from 0x44 to 0x40);
2) loaded the application image (.bin file) as a whole to 0x1180E000 ~ 0x1180F078, which is a piece of DSP memory of my choice;
3) written the application entry point to 0x11800000. The app entry turned out to be 0x1180EEF0. I'll explain how I got this number later;
4) read back the final word of the DSP application image and confirmed it.
5) set DSPINT (HPIC turns from 0x40 to 0x42).
Then I connected the XDS100V3 emulator to DSP and opened the memory browser in CCS. I found that HPIC = 0x42, HPIA = 0x1180F078, and the image was indeed properly loaded. However, the DSP program did NOT run, otherwise the GPIO should have lit an LED on my board (actually I can light the LED when I load the program via the emulator, so the DSP program itself should not have a problem).
The boot table was as follows: