soc/amd/common/data_fabric/domain: don't report DRAM as MMIO producer

In commit 30f36c35e7 ("soc/amd: rework DRAM and fixed resource
reporting") the reporting of the DRAM resources was moved from the
northbridge PCI device to the domain device. amd_pci_domain_fill_ssdt
didn't skip those DRAM resources when generation the resource producer
ranges which made Windows 10 very unhappy when it tried to evaluating
the ACPI tables causing it to reboot in a loop. To fix this, add a check
to also skip the resources that have the IORESOURCE_STORED flag set when
generating the resource producer ranges for the PCI root.

TEST=Windows 10 now successfully boots and reboots again on Mandolin

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: I7b6d3fd8c7f89aa4364de7963d745aef8d6b6f42
Reviewed-on: https://review.coreboot.org/c/coreboot/+/80407
Reviewed-by: Matt DeVillier <matt.devillier@amd.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
This commit is contained in:
Felix Held 2024-02-07 21:17:46 +01:00
parent 5ec3deac6b
commit bf76998c96
1 changed files with 3 additions and 0 deletions

View File

@ -281,6 +281,9 @@ void amd_pci_domain_fill_ssdt(const struct device *domain)
devices */ devices */
if ((res->flags & IORESOURCE_RESERVE)) if ((res->flags & IORESOURCE_RESERVE))
continue; continue;
/* Don't add MMIO producer ranges for DRAM regions */
if (res->flags & IORESOURCE_STORED)
continue;
switch (res->flags & IORESOURCE_TYPE_MASK) { switch (res->flags & IORESOURCE_TYPE_MASK) {
case IORESOURCE_IO: case IORESOURCE_IO:
write_ssdt_domain_io_producer_range(acpi_device_name(domain), write_ssdt_domain_io_producer_range(acpi_device_name(domain),