andreiw / RaspberryPiPkg

DEPRECATED - DO NOT USE | Go here instead ->
https://github.com/tianocore/edk2-platforms/tree/master/Platform/RaspberryPi/RPi3
744 stars 143 forks source link

Provide (or document, if already exists) a way to disable passing FDT in EFI system table (required for Linux ACPI boot) #82

Closed Googulator closed 4 years ago

Googulator commented 5 years ago

Linux ignores ACPI tables whenever an FDT is available, with no way to override it - even if that FDT is invalid. To test ACPI boot under Linux, we need a way to pass no FDT at all. Right now, this doesn't appear to be possible.

andreiw commented 5 years ago

Yep, on top of my list. Thanks.

On Mon, Oct 1, 2018 at 9:08 AM Googulator notifications@github.com wrote:

Linux ignores ACPI tables whenever an FDT is available, with no way to override it - even if that FDT is invalid. To test ACPI boot under Linux, we need a way to pass no FDT at all. Right now, this doesn't appear to be possible.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/andreiw/RaspberryPiPkg/issues/82, or mute the thread https://github.com/notifications/unsubscribe-auth/AAsta02PS1ZiXFFgADgXn-2QqM78Sz-rks5ughPFgaJpZM4XCBxY .

-- A

Googulator commented 5 years ago

Just checked the EBBR document - this is actually a compliance issue.

2.4.3 Configuration Tables A UEFI system that complies with this specification may provide the additional tables via the EFI Configuration Table. Compliant systems are required to provide one, but not both, of the following tables. • An Advanced Configuration and Power Interface [ACPI] table, or • a Devicetree [DTSPEC] system description As stated above, EBBR systems must not provide both ACPI and Devicetree tables at the same time. Systems that support both interfaces must provide a configuration mechanism to select either ACPI or Devicetree, and must ensure only the selected interface is provided to the OS loader.

Long story short, EBBR requires ACPI/DT to be a strict either/or switch; providing both is an error, and operating systems may rightfully refuse to boot when both are provided.

andreiw commented 5 years ago

Yep, well recognized. Stay tuned!

A

4 окт. 2018 г., в 12:24, Googulator notifications@github.com написал(а):

Just checked the EBBR document - this is actually a compliance issue.

2.4.3 Configuration Tables A UEFI system that complies with this specification may provide the additional tables via the EFI Configuration Table. Compliant systems are required to provide one, but not both, of the following tables. • An Advanced Configuration and Power Interface [ACPI] table, or • a Devicetree [DTSPEC] system description As stated above, EBBR systems must not provide both ACPI and Devicetree tables at the same time. Systems that support both interfaces must provide a configuration mechanism to select either ACPI or Devicetree, and must ensure only the selected interface is provided to the OS loader.

Long story short, EBBR requires ACPI/DT to be a strict either/or switch; providing both is an error, and operating systems may rightfully refuse to boot when both are provided.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.

andreiw commented 5 years ago

@driver1998 yes, it will be possible - UEFI does not use the DT nor does it have to be exposed.

The problem is that Linux will not boot without it, unless someone explicitly adds support for the non-standard ACPI tables used by Windows (and by a certain other OS demoed yesterday ;-)).

So, is someone adding ACPI Linux support for Pi? Anyone have a vmlinux.efi for me to test with?

Sorry folks, I’ve been busy, but this is on top of my list.

A

7 нояб. 2018 г., в 19:29, driver1998 notifications@github.com написал(а):

The problem is, is no DT actually possible here? Considering that VC firmware rely on DT for hardware configuration.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.

driver1998 commented 5 years ago

Speaking of that other OS, I wonder if WoA can run on that, I tested WoA on KVM before, and it don't even load the kernel. (no kernel debug message, no display output, nothing. bootmgr works fine though) I patched QEMU to have DBG2 in UEFI, and it does have kernel debug messages when running AArch64 full emulation, but nothing on KVM...

woachk commented 5 years ago

@Googulator "if acpi=force is used on the command line, the kernel will attempt to use ACPI tables first, but fall back to DT if there are no ACPI tables present."