From nobody Mon Feb 9 03:30:38 2026 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; dkim=fail; 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 1511734143426497.1246319089287; Sun, 26 Nov 2017 14:09:03 -0800 (PST) Received: from localhost ([::1]:58184 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eJ56f-0006Q1-Kf for importer@patchew.org; Sun, 26 Nov 2017 17:08:57 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57012) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eJ4xz-0007CO-0j for qemu-devel@nongnu.org; Sun, 26 Nov 2017 17:00:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eJ4xy-00030H-28 for qemu-devel@nongnu.org; Sun, 26 Nov 2017 16:59:59 -0500 Received: from mail-it0-x241.google.com ([2607:f8b0:4001:c0b::241]:35580) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eJ4xx-000302-TI; Sun, 26 Nov 2017 16:59:58 -0500 Received: by mail-it0-x241.google.com with SMTP id x28so3495249ita.0; Sun, 26 Nov 2017 13:59:57 -0800 (PST) Received: from localhost.localdomain (173-29-146-33.client.mchsi.com. [173.29.146.33]) by smtp.gmail.com with ESMTPSA id n184sm6517218itg.9.2017.11.26.13.59.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 26 Nov 2017 13:59:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=beuW+4oEiE3auuui59g2l58/rm+03bI6kGFcMei6OBU=; b=DeXl/ADK16h9ejgmJblef+AsLg+dld348EkU3doqUjkX4OsUq1mP6hR2hd1RjDKteI pzlImmqNgV1IzRFsuoWKqxNANZTNW2j9cbeeRgMfgKs3cBgo9UMMf/hSxdnUumMEJl8d ofxqnwnpnUnCVywkfrlKqWctR/BEzvMx+X34sKeSsIdzGTCOPd1gI+EYhOG4AKxEfP2w FwnSV0I4wsGg+ghUCMg0oke/uDVD7ij6bFGqRQ+8HqtOz0SIQu+X3mSYX6gQPQRGiGmY ZOP4hy9OGYDJAj4BzSnVAta7+8n+wOr0V/ePOGeSTVdGOkk0d4Ffljh59ih3Nqay0k5H 42eA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=beuW+4oEiE3auuui59g2l58/rm+03bI6kGFcMei6OBU=; b=S5TxvzpXRuiYZt/zKVEj/7LxtF2XaEDLS+SeBoUjAghnZ7IHJgeIaVV8eMrNz+NR3Z Sr826EBSjLEfvlL8lG85MmIBB4N5iXwxGgxqHECE3qYxRC1tWHNPS1BvntswfNwBdI05 EbmXoEFPAE2dp/GIHgT2cey4ympMJdRyLWlR5anZmR4aDf6T2bm7vo5ysbMpturZs0oK d0n+9Xv8ecjI9mGeI9PP8qbAl+bREo4w3hZz8j13IVSodGZoDkGEHcRMX1WUguoq+8Ol 3bp6oji7JXIO41afTpQkaxn1Kspih17jKFcble15krRX/sUu04fc6SnnfiCRHBUlNB1e Nz8g== X-Gm-Message-State: AJaThX7t6UiSLw2jf0k+6up5/83ukvdeH7Xs9pEP1slm6ZXuubZC+Mn9 B8+3d9pmecCjYJngu/2nWyeJ5Q== X-Google-Smtp-Source: AGs4zMY1h3tJpmTsW6r8sTt9tATcC4/AYnBrFDjEeRpgO5mvrWZz+YdYc4gaU6MxB6Oj2D1DZQx+kA== X-Received: by 10.36.253.73 with SMTP id m70mr25596805ith.49.1511733597186; Sun, 26 Nov 2017 13:59:57 -0800 (PST) From: Michael Davidsaver To: Alexander Graf , David Gibson Date: Sun, 26 Nov 2017 15:59:11 -0600 Message-Id: <15378780eee5dc9ebc68361463a0fd6acea55556.1511731946.git.mdavidsaver@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: References: In-Reply-To: References: X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4001:c0b::241 Subject: [Qemu-devel] [PATCH 13/17] e500: move PCI host bridge into CCSR 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: , Cc: Michael Davidsaver , qemu-ppc@nongnu.org, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Michael Davidsaver --- hw/ppc/e500.c | 13 ++++--------- hw/ppc/e500_ccsr.c | 27 +++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 9 deletions(-) diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c index cfd5ed0152..b0c8495aef 100644 --- a/hw/ppc/e500.c +++ b/hw/ppc/e500.c @@ -769,6 +769,8 @@ void ppce500_init(MachineState *machine, PPCE500Params = *params) qdev_prop_set_uint32(dev, "mpic-model", params->mpic_version); qdev_prop_set_uint32(dev, "base", params->ccsrbar_base); qdev_prop_set_uint32(dev, "ram-size", ram_size); + qdev_prop_set_uint32(dev, "pci_first_slot", params->pci_first_slot); + qdev_prop_set_uint32(dev, "pci_first_pin_irq", pci_irq_nrs[0]); qdev_init_nofail(dev); ccsr_addr_space =3D sysbus_mmio_get_region(SYS_BUS_DEVICE(dev), 0); =20 @@ -778,20 +780,13 @@ void ppce500_init(MachineState *machine, PPCE500Param= s *params) =20 =20 /* PCI */ - dev =3D qdev_create(NULL, "e500-pcihost"); - object_property_add_child(qdev_get_machine(), "pci-host", OBJECT(dev), - &error_abort); - qdev_prop_set_uint32(dev, "first_slot", params->pci_first_slot); - qdev_prop_set_uint32(dev, "first_pin_irq", pci_irq_nrs[0]); - qdev_init_nofail(dev); + dev =3D DEVICE(object_resolve_path("/machine/pci-host", 0)); + assert(dev); s =3D SYS_BUS_DEVICE(dev); for (i =3D 0; i < PCI_NUM_PINS; i++) { sysbus_connect_irq(s, i, qdev_get_gpio_in(mpicdev, pci_irq_nrs[i])= ); } =20 - memory_region_add_subregion(ccsr_addr_space, MPC8544_PCI_REGS_OFFSET, - sysbus_mmio_get_region(s, 0)); - pci_bus =3D (PCIBus *)qdev_get_child_bus(dev, "pci.0"); if (!pci_bus) printf("couldn't create PCI controller!\n"); diff --git a/hw/ppc/e500_ccsr.c b/hw/ppc/e500_ccsr.c index cd8216daaf..4ec8f7524d 100644 --- a/hw/ppc/e500_ccsr.c +++ b/hw/ppc/e500_ccsr.c @@ -50,6 +50,8 @@ =20 #define E500_DUART_OFFSET(N) (0x4500 + (N) * 0x100) =20 +#define E500_PCI_OFFSET (0x8000ULL) + #define E500_PORPLLSR (0xE0000) #define E500_PVR (0xE00A0) #define E500_SVR (0xE00A4) @@ -75,6 +77,7 @@ typedef struct { =20 DeviceState *pic; DeviceState *i2c; + DeviceState *pcihost; } CCSRState; =20 #define TYPE_E500_CCSR "e500-ccsr" @@ -201,6 +204,7 @@ static void e500_ccsr_init(Object *obj) DeviceState *dev =3D DEVICE(obj); CCSRState *ccsr =3D E500_CCSR(dev); =20 + /* prepare MPIC */ assert(current_machine); if (kvm_enabled()) { =20 @@ -228,6 +232,18 @@ static void e500_ccsr_init(Object *obj) object_property_add_alias(obj, "mpic-model", OBJECT(ccsr->pic), "model", &error_fatal); + + /* prepare PCI host bridge */ + ccsr->pcihost =3D qdev_create(NULL, "e500-pcihost"); + object_property_add_child(qdev_get_machine(), "pci-host", OBJECT(ccsr-= >pcihost), + &error_abort); + + object_property_add_alias(obj, "pci_first_slot", + OBJECT(ccsr->pcihost), "first_slot", + &error_fatal); + object_property_add_alias(obj, "pci_first_pin_irq", + OBJECT(ccsr->pcihost), "first_pin_irq", + &error_fatal); } =20 static void e500_ccsr_realize(DeviceState *dev, Error **errp) @@ -240,6 +256,7 @@ static void e500_ccsr_realize(DeviceState *dev, Error *= *errp) ccsr, "e500-ccsr", 1024 * 1024); sysbus_init_mmio(SYS_BUS_DEVICE(dev), &ccsr->iomem); =20 + /* realize MPIC */ qdev_init_nofail(ccsr->pic); pic =3D SYS_BUS_DEVICE(ccsr->pic); =20 @@ -275,6 +292,13 @@ static void e500_ccsr_realize(DeviceState *dev, Error = **errp) sysbus_mmio_get_region(pic, 0)); /* Note: MPIC internal interrupts are offset by 16 */ =20 + /* realize PCI host bridge*/ + qdev_init_nofail(ccsr->pcihost); + + memory_region_add_subregion(&ccsr->iomem, E500_PCI_OFFSET, + sysbus_mmio_get_region( + SYS_BUS_DEVICE(ccsr->pcihost), 0)); + /* attach I2C controller */ ccsr->i2c =3D qdev_create(NULL, "mpc8540-i2c"); object_property_add_child(qdev_get_machine(), "i2c[*]", @@ -314,6 +338,9 @@ static Property e500_ccsr_props[] =3D { DEFINE_PROP_UINT32("porpllsr", CCSRState, porpllsr, 0), DEFINE_PROP_UINT32("ccb-freq", CCSRState, ccb_freq, 333333333u), /* "mpic-model" aliased from MPIC */ + /* "pci_first_slot" + * "pci_first_pin_irq" aliased from PCI host bridge + */ DEFINE_PROP_END_OF_LIST() }; =20 --=20 2.11.0