Intel:Cyclone® V SoC のブートで、起動失敗によるリトライが発生した場合、どのような動作になりますか?

カテゴリ:SoC
ツール:SoC EDS
デバイス:Cyclone® V


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 レジスタグ・ループで確認可能です。
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 する必要があります。


関連タグ

技術情報