From nobody Thu May 2 07:24:34 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1506494883497634.7337678865154; Tue, 26 Sep 2017 23:48:03 -0700 (PDT) Received: from localhost ([::1]:52469 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dx68S-0007QT-HL for importer@patchew.org; Wed, 27 Sep 2017 02:47:56 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38221) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dx675-0006k3-Lf for qemu-devel@nongnu.org; Wed, 27 Sep 2017 02:46:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dx66z-0003RI-KU for qemu-devel@nongnu.org; Wed, 27 Sep 2017 02:46:31 -0400 Received: from chuckie.co.uk ([82.165.15.123]:36005 helo=s16892447.onlinehome-server.info) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dx66z-0003Py-2S for qemu-devel@nongnu.org; Wed, 27 Sep 2017 02:46:25 -0400 Received: from host109-146-207-213.range109-146.btcentralplus.com ([109.146.207.213] helo=kentang.home) by s16892447.onlinehome-server.info with esmtpsa (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.76) (envelope-from ) id 1dx66o-0005af-Fz; Wed, 27 Sep 2017 07:46:23 +0100 From: Mark Cave-Ayland To: qemu-devel@nongnu.org, atar4qemu@gmail.com Date: Wed, 27 Sep 2017 07:45:57 +0100 Message-Id: <1506494757-7352-2-git-send-email-mark.cave-ayland@ilande.co.uk> X-Mailer: git-send-email 1.7.10.4 In-Reply-To: <1506494757-7352-1-git-send-email-mark.cave-ayland@ilande.co.uk> References: <1506494757-7352-1-git-send-email-mark.cave-ayland@ilande.co.uk> X-SA-Exim-Connect-IP: 109.146.207.213 X-SA-Exim-Mail-From: mark.cave-ayland@ilande.co.uk X-SA-Exim-Version: 4.2.1 (built Sun, 08 Jan 2012 02:45:44 +0000) X-SA-Exim-Scanned: Yes (on s16892447.onlinehome-server.info) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 82.165.15.123 Subject: [Qemu-devel] [PATCH] sun4u: update PCI topology to include simba PCI bridges X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 dev= ices 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 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 b709456..bc54366 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, hwa= ddr 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; } =20 static int pci_pbm_map_irq(PCIDevice *pci_dev, int irq_num) { + PBMPCIBridge *br =3D 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 =3D 16; - else - bus_offset =3D 0; + if (br->busA) { + bus_offset =3D 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 =3D 0x10; + } return (bus_offset + (PCI_SLOT(pci_dev->devfn) << 2) + irq_num) & 0x1f; } =20 @@ -669,6 +688,12 @@ static void apb_pci_bridge_realize(PCIDevice *dev, Err= or **errp) PCI_STATUS_FAST_BACK | PCI_STATUS_66MHZ | PCI_STATUS_DEVSEL_MEDIUM); =20 + /* 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)); } =20 @@ -690,9 +715,9 @@ PCIBus *pci_apb_init(hwaddr special_base, d =3D APB_DEVICE(dev); phb =3D PCI_HOST_BRIDGE(dev); phb->bus =3D 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 =3D SYS_BUS_DEVICE(dev); @@ -725,14 +750,14 @@ PCIBus *pci_apb_init(hwaddr special_base, pci_dev =3D pci_create_multifunction(phb->bus, PCI_DEVFN(1, 0), true, TYPE_PBM_PCI_BRIDGE); br =3D 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 =3D pci_bridge_get_sec_bus(br); =20 pci_dev =3D pci_create_multifunction(phb->bus, PCI_DEVFN(1, 1), true, TYPE_PBM_PCI_BRIDGE); br =3D 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 =3D 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); =20 /* 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", 0x1000= 000); + /* at region 2 */ sysbus_init_mmio(dev, &s->pci_ioport); =20 diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c index c3280aa..2edd1cc 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" @@ -436,7 +438,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; =20 /* init CPUs */ cpu =3D sparc64_cpu_devinit(machine->cpu_model, hwdef->default_cpu_mod= el, @@ -450,10 +453,17 @@ static void sun4uv_init(MemoryRegion *address_space_m= em, ivec_irqs =3D qemu_allocate_irqs(sparc64_cpu_set_ivec_irq, cpu, IVEC_M= AX); pci_bus =3D pci_apb_init(APB_SPECIAL_BASE, APB_MEM_BASE, ivec_irqs, &p= ci_busA, &pci_busB, &pbm_irqs); - pci_vga_init(pci_bus); =20 - /* XXX Should be pci_busA */ - ebus =3D 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 slo= ts + 0-3 are free on busB */ + pci_bus->slot_reserved_mask =3D 0xfffffffc; + pci_busA->slot_reserved_mask =3D 0xfffffff1; + pci_busB->slot_reserved_mask =3D 0xfffffff0; + + ebus =3D pci_create_multifunction(pci_busA, PCI_DEVFN(1, 0), true, "eb= us"); + qdev_init_nofail(DEVICE(ebus)); + isa_bus =3D pci_ebus_init(ebus, pbm_irqs); =20 i =3D 0; @@ -466,27 +476,43 @@ static void sun4uv_init(MemoryRegion *address_space_m= em, serial_hds_isa_init(isa_bus, i, MAX_SERIAL_PORTS); parallel_hds_isa_init(isa_bus, MAX_PARALLEL_PORTS); =20 - onboard_nic_idx =3D -1; + pci_dev =3D pci_create_simple(pci_busA, PCI_DEVFN(2, 0), "VGA"); + + memset(&macaddr, 0, sizeof(MACAddr)); + onboard_nic =3D false; for (i =3D 0; i < nb_nics; i++) { nd =3D &nd_table[i]; =20 - if (onboard_nic_idx =3D=3D -1 && - (!nd->model || strcmp(nd->model, "sunhme") =3D=3D 0)) { - pci_dev =3D pci_create(pci_bus, -1, "sunhme"); - dev =3D &pci_dev->qdev; - qdev_set_nic_properties(dev, nd); - qdev_init_nofail(dev); - - onboard_nic_idx =3D i; + if (!nd->model || strcmp(nd->model, "sunhme") =3D=3D 0) { + if (!onboard_nic) { + pci_dev =3D pci_create_multifunction(pci_busA, PCI_DEVFN(1= , 1), + true, "sunhme"); + memcpy(&macaddr, &nd->macaddr.a, sizeof(MACAddr)); + onboard_nic =3D true; + } else { + pci_dev =3D pci_create_simple(pci_busB, -1, "sunhme"); + } } else { - pci_nic_init_nofail(nd, pci_bus, "ne2k_pci", NULL); + pci_dev =3D pci_create_simple(pci_busB, -1, nd->model); } + + dev =3D &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 =3D MAX(onboard_nic_idx, 0); =20 ide_drive_get(hd, ARRAY_SIZE(hd)); =20 - pci_cmd646_ide_init(pci_bus, hd, 1); + pci_dev =3D 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); =20 isa_create_simple(isa_bus, "i8042"); =20 @@ -527,7 +553,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); =20 dev =3D 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..955f45d33238dda2f1e99d97be9= 463fd1fac479d 100644 GIT binary patch delta 31686 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 delta 31753 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 ZMVKE;wIlUI*~8?Vr|m#Dj?(}6e*jT)>+Apk --=20 1.7.10.4