皆様、こんにちは。この文書では、UUU(Universal Update Utility)ツールを使用して、Linuxをi.MXデバイス(i.MX 8MM)にフラッシュする方法についてご説明いたします。
要件:
UUU auto script
この例では、i.MX 8MM用のL4.14.98_2.0.0_gaデモイメージが使用されています。デモイメージ内には、デフォルトでボードのeMMCをフラッシュする自動スクリプトがあります。スクリプトの構造は以下のようになります。
/***********************************************************************************/
uuu_version 1.2.39
# このコマンドはi.MX6/7 i.MX8MM、i.MX8MQで実行されます
SDP: boot -f imx-boot-imx8mmevk-sd.bin-flash_evk
# このコマンドはROMがストリームモードに対応しているときに実行されます
# i.MX8QXP, i.MX8QM
SDPS: boot -f imx-boot-imx8mmevk-sd.bin-flash_evk
# これらのコマンドはSPLを使用するときに実行され、SPLがない場合はスキップされます
# SDPUは非推奨になります。SDPUの代わりにSDPVを使用してください
# {
SDPU: 遅延 1000
SDPU: write -f imx-boot-imx8mmevk-sd.bin-flash_evk -offset 0x57c00
SDPU: ジャンプ
# }
# これらのコマンドはSPLを使用するときに実行され、SPLがない場合はスキップされます
# if (SPL が SDPV をサポートしている場合)
# {
SDPV: 遅延 1000
SDPV: write -f imx-boot-imx8mmevk-sd.bin-flash_evk-skipspl
SDPV: ジャンプ
# }
FB: ucmd setenv fastboot_dev mmc
FB: ucmd setenv mmcdev ${emmc_dev}
FB: ucmd mmc dev ${emmc_dev}
FB: flash -raw2sparse all fsl-image-validation-imx-imx8mmevk.sdcard
FB: flash bootloader imx-boot-imx8mmevk-sd.bin-flash_evk
FB: ucmd if env exists emmc_ack; then ; else setenv emmc_ack 0; fi;
FB: ucmd mmc partconf ${emmc_dev} ${emmc_ack} 1 0
FB: 完了
/***********************************************************************************/
つまり、ボードがシリアルダウンローダモードに入ると、UUUはブートローダを内部RAMにダウンロードし、完了後にubootが実行されると、fastbootユーティリティを使用して、.scardファイルとubootをボードのeMMCにフラッシュします。
UUUプロトコルの使用について詳しくは、UUUドキュメント(UUU.pdf)セクション5の対応プロトコルを参照してください。
ツールを実行する
ツールを実行するには、uuuのバイナリをダウンロードする必要があります。バイナリファイルは上記のリンクからダウンロードできます。uuu.exeはWindows用、uuuはLinux用です。
ダウンロードしたら、デモイメージと同じフォルダに配置すると、実行が簡単になり、シェルコマンドが見やすくなります。
Windows
Windows OSの場合、このツールを管理者モードのWindows PowerShellで実行する必要があります。開いたら、次のコマンドを実行します。
> .\uuu.exe uuu.auto
Linux
>$ sudo ./uuu uuu.auto
ツールの実行が開始されますので、ホストPCでi.MXデバイスを検出するまで待機してください。
ボードの準備
ボードをフラッシュするにはダウンロードモードにする必要があります。スイッチ構成(i.MX 8MM EVK)は次のとおりです。
SW1101 - 1010XXXXXX
SW1102 - XXXXXXXXX0
ツールを実行するホストPCからのUSBケーブルをボードの(通常はダウンロードとして指定される)USB OTG/TYPE Cポートに接続します。
ホストからのUSB ケーブルをボードの(通常はデバッグとして指定される)コンソール出力用のOTG-to-UARTに接続します。
次の設定でターミナルエミュレータプログラムを開いてください。
ビット毎秒 - 115200
データビット - 8
パリティ - なし
ストップビット - 1
フロー制御 - なし
ボードの電源を入れると、ダウンロードが開始され、シリアルプロンプトに uboot の進行状況が表示されます。ツールが「成功」と表示されるまでお待ちください。
最後にボードの電源をオフにし、eMMCからするようにブートスイッチ構成を変更して、再度ボードの電源をオンにすると正常に起動します!
内蔵スクリプト
-bオプションを使用して組み込みスクリプトを使い、ブートローダーとrootfsをターゲットフラッシュに書き込むことができます。ターゲットフラッシュデバイスに応じてコマンドを入力するだけです。
SD
ブートローダのみを書き込む:
Windows:
> .\uuu.exe -b sd
Linux:
$ sudo ./uuu -b sd
> .\uur.exe -b sd imx-boot-imx8mmevk-sd.bin-flash_evk
$ sudo ./uuu -b sd imx-boot-imx8mmevk-sd.bin-flash_evk
Linuxイメージ全体を書き込む
Windows:
> .\uuu.exe -b sd_all.sdcard
Linux:
$ sudo ./uuu -b sd_all.sdcard
> .\uuu.exe -b sd_all imx-boot-imx8mmevk-sd.bin-flash_evk fsl-image-validation-imx-imx8mmevk.sdcard
$ sudo ./uuu -b sd_all imx-boot-imx8mmevk-sd.bin-flash_evk fsl-image-validation-imx-imx8mmevk.sdcard
eMMC
ブートローダのみを書き込む
Windows:
> .\uuu.exe -b emmc
Linux:
$ sudo ./uuu -b emmc
i.MX 8MMを使用した例
> .\uuu.exe -b emmc imx-boot-imx8mmevk-sd.bin-flash_evk
$ sudo ./uuu -b emmc imx-boot-imx8mmevk-sd.bin-flash_evk
Linuxイメージ全体を書き込む
Windows:
> .\uuu.exe -b emmc_all.sdcard
Linux:
$ sudo ./uuu -b emmc_all
.sdcard
i.MX 8MMを使用した例
> .\uuu.exe -b emmc_all imx-boot-imx8mmevk-sd.bin-flash_evk fsl-image-validation-imx-imx8mmevk.sdcard
$ sudo ./uuu -b emmc_all imx-boot-imx8mmevk-sd.bin-flash_evk fsl-image-validation-imx-imx8mmevk.sdcard
このフラッシュツールを使い始めるすべての方にとってお役に立てば幸いです。
Hi,
OP-TEEプロジェクトがL4.14.98_2.0.0_ga_images_MX8MMEVKに統合されているかどうか分かりますか?TFAも?
yoctoソースでuboot、画像、rootfsをコンパイルしました。.sdcardと.bin-flash_evkのフォーマットになりません。どうすればよいですか?