at_yuma.arakawa
2017年11月5日 10時32分
U-Boot上の各種パラメータはU-Bootのシェル上で設定を変更できます。しかし、出荷時設定等を考えると、デフォルトの値を変更できると便利です。
ここでは、U-Bootのソースコード上のどこでデフォルト値を設定しているかを紹介し、試しに変更してみます。
Armadillo用のU-Bootのソースコードは製品毎の"ドキュメント・ダウンロード"のページからダウンロードできます。
そして、結論としては、include/configs/x1.h の"CONFIG_EXTRA_ENV_SETTINGS"で設定しています。
■ include/configs/x1.h
#define CONFIG_EXTRA_ENV_SETTINGS \
CONFIG_MFG_ENV_SETTINGS \
UPDATE_M4_ENV \
CONFIG_VIDEO_MODE \
"script=boot.scr\0" \
"image=uImage\0" \
"console=ttymxc4\0" \
"fdt_high=0xffffffff\0" \
"initrd_high=0xffffffff\0" \
"fdt_addr=0x84800000\0" \
"boot_fdt=try\0" \
"ip_dyn=yes\0" \
"mmcpart=" __stringify(CONFIG_SYS_MMC_IMG_LOAD_PART) "\0" \
"mmcroot=" CONFIG_MMCROOT " rootwait rw\0" \
"mmcautodetect=yes\0" \
"optargs=\0" \
"mmcargs=setenv bootargs console=${console},${baudrate} " \
"root=${mmcroot} ${optargs}\0" \
...
CONFIG_EXTRA_ENV_SETTINGSへU-Bootの変数と値を'='でつなげた文字列を'\0'区切りで設定しています。
例えば、デフォルトでOverlayFSを有効化するよう変数"optargs"へ"overlay"を設定する場合、以下のように変更します。
#define CONFIG_EXTRA_ENV_SETTINGS \
...
"mmcautodetect=yes\0" \
"optargs=overlay\0" \ ← "overlay"を追加
"mmcargs=setenv bootargs console=${console},${baudrate} " \
"root=${mmcroot} ${optargs}\0" \
...
変更後のU-Bootのビルド、Armadilloへの書き込み方法はマニュアルを参照してください。製品マニュアル毎に記載がありますが、どの製品でも主な操作は同じです。
■ ビルド
- 10.1. ブートローダーをビルドする - Armadillo-X1 製品マニュアル
- 10.1. ブートローダーをビルドする - Armadillo-IoT G3 製品マニュアル
- 11.1. ブートローダーをビルドする - Armadillo-IoT G3L 製品マニュアル
■ イメージ書き込み