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 製品マニュアル
■ イメージ書き込み