Was the ROM boot loader for the C55x5 built with a huge memory model or is it possible it has a 64k boundary problem?
Cheers!
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.
Was the ROM boot loader for the C55x5 built with a huge memory model or is it possible it has a 64k boundary problem?
Cheers!
The on-chip ROM is composed of four 16K-word blocks for a total of 128K bytes. It is located at the byte ad\dress range FE0000h - FFFFFFh.
Regards.
I did use some boot images larger than 64K without any problem. I think the restriction is that each boot image section must be placed within a single 64k page. I believe that hex55 tool handles this issue automatically, so we would not need to worry about that.
I am seeing some strange behavior. If I link a text section external / off chip and boot, my application runs fine.
If I link a bss section to external / off-chip memory and use the Autoinitializing linker command, it never makes it to main(). It seems the Autoinitializing code has a problem with writing to external / off-chip memory.
This seems strange b/c the bootloader was able to write the text sections to his memory space. I also tried to configuring the EMIF registers with the --reg-config command with the hex55 utility to make sure the EMIF is configured and the Autoinitializing code can access that memory space.
Does anyone else see this problem? Is there something wrong with the Autoinitializing code? Is this expected behavior?
Cheers!
Hi,
The problem is that the boot loader seems to reset EMIF before jumping to __c_int(). Thus your --reg-config settings have no effect on __c_int(), which initializes bss symbols. There are two possible way to workaround the problem:
- Use a second boot loader (tandem boot loader), small enough to fit in on-chip memory
- Use a bootstrap routine
In either way, the system boot loader jumps the second boot loader or the bootstrap routine, and you are responsible to set up EMIF appropriately before jump to __c_int()
Cheers,
Cong-Van
Hi,
Could someone at TI please confirm if the EMIF is reset by the C5515 ROM bootloader? I have had similar problems with directly bootloading an application (from SD card) (initializing the EMIF and clock registers with the Secure Image Tool) that went beyond on-chip memory. Could someone please spell out the exact requirements for an application that extends to off-chip EMIF memory to boot from the ROM bootloader?
Regards,
Dave
Hello,
Does anyone have any tips / special knowledge on using the ROM bootloader with images that extend to off-chip memory?
Dave