[haiku-bugs] [Haiku] #15196: Patch ACPI/DSDT on the fly and allow fixed DSDT.aml to be sideloaded

  • From: "Haiku" <trac@xxxxxxxxxxxx>
  • To: undisclosed-recipients: ;
  • Date: Sun, 21 Jul 2019 11:19:21 -0000

#15196: Patch ACPI/DSDT on the fly and allow fixed DSDT.aml to be sideloaded
--------------------------+------------------------------
 Reporter:  probono       |        Owner:  tqh
     Type:  bug           |       Status:  new
 Priority:  normal        |    Milestone:  Unscheduled
Component:  Drivers/ACPI  |      Version:  R1/Development
 Keywords:                |   Blocked By:
 Blocking:                |  Has a Patch:  0
 Platform:  x86-64        |
--------------------------+------------------------------
 Some machines suffer from severe performance degradation due to buggy
 ACPI.

 Haiku Boot could

 * Patch ACPI/DSDT on the fly
 * Allow a manually created, fixed `DSDT.aml` to be sideloaded (for cases
 in which the automatic patching is not sufficient)

 The Clover bootloader, for example, has this functionality:

 * SMBIOS will be corrected to standard 2.6
 * ACPI will be corrected to standard 4.0
 * Custom DSDT will be loaded from booted partition or from EFI folder
 * DSDT patching on the fly by fixes and by patterns
 * ACPI tables loading (SSDT-xx, APIC, BOOT, SLIC, SLIT, SRAT, UEFI...)

 References
 *
 
https://github.com/RehabMan/Clover/blob/286561fa45bac94412890ac66e2e5283540779aa/CloverPackage/package/Resources/templates/Description.html#L35
 *
 
https://github.com/RehabMan/Clover/blob/043a62caaa6b24fa9330ef13139f68ec6856a311/CloverEFI/OsxAcpiPlatformDxe/AcpiPlatform.c
 (Intel Sample ACPI Platform Driver modified to load and install patched
 DSDT.aml)
 *
 
https://github.com/RehabMan/Clover/blob/master/rEFIt_UEFI/Platform/AcpiPatcher.c
 *
 
https://github.com/RehabMan/Clover/blob/286561fa45bac94412890ac66e2e5283540779aa/rEFIt_UEFI/Platform/FixBiosDsdt.c

-- 
Ticket URL: <https://dev.haiku-os.org/ticket/15196>
Haiku <https://dev.haiku-os.org>
The Haiku operating system.

Other related posts: