{{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.