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.
I checked the forums related to firmware upgrade over Ethernet. I found only option to flash over Ethernet is LM flash programmer but that tool wont support for linux.
i checked uniflash tool but does not support ethernet flashing.
can you please provide me the possible way to upgrade firmware through ethernet in linux.
or
if you can provide me the eflash.exe file for linux platform it will be more helpful.
Thanks
Hello Kishore,
The eflash tool offered via TivaWare is the way to go for this. We don't have a Linux-built .exe for that, our build scripts only run in Windows environment. But you can take the source code in tools\eflash to implement that command line based solution in Linux. That is what we have recommended to prior customers and they have been successful with it - we just don't have it readily pre-built to share unfortunately.
Hello Ralph Jacob,
Thanks for your reply,
We dont have any other way to flash the firmware over Ethernet in Linux. TI is not providing any tool or script to flash over Ethernet in linux.
If you have anything to do on my requirement suggest that . please share the required solution for my requirement.
Thanks
Hello Kishore,
Unfortunately what I stated above is the extent of our offering Linux with TM4C. I don't have any further solutions to offer.
Hi Ralph Jacobi
As you suggested, ported the eflash tool to the Linux platform.
While running the application,able to establish socket connection.
But when calling the function “SendFirmwareUpdateMagicPacket” sendto is failing giving an error code:13(Permission denied ),even running the application with sudo permissions.
Can you please guide why this is happening?
Thanks
Hello Kishore,
We don't have Linux expertise but I asked our Ethernet expert for his thoughts and in a brief search he saw that that in the socket option the Broadcast needs to be enabled with:
setsockopt(sock, SOL_SOCKET, SO_BROADCAST, &on, sizeof(on));
Sources:
https://www.experts-exchange.com/questions/20862022/sendto-Permission-denied.html
https://comp.unix.programmer.narkive.com/dTeK686I/sendto-permission-denied-in-linux-systems
I would recommend you do further searches if that doesn't resolve the issue.
I was looking at TivaWare_C_Series-2.2.0.295/tools/eflash/bootp_server.c, and the CreateSocket() function should already be setting the SO_BROADCAST option on the socket used for sending the magic packet.Ralph Jacobi said:We don't have Linux expertise but I asked our Ethernet expert for his thoughts and in a brief search he saw that that in the socket option the Broadcast needs to be enabled with:setsockopt(sock, SOL_SOCKET, SO_BROADCAST, &on, sizeof(on));
I haven't yet attempt to run the code to try and investigate the problem.
Hi Jacobi and Chester Gillon
setsockopt() function is passed with SO_BROADCAST option and all the socket are created successfully and started sending magic packet.
But it is "Waiting for packet ...", it is keep on waiting in "select" function returning zero always in below condition (On Wireshark we have observed that, EVK is sending bootp packet but not received by the eflash application)
if(select(i32AddrLen + 1, &sDescriptors, 0, 0, &sTime) != 0)
since it is not entering into if condition, eflash tool is waiting for bootp packet and sending the magic packet infinately.
What could be the reason for this behaviour?
Thanks
Hi,
kishore k said:since it is not entering into if condition, eflash tool is waiting for bootp packet and sending the magic packet infinately.
What is the eflash command you are giving on the command line? Did you provide the correct MAC address and IP address for the MCU?
Did you get the same eflash to work in Windows machine?
You said the EVM is sending the bootp packet. How many times of the bootp requests did you see on wireshark?
Can you show the wireless capture. Please filter out network traffic that is not related the bootloading .
Hi charles tsai
Thanks for the support.
My issue resolved,i am able to flash through eflash.
I have one more requirement, i need to jump to bootp mode from application.
Currently first flashing boot_emac_flash example to make the board into bootp mode. Then using eflash, upgrading the application area.
Is there any way to directly jump to bootp mode from the application area without doing manually ??
Thanks
Hi,
Please refer to the boot_demo_emac_flash example. This is an application that demonstrates jumping from the application to the bootloader when the application detects the magic word from the host. You can also implement such that when an event (e.g. a switch is pressed), it will jump back to the bootloader. Look at the code where it calls the SoftwareUpdateBegin() to jump back to the bootloader.
Please also share with us how did you resolve the eflash issue on the Linux side. This will benefit the community who have similar trouble.
Hi Charles tsai,
Thanks,Your suggestion solved my requirement.
Please also share with us how did you resolve the eflash issue on the Linux side. This will benefit the community who have similar trouble.