インテル® 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 コマンドでのみ有効になります。