FC2カウンター FPGAの部屋 ”FPGA+SoC+Linux+Device Tree Overlay+FPGA Manager(PYNQ-Z1対応)”を試してみる5(デバイスツリー・オーバーレイ)

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

FPGAの部屋

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

”FPGA+SoC+Linux+Device Tree Overlay+FPGA Manager(PYNQ-Z1対応)”を試してみる5(デバイスツリー・オーバーレイ)

”FPGA+SoC+Linux+Device Tree Overlay+FPGA Manager(PYNQ-Z1対応)”を試してみる4(環境の整備)”の続き。

前回は、ikwzm さんの配布しているDebian の環境整備を行った。今回は、 デバイスツリー・オーバーレイを確かめてみよう。

FPGA+SoC+LinuxでDevice Tree Overlayを試してみた”を参考に、デバイスツリー・オーバーレイを試してみよう。追加するデバイスツリーは、下の2つの記事で作成したAXI GPIO を使用したLED表示回路とする。
PYNQのLED表示プロジェクト1(ブロックデザインの作成)”
”PYNQのLED表示プロジェクト2(完成)

まずは、dtbocfg.ko はどこにあるのだろうか?ということで、nautilus を起動して、検索した。
その結果、/lib/modules/4.8.17-armv7-fpga/ikwzm ディレクトリにあることが分かった。
PYNQ_Linux_ikwzm_61_170401.png

ls -la /config/device-tree/overlays/
をやってみたところ、あったので、dtbocfg デバイスドライバはロードされているようだ。
PYNQ_Linux_ikwzm_62_170402.png

/config/device-tree/overlays で uio_gpio_0 ディレクトリを作成した。
sudo mkdir uio_gpio_0
ls -la uio_gpio_0/
でディレクトリを見ると、dtbo と status ファイルが生成されていた。
PYNQ_Linux_ikwzm_63_170402.png

uio_gpio_0..dts を address editor の内容とテンプレートを参考に作成した。
PYNQ_Linux_ikwzm_64_170402.png

/dts-v1/;
/ {
    fragment@0 {
        target-path = "/amba";
        __overlay__ {
            #address-cells = <0x1>;
            #size-cells = <0x1>;
            uio_gpio_0@41200000 {
                compatible = "generic-uio";
                reg = <0x41200000 0x10000>;
                #interrupts = <0x0 0x1d 0x4>;
            };
        };
    };
};


(2017/04/06:修正 デバイスツリーの領域を 0x1000 から 0x10000 に修正した)

uio_gpio_0.dts をコンパイルして uio_gpio_0.dtbo を生成した。
dtc -I dts -O dtb -o uio_gpio_0.dtbo uio_gpio_0.dts
スーパーユーザーになって、uio_gpio_0.dtbo を /config/device-tree/overlays/uio_gpio_0/dtbo にコピーした。
cp uio_gpio_0.dtbo /config/device-tree/overlays/uio_gpio_0/dtbo
PYNQ_Linux_ikwzm_65_170402.png

echo 1 > /config/device-tree/overlays/uio_gpio_0/status を行った。
/dev/uio0 が見えた。
ls -la /dev/uio*
なお、uio_gpio_0/status に 1 を書く前は /dev/uio0 は存在しない。
PYNQ_Linux_ikwzm_66_170402.png

/sys/devices/soc0/amba ディレクトリに 41200000.uio._gpio_0 ディレクトリがあった。
PYNQ_Linux_ikwzm_67_170402.png

/sys/devices/soc0/amba/41200000.uio._gpio_0/uio/uio0 ディレクトリを示す。
PYNQ_Linux_ikwzm_68_170402.png

/sys/devices/soc0/amba/41200000.uio._gpio_0/uio/uio0 ディレクトリの name ファイルの内容を示す。
uio_gpio_0 だった。
PYNQ_Linux_ikwzm_69_170402.png

デバイスツリー・オーバーレイで uio_gpio_0 をロードできることが分かった。
  1. 2017年04月04日 05:00 |
  2. PYNQ
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog19.fc2.com/tb.php/3763-1646ba65
この記事にトラックバックする(FC2ブログユーザー)