nb/intel/gm45: Don't create DMAR tables for disabled IGD

Change-Id: Ia9b74cfb8b68240e87d7adfa28d37db408edb519
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/34836
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <siro@das-labor.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
This commit is contained in:
Arthur Heymans 2019-08-12 09:21:30 +02:00
parent 15063e8819
commit 08456363f2
1 changed files with 4 additions and 1 deletions

View File

@ -74,6 +74,9 @@ static unsigned long acpi_fill_dmar(unsigned long current)
dev = pcidev_on_root(3, 0); dev = pcidev_on_root(3, 0);
int me_active = dev && dev->enabled; int me_active = dev && dev->enabled;
dev = pcidev_on_root(2, 0);
int igd_active = dev && dev->enabled;
int stepping = pci_read_config8(pcidev_on_root(0, 0), int stepping = pci_read_config8(pcidev_on_root(0, 0),
PCI_CLASS_REVISION); PCI_CLASS_REVISION);
@ -82,7 +85,7 @@ static unsigned long acpi_fill_dmar(unsigned long current)
current += acpi_create_dmar_ds_pci(current, 0, 0x1b, 0); current += acpi_create_dmar_ds_pci(current, 0, 0x1b, 0);
acpi_dmar_drhd_fixup(tmp, current); acpi_dmar_drhd_fixup(tmp, current);
if (stepping != STEPPING_B2) { if (stepping != STEPPING_B2 && igd_active) {
tmp = current; tmp = current;
current += acpi_create_dmar_drhd(current, 0, 0, IOMMU_BASE2); current += acpi_create_dmar_drhd(current, 0, 0, IOMMU_BASE2);
current += acpi_create_dmar_ds_pci(current, 0, 0x2, 0); current += acpi_create_dmar_ds_pci(current, 0, 0x2, 0);