Backporting commits for generating rpi dtb symbols to stable

From: Pali Rohár
Date: Sun Jul 16 2023 - 12:25:05 EST


Hello,

I see that raspberry pi bootloader throws ton of warnings when supplied
DTB file does not contain /__symbols__/ node.

On RPI 1B rev1 it looks like this:

dterror: no symbols found
dterror: no symbols found
dterror: no symbols found
dterror: no symbols found
dterror: no symbols found
dterror: no symbols found
dterror: no symbols found
dterror: no symbols found
dterror: no symbols found
dterror: no symbols found

Bootloader also propagates these warnings to kernel via dtb property
chosen/user-warnings and they can be read by simple command:

$ cat /sys/firmware/devicetree/base/chosen/user-warnings
...

Upstream Linux kernel build process by default does not generate
/__symbols__/ node for DTB files, but DTB files provided by raspberrypi
foundation have them for a longer time.

I wanted to look at this issue, but I figured out that it is already
solved by just recent Aurelien's patches:

e925743edc0d ("arm: dts: bcm: Enable device-tree overlay support for RPi devices")
3cdba279c5e9 ("arm64: dts: broadcom: Enable device-tree overlay support for RPi devices")

My testing showed that /__symbols__/ node is required by rpi bootloader
for overlay support even when overlayed DTB file does not use any DTB
symbol (and reference everything via full node path). So seems that
/__symbols__/ node is crucial for rpi bootloader even when symbols from
them are not used at all.

So I would like to ask, would you consider backporting these two
raspberry pi specific patches to stable kernel trees? Upstream kernel
would get rid of those bootloader warnings and also allow users to use
overlayed dtbs...

(Btw, do you know if raspberry pi foundation or broadcom provides source
code of that bootloader? It would be interesting to understand it or
maybe also fix it...)