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

ID 683184
日付 6/09/2023
Public
ドキュメント目次

7.3.2. ウォッチドッグと最大再試行操作

このセクションでは、U-Boot を使用して次のことを説明します。
  • RSU によるウォッチドッグ タイムアウトの処理。
  • 最大再試行回数 この機能により、各画像のロードを最大 3 回試行できます。
  • RSU 通知により、ウォッチドッグ タイムアウトの前に HPS ソフトウェアの状態を報告し、その後に 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 で最高の優先順位としてマークされているため、ロードされました。

    フィールドの意味は次のとおりです。
    • リトライ カウンターは 0x00000000 —最初にこの画像のロードを試みます。
    • 0x00000000 —報告すべきエラーはありません
  2. をクエリして表示します。 max_retry 価値:
    SOCFPGA # rsu display_max_retry 
    max_retry = 3
  3. Cause a watchdog timeout by setting the timeout value to lowest possible. This prevents U-Boot from being able to service it in time:
    SOCFPGA # mw.l 0xffd00204 0
  4. ウォッチドッグはすぐにタイムアウトになり、SDM は同じアプリケーション イメージを再ロードします。 最大再試行回数 パラメータは 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 イメージが読み込まれますが、 リトライ カウンタ値は現在 1 です。これは、このイメージのロードが 2 回目の再試行であることを意味します。の バージョン フィールドは、最後の失敗がアプリケーション イメージによるものであることを示します (0xACF)。の フィールドには、最後のエラーがウォッチドッグ タイムアウトであったことが示されています (0xF006)、HPS ソフトウェアからの最新の通知値は、U-Boot をロードしている SPL からのものでした (0x0001)。

  5. Clear the error status so we can see the next errors. Query the status to show the errors were cleared:
    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 ログをクエリし、 リトライ カウンタは 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. Notice コマンドを使用して、SDM に HPS ソフトウェアの状態を 16 ビット値として知らせます。
    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 で起動してステータスを表示します。 リトライ カウンタは 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. 電流をリセットする リトライ カウンタ値をゼロに設定し、ステータスを再度クエリして確認します。
    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