AR# 66295

Zynq UltraScale+ MPSoC Processing System IP - PS-PL AXI インターフェイスが 64 または 32 ビット幅 (または M_AXI_HP0_LPD の場合 128 ビット) で正しく機能しない

説明

AXI インターフェイスを 32 または 64 ビット幅で使用したり M_AXI_HP0_LPD に 128 ビットを使用するとデータが正しく配列されず、データが破損します。

この問題の解決方法を教えてください。

ソリューション

IP インテグレーター インターフェイスのセクションは正常にパラメーター指定されますが、デバッガーおよび FSBL が使用する psu_init.tcl/.c で、幅を制御する PS レジスタが アップデートされません。

この問題を回避するには、AXI インターフェイスを使用する前にこのレジスタにアクセスして、 AXI 幅を手動で設定します。

現在のバージョンの PCW には問題が 2 つあります。

  1. PS-PL AXI インターフェイス幅の設定が psu_init に含まれていません。 読み出しおよび書き込みチャネルの RDCTRL および WRCTRL レジスタは、PCW に含まれる AXI 幅の設定で書き出す必要があります。
  2. PS-PL AXI インターフェイスのレジスタ書き込みに関する設定は AFI モジュールがリセットされる前に設定されるので、これらの設定には影響しません。これらの設定は AFI モジュールがリセットされた後に行う必要があります。


レジスタの AXI 幅設定を psu_init に含まれている psu_ps_pl_isolation_removal_data() proc に手動で追加して、PL にロジックがある場合にのみこれらの設定が使用されるようにすると、この問題を回避できます。 

AFI モジュールは、この手順の前にリセットされているので、操作は必要ありません。

変更する関連レジスタを次に示します。

AXI インターフェイスレジスタ名アドレスビット
M_AXI_HPM0_FPDFPD_SLCR.axi_fs.dw_ss0_sel0xFD6150009:8
M_AXI_HPM1_FPDFPD_SLCR.axi_fs.dw_ss1_sel0xFD61500011:10
M_AXI_HPM0_LPDLPD_SLCR.axi_fs.dw_ss2_sel0xFF4190009:8
S_AXI_HPC0_FPDAFIFM0.AFIFM_RDCTRL.FABRIC_WIDTH and AFIFM0.AFIFM_WRCTRL.FABRIC_WIDTH0xFD360000 および 0xFD3600141 : 0
S_AXI_HPC1_FPDAFIFM1.AFIFM_RDCTRL.FABRIC_WIDTH および AFIFM1.AFIFM_WRCTRL.FABRIC_WIDTH0xFD370000 および 0xFD3700141 : 0
S_AXI_HP0_FPDAFIFM2.AFIFM_RDCTRL.FABRIC_WIDTH および AFIFM2.AFIFM_WRCTRL.FABRIC_WIDTH0xFD380000 および 0xFD3800141 : 0
S_AXI_HP1_FPDAFIFM3.AFIFM_RDCTRL.FABRIC_WIDTH および AFIFM3.AFIFM_WRCTRL.FABRIC_WIDTH0xFD390000 および 0xFD3900141 : 0
S_AXI_HP2_FPDAFIFM4.AFIFM_RDCTRL.FABRIC_WIDTH および AFIFM4.AFIFM_WRCTRL.FABRIC_WIDTH0xFD3A0000 および 0xFD3A00141 : 0
S_AXI_HP3_FPDAFIFM5.AFIFM_RDCTRL.FABRIC_WIDTH および AFIFM5.AFIFM_WRCTRL.FABRIC_WIDTH0xFD3B0000 および 0xFD3B00141 : 0
S_AXI_LPDAFIFM6.AFIFM_RDCTRL.FABRIC_WIDTH および AFIFM6.AFIFM_WRCTRL.FABRIC_WIDTH0xFF9B0000 および 0xFF9B00141 : 0


レジスタ値

FPD_SLCR レジスタ:

  • 2'b00 : 32 ビット イネーブル
  • 2'b01 : 64 ビット イネーブル
  • 2'b10 : 128 ビット イネーブル
  • 2'b11 : 予約

AXIFM レジスタ:

  • 2'b11 : 予約
  • 2'b10 : 32 ビット イネーブル
  • 2'b01 : 64 ビット イネーブル
  • 2'b00 : 128 ビット イネーブル


Vivado 2016.3:

  • JTAG Tcl フローの問題が解決しても FSBL フローの問題が解決しない場合は、(Xilinx Answer 68166) を参照してください。

Vivado 2016.4:

  • ビットストリームが FSBL から読み込まれると、この問題は解決します。
  • U-Boot または Linux から読み込むと、この問題は解決しません。
Vivado 2017.1:
  • すべての問題を解決済み

アンサー レコード リファレンス

マスター アンサー レコード

Answer Number アンサータイトル 問題の発生したバージョン 修正バージョン
66183 Zynq UltraScale+ MPSoC Processing System IP - リリース ノートおよび既知の問題 N/A N/A
AR# 66295
日付 12/11/2017
ステータス アクティブ
種類 一般
デバイス
ツール
IP