From nobody Fri May 3 09:43:17 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1660126240; cv=none; d=zohomail.com; s=zohoarc; b=B8c5zdWimSZW64xuHdRyWjGKmMgQfUofi69uAmhdqZNFngcjZLFxvv6lBXNNjw4ox97soTnateOYRdtfjRPjDQr7Z8uqG43kLjqwVz3kSPHfb+IpPXDykiyU6jhVkvFobH5jKyTAFbfPM8CxFMS+S232LwmKGs2ylacPmTYTm7c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1660126240; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=0KSqmnjISPdzB3lY+7VCeZqYcNoi08fni4asYVSgZRg=; b=JZjnkapnbNGUfhZJampuEZ59SJlHXocr3VWScDzvcpnyVs/Rqb3O/lX0C3iTMGb2JRm+wAXa0FZtXDdekschKc5H0Brrld/TuXQJVgin7iMcEH2SYVnIblghho6c8UBhKnYyXTuuwBqbt6C/tei7tGzNnQcM2+BECVIObZKRIaQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1660126240298711.1135014156565; Wed, 10 Aug 2022 03:10:40 -0700 (PDT) Received: from localhost ([::1]:35344 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oLifc-0001Hl-Ii for importer@patchew.org; Wed, 10 Aug 2022 06:10:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34014) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oLiaz-0006o5-0E; Wed, 10 Aug 2022 06:05:49 -0400 Received: from mail-vs1-xe2d.google.com ([2607:f8b0:4864:20::e2d]:37719) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oLiax-0000rk-17; Wed, 10 Aug 2022 06:05:48 -0400 Received: by mail-vs1-xe2d.google.com with SMTP id 66so14604079vse.4; Wed, 10 Aug 2022 03:05:45 -0700 (PDT) Received: from balboa.COMFAST (201-43-216-47.dsl.telesp.net.br. [201.43.216.47]) by smtp.gmail.com with ESMTPSA id 2-20020a1f1602000000b0037613541b27sm12277919vkw.39.2022.08.10.03.05.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Aug 2022 03:05:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc; bh=0KSqmnjISPdzB3lY+7VCeZqYcNoi08fni4asYVSgZRg=; b=gqXdrpO4jgJWOPicK1j/udHp4sudi7Y5fCI5EWp6R61/etP+zHJ4tcowtuXWQTs5gD CqEHVAUdRyM8U3PLQcsD2Ev7fSJf5LKYrNUOdO6NfvsbyFmWG+ZrYaHmv2ztFeNBmOXb OPWjPj13TKhgYxdZdeBLGP13ZPeyjrp+ogmuHUIZdSz8PKu8gRnWU96WLJVZQF1I76Wf jAYBGlqFaK/gkpTbNez5vMQhEOmBSLSwR1TBueB1J0wV+1RlJnO2uotOx73Gi9PPFQOR bec2uRf5pvW8naQk+vd1eo6gH5EKhv7/864h10v6WjIgySyicshbWWm/PeKnBTopvLIt ZD3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc; bh=0KSqmnjISPdzB3lY+7VCeZqYcNoi08fni4asYVSgZRg=; b=uVN2LBstZ0FXQ3RqoE1VTHJgZWeiR45ZzYT/7Jy2mrXZ9IQH9sviBfrfg9S5BqWsi1 5w2uYAfZr4VU5mOcWl7wr9ky3iG0iUJV4C2p8HMJ3NirzghVpgnXgomDsqyaDBlThdDs kX+8g4tKDXv+Q43BErEeMS9ww9Nq0RF6iloBKtxHuSOcAK2nZLX+Dn5DNGGp1h8n/ur7 ZNkOl40GC0TMNsrZuBSpweOFHvfvOJhwfWqwVXxLS6PFhCsM3mpghJpvzdORjRVTaPNz mZw5zUYmhZymEQkrhgm7oswtStMVMFwzutaE1TBX3Ek8vEzTP7cUwYKpZkQqVo+aK6/Z p/9A== X-Gm-Message-State: ACgBeo0FVVGdUcZ7ih+n9wMbQMxst5x4tjnzHz4jlUpUEp7GGnIk4WY7 gsPGbrqStMJstiwtJVP1DYahNvmU/+k= X-Google-Smtp-Source: AA6agR5Z69QjNAfL1xv+q+OGhQLuNXBUeZUGGDVDuJdtWQ0gD33h7pdwM6iPFLD/GmnKPLQXLHQCiA== X-Received: by 2002:a67:eada:0:b0:388:95b5:886f with SMTP id s26-20020a67eada000000b0038895b5886fmr8943406vso.10.1660125944294; Wed, 10 Aug 2022 03:05:44 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, clg@kaod.org, fbarrat@linux.ibm.com, Daniel Henrique Barboza Subject: [PATCH for-7.2 v3 01/11] ppc/pnv: add phb-id/chip-id PnvPHB3RootBus properties Date: Wed, 10 Aug 2022 07:05:26 -0300 Message-Id: <20220810100536.473859-2-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220810100536.473859-1-danielhb413@gmail.com> References: <20220810100536.473859-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::e2d; envelope-from=danielhb413@gmail.com; helo=mail-vs1-xe2d.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1660126241109100002 We rely on the phb-id and chip-id, which are PHB properties, to assign chassis and slot to the root port. For default devices this is no big deal: the root port is being created under pnv_phb_realize() and the values are being passed on via the 'index' and 'chip-id' of the pnv_phb_attach_root_port() helper. If we want to implement user created root ports we have a problem. The user created root port will not be aware of which PHB it belongs to, unless we're willing to violate QOM best practices and access the PHB via dev->parent_bus->parent. What we can do is to access the root bus parent bus. Since we're already assigning the root port as QOM child of the bus, and the bus is initiated using PHB properties, let's add phb-id and chip-id as properties of the bus. This will allow us trivial access to them, for both user-created and default root ports, without doing anything too shady with QOM. Reviewed-by: C=C3=A9dric Le Goater Signed-off-by: Daniel Henrique Barboza --- hw/pci-host/pnv_phb3.c | 50 ++++++++++++++++++++++++++++++++++ include/hw/pci-host/pnv_phb3.h | 9 +++++- 2 files changed, 58 insertions(+), 1 deletion(-) diff --git a/hw/pci-host/pnv_phb3.c b/hw/pci-host/pnv_phb3.c index d4c04a281a..af8575c007 100644 --- a/hw/pci-host/pnv_phb3.c +++ b/hw/pci-host/pnv_phb3.c @@ -1006,6 +1006,11 @@ void pnv_phb3_bus_init(DeviceState *dev, PnvPHB3 *ph= b) &phb->pci_mmio, &phb->pci_io, 0, 4, TYPE_PNV_PHB3_ROOT_BUS); =20 + object_property_set_int(OBJECT(pci->bus), "phb-id", phb->phb_id, + &error_abort); + object_property_set_int(OBJECT(pci->bus), "chip-id", phb->chip_id, + &error_abort); + pci_setup_iommu(pci->bus, pnv_phb3_dma_iommu, phb); } =20 @@ -1105,10 +1110,55 @@ static const TypeInfo pnv_phb3_type_info =3D { .instance_init =3D pnv_phb3_instance_init, }; =20 +static void pnv_phb3_root_bus_get_prop(Object *obj, Visitor *v, + const char *name, + void *opaque, Error **errp) +{ + PnvPHB3RootBus *bus =3D PNV_PHB3_ROOT_BUS(obj); + uint64_t value =3D 0; + + if (strcmp(name, "phb-id") =3D=3D 0) { + value =3D bus->phb_id; + } else { + value =3D bus->chip_id; + } + + visit_type_size(v, name, &value, errp); +} + +static void pnv_phb3_root_bus_set_prop(Object *obj, Visitor *v, + const char *name, + void *opaque, Error **errp) + +{ + PnvPHB3RootBus *bus =3D PNV_PHB3_ROOT_BUS(obj); + uint64_t value; + + if (!visit_type_size(v, name, &value, errp)) { + return; + } + + if (strcmp(name, "phb-id") =3D=3D 0) { + bus->phb_id =3D value; + } else { + bus->chip_id =3D value; + } +} + static void pnv_phb3_root_bus_class_init(ObjectClass *klass, void *data) { BusClass *k =3D BUS_CLASS(klass); =20 + object_class_property_add(klass, "phb-id", "int", + pnv_phb3_root_bus_get_prop, + pnv_phb3_root_bus_set_prop, + NULL, NULL); + + object_class_property_add(klass, "chip-id", "int", + pnv_phb3_root_bus_get_prop, + pnv_phb3_root_bus_set_prop, + NULL, NULL); + /* * PHB3 has only a single root complex. Enforce the limit on the * parent bus diff --git a/include/hw/pci-host/pnv_phb3.h b/include/hw/pci-host/pnv_phb3.h index bff69201d9..4854f6d2f6 100644 --- a/include/hw/pci-host/pnv_phb3.h +++ b/include/hw/pci-host/pnv_phb3.h @@ -104,9 +104,16 @@ struct PnvPBCQState { }; =20 /* - * PHB3 PCIe Root port + * PHB3 PCIe Root Bus */ #define TYPE_PNV_PHB3_ROOT_BUS "pnv-phb3-root" +struct PnvPHB3RootBus { + PCIBus parent; + + uint32_t chip_id; + uint32_t phb_id; +}; +OBJECT_DECLARE_SIMPLE_TYPE(PnvPHB3RootBus, PNV_PHB3_ROOT_BUS) =20 /* * PHB3 PCIe Host Bridge for PowerNV machines (POWER8) --=20 2.36.1 From nobody Fri May 3 09:43:17 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1660126510; cv=none; d=zohomail.com; s=zohoarc; b=M+lAgQh/xeA98CG1JjAGI/4ziUhDk5TYnK9/yfVp9VeFYFeAOuo7Qdfe+tRgRO+vlsGfpXrbhBzf/2jarN+l3quLT8RMr41tPAabqnYqzJw2b4fb17YUfuhoocZoeJDuReETqCHZAytjINh9Qzpq2TqhFPNYmkQnzxHKdb0LSYw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1660126510; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=u503m2SCRYm6s6XAxPT5+3oWEmQoe2DCrk66kmZCz14=; b=LhBiApEmZHI/21cc4Nc4YWo3fWWEtEBudXOrJ6xX9s6VLz0x+MpD445EDXyEDPXvi9by8Ece3pB8gNymS7pwzvZhF1htqnYD4I0j1shV8+5dkpfJ9bJ6ne7dnGTxsMW4+oa00dKrGB9juRYbTLAOLn1zD/EIYeBJCz4esHmQFCE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1660126510910340.5716548127043; Wed, 10 Aug 2022 03:15:10 -0700 (PDT) Received: from localhost ([::1]:43302 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oLik1-0006jY-QW for importer@patchew.org; Wed, 10 Aug 2022 06:15:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34036) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oLiaz-0006o7-Mn; Wed, 10 Aug 2022 06:05:49 -0400 Received: from mail-vk1-xa2a.google.com ([2607:f8b0:4864:20::a2a]:39583) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oLiax-0000s2-Ub; Wed, 10 Aug 2022 06:05:49 -0400 Received: by mail-vk1-xa2a.google.com with SMTP id q191so7146436vkb.6; Wed, 10 Aug 2022 03:05:47 -0700 (PDT) Received: from balboa.COMFAST (201-43-216-47.dsl.telesp.net.br. [201.43.216.47]) by smtp.gmail.com with ESMTPSA id 2-20020a1f1602000000b0037613541b27sm12277919vkw.39.2022.08.10.03.05.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Aug 2022 03:05:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc; bh=u503m2SCRYm6s6XAxPT5+3oWEmQoe2DCrk66kmZCz14=; b=mVQmq6NSZ40P5cP+1Fi1F1N1MTgVcqKPJw9M+yQv0yET29NEzat7SUt6MskmR0L20O ju6Vv4UKswzV0EOgXrGa5CKsOiHI9CvAvr6KfdYDNq/FfQt96PsDH5jvVVvb6mRU+9WI SGZ+plmgk1sd5uIlgUsW4o0EFNPY0/OKdgI2O2sh/5UMXykZtjGX9mBAdhVznoxcepKT z+KxoQEi1FxEcnVX+hJuniDqyUzhkC03q3lYui+f0rVMnL2uQ/bB6Fk6nxwf6qTSea3Q hw41z5Gpa1Yd+CBKf3CCpy0iZjbkanC9Rr/dHtrsGht307LD+QK9wUN+xDDjkVIA+BPo yn3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc; bh=u503m2SCRYm6s6XAxPT5+3oWEmQoe2DCrk66kmZCz14=; b=rHfrAX/E9w0L7OxksE2mJC+aHCG+LTo00tmcPUzkYgi+PVHokiyzIYeInD1ZCVPenL bb6IFV51KS0IDSR4hCJoIlKNn7NJEj76+yhP4YpUZCHnj8Y6Q2GC7o0izXJziGQ9I3re p24kyITPRUGo/AXuTDVmnCg61rPP8Cq1SSg1OkdjZQzazZo0CaxxliIXTstMIuk1G6n0 nPwYNx011BVodc+UTf7yxPKniJ2dpLIK6IR+RXr/TNOcUd+O1t0Q1TV/Ujx/t5OkwRtY ocKeN+B6hUtbpmyEs+18vjd4Orbv/hSpHWz2aYxg5/39zI1weMa9dCnI/mHZXfRZ5fWb QQrw== X-Gm-Message-State: ACgBeo07xISKmTz05l21UfFo/Cz8Eejb6F4hK962g2IiGUXprmUMD/nG Tj9Os7t4j0qIMCD94DSSj+k6VFdWtWo= X-Google-Smtp-Source: AA6agR4nJCSoweMQwmpIEVtbgCyBeyNkPGUVpJpLgf3XfsH6nE4H77p90wc3VLp55C6XjkBcMEmkuQ== X-Received: by 2002:a1f:30cb:0:b0:376:486a:7cb6 with SMTP id w194-20020a1f30cb000000b00376486a7cb6mr11097960vkw.29.1660125946474; Wed, 10 Aug 2022 03:05:46 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, clg@kaod.org, fbarrat@linux.ibm.com, Daniel Henrique Barboza Subject: [PATCH for-7.2 v3 02/11] ppc/pnv: add phb-id/chip-id PnvPHB4RootBus properties Date: Wed, 10 Aug 2022 07:05:27 -0300 Message-Id: <20220810100536.473859-3-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220810100536.473859-1-danielhb413@gmail.com> References: <20220810100536.473859-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::a2a; envelope-from=danielhb413@gmail.com; helo=mail-vk1-xa2a.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1660126512305100001 The same rationale provided in the PHB3 bus case applies here. Note: we could have merged both buses in a single object, like we did with the root ports, and spare some boilerplate. The reason we opted to preserve both buses objects is twofold: - there's not user side advantage in doing so. Unifying the root ports presents a clear user QOL change when we enable user created devices back. The buses objects, aside from having a different QOM name, is transparent to the user; - we leave a door opened in case we want to increase the root port limit for phb4/5 later on without having to deal with phb3 code. Reviewed-by: C=C3=A9dric Le Goater Signed-off-by: Daniel Henrique Barboza --- hw/pci-host/pnv_phb4.c | 51 ++++++++++++++++++++++++++++++++++ include/hw/pci-host/pnv_phb4.h | 10 +++++++ 2 files changed, 61 insertions(+) diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c index b98c394713..824e1a73fb 100644 --- a/hw/pci-host/pnv_phb4.c +++ b/hw/pci-host/pnv_phb4.c @@ -1551,6 +1551,12 @@ void pnv_phb4_bus_init(DeviceState *dev, PnvPHB4 *ph= b) pnv_phb4_set_irq, pnv_phb4_map_irq, p= hb, &phb->pci_mmio, &phb->pci_io, 0, 4, TYPE_PNV_PHB4_ROOT_BUS); + + object_property_set_int(OBJECT(pci->bus), "phb-id", phb->phb_id, + &error_abort); + object_property_set_int(OBJECT(pci->bus), "chip-id", phb->chip_id, + &error_abort); + pci_setup_iommu(pci->bus, pnv_phb4_dma_iommu, phb); pci->bus->flags |=3D PCI_BUS_EXTENDED_CONFIG_SPACE; } @@ -1708,10 +1714,55 @@ static const TypeInfo pnv_phb5_type_info =3D { .instance_size =3D sizeof(PnvPHB4), }; =20 +static void pnv_phb4_root_bus_get_prop(Object *obj, Visitor *v, + const char *name, + void *opaque, Error **errp) +{ + PnvPHB4RootBus *bus =3D PNV_PHB4_ROOT_BUS(obj); + uint64_t value =3D 0; + + if (strcmp(name, "phb-id") =3D=3D 0) { + value =3D bus->phb_id; + } else { + value =3D bus->chip_id; + } + + visit_type_size(v, name, &value, errp); +} + +static void pnv_phb4_root_bus_set_prop(Object *obj, Visitor *v, + const char *name, + void *opaque, Error **errp) + +{ + PnvPHB4RootBus *bus =3D PNV_PHB4_ROOT_BUS(obj); + uint64_t value; + + if (!visit_type_size(v, name, &value, errp)) { + return; + } + + if (strcmp(name, "phb-id") =3D=3D 0) { + bus->phb_id =3D value; + } else { + bus->chip_id =3D value; + } +} + static void pnv_phb4_root_bus_class_init(ObjectClass *klass, void *data) { BusClass *k =3D BUS_CLASS(klass); =20 + object_class_property_add(klass, "phb-id", "int", + pnv_phb4_root_bus_get_prop, + pnv_phb4_root_bus_set_prop, + NULL, NULL); + + object_class_property_add(klass, "chip-id", "int", + pnv_phb4_root_bus_get_prop, + pnv_phb4_root_bus_set_prop, + NULL, NULL); + /* * PHB4 has only a single root complex. Enforce the limit on the * parent bus diff --git a/include/hw/pci-host/pnv_phb4.h b/include/hw/pci-host/pnv_phb4.h index 20aa4819d3..50d4faa001 100644 --- a/include/hw/pci-host/pnv_phb4.h +++ b/include/hw/pci-host/pnv_phb4.h @@ -45,7 +45,17 @@ typedef struct PnvPhb4DMASpace { QLIST_ENTRY(PnvPhb4DMASpace) list; } PnvPhb4DMASpace; =20 +/* + * PHB4 PCIe Root Bus + */ #define TYPE_PNV_PHB4_ROOT_BUS "pnv-phb4-root" +struct PnvPHB4RootBus { + PCIBus parent; + + uint32_t chip_id; + uint32_t phb_id; +}; +OBJECT_DECLARE_SIMPLE_TYPE(PnvPHB4RootBus, PNV_PHB4_ROOT_BUS) =20 /* * PHB4 PCIe Host Bridge for PowerNV machines (POWER9) --=20 2.36.1 From nobody Fri May 3 09:43:17 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1660126930; cv=none; d=zohomail.com; s=zohoarc; b=ehkJLwSRcj5f0yMQYv/5OEzE3T8NyL6U3tzSTfFLtR9Fq6/D50cuYd0p/xVHfn+3Vp4oOdJP1QleLEAbfO1mDBTIavlu+Ek9wrhUJ636vtBN5Yrz+PQy3gvPSw5YIX+JWGO2Oo9NmzloI83EzDP1VRh9VKpT16vw39MkzNo+2uY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1660126930; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=O97pVC+LXnGk5PNh1e+NwaT3e1S2FbEewKrN94V2Fbs=; b=l3dv/38lEBxC3sT+2uV5NLS7+UCP/BV6165ynJgiB+M3vqKOqHqVdXxrkpOmhVPUeUD88xyHzmRNqi8NjVVRHku2ZOdRfJyXyOBpFu32ub9fHtWH2VjEqs1EkoxHqUkeWVTtaDPWPKNCTf5g8gp0Iav80hpvVKALLLHtapwqLyA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1660126930035815.4662308350021; Wed, 10 Aug 2022 03:22:10 -0700 (PDT) Received: from localhost ([::1]:50994 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oLiqm-0003fo-Va for importer@patchew.org; Wed, 10 Aug 2022 06:22:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34078) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oLib2-0006pJ-5v; Wed, 10 Aug 2022 06:05:53 -0400 Received: from mail-vs1-xe2c.google.com ([2607:f8b0:4864:20::e2c]:45785) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oLib0-0000sb-AT; Wed, 10 Aug 2022 06:05:51 -0400 Received: by mail-vs1-xe2c.google.com with SMTP id m67so14560504vsc.12; Wed, 10 Aug 2022 03:05:49 -0700 (PDT) Received: from balboa.COMFAST (201-43-216-47.dsl.telesp.net.br. [201.43.216.47]) by smtp.gmail.com with ESMTPSA id 2-20020a1f1602000000b0037613541b27sm12277919vkw.39.2022.08.10.03.05.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Aug 2022 03:05:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc; bh=O97pVC+LXnGk5PNh1e+NwaT3e1S2FbEewKrN94V2Fbs=; b=l5ifi6ELSQxIB5GxAQIWc5TnupWtCYgyrTvc0WriSC2EkoRHi7kM9mxdn3yp2dzRZY PQuX1ant+8SyTb1/ezd+51Y1xuEOLNdodS7ykYRkwXQcy/TZK0wn+AOY87h8BlrNi4Gw DgniMz8l98EMiT9cGFOem33XuTClL7OACwlr2tapx8s8+KfzmYN1lL348GoiJs+j+osE NXGolanGw6t+ncxQJl724g5iGcw7Me0daPjgUCf/plHzQwhgYavVxMvM5MQiDXWUPULr W8soxELSEuLaB4LoJVb9W/Sm/dflV9ckCgUlUHybH1qI8/0udigm0qzO47Fs2b16lFXp JfyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc; bh=O97pVC+LXnGk5PNh1e+NwaT3e1S2FbEewKrN94V2Fbs=; b=C1YjC4/i1T5RjM6FvEViy06DSMQ6EZJS0zRU2mJY9zNxLeXIuIIm0T7r0hd0m/7GC1 tu35nF0TwMXOD8E9Sgc45EPZlqMMcapcGYDh3es14FI20iwwmOIzrG6C5qeNJ3tuQATp zfS1yC9Bpgk5WpX9gFG8Sw9H7BwUP/AoPAxmE3Xdgqr4CjnJ5w9WGgboBO0dShnsozQ6 CAgRcWWyXTLkZJn4kKwrRMtMEej9zPePX+4V6/Ey04/XlrUWKu+oNtEVlLuyUmIXxqoy KDcd+rbjPdQ+YmQiGJo6zKQr57fWEh/O+4lCDuvyqP19CPxdNpA35fiZrf5Jw8523L/H nZYg== X-Gm-Message-State: ACgBeo0/B+uUKz9zd39XiyToD86ib/FtXspYz5z4A+r/lj5zloeq3Cg2 YzAbZmSlW69JY9ToZitUDomQwsAbQN0= X-Google-Smtp-Source: AA6agR5QsTAZ4nRrK7oJI5D3nX3j8XhuXW63uXmsQ57GipdX/o0U+OCYw4Ycfx4IDDtom+BaTmA/hg== X-Received: by 2002:a67:b009:0:b0:357:af40:6b7e with SMTP id z9-20020a67b009000000b00357af406b7emr11230037vse.67.1660125948523; Wed, 10 Aug 2022 03:05:48 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, clg@kaod.org, fbarrat@linux.ibm.com, Daniel Henrique Barboza Subject: [PATCH for-7.2 v3 03/11] ppc/pnv: set root port chassis and slot using Bus properties Date: Wed, 10 Aug 2022 07:05:28 -0300 Message-Id: <20220810100536.473859-4-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220810100536.473859-1-danielhb413@gmail.com> References: <20220810100536.473859-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::e2c; envelope-from=danielhb413@gmail.com; helo=mail-vs1-xe2c.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1660126932136100002 For default root ports we have a way of accessing chassis and slot, before root_port_realize(), via pnv_phb_attach_root_port(). For the future user created root ports this won't be the case: we can't use this helper because we don't have access to the PHB phb-id/chip-id values. In earlier patches we've added phb-id and chip-id to pnv-phb-root-bus objects. We're now able to use the bus to retrieve them. The bus is reachable for both user created and default devices, so we're changing all the code paths. This also allow us to validate these changes with the existing default devices. Reviewed-by: C=C3=A9dric Le Goater Signed-off-by: Daniel Henrique Barboza --- hw/pci-host/pnv_phb.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/hw/pci-host/pnv_phb.c b/hw/pci-host/pnv_phb.c index c47ed92462..826c0c144e 100644 --- a/hw/pci-host/pnv_phb.c +++ b/hw/pci-host/pnv_phb.c @@ -25,21 +25,19 @@ * QOM id. 'chip_id' is going to be used as PCIE chassis for the * root port. */ -static void pnv_phb_attach_root_port(PCIHostState *pci, int index, int chi= p_id) +static void pnv_phb_attach_root_port(PCIHostState *pci) { PCIDevice *root =3D pci_new(PCI_DEVFN(0, 0), TYPE_PNV_PHB_ROOT_PORT); - g_autofree char *default_id =3D g_strdup_printf("%s[%d]", - TYPE_PNV_PHB_ROOT_PORT, - index); const char *dev_id =3D DEVICE(root)->id; + g_autofree char *default_id =3D NULL; + int index; + + index =3D object_property_get_int(OBJECT(pci->bus), "phb-id", &error_f= atal); + default_id =3D g_strdup_printf("%s[%d]", TYPE_PNV_PHB_ROOT_PORT, index= ); =20 object_property_add_child(OBJECT(pci->bus), dev_id ? dev_id : default_= id, OBJECT(root)); =20 - /* Set unique chassis/slot values for the root port */ - qdev_prop_set_uint8(DEVICE(root), "chassis", chip_id); - qdev_prop_set_uint16(DEVICE(root), "slot", index); - pci_realize_and_unref(root, pci->bus, &error_fatal); } =20 @@ -93,7 +91,7 @@ static void pnv_phb_realize(DeviceState *dev, Error **err= p) pnv_phb4_bus_init(dev, PNV_PHB4(phb->backend)); } =20 - pnv_phb_attach_root_port(pci, phb->phb_id, phb->chip_id); + pnv_phb_attach_root_port(pci); } =20 static const char *pnv_phb_root_bus_path(PCIHostState *host_bridge, @@ -162,9 +160,18 @@ static void pnv_phb_root_port_realize(DeviceState *dev= , Error **errp) { PCIERootPortClass *rpc =3D PCIE_ROOT_PORT_GET_CLASS(dev); PnvPHBRootPort *phb_rp =3D PNV_PHB_ROOT_PORT(dev); + PCIBus *bus =3D PCI_BUS(qdev_get_parent_bus(dev)); PCIDevice *pci =3D PCI_DEVICE(dev); uint16_t device_id =3D 0; Error *local_err =3D NULL; + int chip_id, index; + + chip_id =3D object_property_get_int(OBJECT(bus), "chip-id", &error_fat= al); + index =3D object_property_get_int(OBJECT(bus), "phb-id", &error_fatal); + + /* Set unique chassis/slot values for the root port */ + qdev_prop_set_uint8(dev, "chassis", chip_id); + qdev_prop_set_uint16(dev, "slot", index); =20 rpc->parent_realize(dev, &local_err); if (local_err) { --=20 2.36.1 From nobody Fri May 3 09:43:17 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1660126598; cv=none; d=zohomail.com; s=zohoarc; b=csN61BquLCDDfacHfWrQ/lXcP9MRjhmLF/3iVSTFhZjVYopnYfLmPRR7TxDQiHW3cCc2G6r+GYKLvhDbiWnHHje+oQj2qKCypAAoKjwk523OtXa102Fz1D0Uxi4d6MTnMkvahOYDqIfQ2fRjO+SFCnH/wrhwuJUS4IkD3bCDV9o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1660126598; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=XMBReZ2JhvR+Klg4IaQSVacwrD04Hbb8SBkJdEnH5O4=; b=FYhqka31/qyAHLfLQ8JmbtWyI+/fTyc8ZXOA6kNw6rdyJRhiMwMZgMWRtklS1kjSXNSg7CIlMMODqpzo2CRfR88Fh3UrOe8W3/Rygyo+SPCfLNFx12Lrr6dyufIFISLC5UDFlbRMyBpFirNzkN2kxoZ8LHyq85JDGwRt2E3GOmk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1660126598759270.5698071592416; Wed, 10 Aug 2022 03:16:38 -0700 (PDT) Received: from localhost ([::1]:44304 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oLilR-0007O4-Jo for importer@patchew.org; Wed, 10 Aug 2022 06:16:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34106) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oLib4-0006pU-2G; Wed, 10 Aug 2022 06:05:58 -0400 Received: from mail-vk1-xa29.google.com ([2607:f8b0:4864:20::a29]:36538) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oLib2-0000tC-AX; Wed, 10 Aug 2022 06:05:53 -0400 Received: by mail-vk1-xa29.google.com with SMTP id x128so4132281vke.3; Wed, 10 Aug 2022 03:05:51 -0700 (PDT) Received: from balboa.COMFAST (201-43-216-47.dsl.telesp.net.br. [201.43.216.47]) by smtp.gmail.com with ESMTPSA id 2-20020a1f1602000000b0037613541b27sm12277919vkw.39.2022.08.10.03.05.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Aug 2022 03:05:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc; bh=XMBReZ2JhvR+Klg4IaQSVacwrD04Hbb8SBkJdEnH5O4=; b=KZASP0e1HEq1KGANSgPzs+FPtAgkuT/cv3IfKMxAONcybft7pebFmI2rZAScSemjVD ULHfU9ovdWzaAHnAf69O7fLr1Wft1+W5neK5cLfrLhiLKoSFEpLUgSeDWa/VMGdBOFTL v+hmREKvkZ3CVGzxcWaG/0P20B76WcrEG5gWfGTbGPBc2H84var3g2338ISDGRJBViPC wlSSZl+TZBXUK3dxkE8o0RmyJBV+s0Av7UTiUf/z0Ai1t0pbIbIMOIxNToKnFSgBeM91 OTWeFcJbu0JXzBT3Zb6lGyU3zJCuJ9SQC6guWhelV90aqkU2yVaqOfKlX0eOtLOrJgYH XLzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc; bh=XMBReZ2JhvR+Klg4IaQSVacwrD04Hbb8SBkJdEnH5O4=; b=fSe4NIUJiuhUC5Wjqq/A4YKo0lLiCoJtuKEAU1x1d6jG9Tv9eHtLPstDvZDfg56m+8 7tuxcT2QD4350By+TM1uj4PjAPnTTyCVhGnKQWZdTXhtt/STWMszGrzsCEkbeaVRqsY7 Kzg74bBEF6T8VWfEetPGalNQK+o583L6RNZ5R4B0PyU09FSYxMZ5B54qlUuINTJcuX+C RCthUWIrt3p0BvfVDuShkD49fgVcKL9BUOYS7hUZWHcG2wbFTvtumuMYIz4K9jpPHazQ C2hmviFsMExEkDT9Qvh/RXW95/yDIKlHubuSeGQO9E6CEyMaLDe4KI273wjFonxWq/yE JXAA== X-Gm-Message-State: ACgBeo2gXzjPPW9GjGLPCEfv86zggAs6eNaNFA4uypfRtzCM4POYAe1f 6ufKgyThUIbDmIwDIm5U+3pWisz3SUE= X-Google-Smtp-Source: AA6agR419bXQQqu/aZg/GOfk5SjmNRrlBcU2AbjBN4UzgCpQHwA9Fuhfsm47FRIzS0c63Ct6chaxmw== X-Received: by 2002:a1f:cc82:0:b0:376:9e8b:7a74 with SMTP id c124-20020a1fcc82000000b003769e8b7a74mr11208365vkg.24.1660125950831; Wed, 10 Aug 2022 03:05:50 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, clg@kaod.org, fbarrat@linux.ibm.com, Daniel Henrique Barboza Subject: [PATCH for-7.2 v3 04/11] ppc/pnv: add helpers for pnv-phb user devices Date: Wed, 10 Aug 2022 07:05:29 -0300 Message-Id: <20220810100536.473859-5-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220810100536.473859-1-danielhb413@gmail.com> References: <20220810100536.473859-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::a29; envelope-from=danielhb413@gmail.com; helo=mail-vk1-xa29.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1660126599238100001 Content-Type: text/plain; charset="utf-8" pnv_parent_qom_fixup() and pnv_parent_bus_fixup() are versions of the helpers that were reverted by commit 9c10d86fee "ppc/pnv: Remove user-created PHB{3,4,5} devices". They are needed to amend the QOM and bus hierarchies of user created pnv-phbs, matching them with default pnv-phbs. A new helper pnv_phb_user_device_init() is created to handle user-created devices setup. We're going to call it inside pnv_phb_realize() in case we're realizing an user created device. This will centralize all user device realated in a single spot, leaving the realize functions of the phb3/phb4 backends untouched. Signed-off-by: Daniel Henrique Barboza --- hw/pci-host/pnv_phb.c | 76 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/hw/pci-host/pnv_phb.c b/hw/pci-host/pnv_phb.c index 826c0c144e..18a050a6d3 100644 --- a/hw/pci-host/pnv_phb.c +++ b/hw/pci-host/pnv_phb.c @@ -18,6 +18,37 @@ #include "hw/qdev-properties.h" #include "qom/object.h" =20 + +/* + * Set the QOM parent of an object child. If the device state + * associated with the child has an id, use it as QOM id. Otherwise + * use object_typename[index] as QOM id. + */ +static void pnv_parent_qom_fixup(Object *parent, Object *child, int index) +{ + g_autofree char *default_id =3D + g_strdup_printf("%s[%d]", object_get_typename(child), index); + const char *dev_id =3D DEVICE(child)->id; + + if (child->parent =3D=3D parent) { + return; + } + + object_ref(child); + object_unparent(child); + object_property_add_child(parent, dev_id ? dev_id : default_id, child); + object_unref(child); +} + +static void pnv_parent_bus_fixup(DeviceState *parent, DeviceState *child) +{ + BusState *parent_bus =3D qdev_get_parent_bus(parent); + + if (!qdev_set_parent_bus(child, parent_bus, &error_fatal)) { + return; + } +} + /* * Attach a root port device. * @@ -41,6 +72,43 @@ static void pnv_phb_attach_root_port(PCIHostState *pci) pci_realize_and_unref(root, pci->bus, &error_fatal); } =20 +/* + * User created devices won't have the initial setup that default + * devices have. This setup consists of assigning a parent device + * (chip for PHB3, PEC for PHB4/5) that will be the QOM/bus parent + * of the PHB. + */ +static void pnv_phb_user_device_init(PnvPHB *phb) +{ + PnvMachineState *pnv =3D PNV_MACHINE(qdev_get_machine()); + PnvChip *chip =3D pnv_get_chip(pnv, phb->chip_id); + Object *parent =3D NULL; + + if (!chip) { + error_setg(&error_fatal, "invalid chip id: %d", phb->chip_id); + return; + } + + if (phb->version =3D=3D 3) { + parent =3D OBJECT(chip); + } else { + /* phb4 support will be added later */ + return; + } + + /* + * Reparent user created devices to the chip to build + * correctly the device tree. pnv_xscom_dt() needs every + * PHB to be a child of the chip to build the DT correctly. + * + * TODO: for version 3 we're still parenting the PHB with the + * chip. We should parent with a (so far not implemented) + * PHB3 PEC device. + */ + pnv_parent_qom_fixup(parent, OBJECT(phb), phb->phb_id); + pnv_parent_bus_fixup(DEVICE(chip), DEVICE(phb)); +} + static void pnv_phb_realize(DeviceState *dev, Error **errp) { PnvPHB *phb =3D PNV_PHB(dev); @@ -74,6 +142,14 @@ static void pnv_phb_realize(DeviceState *dev, Error **e= rrp) object_property_set_uint(phb->backend, "chip-id", phb->chip_id, errp); object_property_set_link(phb->backend, "phb-base", OBJECT(phb), errp); =20 + /* + * Handle user created devices. User devices will not have a + * pointer to a chip (PHB3) and a PEC (PHB4/5). + */ + if (!phb->chip && !phb->pec) { + pnv_phb_user_device_init(phb); + } + if (phb->version =3D=3D 3) { object_property_set_link(phb->backend, "chip", OBJECT(phb->chip), errp); --=20 2.36.1 From nobody Fri May 3 09:43:17 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1660126245; cv=none; d=zohomail.com; s=zohoarc; b=Bh824jBzQP01JwrdoWT93tCR+OtwF0EY67nRm7uHa7x9nEQ40P6PXvhBxlejDvlmeZHAbgRSQr8AWM9ZHmOmfi1PeDMV9jkTlsklUJgJKiBntI11rujRAmMpSHZTkQXvUP49TUevqS3Ihsy3bFrBKwlqr+UONhns79zuqnH5sEw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1660126245; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=NQFqbwALdRiX7wwO3qFjaIKW0d0xtJ9AW0eJhFmjOKs=; b=GoRZtxHklwqXKYmFWOOOQ6ev0tn9mdqT4jijAdiC28COUrlHo6Rr0J6+pjYu2+kHhbPZD60b0gKUx+YK2iuRDL5TbVWivqH8vYpt54UHjtGaWBywjplwIo/iG0ZFXYdTKQnxMJIf/5OI9aE7v0RZ9YPzCnIRQAigTjnA/ZTk8Oc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1660126245485165.08153298629838; Wed, 10 Aug 2022 03:10:45 -0700 (PDT) Received: from localhost ([::1]:35674 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oLifj-0001WE-O9 for importer@patchew.org; Wed, 10 Aug 2022 06:10:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34148) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oLib6-0006pr-KG; Wed, 10 Aug 2022 06:06:01 -0400 Received: from mail-vs1-xe2c.google.com ([2607:f8b0:4864:20::e2c]:33373) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oLib4-0000uC-Ty; Wed, 10 Aug 2022 06:05:56 -0400 Received: by mail-vs1-xe2c.google.com with SMTP id q15so14663195vsr.0; Wed, 10 Aug 2022 03:05:54 -0700 (PDT) Received: from balboa.COMFAST (201-43-216-47.dsl.telesp.net.br. [201.43.216.47]) by smtp.gmail.com with ESMTPSA id 2-20020a1f1602000000b0037613541b27sm12277919vkw.39.2022.08.10.03.05.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Aug 2022 03:05:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc; bh=NQFqbwALdRiX7wwO3qFjaIKW0d0xtJ9AW0eJhFmjOKs=; b=e7k7MTjOYKzibWnMM3vXKvcGMm9cETFZaH8/SRbqSHaWA05Tazak54fBCk4ThKup7r b9dARi5mizJn6IoOmAesuDieLVjsXSXgFlC4LWKCo16ZG5DQfiN9aZ740QHG+9sdXSn3 inK7gxfWEba2GVqSG62cJhluFN9i6UoA6WvjvAgvDLeAvva4K/GpUW13677jbrxlU9qI eq0EDjKR9EvJvhcJVVOPGXOEJ1JVJzZwYso1ka+T5ly0yzof9ehe6KC30Td392rGrTG4 IyAXWNyRtgKq+O9uGBX15UdtO6InL6NHyaXG8j6R0bjaD6QH6ZhCVkgvRKMh2XZjQRop gPpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc; bh=NQFqbwALdRiX7wwO3qFjaIKW0d0xtJ9AW0eJhFmjOKs=; b=aJUbWsXlCkSTdNhhcJslBWDS53TRhjo/CO3a+HlTVQGeME+MUbO6uzLOdnfSETHnFp V0A/bFPGGz0MhKjO3WOPPxjaQdx4mYCtR6kNS3z4hPVGh6COPSMQhiJF87cL/kLwZMVb Zu2qsK4PbWHDsODFNsnZAWrSOqioyRmH+50u4vyO1HoUKxZp690TaOVaI94lspYpbBBN 5sv2w9cTrO471wygofcdiiiXwWK21cWAyMJSzXKVQBIaROJme8NTNgv8G/CQyL97Zb8r 0GPpe5mSgb2DP0aOs9KJKisbKi13zHqBHJFfiG76VmrYzBsGzLMHx4FIOXWM1u+BzWAy 2ceg== X-Gm-Message-State: ACgBeo0oLkRgj6CCR3UQI4LwWlTPYxquT0TRGBzlHYh9ipw3hSiSKxnN XSGLryERTRqlXw9e3zl6+b8aFJlA/ro= X-Google-Smtp-Source: AA6agR6/BQax4DpjndD9B02CXBUWCl+T0OWMrYdcDLW05yhct53BcSS87V6Z1AZzxpxpDvJ31AUsmw== X-Received: by 2002:a67:ce08:0:b0:388:4407:b2fa with SMTP id s8-20020a67ce08000000b003884407b2famr11169222vsl.57.1660125953540; Wed, 10 Aug 2022 03:05:53 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, clg@kaod.org, fbarrat@linux.ibm.com, Daniel Henrique Barboza Subject: [PATCH for-7.2 v3 05/11] ppc/pnv: turn chip8->phbs[] into a PnvPHB* array Date: Wed, 10 Aug 2022 07:05:30 -0300 Message-Id: <20220810100536.473859-6-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220810100536.473859-1-danielhb413@gmail.com> References: <20220810100536.473859-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::e2c; envelope-from=danielhb413@gmail.com; helo=mail-vs1-xe2c.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1660126247130100001 Content-Type: text/plain; charset="utf-8" When enabling user created PHBs (a change reverted by commit 9c10d86fee) we were handling PHBs created by default versus by the user in different manners. The only difference between these PHBs is that one will have a valid phb3->chip that is assigned during pnv_chip_power8_realize(), while the user created needs to search which chip it belongs to. Aside from that there shouldn't be any difference. Making the default PHBs behave in line with the user created ones will make it easier to re-introduce them later on. It will also make the code easier to follow since we are dealing with them in equal manner. The first step is to turn chip8->phbs[] into a PnvPHB3 pointer array. This will allow us to assign user created PHBs into it later on. The way we initilize the default case is now more in line with that would happen with the user created case: the object is created, parented by the chip because pnv_xscom_dt() relies on it, and then assigned to the array. Signed-off-by: Daniel Henrique Barboza --- hw/pci-host/pnv_phb.c | 7 +++++++ hw/ppc/pnv.c | 20 +++++++++++++++----- include/hw/ppc/pnv.h | 6 +++++- 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/hw/pci-host/pnv_phb.c b/hw/pci-host/pnv_phb.c index 18a050a6d3..40a960c54c 100644 --- a/hw/pci-host/pnv_phb.c +++ b/hw/pci-host/pnv_phb.c @@ -90,6 +90,13 @@ static void pnv_phb_user_device_init(PnvPHB *phb) } =20 if (phb->version =3D=3D 3) { + Pnv8Chip *chip8 =3D PNV8_CHIP(chip); + + phb->chip =3D chip; + + chip8->phbs[chip8->num_phbs] =3D phb; + chip8->num_phbs++; + parent =3D OBJECT(chip); } else { /* phb4 support will be added later */ diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c index f9e5a3d248..44066ffb8c 100644 --- a/hw/ppc/pnv.c +++ b/hw/ppc/pnv.c @@ -661,7 +661,7 @@ static void pnv_chip_power8_pic_print_info(PnvChip *chi= p, Monitor *mon) ics_pic_print_info(&chip8->psi.ics, mon); =20 for (i =3D 0; i < chip8->num_phbs; i++) { - PnvPHB *phb =3D &chip8->phbs[i]; + PnvPHB *phb =3D chip8->phbs[i]; PnvPHB3 *phb3 =3D PNV_PHB3(phb->backend); =20 pnv_phb3_msi_pic_print_info(&phb3->msis, mon); @@ -1154,7 +1154,17 @@ static void pnv_chip_power8_instance_init(Object *ob= j) chip8->num_phbs =3D pcc->num_phbs; =20 for (i =3D 0; i < chip8->num_phbs; i++) { - object_initialize_child(obj, "phb[*]", &chip8->phbs[i], TYPE_PNV_P= HB); + PnvPHB *phb =3D PNV_PHB(object_new(TYPE_PNV_PHB)); + + /* + * We need the chip to parent the PHB to allow the DT + * to build correctly (via pnv_xscom_dt()). + * + * TODO: the PHB should be parented by a PEC device that, at + * this moment, is not modelled powernv8/phb3. + */ + object_property_add_child(obj, "phb[*]", OBJECT(phb)); + chip8->phbs[i] =3D phb; } =20 } @@ -1270,7 +1280,7 @@ static void pnv_chip_power8_realize(DeviceState *dev,= Error **errp) =20 /* PHB controllers */ for (i =3D 0; i < chip8->num_phbs; i++) { - PnvPHB *phb =3D &chip8->phbs[i]; + PnvPHB *phb =3D chip8->phbs[i]; =20 object_property_set_int(OBJECT(phb), "index", i, &error_fatal); object_property_set_int(OBJECT(phb), "chip-id", chip->chip_id, @@ -1938,7 +1948,7 @@ static ICSState *pnv_ics_get(XICSFabric *xi, int irq) } =20 for (j =3D 0; j < chip8->num_phbs; j++) { - PnvPHB *phb =3D &chip8->phbs[j]; + PnvPHB *phb =3D chip8->phbs[j]; PnvPHB3 *phb3 =3D PNV_PHB3(phb->backend); =20 if (ics_valid_irq(&phb3->lsis, irq)) { @@ -1977,7 +1987,7 @@ static void pnv_ics_resend(XICSFabric *xi) ics_resend(&chip8->psi.ics); =20 for (j =3D 0; j < chip8->num_phbs; j++) { - PnvPHB *phb =3D &chip8->phbs[j]; + PnvPHB *phb =3D chip8->phbs[j]; PnvPHB3 *phb3 =3D PNV_PHB3(phb->backend); =20 ics_resend(&phb3->lsis); diff --git a/include/hw/ppc/pnv.h b/include/hw/ppc/pnv.h index 033d907287..aea6128e7f 100644 --- a/include/hw/ppc/pnv.h +++ b/include/hw/ppc/pnv.h @@ -81,7 +81,11 @@ struct Pnv8Chip { PnvHomer homer; =20 #define PNV8_CHIP_PHB3_MAX 4 - PnvPHB phbs[PNV8_CHIP_PHB3_MAX]; + /* + * The array is used to allow quick access to the phbs by + * pnv_ics_get_child() and pnv_ics_resend_child(). + */ + PnvPHB *phbs[PNV8_CHIP_PHB3_MAX]; uint32_t num_phbs; =20 XICSFabric *xics; --=20 2.36.1 From nobody Fri May 3 09:43:17 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1660126628; cv=none; d=zohomail.com; s=zohoarc; b=XKSmI5Wdm3KiLlto0z/dNGbGjHpiHwuGQAHahbTvzpiVfDdyoIMxy4Uf2VD3T7QTjrQmIFs87/v3A889on79PMvQ81U2OghLIx1KEYdwpvUfzQvT118oPD2ToUo95ofWySTok8tTlEbKh/lph+ShEi8sEQevUuiRptBqwiWDpmA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1660126628; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=qozOYMbguQmSINVzhYUd20P/ZvQLH2ZnIs4f+7OWCwU=; b=JjnaE6GDH6B1xlslZjUzm0dw0deP1xP0E3k/uDv/2rFTY0DeldFknCuOQcnJbZ7aPXD/TGMBOP8zP1Y9wBqTPfTJioW3kpJ6Pq5ZqIT1QDPBL5txXv6IOtTejUX12vTwTK0VqrYSO8SnuzWcXcw30kjzM6qtNqz1/KxyTCfZRbY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1660126628567256.61347343028626; Wed, 10 Aug 2022 03:17:08 -0700 (PDT) Received: from localhost ([::1]:44914 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oLilv-0007nR-Fi for importer@patchew.org; Wed, 10 Aug 2022 06:17:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34168) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oLib8-0006qT-EZ; Wed, 10 Aug 2022 06:06:05 -0400 Received: from mail-vs1-xe2c.google.com ([2607:f8b0:4864:20::e2c]:45785) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oLib6-0000sb-Os; Wed, 10 Aug 2022 06:05:57 -0400 Received: by mail-vs1-xe2c.google.com with SMTP id m67so14560752vsc.12; Wed, 10 Aug 2022 03:05:56 -0700 (PDT) Received: from balboa.COMFAST (201-43-216-47.dsl.telesp.net.br. [201.43.216.47]) by smtp.gmail.com with ESMTPSA id 2-20020a1f1602000000b0037613541b27sm12277919vkw.39.2022.08.10.03.05.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Aug 2022 03:05:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc; bh=qozOYMbguQmSINVzhYUd20P/ZvQLH2ZnIs4f+7OWCwU=; b=MLphplMLGUx1YlkYyYq885Zn7oC27ph0Pp4LMFyjzQlP8mMUuT9XTKd/96ezfqxrJO 9IQbbNEkaR7BglIus/2oroPv8TrgLJ9WsFcSCQ3qZQjQAiYGTrrsk3Hd6T0yAcN4IUqK imRh4mMv3LiuuQIIC6h45J+SNtflOM9Z9nfHP2qpzKVGAhAwUcX5wNtC6jK8Cveof9mW OjTNtJNW2F0UMrA08367PGsHdS6ivfK67lgZhRI5C9cEEEFfx/pBTN2UDvAwt/eDzgU/ T3Q7SkQx3IxCaczC3xbEdv5Cpq104OKlKpxgMGqZ3Gq82iCJNQ+QLyvOeKSISxfeNFaY UTGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc; bh=qozOYMbguQmSINVzhYUd20P/ZvQLH2ZnIs4f+7OWCwU=; b=tDDV7j+8cQq3KY104BIozXhmMDdZRFVAwsppR6SiBQcnU60Bs14XpCzO6IRMBtQNe9 IeEGWnu8Bx5JJbI3eAUmQ4azNwVAdJRv+BgF4NTxOTkH50vEkH7323NFHqSeAWX8X2yM oPoKyxPGZGm0wS5WLyJaP1SzODBYV9NYHzmrmPtnDth/EODQzvg90AvY9BIyZ1IRL2Lg 7wKsCl5VwnTXri/vspEpV5mnCilOnNuaEY+IioGb+zxTOw2tOCRaWZ4iJ3d1XQCdJeOy e7WvKo5Q2mradJ6aRaY9jlMu5VQHe7t3zHW0QptvR+gEjpE1HPGVMqYoacIqTAdEAxPy QhwQ== X-Gm-Message-State: ACgBeo3eChaEk9jAa4pm6cr6KRSQORbLcDGVR+0hEzl8k4JEs+f40k0Y F2ZqW818dt+70kfzSUTT5ZcTtyzE9Xg= X-Google-Smtp-Source: AA6agR6jpc9+S/HHGDemotmmDt/9gFLeV6QuvIVAs8E2L1FKNVyZI6hZDCcWTNYFjU4IGX0dHgjpUQ== X-Received: by 2002:a67:b747:0:b0:388:9e5a:2fa1 with SMTP id l7-20020a67b747000000b003889e5a2fa1mr6844705vsh.1.1660125955622; Wed, 10 Aug 2022 03:05:55 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, clg@kaod.org, fbarrat@linux.ibm.com, Daniel Henrique Barboza Subject: [PATCH for-7.2 v3 06/11] ppc/pnv: enable user created pnv-phb for powernv8 Date: Wed, 10 Aug 2022 07:05:31 -0300 Message-Id: <20220810100536.473859-7-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220810100536.473859-1-danielhb413@gmail.com> References: <20220810100536.473859-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::e2c; envelope-from=danielhb413@gmail.com; helo=mail-vs1-xe2c.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1660126630017100001 Content-Type: text/plain; charset="utf-8" The bulk of the work was already done by previous patches. Use defaults_enabled() to determine whether we need to create the default devices or not. Signed-off-by: Daniel Henrique Barboza Reviewed-by: C=C3=A9dric Le Goater --- hw/pci-host/pnv_phb.c | 9 +++++++-- hw/ppc/pnv.c | 6 ++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/hw/pci-host/pnv_phb.c b/hw/pci-host/pnv_phb.c index 40a960c54c..887b25d49e 100644 --- a/hw/pci-host/pnv_phb.c +++ b/hw/pci-host/pnv_phb.c @@ -17,6 +17,7 @@ #include "hw/ppc/pnv.h" #include "hw/qdev-properties.h" #include "qom/object.h" +#include "sysemu/sysemu.h" =20 =20 /* @@ -174,6 +175,10 @@ static void pnv_phb_realize(DeviceState *dev, Error **= errp) pnv_phb4_bus_init(dev, PNV_PHB4(phb->backend)); } =20 + if (phb->version =3D=3D 3 && !defaults_enabled()) { + return; + } + pnv_phb_attach_root_port(pci); } =20 @@ -209,7 +214,7 @@ static void pnv_phb_class_init(ObjectClass *klass, void= *data) dc->realize =3D pnv_phb_realize; device_class_set_props(dc, pnv_phb_properties); set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories); - dc->user_creatable =3D false; + dc->user_creatable =3D true; } =20 static void pnv_phb_root_port_reset(DeviceState *dev) @@ -300,7 +305,7 @@ static void pnv_phb_root_port_class_init(ObjectClass *k= lass, void *data) device_class_set_parent_reset(dc, pnv_phb_root_port_reset, &rpc->parent_reset); dc->reset =3D &pnv_phb_root_port_reset; - dc->user_creatable =3D false; + dc->user_creatable =3D true; =20 k->vendor_id =3D PCI_VENDOR_ID_IBM; /* device_id will be written during realize() */ diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c index 44066ffb8c..0d3a88578b 100644 --- a/hw/ppc/pnv.c +++ b/hw/ppc/pnv.c @@ -1151,6 +1151,10 @@ static void pnv_chip_power8_instance_init(Object *ob= j) =20 object_initialize_child(obj, "homer", &chip8->homer, TYPE_PNV8_HOMER); =20 + if (!defaults_enabled()) { + return; + } + chip8->num_phbs =3D pcc->num_phbs; =20 for (i =3D 0; i < chip8->num_phbs; i++) { @@ -2103,6 +2107,8 @@ static void pnv_machine_power8_class_init(ObjectClass= *oc, void *data) =20 pmc->compat =3D compat; pmc->compat_size =3D sizeof(compat); + + machine_class_allow_dynamic_sysbus_dev(mc, TYPE_PNV_PHB); } =20 static void pnv_machine_power9_class_init(ObjectClass *oc, void *data) --=20 2.36.1 From nobody Fri May 3 09:43:17 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1660127954; cv=none; d=zohomail.com; s=zohoarc; b=RTVw3Az9TKa1pTDOkBgcXoGugLCMo5lHg7vOsX8POrQCTTUXHLcyQm9OOh63FbS7SercxOR48bN85tSZyXkWGAttk0OAqLdWHTDFDqL/YSXckkgOxPtv91ZXpXUqjB8wuGIJVuTgzYD81bndrwBB3+hSF8pJNAnAR4ez4U3PRes= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1660127954; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=rmwbtPJ+wl4vPKAG1DeSZaLWkVBVKEyAd96z2OfRu9A=; b=dBLCY7aSbVHQH0PLO27WIFmv7pOdJvza8mY9CI7iBJjA5gLqv4hgUqnsx+WZZLOMfZjtPlvRExiXIubgkVCzDl6T+YdDkC+vfe/exREz7xNZxF47HU2YMqS618rHz/SQZk9zJbeAtT9Tmu5Wuyfwam8WYzTukVCzXQoMPYjQ8EE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1660127954551392.2136119179669; Wed, 10 Aug 2022 03:39:14 -0700 (PDT) Received: from localhost ([::1]:38770 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oLj7I-0006gi-1K for importer@patchew.org; Wed, 10 Aug 2022 06:39:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34330) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oLibN-0006ty-Mw; Wed, 10 Aug 2022 06:06:13 -0400 Received: from mail-pg1-x52d.google.com ([2607:f8b0:4864:20::52d]:33461) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oLibK-0000vr-8h; Wed, 10 Aug 2022 06:06:12 -0400 Received: by mail-pg1-x52d.google.com with SMTP id l64so13979430pge.0; Wed, 10 Aug 2022 03:06:09 -0700 (PDT) Received: from balboa.COMFAST (201-43-216-47.dsl.telesp.net.br. [201.43.216.47]) by smtp.gmail.com with ESMTPSA id 2-20020a1f1602000000b0037613541b27sm12277919vkw.39.2022.08.10.03.05.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Aug 2022 03:05:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc; bh=rmwbtPJ+wl4vPKAG1DeSZaLWkVBVKEyAd96z2OfRu9A=; b=qmaBmRkbYLvYxkvKPxynPBHQcYhGp5rj3cQjF43dI29Z/WRogCSGauYAA+J2SZ+MMI sZYnEhhq4QFAownx+oOmpa4+J3+qq2V0Q2Dztau9x4cN6XDNBX7r8zXR57tXaysyrhdZ rez9cbBAJkb0vi63EULiFZlXH7nzChvkPunm1QVDX2dro/v40WudKSZlx4QAxC3Nr/G0 VhP2EKcFNGxkVzu/xEykjiXubhOAraX0hG0LlJ5PcIEp6lrHgCqmPyjjaBtsb9n9pKQ2 qoyJ8oqzRs3YaP5euvYwAYyoHPJ7lJ8f5KLmSS1W6uNx0r6j9cGLi+yj2pLchxqC1Mi8 M5UQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc; bh=rmwbtPJ+wl4vPKAG1DeSZaLWkVBVKEyAd96z2OfRu9A=; b=pRrdaFbGqmwN8AHQ5vn+ffTT2o8o0iPZN3rSSEAODCoJUwzAMLb6yDZwIBQsH1Ixvw f5z0Q5PhMYSdxCBaTyaXBFL1JqNEVXugxOewDcZ7+2TXc1qyl45gTsTsniMx6CSIC1DM mJlaiabisLQGm8YtQKeBbqIU4RgF6Fj5BLbUFwRly4nW1s/efwPlOWCFfQYlLTs7K4b6 W5lmwvUsqBgo8OYhEFFBGsURgvK9fDj3DUQRbybZm1tqC+Jwf//yzRAZcyCW8oZCxTUN sNVpXMEPjsgQBLfhDeE9XbUPMh75dDsU2i7YcP2UESFvL27E6D80EBXSUpIqG5J6Ek/P aPcQ== X-Gm-Message-State: ACgBeo3UsVk7SVoqbtVe9xiPw/w8StIBZAsEMOAlsl7ju5TIYBt5+VSA pndBxv3sspyE+6Kj7YKXFPIjCczpCz4= X-Google-Smtp-Source: AA6agR6pUhCdU6UnN7gwkbHGWlL/QtSeDvKJFtIySAbsqmi9y2XrQlAdwFSaqLUtj0xkKL+8YXCYBQ== X-Received: by 2002:a67:dd04:0:b0:388:5a2d:3c5c with SMTP id y4-20020a67dd04000000b003885a2d3c5cmr10633871vsj.26.1660125957804; Wed, 10 Aug 2022 03:05:57 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, clg@kaod.org, fbarrat@linux.ibm.com, Daniel Henrique Barboza Subject: [PATCH for-7.2 v3 07/11] ppc/pnv: add PHB4 helpers for user created pnv-phb Date: Wed, 10 Aug 2022 07:05:32 -0300 Message-Id: <20220810100536.473859-8-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220810100536.473859-1-danielhb413@gmail.com> References: <20220810100536.473859-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::52d; envelope-from=danielhb413@gmail.com; helo=mail-pg1-x52d.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1660127956209100001 Content-Type: text/plain; charset="utf-8" The PHB4 backend relies on a link with the corresponding PEC element. This is trivial to do during machine_init() time for default devices, but not so much for user created ones. pnv_phb4_get_pec() is a small variation of the function that was reverted by commit 9c10d86fee "ppc/pnv: Remove user-created PHB{3,4,5} devices". We'll use it to determine the appropriate PEC for a given user created pnv-phb that uses a PHB4 backend. This is done during realize() time, in pnv_phb_user_device_init(). Signed-off-by: Daniel Henrique Barboza --- hw/pci-host/pnv_phb.c | 40 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/hw/pci-host/pnv_phb.c b/hw/pci-host/pnv_phb.c index 887b25d49e..f9516fdc4a 100644 --- a/hw/pci-host/pnv_phb.c +++ b/hw/pci-host/pnv_phb.c @@ -50,6 +50,34 @@ static void pnv_parent_bus_fixup(DeviceState *parent, De= viceState *child) } } =20 +static PnvPhb4PecState *pnv_phb4_get_pec(PnvChip *chip, PnvPHB4 *phb, + Error **errp) +{ + Pnv9Chip *chip9 =3D PNV9_CHIP(chip); + int chip_id =3D phb->chip_id; + int index =3D phb->phb_id; + int i, j; + + for (i =3D 0; i < chip->num_pecs; i++) { + /* + * For each PEC, check the amount of phbs it supports + * and see if the given phb4 index matches an index. + */ + PnvPhb4PecState *pec =3D &chip9->pecs[i]; + + for (j =3D 0; j < pec->num_phbs; j++) { + if (index =3D=3D pnv_phb4_pec_get_phb_id(pec, j)) { + return pec; + } + } + } + error_setg(errp, + "pnv-phb4 chip-id %d index %d didn't match any existing PEC= ", + chip_id, index); + + return NULL; +} + /* * Attach a root port device. * @@ -100,8 +128,16 @@ static void pnv_phb_user_device_init(PnvPHB *phb) =20 parent =3D OBJECT(chip); } else { - /* phb4 support will be added later */ - return; + Error *local_err =3D NULL; + + phb->pec =3D pnv_phb4_get_pec(chip, PNV_PHB4(phb->backend), &local= _err); + + if (local_err) { + error_propagate(&error_fatal, local_err); + return; + } + + parent =3D OBJECT(phb->pec); } =20 /* --=20 2.36.1 From nobody Fri May 3 09:43:17 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1660126930; cv=none; d=zohomail.com; s=zohoarc; b=QycbalYMIEjNgs+YchUla8fiGaKLwghEImRf95QC4PTvRnPttIeac9xC/SdQ8ZGuPcJEIT+r9RjTh6Zp5xTE6bebnUL82Nwl8F0WDGAuETh2efLZeDfx7d7KwY5+FzIvpi70O2CnIBCzBzyjVpBkBO/zYKZhX7U14bHVW+WwAO4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1660126930; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=2c3cbAE/kQSn/4Qt7JvW+jb+McHEPwv0FIoI7Ak4V9o=; b=jFNPqsNd828sh4gNfZSNtj83AWUq+A+xyLPkrc2QARJqGNI3jRIQ0uKhodmztPjGOLmxQel3VHk/Tj3FCbNZwerHzLPQr/fVqJE9upWhIRKVTQCyyYDgllZOrmOl8QEMXcBv+2+yQiJP/HVptMLpYcw1s3JNnlaHh3AmDurvl4o= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1660126930033299.7806348674758; Wed, 10 Aug 2022 03:22:10 -0700 (PDT) Received: from localhost ([::1]:51092 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oLiqm-0003jT-OL for importer@patchew.org; Wed, 10 Aug 2022 06:22:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34200) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oLibD-0006qn-4H; Wed, 10 Aug 2022 06:06:09 -0400 Received: from mail-vs1-xe36.google.com ([2607:f8b0:4864:20::e36]:36745) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oLibB-0000rY-Bc; Wed, 10 Aug 2022 06:06:02 -0400 Received: by mail-vs1-xe36.google.com with SMTP id o123so14606960vsc.3; Wed, 10 Aug 2022 03:06:00 -0700 (PDT) Received: from balboa.COMFAST (201-43-216-47.dsl.telesp.net.br. [201.43.216.47]) by smtp.gmail.com with ESMTPSA id 2-20020a1f1602000000b0037613541b27sm12277919vkw.39.2022.08.10.03.05.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Aug 2022 03:05:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc; bh=2c3cbAE/kQSn/4Qt7JvW+jb+McHEPwv0FIoI7Ak4V9o=; b=oeDCP2I81v+79ypfEf9TrXE9j7d5w6dOkLs8oWtYn68X6k/4nBMYbKGTRQ1MDqHUZH G9oJP03J8aS2NXenXgHl+1XwvTU+tOMo47FXnRODcqYHcljj+G84HGujZMb6J9RMcorc 3coanN64bIOQvU1+1d71MVWDHODV9KpFzmfCwkt7HuxzrwYbDwHuQFOABLh8gI8IbYsT uwt8R4oXvHIF5Hj1bZPEM8oiPQfWW10j3T4JgqsrX7q/9jnvZ7bXnOYfELAj+xekBKev Fqh7ocZYUzw43O/Qlf9nWOowIfi/E8qH9Zwb5pMnHx0yrdhv97AZNR6mMruBKH4p8lrU jktQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc; bh=2c3cbAE/kQSn/4Qt7JvW+jb+McHEPwv0FIoI7Ak4V9o=; b=hMZCxoMneN/B/v/lB7LKDB2xaxmv8EuzRSv0tnVvIdUH2mV7hAdIJ4FZpeFyZBEvek kV3Pya2h9ugQRKqrrnqt4mBzn2rQSrQDqLbxDb6TprOpNz91pWwASIHZjc3rhnV8OehT JX8l5lcEWrHUL91ghD0KaPGaa5CMWZcgfGYvwV9kDLo0rrZVbCjIxA3FVcElrkJ7axgL v/71aGzvo3oMsJMomE58RO30UCYz5UKaMbr9W9S0NNkblWWbs0VsrQ6fTSM9VthKcYmt ElEng9egYsc1EDmYVN3i+IauNiDKtmF/pdUqJWr6djF0o69RHYio/JtwPl4j5/AJtwSI 0YyQ== X-Gm-Message-State: ACgBeo24M/69mSwXoqgYqfbtq2H4U9tJ/CIEQEaWeDH6ctmqKOUzKnv3 vctBTXC2xE/TblYFtIP6o8K5fiH2EDE= X-Google-Smtp-Source: AA6agR76xVruO4ISUeas11cNcGfDXRjcR8/5JaUBF4usKXNwP0q06qL0uhujv2TPq2Gmv5kZvwfn5Q== X-Received: by 2002:a67:f703:0:b0:388:4bbe:536b with SMTP id m3-20020a67f703000000b003884bbe536bmr10397497vso.60.1660125960281; Wed, 10 Aug 2022 03:06:00 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, clg@kaod.org, fbarrat@linux.ibm.com, Daniel Henrique Barboza Subject: [PATCH for-7.2 v3 08/11] ppc/pnv: enable user created pnv-phb powernv9 Date: Wed, 10 Aug 2022 07:05:33 -0300 Message-Id: <20220810100536.473859-9-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220810100536.473859-1-danielhb413@gmail.com> References: <20220810100536.473859-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::e36; envelope-from=danielhb413@gmail.com; helo=mail-vs1-xe36.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1660126932124100001 Content-Type: text/plain; charset="utf-8" Enable pnv-phb user created devices for powernv9 now that we have everything in place. Signed-off-by: Daniel Henrique Barboza Reviewed-by: C=C3=A9dric Le Goater --- hw/pci-host/pnv_phb.c | 2 +- hw/pci-host/pnv_phb4_pec.c | 6 ++++-- hw/ppc/pnv.c | 2 ++ 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/hw/pci-host/pnv_phb.c b/hw/pci-host/pnv_phb.c index f9516fdc4a..a142b8ff8d 100644 --- a/hw/pci-host/pnv_phb.c +++ b/hw/pci-host/pnv_phb.c @@ -211,7 +211,7 @@ static void pnv_phb_realize(DeviceState *dev, Error **e= rrp) pnv_phb4_bus_init(dev, PNV_PHB4(phb->backend)); } =20 - if (phb->version =3D=3D 3 && !defaults_enabled()) { + if (!defaults_enabled()) { return; } =20 diff --git a/hw/pci-host/pnv_phb4_pec.c b/hw/pci-host/pnv_phb4_pec.c index 8dc363d69c..9871f462cd 100644 --- a/hw/pci-host/pnv_phb4_pec.c +++ b/hw/pci-host/pnv_phb4_pec.c @@ -146,8 +146,10 @@ static void pnv_pec_realize(DeviceState *dev, Error **= errp) pec->num_phbs =3D pecc->num_phbs[pec->index]; =20 /* Create PHBs if running with defaults */ - for (i =3D 0; i < pec->num_phbs; i++) { - pnv_pec_default_phb_realize(pec, i, errp); + if (defaults_enabled()) { + for (i =3D 0; i < pec->num_phbs; i++) { + pnv_pec_default_phb_realize(pec, i, errp); + } } =20 /* Initialize the XSCOM regions for the PEC registers */ diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c index 0d3a88578b..b6314dc961 100644 --- a/hw/ppc/pnv.c +++ b/hw/ppc/pnv.c @@ -2134,6 +2134,8 @@ static void pnv_machine_power9_class_init(ObjectClass= *oc, void *data) pmc->compat =3D compat; pmc->compat_size =3D sizeof(compat); pmc->dt_power_mgt =3D pnv_dt_power_mgt; + + machine_class_allow_dynamic_sysbus_dev(mc, TYPE_PNV_PHB); } =20 static void pnv_machine_power10_class_init(ObjectClass *oc, void *data) --=20 2.36.1 From nobody Fri May 3 09:43:17 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1660126308; cv=none; d=zohomail.com; s=zohoarc; b=R7cpB/qrZqP8/90OShj1nuTqNQs3lYVG6lyDkze69Oa5Rzc54ALd51DWoyQtBz31no77W2nA1aHXliV9dtDzHHs9e48W37+jy57p+sCMZ9pSZzyavCNTv5Ek6R1Wj/U2SO4nRMW+r3Voux0yupGxVAGIXpVxt6kZaP5k5r4zUCY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1660126308; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Ka9clBzBNCBG6/NCtFaKpDHEGzLyxl2U70eTva2upAU=; b=c+SvPCPFJ/W+T7e4Q4rz+89dQKu1za6vpk2ugyHAfXPeYRqPdNZaq0mELJ2ncDjpfY+jgKBbqp3GTJ14cwU62BcmKaUMz5Jv26jmC7jLIPRa+ERA4UACcwFtISpzWJ5dcoSxezJCSROlAX47qIWD8ltEdo5jqK+WD1G+CEsuLSA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1660126308833541.620117093623; Wed, 10 Aug 2022 03:11:48 -0700 (PDT) Received: from localhost ([::1]:36452 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oLigl-00022A-AX for importer@patchew.org; Wed, 10 Aug 2022 06:11:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34226) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oLibF-0006qp-QO; Wed, 10 Aug 2022 06:06:10 -0400 Received: from mail-vs1-xe2c.google.com ([2607:f8b0:4864:20::e2c]:41521) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oLibD-0000v4-SR; Wed, 10 Aug 2022 06:06:05 -0400 Received: by mail-vs1-xe2c.google.com with SMTP id 129so14584031vsq.8; Wed, 10 Aug 2022 03:06:03 -0700 (PDT) Received: from balboa.COMFAST (201-43-216-47.dsl.telesp.net.br. [201.43.216.47]) by smtp.gmail.com with ESMTPSA id 2-20020a1f1602000000b0037613541b27sm12277919vkw.39.2022.08.10.03.06.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Aug 2022 03:06:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc; bh=Ka9clBzBNCBG6/NCtFaKpDHEGzLyxl2U70eTva2upAU=; b=LXaRaKEGQ6AfNic9xeUNbKbsy42qqVxvHDvpSfUzEpIGUkZVgLKM7xM96q0ws9yqLp JJMTCSqfCtRqziryjAMblEw1E2Oay3eZSZABroAgv213pCfeZuDMiEsU2z4yoWJnmP84 46GsxHYHefPieLyjeR5qzLB2+Udfjqus9bBd2nWv7HoBIn2JgtwsSD+RNsj8HcUmLE/C 68YWp6F/dEeG9WNSRnY8I/utdAhbOlwtml0yFKT6roCEPwUAYmjLjiJvdKY2SCI5edeJ 5/BWyzzsbDD+2DMIEnOFdtRa/kpqai7QNsN2Lm13ixl0o0rZLJsUoOjvQglc983xgM1G 1eUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc; bh=Ka9clBzBNCBG6/NCtFaKpDHEGzLyxl2U70eTva2upAU=; b=hUD4pCJeGdbCAcN5pIksQ5PbFFbEg6nyFeOgnCxTolUfd1kGwLJYCX89X7h+jbTVSK SBIpR7FwUSYT74DPysu0E2CNChsLrxxPuwpAAVC/iarG41atzmWbrKAuOkywKTd9BhfH 1RyF5n73MMV1qLma3GShvjl6s+Qqf2PA5MX6we1jGGwHWCEUt0Es6Gjr0lV6kQXNABsP zGtBlp7kqdoEth3J9xJ3RCTNOEKzZaTtwrgoCJmZK9mb3pn5rRSShYVgjVSXlKPSBEj2 dxg/FkIRi6wsBvEubBm+xlIga1VKadMREdo/wxwcVLY9l3Q2d3kw7370LNg2+DiJo+CD o08A== X-Gm-Message-State: ACgBeo2EHxc2x8UisHvvz+0cie9vLtGfHojlYinEaoEd86Jgjd9GII8R HfpD0faRz8Il3W8UPpwfb2uZH0+8HCA= X-Google-Smtp-Source: AA6agR5tPEF8IjRa61kBrsrb8E18KNHZ7jnubt0RK9XlBtz2V6YNLRZUNwqDWP0ts595G5+z93v0Ww== X-Received: by 2002:a67:c201:0:b0:386:b3ad:6c2c with SMTP id i1-20020a67c201000000b00386b3ad6c2cmr10836069vsj.53.1660125962533; Wed, 10 Aug 2022 03:06:02 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, clg@kaod.org, fbarrat@linux.ibm.com, Daniel Henrique Barboza Subject: [PATCH for-7.2 v3 09/11] ppc/pnv: change pnv_phb4_get_pec() to also retrieve chip10->pecs Date: Wed, 10 Aug 2022 07:05:34 -0300 Message-Id: <20220810100536.473859-10-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220810100536.473859-1-danielhb413@gmail.com> References: <20220810100536.473859-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::e2c; envelope-from=danielhb413@gmail.com; helo=mail-vs1-xe2c.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1660126309323100001 Content-Type: text/plain; charset="utf-8" The function assumes that we're always dealing with a PNV9_CHIP() object. This is not the case when the pnv-phb device belongs to a powernv10 machine. Change pnv_phb4_get_pec() to be able to work with PNV10_CHIP() if necessary. Signed-off-by: Daniel Henrique Barboza --- hw/pci-host/pnv_phb.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/hw/pci-host/pnv_phb.c b/hw/pci-host/pnv_phb.c index a142b8ff8d..feaef8137f 100644 --- a/hw/pci-host/pnv_phb.c +++ b/hw/pci-host/pnv_phb.c @@ -53,17 +53,30 @@ static void pnv_parent_bus_fixup(DeviceState *parent, D= eviceState *child) static PnvPhb4PecState *pnv_phb4_get_pec(PnvChip *chip, PnvPHB4 *phb, Error **errp) { - Pnv9Chip *chip9 =3D PNV9_CHIP(chip); + PnvPHB *phb_base =3D phb->phb_base; + PnvPhb4PecState *pecs =3D NULL; int chip_id =3D phb->chip_id; int index =3D phb->phb_id; int i, j; =20 + if (phb_base->version =3D=3D 4) { + Pnv9Chip *chip9 =3D PNV9_CHIP(chip); + + pecs =3D chip9->pecs; + } else if (phb_base->version =3D=3D 5) { + Pnv10Chip *chip10 =3D PNV10_CHIP(chip); + + pecs =3D chip10->pecs; + } else { + return NULL; + } + for (i =3D 0; i < chip->num_pecs; i++) { /* * For each PEC, check the amount of phbs it supports * and see if the given phb4 index matches an index. */ - PnvPhb4PecState *pec =3D &chip9->pecs[i]; + PnvPhb4PecState *pec =3D &pecs[i]; =20 for (j =3D 0; j < pec->num_phbs; j++) { if (index =3D=3D pnv_phb4_pec_get_phb_id(pec, j)) { --=20 2.36.1 From nobody Fri May 3 09:43:17 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1660127413; cv=none; d=zohomail.com; s=zohoarc; b=YUwzKVUAsT06/3yDtJdFAnR3xq4HJsivP52B3EUomn6MQ23XNHt73bWzlpzldjbVmKdhNi853VQcCi2bIvt4iDrgLFnNbOPPW0vtCkLXLb9U6iQIQdc9bfYsKRhcmuZkLeX5nKfvKCtTgKD/aGuWPQ8HZN0UmO1XCmoc/xxQ5kI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1660127413; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=tl9Z8luQcwSh6QRgPGjf321Es9TY+GefKufsOtFTomE=; b=JbYJIZYtKp3pYEkWWSeSVXjLmQQe7ijcYv/v7cs0LOsx3QmZOAolnr79tTAhYflv2N2suFIkvMABmTu3+w02JQ50kqLhJROQVjHchtctEnPskUviRF+/nedItBF0f5BuNNQ6Ul69SZyDvDhqlWKcyRy+RR47jDf7LW8omIPTWNA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 16601274132493.5146980521739124; Wed, 10 Aug 2022 03:30:13 -0700 (PDT) Received: from localhost ([::1]:32830 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oLiyY-0002Pc-Ng for importer@patchew.org; Wed, 10 Aug 2022 06:30:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34264) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oLibK-0006rK-66; Wed, 10 Aug 2022 06:06:11 -0400 Received: from mail-vs1-xe35.google.com ([2607:f8b0:4864:20::e35]:38662) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oLibF-0000vM-TX; Wed, 10 Aug 2022 06:06:09 -0400 Received: by mail-vs1-xe35.google.com with SMTP id 125so14595625vsd.5; Wed, 10 Aug 2022 03:06:05 -0700 (PDT) Received: from balboa.COMFAST (201-43-216-47.dsl.telesp.net.br. [201.43.216.47]) by smtp.gmail.com with ESMTPSA id 2-20020a1f1602000000b0037613541b27sm12277919vkw.39.2022.08.10.03.06.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Aug 2022 03:06:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc; bh=tl9Z8luQcwSh6QRgPGjf321Es9TY+GefKufsOtFTomE=; b=KgvALIwqefdzJWwwLlFQL9HpEIqVEDOunu9FCLCRU57Ro1i7vUXKjIDnxxxURZyCIK jEu/Mu9I7ga8cgJkv/H4DWARXSKUxuTOe7VHznlcPAdXtpylUkaA51z5QBs+ErderN3V 63MNwXzzQuufUJnWIQxRe0g6XoM0u1tJfH/Hqh3K9Adc6r/ImolqHnVmKPbfXLyDunyn rmlQ5hpKeAfYjHwDdc355mcRv8uaZgl2feExqfDzJvguWFX6XL0m0KMarp9XUSVMx1Xa b/ooazyDNH69E9AN6cBLPgjJqAgQMXxcOcRByJ2iXd+HL1UwfdQ8/p7UsHx6gKbz6Gph 1HXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc; bh=tl9Z8luQcwSh6QRgPGjf321Es9TY+GefKufsOtFTomE=; b=14u8ADZGbjlHvVJpfx0sDxyVbqmbAbJU/zens8eAuY6HUyTIfN5AuY0Bm/+giR4hXS 4f7s/qZOfZE2LiR4Vie7JdjawDIUgcBjhZe0NvI4cRtcnvsHr/76QL9VLaBBsg0ncuQ5 JJSloGlk/p2MlmiNkhFaqEC3G/c/UtAmFp1mmzNWjau1oVapIEMCaIg6qkghKwNV3NaT KerJDpn99YJNp5d+Q58G6rMnTPEwSt/bsutpahtV5DEsWUCAVCiIIT6x7vVrWbo9O5LF xfjDvi/5KMTDZ8wd7bY+SNtADLfmqOxd5gDN+tzSx7eotzn7i1Qw/kgqh5LCOTgBB4+X TUyg== X-Gm-Message-State: ACgBeo0NK7FMy99FzIaraPkyrLE1nf6WfqxSeVmCjC64LyCseu9yyqNv H/9zmNcVvrcE4fjzMUhZUWHmNwqbxcM= X-Google-Smtp-Source: AA6agR7seHdYUZP1vYPtbXr9Phpis8pJ05k06DIDfDDIzyrS8BJCj3GeFz1U0VgFP2HePFbIJsyLww== X-Received: by 2002:a05:6102:3d03:b0:388:4e6f:62c6 with SMTP id i3-20020a0561023d0300b003884e6f62c6mr11449234vsv.13.1660125964456; Wed, 10 Aug 2022 03:06:04 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, clg@kaod.org, fbarrat@linux.ibm.com, Daniel Henrique Barboza Subject: [PATCH for-7.2 v3 10/11] ppc/pnv: user creatable pnv-phb for powernv10 Date: Wed, 10 Aug 2022 07:05:35 -0300 Message-Id: <20220810100536.473859-11-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220810100536.473859-1-danielhb413@gmail.com> References: <20220810100536.473859-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::e35; envelope-from=danielhb413@gmail.com; helo=mail-vs1-xe35.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1660127413568100001 Content-Type: text/plain; charset="utf-8" Given that powernv9 and powernv10 uses the same pnv-phb backend, the logic to allow user created pnv-phbs for powernv10 is already in place. Let's flip the switch. Signed-off-by: Daniel Henrique Barboza Reviewed-by: C=C3=A9dric Le Goater --- hw/ppc/pnv.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c index b6314dc961..02f287feab 100644 --- a/hw/ppc/pnv.c +++ b/hw/ppc/pnv.c @@ -2159,6 +2159,8 @@ static void pnv_machine_power10_class_init(ObjectClas= s *oc, void *data) pmc->dt_power_mgt =3D pnv_dt_power_mgt; =20 xfc->match_nvt =3D pnv10_xive_match_nvt; + + machine_class_allow_dynamic_sysbus_dev(mc, TYPE_PNV_PHB); } =20 static bool pnv_machine_get_hb(Object *obj, Error **errp) --=20 2.36.1 From nobody Fri May 3 09:43:17 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1660127269; cv=none; d=zohomail.com; s=zohoarc; b=frTC4MWeRf65fT0bxldRKxyJocIrCmuTLnaLzOHTgVYDiPTKGMSpDyMB75dG0X+fvQ/CyJTT5TYS9D/crE3fDuQE7Sv8L/2G+mppryn80pKzh3rofdvXsmZUhp6QkPMKye15CsNcx3sOUBKm5Wp8LD6FHtu3Vkk/lsL7OL0g7Yw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1660127269; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Hfuw5RzBkMbXsmj+o423gKdtHcBJZMl3x+2reeWvekQ=; b=jnxdNiSNfc+sZ75ZqdfbmgUG2wrohxkgMHfb6m3o2zwZDNLmH2mFx+hKu595mLJVYWSzkUrmO1NGjfKWj6Lq3yX9pMGNup+ZcxNs7KYLZEmZOwOeQBNu1UQiBkgerUbZdwcNG+J6zBNITW4Ghm6JwvojRNXCV90OCl6b6OhAXm4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1660127269552254.82825486979596; Wed, 10 Aug 2022 03:27:49 -0700 (PDT) Received: from localhost ([::1]:56784 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oLiwG-0007uG-Fn for importer@patchew.org; Wed, 10 Aug 2022 06:27:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34296) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oLibL-0006sd-N3; Wed, 10 Aug 2022 06:06:13 -0400 Received: from mail-ua1-x934.google.com ([2607:f8b0:4864:20::934]:44773) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oLibJ-0000vc-42; Wed, 10 Aug 2022 06:06:11 -0400 Received: by mail-ua1-x934.google.com with SMTP id b4so5597949uaw.11; Wed, 10 Aug 2022 03:06:07 -0700 (PDT) Received: from balboa.COMFAST (201-43-216-47.dsl.telesp.net.br. [201.43.216.47]) by smtp.gmail.com with ESMTPSA id 2-20020a1f1602000000b0037613541b27sm12277919vkw.39.2022.08.10.03.06.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Aug 2022 03:06:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc; bh=Hfuw5RzBkMbXsmj+o423gKdtHcBJZMl3x+2reeWvekQ=; b=drKNLLT7mz+saQGmqfCXqO6Klhtv67qyP6rGvgK4FnjK0bbM1MaMD7A/Oi04PsiqSO WYPY7VbkJRlDb8GXDtX3KHkT0gyqRwh8uc3yyHTjgmMsZGV6RtNUvosTaF5eOkkiKVw2 4IStEsh6qoLhl3vO0TCltCOZd7ZCLKZi/zl7HSFB/EbijheBvofiTw3M5aPYRipuQ59A nPDsy3vkAGIUk9Nrv8yH0fPQdP64Q9z8AqVRF650p63DfEyyH1SDr6FJRmwaP/YqPLHm eno3YXqqTqBtgzx4I2lRRgXupHpSfcSmPv7IIIxi0Ra11vdYBKuea/Z00CQfkjuNwpK2 bdVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc; bh=Hfuw5RzBkMbXsmj+o423gKdtHcBJZMl3x+2reeWvekQ=; b=CNV++jcY+26w39Q2JgruC4ufAnFra3XUUfp6V3bS1BSJ/unFFj08jvDujcOiJ91dAe vb8wPgUwNAAWZco59YvKQf088gwm/66TybAX4kr8OXpscWMLeFrNGyn/SwdMhcRfoo1j KaAIfxsnzKusI5pHZC/aiEtIqQsr5s36pK6POO2f6bpl6mty75CHd0H9R/GlrHBx+LZ8 Ua1AWcRyvLQyuDZ9g3GtmKaslG6eNK7iZhtjDDnkVMp+4kCxkb+4E5bijtwRN5DZXvMu M1iEMu8xWO/W9otOa9Pl1qm+5lougqaRS12y8LZ/AhfNQA0hdl8IzcwjfZ5z0c4gzTVg DyKg== X-Gm-Message-State: ACgBeo2B/7sSUb+W8gcLSb+CLhDkl0u7Nj6WBeVNXsFehz7ylgRN3240 49RyF+Q4EKPXimSZQfdeV98hs20id3M= X-Google-Smtp-Source: AA6agR7m3cOgLCdUYy2NiIxOfHVaTzqGdUzNTXPhw2UR9OPk7XpUlY4CK1eYhDx0m1x4F02pE4TMQg== X-Received: by 2002:a05:6130:1102:b0:38c:49b4:bbc3 with SMTP id ce2-20020a056130110200b0038c49b4bbc3mr11324276uab.107.1660125966504; Wed, 10 Aug 2022 03:06:06 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, clg@kaod.org, fbarrat@linux.ibm.com, Daniel Henrique Barboza Subject: [PATCH for-7.2 v3 11/11] ppc/pnv: fix QOM parenting of user creatable root ports Date: Wed, 10 Aug 2022 07:05:36 -0300 Message-Id: <20220810100536.473859-12-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220810100536.473859-1-danielhb413@gmail.com> References: <20220810100536.473859-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::934; envelope-from=danielhb413@gmail.com; helo=mail-ua1-x934.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1660127270645100001 Content-Type: text/plain; charset="utf-8" User creatable root ports are being parented by the 'peripheral' or the 'peripheral-anon' container. This happens because this is the regular QOM schema for sysbus devices that are added via the command line. Let's make this QOM hierarchy similar to what we have with default root ports, i.e. the root port must be parented by the pnv-root-bus. To do that we change the qom and bus parent of the root port during root_port_realize(). The realize() is shared by the default root port code path, so we can remove the code inside pnv_phb_attach_root_port() that was adding the root port as a child of the bus as well. While we're at it, change pnv_phb_attach_root_port() to receive a PCIBus instead of a PCIHostState to make it clear that the function does not make use of the PHB. Signed-off-by: Daniel Henrique Barboza --- hw/pci-host/pnv_phb.c | 36 ++++++++++++++++-------------------- 1 file changed, 16 insertions(+), 20 deletions(-) diff --git a/hw/pci-host/pnv_phb.c b/hw/pci-host/pnv_phb.c index feaef8137f..09cea12091 100644 --- a/hw/pci-host/pnv_phb.c +++ b/hw/pci-host/pnv_phb.c @@ -91,27 +91,11 @@ static PnvPhb4PecState *pnv_phb4_get_pec(PnvChip *chip,= PnvPHB4 *phb, return NULL; } =20 -/* - * Attach a root port device. - * - * 'index' will be used both as a PCIE slot value and to calculate - * QOM id. 'chip_id' is going to be used as PCIE chassis for the - * root port. - */ -static void pnv_phb_attach_root_port(PCIHostState *pci) +static void pnv_phb_attach_root_port(PCIBus *bus) { PCIDevice *root =3D pci_new(PCI_DEVFN(0, 0), TYPE_PNV_PHB_ROOT_PORT); - const char *dev_id =3D DEVICE(root)->id; - g_autofree char *default_id =3D NULL; - int index; =20 - index =3D object_property_get_int(OBJECT(pci->bus), "phb-id", &error_f= atal); - default_id =3D g_strdup_printf("%s[%d]", TYPE_PNV_PHB_ROOT_PORT, index= ); - - object_property_add_child(OBJECT(pci->bus), dev_id ? dev_id : default_= id, - OBJECT(root)); - - pci_realize_and_unref(root, pci->bus, &error_fatal); + pci_realize_and_unref(root, bus, &error_fatal); } =20 /* @@ -228,7 +212,7 @@ static void pnv_phb_realize(DeviceState *dev, Error **e= rrp) return; } =20 - pnv_phb_attach_root_port(pci); + pnv_phb_attach_root_port(pci->bus); } =20 static const char *pnv_phb_root_bus_path(PCIHostState *host_bridge, @@ -297,12 +281,19 @@ static void pnv_phb_root_port_realize(DeviceState *de= v, Error **errp) { PCIERootPortClass *rpc =3D PCIE_ROOT_PORT_GET_CLASS(dev); PnvPHBRootPort *phb_rp =3D PNV_PHB_ROOT_PORT(dev); - PCIBus *bus =3D PCI_BUS(qdev_get_parent_bus(dev)); + BusState *qbus =3D qdev_get_parent_bus(dev); + PCIBus *bus =3D PCI_BUS(qbus); PCIDevice *pci =3D PCI_DEVICE(dev); uint16_t device_id =3D 0; Error *local_err =3D NULL; int chip_id, index; =20 + + /* + * 'index' will be used both as a PCIE slot value and to calculate + * QOM id. 'chip_id' is going to be used as PCIE chassis for the + * root port. + */ chip_id =3D object_property_get_int(OBJECT(bus), "chip-id", &error_fat= al); index =3D object_property_get_int(OBJECT(bus), "phb-id", &error_fatal); =20 @@ -310,6 +301,11 @@ static void pnv_phb_root_port_realize(DeviceState *dev= , Error **errp) qdev_prop_set_uint8(dev, "chassis", chip_id); qdev_prop_set_uint16(dev, "slot", index); =20 + pnv_parent_qom_fixup(OBJECT(bus), OBJECT(dev), index); + if (!qdev_set_parent_bus(dev, qbus, &error_fatal)) { + return; + } + rpc->parent_realize(dev, &local_err); if (local_err) { error_propagate(errp, local_err); --=20 2.36.1