From patchwork Thu Jan 13 19:29:36 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 12713060 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E2841C433EF for ; Thu, 13 Jan 2022 19:34:58 +0000 (UTC) Received: from localhost ([::1]:34322 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n85s9-0001kq-VK for qemu-devel@archiver.kernel.org; Thu, 13 Jan 2022 14:34:57 -0500 Received: from eggs.gnu.org ([209.51.188.92]:35564) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n85nT-0006L9-4t; Thu, 13 Jan 2022 14:30:07 -0500 Received: from [2607:f8b0:4864:20::32e] (port=46965 helo=mail-ot1-x32e.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n85nR-00056B-J3; Thu, 13 Jan 2022 14:30:06 -0500 Received: by mail-ot1-x32e.google.com with SMTP id t4-20020a05683022e400b00591aaf48277so7452430otc.13; Thu, 13 Jan 2022 11:30:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=l9m0Tb8L2HEBgik8BroPRFgLlm9sHPZ7TL3ru+7brHI=; b=d7t8UNXGqNKvbRV7lFi6rN5E5Uzcd0Gh3JLSGLqJetn7UF3+iTTt29hZQKafUamcpg 2UFfw2e6CQTl/9kxRCjK7EdCaNN/WBNfYC4HU2YkMAZJ+KT7t2nc+gSy7jkPamxFB9ZW mrOtnD/Sbo4kqV0MihCmw/iuwYkWNQmer42vYcs+bBfAHKdZ6FBWFXPZfdMWs3jjLTZv oYdN0dLOm/8QTLZcXcX8tVT0pPwHLgp3+oEdU8j43k8nAcBHHxN1UoSBB2/ZC903g0of wj8fwI5eRXBFbEHNEzjJ90k5RAGdZZbYVwcM6byQBWUVC2Q2Tamgpin92OA9q9tVWCuv SfqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=l9m0Tb8L2HEBgik8BroPRFgLlm9sHPZ7TL3ru+7brHI=; b=BC8DecnWbMNCpx2+32uQHltWK9fzRe43NXk2UjtRte2feSiHWEnqLH6qcdssVEnkyL RauqdeHrghJDywT8siw+jpr3CgjHKpSU3kzq+8uuk4Ybj5Uo9Bz1N5umjLuprQ8RkINJ WOlN9iL97rfvtej7hGkg/PKN5IWTbx4Rr9piGK1kE9gSPj0F48/fS1ic0KFICa1beRIA SXb4JesWH5uFCQfc56W84pc7Ga9IgK/NgzNkiT0LshBlcdia9M0B30xLlAB4amCT3UYi EhJ+7g0K28Amcgs9IvlfZ9BFfC8aCs45RcPbH6gzIRtEawoxABsTRnpcBVG89WYx4UWh sbug== X-Gm-Message-State: AOAM532LJiKZsneRhNdf+VHuDV92GFflQsJll4HBNus1IK5quZ6V3W0D dqpOSwwTMdkXhRwCdcK3ImxIdj6/n8QnhpB3 X-Google-Smtp-Source: ABdhPJwoEBUgiWehGmRR4cR4Pgy3rA31B3jszdBTuOwZjfIKAxu/HwfG4lph8b2i382jCrY7yAO4/w== X-Received: by 2002:a05:6830:451:: with SMTP id d17mr4140530otc.175.1642102203701; Thu, 13 Jan 2022 11:30:03 -0800 (PST) Received: from rekt.COMFAST ([152.249.109.193]) by smtp.gmail.com with ESMTPSA id 90sm743409otn.59.2022.01.13.11.30.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jan 2022 11:30:03 -0800 (PST) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Subject: [PATCH 01/17] ppc/pnv: use PHB4 obj in pnv_pec_stk_pci_xscom_ops Date: Thu, 13 Jan 2022 16:29:36 -0300 Message-Id: <20220113192952.911188-2-danielhb413@gmail.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20220113192952.911188-1-danielhb413@gmail.com> References: <20220113192952.911188-1-danielhb413@gmail.com> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::32e (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::32e; envelope-from=danielhb413@gmail.com; helo=mail-ot1-x32e.google.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 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, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: , Cc: Daniel Henrique Barboza , qemu-ppc@nongnu.org, clg@kaod.org, david@gibson.dropbear.id.au Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" The current relationship between PnvPhb4PecStack and PnvPHB4 objects is overly complex. Recent work done in pnv_phb4.c and pnv_phb4_pec.c shows that the stack obj role in the overall design is more of a placeholder for its 'phb' object, having no atributes that stand on its own. This became clearer after pnv-phb4 user creatable devices were implemented. What remains now are a lot of stack->phb and phb->stack pointers throughout .read and .write callbacks of MemoryRegionOps that are being initialized in phb4_realize() time. stk_realize() is a no-op if the machine is being run with -nodefaults. The first step of trying to decouple the stack and phb relationship is to move the MemoryRegionOps that belongs to PnvPhb4PecStack to PhbPHB4. Unfortunately this can't be done without some preliminary steps to change the usage of 'stack' and replace it with 'phb' in these read/write callbacks. This patch starts this process by using a PnvPHB4 opaque in pnv_pec_stk_pci_xscom_ops instead of PnvPhb4PecStack. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cédric Le Goater --- hw/pci-host/pnv_phb4.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c index a7b638831e..e010572376 100644 --- a/hw/pci-host/pnv_phb4.c +++ b/hw/pci-host/pnv_phb4.c @@ -1071,7 +1071,7 @@ static const MemoryRegionOps pnv_pec_stk_nest_xscom_ops = { static uint64_t pnv_pec_stk_pci_xscom_read(void *opaque, hwaddr addr, unsigned size) { - PnvPhb4PecStack *stack = PNV_PHB4_PEC_STACK(opaque); + PnvPhb4PecStack *stack = PNV_PHB4(opaque)->stack; uint32_t reg = addr >> 3; /* TODO: add list of allowed registers and error out if not */ @@ -1081,7 +1081,7 @@ static uint64_t pnv_pec_stk_pci_xscom_read(void *opaque, hwaddr addr, static void pnv_pec_stk_pci_xscom_write(void *opaque, hwaddr addr, uint64_t val, unsigned size) { - PnvPhb4PecStack *stack = PNV_PHB4_PEC_STACK(opaque); + PnvPhb4PecStack *stack = PNV_PHB4(opaque)->stack; uint32_t reg = addr >> 3; switch (reg) { @@ -1475,10 +1475,10 @@ static void pnv_phb4_xscom_realize(PnvPHB4 *phb) &pnv_pec_stk_nest_xscom_ops, stack, name, PHB4_PEC_NEST_STK_REGS_COUNT); - snprintf(name, sizeof(name), "xscom-pec-%d.%d-pci-stack-%d", + snprintf(name, sizeof(name), "xscom-pec-%d.%d-pci-phb-%d", pec->chip_id, pec->index, stack->stack_no); - pnv_xscom_region_init(&stack->pci_regs_mr, OBJECT(stack), - &pnv_pec_stk_pci_xscom_ops, stack, name, + pnv_xscom_region_init(&stack->pci_regs_mr, OBJECT(phb), + &pnv_pec_stk_pci_xscom_ops, phb, name, PHB4_PEC_PCI_STK_REGS_COUNT); /* PHB pass-through */ From patchwork Thu Jan 13 19:29:37 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 12713066 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id AA8D6C433EF for ; Thu, 13 Jan 2022 19:39:25 +0000 (UTC) Received: from localhost ([::1]:43128 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n85wS-0000Es-NO for qemu-devel@archiver.kernel.org; Thu, 13 Jan 2022 14:39:24 -0500 Received: from eggs.gnu.org ([209.51.188.92]:35606) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n85nZ-0006QW-Dq; Thu, 13 Jan 2022 14:30:13 -0500 Received: from [2607:f8b0:4864:20::22c] (port=43902 helo=mail-oi1-x22c.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n85nT-00056X-2N; Thu, 13 Jan 2022 14:30:09 -0500 Received: by mail-oi1-x22c.google.com with SMTP id s22so9120798oie.10; Thu, 13 Jan 2022 11:30:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=X6adjTzCeL/KTbF2SV7d/FZdaLhzdscVTQyETcayL7Y=; b=d5EQgErs90eG3lwKV4y462pDElpFHIMzXc9pUfZww0YJS1lxTJPsOjzdp08bqEyXPv Rz5vSo1YRBYQT3pQAM6CWSjTk9a1Nvv8X8ZRB1b38XWfEFTlUGWyzR2qk/vF0dOURQX7 DCqLnyFWETkO7cUCrQY60/Jm6EgGfHhPLp1QF922ZDaEi7CmVDTTJED0E+zsPSyfmt5W 4OU/UwBvrzvNjXl15bmXeH9SeXX0rnrNg5cWh51F62fuizZF7zuAjcsm8cCTwlB3V22q paAYSkVjN9RajUEItuZOfSmqJAXf89xTN7VcYMgRnEqE+EGuv/4DiiFbFqEyZv0w9gmw T4QA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=X6adjTzCeL/KTbF2SV7d/FZdaLhzdscVTQyETcayL7Y=; b=oKv7Ffi7F0uXayHNb93kmjKgI30HnDloOMoljYaqm4HvMr03Hnsak8Frfd04YwJjvZ 69mpHXihb1hZwEFJFCMYE58OtR8P8RFJVYhyWVZnf0H1X2H9qfM0FyVDYKRCgzfcDuyi 86Yyz3RnMT3juxEAv0qZFU9Nk1ZhSTvUbveSqYJOIvB8U/1bMn3BUni5wTzTrUoU7BVu yDF2HkGeFY9iMYab50Ma7uwoKwwOt2NERHBHx2Cp2bvD4DrCWHUTIxv0f5c7EwZRLI1C CJYtyIx/iiAaR+F2dYzAAZHnMtdoAB5kA/MPFhOTticaSvpNgVSbee7njd060G2QskyJ Xh+g== X-Gm-Message-State: AOAM5311Rr9aVcax+ZWQDixtTSUKv7G8eoAu8IuPu9Tu1RcuRsef4VCx uWtsbf/54HfURLRbtJ9W2ClAjhRCUz/V/Eq2 X-Google-Smtp-Source: ABdhPJyInMm4yL4CQ0mc8vwldAwvUITEOkMSi5tyTmpXlK7dRe9y8VTquGyP7z6PVzuZ1htnElsloQ== X-Received: by 2002:aca:90a:: with SMTP id 10mr4476557oij.151.1642102205473; Thu, 13 Jan 2022 11:30:05 -0800 (PST) Received: from rekt.COMFAST ([152.249.109.193]) by smtp.gmail.com with ESMTPSA id 90sm743409otn.59.2022.01.13.11.30.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jan 2022 11:30:05 -0800 (PST) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Subject: [PATCH 02/17] ppc/pnv: move PCI registers to PnvPHB4 Date: Thu, 13 Jan 2022 16:29:37 -0300 Message-Id: <20220113192952.911188-3-danielhb413@gmail.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20220113192952.911188-1-danielhb413@gmail.com> References: <20220113192952.911188-1-danielhb413@gmail.com> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::22c (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::22c; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x22c.google.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 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, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: , Cc: Daniel Henrique Barboza , qemu-ppc@nongnu.org, clg@kaod.org, david@gibson.dropbear.id.au Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Previous patch changed pnv_pec_stk_pci_xscom_read() and pnv_pec_stk_pci_xscom_write() to use a PnvPHB4 opaque, making it easier to move both pci_regs[] and the pci_regs_mr MemoryRegion to the PnvHB4 object. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cédric Le Goater --- hw/pci-host/pnv_phb4.c | 30 +++++++++++++++--------------- include/hw/pci-host/pnv_phb4.h | 10 +++++----- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c index e010572376..fd9f6af4b3 100644 --- a/hw/pci-host/pnv_phb4.c +++ b/hw/pci-host/pnv_phb4.c @@ -1071,54 +1071,54 @@ static const MemoryRegionOps pnv_pec_stk_nest_xscom_ops = { static uint64_t pnv_pec_stk_pci_xscom_read(void *opaque, hwaddr addr, unsigned size) { - PnvPhb4PecStack *stack = PNV_PHB4(opaque)->stack; + PnvPHB4 *phb = PNV_PHB4(opaque); uint32_t reg = addr >> 3; /* TODO: add list of allowed registers and error out if not */ - return stack->pci_regs[reg]; + return phb->pci_regs[reg]; } static void pnv_pec_stk_pci_xscom_write(void *opaque, hwaddr addr, uint64_t val, unsigned size) { - PnvPhb4PecStack *stack = PNV_PHB4(opaque)->stack; + PnvPHB4 *phb = PNV_PHB4(opaque); uint32_t reg = addr >> 3; switch (reg) { case PEC_PCI_STK_PCI_FIR: - stack->pci_regs[reg] = val; + phb->pci_regs[reg] = val; break; case PEC_PCI_STK_PCI_FIR_CLR: - stack->pci_regs[PEC_PCI_STK_PCI_FIR] &= val; + phb->pci_regs[PEC_PCI_STK_PCI_FIR] &= val; break; case PEC_PCI_STK_PCI_FIR_SET: - stack->pci_regs[PEC_PCI_STK_PCI_FIR] |= val; + phb->pci_regs[PEC_PCI_STK_PCI_FIR] |= val; break; case PEC_PCI_STK_PCI_FIR_MSK: - stack->pci_regs[reg] = val; + phb->pci_regs[reg] = val; break; case PEC_PCI_STK_PCI_FIR_MSKC: - stack->pci_regs[PEC_PCI_STK_PCI_FIR_MSK] &= val; + phb->pci_regs[PEC_PCI_STK_PCI_FIR_MSK] &= val; break; case PEC_PCI_STK_PCI_FIR_MSKS: - stack->pci_regs[PEC_PCI_STK_PCI_FIR_MSK] |= val; + phb->pci_regs[PEC_PCI_STK_PCI_FIR_MSK] |= val; break; case PEC_PCI_STK_PCI_FIR_ACT0: case PEC_PCI_STK_PCI_FIR_ACT1: - stack->pci_regs[reg] = val; + phb->pci_regs[reg] = val; break; case PEC_PCI_STK_PCI_FIR_WOF: - stack->pci_regs[reg] = 0; + phb->pci_regs[reg] = 0; break; case PEC_PCI_STK_ETU_RESET: - stack->pci_regs[reg] = val & 0x8000000000000000ull; + phb->pci_regs[reg] = val & 0x8000000000000000ull; /* TODO: Implement reset */ break; case PEC_PCI_STK_PBAIB_ERR_REPORT: break; case PEC_PCI_STK_PBAIB_TX_CMD_CRED: case PEC_PCI_STK_PBAIB_TX_DAT_CRED: - stack->pci_regs[reg] = val; + phb->pci_regs[reg] = val; break; default: qemu_log_mask(LOG_UNIMP, "phb4_pec_stk: pci_xscom_write 0x%"HWADDR_PRIx @@ -1477,7 +1477,7 @@ static void pnv_phb4_xscom_realize(PnvPHB4 *phb) snprintf(name, sizeof(name), "xscom-pec-%d.%d-pci-phb-%d", pec->chip_id, pec->index, stack->stack_no); - pnv_xscom_region_init(&stack->pci_regs_mr, OBJECT(phb), + pnv_xscom_region_init(&phb->pci_regs_mr, OBJECT(phb), &pnv_pec_stk_pci_xscom_ops, phb, name, PHB4_PEC_PCI_STK_REGS_COUNT); @@ -1496,7 +1496,7 @@ static void pnv_phb4_xscom_realize(PnvPHB4 *phb) &stack->nest_regs_mr); pnv_xscom_add_subregion(pec->chip, pec_pci_base + 0x40 * (stack->stack_no + 1), - &stack->pci_regs_mr); + &phb->pci_regs_mr); pnv_xscom_add_subregion(pec->chip, pec_pci_base + PNV9_XSCOM_PEC_PCI_STK0 + 0x40 * stack->stack_no, diff --git a/include/hw/pci-host/pnv_phb4.h b/include/hw/pci-host/pnv_phb4.h index 4b7ce8a723..4487c3a6e2 100644 --- a/include/hw/pci-host/pnv_phb4.h +++ b/include/hw/pci-host/pnv_phb4.h @@ -107,6 +107,11 @@ struct PnvPHB4 { MemoryRegion pci_mmio; MemoryRegion pci_io; + /* PCI registers (excluding pass-through) */ +#define PHB4_PEC_PCI_STK_REGS_COUNT 0xf + uint64_t pci_regs[PHB4_PEC_PCI_STK_REGS_COUNT]; + MemoryRegion pci_regs_mr; + /* On-chip IODA tables */ uint64_t ioda_LIST[PNV_PHB4_MAX_LSIs]; uint64_t ioda_MIST[PNV_PHB4_MAX_MIST]; @@ -155,11 +160,6 @@ struct PnvPhb4PecStack { uint64_t nest_regs[PHB4_PEC_NEST_STK_REGS_COUNT]; MemoryRegion nest_regs_mr; - /* PCI registers (excluding pass-through) */ -#define PHB4_PEC_PCI_STK_REGS_COUNT 0xf - uint64_t pci_regs[PHB4_PEC_PCI_STK_REGS_COUNT]; - MemoryRegion pci_regs_mr; - /* PHB pass-through XSCOM */ MemoryRegion phb_regs_mr; From patchwork Thu Jan 13 19:29:38 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 12713074 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 61930C433F5 for ; Thu, 13 Jan 2022 19:44:16 +0000 (UTC) Received: from localhost ([::1]:51924 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n8618-0006EM-Vz for qemu-devel@archiver.kernel.org; Thu, 13 Jan 2022 14:44:15 -0500 Received: from eggs.gnu.org ([209.51.188.92]:35608) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n85nZ-0006Qj-Ee; Thu, 13 Jan 2022 14:30:13 -0500 Received: from [2607:f8b0:4864:20::333] (port=46970 helo=mail-ot1-x333.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n85nU-00057A-Si; Thu, 13 Jan 2022 14:30:10 -0500 Received: by mail-ot1-x333.google.com with SMTP id t4-20020a05683022e400b00591aaf48277so7452648otc.13; Thu, 13 Jan 2022 11:30:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=qlzqre5YnO1MD+zn72qC624iitqzx5olmZATphI6Tdo=; b=J7rMY2XjhLqGDuA94xC411lU6PkWUCdjRhbLTDI45kOmMIZBuHK/TqCOjWBwQ6q5Qi CR0Axk33U+kVmmsUFK2mlDOcLawmpotQXIVirlmm4IfSzDSgzD6FXQQwdxklpFwBAw9+ t2+B6Hm/CIr+0S/EGnRyBK0/DtAVg76DbsIXwuWBSov2Amu7nbg/X5FWJvIGWWayQYux 6JNDJVBx7s2zx3qFoiTciM+WGV8c/sQlYorOOJAI9qX1tKJsHazM3Sw7Gl7c2IITnvx2 vSrAIR5/1XrtTznwIrFvCR1aNkHJAtSF16d1NZXz3riLj7AmlD3Mx2DH/mU4i3N8iRUr P9EQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=qlzqre5YnO1MD+zn72qC624iitqzx5olmZATphI6Tdo=; b=eAT03pTYEVHu23RhSQfSTyD1COmkTatLvmomr/qnqVXLAxGwD/gojE5jBxuonBw7JN jv+HG6ym8K223oGTf0FaRC9CK++OmFxtqQSZU+hZYuymieHYX3jBc2htrpxxK2Gg7itW WdGF+Qf2d8TS8uAr/WCOqPZZikfzyWLHiYQJAgpEVtAQBvI4wjV+T/aWJ3UspXgvBAZN dy8d5IKpmsewyRLcn2W7mwWRx8jlZQxgdGBU12GYV6TOs6+e9GzWd6IM+/a3ui/EzRFe e1oT7U3eJ9SpxCZiVpMEf7+I2zmeo/bOwJy7+18FleYG4Y28NlSGkj3Ksx/Tok6X/mN+ 4oDw== X-Gm-Message-State: AOAM533YeYk0wW8w2qnPItbY1JA++Ikstq8S8K4UGtO+AD3IQi6MMrnJ m+6X78oEpulPaS94ac663W4PedVV7o7s7RqF X-Google-Smtp-Source: ABdhPJz2qf3/vakyf5j1klsCbqe/vZkENdRwhNo2wvlwuLsrOjT6GiInUAAqJ8BqN13DOq28/CCqGw== X-Received: by 2002:a9d:7f81:: with SMTP id t1mr4105268otp.89.1642102207265; Thu, 13 Jan 2022 11:30:07 -0800 (PST) Received: from rekt.COMFAST ([152.249.109.193]) by smtp.gmail.com with ESMTPSA id 90sm743409otn.59.2022.01.13.11.30.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jan 2022 11:30:07 -0800 (PST) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Subject: [PATCH 03/17] ppc/pnv: move phbbar to PnvPHB4 Date: Thu, 13 Jan 2022 16:29:38 -0300 Message-Id: <20220113192952.911188-4-danielhb413@gmail.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20220113192952.911188-1-danielhb413@gmail.com> References: <20220113192952.911188-1-danielhb413@gmail.com> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::333 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::333; envelope-from=danielhb413@gmail.com; helo=mail-ot1-x333.google.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 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, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: , Cc: Daniel Henrique Barboza , qemu-ppc@nongnu.org, clg@kaod.org, david@gibson.dropbear.id.au Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" This MemoryRegion is simple enough to be moved in a single step. A 'stack->phb' pointer had to be introduced in pnv_pec_stk_update_map() because this function isn't ready to be fully converted to use a PnvPHB4 pointer instead. This will be dealt with in the following patches. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cédric Le Goater --- hw/pci-host/pnv_phb4.c | 19 ++++++++++--------- include/hw/pci-host/pnv_phb4.h | 4 +++- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c index fd9f6af4b3..00eaf91fca 100644 --- a/hw/pci-host/pnv_phb4.c +++ b/hw/pci-host/pnv_phb4.c @@ -874,15 +874,15 @@ static void pnv_phb4_update_regions(PnvPhb4PecStack *stack) /* Unmap first always */ if (memory_region_is_mapped(&phb->mr_regs)) { - memory_region_del_subregion(&stack->phbbar, &phb->mr_regs); + memory_region_del_subregion(&phb->phbbar, &phb->mr_regs); } if (memory_region_is_mapped(&phb->xsrc.esb_mmio)) { memory_region_del_subregion(&stack->intbar, &phb->xsrc.esb_mmio); } /* Map registers if enabled */ - if (memory_region_is_mapped(&stack->phbbar)) { - memory_region_add_subregion(&stack->phbbar, 0, &phb->mr_regs); + if (memory_region_is_mapped(&phb->phbbar)) { + memory_region_add_subregion(&phb->phbbar, 0, &phb->mr_regs); } /* Map ESB if enabled */ @@ -897,6 +897,7 @@ static void pnv_phb4_update_regions(PnvPhb4PecStack *stack) static void pnv_pec_stk_update_map(PnvPhb4PecStack *stack) { PnvPhb4PecState *pec = stack->pec; + PnvPHB4 *phb = stack->phb; MemoryRegion *sysmem = get_system_memory(); uint64_t bar_en = stack->nest_regs[PEC_NEST_STK_BAR_EN]; uint64_t bar, mask, size; @@ -919,9 +920,9 @@ static void pnv_pec_stk_update_map(PnvPhb4PecStack *stack) !(bar_en & PEC_NEST_STK_BAR_EN_MMIO1)) { memory_region_del_subregion(sysmem, &stack->mmbar1); } - if (memory_region_is_mapped(&stack->phbbar) && + if (memory_region_is_mapped(&phb->phbbar) && !(bar_en & PEC_NEST_STK_BAR_EN_PHB)) { - memory_region_del_subregion(sysmem, &stack->phbbar); + memory_region_del_subregion(sysmem, &phb->phbbar); } if (memory_region_is_mapped(&stack->intbar) && !(bar_en & PEC_NEST_STK_BAR_EN_INT)) { @@ -956,14 +957,14 @@ static void pnv_pec_stk_update_map(PnvPhb4PecStack *stack) stack->mmio1_base = bar; stack->mmio1_size = size; } - if (!memory_region_is_mapped(&stack->phbbar) && + if (!memory_region_is_mapped(&phb->phbbar) && (bar_en & PEC_NEST_STK_BAR_EN_PHB)) { bar = stack->nest_regs[PEC_NEST_STK_PHB_REGS_BAR] >> 8; size = PNV_PHB4_NUM_REGS << 3; - snprintf(name, sizeof(name), "pec-%d.%d-stack-%d-phb", + snprintf(name, sizeof(name), "pec-%d.%d-phb-%d", pec->chip_id, pec->index, stack->stack_no); - memory_region_init(&stack->phbbar, OBJECT(stack), name, size); - memory_region_add_subregion(sysmem, bar, &stack->phbbar); + memory_region_init(&phb->phbbar, OBJECT(phb), name, size); + memory_region_add_subregion(sysmem, bar, &phb->phbbar); } if (!memory_region_is_mapped(&stack->intbar) && (bar_en & PEC_NEST_STK_BAR_EN_INT)) { diff --git a/include/hw/pci-host/pnv_phb4.h b/include/hw/pci-host/pnv_phb4.h index 4487c3a6e2..b11fa80e81 100644 --- a/include/hw/pci-host/pnv_phb4.h +++ b/include/hw/pci-host/pnv_phb4.h @@ -112,6 +112,9 @@ struct PnvPHB4 { uint64_t pci_regs[PHB4_PEC_PCI_STK_REGS_COUNT]; MemoryRegion pci_regs_mr; + /* Memory windows from PowerBus to PHB */ + MemoryRegion phbbar; + /* On-chip IODA tables */ uint64_t ioda_LIST[PNV_PHB4_MAX_LSIs]; uint64_t ioda_MIST[PNV_PHB4_MAX_MIST]; @@ -166,7 +169,6 @@ struct PnvPhb4PecStack { /* Memory windows from PowerBus to PHB */ MemoryRegion mmbar0; MemoryRegion mmbar1; - MemoryRegion phbbar; MemoryRegion intbar; uint64_t mmio0_base; uint64_t mmio0_size; From patchwork Thu Jan 13 19:29:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 12713059 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 12791C433EF for ; Thu, 13 Jan 2022 19:34:36 +0000 (UTC) Received: from localhost ([::1]:33556 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n85rm-0001DB-SU for qemu-devel@archiver.kernel.org; Thu, 13 Jan 2022 14:34:34 -0500 Received: from eggs.gnu.org ([209.51.188.92]:35644) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n85nb-0006Sr-AE; Thu, 13 Jan 2022 14:30:15 -0500 Received: from [2607:f8b0:4864:20::334] (port=36857 helo=mail-ot1-x334.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n85nZ-00057O-EP; Thu, 13 Jan 2022 14:30:14 -0500 Received: by mail-ot1-x334.google.com with SMTP id s21-20020a05683004d500b0058f585672efso7506371otd.3; Thu, 13 Jan 2022 11:30:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=otRlOjlUfqQOxcNs1wEtkQLFCCL1TOTQZ2XB5HT4A24=; b=lyrPLbA0vC2njSAy5Ftsh5bmIgNqnFQIPIOn2zcIeOI79I5CTJHBKWI1aWH2b7kvJY qYb2JA/K6f+tDHBHkjxjM4T9Ijy4x0RCRkDjJO+k+V9PfkQnyFZDxLaLo/qf3kJaMdm4 Xmrr+QaeMCu+1cxeXs6WbAZSmXr66TKwsYlepQkgUPBGBqMuBLgUk3uFiJLK71x4HP9A PG//Ws/FbJ5xexli/36UjkeRgVgLBql78ZO/SeVeJCgTgT8eI2frXfMnz/IqA1L2ajob 6iG9I3Oq/BC9hf9U5AKgzeZteqACTI58v5ap4o6/hZIaLD9E5JmHZDGteL9zB6nII9MT r7Ng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=otRlOjlUfqQOxcNs1wEtkQLFCCL1TOTQZ2XB5HT4A24=; b=Ow9dB0QamElKpFN0kHb9QAkVkTApLiXuzP5v6vm5Z95rayl+GUHTxx80ycF7gsMJgu 6DsRjOoTCIkOk/1w/tZOf3r8cdQQER82MWxG2nFr1mks5IgHNN9tFFPMkf5TibUCLL0j MgzhoG5GyyCvdJcXKlqG26Ej1TSGSLxspJ9w7o0FtgmU+ve4vc5fg+hqkwubrW0RiQf8 G/YAqv+c68FeMEbAF//plpunZTIMK+E+g60TvL0Gt0hcBAb5nLEpqDI0R4R7Rc4pXu+O 8A4cd3hYc4m/sbDEaA6rdIxxrlf2KYTgv6X49ZHJAwLAVA6QAJFJuGUWc1tDo2vtRWKL W2CQ== X-Gm-Message-State: AOAM530WBHlJlkvp5UBFXyqyiz6HAlG9/TAT/GvWhHWhosMOfUmhIZFg GFa6bI6bBvJBLanZsDHKS8ajiPPFlP7wacm3 X-Google-Smtp-Source: ABdhPJxjdUXm6yQY/Xqh18yR5S+b96jPeGXUL+3H7P7cnBxc8sjKgfEpSojnakUNcwSantytiy5zaw== X-Received: by 2002:a9d:2206:: with SMTP id o6mr4306352ota.148.1642102209283; Thu, 13 Jan 2022 11:30:09 -0800 (PST) Received: from rekt.COMFAST ([152.249.109.193]) by smtp.gmail.com with ESMTPSA id 90sm743409otn.59.2022.01.13.11.30.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jan 2022 11:30:08 -0800 (PST) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Subject: [PATCH 04/17] ppc/pnv: move intbar to PnvPHB4 Date: Thu, 13 Jan 2022 16:29:39 -0300 Message-Id: <20220113192952.911188-5-danielhb413@gmail.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20220113192952.911188-1-danielhb413@gmail.com> References: <20220113192952.911188-1-danielhb413@gmail.com> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::334 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::334; envelope-from=danielhb413@gmail.com; helo=mail-ot1-x334.google.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 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, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: , Cc: Daniel Henrique Barboza , qemu-ppc@nongnu.org, clg@kaod.org, david@gibson.dropbear.id.au Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" This MemoryRegion can also be moved in a single step. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cédric Le Goater --- hw/pci-host/pnv_phb4.c | 18 +++++++++--------- include/hw/pci-host/pnv_phb4.h | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c index 00eaf91fca..fbc475f27a 100644 --- a/hw/pci-host/pnv_phb4.c +++ b/hw/pci-host/pnv_phb4.c @@ -877,7 +877,7 @@ static void pnv_phb4_update_regions(PnvPhb4PecStack *stack) memory_region_del_subregion(&phb->phbbar, &phb->mr_regs); } if (memory_region_is_mapped(&phb->xsrc.esb_mmio)) { - memory_region_del_subregion(&stack->intbar, &phb->xsrc.esb_mmio); + memory_region_del_subregion(&phb->intbar, &phb->xsrc.esb_mmio); } /* Map registers if enabled */ @@ -886,8 +886,8 @@ static void pnv_phb4_update_regions(PnvPhb4PecStack *stack) } /* Map ESB if enabled */ - if (memory_region_is_mapped(&stack->intbar)) { - memory_region_add_subregion(&stack->intbar, 0, &phb->xsrc.esb_mmio); + if (memory_region_is_mapped(&phb->intbar)) { + memory_region_add_subregion(&phb->intbar, 0, &phb->xsrc.esb_mmio); } /* Check/update m32 */ @@ -924,9 +924,9 @@ static void pnv_pec_stk_update_map(PnvPhb4PecStack *stack) !(bar_en & PEC_NEST_STK_BAR_EN_PHB)) { memory_region_del_subregion(sysmem, &phb->phbbar); } - if (memory_region_is_mapped(&stack->intbar) && + if (memory_region_is_mapped(&phb->intbar) && !(bar_en & PEC_NEST_STK_BAR_EN_INT)) { - memory_region_del_subregion(sysmem, &stack->intbar); + memory_region_del_subregion(sysmem, &phb->intbar); } /* Update PHB */ @@ -966,14 +966,14 @@ static void pnv_pec_stk_update_map(PnvPhb4PecStack *stack) memory_region_init(&phb->phbbar, OBJECT(phb), name, size); memory_region_add_subregion(sysmem, bar, &phb->phbbar); } - if (!memory_region_is_mapped(&stack->intbar) && + if (!memory_region_is_mapped(&phb->intbar) && (bar_en & PEC_NEST_STK_BAR_EN_INT)) { bar = stack->nest_regs[PEC_NEST_STK_INT_BAR] >> 8; size = PNV_PHB4_MAX_INTs << 16; - snprintf(name, sizeof(name), "pec-%d.%d-stack-%d-int", + snprintf(name, sizeof(name), "pec-%d.%d-phb-%d-int", stack->pec->chip_id, stack->pec->index, stack->stack_no); - memory_region_init(&stack->intbar, OBJECT(stack), name, size); - memory_region_add_subregion(sysmem, bar, &stack->intbar); + memory_region_init(&phb->intbar, OBJECT(phb), name, size); + memory_region_add_subregion(sysmem, bar, &phb->intbar); } /* Update PHB */ diff --git a/include/hw/pci-host/pnv_phb4.h b/include/hw/pci-host/pnv_phb4.h index b11fa80e81..cf5dd4009c 100644 --- a/include/hw/pci-host/pnv_phb4.h +++ b/include/hw/pci-host/pnv_phb4.h @@ -114,6 +114,7 @@ struct PnvPHB4 { /* Memory windows from PowerBus to PHB */ MemoryRegion phbbar; + MemoryRegion intbar; /* On-chip IODA tables */ uint64_t ioda_LIST[PNV_PHB4_MAX_LSIs]; @@ -169,7 +170,6 @@ struct PnvPhb4PecStack { /* Memory windows from PowerBus to PHB */ MemoryRegion mmbar0; MemoryRegion mmbar1; - MemoryRegion intbar; uint64_t mmio0_base; uint64_t mmio0_size; uint64_t mmio1_base; From patchwork Thu Jan 13 19:29:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 12713088 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 9F69DC433F5 for ; Thu, 13 Jan 2022 19:49:50 +0000 (UTC) Received: from localhost ([::1]:60394 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n866X-0003l1-Kc for qemu-devel@archiver.kernel.org; Thu, 13 Jan 2022 14:49:49 -0500 Received: from eggs.gnu.org ([209.51.188.92]:35646) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n85nb-0006Sv-Aq; Thu, 13 Jan 2022 14:30:15 -0500 Received: from [2607:f8b0:4864:20::233] (port=41694 helo=mail-oi1-x233.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n85nZ-00057V-HC; Thu, 13 Jan 2022 14:30:14 -0500 Received: by mail-oi1-x233.google.com with SMTP id q186so9147594oih.8; Thu, 13 Jan 2022 11:30:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=m0cllZJysny9gigAmbQQdknJd6aX4ieXImtqys5Fd+g=; b=CehLCPmEx9wF5xG+pAHznDCVdz6XVcbhE1uTxCRt4kxONQUQEbLu8TuFdeIKcdbyyE cXQfTUOjiT33OnEU3CTljMo4HiscVGZUQHvGezKZOvTTSM1YY7ACoPDee0MRgKCZKIsM lJf30aF7J5MAZa3f1cTKvITUv3vOdONbFNCie5W1kq2GgH7gzoVjH3HZALLZKa0Tago+ tPQHHOpQMWIk66OFFaRnUYrdQiWFe87nw1RcT7sWPsFI5Ikt3F11ppEbVG9VglFqEpso LuygcpbB1UzicQZBzvxzxg6TCP02NIZ556IRw96t6FpyvnzVr0oUxSCR3NAa0/3qf+f0 koMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=m0cllZJysny9gigAmbQQdknJd6aX4ieXImtqys5Fd+g=; b=zZefu13uzXXVz6X6CmS9FrTl9YFVEuUpi19WwVvb7F+p9NJntLEyNw175g3c/b3gsU eVrl6Im+5Upo47j4vx8Kul0QcZvQCO12I+YwuA+fbaQVWKAbPoY4ZKwd4AoUr7uvMbue JdkfxiS+ohh9VnFYoCsZZFTpVb3WUMwckKGHq/X6SQ0dwUTR2oOKCejY3ZTq7wCVXB4Q TjLzlukO16R9WVTIrjOrsMk12RibkyCd/oEH6SQflilDiLAduFO+o0EcxweuH3xRMh6k gqP8bACj4GUCuxFEX4M6ZxfdlqBP/V1S1fiGBZT49j2U1wVsJ7fZjq26gzayxVkH2X3v DDgg== X-Gm-Message-State: AOAM532bO8zNBDGCoCJokCLucpRhI3nqQhv8zY1n9tYrJ6pwOjTtM2n8 Vd/1crnboVpoYtHaKx9yQj5SoYwl8FAmTvvx X-Google-Smtp-Source: ABdhPJwjF2o2qoJyiu/F36FHJu7eccTFNOlXcyASjsqBVmsEYWiOnFrh9oDdoMBMGlA26OgHTdsDNg== X-Received: by 2002:a05:6808:ecc:: with SMTP id q12mr9955062oiv.122.1642102211096; Thu, 13 Jan 2022 11:30:11 -0800 (PST) Received: from rekt.COMFAST ([152.249.109.193]) by smtp.gmail.com with ESMTPSA id 90sm743409otn.59.2022.01.13.11.30.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jan 2022 11:30:10 -0800 (PST) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Subject: [PATCH 05/17] ppc/pnv: change pnv_phb4_update_regions() to use PnvPHB4 Date: Thu, 13 Jan 2022 16:29:40 -0300 Message-Id: <20220113192952.911188-6-danielhb413@gmail.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20220113192952.911188-1-danielhb413@gmail.com> References: <20220113192952.911188-1-danielhb413@gmail.com> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::233 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::233; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x233.google.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 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, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: , Cc: Daniel Henrique Barboza , qemu-ppc@nongnu.org, clg@kaod.org, david@gibson.dropbear.id.au Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" The function does not rely on stack for anything it does anymore. This is also one less instance of 'stack->phb' that we need to worry about. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cédric Le Goater --- hw/pci-host/pnv_phb4.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c index fbc475f27a..034721f159 100644 --- a/hw/pci-host/pnv_phb4.c +++ b/hw/pci-host/pnv_phb4.c @@ -868,10 +868,8 @@ static uint64_t pnv_pec_stk_nest_xscom_read(void *opaque, hwaddr addr, return stack->nest_regs[reg]; } -static void pnv_phb4_update_regions(PnvPhb4PecStack *stack) +static void pnv_phb4_update_regions(PnvPHB4 *phb) { - PnvPHB4 *phb = stack->phb; - /* Unmap first always */ if (memory_region_is_mapped(&phb->mr_regs)) { memory_region_del_subregion(&phb->phbbar, &phb->mr_regs); @@ -930,7 +928,7 @@ static void pnv_pec_stk_update_map(PnvPhb4PecStack *stack) } /* Update PHB */ - pnv_phb4_update_regions(stack); + pnv_phb4_update_regions(phb); /* Handle maps */ if (!memory_region_is_mapped(&stack->mmbar0) && @@ -977,7 +975,7 @@ static void pnv_pec_stk_update_map(PnvPhb4PecStack *stack) } /* Update PHB */ - pnv_phb4_update_regions(stack); + pnv_phb4_update_regions(phb); } static void pnv_pec_stk_nest_xscom_write(void *opaque, hwaddr addr, From patchwork Thu Jan 13 19:29:41 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 12713073 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 5A9DFC433F5 for ; Thu, 13 Jan 2022 19:43:31 +0000 (UTC) Received: from localhost ([::1]:49432 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n860P-0004Zj-5E for qemu-devel@archiver.kernel.org; Thu, 13 Jan 2022 14:43:30 -0500 Received: from eggs.gnu.org ([209.51.188.92]:35668) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n85nd-0006VJ-01; Thu, 13 Jan 2022 14:30:17 -0500 Received: from [2607:f8b0:4864:20::331] (port=33468 helo=mail-ot1-x331.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n85na-00057r-VT; Thu, 13 Jan 2022 14:30:16 -0500 Received: by mail-ot1-x331.google.com with SMTP id 35-20020a9d08a6000000b00579cd5e605eso7542887otf.0; Thu, 13 Jan 2022 11:30:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=/BtYWFvmad4GLEqJvo7bvpC6LUkT5vGSdsv4AVZVYnc=; b=dt+mKHmoHszsf6pNK2+nEVMS0csV23L+kTFoY63kbNavfKId5dYuv9lQVMLoRSMuu8 clF3lrMgqW3xVr+olOThV9xrpHspB4O9u/CMeAfsvk7/KtnJaf+HKdY1004dD1TVl70J D4Kz05LL4jjAl4DTuDN00Wzu2m5zoQlY7KPhXcm5W6nC8WFhECKKDbIRtG9vE0QKYxuM nwtAJAUKYxYANS8hjgPe2Nx6JQZhv7mkEGzOkNwZobY8YiM03oDPamcAWhRM36EvQHHf /WbhGnzG63795tLAQl+fnldvhwHfW/qUUHX9J8FEzSNtI8xVDLK6vjQfEg4+2S1d0uS6 U31A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=/BtYWFvmad4GLEqJvo7bvpC6LUkT5vGSdsv4AVZVYnc=; b=tVJ/A3r5DoFBklQOC6mYRNzRQao+vWA4exLDVM5rKFzWv3EzAEN4tIlDmKZxxDx1iK EmVcWFTabywSGlqLtWYx45RrB9fl9PR/GvE4A4WW+RyM5S8N/WZnoEwxJ9nWD9WKHuSZ UMoHyBPbaTJ7ezO7S6zB5ScrO/yJOP7YXiDbbIHzJS/2jFMINeal+9wm6CFYXa6MVLDw Yiwz99ckd8xksFDQDZAj2PxKk1fWFYU0LG+j+/7/azHBALs9yOgZvXdhXaEWbhOcx2DE vBSG+QbY5d4WDdO7w5Nx2YGyfz0s+bU7vE3s39fY6PcxoJNOCQwqxER1Zu+W6jHEEZ3z ATWQ== X-Gm-Message-State: AOAM530Q2C99x5eLeHBhHKsmPWk4RwNwOTM774LdzbA7itr5TJf9MIkK uYckag+TOVvkYAKLkAMlC9/zOrn5d7qQ1WIw X-Google-Smtp-Source: ABdhPJxsl+PNnB7XinPDXxCXxA2aeVgbD0x3xMqKu13Jc4cq4GFk9cUh4y2WQx+sBHa6/MQjRthKFA== X-Received: by 2002:a9d:6452:: with SMTP id m18mr4170203otl.99.1642102212863; Thu, 13 Jan 2022 11:30:12 -0800 (PST) Received: from rekt.COMFAST ([152.249.109.193]) by smtp.gmail.com with ESMTPSA id 90sm743409otn.59.2022.01.13.11.30.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jan 2022 11:30:12 -0800 (PST) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Subject: [PATCH 06/17] ppc/pnv: move mmbar0/mmbar1 and friends to PnvPHB4 Date: Thu, 13 Jan 2022 16:29:41 -0300 Message-Id: <20220113192952.911188-7-danielhb413@gmail.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20220113192952.911188-1-danielhb413@gmail.com> References: <20220113192952.911188-1-danielhb413@gmail.com> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::331 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::331; envelope-from=danielhb413@gmail.com; helo=mail-ot1-x331.google.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 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, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: , Cc: Daniel Henrique Barboza , qemu-ppc@nongnu.org, clg@kaod.org, david@gibson.dropbear.id.au Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" These 2 MemoryRegions, together with mmio(0|1)_base and mmio(0|1)_size variables, are used together in the same functions. We're better of moving them all in a single step. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cédric Le Goater --- hw/pci-host/pnv_phb4.c | 52 +++++++++++++++++----------------- include/hw/pci-host/pnv_phb4.h | 14 ++++----- 2 files changed, 32 insertions(+), 34 deletions(-) diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c index 034721f159..dc4db091e4 100644 --- a/hw/pci-host/pnv_phb4.c +++ b/hw/pci-host/pnv_phb4.c @@ -228,16 +228,16 @@ static void pnv_phb4_check_mbt(PnvPHB4 *phb, uint32_t index) /* TODO: Figure out how to implemet/decode AOMASK */ /* Check if it matches an enabled MMIO region in the PEC stack */ - if (memory_region_is_mapped(&phb->stack->mmbar0) && - base >= phb->stack->mmio0_base && - (base + size) <= (phb->stack->mmio0_base + phb->stack->mmio0_size)) { - parent = &phb->stack->mmbar0; - base -= phb->stack->mmio0_base; - } else if (memory_region_is_mapped(&phb->stack->mmbar1) && - base >= phb->stack->mmio1_base && - (base + size) <= (phb->stack->mmio1_base + phb->stack->mmio1_size)) { - parent = &phb->stack->mmbar1; - base -= phb->stack->mmio1_base; + if (memory_region_is_mapped(&phb->mmbar0) && + base >= phb->mmio0_base && + (base + size) <= (phb->mmio0_base + phb->mmio0_size)) { + parent = &phb->mmbar0; + base -= phb->mmio0_base; + } else if (memory_region_is_mapped(&phb->mmbar1) && + base >= phb->mmio1_base && + (base + size) <= (phb->mmio1_base + phb->mmio1_size)) { + parent = &phb->mmbar1; + base -= phb->mmio1_base; } else { phb_error(phb, "PHB MBAR %d out of parent bounds", index); return; @@ -910,13 +910,13 @@ static void pnv_pec_stk_update_map(PnvPhb4PecStack *stack) */ /* Handle unmaps */ - if (memory_region_is_mapped(&stack->mmbar0) && + if (memory_region_is_mapped(&phb->mmbar0) && !(bar_en & PEC_NEST_STK_BAR_EN_MMIO0)) { - memory_region_del_subregion(sysmem, &stack->mmbar0); + memory_region_del_subregion(sysmem, &phb->mmbar0); } - if (memory_region_is_mapped(&stack->mmbar1) && + if (memory_region_is_mapped(&phb->mmbar1) && !(bar_en & PEC_NEST_STK_BAR_EN_MMIO1)) { - memory_region_del_subregion(sysmem, &stack->mmbar1); + memory_region_del_subregion(sysmem, &phb->mmbar1); } if (memory_region_is_mapped(&phb->phbbar) && !(bar_en & PEC_NEST_STK_BAR_EN_PHB)) { @@ -931,29 +931,29 @@ static void pnv_pec_stk_update_map(PnvPhb4PecStack *stack) pnv_phb4_update_regions(phb); /* Handle maps */ - if (!memory_region_is_mapped(&stack->mmbar0) && + if (!memory_region_is_mapped(&phb->mmbar0) && (bar_en & PEC_NEST_STK_BAR_EN_MMIO0)) { bar = stack->nest_regs[PEC_NEST_STK_MMIO_BAR0] >> 8; mask = stack->nest_regs[PEC_NEST_STK_MMIO_BAR0_MASK]; size = ((~mask) >> 8) + 1; - snprintf(name, sizeof(name), "pec-%d.%d-stack-%d-mmio0", + snprintf(name, sizeof(name), "pec-%d.%d-phb-%d-mmio0", pec->chip_id, pec->index, stack->stack_no); - memory_region_init(&stack->mmbar0, OBJECT(stack), name, size); - memory_region_add_subregion(sysmem, bar, &stack->mmbar0); - stack->mmio0_base = bar; - stack->mmio0_size = size; + memory_region_init(&phb->mmbar0, OBJECT(phb), name, size); + memory_region_add_subregion(sysmem, bar, &phb->mmbar0); + phb->mmio0_base = bar; + phb->mmio0_size = size; } - if (!memory_region_is_mapped(&stack->mmbar1) && + if (!memory_region_is_mapped(&phb->mmbar1) && (bar_en & PEC_NEST_STK_BAR_EN_MMIO1)) { bar = stack->nest_regs[PEC_NEST_STK_MMIO_BAR1] >> 8; mask = stack->nest_regs[PEC_NEST_STK_MMIO_BAR1_MASK]; size = ((~mask) >> 8) + 1; - snprintf(name, sizeof(name), "pec-%d.%d-stack-%d-mmio1", + snprintf(name, sizeof(name), "pec-%d.%d-phb-%d-mmio1", pec->chip_id, pec->index, stack->stack_no); - memory_region_init(&stack->mmbar1, OBJECT(stack), name, size); - memory_region_add_subregion(sysmem, bar, &stack->mmbar1); - stack->mmio1_base = bar; - stack->mmio1_size = size; + memory_region_init(&phb->mmbar1, OBJECT(phb), name, size); + memory_region_add_subregion(sysmem, bar, &phb->mmbar1); + phb->mmio1_base = bar; + phb->mmio1_size = size; } if (!memory_region_is_mapped(&phb->phbbar) && (bar_en & PEC_NEST_STK_BAR_EN_PHB)) { diff --git a/include/hw/pci-host/pnv_phb4.h b/include/hw/pci-host/pnv_phb4.h index cf5dd4009c..4a8f510f6d 100644 --- a/include/hw/pci-host/pnv_phb4.h +++ b/include/hw/pci-host/pnv_phb4.h @@ -115,6 +115,12 @@ struct PnvPHB4 { /* Memory windows from PowerBus to PHB */ MemoryRegion phbbar; MemoryRegion intbar; + MemoryRegion mmbar0; + MemoryRegion mmbar1; + uint64_t mmio0_base; + uint64_t mmio0_size; + uint64_t mmio1_base; + uint64_t mmio1_size; /* On-chip IODA tables */ uint64_t ioda_LIST[PNV_PHB4_MAX_LSIs]; @@ -167,14 +173,6 @@ struct PnvPhb4PecStack { /* PHB pass-through XSCOM */ MemoryRegion phb_regs_mr; - /* Memory windows from PowerBus to PHB */ - MemoryRegion mmbar0; - MemoryRegion mmbar1; - uint64_t mmio0_base; - uint64_t mmio0_size; - uint64_t mmio1_base; - uint64_t mmio1_size; - /* The owner PEC */ PnvPhb4PecState *pec; From patchwork Thu Jan 13 19:29:42 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 12713061 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 63BC4C433F5 for ; Thu, 13 Jan 2022 19:36:47 +0000 (UTC) Received: from localhost ([::1]:36258 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n85tt-0003G4-Uh for qemu-devel@archiver.kernel.org; Thu, 13 Jan 2022 14:36:45 -0500 Received: from eggs.gnu.org ([209.51.188.92]:35682) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n85nf-0006XZ-GT; Thu, 13 Jan 2022 14:30:21 -0500 Received: from [2607:f8b0:4864:20::235] (port=39644 helo=mail-oi1-x235.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n85nc-000588-0u; Thu, 13 Jan 2022 14:30:18 -0500 Received: by mail-oi1-x235.google.com with SMTP id e81so9130654oia.6; Thu, 13 Jan 2022 11:30:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=OHbRK5dFQ3R9Yy3NyPjc4KFqFIMXx6dWxwCQLbYEPLc=; b=jz3X9IubgQf6Ook5QxDGOACRg3rwrRpEyafEwlTV12/CFDfu5fQOCKUOSFW13jQjO7 SWV8e93/uAREsalrGK1pxWAVNkIXNUQihmwuYChTZ5fhUnYyYUWW4KA4u780pnYFYRmM NBfVcPXApZqe+jTGkXO8vFjtCMyb4oE3kr52eb9n9rLVOAxUfymNRSv9lcbaYCZezWo5 UVW13/hwZ/X5xqwOy5w0KNmvo9K+GGl9qWJXgCjlGhyBhdDERdaAbt1AO44CH9eQHgry knekpF/Ev7Yw6gJm0nAEGKo0Wa85St+1+heZegWPXVBpXkiJg2+J0MivKWUucZko8445 QvHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=OHbRK5dFQ3R9Yy3NyPjc4KFqFIMXx6dWxwCQLbYEPLc=; b=ZIeas7m4FNTqVq9hCE+DaqTq20OvvugwHKvf6Xuicil4u09VNyZ+DhmebxjUXA0wmZ IEzTCiTQuypYZSAuCRATL6/qfEb9FGEUTMjkZLKFPG6Q1UZTZd/gPZUDOoV+mOXOoWjp odogelPoqKJtMGvaMw9/ZE2Hj942HqXZpAjwIb0KW764OyKi335CBxmO9xJJbEZ7ynvb xVpzehKoSsoYm9ZSkJdhTe1Y0zbzpLEO0BCRDz6CMmK554bzC5IWTHxns4hGx3Olas1a 2DIR7V0SIpiohUNC0sDjqfB5vYXvm19Kmmvl7xNdui5pLVSCjtJBsImUEDpbJ4mib96A l8aQ== X-Gm-Message-State: AOAM532bQ7MpOgd9wrwsDGr78NLM07rb7nkZ+LZzu/hxz9rGhsm8SI6V pg+hUihwMiZZ3aawaw8GjiX1DxFaaEXmurw1 X-Google-Smtp-Source: ABdhPJx9Rc4XoPNuORn2n74IcwqNlQhjrmGhHGI2Luw7KPY8xkZ8+eq5FQu7mM3JCSUg+Xh1ITw8wA== X-Received: by 2002:a54:4f81:: with SMTP id g1mr9731905oiy.172.1642102214638; Thu, 13 Jan 2022 11:30:14 -0800 (PST) Received: from rekt.COMFAST ([152.249.109.193]) by smtp.gmail.com with ESMTPSA id 90sm743409otn.59.2022.01.13.11.30.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jan 2022 11:30:14 -0800 (PST) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Subject: [PATCH 07/17] ppc/pnv: move nest_regs[] to PnvPHB4 Date: Thu, 13 Jan 2022 16:29:42 -0300 Message-Id: <20220113192952.911188-8-danielhb413@gmail.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20220113192952.911188-1-danielhb413@gmail.com> References: <20220113192952.911188-1-danielhb413@gmail.com> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::235 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::235; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x235.google.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 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, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: , Cc: Daniel Henrique Barboza , qemu-ppc@nongnu.org, clg@kaod.org, david@gibson.dropbear.id.au Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" stack->nest_regs[] is used in several XSCOM functions and it's one of the main culprits of having to deal with stack->phb pointers around the code. Sure, we're having to add 2 extra stack->phb pointers to ease nest_regs[] migration to PnvPHB4. They'll be dealt with shortly. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cédric Le Goater --- hw/pci-host/pnv_phb4.c | 52 ++++++++++++++++++---------------- include/hw/pci-host/pnv_phb4.h | 7 +++-- 2 files changed, 31 insertions(+), 28 deletions(-) diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c index dc4db091e4..916a7a3cf0 100644 --- a/hw/pci-host/pnv_phb4.c +++ b/hw/pci-host/pnv_phb4.c @@ -862,10 +862,11 @@ static uint64_t pnv_pec_stk_nest_xscom_read(void *opaque, hwaddr addr, unsigned size) { PnvPhb4PecStack *stack = PNV_PHB4_PEC_STACK(opaque); + PnvPHB4 *phb = stack->phb; uint32_t reg = addr >> 3; /* TODO: add list of allowed registers and error out if not */ - return stack->nest_regs[reg]; + return phb->nest_regs[reg]; } static void pnv_phb4_update_regions(PnvPHB4 *phb) @@ -897,7 +898,7 @@ static void pnv_pec_stk_update_map(PnvPhb4PecStack *stack) PnvPhb4PecState *pec = stack->pec; PnvPHB4 *phb = stack->phb; MemoryRegion *sysmem = get_system_memory(); - uint64_t bar_en = stack->nest_regs[PEC_NEST_STK_BAR_EN]; + uint64_t bar_en = phb->nest_regs[PEC_NEST_STK_BAR_EN]; uint64_t bar, mask, size; char name[64]; @@ -933,8 +934,8 @@ static void pnv_pec_stk_update_map(PnvPhb4PecStack *stack) /* Handle maps */ if (!memory_region_is_mapped(&phb->mmbar0) && (bar_en & PEC_NEST_STK_BAR_EN_MMIO0)) { - bar = stack->nest_regs[PEC_NEST_STK_MMIO_BAR0] >> 8; - mask = stack->nest_regs[PEC_NEST_STK_MMIO_BAR0_MASK]; + bar = phb->nest_regs[PEC_NEST_STK_MMIO_BAR0] >> 8; + mask = phb->nest_regs[PEC_NEST_STK_MMIO_BAR0_MASK]; size = ((~mask) >> 8) + 1; snprintf(name, sizeof(name), "pec-%d.%d-phb-%d-mmio0", pec->chip_id, pec->index, stack->stack_no); @@ -945,8 +946,8 @@ static void pnv_pec_stk_update_map(PnvPhb4PecStack *stack) } if (!memory_region_is_mapped(&phb->mmbar1) && (bar_en & PEC_NEST_STK_BAR_EN_MMIO1)) { - bar = stack->nest_regs[PEC_NEST_STK_MMIO_BAR1] >> 8; - mask = stack->nest_regs[PEC_NEST_STK_MMIO_BAR1_MASK]; + bar = phb->nest_regs[PEC_NEST_STK_MMIO_BAR1] >> 8; + mask = phb->nest_regs[PEC_NEST_STK_MMIO_BAR1_MASK]; size = ((~mask) >> 8) + 1; snprintf(name, sizeof(name), "pec-%d.%d-phb-%d-mmio1", pec->chip_id, pec->index, stack->stack_no); @@ -957,7 +958,7 @@ static void pnv_pec_stk_update_map(PnvPhb4PecStack *stack) } if (!memory_region_is_mapped(&phb->phbbar) && (bar_en & PEC_NEST_STK_BAR_EN_PHB)) { - bar = stack->nest_regs[PEC_NEST_STK_PHB_REGS_BAR] >> 8; + bar = phb->nest_regs[PEC_NEST_STK_PHB_REGS_BAR] >> 8; size = PNV_PHB4_NUM_REGS << 3; snprintf(name, sizeof(name), "pec-%d.%d-phb-%d", pec->chip_id, pec->index, stack->stack_no); @@ -966,7 +967,7 @@ static void pnv_pec_stk_update_map(PnvPhb4PecStack *stack) } if (!memory_region_is_mapped(&phb->intbar) && (bar_en & PEC_NEST_STK_BAR_EN_INT)) { - bar = stack->nest_regs[PEC_NEST_STK_INT_BAR] >> 8; + bar = phb->nest_regs[PEC_NEST_STK_INT_BAR] >> 8; size = PNV_PHB4_MAX_INTs << 16; snprintf(name, sizeof(name), "pec-%d.%d-phb-%d-int", stack->pec->chip_id, stack->pec->index, stack->stack_no); @@ -982,34 +983,35 @@ static void pnv_pec_stk_nest_xscom_write(void *opaque, hwaddr addr, uint64_t val, unsigned size) { PnvPhb4PecStack *stack = PNV_PHB4_PEC_STACK(opaque); + PnvPHB4 *phb = stack->phb; PnvPhb4PecState *pec = stack->pec; uint32_t reg = addr >> 3; switch (reg) { case PEC_NEST_STK_PCI_NEST_FIR: - stack->nest_regs[PEC_NEST_STK_PCI_NEST_FIR] = val; + phb->nest_regs[PEC_NEST_STK_PCI_NEST_FIR] = val; break; case PEC_NEST_STK_PCI_NEST_FIR_CLR: - stack->nest_regs[PEC_NEST_STK_PCI_NEST_FIR] &= val; + phb->nest_regs[PEC_NEST_STK_PCI_NEST_FIR] &= val; break; case PEC_NEST_STK_PCI_NEST_FIR_SET: - stack->nest_regs[PEC_NEST_STK_PCI_NEST_FIR] |= val; + phb->nest_regs[PEC_NEST_STK_PCI_NEST_FIR] |= val; break; case PEC_NEST_STK_PCI_NEST_FIR_MSK: - stack->nest_regs[PEC_NEST_STK_PCI_NEST_FIR_MSK] = val; + phb->nest_regs[PEC_NEST_STK_PCI_NEST_FIR_MSK] = val; break; case PEC_NEST_STK_PCI_NEST_FIR_MSKC: - stack->nest_regs[PEC_NEST_STK_PCI_NEST_FIR_MSK] &= val; + phb->nest_regs[PEC_NEST_STK_PCI_NEST_FIR_MSK] &= val; break; case PEC_NEST_STK_PCI_NEST_FIR_MSKS: - stack->nest_regs[PEC_NEST_STK_PCI_NEST_FIR_MSK] |= val; + phb->nest_regs[PEC_NEST_STK_PCI_NEST_FIR_MSK] |= val; break; case PEC_NEST_STK_PCI_NEST_FIR_ACT0: case PEC_NEST_STK_PCI_NEST_FIR_ACT1: - stack->nest_regs[reg] = val; + phb->nest_regs[reg] = val; break; case PEC_NEST_STK_PCI_NEST_FIR_WOF: - stack->nest_regs[reg] = 0; + phb->nest_regs[reg] = 0; break; case PEC_NEST_STK_ERR_REPORT_0: case PEC_NEST_STK_ERR_REPORT_1: @@ -1017,39 +1019,39 @@ static void pnv_pec_stk_nest_xscom_write(void *opaque, hwaddr addr, /* Flag error ? */ break; case PEC_NEST_STK_PBCQ_MODE: - stack->nest_regs[reg] = val & 0xff00000000000000ull; + phb->nest_regs[reg] = val & 0xff00000000000000ull; break; case PEC_NEST_STK_MMIO_BAR0: case PEC_NEST_STK_MMIO_BAR0_MASK: case PEC_NEST_STK_MMIO_BAR1: case PEC_NEST_STK_MMIO_BAR1_MASK: - if (stack->nest_regs[PEC_NEST_STK_BAR_EN] & + if (phb->nest_regs[PEC_NEST_STK_BAR_EN] & (PEC_NEST_STK_BAR_EN_MMIO0 | PEC_NEST_STK_BAR_EN_MMIO1)) { phb_pec_error(pec, "Changing enabled BAR unsupported\n"); } - stack->nest_regs[reg] = val & 0xffffffffff000000ull; + phb->nest_regs[reg] = val & 0xffffffffff000000ull; break; case PEC_NEST_STK_PHB_REGS_BAR: - if (stack->nest_regs[PEC_NEST_STK_BAR_EN] & PEC_NEST_STK_BAR_EN_PHB) { + if (phb->nest_regs[PEC_NEST_STK_BAR_EN] & PEC_NEST_STK_BAR_EN_PHB) { phb_pec_error(pec, "Changing enabled BAR unsupported\n"); } - stack->nest_regs[reg] = val & 0xffffffffffc00000ull; + phb->nest_regs[reg] = val & 0xffffffffffc00000ull; break; case PEC_NEST_STK_INT_BAR: - if (stack->nest_regs[PEC_NEST_STK_BAR_EN] & PEC_NEST_STK_BAR_EN_INT) { + if (phb->nest_regs[PEC_NEST_STK_BAR_EN] & PEC_NEST_STK_BAR_EN_INT) { phb_pec_error(pec, "Changing enabled BAR unsupported\n"); } - stack->nest_regs[reg] = val & 0xfffffff000000000ull; + phb->nest_regs[reg] = val & 0xfffffff000000000ull; break; case PEC_NEST_STK_BAR_EN: - stack->nest_regs[reg] = val & 0xf000000000000000ull; + phb->nest_regs[reg] = val & 0xf000000000000000ull; pnv_pec_stk_update_map(stack); break; case PEC_NEST_STK_DATA_FRZ_TYPE: case PEC_NEST_STK_PBCQ_TUN_BAR: /* Not used for now */ - stack->nest_regs[reg] = val; + phb->nest_regs[reg] = val; break; default: qemu_log_mask(LOG_UNIMP, "phb4_pec: nest_xscom_write 0x%"HWADDR_PRIx diff --git a/include/hw/pci-host/pnv_phb4.h b/include/hw/pci-host/pnv_phb4.h index 4a8f510f6d..a7e08772c1 100644 --- a/include/hw/pci-host/pnv_phb4.h +++ b/include/hw/pci-host/pnv_phb4.h @@ -112,6 +112,10 @@ struct PnvPHB4 { uint64_t pci_regs[PHB4_PEC_PCI_STK_REGS_COUNT]; MemoryRegion pci_regs_mr; + /* Nest registers */ +#define PHB4_PEC_NEST_STK_REGS_COUNT 0x17 + uint64_t nest_regs[PHB4_PEC_NEST_STK_REGS_COUNT]; + /* Memory windows from PowerBus to PHB */ MemoryRegion phbbar; MemoryRegion intbar; @@ -165,9 +169,6 @@ struct PnvPhb4PecStack { /* My own stack number */ uint32_t stack_no; - /* Nest registers */ -#define PHB4_PEC_NEST_STK_REGS_COUNT 0x17 - uint64_t nest_regs[PHB4_PEC_NEST_STK_REGS_COUNT]; MemoryRegion nest_regs_mr; /* PHB pass-through XSCOM */ From patchwork Thu Jan 13 19:29:43 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 12713087 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id B056AC433EF for ; Thu, 13 Jan 2022 19:49:23 +0000 (UTC) Received: from localhost ([::1]:58962 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n8666-0002lV-PJ for qemu-devel@archiver.kernel.org; Thu, 13 Jan 2022 14:49:22 -0500 Received: from eggs.gnu.org ([209.51.188.92]:35704) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n85nh-0006Xd-Gs; Thu, 13 Jan 2022 14:30:22 -0500 Received: from [2607:f8b0:4864:20::32a] (port=41798 helo=mail-ot1-x32a.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n85nd-00058i-VU; Thu, 13 Jan 2022 14:30:20 -0500 Received: by mail-ot1-x32a.google.com with SMTP id a12-20020a0568301dcc00b005919e149b4cso7485600otj.8; Thu, 13 Jan 2022 11:30:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=zgRnhO5u0t+HTfNq/02WdH6b2f2UZL9WiKitZMCU0r0=; b=LJDvl/6I72sIPMieLa+WAhYYxcFnhLjIjZywYWk4DqDa6FiMHMo+x5L9zYEy+aqasU R5yr0oO1TksULjL1nSe70XQt7OCadCwmPPhEzNusMMmWjeJyF+KXStxpZVr75gVct1Ne p9v+PQvldwBKw0ecTgJRbsb5Mz5xmXOk76zCZ7iqVu6O8dv3yqvqtSZfESQXndD7Bctw csXN16+Jd2NFHSGWe0NLww2Eez7mG6TFp1yCTx8+Mc1HGBL3QIccVXW7zxa0eOOpzpsM m281bsG7NQvOuS8LJb0jadsiOAzNxkVMR8uhyDJ/iuuoqWxq60gJJ40uLNiTtiaWSvSv rEnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=zgRnhO5u0t+HTfNq/02WdH6b2f2UZL9WiKitZMCU0r0=; b=MS4l4YGQDXdfE2zvfY/891f2ZAGiUmesh2j9KRe59WgyU5kkzow365HmHqKgCaIC8a amgfCW1+SXglinBdkDLYO9QiMN+zqlZAERPdUIg/Vii1OQIDgOePkb7sVp50kJmkSKka L6pEVUVbZgdgP3PsmG8WRpjf4iWW6xfJ8T8t6UgqIKXBfmU0qWm3/0xephDKMl4cb/1u D+X0ZoRouGsNn48IzPJz7FGyRQJBP/DWXWh1J1NfPLT2+3fTy3bnbvHk3IHIACh7DzNN IxyNT3W4wwKuxzxS+bT5U3kqF8ElIodM+TW0xbIAuh5YGpW6TefaHjbdEhV/zAkrGBn5 LReg== X-Gm-Message-State: AOAM530CWhFblpcWVVlcJ5+3Bev/iA/PYgiKL+Su0hT24ukHkhOpQqRX SwISKEUzvS/bcH7+l/Y25n8XP3foATxJtbt9 X-Google-Smtp-Source: ABdhPJw91TJXQABIx5bwiDdTn7w5xXbI2PcwaN3HLH0/XkucaWQnqqAAUMTAMlWNK5i4N4NVXkG5rQ== X-Received: by 2002:a9d:37a2:: with SMTP id x31mr4134622otb.51.1642102216383; Thu, 13 Jan 2022 11:30:16 -0800 (PST) Received: from rekt.COMFAST ([152.249.109.193]) by smtp.gmail.com with ESMTPSA id 90sm743409otn.59.2022.01.13.11.30.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jan 2022 11:30:16 -0800 (PST) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Subject: [PATCH 08/17] ppc/pnv: change pnv_pec_stk_update_map() to use PnvPHB4 Date: Thu, 13 Jan 2022 16:29:43 -0300 Message-Id: <20220113192952.911188-9-danielhb413@gmail.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20220113192952.911188-1-danielhb413@gmail.com> References: <20220113192952.911188-1-danielhb413@gmail.com> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::32a (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::32a; envelope-from=danielhb413@gmail.com; helo=mail-ot1-x32a.google.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 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, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: , Cc: Daniel Henrique Barboza , qemu-ppc@nongnu.org, clg@kaod.org, david@gibson.dropbear.id.au Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" stack->nest_regs_mr wasn't migrated to PnvPHB4 together with phb->nest_regs[] in the previous patch. We were unable to cleanly convert its write MemoryRegionOps, pnv_pec_stk_nest_xscom_write(), to use PnvPHB4 instead of PnvPhb4PecStack due to pnv_pec_stk_update_map() using a stack. Thing is, we're now able to convert pnv_pec_stk_update_map() because of what the did in previous patch. The need for this intermediate step is a good example of the interconnected relationship between stack and phb that we aim to cleanup. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cédric Le Goater --- hw/pci-host/pnv_phb4.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c index 916a7a3cf0..0f4464ec67 100644 --- a/hw/pci-host/pnv_phb4.c +++ b/hw/pci-host/pnv_phb4.c @@ -893,10 +893,10 @@ static void pnv_phb4_update_regions(PnvPHB4 *phb) pnv_phb4_check_all_mbt(phb); } -static void pnv_pec_stk_update_map(PnvPhb4PecStack *stack) +static void pnv_pec_stk_update_map(PnvPHB4 *phb) { + PnvPhb4PecStack *stack = phb->stack; PnvPhb4PecState *pec = stack->pec; - PnvPHB4 *phb = stack->phb; MemoryRegion *sysmem = get_system_memory(); uint64_t bar_en = phb->nest_regs[PEC_NEST_STK_BAR_EN]; uint64_t bar, mask, size; @@ -1046,7 +1046,7 @@ static void pnv_pec_stk_nest_xscom_write(void *opaque, hwaddr addr, break; case PEC_NEST_STK_BAR_EN: phb->nest_regs[reg] = val & 0xf000000000000000ull; - pnv_pec_stk_update_map(stack); + pnv_pec_stk_update_map(phb); break; case PEC_NEST_STK_DATA_FRZ_TYPE: case PEC_NEST_STK_PBCQ_TUN_BAR: From patchwork Thu Jan 13 19:29:44 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 12713068 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 57E16C433EF for ; Thu, 13 Jan 2022 19:40:08 +0000 (UTC) Received: from localhost ([::1]:44980 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n85x6-0001VY-19 for qemu-devel@archiver.kernel.org; Thu, 13 Jan 2022 14:40:06 -0500 Received: from eggs.gnu.org ([209.51.188.92]:35706) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n85nh-0006Y0-O5; Thu, 13 Jan 2022 14:30:26 -0500 Received: from [2607:f8b0:4864:20::233] (port=33489 helo=mail-oi1-x233.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n85nf-00059U-F9; Thu, 13 Jan 2022 14:30:21 -0500 Received: by mail-oi1-x233.google.com with SMTP id x193so9213001oix.0; Thu, 13 Jan 2022 11:30:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=TABzkpPfD6wgjRoo2MZq+OeqUkvC/rhX1uRTp4QU0hI=; b=C/eXfGxiqh3kF/exv78rjEAZfUAXgum4aSU7vk8aA4+XjhaNGdiWyHNw67Lm7fftip MIW7lLPMoKvMR3UAX+QSYtp7ZBcLHMdA12H5BAerpD3JpJhRIfiQa/cFwuy8LT5j63kc PbxVVN2+/W3s+Z9KmsFr3wGI7+wGXeIko31Uy6rbR8x8LDm8e5FR6fZZSYhm2mquIhj3 V0uN15l6syzapgWFFOzkW1cepIr1AECOTtoaYxNG+w7BLNsdb9I8G9Wri+dy86aGmjmx 4+YGQj2pR5ZSKwf6YHz14rpmRHzUKCOfCLsYAuT2IAniniA1j9M5QnhuXblra2PDUZRg Eaiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=TABzkpPfD6wgjRoo2MZq+OeqUkvC/rhX1uRTp4QU0hI=; b=2Kgc3lulPQB8iXt4ybT8ToagLS6Qlwi26vvibOoOo0sX/+lIAizAUv3PePViFIZdw6 74pkTLDZ1TTJJd9Mowp4su4VsK/kBRSOWzoX47yia4RELS3WjOdwYGcS6afwsksIpgnM dyjkqZfw8AzrGAim1J8jUPDe/95KZmLx7Aw6RyeIZI3CsHWL6XKDcbaYILLD1n+8Z8Je nyYNUyiJlRS7Xmb+Ma+EbD5FBBeccXpaVMfloSSfJ41JK65A4mTGD2J5cr8S0kifcw7L ymYuWiDWeF8wfQ4GRuhcky9+E7Ul1R3bthal6fpV09aT0z3XQr7SDJgbYyeS09Y01E7I y1EQ== X-Gm-Message-State: AOAM533lU+/vzF0jnCd9pe1ICGmK6FK8WS86Swdv9UklX1bfK9qeK0su GdKg7zDOGYnK5MuDQmsW/s1PeOkl0Rv97E5N X-Google-Smtp-Source: ABdhPJwCp49GrCDy1ZfKpaJrg0D6pr5RZNiMy39QE7QcOQ/OjDXx4TnrfiTFRa0d/U+BJprP5s3C2w== X-Received: by 2002:a05:6808:228e:: with SMTP id bo14mr2454348oib.125.1642102218139; Thu, 13 Jan 2022 11:30:18 -0800 (PST) Received: from rekt.COMFAST ([152.249.109.193]) by smtp.gmail.com with ESMTPSA id 90sm743409otn.59.2022.01.13.11.30.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jan 2022 11:30:17 -0800 (PST) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Subject: [PATCH 09/17] ppc/pnv: move nest_regs_mr to PnvPHB4 Date: Thu, 13 Jan 2022 16:29:44 -0300 Message-Id: <20220113192952.911188-10-danielhb413@gmail.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20220113192952.911188-1-danielhb413@gmail.com> References: <20220113192952.911188-1-danielhb413@gmail.com> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::233 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::233; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x233.google.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 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, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: , Cc: Daniel Henrique Barboza , qemu-ppc@nongnu.org, clg@kaod.org, david@gibson.dropbear.id.au Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" We're now able to cleanly move nest_regs_mr to the PnvPHB4 device. One thing of notice here is the need to use a phb->stack->pec pointer because pnv_pec_stk_nest_xscom_write requires a PEC object. Another thing that can be noticed in the use of 'stack->stack_no' that still remains throughout the XSCOM code. After moving all MemoryRegions to the PnvPHB4 object, this illustrates what is the remaining role of the stack: provide a PEC pointer and the 'stack_no' information. If we can provide these in the PnvPHB4 object instead (spoiler: we can, and we will), the PnvPhb4PecStack device will be deprecated and can be removed. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cédric Le Goater --- hw/pci-host/pnv_phb4.c | 16 +++++++--------- include/hw/pci-host/pnv_phb4.h | 3 +-- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c index 0f4464ec67..37bab10fcb 100644 --- a/hw/pci-host/pnv_phb4.c +++ b/hw/pci-host/pnv_phb4.c @@ -861,8 +861,7 @@ const MemoryRegionOps pnv_phb4_xscom_ops = { static uint64_t pnv_pec_stk_nest_xscom_read(void *opaque, hwaddr addr, unsigned size) { - PnvPhb4PecStack *stack = PNV_PHB4_PEC_STACK(opaque); - PnvPHB4 *phb = stack->phb; + PnvPHB4 *phb = PNV_PHB4(opaque); uint32_t reg = addr >> 3; /* TODO: add list of allowed registers and error out if not */ @@ -982,9 +981,8 @@ static void pnv_pec_stk_update_map(PnvPHB4 *phb) static void pnv_pec_stk_nest_xscom_write(void *opaque, hwaddr addr, uint64_t val, unsigned size) { - PnvPhb4PecStack *stack = PNV_PHB4_PEC_STACK(opaque); - PnvPHB4 *phb = stack->phb; - PnvPhb4PecState *pec = stack->pec; + PnvPHB4 *phb = PNV_PHB4(opaque); + PnvPhb4PecState *pec = phb->stack->pec; uint32_t reg = addr >> 3; switch (reg) { @@ -1470,10 +1468,10 @@ static void pnv_phb4_xscom_realize(PnvPHB4 *phb) assert(pec); /* Initialize the XSCOM regions for the stack registers */ - snprintf(name, sizeof(name), "xscom-pec-%d.%d-nest-stack-%d", + snprintf(name, sizeof(name), "xscom-pec-%d.%d-nest-phb-%d", pec->chip_id, pec->index, stack->stack_no); - pnv_xscom_region_init(&stack->nest_regs_mr, OBJECT(stack), - &pnv_pec_stk_nest_xscom_ops, stack, name, + pnv_xscom_region_init(&phb->nest_regs_mr, OBJECT(phb), + &pnv_pec_stk_nest_xscom_ops, phb, name, PHB4_PEC_NEST_STK_REGS_COUNT); snprintf(name, sizeof(name), "xscom-pec-%d.%d-pci-phb-%d", @@ -1494,7 +1492,7 @@ static void pnv_phb4_xscom_realize(PnvPHB4 *phb) /* Populate the XSCOM address space. */ pnv_xscom_add_subregion(pec->chip, pec_nest_base + 0x40 * (stack->stack_no + 1), - &stack->nest_regs_mr); + &phb->nest_regs_mr); pnv_xscom_add_subregion(pec->chip, pec_pci_base + 0x40 * (stack->stack_no + 1), &phb->pci_regs_mr); diff --git a/include/hw/pci-host/pnv_phb4.h b/include/hw/pci-host/pnv_phb4.h index a7e08772c1..1d53dda0ed 100644 --- a/include/hw/pci-host/pnv_phb4.h +++ b/include/hw/pci-host/pnv_phb4.h @@ -115,6 +115,7 @@ struct PnvPHB4 { /* Nest registers */ #define PHB4_PEC_NEST_STK_REGS_COUNT 0x17 uint64_t nest_regs[PHB4_PEC_NEST_STK_REGS_COUNT]; + MemoryRegion nest_regs_mr; /* Memory windows from PowerBus to PHB */ MemoryRegion phbbar; @@ -169,8 +170,6 @@ struct PnvPhb4PecStack { /* My own stack number */ uint32_t stack_no; - MemoryRegion nest_regs_mr; - /* PHB pass-through XSCOM */ MemoryRegion phb_regs_mr; From patchwork Thu Jan 13 19:29:45 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 12713067 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id B263FC433F5 for ; Thu, 13 Jan 2022 19:40:03 +0000 (UTC) Received: from localhost ([::1]:44962 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n85x4-0001UE-PV for qemu-devel@archiver.kernel.org; Thu, 13 Jan 2022 14:40:02 -0500 Received: from eggs.gnu.org ([209.51.188.92]:35724) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n85nk-0006YG-6S; Thu, 13 Jan 2022 14:30:29 -0500 Received: from [2607:f8b0:4864:20::22a] (port=35404 helo=mail-oi1-x22a.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n85nh-0005BO-RN; Thu, 13 Jan 2022 14:30:23 -0500 Received: by mail-oi1-x22a.google.com with SMTP id s127so9182201oig.2; Thu, 13 Jan 2022 11:30:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=k8DtV417FFoHCK0b7K49zL0sYhA3QLT1xvja21pN4eE=; b=b0xSqY48QD7Y3osuuHLZWAM9mF18tCM+8ewzOMNV6KR3GGbqdRsQ3IVZ+RyJNCtKCp vM7LmIeWYZppPJTMOdX4AhVFhmKg10uG3WTrjbXI8gvavcza4gVX0qSiT5QiCOVfx+17 kVJwGll5UcIkRuoK3mbB0qVIvOhcVY568DT0QTUYs0pL5g695IXwOWZhVMBIQwm4SjpG fnKjoucronYqRj/pxmZSOp/+E8snnPvbh5S61dD6gFiDubdfjtt/CWgTHHNY1NC4nLNW 20FtV/YSQBLVqWaW258ihoIw0ACZ94vLjUIPC+agAD68+HEaJ3ZCefCQmni2+53lj5NF XR8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=k8DtV417FFoHCK0b7K49zL0sYhA3QLT1xvja21pN4eE=; b=oZN1gaN8bSTBtw0XnE5EP3kpyzQAfOg0x3+tXZl8yBR4V+q5FYsZx+PkIAxv3gcEa9 ixb4b1uaRELOVyTz903O0vfOe4pdrdRmRVwZrunLe7sJ7pChjfpOAdvH12UfdOyVaLk9 Gu3gipbR/y4K6zSU/hPVgvFxzQvNEm+/KpCXiFrsIVLAuF0NiKhC8m+NtzPYdbhiFqNY eGKIdlVLXHKK2bW3sv5s5iFn9iMANF/SViGvNVLEXs1LgpSSqU3OTLucGd14TD58HB++ IBpZ3/fQbo1BgAPeVlqPx/kp8/3h5+b25rdzFYIDGaO/euAEG4hleLzUHrcASK1f1qkx UnIw== X-Gm-Message-State: AOAM533BMyDTTkflvimntENue9oY57ZDzmC/sJdGb1eNUEUa9WgW2cwM d8+rTaV4ovjPgyMmjbcO/e+/HAxjnmUTMS5J X-Google-Smtp-Source: ABdhPJwdG9RxIncBqED17G5YZoZ8PzIxDxAlJUDarbirBxqmOIkLvVrm2fty9AMGj2rYHklYR/VMWQ== X-Received: by 2002:a05:6808:238d:: with SMTP id bp13mr10294362oib.155.1642102219906; Thu, 13 Jan 2022 11:30:19 -0800 (PST) Received: from rekt.COMFAST ([152.249.109.193]) by smtp.gmail.com with ESMTPSA id 90sm743409otn.59.2022.01.13.11.30.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jan 2022 11:30:19 -0800 (PST) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Subject: [PATCH 10/17] ppc/pnv: move phb_regs_mr to PnvPHB4 Date: Thu, 13 Jan 2022 16:29:45 -0300 Message-Id: <20220113192952.911188-11-danielhb413@gmail.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20220113192952.911188-1-danielhb413@gmail.com> References: <20220113192952.911188-1-danielhb413@gmail.com> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::22a (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::22a; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x22a.google.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 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, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: , Cc: Daniel Henrique Barboza , qemu-ppc@nongnu.org, clg@kaod.org, david@gibson.dropbear.id.au Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" After recent changes, this MemoryRegion can be migrated to PnvPHB4 without too much trouble. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cédric Le Goater --- hw/pci-host/pnv_phb4.c | 6 +++--- include/hw/pci-host/pnv_phb4.h | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c index 37bab10fcb..b5045fca64 100644 --- a/hw/pci-host/pnv_phb4.c +++ b/hw/pci-host/pnv_phb4.c @@ -1481,9 +1481,9 @@ static void pnv_phb4_xscom_realize(PnvPHB4 *phb) PHB4_PEC_PCI_STK_REGS_COUNT); /* PHB pass-through */ - snprintf(name, sizeof(name), "xscom-pec-%d.%d-pci-stack-%d-phb", + snprintf(name, sizeof(name), "xscom-pec-%d.%d-pci-phb-%d", pec->chip_id, pec->index, stack->stack_no); - pnv_xscom_region_init(&stack->phb_regs_mr, OBJECT(phb), + pnv_xscom_region_init(&phb->phb_regs_mr, OBJECT(phb), &pnv_phb4_xscom_ops, phb, name, 0x40); pec_nest_base = pecc->xscom_nest_base(pec); @@ -1499,7 +1499,7 @@ static void pnv_phb4_xscom_realize(PnvPHB4 *phb) pnv_xscom_add_subregion(pec->chip, pec_pci_base + PNV9_XSCOM_PEC_PCI_STK0 + 0x40 * stack->stack_no, - &stack->phb_regs_mr); + &phb->phb_regs_mr); } static void pnv_phb4_instance_init(Object *obj) diff --git a/include/hw/pci-host/pnv_phb4.h b/include/hw/pci-host/pnv_phb4.h index 1d53dda0ed..6968efaba8 100644 --- a/include/hw/pci-host/pnv_phb4.h +++ b/include/hw/pci-host/pnv_phb4.h @@ -117,6 +117,9 @@ struct PnvPHB4 { uint64_t nest_regs[PHB4_PEC_NEST_STK_REGS_COUNT]; MemoryRegion nest_regs_mr; + /* PHB pass-through XSCOM */ + MemoryRegion phb_regs_mr; + /* Memory windows from PowerBus to PHB */ MemoryRegion phbbar; MemoryRegion intbar; @@ -170,9 +173,6 @@ struct PnvPhb4PecStack { /* My own stack number */ uint32_t stack_no; - /* PHB pass-through XSCOM */ - MemoryRegion phb_regs_mr; - /* The owner PEC */ PnvPhb4PecState *pec; From patchwork Thu Jan 13 19:29:46 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 12713076 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id AC0A8C433EF for ; Thu, 13 Jan 2022 19:47:28 +0000 (UTC) Received: from localhost ([::1]:56362 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n864E-0000x4-Cl for qemu-devel@archiver.kernel.org; Thu, 13 Jan 2022 14:47:26 -0500 Received: from eggs.gnu.org ([209.51.188.92]:35788) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n85o4-0006ZT-5k; Thu, 13 Jan 2022 14:30:47 -0500 Received: from [2607:f8b0:4864:20::22a] (port=40671 helo=mail-oi1-x22a.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n85nj-0005Br-7p; Thu, 13 Jan 2022 14:30:25 -0500 Received: by mail-oi1-x22a.google.com with SMTP id w188so9139838oib.7; Thu, 13 Jan 2022 11:30:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=C2JbgcmP2L5NAtCt7f42BcTucIS24KgCMecshqS/CU8=; b=ijb+t6/Obp5Qv/3RP41yNejMKEOAvXCvYXGGmrU8Ai/PhkTpeY7J4FmKI8nBd6lGy6 P7yIkN8XZbTVz5hwQiUeFRtcVqHNgSr1c8wvLQbVLoYt8khg0Bec+mPxuCjqgPBF9dfn WZ/unn7hZ8iLeodIGk7HB3LSP2ZvCwqdCEYaza4w8VW9vFRb0V82Kf0ZmoYsiY0HDjvo wAjg3NikfIzy5/CTYHdZAdwtqMGozTVAMYpEAeWFDGNrzhDcaApKnkxxM/7AeKMrwMFh clojbTWtmRabwIx7OkU9pWSzbydGl7BhMUgzjRQiFc3RQ/ermsxlC5IpSRPOpmOqEPU/ mdCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=C2JbgcmP2L5NAtCt7f42BcTucIS24KgCMecshqS/CU8=; b=EEYMbwwJmMkMxkFV8Yu4rVVoPZkeedYho7CjHpir/o52VrKgehsZR9RqDw/ijgvwoS +gRgZt+XSfcQVTqZB+GB7KCv4wA+PypFiRgxHC1Pea7MYIA4wxDcDHubffEgkaMCxqRJ NPx5bNM6GKdYzfuyGngtXUkeGXmMKYVHFjcxPe8wzjzTN3jlVjD4FGv0Prhyf19sCQly gon5p9cvOUSiqdAfsBiz0IBBm0/cbxEh4+8jUyHfvwpDB3HS4KKVFipmd2bpZOyMB4+j pSn+PgkZ6hMo6K6UXBvwBbxllKWSeK0uoYe8J2S2loB8MTAFWAEFrVoU/GOhYeoQcOBk QPaA== X-Gm-Message-State: AOAM532ZDccm2f6+iqvPGSgjgVz4/2iTsj8XFXrNmiAOOhoUnOUKKc0G JO0uizskihJd5WUJg5/+CSaYE59YC5d3ZtP0 X-Google-Smtp-Source: ABdhPJwXiHQZsmoaP+xRLEx2iYvH/uZuxUbTpDvvG2mi9ZAfg9e++nc4tG68vwuLYujzJrGsoHstVg== X-Received: by 2002:a05:6808:171c:: with SMTP id bc28mr10212906oib.102.1642102221762; Thu, 13 Jan 2022 11:30:21 -0800 (PST) Received: from rekt.COMFAST ([152.249.109.193]) by smtp.gmail.com with ESMTPSA id 90sm743409otn.59.2022.01.13.11.30.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jan 2022 11:30:21 -0800 (PST) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Subject: [PATCH 11/17] ppc/pnv: introduce PnvPHB4 'phb_number' property Date: Thu, 13 Jan 2022 16:29:46 -0300 Message-Id: <20220113192952.911188-12-danielhb413@gmail.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20220113192952.911188-1-danielhb413@gmail.com> References: <20220113192952.911188-1-danielhb413@gmail.com> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::22a (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::22a; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x22a.google.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 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, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: , Cc: Daniel Henrique Barboza , qemu-ppc@nongnu.org, clg@kaod.org, david@gibson.dropbear.id.au Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" One of the remaining dependencies we have on the PnvPhb4PecStack object is the stack->stack_no property. This is set as the position the stack occupies in the pec->stacks[] array. We need a way to report this same value in the PnvPHB4. This patch creates a new property called 'phb_number' to be used in existing code in all instances stack->stack_no is currently being used. The 'phb_number' name is an indication of our future intention to convert the pec->stacks[] array into a pec->phbs[] array, when the PEC object will deal directly with phb4 objects. Signed-off-by: Daniel Henrique Barboza --- hw/pci-host/pnv_phb4.c | 28 +++++++++++++++++----------- hw/pci-host/pnv_phb4_pec.c | 2 ++ include/hw/pci-host/pnv_phb4.h | 3 +++ 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c index b5045fca64..44f3087913 100644 --- a/hw/pci-host/pnv_phb4.c +++ b/hw/pci-host/pnv_phb4.c @@ -937,7 +937,7 @@ static void pnv_pec_stk_update_map(PnvPHB4 *phb) mask = phb->nest_regs[PEC_NEST_STK_MMIO_BAR0_MASK]; size = ((~mask) >> 8) + 1; snprintf(name, sizeof(name), "pec-%d.%d-phb-%d-mmio0", - pec->chip_id, pec->index, stack->stack_no); + pec->chip_id, pec->index, phb->phb_number); memory_region_init(&phb->mmbar0, OBJECT(phb), name, size); memory_region_add_subregion(sysmem, bar, &phb->mmbar0); phb->mmio0_base = bar; @@ -949,7 +949,7 @@ static void pnv_pec_stk_update_map(PnvPHB4 *phb) mask = phb->nest_regs[PEC_NEST_STK_MMIO_BAR1_MASK]; size = ((~mask) >> 8) + 1; snprintf(name, sizeof(name), "pec-%d.%d-phb-%d-mmio1", - pec->chip_id, pec->index, stack->stack_no); + pec->chip_id, pec->index, phb->phb_number); memory_region_init(&phb->mmbar1, OBJECT(phb), name, size); memory_region_add_subregion(sysmem, bar, &phb->mmbar1); phb->mmio1_base = bar; @@ -960,7 +960,7 @@ static void pnv_pec_stk_update_map(PnvPHB4 *phb) bar = phb->nest_regs[PEC_NEST_STK_PHB_REGS_BAR] >> 8; size = PNV_PHB4_NUM_REGS << 3; snprintf(name, sizeof(name), "pec-%d.%d-phb-%d", - pec->chip_id, pec->index, stack->stack_no); + pec->chip_id, pec->index, phb->phb_number); memory_region_init(&phb->phbbar, OBJECT(phb), name, size); memory_region_add_subregion(sysmem, bar, &phb->phbbar); } @@ -969,7 +969,7 @@ static void pnv_pec_stk_update_map(PnvPHB4 *phb) bar = phb->nest_regs[PEC_NEST_STK_INT_BAR] >> 8; size = PNV_PHB4_MAX_INTs << 16; snprintf(name, sizeof(name), "pec-%d.%d-phb-%d-int", - stack->pec->chip_id, stack->pec->index, stack->stack_no); + stack->pec->chip_id, stack->pec->index, phb->phb_number); memory_region_init(&phb->intbar, OBJECT(phb), name, size); memory_region_add_subregion(sysmem, bar, &phb->intbar); } @@ -1469,20 +1469,20 @@ static void pnv_phb4_xscom_realize(PnvPHB4 *phb) /* Initialize the XSCOM regions for the stack registers */ snprintf(name, sizeof(name), "xscom-pec-%d.%d-nest-phb-%d", - pec->chip_id, pec->index, stack->stack_no); + pec->chip_id, pec->index, phb->phb_number); pnv_xscom_region_init(&phb->nest_regs_mr, OBJECT(phb), &pnv_pec_stk_nest_xscom_ops, phb, name, PHB4_PEC_NEST_STK_REGS_COUNT); snprintf(name, sizeof(name), "xscom-pec-%d.%d-pci-phb-%d", - pec->chip_id, pec->index, stack->stack_no); + pec->chip_id, pec->index, phb->phb_number); pnv_xscom_region_init(&phb->pci_regs_mr, OBJECT(phb), &pnv_pec_stk_pci_xscom_ops, phb, name, PHB4_PEC_PCI_STK_REGS_COUNT); /* PHB pass-through */ snprintf(name, sizeof(name), "xscom-pec-%d.%d-pci-phb-%d", - pec->chip_id, pec->index, stack->stack_no); + pec->chip_id, pec->index, phb->phb_number); pnv_xscom_region_init(&phb->phb_regs_mr, OBJECT(phb), &pnv_phb4_xscom_ops, phb, name, 0x40); @@ -1491,14 +1491,14 @@ static void pnv_phb4_xscom_realize(PnvPHB4 *phb) /* Populate the XSCOM address space. */ pnv_xscom_add_subregion(pec->chip, - pec_nest_base + 0x40 * (stack->stack_no + 1), + pec_nest_base + 0x40 * (phb->phb_number + 1), &phb->nest_regs_mr); pnv_xscom_add_subregion(pec->chip, - pec_pci_base + 0x40 * (stack->stack_no + 1), + pec_pci_base + 0x40 * (phb->phb_number + 1), &phb->pci_regs_mr); pnv_xscom_add_subregion(pec->chip, pec_pci_base + PNV9_XSCOM_PEC_PCI_STK0 + - 0x40 * stack->stack_no, + 0x40 * phb->phb_number, &phb->phb_regs_mr); } @@ -1568,10 +1568,15 @@ static void pnv_phb4_realize(DeviceState *dev, Error **errp) return; } - /* All other phb properties but 'version' are already set */ + /* + * All other phb properties but 'version' and 'phb-number' + * are already set. + */ pecc = PNV_PHB4_PEC_GET_CLASS(phb->stack->pec); object_property_set_int(OBJECT(phb), "version", pecc->version, &error_fatal); + object_property_set_int(OBJECT(phb), "phb-number", + phb->stack->stack_no, &error_abort); /* * Assign stack->phb since pnv_phb4_update_regions() uses it @@ -1677,6 +1682,7 @@ static void pnv_phb4_xive_notify(XiveNotifier *xf, uint32_t srcno) } static Property pnv_phb4_properties[] = { + DEFINE_PROP_UINT32("phb-number", PnvPHB4, phb_number, 0), DEFINE_PROP_UINT32("index", PnvPHB4, phb_id, 0), DEFINE_PROP_UINT32("chip-id", PnvPHB4, chip_id, 0), DEFINE_PROP_UINT64("version", PnvPHB4, version, 0), diff --git a/hw/pci-host/pnv_phb4_pec.c b/hw/pci-host/pnv_phb4_pec.c index 7fe7f1f007..7c4b4023df 100644 --- a/hw/pci-host/pnv_phb4_pec.c +++ b/hw/pci-host/pnv_phb4_pec.c @@ -285,6 +285,8 @@ static void pnv_pec_stk_default_phb_realize(PnvPhb4PecStack *stack, stack->phb = PNV_PHB4(qdev_new(TYPE_PNV_PHB4)); + object_property_set_int(OBJECT(stack->phb), "phb-number", stack->stack_no, + &error_abort); object_property_set_int(OBJECT(stack->phb), "chip-id", pec->chip_id, &error_fatal); object_property_set_int(OBJECT(stack->phb), "index", phb_id, diff --git a/include/hw/pci-host/pnv_phb4.h b/include/hw/pci-host/pnv_phb4.h index 6968efaba8..fc7807be1c 100644 --- a/include/hw/pci-host/pnv_phb4.h +++ b/include/hw/pci-host/pnv_phb4.h @@ -84,6 +84,9 @@ struct PnvPHB4 { uint64_t version; + /* My own PHB number */ + uint32_t phb_number; + char bus_path[8]; /* Main register images */ From patchwork Thu Jan 13 19:29:47 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 12713075 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 46C45C433FE for ; Thu, 13 Jan 2022 19:46:26 +0000 (UTC) Received: from localhost ([::1]:53532 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n863F-0007Ki-BK for qemu-devel@archiver.kernel.org; Thu, 13 Jan 2022 14:46:25 -0500 Received: from eggs.gnu.org ([209.51.188.92]:35790) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n85o4-0006ZY-6t; Thu, 13 Jan 2022 14:30:46 -0500 Received: from [2607:f8b0:4864:20::22c] (port=46978 helo=mail-oi1-x22c.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n85nk-0005Dp-Sq; Thu, 13 Jan 2022 14:30:38 -0500 Received: by mail-oi1-x22c.google.com with SMTP id w188so9095018oiw.13; Thu, 13 Jan 2022 11:30:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=JmxVYzwNeP9nzeen4Qy7w2ThRXOHen0mPdAA9ankFak=; b=Iw/0YXaCTuO2CNufa0lf1vN8sw+6t3dDC+dQ3qYiyDVFgh2lWn1vorx0m2vpzBNrik nuUE1oJjMkOZ8oDj4xmdL6gw04AObwvXjER25NaA97Rnl9eZlyC+z8mudx0PqiP/yqAV wjdOYd4n0GNHzuGTKRHRbWtwiLmZ/GFAcCHdsTwksyYJ5qW8BZvPtkh/HTucCpk3GkWs uyQoo6vOQWfo6jhi56ENoAoXts1Wrn7HbIn2DVJqPgQZAENySe1qEADExyKIN9Lvdv2P NQY8dDPkYzytZWagjASX57ex9gwJnd5tRTJ4OrvkbYmi0R5xjRWQDrgscdtyJv/kGyTL Lt8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=JmxVYzwNeP9nzeen4Qy7w2ThRXOHen0mPdAA9ankFak=; b=CMKERHFmmSp3eIAC4edPb1BeP2DnPGi60N7oL429Mw5TEUF1ZK2XqZVkuOue0g7TR6 0VxcNbFV+VXBkhQKsb/0SSVD+yHY+RZpSAhk+cAsCsgGu3hpM50o8zBKKm7mH0BHeXFp FmFOkGTKnKGzLKMWy8zCIWiwL+uWpRL3a/GxzxxQyoRAlKGTC5x2mqi70iXzgWUQnXp9 DlHX7g+zT2+x3Zw1KbIAh4kuLpbQeqm3Txiif6U0w3w8uNy8vQs6KfeISPXLZZnaHfo5 HZmszehtYA23w9ZTl+7tvajKYa5P6Ejdzg0D+4Hku7NSAtkneOVa8VS4Hf5vDuonnUZu Nvog== X-Gm-Message-State: AOAM531pOsNbMzYQ8E5X8WfMotRu8C+nEkwHePzgRyt1oqzMc5+vlg9Y XZcx+Q848lVC9EOudeZgB2g7LOUuNDjqZMGn X-Google-Smtp-Source: ABdhPJyt7cmTzjDf8/Mg3tJCKeU2ZTE901UA7S36PFbM3la9Bi+eSXQ10l6EVL7Hg7EGiQ2XKm/lQg== X-Received: by 2002:a05:6808:ddd:: with SMTP id g29mr10045817oic.66.1642102223524; Thu, 13 Jan 2022 11:30:23 -0800 (PST) Received: from rekt.COMFAST ([152.249.109.193]) by smtp.gmail.com with ESMTPSA id 90sm743409otn.59.2022.01.13.11.30.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jan 2022 11:30:23 -0800 (PST) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Subject: [PATCH 12/17] ppc/pnv: introduce PnvPHB4 'pec' property Date: Thu, 13 Jan 2022 16:29:47 -0300 Message-Id: <20220113192952.911188-13-danielhb413@gmail.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20220113192952.911188-1-danielhb413@gmail.com> References: <20220113192952.911188-1-danielhb413@gmail.com> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::22c (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::22c; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x22c.google.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 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, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: , Cc: Daniel Henrique Barboza , qemu-ppc@nongnu.org, clg@kaod.org, david@gibson.dropbear.id.au Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" This property will track the owner PEC of this PHB. For now it's redundant since we can retrieve the PEC via phb->stack->pec but it will not be redundant when we get rid of the stack device. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cédric Le Goater --- hw/pci-host/pnv_phb4.c | 20 +++++++++++--------- hw/pci-host/pnv_phb4_pec.c | 2 ++ include/hw/pci-host/pnv_phb4.h | 3 +++ 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c index 44f3087913..c9117221b2 100644 --- a/hw/pci-host/pnv_phb4.c +++ b/hw/pci-host/pnv_phb4.c @@ -894,8 +894,7 @@ static void pnv_phb4_update_regions(PnvPHB4 *phb) static void pnv_pec_stk_update_map(PnvPHB4 *phb) { - PnvPhb4PecStack *stack = phb->stack; - PnvPhb4PecState *pec = stack->pec; + PnvPhb4PecState *pec = phb->pec; MemoryRegion *sysmem = get_system_memory(); uint64_t bar_en = phb->nest_regs[PEC_NEST_STK_BAR_EN]; uint64_t bar, mask, size; @@ -969,7 +968,7 @@ static void pnv_pec_stk_update_map(PnvPHB4 *phb) bar = phb->nest_regs[PEC_NEST_STK_INT_BAR] >> 8; size = PNV_PHB4_MAX_INTs << 16; snprintf(name, sizeof(name), "pec-%d.%d-phb-%d-int", - stack->pec->chip_id, stack->pec->index, phb->phb_number); + phb->pec->chip_id, phb->pec->index, phb->phb_number); memory_region_init(&phb->intbar, OBJECT(phb), name, size); memory_region_add_subregion(sysmem, bar, &phb->intbar); } @@ -982,7 +981,7 @@ static void pnv_pec_stk_nest_xscom_write(void *opaque, hwaddr addr, uint64_t val, unsigned size) { PnvPHB4 *phb = PNV_PHB4(opaque); - PnvPhb4PecState *pec = phb->stack->pec; + PnvPhb4PecState *pec = phb->pec; uint32_t reg = addr >> 3; switch (reg) { @@ -1458,8 +1457,7 @@ static AddressSpace *pnv_phb4_dma_iommu(PCIBus *bus, void *opaque, int devfn) static void pnv_phb4_xscom_realize(PnvPHB4 *phb) { - PnvPhb4PecStack *stack = phb->stack; - PnvPhb4PecState *pec = stack->pec; + PnvPhb4PecState *pec = phb->pec; PnvPhb4PecClass *pecc = PNV_PHB4_PEC_GET_CLASS(pec); uint32_t pec_nest_base; uint32_t pec_pci_base; @@ -1569,10 +1567,12 @@ static void pnv_phb4_realize(DeviceState *dev, Error **errp) } /* - * All other phb properties but 'version' and 'phb-number' - * are already set. + * All other phb properties but 'pec', 'version' and + * 'phb-number' are already set. */ - pecc = PNV_PHB4_PEC_GET_CLASS(phb->stack->pec); + object_property_set_link(OBJECT(phb), "pec", OBJECT(phb->stack->pec), + &error_abort); + pecc = PNV_PHB4_PEC_GET_CLASS(phb->pec); object_property_set_int(OBJECT(phb), "version", pecc->version, &error_fatal); object_property_set_int(OBJECT(phb), "phb-number", @@ -1688,6 +1688,8 @@ static Property pnv_phb4_properties[] = { DEFINE_PROP_UINT64("version", PnvPHB4, version, 0), DEFINE_PROP_LINK("stack", PnvPHB4, stack, TYPE_PNV_PHB4_PEC_STACK, PnvPhb4PecStack *), + DEFINE_PROP_LINK("pec", PnvPHB4, pec, TYPE_PNV_PHB4_PEC, + PnvPhb4PecState *), DEFINE_PROP_END_OF_LIST(), }; diff --git a/hw/pci-host/pnv_phb4_pec.c b/hw/pci-host/pnv_phb4_pec.c index 7c4b4023df..36cc4ffe7c 100644 --- a/hw/pci-host/pnv_phb4_pec.c +++ b/hw/pci-host/pnv_phb4_pec.c @@ -287,6 +287,8 @@ static void pnv_pec_stk_default_phb_realize(PnvPhb4PecStack *stack, object_property_set_int(OBJECT(stack->phb), "phb-number", stack->stack_no, &error_abort); + object_property_set_link(OBJECT(stack->phb), "pec", OBJECT(pec), + &error_abort); object_property_set_int(OBJECT(stack->phb), "chip-id", pec->chip_id, &error_fatal); object_property_set_int(OBJECT(stack->phb), "index", phb_id, diff --git a/include/hw/pci-host/pnv_phb4.h b/include/hw/pci-host/pnv_phb4.h index fc7807be1c..f66bc76b78 100644 --- a/include/hw/pci-host/pnv_phb4.h +++ b/include/hw/pci-host/pnv_phb4.h @@ -87,6 +87,9 @@ struct PnvPHB4 { /* My own PHB number */ uint32_t phb_number; + /* The owner PEC */ + PnvPhb4PecState *pec; + char bus_path[8]; /* Main register images */ From patchwork Thu Jan 13 19:29:48 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 12713090 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 33DA3C433EF for ; Thu, 13 Jan 2022 19:52:51 +0000 (UTC) Received: from localhost ([::1]:38550 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n869R-00083T-Nv for qemu-devel@archiver.kernel.org; Thu, 13 Jan 2022 14:52:49 -0500 Received: from eggs.gnu.org ([209.51.188.92]:35918) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n85oK-0006mN-4f; Thu, 13 Jan 2022 14:31:00 -0500 Received: from [2607:f8b0:4864:20::233] (port=40680 helo=mail-oi1-x233.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n85o8-0005Eg-Ay; Thu, 13 Jan 2022 14:30:59 -0500 Received: by mail-oi1-x233.google.com with SMTP id w188so9140059oib.7; Thu, 13 Jan 2022 11:30:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=G2Yc6bp1zk3Tf57VKVl3wkG+RiinZDqwQgDOGOupmTY=; b=GhJS+TzMcXTcwvKTGm5pNmNVxdnMnqNxzeRjuA7YJFppfzJ8vYLh/WKymRMLXhBr0h px6Kzgl6kgW+/4FAnJcmaAu6/2P9k88llJpmKgVZ1sxTtkC6grMSzXeUWa7m/ZOimmPy 3Je/W5TzHvU+iuaCBDPS+gcEU+utlpL8FGcUrnE9agJCWE4Og+XAqANcgO3WHC/JVSTO BIIysgmyLp8jGo35oLOULX5eiaEm//9iIqAt0DhpNWVwUydEqwA6Zo50wmdU0DoSizaw UCu+tdGaSjRTlzF3dpRET8nPnuOsvS7q7JyEWxvWG0bAjaO6d/Z/4OlEZvo1MrRQaxFb Oc6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=G2Yc6bp1zk3Tf57VKVl3wkG+RiinZDqwQgDOGOupmTY=; b=AcW/GftObQMn1+StvZnhX8U1yxqWxAk6vzg512+AwM7jszZj2XlFZ0bkA1ncUrCAAo N2ACHnVl9U6FmpnACXEAxM/BPQyFb80VSXxl3xwkfImr7Dr/8kCKzvO5vyZUUsBkLQmS 20h+28Hdy/Y1xuO6uPlNShyjVBskOz+HEmrVN1FZDHupXEFBJWeYZWQ+bMbjCxUQ7ag+ 8mMxin4b3536dnzU7I2eKKd5/P0+drEQq14lWkvOwNb/iSpnacfvqWDgOuwEPovjFQ51 NumIt7XoIOd4PdyevArEAXw1Kjdhn2Ki/Jbd9Bdbi8DoLhzWGtjn0ZWk4/R/d5KNEo8J zwrw== X-Gm-Message-State: AOAM530FeQC3OI63AVAKxRDzFwDGPqrBmYZjtsEmVm2bPUVz4VeF3gyN vVbOdI9XZjf72wgTZLQmFw5TMvecC0zIHuoQ X-Google-Smtp-Source: ABdhPJzOQGTf0N7T4fq4O21yv0lnEMwkRg9QYKTtPZn2Y5WzqVJLUdEP5nB82JBjneDbJ4S5CqpXfg== X-Received: by 2002:a05:6808:23c8:: with SMTP id bq8mr4438470oib.2.1642102225302; Thu, 13 Jan 2022 11:30:25 -0800 (PST) Received: from rekt.COMFAST ([152.249.109.193]) by smtp.gmail.com with ESMTPSA id 90sm743409otn.59.2022.01.13.11.30.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jan 2022 11:30:25 -0800 (PST) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Subject: [PATCH 13/17] ppc/pnv: remove stack pointer from PnvPHB4 Date: Thu, 13 Jan 2022 16:29:48 -0300 Message-Id: <20220113192952.911188-14-danielhb413@gmail.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20220113192952.911188-1-danielhb413@gmail.com> References: <20220113192952.911188-1-danielhb413@gmail.com> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::233 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::233; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x233.google.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 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, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: , Cc: Daniel Henrique Barboza , qemu-ppc@nongnu.org, clg@kaod.org, david@gibson.dropbear.id.au Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" This pointer was being used for two reasons: pnv_phb4_update_regions() was using it to access the PHB and phb4_realize() was using it as a way to determine if the PHB was user created. We can determine if the PHB is user created via phb->pec, introduced in the previous patch, and pnv_phb4_update_regions() is no longer using stack->phb. Remove the pointer from the PnvPHB4 device. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cédric Le Goater --- hw/pci-host/pnv_phb4.c | 17 +++++------------ hw/pci-host/pnv_phb4_pec.c | 2 -- include/hw/pci-host/pnv_phb4.h | 2 -- 3 files changed, 5 insertions(+), 16 deletions(-) diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c index c9117221b2..25b4248776 100644 --- a/hw/pci-host/pnv_phb4.c +++ b/hw/pci-host/pnv_phb4.c @@ -1549,9 +1549,10 @@ static void pnv_phb4_realize(DeviceState *dev, Error **errp) char name[32]; /* User created PHB */ - if (!phb->stack) { + if (!phb->pec) { PnvMachineState *pnv = PNV_MACHINE(qdev_get_machine()); PnvChip *chip = pnv_get_chip(pnv, phb->chip_id); + PnvPhb4PecStack *stack; PnvPhb4PecClass *pecc; BusState *s; @@ -1560,7 +1561,7 @@ static void pnv_phb4_realize(DeviceState *dev, Error **errp) return; } - phb->stack = pnv_phb4_get_stack(chip, phb, &local_err); + stack = pnv_phb4_get_stack(chip, phb, &local_err); if (local_err) { error_propagate(errp, local_err); return; @@ -1570,19 +1571,13 @@ static void pnv_phb4_realize(DeviceState *dev, Error **errp) * All other phb properties but 'pec', 'version' and * 'phb-number' are already set. */ - object_property_set_link(OBJECT(phb), "pec", OBJECT(phb->stack->pec), + object_property_set_link(OBJECT(phb), "pec", OBJECT(stack->pec), &error_abort); pecc = PNV_PHB4_PEC_GET_CLASS(phb->pec); object_property_set_int(OBJECT(phb), "version", pecc->version, &error_fatal); object_property_set_int(OBJECT(phb), "phb-number", - phb->stack->stack_no, &error_abort); - - /* - * Assign stack->phb since pnv_phb4_update_regions() uses it - * to access the phb. - */ - phb->stack->phb = phb; + stack->stack_no, &error_abort); /* * Reparent user created devices to the chip to build @@ -1686,8 +1681,6 @@ static Property pnv_phb4_properties[] = { DEFINE_PROP_UINT32("index", PnvPHB4, phb_id, 0), DEFINE_PROP_UINT32("chip-id", PnvPHB4, chip_id, 0), DEFINE_PROP_UINT64("version", PnvPHB4, version, 0), - DEFINE_PROP_LINK("stack", PnvPHB4, stack, TYPE_PNV_PHB4_PEC_STACK, - PnvPhb4PecStack *), DEFINE_PROP_LINK("pec", PnvPHB4, pec, TYPE_PNV_PHB4_PEC, PnvPhb4PecState *), DEFINE_PROP_END_OF_LIST(), diff --git a/hw/pci-host/pnv_phb4_pec.c b/hw/pci-host/pnv_phb4_pec.c index 36cc4ffe7c..1de0eb9adc 100644 --- a/hw/pci-host/pnv_phb4_pec.c +++ b/hw/pci-host/pnv_phb4_pec.c @@ -295,8 +295,6 @@ static void pnv_pec_stk_default_phb_realize(PnvPhb4PecStack *stack, &error_fatal); object_property_set_int(OBJECT(stack->phb), "version", pecc->version, &error_fatal); - object_property_set_link(OBJECT(stack->phb), "stack", OBJECT(stack), - &error_abort); if (!sysbus_realize(SYS_BUS_DEVICE(stack->phb), errp)) { return; diff --git a/include/hw/pci-host/pnv_phb4.h b/include/hw/pci-host/pnv_phb4.h index f66bc76b78..90eb4575f8 100644 --- a/include/hw/pci-host/pnv_phb4.h +++ b/include/hw/pci-host/pnv_phb4.h @@ -154,8 +154,6 @@ struct PnvPHB4 { XiveSource xsrc; qemu_irq *qirqs; - PnvPhb4PecStack *stack; - QLIST_HEAD(, PnvPhb4DMASpace) dma_spaces; }; From patchwork Thu Jan 13 19:29:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 12713091 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 86067C433EF for ; Thu, 13 Jan 2022 19:54:20 +0000 (UTC) Received: from localhost ([::1]:41702 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n86At-0001ll-LK for qemu-devel@archiver.kernel.org; Thu, 13 Jan 2022 14:54:19 -0500 Received: from eggs.gnu.org ([209.51.188.92]:35880) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n85oI-0006hL-Mv; Thu, 13 Jan 2022 14:30:59 -0500 Received: from [2607:f8b0:4864:20::330] (port=44920 helo=mail-ot1-x330.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n85oE-0005En-5z; Thu, 13 Jan 2022 14:30:58 -0500 Received: by mail-ot1-x330.google.com with SMTP id w19-20020a056830061300b0058f1dd48932so7450952oti.11; Thu, 13 Jan 2022 11:30:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=dQ0kpsgAeyrfwxZqIIgfXhYnvLABmqsyJopafoJrCVQ=; b=bFRgHtdtL8b6RUfdpY/Oivj7Ipy2587Hw7tcOsV5LQajWHujZJV18dB8qETb9YR4BX /1GZsW6QOC+4JGuiB9cgpKegbDsBtNaKz5QCgQnYA9JAyfT6TIu/l+K0vce7UsL+8hzw PI6245nHYUHTXDDwTy7mChTA2rUdXL8l2Hf+wWDjit9V4i9syG3+wHihDM2Tm94J3Gnj d0B85W7u98GnMLSHeIB6bKQM9wqTc1oFuldvLuJ2L07IVjHivClZFf3a+nNOd3V/+t/x IT/33nBaPrlCyUa6c9SrUQ43jiH9L/y6unyX3/qfhUTlCZvCf4m9GrF5zm/p6QI9Tx1E l5Tg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=dQ0kpsgAeyrfwxZqIIgfXhYnvLABmqsyJopafoJrCVQ=; b=xOwIAm7qTfLfBfLi1ziAB3wRRhHizOt8AWg/FKTMXTFVai1+5LoxOEwcH625VUpc+X OmJl9k/VOknebdmqQ+r8JjIJ81YYAP9WHF25DqpVWgKQh2+TLwm1Jr+Gyvj63gEj+N40 XlQHJs+OQ8QLushPJkG9mePvQ8XjEoiLzp+zOhIsSutHr4MDakZpFjQsWU9YWbdx63Xp VFBVqlrlpkOclfdrgryuJLfdMKhyMZIyaduEvNjYMwuJOeIwzFwBi/sTAIIiPXSgpks4 qPCzgJPtnD1aYhQ+yl857v7RiXlRCoBRNE56u1Ml87T5nznf6Dz5MazhDE4eqCGXiM1G 4GMg== X-Gm-Message-State: AOAM5318PLqo+q+CnH+y/sZnD10jJsXp6nx0aqease4l3iLJK7NQgwT1 /ZCs7Fx41znJh5wQOao55D++r1YU2LucGHN5 X-Google-Smtp-Source: ABdhPJy6t1Bdh8ECydJZ9FYBkGqzq9hSggabqo56emMPdR0XSZwAMKz3Kl2cGo6ipO1vhnd2qxB7Zw== X-Received: by 2002:a9d:ea6:: with SMTP id 35mr4184920otj.304.1642102227061; Thu, 13 Jan 2022 11:30:27 -0800 (PST) Received: from rekt.COMFAST ([152.249.109.193]) by smtp.gmail.com with ESMTPSA id 90sm743409otn.59.2022.01.13.11.30.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jan 2022 11:30:26 -0800 (PST) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Subject: [PATCH 14/17] ppc/pnv: move default_phb_realize() to pec_realize() Date: Thu, 13 Jan 2022 16:29:49 -0300 Message-Id: <20220113192952.911188-15-danielhb413@gmail.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20220113192952.911188-1-danielhb413@gmail.com> References: <20220113192952.911188-1-danielhb413@gmail.com> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::330 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::330; envelope-from=danielhb413@gmail.com; helo=mail-ot1-x330.google.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 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, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: , Cc: Daniel Henrique Barboza , qemu-ppc@nongnu.org, clg@kaod.org, david@gibson.dropbear.id.au Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" This is the last step before making the PEC device uses PHB4s directly. Move the current pnv_pec_stk_default_phb_realize() call to pec_realize(), renaming the function to pnv_pec_default_phb_realize(), and set the PHB attributes using the PEC object directly. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cédric Le Goater --- hw/pci-host/pnv_phb4_pec.c | 67 ++++++++++++++++++++------------------ 1 file changed, 35 insertions(+), 32 deletions(-) diff --git a/hw/pci-host/pnv_phb4_pec.c b/hw/pci-host/pnv_phb4_pec.c index 1de0eb9adc..3339e0ea3d 100644 --- a/hw/pci-host/pnv_phb4_pec.c +++ b/hw/pci-host/pnv_phb4_pec.c @@ -112,6 +112,32 @@ static const MemoryRegionOps pnv_pec_pci_xscom_ops = { .endianness = DEVICE_BIG_ENDIAN, }; +static void pnv_pec_default_phb_realize(PnvPhb4PecStack *stack, + int phb_number, + Error **errp) +{ + PnvPhb4PecState *pec = stack->pec; + PnvPhb4PecClass *pecc = PNV_PHB4_PEC_GET_CLASS(pec); + int phb_id = pnv_phb4_pec_get_phb_id(pec, phb_number); + + stack->phb = PNV_PHB4(qdev_new(TYPE_PNV_PHB4)); + + object_property_set_int(OBJECT(stack->phb), "phb-number", phb_number, + &error_abort); + object_property_set_link(OBJECT(stack->phb), "pec", OBJECT(pec), + &error_abort); + object_property_set_int(OBJECT(stack->phb), "chip-id", pec->chip_id, + &error_fatal); + object_property_set_int(OBJECT(stack->phb), "index", phb_id, + &error_fatal); + object_property_set_int(OBJECT(stack->phb), "version", pecc->version, + &error_fatal); + + if (!sysbus_realize(SYS_BUS_DEVICE(stack->phb), errp)) { + return; + } +} + static void pnv_pec_instance_init(Object *obj) { PnvPhb4PecState *pec = PNV_PHB4_PEC(obj); @@ -144,6 +170,15 @@ static void pnv_pec_realize(DeviceState *dev, Error **errp) object_property_set_int(stk_obj, "stack-no", i, &error_abort); object_property_set_link(stk_obj, "pec", OBJECT(pec), &error_abort); + + if (defaults_enabled()) { + pnv_pec_default_phb_realize(stack, i, errp); + } + + /* + * qdev gets angry if we don't realize 'stack' here, even + * if stk_realize() is now empty. + */ if (!qdev_realize(DEVICE(stk_obj), NULL, errp)) { return; } @@ -276,40 +311,8 @@ static const TypeInfo pnv_pec_type_info = { } }; -static void pnv_pec_stk_default_phb_realize(PnvPhb4PecStack *stack, - Error **errp) -{ - PnvPhb4PecState *pec = stack->pec; - PnvPhb4PecClass *pecc = PNV_PHB4_PEC_GET_CLASS(pec); - int phb_id = pnv_phb4_pec_get_phb_id(pec, stack->stack_no); - - stack->phb = PNV_PHB4(qdev_new(TYPE_PNV_PHB4)); - - object_property_set_int(OBJECT(stack->phb), "phb-number", stack->stack_no, - &error_abort); - object_property_set_link(OBJECT(stack->phb), "pec", OBJECT(pec), - &error_abort); - object_property_set_int(OBJECT(stack->phb), "chip-id", pec->chip_id, - &error_fatal); - object_property_set_int(OBJECT(stack->phb), "index", phb_id, - &error_fatal); - object_property_set_int(OBJECT(stack->phb), "version", pecc->version, - &error_fatal); - - if (!sysbus_realize(SYS_BUS_DEVICE(stack->phb), errp)) { - return; - } -} - static void pnv_pec_stk_realize(DeviceState *dev, Error **errp) { - PnvPhb4PecStack *stack = PNV_PHB4_PEC_STACK(dev); - - if (!defaults_enabled()) { - return; - } - - pnv_pec_stk_default_phb_realize(stack, errp); } static Property pnv_pec_stk_properties[] = { From patchwork Thu Jan 13 19:29:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 12713092 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 7E90BC433EF for ; Thu, 13 Jan 2022 19:58:56 +0000 (UTC) Received: from localhost ([::1]:48144 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n86FL-0006MG-Dg for qemu-devel@archiver.kernel.org; Thu, 13 Jan 2022 14:58:55 -0500 Received: from eggs.gnu.org ([209.51.188.92]:35932) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n85oQ-00077r-6j; Thu, 13 Jan 2022 14:31:06 -0500 Received: from [2607:f8b0:4864:20::32f] (port=39505 helo=mail-ot1-x32f.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n85oH-0005Ex-I9; Thu, 13 Jan 2022 14:31:05 -0500 Received: by mail-ot1-x32f.google.com with SMTP id c3-20020a9d6c83000000b00590b9c8819aso7489208otr.6; Thu, 13 Jan 2022 11:30:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=/MYqWYkBWLAo2PVMsP9FtQrYQ57O7VtGgvirpUwZ58w=; b=VBJ+S2yvcyLL3EdThskupeGb/8Im/eMw3qfKD48ZnPwP0V56bVkCj64VyDLwgACwb7 R5Qg6AgE159Tdi88UmHCMojGL38klC88G2seKA52FQGYqNG06tPvcOiWZaYzrmODOztu x+bK/7gf7Etzs0aLLf0LKtsAbodla07XNglaXNASVFJNOKLIh8L80qeQexSv2b8RQrWW 0CtFKLeLjMtFP/doahCD5+dqNzdNxZkwDbq043NxgX89wwodMyLg9s2JePkmuEyz62ED fzgAyFGM/9pIsKdzTVcQuzmRziIaBUNq6oRS5rfcLik92RHCByaP7kaisbd/VSniL12S yVuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=/MYqWYkBWLAo2PVMsP9FtQrYQ57O7VtGgvirpUwZ58w=; b=0WxKJNQpUOHnxmamfm5oI6aihFIgtpt+2cj4PVuflXIs+2W5/wXBJcGgqUbbjqDyjN F5uvR9PLMrUHfnbqB7CL5lR8iJ3JUB47m7GQLOlxbMBAuHhJDFpF784GWv5CCPJtD0l/ /tuhb59hhYyTL/fa61n8HCqkB6uBMHbNe3I6OUfX6c0OO9ITs/vunIoKZjD6NJGJcyCv btbnvGVNVM8zReG4ei844CHaufV/BhJ/Gl5QVdxvjybWYfCWqEhwRw3Evt+vZGixlnGl qqgDhMg/+50wK1CSBsEE5/ZH214pebEHB7kHAdAlfS4luyBSPmZT7e3xROIBjn1bskOZ x3Sw== X-Gm-Message-State: AOAM53087g149PEpPLrNq7ODpmP4/Y/TpDpjk0KLCsWfybVP4A1lsprE THniieKLmMBOCjs11VfiTvpg2ylP2xyuBYkz X-Google-Smtp-Source: ABdhPJzhvXvdS0IQLkIsbbfCf07UwByX5woGdUx++0VYowNiDK64LGvek9ovnWUaVysI+YYtp4eXCg== X-Received: by 2002:a9d:76d8:: with SMTP id p24mr2720691otl.146.1642102228839; Thu, 13 Jan 2022 11:30:28 -0800 (PST) Received: from rekt.COMFAST ([152.249.109.193]) by smtp.gmail.com with ESMTPSA id 90sm743409otn.59.2022.01.13.11.30.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jan 2022 11:30:28 -0800 (PST) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Subject: [PATCH 15/17] ppc/pnv: convert pec->stacks[] into pec->phbs[] Date: Thu, 13 Jan 2022 16:29:50 -0300 Message-Id: <20220113192952.911188-16-danielhb413@gmail.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20220113192952.911188-1-danielhb413@gmail.com> References: <20220113192952.911188-1-danielhb413@gmail.com> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::32f (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::32f; envelope-from=danielhb413@gmail.com; helo=mail-ot1-x32f.google.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 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, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: , Cc: Daniel Henrique Barboza , qemu-ppc@nongnu.org, clg@kaod.org, david@gibson.dropbear.id.au Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" This patch changes the design of the PEC device to use PHB4s instead of PecStacks. After all the recent changes, PHB4s now contain all the information needed for their proper functioning, not relying on PecStack in any capacity. All changes are being made in a single patch to avoid renaming parts of the PecState and leaving the code in a strange way. E.g. rename PecClass->num_stacks to num_phbs, which would then read a pnv_pec_num_stacks[] array. To avoid mixing the old and new design more than necessary it's clearer to do these changes in a single step. The name changes made are: - in PnvPhb4PecState, rename PHB4_PEC_MAX_STACKS to PHB4_PEC_MAX_PHBS, 'num_stacks' to 'num_phbs' and convert "PnvPhb4PecStack stacks[PHB4_PEC_MAX_STACKS]" to "PnvPHB4 *phbs[PHB4_PEC_MAX_PHBS]"; - in PnvPhb4PecClass, rename *num_stacks to *num_phbs; - pnv_pec_num_stacks[] is renamed to pnv_pec_num_phbs[]. The logical changes: - pnv_pec_default_phb_realize(): * init the PnvPHB4 qdev and assign it to the corresponding pec->phbs[phb_number]; * do not use stack->phb anymore; - pnv_pec_realize(): * use the new default_phb_realize() to init/realize each PHB if running with defaults; - pnv_pec_instance_init(): removed since we're creating the PHBs during pec_realize(); - pnv_phb4_get_stack(): * renamed to pnv_phb4_get_pec() and returns a PnvPhb4PecState*; * assign the right pec->phbs[] pointer to the phb; * set 'phb_number' of the PHB given that the information is already available; - pnv_phb4_realize(): use 'phb->pec' instead of 'stack'. This design change shouldn't caused any behavioral change in the runtime of the machine. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cédric Le Goater --- hw/pci-host/pnv_phb4.c | 31 +++++++-------- hw/pci-host/pnv_phb4_pec.c | 71 ++++++++++------------------------ include/hw/pci-host/pnv_phb4.h | 10 ++--- 3 files changed, 40 insertions(+), 72 deletions(-) diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c index 25b4248776..a9ec42ce2c 100644 --- a/hw/pci-host/pnv_phb4.c +++ b/hw/pci-host/pnv_phb4.c @@ -1360,7 +1360,7 @@ int pnv_phb4_pec_get_phb_id(PnvPhb4PecState *pec, int stack_index) int offset = 0; while (index--) { - offset += pecc->num_stacks[index]; + offset += pecc->num_phbs[index]; } return offset + stack_index; @@ -1510,8 +1510,8 @@ static void pnv_phb4_instance_init(Object *obj) object_initialize_child(obj, "source", &phb->xsrc, TYPE_XIVE_SOURCE); } -static PnvPhb4PecStack *pnv_phb4_get_stack(PnvChip *chip, PnvPHB4 *phb, - Error **errp) +static PnvPhb4PecState *pnv_phb4_get_pec(PnvChip *chip, PnvPHB4 *phb, + Error **errp) { Pnv9Chip *chip9 = PNV9_CHIP(chip); int chip_id = phb->chip_id; @@ -1520,14 +1520,19 @@ static PnvPhb4PecStack *pnv_phb4_get_stack(PnvChip *chip, PnvPHB4 *phb, for (i = 0; i < chip->num_pecs; i++) { /* - * For each PEC, check the amount of stacks it supports - * and see if the given phb4 index matches a stack. + * For each PEC, check the amount of phbs it supports + * and see if the given phb4 index matches an index. */ PnvPhb4PecState *pec = &chip9->pecs[i]; - for (j = 0; j < pec->num_stacks; j++) { + for (j = 0; j < pec->num_phbs; j++) { if (index == pnv_phb4_pec_get_phb_id(pec, j)) { - return &pec->stacks[j]; + pec->phbs[j] = phb; + + /* Set phb-number now since we already have it */ + object_property_set_int(OBJECT(phb), "phb-number", + j, &error_abort); + return pec; } } } @@ -1552,7 +1557,6 @@ static void pnv_phb4_realize(DeviceState *dev, Error **errp) if (!phb->pec) { PnvMachineState *pnv = PNV_MACHINE(qdev_get_machine()); PnvChip *chip = pnv_get_chip(pnv, phb->chip_id); - PnvPhb4PecStack *stack; PnvPhb4PecClass *pecc; BusState *s; @@ -1561,23 +1565,16 @@ static void pnv_phb4_realize(DeviceState *dev, Error **errp) return; } - stack = pnv_phb4_get_stack(chip, phb, &local_err); + phb->pec = pnv_phb4_get_pec(chip, phb, &local_err); if (local_err) { error_propagate(errp, local_err); return; } - /* - * All other phb properties but 'pec', 'version' and - * 'phb-number' are already set. - */ - object_property_set_link(OBJECT(phb), "pec", OBJECT(stack->pec), - &error_abort); + /* All other phb properties are already set */ pecc = PNV_PHB4_PEC_GET_CLASS(phb->pec); object_property_set_int(OBJECT(phb), "version", pecc->version, &error_fatal); - object_property_set_int(OBJECT(phb), "phb-number", - stack->stack_no, &error_abort); /* * Reparent user created devices to the chip to build diff --git a/hw/pci-host/pnv_phb4_pec.c b/hw/pci-host/pnv_phb4_pec.c index 3339e0ea3d..61d7add25a 100644 --- a/hw/pci-host/pnv_phb4_pec.c +++ b/hw/pci-host/pnv_phb4_pec.c @@ -112,40 +112,29 @@ static const MemoryRegionOps pnv_pec_pci_xscom_ops = { .endianness = DEVICE_BIG_ENDIAN, }; -static void pnv_pec_default_phb_realize(PnvPhb4PecStack *stack, +static void pnv_pec_default_phb_realize(PnvPhb4PecState *pec, int phb_number, Error **errp) { - PnvPhb4PecState *pec = stack->pec; + PnvPHB4 *phb = PNV_PHB4(qdev_new(TYPE_PNV_PHB4)); PnvPhb4PecClass *pecc = PNV_PHB4_PEC_GET_CLASS(pec); int phb_id = pnv_phb4_pec_get_phb_id(pec, phb_number); - stack->phb = PNV_PHB4(qdev_new(TYPE_PNV_PHB4)); - - object_property_set_int(OBJECT(stack->phb), "phb-number", phb_number, + object_property_set_int(OBJECT(phb), "phb-number", phb_number, &error_abort); - object_property_set_link(OBJECT(stack->phb), "pec", OBJECT(pec), + object_property_set_link(OBJECT(phb), "pec", OBJECT(pec), &error_abort); - object_property_set_int(OBJECT(stack->phb), "chip-id", pec->chip_id, + object_property_set_int(OBJECT(phb), "chip-id", pec->chip_id, &error_fatal); - object_property_set_int(OBJECT(stack->phb), "index", phb_id, + object_property_set_int(OBJECT(phb), "index", phb_id, &error_fatal); - object_property_set_int(OBJECT(stack->phb), "version", pecc->version, + object_property_set_int(OBJECT(phb), "version", pecc->version, &error_fatal); - if (!sysbus_realize(SYS_BUS_DEVICE(stack->phb), errp)) { - return; - } -} - -static void pnv_pec_instance_init(Object *obj) -{ - PnvPhb4PecState *pec = PNV_PHB4_PEC(obj); - int i; + pec->phbs[phb_number] = phb; - for (i = 0; i < PHB4_PEC_MAX_STACKS; i++) { - object_initialize_child(obj, "stack[*]", &pec->stacks[i], - TYPE_PNV_PHB4_PEC_STACK); + if (!sysbus_realize(SYS_BUS_DEVICE(phb), errp)) { + return; } } @@ -161,30 +150,13 @@ static void pnv_pec_realize(DeviceState *dev, Error **errp) return; } - pec->num_stacks = pecc->num_stacks[pec->index]; - - /* Create stacks */ - for (i = 0; i < pec->num_stacks; i++) { - PnvPhb4PecStack *stack = &pec->stacks[i]; - Object *stk_obj = OBJECT(stack); - - object_property_set_int(stk_obj, "stack-no", i, &error_abort); - object_property_set_link(stk_obj, "pec", OBJECT(pec), &error_abort); + pec->num_phbs = pecc->num_phbs[pec->index]; - if (defaults_enabled()) { - pnv_pec_default_phb_realize(stack, i, errp); + /* Create PHBs if running with defaults */ + if (defaults_enabled()) { + for (i = 0; i < pec->num_phbs; i++) { + pnv_pec_default_phb_realize(pec, i, errp); } - - /* - * qdev gets angry if we don't realize 'stack' here, even - * if stk_realize() is now empty. - */ - if (!qdev_realize(DEVICE(stk_obj), NULL, errp)) { - return; - } - } - for (; i < PHB4_PEC_MAX_STACKS; i++) { - object_unparent(OBJECT(&pec->stacks[i])); } /* Initialize the XSCOM regions for the PEC registers */ @@ -230,7 +202,7 @@ static int pnv_pec_dt_xscom(PnvXScomInterface *dev, void *fdt, _FDT((fdt_setprop(fdt, offset, "compatible", pecc->compat, pecc->compat_size))); - for (i = 0; i < pec->num_stacks; i++) { + for (i = 0; i < pec->num_phbs; i++) { int phb_id = pnv_phb4_pec_get_phb_id(pec, i); int stk_offset; @@ -266,11 +238,11 @@ static uint32_t pnv_pec_xscom_nest_base(PnvPhb4PecState *pec) } /* - * PEC0 -> 1 stack - * PEC1 -> 2 stacks - * PEC2 -> 3 stacks + * PEC0 -> 1 phb + * PEC1 -> 2 phb + * PEC2 -> 3 phbs */ -static const uint32_t pnv_pec_num_stacks[] = { 1, 2, 3 }; +static const uint32_t pnv_pec_num_phbs[] = { 1, 2, 3 }; static void pnv_pec_class_init(ObjectClass *klass, void *data) { @@ -295,14 +267,13 @@ static void pnv_pec_class_init(ObjectClass *klass, void *data) pecc->stk_compat = stk_compat; pecc->stk_compat_size = sizeof(stk_compat); pecc->version = PNV_PHB4_VERSION; - pecc->num_stacks = pnv_pec_num_stacks; + pecc->num_phbs = pnv_pec_num_phbs; } static const TypeInfo pnv_pec_type_info = { .name = TYPE_PNV_PHB4_PEC, .parent = TYPE_DEVICE, .instance_size = sizeof(PnvPhb4PecState), - .instance_init = pnv_pec_instance_init, .class_init = pnv_pec_class_init, .class_size = sizeof(PnvPhb4PecClass), .interfaces = (InterfaceInfo[]) { diff --git a/include/hw/pci-host/pnv_phb4.h b/include/hw/pci-host/pnv_phb4.h index 90eb4575f8..170de2e752 100644 --- a/include/hw/pci-host/pnv_phb4.h +++ b/include/hw/pci-host/pnv_phb4.h @@ -206,10 +206,10 @@ struct PnvPhb4PecState { uint64_t pci_regs[PHB4_PEC_PCI_REGS_COUNT]; MemoryRegion pci_regs_mr; - /* Stacks */ - #define PHB4_PEC_MAX_STACKS 3 - uint32_t num_stacks; - PnvPhb4PecStack stacks[PHB4_PEC_MAX_STACKS]; + /* PHBs */ + #define PHB4_PEC_MAX_PHBS 3 + uint32_t num_phbs; + PnvPHB4 *phbs[PHB4_PEC_MAX_PHBS]; PnvChip *chip; }; @@ -227,7 +227,7 @@ struct PnvPhb4PecClass { const char *stk_compat; int stk_compat_size; uint64_t version; - const uint32_t *num_stacks; + const uint32_t *num_phbs; }; #endif /* PCI_HOST_PNV_PHB4_H */ From patchwork Thu Jan 13 19:29:51 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 12713089 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 550D9C433F5 for ; Thu, 13 Jan 2022 19:51:07 +0000 (UTC) Received: from localhost ([::1]:34836 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n867m-0005Wj-Ck for qemu-devel@archiver.kernel.org; Thu, 13 Jan 2022 14:51:06 -0500 Received: from eggs.gnu.org ([209.51.188.92]:35916) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n85oK-0006lZ-0i; Thu, 13 Jan 2022 14:31:00 -0500 Received: from [2607:f8b0:4864:20::332] (port=46972 helo=mail-ot1-x332.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n85oH-0005F3-HB; Thu, 13 Jan 2022 14:30:59 -0500 Received: by mail-ot1-x332.google.com with SMTP id t4-20020a05683022e400b00591aaf48277so7453976otc.13; Thu, 13 Jan 2022 11:30:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=1scbElBbNa0PK6qT3VP5d+MvI2dPrguob0wvJ1CvnQs=; b=D7YgK1FJxwu9cS+KHOf523Do6iCVo3/+zcfENQnm89/WsLzw4RMpo7ha/NeoZ07nnd /IrFEO+aVOW5TjA2y9eIo+FYfcuJXvOxkhGp6Zwl49ZcJf+ZsP6V0fx3/xKUW0pkvWk9 HEhNXUt27RGvZy3sqNzZK1e21mRht3yclSMV1gJ05l5JkYHL7Yax1XgExdpAoLYNn6ro CWDUJ3E5mdr1/PgH8NCeKQki0dY6txjWCjNOzNxqqJGWT4Vhem7XBT9/FxsVs/ndD3ee 423L/z1pSpWFwYodMU8MNzaSY6vvEw7ZbSTXB6BZ0TjkIAmvzv2CSIgwou+6qIEaQ+Lv g2ew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=1scbElBbNa0PK6qT3VP5d+MvI2dPrguob0wvJ1CvnQs=; b=kj11TFTSLtVCp3npksunnsX32Uli+fUS6UxqzLk7XyoO1uR5kPJcdcBG/NFjI2w6NG 7+8EcicfOzI5vJxqG7navEA5JYYwLVDIXyOxWCWfDeuVAbGqmHcLczCpWlMmAB6DHLj6 Q4tD7zihQPRJr/9btEveUDAzU8NVZUll/BJLvNE8qsuV5QCSyfBRHfrh2k4Mqr5JMCtd tFbwhFp1PMGaXZQyblqQnmc4K25mJP5MGcZJg2VbULu/mQw0QriUiI14pVUIv2PUcR8r vmx9t8i1z3qsDfX61Qx/JTmFg+I1TsHHq4hIEcX5/ZHQWmldKZabIyw3uIXfhE31p54g HaJA== X-Gm-Message-State: AOAM530S8mRb4t/tV/EuxaNXQ6wZkLZ7QKX8zKcJfoGDLf/VSYPkRf9G ZpFwb3sn27osMPTjlz7Rl45b5+E+NukwJ2fN X-Google-Smtp-Source: ABdhPJysAyg6Lns9R4/bDN9M6zSQNf+yuCvjC0ngkoUqro9G9gx0QUf1sKXH6Nbu+DZco+ZEYQ4m0Q== X-Received: by 2002:a9d:7f81:: with SMTP id t1mr4106319otp.89.1642102230685; Thu, 13 Jan 2022 11:30:30 -0800 (PST) Received: from rekt.COMFAST ([152.249.109.193]) by smtp.gmail.com with ESMTPSA id 90sm743409otn.59.2022.01.13.11.30.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jan 2022 11:30:30 -0800 (PST) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Subject: [PATCH 16/17] ppc/pnv: remove PnvPhb4PecStack object Date: Thu, 13 Jan 2022 16:29:51 -0300 Message-Id: <20220113192952.911188-17-danielhb413@gmail.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20220113192952.911188-1-danielhb413@gmail.com> References: <20220113192952.911188-1-danielhb413@gmail.com> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::332 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::332; envelope-from=danielhb413@gmail.com; helo=mail-ot1-x332.google.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 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, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: , Cc: Daniel Henrique Barboza , qemu-ppc@nongnu.org, clg@kaod.org, david@gibson.dropbear.id.au Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" All the complexity that was scattered between PnvPhb4PecStack and PnvPHB4 are now centered in the PnvPHB4 device. PnvPhb4PecStack does not serve any purpose in the current code base. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cédric Le Goater --- hw/pci-host/pnv_phb4_pec.c | 34 ---------------------------------- include/hw/pci-host/pnv_phb4.h | 20 -------------------- 2 files changed, 54 deletions(-) diff --git a/hw/pci-host/pnv_phb4_pec.c b/hw/pci-host/pnv_phb4_pec.c index 61d7add25a..02e7689372 100644 --- a/hw/pci-host/pnv_phb4_pec.c +++ b/hw/pci-host/pnv_phb4_pec.c @@ -282,43 +282,9 @@ static const TypeInfo pnv_pec_type_info = { } }; -static void pnv_pec_stk_realize(DeviceState *dev, Error **errp) -{ -} - -static Property pnv_pec_stk_properties[] = { - DEFINE_PROP_UINT32("stack-no", PnvPhb4PecStack, stack_no, 0), - DEFINE_PROP_LINK("pec", PnvPhb4PecStack, pec, TYPE_PNV_PHB4_PEC, - PnvPhb4PecState *), - DEFINE_PROP_END_OF_LIST(), -}; - -static void pnv_pec_stk_class_init(ObjectClass *klass, void *data) -{ - DeviceClass *dc = DEVICE_CLASS(klass); - - device_class_set_props(dc, pnv_pec_stk_properties); - dc->realize = pnv_pec_stk_realize; - dc->user_creatable = false; - - /* TODO: reset regs ? */ -} - -static const TypeInfo pnv_pec_stk_type_info = { - .name = TYPE_PNV_PHB4_PEC_STACK, - .parent = TYPE_DEVICE, - .instance_size = sizeof(PnvPhb4PecStack), - .class_init = pnv_pec_stk_class_init, - .interfaces = (InterfaceInfo[]) { - { TYPE_PNV_XSCOM_INTERFACE }, - { } - } -}; - static void pnv_pec_register_types(void) { type_register_static(&pnv_pec_type_info); - type_register_static(&pnv_pec_stk_type_info); } type_init(pnv_pec_register_types); diff --git a/include/hw/pci-host/pnv_phb4.h b/include/hw/pci-host/pnv_phb4.h index 170de2e752..96e8583e48 100644 --- a/include/hw/pci-host/pnv_phb4.h +++ b/include/hw/pci-host/pnv_phb4.h @@ -167,26 +167,6 @@ extern const MemoryRegionOps pnv_phb4_xscom_ops; #define TYPE_PNV_PHB4_PEC "pnv-phb4-pec" OBJECT_DECLARE_TYPE(PnvPhb4PecState, PnvPhb4PecClass, PNV_PHB4_PEC) -#define TYPE_PNV_PHB4_PEC_STACK "pnv-phb4-pec-stack" -OBJECT_DECLARE_SIMPLE_TYPE(PnvPhb4PecStack, PNV_PHB4_PEC_STACK) - -/* Per-stack data */ -struct PnvPhb4PecStack { - DeviceState parent; - - /* My own stack number */ - uint32_t stack_no; - - /* The owner PEC */ - PnvPhb4PecState *pec; - - /* - * PHB4 pointer. pnv_phb4_update_regions() needs to access - * the PHB4 via a PnvPhb4PecStack pointer. - */ - PnvPHB4 *phb; -}; - struct PnvPhb4PecState { DeviceState parent; From patchwork Thu Jan 13 19:29:52 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 12713093 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 8388DC433EF for ; Thu, 13 Jan 2022 19:59:39 +0000 (UTC) Received: from localhost ([::1]:50596 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n86G2-0008IA-DF for qemu-devel@archiver.kernel.org; Thu, 13 Jan 2022 14:59:38 -0500 Received: from eggs.gnu.org ([209.51.188.92]:35910) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n85oJ-0006kB-KA; Thu, 13 Jan 2022 14:30:59 -0500 Received: from [2607:f8b0:4864:20::235] (port=43915 helo=mail-oi1-x235.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n85oE-0005FA-5J; Thu, 13 Jan 2022 14:30:58 -0500 Received: by mail-oi1-x235.google.com with SMTP id s22so9122704oie.10; Thu, 13 Jan 2022 11:30:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=fn5MqNmLIwPUhXnNn/DmGCeAKsyLrzk+MGSJss6HHVg=; b=m7Hdx7Ahgqq0rtYBntd3rygqOG9c9H/pbhVXEM1spUIAO+ovJYiQeRJBxLF5hUM9ur Ln77NRUE2EhZerCE1eDvMVdXyulkoKx8Vv23dMHFDceAnayHLicWhfeyu/4R71uDqR3G y2RypR0ypTFMrg/wzsYrjr41i5AdRycd5dtCvdn3f+j+iyDWBUNtl2Z8wYxrJJf36Dno IDsP1JDrp+VlAqGMgdu2FniPCUmqI1n7Vw8m1WaLNChzqDEA/0ikLV0WnlcgmF7IDpj0 RO2Z3jbKYiq55yWDs9Mih2IMRvg7egAQzdNt75Ym50zZD7xgWdtdkEpeQ5ZrfXeGLDLA pctg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=fn5MqNmLIwPUhXnNn/DmGCeAKsyLrzk+MGSJss6HHVg=; b=1b++meZUrom9wxPoFHPWk0bjhlQFJTpee71VfGLxCnnarRYF76Z1cq7ST5AX6J9fdb iy2ZAcQNrCVu4VBPZzpf9Z/Hr3IpVp0VPqH1US2LvXPugSaQs2+buSw8jyGK9rc1odXX Uj1LVQsi/s5Ys9MB25N/vrc90wXWodcjyrarE1sZFVl/rETm8ukoZqRxT4MrDw86jlzu ZDsOg6aW6HnIELcnoe1j57rCvR/PX8MihGEzmzTCvdwLqVdvoGQ8kmQtmCS3KdR0OFTJ ezD0/+T7G5WGOSRg7kvU1yt2FwPQLfJ4vC/jKfvf7UBeTAt2mW1OTwhT4EatlLVxyTGp VjhQ== X-Gm-Message-State: AOAM531OAgc2tpAGpkRbL8owN/LU34w5ZpTH2abDsaexF9kepdOP+pob yYhji+bv+oL9L9jeR4Y1aDSjhaygbG/3eJta X-Google-Smtp-Source: ABdhPJz7oj/wNBFLaJZeXGxLMMU43GqJTGhmcRnG7RCgSmfm0fd3Ey87hdFO72Oth/IS7npfPy2o4g== X-Received: by 2002:a05:6808:14cc:: with SMTP id f12mr4200769oiw.154.1642102232455; Thu, 13 Jan 2022 11:30:32 -0800 (PST) Received: from rekt.COMFAST ([152.249.109.193]) by smtp.gmail.com with ESMTPSA id 90sm743409otn.59.2022.01.13.11.30.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jan 2022 11:30:32 -0800 (PST) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Subject: [PATCH 17/17] ppc/pnv: rename pnv_pec_stk_update_map() Date: Thu, 13 Jan 2022 16:29:52 -0300 Message-Id: <20220113192952.911188-18-danielhb413@gmail.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20220113192952.911188-1-danielhb413@gmail.com> References: <20220113192952.911188-1-danielhb413@gmail.com> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::235 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::235; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x235.google.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 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, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: , Cc: Daniel Henrique Barboza , qemu-ppc@nongnu.org, clg@kaod.org, david@gibson.dropbear.id.au Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" This function does not use 'stack' anymore. Rename it to pnv_pec_phb_update_map(). Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cédric Le Goater --- hw/pci-host/pnv_phb4.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c index a9ec42ce2c..d27b62a50a 100644 --- a/hw/pci-host/pnv_phb4.c +++ b/hw/pci-host/pnv_phb4.c @@ -892,7 +892,7 @@ static void pnv_phb4_update_regions(PnvPHB4 *phb) pnv_phb4_check_all_mbt(phb); } -static void pnv_pec_stk_update_map(PnvPHB4 *phb) +static void pnv_pec_phb_update_map(PnvPHB4 *phb) { PnvPhb4PecState *pec = phb->pec; MemoryRegion *sysmem = get_system_memory(); @@ -1043,7 +1043,7 @@ static void pnv_pec_stk_nest_xscom_write(void *opaque, hwaddr addr, break; case PEC_NEST_STK_BAR_EN: phb->nest_regs[reg] = val & 0xf000000000000000ull; - pnv_pec_stk_update_map(phb); + pnv_pec_phb_update_map(phb); break; case PEC_NEST_STK_DATA_FRZ_TYPE: case PEC_NEST_STK_PBCQ_TUN_BAR: