milo246
Posts: 74
Joined: Mon Mar 01, 2021 1:43 pm

Rpi 4 with DRM and 7inch panel using kms driver

Mon Mar 01, 2021 2:11 pm

I'm trying to get the Raspberry Pi 4 to work with a custom DSI panel. I expect no troubles writing the panel driver, done that for other boards, but I cannot get the Raspberry Pi side of things to work.

For development I have a RPi4 board with the official 7inch DSI panel. I want to use that as a "known to work" starting point.

Using a 5.4 kernel and the "vc4-fkms-v3d" overlay, the display works fine, and I can run Qt5 applications directly on it through egl. With this setup however, the GPU detects the panel at boot so it won't ever support my custom one.

With that kernel I attempted to move to the "non firmware" overlay "vc4-kms-v3d". I adapted the 7inch panel overlay a bit, but could not get that to work, nothing probes at all, I added "printk" messages to the various drivers that should have been involved, but they never output anything then.

After reading loads of threads on this forum, I concluded that this would only work on the 5.10 kernel. So I built the 5.10 instead. This boots okay, there's a splash screen (with the firmware driver vc4-fkms-v3d) so the video output worked, but to my surprise, DRM does not work at all. Hence no egl and no Qt. The "/dev/dri" path does not get created by the kernel.

Hoping that only the "f" version was broken, I again added the following lines to config.txt:

ignore_lcd=1
dtoverlay=vc4-kms-v3d
dtoverlay=vc4-kms-dsi-7inch

Again, so success at all. Apparently the DRM system won't initialize whatever I try. I also added the printk statements that show that the vc4 driver doesn't even probe.

What did I miss?

milo246
Posts: 74
Joined: Mon Mar 01, 2021 1:43 pm

Re: Rpi 4 with DRM and 7inch panel using kms driver

Tue Mar 02, 2021 8:35 am

Update, found out that the firmware kms driver is broken in the 64-bit version only. With the 32-bit version of the 5.10 kernel, the fkms driver works again and DRM is active.

However, I still haven't gotten the 7inch panel to work with the non-firmware driver. Adding these lines to config.txt yields no screen output at all, and there's no error message in the kernel log that I can find.

ignore_lcd=1
dtoverlay=vc4-kms-v3d
dtoverlay=vc4-kms-dsi-7inch


Is there a way to get the GPU firmware to output something about its boot? I have a working serial uart that the kernel happily uses, but there's nothing on it while the GPU boots.

milo246
Posts: 74
Joined: Mon Mar 01, 2021 1:43 pm

Re: Rpi 4 with DRM and 7inch panel using kms driver

Tue Mar 02, 2021 10:56 am

Here's some output from the kernel with my added messages. Apparently the DSI and panel initialize okay and have found each other. However, no DRM device gets created, there's no screen output and the panel remains powered off it seems.

I highlighted the extra logging I added. Both drivers finalize their probe function successfully.

Code: Select all

[    1.213636] vc-mem: phys_addr:0x00000000 mem_base=0x3ec00000 mem_size:0x40000000(1024 MiB)
[    1.214535] gpiomem-bcm2835 fe200000.gpiomem: Initialised: Registers at 0xfe200000
[    1.216325] vc4_dsi fe700000.dsi: ML vc4_dsi_dev_probe <<<<<<
[    1.216356] vc4_dsi fe700000.dsi: ML vc4_dsi_dev_probe component_add->0 <<<<<
[    1.220622] ML rpi_touchscreen_init <<<<<
[    1.233555] brd: module loaded
[    1.245809] loop: module loaded
[    1.247509] Loading iSCSI transport class v2.0-870.
[    1.249993] libphy: Fixed MDIO Bus: probed
[    1.251647] bcmgenet fd580000.ethernet: GENET 5.0 EPHY: 0x0000
[    1.263167] libphy: bcmgenet MII bus: probed
[    1.353253] unimac-mdio unimac-mdio.-19: Broadcom UniMAC MDIO bus
[    1.354396] usbcore: registered new interface driver r8152
[    1.354462] usbcore: registered new interface driver lan78xx
[    1.354523] usbcore: registered new interface driver smsc95xx
[    1.356103] xhci_hcd 0000:01:00.0: enabling device (0140 -> 0142)
[    1.356262] xhci_hcd 0000:01:00.0: xHCI Host Controller
[    1.356297] xhci_hcd 0000:01:00.0: new USB bus registered, assigned bus number 1
[    1.359752] xhci_hcd 0000:01:00.0: hcc params 0x002841eb hci version 0x100 quirks 0x0000030000000890
[    1.361029] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10
[    1.361048] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.361065] usb usb1: Product: xHCI Host Controller
[    1.361081] usb usb1: Manufacturer: Linux 5.10.13-v7l xhci-hcd
[    1.361096] usb usb1: SerialNumber: 0000:01:00.0
[    1.361870] hub 1-0:1.0: USB hub found
[    1.361967] hub 1-0:1.0: 1 port detected
[    1.362734] xhci_hcd 0000:01:00.0: xHCI Host Controller
[    1.362761] xhci_hcd 0000:01:00.0: new USB bus registered, assigned bus number 2
[    1.362789] xhci_hcd 0000:01:00.0: Host supports USB 3.0 SuperSpeed
[    1.363350] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.10
[    1.363369] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.363386] usb usb2: Product: xHCI Host Controller
[    1.363402] usb usb2: Manufacturer: Linux 5.10.13-v7l xhci-hcd
[    1.363418] usb usb2: SerialNumber: 0000:01:00.0
[    1.364191] hub 2-0:1.0: USB hub found
[    1.364280] hub 2-0:1.0: 4 ports detected
[    1.366001] dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
[    1.366305] dwc_otg: FIQ enabled
[    1.366319] dwc_otg: NAK holdoff enabled
[    1.366334] dwc_otg: FIQ split-transaction FSM enabled
[    1.366351] Module dwc_common_port init
[    1.366771] usbcore: registered new interface driver uas
[    1.366866] usbcore: registered new interface driver usb-storage
[    1.367088] mousedev: PS/2 mouse device common for all mice
[    1.367106] i2c /dev entries driver
[    1.370901] bcm2835-wdt bcm2835-wdt: Broadcom BCM2835 watchdog timer
[    1.374549] sdhci: Secure Digital Host Controller Interface driver
[    1.374564] sdhci: Copyright(c) Pierre Ossman
[    1.375357] mmc-bcm2835 fe300000.mmcnr: could not get clk, deferring probe
[    1.376129] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.380662] ledtrig-cpu: registered to indicate activity on CPUs
[    1.380943] hid: raw HID events driver (C) Jiri Kosina
[    1.381089] usbcore: registered new interface driver usbhid
[    1.381103] usbhid: USB HID core driver
[    1.381412] ashmem: initialized
[    1.387724] Initializing XFRM netlink socket
[    1.387766] NET: Registered protocol family 17
[    1.387887] Key type dns_resolver registered
[    1.388002] Registering SWP/SWPB emulation handler
[    1.388170] registered taskstats version 1
[    1.388195] Loading compiled-in X.509 certificates
[    1.389107] Key type ._fscrypt registered
[    1.389122] Key type .fscrypt registered
[    1.389137] Key type fscrypt-provisioning registered
[    1.400142] uart-pl011 fe201000.serial: there is not valid maps for state default
[    1.400435] uart-pl011 fe201000.serial: cts_event_workaround enabled
[    1.400508] fe201000.serial: ttyAMA0 at MMIO 0xfe201000 (irq = 36, base_baud = 0) is a PL011 rev2
[    1.407554] bcm2835-aux-uart fe215040.serial: there is not valid maps for state default
[    1.408094] printk: console [ttyS0] disabled
[    1.408202] fe215040.serial: ttyS0 at MMIO 0xfe215040 (irq = 38, base_baud = 62500000) is a 16550
[    1.416173] printk: console [ttyS0] enabled
[    1.417133] bcm2835-power bcm2835-power: Broadcom BCM2835 power domains driver
[    1.419448] i2c i2c-11: Added multiplexed i2c bus 0
[b][    1.420030] rpi_touchscreen 10-0045: rpi_touchscreen_probe
[    1.420941] rpi_touchscreen 10-0045: Version: 0xc3
[    1.421519] ML rpi_touchscreen_dsi_probe <<<<
[    1.421535] rpi-ts-dsi fe700000.dsi.0: ML rpi_touchscreen_dsi_probe mipi_dsi_attach->0 <<<<<<

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 11621
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: Rpi 4 with DRM and 7inch panel using kms driver

Tue Mar 02, 2021 11:06 am

Firstly use 5.10. It is now considered the stable kernel, and is where all the work has been done on vc4-kms-v3d.

vc4-kms-v3d on Pi4 is still beta. There is a fair amount of work actively going on to bring in the missing features there.

DRM is fairly opaque for debugging. The whole device only binds when all configured devices are ready, so if say a regulator fails then the whole thing stalls with very little debug. Note the difference between probe (driver loads and registers) and bind (everything is ready).
The problem I've been observing on the Pi 7" DSI panel is largely down to the regulator/backlight on the display which is controlled via an Atmel microcontroller. Under some conditions it needs to clock stretch on the I2C which isn't supported by the Pi controller. No power to the panel or bridge chip means other things then fail.

Others have brought up 3rd party panels on the CM4 - see viewtopic.php?f=98&t=253912.

The GPU firmware has NOTHING to do with custom DSI panels with vc4-kms-v3d. Everything is under the control of the Linux kernel.
Generally the system will come up even if DRM fails, so you should be able to SSH in.


I'm not aware of vc4-fkms-v3d being broken on 64bit. I'll have to check it out and confirm.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 11621
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: Rpi 4 with DRM and 7inch panel using kms driver

Tue Mar 02, 2021 11:54 am

6by9 wrote:
Tue Mar 02, 2021 11:06 am
I'm not aware of vc4-fkms-v3d being broken on 64bit. I'll have to check it out and confirm.
Just compiled my 5.10.16 tree for arm64 and it's run up vc4-fkms-v3d just fine.
What symptoms do you get for it being broken? Total lockup? Crash? Booted but no display? Something else?
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

milo246
Posts: 74
Joined: Mon Mar 01, 2021 1:43 pm

Re: Rpi 4 with DRM and 7inch panel using kms driver

Tue Mar 02, 2021 1:02 pm

With the 64-bit kernel and the "fkms" driver, there is no DRM. Nothing registers a DRM interface, /dev/dsi is missing. There is a framebuffer though, so I do get output to the screen.

milo246
Posts: 74
Joined: Mon Mar 01, 2021 1:43 pm

Re: Rpi 4 with DRM and 7inch panel using kms driver

Tue Mar 02, 2021 1:04 pm

I'm using the kernel source from meta-raspberry:

git://github.com/raspberrypi/linux.git

I'm at:

commit 34263dc81a12862c66e2593bb26c09d5fd20f46d (HEAD -> rpi-5.10.y, tag: devtool-patched, tag: devtool-base, devtool)

milo246
Posts: 74
Joined: Mon Mar 01, 2021 1:43 pm

Re: Rpi 4 with DRM and 7inch panel using kms driver

Tue Mar 02, 2021 1:07 pm

DRM is fairly opaque for debugging. The whole device only binds when all configured devices are ready, so if say a regulator fails then the whole thing stalls with very little debug. Note the difference between probe (driver loads and registers) and bind (everything is ready).
What I see is that the drivers probe, but "bind" is never being called.

milo246
Posts: 74
Joined: Mon Mar 01, 2021 1:43 pm

Re: Rpi 4 with DRM and 7inch panel using kms driver

Tue Mar 02, 2021 1:19 pm

I have the impression that something is just "missing" but I cannot figure out what.

I started with the panel devicetree:
https://github.com/raspberrypi/linux/bl ... verlay.dts

Then looking at each "compatible" involved, I checked that I had the driver for that compiled into the kernel. Which explains why everything probes just fine, there are no errors.

milo246
Posts: 74
Joined: Mon Mar 01, 2021 1:43 pm

Re: Rpi 4 with DRM and 7inch panel using kms driver

Tue Mar 02, 2021 1:36 pm

Hmm, I noticed there was a "vc4-kms-v3d-pi4" as well. So I load that instead of "vc4-kms-v3d" and then there's a bit more life in the DRM parts.

