人々がU-Boot CLIにアクセスするためにU-Boot bootdelay 0環境変数をバイパスしたいくつかのブログ記事を見ました。例は次のとおりです。ここ。私が知る限り、一般的なプロセスは次のとおりです。
- U-Bootがアクセスできないようにフラッシュチップをはんだ付け/短絡します。
- デバイスの電源を入れる
U-Bootがフラッシュチップを見つけることができず、CLIに移動します。
eth1 up eth0, eth1 Qualcomm Atheros SPI NAND Driver, Version 0.1 (c) 2014 Qualcomm Atheros Inc. ath_spi_nand_ecc: Couldn't enable internal ECC Setting 0x181162c0 to 0x3061a100 Hit any key to stop autoboot: 0 ** Device 0 not available ath>
bootdelayをゼロ以外の値に変更します。
ath> setenv bootdelay 3 ath> saveenv Saving Environment to Flash... Protect off 9F040000 ... 9F04FFFF Un-Protecting sectors 4..4 in bank 1 Un-Protected 1 sectors Protect off 9F050000 ... 9F05FFFF Un-Protecting sectors 5..5 in bank 1 Un-Protected 1 sectors Erasing Flash... 9F050000 ... 9F05FFFF ...Erasing flash... First 0x5 last 0x5 sector size 0x10000 5 Erased 1 sectors Writing to Flash... 9F050005 ... 9F060000 ...write addr: 9f050000 write addr: 9f040004 done Protecting sectors 5..5 in bank 1 Protected 1 sectors Protecting sectors 4..4 in bank 1 Protected 1 sectors ath>
- デバイスの電源を切り、フラッシュチップを再接続します。
私が知る限り、U-Bootとその環境変数はフラッシュメモリにあります。フラッシュチップがCPUから切り離された場合、U-Bootはどのようにロードされ、bootdelay変数を永続ストレージに保存するのですか?
答え1
これは非常に具体的な例です。この特定の例では、U-BootはNORフラッシュ(1チップ)にあり、LinuxカーネルはNANDフラッシュ(2番目のチップ)にあります。リファレンスガイドでは、起動が失敗するようにマザーボードからNANDチップを取り外す必要があります。 U-Bootコマンドラインに移動し、ブート遅延を変更して保存できます。この場合、U-BootはNORフラッシュの環境もこのようになります。