RPi4 DSI interface
Describe the bug
I am needing help with a RPi4 on getting the DSI interface activated so I can use a (OSOYOO 5 Inch DSI Touch Sceen) I am using a (Raspberry Pi Compute Module 4, 1GB, 16GB - CM4001016) its attached to a (Waveshare Mini Base Board for Raspberry Pi Compute Module ( I have tried both 4CM4-IO-BASE-A and 4CM4-IO-BASE-B). I have tried the 32bit & 64 bitSystem: 32-bit Kernel version:5.15 Debian version: 11 (bullseye) desktop and lite version also tried the Raspberry Pi OS (Legacy). The screen dose not boot its stays black as its not connected, I tried the screen on a RPI3 B+ and it boots correctly but for some reason I can not figuare out how to activate the DSI on the RPi4
Steps to reproduce the behaviour
flashing, boot Pi without anything connected, once on network, shut down, connect DSI screen then reboot but the DSI screen never boots
Device (s)
Raspberry Pi CM4
System
Raspberry Pi OS with desktop
Release date: September 6th 2022
System: 64-bit
Kernel version: 5.15
Debian version: 11 (bullseye)
Logs
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 5.15.61-v7l+ (dom@buildbot) (arm-linux-gnueabihf-gcc-8 (Ubuntu/Linaro 8.4.0-3ubuntu1) 8.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #1579 SMP Fri Aug 26 11:13:03 BST 2022
[ 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 Compute Module 4 Rev 1.1
[ 0.000000] random: crng init done
[ 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-0x000000003b3fffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000000000000-0x000000003b3fffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000003b3fffff]
[ 0.000000] percpu: Embedded 16 pages/cpu s35788 r8192 d21556 u65536
[ 0.000000] pcpu-alloc: s35788 r8192 d21556 u65536 alloc=16*4096
[ 0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 240960
[ 0.000000] Kernel command line: coherent_pool=1M 8250.nr_uarts=0 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 smsc95xx.macaddr=E4:5F:01:C3:0E:5B vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000 console=ttyS0,115200 console=tty1 root=PARTUUID=694778cd-02 rootfstype=ext4 fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles
[ 0.000000] Unknown kernel command line parameters "splash", will be passed to user space.
[ 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] Memory: 679916K/970752K available (10240K kernel code, 1385K rwdata, 3304K rodata, 2048K init, 592K bss, 28692K reserved, 262144K cma-reserved, 184320K highmem)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[ 0.000000] ftrace: allocating 35501 entries in 105 pages
[ 0.000000] ftrace: allocated 105 pages with 4 groups
[ 0.000000] trace event string verifier disabled
[ 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@7ef00100, parent irq: 25)
[ 0.000000] arch_timer: cp15 timer(s) running at 54.00MHz (phys).
[ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0xc743ce346, max_idle_ns: 440795203123 ns
[ 0.000000] sched_clock: 56 bits at 54MHz, resolution 18ns, wraps every 4398046511102ns
[ 0.000019] Switching to timer-based delay loop, resolution 18ns
[ 0.000354] Console: colour dummy device 80x30
[ 0.000415] printk: console [tty1] enabled
[ 0.000478] Calibrating delay loop (skipped), value calculated using timer frequency.. 108.00 BogoMIPS (lpj=540000)
[ 0.000510] pid_max: default: 32768 minimum: 301
[ 0.000649] LSM: Security Framework initializing
[ 0.000851] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[ 0.000880] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[ 0.002407] cgroup: Disabling memory control group subsystem
[ 0.002642] CPU: Testing write buffer coherency: ok
[ 0.002703] CPU0: Spectre BHB: enabling loop workaround for all CPUs
[ 0.003140] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.004491] Setting up static identity map for 0x200000 - 0x20003c
[ 0.004694] rcu: Hierarchical SRCU implementation.
[ 0.005682] smp: Bringing up secondary CPUs ...
[ 0.006828] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[ 0.008126] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002
[ 0.009394] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003
[ 0.009564] smp: Brought up 1 node, 4 CPUs
[ 0.009586] SMP: Total of 4 processors activated (432.00 BogoMIPS).
[ 0.009605] CPU: All CPU(s) started in HYP mode.
[ 0.009618] CPU: Virtualization extensions available.
[ 0.010451] devtmpfs: initialized
[ 0.025458] VFP support v0.3: implementor 41 architecture 3 part 40 variant 8 rev 0
[ 0.025676] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.025708] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[ 0.033515] pinctrl core: initialized pinctrl subsystem
[ 0.034762] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[ 0.039221] DMA: preallocated 1024 KiB pool for atomic coherent allocations
[ 0.040065] audit: initializing netlink subsys (disabled)
[ 0.040327] audit: type=2000 audit(0.040:1): state=initialized audit_enabled=0 res=1
[ 0.040974] thermal_sys: Registered thermal governor 'step_wise'
[ 0.041756] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[ 0.041777] hw-breakpoint: maximum watchpoint size is 8 bytes.
[ 0.042160] Serial: AMBA PL011 UART driver
[ 0.055733] bcm2835-mbox fe00b880.mailbox: mailbox enabled
[ 0.090048] raspberrypi-firmware soc:firmware: Attached to firmware from 2022-08-26T14:03:16, variant start
[ 0.100064] raspberrypi-firmware soc:firmware: Firmware hash is 102f1e848393c2112206fadffaaf86db04e98326
[ 0.159689] Kprobes globally optimized
[ 0.165652] bcm2835-dma fe007000.dma: DMA legacy API manager, dmachans=0x1
[ 0.170694] vgaarb: loaded
[ 0.171177] SCSI subsystem initialized
[ 0.171412] usbcore: registered new interface driver usbfs
[ 0.171486] usbcore: registered new interface driver hub
[ 0.171558] usbcore: registered new device driver usb
[ 0.171952] usb_phy_generic phy: supply vcc not found, using dummy regulator
[ 0.172131] usb_phy_generic phy: dummy supplies not allowed for exclusive requests
[ 0.172460] pps_core: LinuxPPS API ver. 1 registered
[ 0.172475] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti [email protected]
[ 0.172503] PTP clock support registered
[ 0.174187] clocksource: Switched to clocksource arch_sys_counter
[ 0.254914] VFS: Disk quotas dquot_6.6.0
[ 0.255016] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 0.255197] FS-Cache: Loaded
[ 0.255397] CacheFiles: Loaded
[ 0.265842] NET: Registered PF_INET protocol family
[ 0.266089] IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear)
[ 0.267664] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[ 0.267697] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[ 0.267722] TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear)
[ 0.267787] TCP bind hash table entries: 8192 (order: 4, 65536 bytes, linear)
[ 0.267855] TCP: Hash tables configured (established 8192 bind 8192)
[ 0.268007] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[ 0.268045] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
[ 0.268296] NET: Registered PF_UNIX/PF_LOCAL protocol family
[ 0.275092] RPC: Registered named UNIX socket transport module.
[ 0.275109] RPC: Registered udp transport module.
[ 0.275123] RPC: Registered tcp transport module.
[ 0.275137] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.275159] PCI: CLS 0 bytes, default 64
[ 1.321898] hw perfevents: enabled with armv7_cortex_a7 PMU driver, 7 counters available
[ 1.324550] Initialise system trusted keyrings
[ 1.324839] workingset: timestamp_bits=14 max_order=18 bucket_order=4
[ 1.333828] zbud: loaded
[ 1.335788] FS-Cache: Netfs 'nfs' registered for caching
[ 1.336705] NFS: Registering the id_resolver key type
[ 1.336747] Key type id_resolver registered
[ 1.336762] Key type id_legacy registered
[ 1.336884] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[ 1.336900] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[ 1.338016] Key type asymmetric registered
[ 1.338033] Asymmetric key parser 'x509' registered
[ 1.338261] bounce: pool size: 64 pages
[ 1.338330] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
[ 1.338564] io scheduler mq-deadline registered
[ 1.338581] io scheduler kyber registered
[ 1.347423] gpio-507 (ant1): hogged as output/high
[ 1.348865] gpio-511 (ant2): hogged as output/low
[ 1.350524] brcm-pcie fd500000.pcie: host bridge /scb/pcie@7d500000 ranges:
[ 1.350563] brcm-pcie fd500000.pcie: No bus range found for /scb/pcie@7d500000, using [bus 00-ff]
[ 1.350657] brcm-pcie fd500000.pcie: MEM 0x0600000000..0x063fffffff -> 0x00c0000000
[ 1.350749] brcm-pcie fd500000.pcie: IB MEM 0x0000000000..0x003fffffff -> 0x0400000000
[ 1.944212] brcm-pcie fd500000.pcie: link down
[ 1.956781] iproc-rng200 fe104000.rng: hwrng registered
[ 1.957158] vc-mem: phys_addr:0x00000000 mem_base=0x3ec00000 mem_size:0x40000000(1024 MiB)
[ 1.958675] gpiomem-bcm2835 fe200000.gpiomem: Initialised: Registers at 0xfe200000
[ 1.971403] brd: module loaded
[ 1.981522] loop: module loaded
[ 1.982253] Loading iSCSI transport class v2.0-870.
[ 1.987500] bcmgenet fd580000.ethernet: GENET 5.0 EPHY: 0x0000
[ 2.084352] unimac-mdio unimac-mdio.-19: Broadcom UniMAC MDIO bus
[ 2.085592] usbcore: registered new interface driver r8152
[ 2.085664] usbcore: registered new interface driver lan78xx
[ 2.085734] usbcore: registered new interface driver smsc95xx
[ 2.111783] xhci-hcd fe9c0000.xhci: xHCI Host Controller
[ 2.111821] xhci-hcd fe9c0000.xhci: new USB bus registered, assigned bus number 1
[ 2.114300] xhci-hcd fe9c0000.xhci: hcc params 0x0220fe65 hci version 0x110 quirks 0x0000000000010010
[ 2.114394] xhci-hcd fe9c0000.xhci: irq 75, io mem 0xfe9c0000
[ 2.114687] xhci-hcd fe9c0000.xhci: xHCI Host Controller
[ 2.114714] xhci-hcd fe9c0000.xhci: new USB bus registered, assigned bus number 2
[ 2.114740] xhci-hcd fe9c0000.xhci: Host supports USB 3.0 SuperSpeed
[ 2.115107] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.15
[ 2.115131] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 2.115150] usb usb1: Product: xHCI Host Controller
[ 2.115168] usb usb1: Manufacturer: Linux 5.15.61-v7l+ xhci-hcd
[ 2.115184] usb usb1: SerialNumber: fe9c0000.xhci
[ 2.115848] hub 1-0:1.0: USB hub found
[ 2.115917] hub 1-0:1.0: 1 port detected
[ 2.116573] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[ 2.116861] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.15
[ 2.116883] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 2.116902] usb usb2: Product: xHCI Host Controller
[ 2.116918] usb usb2: Manufacturer: Linux 5.15.61-v7l+ xhci-hcd
[ 2.116934] usb usb2: SerialNumber: fe9c0000.xhci
[ 2.117572] hub 2-0:1.0: USB hub found
[ 2.117639] hub 2-0:1.0: config failed, hub doesn't have any ports! (err -19)
[ 2.118175] dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
[ 2.118569] dwc_otg: FIQ enabled
[ 2.118583] dwc_otg: NAK holdoff enabled
[ 2.118596] dwc_otg: FIQ split-transaction FSM enabled
[ 2.118614] Module dwc_common_port init
[ 2.119077] usbcore: registered new interface driver uas
[ 2.119188] usbcore: registered new interface driver usb-storage
[ 2.119373] mousedev: PS/2 mouse device common for all mice
[ 2.124569] sdhci: Secure Digital Host Controller Interface driver
[ 2.124585] sdhci: Copyright(c) Pierre Ossman
[ 2.125298] sdhci-pltfm: SDHCI platform and OF driver helper
[ 2.129277] ledtrig-cpu: registered to indicate activity on CPUs
[ 2.129565] hid: raw HID events driver (C) Jiri Kosina
[ 2.129733] usbcore: registered new interface driver usbhid
[ 2.129748] usbhid: USB HID core driver
[ 2.136085] Initializing XFRM netlink socket
[ 2.136128] NET: Registered PF_PACKET protocol family
[ 2.136245] Key type dns_resolver registered
[ 2.136712] Registering SWP/SWPB emulation handler
[ 2.137482] registered taskstats version 1
[ 2.137512] Loading compiled-in X.509 certificates
[ 2.138368] Key type ._fscrypt registered
[ 2.138385] Key type .fscrypt registered
[ 2.138399] Key type fscrypt-provisioning registered
[ 2.152570] uart-pl011 fe201000.serial: there is not valid maps for state default
[ 2.152897] uart-pl011 fe201000.serial: cts_event_workaround enabled
[ 2.153043] fe201000.serial: ttyAMA0 at MMIO 0xfe201000 (irq = 34, base_baud = 0) is a PL011 rev2
[ 2.162351] bcm2835-wdt bcm2835-wdt: Broadcom BCM2835 watchdog timer
[ 2.162834] bcm2835-power bcm2835-power: Broadcom BCM2835 power domains driver
[ 2.164110] mmc-bcm2835 fe300000.mmcnr: mmc_debug:0 mmc_debug2:0
[ 2.164131] mmc-bcm2835 fe300000.mmcnr: DMA channel allocated
[ 2.194615] of_cfs_init
[ 2.194845] of_cfs_init: OK
[ 2.230142] mmc0: SDHCI controller on fe340000.mmc [fe340000.mmc] using ADMA
[ 2.230462] Waiting for root device PARTUUID=694778cd-02...
[ 2.289826] mmc1: new high speed SDIO card at address 0001
[ 2.299515] mmc0: new DDR MMC card at address 0001
[ 2.300441] mmcblk0: mmc0:0001 AJTD4R 14.6 GiB
[ 2.303477] mmcblk0: p1 p2
[ 2.304034] mmcblk0: mmc0:0001 AJTD4R 14.6 GiB
[ 2.304613] mmcblk0boot0: mmc0:0001 AJTD4R 4.00 MiB
[ 2.307101] mmcblk0boot1: mmc0:0001 AJTD4R 4.00 MiB
[ 2.309267] mmcblk0rpmb: mmc0:0001 AJTD4R 4.00 MiB, chardev (242:0)
[ 2.318801] EXT4-fs (mmcblk0p2): INFO: recovery required on readonly filesystem
[ 2.318822] EXT4-fs (mmcblk0p2): write access will be enabled during recovery
[ 2.361681] EXT4-fs (mmcblk0p2): orphan cleanup on readonly fs
[ 2.365094] EXT4-fs (mmcblk0p2): 1 truncate cleaned up
[ 2.365122] EXT4-fs (mmcblk0p2): recovery complete
[ 2.368256] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
[ 2.368349] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[ 2.371747] devtmpfs: mounted
[ 2.382861] Freeing unused kernel image (initmem) memory: 2048K
[ 2.404246] usb 1-1: new high-speed USB device number 2 using xhci-hcd
[ 2.404650] Run /sbin/init as init process
[ 2.404673] with arguments:
[ 2.404686] /sbin/init
[ 2.404699] splash
[ 2.404712] with environment:
[ 2.404724] HOME=/
[ 2.404736] TERM=linux
[ 2.584647] usb 1-1: New USB device found, idVendor=1a40, idProduct=0101, bcdDevice= 1.11
[ 2.584680] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[ 2.584700] usb 1-1: Product: USB 2.0 Hub
[ 2.615354] systemd[1]: System time before build time, advancing clock.
[ 2.627079] hub 1-1:1.0: USB hub found
[ 2.627196] hub 1-1:1.0: 4 ports detected
[ 2.795994] NET: Registered PF_INET6 protocol family
[ 2.797642] Segment Routing with IPv6
[ 2.797687] In-situ OAM (IOAM) with IPv6
[ 2.858056] systemd[1]: systemd 247.3-7+rpi1 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +ZSTD +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=unified)
[ 2.858950] systemd[1]: Detected architecture arm.
[ 2.860325] systemd[1]: Set hostname to
No response
Additional context
No response
DSI is not a plug-and-play interface as it has no generic mechanism for probing attached devices. The Raspberry Pi DSI display has additional I2C connectivity to provide power control, backlight, and access to the touchscreen driver IC.
CM4 makes no assumptions about GPIO usage, therefore does not define any default connections for displays, cameras, or anything else. Documentation for configuring that with the legacy stack is at https://www.raspberrypi.com/documentation/computers/compute-module.html#attaching-the-official-7-inch-display.
With Bullseye and vc4-kms-v3d, the simplest step is to add the additional line dtoverlay=vc4-kms-dsi-7inch to config.txt to explicitly enable the display. This is all the firmware is doing if display_auto_detect=1 is set, and a display is found based on the fimware configuration.
Almost all the instructions in https://osoyoo.com/2019/09/20/instruction-for-raspberry-pi-5-dsi-touch-screen/#5.3 are out of date for Bullseye.
This documentation may help explain.
https://pip.raspberrypi.com/categories/685/documents/RP-003472-WP/RP-003472-WP-1.pdf
This documentation may help explain. https://pip.raspberrypi.com/categories/685/documents/RP-003472-WP/RP-003472-WP-1.pdf
The OSOYOO 5 Inch DSI Touch Sceen is a clone of the Pi 7" display, so getting into the detail of implementing drivers shouldn't be necessary in this case. It is a 3rd party panel, therefore Raspberry Pi offer no direct support for it. Should the cloning be less than perfect, it is not our problem to solve.