Code: Select all

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 5.10.13-v7l (oe-user@oe-host) (arm-oe-linux-gnueabi-gcc (GCC) 10.2.0, GNU ld (GNU Binutils) 2.35.1) #1 SMP Tue Mar 2 10:05:37 UTC 1
[    0.000000] CPU: ARMv7 Processor [410fd083] revision 3 (ARMv7), cr=30c5383d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
[    0.000000] OF: fdt: Machine model: Raspberry Pi 4 Model B Rev 1.2
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] Reserved memory: created CMA memory pool at 0x000000001ec00000, size 256 MiB
[    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000000000-0x000000002fffffff]
[    0.000000]   Normal   empty
[    0.000000]   HighMem  [mem 0x0000000030000000-0x00000000fbffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x000000003b3fffff]
[    0.000000]   node   0: [mem 0x0000000040000000-0x00000000fbffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x00000000fbffffff]
[    0.000000] On node 0 totalpages: 1012736
[    0.000000]   DMA zone: 2304 pages used for memmap
[    0.000000]   DMA zone: 0 pages reserved
[    0.000000]   DMA zone: 196608 pages, LIFO batch:63
[    0.000000]   HighMem zone: 816128 pages, LIFO batch:63
[    0.000000] percpu: Embedded 20 pages/cpu s51020 r8192 d22708 u81920
[    0.000000] pcpu-alloc: s51020 r8192 d22708 u81920 alloc=20*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 1010432
[    0.000000] Kernel command line: coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1  smsc95xx.macaddr=DC:A6:32:A2:0t
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] software IO TLB: mapped [mem 0x0000000017cc0000-0x000000001bcc0000] (64MB)
[    0.000000] Memory: 3652884K/4050944K available (12288K kernel code, 1345K rwdata, 3536K rodata, 2048K init, 907K bss, 135916K reserved, 262144K cma-reserve)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] ftrace: allocating 35329 entries in 70 pages
[    0.000000] ftrace: allocated 70 pages with 3 groups
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000]  Rude variant of Tasks RCU enabled.
[    0.000000]  Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] irq_brcmstb_l2: registered L2 intc (/soc/interrupt-controller@7ef00040, parent irq: 25)
[    0.000000] irq_brcmstb_l2: registered L2 intc (/soc/interrupt-controller@7ef00100, parent irq: 26)
[    0.000000] random: get_random_bytes called from start_kernel+0x3c4/0x5a8 with crng_init=0
[    0.000008] sched_clock: 32 bits at 1000kHz, resolution 1000ns, wraps every 2147483647500ns
[    0.000026] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275 ns
[    0.000080] bcm2835: system timer (irq = 27)
[    0.000671] arch_timer: cp15 timer(s) running at 54.00MHz (phys).
[    0.000688] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0xc743ce346, max_idle_ns: 440795203123 ns
[    0.000706] sched_clock: 56 bits at 54MHz, resolution 18ns, wraps every 4398046511102ns
[    0.000720] Switching to timer-based delay loop, resolution 18ns
[    0.000925] Calibrating delay loop (skipped), value calculated using timer frequency.. 108.00 BogoMIPS (lpj=540000)
[    0.000957] pid_max: default: 32768 minimum: 301
[    0.001127] LSM: Security Framework initializing
[    0.001310] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.001334] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.002879] Disabling memory control group subsystem
[    0.002994] CPU: Testing write buffer coherency: ok
[    0.003427] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.004592] Setting up static identity map for 0x200000 - 0x200060
[    0.004786] rcu: Hierarchical SRCU implementation.
[    0.005688] smp: Bringing up secondary CPUs ...
[    0.006846] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.008225] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002
[    0.009550] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003
[    0.009783] smp: Brought up 1 node, 4 CPUs
[    0.009803] SMP: Total of 4 processors activated (432.00 BogoMIPS).
[    0.009817] CPU: All CPU(s) started in HYP mode.
[    0.009831] CPU: Virtualization extensions available.
[    0.010663] devtmpfs: initialized
[    0.024430] VFP support v0.3: implementor 41 architecture 3 part 40 variant 8 rev 0
[    0.024822] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.024851] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.031389] pinctrl core: initialized pinctrl subsystem
[    0.032414] NET: Registered protocol family 16
[    0.035840] DMA: preallocated 1024 KiB pool for atomic coherent allocations
[    0.036648] audit: initializing netlink subsys (disabled)
[    0.036892] audit: type=2000 audit(0.030:1): state=initialized audit_enabled=0 res=1
[    0.037425] thermal_sys: Registered thermal governor 'step_wise'
[    0.037876] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.037893] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.038241] Serial: AMBA PL011 UART driver
[    0.085622] bcm2835-mbox fe00b880.mailbox: mailbox enabled
[    0.100798] raspberrypi-firmware soc:firmware: Attached to firmware from 2021-01-27T22:19:57, variant start
[    0.110811] raspberrypi-firmware soc:firmware: Firmware hash is 99d9a48302e4553cff3688692bb7e9ac760a03fa
[    0.155930] bcm2835-dma fe007000.dma: DMA legacy API manager, dmachans=0x1
[    0.160278] vgaarb: loaded
[    0.160736] SCSI subsystem initialized
[    0.161275] usbcore: registered new interface driver usbfs
[    0.161334] usbcore: registered new interface driver hub
[    0.161405] usbcore: registered new device driver usb
[    0.161812] usb_phy_generic phy: supply vcc not found, using dummy regulator
[    0.162864] Advanced Linux Sound Architecture Driver Initialized.
[    0.163858] clocksource: Switched to clocksource arch_sys_counter
[    1.139055] FS-Cache: Loaded
[    1.139264] CacheFiles: Loaded
[    1.141045] NET: Registered protocol family 2
[    1.142101] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[    1.142142] TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    1.142206] TCP bind hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    1.142272] TCP: Hash tables configured (established 8192 bind 8192)
[    1.142411] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[    1.142446] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
[    1.142805] NET: Registered protocol family 1
[    1.143532] RPC: Registered named UNIX socket transport module.
[    1.143548] RPC: Registered udp transport module.
[    1.143562] RPC: Registered tcp transport module.
[    1.143576] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    1.143598] PCI: CLS 0 bytes, default 64
[    1.146939] Initialise system trusted keyrings
[    1.147186] workingset: timestamp_bits=14 max_order=20 bucket_order=6
[    1.155291] zbud: loaded
[    1.157009] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    1.157310] FS-Cache: Netfs 'nfs' registered for caching
[    1.158070] NFS: Registering the id_resolver key type
[    1.158119] Key type id_resolver registered
[    1.158134] Key type id_legacy registered
[    1.158288] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    1.158766] Key type asymmetric registered
[    1.158782] Asymmetric key parser 'x509' registered
[    1.158971] bounce: pool size: 64 pages
[    1.159038] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248)
[    1.159240] io scheduler mq-deadline registered
[    1.159256] io scheduler kyber registered
[    1.163772] brcm-pcie fd500000.pcie: host bridge /scb/pcie@7d500000 ranges:
[    1.163803] brcm-pcie fd500000.pcie:   No bus range found for /scb/pcie@7d500000, using [bus 00-ff]
[    1.163936] brcm-pcie fd500000.pcie:      MEM 0x0600000000..0x063fffffff -> 0x00c0000000
[    1.164084] brcm-pcie fd500000.pcie:   IB MEM 0x0000000000..0x00bfffffff -> 0x0400000000
[    1.225961] brcm-pcie fd500000.pcie: link up, 5.0 GT/s PCIe x1 (SSC)
[    1.226341] brcm-pcie fd500000.pcie: PCI host bridge to bus 0000:00
[    1.226361] pci_bus 0000:00: root bus resource [bus 00-ff]
[    1.226385] pci_bus 0000:00: root bus resource [mem 0x600000000-0x63fffffff] (bus address [0xc0000000-0xffffffff])
[    1.226485] pci 0000:00:00.0: [14e4:2711] type 01 class 0x060400
[    1.226733] pci 0000:00:00.0: PME# supported from D0 D3hot
[    1.229916] PCI: bus0: Fast back to back transfers disabled
[    1.230266] pci 0000:01:00.0: [1106:3483] type 00 class 0x0c0330
[    1.230390] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x00000fff 64bit]
[    1.230857] pci 0000:01:00.0: PME# supported from D0 D3cold
[    1.234052] PCI: bus1: Fast back to back transfers disabled
[    1.234146] pci 0000:00:00.0: BAR 8: assigned [mem 0x600000000-0x6000fffff]
[    1.234170] pci 0000:01:00.0: BAR 0: assigned [mem 0x600000000-0x600000fff 64bit]
[    1.234251] pci 0000:00:00.0: PCI bridge to [bus 01]
[    1.234276] pci 0000:00:00.0:   bridge window [mem 0x600000000-0x6000fffff]
[    1.234683] pcieport 0000:00:00.0: enabling device (0140 -> 0142)
[    1.234913] pcieport 0000:00:00.0: PME: Signaling with IRQ 85
[    1.241888] Serial: 8250/16550 driver, 1 ports, IRQ sharing enabled
[    1.242892] bcm2835-aux-uart fe215040.serial: there is not valid maps for state default
[    1.245240] iproc-rng200 fe104000.rng: hwrng registered
[    1.245596] vc-mem: phys_addr:0x00000000 mem_base=0x3ec00000 mem_size:0x40000000(1024 MiB)
[    1.246537] gpiomem-bcm2835 fe200000.gpiomem: Initialised: Registers at 0xfe200000
[    1.247768] vc4_hdmi fef00700.hdmi: adding component (ops vc4_hdmi_ops)
[    1.248347] vc4_hdmi fef05700.hdmi: adding component (ops vc4_hdmi_ops)
[    1.249969] vc4_dsi fe700000.dsi: ML vc4_dsi_dev_probe
[    1.250004] vc4_dsi fe700000.dsi: adding component (ops vc4_dsi_ops)
[    1.250022] vc4_dsi fe700000.dsi: ML vc4_dsi_dev_probe component_add->0
[    1.250887] vc4_hvs fe400000.hvs: adding component (ops vc4_hvs_ops)
[    1.251557] vc4_txp fe004000.txp: adding component (ops vc4_txp_ops)
[    1.252292] vc4_crtc fe206000.pixelvalve: adding component (ops vc4_crtc_ops)
[    1.252542] vc4_crtc fe207000.pixelvalve: adding component (ops vc4_crtc_ops)
[    1.252789] vc4_crtc fe20a000.pixelvalve: adding component (ops vc4_crtc_ops)
[    1.253034] vc4_crtc fe216000.pixelvalve: adding component (ops vc4_crtc_ops)
[    1.253278] vc4_crtc fec12000.pixelvalve: adding component (ops vc4_crtc_ops)
[    1.258008] vc4-drm gpu: trying to bring up master
[    1.258025] vc4-drm gpu: Looking for component 0
[    1.258042] vc4-drm gpu: found component fef00700.hdmi, duplicate 0
[    1.258058] vc4-drm gpu: Looking for component 1
[    1.258074] vc4-drm gpu: found component fef05700.hdmi, duplicate 0
[    1.258089] vc4-drm gpu: Looking for component 2
[    1.258105] vc4-drm gpu: found component fe700000.dsi, duplicate 0
[    1.258120] vc4-drm gpu: Looking for component 3
[    1.258136] vc4-drm gpu: found component fe400000.hvs, duplicate 0
[    1.258151] vc4-drm gpu: Looking for component 4
[    1.258167] vc4-drm gpu: found component fe004000.txp, duplicate 0
[    1.258182] vc4-drm gpu: Looking for component 5
[    1.258198] vc4-drm gpu: found component fe206000.pixelvalve, duplicate 0
[    1.258213] vc4-drm gpu: Looking for component 6
[    1.258229] vc4-drm gpu: found component fe207000.pixelvalve, duplicate 0
[    1.258244] vc4-drm gpu: Looking for component 7
[    1.258260] vc4-drm gpu: found component fe20a000.pixelvalve, duplicate 0
[    1.258275] vc4-drm gpu: Looking for component 8
[    1.258291] vc4-drm gpu: found component fe216000.pixelvalve, duplicate 0
[    1.258306] vc4-drm gpu: Looking for component 9
[    1.258322] vc4-drm gpu: found component fec12000.pixelvalve, duplicate 0
[    1.259209] vc4-drm gpu: binding fef00700.hdmi (ops vc4_hdmi_ops)
[    1.262287] ML rpi_touchscreen_init
[    1.275385] brd: module loaded
[    1.287671] loop: module loaded
[    1.289460] Loading iSCSI transport class v2.0-870.
[    1.291905] libphy: Fixed MDIO Bus: probed
[    1.293759] bcmgenet fd580000.ethernet: GENET 5.0 EPHY: 0x0000
[    1.313886] libphy: bcmgenet MII bus: probed
[    1.394039] unimac-mdio unimac-mdio.-19: Broadcom UniMAC MDIO bus
[    1.395154] usbcore: registered new interface driver r8152
[    1.395223] usbcore: registered new interface driver lan78xx
[    1.395284] usbcore: registered new interface driver smsc95xx
[    1.396858] xhci_hcd 0000:01:00.0: enabling device (0140 -> 0142)
[    1.397017] xhci_hcd 0000:01:00.0: xHCI Host Controller
[    1.397052] xhci_hcd 0000:01:00.0: new USB bus registered, assigned bus number 1
[    1.400497] xhci_hcd 0000:01:00.0: hcc params 0x002841eb hci version 0x100 quirks 0x0000030000000890
[    1.401799] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10
[    1.401817] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.401834] usb usb1: Product: xHCI Host Controller
[    1.401850] usb usb1: Manufacturer: Linux 5.10.13-v7l xhci-hcd
[    1.401866] usb usb1: SerialNumber: 0000:01:00.0
[    1.402615] hub 1-0:1.0: USB hub found
[    1.402710] hub 1-0:1.0: 1 port detected
[    1.403492] xhci_hcd 0000:01:00.0: xHCI Host Controller
[    1.403518] xhci_hcd 0000:01:00.0: new USB bus registered, assigned bus number 2
[    1.403546] xhci_hcd 0000:01:00.0: Host supports USB 3.0 SuperSpeed
[    1.404118] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.10
[    1.404137] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.404153] usb usb2: Product: xHCI Host Controller
[    1.404169] usb usb2: Manufacturer: Linux 5.10.13-v7l xhci-hcd
[    1.404185] usb usb2: SerialNumber: 0000:01:00.0
[    1.404950] hub 2-0:1.0: USB hub found
[    1.405036] hub 2-0:1.0: 4 ports detected
[    1.406828] dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
[    1.407200] dwc_otg: FIQ enabled
[    1.407215] dwc_otg: NAK holdoff enabled
[    1.407229] dwc_otg: FIQ split-transaction FSM enabled
[    1.407246] Module dwc_common_port init
[    1.407667] usbcore: registered new interface driver uas
[    1.407761] usbcore: registered new interface driver usb-storage
[    1.407958] mousedev: PS/2 mouse device common for all mice
[    1.407975] i2c /dev entries driver
[    1.409897] brcmstb-i2c fef04500.i2c:  @97500hz registered in interrupt mode
[    1.410649] brcmstb-i2c fef09500.i2c:  @97500hz registered in interrupt mode
[    1.413780] bcm2835-wdt bcm2835-wdt: Broadcom BCM2835 watchdog timer
[    1.417700] sdhci: Secure Digital Host Controller Interface driver
[    1.417715] sdhci: Copyright(c) Pierre Ossman
[    1.418551] mmc-bcm2835 fe300000.mmcnr: could not get clk, deferring probe
[    1.419370] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.424128] ledtrig-cpu: registered to indicate activity on CPUs
[    1.424407] hid: raw HID events driver (C) Jiri Kosina
[    1.424565] usbcore: registered new interface driver usbhid
[    1.424579] usbhid: USB HID core driver
[    1.424901] ashmem: initialized
[    1.431254] Initializing XFRM netlink socket
[    1.431296] NET: Registered protocol family 17
[    1.431428] Key type dns_resolver registered
[    1.431536] Registering SWP/SWPB emulation handler
[    1.431736] registered taskstats version 1
[    1.431763] Loading compiled-in X.509 certificates
[    1.432672] Key type ._fscrypt registered
[    1.432688] Key type .fscrypt registered
[    1.432703] Key type fscrypt-provisioning registered
[    1.444019] uart-pl011 fe201000.serial: there is not valid maps for state default
[    1.444310] uart-pl011 fe201000.serial: cts_event_workaround enabled
[    1.444397] fe201000.serial: ttyAMA0 at MMIO 0xfe201000 (irq = 39, base_baud = 0) is a PL011 rev2
[    1.451411] bcm2835-aux-uart fe215040.serial: there is not valid maps for state default
[    1.451949] printk: console [ttyS0] disabled
[    1.452055] fe215040.serial: ttyS0 at MMIO 0xfe215040 (irq = 40, base_baud = 62500000) is a 16550
[    1.452236] printk: console [ttyS0] enabled
[    1.456802] vc4-drm gpu: trying to bring up master
[    1.456817] vc4-drm gpu: Looking for component 0
[    1.456832] vc4-drm gpu: found component fef00700.hdmi, duplicate 0
[    1.456846] vc4-drm gpu: Looking for component 1
[    1.456860] vc4-drm gpu: found component fef05700.hdmi, duplicate 0
[    1.456873] vc4-drm gpu: Looking for component 2
[    1.456886] vc4-drm gpu: found component fe700000.dsi, duplicate 0
[    1.456899] vc4-drm gpu: Looking for component 3
[    1.456913] vc4-drm gpu: found component fe400000.hvs, duplicate 0
[    1.456926] vc4-drm gpu: Looking for component 4
[    1.456939] vc4-drm gpu: found component fe004000.txp, duplicate 0
[    1.456952] vc4-drm gpu: Looking for component 5
[    1.456966] vc4-drm gpu: found component fe206000.pixelvalve, duplicate 0
[    1.456979] vc4-drm gpu: Looking for component 6
[    1.456993] vc4-drm gpu: found component fe207000.pixelvalve, duplicate 0
[    1.457007] vc4-drm gpu: Looking for component 7
[    1.457020] vc4-drm gpu: found component fe20a000.pixelvalve, duplicate 0
[    1.457033] vc4-drm gpu: Looking for component 8
[    1.457047] vc4-drm gpu: found component fe216000.pixelvalve, duplicate 0
[    1.457060] vc4-drm gpu: Looking for component 9
[    1.457074] vc4-drm gpu: found component fec12000.pixelvalve, duplicate 0
[    1.457855] vc4-drm gpu: binding fef00700.hdmi (ops vc4_hdmi_ops)
[    1.458818] Registered IR keymap rc-cec
[    1.458947] rc rc0: vc4 as /devices/platform/soc/fef00700.hdmi/rc/rc0
[    1.459120] input: vc4 as /devices/platform/soc/fef00700.hdmi/rc/rc0/input0
[    1.459740] debugfs: Directory 'fef00700.hdmi' with parent 'vc4-hdmi-0' already present!
[    1.469861] vc4-drm gpu: bound fef00700.hdmi (ops vc4_hdmi_ops)
[    1.469884] vc4-drm gpu: binding fef05700.hdmi (ops vc4_hdmi_ops)
[    1.470782] Registered IR keymap rc-cec
[    1.470911] rc rc1: vc4 as /devices/platform/soc/fef05700.hdmi/rc/rc1
[    1.471066] input: vc4 as /devices/platform/soc/fef05700.hdmi/rc/rc1/input1
[    1.471714] debugfs: Directory 'fef05700.hdmi' with parent 'vc4-hdmi-1' already present!
[    1.481023] vc4-drm gpu: bound fef05700.hdmi (ops vc4_hdmi_ops)
[    1.481047] vc4-drm gpu: binding fe700000.dsi (ops vc4_dsi_ops)
[    1.481062] vc4_dsi fe700000.dsi: ML vc4_dsi_bind
[    1.486760] bcm2835-power bcm2835-power: Broadcom BCM2835 power domains driver
[    1.487460] i2c-bcm2835 fe205000.i2c: Could not request IRQ
[    1.493301] clk_unregister: unregistering prepared clock: fe205000.i2c_div
[    1.493312] clk_unregister: unregistering protected clock: fe205000.i2c_div
[    1.494948] mmc-bcm2835 fe300000.mmcnr: mmc_debug:0 mmc_debug2:0
[    1.494961] mmc-bcm2835 fe300000.mmcnr: DMA channel allocated
[    1.534143] [drm] Initialized v3d 1.0.0 20180419 for fec00000.v3d on minor 0
[    1.540056] vc4-drm gpu: trying to bring up master
[    1.540070] vc4-drm gpu: Looking for component 0
[    1.540083] vc4-drm gpu: found component fef00700.hdmi, duplicate 0
[    1.540095] vc4-drm gpu: Looking for component 1
[    1.540107] vc4-drm gpu: found component fef05700.hdmi, duplicate 0
[    1.540119] vc4-drm gpu: Looking for component 2
[    1.540131] vc4-drm gpu: found component fe700000.dsi, duplicate 0
[    1.540143] vc4-drm gpu: Looking for component 3
[    1.540155] vc4-drm gpu: found component fe400000.hvs, duplicate 0
[    1.540166] vc4-drm gpu: Looking for component 4
[    1.540178] vc4-drm gpu: found component fe004000.txp, duplicate 0
[    1.540189] vc4-drm gpu: Looking for component 5
[    1.540201] vc4-drm gpu: found component fe206000.pixelvalve, duplicate 0
[    1.540213] vc4-drm gpu: Looking for component 6
[    1.540225] vc4-drm gpu: found component fe207000.pixelvalve, duplicate 0
[    1.540237] vc4-drm gpu: Looking for component 7
[    1.540248] vc4-drm gpu: found component fe20a000.pixelvalve, duplicate 0
[    1.540260] vc4-drm gpu: Looking for component 8
[    1.540272] vc4-drm gpu: found component fe216000.pixelvalve, duplicate 0
[    1.540284] vc4-drm gpu: Looking for component 9
[    1.540322] vc4-drm gpu: found component fec12000.pixelvalve, duplicate 0
[    1.541042] vc4-drm gpu: binding fef00700.hdmi (ops vc4_hdmi_ops)
[    1.541945] Registered IR keymap rc-cec
[    1.542060] rc rc0: vc4 as /devices/platform/soc/fef00700.hdmi/rc/rc0
[    1.542266] input: vc4 as /devices/platform/soc/fef00700.hdmi/rc/rc0/input2
[    1.542903] debugfs: Directory 'fef00700.hdmi' with parent 'vc4-hdmi-0' already present!
[    1.553896] vc4-drm gpu: bound fef00700.hdmi (ops vc4_hdmi_ops)
[    1.553916] vc4-drm gpu: binding fef05700.hdmi (ops vc4_hdmi_ops)
[    1.554657] Registered IR keymap rc-cec
[    1.554809] rc rc1: vc4 as /devices/platform/soc/fef05700.hdmi/rc/rc1
[    1.554934] input: vc4 as /devices/platform/soc/fef05700.hdmi/rc/rc1/input3
[    1.555560] debugfs: Directory 'fef05700.hdmi' with parent 'vc4-hdmi-1' already present!
[    1.563870] mmc0: SDHCI controller on fe340000.emmc2 [fe340000.emmc2] using ADMA
[    1.565504] vc4-drm gpu: bound fef05700.hdmi (ops vc4_hdmi_ops)
[    1.565523] vc4-drm gpu: binding fe700000.dsi (ops vc4_dsi_ops)
[    1.565535] vc4_dsi fe700000.dsi: ML vc4_dsi_bind
[    1.567695] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[    1.569291] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    1.571232] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    1.575120] vc4-drm gpu: trying to bring up master
[    1.575132] vc4-drm gpu: Looking for component 0
[    1.575144] vc4-drm gpu: found component fef00700.hdmi, duplicate 0
[    1.575154] vc4-drm gpu: Looking for component 1
[    1.575165] vc4-drm gpu: found component fef05700.hdmi, duplicate 0
[    1.575175] vc4-drm gpu: Looking for component 2
[    1.575186] vc4-drm gpu: found component fe700000.dsi, duplicate 0
[    1.575197] vc4-drm gpu: Looking for component 3
[    1.575207] vc4-drm gpu: found component fe400000.hvs, duplicate 0
[    1.575250] vc4-drm gpu: Looking for component 4
[    1.575261] vc4-drm gpu: found component fe004000.txp, duplicate 0
[    1.575271] vc4-drm gpu: Looking for component 5
[    1.575282] vc4-drm gpu: found component fe206000.pixelvalve, duplicate 0
[    1.575292] vc4-drm gpu: Looking for component 6
[    1.575303] vc4-drm gpu: found component fe207000.pixelvalve, duplicate 0
[    1.575314] vc4-drm gpu: Looking for component 7
[    1.575347] vc4-drm gpu: found component fe20a000.pixelvalve, duplicate 0
[    1.575357] vc4-drm gpu: Looking for component 8
[    1.575368] vc4-drm gpu: found component fe216000.pixelvalve, duplicate 0
[    1.575378] vc4-drm gpu: Looking for component 9
[    1.575389] vc4-drm gpu: found component fec12000.pixelvalve, duplicate 0
[    1.576033] vc4-drm gpu: binding fef00700.hdmi (ops vc4_hdmi_ops)
[    1.576498] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[    1.576979] Registered IR keymap rc-cec
[    1.577084] rc rc0: vc4 as /devices/platform/soc/fef00700.hdmi/rc/rc0
[    1.577267] input: vc4 as /devices/platform/soc/fef00700.hdmi/rc/rc0/input4
[    1.577777] debugfs: Directory 'fef00700.hdmi' with parent 'vc4-hdmi-0' already present!
[    1.587315] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    1.587908] vc4-drm gpu: bound fef00700.hdmi (ops vc4_hdmi_ops)
[    1.587928] vc4-drm gpu: binding fef05700.hdmi (ops vc4_hdmi_ops)
[    1.588695] Registered IR keymap rc-cec
[    1.588787] rc rc1: vc4 as /devices/platform/soc/fef05700.hdmi/rc/rc1
[    1.588910] input: vc4 as /devices/platform/soc/fef05700.hdmi/rc/rc1/input5
[    1.589498] debugfs: Directory 'fef05700.hdmi' with parent 'vc4-hdmi-1' already present!
[    1.598640] vc4-drm gpu: bound fef05700.hdmi (ops vc4_hdmi_ops)
[    1.598659] vc4-drm gpu: binding fe700000.dsi (ops vc4_dsi_ops)
[    1.598670] vc4_dsi fe700000.dsi: ML vc4_dsi_bind
[    1.612033] vc4-drm gpu: trying to bring up master
[    1.612046] vc4-drm gpu: Looking for component 0
[    1.612057] vc4-drm gpu: found component fef00700.hdmi, duplicate 0
[    1.612067] vc4-drm gpu: Looking for component 1
[    1.612076] vc4-drm gpu: found component fef05700.hdmi, duplicate 0
[    1.612086] vc4-drm gpu: Looking for component 2
[    1.612095] vc4-drm gpu: found component fe700000.dsi, duplicate 0
[    1.612105] vc4-drm gpu: Looking for component 3
[    1.612114] vc4-drm gpu: found component fe400000.hvs, duplicate 0
[    1.612123] vc4-drm gpu: Looking for component 4
[    1.612133] vc4-drm gpu: found component fe004000.txp, duplicate 0
[    1.612142] vc4-drm gpu: Looking for component 5
[    1.612152] vc4-drm gpu: found component fe206000.pixelvalve, duplicate 0
[    1.612161] vc4-drm gpu: Looking for component 6
[    1.612171] vc4-drm gpu: found component fe207000.pixelvalve, duplicate 0
[    1.612180] vc4-drm gpu: Looking for component 7
[    1.612190] vc4-drm gpu: found component fe20a000.pixelvalve, duplicate 0
[    1.612199] vc4-drm gpu: Looking for component 8
[    1.612209] vc4-drm gpu: found component fe216000.pixelvalve, duplicate 0
[    1.612218] vc4-drm gpu: Looking for component 9
[    1.612227] vc4-drm gpu: found component fec12000.pixelvalve, duplicate 0
[    1.612739] vc4-drm gpu: binding fef00700.hdmi (ops vc4_hdmi_ops)
[    1.613380] Registered IR keymap rc-cec
[    1.613483] rc rc0: vc4 as /devices/platform/soc/fef00700.hdmi/rc/rc0
[    1.613598] input: vc4 as /devices/platform/soc/fef00700.hdmi/rc/rc0/input6
[    1.614092] debugfs: Directory 'fef00700.hdmi' with parent 'vc4-hdmi-0' already present!
[    1.623925] vc4-drm gpu: bound fef00700.hdmi (ops vc4_hdmi_ops)
[    1.623942] vc4-drm gpu: binding fef05700.hdmi (ops vc4_hdmi_ops)
[    1.624500] Registered IR keymap rc-cec
[    1.624590] rc rc1: vc4 as /devices/platform/soc/fef05700.hdmi/rc/rc1
[    1.624710] input: vc4 as /devices/platform/soc/fef05700.hdmi/rc/rc1/input7
[    1.625116] debugfs: Directory 'fef05700.hdmi' with parent 'vc4-hdmi-1' already present!
[    1.630592] random: fast init done
[    1.634064] vc4-drm gpu: bound fef05700.hdmi (ops vc4_hdmi_ops)
[    1.634082] vc4-drm gpu: binding fe700000.dsi (ops vc4_dsi_ops)
[    1.634093] vc4_dsi fe700000.dsi: ML vc4_dsi_bind
[    1.640018] of_cfs_init
[    1.640091] of_cfs_init: OK
[    1.641305] ALSA device list:
[    1.641314]   No soundcards found.
[    1.641675] Waiting for root device /dev/mmcblk0p2...
[    1.675260] mmc0: new ultra high speed DDR50 SDHC card at address 5048
[    1.675896] mmcblk0: mmc0:5048 SD16G 14.4 GiB
[    1.677467]  mmcblk0: p1 p2
[    1.680894] vc4-drm gpu: trying to bring up master
[    1.680904] vc4-drm gpu: Looking for component 0
[    1.680913] vc4-drm gpu: found component fef00700.hdmi, duplicate 0
[    1.680921] vc4-drm gpu: Looking for component 1
[    1.680929] vc4-drm gpu: found component fef05700.hdmi, duplicate 0
[    1.680937] vc4-drm gpu: Looking for component 2
[    1.680945] vc4-drm gpu: found component fe700000.dsi, duplicate 0
[    1.680953] vc4-drm gpu: Looking for component 3
[    1.680961] vc4-drm gpu: found component fe400000.hvs, duplicate 0
[    1.680968] vc4-drm gpu: Looking for component 4
[    1.680977] vc4-drm gpu: found component fe004000.txp, duplicate 0
[    1.680984] vc4-drm gpu: Looking for component 5
[    1.680993] vc4-drm gpu: found component fe206000.pixelvalve, duplicate 0
[    1.681001] vc4-drm gpu: Looking for component 6
[    1.681009] vc4-drm gpu: found component fe207000.pixelvalve, duplicate 0
[    1.681016] vc4-drm gpu: Looking for component 7
[    1.681024] vc4-drm gpu: found component fe20a000.pixelvalve, duplicate 0
[    1.681032] vc4-drm gpu: Looking for component 8
[    1.681040] vc4-drm gpu: found component fe216000.pixelvalve, duplicate 0
[    1.681048] vc4-drm gpu: Looking for component 9
[    1.681056] vc4-drm gpu: found component fec12000.pixelvalve, duplicate 0
[    1.681526] vc4-drm gpu: binding fef00700.hdmi (ops vc4_hdmi_ops)
[    1.682134] Registered IR keymap rc-cec
[    1.682211] rc rc0: vc4 as /devices/platform/soc/fef00700.hdmi/rc/rc0
[    1.682357] input: vc4 as /devices/platform/soc/fef00700.hdmi/rc/rc0/input8
[    1.682767] debugfs: Directory 'fef00700.hdmi' with parent 'vc4-hdmi-0' already present!
[    1.692364] vc4-drm gpu: bound fef00700.hdmi (ops vc4_hdmi_ops)
[    1.692378] vc4-drm gpu: binding fef05700.hdmi (ops vc4_hdmi_ops)
[    1.692900] Registered IR keymap rc-cec
[    1.693023] rc rc1: vc4 as /devices/platform/soc/fef05700.hdmi/rc/rc1
[    1.693116] input: vc4 as /devices/platform/soc/fef05700.hdmi/rc/rc1/input9
[    1.693512] debugfs: Directory 'fef05700.hdmi' with parent 'vc4-hdmi-1' already present!
[    1.702846] vc4-drm gpu: bound fef05700.hdmi (ops vc4_hdmi_ops)
[    1.702861] vc4-drm gpu: binding fe700000.dsi (ops vc4_dsi_ops)
[    1.702870] vc4_dsi fe700000.dsi: ML vc4_dsi_bind
[    1.709552] mmc1: new high speed SDIO card at address 0001
[    1.728513] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    1.728548] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[    1.728988] devtmpfs: mounted
[    1.733321] Freeing unused kernel memory: 2048K
[    1.763868] usb 1-1: new high-speed USB device number 2 using xhci_hcd
[    1.794148] Run /sbin/init as init process
[    1.794154]   with arguments:
[    1.794161]     /sbin/init
[    1.794167]   with environment:
[    1.794173]     HOME=/
[    1.794180]     TERM=linux
[    1.946494] usb 1-1: New USB device found, idVendor=2109, idProduct=3431, bcdDevice= 4.21
[    1.946506] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[    1.946516] usb 1-1: Product: USB2.0 Hub
[    1.948276] hub 1-1:1.0: USB hub found
[    1.948528] hub 1-1:1.0: 4 ports detected
[    1.953779] systemd[1]: System time before build time, advancing clock.
[    1.959637] vc4-drm gpu: trying to bring up master
[    1.959648] vc4-drm gpu: Looking for component 0
[    1.959658] vc4-drm gpu: found component fef00700.hdmi, duplicate 0
[    1.959666] vc4-drm gpu: Looking for component 1
[    1.959675] vc4-drm gpu: found component fef05700.hdmi, duplicate 0
[    1.959684] vc4-drm gpu: Looking for component 2
[    1.959693] vc4-drm gpu: found component fe700000.dsi, duplicate 0
[    1.959701] vc4-drm gpu: Looking for component 3
[    1.959710] vc4-drm gpu: found component fe400000.hvs, duplicate 0
[    1.959719] vc4-drm gpu: Looking for component 4
[    1.959728] vc4-drm gpu: found component fe004000.txp, duplicate 0
[    1.959736] vc4-drm gpu: Looking for component 5
[    1.959745] vc4-drm gpu: found component fe206000.pixelvalve, duplicate 0
[    1.959753] vc4-drm gpu: Looking for component 6
[    1.959762] vc4-drm gpu: found component fe207000.pixelvalve, duplicate 0
[    1.959770] vc4-drm gpu: Looking for component 7
[    1.959779] vc4-drm gpu: found component fe20a000.pixelvalve, duplicate 0
[    1.959788] vc4-drm gpu: Looking for component 8
[    1.959796] vc4-drm gpu: found component fe216000.pixelvalve, duplicate 0
[    1.959805] vc4-drm gpu: Looking for component 9
[    1.959813] vc4-drm gpu: found component fec12000.pixelvalve, duplicate 0
[    1.960275] vc4-drm gpu: binding fef00700.hdmi (ops vc4_hdmi_ops)
[    1.960928] Registered IR keymap rc-cec
[    1.961027] rc rc0: vc4 as /devices/platform/soc/fef00700.hdmi/rc/rc0
[    1.961190] input: vc4 as /devices/platform/soc/fef00700.hdmi/rc/rc0/input10
[    1.961614] debugfs: Directory 'fef00700.hdmi' with parent 'vc4-hdmi-0' already present!
[    1.971326] vc4-drm gpu: bound fef00700.hdmi (ops vc4_hdmi_ops)
[    1.971342] vc4-drm gpu: binding fef05700.hdmi (ops vc4_hdmi_ops)
[    1.971947] Registered IR keymap rc-cec
[    1.972043] rc rc1: vc4 as /devices/platform/soc/fef05700.hdmi/rc/rc1
[    1.972186] input: vc4 as /devices/platform/soc/fef05700.hdmi/rc/rc1/input11
[    1.972604] debugfs: Directory 'fef05700.hdmi' with parent 'vc4-hdmi-1' already present!
[    1.982066] vc4-drm gpu: bound fef05700.hdmi (ops vc4_hdmi_ops)
[    1.982083] vc4-drm gpu: binding fe700000.dsi (ops vc4_dsi_ops)
[    1.982093] vc4_dsi fe700000.dsi: ML vc4_dsi_bind
That "vc4-drm gpu: Looking for component" keeps on coming back, so there's something missing still...

