FC2カウンター FPGAの部屋 2023年03月30日
fc2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

Vitis アクセラレーション・プラットホームを使用して作ったハードウェアを KR260 の Ubuntu 22.04 で動作させる2

Vitis アクセラレーション・プラットホームを使用して作ったハードウェアを KR260 の Ubuntu 22.04 で動作させる1”の続き。

Vitis アクセラレーション・プラットホームを使用してハードウェアを作り、それを自作アプリケーション・ソフトウェアで動作させる7”で動作させたハードウェアとソフトウェアを KR260 の Ubuntu 22.04 で動作させてみたいということで、前回は、xmutil コマンドの動作を確認し、u-dma-buf.ko を生成した。今回は、ホスト・パソコンの ip_vadd2_file_transfer の内容を KR260 の Ubuntu 22.04 に転送した。ファイルを /lib/firmware/xilinx/kr260_ip_vadd2 ディレクトリにコピーして、kr260_ip_vadd2 をロードしたが、interrupt-controller が uio として実装されなかった。

Vitis アクセラレーション・プラットホームを使用してハードウェアを作り、それを自作アプリケーション・ソフトウェアで動作させる3”で作成した KR260/kr260_custom_platform/kr260_custom_platform/ip_vadd2_file_transfer ディレクトリの内容を KR260 の Ubuntu 22.04 に作成した ~/examples/kr260_ip_vadd2 ディレクトリに転送する。
まずは、KR260 の Ubuntu 22.04 に ~/examples/kr260_ip_vadd2 ディレクトリを作成する。
mkdir examples
cd examples/
mkdir kr260_ip_vadd2
cd kr260_ip_vadd2/


ホストパソコンの KR260/kr260_custom_platform/kr260_custom_platform/ip_vadd2_file_transfer ディレクトリの pl.dtbo, binary_container_1.xclbin, shell.json を KR260 の Ubuntu 22.04 に作成した ~/examples/kr260_ip_vadd2 ディレクトリに FileZilla で転送した。
KR260_427_230330.png

ここからは、KR260 の Ubuntu 22.04 の ~/examples/kr260_ip_vadd2 ディレクトリでの作業となる。
/lib/firmware/xilinx/kr260_ip_vadd2 ディレクトリを作成した。
sudo mkdir /lib/firmware/xilinx/kr260_ip_vadd2

binary_container_1.xclbin の名前を binary_container_1.bin に変更する。こうしないと、XRT は FPGA ビットストリームを抽出して Kria のプログラマブル ロジックをコンフィグレーションすることができないそうだ。
mv binary_container_1.xclbin binary_container_1.bin

pl.dtbo binary_container_1.bin shell.json ファイルを /lib/firmware/xilinx/kr260_ip_vadd2 ディレクトリにコピーした。
sudo cp pl.dtbo binary_container_1.bin shell.json /lib/firmware/xilinx//kr260_ip_vadd2

現在、ロードされているアクセラレーション・アプリケーションをアンロードして、kr260_ip_vadd2 をロードする。
sudo xmutil unloadapp
sudo xmutil loadapp kr260_ip_vadd2

KR260_428_230330.png

kr260_ip_vadd2 をロードした時のターミナルの様子を示す。
KR260_429_230330.png

ターミナル表示のログを示す。

[  567.076186] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /fpga-full/firmware-name
[  567.086337] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /fpga-full/resets
[  567.096574] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/overlay0
[  567.106445] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/overlay1
[  567.116297] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/afi0
[  567.125799] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/clocking0
[  567.135734] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/clocking1
[  567.145698] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/overlay2
[  567.155578] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/DMA_pow2_0
[  567.165601] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/PMOD_0
[  567.175276] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/PMOD_1
[  567.184990] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/PMOD_2
[  567.194666] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/PMOD_3
[  567.204338] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/axi_dma_0
[  567.214267] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/axi_intc_0
[  567.224283] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/axi_timer_0
[  567.234387] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/krnl_vadd_1
[  567.244518] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/misc_clk_0
[  567.254540] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/multi_axi4ls_0
[  567.345548] genirq: Flags mismatch irq 64. 00000004 (interrupt-controller) vs. 00000004 (fabric)
[  567.357125] uio_pdrv_genirq 80000000.interrupt-controller: unable to register uio device


/sys/class/uio を示す。
KR260_430_230330.png

uio0 〜 uio9 まで実装されていが、uio4 の下の name ファイルを読むと fabric と買いてあった。これは、こちらで実装した uio ではない。
その後の uio5 〜 uio9 までの name ファイルを読んだ。

uio5 - DMA_pow2
uio6 - dma
uio7 - timer
uio8 - krnl_vadd
uio9 - multi_axi4ls


という訳で、interrupt-controller が uio として実装されなかった。
  1. 2023年03月30日 04:28 |
  2. KR260
  3. | トラックバック:0
  4. | コメント:0