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

From: Reza Alizadeh Majd <[email-masked]>
Date: Tue, 9 Aug 2022 14:57:30 +0430

There are situations that u-boot doesn't have to load from the device
tree. some provide the device tree using a vendor bootloader (like what
raspberry-pi does) or with an external bootloader that chainloads the
u-boot (what Asahi does for m1n1 bootloader). 

Unfortunately we couldn't find any reliable document to enforce u-boot
to pass the device tree via `extlinux.conf`, however during our tests,
we found that removing the `FDTDIR` line from the `extlinux.conf` tend
us to do so.

There is also no reliable way to guess if u-boot bootloader should load
device tree or not on a specific hardware. in addition, there are
hardware that can be booted with both firmware device tree on some
kernels and with special device tree on other (modified) kernels. 

so we propose the following patch to define an optional parameter in
`bootloader` record, called `ignore-fdtdir?` which by default is set to
`#f` to keep the current behavior unchanged. if this paramter is set to
`#t`, the `FDTDIR` line will be discarded from the `extlinux.conf` and
u-boot doesn't load the device tree automatically.

This patch was tested on a Raspberry PI and in a VM. It is proven to
preserve the old behavior. We’d love to hear your feedback and hope we
can support more arm hardware in the future.

Regards,
Reza

-- 
Reza Alizadeh Majd
PantherX Team
https://pantherx.org