XPm_DevIoctl EEMI API - 2023.2 日本語

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

Document ID
UG1304
Release Date
2023-10-18
Version
2023.2 日本語

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

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

  • PM_DEV_RPU0_0
  • PM_DEV_RPU0_1

次の表に、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 をスプリット モードまたは結合モードに設定します。 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 ファームウェアにブートの健全性を通知するヘルシー ビットの値を設定します。 ヘルシー ビットの値
19 IOCTL_PROBE_COUNTER_READ LPD/FPD のプローブ カウンター レジスタを読み出します。 FPD/LPD 電源ドメイン ID

LPD: 0x4210002U

FPD: 0x420C003U

レジスタ設定

- カウンター番号 (ビット 0 ~ 7)

- レジスタ タイプ (ビット 8 ~ 15)

0 - LAR_LSR アクセス (要求タイプとカウンター番号を無視)

1 - メイン制御 (カウンター番号を無視)

2 - コンフィギュレーション制御 (カウンター番号を無視)

3 - ステート周期 (カウンター番号を無視)

4 - PortSel

5 - Src

6 - Val

- 要求タイプ (ビット 16 ~ 23)

0 - 読み出し要求

1 - 読み出し応答

2 - 書き込み要求

3 - 書き込み応答

4 - LPD 読み出し要求 (LPD のみ)

5 - LPD 読み出し応答 (LPD のみ)

6 - LPD 書き込み要求 (LPD のみ)

7 - LPD 書き込み応答 (LPD のみ)

レジスタ値
20 IOCTL_PROBE_COUNTER_WRITE LPD/FPD のプローブ カウンター レジスタに書き込みます。 FPD/LPD 電源ドメイン ID

LPD: 0x4210002U

FPD: 0x420C003U

レジスタ設定

- カウンター番号 (ビット 0 ~ 7)

- レジスタ タイプ (ビット 8 ~ 15)

0 - LAR_LSR アクセス (要求タイプとカウンター番号を無視)

1 - メイン制御 (カウンター番号を無視)

2 - コンフィギュレーション制御 (カウンター番号を無視)

3 - ステート周期 (カウンター番号を無視)

4 - PortSel

5 - Src

- 要求タイプ (ビット 16 ~ 23)

0 - 読み出し要求

1 - 読み出し応答

2 - 書き込み要求

3 - 書き込み応答

4 - LPD 読み出し要求 (LPD のみ)

5 - LPD 読み出し応答 (LPD のみ)

6 - LPD 書き込み要求 (LPD のみ)

7 - LPD 書き込み応答 (LPD のみ)

レジスタに書き込む値
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 割り込みをクリアします。 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 またはエラー コード。
34 IOCTL_GET_QOS デバイスの QoS 値を取得します。 応答は次の 2 つの値を返します。

0: デフォルトの QoS 値

1: 現在の QoS 値

37 IOCTL_PREPARE_DDR_SHUTDOWN 1 LPDDR SDRAM デバイスのシャットダウンを準備します。 PM_DEV_DDR_0       XST_SUCCESS または XPM_INVALID_DEVICE_ID または XPM_ERR_DEVICE_STATUS またはその他のエラー コード
  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 エラー イベントを有効にする カラム クロック バッファーを無効にする プログラムおよびデータ メモリのゼロ化 カラム クロック バッファーを有効にする シムのリセット カラムのリセット