インテルのみ表示可能 — GUID: vmm1571167469620
Ixiasoft
インテルのみ表示可能 — GUID: vmm1571167469620
Ixiasoft
7.4.2. ウォッチドッグおよびMax Retry動作
- ウォッチドッグ・タイムアウトのRSU処理
- max retry 関数。各イメージのロードを最大3回試行できます。
- RSU通知。これにより、HPSソフトウェアのステートをウォッチドッグ・タイムアウトの前に報告し、ウォッチドッグ・タイムアウト後に取得できます。
- RSUステータス・エラー・フィールドのクリア
- 現在の再試行カウンター値のリセット
- ボードの電源を再投入し、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 - 報告するエラーはありません。
- max_retry 値を照会して表示します。
SOCFPGA # rsu display_max_retry max_retry = 3
- タイムアウト値を可能な限り低く設定して、ウォッチドッグ・タイムアウトを発生させます。これにより、U-Bootが時間内にサービスを提供できなくなります。
SOCFPGA # mw.l 0xffd00204 0
- ウォッチドッグはすぐにタイムアウトになり、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) からのものであることを示しています。
- エラーステータスをクリアして、次のエラーを確認できるようにします。ステータスを照会して、エラーがクリアされたことを示します。
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
- 別のウォッチドッグ・タイムアウトを発生させます。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
- エラーステータスをクリアして、次のエラーを確認できるようにします。
- Notifyコマンドを使用して、HPSソフトウェアのステートを16ビット値としてSDMに通知します。
SOCFPGA0 # rsu notify 0x1234
- ウォッチドッグ・タイムアウトをもう一度発生させ、再起動後に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ステータスコードとエラーコード を参照してください。
- エラーをクリアし、ステータスを表示します。エラーは表示されません。
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
- ウォッチドッグ・タイムアウトを発生させ、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
- 現在の 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