milo246
Posts: 74
Joined: Mon Mar 01, 2021 1:43 pm

Re: Rpi 4 with DRM and 7inch panel using kms driver

Tue Mar 02, 2021 1:47 pm

Difficult to spot, but there's a new error message in there:

i2c-bcm2835 fe205000.i2c: Could not request IRQ

So I guess the I2C controller isn't working now. This is the I2C controller the panel is attached to, so why did it suddenly lose its IRQ?

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 11621
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: Rpi 4 with DRM and 7inch panel using kms driver

Tue Mar 02, 2021 1:55 pm

milo246 wrote:
Tue Mar 02, 2021 1:47 pm
Difficult to spot, but there's a new error message in there:

i2c-bcm2835 fe205000.i2c: Could not request IRQ

So I guess the I2C controller isn't working now. This is the I2C controller the panel is attached to, so why did it suddenly lose its IRQ?
I'd assumed you were running top of tree, but you obviously aren't.

You're missing https://github.com/raspberrypi/linux/co ... 526d340e22 and https://github.com/raspberrypi/linux/co ... 3a8060cb0e
Upstream switched to trying to use the l2-intc block for handling the HDMI I2C controllers, but the interrupt is shared with the standard I2C controllers too. There's no way to share an interrupt between an interrupt controller and interrupt consumers. This is now reverted.
https://lists.freedesktop.org/archives/ ... 96997.html

