From 1557a67c83b469e183b30f26d8e2f4c8ebb7d030 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ky=C3=B6sti=20M=C3=A4lkki?= Date: Sun, 30 Jun 2019 10:51:31 +0300 Subject: device: Move pci_irqs outside DEVTREE_EARLY MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Only needed in ramstage, and only for MP tables. Change-Id: Ia7c1e153b948aeefa4c3bea4920b02a91a417096 Signed-off-by: Kyösti Mälkki Reviewed-on: https://review.coreboot.org/c/coreboot/+/33922 Reviewed-by: Martin Roth Reviewed-by: Paul Menzel Tested-by: build bot (Jenkins) --- src/include/device/device.h | 2 +- util/sconfig/main.c | 23 +++++++++++------------ 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/src/include/device/device.h b/src/include/device/device.h index d6f80cee0f..4ffbff4ac9 100644 --- a/src/include/device/device.h +++ b/src/include/device/device.h @@ -126,7 +126,6 @@ struct device { unsigned int on_mainboard : 1; unsigned int disable_pcie_aspm : 1; unsigned int hidden : 1; /* set if we should hide from UI */ - struct pci_irq_info pci_irq_info[4]; u8 command; /* Base registers for this device. I/O, MEM and Expansion ROM */ @@ -138,6 +137,7 @@ struct device { DEVTREE_CONST struct bus *link_list; #if !DEVTREE_EARLY + struct pci_irq_info pci_irq_info[4]; struct device_operations *ops; struct chip_operations *chip_ops; const char *name; diff --git a/util/sconfig/main.c b/util/sconfig/main.c index 85e0d8ea7f..5e3a1d405e 100644 --- a/util/sconfig/main.c +++ b/util/sconfig/main.c @@ -815,18 +815,6 @@ static void pass1(FILE *fil, struct device *ptr, struct device *next) fprintf(fil, "\t.subsystem_vendor = 0x%04x,\n", ptr->subsystem_vendor); - for (pin = 0; pin < 4; pin++) { - if (ptr->pci_irq_info[pin].ioapic_irq_pin > 0) - fprintf(fil, - "\t.pci_irq_info[%d].ioapic_irq_pin = %d,\n", - pin, ptr->pci_irq_info[pin].ioapic_irq_pin); - - if (ptr->pci_irq_info[pin].ioapic_dst_id > 0) - fprintf(fil, - "\t.pci_irq_info[%d].ioapic_dst_id = %d,\n", - pin, ptr->pci_irq_info[pin].ioapic_dst_id); - } - if (ptr->subsystem_device > 0) fprintf(fil, "\t.subsystem_device = 0x%04x,\n", ptr->subsystem_device); @@ -843,6 +831,17 @@ static void pass1(FILE *fil, struct device *ptr, struct device *next) if (ptr->sibling) fprintf(fil, "\t.sibling = &%s,\n", ptr->sibling->name); fprintf(fil, "#if !DEVTREE_EARLY\n"); + for (pin = 0; pin < 4; pin++) { + if (ptr->pci_irq_info[pin].ioapic_irq_pin > 0) + fprintf(fil, + "\t.pci_irq_info[%d].ioapic_irq_pin = %d,\n", + pin, ptr->pci_irq_info[pin].ioapic_irq_pin); + + if (ptr->pci_irq_info[pin].ioapic_dst_id > 0) + fprintf(fil, + "\t.pci_irq_info[%d].ioapic_dst_id = %d,\n", + pin, ptr->pci_irq_info[pin].ioapic_dst_id); + } fprintf(fil, "\t.chip_ops = &%s_ops,\n", chip_ins->chip->name_underscore); if (chip_ins == &mainboard_instance) -- cgit v1.2.3