feat(boot): install the devicetree of a BLS entry

Add a devicetree option to the chainload action, set from the devicetree
key of a BLS entry. The file is installed as the EFI devicetree table
with the memory type that a devicetree has to be in, patched by the
fixup protocol when the firmware has one, and the table of the firmware
is put back when the image returns or fails to start. It is ignored when
Secure Boot is enabled, as it can't be verified, and the DeviceTree
loader feature is advertised.
This commit is contained in:
alex authored and Alex Zenla committed 2026-10-03 20:23:57 -07:00
1 parent ef14e5bd98
commit ac4ec69c02
9 files changed
+239 -6

No files matched your search

+5
View File
@@ -23,4 +23,9 @@ pub struct ChainloadConfiguration {
/// using the same mechanism as `linux-initrd`. This cannot be used with `linux-initrd`.
#[serde(default, rename = "linux-initrd-chain")]
pub linux_initrd_chain: Vec<String>,
/// An optional path to a flattened devicetree to give to the image.
/// It is installed as the devicetree of the machine until the image returns. It is not
/// used when Secure Boot is enabled, as it can't be verified.
#[serde(default)]
pub devicetree: Option<String>,
}