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.

EK-TM4C1294XL: How can I use the emac bootloader of TM4C1294XL?

Part Number: EK-TM4C1294XL

We are currently testing on the evaluation board "TM4C1294XL" to implement the Ethernet MAC bootloader function.

What would be the easiest way to use the EthernetMAC bootloader feature?

By the way, I performed the steps shown in the answer at the URL below, but on the LM flash programmer, although "program complete -44272 Bytes Programmed" is displayed, the LED does not blink, indicating that it is not working properly. 

TM4C1294NCPDT: LM Flash Programmer stuck attempting to connect - Arm-based microcontrollers forum - Arm-based microcontrollers - TI E2E support forums

  • Hi Muneto-san,

      I want to make sure you are trying to load the example file at C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\boot_demo_emac_flash\ccs\Debug\boot_demo_emac_flash.bin. As you can see in Windows Explorer, the boot_demo_emac_flash.bin is 28kB, not 44kB. In my second screenshot where I just run the same Ethernet bootloader, it shows a total of 27888 bytes transferred which confirms the same size as Window Explorer. This is the reason I want to check with you if you are loading boot_demo_emac_flash.bin or your own application firmware. Could you try to load boot_demo_emac_flash.bin again? The boot_demo_emac_flash.bin will blink the LED after loaded. I can repeatedly press the 'Program' button and  see the same firmware transferred every time successfully.

  • When I checked boot_demo_emac_flash.bin immediately after importing it to CCS, it was 27888 bytes, so when I wrote that, the LED blinked. It seems that the file used in the previous question was a bin file generated using a different method, so it did not work properly.

    Is there a way to write to the CPU in a similar way for projects other than boot_demo_emac_flash.bin and have it work properly?

  • Hi,

      I have several comments.

    When I checked boot_demo_emac_flash.bin immediately after importing it to CCS, it was 27888 bytes

    Please bear in mind that boot_demo_emac_flash.bin is an example Ethernet application which is built to start at 0x4000. If you load this program using CCS, then there is nothing at 0x0. The processor after reset will start at 0x0 and find nothing at 0x0. It will not run.   boot_demo_emac_flash.bin needs to work along with the Ethernet bootloader. The Ethernet bootloader is called boot_emac_flash. The bootloader resides at 0x0. 

    Normally, you would load the bootloader boot_emac_flash using JTAG. After loaded, it resides starting at 0x0. The bootloader boot_emac_flash will run to download the application boot_demo_emac_flash.bin from the Ethernet port. 

    It seems that the file used in the previous question was a bin file generated using a different method, so it did not work properly.

    The file use in the previous question is a bin file for different development board. That bin file is in C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\dk-tm4c129x\boot_demo_emac_flash\ccs\Debug\boot_demo_emac_flash.bin which is 54kB. Note that bin file is for the DK-TM4C129X board, not for EK-TM4C1294XL LaunchPad. 

    Is there a way to write to the CPU in a similar way for projects other than boot_demo_emac_flash.bin and have it work properly?

    I don't understand your question here. If you are looking for Ethernet bootloading then the examples are:

    C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\boot_emac_flash (this is an Ethernet bootloader)

    C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\boot_demo_emac_flash (this is an Ethernet application)

    You are free to create your own Ethernet applications by referencing the examples. 

  • thank you. boot_demo_emac_flash worked normally.

    As a next step, I would like to write a different project than boot_demo_emac_flash from the LM FLASH programmer and see if it works properly. I'm currently trying to write a sample program "hello", but it's not working properly.

    I performed the following steps:

    ① Change #define APP_BASE 0x00000000 to 0x00004000 in hello_ccs.cmd of Hello Project

    ② Erase the contents of the CPU with LM Flash Programmer

    ③Write boot_emac_flash from CCS

    ④Write hello.bin with LM Flash Programmer

    After this, the program seems to have completed, but when I look at the UART communication, the program itself is not working. Problem with the steps? Let us know if you need additional steps.

  • Hi,

      I cannot replicate your problem. The only thing I change for the hello project is to change the APP_BASE to 0x4000 and adjust the length of the flash from 0x100000 to 0xFC000. Please find attached .cmd and also the bin file. I first load the boot_emac_flash from CCS. After the bootloader is running, I use the LM flash programmer to download the hello_0x4000.bin. After the firmware is downloaded, I reset the board and I can see LED blinking and the "Hello World!" printed on the terminal. 

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/908/hello_5F00_ccs.cmdhttps://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/908/hello_5F00_0x4000.bin