UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Adventurer
Adventurer
4,293 Views
Registered: ‎09-02-2018

PetaLinux - Video Pipeline Device Tree

Hi,

 

I'm trying to get a video pipeline work on the Ultra96 board under PetaLinux.

The video pipeline has an input an OV5647 camera connected over MIPI CSI-2. The video signal gets processed by a MIPI CSI-2 Rx Subsystem, a Sensor Demosaic, a Gamma LUT, and two Video Processing Subsystems (a CSC + a Scaler). On the other end there is a Video Frame Buffer Write component which should write to the DDR:

video-pipeline.png

The PetaLinux is successfully built for the custom platform.

In the Device Tree, I defined the video pipeline as: 

 

project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi:

/include/ "system-conf.dtsi" /include/ "openamp-overlay.dtsi" #include <dt-bindings/gpio/gpio.h> #include <dt-bindings/media/xilinx-vip.h> /* Notes: - EMIO = &gpio0 + 78 - AXI Clock = clocking_wizard_clk2 */ /{ cam_clk: cam_clk { #clock-cells = <0>; compatible = "fixed-clock"; clock-frequency = <25000000>; }; clocking_wizard_clk2: clocking_wizard_clk2@0 { #clock-cells = <0>; compatible = "fixed-factor-clock"; clocks = <&clk 71>; /* fclk0 */ clock-div = <4>; clock-mult = <12>; }; }; &fclk0 { status = "okay"; }; &i2csw_2 { ov5647_0: camera@36 { compatible = "ovti,ov5647"; reg = <0x36>; clocks = <&cam_clk>; status = "okay"; port { ov5647_0_to_mipi_csi2_rx_0: endpoint { remote-endpoint = <&mipi_csi2_rx_0_from_ov5647_0>; clock-lanes = <0>; data-lanes = <1 2>; }; }; }; }; &mipi_csi2_rx0_mipi_csi2_rx_subsyst_0 { compatible = "xlnx,mipi-csi2-rx-subsystem-3.0"; xlnx,max-lanes = <0x2>; xlnx,vc = <0x4>; xlnx,csi-pxl-format = "RAW8"; xlnx,vfb; xlnx,ppc = <0x1>; xlnx,axis-tdata-width = <0x10>; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; xlnx,video-format = <XVIP_VF_RBG>; xlnx,video-width = <8>; mipi_csi2_rx_0_to_demosaic_0: endpoint { remote-endpoint = <&demosaic_0_from_mipi_csi2_rx_0>; }; }; port@1 { reg = <1>; xlnx,video-format = <XVIP_VF_RBG>; xlnx,video-width = <8>; mipi_csi2_rx_0_from_ov5647_0: endpoint { data-lanes = <1 2>; remote-endpoint = <&ov5647_0_to_mipi_csi2_rx_0>; }; }; }; }; &mipi_csi2_rx0_v_demosaic_0 { compatible = "xlnx,v-demosaic"; clocks = <&clocking_wizard_clk2>; reset-gpios = <&gpio 85 GPIO_ACTIVE_LOW>; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; xlnx,video-width = <8>; demosaic_0_from_mipi_csi2_rx_0: endpoint { remote-endpoint = <&mipi_csi2_rx_0_to_demosaic_0>; }; }; port@1 { reg = <1>; xlnx,video-width = <8>; demosaic_0_to_gamma_lut_0: endpoint { remote-endpoint = <&gamma_lut_0_from_demosaic_0>; }; }; }; }; &mipi_csi2_rx0_v_gamma_lut_0 { compatible = "xlnx,v-gamma-lut"; clocks = <&clocking_wizard_clk2>; reset-gpios = <&gpio 86 GPIO_ACTIVE_LOW>; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; xlnx,video-width = <8>; gamma_lut_0_from_demosaic_0: endpoint { remote-endpoint = <&demosaic_0_to_gamma_lut_0>; }; }; port@1 { reg = <1>; xlnx,video-width = <8>; gamma_lut_0_to_csc_0: endpoint { remote-endpoint = <&csc_0_from_gamma_lut_0>; }; }; }; }; &mipi_csi2_rx0_v_proc_ss_csc_0 { compatible = "xlnx,v-vpss-csc"; clocks = <&clocking_wizard_clk2>; reset-gpios = <&gpio 87 GPIO_ACTIVE_LOW>; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; xlnx,video-format = <XVIP_VF_RBG>; xlnx,video-width = <8>; csc_0_from_gamma_lut_0: endpoint { remote-endpoint = <&gamma_lut_0_to_csc_0>; }; }; port@1 { reg = <1>; xlnx,video-format = <XVIP_VF_RBG>; xlnx,video-width = <8>; csc_0_to_scaler_0: endpoint { remote-endpoint = <&scaler_0_from_csc_0>; }; }; }; }; &mipi_csi2_rx0_v_proc_scaler_0 { compatible = "xlnx,v-vpss-scaler"; clocks = <&clocking_wizard_clk2>; reset-gpios = <&gpio 88 GPIO_ACTIVE_LOW>; xlnx,num-hori-taps = <8>; xlnx,num-vert-taps = <8>; xlnx,pix-per-clk = <2>; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; xlnx,video-format = <XVIP_VF_RBG>; xlnx,video-width = <8>; scaler_0_from_csc_0: endpoint { remote-endpoint = <&csc_0_to_scaler_0>; }; }; port@1 { reg = <1>; xlnx,video-format = <XVIP_VF_YUV_422>; xlnx,video-width = <8>; scaler_0_to_vcap_0: endpoint { remote-endpoint = <&vcap_0_from_scaler_0>; }; }; }; }; &mipi_csi2_rx0_v_frmbuf_wr_0 { #dma-cells = <1>; compatible = "xlnx,axi-frmbuf-wr-v2.1"; reset-gpios = <&gpio 89 GPIO_ACTIVE_LOW>; xlnx,dma-addr-width = <32>; xlnx,vid-formats = "yuyv","uyvy","y8"; xlnx,pixels-per-clock = <2>; }; &amba_pl { vcap0: video_cap { compatible = "xlnx,video"; dmas = <&mipi_csi2_rx0_v_frmbuf_wr_0 0>; dma-names = "port0"; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; direction = "input"; vcap_0_from_scaler_0: endpoint { remote-endpoint = <&scaler_0_to_vcap_0>; }; }; }; }; };


