Hi,
I am having troubles getting LCD to work on kernel version 5.15 (which is default in Raspberry OS 64bit). Here is a dmesg log where errors in mipi_dsi
driver can be seen (the entire log is too long, so I’ve trimmed it to what I believe is relevant part is):
[ 4.567596] [drm] Initialized v3d 1.0.0 20180419 for fec00000.v3d on minor 0
[ 5.142594] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 5.237660] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[ 5.244980] cfg80211: loaded regulatory.db is malformed or signature is missing/invalid
[ 5.592936] random: crng init done
[ 5.592962] random: 7 urandom warning(s) missed due to ratelimiting
[ 5.699727] bq24179_charger: loading out-of-tree module taints kernel.
[ 5.729793] bq25790-charger 1-006b: battery info missing, default values will be applied
[ 5.730018] wm8960 1-001a: Failed to issue reset
[ 5.730103] bq25790-charger 1-006b: Cannot initialize the chip.
[ 5.730217] wm8960: probe of 1-001a failed with error -121
[ 5.734505] pcf857x: probe of 1-0021 failed with error -121
[ 5.748363] CAN device driver interface
[ 5.759998] brcmfmac: F1 signature read @0x18000000=0x15264345
[ 5.763575] lis3lv02d_i2c 1-0019: supply Vdd not found, using dummy regulator
[ 5.763979] lis3lv02d_i2c 1-0019: supply Vdd_IO not found, using dummy regulator
[ 5.764632] spi_master spi0: will run message pump with realtime priority
[ 5.776361] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6
[ 5.777162] brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.bin failed with error -2
[ 5.779501] usbcore: registered new interface driver brcmfmac
[ 5.780630] mcp230xx 1-0038: error -EREMOTEIO: can't write IOCON 56
[ 5.780823] mcp230xx: probe of 1-0038 failed with error -121
[ 5.781071] lis331dlh_i2c: 8 bits 3DC sensor found
[ 5.799323] mcp251xfd spi0.1 (unnamed net_device) (uninitialized): Failed to detect MCP251xFD (osc=0x00000000).
[ 5.805482] [DSI]i2c_md_init:
[ 5.805707] [DSI]i2c_md_probe:start
[ 5.807574] i2c_mipi_dsi 1-0045: I2C read id: 0xc3
[ 5.809668] [DSI]mipi_dsi_device:
[ 5.813569] pca953x 1-0038: supply vcc not found, using dummy regulator
[ 5.813977] bq25790-charger: probe of 1-006b failed with error -121
[ 5.814011] rtc-pcf8563 3-0051: registered as rtc0
[ 5.815898] rtc-pcf8563 3-0051: setting system clock to 2022-04-10T13:57:10 UTC (1649599030)
[ 5.819639] input: seeed-tp as /devices/platform/soc/fe804000.i2c/i2c-1/1-0045/input/input20
[ 5.856918] [DSI]i2c_md_probe:finished.
[ 5.865441] pca953x 1-0038: using no AI
[ 5.871172] [DSI]mipi_dsi_probe:
[ 5.873254] vc4-drm gpu: bound fe400000.hvs (ops vc4_hvs_ops [vc4])
[ 5.878547] Registered IR keymap rc-cec
[ 5.896323] input: gpio_keys as /devices/platform/gpio_keys/input/input21
[ 5.896402] rc rc0: vc4 as /devices/platform/soc/fef00700.hdmi/rc/rc0
[ 5.900477] input: vc4 as /devices/platform/soc/fef00700.hdmi/rc/rc0/input23
[ 5.910582] input: ST LIS3LV02DL Accelerometer as /devices/platform/lis3lv02d/input/input22
[ 6.020677] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6
[ 6.020836] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6
[ 6.030334] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4345/6 wl0: Nov 1 2021 00:37:25 version 7.45.241 (1a2f2fa CY) FWID 01-703fd60
[ 6.254299] mipi_dsi fe700000.dsi.0: failed to attach dsi to host: -517
[ 6.262292] [DSI]mipi_dsi_probe:
[ 6.264083] vc4-drm gpu: bound fe400000.hvs (ops vc4_hvs_ops [vc4])
[ 6.270982] Registered IR keymap rc-cec
[ 6.272177] rc rc0: vc4 as /devices/platform/soc/fef00700.hdmi/rc/rc0
[ 6.272436] input: vc4 as /devices/platform/soc/fef00700.hdmi/rc/rc0/input24
[ 6.417797] mipi_dsi fe700000.dsi.0: failed to attach dsi to host: -517
[ 6.441573] [DSI]mipi_dsi_probe:
[ 6.443382] vc4-drm gpu: bound fe400000.hvs (ops vc4_hvs_ops [vc4])
[ 6.470361] Registered IR keymap rc-cec
[ 6.480789] rc rc0: vc4 as /devices/platform/soc/fef00700.hdmi/rc/rc0
[ 6.495963] input: vc4 as /devices/platform/soc/fef00700.hdmi/rc/rc0/input25
[ 6.502842] vc4-drm gpu: bound fef00700.hdmi (ops vc4_hdmi_ops [vc4])
[ 6.518078] Registered IR keymap rc-cec
[ 6.518300] rc rc1: vc4 as /devices/platform/soc/fef05700.hdmi/rc/rc1
[ 6.519983] input: vc4 as /devices/platform/soc/fef05700.hdmi/rc/rc1/input26
[ 6.525900] vc4-drm gpu: bound fef05700.hdmi (ops vc4_hdmi_ops [vc4])
[ 6.527268] vc4-drm gpu: bound fe700000.dsi (ops vc4_dsi_ops [vc4])
[ 6.527652] vc4-drm gpu: bound fe004000.txp (ops vc4_txp_ops [vc4])
[ 6.527964] vc4-drm gpu: bound fe206000.pixelvalve (ops vc4_crtc_ops [vc4])
[ 6.528266] vc4-drm gpu: bound fe207000.pixelvalve (ops vc4_crtc_ops [vc4])
[ 6.528551] vc4-drm gpu: bound fe20a000.pixelvalve (ops vc4_crtc_ops [vc4])
[ 6.528803] vc4-drm gpu: bound fe216000.pixelvalve (ops vc4_crtc_ops [vc4])
[ 6.529284] vc4-drm gpu: bound fec12000.pixelvalve (ops vc4_crtc_ops [vc4])
[ 6.547665] [drm] Initialized vc4 0.0.0 20140616 for gpu on minor 1
[ 6.554842] [DSI]panel_prepare:
[ 6.616970] [DSI]ili9881d_prepare:
[ 7.644947] vc4_dsi fe700000.dsi: transfer interrupt wait timeout
[ 7.644974] vc4_dsi fe700000.dsi: instat: 0x00000000
[ 7.644989] [drm:vc4_dsi_host_transfer [vc4]] *ERROR* DSI transfer failed, resetting: -110
[ 7.645080] [DSI]ili9881d_prepare:No LCD connected,pls check your hardware!
[ 7.651197] [DSI]panel_enable:
[ 7.670321] Console: switching to colour frame buffer device 160x45
[ 7.692793] vc4-drm gpu: [drm] fb0: vc4drmfb frame buffer device
[ 7.884203] 8021q: 802.1Q VLAN Support v1.8
[ 7.912277] uart-pl011 fe201000.serial: no DMA platform data
[ 8.005226] Adding 102396k swap on /var/swap. Priority:-2 extents:1 across:102396k SSFS
[ 8.292650] bcmgenet fd580000.ethernet: configuring instance for external RGMII (RX delay)
[ 8.293189] bcmgenet fd580000.ethernet eth0: Link is Down
[ 12.381161] bcmgenet fd580000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
[ 12.381231] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 13.476641] ICMPv6: process `dhcpcd' is using deprecated sysctl (syscall) net.ipv6.neigh.eth0.retrans_time - use net.ipv6.neigh.eth0.retrans_time_ms instead
[ 14.596034] Bluetooth: Core ver 2.22
[ 14.596179] NET: Registered PF_BLUETOOTH protocol family
[ 14.596193] Bluetooth: HCI device and connection manager initialized
[ 14.596222] Bluetooth: HCI socket layer initialized
[ 14.596241] Bluetooth: L2CAP socket layer initialized
[ 14.596272] Bluetooth: SCO socket layer initialized
[ 14.604146] Bluetooth: HCI UART driver ver 2.3
[ 14.604182] Bluetooth: HCI UART protocol H4 registered
[ 14.604299] Bluetooth: HCI UART protocol Three-wire (H5) registered
[ 14.604729] Bluetooth: HCI UART protocol Broadcom registered
[ 14.832112] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 14.832132] Bluetooth: BNEP filters: protocol multicast
[ 14.832146] Bluetooth: BNEP socket layer initialized
[ 14.844532] NET: Registered PF_ALG protocol family
[ 33.756957] cam-dummy-reg: disabling
The one way I’ve found to work around the problem is to downgrade raspberrypi-kernel
and raspberrypi-kernel-headers
to version 1.20220308-2
(which likely still can be found in the Raspberry Pi archive and which brings kernel version v5.10). Downgrading and rebooting the reTerminal makes LCD to work. Upgrading them back to the latest version and reboot makes LCD to be black again. So far this is what’ve I’ve managed to narrow down the problem.
Even with the newer kernel and LCD black the i2cdetect -y 1
looks nominal to me:
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- UU -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- UU -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
40: -- -- -- -- -- UU -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
Surely, staying at an older kernel is good-enough workaround for the short term, but would be really nice to find a more sustainable solution. If anyone has suggestions or ideas of a solution or troubleshooting I’m really curios to know!
Addendum:
This is a clean install of Raspberry Os 64bit, with the drivers installed as per the instructions. The current overlays in the /boot/config.txt
is what the scripts/reTerminal.sh
configured them to.
[all]
enable_uart=1
dtoverlay=dwc2,dr_mode=host
dtparam=ant2
disable_splash=1
ignore_lcd=1
dtoverlay=vc4-kms-v3d-pi4
dtoverlay=i2c3,pins_4_5
gpio=13=pu
dtoverlay=reTerminal
dtoverlay=reTerminal-bridge