vc4-kms-v3d-pi4 should be automatically chosen on a Pi4 when vc4-kms-v3d is requested. https://github.com/raspberrypi/linux/bl ... p.dts#L137 and documented in https://www.raspberrypi.org/documentati ... part2.2.10
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

milo246
Posts: 74
Joined: Mon Mar 01, 2021 1:43 pm

Re: Rpi 4 with DRM and 7inch panel using kms driver

Tue Mar 02, 2021 2:38 pm

Building the latest from the rpy-5.10-y branch now...

BTW, is there a way I can see some diagnostics from the firmware? For example if an overlay file is missing, currently that just gets silently ignored.

milo246
Posts: 74
Joined: Mon Mar 01, 2021 1:43 pm

Re: Rpi 4 with DRM and 7inch panel using kms driver

Tue Mar 02, 2021 3:15 pm

Now at git tag ec967eb45f8d4ed59bebafb5748da38118383be7

Ah, much better.... Now at least the DRM initalizes.

I saw the screen flash a bit, but it's not quite working yet. I get these messages now:

[ 6.313926] vc4_dsi fe700000.dsi: transfer interrupt wait timeout
[ 6.320127] vc4_dsi fe700000.dsi: instat: 0x00000000
[ 6.325219] [drm:vc4_dsi_host_transfer] *ERROR* DSI transfer failed, resetting: -110
[ 7.353892] vc4_dsi fe700000.dsi: transfer interrupt wait timeout
[ 7.360092] vc4_dsi fe700000.dsi: instat: 0x00000000
[ 7.365177] [drm:vc4_dsi_host_transfer] *ERROR* DSI transfer failed, resetting: -110

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 11621
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: Rpi 4 with DRM and 7inch panel using kms driver

