Hi, Maxime Ripard (2021-10-22): > > looks like you are using the vendor DTB, please use the upstream DTB > > from linux-next: > > > > bcm2711-rpi-cm4-io.dtb > > I thought upstream_kernel would be enough, but following your message > I forced it using device_tree, and indeed it works. > > But I'm confused now, I don't have any other DTB for the CM4 on that > boot partition, where is that other device tree coming from? It seems to be using the DTB for the Pi 4 B instead, at least judging by: # tr '\0' '\n' < /proc/device-tree/compatible raspberrypi,4-model-b brcm,bcm2711 For the avoidance of doubt, the relevant /boot/firmware has those files, copied from the linux-image package without any name changes: /boot/firmware/bcm2711-rpi-4-b.dtb /boot/firmware/bcm2711-rpi-400.dtb /boot/firmware/bcm2711-rpi-cm4-io.dtb /boot/firmware/bcm2837-rpi-3-a-plus.dtb /boot/firmware/bcm2837-rpi-3-b-plus.dtb /boot/firmware/bcm2837-rpi-3-b.dtb /boot/firmware/bcm2837-rpi-cm3-io3.dtb so maybe some fallback to the Pi 4 B happened via the more generic brcm,bcm2711 compatible fragment? Initially I was wondering whether there might be some things on the EEPROM side that might need an update, but wading through some issues in the raspberrypi/rpi-eeprom repository[1], it seems start.elf is responsible for passing the dtb file and a quick look into it suggests there might be a single format string for that: bcm%d-rpi-%s.dtb 1. https://github.com/raspberrypi/rpi-eeprom I'm also seeing filename fragments, but nothing that ressembles the io suffix that's being used for the CM4 upstream DTB. Since it seems that the bootloader might be expecting “vendor DTB” and the kernel might use different names when it comes to “upstream DTB”, are users/distributions expected to set the proper filename via device_tree= all the time? If that's the case, I hadn't noticed until now since we used to have things like this in Debian to put files into place under the “expected filenames”: cp /bcm2837-rpi-cm3-io3.dtb /boot/firmware/bcm2710-rpi-cm3.dtb Nowadays, our raspi-firmware package is just copying the DTB files (as shipped by linux-image packages, meaning “upstream DTB” names without any renaming), so we might have failed to notice a possible need for this device_tree parameter… Cheers, -- Cyril Brulebois -- Debian Consultant @ DEBAMAX -- https://debamax.com/