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.

dm648: about PCI boot, how to set DSPBOOTADDR



Now, I working on PCI boot DM648, and I wondering how to config DSPBOOTADDR As document named "SPRS372F" The DSPBOOTADDR register contains the upper 22 bits of the C64x+ DSP reset vector. but the "Program Entry point " in the coff file generated by me is 0xE4434a20. how can l let the DSP know the lower 10 bits? Is there another registers related? expecting you reply.

  • The attached file shows how an interrupt service routine table can be defined and aligned to 1024 bytes.  With this you can build your application and then set the DSPBOOTADDR to the address of _intcVectorTable in your final executable.  You could also make _intcVectorTable the actual entrypoint of your application using the -e linker option.  Furthermore, you can use the linker command file for your app to place this code into a particular memory section that you define (for example, somewhere in L2, aligned on a 1K boundary), then you will always know it's address.

  • That is to say: If I want to boot from PCI, I must build my app with the interrupt service routine table defined and aligned to 1024 bytes. and using the -e linker option to make actual entrypoint be _intcVectorTalbe.

    Is that true?

    If it was that, I hope, the info can be supplied with HPI or PCI boot manual. For, If you don't tell me this, how can I get the info?

  • Hi, I make a try follow you. I add the file "intvecs.asm" to my project, however the "Program Entry point" is not changed.

    And I also add "-e" link option, that will not make any sense yet. This is my link option

    -a -c -e"Ddr2_example.out" -m"..\obj\debug\Ddr2_example.map" -w -x -l"rts64plus.lib"

    Is there any wrong with me? how can make "Program Entry point" with 4K then?

  • I made a mistake, for "-e" should define a symbol, which is "_VectorTable", however, I can not write BOOTADDR register through my host.

    why? I can operate other registers with I can not operater ?