How to update U-Boot on pico-imx7d board
----------------------------------------

Required software on the host PC:

- imx_usb_loader: https://github.com/boundarydevices/imx_usb_loader

Build U-Boot for pico:

$ make mrproper
$ make pico-imx7d_defconfig
$ make

This generates the SPL and u-boot.img binaries.

1. Loading U-Boot via USB Serial Download Protocol

Note: This method is convenient for development purposes.
If the eMMC has already a U-Boot flashed with DFU support then
the user can go to step 2 below in order to update U-Boot.

Put pico board in USB download mode (refer to the PICO-iMX7D Quick Start Guide
page 3)

Connect a USB to serial adapter between the host PC and pico.

Connect a USB cable between the OTG pico port and the host PC.

Open a terminal program such as minicom.

Copy SPL and u-boot.img to the imx_usb_loader folder.

Load the SPL binary via USB:

$ sudo ./imx_usb SPL

Load the u-boot.img binary via USB:

$ sudo ./imx_usb u-boot.img

Then U-Boot starts and its messages appear in the console program.

Use the default environment variables:

=> env default -f -a
=> saveenv

2. Flashing U-Boot into the eMMC

Run the DFU agent so we can flash the new images using dfu-util tool:

=> dfu 0 mmc 0

Flash SPL and u-boot.img into the eMMC running the following commands on a PC:

$ sudo dfu-util -D SPL -a spl

$ sudo dfu-util -D u-boot.img -a u-boot

Remove power from the pico board.

Put pico board into normal boot mode.

Power up the board and the new updated U-Boot should boot from eMMC.
