Subject: [bug#57070] [PATCH] bootloader: extlinux: support for optional FDTDIR

From: Pavel Shlyak <[email-masked]>
Date: Mon, 22 Aug 2022 22:19:29 +0300

> Could you point me at the documentation or code that claims or does that? I am not finding any evidence that device trees are generated at boot.

Google «device tree raspberry bootloader», 1st result https://forums.raspberrypi.com/viewtopic.php?t=329799

> If the bootloader can, surely the kernel can.

Bootloader runs on GPU on Raspberry. It cannot run kernel. 
Also, check m1n1 on Apple. It has docs.

> I believe the kernel folks will appreciate a patch fixing the DT for RPI3b+ and Compute Module 4.

And for other devices that behave the same way? You’re literally promoting making GUIX not bootable on all devices alike.

> DTs are a kernel thing, e.g. the Linux documentation https://www.kernel.org/doc/html/latest/devicetree/usage-model.html mentions DT, also, Linux.  I could not find any information on bootloaders loading DTs.

Because you didn’t search for it. Google «device tree raspberry bootloader», the first link is about bootloader forming the device tree https://forums.raspberrypi.com/viewtopic.php?t=329799. Google «uboot device tree» https://u-boot.readthedocs.io/en/latest/usage/fdt_overlays.html to know how uboot manipulates them.
Moreover, Raspberry PI uboot uses DTB to boot on the board as in https://patchwork.ozlabs.org/project/uboot/patch/[email-masked]/ (Instead of using the embedded DTB as done in RPi3 we use the devicetree provided by the firmware.)

> bootloaders don't magically have access to more information than kernels

They do, if they are run on a separate core on the SOC that linux or arm core has no access to.  Check https://github.com/christinaa/rpi-open-firmware

> My point is that supporting more devices would be nice, but this patch isn't the way to do it.

Well, there is no other way to support devices that require DTB not to be loaded with uboot. The solutions you suggest are not possible.

Moreover, keep in mind FDTDIR is not in the http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec/ specification and making is permanent we basically violate it. 

Since we’ve not come to any understanding here, I kindly invite Vagrant and Tobias to join the discussion. They seem to be familiar with the relevant parts of GUIX.

Sincerely,
Pavel