How do I display test pattern output from Ultra96 on Jetson Xavier NX?

Dear ShaneCCC,

Thanks you for your reply!

Thanks to you, I was able to change the embedded_metadata_height setting and I was able to display the Ultra96 test pattern on Jetson Xavier NX.

Trial content

I checked the embedded_metadata_height setting again.
The setting was embedded_metadata_height = “2”.
I was extracting the embedded_metadata_height setting in the wrong way.
The result of extracting the embedded_metadata_height setting from “/sys/firmware/fdt” is shown below.

Execution command

sudo fdtdump /sys/firmware/fdt 

Execution result

/dts-v1/;
// magic:		0xd00dfeed
// totalsize:		0x32c2e (207918)
// off_dt_struct:	0x38
// off_dt_strings:	0x2d814
// off_mem_rsvmap:	0x28
// version:		17
// last_comp_version:	16
// boot_cpuid_phys:	0x0
// size_dt_strings:	0x3e4a
// size_dt_struct:	0x2d7dc

/ {
    serial-number = "1423920018932";
    compatible = "nvidia,p3449-0000+p3668-0000", "nvidia,p3449-0000+p3668-0001", "nvidia,p3509-0000+p3668-0000", "nvidia,p3509-0000+p3668-0001", "nvidia,tegra194";
    interrupt-parent = <0x00000001>;
    #address-cells = <0x00000002>;
    #size-cells = <0x00000002>;
    nvidia,fastboot-usb-vid = <0x00000955>;
    nvidia,fastboot-usb-pid = <0x0000ee1e>;
    model = "NVIDIA Jetson Xavier NX Developer Kit";
    nvidia,dtsfilename = "/dvs/git/dirty/git-master_linux/kernel/kernel-4.9/arch/arm64/boot/dts/../../../../../../hardware/nvidia/platform/t19x/jakku/kernel-dts/tegra194-p3668-all-p3509-0000.dts";
    nvidia,dtbbuildtime = "Mar  2 2021", "19:56:08";

....

    cam_i2cmux {
        compatible = "i2c-mux-gpio";
        #address-cells = <0x00000001>;
        #size-cells = <0x00000000>;
        i2c-parent = <0x000000d3>;
        mux-gpios = <0x00000025 0x00000013 0x00000000>;
        i2c@0 {
            reg = <0x00000000>;
            #address-cells = <0x00000001>;
            #size-cells = <0x00000000>;
            linux,phandle = <0x00000174>;
            phandle = <0x00000174>;
            rbpcv2_imx219_a@10 {
                compatible = "nvidia,imx219";
                reg = <0x00000010>;
                devnode = "video0";
                physical_w = "3.680";
                physical_h = "2.760";
                sensor_model = "imx219";
                use_sensor_mode_id = "true";
                reset-gpios = <0x00000013 0x0000007c 0x00000000>;
                linux,phandle = <0x00000175>;
                phandle = <0x00000175>;
                mode0 {
                    mclk_khz = "24000";
                    num_lanes = "2";
                    tegra_sinterface = "serial_a";
                    phy_mode = "DPHY";
                    discontinuous_clk = "yes";
                    dpcm_enable = "false";
                    cil_settletime = "0";
                    active_w = "3264";
                    active_h = "2464";
                    pixel_t = "bayer_rggb";
                    readout_orientation = "90";
                    line_length = "3448";
                    inherent_gain = "1";
                    mclk_multiplier = "9.33";
                    pix_clk_hz = "182400000";
                    gain_factor = "16";
                    framerate_factor = "1000000";
                    exposure_factor = "1000000";
                    min_gain_val = "16";
                    max_gain_val = "170";
                    step_gain_val = "1";
                    default_gain = "16";
                    min_hdr_ratio = "1";
                    max_hdr_ratio = "1";
                    min_framerate = "2000000";
                    max_framerate = "21000000";
                    step_framerate = "1";
                    default_framerate = "21000000";
                    min_exp_time = "13";
                    max_exp_time = "683709";
                    step_exp_time = "1";
                    default_exp_time = "2495";
                    embedded_metadata_height = "2";
                };
                mode1 {
                    mclk_khz = "24000";
                    num_lanes = "2";
                    tegra_sinterface = "serial_a";
                    phy_mode = "DPHY";
                    discontinuous_clk = "yes";
                    dpcm_enable = "false";
                    cil_settletime = "0";
                    active_w = "3264";
                    active_h = "1848";
                    pixel_t = "bayer_rggb";
                    readout_orientation = "90";
                    line_length = "3448";
                    inherent_gain = "1";
                    mclk_multiplier = "9.33";
                    pix_clk_hz = "182400000";
                    gain_factor = "16";
                    framerate_factor = "1000000";
                    exposure_factor = "1000000";
                    min_gain_val = "16";
                    max_gain_val = "170";
                    step_gain_val = "1";
                    default_gain = "16";
                    min_hdr_ratio = "1";
                    max_hdr_ratio = "1";
                    min_framerate = "2000000";
                    max_framerate = "28000000";
                    step_framerate = "1";
                    default_framerate = "28000000";
                    min_exp_time = "13";
                    max_exp_time = "683709";
                    step_exp_time = "1";
                    default_exp_time = "2495";
                    embedded_metadata_height = "2";
                };
                mode2 {
                    mclk_khz = "24000";
                    num_lanes = "2";
                    tegra_sinterface = "serial_a";
                    phy_mode = "DPHY";
                    discontinuous_clk = "yes";
                    dpcm_enable = "false";
                    cil_settletime = "0";
                    active_w = "1920";
                    active_h = "1080";
                    pixel_t = "bayer_rggb";
                    readout_orientation = "90";
                    line_length = "3448";
                    inherent_gain = "1";
                    mclk_multiplier = "9.33";
                    pix_clk_hz = "182400000";
                    gain_factor = "16";
                    framerate_factor = "1000000";
                    exposure_factor = "1000000";
                    min_gain_val = "16";
                    max_gain_val = "170";
                    step_gain_val = "1";
                    default_gain = "16";
                    min_hdr_ratio = "1";
                    max_hdr_ratio = "1";
                    min_framerate = "2000000";
                    max_framerate = "30000000";
                    step_framerate = "1";
                    default_framerate = "30000000";
                    min_exp_time = "13";
                    max_exp_time = "683709";
                    step_exp_time = "1";
                    default_exp_time = "2495";
                    embedded_metadata_height = "2";
                };
                mode3 {
                    mclk_khz = "24000";
                    num_lanes = "2";
                    tegra_sinterface = "serial_a";
                    phy_mode = "DPHY";
                    discontinuous_clk = "yes";
                    dpcm_enable = "false";
                    cil_settletime = "0";
                    active_w = "1640";
                    active_h = "1232";
                    pixel_t = "bayer_rggb";
                    readout_orientation = "90";
                    line_length = "3448";
                    inherent_gain = "1";
                    mclk_multiplier = "9.33";
                    pix_clk_hz = "182400000";
                    gain_factor = "16";
                    framerate_factor = "1000000";
                    exposure_factor = "1000000";
                    min_gain_val = "16";
                    max_gain_val = "170";
                    step_gain_val = "1";
                    default_gain = "16";
                    min_hdr_ratio = "1";
                    max_hdr_ratio = "1";
                    min_framerate = "2000000";
                    max_framerate = "30000000";
                    step_framerate = "1";
                    default_framerate = "30000000";
                    min_exp_time = "13";
                    max_exp_time = "683709";
                    step_exp_time = "1";
                    default_exp_time = "2495";
                    embedded_metadata_height = "2";
                };
                mode4 {
                    mclk_khz = "24000";
                    num_lanes = "2";
                    tegra_sinterface = "serial_a";
                    phy_mode = "DPHY";
                    discontinuous_clk = "yes";
                    dpcm_enable = "false";
                    cil_settletime = "0";
                    active_w = "1280";
                    active_h = "720";
                    pixel_t = "bayer_rggb";
                    readout_orientation = "90";
                    line_length = "3448";
                    inherent_gain = "1";
                    mclk_multiplier = "9.33";
                    pix_clk_hz = "182400000";
                    gain_factor = "16";
                    framerate_factor = "1000000";
                    exposure_factor = "1000000";
                    min_gain_val = "16";
                    max_gain_val = "170";
                    step_gain_val = "1";
                    default_gain = "16";
                    min_hdr_ratio = "1";
                    max_hdr_ratio = "1";
                    min_framerate = "2000000";
                    max_framerate = "60000000";
                    step_framerate = "1";
                    default_framerate = "60000000";
                    min_exp_time = "13";
                    max_exp_time = "683709";
                    step_exp_time = "1";
                    default_exp_time = "2495";
                    embedded_metadata_height = "2";
                };
                ports {
                    #address-cells = <0x00000001>;
                    #size-cells = <0x00000000>;
                    port@0 {
                        reg = <0x00000000>;
                        endpoint {
                            port-index = <0x00000000>;
                            bus-width = <0x00000002>;
                            remote-endpoint = <0x000000d4>;
                            linux,phandle = <0x00000070>;
                            phandle = <0x00000070>;
                        };
                    };
                };
            };
        };
        i2c@1 {
            reg = <0x00000001>;
            #address-cells = <0x00000001>;
            #size-cells = <0x00000000>;
            linux,phandle = <0x00000176>;
            phandle = <0x00000176>;
            rbpcv2_imx219_c@10 {
                compatible = "nvidia,imx219";
                reg = <0x00000010>;
                devnode = "video1";
                physical_w = "3.680";
                physical_h = "2.760";
                sensor_model = "imx219";
                use_sensor_mode_id = "true";
                reset-gpios = <0x00000013 0x0000007d 0x00000000>;
                linux,phandle = <0x00000177>;
                phandle = <0x00000177>;
                mode0 {
                    mclk_khz = "24000";
                    num_lanes = "2";
                    tegra_sinterface = "serial_c";
                    phy_mode = "DPHY";
                    discontinuous_clk = "yes";
                    dpcm_enable = "false";
                    cil_settletime = "0";
                    active_w = "3264";
                    active_h = "2464";
                    pixel_t = "bayer_rggb";
                    readout_orientation = "90";
                    line_length = "3448";
                    inherent_gain = "1";
                    mclk_multiplier = "9.33";
                    pix_clk_hz = "182400000";
                    gain_factor = "16";
                    framerate_factor = "1000000";
                    exposure_factor = "1000000";
                    min_gain_val = "16";
                    max_gain_val = "170";
                    step_gain_val = "1";
                    default_gain = "16";
                    min_hdr_ratio = "1";
                    max_hdr_ratio = "1";
                    min_framerate = "2000000";
                    max_framerate = "21000000";
                    step_framerate = "1";
                    default_framerate = "21000000";
                    min_exp_time = "13";
                    max_exp_time = "683709";
                    step_exp_time = "1";
                    default_exp_time = "2495";
                    embedded_metadata_height = "2";
                };
                mode1 {
                    mclk_khz = "24000";
                    num_lanes = "2";
                    tegra_sinterface = "serial_c";
                    phy_mode = "DPHY";
                    discontinuous_clk = "yes";
                    dpcm_enable = "false";
                    cil_settletime = "0";
                    active_w = "3264";
                    active_h = "1848";
                    pixel_t = "bayer_rggb";
                    readout_orientation = "90";
                    line_length = "3448";
                    inherent_gain = "1";
                    mclk_multiplier = "9.33";
                    pix_clk_hz = "182400000";
                    gain_factor = "16";
                    framerate_factor = "1000000";
                    exposure_factor = "1000000";
                    min_gain_val = "16";
                    max_gain_val = "170";
                    step_gain_val = "1";
                    default_gain = "16";
                    min_hdr_ratio = "1";
                    max_hdr_ratio = "1";
                    min_framerate = "2000000";
                    max_framerate = "28000000";
                    step_framerate = "1";
                    default_framerate = "28000000";
                    min_exp_time = "13";
                    max_exp_time = "683709";
                    step_exp_time = "1";
                    default_exp_time = "2495";
                    embedded_metadata_height = "2";
                };
                mode2 {
                    mclk_khz = "24000";
                    num_lanes = "2";
                    tegra_sinterface = "serial_c";
                    phy_mode = "DPHY";
                    discontinuous_clk = "yes";
                    dpcm_enable = "false";
                    cil_settletime = "0";
                    active_w = "1920";
                    active_h = "1080";
                    pixel_t = "bayer_rggb";
                    readout_orientation = "90";
                    line_length = "3448";
                    inherent_gain = "1";
                    mclk_multiplier = "9.33";
                    pix_clk_hz = "182400000";
                    gain_factor = "16";
                    framerate_factor = "1000000";
                    exposure_factor = "1000000";
                    min_gain_val = "16";
                    max_gain_val = "170";
                    step_gain_val = "1";
                    default_gain = "16";
                    min_hdr_ratio = "1";
                    max_hdr_ratio = "1";
                    min_framerate = "2000000";
                    max_framerate = "30000000";
                    step_framerate = "1";
                    default_framerate = "30000000";
                    min_exp_time = "13";
                    max_exp_time = "683709";
                    step_exp_time = "1";
                    default_exp_time = "2495";
                    embedded_metadata_height = "2";
                };
                mode3 {
                    mclk_khz = "24000";
                    num_lanes = "2";
                    tegra_sinterface = "serial_c";
                    phy_mode = "DPHY";
                    discontinuous_clk = "yes";
                    dpcm_enable = "false";
                    cil_settletime = "0";
                    active_w = "1640";
                    active_h = "1232";
                    pixel_t = "bayer_rggb";
                    readout_orientation = "90";
                    line_length = "3448";
                    inherent_gain = "1";
                    mclk_multiplier = "9.33";
                    pix_clk_hz = "182400000";
                    gain_factor = "16";
                    framerate_factor = "1000000";
                    exposure_factor = "1000000";
                    min_gain_val = "16";
                    max_gain_val = "170";
                    step_gain_val = "1";
                    default_gain = "16";
                    min_hdr_ratio = "1";
                    max_hdr_ratio = "1";
                    min_framerate = "2000000";
                    max_framerate = "30000000";
                    step_framerate = "1";
                    default_framerate = "30000000";
                    min_exp_time = "13";
                    max_exp_time = "683709";
                    step_exp_time = "1";
                    default_exp_time = "2495";
                    embedded_metadata_height = "2";
                };
                mode4 {
                    mclk_khz = "24000";
                    num_lanes = "2";
                    tegra_sinterface = "serial_c";
                    phy_mode = "DPHY";
                    discontinuous_clk = "yes";
                    dpcm_enable = "false";
                    cil_settletime = "0";
                    active_w = "1280";
                    active_h = "720";
                    pixel_t = "bayer_rggb";
                    readout_orientation = "90";
                    line_length = "3448";
                    inherent_gain = "1";
                    mclk_multiplier = "9.33";
                    pix_clk_hz = "182400000";
                    gain_factor = "16";
                    framerate_factor = "1000000";
                    exposure_factor = "1000000";
                    min_gain_val = "16";
                    max_gain_val = "170";
                    step_gain_val = "1";
                    default_gain = "16";
                    min_hdr_ratio = "1";
                    max_hdr_ratio = "1";
                    min_framerate = "2000000";
                    max_framerate = "60000000";
                    step_framerate = "1";
                    default_framerate = "60000000";
                    min_exp_time = "13";
                    max_exp_time = "683709";
                    step_exp_time = "1";
                    default_exp_time = "2495";
                    embedded_metadata_height = "2";
                };
                ports {
                    #address-cells = <0x00000001>;
                    #size-cells = <0x00000000>;
                    port@0 {
                        reg = <0x00000000>;
                        endpoint {
                            status = "okay";
                            port-index = <0x00000002>;
                            bus-width = <0x00000002>;
                            remote-endpoint = <0x000000d5>;
                            linux,phandle = <0x00000072>;
                            phandle = <0x00000072>;
                        };
                    };
                };
            };
        };
    };

....

};

I was able to display the Ultra96 test pattern on Jetson Xavier NX by changing it to “embedded_metadata_height =” 0 “;”.

Thanks very much!