Tue Mar 02, 2021 3:27 pm

milo246 wrote:
Tue Mar 02, 2021 2:38 pm
Building the latest from the rpy-5.10-y branch now...

BTW, is there a way I can see some diagnostics from the firmware? For example if an overlay file is missing, currently that just gets silently ignored.
I'll point you in the direction of https://www.raspberrypi.org/documentati ... e.md#part4
Device Trees, overlays, and parameters
Part 4: Troubleshooting and pro tips

4.1: Debugging
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

milo246
Posts: 74
Joined: Mon Mar 01, 2021 1:43 pm

Re: Rpi 4 with DRM and 7inch panel using kms driver

Tue Mar 02, 2021 3:47 pm

Any ideas about those " vc4_dsi fe700000.dsi: transfer interrupt wait timeout" errors?

There are quite a few hits on that, but as far as I can see, these concern much older kernel versions, and fixes have already been merged.

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 11621
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: Rpi 4 with DRM and 7inch panel using kms driver

Tue Mar 02, 2021 4:08 pm

milo246 wrote:
Tue Mar 02, 2021 3:47 pm
Any ideas about those " vc4_dsi fe700000.dsi: transfer interrupt wait timeout" errors?

There are quite a few hits on that, but as far as I can see, these concern much older kernel versions, and fixes have already been merged.
As in a number of the threads, the Pi 7" DSI panel under vc4-kms-v3d is still a slight work in progress.

