Intel:Cyclone® V SoC のブートで、起動失敗によるリトライが発生した場合、どのような動作になりますか?
SoC FPGA
カテゴリ:SoC
ツール:SoC EDS
デバイス:Cyclone® V
Cyclone® V SoC のブートにおいて、QSPI Flash や SDカードなどのブートソースに書き込む preloader-mkpimage.bin は、同一の Preloader(64KB)を 4個連続で結合したイメージ(合計 256KB)になっています。
起動失敗によるリトライが発生した場合には、4つの Preloader を以下のようなシーケンスで実行します。
- Preloader0 のイメージで動作
- Preloader0 のイメージにおいて watchdog によるリセットがかかる
- 起動しなおして、次は preloader1 のイメージで動作
- Preloader1 のイメージにおいて watchdog によるリセットがかかる
- 以下、Preloader2,3 に対して同様の挙動
- Preloader3 のイメージにおいて wathdog によるリセットがかかる
- FPGA Fallback 機能を確認し、有効であれば 0xC0000000 へアクセス(無効であればそのまま無限ループで Reset 待機状態)
- Reset 待機状態
シーケンスの確認は、下記の Boot ROM Code Register Group レジスタグ・ループで確認可能です。
https://www.intel.com/content/www/us/en/programmable/hps/cyclone-v/hps.html#topic/sfo1410068005527.html
それぞれ簡単にですが、下記のようなステータスを確認できます。
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 する必要があります。