diff options
Diffstat (limited to 'src/acpi')
-rw-r--r-- | src/acpi/dsdt_top.asl | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/acpi/dsdt_top.asl b/src/acpi/dsdt_top.asl index 0dd2002ddc..6a0129fd7b 100644 --- a/src/acpi/dsdt_top.asl +++ b/src/acpi/dsdt_top.asl @@ -40,5 +40,28 @@ Scope(\_SB) { /* PCIe Configuration Space */ OperationRegion(PCFG, SystemMemory, PCBA, PCLN) /* Each bus consumes 1MB */ + + /* 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. + */ + Device (PERC) // PCI ECAM Resource Consumption + { + Name (_HID, EisaId("PNP0C02")) + Name (_CRS, ResourceTemplate() + { + Memory32Fixed (ReadWrite, CONFIG_ECAM_MMCONF_BASE_ADDRESS, + CONFIG_ECAM_MMCONF_LENGTH) + }) + } } #endif |