インテル® Agilex™ ハード・プロセッサー・システム (HPS) のリモート・システム・アップデート・ユーザーガイド

ID 683184
日付 11/10/2021
Public

このドキュメントの新しいバージョンが利用できます。お客様は次のことを行ってください。 こちらをクリック 最新バージョンに移行する。

ドキュメント目次

7.4.2. ウォッチドッグおよびMax Retry動作

この項では、U-Bootを使用して次のことを示します。
  • ウォッチドッグ・タイムアウトのRSU処理
  • max retry 関数。各イメージのロードを最大3回試行できます。
  • RSU通知。これにより、HPSソフトウェアのステートをウォッチドッグ・タイムアウトの前に報告し、ウォッチドッグ・タイムアウト後に取得できます。
  • RSUステータス・エラー・フィールドのクリア
  • 現在の再試行カウンター値のリセット
注: この項に一覧表示されているコマンドは、最初に実行される基本動作の項のコマンドに依存しています。具体的には、アプリケーション・イメージをP2フラッシュ・パーティションに追加します。
  1. ボードの電源を再投入し、U-Bootを停止して、RSUステータスログを確認します。
    SOCFPGA # rsu status_log Current Image : 0x02000000 Last Fail Image : 0x00000000 State : 0x00000000 Version : 0x00000202 Error location : 0x00000000 Error details : 0x00000000 Retry counter : 0x00000000

    スロット1 (パーティションP2) からのアプリケーション・イメージがロードされました。CPBで最も優先度が高いとマークされているためです。

    フィールドの意味は、次のとおりです。
    • Retry カウンターが 0x00000000 - このイメージをロードするための最初の試行です。
    • State 0x00000000 - 報告するエラーはありません。
  2. max_retry 値を照会して表示します。
    SOCFPGA # rsu display_max_retry max_retry = 3
  3. タイムアウト値を可能な限り低く設定して、ウォッチドッグ・タイムアウトを発生させます。これにより、U-Bootが時間内にサービスを提供できなくなります。
    SOCFPGA # mw.l 0xffd00204 0
  4. ウォッチドッグはすぐにタイムアウトになり、SDMは同じアプリケーション・イメージをリロードします。max retry パラメーターが3に設定されているためです。U-Bootコンソールを見て、ステータスログを確認します。
    SOCFPGA # rsu status_log Current Image : 0x02000000 Last Fail Image : 0x02000000 State : 0xf0060001 Version : 0x0acf0202 Error location : 0x00000000 Error details : 0x00000000 Retry counter : 0x00000001

    同じP2イメージがロードされますが、retry カウンターの値は1になります。これは、このイメージのロードが2回目の再試行であることを意味します。version フィールドには、最後の失敗がアプリケーション・イメージ (0xACF) によるものであることが示されます。state フィールドは、最後のエラーがウォッチドッグ・タイムアウト (0xF006) であり、HPSソフトウェアからの最新の通知値がU-BootをロードするSPL (0x0001) からのものであることを示しています。

  5. エラーステータスをクリアして、次のエラーを確認できるようにします。ステータスを照会して、エラーがクリアされたことを示します。
    SOCFPGA # rsu clear_error_status SOCFPGA # rsu status_log Current Image : 0x02000000 Last Fail Image : 0x00000000 State : 0x00000000 Version : 0x00000202 Error location : 0x00000000 Error details : 0x00000000 Retry counter : 0x00000001
  6. 別のウォッチドッグ・タイムアウトを発生させます。U-Bootプロンプトで、RSUログを照会し、retry カウンターが2になっていることを確認します。
    SOCFPGA # rsu status_log Current Image : 0x02000000 Last Fail Image : 0x02000000 State : 0xf0060001 Version : 0x0acf0202 Error location : 0x00000000 Error details : 0x00000000 Retry counter : 0x00000002
  7. エラーステータスをクリアして、次のエラーを確認できるようにします。
  8. Notifyコマンドを使用して、HPSソフトウェアのステートを16ビット値としてSDMに通知します。
    SOCFPGA0 # rsu notify 0x1234
  9. ウォッチドッグ・タイムアウトをもう一度発生させ、再起動後にRSUステータスログを表示します。
    SOCFPGA # rsu status_log Current Image : 0x01000000 Last Fail Image : 0x02000000 State : 0xf0061234 Version : 0x0acf0202 Error location : 0x00000000 Error details : 0x00000000 Retry counter : 0x00000000

    SDMはCPB (P1) に次のアプリケーション・イメージをロードし、イメージP2が失敗したことを報告します。このステートは、ウォッチドッグ・タイムアウトが発生し (上位16ビット = 0xF006)、HPSソフトウェアによって報告された通知値が 0x1234 であることを示しています。バージョンの上位16ビットは 0x0ACF に設定されています。これは、前のエラーがアプリケーション・イメージ・ファームウェアによって報告されたことを意味します。詳細については、 RSUステータスコードとエラーコード を参照してください。

  10. エラーをクリアし、ステータスを表示します。エラーは表示されません。
    SOCFPGA # rsu clear_error_status SOCFPGA # rsu status_log Current Image : 0x01000000 Last Fail Image : 0x00000000 State : 0x00000000 Version : 0x00000202 Error location : 0x00000000 Error details : 0x00000000 Retry counter : 0x00000000
  11. ウォッチドッグ・タイムアウトを発生させ、U-Bootを起動して、ステータスを表示します。これは、retry カウンターが1であることを示しています。
    SOCFPGA # rsu status_log Current Image : 0x01000000 Last Fail Image : 0x01000000 State : 0xf0060001 Version : 0x0acf0202 Error location : 0x00000000 Error details : 0x00000000 Retry counter : 0x00000001
  12. 現在の retry カウンター値を0にリセットし、ステータスを再度照会して確認します。
    SOCFPGA # rsu reset_retry_counter SOCFPGA # rsu status_log Current Image : 0x01000000 Last Fail Image : 0x01000000 State : 0xf0060001 Version : 0x0acf0202 Error location : 0x00000000 Error details : 0x00000000 Retry counter : 0x00000000