From 1d6eeff17137d86a09673b589ea5c1fba174a02b Mon Sep 17 00:00:00 2001 From: Naresh Solanki Date: Thu, 16 Nov 2023 18:25:38 +0530 Subject: [PATCH] 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 Reviewed-on: https://review.coreboot.org/c/coreboot/+/79096 Tested-by: build bot (Jenkins) Reviewed-by: Lean Sheng Tan Reviewed-by: Maximilian Brune Reviewed-by: Felix Held Reviewed-by: Nico Huber --- src/acpi/dsdt_top.asl | 24 ++++++++++++++++++++---- 1 file 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