mem --write - 2020.1 Japanese

Vitis 統合ソフトウェア プラットフォームの資料: アプリケーション アクセラレーション開発 (UG1393)

Document ID
UG1393
Release Date
2020-08-20
Version
2020.1 Japanese
重要: このオプションはエンベデッド プロセッサ プラットフォームでは使用できません。

mem --write コマンドは、定義したパターンを指定したメモリの位置のセットに書き込みます。

コマンド ライン形式は次のとおりです。

xbutil mem --write [-d card] [-a [0x]start_addr] 
[-i size_bytes] [-e pattern_byte]

次の表に、使用可能なオプションを示します。

表 1. xbutil mem --write コマンドのオプション
オプション 説明 必須
-d <card> ターゲット カードを指定します。<card> は、card_id または Bus:Device:Function (BDF) のいずれかに指定できます。指定しない場合は、デフォルトの card_id = 0 になります。
注記: xbutil scan コマンドを使用すると、インストールされたカードに対して card_id と BDF の両方が表示されます。
×
-a <start_addr> 有効な開始アドレスを 16 進数または 10 進数のいずれかのフォーマットに指定します。16 進数フォーマットは、0x100 など、0x で開始する必要があります。デフォルト アドレスは 0x0 です。

有効なアドレスは、次に示すように、Linux の dmesg コマンドで取得できます。

×
-i <size_bytes> メモリ転送サイズ (バイト) を 16 進数または 10 進数のいずれかのフォーマットに指定します。16 進数フォーマットは、0x100 など、0x で開始する必要があります。 ×
-e <pattern> すべての定義済みのバイト位置に書き込まれるバイト パターンを 16 進数または 10 進数のいずれかのフォーマットに指定します。16 進数フォーマットは、0xEF など、0x で開始する必要があります。 ×

次は、DDR バンク 0、1、2、および 3 を使用して、xclbin を指定した場合のコマンド出力の例です。

xbutil mem --write -a 0x0 -d2 -i 0x10 -e 0xef
INFO: Found total 1 card(s), 1 are usable
INFO: Writing to single bank, 16 bytes from DDR/HBM/PLRAM address 0x0
INFO: Writing DDR/HBM/PLRAM with 16 bytes of pattern: 0xef from address 0x0
INFO: xbutil mem succeeded.

無効な開始アドレスが使用されると、次のようなエラー メッセージが表示されます。開始アドレスは、そのデバイスのアドレス空間内に含まれる必要があります。この例の場合、0x400 は無効な開始アドレスです。

ERROR: Start address 0x400 is not valid
Available memory banks:
ERROR: xbutil mem failed.
ヒント: grep を使用して、使用可能なアドレス空間を表示します。たとえば、次のコマンドでは、DDR メモリのベース アドレスが表示されます。
dmesg | grep -A 10 -i ddr

Linux の dmesg 出力には、さまざまな DDR メモリのベース アドレスが表示されます。次は、DDR[1] の出力の例です。

[23174.283512] xocl 0000:a6:00.1: xocl_init_mem: Memory Bank: DDR[1]
[23174.283514] xocl 0000:a6:00.1: xocl_init_mem: Base Address:0x8000000000
[23174.283515] xocl 0000:a6:00.1: xocl_init_mem: Size:0x400000000

上記の -i ddr の検索用語を -i hbm に置き換えると、HBM メモリのベース アドレスを検索できます。

メモリ アドレスの読み出し方法は、mem --read を参照してください。