===== Updating existing firmware over ethernet =====
\\
This tutorial describes hoe to update the firmware files in U-Boot.
==== Prerequisites ====
* Configured TFTP Server on development host, please see [[en:general_information:tftp|How to setup TFTP Server]]
**1. Boot from eMMC or SD and stop autoboot in U-Boot**\\
Hit any key to stop autoboot: 0
=>
\\
**2. Set U-Boot variable //mmcdev// according to the drive you want to write to**
=> setenv mmcdev
++++mmcdev|
TQMa6x, TQMa6ULx, TQMa7x:\\
//mmcdev 0// = eMMC\\
//mmcdev 1// = SD Card\\
\\
TQMa335x:\\
//mmcdev 0// = SD Card\\
//mmcdev 1// = eMMC\\
\\
TQMLS102xA:\\
mmcdev depends on the placement of eMMC on your module!\\
//mmcdev 0// = SD Card **or** eMMC
++++
**3. Connect target device via ethernet to a tftp server supplying the frimware images**\\
**4. Provide the correct network configuration in U-Boot:**
* => setenv autoload no
* => setenv serverip (e.g.: setenv serverip 192.168.100.110)
* => setenv ipaddr (e.g.: setenv ipaddr 192.168.100.111)
* => setenv netmask (e.g.: setenv netmask 255.255.255.0)
**5. Provide U-Boot the file name of the desired image on the tftp server:**
* ++For U-Boot update:| \\
\\
TQMa6x, TQMa6ULx, TQMa7x, TQMLS102xA:\\
=> setenv uboot \\
\\
TQMa335x: please see [[en:arm:tqma335x:linux:ptxdist:deployment#Updating the firmware|Updating the firmware]]\\
\\
++
* ++For Device Tree update:| \\
\\
TQMa6x, TQMa6ULx, TQMa7x, TQMLS102xA:\\
=> setenv fdt_file \\
\\
TQMa335x: please see [[en:arm:tqma335x:linux:ptxdist:deployment#Updating the firmware|Updating the firmware]]\\
\\
++
* ++For Kernel update:| \\
\\
TQMa6x, TQMa6ULx, TQMa7x, TQMLS102xA:\\
=> setenv zimage \\
\\
TQMa335x: please see [[en:arm:tqma335x:linux:ptxdist:deployment#Updating the firmware|Updating the firmware]]\\
\\
++
**6. Perform Update:**
* ++U-Boot update:| \\
TQMa6x, TQMa6ULx, TQMa7x, TQMLS102xA:\\
=> run update_uboot\\
\\
TQMa335x: please see [[en:arm:tqma335x:linux:ptxdist:deployment#Updating the firmware|Updating the firmware]]\\
\\
++
* ++Device Tree update:| \\
TQMa6x, TQMa6ULx, TQMa7x, TQMLS102xA:\\
=> run update_fdt\\
\\
TQMa335x: please see [[en:arm:tqma335x:linux:ptxdist:deployment#Updating the firmware|Updating the firmware]]\\
\\
++
* ++Kernel update:| \\
TQMa6x, TQMa6ULx, TQMa7x, TQMLS102xA:\\
=> run update_kernel\\
\\
TQMa335x: please see [[en:arm:tqma335x:linux:ptxdist:deployment#Updating the firmware|Updating the firmware]]\\
\\
++
The u-boot update scripts automatically implement the selection of the primary copy to boot.