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

ID 683184
日付 7/10/2020
Public

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

ドキュメント目次

6.6.1. U-Bootを使用した基本動作の実行

この項では、U-Bootを使用して次の基本動作を実行する方法を示しています。
  • RSUステータスの照会
  • スロットの数およびそれらに関する情報の照会
  • 新しいアプリケーション・イメージの追加
  • アプリケーション・イメージが正しく書き込まれたことの確認
  • 特定のアプリケーション・イメージのロードの要求
注: この項では、フラッシュに初期RSUイメージが含まれていることを前提としています。それが当てはまらない場合は、初期RSUイメージのQSPIへのフラッシュに示すとおり、最初のイメージを再フラッシュする必要があります。
  1. ボードの電源を再投入し、プロンプトが表示されたら任意のキーを押して、U-Bootコマンドプロンプトを表示します。
    U-Boot 2019.10-g1f7f526 (Apr 30 2020 - 19:06:08 -0500)socfpga_agilex CPU: Intel FPGA SoCFPGA Platform (ARMv8 64bit Cortex-A53) Model: SoCFPGA Agilex SoCDK DRAM: 8 GiB MMC: dwmmc0@ff808000: 0 Loading Environment from MMC... *** Warning - bad CRC, using default environment In: serial0@ffc02000 Out: serial0@ffc02000 Err: serial0@ffc02000 Net: Warning: ethernet@ff800000 (eth0) using random MAC address - ea:e5:aa:36:4c:02 eth0: ethernet@ff800000 Hit any key to stop autoboot: 0 SOCFPGA #
  2. パラメーターを指定せずに rsu コマンドを実行して、ヘルプメッセージを表示します。
    SOCFPGA # rsu rsu - Agilex SoC Remote System Update Usage: rsu dtb - Update Linux DTB qspi-boot parition offset with spt0 value list - List down the available bitstreams in flash slot_by_name <name> - find slot by name and display the slot number slot_count - display the slot count slot_disable <slot> - remove slot from CPB slot_enable <slot> - make slot the highest priority slot_erase <slot> - erase slot slot_get_info <slot> - display slot information slot_load <slot> - load slot immediately slot_load_factory - load factory immediately slot_priority <slot> - display slot priority slot_program_buf <slot> <buffer> <size> - program buffer into slot, and make it highest priority slot_program_buf_raw <slot> <buffer> <size> - program raw buffer into slot slot_program_factory_update_buf <slot> <buffer> <size> - program factory update buffer into slot, and make it highest priority slot_rename <slot> <name> - rename slot slot_size <slot> - display slot size slot_verify_buf <slot> <buffer> <size> - verify slot contents against buffer slot_verify_buf_raw <slot> <buffer> <size> - verify slot contents against raw buffer status_log - display RSU status update <flash_offset> - Initiate firmware to load bitstream as specified by flash_offset notify <value> - Let SDM know the current state of HPS software clear_error_status - clear the RSU error status reset_retry_counter - reset the RSU retry counter display_dcmf_version - display DCMF versions and store them for SMC handler usage
  3. rsu list コマンドを実行して、RSUパーティション、CPB、現在実行中のイメージ、およびステータスを表示します。
    SOCFPGA # rsu list RSU: Remote System Update Status Current Image : 0x01000000 Last Fail Image : 0x00000000 State : 0x00000000 Version : 0x00000202 Error location : 0x00000000 Error details : 0x00000000 Retry counter : 0x00000000 RSU: Sub-partition table 0 offset 0x00910000 RSU: Sub-partition table 1 offset 0x00918000 SF: Detected mt25qu02g with page size 256 Bytes, erase size 4 KiB, total 256 MiB RSU: Sub-partition table content BOOT_INFO Offset: 0x0000000000000000 Length: 0x00210000 Flag : 0x00000003 FACTORY_IMAGE Offset: 0x0000000000210000 Length: 0x00700000 Flag : 0x00000003 P1 Offset: 0x0000000001000000 Length: 0x01000000 Flag : 0x00000000 SPT0 Offset: 0x0000000000910000 Length: 0x00008000 Flag : 0x00000001 SPT1 Offset: 0x0000000000918000 Length: 0x00008000 Flag : 0x00000001 CPB0 Offset: 0x0000000000920000 Length: 0x00008000 Flag : 0x00000001 CPB1 Offset: 0x0000000000928000 Length: 0x00008000 Flag : 0x00000001 P2 Offset: 0x0000000002000000 Length: 0x01000000 Flag : 0x00000000 P3 Offset: 0x0000000003000000 Length: 0x01000000 Flag : 0x00000000 RSU: CMF pointer block offset 0x00920000 RSU: CMF pointer block's image pointer list Priority 1 Offset: 0x0000000001000000 nslot: 0
    注: rsu list U-Bootコマンドには、同等のRSUクライアントがありません。代わりに、次で示すように、他のコマンドを使用して同じ情報を取得できます。
  4. rsu status_log コマンドを実行して、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

    アプリケーション・イメージP1は、CPBで最も優先度が高いため、ロードされます。エラーはありません。

  5. スロットに関する情報を表示します。
    SOCFPGA # rsu slot_count Number of slots = 3. SOCFPGA # rsu slot_get_info 0 NAME: P1 OFFSET: 0x0000000001000000 SIZE: 0x01000000 PRIORITY: 1 SOCFPGA # rsu slot_get_info 1 NAME: P2 OFFSET: 0x0000000002000000 SIZE: 0x01000000 PRIORITY: [disabled] SOCFPGA # rsu slot_get_info 2 NAME: P3 OFFSET: 0x0000000003000000 SIZE: 0x01000000 PRIORITY: [disabled] SOCFPGA # rsu slot_size 0 Slot 0 size = 16777216. SOCFPGA # rsu slot_size 1 Slot 1 size = 16777216. SOCFPGA # rsu slot_size 2 Slot 2 size = 16777216.
  6. スロット1を消去し、application2.rpd イメージをスロット1に追加します。
    SOCFPGA # rsu slot_erase 1 Slot 1 erased SOCFPGA # load mmc 0:1 $loadaddr application2.rpd 3338240 bytes read in 152 ms (20.9 MiB/s) SOCFPGA # rsu slot_program_buf 1 $loadaddr $filesize Slot 1 was programmed with buffer=0x0000000002000000 size=3338240.
  7. アプリケーション・イメージが正しく書き込まれたことを確認します。
    SOCFPGA # rsu slot_verify_buf 1 $loadaddr $filesize Slot 1 was verified with buffer=0x0000000002000000 size=3338240.
  8. スロット1 (パーティションP2) に最も優先度の高いイメージが含まれていることを確認します。
    SOCFPGA # rsu slot_get_info 1 NAME: P2 OFFSET: 0x0000000002000000 SIZE: 0x01000000 PRIORITY: 1
  9. ボードの電源を再投入し、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で最も優先度が高いとマークされているため、ロードされました。

  10. 次の2つのコマンドのいずれかを実行して、スロット0 (パーティションP1) からアプリケーション・イメージをロードします。
    SOCFPGA # rsu update 0x01000000 RSU: RSU update to 0x0000000001000000
    または、
    SOCFPGA # rsu slot_load 0 Slot 0 loading.
  11. 新しく要求されたイメージをロードします。U-Bootプロンプトで停止し、ステータスログをチェックして確認します。
    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では、特定のイメージを要求した場合の効果はすぐに現れます。Linuxでは、次の reboot コマンドでのみ有効になります。