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.

TMS570LS3137: Can Bootloader be placed in upper Bank 0?

Part Number: TMS570LS3137

Hello,

Can the Bootloader be placed in upper sectors in Bank 0 in lieu of Sectors 0-3 (0x000_0000 - 0x0001_FFFF)? 

I'm trying to figure a way to prevent execution of the Bootloader code after it has transferred control to the Application code.  I can't set sector 0 to non-executable because then the vectors won't work.

Thanks, Charlie Johnston

  • Hello Charlie,

    Theoretically, I don't see any reason this can't be done other than still needing some element of the boot loader at address 0x0 since this is where execution starts. The small portion there would be very small but need to support vectoring program flow on power up as well as the boot loader functionality to copy the image into RAM for RAM execution during boot loader functions. The real danger is if during re-programming a device, the routines at 0x0 were erased and programming is interrupted. This would leave the device bricked in the field update scenario.

    I suppose what you are really stating (given the non-executable state of the sector you are moving to) is that the dangerous portion (primary meat of the programming operation) of the boot loader would be placed somewhere safe and loaded into RAM for execution when appropriate? Is this a correct characerization? If this is the case you could also store the object code of the boot loader in the data Flash (FEE area) if not used for EEPROM emulation since the device architecture itself doesn't support execution from the FEE bank.
  • Hi Chuck,
    That's a good idea. Then the only code that needs to be protected from execution would be the code that loads from the FEE bank to RAM.
    Our primary concern is certifying the Bootloader to DO-178C DAL D instead of DAL A. We can't certify DAL A without the F021 API source which is not (easily) available.
    We could avoid the bricking scenario with the 3137 by dedicating all of Bank 1 to the Bootloader, then having the Application set it to non-executable.
    Thanks, Charlie