Hi Heinrich, On Wed, 18 Oct 2023 at 02:15, Heinrich Schuchardt <heinrich.schucha...@canonical.com> wrote: > > On 10/18/23 05:33, Simon Glass wrote: > > Hi Heinrich, > > > > On Tue, 17 Oct 2023 at 07:50, Heinrich Schuchardt > > <heinrich.schucha...@canonical.com> wrote: > >> > >> Forward and backward compatibility of Linux kernel device-trees is > >> sometimes missing. One solution approach is to load a kernel specific > >> device-tree. This can either be done via a U-Boot scripts (like the one > >> generated by Debian package flash-kernel or by a boot loader like GRUB. > >> The boot loader approach currently requires to know the device-tree name > >> before first boot which makes it unusable for generic images. > >> > >> Expose the device-tree file name as EFI variable FdtFile. > >> This will allow bootloaders to load a kernel specific device-tree. > >> > >> The variable will not be exposed on ACPI based systems or if the > >> environment variable fdtfile is not defined. > >> > >> Signed-off-by: Heinrich Schuchardt <heinrich.schucha...@canonical.com> > >> --- > >> v2: > >> Use a unique GUID to enable future U-Boot independent > >> standardization. > >> Do not try to add the variable on ACPI based systems. > >> --- > >> include/efi_loader.h | 5 +++++ > >> lib/efi_loader/efi_setup.c | 30 ++++++++++++++++++++++++++++++ > >> 2 files changed, 35 insertions(+) > > > > I was too slow to reply to v1. > > > > Does grub load the DT? I was assuming that U-Boot would pass it on? > > What is the interface between U-Boot and grub? > > The device-tree built into U-Boot is often out of date and not usable to > boot current Linux. A single device-tree can be loaded by U-Boot from > file and passed on as EFI configuration table. This device-tree may not > be compatible with all kernel versions exposed by GRUB. > > GRUB provides a devicetree command. It is disabled if you use secure > boot. At least in Debian and Ubuntu GRUB invokes the > EFI_DT_FIXUP_PROTOCOL exposed by U-Boot to run U-Boot's device-tree > fix-ups after loading a device-tree. > > Vendor scripts for GRUB like Ubuntu's /etc/grub.d/10_linux add > devicetree commands to the boot options in grub.cfg.
Thanks. I wonder if you could document this somewhere? It seems like there are a lot of options and it is quite complicated. Back to the question, I suppose you are expecting grub to load the DT using this filename? But why doesn't U-Boot load it instead? It seems very convoluted. Also, can we test this interface? Regards, Simon