以下は、Xilinx zynq プラットフォームの u-boot に関するログメッセージです。
[Fri Apr 04 19:57:50.990 2014] U-Boot 2013.07 (Apr 04 2014 - 19:38:00)
[Fri Apr 04 19:57:50.990 2014]
[Fri Apr 04 19:57:50.990 2014] Memory: ECC disabled
[Fri Apr 04 19:57:50.990 2014] DRAM: 1 GiB
[Fri Apr 04 19:57:51.007 2014] MMC: zynq_sdhci: 0
[Fri Apr 04 19:57:51.007 2014] SF: Detected N25Q128A with page size 64 KiB, total 16 MiB
[Fri Apr 04 19:57:51.038 2014] *** Warning - bad CRC, using default environment
[Fri Apr 04 19:57:51.038 2014]
[Fri Apr 04 19:57:51.038 2014] In: serial
[Fri Apr 04 19:57:51.038 2014] Out: serial
[Fri Apr 04 19:57:51.038 2014] Err: serial
[Fri Apr 04 19:57:51.038 2014] U-BOOT for Xilinx-ZC702-14.7
[Fri Apr 04 19:57:51.038 2014]
[Fri Apr 04 19:57:51.038 2014]
[Fri Apr 04 19:57:51.038 2014] SF: Detected N25Q128A with page size 64 KiB, total 16 MiB
[Fri Apr 04 19:57:51.354 2014] SF: 1963200 bytes @ 0x520000 Read: OK
[Fri Apr 04 19:57:51.354 2014] ## Loading kernel from FIT Image at 01000000 ...
[Fri Apr 04 19:57:51.354 2014] Using 'conf@1' configuration
[Fri Apr 04 19:57:51.354 2014] Trying 'kernel@1' kernel subimage
[Fri Apr 04 19:57:51.354 2014] Description: PetaLinux Kernel
[Fri Apr 04 19:57:51.354 2014] Type: Kernel Image
[Fri Apr 04 19:57:51.354 2014] Compression: gzip compressed
[Fri Apr 04 19:57:51.354 2014] Data Start: 0x010000f0
[Fri Apr 04 19:57:51.354 2014] Data Size: 1630119 Bytes = 1.6 MiB
[Fri Apr 04 19:57:51.354 2014] Architecture: ARM
[Fri Apr 04 19:57:51.354 2014] OS: Linux
[Fri Apr 04 19:57:51.354 2014] Load Address: 0x00008000
[Fri Apr 04 19:57:51.354 2014] Entry Point: 0x00008000
[Fri Apr 04 19:57:51.354 2014] Hash algo: crc32
[Fri Apr 04 19:57:51.354 2014] Hash value: 01dece90
[Fri Apr 04 19:57:51.354 2014] Verifying Hash Integrity ... crc32+ OK
私の目標は、開始時間を短縮することです。オペレーティングシステムとu-bootはフラッシュメモリから起動する必要があります。しかし、MMCの上部で確認できるように:
[Fri Apr 04 19:57:50.990 2014] DRAM: 1 GiB
[Fri Apr 04 19:57:51.007 2014] MMC: zynq_sdhci: 0
0.17秒かかります。
とにかくu-bootでMMCを無効にしてこの時間を節約できますか?それでは、u-bootでMMCをどのように無効にできますか?一般的な手順は何ですか?
答え1
MMCが検出されました。これは正常です。変更しても相当な時間を節約できないと思います。
U-Bootコマンドプロンプトが表示されたら(たとえば、「ブート遅延」中にキーを押す)、コマンドの出力を確認してブート順序の詳細を確認できます。
printenv bootcmd
printenv bootargs
カーネルがフラッシュメモリからロードされました。あなたのファイルシステムはフラッシュまたはMMCにあります。このプラットフォームについてはよくわかりません。
あなたのボードには保存されたU-Boot環境がなく、ビルド時に設定されたデフォルト環境を使用しているようです。環境変数を変更できる必要があります(コマンド環境変数の設定)それを永続メモリに入れます(saveenvコマンド)。通常、これは起動順序を変更する一般的な手順です。
答え2
[Fri Apr 04 19:57:50.990 2014] DRAM: 1 GiB
[Fri Apr 04 19:57:51.007 2014] MMC: zynq_sdhci: 0
私もmmcの初期化に時間がかかりすぎるという考えにこんな罠に陥った。まったくそうではありません。 U-bootでmmcを有効にすると、後でMMCの初期化が発生します。これは起動順序であり、Board_f.cファイルとBoard_r.cファイルでデバッグメッセージを有効にすると、これらの誤解が解消されます。
私の場合、ここで過ごしたほとんどの時間をフラッシュからRAMにu-bootをコピーするのに費やしました。