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 1edf57f600..64025cd8cc 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 8282651aeb..55d81ee73e 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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 U!j7rw#q@G%QG=<-mG)=I3uIu=BqCz#!?s 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