Use an SD card to install a new firmware.
The following commands write the image from the host system to the SD card:
$ cd <BSP project>/platform-<platform_name>/images $ sudo dd if=@bsp_image_name@-<build Timestamp>.rootfs.wic of=/dev/sdc bs=1M conv=fsync #Assuming the SD card is assigned to /dev/sdc
You have to use the raw device of the SD card not a partition!
The command dmesg can be used to identify the SD card:
dmesg #plug in SD Card into socket dmesg
To update bootloader / kernel / devicetree in a running system you have to copy the images in your tftp directory and upload them to the eMMC or SD Card.
Please see How to setup TFTP Server
The variables can be saved with the command saveenv to keep the values even after a reboot
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 <Nr.>
3. Connect device via ethernet on @eth_prime@ to a tftp server supplying the image
4. Prepare network interface:
Set network settings using DHCP
5. Provide U-Boot the file name of the desired image on the tftp server:
6. Perform Update:
You have to set the number of blocks according to the image size to read entire data that is stored on the SD card and write the same number of blocks to the eMMC.
Formula to calulate the number of blocks
Size of SD card image in bytes / 512. Convert the result to a hex value.
Since the data is stored in the SDRAM on the module the size of the image must not exeed the size of the SDRAM.
2. Save environment with the saveenv command (optional):
=> saveenv
3. run the following command to start the update procedure:
=> run install_firmware
To boot the @mod_name@ from network you need a working bootloader in eMMC/SD-card or SPI-NOR (placement option on @mod_name@ ) which is able to get the kernel image over tftp and to provide the kernel with commandline settings for NFS. The dtb-file and kernel image have to be provided via tftp and the rootfs via nfs.
The bootloader environment needs to be modified to work with your tftp-server and your nfs-server.
1. Prepare network interface:
Set network settings using DHCP
2. set the Uboot variables for TFTP and NFS:
3. Run the uboot script to boot from nfs: