mb/emulation/qemu-i440fx: Add acpi_name handler for QEMU

QEMU does not have a separate northbridge chip, so the mainboard
needs to handle the ACPI name and paths so that devices can get
generated into the SSDT properly.  This fixes the PIRQ and TPM
table generation.

This issue can be seen in the coreboot output:
ACPI_PIRQ_GEN: Missing LPCB ACPI path

Change-Id: Ifc7d4359eea38ac0b55d655e39191ae7f8655fe4
Signed-off-by: Duncan Laurie <dlaurie@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/39835
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <siro@das-labor.org>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
This commit is contained in:
Duncan Laurie 2020-03-17 18:47:36 -07:00 committed by Patrick Georgi
parent ddd4f9a717
commit b40e780f8b
1 changed files with 17 additions and 0 deletions

View File

@ -229,6 +229,20 @@ static int qemu_get_smbios_data(struct device *dev, int *handle, unsigned long *
return len; return len;
} }
#endif #endif
#if CONFIG(HAVE_ACPI_TABLES)
static const char *qemu_acpi_name(const struct device *dev)
{
if (dev->path.type == DEVICE_PATH_DOMAIN)
return "PCI0";
if (dev->path.type != DEVICE_PATH_PCI || dev->bus->secondary != 0)
return NULL;
return NULL;
}
#endif
static struct device_operations pci_domain_ops = { static struct device_operations pci_domain_ops = {
.read_resources = cpu_pci_domain_read_resources, .read_resources = cpu_pci_domain_read_resources,
.set_resources = cpu_pci_domain_set_resources, .set_resources = cpu_pci_domain_set_resources,
@ -238,6 +252,9 @@ static struct device_operations pci_domain_ops = {
#if CONFIG(GENERATE_SMBIOS_TABLES) #if CONFIG(GENERATE_SMBIOS_TABLES)
.get_smbios_data = qemu_get_smbios_data, .get_smbios_data = qemu_get_smbios_data,
#endif #endif
#if CONFIG(HAVE_ACPI_TABLES)
.acpi_name = qemu_acpi_name,
#endif
}; };
static void cpu_bus_init(struct device *dev) static void cpu_bus_init(struct device *dev)