The existing driver combines regulator, backlight, and bridge setup into one driver. This is the wrong approach, and fails when you come to attach the touchscreen control driver as it has no access to ensure the power is on before it tries probing, nor ensuring it isn't removed whilst it is wanting it.

There are updated drivers in mainline for the individual bridge chip, panel, and regulator/backlight, but my attempts to bring them all together have so far failed.

And please ensure your firmware is up to date too. There have been a couple of firmware side fixes to ensure it behaves itself. "vcgengmd version" will confirm your version - it should be from late Jan 2021 or after.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

milo246
Posts: 74
Joined: Mon Mar 01, 2021 1:43 pm

Re: Rpi 4 with DRM and 7inch panel using kms driver

Tue Mar 02, 2021 4:24 pm

Calling it a day for now.

I'll check/update the firmware tomorrow.

But do you expect there's a relation between the DSI errors and the touch/regulator/backlight stuff? (I'm not interested in the touch anyway)

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 11621
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: Rpi 4 with DRM and 7inch panel using kms driver

Tue Mar 02, 2021 5:06 pm

milo246 wrote:
Tue Mar 02, 2021 4:24 pm
But do you expect there's a relation between the DSI errors and the touch/regulator/backlight stuff? (I'm not interested in the touch anyway)
Yes. It tends to be that the DSI lines are being held in an invalid state due to the DSI receiver being powered down or similar, therefore the state machine in the transmitter waiting for the bus to be free times out.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

