Skip to content

Commit

Permalink
AArch64: don't expose FDT to kernel
Browse files Browse the repository at this point in the history
There is a check that if FDT is stub when ACPI table initialized in
linux kernel [1]. So, if full FDT is given, FDT will be used instead of
ACPI. It is aginst our primary goal to use UEFI. So, full FDT can't
be given here. For simplicity, just neglict it here. Remember that this
is just a workaround as we are required to pass a FDT to kernel/grub to
meet Arm Base Boot Requirement 7.4.3 [2].

It can be improved by making a stub FDT and pass it through configuration
table. Maybe later.

Fixes: #261
Signed-off-by: Jianyong Wu <[email protected]>

[1] https://github.com/torvalds/linux/blob/d528014517f2b0531862c02865b9d4c908019dc4/arch/arm64/kernel/acpi.c#L203
[2] https://developer.arm.com/documentation/den0044/latest
  • Loading branch information
jongwu committed Jul 19, 2023
1 parent 6701c6b commit 90391a7
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions src/efi/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1115,6 +1115,10 @@ pub fn efi_exec(
let mut ct_index = 0;

// Populate with FDT table if present
// To boot linux kernel with ACPI, we can't offer full fdt. Simply, neglect
// it. See
// https://github.com/torvalds/linux/blob/d528014517f2b0531862c02865b9d4c908019dc4/arch/arm64/kernel/acpi.c#L203
#[cfg(not(target_arch = "aarch64"))]
if let Some(fdt_entry) = info.fdt_reservation() {
ct[ct_index] = efi::ConfigurationTable {
vendor_guid: Guid::from_fields(
Expand Down

0 comments on commit 90391a7

Please sign in to comment.