coreboot/src/soc/intel/skylake
Arthur Heymans a9a92ac961 acpi: Move ECAM resource below PNP0C02 device in a common place
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.

As no AMD platform has this defined in DSDT this fixes Linux using
legacy PCI IO configuration over MMCONF. Tianocore messes with e820
table 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
Reviewed-on: https://review.coreboot.org/c/coreboot/+/75729
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2023-07-20 10:38:42 +00:00
..
acpi acpi: Move ECAM resource below PNP0C02 device in a common place 2023-07-20 10:38:42 +00:00
bootblock soc/intel: Include <cpu/cpu.h> instead of <arch/cpu.h> 2022-11-04 13:23:27 +00:00
include/soc soc/intel/*/include/soc/pmc.h: Add missing periodic SMI rate bits 2023-06-15 14:14:05 +00:00
nhlt soc/intel/skl; mb/google/eve,poppy: Update NHLT methods 2022-12-21 14:00:13 +00:00
romstage soc/intel: Add max memory speed into dimm info 2023-06-15 15:08:12 +00:00
acpi.c soc/intel: Set IO APIC DMAR entry based on hw 2022-12-07 23:03:04 +00:00
chip.c src/soc/intel: Remove unnecessary space after casts 2022-11-26 23:39:16 +00:00
chip.h soc/intel/skylake/chip.h: Use boolean type where applicable 2023-06-24 10:36:55 +00:00
chipset.cb
cpu.c soc/intel: Use common codeflow for MP init 2023-02-23 08:53:38 +00:00
elog.c sb,soc/intel: Address TCO SECOND_TO_STS name collision 2022-11-28 10:09:04 +00:00
fadt.c treewide: Remove unused <cpu/x86/smm.h> 2023-01-12 05:07:30 +00:00
finalize.c commonlib/console/post_code.h: Change post code prefix to POSTCODE 2023-06-23 15:06:04 +00:00
gpio.c soc/intel/skylake: Use common gpio.h include 2023-01-18 05:18:42 +00:00
graphics.c
gspi.c
i2c.c
irq.c soc/intel/skylake/irq.c: Fix undefined memcpy() 2022-12-17 12:36:33 +00:00
Kconfig payloads/edk2: Disable the CPU Timer Lib unless supported 2022-10-22 17:11:25 +00:00
lockdown.c
lpc.c
Makefile.inc soc/intel/skylake/Makefile.inc: Remove path to non-existent directories 2023-01-12 05:10:10 +00:00
me.c
p2sb.c soc/intel/skylake: Clean up includes 2022-11-04 01:01:53 +00:00
pmc.c soc/intel/*: Fix dead bootstate code 2023-02-04 01:42:28 +00:00
pmutil.c treewide: Remove duplicated include <device/pci.h> 2023-02-01 03:03:34 +00:00
reset.c
sd.c soc/intel/skylake: Clean up includes 2022-11-04 01:01:53 +00:00
smihandler.c
spi.c soc/intel/spi: Move BIOS flash SPI controllers to fast SPI driver 2022-09-22 15:34:24 +00:00
systemagent.c src/soc/intel: Remove unnecessary space after casts 2022-11-26 23:39:16 +00:00
uart.c
vr_config.c
xhci.c