question about port labeling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

through my work I have suddenly to deal with the device tree, it‘s my
first time. The platform I am dealing with is a Xilinx UltraScale+ with
Petalinux.

In the FPGA a video chain is set up. It contains different IP-Cores but
not all IP-Cores are from Xilinx we also use custom ones.

Yesterday I wanted to compile the Petalinux, but got an error that a
label (port connection, found in pl.dtsi) was not found in the device
tree. This is because it was the connection from a Xilinx IP-Core to a
custom one (video_cropper), which could not be recognized. I fixed the
error by adding in and out ports to the node of the custom IP-Core ->
snipped from system-user.dtsi

&sdi_rx_input_SDI_IN_2_video_cropper_0 {

    video_cropper_2_port0: ports {
        port@0 {
            compatible = "rme,mkfcrop";
            rme,width = <1920>;
            rme,height = <1080>;
            rme,hor-offset = <0>;
            rme,vert-offset = <0>;
            direction = "input";
            reg = <0>;
	sdi_rx_input_SDI_IN_2_video_cropper_0sdi_rx_input_SDI_IN_2_v_smpte_uhdsdi_rx_ss: endpoint {
                remote-endpoint =
<&sdirx_outsdi_rx_input_SDI_IN_2_v_smpte_uhdsdi_rx_ss>;
            };
        };

        port@1 {
            compatible = "rme,mkfcrop";
            rme,width = <1920>;
            rme,height = <1080>;
            rme,hor-offset = <0>;
            rme,vert-offset = <0>;
            direction = "output";
            reg = <1>;
            video_cropper_2_out: endpoint {
                remote-endpoint = <&sdi_rx_input_SDI_IN_2_v_proc_ss_0>;
            };
        };
    };
};




The compilation went without errors but WHY? The output port
"remote-endpoint = <&sdi_rx_input_SDI_IN_2_v_proc_ss_0>;" points to the
label of the node found in the pl.dtsi, but not to the input port of
this node (it has no input port label) -> snipped from pl.dtsi

                sdi_rx_input_SDI_IN_2_v_proc_ss_0: v_proc_ss@a0240000 {
                        clock-names = "aclk_axis", "aclk_ctrl";
                        clocks = <&zynqmp_clk 72>, <&zynqmp_clk 71>;
                        compatible = "xlnx,v-proc-ss-2.3",
"xlnx,vpss-scaler-2.2", "xlnx,v-vpss-scaler-2.2", "xlnx,vpss-scaler";
                        reg = <0x0 0xa0240000 0x0 0x40000>;
                        reset-gpios = <&gpio_resets_axi_gpio_resets 5 0 1>;
                        xlnx,colorspace-support = <0>;
                        xlnx,csc-enable-window = "true";
                        xlnx,enable-csc = "false";
                        xlnx,h-scaler-phases = <64>;
                        xlnx,h-scaler-taps = <6>;
                        xlnx,max-height = <1125>;
                        xlnx,max-num-phases = <64>;
                        xlnx,max-width = <2200>;
                        xlnx,num-hori-taps = <6>;
                        xlnx,num-vert-taps = <6>;
                        xlnx,pix-per-clk = <2>;
                        xlnx,samples-per-clk = <2>;
                        xlnx,scaler-algorithm = <2>;
                        xlnx,topology = <0>;
                        xlnx,use-uram = <0>;
                        xlnx,v-scaler-phases = <64>;
                        xlnx,v-scaler-taps = <6>;
                        xlnx,video-width = <10>;
                        scaler_portssdi_rx_input_SDI_IN_2_v_proc_ss_0:
ports {
                                #address-cells = <1>;
                                #size-cells = <0>;

scaler_port1sdi_rx_input_SDI_IN_2_v_proc_ss_0: port@1 {
                                        /* For xlnx,video-format user
needs to fill as per their requirement */
                                        reg = <1>;
                                        xlnx,video-format = <3>;
                                        xlnx,video-width = <10>;

sca_outsdi_rx_input_SDI_IN_2_v_proc_ss_0: endpoint {
                                                remote-endpoint =
<&sdi_rx_input_SDI_IN_2_v_frmbuf_wr_0sdi_rx_input_SDI_IN_2_v_proc_ss_0>;
                                        };
                                };

scaler_port0sdi_rx_input_SDI_IN_2_v_proc_ss_0: port@0 {
                                        /* For xlnx,video-format user
needs to fill as per their requirement */
                                        reg = <0>;
                                        xlnx,video-format = <3>;
                                        xlnx,video-width = <10>;
                                };
                        };
                };



Sorry for the bad formatting of the snippets.

kind regards,
Patrice



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux