Felix Held has submitted this change. ( https://review.coreboot.org/c/coreboot/+/79096?usp=email )
Change subject: acpi: Enable 64bit ECAM resource ......................................................................
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 --- M src/acpi/dsdt_top.asl 1 file changed, 20 insertions(+), 4 deletions(-)
Approvals: Lean Sheng Tan: Looks good to me, approved Maximilian Brune: Looks good to me, but someone else must approve Felix Held: Looks good to me, approved build bot (Jenkins): Verified Nico Huber: Looks good to me, but someone else must approve
diff --git a/src/acpi/dsdt_top.asl b/src/acpi/dsdt_top.asl index 6a0129f..7539f00 100644 --- a/src/acpi/dsdt_top.asl +++ b/src/acpi/dsdt_top.asl @@ -57,11 +57,27 @@ 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