cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
badFITimage
Explorer
Explorer
1,529 Views
Registered: ‎09-06-2019

HDMI (DVI) Rx fails to detect link

Hi,

I have the following module instantiated in my design and am currectly debugging the receiver:


Untitled.png

I'm currently attempting to find the root cause. Could anyone point me in the right direction or provide some insight to as where the issues may be coming from? (I've validated the physical routing to the expected pins).

Here is the boot log along with some status:

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 4.19.0 (lp_adts@osboxes) (gcc version 7.3.1 20180425 [linaro-7.3-2018.05 revision d29120a424ecfbc167ef90065c0eeb7f91977701] (Linaro GCC 7.3-2018.05)) #1 SMP Thu Feb 13 14:40:35 EST 2020
[    0.000000] Machine model: xlnx,zynqmp
[    0.000000] earlycon: cdns0 at MMIO 0x00000000ff000000 (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 0x0000000061c00000
[    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] psci: SMC Calling Convention v1.1
[    0.000000] random: get_random_bytes called from start_kernel+0xac/0x414 with crng_init=0
[    0.000000] percpu: Embedded 22 pages/cpu @(____ptrval____) s52504 r8192 d29416 u90112
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: enabling workaround for ARM erratum 845719
[    0.000000] Speculative Store Bypass Disable mitigation not required
[    0.000000] CPU features: detected: Kernel page table isolation (KPTI)
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 1034240
[    0.000000] Kernel command line: console=ttyPS0,115200n8 earlycon clk_ignore_unused cpuidle.off=1
[    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes)
[    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes)
[    0.000000] software IO TLB: mapped [mem 0x7bfff000-0x7ffff000] (64MB)
[    0.000000] Memory: 3672172K/4194304K available (10108K kernel code, 726K rwdata, 3028K rodata, 512K init, 307K bss, 259988K reserved, 262144K cma-reserved)
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     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] arch_timer: cp15 timer(s) running at 99.99MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x170f8de2d3, max_idle_ns: 440795206112 ns
[    0.000003] sched_clock: 56 bits at 99MHz, resolution 10ns, wraps every 4398046511101ns
[    0.008210] Console: colour dummy device 80x25
[    0.012391] Calibrating delay loop (skipped), value calculated using timer frequency.. 199.98 BogoMIPS (lpj=399960)
[    0.022757] pid_max: default: 32768 minimum: 301
[    0.027449] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes)
[    0.034012] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes)
[    0.041823] ASID allocator initialised with 32768 entries
[    0.046508] rcu: Hierarchical SRCU implementation.
[    0.052527] EFI services will not be available.
[    0.055834] smp: Bringing up secondary CPUs ...
[    0.060498] Detected VIPT I-cache on CPU1
[    0.060533] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[    0.060835] Detected VIPT I-cache on CPU2
[    0.060854] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
[    0.061141] Detected VIPT I-cache on CPU3
[    0.061160] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
[    0.061203] smp: Brought up 1 node, 4 CPUs
[    0.095682] SMP: Total of 4 processors activated.
[    0.100355] CPU features: detected: 32-bit EL0 Support
[    0.106771] CPU: All CPU(s) started at EL2
[    0.109534] alternatives: patching kernel code
[    0.114690] devtmpfs: initialized
[    0.120919] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.126923] futex hash table entries: 1024 (order: 4, 65536 bytes)
[    0.138502] xor: measuring software checksum speed
[    0.177125]    8regs     :  2303.000 MB/sec
[    0.217153]    8regs_prefetch:  2052.000 MB/sec
[    0.257185]    32regs    :  2831.000 MB/sec
[    0.297214]    32regs_prefetch:  2380.000 MB/sec
[    0.297243] xor: using function: 32regs (2831.000 MB/sec)
[    0.301600] pinctrl core: initialized pinctrl subsystem
[    0.307307] NET: Registered protocol family 16
[    0.311386] audit: initializing netlink subsys (disabled)
[    0.316602] audit: type=2000 audit(0.264:1): state=initialized audit_enabled=0 res=1
[    0.324220] vdso: 2 pages (1 code @ (____ptrval____), 1 data @ (____ptrval____))
[    0.324225] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.338963] DMA: preallocated 256 KiB pool for atomic allocations
[    0.356348] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    0.422924] raid6: int64x1  gen()   446 MB/s
[    0.490964] raid6: int64x1  xor()   485 MB/s
[    0.558992] raid6: int64x2  gen()   670 MB/s
[    0.627013] raid6: int64x2  xor()   601 MB/s
[    0.695110] raid6: int64x4  gen()  1040 MB/s
[    0.763122] raid6: int64x4  xor()   739 MB/s
[    0.831177] raid6: int64x8  gen()   982 MB/s
[    0.899209] raid6: int64x8  xor()   752 MB/s
[    0.967278] raid6: neonx1   gen()   726 MB/s
[    1.035339] raid6: neonx1   xor()   850 MB/s
[    1.103402] raid6: neonx2   gen()  1165 MB/s
[    1.171429] raid6: neonx2   xor()  1206 MB/s
[    1.239469] raid6: neonx4   gen()  1510 MB/s
[    1.307528] raid6: neonx4   xor()  1441 MB/s
[    1.375584] raid6: neonx8   gen()  1664 MB/s
[    1.443622] raid6: neonx8   xor()  1534 MB/s
[    1.443649] raid6: using algorithm neonx8 gen() 1664 MB/s
[    1.447613] raid6: .... xor() 1534 MB/s, rmw enabled
[    1.452543] raid6: using neon recovery algorithm
[    1.457338] xilinx-gpio a0030000.gpio: Input clock not found
[    1.463291] SCSI subsystem initialized
[    1.466631] usbcore: registered new interface driver usbfs
[    1.471950] usbcore: registered new interface driver hub
[    1.477231] usbcore: registered new device driver usb
[    1.482262] media: Linux media interface: v0.10
[    1.486739] videodev: Linux video capture interface: v2.00
[    1.492197] pps_core: LinuxPPS API ver. 1 registered
[    1.497096] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    1.506191] PTP clock support registered
[    1.510087] EDAC MC: Ver: 3.0.0
[    1.513474] zynqmp-ipi-mbox mailbox@ff990400: Probed ZynqMP IPI Mailbox driver.
[    1.520661] FPGA manager framework
[    1.523873] Advanced Linux Sound Architecture Driver Initialized.
[    1.530152] Bluetooth: Core ver 2.22
[    1.533443] NET: Registered protocol family 31
[    1.537843] Bluetooth: HCI device and connection manager initialized
[    1.544160] Bluetooth: HCI socket layer initialized
[    1.549002] Bluetooth: L2CAP socket layer initialized
[    1.554039] Bluetooth: SCO socket layer initialized
[    1.559137] clocksource: Switched to clocksource arch_sys_counter
[    1.564995] VFS: Disk quotas dquot_6.6.0
[    1.568855] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    1.579900] NET: Registered protocol family 2
[    1.580295] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes)
[    1.587803] TCP established hash table entries: 32768 (order: 6, 262144 bytes)
[    1.595143] TCP bind hash table entries: 32768 (order: 7, 524288 bytes)
[    1.601911] TCP: Hash tables configured (established 32768 bind 32768)
[    1.608065] UDP hash table entries: 2048 (order: 4, 65536 bytes)
[    1.614040] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes)
[    1.620524] NET: Registered protocol family 1
[    1.624902] RPC: Registered named UNIX socket transport module.
[    1.630587] RPC: Registered udp transport module.
[    1.635261] RPC: Registered tcp transport module.
[    1.639923] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    1.646441] Trying to unpack rootfs image as initramfs...
[    1.854828] Freeing initrd memory: 114980K
[    1.855409] hw perfevents: no interrupt-affinity property for /pmu, guessing.
[    1.860565] hw perfevents: enabled with armv8_pmuv3 PMU driver, 7 counters available
[    1.869060] workingset: timestamp_bits=62 max_order=20 bucket_order=0
[    1.875186] NFS: Registering the id_resolver key type
[    1.879512] Key type id_resolver registered
[    1.883652] Key type id_legacy registered
[    1.887636] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    1.894296] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
[    1.900675] jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[    1.975634] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
[    1.977381] io scheduler noop registered
[    1.981281] io scheduler deadline registered
[    1.985553] io scheduler cfq registered (default)
[    1.990188] io scheduler mq-deadline registered
[    1.994685] io scheduler kyber registered
[    2.000186] xilinx-frmbuf a0010000.v_frmbuf_wr: failed to get ap_clk (-517)
[    2.030977] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    2.034899] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    2.042151] brd: module loaded
[    2.045966] loop: module loaded
[    2.046783] mtdoops: mtd device (mtddev=name/number) must be supplied
[    2.051590] libphy: Fixed MDIO Bus: probed
[    2.055457] tun: Universal TUN/TAP device driver, 1.6
[    2.059488] CAN device driver interface
[    2.064069] usbcore: registered new interface driver asix
[    2.068572] usbcore: registered new interface driver ax88179_178a
[    2.074615] usbcore: registered new interface driver cdc_ether
[    2.080410] usbcore: registered new interface driver net1080
[    2.086035] usbcore: registered new interface driver cdc_subset
[    2.091915] usbcore: registered new interface driver zaurus
[    2.097464] usbcore: registered new interface driver cdc_ncm
[    2.103644] rtc_zynqmp ffa60000.rtc: rtc core: registered ffa60000.rtc as rtc0
[    2.110292] i2c /dev entries driver
[    2.114021] IR NEC protocol handler initialized
[    2.118195] IR RC5(x/sz) protocol handler initialized
[    2.123211] IR RC6 protocol handler initialized
[    2.127709] IR JVC protocol handler initialized
[    2.132207] IR Sony protocol handler initialized
[    2.136792] IR SANYO protocol handler initialized
[    2.141463] IR Sharp protocol handler initialized
[    2.146135] IR MCE Keyboard/mouse protocol handler initialized
[    2.151931] IR XMP protocol handler initialized
[    2.156522] xilinx-video amba_pl@0:vcap_hdmi: /amba_pl@0/vcap_hdmi/ports/port@0 initialization failed
[    2.165603] xilinx-video amba_pl@0:vcap_hdmi: DMA initialization failed
[    2.173405] xilinx-vpss-scaler a0040000.v_proc_ss: xlnx,v-vpss-scaler-1.0 - compatible string is getting deprecated!
[    2.182653] xilinx-vpss-scaler a0040000.v_proc_ss: failed to get aclk_axis (-517)
[    2.190217] usbcore: registered new interface driver uvcvideo
[    2.195793] USB Video Class driver (1.1.1)
[    2.200364] EDAC MC: ECC not enabled
[    2.203550] EDAC DEVICE0: Giving out device to module zynqmp-ocm-edac controller zynqmp_ocm: DEV ff960000.memory-controller (INTERRUPT)
[    2.215783] CPUidle arm: Failed to register cpuidle driver
[    2.221135] sdhci: Secure Digital Host Controller Interface driver
[    2.227108] sdhci: Copyright(c) Pierre Ossman
[    2.231437] sdhci-pltfm: SDHCI platform and OF driver helper
[    2.237338] ledtrig-cpu: registered to indicate activity on CPUs
[    2.243069] zynqmp_firmware_probe Platform Management API v1.1
[    2.248828] zynqmp_firmware_probe Trustzone version v1.0
[    2.277314] zynqmp_clk_mux_get_parent() getparent failed for clock: lpd_wdt, ret = -22
[    2.282069] ARM CCI_400_r1 PMU driver probed
[    2.283260] pktgen: Packet Generator for packet performance testing. Version: 2.75
[    2.291733] Initializing XFRM netlink socket
[    2.295657] NET: Registered protocol family 10
[    2.300357] Segment Routing with IPv6
[    2.303712] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    2.309830] NET: Registered protocol family 17
[    2.313930] NET: Registered protocol family 15
[    2.318345] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[    2.331260] can: controller area network core (rev 20170425 abi 9)
[    2.337410] NET: Registered protocol family 29
[    2.341777] can: raw protocol (rev 20170425)
[    2.346015] can: broadcast manager protocol (rev 20170425 t)
[    2.351639] can: netlink gateway (rev 20170425) max_hops=1
[    2.357149] Bluetooth: RFCOMM TTY layer initialized
[    2.361940] Bluetooth: RFCOMM socket layer initialized
[    2.367072] Bluetooth: RFCOMM ver 1.11
[    2.370760] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    2.376033] Bluetooth: BNEP filters: protocol multicast
[    2.381225] Bluetooth: BNEP socket layer initialized
[    2.386154] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[    2.392038] Bluetooth: HIDP socket layer initialized
[    2.397006] Key type dns_resolver registered
[    2.401572] registered taskstats version 1
[    2.405591] Btrfs loaded, crc32c=crc32c-generic
·r¢¢ªºÂêconsole [ttyPS0] enabledttyPS0 at MMIO 0xff000000 (irq = 44, base_baud = 6249375) is a xuartps
[    2.424578] console [ttyPS0] enabled
[    2.428163] bootconsole [cdns0] disabled
[    2.428163] bootconsole [cdns0] disabled
[    2.436075] ff010000.serial: ttyPS1 at MMIO 0xff010000 (irq = 45, base_baud = 6249375) is a xuartps
[    2.448925] GPIO IRQ not connected
[    2.452323] XGpio: gpio@a0030000: registered, base is 511
[    2.458567] xilinx-zynqmp-dma fd500000.dma: ZynqMP DMA driver Probe success
[    2.465680] xilinx-zynqmp-dma fd510000.dma: ZynqMP DMA driver Probe success
[    2.472779] xilinx-zynqmp-dma fd520000.dma: ZynqMP DMA driver Probe success
[    2.479876] xilinx-zynqmp-dma fd530000.dma: ZynqMP DMA driver Probe success
[    2.486967] xilinx-zynqmp-dma fd540000.dma: ZynqMP DMA driver Probe success
[    2.494063] xilinx-zynqmp-dma fd550000.dma: ZynqMP DMA driver Probe success
[    2.501165] xilinx-zynqmp-dma fd560000.dma: ZynqMP DMA driver Probe success
[    2.508269] xilinx-zynqmp-dma fd570000.dma: ZynqMP DMA driver Probe success
[    2.515433] xilinx-zynqmp-dma ffa80000.dma: ZynqMP DMA driver Probe success
[    2.522536] xilinx-zynqmp-dma ffa90000.dma: ZynqMP DMA driver Probe success
[    2.529636] xilinx-zynqmp-dma ffaa0000.dma: ZynqMP DMA driver Probe success
[    2.536738] xilinx-zynqmp-dma ffab0000.dma: ZynqMP DMA driver Probe success
[    2.543836] xilinx-zynqmp-dma ffac0000.dma: ZynqMP DMA driver Probe success
[    2.550930] xilinx-zynqmp-dma ffad0000.dma: ZynqMP DMA driver Probe success
[    2.558032] xilinx-zynqmp-dma ffae0000.dma: ZynqMP DMA driver Probe success
[    2.565133] xilinx-zynqmp-dma ffaf0000.dma: ZynqMP DMA driver Probe success
[    2.572228] xilinx-frmbuf a0010000.v_frmbuf_wr: Xilinx AXI frmbuf DMA_DEV_TO_MEM
[    2.579684] xilinx-frmbuf a0010000.v_frmbuf_wr: Xilinx AXI FrameBuffer Engine Driver Probed!!
[    2.598543] ahci-ceva fd0c0000.ahci: AHCI 0001.0301 32 slots 2 ports 6 Gbps 0x3 impl platform mode
[    2.607500] ahci-ceva fd0c0000.ahci: flags: 64bit ncq sntf pm clo only pmp fbs pio slum part ccc sds apst
[    2.617229] zynqmp_pll_disable() clock disable failed for apll_int, ret = -13
[    2.625389] scsi host0: ahci-ceva
[    2.628907] scsi host1: ahci-ceva
[    2.632321] ata1: SATA max UDMA/133 mmio [mem 0xfd0c0000-0xfd0c1fff] port 0x100 irq 40
[    2.640238] ata2: SATA max UDMA/133 mmio [mem 0xfd0c0000-0xfd0c1fff] port 0x180 irq 40
[    2.649770] macb ff0d0000.ethernet: Not enabling partial store and forward
[    2.657180] libphy: MACB_mii_bus: probed
[    2.661100] mdio_bus ff0d0000.ethernet-ffffffff: Loop over the child nodes and register a phy_device for each phy
[    2.671359] mdio_bus ff0d0000.ethernet-ffffffff: address found. scan phy phy at address 0
[    2.679530] mdio_bus ff0d0000.ethernet-ffffffff: This child node is a phy node of mdio
[    2.690682] mdio_bus ff0d0000.ethernet-ffffffff: address found. scan phy phy at address 1
[    2.698870] mdio_bus ff0d0000.ethernet-ffffffff: This child node is a phy node of mdio
[    2.709758] mdio_bus ff0d0000.ethernet-ffffffff: address found. scan phy phy at address 2
[    2.717938] mdio_bus ff0d0000.ethernet-ffffffff: This child node is NOT a phy node of mdio
[    2.726263] mdio_bus ff0d0000.ethernet-ffffffff: address found. scan phy phy at address 3
[    2.734434] mdio_bus ff0d0000.ethernet-ffffffff: This child node is NOT a phy node of mdio
[    2.742911] Generic PHY ff0d0000.ethernet-ffffffff:00: attached PHY driver [Generic PHY] (mii_bus:phy_addr=ff0d0000.ethernet-ffffffff:00, irq=POLL)
[    2.756123] macb ff0d0000.ethernet eth0: Cadence GEM rev 0x50070106 at 0xff0d0000 irq 30 (00:0a:35:00:00:02)
[    2.766349] macb ff0e0000.ethernet: Not enabling partial store and forward
[    2.773771] libphy: MACB_mii_bus: probed
[    2.777690] mdio_bus ff0e0000.ethernet-ffffffff: Loop over the child nodes and register a phy_device for each phy
[    2.793190] Generic PHY ff0d0000.ethernet-ffffffff:01: attached PHY driver [Generic PHY] (mii_bus:phy_addr=ff0d0000.ethernet-ffffffff:01, irq=POLL)
[    2.806403] macb ff0e0000.ethernet eth1: Cadence GEM rev 0x50070106 at 0xff0e0000 irq 31 (00:0a:35:00:00:03)
[    2.816604] xilinx-axipmon ffa00000.perf-monitor: Probed Xilinx APM
[    2.823159] xilinx-axipmon fd0b0000.perf-monitor: Probed Xilinx APM
[    2.829631] xilinx-axipmon fd490000.perf-monitor: Probed Xilinx APM
[    2.836116] xilinx-axipmon ffa10000.perf-monitor: Probed Xilinx APM
[    2.842788] cdns-i2c ff020000.i2c: 400 kHz mmio ff020000 irq 33
[    2.849097] cdns-i2c ff030000.i2c: 400 kHz mmio ff030000 irq 34
[    2.855288] xilinx-video amba_pl@0:vcap_hdmi: device registered
[    2.861357] xilinx-vpss-scaler a0040000.v_proc_ss: xlnx,v-vpss-scaler-1.0 - compatible string is getting deprecated!
[    2.871932] xilinx-video amba_pl@0:vcap_hdmi: Entity type for entity a0040000.v_proc_ss was not initialized!
[    2.881757] xilinx-vpss-scaler a0040000.v_proc_ss: Num Hori Taps 8
[    2.887927] xilinx-vpss-scaler a0040000.v_proc_ss: Num Vert Taps 8
[    2.894096] xilinx-vpss-scaler a0040000.v_proc_ss: VPSS Scaler Probe Successful
[    2.901762] cdns-wdt fd4d0000.watchdog: Xilinx Watchdog Timer at (____ptrval____) with timeout 60s
[    2.910931] cdns-wdt ff150000.watchdog: Xilinx Watchdog Timer at (____ptrval____) with timeout 10s
[    2.920169] cpufreq: cpufreq_online: CPU0: Running at unlisted freq: 1199880 KHz
[    2.927608] cpufreq: cpufreq_online: CPU0: Unlisted initial frequency changed to: 1199999 KHz
[    2.961329] ata1: SATA link down (SStatus 0 SControl 330)
[    2.966758] ata2: SATA link down (SStatus 0 SControl 330)
[    2.967502] mmc0: SDHCI controller on ff170000.mmc [ff170000.mmc] using ADMA 64-bit
[    2.987647] rtc_zynqmp ffa60000.rtc: setting system clock to 2018-12-31 12:12:40 UTC (1546258360)
[    2.996518] of_cfs_init
[    2.998988] of_cfs_init: OK
[    3.001889] clk: Not disabling unused clocks
[    3.006153] ALSA device list:
[    3.009108]   No soundcards found.
[    3.012987] Freeing unused kernel memory: 512K
[    3.039193] Run /init as init process
Starting logging: start-stop-daemon: open pidfile /var/run/syslogd.pid: Not a directory
start-stop-daemon: open pidfile /var/run/klogd.pid: Not a di[    3.077393] random: dd: uninitialized urandom read (512 bytes read)
rectory
OK
Initializing random number generator... done.
Starting network: ifup: can't open '/var/run/ifstate.new': Not a directory
FAIL
[    3.109095] allegro: loading out-of-tree module taints kernel.
[    3.114387] mmc0: new HS200 MMC card at address 0001
[    3.120511] mmcblk0: mmc0:0001 R1J58L 55.1 GiB
[    3.125519] mmcblk0boot0: mmc0:0001 R1J58L partition 1 16.0 MiB
[    3.131866] mmcblk0boot1: mmc0:0001 R1J58L partition 2 16.0 MiB
[    3.137937] mmcblk0rpmb: mmc0:0001 R1J58L partition 3 128 KiB, chardev (244:0)
[    3.142462] VCU PLL: enable
[    3.148589] xilinx-vcu xilinx-vcu: xvcu_probe: Probed successfully
[    3.172254] al5e a0100000.al5e: l2 prefetch size:0 (bits), l2 color bitdepth:10
[    3.196588] al5d a0120000.al5d: l2 prefetch size:0 (bits), l2 color bitdepth:10
[    3.217425] xilinx-vphy a0020000.vid_phy_controller: probed
[    3.223353] VPhy version : 02.02 (0000)
[    3.227339] xilinx-vphy a0020000.vid_phy_controller: probe successful
[    3.237872] xilinx-hdmi-rx a0000000.v_hdmi_rx_ss: probed
[    3.243264] xvphy_phy_init((____ptrval____)).
[    3.247629] xvphy_phy_init((____ptrval____)).
[    3.251990] xvphy_phy_init((____ptrval____)).
[    3.256514] hdmirx_irq_handler(): HDMI RX SS is not initialized?!
[    3.256646] xilinx-hdmi-rx a0000000.v_hdmi_rx_ss: Direct firmware load for xilinx/xilinx-hdmi-rx-edid.bin failed with error -2
[    3.273985] xilinx-hdmi-rx a0000000.v_hdmi_rx_ss: Using Xilinx built-in EDID.
[    3.281186]
[    3.281186] Successfully loaded edid.
[    3.286498] xilinx-video amba_pl@0:vcap_hdmi: Entity type for entity a0000000.v_hdmi_rx_ss was not initialized!
[    3.296842] xilinx-hdmi-rx a0000000.v_hdmi_rx_ss: probe successful
[    3.341883] macb ff0b0000.ethernet: Not enabling partial store and forward
[    3.349365] libphy: MACB_mii_bus: probed
[    3.353285] mdio_bus ff0b0000.ethernet-ffffffff: Loop over the child nodes and register a phy_device for each phy
[    3.531940] macb ff0c0000.ethernet: Not enabling partial store and forward
[    3.539344] libphy: MACB_mii_bus: probed
[    3.543266] mdio_bus ff0c0000.ethernet-ffffffff: Loop over the child nodes and register a phy_device for each phy
[    3.715901] pps pps0: new PPS source ptp0
[    3.719917] macb ff0d0000.ethernet: gem-ptp-timer ptp clock registered.
[    3.726656] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[    3.736865] pps pps1: new PPS source ptp1
[    3.740889] macb ff0e0000.ethernet: gem-ptp-timer ptp clock registered.
[    3.747623] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready

 

