Hi.
I've a problem while switching from a FKMS based OS to one using KMS regarding the automatic detection of a video mode and I'm not sure why it worked in the FKMS version at all. Here's how the old OS behaves. From "vcdbg log msg":
It's a Pi4, so disable_fw_kms_setup should default to 0. Despite the firmware not (at least to my eyes) being able to read the EDID from the attached display, it forwards the following settings to the linux command line:
The same device running KMS, with disable_fw_kms_setup=1 set looks like this. Relevant vcdbg log msg:
So it's also not able to read the EDID, then doesn't pass any kernel command line as expected due to disable_fw_kms_setup=1. Later while setting up the display, iterating over all the modes attached to the connector, none of them is marked as "perferred" (I guess also expected), so auto selecting one isn't possible and my software just uses 1920x1080.
Now my question is: Where does the FKMS firmware get the 720x576M@50 mode from? Why does it select it to forward to the kernel? Is that some kind of fallback mechanism I'm not aware of? I'm not even sure if the 720x576 is correct as I don't have access to that display.
Old firmware versions:
I've a problem while switching from a FKMS based OS to one using KMS regarding the automatic detection of a video mode and I'm not sure why it worked in the FKMS version at all. Here's how the old OS behaves. From "vcdbg log msg":
Code:
004133.634: arasan: arasan_emmc_open004292.418: brfs: File read: /mfs/sd/config.txt004293.510: brfs: File read: 2434 bytes[...]004413.343: HDMI1:EDID error reading EDID block 0 attempt 0004419.369: HDMI1:EDID error reading EDID block 0 attempt 1004425.391: HDMI1:EDID error reading EDID block 0 attempt 2004431.415: HDMI1:EDID error reading EDID block 0 attempt 3004437.438: HDMI1:EDID error reading EDID block 0 attempt 4004443.462: HDMI1:EDID error reading EDID block 0 attempt 5004449.484: HDMI1:EDID error reading EDID block 0 attempt 6004455.509: HDMI1:EDID error reading EDID block 0 attempt 7004461.532: HDMI1:EDID error reading EDID block 0 attempt 8004467.556: HDMI1:EDID error reading EDID block 0 attempt 9004468.569: HDMI1:EDID giving up on reading EDID block 0004470.714: brfs: File read: /mfs/sd/config.txt004471.557: brfs: File read: 2434 bytes[...]005592.033: *** Restart logging005656.700: hdmi: HDMI1:EDID error reading EDID block 0 attempt 0005662.726: hdmi: HDMI1:EDID error reading EDID block 0 attempt 1005668.750: hdmi: HDMI1:EDID error reading EDID block 0 attempt 2005675.136: hdmi: HDMI1:EDID error reading EDID block 0 attempt 3005685.842: hdmi: HDMI1:EDID error reading EDID block 0 attempt 4005691.892: hdmi: HDMI1:EDID error reading EDID block 0 attempt 5005697.939: hdmi: HDMI1:EDID error reading EDID block 0 attempt 6005703.988: hdmi: HDMI1:EDID error reading EDID block 0 attempt 7005710.035: hdmi: HDMI1:EDID error reading EDID block 0 attempt 8005716.085: hdmi: HDMI1:EDID error reading EDID block 0 attempt 9005717.117: hdmi: HDMI1:EDID giving up on reading EDID block 0005722.203: hdmi: HDMI1:EDID error reading EDID block 0 attempt 0005728.253: hdmi: HDMI1:EDID error reading EDID block 0 attempt 1005734.301: hdmi: HDMI1:EDID error reading EDID block 0 attempt 2005740.350: hdmi: HDMI1:EDID error reading EDID block 0 attempt 3005746.397: hdmi: HDMI1:EDID error reading EDID block 0 attempt 4005752.447: hdmi: HDMI1:EDID error reading EDID block 0 attempt 5005758.494: hdmi: HDMI1:EDID error reading EDID block 0 attempt 6005764.544: hdmi: HDMI1:EDID error reading EDID block 0 attempt 7005770.590: hdmi: HDMI1:EDID error reading EDID block 0 attempt 8005776.639: hdmi: HDMI1:EDID error reading EDID block 0 attempt 9005777.671: hdmi: HDMI1:EDID giving up on reading EDID block 0005777.705: hdmi: HDMI:hdmi_get_state is deprecated, use hdmi_get_display_state instead005777.733: HDMI0: hdmi_pixel_encoding: 600000000005777.755: HDMI1: hdmi_pixel_encoding: 162000000[...]
Code:
[...] video=HDMI-A-1:720x576M@50 [...]
Code:
[...]003888.429: HDMI1:EDID error reading EDID block 0 attempt 0003889.443: HDMI1:EDID giving up on reading EDID block 0[...]004353.675: *** Restart logging004353.695: brfs: File read: 59 bytes004421.971: hdmi: HDMI1:EDID error reading EDID block 0 attempt 0004422.987: hdmi: HDMI1:EDID giving up on reading EDID block 0004428.024: hdmi: HDMI1:EDID error reading EDID block 0 attempt 0004429.039: hdmi: HDMI1:EDID giving up on reading EDID block 0004429.056: hdmi: HDMI:hdmi_get_state is deprecated, use hdmi_get_display_state instead004429.070: HDMI0: hdmi_pixel_encoding: 600000000004429.081: HDMI1: hdmi_pixel_encoding: 162000000006279.468: brfs: File read: /mfs/sd/init.gz
Now my question is: Where does the FKMS firmware get the 720x576M@50 mode from? Why does it select it to forward to the kernel? Is that some kind of fallback mechanism I'm not aware of? I'm not even sure if the 720x576 is correct as I don't have access to that display.
Old firmware versions:
Code:
$ vcgencmd versionOct 28 2021 14:15:04Copyright (c) 2012 Broadcomversion bcdfe55d56b75b4be52c10d73bdb4a60e2b49f75 (clean) (release) (start_x) $ vcgencmd bootloader_version2022/03/10 11:57:12version 778c182c82ab673c60a476da6f4e73a03854cacd (release)timestamp 1646913432
Statistics: Posted by dividuum — Mon Jul 15, 2024 9:25 am — Replies 5 — Views 84