From 6864fa38972081833f79b39df74b9c08cc94f6cc Mon Sep 17 00:00:00 2001 From: Mark Cave-Ayland Date: Sun, 11 Jun 2017 10:12:08 +0100 Subject: [PATCH] sun4u: update PCI topology to include simba PCI bridges This patch updates the sun4u model to being much closer to a real Ultra 5 by moving devices behind the 2 simba PCI bridges (A and B) as found on real hardware. The most noticeable change introduced by this patchset is that in-built devices are no longer attached to the PCI root bus, but instead behind PCI bridge A. Along with this the interrupt routing is updated accordingly to match the official documentation. Since the existing code currently bypasses the PCI bridge interrupt swizzling, the interrupt mapping functions are reorganised so that pci_pbm_map_irq() is used by the PCI bridges and pci_apb_map_irq() is used by the PCI host bridge. Behind the sabre PCI host bridge, the PCI IO space now needs to be split into two separate halves at 0x8000000. Therefore we also setup a new PCI IO space region of increased size on the PCI host bridge and enable 32-bit PCI IO accesses to allow IO accesses to reach devices behind PCI bridge B correctly. As part of this change we also combine the onboard sunhme NIC and the ebus into a single multi-function device as done on a real Ultra 5. For other NICs the existing behaviour is preserved, i.e. we initialise them and place them into the next free slot on PCI bus B. Finally we mark the physically unavailable slots (plus slot 0 in busA) as reserved to ensure that users can't plug devices into non-existent slots which will break interrupt routing. Note: since this commit changes PCI topology and interrupt routing, an updated openbios-sparc64 binary is included with this commit containing the associated changes to maintain bisectability. Signed-off-by: Mark Cave-Ayland Reviewed-by: Artyom Tarasenko --- hw/pci-host/apb.c | 47 +++++++++++++++++++++++------- hw/sparc64/sun4u.c | 60 ++++++++++++++++++++++++++++----------- pc-bios/openbios-sparc64 | Bin 1593408 -> 1593408 bytes 3 files changed, 79 insertions(+), 28 deletions(-) diff --git a/hw/pci-host/apb.c b/hw/pci-host/apb.c index 1edf57f6000..64025cd8cc5 100644 --- a/hw/pci-host/apb.c +++ b/hw/pci-host/apb.c @@ -599,16 +599,35 @@ static uint64_t apb_pci_config_read(void *opaque, hwaddr addr, /* The APB host has an IRQ line for each IRQ line of each slot. */ static int pci_apb_map_irq(PCIDevice *pci_dev, int irq_num) { - return ((pci_dev->devfn & 0x18) >> 1) + irq_num; + /* Return the irq as swizzled by the PBM */ + return irq_num; } static int pci_pbm_map_irq(PCIDevice *pci_dev, int irq_num) { + PBMPCIBridge *br = PBM_PCI_BRIDGE(pci_bridge_get_device( + PCI_BUS(qdev_get_parent_bus(DEVICE(pci_dev))))); + int bus_offset; - if (pci_dev->devfn & 1) - bus_offset = 16; - else - bus_offset = 0; + if (br->busA) { + bus_offset = 0x0; + + /* The on-board devices have fixed (legacy) OBIO intnos */ + switch (PCI_SLOT(pci_dev->devfn)) { + case 1: + /* Onboard NIC */ + return 0x21; + case 3: + /* Onboard IDE */ + return 0x20; + + default: + /* Normal intno, fall through */ + break; + } + } else { + bus_offset = 0x10; + } return (bus_offset + (PCI_SLOT(pci_dev->devfn) << 2) + irq_num) & 0x1f; } @@ -669,6 +688,12 @@ static void apb_pci_bridge_realize(PCIDevice *dev, Error **errp) PCI_STATUS_FAST_BACK | PCI_STATUS_66MHZ | PCI_STATUS_DEVSEL_MEDIUM); + /* Allow 32-bit IO addresses */ + pci_set_word(dev->config + PCI_IO_BASE, PCI_IO_RANGE_TYPE_32); + pci_set_word(dev->config + PCI_IO_LIMIT, PCI_IO_RANGE_TYPE_32); + pci_set_word(dev->wmask + PCI_IO_BASE_UPPER16, 0xffff); + pci_set_word(dev->wmask + PCI_IO_LIMIT_UPPER16, 0xffff); + pci_bridge_update_mappings(PCI_BRIDGE(br)); } @@ -690,9 +715,9 @@ PCIBus *pci_apb_init(hwaddr special_base, d = APB_DEVICE(dev); phb = PCI_HOST_BRIDGE(dev); phb->bus = pci_register_bus(DEVICE(phb), "pci", - pci_apb_set_irq, pci_pbm_map_irq, d, + pci_apb_set_irq, pci_apb_map_irq, d, &d->pci_mmio, - get_system_io(), + &d->pci_ioport, 0, 32, TYPE_PCI_BUS); qdev_init_nofail(dev); s = SYS_BUS_DEVICE(dev); @@ -725,14 +750,14 @@ PCIBus *pci_apb_init(hwaddr special_base, pci_dev = pci_create_multifunction(phb->bus, PCI_DEVFN(1, 0), true, TYPE_PBM_PCI_BRIDGE); br = PCI_BRIDGE(pci_dev); - pci_bridge_map_irq(br, "pciB", pci_apb_map_irq); + pci_bridge_map_irq(br, "pciB", pci_pbm_map_irq); qdev_init_nofail(&pci_dev->qdev); *busB = pci_bridge_get_sec_bus(br); pci_dev = pci_create_multifunction(phb->bus, PCI_DEVFN(1, 1), true, TYPE_PBM_PCI_BRIDGE); br = PCI_BRIDGE(pci_dev); - pci_bridge_map_irq(br, "pciA", pci_apb_map_irq); + pci_bridge_map_irq(br, "pciA", pci_pbm_map_irq); qdev_prop_set_bit(DEVICE(pci_dev), "busA", true); qdev_init_nofail(&pci_dev->qdev); *busA = pci_bridge_get_sec_bus(br); @@ -798,8 +823,8 @@ static int pci_pbm_init_device(SysBusDevice *dev) sysbus_init_mmio(dev, &s->pci_config); /* pci_ioport */ - memory_region_init_alias(&s->pci_ioport, OBJECT(s), "apb-pci-ioport", - get_system_io(), 0, 0x10000); + memory_region_init(&s->pci_ioport, OBJECT(s), "apb-pci-ioport", 0x1000000); + /* at region 2 */ sysbus_init_mmio(dev, &s->pci_ioport); diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c index 8282651aebd..55d81ee73ee 100644 --- a/hw/sparc64/sun4u.c +++ b/hw/sparc64/sun4u.c @@ -27,6 +27,7 @@ #include "cpu.h" #include "hw/hw.h" #include "hw/pci/pci.h" +#include "hw/pci/pci_bus.h" #include "hw/pci-host/apb.h" #include "hw/i386/pc.h" #include "hw/char/serial.h" @@ -42,6 +43,7 @@ #include "hw/nvram/fw_cfg.h" #include "hw/sysbus.h" #include "hw/ide.h" +#include "hw/ide/pci.h" #include "hw/loader.h" #include "elf.h" #include "qemu/cutils.h" @@ -440,7 +442,8 @@ static void sun4uv_init(MemoryRegion *address_space_mem, DeviceState *dev; FWCfgState *fw_cfg; NICInfo *nd; - int onboard_nic_idx; + MACAddr macaddr; + bool onboard_nic; /* init CPUs */ cpu = sparc64_cpu_devinit(machine->cpu_model, hwdef->default_cpu_model, @@ -454,10 +457,17 @@ static void sun4uv_init(MemoryRegion *address_space_mem, ivec_irqs = qemu_allocate_irqs(sparc64_cpu_set_ivec_irq, cpu, IVEC_MAX); pci_bus = pci_apb_init(APB_SPECIAL_BASE, APB_MEM_BASE, ivec_irqs, &pci_busA, &pci_busB, &pbm_irqs); - pci_vga_init(pci_bus); - /* XXX Should be pci_busA */ - ebus = pci_create_simple(pci_bus, -1, "ebus"); + /* Only in-built Simba PBMs can exist on the root bus, slot 0 on busA is + reserved (leaving no slots free after on-board devices) however slots + 0-3 are free on busB */ + pci_bus->slot_reserved_mask = 0xfffffffc; + pci_busA->slot_reserved_mask = 0xfffffff1; + pci_busB->slot_reserved_mask = 0xfffffff0; + + ebus = pci_create_multifunction(pci_busA, PCI_DEVFN(1, 0), true, "ebus"); + qdev_init_nofail(DEVICE(ebus)); + isa_bus = pci_ebus_init(ebus, pbm_irqs); i = 0; @@ -470,27 +480,43 @@ static void sun4uv_init(MemoryRegion *address_space_mem, serial_hds_isa_init(isa_bus, i, MAX_SERIAL_PORTS); parallel_hds_isa_init(isa_bus, MAX_PARALLEL_PORTS); - onboard_nic_idx = -1; + pci_dev = pci_create_simple(pci_busA, PCI_DEVFN(2, 0), "VGA"); + + memset(&macaddr, 0, sizeof(MACAddr)); + onboard_nic = false; for (i = 0; i < nb_nics; i++) { nd = &nd_table[i]; - if (onboard_nic_idx == -1 && - (!nd->model || strcmp(nd->model, "sunhme") == 0)) { - pci_dev = pci_create(pci_bus, -1, "sunhme"); - dev = &pci_dev->qdev; - qdev_set_nic_properties(dev, nd); - qdev_init_nofail(dev); - - onboard_nic_idx = i; + if (!nd->model || strcmp(nd->model, "sunhme") == 0) { + if (!onboard_nic) { + pci_dev = pci_create_multifunction(pci_busA, PCI_DEVFN(1, 1), + true, "sunhme"); + memcpy(&macaddr, &nd->macaddr.a, sizeof(MACAddr)); + onboard_nic = true; + } else { + pci_dev = pci_create_simple(pci_busB, -1, "sunhme"); + } } else { - pci_nic_init_nofail(nd, pci_bus, "ne2k_pci", NULL); + pci_dev = pci_create_simple(pci_busB, -1, nd->model); } + + dev = &pci_dev->qdev; + qdev_set_nic_properties(dev, nd); + qdev_init_nofail(dev); + } + + /* If we don't have an onboard NIC, grab a default MAC address so that + * we have a valid machine id */ + if (!onboard_nic) { + qemu_macaddr_default_if_unset(&macaddr); } - onboard_nic_idx = MAX(onboard_nic_idx, 0); ide_drive_get(hd, ARRAY_SIZE(hd)); - pci_cmd646_ide_init(pci_bus, hd, 1); + pci_dev = pci_create(pci_busA, PCI_DEVFN(3, 0), "cmd646-ide"); + qdev_prop_set_uint32(&pci_dev->qdev, "secondary", 1); + qdev_init_nofail(&pci_dev->qdev); + pci_ide_create_devs(pci_dev, hd); isa_create_simple(isa_bus, "i8042"); @@ -531,7 +557,7 @@ static void sun4uv_init(MemoryRegion *address_space_mem, /* XXX: need an option to load a NVRAM image */ 0, graphic_width, graphic_height, graphic_depth, - (uint8_t *)&nd_table[onboard_nic_idx].macaddr); + (uint8_t *)&macaddr); dev = qdev_create(NULL, TYPE_FW_CFG_IO); qdev_prop_set_bit(dev, "dma_enabled", false); diff --git a/pc-bios/openbios-sparc64 b/pc-bios/openbios-sparc64 index 7bdd6a1f4977eae6693883468cab78ba3ba363cf..6e1e10c2c07889d69acc09703af5a8f37623df2f 100644 GIT binary patch delta 31839 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 I%k<~}1Kzx~iU0rr delta 31904 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