TS-4100 U-Boot USB boot

From embeddedTS Manuals
Revision as of 14:11, 8 July 2019 by Kris (talk | contribs) (Update for TS-4100, matches current scripts there)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

The one addition is to create the tsinit.scr file in the root of the USB drive. In order to do this, a U-Boot script must be created and then converted to the .scr format. This process requires a set of U-Boot specific tools. These are available on most every l=Linux distribution, the instructions below are for Debian, either run on a host PC or on the device itself. See the package installation documentation for other respective distributions.

Install U-Boot tools in Debian

apt-get update && apt-get install u-boot-tools -y

Create the file tsinit.source in the root of the USB drive with the Linux filesystem:

# Prepare with:
# mkimage -A arm -T script -C none -n 'imx6ul usb' -d tsinit.source tsinit.scr

# DO NOT MANUALLY EDIT THE .scr FILE

if load usb 0:1 ${loadaddr} /boot/ts${model}-fpga.vme;
        then fpga load 0 ${loadaddr} ${filesize};
fi;

if load usb 0:1 ${fdtaddr} /boot/imx6ul-ts${model}-${baseboardid}.dtb;
        then echo "${baseboardid} detected;"
else
        echo "Booting default device tree";
        load usb 0:1 ${fdtaddr} /boot/imx6ul-ts${model}.dtb;
fi

if load usb 0:1 ${loadaddr} /boot/zImage;
        setenv bootargs root=/dev/sda1 rootwait rw ${cmdline_append} bbid=0x{$baseboardid} bbrev=0x${baseboardrev};
        run silowaitcharge;
        bootz ${loadaddr} - ${fdtaddr};
else
        echo "Failed to load kernel from USB";
fi

Then in the same directory generate the tsinit.scr file:

mkimage -A arm -T script -C none -n 'imx6ul usb' -d tsinit.source tsinit.scr