ブログ

Armadillo-X1,Armadillo-IoT G3/G3L: U-Bootのデフォルトのパラメータ設定を変更する

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への書き込み方法はマニュアルを参照してください。製品マニュアル毎に記載がありますが、どの製品でも主な操作は同じです。

■ ビルド

■ イメージ書き込み