Attention is currently required from: Angel Pons, Jeff Daly, Lance Zhao, Matt DeVillier, Nico Huber, Sean Rhodes, Tim Wawrzynczak, Vanessa Eusebio.
Hello Angel Pons, Felix Held, Jeff Daly, Lance Zhao, Matt DeVillier, Nico Huber, Sean Rhodes, Tim Wawrzynczak, Vanessa Eusebio, build bot (Jenkins),
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/75729?usp=email
to look at the new patch set (#3).
Change subject: UNTESTED acpi: Add ECAM region below PNP0C02 device in SSDT ......................................................................
UNTESTED acpi: Add ECAM region below PNP0C02 device in SSDT
From the Linux documentation (Documentation/PCI/acpi-info.rst): [6] PCI Firmware 3.2, sec 4.1.2: If the operating system does not natively comprehend reserving the MMCFG region, the MMCFG region must be reserved by firmware. The address range reported in the MCFG table or by _CBA method (see Section 4.1.3) must be reserved by declaring a motherboard resource. For most systems, the motherboard resource would appear at the root of the ACPI namespace (under _SB) in a node with a _HID of EISAID (PNP0C02), and the resources in this case should not be claimed in the root PCI bus’s _CRS. The resources can optionally be returned in Int15 E820 or EFIGetMemoryMap as reserved memory but must always be reported through ACPI as a motherboard resource.
So in order for the OS to use ECAM MMCONF over legacy PCI IO configuration, a PNP0C02 HId device needs to reserve this region. Instead of having this code in each DSDT, add this via SSDT on all platforms with CONFIG_ECAM_MMCONF_SUPPORT.
As no AMD platforms has this defined in DSDT this fixes Linux using legacy PCI IO configuration over MMCONF. Tianocore messes with e820 table so that Linux in such a way that it prevents Linux from using PCIe ECAM. This change fixes that problem.
Signed-off-by: Arthur Heymans arthur@aheymans.xyz Change-Id: I852e393726a1b086cf582f4d2d707e7cde05cbf4 --- M src/acpi/acpi.c M src/northbridge/intel/gm45/acpi/gm45.asl M src/northbridge/intel/haswell/acpi/hostbridge.asl M src/northbridge/intel/i945/acpi/i945.asl M src/northbridge/intel/ironlake/acpi/ironlake.asl M src/northbridge/intel/pineview/acpi/pineview.asl M src/northbridge/intel/sandybridge/acpi/sandybridge.asl M src/northbridge/intel/x4x/acpi/x4x.asl M src/soc/intel/apollolake/acpi/northbridge.asl M src/soc/intel/baytrail/acpi/southcluster.asl M src/soc/intel/braswell/acpi/southcluster.asl M src/soc/intel/common/block/acpi/acpi/northbridge.asl M src/soc/intel/denverton_ns/acpi/northcluster.asl M src/soc/intel/skylake/acpi/systemagent.asl 14 files changed, 38 insertions(+), 45 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/29/75729/3