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

ID 683184
日付 11/10/2021
Public

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

ドキュメント目次

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

この例では、U-Bootコマンドを使用して、決定ファームウェアのコピーが破損していることを検出し、決定ファームウェアのアップデート・イメージを実行して回復する方法を示します。
注: この例に一覧表示されているコマンドは、初期フラッシュイメージ (JIC) が他の変更なしでフラッシュに書き込まれたことを前提としています。
  1. ボードの電源を入れ直し、U-Bootプロンプトで起動します。
  2. RSUステータスを表示します。
    SOCFPGA # rsu status_log
    Current Image   : 0x01000000
    Last Fail Image : 0x00000000
    State           : 0x00000000
    Version         : 0x00000202
    Error location  : 0x00000000
    Error details   : 0x00000000
    Retry counter   : 0x00000000

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

  3. 決定ファームウェアのステータスを表示します。
    SOCFPGA # rsu display_dcmf_status
    DCMF0: OK
    DCMF1: OK
    DCMF2: OK
    DCMF3: OK

    このコマンドは、現在使用されている決定ファームウェアのコピー0を他のコピーと比較して、すべての決定ファームウェアのコピーが正常であることを表示します。

  4. 決定ファームウェアのコピー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. ボードの電源を入れ直し、U-Bootプロンプトで起動し、RSUステータスと決定ファームウェアのステータスを表示します。
    SOCFPGA # rsu status_log
    Current Image   : 0x01000000
    Last Fail Image : 0x00000000
    State           : 0x00000000
    Version         : 0x10000202
    Error location  : 0x00000000
    Error details   : 0x00000000
    Retry counter   : 0x00000000
    SOCFPGA # rsu display_dcmf_status
    DCMF0: Corrupted
    DCMF1: OK
    DCMF2: Corrupted
    DCMF3: OK

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

  6. 未使用のスロットを消去し、決定ファームウェアのアップデート・イメージをスロットに追加し、正しく書き込まれたことを確認して、現在最も優先度の高いスロットであることを確認します。
    SOCFPGA # rsu slot_erase 2
    Slot 2 erased.
    SOCFPGA # fatload mmc 0:1 ${loadaddr} decision_firmware_update.rpd
    151552 bytes read in 9 ms (16.1 MiB/s)
    SOCFPGA # rsu slot_program_factory_update_buf 2 ${loadaddr} ${filesize}
    Slot 2 was programmed with buffer=0x0000000002000000 size=151552.
    SOCFPGA # rsu slot_verify_buf 2 ${loadaddr} ${filesize}
    Slot 2 was verified with buffer=0x0000000002000000 size=151552.
    SOCFPGA # rsu slot_get_info 2
    NAME: P3
    OFFSET: 0x0000000003000000
    SIZE: 0x01000000
    PRIORITY: 1
  7. デバイスのファームウェア・アップデート・イメージに制御を渡します。
    SOCFPGA # rsu slot_load 2
  8. 決定ファームウェア・アップデート・イメージは、新しい決定ファームウェア・コピーと新しい決定ファームウェア・データをフラッシュに書き込み、CPBからそれ自体を削除してから、最も優先度の高いイメージに制御を渡します。
  9. U-Bootプロンプトで停止し、決定ファームウェアのコピーがすべて正常であり、決定ファームウェア・アップデート・イメージがCPBから削除され、最も優先度の高いイメージが実行されていることを確認します。
    SOCFPGA # rsu status_log 
    Current Image   : 0x01000000
    Last Fail Image : 0x00000000
    State           : 0x00000000
    Version         : 0x00000202
    Error location  : 0x00000000
    Error details   : 0x00000000
    Retry counter   : 0x00000000
    SOCFPGA # rsu display_dcmf_status
    DCMF0: OK
    DCMF1: OK
    DCMF2: OK
    DCMF3: OK
    SOCFPGA # rsu slot_get_info 2
    NAME: P3
    OFFSET: 0x0000000003000000
    SIZE: 0x01000000
    PRIORITY: [disabled]