From nobody Sat Feb 7 23:33:56 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1685292662; cv=none; d=zohomail.com; s=zohoarc; b=dFHU2h9wGYWLr7pL2X5WtP3WR93OhJj7b1Nu15FsFTPye7JuiccItEU6Z4jt6dl80Qy/WzLOy1IclRdZ1++CESZ6R8/V9xTslnRlmZTCbOFfT6543oycZBSDCl8WT6qTxZKTS23A6w/NFCKUvXZL4R16f08pUY6X+Sp1WoDcYWQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685292662; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=FTEsFsv+jjoCMUgQQGjYI0LFkAAdIpRXOhMGO4z2oIU=; b=ajNrYBeGadwsqMAOouJkzrUOpC34dOS/gAiP82a6gJtSv8a1dToPq61EnBVMzQU6kT9DqkXGoc2usq7VOzAGbbae7OfLpDtVkBvgDru2Kl2j9ykYLweJuKr45Pv4T5ecILLayBD8h8HVYf9zHEZYXpuOHIjelFjidvLoDmeyoCQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1685292662305656.5116443465112; Sun, 28 May 2023 09:51:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q3JaQ-0000Uy-De; Sun, 28 May 2023 12:49:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q3JaO-0000UQ-RK; Sun, 28 May 2023 12:49:40 -0400 Received: from mail-oo1-xc2b.google.com ([2607:f8b0:4864:20::c2b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1q3JaN-0003ZP-4e; Sun, 28 May 2023 12:49:40 -0400 Received: by mail-oo1-xc2b.google.com with SMTP id 006d021491bc7-5555765c6d3so1565658eaf.1; Sun, 28 May 2023 09:49:38 -0700 (PDT) Received: from grind.. (200-162-225-121.static-corp.ajato.com.br. [200.162.225.121]) by smtp.gmail.com with ESMTPSA id w4-20020a4adec4000000b0054f85f67f31sm3378830oou.46.2023.05.28.09.49.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 May 2023 09:49:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1685292577; x=1687884577; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=FTEsFsv+jjoCMUgQQGjYI0LFkAAdIpRXOhMGO4z2oIU=; b=YA2LPCug0N9Dr2yds53kgXX8sphuDfSSJQIqqm1feQlbKZ0JWYNyVS3SpupGirGtSM pl/1QwjoNTntu9qAJK1+LzB/zdzabd2X7rh7Bs7cJjx7nUySW10kRO2NdRJkNws8b3Lh Ndc7naWTNAVVIJITLDvvgAskyCC2HWW4M6DVj2tSvOWmJ+4dTfKSmEu/r7PLx+CuvsGl jZHjyU4kDsvVp+dRd5njAmg+7OoXJes8P3sbuHnMWoQL9JclpUUOliJCsSfFXq1AF6dN aWCPPI7xsagIdGoB8q1ND0VnrxTqRZRqR3EbjxS50uAAscg71/QxSVW1nFA/Dl7/Znmj 7x9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685292577; x=1687884577; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=FTEsFsv+jjoCMUgQQGjYI0LFkAAdIpRXOhMGO4z2oIU=; b=YkufnpMbnqn5kRQTLUg3e6yDf9+s0N1u4hQgjBCbspBxevLXCY6hlKVG9OU2NyrOl0 zZ0xdV0qR7uBN+QqatM6PKZnMn+aO51rZRNmGASED6nVzIIbwrz61/RgntZ4m5omsEaC PRFzSUPBI+IWFM8W4M0L1/GnnAj09aobIDgUzyGVc/UpDKfiEts47IDX0pNeNCS2I3zU JpmwB+8Prp8/DWfd8gnPWg0aYD4sSgLoxJk6QbyJ73XC+fxvWhOSARzX+DfO/3c+n50+ /eXBTPJYSfxQEPJk+9rK/N2VNokHV1et1HLrPvGlVhm0r0T6F1/+CgtbgeAiMm7tuAyb vJpA== X-Gm-Message-State: AC+VfDxkZ3QfOqqAx78t3ILzqFup9lpfBIDmabce0F/UKq7TwFEi5Mjw I4uHJ7VaUEp8n5A+ickk9Q3eTIhVcFo= X-Google-Smtp-Source: ACHHUZ4o+M3xdWsV3LVIl4mJrNfb/RVbNvfw8EHkgiOZdYkINZT+tSf4JL1ilDBLT7L+e1Omnu0ebw== X-Received: by 2002:a4a:5206:0:b0:54f:49ad:1c8f with SMTP id d6-20020a4a5206000000b0054f49ad1c8fmr2796358oob.1.1685292576986; Sun, 28 May 2023 09:49:36 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Richard Purdie , Matheus Ferst Subject: [PULL 01/10] target/ppc: Fix fallback to MFSS for MFFS* instructions on pre 3.0 ISAs Date: Sun, 28 May 2023 13:49:13 -0300 Message-Id: <20230528164922.20364-2-danielhb413@gmail.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230528164922.20364-1-danielhb413@gmail.com> References: <20230528164922.20364-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::c2b; envelope-from=danielhb413@gmail.com; helo=mail-oo1-xc2b.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1685292663563100001 Content-Type: text/plain; charset="utf-8" From: Richard Purdie The following commits changed the code such that the fallback to MFSS for M= FFSCRN, MFFSCRNI, MFFSCE and MFFSL on pre 3.0 ISAs was removed and became an illega= l instruction: bf8adfd88b547680aa857c46098f3a1e94373160 - target/ppc: Move mffscrn[i] to= decodetree 394c2e2fda70da722f20fb60412d6c0ca4bfaa03 - target/ppc: Move mffsce to dec= odetree 3e5bce70efe6bd1f684efbb21fd2a316cbf0657e - target/ppc: Move mffsl to deco= detree The hardware will handle them as a MFFS instruction as the code did previou= sly. This means applications that were segfaulting under qemu when encountering = these instructions which is used in glibc libm functions for example. The fallback for MFFSCDRN and MFFSCDRNI added in a later patch was also mis= sing. This patch restores the fallback to MFSS for these instructions on pre 3.0s= ISAs as the hardware decoder would, fixing the segfaulting libm code. It doesn't= have the fallback for 3.0 onwards to match hardware behaviour. Signed-off-by: Richard Purdie Reviewed-by: Matheus Ferst Reviewed-by: Richard Henderson Message-Id: <20230510111913.1718734-1-richard.purdie@linuxfoundation.org> Signed-off-by: Daniel Henrique Barboza --- target/ppc/insn32.decode | 20 +++++++++++++------- target/ppc/translate/fp-impl.c.inc | 22 ++++++++++++++++------ 2 files changed, 29 insertions(+), 13 deletions(-) diff --git a/target/ppc/insn32.decode b/target/ppc/insn32.decode index f8f589e9fd..4fcf3af8d0 100644 --- a/target/ppc/insn32.decode +++ b/target/ppc/insn32.decode @@ -390,13 +390,19 @@ SETNBCR 011111 ..... ..... ----- 0111100000 -= @X_bi =20 ### Move To/From FPSCR =20 -MFFS 111111 ..... 00000 ----- 1001000111 . @X_t_rc -MFFSCE 111111 ..... 00001 ----- 1001000111 - @X_t -MFFSCRN 111111 ..... 10110 ..... 1001000111 - @X_tb -MFFSCDRN 111111 ..... 10100 ..... 1001000111 - @X_tb -MFFSCRNI 111111 ..... 10111 ---.. 1001000111 - @X_imm2 -MFFSCDRNI 111111 ..... 10101 --... 1001000111 - @X_imm3 -MFFSL 111111 ..... 11000 ----- 1001000111 - @X_t +{ + # Before Power ISA v3.0, MFFS bits 11~15 were reserved and should be ign= ored + MFFS_ISA207 111111 ..... ----- ----- 1001000111 . @X_t_rc + [ + MFFS 111111 ..... 00000 ----- 1001000111 . @X_t_rc + MFFSCE 111111 ..... 00001 ----- 1001000111 - @X_t + MFFSCRN 111111 ..... 10110 ..... 1001000111 - @X_tb + MFFSCDRN 111111 ..... 10100 ..... 1001000111 - @X_tb + MFFSCRNI 111111 ..... 10111 ---.. 1001000111 - @X_imm2 + MFFSCDRNI 111111 ..... 10101 --... 1001000111 - @X_imm3 + MFFSL 111111 ..... 11000 ----- 1001000111 - @X_t + ] +} =20 ### Decimal Floating-Point Arithmetic Instructions =20 diff --git a/target/ppc/translate/fp-impl.c.inc b/target/ppc/translate/fp-i= mpl.c.inc index 57d8437851..874774eade 100644 --- a/target/ppc/translate/fp-impl.c.inc +++ b/target/ppc/translate/fp-impl.c.inc @@ -568,6 +568,22 @@ static void store_fpscr_masked(TCGv_i64 fpscr, uint64_= t clear_mask, gen_helper_store_fpscr(cpu_env, fpscr_masked, st_mask); } =20 +static bool trans_MFFS_ISA207(DisasContext *ctx, arg_X_t_rc *a) +{ + if (!(ctx->insns_flags2 & PPC2_ISA300)) { + /* + * Before Power ISA v3.0, MFFS bits 11~15 were reserved, any instr= uction + * with OPCD=3D63 and XO=3D583 should be decoded as MFFS. + */ + return trans_MFFS(ctx, a); + } + /* + * For Power ISA v3.0+, return false and let the pattern group + * select the correct instruction. + */ + return false; +} + static bool trans_MFFS(DisasContext *ctx, arg_X_t_rc *a) { REQUIRE_FPU(ctx); @@ -584,7 +600,6 @@ static bool trans_MFFSCE(DisasContext *ctx, arg_X_t *a) { TCGv_i64 fpscr; =20 - REQUIRE_INSNS_FLAGS2(ctx, ISA300); REQUIRE_FPU(ctx); =20 gen_reset_fpstatus(); @@ -597,7 +612,6 @@ static bool trans_MFFSCRN(DisasContext *ctx, arg_X_tb *= a) { TCGv_i64 t1, fpscr; =20 - REQUIRE_INSNS_FLAGS2(ctx, ISA300); REQUIRE_FPU(ctx); =20 t1 =3D tcg_temp_new_i64(); @@ -614,7 +628,6 @@ static bool trans_MFFSCDRN(DisasContext *ctx, arg_X_tb = *a) { TCGv_i64 t1, fpscr; =20 - REQUIRE_INSNS_FLAGS2(ctx, ISA300); REQUIRE_FPU(ctx); =20 t1 =3D tcg_temp_new_i64(); @@ -631,7 +644,6 @@ static bool trans_MFFSCRNI(DisasContext *ctx, arg_X_imm= 2 *a) { TCGv_i64 t1, fpscr; =20 - REQUIRE_INSNS_FLAGS2(ctx, ISA300); REQUIRE_FPU(ctx); =20 t1 =3D tcg_temp_new_i64(); @@ -647,7 +659,6 @@ static bool trans_MFFSCDRNI(DisasContext *ctx, arg_X_im= m3 *a) { TCGv_i64 t1, fpscr; =20 - REQUIRE_INSNS_FLAGS2(ctx, ISA300); REQUIRE_FPU(ctx); =20 t1 =3D tcg_temp_new_i64(); @@ -661,7 +672,6 @@ static bool trans_MFFSCDRNI(DisasContext *ctx, arg_X_im= m3 *a) =20 static bool trans_MFFSL(DisasContext *ctx, arg_X_t *a) { - REQUIRE_INSNS_FLAGS2(ctx, ISA300); REQUIRE_FPU(ctx); =20 gen_reset_fpstatus(); --=20 2.40.1 From nobody Sat Feb 7 23:33:56 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1685292630; cv=none; d=zohomail.com; s=zohoarc; b=c5G0cvhmVrleZW4al66jAOo1540/zsxIuGSfwgLHsOeWa0SfS7b6AUWIezacaUglw+Cgp8/opHaqTYhkkcBOJzxfzMjJD4DH5/4elEYEjenSLNH5e0iygTzOGnK3h/xl7+y+VOgbWIAbXmQoOMSLpXSUXS3J0+tzY/0OzdKwMxE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685292630; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=bf9x7ZIiLolV6tEMTComlUTmWu2cOguNqnynRmmxcJ4=; b=RtkPxNKshvp7Oh6jWjv/KuLzKmoKvmQ/eiNmGvm/FO848nSzMfyBCqOuSky1REM7qFTn57A0U10zv73WOU48JoNieZr/BdEzeZgaVHGZk6zkH2O5of87otoeprOWHddCl0NQKMJyXDSCNS0iFuRnWOtIpfvuSMPWBAKPvdT1H60= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1685292630902640.4352609446423; Sun, 28 May 2023 09:50:30 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q3JaS-0000Vl-P6; Sun, 28 May 2023 12:49:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q3JaR-0000VJ-Ck; Sun, 28 May 2023 12:49:43 -0400 Received: from mail-oi1-x22f.google.com ([2607:f8b0:4864:20::22f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1q3JaP-0003a2-HT; Sun, 28 May 2023 12:49:43 -0400 Received: by mail-oi1-x22f.google.com with SMTP id 5614622812f47-3985f70cf1bso1568151b6e.3; Sun, 28 May 2023 09:49:40 -0700 (PDT) Received: from grind.. (200-162-225-121.static-corp.ajato.com.br. [200.162.225.121]) by smtp.gmail.com with ESMTPSA id w4-20020a4adec4000000b0054f85f67f31sm3378830oou.46.2023.05.28.09.49.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 May 2023 09:49:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1685292580; x=1687884580; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=bf9x7ZIiLolV6tEMTComlUTmWu2cOguNqnynRmmxcJ4=; b=MfN7GWwm5FUezPVD96QkxVBE3JyFNCJdrcSppZz8ts2ryFffW1K3onyTsdXGfttjUS Mc7SQkUmpeW+xq8Z1ihGCBObeGUTA9X0Yj3iHuB6NT0UJotIHmZ/M9IYSP5QEfT1RQc5 2qQ2luKYgc16wuG7tWCOnH6fIgM82pL6HBaIR3lYlWE5ujALsMVt3WQi3EZrMWYRSBl1 PyovYAWPj1XHUE414NoQtPNrQhMsaaFtbn5qezFhB6MrPEe1g8ArUKulXWq6RuFfl2Bj iT/dMTsFQZwUXtEHiB+toSNQb44hn32Xh0iHzeZP/HTaqyFfD3XNOmeDxe++xcShSWIy kVMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685292580; x=1687884580; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bf9x7ZIiLolV6tEMTComlUTmWu2cOguNqnynRmmxcJ4=; b=g7NG9Fd6KeXOcly8MrZ5UTJJ/CToT8H/Tet8BnBngw35XdoCfQc+Sod64LqmIaDZKW lECaTSvSe1o0lXCfq+ae0fblaNrh8Z+OTj3UUWn5yTUI/OQ8bp67VBggJL1OOLjWjiwn 5cNSU4wUmriMGqw/gL85TQn0tOEph3sjN1RXNS4MgSpxygON9GHKSF3W3v0uHJLkctAs V4gHZ7yrDxiGs/xoA+7drC7zSnsABJew6a0MqLGJiN9nzV+SQ2D+T6qHg3/T2qnDhcUw ae/Rhmy3JIC+nN9bm+hFb6EUhSDX5Qj7IocAEKyoTtdQQ7uLtTQfzZBsWcrrN5VohpvR aoSQ== X-Gm-Message-State: AC+VfDy70aB7dJZ/d93UuOxucMwbA2mQG0cSpPM4CxsD1zSYmPPFoKF2 slA4E/row/H4omgCnwbmzWO3sQbWzP8= X-Google-Smtp-Source: ACHHUZ4SrHytnlH2JKWo0AE4NbI3Xl2qxTZd1KvuW+xiyTVIYtVNJWwcbDFkT5Ha+U0fW17hkgUVfw== X-Received: by 2002:a05:6808:23c1:b0:395:e452:47c1 with SMTP id bq1-20020a05680823c100b00395e45247c1mr4543450oib.30.1685292579722; Sun, 28 May 2023 09:49:39 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Nicholas Piggin , Harsh Prateek Bora Subject: [PULL 02/10] target/ppc: Fix width of some 32-bit SPRs Date: Sun, 28 May 2023 13:49:14 -0300 Message-Id: <20230528164922.20364-3-danielhb413@gmail.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230528164922.20364-1-danielhb413@gmail.com> References: <20230528164922.20364-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::22f; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x22f.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1685292632936100005 Content-Type: text/plain; charset="utf-8" From: Nicholas Piggin Some 32-bit SPRs are incorrectly implemented as 64-bits on 64-bit targets. This changes VRSAVE, DSISR, HDSISR, DAWRX0, PIDR, LPIDR, DEXCR, HDEXCR, CTRL, TSCR, MMCRH, and PMC[1-6] from to be 32-bit registers. This only goes by the 32/64 classification in the architecture, it does not try to implement finer details of SPR implementation (e.g., not all bits implemented as simple read/write storage). Signed-off-by: Nicholas Piggin Reviewed-by: Harsh Prateek Bora Message-Id: <20230515092655.171206-2-npiggin@gmail.com> Signed-off-by: Daniel Henrique Barboza --- target/ppc/cpu_init.c | 18 +++++++++--------- target/ppc/helper_regs.c | 2 +- target/ppc/misc_helper.c | 4 ++-- target/ppc/power8-pmu.c | 2 +- target/ppc/spr_common.h | 2 +- target/ppc/translate.c | 26 +++++++++++++------------- 6 files changed, 27 insertions(+), 27 deletions(-) diff --git a/target/ppc/cpu_init.c b/target/ppc/cpu_init.c index 0ce2e3c91d..5aa0b3f0f1 100644 --- a/target/ppc/cpu_init.c +++ b/target/ppc/cpu_init.c @@ -5085,8 +5085,8 @@ static void register_book3s_altivec_sprs(CPUPPCState = *env) } =20 spr_register_kvm(env, SPR_VRSAVE, "VRSAVE", - &spr_read_generic, &spr_write_generic, - &spr_read_generic, &spr_write_generic, + &spr_read_generic, &spr_write_generic32, + &spr_read_generic, &spr_write_generic32, KVM_REG_PPC_VRSAVE, 0x00000000); =20 } @@ -5120,7 +5120,7 @@ static void register_book3s_207_dbg_sprs(CPUPPCState = *env) spr_register_kvm_hv(env, SPR_DAWRX0, "DAWRX0", SPR_NOACCESS, SPR_NOACCESS, SPR_NOACCESS, SPR_NOACCESS, - &spr_read_generic, &spr_write_generic, + &spr_read_generic, &spr_write_generic32, KVM_REG_PPC_DAWRX, 0x00000000); spr_register_kvm_hv(env, SPR_CIABR, "CIABR", SPR_NOACCESS, SPR_NOACCESS, @@ -5376,7 +5376,7 @@ static void register_book3s_ids_sprs(CPUPPCState *env) spr_register_hv(env, SPR_TSCR, "TSCR", SPR_NOACCESS, SPR_NOACCESS, SPR_NOACCESS, SPR_NOACCESS, - &spr_read_generic, &spr_write_generic, + &spr_read_generic, &spr_write_generic32, 0x00000000); spr_register_hv(env, SPR_HMER, "HMER", SPR_NOACCESS, SPR_NOACCESS, @@ -5406,7 +5406,7 @@ static void register_book3s_ids_sprs(CPUPPCState *env) spr_register_hv(env, SPR_MMCRC, "MMCRC", SPR_NOACCESS, SPR_NOACCESS, SPR_NOACCESS, SPR_NOACCESS, - &spr_read_generic, &spr_write_generic, + &spr_read_generic, &spr_write_generic32, 0x00000000); spr_register_hv(env, SPR_MMCRH, "MMCRH", SPR_NOACCESS, SPR_NOACCESS, @@ -5441,7 +5441,7 @@ static void register_book3s_ids_sprs(CPUPPCState *env) spr_register_hv(env, SPR_HDSISR, "HDSISR", SPR_NOACCESS, SPR_NOACCESS, SPR_NOACCESS, SPR_NOACCESS, - &spr_read_generic, &spr_write_generic, + &spr_read_generic, &spr_write_generic32, 0x00000000); spr_register_hv(env, SPR_HRMOR, "HRMOR", SPR_NOACCESS, SPR_NOACCESS, @@ -5665,7 +5665,7 @@ static void register_power7_book4_sprs(CPUPPCState *e= nv) KVM_REG_PPC_ACOP, 0); spr_register_kvm(env, SPR_BOOKS_PID, "PID", SPR_NOACCESS, SPR_NOACCESS, - &spr_read_generic, &spr_write_generic, + &spr_read_generic, &spr_write_generic32, KVM_REG_PPC_PID, 0); #endif } @@ -5730,7 +5730,7 @@ static void register_power10_dexcr_sprs(CPUPPCState *= env) { spr_register(env, SPR_DEXCR, "DEXCR", SPR_NOACCESS, SPR_NOACCESS, - &spr_read_generic, &spr_write_generic, + &spr_read_generic, &spr_write_generic32, 0); =20 spr_register(env, SPR_UDEXCR, "DEXCR", @@ -5741,7 +5741,7 @@ static void register_power10_dexcr_sprs(CPUPPCState *= env) spr_register_hv(env, SPR_HDEXCR, "HDEXCR", SPR_NOACCESS, SPR_NOACCESS, SPR_NOACCESS, SPR_NOACCESS, - &spr_read_generic, &spr_write_generic, + &spr_read_generic, &spr_write_generic32, 0); =20 spr_register(env, SPR_UHDEXCR, "HDEXCR", diff --git a/target/ppc/helper_regs.c b/target/ppc/helper_regs.c index 779e7db513..fb351c303f 100644 --- a/target/ppc/helper_regs.c +++ b/target/ppc/helper_regs.c @@ -448,7 +448,7 @@ void register_non_embedded_sprs(CPUPPCState *env) /* Exception processing */ spr_register_kvm(env, SPR_DSISR, "DSISR", SPR_NOACCESS, SPR_NOACCESS, - &spr_read_generic, &spr_write_generic, + &spr_read_generic, &spr_write_generic32, KVM_REG_PPC_DSISR, 0x00000000); spr_register_kvm(env, SPR_DAR, "DAR", SPR_NOACCESS, SPR_NOACCESS, diff --git a/target/ppc/misc_helper.c b/target/ppc/misc_helper.c index a9bc1522e2..40ddc5c08c 100644 --- a/target/ppc/misc_helper.c +++ b/target/ppc/misc_helper.c @@ -190,13 +190,13 @@ void helper_store_dpdes(CPUPPCState *env, target_ulon= g val) =20 void helper_store_pidr(CPUPPCState *env, target_ulong val) { - env->spr[SPR_BOOKS_PID] =3D val; + env->spr[SPR_BOOKS_PID] =3D (uint32_t)val; tlb_flush(env_cpu(env)); } =20 void helper_store_lpidr(CPUPPCState *env, target_ulong val) { - env->spr[SPR_LPIDR] =3D val; + env->spr[SPR_LPIDR] =3D (uint32_t)val; =20 /* * We need to flush the TLB on LPID changes as we only tag HV vs diff --git a/target/ppc/power8-pmu.c b/target/ppc/power8-pmu.c index 1381072b9e..64a64865d7 100644 --- a/target/ppc/power8-pmu.c +++ b/target/ppc/power8-pmu.c @@ -272,7 +272,7 @@ void helper_store_pmc(CPUPPCState *env, uint32_t sprn, = uint64_t value) { pmu_update_cycles(env); =20 - env->spr[sprn] =3D value; + env->spr[sprn] =3D (uint32_t)value; =20 pmc_update_overflow_timer(env, sprn); } diff --git a/target/ppc/spr_common.h b/target/ppc/spr_common.h index 8437eb0340..4c0f2bed77 100644 --- a/target/ppc/spr_common.h +++ b/target/ppc/spr_common.h @@ -81,6 +81,7 @@ void _spr_register(CPUPPCState *env, int num, const char = *name, void spr_noaccess(DisasContext *ctx, int gprn, int sprn); void spr_read_generic(DisasContext *ctx, int gprn, int sprn); void spr_write_generic(DisasContext *ctx, int sprn, int gprn); +void spr_write_generic32(DisasContext *ctx, int sprn, int gprn); void spr_write_MMCR0(DisasContext *ctx, int sprn, int gprn); void spr_write_MMCR1(DisasContext *ctx, int sprn, int gprn); void spr_write_PMC(DisasContext *ctx, int sprn, int gprn); @@ -109,7 +110,6 @@ void spr_write_PMC14_ureg(DisasContext *ctx, int sprn, = int gprn); void spr_write_PMC56_ureg(DisasContext *ctx, int sprn, int gprn); =20 #ifndef CONFIG_USER_ONLY -void spr_write_generic32(DisasContext *ctx, int sprn, int gprn); void spr_write_clear(DisasContext *ctx, int sprn, int gprn); void spr_access_nop(DisasContext *ctx, int sprn, int gprn); void spr_read_decr(DisasContext *ctx, int gprn, int sprn); diff --git a/target/ppc/translate.c b/target/ppc/translate.c index 1720570b9b..9b7884586c 100644 --- a/target/ppc/translate.c +++ b/target/ppc/translate.c @@ -411,19 +411,6 @@ void spr_write_generic(DisasContext *ctx, int sprn, in= t gprn) spr_store_dump_spr(sprn); } =20 -void spr_write_CTRL(DisasContext *ctx, int sprn, int gprn) -{ - spr_write_generic(ctx, sprn, gprn); - - /* - * SPR_CTRL writes must force a new translation block, - * allowing the PMU to calculate the run latch events with - * more accuracy. - */ - ctx->base.is_jmp =3D DISAS_EXIT_UPDATE; -} - -#if !defined(CONFIG_USER_ONLY) void spr_write_generic32(DisasContext *ctx, int sprn, int gprn) { #ifdef TARGET_PPC64 @@ -436,6 +423,19 @@ void spr_write_generic32(DisasContext *ctx, int sprn, = int gprn) #endif } =20 +void spr_write_CTRL(DisasContext *ctx, int sprn, int gprn) +{ + spr_write_generic32(ctx, sprn, gprn); + + /* + * SPR_CTRL writes must force a new translation block, + * allowing the PMU to calculate the run latch events with + * more accuracy. + */ + ctx->base.is_jmp =3D DISAS_EXIT_UPDATE; +} + +#if !defined(CONFIG_USER_ONLY) void spr_write_clear(DisasContext *ctx, int sprn, int gprn) { TCGv t0 =3D tcg_temp_new(); --=20 2.40.1 From nobody Sat Feb 7 23:33:56 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1685292706; cv=none; d=zohomail.com; s=zohoarc; b=SzKiuXjRofAvbv4hq/OC5gejxY3EBMU+Tm7rNsxf8w/JBrmn6K3o5KgMWeA2EIksosNKM/t/DK++VWcDDWIpISaIOLFwEDnQiqfkECpAziCgypy5yZYPSFSWbDZfOpcS8Dmiftf4NueyVJ9YeXEvphLgnuOMKfKYrJUVryug5+8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685292706; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=IetsKQMIb1Qgngbwf3+eq9RRIN5h/pB5AKRI4osu4C8=; b=TIf14+av/18IEvZP0i+QDIptMfJeNqQn4d+1/nBxZUIUNnFZalkOHdf4iGuc6gKomUQpaL5ZyM2YhDekOXLSUMwxSU+Agi6o98NFQLuj4MyP8qFy+LTJCcqqDdFbjD+cnn3Zp4IgPWw28JuWcZEhVNRlNev9ERXrE5/twk6cLDg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1685292706432560.038032254347; Sun, 28 May 2023 09:51:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q3JaU-0000WF-Ja; Sun, 28 May 2023 12:49:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q3JaT-0000W3-L3; Sun, 28 May 2023 12:49:45 -0400 Received: from mail-oi1-x233.google.com ([2607:f8b0:4864:20::233]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1q3JaS-0003aQ-4J; Sun, 28 May 2023 12:49:45 -0400 Received: by mail-oi1-x233.google.com with SMTP id 5614622812f47-3980f932206so1605656b6e.1; Sun, 28 May 2023 09:49:43 -0700 (PDT) Received: from grind.. (200-162-225-121.static-corp.ajato.com.br. [200.162.225.121]) by smtp.gmail.com with ESMTPSA id w4-20020a4adec4000000b0054f85f67f31sm3378830oou.46.2023.05.28.09.49.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 May 2023 09:49:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1685292582; x=1687884582; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=IetsKQMIb1Qgngbwf3+eq9RRIN5h/pB5AKRI4osu4C8=; b=Uu3uFxjX7ulOvSgBj0u2/3ZPpBGCSmTQXnXRAMKBx5x/b9sZoAbYrBbgIuN4AOsmcT H4t6NLEmeD8LqugJSMMI3xRus142mcTd4jBKh+Nmu34+vCg4MTT+QB+VEVuWjUZBF5Ck ETwCEfG7ql1jLTNouOzYp6+N+4cg2mCYijhCNvWX7eHkJiCZQ1EGB40LC2mxCnXLu4gM HVCoDIp6Pl4XXdQenE+aQH61e55uY7hI/30vKwF6+4w7WBqtVGDCDmxvmJLNO48VUlP4 0ZSwaf4GVhMODt9SwzNNxrhM2bgwMbAdyMVqIhlK0R39XupV//7EEmKGjuj1mpS29Mrq Adfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685292582; x=1687884582; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=IetsKQMIb1Qgngbwf3+eq9RRIN5h/pB5AKRI4osu4C8=; b=FAypQqi3oQ5/8yhZpPh7iw7jt5a+Y86GlafvwJaWjFEcnfp/QEAjaaEWpqW2vLBK+L gQOZc1M00P2Y7HnWt5gon6W4PT/Pr19uwarokDuGrMinR+A/kI1w+iT0g+nwwkm6Fxnh M3kx2ppkeFMQpMHsUCaLDsLUcjQ5Tm3jSYjNVHkap7oDoeyLN3he8cvWuzQkvlydyHIO 14zd5jLyZmecEt17QqmJpKPr5sbTFXGguCeZGxTRurEWnWEigA/sIgkyj4A5OB8zYtkA Z0TwVs4FBSjAdfl4shJhRHymzgHTnqD/4e8WZhOrQDZTHoNrWm3qrCBAhbIXaQ8+ltpB /E2A== X-Gm-Message-State: AC+VfDxxVH1ft0CFEsUGQSqtIJulqqtcbrRDwPy0WZLtRkNaOqLvrpZh CJ/mQtsxg4BgwnlnmCyZsyBo1rZH6nc= X-Google-Smtp-Source: ACHHUZ78dZ541jeLLJIlii3Ckk93unnwtFeEiOtPm4dypYAK65l9oCG6rIA1zZWOKGnvhl98GHCSxA== X-Received: by 2002:a54:4890:0:b0:398:77:e2aa with SMTP id r16-20020a544890000000b003980077e2aamr4202751oic.30.1685292582409; Sun, 28 May 2023 09:49:42 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Nicholas Piggin , Fabiano Rosas Subject: [PULL 03/10] target/ppc: Alignment faults do not set DSISR in ISA v3.0 onward Date: Sun, 28 May 2023 13:49:15 -0300 Message-Id: <20230528164922.20364-4-danielhb413@gmail.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230528164922.20364-1-danielhb413@gmail.com> References: <20230528164922.20364-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::233; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x233.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1685292707612100003 Content-Type: text/plain; charset="utf-8" From: Nicholas Piggin This optional behavior was removed from the ISA in v3.0, see Summary of Changes preface: Data Storage Interrupt Status Register for Alignment Interrupt: Simplifies the Alignment interrupt by remov- ing the Data Storage Interrupt Status Register (DSISR) from the set of registers modified by the Alignment interrupt. Reviewed-by: Fabiano Rosas Signed-off-by: Nicholas Piggin Message-Id: <20230515092655.171206-5-npiggin@gmail.com> Signed-off-by: Daniel Henrique Barboza --- target/ppc/excp_helper.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c index 199328f4b6..fea9221501 100644 --- a/target/ppc/excp_helper.c +++ b/target/ppc/excp_helper.c @@ -1431,13 +1431,16 @@ static void powerpc_excp_books(PowerPCCPU *cpu, int= excp) break; } case POWERPC_EXCP_ALIGN: /* Alignment exception = */ - /* Get rS/rD and rA from faulting opcode */ - /* - * Note: the opcode fields will not be set properly for a - * direct store load/store, but nobody cares as nobody - * actually uses direct store segments. - */ - env->spr[SPR_DSISR] |=3D (env->error_code & 0x03FF0000) >> 16; + /* Optional DSISR update was removed from ISA v3.0 */ + if (!(env->insns_flags2 & PPC2_ISA300)) { + /* Get rS/rD and rA from faulting opcode */ + /* + * Note: the opcode fields will not be set properly for a + * direct store load/store, but nobody cares as nobody + * actually uses direct store segments. + */ + env->spr[SPR_DSISR] |=3D (env->error_code & 0x03FF0000) >> 16; + } break; case POWERPC_EXCP_PROGRAM: /* Program exception = */ switch (env->error_code & ~0xF) { --=20 2.40.1 From nobody Sat Feb 7 23:33:56 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1685292677; cv=none; d=zohomail.com; s=zohoarc; b=QGEzgSaq9VwFvbiq8aExiSTQu+BYF5urwkIXb/JmJeTOl+wado08LuuQXhFGjB0RCMmUr/+isx2UnpKqUxgy0H8qZgEt8W6SmR84Dt0zgMe1L/Ee122zObSSyp5i7RHwjxx04buZQXyyemShlgAwP2PpO9wHnS5izlUWWebRcyQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685292677; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=axGG6fTPckiO9vljrrokbP6P6GAUhDfvYythDmoJ4Hw=; b=DDcOZnIlzz+Eki7QdDxCxrkJzRBEj5/l8bxio3LEN8BMHgvvNngjXHo5goWPXJSNh5x0wB2Era2tjgA43AFi/EDoDgoCAEi6enIelDlJKW2cDVo7yHAdYl/As8ZWJT8SyODdBSJAtPNHNQ+QCttClMIzVncHFyfLD9i2vf89g1c= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1685292677306924.7772622513475; Sun, 28 May 2023 09:51:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q3JaY-0000Xb-BR; Sun, 28 May 2023 12:49:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q3JaW-0000Wu-Cu; Sun, 28 May 2023 12:49:48 -0400 Received: from mail-oi1-x234.google.com ([2607:f8b0:4864:20::234]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1q3JaU-0003ar-Gf; Sun, 28 May 2023 12:49:48 -0400 Received: by mail-oi1-x234.google.com with SMTP id 5614622812f47-397f0bb41a2so760169b6e.0; Sun, 28 May 2023 09:49:45 -0700 (PDT) Received: from grind.. (200-162-225-121.static-corp.ajato.com.br. [200.162.225.121]) by smtp.gmail.com with ESMTPSA id w4-20020a4adec4000000b0054f85f67f31sm3378830oou.46.2023.05.28.09.49.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 May 2023 09:49:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1685292585; x=1687884585; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=axGG6fTPckiO9vljrrokbP6P6GAUhDfvYythDmoJ4Hw=; b=Kane6t6BP0IWvdv7a5zFduSEfYXAQzX7DszZvAFNWTgwhlqCkpHJDMMpxCTHavKlQR /uhP8dicIKjJus/VBa0YWImTVQ0TXXOcda8lK+tadw2XPUAqaisacMi19m8vAeIua/R1 P9carjiVS2/si8uq7uM5dX2J8rkj5mgDTzVQGwRgYP/UvL3l1Yv2lzVFVDrYbjb2UAC5 rxXrQOGysdZrYHcNLiUI/oOT0Xq0/FrXheyO3Cxy8Xd4u5lQ2ecmw+VGQ9Y+SJwU1UiJ SpHZGyzqhwd0FzkZ1rknWhoHEkAlcHsM/WRPqOMxgME9hPrwXB9ZJ53BxGerteibNbMI Rjeg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685292585; x=1687884585; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=axGG6fTPckiO9vljrrokbP6P6GAUhDfvYythDmoJ4Hw=; b=aiK9mToJntiLzTn9QaRNJq4heD29vv1WF7z45BiIZwF3tMh//yEEDQIzJ/i0iDEdkd TaN6eJnPeo1c9rv6WfF2phb2qHJ+sJwNRnfCi9Afix/cmQktITfrI0IXQSr9nJj4ii8U nDOfxvgL4Rl01a0+NVba8CIZK0o5c0i51gNPV1N80/4if35g0YnsmTtz0TEq7pH47tYn OPyOeYvLf3o+9ZpTpZt4YZCIEtt9a3OTq+gRQOqdb9lwGGyeLYiY18xryXaY7aHiKS/D qQIBj/ouXJSq6Fe3yIcpP6CRrDQE8eszhj22y+pHzCeHxvS/akHBCMsY66huWBgySwXi miaQ== X-Gm-Message-State: AC+VfDyP+spjgGMmx1UpRTVlEtzF0U2tF4TCgCsGysUpRY8mELRS1o+u F1hMo4nm6bFfaJRyFyRdXSrXuBSY7eg= X-Google-Smtp-Source: ACHHUZ7I6x1TbtXJyjrgoU+hvzswNB3Xmdh+2dPj+RUzr9b19OOF5mS9Ef2cxzP0RSmmJkpYNU2dBw== X-Received: by 2002:a05:6808:198b:b0:398:55ff:1fb8 with SMTP id bj11-20020a056808198b00b0039855ff1fb8mr4735844oib.37.1685292584856; Sun, 28 May 2023 09:49:44 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Nicholas Piggin , David Gibson Subject: [PULL 04/10] spapr: Add SPAPR_CAP_AIL_MODE_3 for AIL mode 3 support for H_SET_MODE hcall Date: Sun, 28 May 2023 13:49:16 -0300 Message-Id: <20230528164922.20364-5-danielhb413@gmail.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230528164922.20364-1-danielhb413@gmail.com> References: <20230528164922.20364-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::234; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x234.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1685292679033100007 Content-Type: text/plain; charset="utf-8" From: Nicholas Piggin The behaviour of the Address Translation Mode on Interrupt resource is not consistently supported by all CPU versions or all KVM versions: KVM HV does not support mode 2, and does not support mode 3 on POWER7 or early POWER9 processesors. KVM PR only supports mode 0. TCG supports all modes (0, 2, 3) on CPUs with support for the corresonding LPCR[AIL] mode. This leads to inconsistencies in guest behaviour and could cause problems migrating guests. This was not noticable for Linux guests for a long time because the kernel only uses modes 0 and 3, and it used to consider AIL-3 to be advisory in that it would always keep the AIL-0 vectors around, so it did not matter whether or not interrupts were delivered according to the AIL mode. Recent Linux guests depend on AIL mode 3 working as specified in order to support the SCV facility interrupt. If AIL-3 can not be provided, then H_SET_MODE must return an error to Linux so it can disable the SCV facility (failure to do so can lead to userspace being able to crash the guest kernel). Add the ail-mode-3 capability to specify that AIL-3 is supported. AIL-0 is implied as the baseline, and AIL-2 is no longer supported by spapr. AIL-2 is not known to be used by any software, but support in TCG could be restored with an ail-mode-2 capability quite easily if a regression is reported. Modify the H_SET_MODE Address Translation Mode on Interrupt resource handler to check capabilities and correctly return error if not supported. KVM has a cap to advertise support for AIL-3. Reviewed-by: David Gibson Signed-off-by: Nicholas Piggin Message-Id: <20230515160216.394612-1-npiggin@gmail.com> Signed-off-by: Daniel Henrique Barboza --- hw/ppc/spapr.c | 7 +++++++ hw/ppc/spapr_caps.c | 37 +++++++++++++++++++++++++++++++++++++ hw/ppc/spapr_hcall.c | 24 +++++++++++++----------- include/hw/ppc/spapr.h | 4 +++- target/ppc/kvm.c | 7 +++++++ target/ppc/kvm_ppc.h | 6 ++++++ 6 files changed, 73 insertions(+), 12 deletions(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 1baea16c96..b623e23d6c 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4673,6 +4673,13 @@ static void spapr_machine_class_init(ObjectClass *oc= , void *data) smc->default_caps.caps[SPAPR_CAP_CCF_ASSIST] =3D SPAPR_CAP_ON; smc->default_caps.caps[SPAPR_CAP_FWNMI] =3D SPAPR_CAP_ON; smc->default_caps.caps[SPAPR_CAP_RPT_INVALIDATE] =3D SPAPR_CAP_OFF; + + /* + * This cap specifies whether the AIL 3 mode for + * H_SET_RESOURCE is supported. The default is modified + * by default_caps_with_cpu(). + */ + smc->default_caps.caps[SPAPR_CAP_AIL_MODE_3] =3D SPAPR_CAP_ON; spapr_caps_add_properties(smc); smc->irq =3D &spapr_irq_dual; smc->dr_phb_enabled =3D true; diff --git a/hw/ppc/spapr_caps.c b/hw/ppc/spapr_caps.c index b4283055c1..3fd45a6dec 100644 --- a/hw/ppc/spapr_caps.c +++ b/hw/ppc/spapr_caps.c @@ -614,6 +614,33 @@ static void cap_rpt_invalidate_apply(SpaprMachineState= *spapr, } } =20 +static void cap_ail_mode_3_apply(SpaprMachineState *spapr, + uint8_t val, Error **errp) +{ + ERRP_GUARD(); + PowerPCCPU *cpu =3D POWERPC_CPU(first_cpu); + PowerPCCPUClass *pcc =3D POWERPC_CPU_GET_CLASS(cpu); + + if (!val) { + return; + } + + if (tcg_enabled()) { + /* AIL-3 is only supported on POWER8 and above CPUs. */ + if (!(pcc->insns_flags2 & PPC2_ISA207S)) { + error_setg(errp, "TCG only supports cap-ail-mode-3 on POWER8 a= nd later CPUs"); + error_append_hint(errp, "Try appending -machine cap-ail-mode-3= =3Doff\n"); + return; + } + } else if (kvm_enabled()) { + if (!kvmppc_supports_ail_3()) { + error_setg(errp, "KVM implementation does not support cap-ail-= mode-3"); + error_append_hint(errp, "Try appending -machine cap-ail-mode-3= =3Doff\n"); + return; + } + } +} + SpaprCapabilityInfo capability_table[SPAPR_CAP_NUM] =3D { [SPAPR_CAP_HTM] =3D { .name =3D "htm", @@ -731,6 +758,15 @@ SpaprCapabilityInfo capability_table[SPAPR_CAP_NUM] = =3D { .type =3D "bool", .apply =3D cap_rpt_invalidate_apply, }, + [SPAPR_CAP_AIL_MODE_3] =3D { + .name =3D "ail-mode-3", + .description =3D "Alternate Interrupt Location (AIL) mode 3 suppor= t", + .index =3D SPAPR_CAP_AIL_MODE_3, + .get =3D spapr_cap_get_bool, + .set =3D spapr_cap_set_bool, + .type =3D "bool", + .apply =3D cap_ail_mode_3_apply, + }, }; =20 static SpaprCapabilities default_caps_with_cpu(SpaprMachineState *spapr, @@ -750,6 +786,7 @@ static SpaprCapabilities default_caps_with_cpu(SpaprMac= hineState *spapr, 0, spapr->max_compat_pvr)) { caps.caps[SPAPR_CAP_HTM] =3D SPAPR_CAP_OFF; caps.caps[SPAPR_CAP_CFPC] =3D SPAPR_CAP_BROKEN; + caps.caps[SPAPR_CAP_AIL_MODE_3] =3D SPAPR_CAP_OFF; } =20 if (!ppc_type_check_compat(cputype, CPU_POWERPC_LOGICAL_2_06_PLUS, diff --git a/hw/ppc/spapr_hcall.c b/hw/ppc/spapr_hcall.c index 1c102c8c0d..b904755575 100644 --- a/hw/ppc/spapr_hcall.c +++ b/hw/ppc/spapr_hcall.c @@ -817,30 +817,32 @@ static target_ulong h_set_mode_resource_le(PowerPCCPU= *cpu, } =20 static target_ulong h_set_mode_resource_addr_trans_mode(PowerPCCPU *cpu, + SpaprMachineState = *spapr, target_ulong mflag= s, target_ulong value= 1, target_ulong value= 2) { - PowerPCCPUClass *pcc =3D POWERPC_CPU_GET_CLASS(cpu); - - if (!(pcc->insns_flags2 & PPC2_ISA207S)) { - return H_P2; - } if (value1) { return H_P3; } + if (value2) { return H_P4; } =20 - if (mflags =3D=3D 1) { - /* AIL=3D1 is reserved in POWER8/POWER9/POWER10 */ + /* + * AIL-1 is not architected, and AIL-2 is not supported by QEMU spapr. + * It is supported for faithful emulation of bare metal systems, but f= or + * compatibility concerns we leave it out of the pseries machine. + */ + if (mflags !=3D 0 && mflags !=3D 3) { return H_UNSUPPORTED_FLAG; } =20 - if (mflags =3D=3D 2 && (pcc->insns_flags2 & PPC2_ISA310)) { - /* AIL=3D2 is reserved in POWER10 (ISA v3.1) */ - return H_UNSUPPORTED_FLAG; + if (mflags =3D=3D 3) { + if (!spapr_get_cap(spapr, SPAPR_CAP_AIL_MODE_3)) { + return H_UNSUPPORTED_FLAG; + } } =20 spapr_set_all_lpcrs(mflags << LPCR_AIL_SHIFT, LPCR_AIL); @@ -859,7 +861,7 @@ static target_ulong h_set_mode(PowerPCCPU *cpu, SpaprMa= chineState *spapr, ret =3D h_set_mode_resource_le(cpu, spapr, args[0], args[2], args[= 3]); break; case H_SET_MODE_RESOURCE_ADDR_TRANS_MODE: - ret =3D h_set_mode_resource_addr_trans_mode(cpu, args[0], + ret =3D h_set_mode_resource_addr_trans_mode(cpu, spapr, args[0], args[2], args[3]); break; } diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h index 5c8aabd444..bd5a6c4780 100644 --- a/include/hw/ppc/spapr.h +++ b/include/hw/ppc/spapr.h @@ -78,8 +78,10 @@ typedef enum { #define SPAPR_CAP_FWNMI 0x0A /* Support H_RPT_INVALIDATE */ #define SPAPR_CAP_RPT_INVALIDATE 0x0B +/* Support for AIL modes */ +#define SPAPR_CAP_AIL_MODE_3 0x0C /* Num Caps */ -#define SPAPR_CAP_NUM (SPAPR_CAP_RPT_INVALIDATE + 1) +#define SPAPR_CAP_NUM (SPAPR_CAP_AIL_MODE_3 + 1) =20 /* * Capability Values diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c index 336e663bc3..a7f2de9d10 100644 --- a/target/ppc/kvm.c +++ b/target/ppc/kvm.c @@ -88,6 +88,7 @@ static int cap_ppc_nested_kvm_hv; static int cap_large_decr; static int cap_fwnmi; static int cap_rpt_invalidate; +static int cap_ail_mode_3; =20 static uint32_t debug_inst_opcode; =20 @@ -152,6 +153,7 @@ int kvm_arch_init(MachineState *ms, KVMState *s) } =20 cap_rpt_invalidate =3D kvm_vm_check_extension(s, KVM_CAP_PPC_RPT_INVAL= IDATE); + cap_ail_mode_3 =3D kvm_vm_check_extension(s, KVM_CAP_PPC_AIL_MODE_3); kvm_ppc_register_host_cpu_type(); =20 return 0; @@ -2560,6 +2562,11 @@ int kvmppc_has_cap_rpt_invalidate(void) return cap_rpt_invalidate; } =20 +bool kvmppc_supports_ail_3(void) +{ + return cap_ail_mode_3; +} + PowerPCCPUClass *kvm_ppc_get_host_cpu_class(void) { uint32_t host_pvr =3D mfpvr(); diff --git a/target/ppc/kvm_ppc.h b/target/ppc/kvm_ppc.h index 5fd9753953..611debc3ce 100644 --- a/target/ppc/kvm_ppc.h +++ b/target/ppc/kvm_ppc.h @@ -76,6 +76,7 @@ int kvmppc_set_cap_nested_kvm_hv(int enable); int kvmppc_get_cap_large_decr(void); int kvmppc_enable_cap_large_decr(PowerPCCPU *cpu, int enable); int kvmppc_has_cap_rpt_invalidate(void); +bool kvmppc_supports_ail_3(void); int kvmppc_enable_hwrng(void); int kvmppc_put_books_sregs(PowerPCCPU *cpu); PowerPCCPUClass *kvm_ppc_get_host_cpu_class(void); @@ -396,6 +397,11 @@ static inline int kvmppc_has_cap_rpt_invalidate(void) return false; } =20 +static inline bool kvmppc_supports_ail_3(void) +{ + return false; +} + static inline int kvmppc_enable_hwrng(void) { return -1; --=20 2.40.1 From nobody Sat Feb 7 23:33:56 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1685292631; cv=none; d=zohomail.com; s=zohoarc; b=UsrKPfvfN9LXtSN/WH4HZ3P3/QiCrAD12FsW9UOSQLA6vmN7Av8Wh8twqR88FJVmz6Fwp3+ZJ5Cjh2tvhMYUBw7QePfLbKmV5dRA+9XRc8dEDftJXZV9RMD4v3+rOJrhKo1c9QtX8RhhlAu9OQ2zMzmEr/dydtUdFFEBN4YWXHQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685292631; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=bpYaRHDdhPCMmSwGgxX0nvTTRsD1eoJ1qxebdVyMKY4=; b=FHQ3hKnRwMbp8JDgdm6oOKq1Qh5BUSPvgcIHlEHj4qL7jOoCs67qCb1hn0xYbeXnR8EZnKWkDHJWtWfXJikzTSU5m1t9gkkIUXYSv/8aJPbzIbh6I+Xi+cUtS4x2gTNO7dNlf27YNkb+DXdX5ZG1pEFpyOHXpIg/Gh89GlaD5ok= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1685292631303779.5604623776735; Sun, 28 May 2023 09:50:31 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q3Jab-0000YV-GT; Sun, 28 May 2023 12:49:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q3JaZ-0000Xe-CV; Sun, 28 May 2023 12:49:51 -0400 Received: from mail-oi1-x22e.google.com ([2607:f8b0:4864:20::22e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1q3JaX-0003bC-US; Sun, 28 May 2023 12:49:51 -0400 Received: by mail-oi1-x22e.google.com with SMTP id 5614622812f47-3980c92d8d6so1713617b6e.0; Sun, 28 May 2023 09:49:47 -0700 (PDT) Received: from grind.. (200-162-225-121.static-corp.ajato.com.br. [200.162.225.121]) by smtp.gmail.com with ESMTPSA id w4-20020a4adec4000000b0054f85f67f31sm3378830oou.46.2023.05.28.09.49.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 May 2023 09:49:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1685292587; x=1687884587; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=bpYaRHDdhPCMmSwGgxX0nvTTRsD1eoJ1qxebdVyMKY4=; b=jwCTy1CzJ9y6+2CWzClKDkDwjKg9HC9puv0OsC0dc9CQHlscDB7wCZHoPAArZ61Yww sFadU65Nopy0d9FlvsRx+77xPT8MjHMSr/pNdRVbxoBjlWUCxgWU63FVMPg0ms5Y4fsA XzpNBMud5XMPJeqjiGCXwtwOVdFYpfW/mt5W7v2N5YtcsAS3rTTYTZk6keEQFRxeNrdF CzrouPyrBHMWVC9mzKzMdqEAnXUr+gPhqa7EASQdrhguTBGrlHjbwReE8Y2rOzhhvXbb 63HWoeX8mor4QFqhK/uMENXPoj7tfjQqBy2CZWEXbgba5DL+k18A4plCzqF9rsNSWXtp ciFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685292587; x=1687884587; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bpYaRHDdhPCMmSwGgxX0nvTTRsD1eoJ1qxebdVyMKY4=; b=BIo5qZqX5CjAKodxGixzcriA1616FQT9s233PcRrUN31Dc65HBRpxuu5AaMQCl+BFS RupwYtAp7SPGPRRSKx2iR7gwDllpVq8t6BZFWeUg9xEZDI5WAKZsoABofMpVZ6nz3dTz 8vsbGYpe7Iq6zFU87xGQCc4VuJWv0sqpOH5LReYEoK1ZctpFnPgvpsebjHtzBxxVKEBx YdjBXvNwN3Nhma2xsNuPDTo1Sw826KmK7M3HnuJisSET83NTIMd68y1sxD2nP9TDjnTI 55oTI8C5WG6vCHt2efeyaKr9wO4Bj6MLWNj/Pm9SIm+bIozPQ1i1tgsJv2hPgFCjlNCx 4/eg== X-Gm-Message-State: AC+VfDxjmXnodgywYAMUTp3+c10jKI4bHq+qPJW0yfc+qGWklRnoaPjR HIflaG2xgtQz7TuCZ18ZifK3OPR51ww= X-Google-Smtp-Source: ACHHUZ4dW3EbNVodpwHmLNYJbfCbh9EgV9Cygf8NvvNpvFHfyH5Cwjassp6XGh6Q2mkk80aX3SyEiQ== X-Received: by 2002:a05:6808:1b2c:b0:398:26c5:558a with SMTP id bx44-20020a0568081b2c00b0039826c5558amr5093076oib.46.1685292587132; Sun, 28 May 2023 09:49:47 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Bernhard Beschow Subject: [PULL 05/10] hw/ppc/prep: Fix wiring of PIC -> CPU interrupt Date: Sun, 28 May 2023 13:49:17 -0300 Message-Id: <20230528164922.20364-6-danielhb413@gmail.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230528164922.20364-1-danielhb413@gmail.com> References: <20230528164922.20364-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::22e; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x22e.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1685292633339100007 Content-Type: text/plain; charset="utf-8" From: Bernhard Beschow Commit cef2e7148e32 ("hw/isa/i82378: Remove intermediate IRQ forwarder") passes s->cpu_intr to i8259_init() in i82378_realize() directly. However, s- >cpu_intr isn't initialized yet since that happens after the south bridge's pci_realize_and_unref() in board code. Fix this by initializing s->cpu_intr before realizing the south bridge. Fixes: cef2e7148e32 ("hw/isa/i82378: Remove intermediate IRQ forwarder") Signed-off-by: Bernhard Beschow Reviewed-by: Daniel Henrique Barboza Message-Id: <20230304114043.121024-4-shentey@gmail.com> Signed-off-by: Daniel Henrique Barboza --- hw/ppc/prep.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hw/ppc/prep.c b/hw/ppc/prep.c index 4610abddbd..33bf232f8b 100644 --- a/hw/ppc/prep.c +++ b/hw/ppc/prep.c @@ -271,9 +271,11 @@ static void ibm_40p_init(MachineState *machine) } =20 /* PCI -> ISA bridge */ - i82378_dev =3D DEVICE(pci_create_simple(pci_bus, PCI_DEVFN(11, 0), "i8= 2378")); + i82378_dev =3D DEVICE(pci_new(PCI_DEVFN(11, 0), "i82378")); qdev_connect_gpio_out(i82378_dev, 0, qdev_get_gpio_in(DEVICE(cpu), PPC6xx_INPUT_INT)); + qdev_realize_and_unref(i82378_dev, BUS(pci_bus), &error_fatal); + sysbus_connect_irq(pcihost, 0, qdev_get_gpio_in(i82378_dev, 15)); isa_bus =3D ISA_BUS(qdev_get_child_bus(i82378_dev, "isa.0")); =20 --=20 2.40.1 From nobody Sat Feb 7 23:33:56 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1685292709; cv=none; d=zohomail.com; s=zohoarc; b=GLdC4Y2HseFfYWTJQ6QZMCVXQCdJaXxhtEWFHxFAPhl3b1RzhwbDZPWvNErC6QZdvIwra5RJy8niJ41vqPezgmxYaxE/5Zah3dwZ12As4eW+OJujHNo847jkm69uSJo/NF+44z5gzdxi6uAnCsgcKyOvjdUnnYmfJEABa7KBk2M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685292709; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=pzN1GHaGp5LFGpm9e56JgC+WWPnZBV+2t51s4e6Bl1Q=; b=kS+mQt7T5SE1Dh/ajvHJoJobH6OferwthD/ThvYXpUxAr3uXvMmNjqKsfM8aG9hZSDv3Kwl8tyy//oOFtKyrmZfDjidFb7v+M/o5A3AFb3a0hvI2GpPVNNuYtGG55KYTU5ZihOrXfA1KoHGedtVmQ8ALmwP+AGmKr1B+pAtK7N4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1685292709597128.29851702623898; Sun, 28 May 2023 09:51:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q3Jaf-0000ZA-76; Sun, 28 May 2023 12:49:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q3Jad-0000Yp-RM; Sun, 28 May 2023 12:49:55 -0400 Received: from mail-oo1-xc2c.google.com ([2607:f8b0:4864:20::c2c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1q3JaZ-0003bl-6w; Sun, 28 May 2023 12:49:55 -0400 Received: by mail-oo1-xc2c.google.com with SMTP id 006d021491bc7-557c7ffea48so902372eaf.1; Sun, 28 May 2023 09:49:50 -0700 (PDT) Received: from grind.. (200-162-225-121.static-corp.ajato.com.br. [200.162.225.121]) by smtp.gmail.com with ESMTPSA id w4-20020a4adec4000000b0054f85f67f31sm3378830oou.46.2023.05.28.09.49.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 May 2023 09:49:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1685292589; x=1687884589; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=pzN1GHaGp5LFGpm9e56JgC+WWPnZBV+2t51s4e6Bl1Q=; b=okkJ0wLWcr9f/aLPcoQXlIf4ij2Edr3nHfHo8znz/ZM1yPvw4erpxjsTVydr/XAWF+ EHYgXM7tfvh6MrN20CPUEiulFXaiaWud0yOn24S8rJFKCSJCtbQnf2ihwXzGYX9qcSoD 6JtpU92srHgfFnz76gmEnob9nRH2Zn40bIPkQZpwKW3ZBd8dn60BTYHw0nYPGOnDUhtB G06IYAIb8Ss5eCETIKrD6LPpky8g8FwOKMYkGQIOQdMfX5SphW55vxOxZSofqbJgMcq6 tsP7mdo3+ao3nVhPfdVoKL2002C6OgEuGdN2JklJ6cp94zCojAO2P7c2g/Z8W5cN1nEw f9oA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685292589; x=1687884589; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=pzN1GHaGp5LFGpm9e56JgC+WWPnZBV+2t51s4e6Bl1Q=; b=JK0VdI9MG3VOLIsmtbBXj/f6PWMIky/AA6bUgFNDVXojd9tuYDJVf9/p63yoIdVO6c n3W52UNOV4djsrjYapN80/BnzU+/jOsIQG1Esiu8vs/5iYkPEeIEypSc2Vh7NHDDYfM6 +1XqyEpBXhXQPaNCVV+Mx3qinj0mwLxgLcNLBETck4dXQlk1ySzV0tn4fwkHIwzlvQ0v Bh0xL4LYxRPGpirpzFZpr3b/WnxNQsVlz54b5WHeiExRC7K+hCDSLWxPwE+260h7MvlA on4kdpB40LKjjkjfH/7P9dfDk6vSlULkP25WP3GxkAxsRkx6Zv6rfBJ6s/VdlbSSWQly NV2w== X-Gm-Message-State: AC+VfDzwAlzzE+ct6MIV4YZh7Ph9geBSJJzGRqab7HBmCs6o991ZtcoC 5lOzLSUFdgDmFGIXrES6/Hn1I+ht//k= X-Google-Smtp-Source: ACHHUZ5Fvv14SAC7GsknZmrh71JwIDKFMuB0QIoHCov7qq+SgTzY00Qdx8OCxZBo8tQkGC6YMFd03g== X-Received: by 2002:a4a:4146:0:b0:547:4f15:6147 with SMTP id x67-20020a4a4146000000b005474f156147mr2177894ooa.0.1685292589406; Sun, 28 May 2023 09:49:49 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Nicholas Piggin Subject: [PULL 06/10] target/ppc: Use SMT4 small core chip type in POWER9/10 PVRs Date: Sun, 28 May 2023 13:49:18 -0300 Message-Id: <20230528164922.20364-7-danielhb413@gmail.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230528164922.20364-1-danielhb413@gmail.com> References: <20230528164922.20364-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::c2c; envelope-from=danielhb413@gmail.com; helo=mail-oo1-xc2c.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1685292711751100003 Content-Type: text/plain; charset="utf-8" From: Nicholas Piggin QEMU's PVR value for POWER9 DD2.0 has chip type 1, which is the SMT4 "small core" type that OpenPOWER processors use. QEMU's PVR for all other POWER9/10 have chip type 0, which "enterprise" systems use. The difference does not really matter to QEMU (because it does not care about SMT mode in the target), but for consistency all PVRs should use the same chip type. We'll go with the SMT4 OpenPOWER type. Signed-off-by: Nicholas Piggin Reviewed-by: Daniel Henrique Barboza Message-Id: <20230515160131.394562-1-npiggin@gmail.com> Signed-off-by: Daniel Henrique Barboza --- target/ppc/cpu-models.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/target/ppc/cpu-models.h b/target/ppc/cpu-models.h index 1326493a9a..a77e036b3a 100644 --- a/target/ppc/cpu-models.h +++ b/target/ppc/cpu-models.h @@ -348,11 +348,11 @@ enum { CPU_POWERPC_POWER8NVL_BASE =3D 0x004C0000, CPU_POWERPC_POWER8NVL_v10 =3D 0x004C0100, CPU_POWERPC_POWER9_BASE =3D 0x004E0000, - CPU_POWERPC_POWER9_DD1 =3D 0x004E0100, + CPU_POWERPC_POWER9_DD1 =3D 0x004E1100, CPU_POWERPC_POWER9_DD20 =3D 0x004E1200, CPU_POWERPC_POWER10_BASE =3D 0x00800000, - CPU_POWERPC_POWER10_DD1 =3D 0x00800100, - CPU_POWERPC_POWER10_DD20 =3D 0x00800200, + CPU_POWERPC_POWER10_DD1 =3D 0x00801100, + CPU_POWERPC_POWER10_DD20 =3D 0x00801200, CPU_POWERPC_970_v22 =3D 0x00390202, CPU_POWERPC_970FX_v10 =3D 0x00391100, CPU_POWERPC_970FX_v20 =3D 0x003C0200, --=20 2.40.1 From nobody Sat Feb 7 23:33:56 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1685292640; cv=none; d=zohomail.com; s=zohoarc; b=Q/zjNrb9oFnRNrnhqtuyKvO2t6kt2hzoTatxydhz0x5FljkDKtzYQGbo3nRpxbQ/sS4E5T3cyVi+gv+7kYc3oo05Jk0SOhD6D9v9M2IE9z9pFXVnuKd/bBl8da2RyuZyny3ZR+uTT2To89cpyKMI9yqvXkauDJ7vgZ0DRcoXVkc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685292640; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=yl6x8lKukdyzopG2akGEIx/P7NrVHI+Tu1U5FAgEB2c=; b=QICl3t8MGijEnJ0hQoue3gh9cog5K4H8S6uXih+gk4TI1oefyrS3Yd+SxpkQQpE0pwkq2RG1Cn7CuXAw+pZpFzVZho7OBUg5qvbI2hKl8UKtlqk/R+CjD9ndpGwqxUXn79OTWMmXq0XQgBk1Dn6+tUTH0ZtJR8RxTkoeYt6f/ns= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1685292640492109.25040706063555; Sun, 28 May 2023 09:50:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q3Jae-0000Z3-VA; Sun, 28 May 2023 12:49:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q3Jad-0000Yc-BE; Sun, 28 May 2023 12:49:55 -0400 Received: from mail-oi1-x22c.google.com ([2607:f8b0:4864:20::22c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1q3Jab-0003cX-Td; Sun, 28 May 2023 12:49:55 -0400 Received: by mail-oi1-x22c.google.com with SMTP id 5614622812f47-38ea3f8e413so1436133b6e.2; Sun, 28 May 2023 09:49:53 -0700 (PDT) Received: from grind.. (200-162-225-121.static-corp.ajato.com.br. [200.162.225.121]) by smtp.gmail.com with ESMTPSA id w4-20020a4adec4000000b0054f85f67f31sm3378830oou.46.2023.05.28.09.49.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 May 2023 09:49:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1685292592; x=1687884592; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=yl6x8lKukdyzopG2akGEIx/P7NrVHI+Tu1U5FAgEB2c=; b=sxyxHU3VyR0GUqcXzqKp4wrTb9Wp7X4otJ0nYTKAsZ2evHtjgOYffdNHcDfYmIKMzc qvUma1ORSFG2ME+kunWq21tnUic1n/tbVNyk4dI/IW1foMubhDHivS6HpqZOHtgra8bq UJnAGakbIBN36g4Dtc9AQ/TAlH3SyQ+ucxkvBYYLUmazQ4DS0w7q722Xrirw1zTVwT06 xPnjrdIk3MKZ8mU0Mx6T4kFT13qOFTC8zK2/voyBuJbm40qqIpZH99A5aZ/pNBTAsVDu 0c+uwrLTgin24hWJBT0T1ixEyCFnq438Vqo5RXUlrOkGR9frAc/962LjVEn2s6uMs2e9 x93A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685292592; x=1687884592; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=yl6x8lKukdyzopG2akGEIx/P7NrVHI+Tu1U5FAgEB2c=; b=Xe3AREOWS4owcY/t0YilxmRi0vdz9NwA8B3Kga4j9S3vnHNi3mj7sBQnvrklK8lqFB TJmgKGdAKWe+RsjwIT8Gyd9G0LlO+wXUvu4AS40GyWWTzOmRUDx2NWGrPah5QUaKfOE1 02ZlkMwFZYLzsGxjAb/HQrYRuNx3B9reg2086Yn9wI39bodSbctrNFiQa03zAGwObMl0 leIm/VuRKNE6/W5otyD9IRsuDq3wKgwt1ydejr1FtcHs8BY02cvhzWIZUmAGEP3iXJhN DXN4ybAxvzsq240UhlbN8GmTaOVvFijCdtSNa2dYoTdrsG2MNY//GkJAbmeMYxCm+r/J 3BrQ== X-Gm-Message-State: AC+VfDxM15eyeO4ZupTjNgp/aYjFL0AmKCJeqGHB28KASuXJWhrxzTcr pPrKhTaCbUunL/X7neVagoIkkxo0mzE= X-Google-Smtp-Source: ACHHUZ59RxgQ4PgL4GuQwCZNAIFtj1nlVKqjvk9iT6uvKmAipEeY4cGNsGLNDuoAgR5nZJlMsCExHA== X-Received: by 2002:a05:6808:287:b0:398:9ee4:1dac with SMTP id z7-20020a056808028700b003989ee41dacmr4151425oic.32.1685292592385; Sun, 28 May 2023 09:49:52 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Alexander Bulekov , Thomas Huth , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Frederic Barrat Subject: [PULL 07/10] pnv_lpc: disable reentrancy detection for lpc-hc Date: Sun, 28 May 2023 13:49:19 -0300 Message-Id: <20230528164922.20364-8-danielhb413@gmail.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230528164922.20364-1-danielhb413@gmail.com> References: <20230528164922.20364-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::22c; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x22c.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1685292641061100001 From: Alexander Bulekov As lpc-hc is designed for re-entrant calls from xscom, mark it re-entrancy safe. Reported-by: Thomas Huth Signed-off-by: Alexander Bulekov [clg: mark opb_master_regs as re-entrancy safe also ] Signed-off-by: C=C3=A9dric Le Goater Reviewed-by: Frederic Barrat Tested-by: Thomas Huth Message-Id: <20230526073850.2772197-1-clg@kaod.org> Signed-off-by: Daniel Henrique Barboza --- hw/ppc/pnv_lpc.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hw/ppc/pnv_lpc.c b/hw/ppc/pnv_lpc.c index 01f44c19eb..605d390861 100644 --- a/hw/ppc/pnv_lpc.c +++ b/hw/ppc/pnv_lpc.c @@ -734,10 +734,13 @@ static void pnv_lpc_realize(DeviceState *dev, Error *= *errp) /* Create MMIO regions for LPC HC and OPB registers */ memory_region_init_io(&lpc->opb_master_regs, OBJECT(dev), &opb_master_= ops, lpc, "lpc-opb-master", LPC_OPB_REGS_OPB_SIZE); + lpc->opb_master_regs.disable_reentrancy_guard =3D true; memory_region_add_subregion(&lpc->opb_mr, LPC_OPB_REGS_OPB_ADDR, &lpc->opb_master_regs); memory_region_init_io(&lpc->lpc_hc_regs, OBJECT(dev), &lpc_hc_ops, lpc, "lpc-hc", LPC_HC_REGS_OPB_SIZE); + /* xscom writes to lpc-hc. As such mark lpc-hc re-entrancy safe */ + lpc->lpc_hc_regs.disable_reentrancy_guard =3D true; memory_region_add_subregion(&lpc->opb_mr, LPC_HC_REGS_OPB_ADDR, &lpc->lpc_hc_regs); =20 --=20 2.40.1 From nobody Sat Feb 7 23:33:56 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1685292646; cv=none; d=zohomail.com; s=zohoarc; b=XgMhAnGjMUDoDNSWSpwLob2AvF54OfcP65cdZFl1k3h2FUL89JGQWyKAMMFiyAaXLOJfW1Av27Puo1fEdBWjB2TPGcqw4XN5mdeY5xE7nLClmiFa7yKDmHDowic/lk3lJt7sYjbPw8O1RnH3kE83RWAhisPz7vG2Umm/iXzkP7Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685292646; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ALaWyhMssmN731ytAfkeS5ozGxm5FcyKNJFkbSvsWgg=; b=bR0NGPFLXGTdiiAxwGFCfchq8JG7QBYuq1jau8I0JGXQDMndXKYnDhBmjL83OR7HtQGzrKQBmoJB7bowPZlYatp46ccQIpMo8FBa7gWXi+1CPNElOCgEx9oq2hLQF1FypHvB5h0qC54zX1tBn6eMX1bLkG4OzbNfBrTlYmUMSjM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1685292646809434.6199165972437; Sun, 28 May 2023 09:50:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q3Jah-0000aQ-Rp; Sun, 28 May 2023 12:49:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q3Jag-0000aA-6U; Sun, 28 May 2023 12:49:58 -0400 Received: from mail-oi1-x22e.google.com ([2607:f8b0:4864:20::22e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1q3Jae-0003cm-JU; Sun, 28 May 2023 12:49:57 -0400 Received: by mail-oi1-x22e.google.com with SMTP id 5614622812f47-3943fdc59f9so1588553b6e.0; Sun, 28 May 2023 09:49:55 -0700 (PDT) Received: from grind.. (200-162-225-121.static-corp.ajato.com.br. [200.162.225.121]) by smtp.gmail.com with ESMTPSA id w4-20020a4adec4000000b0054f85f67f31sm3378830oou.46.2023.05.28.09.49.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 May 2023 09:49:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1685292595; x=1687884595; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ALaWyhMssmN731ytAfkeS5ozGxm5FcyKNJFkbSvsWgg=; b=hK8ZDRU3Z+l4oATu9o0LMnxN8Kmt6g8x6X+FvOKiF57lCNyEZwzZrz2YnQBFbmBp9s p377q9aURz8M8/0gBkrbTxH1upO7hj/w3SgRj25cOcVggKI9Qk2KnzAA5W2r5A6XOKuH 0Waorfuw17hqJF2BmMMTIY5R8SmlHXTAYBjcnrvkis2KsmNd/IpK3/7P6C9zAgKdRael UWlrkzB4q4Qy6McQB2EVp+FqLuu4rAM21iYYcPEgZVPARn6/6stzUmjnp2i+d4dc844d S4kFYndtIYHklQWK1bFawIAtHnGn4JOfjWX7ZpXu+Q4wl6bReh6iB14pADku0NnIJRL5 HiiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685292595; x=1687884595; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ALaWyhMssmN731ytAfkeS5ozGxm5FcyKNJFkbSvsWgg=; b=jQqXICaT42L4h1a0uEMq6rhp26B9RqD01NjDQEBviiKfDg3hKz01/kaGHOW4f7UcWL naiSKqeudlhGJsW268/p/xrfWw+RluU1iHX15sle1n/q8Lg5mnPWpVmVBGm53wX9TkU1 WpeB2wR9q79p31tdxeh8PxVzyzgIkHJ59kB5fqJxFG0vC3htTg/NkMhLcACHeaSPYmEW vktZlzlQodkDL+dIDbM2h9kGkujfpUY9s8YD2kLVjXQSspKCvc41vwaWKU1P/Ck57O8a lIjhfjpsDIJA9tWuWgJBL+kUUIO+ENL7cLk1Sr6NbuHjxKC2+HqhGCD5UO95epwOhOf8 AH6A== X-Gm-Message-State: AC+VfDwbcGh61yf0sGSEcyh+6fguV4ieaggvNkONVXWPh0Bl5UBw3ZG/ YXVrVEs3UANAOKBVDMKetQJM/2x0jlI= X-Google-Smtp-Source: ACHHUZ43O1AXnJz8tpCmxEizgYw/YaHyrBLqwvNC2xqXw+/eWlzYLsvfomdIHrJ1kvV/GVvBDjnq8Q== X-Received: by 2002:a05:6808:2127:b0:399:b0ee:de1 with SMTP id r39-20020a056808212700b00399b0ee0de1mr4347646oiw.49.1685292594859; Sun, 28 May 2023 09:49:54 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [PULL 08/10] target/ppc: Merge COMPUTE_CLASS and COMPUTE_FPRF Date: Sun, 28 May 2023 13:49:20 -0300 Message-Id: <20230528164922.20364-9-danielhb413@gmail.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230528164922.20364-1-danielhb413@gmail.com> References: <20230528164922.20364-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::22e; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x22e.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1685292648953100007 From: Richard Henderson Instead of computing an artificial "class" bitmask then converting that to the fprf value, compute the final value from the start. Reorder the tests to check the most likely cases first. Signed-off-by: Richard Henderson Tested-by: Alex Benn=C3=A9e Reviewed-by: Alex Benn=C3=A9e Message-Id: <20230523202507.688859-1-richard.henderson@linaro.org> Signed-off-by: Daniel Henrique Barboza --- target/ppc/fpu_helper.c | 78 ++++++++++++----------------------------- 1 file changed, 22 insertions(+), 56 deletions(-) diff --git a/target/ppc/fpu_helper.c b/target/ppc/fpu_helper.c index a66e16c212..03150a0f10 100644 --- a/target/ppc/fpu_helper.c +++ b/target/ppc/fpu_helper.c @@ -141,62 +141,28 @@ static inline int ppc_float64_get_unbiased_exp(float6= 4 f) return ((f >> 52) & 0x7FF) - 1023; } =20 -/* Classify a floating-point number. */ -enum { - is_normal =3D 1, - is_zero =3D 2, - is_denormal =3D 4, - is_inf =3D 8, - is_qnan =3D 16, - is_snan =3D 32, - is_neg =3D 64, -}; - -#define COMPUTE_CLASS(tp) \ -static int tp##_classify(tp arg) \ -{ \ - int ret =3D tp##_is_neg(arg) * is_neg; \ - if (unlikely(tp##_is_any_nan(arg))) { \ - float_status dummy =3D { }; /* snan_bit_is_one =3D 0 */ \ - ret |=3D (tp##_is_signaling_nan(arg, &dummy) \ - ? is_snan : is_qnan); \ - } else if (unlikely(tp##_is_infinity(arg))) { \ - ret |=3D is_inf; \ - } else if (tp##_is_zero(arg)) { \ - ret |=3D is_zero; \ - } else if (tp##_is_zero_or_denormal(arg)) { \ - ret |=3D is_denormal; \ - } else { \ - ret |=3D is_normal; \ - } \ - return ret; \ -} - -COMPUTE_CLASS(float16) -COMPUTE_CLASS(float32) -COMPUTE_CLASS(float64) -COMPUTE_CLASS(float128) - -static void set_fprf_from_class(CPUPPCState *env, int class) -{ - static const uint8_t fprf[6][2] =3D { - { 0x04, 0x08 }, /* normalized */ - { 0x02, 0x12 }, /* zero */ - { 0x14, 0x18 }, /* denormalized */ - { 0x05, 0x09 }, /* infinity */ - { 0x11, 0x11 }, /* qnan */ - { 0x00, 0x00 }, /* snan -- flags are undefined */ - }; - bool isneg =3D class & is_neg; - - env->fpscr &=3D ~FP_FPRF; - env->fpscr |=3D fprf[ctz32(class)][isneg] << FPSCR_FPRF; -} - -#define COMPUTE_FPRF(tp) \ -void helper_compute_fprf_##tp(CPUPPCState *env, tp arg) \ -{ \ - set_fprf_from_class(env, tp##_classify(arg)); \ +#define COMPUTE_FPRF(tp) \ +void helper_compute_fprf_##tp(CPUPPCState *env, tp arg) \ +{ \ + bool neg =3D tp##_is_neg(arg); \ + target_ulong fprf; \ + if (likely(tp##_is_normal(arg))) { \ + fprf =3D neg ? 0x08 << FPSCR_FPRF : 0x04 << FPSCR_FPRF; \ + } else if (tp##_is_zero(arg)) { \ + fprf =3D neg ? 0x12 << FPSCR_FPRF : 0x02 << FPSCR_FPRF; \ + } else if (tp##_is_zero_or_denormal(arg)) { \ + fprf =3D neg ? 0x18 << FPSCR_FPRF : 0x14 << FPSCR_FPRF; \ + } else if (tp##_is_infinity(arg)) { \ + fprf =3D neg ? 0x09 << FPSCR_FPRF : 0x05 << FPSCR_FPRF; \ + } else { \ + float_status dummy =3D { }; /* snan_bit_is_one =3D 0 */ \ + if (tp##_is_signaling_nan(arg, &dummy)) { \ + fprf =3D 0x00 << FPSCR_FPRF; \ + } else { \ + fprf =3D 0x11 << FPSCR_FPRF; \ + } \ + } \ + env->fpscr =3D (env->fpscr & ~FP_FPRF) | fprf; \ } =20 COMPUTE_FPRF(float16) --=20 2.40.1 From nobody Sat Feb 7 23:33:56 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1685292675; cv=none; d=zohomail.com; s=zohoarc; b=F6jRavRcWyNJHFkZdaD1DOLBWMHSifxkqfvK+EOiawK9rSEDRCGHi0vAm1iBl5BDpWiyMnejxXjJTc7icJV7j8koxyVYIrNL3UQMzdHQAUiyMZY8P8+SIi9rXUvfE5LGHnR5yc1Z0SqVU8YASNFpOes354x3R/P1PaTcN33KnF0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685292675; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=WErItUQvNqASkxkWadEcwLrYMTb/Qj+s/UWP9bWp6nk=; b=EAOTjehTWUxNNDffqAbKUbmmeyMgYC2OLUWQhJGGsf+AbwvSw4Cg2MDwxQ1ZrZ3rprZpAyUys1p+w9CpOosr/kEK6x2svNxx3Dj/tEBf22epzvpNwa7ZuSylgZYVL5HgwHY4Y/MqtWyPH16oSARYQZVzI/j6HKVTxRkrOU4MN+A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1685292675325123.0955195401234; Sun, 28 May 2023 09:51:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q3Jam-0000bs-UK; Sun, 28 May 2023 12:50:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q3Jal-0000bB-FE; Sun, 28 May 2023 12:50:03 -0400 Received: from mail-oi1-x230.google.com ([2607:f8b0:4864:20::230]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1q3Jah-0003dC-I4; Sun, 28 May 2023 12:50:03 -0400 Received: by mail-oi1-x230.google.com with SMTP id 5614622812f47-38ede2e0e69so1572585b6e.2; Sun, 28 May 2023 09:49:58 -0700 (PDT) Received: from grind.. (200-162-225-121.static-corp.ajato.com.br. [200.162.225.121]) by smtp.gmail.com with ESMTPSA id w4-20020a4adec4000000b0054f85f67f31sm3378830oou.46.2023.05.28.09.49.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 May 2023 09:49:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1685292597; x=1687884597; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=WErItUQvNqASkxkWadEcwLrYMTb/Qj+s/UWP9bWp6nk=; b=GfDwjA6MeeOdmDyDxS2RAX95Gggmew8mdi0mE4Odm9jnD4Nkp8dqiBxSHETmw98Da1 WfX56m5D/mRpMv2E08W7cL8EomQkCOtxjSTjmIQY1Pe2APqyzjxyrFTV/aHliYPxW3ok TW7yEknxVsE24jgFPT5cArFO6vVQzgeBy0xpPBijSH0h64WbqaVa3U+08/4dMHFQAtwf 5uG3Ql30xIT6RWM16XiVu8ce4VyBFrZ7Zu1H2LnvBSXyyfBR4/ZB5kRjmyCvDCfWb2BN rnYNnnPAw0ZulN3g8b6b0/jNyS+9yWymh9riEpz6iKOHrEPMvgp8jNUPRDZdPpfp/5Js 1iXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685292597; x=1687884597; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WErItUQvNqASkxkWadEcwLrYMTb/Qj+s/UWP9bWp6nk=; b=QEVvXGw9BarupYuLhFS6TY7cOrzGMbEP1dUhJuVOIAaQMYDGoAJt+NpKGeNiGjgmjF ugCTF5mKlyBmAuMEBeV65gNJ27TeNoTlJlvBqjOGn79+oGL0C9aHr+PF1rIddi+nUB3M P2r2bwk+FRwhTD8FJ5gN0dkOP+lhjeeO2T35hcnBm+tUrWvDd6hSpa712hZVjG5PmvEC yXRX5Sih1fca0LeqVxDEtgNZ0KF/Ht4B7N2680iQ/bICH/diH1EBV0oFHfSNru5+hCLE ANfzunLiuOK16eZF2n54EPsYdE3lb5r3qyKFEeXWf6FtpI6DesDX3pyZfMfcq9GZU89X eAXw== X-Gm-Message-State: AC+VfDwyvBCFkraRnh401DTnGcGXW9EL3KLytiX+BOMjN5WnJMxacKF7 Z9boH+nLoUwtq8YS8v/Yc8HbstCkRfA= X-Google-Smtp-Source: ACHHUZ5k3mgGSxBTZu6s+4ntsFDhvnAgartqDKyHCQCbUVVZgLBSthRkwC+sRQBKdakwd8cUCsr6Uw== X-Received: by 2002:a05:6808:2219:b0:39a:1940:8184 with SMTP id bd25-20020a056808221900b0039a19408184mr672074oib.31.1685292597598; Sun, 28 May 2023 09:49:57 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Nicholas Piggin , Frederic Barrat , Harsh Prateek Bora Subject: [PULL 09/10] target/ppc: Add POWER9 DD2.2 model Date: Sun, 28 May 2023 13:49:21 -0300 Message-Id: <20230528164922.20364-10-danielhb413@gmail.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230528164922.20364-1-danielhb413@gmail.com> References: <20230528164922.20364-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::230; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x230.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1685292677042100003 Content-Type: text/plain; charset="utf-8" From: Nicholas Piggin POWER9 DD2.1 and earlier had significant limitations when running KVM, including lack of "mixed mode" MMU support (ability to run HPT and RPT mode on threads of the same core), and a translation prefetch issue which is worked around by disabling "AIL" mode for the guest. These processors are not widely available, and it's difficult to deal with all these quirks in qemu +/- KVM, so create a POWER9 DD2.2 CPU and make it the default POWER9 CPU. Signed-off-by: Nicholas Piggin Reviewed-by: Frederic Barrat Reviewed-by: Harsh Prateek Bora Message-Id: <20230515160201.394587-1-npiggin@gmail.com> Signed-off-by: Daniel Henrique Barboza --- hw/ppc/pnv.c | 2 +- hw/ppc/pnv_core.c | 2 +- hw/ppc/spapr.c | 2 +- hw/ppc/spapr_cpu_core.c | 1 + include/hw/ppc/pnv.h | 2 +- target/ppc/cpu-models.c | 4 +++- target/ppc/cpu-models.h | 1 + target/ppc/cpu_init.c | 21 +++++++++++++++++++-- tests/qtest/device-plug-test.c | 4 ++-- 9 files changed, 30 insertions(+), 9 deletions(-) diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c index 11cb48af2f..590fc64b32 100644 --- a/hw/ppc/pnv.c +++ b/hw/ppc/pnv.c @@ -2171,7 +2171,7 @@ static void pnv_machine_power9_class_init(ObjectClass= *oc, void *data) }; =20 mc->desc =3D "IBM PowerNV (Non-Virtualized) POWER9"; - mc->default_cpu_type =3D POWERPC_CPU_TYPE_NAME("power9_v2.0"); + mc->default_cpu_type =3D POWERPC_CPU_TYPE_NAME("power9_v2.2"); compat_props_add(mc->compat_props, phb_compat, G_N_ELEMENTS(phb_compat= )); =20 xfc->match_nvt =3D pnv_match_nvt; diff --git a/hw/ppc/pnv_core.c b/hw/ppc/pnv_core.c index 410f31bdf8..0bc3ad41c8 100644 --- a/hw/ppc/pnv_core.c +++ b/hw/ppc/pnv_core.c @@ -348,7 +348,7 @@ static const TypeInfo pnv_core_infos[] =3D { DEFINE_PNV_CORE_TYPE(power8, "power8e_v2.1"), DEFINE_PNV_CORE_TYPE(power8, "power8_v2.0"), DEFINE_PNV_CORE_TYPE(power8, "power8nvl_v1.0"), - DEFINE_PNV_CORE_TYPE(power9, "power9_v2.0"), + DEFINE_PNV_CORE_TYPE(power9, "power9_v2.2"), DEFINE_PNV_CORE_TYPE(power10, "power10_v2.0"), }; =20 diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index b623e23d6c..dcb7f1c70a 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4631,7 +4631,7 @@ static void spapr_machine_class_init(ObjectClass *oc,= void *data) =20 smc->dr_lmb_enabled =3D true; smc->update_dt_enabled =3D true; - mc->default_cpu_type =3D POWERPC_CPU_TYPE_NAME("power9_v2.0"); + mc->default_cpu_type =3D POWERPC_CPU_TYPE_NAME("power9_v2.2"); mc->has_hotpluggable_cpus =3D true; mc->nvdimm_supported =3D true; smc->resize_hpt_default =3D SPAPR_RESIZE_HPT_ENABLED; diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c index 8a4861f45a..9b88dd549a 100644 --- a/hw/ppc/spapr_cpu_core.c +++ b/hw/ppc/spapr_cpu_core.c @@ -390,6 +390,7 @@ static const TypeInfo spapr_cpu_core_type_infos[] =3D { DEFINE_SPAPR_CPU_CORE_TYPE("power8nvl_v1.0"), DEFINE_SPAPR_CPU_CORE_TYPE("power9_v1.0"), DEFINE_SPAPR_CPU_CORE_TYPE("power9_v2.0"), + DEFINE_SPAPR_CPU_CORE_TYPE("power9_v2.2"), DEFINE_SPAPR_CPU_CORE_TYPE("power10_v1.0"), DEFINE_SPAPR_CPU_CORE_TYPE("power10_v2.0"), #ifdef CONFIG_KVM diff --git a/include/hw/ppc/pnv.h b/include/hw/ppc/pnv.h index 409f3bf763..7e5fef7c43 100644 --- a/include/hw/ppc/pnv.h +++ b/include/hw/ppc/pnv.h @@ -48,7 +48,7 @@ DECLARE_INSTANCE_CHECKER(PnvChip, PNV_CHIP_POWER8, DECLARE_INSTANCE_CHECKER(PnvChip, PNV_CHIP_POWER8NVL, TYPE_PNV_CHIP_POWER8NVL) =20 -#define TYPE_PNV_CHIP_POWER9 PNV_CHIP_TYPE_NAME("power9_v2.0") +#define TYPE_PNV_CHIP_POWER9 PNV_CHIP_TYPE_NAME("power9_v2.2") DECLARE_INSTANCE_CHECKER(PnvChip, PNV_CHIP_POWER9, TYPE_PNV_CHIP_POWER9) =20 diff --git a/target/ppc/cpu-models.c b/target/ppc/cpu-models.c index 912b037c63..7dbb47de64 100644 --- a/target/ppc/cpu-models.c +++ b/target/ppc/cpu-models.c @@ -732,6 +732,8 @@ "POWER9 v1.0") POWERPC_DEF("power9_v2.0", CPU_POWERPC_POWER9_DD20, POWER= 9, "POWER9 v2.0") + POWERPC_DEF("power9_v2.2", CPU_POWERPC_POWER9_DD22, POWER= 9, + "POWER9 v2.2") POWERPC_DEF("power10_v1.0", CPU_POWERPC_POWER10_DD1, POWER= 10, "POWER10 v1.0") POWERPC_DEF("power10_v2.0", CPU_POWERPC_POWER10_DD20, POWER= 10, @@ -907,7 +909,7 @@ PowerPCCPUAlias ppc_cpu_aliases[] =3D { { "power8e", "power8e_v2.1" }, { "power8", "power8_v2.0" }, { "power8nvl", "power8nvl_v1.0" }, - { "power9", "power9_v2.0" }, + { "power9", "power9_v2.2" }, { "power10", "power10_v2.0" }, #endif =20 diff --git a/target/ppc/cpu-models.h b/target/ppc/cpu-models.h index a77e036b3a..572b5e553a 100644 --- a/target/ppc/cpu-models.h +++ b/target/ppc/cpu-models.h @@ -350,6 +350,7 @@ enum { CPU_POWERPC_POWER9_BASE =3D 0x004E0000, CPU_POWERPC_POWER9_DD1 =3D 0x004E1100, CPU_POWERPC_POWER9_DD20 =3D 0x004E1200, + CPU_POWERPC_POWER9_DD22 =3D 0x004E1202, CPU_POWERPC_POWER10_BASE =3D 0x00800000, CPU_POWERPC_POWER10_DD1 =3D 0x00801100, CPU_POWERPC_POWER10_DD20 =3D 0x00801200, diff --git a/target/ppc/cpu_init.c b/target/ppc/cpu_init.c index 5aa0b3f0f1..05bf73296b 100644 --- a/target/ppc/cpu_init.c +++ b/target/ppc/cpu_init.c @@ -6284,9 +6284,26 @@ static bool ppc_pvr_match_power9(PowerPCCPUClass *pc= c, uint32_t pvr, bool best) return false; } =20 - if ((pvr & 0x0f00) =3D=3D (pcc->pvr & 0x0f00)) { - /* Major DD version matches to power9_v1.0 and power9_v2.0 */ + if ((pvr & 0x0f00) !=3D (pcc->pvr & 0x0f00)) { + /* Major DD version does not match */ + return false; + } + + if ((pvr & 0x0f00) =3D=3D 0x100) { + /* DD1.x always matches power9_v1.0 */ return true; + } else if ((pvr & 0x0f00) =3D=3D 0x200) { + if ((pvr & 0xf) < 2) { + /* DD2.0, DD2.1 match power9_v2.0 */ + if ((pcc->pvr & 0xf) =3D=3D 0) { + return true; + } + } else { + /* DD2.2, DD2.3 match power9_v2.2 */ + if ((pcc->pvr & 0xf) =3D=3D 2) { + return true; + } + } } =20 return false; diff --git a/tests/qtest/device-plug-test.c b/tests/qtest/device-plug-test.c index abd544b70c..c6f33153eb 100644 --- a/tests/qtest/device-plug-test.c +++ b/tests/qtest/device-plug-test.c @@ -175,8 +175,8 @@ static void test_spapr_cpu_unplug_request(void) { QTestState *qtest; =20 - qtest =3D qtest_initf("-cpu power9_v2.0 -smp 1,maxcpus=3D2 " - "-device power9_v2.0-spapr-cpu-core,core-id=3D1,id= =3Ddev0"); + qtest =3D qtest_initf("-cpu power9_v2.2 -smp 1,maxcpus=3D2 " + "-device power9_v2.2-spapr-cpu-core,core-id=3D1,id= =3Ddev0"); =20 /* similar to test_pci_unplug_request */ process_device_remove(qtest, "dev0"); --=20 2.40.1 From nobody Sat Feb 7 23:33:56 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1685292699; cv=none; d=zohomail.com; s=zohoarc; b=JJQtq0bhZ4xF1Qgy8LyypqV6pc98xMh16DflTB4u/MsPk0Vd6z3mzhhSX9uq/ykWYyiFz5L5eUtMTcyIdDr8qS8ULEMxzE8rO72PGspPJ5yx0yuOAxALZn4GgNy2mCC9cXv8w2x7xaG3OJ8rSDMBWYzAxcYPZuyZNTBM+4kZryQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685292699; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=uP2QaSuIXsG//a1ZA9+wHtKetoo+PJIJ53Y3HgHjslQ=; b=UvcmRz8Y1RNWw0qfJ59wc3gAZxCqvrjprtEXsrDbwrQKtxS3RT178RAYrSfwEqqDQOTWiXTHNGczZR6fM7ksDjEuuDv4cQ95DoYtmbsVjcL+JJ2Wuy/ikmKqD6jQouKcW5hzr4bVpUB7zYF7Fvf9ZC5bZ+551USvqDWAmZ2ogiM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1685292699868286.0262598677731; Sun, 28 May 2023 09:51:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q3Jan-0000cc-NI; Sun, 28 May 2023 12:50:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q3Jam-0000bb-A7; Sun, 28 May 2023 12:50:04 -0400 Received: from mail-oo1-xc35.google.com ([2607:f8b0:4864:20::c35]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1q3Jak-0003di-PF; Sun, 28 May 2023 12:50:04 -0400 Received: by mail-oo1-xc35.google.com with SMTP id 006d021491bc7-5552cbcda35so1304844eaf.1; Sun, 28 May 2023 09:50:00 -0700 (PDT) Received: from grind.. (200-162-225-121.static-corp.ajato.com.br. [200.162.225.121]) by smtp.gmail.com with ESMTPSA id w4-20020a4adec4000000b0054f85f67f31sm3378830oou.46.2023.05.28.09.49.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 May 2023 09:49:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1685292600; x=1687884600; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=uP2QaSuIXsG//a1ZA9+wHtKetoo+PJIJ53Y3HgHjslQ=; b=dxKdiowqj9tjq1GjplayWSxxaZNR3WnC0jhaoJ/E1k1PVamRdYJqUEcyQR4sZvEnxQ CPXYvE/RERDSqfOH9DaHDkUD5ER7lIjVt4O83HDoun+DVAD1p5jky8nug5ylkxGA0A7/ BmrpgR7J/28oxBOHPpESWLgJ2QATTmiC0JAviu0oEXxzBPXtGSOa8gyWfEzn2U19Svr6 KPkzrJvb+vKQUnF5wCO0EQMlvQLh3e1ZGKTKOeVYA9TNSYD1i7UUxGx6gQaOelcyLWnN 5vHjiu6ysuLNVXOFk6RZlqk6fmby8ErZigiJ2DL6EZGn5KEbQsyRXEjmhANfylKwAFYv yzFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685292600; x=1687884600; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=uP2QaSuIXsG//a1ZA9+wHtKetoo+PJIJ53Y3HgHjslQ=; b=ZVxTs0dO9HSSxFBBvnPbJJ14Qf9UFQR+i8pzYNm6Iz1tasPhdy9MnaVPEci2ta1L8Q d+mgYQapfxE2FV7E+zvdaFoOXIUbtqJRbtOOWG5J6jpoZq40rV1wiFYxFikkrlschZjs ygKjeQNCZgz+DqZkS9e4DQqpE9MbqG7XlZThko/P4Jhc/sqvLQRme5PR1Pc3U9Mp2sm7 wTiWqMSSLvSh7XiQkuvZI0eLrgiGb0JJnw8XOTS/NPjKnCrLpti+yP3+sUanrRxWNRDL qTFps7GV0aESIvQEJ3nIRxT+vBydgz5NgE2DNhTuDuvHCjgnLHfp5RAfB9ZsXaG87bsT rHyw== X-Gm-Message-State: AC+VfDxlCXfaA2EVS+3+Ksg+bIaCHz+FsmEiDOClNL/zQMy0IFgQnFSx gFeg9GmHRreOsAZOtcttVbg+m21xWFs= X-Google-Smtp-Source: ACHHUZ6kBUOD+ze7beCbCB9N5v/A0nhFWdJvrRIrDSBgKQ2sGJgsJZF30sF83SLG56SEJ41CAgxCNQ== X-Received: by 2002:a05:6808:1295:b0:398:5a2a:2219 with SMTP id a21-20020a056808129500b003985a2a2219mr6176707oiw.33.1685292600139; Sun, 28 May 2023 09:50:00 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, BALATON Zoltan , Rene Engel Subject: [PULL 10/10] ppc/pegasos2: Change default CPU to 7457 Date: Sun, 28 May 2023 13:49:22 -0300 Message-Id: <20230528164922.20364-11-danielhb413@gmail.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230528164922.20364-1-danielhb413@gmail.com> References: <20230528164922.20364-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::c35; envelope-from=danielhb413@gmail.com; helo=mail-oo1-xc35.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1685292701726100003 Content-Type: text/plain; charset="utf-8" From: BALATON Zoltan Previously 7400 was selected as a safe choice as that is used by other machines so it's better tested but AmigaOS does not know this CPU and disables some features when running on it. The real hardware has 7447/7457 G4 CPU so change the default to match that now that it was confirmed to work better with AmigaOS. Signed-off-by: BALATON Zoltan Tested-by: Rene Engel Reviewed-by: Daniel Henrique Barboza Message-Id: <20230528152937.B8DAD74633D@zero.eik.bme.hu> Signed-off-by: Daniel Henrique Barboza --- hw/ppc/pegasos2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/ppc/pegasos2.c b/hw/ppc/pegasos2.c index f1650be5ee..af5489de26 100644 --- a/hw/ppc/pegasos2.c +++ b/hw/ppc/pegasos2.c @@ -524,7 +524,7 @@ static void pegasos2_machine_class_init(ObjectClass *oc= , void *data) mc->block_default_type =3D IF_IDE; mc->default_boot_order =3D "cd"; mc->default_display =3D "std"; - mc->default_cpu_type =3D POWERPC_CPU_TYPE_NAME("7400_v2.9"); + mc->default_cpu_type =3D POWERPC_CPU_TYPE_NAME("7457_v1.2"); mc->default_ram_id =3D "pegasos2.ram"; mc->default_ram_size =3D 512 * MiB; =20 --=20 2.40.1