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.

TM4C129EXL Firmware update over Ethernet

Other Parts Discussed in Thread: TM4C129ENCPDT, EK-TM4C129EXL, EK-TM4C1294XL

Hello,

I would like to prepare my board for remote firmware update. 

What I want to achieve is quite simple. I send a TCP/IP request to the uC to initialize the  fw update and after (or before ) I send the new firmware data as tcp packet. I don't want to use the LM Flash Programmer application to make the fw upgrade, I would like to write a simple application that make this fw transfer. I dont think this would be complicated. 

I started the work as  suggested but I some questions in this thread. He recommends to ask for help here because this topic is more related to TivaWare rather than TI-RTOS. My "getting started" link is here: 

http://processors.wiki.ti.com/index.php/TI-RTOS_USB_DFU

My most recent questions are found here.

The last reply on this thread: 

https://e2e.ti.com/support/embedded/tirtos/f/355/p/530070/1930868#1930868

Could you help me to get this job done? Thank you very much.

  • Hello Daniel,

    The ROM Bootloader and the Flash Bootloader (in the folder ./bootloader) uses BOOTP for IP address management and TFTP for file transfer. If you want to use these bootloaders as is, then your application should be able to act as BOOTP server and TFTP server.

    The example "./examples/boards/dk-tm4c129x/boot-emac-flash", configures the bootlaoder code in "./bootloader" to work over Ethernet. The applciations that work with this bootlaoder are "./examples/boards/dk-tm4c129x/boot_demo_emac_flash" and "./examples/boards/dk-tm4c129x/boot_demo_flash". You can use "LM Flash Programmer" to test the workflow.

    With ROM Bootloader, any application, that is programmed to run with JTAG can be used. There is no need to modify the Linker Script. The entry into ROM Bootlaoder can be managed by using the BOOTCFG register, or my erasing the flash.

    Thanks,
    Sai
  • Hello,

    Thank you for your reply. 

    1. boot-emac-flash\target_config.ccxml is targeted to TM4C129ENCPDT. As I uploaded this binary with CCS and restarted the uC, I could use the LM Flash Programmer to upload any bin to the target. This part seems fine.
    2. The other 2 examples should be modified to work with EK-TM4C129X instead of DK-TM4C129X am I right? Seems so because there is no LCD display on the EK board. What modification should I make? When I change the CCS General -> Variant to TM4C129ENCPDT I got many errors. 

    How to go on?

  • Dont you have any guide like processors.wiki.ti.com/.../TI-RTOS_USB_DFU but for the Ethernet?
  • Hello Daniel,

    The wiki you pointed to only shows the steps on how to program a Bootloader and then the application (using the bootloader). From your earlier post, I believe that you got the process right.

    If you are using the EK-TM4C129EXL or EK-TM4C1294XL boards, then you are right - the examples "./examples/boards/dk-tm4c129x/boot_demo_emac_flash" and "./examples/boards/dk-tm4c129x/boot_demo_flash" should be ported to the board you are using.

    For porting, the best thing to do is
    * Copy these examples to the folder of the board you are using
    * Remove LCD related code
    * In the project settings, select the appropriate device and modify the definition *PART_XXXX" accordingly

    After this, I believe the changes should be pretty minimal.

    Thanks,
    Sai
  • Thank you for your reply. Based on the dfu usb firmware update guide i should use the boot-emac-flash and update the proper vectors to make it work over ethernet instead of usb?

  • Hello Daniel,

    The examples "./examples/boards/dk-tm4c129x/boot_demo_emac_flash" and "./examples/boards/dk-tm4c129x/boot_demo_flash" already modifies the vector table location. You should not be updating them unless you want to move them to a different location from what the application already does.

    Also as a reminder, these application only work with the example "./examples/boards/dk-tm4c129x/boot_emac_flash".

    Thanks,
    Sai
  • I read a post about that boot_emac_flash in the dk folder can work out of the box on ek. Cn you confirm that?
    well the only thing to do is to port any of boot_demo_flah to ek.
    thank you
  • Yes - I believe that the "boot_emac_flash" works out of box with EK-TM4C1294XL board.

    As mentioned in my earlier post, you will have to port either of the following two examples "./examples/boards/dk-tm4c129x/boot_demo_emac_flash" and "./examples/boards/dk-tm4c129x/boot_demo_flash" to work with the "boot_emac_flash".

    Thanks,
    Sai
  • Hello,

    I could make it work. Thank you very much for your help and support.
  • Hello Daniel

    I think your original post mentioned that you do not want to use LFlashProgrammer but a light weight utility

    Regards
    Amit
  • Hello,

    Thank you to remaind me that I have to manage somehow the upload process too.  How can can i do that? is there any open library for this purpose?

  • Hello Daniel,

    I would not say an open library but did you check eflash.exe in D:\ti\TivaWare_C_Series-2.1.2.111\tools\bin and the associated source code in D:\ti\TivaWare_C_Series-2.1.2.111\tools\eflash ?

    Regards
    Amit
  • Thank you! works as expected!
  • Hello Daniel,

    You are welcome

    Regards
    Amit
  • Daniel,

    Glad that I could be of help!

    Thanks,
    Sai