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.

CCS/TM4C1294NCPDT: Loading a program using Ethernet Bootloader

Part Number: TM4C1294NCPDT
Other Parts Discussed in Thread: EK-TM4C1294XL

Tool/software: Code Composer Studio

Hello ,

I want to load the program using Ethernet Bootloader instead of using USB for programming my TIVA C Board .Please suggest me whether it is possible or not and if yes then provide me proper documentation .

Thanks ,

Pavan

  • Hello Pavan,

    That would certainly be possible to do! Please see our Boot Loader User's Guide for details on the Ethernet Boot Loader: www.ti.com/.../spmu301d.pdf

    Tool wise you may find the LM Flash Programmer tool useful as in Manual Configuration you can set the interface to Ethernet and then connect to a TM4C with it for flashing firmware.
  • Thanks Ralph .i think this will resolve the issue

    Thanks,
    Pavan
  • Hello Ralph ..
    The document that you have shared in above post doesn't explore much about Ethernet bootloading.
    I tried various examples from various forum...but it didnt help!!
    The LM Flash programmer tries to connect sometimes but didn't connect as well as it sometimes gives error that
    BOOTP server not started .
    I also tried the DK board example but it also didn't work.
    I tried editing enet_lwip project by my choice where i created a call back function which will be called when a magic packet is received from LM Programmar which will set the global bit and this will call SystemUpdateBegin();

    I would really appreciate if you could help me to come out of this situation by providing proper Documentation ,Application note or Coding Example .

    Thanks and Regards,
    Pavan
  • Hello Pavan,

    The documentation I provided is for the ROM Bootloader which operates as described. There is also a code example for a Flash based Ethernet bootloader in TivaWare at: [Install Path]\TivaWare_C_Series-2.1.4.178\examples\boards\ek-tm4c1294xl\boot_emac_flash

    I would use this to start with if you want to work with code you can modify, and I would not start with enet_lwip as the boot_emac_flash has the bootloader aspect already included.

    In boot_demo_emac_flash.c file, there is a description of how the demo works, hopefully that will be able to guide you well enough.

  • Hello Ralph ,

    Please find an attachment containing .zip of the project that i have created .I would really appreciate if you could suggest me specific changes in specific files.

    In the project that i have uploaded ,callback(SoftwareUpdateRequestCallback) for SoftwareUpdateIniti() which will set the global variable g_bfFrmwareUpdate .This global variable will break the loop while(!g_bfFrmwareUpdate); and will call function softwareUpdateInit(SoftwareUpdateRequestCallback); .But the problem is that call back function is not setting the global variable g_bfFrmwareUpdate to TRUE  . According to my thinking ,when the magic packet will be received the callback function will get called but it is not happening this way .

    1)I am loading the bootloader boot_emac_flash .

    2)With the help of LM Flash programmer ,I am loading the enet_lwip.bin program with program offset of 0x00004000 and Erase necessary pages .

    3)Then in configuration tab i select Manual configuration ->Ethernet ->IP and ->MAC Address 

    4)In program tab i select the file which i want to load with ethernet .

    5)Click on Program

    But the result that i get after this is  LM Flash programmer tries " attempt to connect " infinitely .  I am not understanding what is this situation ,because same code is getting uploaded using UART bootloader .Please suggest me the proper way to come out of this situation .

     

    Thanks and Regards,

    Pavan 

     

     enet_lwip.rar

  • Hello Pavan,

    I am not sure what you are trying to do with the enet_lwip project, though I can recognize now that my instructions were not as clear as they could have been. Before trying any custom projects or modifications yourself, you should leverage the example combination we have already setup.

    There are two projects for this.

    One is boot_emac_flash

    The other is boot_demo_emac_flash

    I didn't call this out correctly before, my apologies.

    In boot_demo_emac_flash, the following instructions are given:

    //! An example to demonstrate the use of remote update signaling with the
    //! flash-based Ethernet boot loader.  This application configures the Ethernet
    //! controller and acquires an IP address which is displayed on the screen
    //! along with the board's MAC address.  It then listens for a ``magic packet''
    //! telling it that a firmware upgrade request is being made and, when this
    //! packet is received, transfers control into the boot loader to perform the
    //! upgrade.
    //!
    //! This application is intended for use with flash-based ethernet boot
    //! loader (boot_emac).
    //! 
    //! The link address for this application is set to 0x4000, the link address
    //! has to be multiple of the flash erase block size(16KB=0x4000).
    //! You may change this address to a 16KB boundary higher than the last
    //! address occupied by the boot loader binary as long as you also rebuild the
    //! boot loader itself after modifying its bl_config.h file to set
    //! APP_START_ADDRESS to the same value.
    //!
    //! The boot_demo_flash application can be used along with this application to
    //! easily demonstrate that the boot loader is actually updating the on-chip
    //! flash.

    The key here is: "This application is intended for use with flash-based Ethernet boot loader (boot_emac)"

    That actually should read "boot_emac_flash", but anyways, the point is that you need the boot_emac_flash project to work with the demo project.

    The boot_demo_emac_flash project is an actual Ethernet application/demo which when built will provide a .bin file.

    The boot_emac_flash project is the boot loader project itself. That is what you load onto the TM4C board, and then when it is loaded, you can then boot load in the boot_demo_emac_flash project.

    The SW-EK-TM4C1294XL-UG-2.1.4.178.pdf also has basic overview info about each project.

    Please try that combination of projects to verify you have the boot loader working first, and then you can try and work on your own program afterwards.