We are having troubles with getting our HPI bootload working. We verified that the HPI is working. We can even use CCS and an emulator to verify that the host device is copying over the contents of the COFF file.
Here is the procedure from SPRAB04C (Using the D800k001 Bootloader).
3.2 Host Port Interface (HPI) Boot
HPI boot happens from the HPI0 peripheral in 16-bit mode. The boot sequence to boot from HPI is listed
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 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.
I have the host device run through these steps and halt just before the host sets the DSPINT bit. I can connect to the C6747 and see that code is loaded and address 0x11800000 contains the address of _c_int00. In fact, if I use the CCS disassembly window and set PC to the address stored in 0x11800000, click run, the program will execute. But the program does not execute if we let the host continue by setting the DSPINT. The host verifies that the DSP clears the DSPINT bit but after that it seems the program halts or crahses.
if I connect CCS to the C6747 after the host attempts to fully load and run the DSP, I can see that the address stored at 0x11800000 has been cleared to 0.
First, can someone verify that the correct procedure is indeed to write just the address at 0x11800000 and NOT a branch instruction to _c_int00?
And if that is the correct procedure, what could we be doing wrong??? It seems like we're close - just the last step isn't working.
thanks!
Mike