Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RPi5: Possible display driver bug #5731

Closed
JinShil opened this issue Nov 22, 2023 · 2 comments
Closed

RPi5: Possible display driver bug #5731

JinShil opened this issue Nov 22, 2023 · 2 comments

Comments

@JinShil
Copy link
Contributor

JinShil commented Nov 22, 2023

Describe the bug

We have a Pi 5 connected to a TFT display through a TFP401A HDMI->TTL RGB decoder. We also have an EEPROM connected to the HDMI I2C pins for read/writing an EDID for the display. This solution has been working well for us for several years using the CM3, CM3+, Pi3, CM4, CM4S, and Pi4 products from Jessie all the way to Bookworm.

For Bookworm, we use the following configuration:

dtoverlay=vc4-kms-v3d,noaudio
auto_initramfs=1
disable_fw_kms_setup=1

It works fine on the CM3+, CM4, CM4S, and P4, but not on the Pi5. For the Pi4 and the Pi5, the hardware, OS and configuration is identical.

Prior to updating the EDID EEPROM, when the Pi is booted, nothing is displayed on the screen at all. That is expected.

On the Pi5, after updating the EDID, the screen doesn't show the bootloader (probably due to raspberrypi/rpi-eeprom#479), but does show the kernel and init messages. This confirms that our EDID is probably fine. However, at about the time the desktop should appear, the screen goes blank and stays that way. See the following video:

20231122.111736.mp4

The lack of a bootloader display is a separate issue. This issue is about the screen going blank at about the time the desktop should appear.

Steps to reproduce the behaviour

See the video in the description of this report.

Device (s)

Raspberry Pi 5

System

I tried the latest stable firmware and kernel, but also tried with the most recent downloaded from rpi-update. The symptom is the same for both.

$ vcgencmd version
2023/10/18 18:30:17
Copyright (c) 2012 Broadcom
version c2da2ae7 (release) (embedded)

$ uname -a
Linux raspberrypi 6.1.63-v8-16k+ #1699 SMP PREEMPT Tue Nov 21 15:06:01 GMT 2023 aarch64 GNU/Linux

Logs

$edid-decode /sys/class/drm/card1-HDMI-A-1/edid
Block 0, Base EDID:
  EDID Structure Version & Revision: 1.4
  Vendor & Product Identification:
    Manufacturer: XXX
    Model: 1
    Serial Number: 1
    Model year: 2023
  Basic Display Parameters & Features:
    Digital display
    Color depth is undefined
    Digital interface is not defined
    Maximum image size: 15 cm x 10 cm
    Gamma: 1.00
    Supported color formats: RGB 4:4:4, YCrCb 4:4:4
    First detailed timing includes the native pixel format and preferred refresh rate
  Color Characteristics:
    Red  : 0.0000, 0.0000
    Green: 0.0000, 0.0000
    Blue : 0.0000, 0.0000
    White: 0.0000, 0.0000
  Established Timings I & II: none
  Standard Timings: none
  Detailed Timing Descriptors:
    DTD 1:   800x480    60.064935 Hz   5:3     31.534 kHz     33.300000 MHz (154 mm x 86 mm)
                 Hfront  210 Hsync  46 Hback    0 Hpol N
                 Vfront   22 Vsync  23 Vback    0 Vpol N
    Display Product Name: 'XXXXXX'
    Dummy Descriptor:
    Dummy Descriptor:
Checksum: 0x7a

dmesg shows nothing out of the ordinary. The only thing of I could find in the systemd journal was this:

