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.

TM4C1294NCPDT: TM4C ROM bootloader for field update solution

Part Number: TM4C1294NCPDT

Team,

is there a way to call the standard ROM bootloader from within an application?

My customer wants to use the ROM bootloader to bring the device into a state to be able to make a field update (initialized USB connection).
The ROM bootloader which is also used to initialize the "plain vanilla" chips would be an ideal solution.

Thanks and regards!

  • Hello FRAMziskus

    Yes. There are functions called ROM_UpdateXXX where XXX would be UART, USB, I2C, SPI and Ethernet. These can be called from the application after configuration of the IO and peripheral is performed. There is an example in TivaWare which does the same.
  • Hello Amit,
    I think this could be helpful, but my customer is actually looking for something different (if this is possible).

    They are trying to implement a solution that allows field updates even if the data in the flash is corrupted/broken.
    An easy solution would be to invoke the standard ROM bootloader as it initializes the USB interface on its own.

    Is there a way to invoke the ROM bootloader from within an application?

    As I understand, the update functions you're describing above need separate initialization of the according peripheral.

    Thanks!
  • Hello FRAMziskus

    I am not sure what it means by the data in the flash is corrupted/broken. If the data residing in the flash is not correct, then it cannot be guaranteed that the standard ROM boot loader can be invoked as the corruption may be on the instructions to jump to ROM?
  • Hello Amit,
    ok, got your point and I will inform the customer.

    Is there in general a possibility to call/to invoke the ROM bootloader from within an application?

    Regards
  • Hello FRAMziskus

    Yes, it is possible to call the ROM boot loader directly from the application. An example for the same is in TivaWare

    D:\ti\TivaWare_C_Series-2.1.3.156\examples\boards\dk-tm4c129x\boot_demo_usb
  • Thanks Amit!

    This example requires the application to initialize the USB port before it runs the bootloader.
    The standard ROM bootloader that is used on unprogrammed devices does not have this requirement as it does the initialization on its own.

    Is there a way to boot the device into this bootloader, maybe by a certain pin configuration?
  • Hello FRAMziskus

    Yes, it is possible to use the BOOTCFG register to configure one of the pins to check for a specific polarity level at pad reset or power on. The BOOTCFG register needs to be committed so that at pad reset or power on the value does not get the register to revert to the reset value.
  • Hi Amit,
    is there a description in the User's Guide we could reference to the customer or maybe a wiki entry?
    I would like to give them a more detailed description.
    Thanks!
  • Hello FRAMziskus

    The register is documented in the data sheet. I believe the customer should "read" the data sheet and ask more specific questions, based on their reading.