Hi Stefan, Am Samstag, 15. Januar 2022, 14:28:01 CET schrieb Stefan Agner: > > I tried to reproduce your findings, unfortunately I am not successful in > > booting mainline using Arch Linux ARM so far. It seems it comes with > > downstream 4.9 kernel by default (where CEC seems to work in this case > > too). I then installed linux-aarch64 and adjusted the device tree, but > > it seems that the downstream U-Boot 2015.01-10 has some hardcoded > > "rsvmem" command which fails. How are you booting v5.14? > > FWIW, adjusted U-Boot load addresses fixed that issue: > # Set load addresses > setenv dtb_loadaddr "0x20000000" > setenv loadaddr "0x1080000" > setenv initrd_loadaddr "0x4080000" > > And I can confirm, HDMI CEC works with Arch Linux 5.15.13 kernel! Yes, you need to modify the loading addresses as with newer kernels the size increased. With the load addresses you will hit a memory hole which aborts the boot process. I'm on downstream u-boot BTW. > That assumption turned out to be wrong: I used our mainline based U-Boot > 2021.10 instead of the Arch Linux ARM U-Boot, and HDMI CEC continued to > work. Does the mainstream U-Boot work out of the box? Or does it require some additional configuration? > I then moved to 5.15.13 as well to rule out any kernel changes. But > still, in our configuration HDMI CEC did not work. I ended up diffing > configuration, and noticed that we are using built-in CONFIG_CEC_CORE > whereas Arch Linux uses it as a module. To build CONFIG_CEC_CORE as a > module I had to change some other configuration from built-in to module, > namely: > > - CONFIG_CEC_CORE=m > - CONFIG_DRM_DW_HDMI=m > - CONFIG_DRM_MESON=m > - CONFIG_DRM_MESON_DW_HDMI=m > > With that change, HDMI CEC started to work in my builds too! > > With that change, it also works on Linux 5.10. > > I guess there is some ordering issue or something which makes it fail > when those drivers are built-in? Note that I did not change > CONFIG_CEC_MESON_G12A_AO, that driver was already a module before. You need all 4 options above to be modules? Or is it maybe enough to set CONFIG_DRM_DW_HDMI_CEC=m? This should make CONFIG_CEC_CORE=m as well, while the other modules are built-in. I suspect at some point a -EPROBE_DEFER is missing. Just FYI: Arch Linux aarch64 kernel config currently lacks some drivers for HDMI audio. See [1]. Best regards, Alexander [1] https://github.com/archlinuxarm/PKGBUILDs/pull/1864