media graph:

# media-ctl -d /dev/media0 -p
Media controller API version 4.19.0

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

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

- entity 5: a0040000.v_proc_ss (2 pads, 2 links)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev0
        pad0: Sink
                [fmt:RBG888_1X24/1280x720 field:none colorspace:srgb]
                <- "a0000000.v_hdmi_rx_ss":0 [ENABLED]
        pad1: Source
                [fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
                -> "vcap_hdmi output 0":0 [ENABLED]

- entity 8: a0000000.v_hdmi_rx_ss (1 pad, 1 link)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev1
        pad0: Source
                [fmt:RBG888_1X24/1280x720 field:none colorspace:srgb]
                [dv.caps:BT.656/1120 min:0x0@25000000 max:4096x2160@297000000 stds:CEA-861,DMT,CVT,GTF caps:progressive,reduced-blanking,custom]
                [dv.query:no-link]
                -> "a0040000.v_proc_ss":0 [ENABLED]
$ cat /sys/devices/platform/amba_pl@0/a0000000.v_hdmi_rx_ss/hdmi_in
fo

Rx Info
--------
Mode: DVI
Status: No input stream detected

Link quality
------------
Link quality channel 0 : good (4)
Link quality channel 1 : good (4)
Link quality channel 2 : good (4)
$ v4l2-ctl --list-devices
vcap_hdmi output 0 (platform:vcap_hdmi:0):
        /dev/video0

Thanks in advance!

Tags (2)
0 Kudos
Reply
16 Replies
watari
Teacher
Teacher
1,512 Views
Registered: ‎06-16-2013

Hi @badFITimage 

 

What kind of source are you using ?

Also, what resolution, vertical frequency and pixel clock are you using on source device ?

 

Best regards,

0 Kudos
Reply
badFITimage
Explorer
Explorer
1,491 Views
Registered: ‎09-06-2019

Hi @watari,

We're currently hooking up to a camera that provides and HDMI output, using a HDMI <-> DVI cable and then connecting to our board.

I'll have to dig deeper into the camera to check the video characteristics.

 

0 Kudos
Reply
watari
Teacher
Teacher
1,481 Views
Registered: ‎06-16-2013

Hi @badFITimage 

 

What kind of EDID are you using on HDMI Rx ? from Xilinx ? Your customed ?

Also, did you consider EDID to connect your souce device ?

 

If no, I suggest you to consider EDID and set proper parameter.

 

Best regards,

0 Kudos
Reply
badFITimage
Explorer
Explorer
1,452 Views
Registered: ‎09-06-2019

@watari 

We're currently implementing the xilinx default EDID - we aren't too familiar with EDIDs as a whole so I'll have to figure out how to manipulate it correctly. I've been attempting to get the video specifications from the camera we are currently using.

Another detail I came across is that the video phy IP looks like it only supports specifically HDMI? Can I assume that DVI-D is included as a subset or is there some mechanism here that strictly prohibits anything that does not conform to the HDMI standard (including subsets like DVI-D)? 

Also after using an online EDID parser (http://www.edidreader.com/) I was able to verify that the default Xilinx EDID does support both 1920x1080 and 1280x1024 which is what we are currently testing with:

Capture.PNGCapture1.PNG

Edit: I've gathered some additional information through the logs/info as well if it helps:

$ cat /sys/devices/platform/amba_pl@0/a0000000.v_hdmi_rx_ss/vphy_log

VPHY log
------
$ cat /sys/devices/platform/amba_pl@0/a0000000.v_hdmi_rx_ss/vphy_info
RX: CPLL
RX state: idle

CPLL settings
-------------
M : 0 - N1 : 0 - N2 : 0 - D : 0

RX MMCM settings
-------------
Mult : 0 - Div : 0 - Clk0Div : 0 - Clk1Div : 0 - Clk2Div : 0

Rx Ref Clk: 0 Hz
DRU Ref Clk: 1 Hz
$ cat /sys/devices/platform/amba_pl@0/a0000000.v_hdmi_rx_ss/hdmi_log



HDMI RX log
------
$ cat /sys/devices/platform/amba_pl@0/a0000000.v_hdmi_rx_ss/hdmi_info

Rx Info
--------
Mode: DVI
Status: No input stream detected

Link quality
------------
Link quality channel 0 : excellent (0)
Link quality channel 1 : excellent (0)
Link quality channel 2 : excellent (0)

The reported VPHY clock settings seem stange.

0 Kudos
Reply
florentw
Moderator
Moderator
1,323 Views
Registered: ‎11-09-2015

HI @badFITimage 

Did you try with any reference design?

I do not see the HPD signal on your design? Can you make sure you have it?


Florent
Product Application Engineer - Xilinx Technical Support EMEA
**~ Don't forget to reply, give kudos, and accept as solution.~**
0 Kudos
Reply
badFITimage
Explorer
Explorer
1,310 Views
Registered: ‎09-06-2019

Hi @florentw,

We've loaded the 2019.1 TRD onto a ZCU106  and the design was able to detect the HDMI stream but it failed to detect valid signals of the DVI-D source. I posted the issue here: https://forums.xilinx.com/t5/Video/2019-1-VCU-TRD-HDMI-Rx-as-DVI-D-Rx/m-p/1078244#M30881 and it seems like a DVI-D stream might not work quite right.

Our design utilizes a direct DVI-D link to the ultrascale so we don't actually have anything to route our HPD signal to. Our design simply uses a DVI capable camera to provide the source to the system. 

Follow up question: is this configuration valid? Can DVI signals simply be routed directly to the video phy?

0 Kudos
Reply
florentw
Moderator
Moderator
1,210 Views
Registered: ‎11-09-2015

Hi @badFITimage 

The answer here is the same as:

https://forums.xilinx.com/t5/Video/2019-1-VCU-TRD-HDMI-Rx-as-DVI-D-Rx/m-p/1084035/highlight/true#M31250


In most case that DVI signals are transmitting from HDMI cable, it works fine.

But some DVI source doesn't follow HDMI protocols. For example, the TMDS Clock isn't good enough, some source was produced before HDMI 1.4 protocol. It doesn't send valid CTRL word.

But DVI-D to HDMI adapter hasn't be tested. We don't have plan to support DVI-D HDMI adapter source at the moment. If you want to request this feature, please work with your FAE, so he can pass on feedback to our marketing team.


Florent
Product Application Engineer - Xilinx Technical Support EMEA
**~ Don't forget to reply, give kudos, and accept as solution.~**
0 Kudos
Reply
badFITimage
Explorer
Explorer
1,166 Views
Registered: ‎09-06-2019

hi @florentw and @watari ,

Do DVI-D sources produce a free running clock? As in if only the CLK, DATA0, DATA1, DATA2 channels are routed to the Zynq US+?

We have a video test pattern generator as after probing the clock we dont see a clock at all.

***Edit: After some hardware modifications to our board I was able to detect some activity on the link:

$ cat /sys/devices/platform/amba_pl@0/a0000000.v_hdmi_rx_ss/hdmi_info

Rx Info
--------
Mode: DVI
Status: No input stream detected

Link quality
------------
Link quality channel 0 : bad (65535)
Link quality channel 1 : bad (65535)
Link quality channel 2 : average (3528)

$ cat /sys/devices/platform/amba_pl@0/a0000000.v_hdmi_rx_ss/hdmi_log

 

HDMI RX log
------
RX cable is connected....
RX TMDS reference clock change
RX Stream Init
RX Stream Start

$ cat /sys/devices/platform/amba_pl@0/a0000000.v_hdmi_rx_ss/vphy_in
fo
RX: CPLL
RX state: idle

CPLL settings
-------------
M : 1 - N1 : 5 - N2 : 8 - D : 8

RX MMCM settings
-------------
Mult : 16 - Div : 1 - Clk0Div : 32 - Clk1Div : 16 - Clk2Div : 32

Rx Ref Clk: 89964544 Hz
DRU Ref Clk: 1 Hz


$ cat /sys/devices/platform/amba_pl@0/a0000000.v_hdmi_rx_ss/vphy_log

VPHY log
------
RX frequency event
RX timer event
RX DRU disable
CPLL reconfig done
GT RX reconfig start
GT RX reconfig done
CPLL lock
RX reset done
RX MMCM reconfig done
RX MMCM lock

It seems like the link quality of all three channels isn't great but does that lead to 'Status: No input stream detected'? Or is that status based on other issues as well? Is it possible something outside the link quality is still an issue? I want to ensure that the link quality is the root issue leading to the lack of detection.

Thanks!

0 Kudos
Reply
watari
Teacher
Teacher
1,114 Views
Registered: ‎06-16-2013

Hi @badFITimage 

 

Would you share the result when source device output 720p ?

 

Best regards,

0 Kudos
Reply
badFITimage
Explorer
Explorer
1,074 Views
Registered: ‎09-06-2019

Hi @watari ,

Here are the results from switching the source to 720P. There are some additional prints that were added to the driver for debug. The output looks promising:

 

[   20.835047] RxConnectCallback(): cable is connected.
[   20.883427] VphyHdmiRxInitCallback()
[   20.897180] VphyHdmiRxReadyCallback()
[   22.707436] RxStreamInitCallback
[   22.953314] RxStreamUpCallback() - stream is up.
[   22.957927] xhdmi->detected_format.colorspace = V4L2_COLORSPACE_SRGB
[   22.964268] XVIDC_CSF_RGB -> MEDIA_BUS_FMT_RBG888_1X24
[   22.969399] HdmiRxSsPtr->HdmiRxPtr->Stream.PixelClk = 74240000
[   23.369299] random: fast init done

# cat /sys/devices/platform/amba_pl@0/a0000000.v_hdmi_rx_ss/hdmi_info

  Stream Info
 -------------
        Color Format:     RGB
        Color Depth:      8
        Pixels Per Clock: 2
        Mode:             Progressive
        Frame Rate:       60Hz
        Resolution:       1280x720 [Custom Mode]
        Pixel Clock:      74250000

  Stream Timing
 ----------------

        HSYNC Timing: hav=1280, hfp=80, hsw=40(hsp=1), hbp=250, htot=1650
        VSYNC Timing: vav=0720, vfp=06, vsw=04(vsp=1), vbp=020, vtot=0750


Rx Info
--------
Mode: DVI
VIC : 0
Scrambled: 0

Audio
------
Format   : Unknown
Channels : 2
ACR CTS  : 0
ACR N    : 0

Link quality
------------
Link quality channel 0 : excellent (0)
Link quality channel 1 : excellent (0)
Link quality channel 2 : excellent (0)

# cat /sys/devices/platform/amba_pl@0/a0000000.v_hdmi_rx_ss/hdmi_lg
HDMI RX log ------ Initializing HDMI RX core.... Reset HDMI RX Subsystem.... RX cable is connected.... RX TMDS reference clock change RX Stream Init RX Stream Start RX Stream is Up # cat /sys/devices/platform/amba_pl@0/a0000000.v_hdmi_rx_ss/vphy_info RX: CPLL RX state: idle CPLL settings ------------- M : 1 - N1 : 5 - N2 : 8 - D : 8 RX MMCM settings ------------- Mult : 20 - Div : 1 - Clk0Div : 40 - Clk1Div : 20 - Clk2Div : 40 Rx Ref Clk: 74237952 Hz DRU Ref Clk: 1 Hz # cat /sys/devices/platform/amba_pl@0/a0000000.v_hdmi_rx_ss/vphy_log VPHY log ------ GT init start GT init done TX frequency event RX frequency event RX timer event RX DRU disable CPLL reconfig done GT RX reconfig start GT RX reconfig done CPLL lock RX reset done RX MMCM reconfig done RX MMCM lock

 

And here is the media graph:

 

# media-ctl -d /dev/media0 -p
Media controller API version 4.19.0

Media device information
----------------------
driver          xilinx-video
model     Xilinx Video Composite Device

hw revision     0x0
driver version  4.19.0

Device topology
- entity 1: vcap_hdmi output 0 (1 pad, 1 link)
        pad0: Sink
                <- "a0000000.v_hdmi_rx_ss":0 [ENABLED]

- entity 5: a0000000.v_hdmi_rx_ss (1 pad, 1 link)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev0
        pad0: Source
                [fmt:RBG888_1X24/1280x720 field:none colorspace:srgb]
                [dv.caps:BT.656/1120 min:0x0@25000000 max:4096x2160@297000000 stds:CEA-861,DMT,CVT,GTF caps:progressive,reduced-blanking,custom]
                [dv.detect:BT.656/1120 1280x720p60 (1650x750) stds:CEA-861 flags:CE-video]
                -> "vcap_hdmi output 0":0 [ENABLED]
				

 

Our design requires this interface to be compliant with a SXGA source with a resolution of 1280x1024. When changing the source format to XSGA@60 the DVI stream is no longer detected and the following was seen:

#cat /sys/devices/platform/amba_pl@0/a0000000.v_hdmi_rx_ss/hdmi_info

Rx Info
--------
Mode: DVI
Status: No input stream detected

Link quality
------------
Link quality channel 0 : bad (65535)
Link quality channel 1 : excellent (0)
Link quality channel 2 : excellent (0)
.v_hdmi_rx_ss/hdmi_log

# cat /sys/devices/platform/amba_pl@0/a0000000.v_hdmi_rx_ss/hdmi_log



HDMI RX log
------
RX Stream is Down
RX Stream is Down
RX TMDS reference clock change
RX Stream Init
RX Stream Start
RX cable is disconnected....
RX Stream is Down
RX Stream is Down
RX cable is connected....
RX TMDS reference clock change
RX Stream Init
RX Stream Start
RX cable is disconnected....
RX Stream is Down
RX Stream is Down
RX cable is connected....
RX TMDS reference clock change
RX Stream Init
RX Stream Start

# cat /sys/devices/platform/amba_pl@0/a0000000.v_hdmi_rx_ss/vphy_info
RX: CPLL
RX state: idle

CPLL settings
-------------
M : 1 - N1 : 5 - N2 : 4 - D : 4

RX MMCM settings
-------------
Mult : 14 - Div : 1 - Clk0Div : 28 - Clk1Div : 14 - Clk2Div : 28

Rx Ref Clk: 107980800 Hz
DRU Ref Clk: 1 Hz
# cat /sys/devices/platform/amba_pl@0/a0000000.v_hdmi_rx_ss/vphy_log



VPHY log
------
CPLL lost lock
RX frequency event
RX frequency event
RX timer event
RX DRU disable
CPLL reconfig done
GT RX reconfig start
GT RX reconfig done
CPLL lock
RX reset done
RX MMCM reconfig done
RX MMCM lock
RX frequency event
CPLL lost lock
RX frequency event
RX timer event
RX DRU disable
CPLL reconfig done
GT RX reconfig start
GT RX reconfig done
CPLL lock
RX reset done
RX MMCM reconfig done
RX MMCM lock
RX frequency event
CPLL lost lock
RX frequency event
RX timer event
RX DRU disable
CPLL reconfig done
GT RX reconfig start
GT RX reconfig done
CPLL lock
RX reset done
RX MMCM reconfig done
RX MMCM lock

What could the issue be with this mode? Is there a way to enable this mode? Is it missing from the EDID? I've been having difficulties with generating a proper EDID by hand.

 

Thanks! 

 

0 Kudos
Reply
badFITimage
Explorer
Explorer
1,051 Views
Registered: ‎09-06-2019

@watari,

UPDATE 03/26/2020: We were able to establish a link with our desired resolution using our DVI-D test source.

It seems like a signal integrity issue. We are able to link to 720p resolutions and successfully used gstreamer to capture and write the raw data to file. We were unfortunately able to only establish a SXGA (1280x1024) stream once after many mate/de-mates of the DVI connector. We were not able to reliably link again with that particular stream. When cycling through the various outputs slower video streams seem to lock more reliably. Here is the output below of our system when it caught the stream (once at 60Hz and once at 50Hz):

@60 Hz

# media-ctl -d /dev/media0 -p
Media controller API version 4.19.0

Media device information
--[ 4065.429131] xhdmi_open
[ 4065.437076] xhdmi_get_format
[ 4065.439949] __xhdmi_get_pad_format(): V4L2_SUBDEV_FORMAT_ACTIVE
[ 4065.445862] detected_format->width = 1280
[ 4065.449862] xhdmi_get_format, height = 1024
----------------------
driver          xilinx-video
model           Xilinx Video Composite Device
serial
bus info
hw revision     0x0
driver version  4.19.0

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

- entity 5: a0000000.v_hdmi_rx_ss (1 pad, 1 link)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev0
        pad0: Source
                [fmt:RBG888_1X24/1280x1024 field:none colorspace:srgb]
                [dv.caps:BT.656/1120 min:0x0@25000000 max:4096x2160@297000000 stds:CEA-861,DMT,CVT,GTF caps:progressive,reduced-blanking,custom]
                [dv.detect:BT.656/1120 1280x1024p60 (1688x1067) stds:CEA-861 flags:CE-video]
                -> "vcap_hdmi output 0":0 [ENABLED]

# cat /sys/devices/platform/amba_pl@0/a0000000.v_hdmi_rx_ss/hdmi_info

  Stream Info
 -------------
        Color Format:     RGB
        Color Depth:      8
        Pixels Per Clock: 2
        Mode:             Progressive
        Frame Rate:       60Hz
        Resolution:       1280x1024 [Custom Mode]
        Pixel Clock:      108065760

  Stream Timing
 ----------------

        HSYNC Timing: hav=1280, hfp=46, hsw=112(hsp=1), hbp=250, htot=1688
        VSYNC Timing: vav=1024, vfp=03, vsw=02(vsp=1), vbp=038, vtot=1067


Rx Info
--------
Mode: DVI
VIC : 0
Scrambled: 0

Audio
------
Format   : Unknown
Channels : 2
ACR CTS  : 0
ACR N    : 0


Link quality
------------
Link quality channel 0 : good (552)
Link quality channel 1 : good (891)
Link quality channel 2 : good (337)
# cat /sys/devices/platform/amba_pl@0/a0000000.v_hdmi_rx_ss/hdmi_log

HDMI RX log
------
RX TMDS reference clock change
RX Stream Init
RX Stream Start
RX Stream is Down
RX Stream is Down
RX TMDS reference clock change
RX Stream Init
RX Stream Start
RX Stream is Down
RX Stream is Down
RX TMDS reference clock change
RX Stream Init
RX Stream Start
RX cable is disconnected....
RX Stream is Down
RX Stream is Down
RX cable is connected....
RX TMDS reference clock change
RX Stream Init
RX Stream Start
RX Stream is Down
RX Stream is Down
RX TMDS reference clock change
RX Stream Init
RX Stream Start
RX Stream is Down
RX Stream is Down
RX TMDS reference clock change
RX Stream Init
RX Stream Start
RX Stream is Down
RX Stream is Down
RX TMDS reference clock change
RX Stream Init
RX Stream Start
RX Stream is Down
RX Stream is Down
RX Stream is Down
RX Stream is Down
RX TMDS reference clock change
RX Stream Init
RX Stream Start
RX Stream is Down
RX Stream is Down
RX TMDS reference clock change
RX Stream Init
RX Stream Start
RX Stream is Down
RX Stream is Down
RX TMDS reference clock change
RX Stream Init
RX Stream Start
RX Stream is Down
RX Stream is Down
RX TMDS reference clock change
RX Stream Init
RX Stream Start
RX Stream is Down
RX Stream is Down
RX TMDS reference clock change
RX Stream Init
RX Stream Start
RX Stream is Up
RX Stream is Up
cat /sys/devices/platform/amba_pl@0/a0000000.v_hdmi_rx_ss/vphy_in
fo
RX: CPLL
RX state: idle

CPLL settings
-------------
M : 1 - N1 : 5 - N2 : 4 - D : 4

RX MMCM settings
-------------
Mult : 14 - Div : 1 - Clk0Div : 28 - Clk1Div : 14 - Clk2Div : 28

Rx Ref Clk: 107980800 Hz
DRU Ref Clk: 1 Hz
# cat /sys/devices/platform/amba_pl@0/a0000000.v_hdmi_rx_ss/vphy_lo
g



VPHY log
------

@ 50 Hz

# [ 2027.913072] RxStreamDownCallback()
[ 2027.916474] RxStreamDownCallback()
[ 2027.969785] VphyHdmiRxInitCallback()
[ 2027.982453] VphyHdmiRxReadyCallback()
[ 2029.792904] RxStreamInitCallback
[ 2030.071329] RxStreamUpCallback() - stream is up.
[ 2030.075947] xhdmi->detected_format.colorspace = V4L2_COLORSPACE_SRGB
[ 2030.082289] XVIDC_CSF_RGB -> MEDIA_BUS_FMT_RBG888_1X24
[ 2030.087418] HdmiRxSsPtr->HdmiRxPtr->Stream.PixelClk = 89960000
# media-ctl -d /dev/media0 -p
Media controller API version 4.19.0

Media device information
--[ 2034.178976] xhdmi_open
[ 2034.186923] xhdmi_get_format
[ 2034.189798] __xhdmi_get_pad_format(): V4L2_SUBDEV_FORMAT_ACTIVE
[ 2034.195708] detected_format->width = 1280
[ 2034.199710] xhdmi_get_format, height = 1024
----------------------
driver          xilinx-video
model       [ 2034.204011] xhdmi_close
    Xilinx Video Composite Device
serial
bus info
hw revision     0x0
driver version  4.19.0

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

- entity 5: a0000000.v_hdmi_rx_ss (1 pad, 1 link)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev0
        pad0: Source
                [fmt:RBG888_1X24/1280x1024 field:none colorspace:srgb]
                [dv.caps:BT.656/1120 min:0x0@25000000 max:4096x2160@297000000 stds:CEA-861,DMT,CVT,GTF caps:progressive,reduced-blanking,custom]
                [dv.detect:BT.656/1120 1280x1024p50 (1688x1066) stds:CEA-861 flags:CE-video]

We are using this EDID:

0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x4C, 0x2D, 0x61, 0x01, 0x00, 0x00, 0x00, 0x00, 
0x14, 0x0E, 0x01, 0x03, 0x80, 0x22, 0x1B, 0x78, 0x2A, 0xEE, 0x91, 0xA3, 0x54, 0x4C, 0x99, 0x26, 
0x0F, 0x50, 0x54, 0xBF, 0xEF, 0x00, 0x81, 0x80, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x64, 0x19, 0x00, 0x40, 0x41, 0x00, 0x26, 0x30, 0x18, 0x88, 
0x36, 0x00, 0x52, 0x0E, 0x11, 0x00, 0x00, 0x18, 0x30, 0x2A, 0x00, 0x98, 0x51, 0x00, 0x2A, 0x40, 
0x30, 0x70, 0x13, 0x00, 0x52, 0x0E, 0x11, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0xFD, 0x00, 0x38, 
0x4B, 0x1E, 0x51, 0x0E, 0x00, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFC, 
0x00, 0x53, 0x79, 0x6E, 0x63, 0x4D, 0x61, 0x73, 0x74, 0x65, 0x72, 0x0A, 0x20, 0x20, 0x00, 0xFD

I am beginning to think it is my EDID is incorrect, I've been trying to hand edit the configuration to try to configure it for SXGA 1280x1024 without any success. Are you aware of any resources which would allow me to add this functionality to the EDID so I can test it?

I've been searching online for an EDID generator but it did not seem to work.

I used a binary posted here: https://github.com/armbian/firmware/blob/master/edid/1280x1024.bin (renamed to valid xilinx edid) and when it loaded it was unable to detect the SXGA source though it did recognize the clock (see log in post above)

0 Kudos
Reply
xud
Xilinx Employee
Xilinx Employee
897 Views
Registered: ‎08-02-2007

@badFITimage 

The link below shows you how to add your custom EDID support : 

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841884/Xilinx+V4L2+hdmirx+driver#XilinxV4L2hdmirxdriver-CustomEDIDSupport

As 1280x1024 can be reported in HDMI Rx hdmi_info, I think HDMI Rx can detect this resolution. As the link quality is only good, I think you need to have a close look at the guard band word in link data (the data between Video PHY and HDMI Rx), and see if the timing between two guard band words is correct. If not, our IP can't detect the correct CTL word at the right time, then the link quality is not excellent, even good status indicates errors.

Also EDID should contain two blocks, each block has 128 bytes, so 256 bytes in total. But in your edid, it only contains 128 bytes, which is half size. Can you check if you miss another half part of EDID?

0 Kudos
Reply
badFITimage
Explorer
Explorer
884 Views
Registered: ‎09-06-2019

@xud 

I don't have a particular binary file but I was able to pull the raw EDID hex values using an application I downloaded that retrieves the info from my monitor. I then took that data and patched it into the xilinx-hdmirxss driver. Using this EDID we were able to establish and detect the link (see previous post's media graph) so I believe the EDID is valid though it may not be in the format of the new 'extended' version of EDID formats. 

Could you expand a little more on the guard band and what exactly that is? In which way would I need to adjust it given our link quality?

0 Kudos
Reply
xud
Xilinx Employee
Xilinx Employee
880 Views
Registered: ‎08-02-2007

@badFITimage 

Leading guard band is defined in HDMI 1.4 protocol, which is used to start the active pixel period. It's 10-bits fixed value.

For TMDS data channel 0, the value is 0b1011001100

For TMDS data channel 1, the value is 0b0100110011

For TMDS data channel 2, the value is 0b1011001100

The data between Video PHY and HDMI Rx has 40bits, the pattern is not always on bit 9 to bit 0, it could be shifted. It's a bit tricky but it's possible to find valid pattern, and indicates the start of active video.

If the timing between two Leading Guard band is not correct, HDMI Rx will lose lock. It confirms the issue is not related to HDMI Rx Subsystem IP. You may need to find a way to improve the link quality. 

 

0 Kudos
Reply
badFITimage
Explorer
Explorer
867 Views
Registered: ‎09-06-2019

@xud 

Ok I see now. Thanks for the explanation!

If it is found that adjustments are required due to our link quality would you suggest simply using the subset converter IP to shift the data as needed?

We have also taken steps to hopefully improve our link quality on the next spin of the board which will hopefully help mitigate some of these issues. 

0 Kudos
Reply
xud
Xilinx Employee
Xilinx Employee
790 Views
Registered: ‎08-02-2007

@badFITimage 

 subset converter IP won't work, unless you are very familiar with the 3 channel link data format. If it turns out to be link quality problem, sometimes the CTL word could be corrupted, which may bring HDMI Rx lose lock as well.

You could add TMDS181 evaluation kit in front of your board, and see if it improves things. If it does, you can consider to use TMDS181 when you spin your board next time. 

0 Kudos
Reply