FC2カウンター FPGAの部屋 秋月電子カメラモジュールOV5642を使う9(デバイスツリー・オーバレイ用ファイルの整備)
FC2ブログ

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

FPGAの部屋

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

秋月電子カメラモジュールOV5642を使う9(デバイスツリー・オーバレイ用ファイルの整備)

秋月電子カメラモジュールOV5642を使う8(OV5642用Vivadoプロジェクト)”の続き。

前回は、Ultra96 用の cam_test_182 のVivado プロジェクトを少し改変して、OV5642用のVivado プロジェクトを作った。今回は、Debian 上でソフトウェアを起動するために、デバイスツリー・オーバレイ関連のファイルを整備する。

まずは、Ultra96 のDebian を起動して、~/examples/ ディレクトリに行って、 cam_cap_ov5642 ディレクトリを作成した。
cd ~/examples/
mkdir cam_cap_ov5642

OV5642_27_181212.png

nautilus を起動して、cam_capture ディレクトリの内のアプリケーションの実行ファイルの cam_capture 以外を cam_cap_ov5652 ディレクトリにコピーした。
OV5642_28_181212.png

パソコンからUltra96 のDebian に SFTP して、前回作成した cam_test_ov5642.bin をcam_cap_ov5652 ディレクトリにアップロードした。
OV5642_29_181212.png

SFTP したcam_cap_ov5652 ディレクトリの cam_test_ov5642.bin を /lib/firmware/ ディレクトリにコピーした。
sudo cp cam_test_ov5642.bin /lib/firmware/
OV5642_30_181212.png

/lib/firmware/ ディレクトリに cam_test_ov5642.bin がコピーされた。
OV5642_31_181212.png

cam_capture.dtb を削除して、cam_capture.dts を cam_cap_ov5642.dts に名前を変更した。
OV5642_32_181212.png

各dts ファイルを書き換えた。
最初に fpga-load.dts から示す。

/dts-v1/;
/ {
    fragment@0 {
        target-path = "/fpga-full";
        __overlay__ {
            firmware-name = "cam_test_ov5642.bin";
        };
    };
};


fclk01-zynqmp.dts を示す。

/dts-v1/;/plugin/;
/ {
    fragment@0 {
        target-path = "/amba";
        __overlay__ {
            fclk0 {
                compatible    = "ikwzm,fclkcfg-0.10.a";
                clocks        = <&clk 0x47>;
                insert-rate   = "100000000";
                insert-enable = <1>;
                remove-rate   = "1000000";
                remove-enable = <0>;
            };
            
            fclk1 {
                compatible    = "ikwzm,fclkcfg-0.10.a";
                clocks        = <&clk 0x48>;
                insert-rate   = "24000000";
                insert-enable = <1>;
                remove-rate   = "1000000";
                remove-enable = <0>;
            };
        };
    };
};


cam_cap_ov5642.dts を示す。

/dts-v1/;/plugin/;
/ {
    fragment@0 {
        target-path = "/amba_pl@0";
        #address-cells = <2>;
        #size-cells = <2>;

        __overlay__ {
            #address-cells = <2>;
            #size-cells = <2>;

            mt9d111_inf_axis-uio {
                compatible = "generic-uio";
                reg = <0x0 0xA0000000 0x0 0x1000>;
            };
            
            axi_iic-uio {
                compatible = "generic-uio";
                reg = <0x0 0xA0001000 0x0 0x1000>;
            };
            
            DMA_Write_sFB-uio {
                compatible = "generic-uio";
                reg = <0x0 0xA0010000 0x0 0x10000>;
            };

            cam_cap_ov5642-udmabuf4 {
                compatible  = "ikwzm,udmabuf-0.10.a";
                device-name = "udmabuf4";
                size = <0x00800000>;
            };
        };
    };
};


各 dts をコンパイルした。
dtc -I dts -O dtb -o fpga-load.dtb fpga-load.dts
dtc -I dts -O dtb -o fclk01-zynqmp.dtb fclk01-zynqmp.dts

OV5642_33_181214.png

dtc -I dts -O dtb -o cam_cap_ov5642.dtb cam_cap_ov5642.dts
OV5642_34_181214.png

各 dts ファイルをコンパイルして dtb ファイルを生成した。

各デバイスツリーをロードするシェルスクリプト 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/fclk01
sudo cp fclk01-zynqmp.dtb /config/device-tree/overlays/fclk01/dtbo
sudo mkdir /config/device-tree/overlays/cam_cap_ov5642
sudo cp cam_cap_ov5642.dtb /config/device-tree/overlays/cam_cap_ov5642/dtbo

sleep 0.5
sudo chmod 666 /dev/uio*
sudo chmod 666 /dev/udmabuf4


各デバイスツリーを削除するシェルスクリプト rmdtovray.sh を示す。

#!/bin/bash

sudo rmdir /config/device-tree/overlays/cam_cap_ov5642/
sudo rmdir /config/device-tree/overlays/fclk01
sudo rmdir /config/device-tree/overlays/fpga/

  1. 2018年12月14日 04:47 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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