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

ID 683184
日付 11/10/2021
Public

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

ドキュメント目次

7.5.2. ウォッチドッグ・タイムアウトと max retry 動作

この項では、RSUクライアントを使用して、次のことを示します。
  • ウォッチドッグ・タイムアウトのRSU処理
  • max retry 関数。各イメージを最大3回ロードできます。
  • RSU通知。これにより、HPSソフトウェアのステートをウォッチドッグ・タイムアウト後に報告し取得できます。
  • RSUステータス・エラー・フィールドのクリア
  • 現在の retry カウンター値のリセット
注: この項に一覧表示されているコマンドは、最初に実行される基本動作の項のコマンドに依存しています。具体的には、フラッシュにイメージP2を追加します。
  1. ボードの電源を入れ直し、Linux*を起動し、ステータスを表示します。これは、P2イメージが実行中であることを示しています。最も優先度が高いためです。
    root@linux:~# ./rsu_client --log
          VERSION: 0x00000202
            STATE: 0x00000000
    CURRENT IMAGE: 0x0000000002000000
       FAIL IMAGE: 0x0000000000000000
        ERROR LOC: 0x00000000
    ERROR DETAILS: 0x00000000
    RETRY COUNTER: 0x00000000
    Operation completed
    バージョンフィールドの意味は、次のとおりです。
    • Retry カウンターが 0x00000000 - このイメージをロードするための最初の試行です。
    • State 0x00000000 - 報告するエラーはありません。
  2. max_retry 値を照会して表示します。
    root@linux:~# ./rsu_client --display-max-retry
    max_retry = 3
    Operation completed
    注: max_retry オプションをLinuxで使用できるようにするには、最初にU-Bootから照会する必要があります。
  3. ウォッチドッグをイネーブルしますが、サービスを提供しないでください。タイムアウトが発生し、Linuxが再起動するためです。
    root@linux:~# echo "something" > /dev/watchdog
    [  603.649746] watchdog: watchdog0: watchdog did not stop!
  4. ウォッチドッグ・タイムアウト後にLinux*が再起動するのを待ってから、ログを表示します。
    root@linux:~# ./rsu_client --log
          VERSION: 0x0ACF0202
            STATE: 0xF0060002
    CURRENT IMAGE: 0x0000000002000000
       FAIL IMAGE: 0x0000000002000000
        ERROR LOC: 0x00000000
    ERROR DETAILS: 0x00000000
    RETRY COUNTER: 0x00000001
    Operation completed

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

  5. エラーステータスをクリアして、次のエラーを確認できるようにします。ステータスを照会して、エラーがクリアされたことを示します。
    root@linux:~# ./rsu_client --clear-error-status
    Operation completed
    root@linux:~# ./rsu_client --log
          VERSION: 0x00000202
            STATE: 0x00000000
    CURRENT IMAGE: 0x0000000002000000
       FAIL IMAGE: 0x0000000000000000
        ERROR LOC: 0x00000000
    ERROR DETAILS: 0x00000000
    RETRY COUNTER: 0x00000001
    Operation completed
  6. 別のウォッチドッグ・タイムアウトを発生させて、Linux*が再起動するのを待ちます。再起動後、RSUログを照会し、retry カウンターが2になっていることを確認します。
    root@linux:~# ./rsu_client --log
          VERSION: 0x0ACF0202
            STATE: 0xF0060002
    CURRENT IMAGE: 0x0000000002000000
       FAIL IMAGE: 0x0000000002000000
        ERROR LOC: 0x00000000
    ERROR DETAILS: 0x00000000
    RETRY COUNTER: 0x00000002
    Operation completed
  7. エラーステータスをクリアして、次のエラーを確認できるようにします。
  8. HPS実行ステージを16ビット数としてSDMに通知します。
    root@linux:~# ./rsu_client --notify 0x1234
    Operation completed
  9. 別のウォッチドッグ・タイムアウトを発生させて、Linux*が再起動するのを監視します。再起動後、RSUログを照会します。
    root@linux:~# ./rsu_client --log
          VERSION: 0x0ACF0202
            STATE: 0xF0061234
    CURRENT IMAGE: 0x0000000001000000
       FAIL IMAGE: 0x0000000002000000
        ERROR LOC: 0x00000000
    ERROR DETAILS: 0x00000000
    RETRY COUNTER: 0x00000000
    Operation completed

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

  10. エラーステータスをクリアして、次のエラーを確認できるようにします。
  11. ウォッチドッグ・タイムアウトを発生させて、ステータスを表示します。retry カウンターの値は1です。
    root@linux:~# ./rsu_client --log
          VERSION: 0x0ACF0202
            STATE: 0xF0060002
    CURRENT IMAGE: 0x0000000001000000
       FAIL IMAGE: 0x0000000001000000
        ERROR LOC: 0x00000000
    ERROR DETAILS: 0x00000000
    RETRY COUNTER: 0x00000001
    Operation completed
  12. RSUクライアントを使用して、現在の再試行カウンター値を0にリセットし、ステータスを再度照会して確認します。
    rroot@linux:~# ./rsu_client --reset-retry-counter
    Operation completed
    root@linux:~# ./rsu_client --log
          VERSION: 0x0ACF0202
            STATE: 0xF0060002
    CURRENT IMAGE: 0x0000000001000000
       FAIL IMAGE: 0x0000000001000000
        ERROR LOC: 0x00000000
    ERROR DETAILS: 0x00000000
    RETRY COUNTER: 0x00000000
    Operation completed