summaryrefslogtreecommitdiff
path: root/src/acpi
diff options
context:
space:
mode:
Diffstat (limited to 'src/acpi')
-rw-r--r--src/acpi/dsdt_top.asl23
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