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.

C6678 EVM SPI Boot Questions

I have struggled for some time now to boot of the SPI Flash on the C6678 EVM.  I am having trouble understand the data format to write into the Flash, as well as the correct dip switch settings to properly trigger an SPI Flash boot. 

I have found documentation that seems to contradict each other on the format my application should be in for the Flash.  I've built my project and use the hex6x converter to write a hex file.  I believe it's in the correct boot table format, but then I find information on b2i2c, and it produces a differently formatted file.

I thought I could boot from the SPI Flash by loading it (starting at address 0) with the following:

0x00802100 - 32-bit boot address - the address I want the DSP to start from after the boot tables are loaded

several sections each with the following format

  0x000020E0 - 32-bit section size - number of bytes in the section

  0x00802100 - 32-bit destination address - the address the section should be copied to

  (section size bytes) of code to be copied

After all my sections, I have a single 32-bit zero section size entry to terminate the table copy function.

Based on what I've read, I thought he ROM bootloader would begin reading data out of the Flash, starting at address 0, save the boot address (0x00802100), and copy the boot table data into memory.  Then, when all data was copied, it would branch to the boot address and start running.

I can not boot from flash using this format.  I looked into b2i2c, and it seems to only work with ASCII Hex, a strange hex format that I've never used before.  When I create an ASCII Hex file from my .OUT, and run it through b2i2c.exe, it adds an extra 32-bit word at the beginning of the file, plus adds in a 32-bit checksum every 128 bytes.  This format doesn't match the boot table format from the Bootloader documentation.

I've searched the forums, and every post that talks about booting from SPI Flash references other documentation. 

Can someone just give me a straight set of instructions on what the format should be, and what tools (in what order) are required to generate that format? 

Next, can someone tell me plainly what the dip switch settings should be on the EVM to boot from SPI Flash?

I have my Flash chip programmed with my boot tables (boot address followed by several sets of section size / section address / section data, followed by a 32-bit 0 to terminate the table).  When I set my dip switches how I think they should be set, and boot, my code doesn't run.  When I connect with the debugger, the memory locations that should hold my program (0x00802100... ) don't, so obviously the ROM bootloader isn't copying my tables out of SPI flash.

Either my dip switches are wrong and the DSP is not doing an SPI Flash boot, or my Flash is programmed with wrongly formatted information.

Please help!

  • Is this the wrong forum to post this question?  Is there no one who has successfully booted the C6678 EVM from the SPI Flash who is willing to share the method they used?  Are there no TI employees who could shed some light into a very dark corner?

    Please?