The system boots, but there are some errors:

  • initialization of the "xlnx,video" node fails with the "DMA initialization failed"
    [    1.367405] xilinx-dpdma fd4c0000.dma: Xilinx DPDMA engine is probed
    ... [ 1.370582] xilinx-frmbuf b0060000.v_frmbuf_wr: Probe deferred due to GPIO reset defer ... [ 1.419695] xilinx-video amba_pl@0:video_cap: /amba_pl@0/video_cap/ports/port@0 initialization failed [ 1.419708] xilinx-video amba_pl@0:video_cap: DMA initialization failed
    (I don't really understand what is the problem is here...)

  • the framebuffer later is later probed
    [    3.067434] xilinx-frmbuf b0060000.v_frmbuf_wr: Xilinx AXI frmbuf DMA_DEV_TO_MEM
    [    3.074846] xilinx-frmbuf b0060000.v_frmbuf_wr: Xilinx AXI FrameBuffer Engine Driver Probed!!
  • the I2C camera device "ovti,ov5647" does not seems to get probed -  the OV5647 is successfully detected at the 0x36 address on the channel 2 of the I2C mux:
    root@Ultra96:~# i2cdetect -l
    i2c-3	i2c       	i2c-0-mux (chan_id 1)           	I2C adapter
    i2c-1	i2c       	ZynqMP DP AUX                   	I2C adapter
    i2c-8	i2c       	i2c-0-mux (chan_id 6)           	I2C adapter
    i2c-6	i2c       	i2c-0-mux (chan_id 4)           	I2C adapter
    i2c-4	i2c       	i2c-0-mux (chan_id 2)           	I2C adapter
    i2c-2	i2c       	i2c-0-mux (chan_id 0)           	I2C adapter
    i2c-0	i2c       	Cadence I2C at ff030000         	I2C adapter
    i2c-9	i2c       	i2c-0-mux (chan_id 7)           	I2C adapter
    i2c-7	i2c       	i2c-0-mux (chan_id 5)           	I2C adapter
    i2c-5	i2c       	i2c-0-mux (chan_id 3)           	I2C adapter
    
    root@Ultra96:~# i2cdetect -r -y 4    
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          -- -- -- -- -- -- -- -- -- 0c -- -- -- 
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    30: -- -- -- -- -- -- 36 -- -- -- -- -- -- -- -- -- 
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    70: -- -- -- -- -- UU -- --
    (I not sure if the camera should get probed at boot, or only when accessed)

  • the MIPI CSI-2 Rx Subsystem gets detected successfully
    [    1.421106] xilinx-csi2rxss 80000000.mipi_csi2_rx_subsystem: Xilinx CSI2 Rx Subsystem device found!
     
  • the demosaic, gamma-lut, vpss-csc, vpss-scaler components are successfully probed, although there are some warnings (?) reported by video_cap
    [    4.512562] xilinx-video amba_pl@0:video_cap: Entity type for entity 80000000.mipi_csi2_rx_subsystem was not initialized!
    [    4.523445] xilinx-video amba_pl@0:video_cap: device registered
    [    4.529541] xilinx-video amba_pl@0:video_cap: Entity type for entity b0050000.v_demosaic was not initialized!
    [    4.539383] xilinx-demosaic b0050000.v_demosaic: Xilinx Video Demosaic Probe Successful
    [    4.547791] xilinx-video amba_pl@0:video_cap: Entity type for entity b0070000.v_gamma_lut was not initialized!
    [    4.557718] xilinx-gamma-lut b0070000.v_gamma_lut: Xilinx 8-bit Video Gamma Correction LUT registered
    [    4.567094] xilinx-video amba_pl@0:video_cap: Entity type for entity b0040000.v_proc_ss was not initialized!
    [    4.576842] xilinx-vpss-csc b0040000.v_proc_ss: VPSS CSC 8-bit Color Depth Probe Successful
    [    4.585347] xilinx-video amba_pl@0:video_cap: Entity type for entity b0000000.v_proc_ss was not initialized!
    [    4.595098] xilinx-vpss-scaler b0000000.v_proc_ss: Num Hori Taps 8
    [    4.601252] xilinx-vpss-scaler b0000000.v_proc_ss: Num Vert Taps 8
    [    4.607414] xilinx-vpss-scaler b0000000.v_proc_ss: VPSS Scaler Probe Successful

Can somebody help me to fix these problems? I suspect, I made some mistakes in the Device Tree definition.

 

 

Full boot log:

Xilinx Zynq MP First Stage Boot Loader 
Release 2018.2   Oct 14 2018  -  21:05:50
PMUFW:  v1.0


U-Boot 2018.01 (Oct 15 2018 - 18:37:50 +0300) Xilinx ZynqMP ZCU100 RevC

I2C:   ready
DRAM:  2 GiB
EL Level:       EL2
Chip ID:        zu3eg
MMC:   sdhci@ff160000: 0 (SD), sdhci@ff170000: 1
*** Warning - bad CRC, using default environment

In:    serial@ff010000
Out:   serial@ff010000
Err:   serial@ff010000
Model: ZynqMP ZCU100 RevC
Board: Xilinx ZynqMP
Bootmode: SD_MODE
Net:   Net Initialization Skipped
No ethernet found.
U-BOOT for xilinx-ultra96-reva-2018_2

Hit any key to stop autoboot:  0 
Device: sdhci@ff160000
Manufacturer ID: 58
OEM: 4444
Name: DDINC 
Tran Speed: 50000000
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 14.9 GiB
Bus Width: 4-bit
Erase Group Size: 512 Bytes
reading image.ub
7006080 bytes read in 519 ms (12.9 MiB/s)
## Loading kernel from FIT Image at 10000000 ...
   Using 'conf@system-top.dtb' configuration
   Trying 'kernel@1' kernel subimage
     Description:  Linux kernel
     Type:         Kernel Image
     Compression:  gzip compressed
     Data Start:   0x10000108
     Data Size:    6960376 Bytes = 6.6 MiB
     Architecture: AArch64
     OS:           Linux
     Load Address: 0x00080000
     Entry Point:  0x00080000
     Hash algo:    sha1
     Hash value:   518fd347cad01efebeadf6cdc76d46e90b4f2b18
   Verifying Hash Integrity ... sha1+ OK
## Loading fdt from FIT Image at 10000000 ...
   Using 'conf@system-top.dtb' configuration
   Trying 'fdt@system-top.dtb' fdt subimage
     Description:  Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x106a3704
     Data Size:    43782 Bytes = 42.8 KiB
     Architecture: AArch64
     Hash algo:    sha1
     Hash value:   cec877e1f43f780fbaf920d2d3825759d7421cd4
   Verifying Hash Integrity ... sha1+ OK
   Booting using the fdt blob at 0x106a3704
   Uncompressing Kernel Image ... OK
   Loading Device Tree to 0000000007ff2000, end 0000000007fffb05 ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.14.0-xilinx-v2018.2 (oe-user@oe-host) (gcc version 7.2.0 (GCC)) #2 SMP Sun Oct 14 13:50:06 EEST 2018
[    0.000000] Boot CPU: AArch64 Processor [410fd034]
[    0.000000] Machine model: ZynqMP ZCU100 RevC
[    0.000000] earlycon: cdns0 at MMIO 0x00000000ff010000 (options '115200n8')
[    0.000000] bootconsole [cdns0] enabled
[    0.000000] efi: Getting EFI parameters from FDT:
[    0.000000] efi: UEFI not found.
[    0.000000] cma: Reserved 256 MiB at 0x000000006fc00000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] percpu: Embedded 21 pages/cpu @ffffffc07fe66000 s46488 r8192 d31336 u86016
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: enabling workaround for ARM erratum 845719
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 512771
[    0.000000] Kernel command line: earlycon clk_ignore_unused root=/dev/mmcblk0p2 rw rootwait
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
[    0.000000] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
[    0.000000] Memory: 1768640K/2079744K available (9980K kernel code, 644K rwdata, 3128K rodata, 512K init, 2168K bss, 48960K reserved, 262144K cma-reserved)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     modules : 0xffffff8000000000 - 0xffffff8008000000   (   128 MB)
[    0.000000]     vmalloc : 0xffffff8008000000 - 0xffffffbebfff0000   (   250 GB)
[    0.000000]       .text : 0xffffff8008080000 - 0xffffff8008a40000   (  9984 KB)
[    0.000000]     .rodata : 0xffffff8008a40000 - 0xffffff8008d60000   (  3200 KB)
[    0.000000]       .init : 0xffffff8008d60000 - 0xffffff8008de0000   (   512 KB)
[    0.000000]       .data : 0xffffff8008de0000 - 0xffffff8008e81200   (   645 KB)
[    0.000000]        .bss : 0xffffff8008e81200 - 0xffffff800909f2b0   (  2169 KB)
[    0.000000]     fixed   : 0xffffffbefe7fd000 - 0xffffffbefec00000   (  4108 KB)
[    0.000000]     PCI I/O : 0xffffffbefee00000 - 0xffffffbeffe00000   (    16 MB)
[    0.000000]     vmemmap : 0xffffffbf00000000 - 0xffffffc000000000   (     4 GB maximum)
[    0.000000]               0xffffffbf00000000 - 0xffffffbf01bfc800   (    27 MB actual)
[    0.000000]     memory  : 0xffffffc000000000 - 0xffffffc07ff00000   (  2047 MB)
[    0.000000] Hierarchical RCU implementation.
[    0.000000]  RCU event tracing is enabled.
[    0.000000]  RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GIC: Adjusting CPU interface base to 0x00000000f902f000
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] irq-xilinx: /amba_pl@0/interrupt-controller@80010000: num_irq=2, edge=0x0
[    0.000000] arch_timer: cp15 timer(s) running at 99.99MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x1710236356, max_idle_ns: 440795202549 ns
[    0.000003] sched_clock: 56 bits at 99MHz, resolution 10ns, wraps every 4398046511099ns
[    0.008328] Console: colour dummy device 80x25
[    0.012584] console [tty0] enabled
[    0.015951] bootconsole [cdns0] disabled
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.14.0-xilinx-v2018.2 (oe-user@oe-host) (gcc version 7.2.0 (GCC)) #2 SMP Sun Oct 14 13:50:06 EEST 2018
[    0.000000] Boot CPU: AArch64 Processor [410fd034]
[    0.000000] Machine model: ZynqMP ZCU100 RevC
[    0.000000] earlycon: cdns0 at MMIO 0x00000000ff010000 (options '115200n8')
[    0.000000] bootconsole [cdns0] enabled
[    0.000000] efi: Getting EFI parameters from FDT:
[    0.000000] efi: UEFI not found.
[    0.000000] cma: Reserved 256 MiB at 0x000000006fc00000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] percpu: Embedded 21 pages/cpu @ffffffc07fe66000 s46488 r8192 d31336 u86016
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: enabling workaround for ARM erratum 845719
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 512771
[    0.000000] Kernel command line: earlycon clk_ignore_unused root=/dev/mmcblk0p2 rw rootwait
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
[    0.000000] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
[    0.000000] Memory: 1768640K/2079744K available (9980K kernel code, 644K rwdata, 3128K rodata, 512K init, 2168K bss, 48960K reserved, 262144K cma-reserved)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     modules : 0xffffff8000000000 - 0xffffff8008000000   (   128 MB)
[    0.000000]     vmalloc : 0xffffff8008000000 - 0xffffffbebfff0000   (   250 GB)
[    0.000000]       .text : 0xffffff8008080000 - 0xffffff8008a40000   (  9984 KB)
[    0.000000]     .rodata : 0xffffff8008a40000 - 0xffffff8008d60000   (  3200 KB)
[    0.000000]       .init : 0xffffff8008d60000 - 0xffffff8008de0000   (   512 KB)
[    0.000000]       .data : 0xffffff8008de0000 - 0xffffff8008e81200   (   645 KB)
[    0.000000]        .bss : 0xffffff8008e81200 - 0xffffff800909f2b0   (  2169 KB)
[    0.000000]     fixed   : 0xffffffbefe7fd000 - 0xffffffbefec00000   (  4108 KB)
[    0.000000]     PCI I/O : 0xffffffbefee00000 - 0xffffffbeffe00000   (    16 MB)
[    0.000000]     vmemmap : 0xffffffbf00000000 - 0xffffffc000000000   (     4 GB maximum)
[    0.000000]               0xffffffbf00000000 - 0xffffffbf01bfc800   (    27 MB actual)
[    0.000000]     memory  : 0xffffffc000000000 - 0xffffffc07ff00000   (  2047 MB)
[    0.000000] Hierarchical RCU implementation.
[    0.000000]  RCU event tracing is enabled.
[    0.000000]  RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GIC: Adjusting CPU interface base to 0x00000000f902f000
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] irq-xilinx: /amba_pl@0/interrupt-controller@80010000: num_irq=2, edge=0x0
[    0.000000] arch_timer: cp15 timer(s) running at 99.99MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x1710236356, max_idle_ns: 440795202549 ns
[    0.000003] sched_clock: 56 bits at 99MHz, resolution 10ns, wraps every 4398046511099ns
[    0.008328] Console: colour dummy device 80x25
[    0.012584] console [tty0] enabled
[    0.015951] bootconsole [cdns0] disabled
[    0.019864] Calibrating delay loop (skipped), value calculated using timer frequency.. 199.99 BogoMIPS (lpj=399999)
[    0.019878] pid_max: default: 32768 minimum: 301
[    0.019996] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
[    0.020014] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes)
[    0.020760] ASID allocator initialised with 65536 entries
[    0.020819] Hierarchical SRCU implementation.
[    0.021151] EFI services will not be available.
[    0.021180] zynqmp_plat_init Platform Management API v1.0
[    0.021188] zynqmp_plat_init Trustzone version v1.0
[    0.021302] smp: Bringing up secondary CPUs ...
[    0.021594] Detected VIPT I-cache on CPU1
[    0.021635] CPU1: Booted secondary processor [410fd034]
[    0.021946] Detected VIPT I-cache on CPU2
[    0.021964] CPU2: Booted secondary processor [410fd034]
[    0.022253] Detected VIPT I-cache on CPU3
[    0.022272] CPU3: Booted secondary processor [410fd034]
[    0.022314] smp: Brought up 1 node, 4 CPUs
[    0.022347] SMP: Total of 4 processors activated.
[    0.022356] CPU features: detected feature: 32-bit EL0 Support
[    0.022368] CPU: All CPU(s) started at EL2
[    0.022386] alternatives: patching kernel code
[    0.023108] devtmpfs: initialized
[    0.027838] random: get_random_u32 called from bucket_table_alloc+0x108/0x260 with crng_init=0
[    0.028089] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.028115] futex hash table entries: 1024 (order: 5, 131072 bytes)
[    0.028475] random: fast init done
[    0.034397] xor: measuring software checksum speed
[    0.071973]    8regs     :  2303.000 MB/sec
[    0.112002]    8regs_prefetch:  2053.000 MB/sec
[    0.152031]    32regs    :  2830.000 MB/sec
[    0.192062]    32regs_prefetch:  2381.000 MB/sec
[    0.192070] xor: using function: 32regs (2830.000 MB/sec)
[    0.192161] pinctrl core: initialized pinctrl subsystem
[    0.192901] NET: Registered protocol family 16
[    0.193688] cpuidle: using governor menu
[    0.194287] vdso: 2 pages (1 code @ ffffff8008a46000, 1 data @ ffffff8008de4000)
[    0.194306] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.194921] DMA: preallocated 256 KiB pool for atomic allocations
[    0.225496] reset_zynqmp reset-controller: Xilinx zynqmp reset driver probed
[    0.226002] ARM CCI_400_r1 PMU driver probed
[    0.230511] zynqmp-pinctrl ff180000.pinctrl: zynqmp pinctrl initialized
[    0.240366] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    0.308334] raid6: int64x1  gen()   402 MB/s
[    0.376337] raid6: int64x1  xor()   446 MB/s
[    0.444356] raid6: int64x2  gen()   688 MB/s
[    0.512382] raid6: int64x2  xor()   603 MB/s
[    0.580423] raid6: int64x4  gen()  1042 MB/s
[    0.648474] raid6: int64x4  xor()   742 MB/s
[    0.716561] raid6: int64x8  gen()   980 MB/s
[    0.784578] raid6: int64x8  xor()   745 MB/s
[    0.852651] raid6: neonx1   gen()   727 MB/s
[    0.920652] raid6: neonx1   xor()   853 MB/s
[    0.988738] raid6: neonx2   gen()  1169 MB/s
[    1.056766] raid6: neonx2   xor()  1207 MB/s
[    1.124798] raid6: neonx4   gen()  1505 MB/s
[    1.192860] raid6: neonx4   xor()  1442 MB/s
[    1.260907] raid6: neonx8   gen()  1651 MB/s
[    1.328961] raid6: neonx8   xor()  1533 MB/s
[    1.328970] raid6: using algorithm neonx8 gen() 1651 MB/s
[    1.328977] raid6: .... xor() 1533 MB/s, rmw enabled
[    1.328986] raid6: using neon recovery algorithm
[    1.330344] SCSI subsystem initialized
[    1.330579] usbcore: registered new interface driver usbfs
[    1.330620] usbcore: registered new interface driver hub
[    1.330667] usbcore: registered new device driver usb
[    1.330743] media: Linux media interface: v0.10
[    1.330774] Linux video capture interface: v2.00
[    1.330824] pps_core: LinuxPPS API ver. 1 registered
[    1.330833] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    1.330856] PTP clock support registered
[    1.330891] EDAC MC: Ver: 3.0.0
[    1.331286] zynqmp-ipi ff9905c0.mailbox: Probed ZynqMP IPI Mailbox driver.
[    1.331479] FPGA manager framework
[    1.331600] fpga-region fpga-full: FPGA Region probed
[    1.331714] Advanced Linux Sound Architecture Driver Initialized.
[    1.332013] Bluetooth: Core ver 2.22
[    1.332042] NET: Registered protocol family 31
[    1.332050] Bluetooth: HCI device and connection manager initialized
[    1.332064] Bluetooth: HCI socket layer initialized
[    1.332074] Bluetooth: L2CAP socket layer initialized
[    1.332101] Bluetooth: SCO socket layer initialized
[    1.332735] clocksource: Switched to clocksource arch_sys_counter
[    1.332830] VFS: Disk quotas dquot_6.6.0
[    1.332882] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    1.337293] NET: Registered protocol family 2
[    1.337662] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
[    1.337778] TCP bind hash table entries: 16384 (order: 6, 262144 bytes)
[    1.338126] TCP: Hash tables configured (established 16384 bind 16384)
[    1.338230] UDP hash table entries: 1024 (order: 3, 32768 bytes)
[    1.338275] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes)
[    1.338416] NET: Registered protocol family 1
[    1.338642] RPC: Registered named UNIX socket transport module.
[    1.338652] RPC: Registered udp transport module.
[    1.338660] RPC: Registered tcp transport module.
[    1.338667] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    1.339218] hw perfevents: no interrupt-affinity property for /pmu, guessing.
[    1.339390] hw perfevents: enabled with armv8_pmuv3 PMU driver, 7 counters available
[    1.340230] audit: initializing netlink subsys (disabled)
[    1.340636] audit: type=2000 audit(1.320:1): state=initialized audit_enabled=0 res=1
[    1.340687] workingset: timestamp_bits=62 max_order=19 bucket_order=0
[    1.341636] NFS: Registering the id_resolver key type
[    1.341668] Key type id_resolver registered
[    1.341677] Key type id_legacy registered
[    1.341692] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    1.341719] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
[    1.365525] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246)
[    1.365547] io scheduler noop registered
[    1.365556] io scheduler deadline registered
[    1.365577] io scheduler cfq registered (default)
[    1.365586] io scheduler mq-deadline registered
[    1.365594] io scheduler kyber registered
[    1.367405] xilinx-dpdma fd4c0000.dma: Xilinx DPDMA engine is probed
[    1.367859] xilinx-zynqmp-dma fd500000.dma: ZynqMP DMA driver Probe success
[    1.368020] xilinx-zynqmp-dma fd510000.dma: ZynqMP DMA driver Probe success
[    1.368174] xilinx-zynqmp-dma fd520000.dma: ZynqMP DMA driver Probe success
[    1.368336] xilinx-zynqmp-dma fd530000.dma: ZynqMP DMA driver Probe success
[    1.368493] xilinx-zynqmp-dma fd540000.dma: ZynqMP DMA driver Probe success
[    1.368652] xilinx-zynqmp-dma fd550000.dma: ZynqMP DMA driver Probe success
[    1.368834] xilinx-zynqmp-dma fd560000.dma: ZynqMP DMA driver Probe success
[    1.368996] xilinx-zynqmp-dma fd570000.dma: ZynqMP DMA driver Probe success
[    1.369223] xilinx-zynqmp-dma ffa80000.dma: ZynqMP DMA driver Probe success
[    1.369377] xilinx-zynqmp-dma ffa90000.dma: ZynqMP DMA driver Probe success
[    1.369533] xilinx-zynqmp-dma ffaa0000.dma: ZynqMP DMA driver Probe success
[    1.369690] xilinx-zynqmp-dma ffab0000.dma: ZynqMP DMA driver Probe success
[    1.369846] xilinx-zynqmp-dma ffac0000.dma: ZynqMP DMA driver Probe success
[    1.370003] xilinx-zynqmp-dma ffad0000.dma: ZynqMP DMA driver Probe success
[    1.370161] xilinx-zynqmp-dma ffae0000.dma: ZynqMP DMA driver Probe success
[    1.370321] xilinx-zynqmp-dma ffaf0000.dma: ZynqMP DMA driver Probe success
[    1.370582] xilinx-frmbuf b0060000.v_frmbuf_wr: Probe deferred due to GPIO reset defer
[    1.397955] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    1.401616] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    1.406314] brd: module loaded
[    1.410552] loop: module loaded
[    1.411497] mtdoops: mtd device (mtddev=name/number) must be supplied
[    1.413850] libphy: Fixed MDIO Bus: probed
[    1.414958] tun: Universal TUN/TAP device driver, 1.6
[    1.415197] CAN device driver interface
[    1.416167] usbcore: registered new interface driver asix
[    1.416247] usbcore: registered new interface driver ax88179_178a
[    1.416280] usbcore: registered new interface driver cdc_ether
[    1.416312] usbcore: registered new interface driver net1080
[    1.416346] usbcore: registered new interface driver cdc_subset
[    1.416378] usbcore: registered new interface driver zaurus
[    1.416424] usbcore: registered new interface driver cdc_ncm
[    1.416937] xilinx-axipmon ffa00000.perf-monitor: Probed Xilinx APM
[    1.417661] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.417672] ehci-pci: EHCI PCI platform driver
[    1.417966] usbcore: registered new interface driver uas
[    1.418009] usbcore: registered new interface driver usb-storage
[    1.418593] rtc_zynqmp ffa60000.rtc: rtc core: registered ffa60000.rtc as rtc0
[    1.418661] i2c /dev entries driver
[    1.419492] IR NEC protocol handler initialized
[    1.419503] IR RC5(x/sz) protocol handler initialized
[    1.419511] IR RC6 protocol handler initialized
[    1.419518] IR JVC protocol handler initialized
[    1.419526] IR Sony protocol handler initialized
[    1.419533] IR SANYO protocol handler initialized
[    1.419540] IR Sharp protocol handler initialized
[    1.419548] IR MCE Keyboard/mouse protocol handler initialized
[    1.419556] IR XMP protocol handler initialized
[    1.419695] xilinx-video amba_pl@0:video_cap: /amba_pl@0/video_cap/ports/port@0 initialization failed
[    1.419708] xilinx-video amba_pl@0:video_cap: DMA initialization failed
[    1.421106] xilinx-csi2rxss 80000000.mipi_csi2_rx_subsystem: Xilinx CSI2 Rx Subsystem device found!
[    1.421209] usbcore: registered new interface driver uvcvideo
[    1.421217] USB Video Class driver (1.1.1)
[    1.421295] ltc2952-poweroff ltc2954: pm_power_off already registered
[    1.421310] ltc2952-poweroff: probe of ltc2954 failed with error -16
[    1.422180] Bluetooth: HCI UART driver ver 2.3
[    1.422193] Bluetooth: HCI UART protocol H4 registered
[    1.422201] Bluetooth: HCI UART protocol BCSP registered
[    1.422233] Bluetooth: HCI UART protocol LL registered
[    1.422241] Bluetooth: HCI UART protocol ATH3K registered
[    1.422250] Bluetooth: HCI UART protocol Three-wire (H5) registered
[    1.422296] Bluetooth: HCI UART protocol Intel registered
[    1.422305] Bluetooth: HCI UART protocol QCA registered
[    1.422349] usbcore: registered new interface driver bcm203x
[    1.422387] usbcore: registered new interface driver bpa10x
[    1.422421] usbcore: registered new interface driver bfusb
[    1.422456] usbcore: registered new interface driver btusb
[    1.422466] Bluetooth: Generic Bluetooth SDIO driver ver 0.1
[    1.422521] usbcore: registered new interface driver ath3k
[    1.422655] EDAC MC: ECC not enabled
[    1.422827] EDAC DEVICE0: Giving out device to module zynqmp-ocm-edac controller zynqmp_ocm: DEV ff960000.memory-controller (INTERRUPT)
[    1.423430] cpufreq: cpufreq_online: CPU0: Running at unlisted freq: 1199998 KHz
[    1.423497] cpufreq: cpufreq_online: CPU0: Unlisted initial frequency changed to: 1199999 KHz
[    1.423965] sdhci: Secure Digital Host Controller Interface driver
[    1.423975] sdhci: Copyright(c) Pierre Ossman
[    1.423982] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.468806] mmc0: SDHCI controller on ff160000.sdhci [ff160000.sdhci] using ADMA 64-bit
[    1.474852] sdhci-arasan ff170000.sdhci: parsing dt failed (-517)
[    1.475342] ledtrig-cpu: registered to indicate activity on CPUs
[    1.475526] usbcore: registered new interface driver usbhid
[    1.475535] usbhid: USB HID core driver
[    1.477581] fpga_manager fpga0: Xilinx ZynqMP FPGA Manager registered
[    1.479521] pktgen: Packet Generator for packet performance testing. Version: 2.75
[    1.481781] Netfilter messages via NETLINK v0.30.
[    1.481928] ip_tables: (C) 2000-2006 Netfilter Core Team
[    1.482095] Initializing XFRM netlink socket
[    1.482172] NET: Registered protocol family 10
[    1.482614] Segment Routing with IPv6
[    1.482666] ip6_tables: (C) 2000-2006 Netfilter Core Team
[    1.482865] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    1.483225] NET: Registered protocol family 17
[    1.483244] NET: Registered protocol family 15
[    1.483268] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[    1.483283] Ebtables v2.0 registered
[    1.483386] can: controller area network core (rev 20170425 abi 9)
[    1.483425] NET: Registered protocol family 29
[    1.483434] can: raw protocol (rev 20170425)
[    1.483443] can: broadcast manager protocol (rev 20170425 t)
[    1.483455] can: netlink gateway (rev 20170425) max_hops=1
[    1.483531] Bluetooth: RFCOMM TTY layer initialized
[    1.483544] Bluetooth: RFCOMM socket layer initialized
[    1.483563] Bluetooth: RFCOMM ver 1.11
[    1.483574] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    1.483582] Bluetooth: BNEP filters: protocol multicast
[    1.483593] Bluetooth: BNEP socket layer initialized
[    1.483602] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[    1.483613] Bluetooth: HIDP socket layer initialized
[    1.483749] 9pnet: Installing 9P2000 support
[    1.483774] Key type dns_resolver registered
[    1.484217] registered taskstats version 1
[    1.484590] Btrfs loaded, crc32c=crc32c-generic
[    1.492512] ff000000.serial: ttyPS1 at MMIO 0xff000000 (irq = 40, base_baud = 6249993) is a xuartps
[    1.492720] serial serial0: tty port ttyPS1 registered
[    1.493000] ff010000.serial: ttyPS0 at MMIO 0xff010000 (irq = 41, base_baud = 6249993) is a xuartps
[    1.642664] mmc0: new high speed SDHC card at address 0007
[    1.650083] mmcblk0: mmc0:0007 DDINC 14.9 GiB 
[    1.657675]  mmcblk0: p1 p2
[    3.062668] console [ttyPS0] enabled
[    3.067434] xilinx-frmbuf b0060000.v_frmbuf_wr: Xilinx AXI frmbuf DMA_DEV_TO_MEM
[    3.074846] xilinx-frmbuf b0060000.v_frmbuf_wr: Xilinx AXI FrameBuffer Engine Driver Probed!!
[    3.083671] xilinx-psgtr fd400000.zynqmp_phy: Lane:1 type:8 protocol:4 pll_locked:yes
[    3.091822] PLL: shutdown
[    3.094497] PLL: shutdown
[    3.097487] PLL: enable
[    3.099974] PLL: shutdown
[    3.103427] PLL: enable
[    3.105901] xilinx-dp-snd-codec fd4a0000.zynqmp-display:zynqmp_dp_snd_codec0: Xilinx DisplayPort Sound Codec probed
[    3.116498] xilinx-dp-snd-pcm zynqmp_dp_snd_pcm0: Xilinx DisplayPort Sound PCM probed
[    3.124455] xilinx-dp-snd-pcm zynqmp_dp_snd_pcm1: Xilinx DisplayPort Sound PCM probed
[    3.132814] xilinx-dp-snd-card fd4a0000.zynqmp-display:zynqmp_dp_snd_card: xilinx-dp-snd-codec-dai <-> xilinx-dp-snd-codec-dai mapping ok
[    3.145190] xilinx-dp-snd-card fd4a0000.zynqmp-display:zynqmp_dp_snd_card: xilinx-dp-snd-codec-dai <-> xilinx-dp-snd-codec-dai mapping ok
[    3.157893] xilinx-dp-snd-card fd4a0000.zynqmp-display:zynqmp_dp_snd_card: Xilinx DisplayPort Sound Card probed
[    3.168009] OF: graph: no port node found in /amba/zynqmp-display@fd4a0000
[    3.174968] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    3.181502] [drm] No driver support for vblank timestamp query.
[    3.187477] xlnx-drm xlnx-drm.0: bound fd4a0000.zynqmp-display (ops 0xffffff8008af7228)
[    4.272745] [drm] Cannot find any crtc or sizes
[    4.277388] [drm] Initialized xlnx 1.0.0 20130509 for fd4a0000.zynqmp-display on minor 0
[    4.285420] zynqmp-display fd4a0000.zynqmp-display: ZynqMP DisplayPort Subsystem driver probed
[    4.295046] xilinx-psgtr fd400000.zynqmp_phy: Lane:2 type:0 protocol:3 pll_locked:yes
[    4.306465] xilinx-psgtr fd400000.zynqmp_phy: Lane:3 type:1 protocol:3 pll_locked:yes
[    4.316448] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[    4.321870] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1
[    4.329730] xhci-hcd xhci-hcd.0.auto: hcc params 0x0238f625 hci version 0x100 quirks 0x22010010
[    4.338387] xhci-hcd xhci-hcd.0.auto: irq 51, io mem 0xfe300000
[    4.344382] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    4.351092] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    4.358294] usb usb1: Product: xHCI Host Controller
[    4.363151] usb usb1: Manufacturer: Linux 4.14.0-xilinx-v2018.2 xhci-hcd
[    4.369836] usb usb1: SerialNumber: xhci-hcd.0.auto
[    4.375000] hub 1-0:1.0: USB hub found
[    4.378695] hub 1-0:1.0: 1 port detected
[    4.382770] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[    4.388186] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 2
[    4.395866] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    4.403970] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003
[    4.410677] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    4.417880] usb usb2: Product: xHCI Host Controller
[    4.422739] usb usb2: Manufacturer: Linux 4.14.0-xilinx-v2018.2 xhci-hcd
[    4.429424] usb usb2: SerialNumber: xhci-hcd.0.auto
[    4.434534] hub 2-0:1.0: USB hub found
[    4.438227] hub 2-0:1.0: 1 port detected
[    4.443780] i2c i2c-0: Added multiplexed i2c bus 2
[    4.448631] i2c i2c-0: Added multiplexed i2c bus 3
[    4.453557] i2c i2c-0: Added multiplexed i2c bus 4
[    4.458396] i2c i2c-0: Added multiplexed i2c bus 5
[    4.463643] tps65086 6-005e: Device: TPS650864, OTP: C, Rev: 0
[    4.472448] i2c i2c-0: Added multiplexed i2c bus 6
[    4.477785] ina2xx 7-0040: power monitor ina226 (Rshunt = 10000 uOhm)
[    4.484173] i2c i2c-0: Added multiplexed i2c bus 7
[    4.489058] i2c i2c-0: Added multiplexed i2c bus 8
[    4.493901] i2c i2c-0: Added multiplexed i2c bus 9
[    4.498614] pca954x 0-0075: registered 8 multiplexed busses for I2C switch pca9548
[    4.506192] cdns-i2c ff030000.i2c: 400 kHz mmio ff030000 irq 31
[    4.512562] xilinx-video amba_pl@0:video_cap: Entity type for entity 80000000.mipi_csi2_rx_subsystem was not initialized!
[    4.523445] xilinx-video amba_pl@0:video_cap: device registered
[    4.529541] xilinx-video amba_pl@0:video_cap: Entity type for entity b0050000.v_demosaic was not initialized!
[    4.539383] xilinx-demosaic b0050000.v_demosaic: Xilinx Video Demosaic Probe Successful
[    4.547791] xilinx-video amba_pl@0:video_cap: Entity type for entity b0070000.v_gamma_lut was not initialized!
[    4.557718] xilinx-gamma-lut b0070000.v_gamma_lut: Xilinx 8-bit Video Gamma Correction LUT registered
[    4.567094] xilinx-video amba_pl@0:video_cap: Entity type for entity b0040000.v_proc_ss was not initialized!
[    4.576842] xilinx-vpss-csc b0040000.v_proc_ss: VPSS CSC 8-bit Color Depth Probe Successful
[    4.585347] xilinx-video amba_pl@0:video_cap: Entity type for entity b0000000.v_proc_ss was not initialized!
[    4.595098] xilinx-vpss-scaler b0000000.v_proc_ss: Num Hori Taps 8
[    4.601252] xilinx-vpss-scaler b0000000.v_proc_ss: Num Vert Taps 8
[    4.607414] xilinx-vpss-scaler b0000000.v_proc_ss: VPSS Scaler Probe Successful
[    4.616105] sdhci-arasan ff170000.sdhci: allocated mmc-pwrseq
[    4.664743] mmc1: SDHCI controller on ff170000.sdhci [ff170000.sdhci] using ADMA 64-bit
[    4.680100] input: gpio-keys as /devices/platform/gpio-keys/input/input0
[    4.687040] rtc_zynqmp ffa60000.rtc: setting system clock to 1970-01-01 00:00:06 UTC (6)
[    4.695192] clk: Not disabling unused clocks
[    4.699434] ALSA device list:
[    4.702329]   #0: DisplayPort monitor
[    4.710153] sdhci-arasan ff170000.sdhci: card claims to support voltages below defined range
[    4.711246] EXT4-fs (mmcblk0p2): couldn't mount as ext3 due to feature incompatibilities
[    4.739201] mmc1: new high speed SDIO card at address 0001
[    4.745493] wl18xx_driver wl18xx.3.auto: Direct firmware load for ti-connectivity/wl1271-nvs.bin failed with error -2
[    4.756055] wl18xx_driver wl18xx.3.auto: Direct firmware load for ti-connectivity/wl18xx-conf.bin failed with error -2
[    4.766697] wlcore: ERROR could not get configuration binary ti-connectivity/wl18xx-conf.bin: -2
[    4.775460] wlcore: WARNING falling back to default config
[    4.852784] usb 2-1: new SuperSpeed USB device number 2 using xhci-hcd
[    4.877114] usb 2-1: New USB device found, idVendor=0424, idProduct=5744
[    4.883737] usb 2-1: New USB device strings: Mfr=2, Product=3, SerialNumber=0
[    4.890854] usb 2-1: Product: USB5744
[    4.894496] usb 2-1: Manufacturer: Microchip Tech
[    4.907965] hub 2-1:1.0: USB hub found
[    4.911666] hub 2-1:1.0: 3 ports detected
[    5.004740] usb 1-1: new high-speed USB device number 2 using xhci-hcd
[    5.081650] wlcore: wl18xx HW: 183x or 180x, PG 2.2 (ROM 0x11)
[    5.090652] wlcore: loaded
[    5.157199] usb 1-1: New USB device found, idVendor=0424, idProduct=2744
[    5.163827] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    5.170944] usb 1-1: Product: USB2744
[    5.174583] usb 1-1: Manufacturer: Microchip Tech
[    5.195961] hub 1-1:1.0: USB hub found
[    5.199671] hub 1-1:1.0: 4 ports detected
[    5.231667] hci-ti serial0-0: Direct firmware load for ti-connectivity/TIInit_11.8.32.bts failed with error -2
[    5.241597] Bluetooth: hci0: request_firmware failed(errno -2) for ti-connectivity/TIInit_11.8.32.bts
[    5.250788] Bluetooth: hci0: download firmware failed, retrying...
[    5.356837] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    5.364884] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    5.373101] devtmpfs: mounted
[    5.376204] Freeing unused kernel memory: 512K
INIT: version 2.88 booting
[    5.512748] usb 1-1.4: new high-speed USB device number 3 using xhci-hcd
[    5.608757] [drm] Cannot find any crtc or sizes
[    5.617458] usb 1-1.4: New USB device found, idVendor=0424, idProduct=2740
[    5.624260] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    5.631548] usb 1-1.4: Product: Hub Controller
[    5.635969] usb 1-1.4: Manufacturer: Microchip Tech
Starting udev
[    5.822821] Bluetooth: hci0: change remote baud rate command in firmware
[    6.032219] udevd[1807]: starting version 3.2
[    6.063092] udevd[1808]: starting eudev-3.2
[    6.142419] mali: loading out-of-tree module taints kernel.
[    6.147724] zynqmp_r5_remoteproc ff9a0100.zynqmp_r5_rproc: RPU core_conf: split0
[    6.148117] remoteproc remoteproc0: ff9a0100.zynqmp_r5_rproc is available
[    6.155882] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[    6.659519] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
Tue Mar 27 21:57:30 UTC 2018
Starting internet superserver: inetd.
Starting Ultra96 AP setup daemon.
Starting Flask server deamon to serve Ultra96 startup page.
Starting wl18xx Bluetooth daemon/etc/rcS.d/S99wl18xx.sh: line 25: /sys/class/leds/bt_power/brightness: No such file or directory
.
Starting Ultra96 Power Button daemon.
INIT: Entering runlevel: 5
Configuring network interfaces... libmraa[2122]: libmraa version v1.7.0 initialised by user 'root' with EUID 0
libmraa[2122]: libmraa initialised for platform 'ZCU100' of type 9
eth0: ERROR while getting interface flags: No such device
Starting Xserver
open /dev/fb0: No such file or directory
Starting system message bus: dbus.
Starting Dropbear SSH server: dropbear.
Starting portmap daemon...
Starting rpcbind daemon...done.
Starting watchdog: [  OK  ]
Starting watchdog keepalive daemon: wd_keepalive.
starting statd: done
Starting bluetooth
bluetoothd
Starting Distributed Compiler Daemon: distcc.
exportfs: can't open /etc/exports for reading
NFS daemon support not enabled in kernel
Starting ntpd: done
Starting syslogd/klogd: done
Starting internet superserver: xinetd.
 * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon
