XPm_DevIoctl EEMI API - 2025.2 日本語 - UG1304

Versal アダプティブ SoC システム ソフトウェア開発者向けガイド (UG1304)

Document ID
UG1304
Release Date
2025-12-08
Version
2025.2 日本語

XPm_DevIoctl EEMI API は、プラットフォーム管理マスターが指定したデバイスに対して特定の動作を実行するために使用します。

Versal デバイスの RPU NODE ID は次のとおりです。

  • PM_DEV_RPU0_0
  • PM_DEV_RPU0_1

Versal プライム シリーズ Gen 2 および Versal AI エッジ シリーズ Gen 2 デバイスの RPU NODE ID は次のとおりです。

  • PM_DEV_RPU_A_0
  • PM_DEV_RPU_A_1
  • PM_DEV_RPU_B_0
  • PM_DEV_RPU_B_1
  • PM_DEV_RPU_C_1
  • PM_DEV_RPU_D_0
  • PM_DEV_RPU_D_1
  • PM_DEV_RPU_E_0
  • PM_DEV_RPU_E_1
  • PM_DEV_RPU_C_0

次の表に、Versal デバイスでサポートされる動作を示します。

表 1. XPm_DevIoctl の動作
ID 名称 説明 引数
ノード ID Arg1 Arg2 Arg3 戻り値
0 IOCTL_GET_RPU_OPER_MODE 現在の RPU の動作モードを返します。 RPU NODE ID - - - 動作モード:

0: LOCKSTEP

1: SPLIT

1 IOCTL_SET_RPU_OPER_MODE RPU の動作モードを設定します。 RPU NODE ID 動作モードの値

0: LOCKSTEP

1: SPLIT

- - -
2 IOCTL_RPU_BOOT_ADDR_CONFIG RPU のブート アドレスを設定します。

RPU NODE ID

ブート アドレスの設定値

0: LOVEC/TCM

1: HIVEC/OCM

- - -
3 IOCTL_TCM_COMB_CONFIG TCM をスプリット モードまたは結合モードに設定します。
注記: これは Versal AI エッジ シリーズ Gen 2 および Versal プライム シリーズ Gen 2 デバイスには適用されません。
NODE_RPU_0

NODE_RPU_1

設定値 (スプリット/結合)

0: SPLIT

1: COMB

- - -
4 IOCTL_SET_TAPDELAY_BYPASS タップ遅延バイパスを有効/無効にします。 NODE_QSPI タップ遅延のタイプ

2: QSPI

タップ遅延イネーブル、ディスエーブル

0: DISABLE

1: ENABLE

- -
6 IOCTL_SD_DLL_RESET SD デバイスの DLL ロジックをリセットします。 NODE_SD_0、

NODE_SD_1

SD DLL リセット タイプ

0: ASSERT

1: RELEASE

2: PULSE

- - -
7 IOCTL_SET_SD_TAPDELAY SD デバイスの入力/出力タップ遅延を設定します。

NODE_SD_0、

NODE_SD_1

設定するタップ遅延のタイプ

0: INPUT

1: OUTPUT

タップ遅延の設定値

- -
12 IOCTL_WRITE_GGS (グローバル汎用ストレージ) GGS レジスタに値を書き込みます。 - GGS レジスタ インデックス (0/1/2/3) レジスタに書き込む値 - -
13 IOCTL_READ_GGS (グローバル汎用ストレージ) GGS レジスタの値を返します。 - GGS レジスタ インデックス (0/1/2/3) - - レジスタ値
14 IOCTL_WRITE_PGGS (永続的なグローバル汎用ストレージ) PGGS レジスタに値を書き込みます。 - PGGS レジスタ インデックス (0/1/2/3) レジスタに書き込む値 - -
15 IOCTL_READ_PGGS (永続的なグローバル汎用ストレージ) PGGS レジスタの値を返します。 - PGGS レジスタ インデックス (0/1/2/3) - - レジスタ値
17 IOCTL_SET_BOOT_HEALTH_STATUS ファームウェアにブートの健全性を通知するヘルシー ビットの値を設定します。 - ヘルシー ビットの値 - - -
21 IOCTL_OSPI_MUX_SELECT OSPI AXI マルチプレクサーを選択します。 NODE_OSPI 動作モード

0: DMA を選択

1: リニアを選択

2: モードを取得

- - モードを取得

0: DMA

1: リニア

22 IOCTL_USB_SET_STATE USB コントローラーのデバイス電力ステートを設定します。 NODE_USB_0 要求された電力ステート

0: D0

1: D1

2: D2

3: D3

- - -
23 IOCTL_GET_LAST_RESET_REASON 最後のシステム リセットの要因を取得します。 - - - -

0 – システム外部で POR ボタンが押された

1 – ソフトウェアによる内部 POR が発生した

2 - ほかのいずれか 1 つの SSIT スライスによって POR が発生した

3 - エラーにより POR が発生した

7 - JTAG TAP によりシステム リセットが開始された

8 - エラーによりシステム リセットが開始された

9 - ソフトウェアによりシステム リセットが開始された

10 - ほかのいずれか 1 つの SSIT スライスによってシステム リセットが発生した

15 – 無効なリセット要因

24 IOCTL_AIE_ISR_CLEAR AI エンジン NPI 割り込みをクリアします。
注記: この機能は、現時点で Versal AI エッジ シリーズ Gen 2 および Versal プライム シリーズ Gen 2 デバイスではサポートされません。
DEV_AIE (0x18224072U) 4 ビット NPI 割り込みクリア マスク (wtc)

