Thread (5 messages) flat view 5 messages, 4 authors, 2021-10-26

Re: GENET and UNIMAC MDIO probe issue?

From: Cyril Brulebois <hidden>
Date: 2021-10-26 04:03:45

Hi,

Maxime Ripard [off-list ref] (2021-10-22):
quoted
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 <packaged>/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/

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help