Cyclone® V SoC のブートにおいて、QSPI Flash や SDカードなどのブートソースに書き込む preloader-mkpimage.bin は、同一の Preloader (64KB) を4 個連続で結合したイメージ (合計256KB) になっています。
起動失敗によるリトライが発生した場合には、4つの Preloader を以下のようなシーケンスで実行します。
1. Preloader0 のイメージで動作
2. Preloader0 のイメージにおいて watchdog によるリセットがかかる
3. 起動しなおして、次は preloader1 のイメージで動作
4. Preloader1 のイメージにおいて watchdog によるリセットがかかる
5. 以下、Preloader2,3 に対して同様の挙動
6. Preloader3 のイメージにおいて wathdog によるリセットがかかる
7. FPGA Fallback 機能を確認し、有効であれば 0xC0000000 へアクセス
無効であればそのまま無限ループで Reset 待機状態
8. Reset 待機状態
シーケンスの確認は下記の Boot ROM Code Register Group レジスタグループで確認可能です。
それぞれ簡単にですが下記のようなステータスを確認できます。
initswstate - Preloader が正常に起動できたか ( 0x49535756 が書かれたかどうか)
initswlastld - 現在起動中の Preloader の番号
尚、FPGA Fallback 機能は HPS インタフェースの f2h_boot_from_fpga_on_failur 信号をHigh とする事で有効になりますが、この信号を使用するためには Platform Designer (旧Qsys) の HPS オプションにて "Enable boot from fpga signals" をチェックON する必要があります。
--------------------
カテゴリ:SoC
ツール:SoC EDS
デバイス:Cyclone® V