{{template>en:templates:tabs_yocto_bootstrap|product_type="Embedded module"|lang="en"|mod_name="tqmls1028A"|mod_name_head="TQMLS1028A"|mod_arch="layerscape"|bsp_name="linux"|build_system="yocto"|build_system_head="YOCTO"|bsp_name_head="Linux"}}
\\
\\
===== Updating existing firmware over ethernet =====
\\
A good approach to update the firmare components U-Boot,Linux kernel and devicetree in a running system it to load them from a tftp server. \\
This process requires a running TFTP server, please see the following page [[en:general_information:tftp|how to setup TFTP Server]].
After setting up the TFTP server, the binaries to be updated must be copied into the TFTP directory.
==== Update Process ====
1. Setup the Starterkit to boot from eMMC or SD \\
2. Connect the kit to the network with TFTP server supplying the binaries via ethernet on connector@eth_prime@ \\
3. Power up the system and interrupt the boot process in U-Boot\\
Hit any key to stop autoboot: 0
=>
3. Setup the ethernet interface:
++++ Set network settings manually |
Provide the correct network configuration in U-Boot:
=> setenv autoload no
=> setenv serverip (IP address of your TFTP server 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)
++++
++++ Set network settings using DHCP |
If a DHCP server is available in the network, the interface can be configured by the server:
=> setenv autoload no
=> setenv serverip (IP address of your TFTP server e.g.: setenv serverip 192.168.100.110)
=> dhcp (get IP from server)
++++
\\
4. Set U-Boot variable **mmcdev** according to the drive you want to write to.
=> setenv mmcdev
{{section>.:..:..:data#device_assignment&noheader}}
**5. Set U-Boot environment variables according to the image file name stored on the tftp server:**
++++ eMMc/SD Card |
* For the pre-Bootloader on eMMC/SD Card : => setenv pbl_mmc_file (e.g.: setenv pbl_mmc_file bl2_sd.pbl)
* For U-Boot update on eMMC/SD Card : => setenv uboot_mmc_file (e.g.: setenv uboot_mmc_file fip_uboot.bin)
++++
++++ QSPI NOR |
* For the pre-Bootloader on QSPI NOR : => setenv pbl_spi_file (e.g.: setenv pbl_spi_file bl2_flexspi_nor.pbl)
* For U-Boot update on QSPI NOR : => setenv uboot_spi_file (e.g.: setenv uboot_spi_file fip_uboot.bin)
++++
++++ Devicetree |
* MBLS1028A-IND: For Device Tree update on eMMC/SD Card and QSPI NOR : => setenv fdt_file (e.g.: setenv fdt_file fsl-ls1028a-mbls1028a-ind.dtb)
* MBLS1028A: For Device Tree update on eMMC/SD Card and QSPI NOR : => setenv fdt_file (e.g.: setenv fdt_file fsl-ls1028a-mbls1028a.dtb)
++++
++++ Kernel|
* For Kernel update on eMMC/SD Card and QSPI NOR : => setenv kernel_file (e.g.: setenv kernel_file Image.gz)
++++
\\
**6. Perform Update: **
++++ Pre-bootloader|
eMMC/SD Card : => run update_pbl_mmc
QSPI NOR : => run update_pbl_spi
++++
++++ U-Boot|
eMMC /SD Card : => run update_uboot_mmc
QSPI NOR : => run update_uboot_spi
++++
++++ Devicetree|
eMMC /SD Card : => run update_fdt_mmc
QSPI NOR : => run update_fdt_spi
++++
++++ Kernel|
eMMC /SD Card : => run update_kernel_mmc
QSPI NOR : => run update_kernel_spi
++++
\\
7. Please also note the [[en:layerscape:tqmls1028a:mbls1028a:dip_switches|MBLS1028A DIP switch settings]] regarding the boot source.