Permalink
Show file tree
Hide file tree
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Platform/RPi/AcpiTables: Update all tables to latest ACPI
Because of its widespread availability and low price, we expect the Raspberry Pi source to be used by platform developers as a starting point to create their own platform implementation. As such, it makes a lot of sense to want to use the most up to date underlying standards, even if the pay off is limited in this case, or may even be seen as a liability in terms of ensuring greater compatibility with older OSes, as it may help others benefit from the latest improvements and features brought by modern ACPI. We also happen to already be using ACPI 6.3 constructs, such as PPTT (which was only introduced in ACPI 6.2 and further extended in 6.3), and have some reliance on 6.x GIC, as the original MADT binary blobs from Microsoft were 6.0 and abuse the GICR Base Address field in order for Windows to boot properly (for reasons that the proprietary nature of the Windows kernel makes difficult to determine). So in effect, we did apply a potential breaking change to Windows when we downgraded MADT to ACPI 5.1, though we did validate at the time that the downgrade in ACPI version didn't *seem* to break OS functionality. Still, because we are in the dark as to what the ACPI fields we removed when downgrading ACPI version were being used for, we obviously want to add them back. Therefore, since we do see a need for ACPI 6.x features, and effectively have a 6.3 table with PPTT, and also since we have tested that we are not seeing ill effects from doing so for the most common OSes we support, we bring all of the relevant ACPI tables to version 6.3. This is mostly accomplished by simply altering the version of ACPI being references in the macros, except for the new fields being initialized in the MADT table where we: * Use 1 for GICR Base Address in GICC_STRUCTURE_INIT because, even as this field is not supposed to apply to any of our platforms, this is what Microsoft used in the original Pi 3 hardcoded MADT blobs and Windows 10 doesn't boot on the Pi 3 if set to 0. * Use 2 for GIC version in GIC_DISTRIBUTOR_INIT, since the Pi 4 GIC is v2 only. Signed-off-by: Pete Batard <pete@akeo.ie> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@arm.com>
- Loading branch information
Showing
7 changed files
with
66 additions
and
64 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters