diff options
author | Naresh Solanki <naresh.solanki@9elements.com> | 2023-11-16 18:25:38 +0530 |
---|---|---|
committer | Felix Held <felix-coreboot@felixheld.de> | 2023-11-27 21:10:41 +0000 |
commit | 1d6eeff17137d86a09673b589ea5c1fba174a02b (patch) | |
tree | 6bd48d0b5902342601cf9049bfcf2c5e37bf720c | |
parent | 16875ec8e304e87922af2f26a3fbd825bccb312e (diff) |
acpi: Enable 64bit ECAM resource
Adjust ACPI DSDT to support ECAM resource above 4GB by modifying the PCI
ECAM Resource Consumption settings. The changes include specifying a
QWordMemory resource template, accommodating non-cacheable, read-write
attributes, and adjusting the address range.
Change-Id: Idb049d848f2311e27df5279a10c33f9fab259c08
Signed-off-by: Naresh Solanki <naresh.solanki@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/79096
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-by: Nico Huber <nico.h@gmx.de>
-rw-r--r-- | src/acpi/dsdt_top.asl | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/src/acpi/dsdt_top.asl b/src/acpi/dsdt_top.asl index 6a0129fd7b..7539f00e57 100644 --- a/src/acpi/dsdt_top.asl +++ b/src/acpi/dsdt_top.asl @@ -57,11 +57,27 @@ Scope(\_SB) { Device (PERC) // PCI ECAM Resource Consumption { Name (_HID, EisaId("PNP0C02")) - Name (_CRS, ResourceTemplate() + Method (_CRS, 0, Serialized) { - Memory32Fixed (ReadWrite, CONFIG_ECAM_MMCONF_BASE_ADDRESS, - CONFIG_ECAM_MMCONF_LENGTH) - }) + Name (RBUF, ResourceTemplate () + { + QWordMemory (ResourceConsumer, PosDecode, MinFixed, MaxFixed, + NonCacheable, ReadWrite, + 0x0000000000000000, // Granularity + 0x0000000000000000, // _MIN + 0x0000000000000001, // _MAX + 0x0000000000000000, // Translation + 0x0000000000000002, // _Len + ,, _Y00, AddressRangeMemory, TypeStatic) + }) + CreateQWordField (RBUF, \_SB.PERC._CRS._Y00._MIN, MIN1) + CreateQWordField (RBUF, \_SB.PERC._CRS._Y00._MAX, MAX1) + CreateQWordField (RBUF, \_SB.PERC._CRS._Y00._LEN, LEN1) + MIN1 = CONFIG_ECAM_MMCONF_BASE_ADDRESS + MAX1 = (MIN1 + CONFIG_ECAM_MMCONF_LENGTH -1) + LEN1 = CONFIG_ECAM_MMCONF_LENGTH + Return (RBUF) + } } } #endif |