Hello Everyone,
My team and I are running into some issues trying to Flash Boot using the AIS parallel flash method with the default TISecondaryBoot.
Using: CCS 5.5, Compiler TI v7.4.5, DSP/BIOS 5.42.1.09
We are using the 6727+ DSP with Micron SDR SDRAM and Numonyx J3 SBC Flash Memory. We compiled and linked our code with the generated cfg.c, called in the secondaryboot through the .cmd, used genAIS with the cooresponding .cfg, bootmode tisecboot -pf 16 and burned the resulting binary file to flash.
We are compiling with trampolines on globally. TConf Large data model and using the rts67plus.lib
All optimizations turned off for the cfg.c and TISecondaryBoot.c files as well as "far" Data access model enabled. We found we had to make these changes in order for the SecondaryBoot to properly load the entire AIS into IRAM and SDRAM properly.
When we boot the system, all indications are that the entire program was read correctly from flash memory into the appropriate 6727 IRAM and external SDRAM. No CRC errors (or other) are generated by the loader and if we spot check sections of NVM versus the contents of SDRAM & IRAM, everything looks correct.
However, the loaded program does not execute properly and when we connect to it through our emulator the program counter is at an illegal addresses (i.e. 0xF00000C0 or other non RAM/ROM address locations).
One thing we noticed when looking through the load map is that the BOOT ROM patch code (c672xSystemPatchV2_00_00.lib & applySystemPatch.obj) is linking and being placed into SDRAM, which doesn’t seem right. The patch supposedly gets executed before the SDRAM is even initialized, is that a correct assumption? According to the .map, the patch is linked into SDRAM under .text. Shouldn’t the patch be forced to load into IRAM so the ROM BOOT can read it properly? How do we cause this to happen in the compiler? Our application is rather large so the .text section must be in SDRAM, it won’t fit into the DSP IRAM. We have attempted to load it using both recommended methods (-l in the .cmd and linking through CCS, including them in the project).
Does this booting problem sound like a patch issue? Compiler/linker issue? We have tried several dozen compiler/linker combinations as well as various modifications to our .cmd and .tcf. Any help or direction anyone can provide us will be greatly appreciated.