ビット <3-0> が割り込み <3-0> に対応

- - -
28

IOCTL_READ_REG

特定のノード ID 用の特定のオフセット アドレスを安全に読み出すために使用します。 - オフセット count (=1) - -
29 IOCTL_MASK_WRITE_REG 特定のノード ID 用の特定のオフセット アドレスを安全に書き込むために使用します。 - オフセット mask -
33 IOCTL_AIE_OPS パーティションの初期化および取り壊し用の AIEML/AIE1 ランタイム動作です。 DEV_AIE またはパーティションのノード ID (現在は使用されていない)。 Arg1(15:0): 動作の対象となるパーティションの開始カラム。

Arg1(31:16): パーティションのカラム数 (またはパーティションの最後のカラム)。

動作の red 値。各ビットが 1 つの動作に関連付けられます。

ビット値が 1 の場合、動作を実行する必要があることを示します。

- XST_SUCCESS またはエラー コード。
39 IOCTL_AIE2PS_OPS AIE2PS ランタイム動作 変更なし AIE2PS 動作のバッファー サイズ バッファー物理アドレスの上位 32 ビット バッファー物理アドレスの下位 32 ビット  
34 IOCTL_GET_QOS デバイスの QoS 値を取得します。
注記: この機能は、現時点で Versal AI エッジ シリーズ Gen 2 および Versal プライム シリーズ Gen 2 デバイスではサポートされません。
- - - - 応答は次の 2 つの値を返します。

0: デフォルトの QoS 値

1: 現在の QoS 値

35 IOCTL_GET_APU_OPER_MODE 現在の APU の動作モードを返します。
注記: この機能は、Versal AI エッジ シリーズ Gen 2 および Versal プライム シリーズ Gen 2 デバイスでのみサポートされます。
Versal プライム シリーズ Gen 2 および Versal AI エッジ シリーズ Gen 2 デバイスの APU ノード ID - - - 動作モード:

0: SPLIT

1: LOCKSTEP

36 IOCTL_SET_APU_OPER_MODE APU の動作モードを設定します。
注記: この機能は、Versal AI エッジ シリーズ Gen 2 および Versal プライム シリーズ Gen 2 デバイスでのみサポートされます。
Versal プライム シリーズ Gen 2 および Versal AI エッジ シリーズ Gen 2 デバイスの APU ノード ID 動作モードの値:

0: SPLIT

1: LOCKSTEP

- - -
37 IOCTL_PREPARE_DDR_SHUTDOWN 1 LPDDR SDRAM デバイスのシャットダウンを準備します。 PM_DEV_DDR_0 - - - XST_SUCCESS または XPM_INVALID_DEVICE_ID または XPM_ERR_DEVICE_STATUS またはその他のエラー コード
38 IOCTL_GET_SSIT_TEMP SYSMON ノード ID + SLR 番号
注記: この機能は、現時点で Versal AI エッジ シリーズ Gen 2 および Versal プライム シリーズ Gen 2 デバイスではサポートされません。
ローカル SYSMON 最小/最大温度レジスタ オフセット - - - SSIT 温度データ
  1. JEDEC LPDDR SDRAM 仕様では、制御されない電源切断シーケンスがデバイスの寿命全体で最大 400 回まで発生することがあります。デバイスの電源切断中、LPDDR SDRAM デバイス クロック イネーブル (CKE) は LOW に保持される必要があります。
注記: IOCTL_GET_QOS は現在、AI エンジン クロック周波数に対する AI エンジン パーティション ノードのみサポートします。デフォルトの QoS はブート時のオリジナル分周値を示し、現在の QoS 値は設定されている現在の分周値を示します。
表 2. 動作
31st ~ 10th 9th 8th 7th 6th 5th 4th 3rd 2nd 1st 0th
予約 Memtile のゼロ化 (AI エンジン 2 でのみサポート) データ メモリのゼロ化 プログラム メモリのゼロ化 L2 コントローラー NPI INTR を設定する AXI4 エラー イベントを有効にする カラム クロック バッファーを無効にする プログラムおよびデータ メモリのゼロ化 カラム クロック バッファーを有効にする シムのリセット カラムのリセット
表 3. Versal プライム シリーズ Gen 2 および Versal AI エッジ シリーズ Gen 2 デバイスの動作
動作
カラムのリセット 1
シムのリセット 2
UC のゼロ化 3
カラム クロック バッファーを有効にする 4
ハンドシェイク動作 5
ハードウェア エラー ステータスをクリアする 6
開始するカラム位置 7
データ メモリとプログラム メモリをゼロ化する 8
AXIMM の分離 9
NMU のコンフィギュレーション 10
特権メモリを無効にする 11
メモリ インターリーブを無効にする 12
UC DMA トランザクションを一時停止する 13
NoC DMA トランザクションを一時停止する 14
ECC スクラブ周期を設定する 15
カラム クロック バッファーを無効にする 16
ハードウェア エラー割り込みを設定する 17
ハードウェア エラー割り込みをマスクする 18
特権メモリを有効にする 19
AXI-MM エラー イベントを有効にする 32
L2 コントローラー NPI 割り込みを設定する 64
プログラム メモリのゼロ化 128
データ メモリのゼロ化 256
メモリ タイルのゼロ化 512