Starting Telephony daemon
Starting tcf-agent: OK

root@Ultra96:~# [   19.344992] wlcore: PHY firmware version: Rev 8.2.0.0.237
[   19.443002] wlcore: firmware booted (Rev 8.9.0.0.70)
[   19.457418] IPv6: ADDRCONF(NETDEV_UP): wlan1: link is not ready

root@Ultra96:~# [   23.669216] wlcore: down
[   23.681257] IPv6: ADDRCONF(NETDEV_CHANGE): wlan1: link becomes ready
[  396.012827] random: crng init done

See the full, compiled device tree attached.

Thanks,
Attila

 

0 Kudos
9 Replies
Adventurer
Adventurer
4,247 Views
Registered: ‎09-02-2018

Re: PetaLinux - Video Pipeline Device Tree

I did some more investigation and seems that:

  • initially, the "xlnx,video" initialization fails because "xlnx,axi-frmbuf-wr-v2.1" was deferred to a GPIO reset - apparently, the Xilinx Video Pipeline driver does not handles this well (threats EPROBE_DEFER as an error)
    • at a later re-try it seems to get initialized correctly
      [ 4.523445] xilinx-video amba_pl@0:video_cap: device registered

 

  • the OV5647 (I2C) device is probed (the OV5647 driver logs this on debug level, so it's not visible in the kernel log)
    root@Ultra96:~# cat /sys/bus/i2c/devices/i2c-4/4-0036/name 
    ov5647
    root@Ultra96:~#

Although the video device seems to get a registered:

  • there is a /dev/video0 device
    root@Ultra96:~# ls /dev/video*
    /dev/video0
  • but no V2L4 subdevice (/dev/v4l-subdev*) and media (/dev/media*) devices are created
    root@Ultra96:~# ls /dev/v4l-subdev*                                            
    ls: cannot access '/dev/v4l-subdev*': No such file or directory
    
    root@Ultra96:~# ls /dev/media*
    ls: cannot access '/dev/media*': No such file or directory
    
    


How could I check this?

 

 

Thanks,
Attila

0 Kudos
Adventurer
Adventurer
4,215 Views
Registered: ‎09-02-2018

Re: PetaLinux - Video Pipeline Device Tree

Got some progress today...

After compiling the kernel with dynamic debug support and enabling dynamic debug for the Xilinx and the OV5647 modules, I realized that the OV5647 I2C module was not actually included the kernel.

(note: there is property CONFIG MEDIA_SUBDRV_AUTOSELECT set by default. This disables manual selection for the CONFIG_VIDEO_OV5647 and some other media drivers. First I thought CONFIG_VIDEO_OV5647 will be selected automatically, but was not.)

 

After recompiling the kernel with the OV5647 / I2C driver, the finally gets initialized successfully, with the Media and V2L device noes in place:

root@Ultra96:~# ls /dev/media* 
/dev/media0
root@Ultra96:~# ls /dev/video*
/dev/video0
root@Ultra96:~# ls /dev/v4l*  
/dev/v4l-subdev0  /dev/v4l-subdev1  /dev/v4l-subdev2  /dev/v4l-subdev3  /dev/v4l-subdev4  /dev/v4l-subdev5

/dev/v4l:
by-path


The media pipeline got constructed successfully:

 

 

root@Ultra96:~# media-ctl -p
Media controller API version 4.14.0

Media device information
------------------------
driver          xilinx-video
model           Xilinx Video Composite Device
serial          
bus info        
hw revision     0x0
driver version  4.14.0

Device topology
- entity 1: video_cap output 0 (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video0
        pad0: Sink
                <- "b0000000.v_proc_ss":1 [ENABLED]

- entity 5: ov5647 4-0036 (1 pad, 1 link)
            type V4L2 subdev subtype Sensor flags 0
            device node name /dev/v4l-subdev0
        pad0: Source
                -> "80000000.mipi_csi2_rx_subsystem":1 [ENABLED]

- entity 7: 80000000.mipi_csi2_rx_subsystem (2 pads, 2 links)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev1
        pad0: Source
                [fmt:RBG24/1920x1080 field:none]
                -> "b0050000.v_demosaic":0 [ENABLED]
        pad1: Sink
                [fmt:RBG24/1920x1080 field:none]
                <- "ov5647 4-0036":0 [ENABLED]

- entity 10: b0050000.v_demosaic (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev2
        pad0: Sink
                [fmt:SRGGB8/1280x720 field:none]
                <- "80000000.mipi_csi2_rx_subsystem":0 [ENABLED]
        pad1: Source
                [fmt:RBG24/1280x720 field:none]
                -> "b0070000.v_gamma_lut":0 [ENABLED]

- entity 13: b0070000.v_gamma_lut (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev3
        pad0: Sink
                [fmt:RBG24/1280x720 field:none]
                <- "b0050000.v_demosaic":1 [ENABLED]
        pad1: Source
                [fmt:RBG24/1280x720 field:none]
                -> "b0040000.v_proc_ss":0 [ENABLED]

- entity 16: b0040000.v_proc_ss (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev4
        pad0: Sink
                [fmt:RBG24/1280x720 field:none]
                <- "b0070000.v_gamma_lut":1 [ENABLED]
        pad1: Source
                [fmt:RBG24/1280x720 field:none]
                -> "b0000000.v_proc_ss":0 [ENABLED]

- entity 19: b0000000.v_proc_ss (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev5
        pad0: Sink
                [fmt:RBG24/1280x720 field:none]
                <- "b0040000.v_proc_ss":1 [ENABLED]
        pad1: Source
                [fmt:UYVY/1920x1080 field:none]
                -> "video_cap output 0":0 [ENABLED]

 

The next step, I think, would be to configure the pipeline components (format, resolution, etc.)

Is there a guide on how to do this?

There is a note in that in following wiki: 

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841767/Xilinx+V4L2+driver


that states this should be done trough /dev/media0I guess this can be done using media-ctl, but did not figured out the exact steps yet.

 

Thanks,

Attila

 

0 Kudos
Explorer
Explorer
4,199 Views
Registered: ‎10-21-2015

Re: PetaLinux - Video Pipeline Device Tree

media-ctl -d /dev/media0 -V '"80000000.mipi_csi2_rx_subsystem":0 [fmt:UYVY/1920x1080]'

By the way, if you are using commercial mipi adapter board to support ultra96, let me know it

I'm searching for available commercial board for ultra96

0 Kudos
Adventurer
Adventurer
4,185 Views
Registered: ‎09-02-2018

Re: PetaLinux - Video Pipeline Device Tree

I will try out this command, thanks.

 

I'm using the MIPI Adapter Mezzanine for 96Boards:

https://www.96boards.org/product/mipiadapter/


You can by it from Ebay:

https://www.ebay.com/itm/96Boards-MIPI-Adapter-V2-1/253792812495?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2060353.m2749.l2649

 

Cheers,
Attila

0 Kudos
Adventurer
Adventurer
4,166 Views
Registered: ‎09-02-2018

Re: PetaLinux - Video Pipeline Device Tree

Hi,

I set up the formats / resolution for the video pipeline as:

# MIPI RX:
media-ctl -v -d /dev/media0 -V '"80000000.mipi_csi2_rx_subsystem":0 [fmt:SBGGR8/1920x1080]'
media-ctl -v -d /dev/media0 -V '"80000000.mipi_csi2_rx_subsystem":1 [fmt:SBGGR8/1920x1080]'

# Demosaic
media-ctl -v -d /dev/media0 -V '"b0050000.v_demosaic":1 [fmt:RBG24/1920x1080]'

# Gamma LUT
media-ctl -v -d /dev/media0 -V '"b0070000.v_gamma_lut":1 [fmt:RBG24/1920x1080]'

# SS CSC
media-ctl -v -d /dev/media0 -V '"b0040000.v_proc_ss":1 [fmt:RBG24/1920x1080]'

# SS SCALER
media-ctl -v -d /dev/media0 -V '"b0000000.v_proc_ss":1 [fmt:UYVY/1920x1080]' 

 

 

and I'm trying to capture some frames using yavta:

root@Ultra96:~# yavta -c$frames -p -F --skip $skip -f UYVY -s $size /dev/video0
Device /dev/video0 opened.
Device `video_cap output 0' on `platform:video_cap:0' is a video output (without mplanes) device.
Video format set: UYVY (59565955) 1920x1080 field none, 1 planes: 
 * Stride 3840, buffer size 4147200
Video format: UYVY (59565955) 1920x1080 field none, 1 planes: 
 * Stride 3840, buffer size 4147200
8 buffers requested.
length: 1 offset: 3589460448 timestamp type/source: mono/EoF
Buffer 0/0 mapped at address 0x7fa5032000.
length: 1 offset: 3589460448 timestamp type/source: mono/EoF
Buffer 1/0 mapped at address 0x7fa4c3d000.
length: 1 offset: 3589460448 timestamp type/source: mono/EoF
Buffer 2/0 mapped at address 0x7fa4848000.
length: 1 offset: 3589460448 timestamp type/source: mono/EoF
Buffer 3/0 mapped at address 0x7fa4453000.
length: 1 offset: 3589460448 timestamp type/source: mono/EoF
Buffer 4/0 mapped at address 0x7fa405e000.
length: 1 offset: 3589460448 timestamp type/source: mono/EoF
Buffer 5/0 mapped at address 0x7fa3c69000.
length: 1 offset: 3589460448 timestamp type/source: mono/EoF
Buffer 6/0 mapped at address 0x7fa3874000.
length: 1 offset: 3589460448 timestamp type/source: mono/EoF
Buffer 7/0 mapped at address 0x7fa347f000.
Press enter to start capture



^C

The frame buffers are successfully created, but there are NO frames received.

 

 

The kernel log (with dynamic debug enabled for xilinx*, meda*, ov5647) shows that an streaming is successfully enabled on each component of the pipeline:

 

[ 2361.642602] videobuf2_memops: vb2_common_vm_open: ffffffc06d189dc8, refcount: 1, vma: 7fa5b74000-7fa5f69000
[ 2361.652282] videobuf2_dma_contig: vb2_dc_mmap: mapped dma addr 0x6fe00000 at 0x7fa5b74000, size 4149248
[ 2361.662031] videobuf2_memops: vb2_common_vm_open: ffffffc0604a0cc8, refcount: 1, vma: 7fa577f000-7fa5b74000
[ 2361.671698] videobuf2_dma_contig: vb2_dc_mmap: mapped dma addr 0x70200000 at 0x7fa577f000, size 4149248
[ 2361.681219] videobuf2_memops: vb2_common_vm_open: ffffffc0604a0b48, refcount: 1, vma: 7fa538a000-7fa577f000
[ 2361.690879] videobuf2_dma_contig: vb2_dc_mmap: mapped dma addr 0x70600000 at 0x7fa538a000, size 4149248
[ 2361.700326] videobuf2_memops: vb2_common_vm_open: ffffffc0604a0fc8, refcount: 1, vma: 7fa4f95000-7fa538a000
[ 2361.709987] videobuf2_dma_contig: vb2_dc_mmap: mapped dma addr 0x70a00000 at 0x7fa4f95000, size 4149248
[ 2361.719426] videobuf2_memops: vb2_common_vm_open: ffffffc0604a0e48, refcount: 1, vma: 7fa4ba0000-7fa4f95000
[ 2361.729081] videobuf2_dma_contig: vb2_dc_mmap: mapped dma addr 0x70e00000 at 0x7fa4ba0000, size 4149248
[ 2361.738520] videobuf2_memops: vb2_common_vm_open: ffffffc06cc6d548, refcount: 1, vma: 7fa47ab000-7fa4ba0000
[ 2361.748180] videobuf2_dma_contig: vb2_dc_mmap: mapped dma addr 0x71200000 at 0x7fa47ab000, size 4149248
[ 2361.757612] videobuf2_memops: vb2_common_vm_open: ffffffc03fdc72c8, refcount: 1, vma: 7fa43b6000-7fa47ab000
[ 2361.767272] videobuf2_dma_contig: vb2_dc_mmap: mapped dma addr 0x71600000 at 0x7fa43b6000, size 4149248
[ 2361.776715] videobuf2_memops: vb2_common_vm_open: ffffffc03fdc7348, refcount: 1, vma: 7fa3fc1000-7fa43b6000
[ 2361.786374] videobuf2_dma_contig: vb2_dc_mmap: mapped dma addr 0x71a00000 at 0x7fa3fc1000, size 4149248
[ 2366.861602] media: xilinx-video amba_pl@0:video_cap: begin graph walk at 'video_cap output 0'
[ 2366.870062] media: xilinx-video amba_pl@0:video_cap: walk: pushing 'b0000000.v_proc_ss' on stack
[ 2366.878822] media: xilinx-video amba_pl@0:video_cap: walk: pushing 'b0040000.v_proc_ss' on stack
[ 2366.887585] media: xilinx-video amba_pl@0:video_cap: walk: skipping entity 'b0000000.v_proc_ss' (already seen)
[ 2366.897568] media: xilinx-video amba_pl@0:video_cap: walk: pushing 'b0070000.v_gamma_lut' on stack
[ 2366.906506] media: xilinx-video amba_pl@0:video_cap: walk: skipping entity 'b0040000.v_proc_ss' (already seen)
[ 2366.916490] media: xilinx-video amba_pl@0:video_cap: walk: pushing 'b0050000.v_demosaic' on stack
[ 2366.925341] media: xilinx-video amba_pl@0:video_cap: walk: skipping entity 'b0070000.v_gamma_lut' (already seen)
[ 2366.935500] media: xilinx-video amba_pl@0:video_cap: walk: pushing '80000000.mipi_csi2_rx_subsystem' on stack
[ 2366.945394] media: xilinx-video amba_pl@0:video_cap: walk: skipping entity 'b0050000.v_demosaic' (already seen)
[ 2366.955463] media: xilinx-video amba_pl@0:video_cap: walk: pushing 'ov5647 4-0036' on stack
[ 2366.963793] media: xilinx-video amba_pl@0:video_cap: walk: skipping entity '80000000.mipi_csi2_rx_subsystem' (already seen)
[ 2366.974908] media: xilinx-video amba_pl@0:video_cap: walk: returning entity 'ov5647 4-0036'
[ 2366.983237] media: xilinx-video amba_pl@0:video_cap: walk: returning entity '80000000.mipi_csi2_rx_subsystem'
[ 2366.993135] media: xilinx-video amba_pl@0:video_cap: walk: returning entity 'b0050000.v_demosaic'
[ 2367.001987] media: xilinx-video amba_pl@0:video_cap: walk: returning entity 'b0070000.v_gamma_lut'
[ 2367.010928] media: xilinx-video amba_pl@0:video_cap: walk: returning entity 'b0040000.v_proc_ss'
[ 2367.019694] media: xilinx-video amba_pl@0:video_cap: walk: skipping entity 'video_cap output 0' (already seen)
[ 2367.029678] media: xilinx-video amba_pl@0:video_cap: walk: returning entity 'b0000000.v_proc_ss'
[ 2367.038443] media: xilinx-video amba_pl@0:video_cap: walk: returning entity 'video_cap output 0'
[ 2367.047213] media: xilinx-video amba_pl@0:video_cap: begin graph walk at 'video_cap output 0'
[ 2367.055715] media: xilinx-video amba_pl@0:video_cap: walk: pushing 'b0000000.v_proc_ss' on stack
[ 2367.064484] media: xilinx-video amba_pl@0:video_cap: walk: pushing 'b0040000.v_proc_ss' on stack
[ 2367.073247] media: xilinx-video amba_pl@0:video_cap: walk: skipping entity 'b0000000.v_proc_ss' (already seen)
[ 2367.083232] media: xilinx-video amba_pl@0:video_cap: walk: pushing 'b0070000.v_gamma_lut' on stack
[ 2367.092174] media: xilinx-video amba_pl@0:video_cap: walk: skipping entity 'b0040000.v_proc_ss' (already seen)
[ 2367.102157] media: xilinx-video amba_pl@0:video_cap: walk: pushing 'b0050000.v_demosaic' on stack
[ 2367.111005] media: xilinx-video amba_pl@0:video_cap: walk: skipping entity 'b0070000.v_gamma_lut' (already seen)
[ 2367.121166] media: xilinx-video amba_pl@0:video_cap: walk: pushing '80000000.mipi_csi2_rx_subsystem' on stack
[ 2367.131057] media: xilinx-video amba_pl@0:video_cap: walk: skipping entity 'b0050000.v_demosaic' (already seen)
[ 2367.141128] media: xilinx-video amba_pl@0:video_cap: walk: pushing 'ov5647 4-0036' on stack
[ 2367.149459] media: xilinx-video amba_pl@0:video_cap: walk: skipping entity '80000000.mipi_csi2_rx_subsystem' (already seen)
[ 2367.160571] media: xilinx-video amba_pl@0:video_cap: walk: returning entity 'ov5647 4-0036'
[ 2367.168902] media: xilinx-video amba_pl@0:video_cap: walk: returning entity '80000000.mipi_csi2_rx_subsystem'
[ 2367.178800] media: xilinx-video amba_pl@0:video_cap: walk: returning entity 'b0050000.v_demosaic'
[ 2367.187650] media: xilinx-video amba_pl@0:video_cap: walk: returning entity 'b0070000.v_gamma_lut'
[ 2367.196594] media: xilinx-video amba_pl@0:video_cap: walk: returning entity 'b0040000.v_proc_ss'
[ 2367.205358] media: xilinx-video amba_pl@0:video_cap: walk: skipping entity 'video_cap output 0' (already seen)
[ 2367.215342] media: xilinx-video amba_pl@0:video_cap: walk: returning entity 'b0000000.v_proc_ss'
[ 2367.224105] media: xilinx-video amba_pl@0:video_cap: walk: returning entity 'video_cap output 0'
[ 2367.232883] xilinx_vpss_scaler: xilinx-vpss-scaler b0000000.v_proc_ss: xscaler_s_stream: Stream On
[ 2367.241814] xilinx_vpss_scaler: xilinx-vpss-scaler b0000000.v_proc_ss: V-scaler : scale up 6 tap
[ 2367.250585] xilinx_vpss_scaler: xilinx-vpss-scaler b0000000.v_proc_ss: xv_vscaler_load_ext_coeff : Pad = 6 Offset = 3 Nphases = 64 ntaps = 6
[ 2367.263226] xilinx_vpss_scaler: xilinx-vpss-scaler b0000000.v_proc_ss: Vscaler Input Media Format RGB
[ 2367.272370] xilinx_vpss_scaler: xilinx-vpss-scaler b0000000.v_proc_ss: Hscaler Input Media Format is RGB
[ 2367.281829] xilinx_vpss_scaler: xilinx-vpss-scaler b0000000.v_proc_ss: Hscaler Output Media Format YUV 422
[ 2367.291467] xilinx_vpss_scaler: xilinx-vpss-scaler b0000000.v_proc_ss: H-scaler : scale up 6 tap
[ 2367.300232] xilinx_vpss_scaler: xilinx-vpss-scaler b0000000.v_proc_ss: xv_hscaler_load_ext_coeff : Pad = 6 Offset = 3 Nphases = 64 ntaps = 6
[ 2367.313354] xilinx_vpss_scaler: xilinx-vpss-scaler b0000000.v_proc_ss: xv_hscaler_set_phases : Operating in 2 PPC design
[ 2367.324139] xilinx_vpss_csc: xilinx-vpss-csc b0040000.v_proc_ss: xcsc_s_stream : Stream On
[ 2367.332384] xilinx_vpss_csc: xilinx-vpss-csc b0040000.v_proc_ss: xcsc_set_size : Setting width 1920 and height 1080
[ 2367.342803] xilinx_gamma: xilinx-gamma-lut b0070000.v_gamma_lut: xg_s_stream : Started
[ 2367.350703] xilinx_gamma: xilinx-gamma-lut b0070000.v_gamma_lut: xg_s_stream : Setting width 1920 and height 1080
[ 2367.360939] xilinx_gamma: xilinx-gamma-lut b0070000.v_gamma_lut: Writing 0x780 to reg offset 0x10
[ 2367.369795] xilinx_gamma: xilinx-gamma-lut b0070000.v_gamma_lut: Writing 0x438 to reg offset 0x18
[ 2367.378645] xilinx_gamma: xilinx-gamma-lut b0070000.v_gamma_lut: Writing 0x0 to reg offset 0x20
[ 2367.387328] xilinx_gamma: xilinx-gamma-lut b0070000.v_gamma_lut: Writing 0x10000 to reg offset 0x800
...
[ 2370.931286] xilinx_gamma: xilinx-gamma-lut b0070000.v_gamma_lut: Writing 0xff00fe to reg offset 0x19fc
[ 2370.940577] xilinx_gamma: xilinx-gamma-lut b0070000.v_gamma_lut: Writing 0x81 to reg offset 0x0
[ 2370.949261] xilinx_demosaic: xilinx-demosaic b0050000.v_demosaic: Writing 0x780 to reg offset 0x10
[ 2370.958198] xilinx_demosaic: xilinx-demosaic b0050000.v_demosaic: Writing 0x438 to reg offset 0x18
[ 2370.967135] xilinx_demosaic: xilinx-demosaic b0050000.v_demosaic: Writing 0x3 to reg offset 0x28
[ 2370.975907] xilinx_demosaic: xilinx-demosaic b0050000.v_demosaic: Writing 0x81 to reg offset 0x0
[ 2375.752208] videobuf2_memops: vb2_common_vm_close: ffffffc03fdc7348, refcount: 2, vma: 7fa3fc1000-7fa43b6000
[ 2375.761983] videobuf2_memops: vb2_common_vm_close: ffffffc03fdc72c8, refcount: 2, vma: 7fa43b6000-7fa47ab000
[ 2375.771783] videobuf2_memops: vb2_common_vm_close: ffffffc06cc6d548, refcount: 2, vma: 7fa47ab000-7fa4ba0000
[ 2375.781589] videobuf2_memops: vb2_common_vm_close: ffffffc0604a0e48, refcount: 2, vma: 7fa4ba0000-7fa4f95000
[ 2375.791392] videobuf2_memops: vb2_common_vm_close: ffffffc0604a0fc8, refcount: 2, vma: 7fa4f95000-7fa538a000
[ 2375.801197] videobuf2_memops: vb2_common_vm_close: ffffffc0604a0b48, refcount: 2, vma: 7fa538a000-7fa577f000
[ 2375.811009] videobuf2_memops: vb2_common_vm_close: ffffffc0604a0cc8, refcount: 2, vma: 7fa577f000-7fa5b74000
[ 2375.820813] videobuf2_memops: vb2_common_vm_close: ffffffc06d189dc8, refcount: 2, vma: 7fa5b74000-7fa5f69000
[ 2375.830678] xilinx_vpss_scaler: xilinx-vpss-scaler b0000000.v_proc_ss: xscaler_s_stream: Stream Off
[ 2375.839665] xilinx_vpss_csc: xilinx-vpss-csc b0040000.v_proc_ss: xcsc_s_stream : Stream Off
[ 2375.847989] xilinx_gamma: xilinx-gamma-lut b0070000.v_gamma_lut: xg_s_stream : Off
[ 2375.855542] xilinx_demosaic: xilinx-demosaic b0050000.v_demosaic: xdmsc_s_stream : Off
[ 2375.923020] media: xilinx-video amba_pl@0:video_cap: begin graph walk at 'video_cap output 0'
[ 2375.931462] media: xilinx-video amba_pl@0:video_cap: walk: pushing 'b0000000.v_proc_ss' on stack
[ 2375.940229] media: xilinx-video amba_pl@0:video_cap: walk: pushing 'b0040000.v_proc_ss' on stack
[ 2375.948993] media: xilinx-video amba_pl@0:video_cap: walk: skipping entity 'b0000000.v_proc_ss' (already seen)
[ 2375.958974] media: xilinx-video amba_pl@0:video_cap: walk: pushing 'b0070000.v_gamma_lut' on stack
[ 2375.967914] media: xilinx-video amba_pl@0:video_cap: walk: skipping entity 'b0040000.v_proc_ss' (already seen)
[ 2375.977897] media: xilinx-video amba_pl@0:video_cap: walk: pushing 'b0050000.v_demosaic' on stack
[ 2375.986749] media: xilinx-video amba_pl@0:video_cap: walk: skipping entity 'b0070000.v_gamma_lut' (already seen)
[ 2375.996906] media: xilinx-video amba_pl@0:video_cap: walk: pushing '80000000.mipi_csi2_rx_subsystem' on stack
[ 2376.006799] media: xilinx-video amba_pl@0:video_cap: walk: skipping entity 'b0050000.v_demosaic' (already seen)
[ 2376.016870] media: xilinx-video amba_pl@0:video_cap: walk: pushing 'ov5647 4-0036' on stack
[ 2376.025204] media: xilinx-video amba_pl@0:video_cap: walk: skipping entity '80000000.mipi_csi2_rx_subsystem' (already seen)
[ 2376.036313] media: xilinx-video amba_pl@0:video_cap: walk: returning entity 'ov5647 4-0036'
[ 2376.044645] media: xilinx-video amba_pl@0:video_cap: walk: returning entity '80000000.mipi_csi2_rx_subsystem'
[ 2376.054541] media: xilinx-video amba_pl@0:video_cap: walk: returning entity 'b0050000.v_demosaic'
[ 2376.063394] media: xilinx-video amba_pl@0:video_cap: walk: returning entity 'b0070000.v_gamma_lut'
[ 2376.072335] media: xilinx-video amba_pl@0:video_cap: walk: returning entity 'b0040000.v_proc_ss'
[ 2376.081102] media: xilinx-video amba_pl@0:video_cap: walk: skipping entity 'video_cap output 0' (already seen)
[ 2376.091084] media: xilinx-video amba_pl@0:video_cap: walk: returning entity 'b0000000.v_proc_ss'
[ 2376.099850] media: xilinx-video amba_pl@0:video_cap: walk: returning entity 'video_cap output 0'

 

Any idea how to figure out what is wrong?

 

The problem, I think, is on the MIPI CSI-2 RX side. If I understood correctly, the IRQ output should generate interrupts on all kind of events (frame received, errors, etc.):

Screenshot from 2018-10-19 22-15-30.png

These are logged on debug in the xilinx-csi2rxss.c driver. The kernel log shows NO interrupts triggered, so assume there were no frames received from the camera.

 

I verified the pin assignments of the clock and the 2 data lanes and they seems to be OK.


The MIPI CSI-2 Rx Subsystem is configured as follows:
Screenshot from 2018-10-19 22-22-24.png

 

Thanks,

Attila

 

0 Kudos
Xilinx Employee
Xilinx Employee
4,120 Views
Registered: ‎02-20-2014

Re: PetaLinux - Video Pipeline Device Tree

Please take a look at xilinx video reference design. https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842372/Zynq+UltraScale+MPSoC+Base+TRD+2018.1

 

I think checking the sensor and MIPI-RX registers will help in isolating the issue.

 

Thanks,

Radhey

 

0 Kudos
Adventurer
Adventurer
4,101 Views
Registered: ‎09-02-2018

Re: PetaLinux - Video Pipeline Device Tree

Hi Radhey,

 

I saw the ZCU102 reference design. From that I inspired the MIPI CSI-2 part of my design. :)

  

The sensor, an OV5647, seems to be working. It is present on the I2C bus, the driver successfully probes the sensor and reports no error. Also, I double checked the schematics and the data / clock lanes seems to be routed correctly. Unfortunately, I do not have the necessary equipment to physically check the D-PHY data flow.

 

I extracted the MIPI CSI-2 RX register values while the stream was ON (but no frames were received). Here are the register values:

(note: mipi_csi2_rx_subsystem is mapped to the 0x80020000 address)

  

root@Ultra96:~# printf 'Core Configuration Register (0x00): ' && devmem 0x80020000 32 && \
> printf 'Protocol Configuration Register (0x04): ' && devmem 0x80020004 32 && \
> printf 'Core Status Register (0x10): ' && devmem 0x80020010 32 && \
> printf 'Global Interrupt Enable Register (0x20): ' && devmem 0x80020020 32 && \
> printf 'Interrupt Status Register (0x24): ' && devmem 0x80020024 32 && \
> printf 'Interrupt Enable Register (0x28): ' && devmem 0x80020028 32 && \
> printf 'Generic Short Packet Register (0x30): ' && devmem 0x80020030 32 && \
> printf 'Clock Lane Information Register (0x3C): ' && devmem 0x8002003C 32 && \
> printf 'Lane0 Information (0x40): ' && devmem 0x80020040 32 && \
> printf 'Lane1 Information (0x44): ' && devmem 0x80020044 32 && \
> printf 'Lane2 Information (0x48): ' && devmem 0x80020048 32 && \
> printf 'Lane3 Information (0x4C): ' && devmem 0x8002004C 32 && \
> printf 'Image Information 1 for VC0 (0x60): ' && devmem 0x80020060 32 && \
> printf 'Image Information 2 for VC0 (0x64): ' && devmem 0x80020064 32 && \
> printf 'Image Information 1 for VC1 (0x68): ' && devmem 0x80020068 32 && \
> printf 'Image Information 2 for VC1 (0x6C): ' && devmem 0x8002006C 32 && \
> printf 'Image Information 1 for VC2 (0x70): ' && devmem 0x80020070 32 && \
> printf 'Image Information 2 for VC2 (0x74): ' && devmem 0x80020074 32 && \
> printf 'Image Information 1 for VC3 (0x78): ' && devmem 0x80020078 32 && \
> printf 'Image Information 2 for VC3 (0x7C): ' && devmem 0x8002007C 32

Core Configuration Register (0x00): 0x00000001
Protocol Configuration Register (0x04): 0x00000009
Core Status Register (0x10): 0xFFFF0004
Global Interrupt Enable Register (0x20): 0x00000001
Interrupt Status Register (0x24): 0x800A00A2
Interrupt Enable Register (0x28): 0x803DFFFF
Generic Short Packet Register (0x30): 0x002F72D9
Clock Lane Information Register (0x3C): 0x00000003
Lane0 Information (0x40): 0x00000020
Lane1 Information (0x44): 0x00000020
Lane2 Information (0x48): 0x00000000
Lane3 Information (0x4C): 0x00000000
Image Information 1 for VC0 (0x60): 0xFFFA0000
Image Information 2 for VC0 (0x64): 0x00000000
Image Information 1 for VC1 (0x68): 0xE76B0000
Image Information 2 for VC1 (0x6C): 0x00000000
Image Information 1 for VC2 (0x70): 0xBDE20000
Image Information 2 for VC2 (0x74): 0x00000000
Image Information 1 for VC3 (0x78): 0x0681CC5F
Image Information 2 for VC3 (0x7C): 0x0000003F

(I did not fully understood the values yet, so hope you can help me a little bit here)


Here are the unpacked values (ref. PG232), and what I understood from them:

  • Core Configuration Register, 0x00 = 0x00000001
    • Core Enable (0) = 1 (ON) - ok
  • Protocol Configuration Register, 0x0x = 0x00000009
    • Maximum Lanes (1-0) = 2 (0x1) - ok
    • Active Lanes (4-3) = 2  (0x1) - ok
  •  Core Status Register, 0x10 = 0xFFFF0004
    • Packet Count (31-16) = 0xFFFF - what this means ?
    • Short packet FIFO not empty (2) = 1 (ON) - ?
  • Global Interrupt Enable Register 0x20 = 0x00000001
    • Global Interrupt enable (0) = 1 (ON) - ok
  • Interrupt Status Register, 0x24 = 0x800A00A2 = 1000 0000 0000 1010 0000 0000 1010 0010
    • Frame synchronization error for VC0 (ErrFrameSync) (1)  = 1 (ON) - not ok, what this means ?
    • Frame synchronization error for VC2 (ErrFrameSync) (5) = 1 (ON) - not ok, what this means ?
    • Frame synchronization error for VC3 (ErrFrameSync) (7) = 1 (ON) - not ok, what this means ?
    • VC1 is ok ???
    • Stop state (17) = 1 (ON) - ?
    • Short packet FIFO not empty (19) = 1 (ON) - ?, also present in the Core Status Register
    • Frame Received (31) = 1 (ON) - frame received, but some kind of error occurred ?
  • Interrupt Enable Register, 0x28 = 0x803DFFFF = 1000 0000 0011 1101 1111 1111 1111 1111
    • all interrupt enabled, except - ok, I guess
      • Stop state (17)
      • Word Count (WC) corruption (22)
  • Generic Short Packet Register, 0x30 = 0x002F72D9 = 0000 0000 0010 1111 0111 0010 1101 1001
    • Data (23-80) = 0010 1111 0111 0010
    • Virtual Channel (7-6) = 3 (11)
    • Data Type (5-0) = 01 1001
  • Clock Lane Information Register, 0x3C = 0x00000003
    • Stop state (1) = 1 (ON)
  • Lane0/1 Information, 0x40/0x44 = 0x00000020
    • Stop state (5) = 1 (ON)
  • Lane2/3 Information, 0x40/0x44 = 0x00000000
    • lane 2 & 3  are not used
  • Image Information 1 for VC0, 0x60 = 0xFFFA0000
    • Line count (31-16) = 0xFFFA
    • Byte count (15-0) = 0x0000
  • Image Information 2 for VC0, 0x64 = 0x00000000
    • Data Type (5) = 0
  • Image Information 1 for VC1, 0x68 = 0xE76B0000
    • Line count (31-16) = 0xE76B
    • Byte count (15-0) = 0x0000
  • Image Information 2 for VC1, 0x6C = 0x00000000
    • Data Type (5-0) = 0
  • Image Information 1 for VC2, 0x70 = 0xBDE20000
    • Line count (31-16) = 0xBDE2
    • Byte count (15-0) = 0x0000
  • Image Information 2 for VC2, 0x74 = 0x00000000
    • Data Type (5-0) = 0
  • Image Information 1 for VC3, 0x78 = 0x0681CC5F
    • Line count (31-16) = 0x0681
    • Byte count (15-0) = 0xCC5F
  • Image Information 2 for VC3, 0x7C = 0x0000003F
    • Data Type (5-0) = 0x30FF

What I understood from this values is that there was a (or some) frame(s) received, but there was some kind of error(s). The rest is a little bit cryptic for me :D.

 

Does this means the physical connection is ok, but something is miss configured? Or, does the above values refer to some kind of timeout / problem with the physical connection?

 

Can you please help me demystify these values?

 

Thanks,

Attila

 

 

Visitor stevenolney
Visitor
2,729 Views
Registered: ‎06-04-2018

Re: PetaLinux - Video Pipeline Device Tree

I had a similar problem and was annoyed to see this thread stop with no solution, so i'll share the solution for my particular case. To recap, the situation is as follows:

  • h/w looks good
  • media-ctl level config is complete & "media-ctl -p" output looks good
  • yavta isn't able to capture any frames

Firstly, notice that just doing media-ctl setup and then running yavta doesn't work on the unmodifed reference Re-Vision system either - this isn't sufficient to fully configure the pipeline.

On Re-Vision, you can first run gstreamer to get things initialized properly, after which yavta will work as expected.

On your own system, you need to do something similiar, but it doesn't work out of the box:

  • xilinx gstreamer plugin from Re-Vision has hard-coded pipeline so cannot be used as-is
  • xilinx gstreamer plugin source doesn't seem to be on github (... why not?, hey xilinx, please add it)

Anyway, xilinx gstreamer plugin source can be found (...with no Makefile) in the Re-Vision release bundle at:

zcu104_rv_ss/sw/a53_linux/a53_linux/sysroot/aarch64-xilinx-linux/usr/src/debug/gst-plugins-xlnx

Eventually, i was able to compile it, modify & test it for my own system, then finally, extract the necessary parts and make a simple initialization program which could configure the pipeline enough for yavta and similar simple v4l2 programs to work without gstreamer.

 

0 Kudos
Observer lrocher
Observer
2,670 Views
Registered: ‎09-28-2017

Re: PetaLinux - Video Pipeline Device Tree

hi 

 

I have the same problem and when i check the signal with ila analyser i can see that th demosaic is not ready

0 Kudos