FC2カウンター FPGAの部屋 2018年10月30日
FC2ブログ

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

FPGAの部屋

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

Ultra96 ボードでデバイスツリー・オーバーレイをテストする6

Ultra96 ボードでデバイスツリー・オーバーレイをテストする5”の続き。

前回は、Ultra96 でデバイスツリー・オーバーレイでLinux が動作中にデバイスツリーを入れ替えて、異なるハードウェアを動作させることができた。今回は、そのやり方を紹介する。

デバイスツリー・オーバーレイを行うのは、negative と DMA_pow2 だ。2つのディレクトリともに lddtovray.sh と rmdtovray.sh を用意してある。 lddtovray.sh はデバイスツリー・オーバーレイをロードするバッチ・ファイルで、rmdtovray.sh はデバイスツリー・オーバーレイを削除するバッチ・ファイルだ。

negative の lddtovray.sh を示す。

#!/bin/bash

sudo mkdir /config/device-tree/overlays/fpga
sudo cp fpga-load.dtb /config/device-tree/overlays/fpga/dtbo
sudo mkdir /config/device-tree/overlays/fclk0
sudo cp fclk0-zynqmp.dtb /config/device-tree/overlays/fclk0/dtbo
sudo mkdir /config/device-tree/overlays/negative
sudo cp negative.dtb /config/device-tree/overlays/negative/dtbo


negative の rmdtovray.sh を示す。

!/bin/bash

sudo rmdir /config/device-tree/overlays/negative
sudo rmdir /config/device-tree/overlays/fclk0
sudo rmdir /config/device-tree/overlays/fpga


DMA_pow2 の lddtovray.sh を示す。

#!/bin/bash

sudo mkdir /config/device-tree/overlays/fpga
sudo cp fpga-load.dtb /config/device-tree/overlays/fpga/dtbo
sudo mkdir /config/device-tree/overlays/fclk0
sudo cp fclk0-zynqmp.dtb /config/device-tree/overlays/fclk0/dtbo
sudo mkdir /config/device-tree/overlays/DMA_pow2_test
sudo cp DMA_pow2_test.dtb /config/device-tree/overlays/DMA_pow2_test/dtbo


DMA_pow2 の rmdtovray.sh を示す。

!/bin/bash

sudo rmdir /config/device-tree/overlays/DMA_pow2_test/
sudo rmdir /config/device-tree/overlays/fclk0
sudo rmdir /config/device-tree/overlays/fpga/


lddtovray.sh と rmdtovray.sh を使用したデバイスツリー・オーバーレイを使用して、negative を実行してから、DMA_pow2 を実行する方法を示す。
1. 最初に negative のデバイスツリー・オーバーレイをロードする。
2. ./negative_test2 を実行する。
3. negative のデバイスツリー・オーバーレイを削除する。
4. DMA_pow2 のデバイスツリー・オーバーレイをロードする。
5. ./DMA_pow2_test2 を実行する。

cd ~/examples/negative
./lddtovray.sh
sudo ./negative_test2
./rmdtovray.sh
cd ../DMA_pow2
./lddtovray.sh
sudo ./DMA_pow2_test2


Ultra96_ikwzm_105_181029.png
Ultra96_ikwzm_106_181029.png
Ultra96_ikwzm_107_181029.png

その後は、./rmdtovray.sh を行えば、また、異なるハードウェアをロードして試すことができる。とても便利だ。
ikzwm さん、ありがとうございます。
  1. 2018年10月30日 05:14 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0

Ultra96 のuEnv.txt のbootargs に cpuidle.off=1を追加した

twitter で話題になっていたJTAGアダプタを付けていると、Linux 起動時にハングアップしたりする問題だが、私も1,2回なったことがあるので、対処方法を実行することにした。

twitter での話題はここにある。ひでみさんが解決方法を教えてくれた。

ひでみさんのツィートによると「AR# 69143 2017.x-2018.x Zynq UltraScale+ MPSoC: XSDB を Linux CPU アイドルに接続」に対処方法が書いてあるそうだ。

それによると、bootargs に cpuidle.off=1を追加すれば良いとのことだった。
bootargs が書いてあるのは uEnv.txt なので、そこに追加しよう。

ikwzm さんの Debian だと、/boot ディレクトリに第1パーティションがマウントされていた。
cd /boot
sudo vi uEnv.txt
で編集を行って、bootargs に cpuidle.off=1を追加した.
Ultra96_ikwzm_104_181029.png

ciniml さんと同じように xsdb で targets コマンドを使用して、ステータスを見てみた。
source /opt/Xilinx/Vivado/2018.2/settings64.sh
xsdb
connect
targets

Ultra96_ikwzm_108_181030.png

ciniml さんと同じ結果で、すべての APU が Running になっている。

disconnect
exit

して xsdb を終了した。
  1. 2018年10月30日 04:49 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0