milo246
Posts: 74
Joined: Mon Mar 01, 2021 1:43 pm

Re: Rpi 4 with DRM and 7inch panel using kms driver

Wed Mar 03, 2021 7:21 am

Firmware version was 2021-02-05 I upgraded it to the latest dated feb-25.

So apparently the firmware was already new enough. If it wasn't, it should be now...

milo246
Posts: 74
Joined: Mon Mar 01, 2021 1:43 pm

Re: Rpi 4 with DRM and 7inch panel using kms driver

Wed Mar 03, 2021 10:31 am

Once every 10 cold boots or so, the display actually works. Looks like some race condition indeed. I still get these errors then:
[ 3.593825] vc4_dsi fe700000.dsi: transfer interrupt wait timeout
[ 3.593836] vc4_dsi fe700000.dsi: instat: 0x00000000
[ 3.593850] [drm:vc4_dsi_host_transfer] *ERROR* DSI transfer failed, resetting: -110
[ 4.633820] vc4_dsi fe700000.dsi: transfer interrupt wait timeout
[ 4.633827] vc4_dsi fe700000.dsi: instat: 0x00000000
[ 4.633839] [drm:vc4_dsi_host_transfer] *ERROR* DSI transfer failed, resetting: -110
[ 5.833841] vc4_dsi fe700000.dsi: transfer interrupt wait timeout
[ 5.833858] vc4_dsi fe700000.dsi: instat: 0x00000000
[ 5.833880] [drm:vc4_dsi_host_transfer] *ERROR* DSI transfer failed, resetting: -110

On warm boot the display never works, the panel always fails to probe then:
[ 1.504501] rpi_touchscreen 10-0045: Atmel I2C read failed: -5

Probably the Atmel is in some weird state and won't respond to I2C any longer.

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 11621
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: Rpi 4 with DRM and 7inch panel using kms driver

Wed Mar 03, 2021 6:57 pm

milo246 wrote:
Wed Mar 03, 2021 10:31 am
Once every 10 cold boots or so, the display actually works. Looks like some race condition indeed. I still get these errors then:
[ 3.593825] vc4_dsi fe700000.dsi: transfer interrupt wait timeout
[ 3.593836] vc4_dsi fe700000.dsi: instat: 0x00000000
[ 3.593850] [drm:vc4_dsi_host_transfer] *ERROR* DSI transfer failed, resetting: -110
[ 4.633820] vc4_dsi fe700000.dsi: transfer interrupt wait timeout
[ 4.633827] vc4_dsi fe700000.dsi: instat: 0x00000000
[ 4.633839] [drm:vc4_dsi_host_transfer] *ERROR* DSI transfer failed, resetting: -110
[ 5.833841] vc4_dsi fe700000.dsi: transfer interrupt wait timeout
[ 5.833858] vc4_dsi fe700000.dsi: instat: 0x00000000
[ 5.833880] [drm:vc4_dsi_host_transfer] *ERROR* DSI transfer failed, resetting: -110

On warm boot the display never works, the panel always fails to probe then:
[ 1.504501] rpi_touchscreen 10-0045: Atmel I2C read failed: -5

Probably the Atmel is in some weird state and won't respond to I2C any longer.
As I say, it's still a work in progress, and I'm not clear on what's going on. Hopefully I'll be back on it in a week or two.

The Atmel is a pain as it isn't quite as responsive as one would like, and it does seem to have some mechanism to lock up, sometimes even holding SDA low at the same time. I'm sure if we were designing it again we'd do things differently, but at the moment we have to try and work around it.
I have a feeling that on warm boot the probe which tries to drop the power for the LCD and force a reset hasn't really completed before the bind/enable comes along to turn it all on again. Proving and then fixing that is a different matter (big delays aren't a fix).
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

milo246
Posts: 74
Joined: Mon Mar 01, 2021 1:43 pm

Re: Rpi 4 with DRM and 7inch panel using kms driver

Thu Mar 04, 2021 4:32 pm

Microcontrollers as I2C slave is usually a recipe for trouble yeah. In general you're lucky if it works at all... And for reading data you'll usually need a two-step protocol, since the micro in general can't get the results back in time unless you can use some internal DMA controller to process it all...

If you ever get the chance of re-designing it, make it so that reading data takes an extra protocol step: Write the request (address), then read some status and wait for the controller to report "ready" and after that read back the actual result. Or just take the micro "away" from the bus, don't acknowledge the address until the answer is ready (like EEPROMs do, much more bus friendly than clock stretching, which is mostly a way to trigger bugs in many controllers).

milo246
Posts: 74
Joined: Mon Mar 01, 2021 1:43 pm

Re: Rpi 4 with DRM and 7inch panel using kms driver

Thu Mar 04, 2021 4:33 pm

But at least the DSI seems to work - I'm not interested in the official panel so I can now continue with the panel I actually want to use.

milo246
Posts: 74
Joined: Mon Mar 01, 2021 1:43 pm

Re: Rpi 4 with DRM and 7inch panel using kms driver

Tue Mar 16, 2021 12:56 pm

Testing with hardware now. The display comes up, but looks like crap. Apparently there's something amiss in the DSI link.

I'm digging in the kernel docs and code to see if there's some thing I need to configure. It isn't clear to me yet how the bridge and DSI communcate the settings for the DSI link.

Return to “Interfacing (DSI, CSI, I2C, etc.)”