boot.scr
U-Bootが処理するスクリプトです。
ファイル名は別のものにすることもできますが、標準では第1パーティション(FATかextX)の /boot.scr か /boot/boot.scr がロードされるようになっています。
$ mkimage -A arm -O linux -T script -d boot.cmd boot.scr
この例ではカレントディレクトリのboot.cmdをboot.scrに変換します。
mkimage コマンドは Arch Linux では uboot-tools パッケージに入っています。
boot.cmd
setenv mtdparts spi0.0:512k(U-Boot),64k(boot.scr),5M(zImage),64k(dtb),7M(ro),-(rw)
if load mmc 0:1 ${fdt_addr_r} /${fdtfile};then
load mmc 0:1 ${kernel_addr_r} /zImage
setenv bootargs mtdparts=${mtdparts} root=/dev/mmcblk0p2 init=/init.sh console=ttyS0,115200
bootz ${kernel_addr_r} - ${fdt_addr_r}
fi
setenv bootargs mtdparts=${mtdparts} root=/dev/mtdblock4 init=/init.sh console=ttyS0,115200
mtd read nor0 ${kernel_addr_r} 0x90000 0x500000
mtd read nor0 ${fdt_addr_r} 0x590000 0x10000
bootz ${kernel_addr_r} - ${fdt_addr_r}
MTD(SPIフラッシュ)とSDに両対応させたスクリプトです。
シェルスクリプト的なものですが、U-Bootのコマンドが利用できます。
MTDブートについては
SPIフラッシュを参照してください。