Nov 22 11:08:29 raspberrypi (udev-worker)[333]: event1: Process '/usr/sbin/th-cmd --socket /var/run/thd.socket --passfd --udev' failed with exit code 1.
Nov 22 11:08:29 raspberrypi kernel: vc4-drm axi:gpu: [drm] fb0: vc4drmfb frame buffer device
Nov 22 11:08:29 raspberrypi (udev-worker)[355]: event2: Process '/usr/sbin/th-cmd --socket /var/run/thd.socket --passfd --udev' failed with exit code 1.
Nov 22 11:08:29 raspberrypi kernel: Console: switching to colour frame buffer device 100x30
Nov 22 11:08:29 raspberrypi (udev-worker)[343]: event0: Process '/usr/sbin/th-cmd --socket /var/run/thd.socket --passfd --udev' failed with exit code 1.
Nov 22 11:08:29 raspberrypi kernel: [drm] Initialized vc4 0.0.0 20140616 for axi:gpu on minor 1
Nov 22 11:08:29 raspberrypi kernel: vc4-drm axi:gpu: bound 107c411000.pixelvalve (ops vc4_crtc_ops [vc4])
Nov 22 11:08:29 raspberrypi kernel: vc4-drm axi:gpu: bound 107c410000.pixelvalve (ops vc4_crtc_ops [vc4])
Nov 22 11:08:29 raspberrypi kernel: vc4-drm axi:gpu: bound 107c501000.moplet (ops vc4_txp_ops [vc4])
Nov 22 11:08:29 raspberrypi kernel: vc4-drm axi:gpu: bound 107c500000.mop (ops vc4_txp_ops [vc4])
Nov 22 11:08:29 raspberrypi kernel: vc4-drm axi:gpu: bound 107c706400.hdmi (ops vc4_hdmi_ops [vc4])
Nov 22 11:08:29 raspberrypi kernel: vc4_hdmi 107c706400.hdmi: 'dmas' DT property is missing or empty, no HDMI audio
Nov 22 11:08:29 raspberrypi kernel: input: vc4-hdmi-1 as /devices/platform/soc/107c706400.hdmi/rc/rc1/input2
Nov 22 11:08:29 raspberrypi kernel: rc rc1: vc4-hdmi-1 as /devices/platform/soc/107c706400.hdmi/rc/rc1
Nov 22 11:08:29 raspberrypi kernel: Registered IR keymap rc-cec
Nov 22 11:08:29 raspberrypi kernel: vc4-drm axi:gpu: bound 107c701400.hdmi (ops vc4_hdmi_ops [vc4])
Nov 22 11:08:29 raspberrypi kernel: vc4_hdmi 107c701400.hdmi: 'dmas' DT property is missing or empty, no HDMI audio
Nov 22 11:08:29 raspberrypi kernel: input: vc4-hdmi-0 as /devices/platform/soc/107c701400.hdmi/rc/rc0/input1
Nov 22 11:08:29 raspberrypi kernel: rc rc0: vc4-hdmi-0 as /devices/platform/soc/107c701400.hdmi/rc/rc0
Nov 22 11:08:29 raspberrypi kernel: Registered IR keymap rc-cec
Nov 22 11:08:29 raspberrypi kernel: vc4-drm axi:gpu: bound 107c580000.hvs (ops vc4_hvs_ops [vc4])
Nov 22 11:08:29 raspberrypi systemd[1]: Reached target time-set.target - System Time Set.
Nov 22 11:08:29 raspberrypi systemd[1]: Started systemd-timesyncd.service - Network Time Synchronization.
Nov 22 11:08:29 raspberrypi kernel: Console: switching to colour dummy device 80x25
Nov 22 11:08:29 raspberrypi kernel: vc4-drm axi:gpu: bcm2712_iommu_of_xlate: MMU 1000005200.iommu

Additional context

No response

@6by9
Copy link
Contributor

6by9 commented Nov 22, 2023

Hback and Vback of 0 look very strange and would be my immediate place to look.
I'd need to have a think a to whether that even makes sense in HDMI terms as the sync signals are separate messages sent over the TMDS link, so that requires more than 0 time before it then starts sending the active pixel data.

@JinShil
Copy link
Contributor Author

JinShil commented Nov 23, 2023

Ah. Now that you point it out, I remember, several years ago, we had to change the EDID to that weird configuration to get it to work on the CM3 (Not sure if its still required). After correcting the EDID to match the LCD's datasheet the Pi 5 worked fine.

I'm guessing the problem may actually lie with the CM3~CM4, and we modified the EDID to accommodate their quirks. The Pi 5 appears to be the one works as it should with an EDID that matches the LCD's datasheet.

Thank you for taking the time to review this and offer your advise. Much appreciated!

@JinShil JinShil closed this as completed Nov 23, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants