ブログ

Armadillo-640:SDブート起動用の環境変数設定済みのU-boot作成方法

at_kazutaka.bito
2019年7月1日 10時13分

Armadillo-640 製品マニュアル
SDブートの活用

の手順では、
14.4. SDブートの実行
のとおり、最初の起動時にU-bootの環境変数をコンソールから設定する必要があります。

ここでは、SDブート起動用の環境変数設定済みのU-bootを作成します。
ここでの手順で作成したU-bootを、SDカードのブートディスクのU-bootにすることで、
最初の起動時にU-bootの環境変数をコンソールから設定する必要がなくなります。

U-bootのソースコード
u-boot-a600-v2018.03-at[version]/include/configs/armadillo-640.h
の下記の箇所

#define CONFIG_BOOTCOMMAND \
    "run setup_mmcargs; ext4load mmc 0:2 ${loadaddr} /boot/uImage; ext4load mmc 0:2 0x83000000 /boot/a640.dtb; bootm ${loadaddr} - 0x83000000;"
#define CONFIG_EXTRA_ENV_SETTINGS \
    "setup_mmcargs=setenv bootargs root=/dev/mmcblk0p2 rootwait ${optargs};\0"\

#define CONFIG_BOOTCOMMAND \
    "run setup_mmcargs; ext4load mmc 1:2 ${loadaddr} /boot/uImage; ext4load mmc 1:2 0x83000000 /boot/a640.dtb; bootm ${loadaddr} - 0x83000000;"
#define CONFIG_EXTRA_ENV_SETTINGS \
    "setup_mmcargs=setenv bootargs root=/dev/mmcblk1p2 rootwait ${optargs};\0"\

に変更して、ビルドします。

上記で生成されたU-bootをSDカードのブートディスクのU-bootすることで、
最初の起動時の環境設定無しで、SDカードから起動できます。