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.

TivaWare ethernet bootloader update procedure

Hi,

I've read the bootloader documentation which comes with the TivaWare distribution, but the ethernet section is a bit short and I'm missing some information. Is it (like for the serial protocol) possible to send the application address together/before with the firmware image when using ethernet to update an application? Or is the target address statically determined in bl_config?

Thanks!

  • Hello Johan

    The Etherent boot loader requires that the DHCP server assign the IP address for the end device. This IP address is required to send the Firmware image binary to the TM4C129x device.

    Regards
    Amit
  • Hi Amit,

    thanks for your reply. I was actually referring to the target address in flash, to which the application is written. Is there any control over this in the protocol, or is it only possible to send a firmware image over ftp? I'd like to have a secure update procedure, always keeping at least one valid image in flash, sending an image to a "free slot" in flash, and tagging it as the valid image after download/verification.
  • Hello Johan,

    You would be referring to the Flash Based Boot Loader in that case? If that is the case then the example code that does so is

    D:\ti\TivaWare_C_Series-2.1.2.111\examples\boards\dk-tm4c129x\boot_emac_flash

    where a flash based boot loader is located at 0x0 and the application image at 0x4000 and the binary for the application image is stored from 0x4000 onwards.

    Regards
    Amit
  • Thanks Amit. So as I understand, and I think I found somewhere else as well, the ROM bootloader does not support ethernet?


    I will have a go with the boot_emac_flash example and see if I can extend it to support flashing to multiple locations in flash. That shouldn't be a big problem I guess, but have to figure out a way to stuff the target info in a header in front of the firmware as well.

  • Hello Johan

    The ROM supports a basic Ethernet boot loader. However any thing "fancy" that needs to be done requires a Flash based boot loader.

    Regards
    Amit
  • Hi,

    I'd like to add that I'm using the ROM Bootloader via Ethernet and the BOOTP / TFTP works for me (with a TM4C129). After disabling systick and the processor interrupts, ROM_UpdateEMAC(clockrate); puts me into the bootloader.
    By following the logic in boot_loader\bl_emac.c, I can send data to the board and update the image and see it run after a reset. So the basic mechanism works.

    I'm not sure about being able to write an image to a higher (?) address using that ROM based method. I have a feeling that the answer is "no" because it looks like bl_emac.c :: ParseTFTPData(void) expects sequential blocks starting from 0x4000 (I think) with no gaps.

    Not sure that it helps but if you want a "gap" then maybe you do need the Flash based version. If you don't need a "gap" then the ROM bootloader should be ok.

    Simon
  • Hello Simon,

    That is because the APP_START_ADDRESS is a define from the bl_config.h that fixes thus location. You may want to change the same from a define to a variable and parse it as an argument.

    Regards
    Amit