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

ID 683184
日付 11/10/2021
Public

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

ドキュメント目次

7.5.5.1. 破損した決定ファームウェア

この例では、RSUクライアントを使用して、一部の決定ファームウェアのコピーが破損していることを検出し、決定ファームウェアのアップデート・イメージを実行してそれを回復する方法を示します。タスクは、U-Bootを使用してフラッシュを破損します。決定ファームウェアに直接アクセスできる唯一のコンポーネントであるためです。
注: この例に一覧表示されているコマンドは、初期フラッシュイメージ(JIC)が他の変更なしでフラッシュに書き込まれたことを前提としています。
注: rsu display_dcmf_version コマンドは、Linuxを起動する前に、現在のU-Bootによって自動的に呼び出されます。これは、Linuxでステータスを使用可能にするために必要です。
  1. ボードの電源を入れ直し、Linuxで起動します。
  2. RSUステータスを照会します。
    root@linux:~# ./rsu_client --log
          VERSION: 0x00000202
            STATE: 0x00000000
    CURRENT IMAGE: 0x0000000001000000
       FAIL IMAGE: 0x0000000000000000
        ERROR LOC: 0x00000000
    ERROR DETAILS: 0x00000000
    RETRY COUNTER: 0x00000000
    Operation completed

    state フィールドの上位4ビットは 0x0 です。これは、現在使用されている決定ファームウェアのインデックスがゼロであることを意味します。エラーはありません。

  3. 決定ファームウェアのステータスを表示します。破損はありません。
    root@linux:~# ./rsu_client --display-dcmf-status
    DCMF0: OK
    DCMF1: OK
    DCMF2: OK
    DCMF3: OK
    Operation completed
  4. ボードの電源を入れ直し、U-Bootを停止して、決定ファームウェアのコピー0と2を破損します。
    SOCFPGA # sf probe
    SF: Detected mt25qu02g with page size 256 Bytes, erase size 4 KiB, total 256 MiB
    SOCFPGA # sf erase 0 0x1000
    SF: 4096 bytes @ 0x0 Erased: OK
    SOCFPGA # sf erase 0x80000 0x1000
    SF: 4096 bytes @ 0x80000 Erased: OK
  5. ボードの電源を入れ直し、Linuxで起動し、RSUステータスと決定ファームウェアのステータスを照会します。
    root@linux:~# ./rsu_client --log
          VERSION: 0x10000202
            STATE: 0x00000000
    CURRENT IMAGE: 0x0000000001000000
       FAIL IMAGE: 0x0000000000000000
        ERROR LOC: 0x00000000
    ERROR DETAILS: 0x00000000
    RETRY COUNTER: 0x00000000
    Operation completed
    root@linux:~# ./rsu_client --display-dcmf-status
    DCMF0: Corrupted
    DCMF1: OK
    DCMF2: Corrupted
    DCMF3: OK
    Operation completed

    version フィールドの上位4ビットで示されているとおり、現在使用されている決定ファームウェアのコピーは1です。決定ファームウェアのコピー0と2は、破損していると検出されます。

  6. 未使用のスロットを消去し、決定ファームウェアのアップデート・イメージをスロットに追加し、正しく書き込まれたことを確認して、実行中のスロットが最も優先度が高いことを確認します。
    root@linux:~# ./rsu_client --erase 2
    Operation completed
    root@linux:~# ./rsu_client --add-factory-update decision_firmware_update.rpd --slot 2
    Operation completed
    root@linux:~# ./rsu_client --verify decision_firmware_update.rpd --slot 2
    Operation completed
    root@linux:~# ./rsu_client --list 2
          NAME: P3
        OFFSET: 0x0000000003000000
          SIZE: 0x01000000
      PRIORITY: 1
    Operation completed
  7. デバイスのファームウェア・アップデート・イメージに制御を渡します。
    root@linux:~# ./rsu_client --request 2
    Operation completed
    root@linux:~# reboot
  8. Linuxがシャットダウンすると、決定ファームウェアのアップデート・イメージによって新しい決定ファームウェア・コピーと新しい決定ファームウェア・データがフラッシュに書き込まれ、CPBからそれ自体を削除してから、最も優先度の高いイメージに制御を渡します。Linuxを起動します。
  9. Linuxでは、RSUステータスを照会し、DCMFステータスを表示します。
    root@linux:~# ./rsu_client --log
          VERSION: 0x00000202
            STATE: 0x00000000
    CURRENT IMAGE: 0x0000000001000000
       FAIL IMAGE: 0x0000000000000000
        ERROR LOC: 0x00000000
    ERROR DETAILS: 0x00000000
    RETRY COUNTER: 0x00000000
    Operation completed
    root@linux:~# ./rsu_client --display-dcmf-status
    DCMF0: OK
    DCMF1: OK
    DCMF2: OK
    DCMF3: OK
    Operation completed

    すべての決定ファームウェアのコピーは正常であると報告され、予想どおり、コピー0が現在使用されているものとなります。