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

ID 683184
日付 6/09/2023
Public
ドキュメント目次

7.3.1. U-Boot を使用して基本操作を実行する

このセクションでは、U-Boot を使用して次の基本操作を実行する方法を説明します。
  • RSU ステータスを問い合わせます。
  • スロットの数とスロットに関する情報のクエリ
  • RSU ステータスを問い合わせます。
  • スロットの数とスロットに関する情報のクエリ
  • スロットの数とスロットに関する情報のクエリ
注: このセクションでは、フラッシュに初期 RSU イメージが含まれていることを前提としています。 これが当てはまらない場合は、「QSPI への初期 RSU イメージのフラッシュ」に示すように、初期イメージを再フラッシュする必要があります。.
  1. ボードの電源を入れ直し、プロンプトが表示されたら任意のキーを押して、U-Boot コマンド プロンプトを表示します。
    U-Boot 2021.01-12712-ge59d8e9eaa-dirty (Jun 30 2021 - 10:40:17 -0500)socfpga_agilex
    
    CPU:   Intel FPGA SoCFPGA Platform (ARMv8 64bit Cortex-A53)
    Model: SoCFPGA Agilex SoCDK
    DRAM:  8 GiB
    WDT:   Started with servicing (10s timeout)
    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 - 62:08:b9:b7:79:2d
    eth0: ethernet@ff800000
    Hit any key to stop autoboot:  5 
    
     0 
    SOCFPGA #
  2. ボードの電源を入れ直し、プロンプトが表示されたら任意のキーを押して、U-Boot コマンド プロンプトを表示します。
    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 
    display_dcmf_status - display DCMF status and store it for SMC handler usage
    display_max_retry - display max_retry parameter, and store it for SMC handler usage
    restore_spt <address> - restore SPT from an address
    save_spt <address> - save SPT to an address
    create_empty_cpb - create a empty CPB
    restore_cpb <address> - restore CPB from an address
    save_cpb <address> - save CPB to an address
    check_running_factory - check if currently running the factory image
  3. ボードの電源を入れ直し、プロンプトが表示されたら任意のキーを押して、U-Boot コマンド プロンプトを表示します。
    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
    注:リスト U-Boot コマンドには、RSU クライアントに相当するコマンドがありません。代わりに、次に示すように、他のコマンドを使用して同じ情報を取得できます。
  4. を実行します。 rsuステータスログ 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

    ボードの電源を入れ直し、プロンプトが表示されたら任意のキーを押して、U-Boot コマンド プロンプトを表示します。

  5. rsu display_dcmf_version を実行して、決定ファームウェアのバージョンを照会および表示します。
    SOCFPGA # rsu display_dcmf_version
    DCMF0 version = 22.1.0
    DCMF1 version = 22.1.0
    DCMF2 version = 22.1.0
    DCMF3 version = 22.1.0
  6. スロットに関する情報を表示します。
    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.
  7. スロットに関する情報を表示します。
    SOCFPGA # rsu slot_erase 1
    Slot 1 erased
    SOCFPGA # load mmc 0:1 $loadaddr application2.rpd
    3358720 bytes read in 153 ms (20.9 MiB/s)
    SOCFPGA # rsu slot_program_buf 1 $loadaddr $filesize
    Slot 1 was programmed with buffer=0x0000000002000000 size=3358720.
  8. スロットに関する情報を表示します。
    SOCFPGA # rsu slot_verify_buf 1 $loadaddr $filesize
    Slot 1 was verified with buffer=0x0000000002000000 size=3358720.
  9. スロット 1 (パーティション P2) に最も優先度の高いイメージが含まれていることを確認します。
    SOCFPGA # rsu slot_get_info 1
    NAME: P2
    OFFSET: 0x0000000002000000
    SIZE: 0x01000000
    PRIORITY: 1
  10. スロットに関する情報を表示します。
    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 で最高の優先順位としてマークされているため、ロードされました。

  11. 次の 2 つのコマンドのいずれかを実行して、スロット 0 (パーティション P1) からアプリケーション・イメージをロードします。
    SOCFPGA # rsu update 0x01000000
    RSU: RSU update to 0x0000000001000000

    or

    SOCFPGA # rsu slot_load 0
  12. 新しく要求されたイメージをロードします。 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 では、次回の再起動コマンドでのみ有効になります。.