From nobody Fri Jul 24 04:55:14 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=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1784862458; cv=none; d=zohomail.com; s=zohoarc; b=hxcZ3NPI+GVtb3xkWBIgnr9cgjSb9p0BV2CWTilR2PC02Wd/uzCFCu8yeaYK8FQqY+JaII/xWD273s9xQXMre95v/FBlSXhFyeeb+Acuh9fLUzZkmjoCQ056Ig20nbyBMa0yqScI7BbpeZt34gsaapyRYrBxvrC7FFyk0IYckJ8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784862458; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=XTEJryM2mS5sdwgtms25LDwrZ2fdC0GJ9Y4cXSQ9TQg=; b=BQjz5ym/c4IkNgiyRaZQueUymEsvKKDRFNz6OLgZURFkojuvARBJexm/uNMZVued9j4b7d9gm+gwCYGSQycQKaV+cHwoyHpEnA8d7ntHNXZBaURXHLnHo2OuRjhtCu2IjakGB2lwzR0iqs0ta7ZXmwzeGa2UfPnZ51FWbTow14I= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784862458053775.1522834310756; Thu, 23 Jul 2026 20:07:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wn6Ey-0003k6-Qu; Thu, 23 Jul 2026 23:06:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wn6Ew-0003ip-An for qemu-devel@nongnu.org; Thu, 23 Jul 2026 23:06:22 -0400 Received: from mail-pj1-x1029.google.com ([2607:f8b0:4864:20::1029]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wn6Eu-000848-47 for qemu-devel@nongnu.org; Thu, 23 Jul 2026 23:06:22 -0400 Received: by mail-pj1-x1029.google.com with SMTP id 98e67ed59e1d1-38e08baf860so1450353a91.2 for ; Thu, 23 Jul 2026 20:06:19 -0700 (PDT) Received: from stoup.. (174-21-93-59.tukw.qwest.net. [174.21.93.59]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-38f03ad0e0csm750777a91.7.2026.07.23.20.06.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Jul 2026 20:06:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1784862378; x=1785467178; darn=nongnu.org; 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:content-type; bh=XTEJryM2mS5sdwgtms25LDwrZ2fdC0GJ9Y4cXSQ9TQg=; b=ewTnCndQ5Dwy/X9IFOtsuI2e8L9y7BGIIT1ZpkrEiyr9HM5ZT7a0bAQWGoEAqN/N8K uVaoETCmlVgziKp/bCByyf3hngFlfr4H1yge9S9xwjLrLKzhxxgkHU+HwfOzUs0hIXmX 4S42Af0naTVVUuAMwz/0IQUCkt91UemgzZH9MLIMBqupAFLJBi5f/9tJ6mbojb3YGXFV 230EELxGZIS+U7cmEpmkjWx9YKMd0OV7qbn2A+tRIwseSJw72vKQkeStmC2YRhkJRWgq X97DZbTqhHJXZnZEffL5HopriIoBLBySpR6SbDYuoGKW5AQCUQJ1Bm98hzEmFKlpyDQm LHPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784862378; x=1785467178; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=XTEJryM2mS5sdwgtms25LDwrZ2fdC0GJ9Y4cXSQ9TQg=; b=ppec0CG3mC+8Qbg0Saz1bw+8zhd6FkCpfe6HjNcbPsAwWmz+BnngqvAwUMptbLiZzN bEGFA+53qdOE/2v0+RJWhX3nSlJ8mNpJOqmD3JivSSH8sHFoJlayFz4HzKrf+CjJyJwF FopL6dLpcrcQKgT5nXBogNoWt9T9bfmh0UGs5oHEhd5mKKao5yqAtE8elEqweQYvge1P rB9rAjsXi7QCVPU/2Ff46NNOE3gFLy/gTLgFBinBMYObNEEZ4fgwQ5i5EbCJb8qdh0J3 dymxyJY48Bv0+wbg2f/24AcZnFB49SKp0m6jMd7afFaVNge6//5Cr8O4rUnvzVxW6gA7 PQgQ== X-Gm-Message-State: AOJu0Ywjnd5L+0m2MDOAfik8Zm7ohrbS5V2KrFSnHdkb80zFSNII3Qdn Mk9FCMi+ol4V9pmtccbNfVJUFtSdZy9DlE0XSzRTQ7f8mixmarg+1fJq20usIWiDAGnSddmBQLr eOX+O X-Gm-Gg: AR+sD10soYltBCuJPyucZYdiS2atPR7q/IkZW7R3Jq8bl2MM3sf5XnTry+Ler7q1xjG 0uYa1Q0/iCryibARsvQzyeoevrJFmwaUQqk5Mdunr1At2Ru5VB+1MIzwMGh96fpziATjODnJPng eLfAFH+o83krTuiEnqyP9vqUwcMZehEmoyA7Y6nYJgZMBIdTOR+iFbZ2p0UshZuVRbvWoLueVAQ MDMgx7ud5zyca3YX8nkeQd17z1G+CXh2zAGlrYfaJUWc7m/a0BYMiFd1XkbET7KcW/OUdA3vMbY RZZsq/ipPoPpfronjLsRoqWeQnUrDEcax9yEdoAXU1nWK7jD5XbsDaz2y5y6eqILDkj7y6XEPS1 3yWtrK9FA9B/Zl00lb1uKkFSFa46xUrHQX47MCrLzb0Uqx9tS6Ci3DvT+yZwY3Hb9D+QPl9mE7O L3pDXVceluFTL7kpzzwhjT1njHc1V7ta9aYQ== X-Received: by 2002:a17:90b:5241:b0:38d:858c:834d with SMTP id 98e67ed59e1d1-38ec650c9d7mr5939554a91.17.1784862378516; Thu, 23 Jul 2026 20:06:18 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH 1/6] target/arm: Add FGWTE3_EL3 Date: Thu, 23 Jul 2026 20:06:11 -0700 Message-ID: <20260724030616.76180-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260724030616.76180-1-richard.henderson@linaro.org> References: <20260724030616.76180-1-richard.henderson@linaro.org> 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1029; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1029.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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: qemu development 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 @linaro.org) X-ZM-MESSAGEID: 1784862460582158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/cpregs.h | 1 + target/arm/cpu-features.h | 5 +++++ target/arm/cpu.h | 2 +- target/arm/helper.c | 19 +++++++++++++++++++ 4 files changed, 26 insertions(+), 1 deletion(-) diff --git a/target/arm/cpregs.h b/target/arm/cpregs.h index 391c0e322b..34592679e4 100644 --- a/target/arm/cpregs.h +++ b/target/arm/cpregs.h @@ -385,6 +385,7 @@ typedef enum CPAccessResult { /* Indexes into fgt_write[] */ #define FGTREG_HFGWTR 0 #define FGTREG_HDFGWTR 1 +#define FGTREG_FGWTE3 2 /* Indexes into fgt_exec[] */ #define FGTREG_HFGITR 0 =20 diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index fb5ed25ad0..75f0fc4169 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1467,6 +1467,11 @@ static inline bool isar_feature_aa64_asid2(const ARM= ISARegisters *id) return FIELD_EX64_IDREG(id, ID_AA64MMFR4, ASID2) !=3D 0; } =20 +static inline bool isar_feature_aa64_fgwte3(const ARMISARegisters *id) +{ + return FIELD_EX64_IDREG(id, ID_AA64MMFR4, FGWTE3) !=3D 0; +} + /* * Note the E2H0 ID fields is signed, increasingly negative as more * isn't implemented. diff --git a/target/arm/cpu.h b/target/arm/cpu.h index 03a30afcbe..ca75e379eb 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -553,7 +553,7 @@ typedef struct CPUArchState { * FEAT_FGT2 will add more elements to these arrays. */ uint64_t fgt_read[2]; /* HFGRTR, HDFGRTR */ - uint64_t fgt_write[2]; /* HFGWTR, HDFGWTR */ + uint64_t fgt_write[3]; /* HFGWTR, HDFGWTR, FGWTE3 */ uint64_t fgt_exec[1]; /* HFGITR */ =20 /* RME registers */ diff --git a/target/arm/helper.c b/target/arm/helper.c index af45234ad2..d410a9a1ec 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -6331,6 +6331,21 @@ static const ARMCPRegInfo fpmr_reginfo[] =3D { } }; =20 +static void fgwte3_write(CPUARMState *env, const ARMCPRegInfo *ri, + uint64_t value) +{ + env->cp15.fgt_write[FGTREG_FGWTE3] |=3D value; +} + +static const ARMCPRegInfo fgwte3_reginfo[] =3D { + { .name =3D "FGWTE3_EL3", .state =3D ARM_CP_STATE_AA64, + .opc0 =3D 3, .opc1 =3D 6, .crn =3D 1, .crm =3D 1, .opc2 =3D 5, + .access =3D PL3_RW, .resetvalue =3D 0, + .writefn =3D fgwte3_write, .raw_writefn =3D raw_write, + .fieldoffset =3D offsetof(CPUARMState, cp15.fgt_write[FGTREG_FGWTE3]) + }, +}; + void register_cp_regs_for_features(ARMCPU *cpu) { /* Register all the coprocessor registers based on feature bits */ @@ -7642,6 +7657,10 @@ void register_cp_regs_for_features(ARMCPU *cpu) define_arm_cp_regs(cpu, ccsidr2_reginfo); } =20 + if (cpu_isar_feature(aa64_fgwte3, cpu)) { + define_arm_cp_regs(cpu, fgwte3_reginfo); + } + define_pm_cpregs(cpu); define_gcs_cpregs(cpu); } --=20 2.43.0 From nobody Fri Jul 24 04:55:14 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=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1784862457; cv=none; d=zohomail.com; s=zohoarc; b=gYxgTIQwGeQ1BGOjz/Gq9Jj2bm31p/19k3JuNdxFPMkBHLe70bL40lbX9gdxQ1YaDDnS/1bck5xRLc77BCZUJ811F1c7hpjyojijOj3XfekDqal91VLAUHkiIlUEdb2EJly9oGlJ5HmQZuJwirk5hMOHZhP6SFrj9jj9ZxkXD0A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784862457; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=3WcfI2C0vXZJuLurguA9t32KpNa1EGPqApO8Jkm91qs=; b=aCUagzPtPfUZmNI3VHJBDAqQnEpCTMibfyKBkOskEr0MouW6UZ04duRgIBxfk/qfkzu53xyltGgwOoMgioaem2bBDTnDSoB1fS++oF+qtyddjNKOeSQ2smQBj42LBECinSZ3op1aGIh/SG2YpdMJV7sofmm2wpt/EXFW9JWpeq8= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784862457191476.14523166979404; Thu, 23 Jul 2026 20:07:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wn6Ez-0003k9-4M; Thu, 23 Jul 2026 23:06:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wn6Ew-0003io-Aa for qemu-devel@nongnu.org; Thu, 23 Jul 2026 23:06:22 -0400 Received: from mail-pj1-x1032.google.com ([2607:f8b0:4864:20::1032]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wn6Eu-00084H-MM for qemu-devel@nongnu.org; Thu, 23 Jul 2026 23:06:22 -0400 Received: by mail-pj1-x1032.google.com with SMTP id 98e67ed59e1d1-38125cebfdaso1766565a91.1 for ; Thu, 23 Jul 2026 20:06:20 -0700 (PDT) Received: from stoup.. (174-21-93-59.tukw.qwest.net. [174.21.93.59]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-38f03ad0e0csm750777a91.7.2026.07.23.20.06.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Jul 2026 20:06:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1784862379; x=1785467179; darn=nongnu.org; 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:content-type; bh=3WcfI2C0vXZJuLurguA9t32KpNa1EGPqApO8Jkm91qs=; b=ILtOwBNFjYntx7mCY7aT5dkYim+lA0eNB6lHGkDwIOPcpnUSoHZmWOeCAUKYyQfVLz aqQtihhDHARoT04vGPMbkvqyeKL4V9+q5++PrDo93S4E9eqnn3GaT038s6w4jeduZip3 Ma7x8TwNTb+PRLtmjQeF18ns4emJcgaDF/qkCZMp6pnFfq2GHcHy3JsN++2pLe8+KhhT WOo6TLXPK5JzuWPsWTklKyfzwTFzA1fjiqnokCN1kjmXKeI2r4M8YfV6ZSC9ZoEHEWvm y2n1IZuMkllfk3stm2y28+G33YLbCiy7i3NN3HCiNORwurwjNY11yn7VKln6mV1IZ5iB W2AA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784862379; x=1785467179; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=3WcfI2C0vXZJuLurguA9t32KpNa1EGPqApO8Jkm91qs=; b=mO/EoagLSePHiDn5S24wcEP0CXlSWsQtpFjRtbAdy3BerBWvSW/nklJ6CQnBoV0wtB 6BWKopWMipypoYfnaN6sRPvwG0D9OENy2c2Chh/TaS/KWgujSAm5kgNduCFO+mi+A/6C k4HoKu3E6NQEFHmalZ4b7ekp64hOKRsdBH9I43OR3y1pxsQ8uOds+8WtyZutjjgD+KoI g89XrsCKMyDrxRc1ebxvuAKbWiStaHrTxUXgCducS7Qu1VubXmvO+IFxeyUbcbkuoUGX Vn2lHQVSn5919PB8nsQqtqKhex8FtjEwRB50NYA8IiB07elvD4lgk+PeILpXxT2GOe3h RJ5g== X-Gm-Message-State: AOJu0YzRobuTAefhlf9hOvRQVUa2321HF3aFAFIvn3bqRUiDPzzPZHvb SqPYi7Z0STBYDc8QzDn0nmbnykF/XrgZmB+d8bqE+3lTOLNQZcgbNeQt+7PKtdb91Ktfyr4ccCO VCOEc X-Gm-Gg: AR+sD10lMDaSAdCjjCWQKp94EJZ/VjrnPZ6l/vaSoAm6243ruujaInekPVl0oJlDoDX mRwVyit4BPQBSPbs5FHgl0wQmUv/2rIQh/3Wpn0rXUfstKzux+gEdqX0eD1FmSVhT8TUW2tir8f JloQweoiyfra8AdQ0YTrdyujXRJ+egeKqGCHzQ8x/uCdzUWWgFoydM9AbrSzQ4rWWenpkffLEdc x11ZbGWDIk1aFq2ULM72oj7uUgCQB9cgzofev5XyNlAt+DcaZbx01VedXbqZICVLdB8MzErxRN5 psQEimlGE+aZpRxWBfuLB1BHP6JJPpSeAdwom7EeNG7NZrf6XXjojirWNUPq1BhorDWlGM1WMxi J9WirbuYUDt3QvRJTy4sYP+M2CWN2hC0EfrMl1GjhNa0pXJ9A7tPzj10Yb6bND2Hqjg4TUjBCeP dVay34hwFFd7prdbPS4hVeNkOrYmZqFnLg3g== X-Received: by 2002:a17:90b:3cc4:b0:381:e74f:8a6a with SMTP id 98e67ed59e1d1-38ec65793a6mr5539371a91.16.1784862379178; Thu, 23 Jul 2026 20:06:19 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH 2/6] target/arm: Add FGWTE3_EL3 bit definitions Date: Thu, 23 Jul 2026 20:06:12 -0700 Message-ID: <20260724030616.76180-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260724030616.76180-1-richard.henderson@linaro.org> References: <20260724030616.76180-1-richard.henderson@linaro.org> 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1032; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1032.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UPPERCASE_50_75=0.008 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development 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 @linaro.org) X-ZM-MESSAGEID: 1784862458210158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/cpregs.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/target/arm/cpregs.h b/target/arm/cpregs.h index 34592679e4..2c9927b1d9 100644 --- a/target/arm/cpregs.h +++ b/target/arm/cpregs.h @@ -689,6 +689,30 @@ FIELD(HDFGWTR_EL2, NBRBCTL, 60, 1) FIELD(HDFGWTR_EL2, NBRBDATA, 61, 1) FIELD(HDFGWTR_EL2, NPMSNEVFR_EL1, 62, 1) =20 +FIELD(FGWTE3_EL3, ACTLR_EL3, 0, 1) +FIELD(FGWTE3_EL3, AFSR0_EL3, 1, 1) +FIELD(FGWTE3_EL3, AFSR1_EL3, 2, 1) +FIELD(FGWTE3_EL3, AMAIR_EL3, 3, 1) +FIELD(FGWTE3_EL3, AMAIR2_EL3, 4, 1) +FIELD(FGWTE3_EL3, GCSCR_EL3, 5, 1) +FIELD(FGWTE3_EL3, GCSPR_EL3, 6, 1) +FIELD(FGWTE3_EL3, GPCCR_EL3, 7, 1) +FIELD(FGWTE3_EL3, GPTBR_EL3, 8, 1) +FIELD(FGWTE3_EL3, MAIR_EL3, 9, 1) +FIELD(FGWTE3_EL3, MAIR2_EL3, 10, 1) +FIELD(FGWTE3_EL3, MDCR_EL3, 11, 1) +FIELD(FGWTE3_EL3, MECID_RL_A_EL3, 12, 1) +FIELD(FGWTE3_EL3, MPAM3_EL3, 13, 1) +FIELD(FGWTE3_EL3, PIR_EL3, 14, 1) +FIELD(FGWTE3_EL3, SCTLR_EL3, 15, 1) +FIELD(FGWTE3_EL3, SCTLR2_EL3, 16, 1) +FIELD(FGWTE3_EL3, SPMROOTCR_EL3, 17, 1) +FIELD(FGWTE3_EL3, TCR_EL3, 18, 1) +FIELD(FGWTE3_EL3, TPIDR_EL3, 19, 1) +FIELD(FGWTE3_EL3, TTBR0_EL3, 20, 1) +FIELD(FGWTE3_EL3, VBAR_EL3, 21, 1) +FIELD(FGWTE3_EL3, GPCBW_EL3, 22, 1) + FIELD(FGT, NXS, 13, 1) /* Honour HCR_EL2.FGTnXS to suppress FGT */ /* Which fine-grained trap bit register to check, if any */ FIELD(FGT, TYPE, 10, 3) --=20 2.43.0 From nobody Fri Jul 24 04:55:14 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=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1784862433; cv=none; d=zohomail.com; s=zohoarc; b=WiT6rqLB/5ZVRHkV7zFYORuGy3UaVrVbR+05g9ROlQU7MnRYTLEspj6bxbYc429KcIKxSrfb1G55tzE68h41/4CYkO3JAyDtLtWuysD14+yAuwI8ACYVUV7LMtJVNDlXI+8dfK6kofkp2ZV+2fxeBMY0a03yGvEJMjtBg9mZQ/Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784862433; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=bwPG9t04ibTJDps/kXXr2hpINI5O+Pu2KZP9VOuyAAc=; b=ch807rPUtG6IxrBHJf2UmmEce2nxkybM+nSJ0uGuIbXswZKPpCFRx27GDnJ3og4vcANm6ykobJSlrOVDQZVykkucaBhdkqM+9jCbPPh6o0XACx+LTe4FHAkT41LYZ2tQb2IiWwZVkKg1xTfSXYVGdFI31DfySWWu2XffwA2AilE= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784862433660665.6739525079448; Thu, 23 Jul 2026 20:07:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wn6Ez-0003kP-NU; Thu, 23 Jul 2026 23:06:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wn6Ex-0003jY-CE for qemu-devel@nongnu.org; Thu, 23 Jul 2026 23:06:23 -0400 Received: from mail-pj1-x102d.google.com ([2607:f8b0:4864:20::102d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wn6Ev-00084S-Hi for qemu-devel@nongnu.org; Thu, 23 Jul 2026 23:06:23 -0400 Received: by mail-pj1-x102d.google.com with SMTP id 98e67ed59e1d1-38101f85591so1003162a91.1 for ; Thu, 23 Jul 2026 20:06:21 -0700 (PDT) Received: from stoup.. (174-21-93-59.tukw.qwest.net. [174.21.93.59]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-38f03ad0e0csm750777a91.7.2026.07.23.20.06.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Jul 2026 20:06:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1784862380; x=1785467180; darn=nongnu.org; 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:content-type; bh=bwPG9t04ibTJDps/kXXr2hpINI5O+Pu2KZP9VOuyAAc=; b=fuVjNYkYzXI0C3wYcr5/UWuNKlBz4++txOOXznhf5N4BD9gtzJI8yVp6hiibw9BekL T0kHfEeGNABjdaXTC0agKe/mwz6ExlexzKpGzniSA4SQitXnbzc2OlWjlyp8cKObe58W eJW5XELdU0SRlR31MnEt0z8dUIfYioDVuuQTV1jhoXRvhZ0K3fqn7zi1W+slmclxXJ8G xvkwuYfQyyldstg8kXaGYPIL7ipRsM2bynC6USHT4fAuDR1b5Rg8UJPP4vieTbY60X7M 1oJ8C2ILNWzgN8dz+naCnZLBUM549ek21OOtVTDSFvHmEXe3xTRZYKcTiVc6zt78+FPG Cu6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784862380; x=1785467180; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=bwPG9t04ibTJDps/kXXr2hpINI5O+Pu2KZP9VOuyAAc=; b=GDZgarPOti3pmMYzBIeoNRsqMT8sOEn0MKJ/j+tsfCxPeuIINobxQcOBKJooNAbzda h4TU64lo+9HKvLpwrazE17cM6GVHPpPjtq3YdXUHrupq+RUxT7nClQ8oc2xAFCauu1pU ANydbuPAgndIzA7mRFzOqP45AxzLNbnUSsKebuehspNZNAMgY0QS8wQOpqrVjWGe89YH kys9J+5fBVLg3Tt29h3GrCepfQ0EOM4UwP8UUny1kPSJ95jGzoNxCzHLW8ghcBU2A621 eSXcu5D1ZuY8nhmpvC28ymTW0WERuSd7uX9U/Khk92NlHMB7Uq1UOrYVUAVetlxnApio zyTA== X-Gm-Message-State: AOJu0YzCL+/FNTKc4N7w4m96CTXjGrb9FQoBfizsPto1OYnsTCCA3Tip JAuzSMYXxgoowsMh+cnSYWXdHzb+7l5jd01NHU9Lofb4kcfgYrKJbWjwiC9Vo8xjI4tSnrefprf iIJ1+ X-Gm-Gg: AR+sD13jU4OalLdrLLFB59450DaY4aPLfwX/pmz3+2TPvifwCeawMR5m2MtabXQyt2l SywE0xOz2NJU399AFrx1nBhrsnrUlkgJzZE1Wvkd3uUcSa9jAkaV9u6wOifbEy1/N9D8k/TlHvU QSdMd6b43eXnrcN7nvIrArkVBLeW6qYSh1IndRgpyv7Es0Rf+3el9LAn67kHKSRQrKjsbnlQjeW rvvet3SwlzvcguRlpdtWMvGHBSlA3XgDzuDU5CvltS5ElT8xVaswVyyVDKCa+e3Vxpley5yI2cW xXUZiAuEqgIEefnwfdiZ9J6Yoy2gXPRg0Wcxkr1KmWD6ppenzv/a3SYW56qqnymu4xhHqFabZ6q +BUVfRnmRHITMDZo6OlTQeDMQvUM+d+0pQ1smkEShLOj8h60YC3etYG6XZQg9nWAszX3j7LJG+v zxruoaQ9neN3kO7Xjo/dotJPPQEurbymCBTw== X-Received: by 2002:a17:90b:3804:b0:386:ca4b:16a9 with SMTP id 98e67ed59e1d1-38ec8494be6mr4219775a91.16.1784862380010; Thu, 23 Jul 2026 20:06:20 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH 3/6] target/arm: Add FGWTE3 FGT bit definitions Date: Thu, 23 Jul 2026 20:06:13 -0700 Message-ID: <20260724030616.76180-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260724030616.76180-1-richard.henderson@linaro.org> References: <20260724030616.76180-1-richard.henderson@linaro.org> 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102d; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UPPERCASE_50_75=0.008 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development 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 @linaro.org) X-ZM-MESSAGEID: 1784862434097158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/cpregs.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/target/arm/cpregs.h b/target/arm/cpregs.h index 2c9927b1d9..9f2532fe66 100644 --- a/target/arm/cpregs.h +++ b/target/arm/cpregs.h @@ -728,6 +728,9 @@ FIELD(FGT, BITPOS, 0, 6) /* Bit position within the uin= t64_t */ #define DO_BIT(REG, BITNAME) \ FGT_##BITNAME =3D FGT_##REG | R_##REG##_EL2_##BITNAME##_SHIFT =20 +#define DO_EL3_BIT(REG, BITNAME) \ + FGT_##BITNAME =3D FGT_##REG | R_##REG##_EL3_##BITNAME##_SHIFT + /* Some bits have reversed sense, so 0 means trap and 1 means not */ #define DO_REV_BIT(REG, BITNAME) \ FGT_##BITNAME =3D FGT_##REG | FGT_REV | R_##REG##_EL2_##BITNAME##_SHIFT @@ -787,6 +790,7 @@ typedef enum FGTBit { FGT_HDFGRTR =3D FGT_RW | (FGTREG_HDFGRTR << R_FGT_IDX_SHIFT), FGT_HDFGWTR =3D FGT_W | (FGTREG_HDFGWTR << R_FGT_IDX_SHIFT), FGT_HFGITR =3D FGT_EXEC | (FGTREG_HFGITR << R_FGT_IDX_SHIFT), + FGT_FGWTE3 =3D FGT_W | (FGTREG_FGWTE3 << R_FGT_IDX_SHIFT), =20 /* Trap bits in HFGRTR_EL2 / HFGWTR_EL2, starting from bit 0. */ DO_BIT(HFGRTR, AFSR0_EL1), @@ -919,10 +923,37 @@ typedef enum FGTBit { DO_REV_BIT(HFGITR, NGCSPUSHM_EL1), DO_REV_BIT(HFGITR, NGCSEPP), DO_BIT(HFGITR, ATS1E1A), + + /* Trap bits in FGWTE3_EL3, starting from bit 0 */ + DO_EL3_BIT(FGWTE3, ACTLR_EL3), + DO_EL3_BIT(FGWTE3, AFSR0_EL3), + DO_EL3_BIT(FGWTE3, AFSR1_EL3), + DO_EL3_BIT(FGWTE3, AMAIR_EL3), + DO_EL3_BIT(FGWTE3, AMAIR2_EL3), + DO_EL3_BIT(FGWTE3, GCSCR_EL3), + DO_EL3_BIT(FGWTE3, GCSPR_EL3), + DO_EL3_BIT(FGWTE3, GPCCR_EL3), + DO_EL3_BIT(FGWTE3, GPTBR_EL3), + DO_EL3_BIT(FGWTE3, MAIR_EL3), + DO_EL3_BIT(FGWTE3, MAIR2_EL3), + DO_EL3_BIT(FGWTE3, MDCR_EL3), + DO_EL3_BIT(FGWTE3, MECID_RL_A_EL3), + DO_EL3_BIT(FGWTE3, MPAM3_EL3), + DO_EL3_BIT(FGWTE3, PIR_EL3), + DO_EL3_BIT(FGWTE3, SCTLR_EL3), + DO_EL3_BIT(FGWTE3, SCTLR2_EL3), + DO_EL3_BIT(FGWTE3, SPMROOTCR_EL3), + DO_EL3_BIT(FGWTE3, TCR_EL3), + DO_EL3_BIT(FGWTE3, TPIDR_EL3), + DO_EL3_BIT(FGWTE3, TTBR0_EL3), + DO_EL3_BIT(FGWTE3, VBAR_EL3), + DO_EL3_BIT(FGWTE3, GPCBW_EL3), } FGTBit; =20 #undef DO_BIT +#undef DO_EL3_BIT #undef DO_REV_BIT +#undef DO_TLBINXS_BIT =20 typedef struct ARMCPRegInfo ARMCPRegInfo; =20 --=20 2.43.0 From nobody Fri Jul 24 04:55:14 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=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1784862422; cv=none; d=zohomail.com; s=zohoarc; b=UIl3xkBhofRildvf1vWhoQhF5bUI3lvfX3pHGcSr7p5Pjz9tS8bmP9FI91wgzfGkzzdM1sdGh5K8f0dQ/qmOFJAz940CqJm9KGeKqBUxdDFAp8q/7vHAV1JhlywMF6wP8m/Cei+v4EPt4G9MqzaShDnUrx51omu17D7PKFtX50Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784862422; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=eE/TYHY9UFAVK4bqbm1zYcnmwH8+c78TUwQIpXcgR04=; b=XR6BipOwEd+ul01qvIkfS0TNHoQj9D47jlUVtCeuypoJ5EZw6NA/unBE8zdjaW+siEJ5C8NQ6rKjd7Sl9LzgemS8+6NsfDeSzwBxjPA0F5jj7EiJmdqUaMfDeczSdg1x6GJFnzl4LCgdhkXgk6+nSq8CAnB22Ih1ENgzEBvxhP0= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784862422515206.75194650960486; Thu, 23 Jul 2026 20:07:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wn6Ez-0003kN-IW; Thu, 23 Jul 2026 23:06:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wn6Ex-0003jo-VS for qemu-devel@nongnu.org; Thu, 23 Jul 2026 23:06:23 -0400 Received: from mail-pj1-x102d.google.com ([2607:f8b0:4864:20::102d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wn6Ew-00084h-9V for qemu-devel@nongnu.org; Thu, 23 Jul 2026 23:06:23 -0400 Received: by mail-pj1-x102d.google.com with SMTP id 98e67ed59e1d1-38e347638adso1480358a91.0 for ; Thu, 23 Jul 2026 20:06:21 -0700 (PDT) Received: from stoup.. (174-21-93-59.tukw.qwest.net. [174.21.93.59]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-38f03ad0e0csm750777a91.7.2026.07.23.20.06.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Jul 2026 20:06:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1784862381; x=1785467181; darn=nongnu.org; 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:content-type; bh=eE/TYHY9UFAVK4bqbm1zYcnmwH8+c78TUwQIpXcgR04=; b=Z3SZah0HgA9AR9kVIZHJtNEUTFuED0tqMTi9vq9xtVRwuTWP6RDYjurfmp5FjedSqo 1jj867leqeaqe2lvU0+GhqZqx9WBR5u1HT0CsUgha3MfJyjnucfqgaUhTioZnzDLCLL3 aap8vylc2fisLGiIkbj2a0jryvXaWy63nEUbQgL9RQua4ZJ9F6M6rY1X9MO3YLCFyKb+ qHg5H/sg81GmyRmtMMB/F7HRz+v+7M0Lq/Cu9Qnbx/KGTj59y+UaeHmMMVr4/0iCY77v ISYSNaheNZRoYiJPjou3t/wAsgorxfIA4Utc4n4mjJAqYai+bLQnCGChAUtzEga5TNar S8LA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784862381; x=1785467181; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=eE/TYHY9UFAVK4bqbm1zYcnmwH8+c78TUwQIpXcgR04=; b=l1cnT5hwT/XTj+tvETyB3xa8+85YnfeMIhS6Ol4ybDDQzgqF/mX9RiPoEGJ+paenGV fVkC8sviin1mY5QFaTqKPF3Ud+14f+4bEYif3YLmPMYXpvNi00Vqnty8BCxi1xm633pi vF95+8/0XP0ryWRNkyqjTeQzblOrhwviokKFOmzXiCI5J+btM0VZ69X/dsOZdMrESFWJ lWK3Ofe/YsNFZBkLu+uZU+P+WSb/gjpZpxe+144lNIvYJe0VxMG+xJx+DlDJJ6Qn1yf8 1bIOY1c6zmiMBOo3qumhcN3hZz9cGCL9oazSgQALq1AONXVcjIDzmvv6//cxstio53s0 dmnw== X-Gm-Message-State: AOJu0YyOVazW+XpdapUxllqDV75bBCzA/lOiJqBpBko52ODa6kiKVncz SZuPFFiPuBQYS4odbvF3P8HXaR4hnT8B1fVJ4ONTzlIzmANIhiQbbS1yYQsRPi/1VXDmxxL48+U PWG0e X-Gm-Gg: AR+sD13PbfoDDQwcmduJ5ambb4NI4z3tt7LnZ2zSr8pyYp9g7cgTP55jrjokWFWDYjg pca6ShPGkYzu8B5KinlMpB6P1pAGA43GJEMLKHgKH0rkuu7B7wM30xCZGTASOI74sUdrnse4jsH Y4jrfdjKEV9mpNWEPFOf7nleYE/y5+QEaz1ErpBTyZbkSx4b7FAGs3PnsX9mSI1MDkmoNEjqtSA 17B/U4/twG4mTFDl7/HPc0i/sL/O6onEeqNQ05a+f/6sHzvr7okPRsWgDRFeWfoaNhWqJPTvJcb aILL5KU7law4auDbnDnDx2xuhNEtTXXYXpBpF4JJu8BD7FkrJmk9NlfFARTEgiSEICyRb6cjbkE pbSUb4PI6qYpliGeZxxRdlH/uuiQ6e0tWVQK2WpQKXnfa6KPdIu0E/MGBIiqz8Yl9o2rz7+XtJk dqLjIQoIqfPPd0dAy00Ta5cDhMrVoDGiv5kA== X-Received: by 2002:a17:90b:1d44:b0:38d:dfd1:7a8 with SMTP id 98e67ed59e1d1-38ec63e1ed7mr5496543a91.2.1784862380866; Thu, 23 Jul 2026 20:06:20 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH 4/6] target/arm: Implement FGWTE3 traps Date: Thu, 23 Jul 2026 20:06:14 -0700 Message-ID: <20260724030616.76180-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260724030616.76180-1-richard.henderson@linaro.org> References: <20260724030616.76180-1-richard.henderson@linaro.org> 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102d; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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: qemu development 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 @linaro.org) X-ZM-MESSAGEID: 1784862424616158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/op_helper.c | 36 ++++++++++++++++++++++------------ target/arm/tcg/translate-a64.c | 13 +++++++++++- 2 files changed, 35 insertions(+), 14 deletions(-) diff --git a/target/arm/tcg/op_helper.c b/target/arm/tcg/op_helper.c index c4433be2ed..f040a3fc87 100644 --- a/target/arm/tcg/op_helper.c +++ b/target/arm/tcg/op_helper.c @@ -1067,12 +1067,10 @@ const void *HELPER(access_check_cp_reg)(CPUARMState= *env, uint32_t key, * higher priority than trap-to-EL3, and we don't care about priority * order with other EL2 traps because the syndrome value is the same. */ - if (arm_fgt_active(env, arm_current_el(env))) { + if (ri->fgt) { uint64_t trapword =3D 0; unsigned int idx =3D FIELD_EX32(ri->fgt, FGT, IDX); unsigned int bitpos =3D FIELD_EX32(ri->fgt, FGT, BITPOS); - bool rev =3D FIELD_EX32(ri->fgt, FGT, REV); - bool nxs =3D FIELD_EX32(ri->fgt, FGT, NXS); bool trapbit; =20 if (ri->fgt & FGT_EXEC) { @@ -1085,19 +1083,31 @@ const void *HELPER(access_check_cp_reg)(CPUARMState= *env, uint32_t key, assert(idx < ARRAY_SIZE(env->cp15.fgt_write)); trapword =3D env->cp15.fgt_write[idx]; } + trapbit =3D extract64(trapword, bitpos, 1); =20 - if (nxs && (arm_hcrx_el2_eff(env) & HCRX_FGTNXS)) { + if ((ri->access & ~PL3_RW) =3D=3D 0) { /* - * If HCRX_EL2.FGTnXS is 1 then the fine-grained trap for - * TLBI maintenance insns does *not* apply to the nXS variant. + * EL3 cpreg -- must be FGWTE3, and FGWTE3_EL3 can only be + * set from AArch64, and if the feature is enabled. */ - trapbit =3D 0; - } else { - trapbit =3D extract64(trapword, bitpos, 1); - } - if (trapbit !=3D rev) { - res =3D CP_ACCESS_TRAP_EL2; - goto fail; + if (trapbit) { + res =3D CP_ACCESS_TRAP_EL3; + goto fail; + } + } else if (arm_fgt_active(env, arm_current_el(env))) { + bool nxs =3D FIELD_EX32(ri->fgt, FGT, NXS); + bool rev =3D FIELD_EX32(ri->fgt, FGT, REV); + if (nxs && (arm_hcrx_el2_eff(env) & HCRX_FGTNXS)) { + /* + * If HCRX_EL2.FGTnXS is 1 then the fine-grained trap for + * TLBI maintenance insns does *not* apply to the nXS vari= ant. + */ + trapbit =3D 0; + } + if (trapbit !=3D rev) { + res =3D CP_ACCESS_TRAP_EL2; + goto fail; + } } } =20 diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index 1780490065..ff880eab8d 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -2886,6 +2886,7 @@ static void handle_sys(DisasContext *s, bool isread, { uint32_t key =3D ENCODE_AA64_CP_REG(op0, op1, crn, crm, op2); const ARMCPRegInfo *ri =3D get_arm_cp_reginfo(s->cp_regs, key); + bool need_helper =3D false; bool need_exit_tb =3D false; bool nv_trap_to_el2 =3D false; bool nv_redirect_reg =3D false; @@ -2999,7 +3000,17 @@ static void handle_sys(DisasContext *s, bool isread, ri =3D redirect_cpreg(s, key, isread); } =20 - if (ri->accessfn || (ri->fgt && s->fgt_active)) { + if (ri->accessfn) { + need_helper =3D true; + } else if (ri->fgt) { + if ((ri->access & ~PL3_RW) =3D=3D 0) { + need_helper =3D (arm_dc_feature(s, ARM_FEATURE_EL3) && + dc_isar_feature(aa64_fgwte3, s)); + } else { + need_helper =3D s->fgt_active; + } + } + if (need_helper) { /* Emit code to perform further access permissions checks at * runtime; this may result in an exception. */ --=20 2.43.0 From nobody Fri Jul 24 04:55:14 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=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1784862438; cv=none; d=zohomail.com; s=zohoarc; b=naava8ImUpc8SLPo4qQmR7tNeqcodpeRUS4Md+cuYOVmpFpYGcvSF+RVIF30l8ZvERoVPA/0+C0Mz9XQP3YE1l2v1t008ptOBKGvAkSAmuexXXN8wT1N3J0K5KHZJcUA/V1QB+VcfPIc2DDcJfZE3W8TA4/STuNCrfUrPrWk14M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784862438; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=JktWC9PHvkyHRlqqwYXOZSgV5TBFp+zjtAV0XCHB3oU=; b=GhoeQMMEn2faHSD5nSFI/x83y39w6vF/K0dLu1EZsKOSuWZRPAyIG7zZwWS1pEOFhOsGX1Ln+OAJLu2tu83D04Syymd0SPGJ+C45bq670/5SQh7Br13beu2SfGyxpinNUyjhQ80ygPfjOH2gYsye4oITG5VivK3y+AYZ0xnvHbo= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784862438243899.6869590213747; Thu, 23 Jul 2026 20:07:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wn6F1-0003m5-HN; Thu, 23 Jul 2026 23:06:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wn6Ez-0003kF-9L for qemu-devel@nongnu.org; Thu, 23 Jul 2026 23:06:25 -0400 Received: from mail-pj1-x1033.google.com ([2607:f8b0:4864:20::1033]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wn6Ex-00085D-8Y for qemu-devel@nongnu.org; Thu, 23 Jul 2026 23:06:25 -0400 Received: by mail-pj1-x1033.google.com with SMTP id 98e67ed59e1d1-38e041ea211so1261457a91.0 for ; Thu, 23 Jul 2026 20:06:22 -0700 (PDT) Received: from stoup.. (174-21-93-59.tukw.qwest.net. [174.21.93.59]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-38f03ad0e0csm750777a91.7.2026.07.23.20.06.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Jul 2026 20:06:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1784862382; x=1785467182; darn=nongnu.org; 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:content-type; bh=JktWC9PHvkyHRlqqwYXOZSgV5TBFp+zjtAV0XCHB3oU=; b=KePERrQX/0BOgkR5ZrOtrSI6qC3fERV2XzQQo3Hn3GEnksEvKybSB+5m2brA4urD/H 8qCZyvQHQR8pgclii6+CI+Ve5vJhbjuhWt6BXU2hruhiFbxbQuJ99ZP5bSMqp3biaTA/ cv7jGaH0AZH4rcE2oXW+z5TBA2RSqXSKkIB2P8BGMQhR2Hk1ehFS9kEjRP2UamnWvrH4 VawnW4JFTQRGwYR0BzmFoIHqEft5wiDmVziTMa/pGsitF8MfVa/qWNRzFtO+YKtipJ1d 4OAxhfuh3+7aDTKMRfKKOAuGDqn/oisxKRJWTALR+auxv8MtbkGw+Vjrguzs0rpqwjX4 RPog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784862382; x=1785467182; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=JktWC9PHvkyHRlqqwYXOZSgV5TBFp+zjtAV0XCHB3oU=; b=E+Qov3lFz5YIXCA8tgWNWiSHMDcHaMv4W1zPEzD1Ye4zYxnC4yyk70YaINEgfLB4rj KTZ+tPhHDJyKCR897vEez/reH7535TpJRg+WO8+HYcNALMufqhvv5T/0vXJO5vcsH1ya PuEjtf1OuR61wX3uEq95nEXr9y3NJznitRSLrhxKjDwxsxCT9WpRjqUCihR63chW95LA PlKXsSMJcrEBNpGIhwELpJF+qDmFBG0GhbiSAWeHeLl/LAl/UKw1wx0vfdHyeWd9UE7E Uxx6mJ6WJpv1HK/THEKtDnA8fWkEYXldfRdxoQobLnVp+Swec0TxetoARRoNXIp+kKPr ev8A== X-Gm-Message-State: AOJu0Yz5HLJk7V2HF+xvpFjI4yRjWq4dLyDwyELyIl1YhkAqSn8NPkiL kDQm9zOgSY1sjHWnKXaN4X1qJ76EWuS04JlK1xbmWh1CAzc1AxMTibFND183t/RdTBBvU90esk0 xSQoO X-Gm-Gg: AR+sD12MPP1BVWK6ufDtafXigQ5YDnzxL91mnBggCEUfmp4cxmIISYsiwpkDZkprq5U 3wQYpHcfYVgWSMtS56b7nCU3eRAbUjsA5OhRHdsXgOZNoMGLIBaSbvcq/yndWT9Z6rMYPdjfF5A 2CsRrAKJEQ7B25gUCDAtLW7h2q1R8MImJ5O40XrFpEMmumam+GnMk7iiSU4rVmm0ZXbl2/ZjQb+ naHgKaU5zRp+RaB4Yu35NuUc9dDTmgKs/mBu8l1VhsTSiWD0h5XW2JwZCky7Oa6ypwR1NjG07yt M+yKupALMLws2pFLnaW08wrgk+xkErnd0vofEUon6Wscoq+siBqAuDFpI5YlDYMy1P/jDVyajKq 53IAaqR1VQcIRdLKLJhdAilA2aHvB/eztHKmwugC24/xvHSD0S2RIr0SfBq1UJlivyQLQaqOMBQ 1yGoWp6nmlmVj9v/opFlj8yWdxaLtvlvn1jw== X-Received: by 2002:a17:90b:3e85:b0:381:50ab:1594 with SMTP id 98e67ed59e1d1-38ec6a489d1mr5541811a91.27.1784862381760; Thu, 23 Jul 2026 20:06:21 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH 5/6] target/arm: Set fgt in cpregs for FGWTE3 Date: Thu, 23 Jul 2026 20:06:15 -0700 Message-ID: <20260724030616.76180-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260724030616.76180-1-richard.henderson@linaro.org> References: <20260724030616.76180-1-richard.henderson@linaro.org> 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1033; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1033.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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: qemu development 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 @linaro.org) X-ZM-MESSAGEID: 1784862440314158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/cpregs-gcs.c | 5 +++-- target/arm/helper.c | 47 ++++++++++++++++++++++------------------- 2 files changed, 28 insertions(+), 24 deletions(-) diff --git a/target/arm/cpregs-gcs.c b/target/arm/cpregs-gcs.c index e31827342d..9c9ae9cd71 100644 --- a/target/arm/cpregs-gcs.c +++ b/target/arm/cpregs-gcs.c @@ -97,7 +97,7 @@ static const ARMCPRegInfo gcs_reginfo[] =3D { .fieldoffset =3D offsetof(CPUARMState, cp15.gcscr_el[2]) }, { .name =3D "GCSCR_EL3", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 6, .crn =3D 2, .crm =3D 5, .opc2 =3D 0, - .access =3D PL3_RW, + .access =3D PL3_RW, .fgt =3D FGT_GCSCR_EL3, .fieldoffset =3D offsetof(CPUARMState, cp15.gcscr_el[3]) }, =20 { .name =3D "GCSPR_EL0", .state =3D ARM_CP_STATE_AA64, @@ -119,7 +119,8 @@ static const ARMCPRegInfo gcs_reginfo[] =3D { .fieldoffset =3D offsetof(CPUARMState, cp15.gcspr_el[2]) }, { .name =3D "GCSPR_EL3", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 6, .crn =3D 2, .crm =3D 5, .opc2 =3D 1, - .access =3D PL3_RW, .writefn =3D gcspr_write, + .access =3D PL3_RW, .fgt =3D FGT_GCSPR_EL3, + .writefn =3D gcspr_write, .fieldoffset =3D offsetof(CPUARMState, cp15.gcspr_el[2]) }, =20 { .name =3D "GCSPUSHM", .state =3D ARM_CP_STATE_AA64, diff --git a/target/arm/helper.c b/target/arm/helper.c index d410a9a1ec..13c935ae6c 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -1013,7 +1013,8 @@ static const ARMCPRegInfo v7_cp_reginfo[] =3D { .resetvalue =3D 0 }, { .name =3D "MAIR_EL3", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 6, .crn =3D 10, .crm =3D 2, .opc2 =3D 0, - .access =3D PL3_RW, .fieldoffset =3D offsetof(CPUARMState, cp15.mair= _el[3]), + .access =3D PL3_RW, .fgt =3D FGT_MAIR_EL3, + .fieldoffset =3D offsetof(CPUARMState, cp15.mair_el[3]), .resetvalue =3D 0 }, /* * For non-long-descriptor page tables these are PRRR and NMRR; @@ -3685,7 +3686,7 @@ static const ARMCPRegInfo v8_cp_reginfo[] =3D { .type =3D ARM_CP_IO, .opc0 =3D 3, .opc1 =3D 6, .crn =3D 1, .crm =3D 3, .opc2 =3D 1, .resetvalue =3D 0, - .access =3D PL3_RW, + .access =3D PL3_RW, .fgt =3D FGT_MDCR_EL3, .writefn =3D mdcr_el3_write, .fieldoffset =3D offsetof(CPUARMState, cp15.mdcr_el3) }, { .name =3D "SDCR", .type =3D ARM_CP_ALIAS | ARM_CP_IO, @@ -4435,11 +4436,11 @@ static const ARMCPRegInfo el3_cp_reginfo[] =3D { .fieldoffset =3D offsetof(CPUARMState, cp15.mvbar) }, { .name =3D "TTBR0_EL3", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 6, .crn =3D 2, .crm =3D 0, .opc2 =3D 0, - .access =3D PL3_RW, .resetvalue =3D 0, + .access =3D PL3_RW, .fgt =3D FGT_TTBR0_EL3, .fieldoffset =3D offsetof(CPUARMState, cp15.ttbr0_el[3]) }, { .name =3D "TCR_EL3", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 6, .crn =3D 2, .crm =3D 0, .opc2 =3D 2, - .access =3D PL3_RW, + .access =3D PL3_RW, .fgt =3D FGT_TCR_EL3, /* no .writefn needed as this can't cause an ASID change */ .resetvalue =3D 0, .fieldoffset =3D offsetof(CPUARMState, cp15.tcr_el[3]) }, @@ -4461,7 +4462,7 @@ static const ARMCPRegInfo el3_cp_reginfo[] =3D { .fieldoffset =3D offsetof(CPUARMState, banked_spsr[BANK_MON]) }, { .name =3D "VBAR_EL3", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 6, .crn =3D 12, .crm =3D 0, .opc2 =3D 0, - .access =3D PL3_RW, .writefn =3D vbar_write, + .access =3D PL3_RW, .fgt =3D FGT_VBAR_EL3, .writefn =3D vbar_write, .fieldoffset =3D offsetof(CPUARMState, cp15.vbar_el[3]), .resetvalue =3D 0 }, { .name =3D "CPTR_EL3", .state =3D ARM_CP_STATE_AA64, @@ -4470,20 +4471,20 @@ static const ARMCPRegInfo el3_cp_reginfo[] =3D { .fieldoffset =3D offsetof(CPUARMState, cp15.cptr_el[3]) }, { .name =3D "TPIDR_EL3", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 6, .crn =3D 13, .crm =3D 0, .opc2 =3D 2, - .access =3D PL3_RW, .resetvalue =3D 0, + .access =3D PL3_RW, .fgt =3D FGT_TPIDR_EL3, .fieldoffset =3D offsetof(CPUARMState, cp15.tpidr_el[3]) }, { .name =3D "AMAIR_EL3", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 6, .crn =3D 10, .crm =3D 3, .opc2 =3D 0, - .access =3D PL3_RW, .type =3D ARM_CP_CONST, - .resetvalue =3D 0 }, + .access =3D PL3_RW, .fgt =3D FGT_AMAIR_EL3, + .type =3D ARM_CP_CONST, .resetvalue =3D 0 }, { .name =3D "AFSR0_EL3", .state =3D ARM_CP_STATE_BOTH, .opc0 =3D 3, .opc1 =3D 6, .crn =3D 5, .crm =3D 1, .opc2 =3D 0, - .access =3D PL3_RW, .type =3D ARM_CP_CONST, - .resetvalue =3D 0 }, + .access =3D PL3_RW, .fgt =3D FGT_AFSR0_EL3, + .type =3D ARM_CP_CONST, .resetvalue =3D 0 }, { .name =3D "AFSR1_EL3", .state =3D ARM_CP_STATE_BOTH, .opc0 =3D 3, .opc1 =3D 6, .crn =3D 5, .crm =3D 1, .opc2 =3D 1, - .access =3D PL3_RW, .type =3D ARM_CP_CONST, - .resetvalue =3D 0 }, + .access =3D PL3_RW, .fgt =3D FGT_AFSR1_EL3, + .type =3D ARM_CP_CONST, .resetvalue =3D 0 }, }; =20 #ifndef CONFIG_USER_ONLY @@ -5051,15 +5052,17 @@ static void gpcbw_write(CPUARMState *env, const ARM= CPRegInfo *ri, static const ARMCPRegInfo rme_reginfo[] =3D { { .name =3D "GPCCR_EL3", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 6, .crn =3D 2, .crm =3D 1, .opc2 =3D 6, - .access =3D PL3_RW, .writefn =3D gpccr_write, .resetfn =3D gpccr_res= et, + .access =3D PL3_RW, .fgt =3D FGT_GPCCR_EL3, + .writefn =3D gpccr_write, .resetfn =3D gpccr_reset, .fieldoffset =3D offsetof(CPUARMState, cp15.gpccr_el3) }, { .name =3D "GPCBW_EL3", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 6, .crn =3D 2, .crm =3D 1, .opc2 =3D 5, - .access =3D PL3_RW, .writefn =3D gpcbw_write, + .access =3D PL3_RW, .fgt =3D FGT_GPCBW_EL3, .writefn =3D gpcbw_write, .fieldoffset =3D offsetof(CPUARMState, cp15.gpcbw_el3) }, { .name =3D "GPTBR_EL3", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 6, .crn =3D 2, .crm =3D 1, .opc2 =3D 4, - .access =3D PL3_RW, .fieldoffset =3D offsetof(CPUARMState, cp15.gptb= r_el3) }, + .access =3D PL3_RW, .fgt =3D FGT_GPTBR_EL3, + .fieldoffset =3D offsetof(CPUARMState, cp15.gptbr_el3) }, { .name =3D "MFAR_EL3", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 6, .crn =3D 6, .crm =3D 0, .opc2 =3D 5, .access =3D PL3_RW, .fieldoffset =3D offsetof(CPUARMState, cp15.mfar= _el3) }, @@ -6119,7 +6122,7 @@ static const ARMCPRegInfo sctlr2_reginfo[] =3D { .fieldoffset =3D offsetof(CPUARMState, cp15.sctlr2_el[2]) }, { .name =3D "SCTLR2_EL3", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 6, .opc2 =3D 3, .crn =3D 1, .crm =3D 0, - .access =3D PL3_RW, .writefn =3D sctlr2_el3_write, + .access =3D PL3_RW, .fgt =3D FGT_SCTLR2_EL3, .writefn =3D sctlr2_el3= _write, .fieldoffset =3D offsetof(CPUARMState, cp15.sctlr2_el[3]) }, }; =20 @@ -6245,7 +6248,7 @@ static const ARMCPRegInfo s1pie_reginfo[] =3D { .fieldoffset =3D offsetof(CPUARMState, cp15.pir_el[2]) }, { .name =3D "PIR_EL3", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 6, .opc2 =3D 3, .crn =3D 10, .crm =3D 2, - .access =3D PL3_RW, + .access =3D PL3_RW, .fgt =3D FGT_PIR_EL3, .fieldoffset =3D offsetof(CPUARMState, cp15.pir_el[3]) }, { .name =3D "PIRE0_EL1", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 0, .opc2 =3D 2, .crn =3D 10, .crm =3D 2, @@ -6303,7 +6306,7 @@ static const ARMCPRegInfo aie_reginfo[] =3D { .fieldoffset =3D offsetof(CPUARMState, cp15.mair2_el[2]) }, { .name =3D "MAIR2_EL3", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 6, .crn =3D 10, .crm =3D 1, .opc2 =3D 1, - .access =3D PL3_RW, + .access =3D PL3_RW, .fgt =3D FGT_MAIR2_EL3, .fieldoffset =3D offsetof(CPUARMState, cp15.mair2_el[3]) }, =20 { .name =3D "AMAIR2_EL1", .state =3D ARM_CP_STATE_AA64, @@ -6319,7 +6322,7 @@ static const ARMCPRegInfo aie_reginfo[] =3D { .type =3D ARM_CP_CONST, .resetvalue =3D 0 }, { .name =3D "AMAIR2_EL3", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 6, .crn =3D 10, .crm =3D 3, .opc2 =3D 1, - .access =3D PL3_RW, + .access =3D PL3_RW, .fgt =3D FGT_AMAIR2_EL3, .type =3D ARM_CP_CONST, .resetvalue =3D 0 }, }; =20 @@ -7046,7 +7049,7 @@ void register_cp_regs_for_features(ARMCPU *cpu) .resetvalue =3D arm_feature(env, ARM_FEATURE_AARCH64) }, { .name =3D "SCTLR_EL3", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 6, .crn =3D 1, .crm =3D 0, .opc2 =3D = 0, - .access =3D PL3_RW, + .access =3D PL3_RW, .fgt =3D FGT_SCTLR_EL3, .raw_writefn =3D raw_write, .writefn =3D sctlr_write, .fieldoffset =3D offsetof(CPUARMState, cp15.sctlr_el[3]), .resetvalue =3D cpu->reset_sctlr }, @@ -7421,8 +7424,8 @@ void register_cp_regs_for_features(ARMCPU *cpu) .resetvalue =3D 0 }, { .name =3D "ACTLR_EL3", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 6, .crn =3D 1, .crm =3D 0, .opc2 =3D = 1, - .access =3D PL3_RW, .type =3D ARM_CP_CONST, - .resetvalue =3D 0 }, + .access =3D PL3_RW, .fgt =3D FGT_ACTLR_EL3, + .type =3D ARM_CP_CONST, .resetvalue =3D 0 }, }; define_arm_cp_regs(cpu, auxcr_reginfo); if (cpu_isar_feature(aa32_ac2, cpu)) { --=20 2.43.0 From nobody Fri Jul 24 04:55:14 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=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1784862478; cv=none; d=zohomail.com; s=zohoarc; b=h3mL6yEAmp9PLyYnK4JNhqRVvS1o5G2GE7pAHGFDAM9/9jUQn/0NtMLHcbYQG1PEloxobumP636YfFmFXZkhkAtjcWvdJgXGvpnkpJpx+u6z3x/6TPVhb0SiI+fYi85YlJ1hLaqDPNFGjnkgIu0+pzG/U200rzUs1I5xJjqdIpo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784862478; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=vZ3wJDJYBL3Ih5BppqGHeGHu7Wqrcj0x1UTiHapnNLU=; b=QwKAZjZsgnO/hXW/4F0OdI5fRervcze9qM3hYdVVkg1v5WF+SqstQqXv/HUtgrCEVWTyf7p2q5QxRjQ2gdLO1E5k1xBYsF1PXzhlrfF2Y9dSYXxO31evc36Mf66O4dGUYNb6a8neVl5AThoUmsk5cwzNoD9bXVdWNpqDIV5jlPA= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178486247876778.40820563792647; Thu, 23 Jul 2026 20:07:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wn6F3-0003mr-1H; Thu, 23 Jul 2026 23:06:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wn6Ez-0003kR-Cx for qemu-devel@nongnu.org; Thu, 23 Jul 2026 23:06:25 -0400 Received: from mail-pj1-x102a.google.com ([2607:f8b0:4864:20::102a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wn6Ex-00085V-TR for qemu-devel@nongnu.org; Thu, 23 Jul 2026 23:06:25 -0400 Received: by mail-pj1-x102a.google.com with SMTP id 98e67ed59e1d1-384930ca5e2so1387960a91.3 for ; Thu, 23 Jul 2026 20:06:23 -0700 (PDT) Received: from stoup.. (174-21-93-59.tukw.qwest.net. [174.21.93.59]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-38f03ad0e0csm750777a91.7.2026.07.23.20.06.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Jul 2026 20:06:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1784862382; x=1785467182; darn=nongnu.org; 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:content-type; bh=vZ3wJDJYBL3Ih5BppqGHeGHu7Wqrcj0x1UTiHapnNLU=; b=CIZoLbS+7WnxJkQ5tEOLmRvCDEbceyn1YyuG+OGlH79ZaGeWlKMo+aO7diXvQFJr+W g7ALZ/EpfIgrBo2hr59NFYCs9YAoIWu1cmr6syCRcPE8mVHNkq8pIlpdGy+2kgqp5oAJ vZPXXm2sbjXjVg2qrQpja/noqii/MdcjOdc9jPTPacBPAWvt1Tn043BpXUMuKiFzfLME uoCfNkndrV6DvGfC2uG+agK0LarXcKiAerNnnKvJ3HnYLBNSgvXjTsH/PX1jTNzePlQp AF0S9Bhq/9MGGOgdI9vjsiJTUsWIhye2YnvNzcbn/uRKd1WTB18hHKu8Z0io3xJ695BE g0YA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784862382; x=1785467182; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=vZ3wJDJYBL3Ih5BppqGHeGHu7Wqrcj0x1UTiHapnNLU=; b=Q1/goeZsH3bxPvO/7xZrA7Xvqe3/yU6LCnVMxlZiit1+mCTp/kFneIDl1ljm6l1Zi2 M4QgBXwlJTAnMm+Lm2Pn1YFhhCforfq+eajPsbOhbLXgmO+XYSrQjuBfAvsVQT0qcbCb 8tunmOxGOkKoeNq1uFZD05iacYKN9eG4/CGuz+yfX9BW3MstrZRw82Vxp2IupUKp3K0Z dJsyQXiay3C42KPS2xUpxPdM+1npOxnAMISGs1/LusLlxBr1lboGGS+uugQVFso619Vk oVNZUndfQP7oL2+q9BwNxxpGbSFqhV3CGctdmHZqnClIpKZH9gsZyN9p9dJRVd5WmYgO GIEA== X-Gm-Message-State: AOJu0YztLFgmYw08N1jlTJoXxBd1AEL9NZpdDH/DeUzepmDQBXQwIusc o0VbHfFi+Bpcb7DEOspP2vJMtPxYRUdXRIwBvvTt6gbYQ4f95U8Eta4Tn86XGtKulOYpnxJj0YT xckEi X-Gm-Gg: AR+sD10NOtvt8vgbBX+TZcf5T1Z/xhYI4HqLugqgh7dhlNjyug75MGHFTHzAAal5lmb Npvfnmj7cJs75s9Zt7z4T3iITrASFz7A5D+EAzrIMrJKbpR8W4nJ8AAXlcZwizR7XGMm7iw8YTm PR2TfQLwEBy8Dw+K7HKeDkUt1YWYieQ72rjaRFuq8NmBd/s2Aj2Hfqgsnm4u/yNDTPNrwBY6qZd yQC6vmxglitcXEO7GJy4H8zzEL1Yl8zwB6VuDVLHYaRRnlHwIRgLiLUx5uZS9EbuzHEpHPtxQOJ nYFXXMuF7/XcPi4HZm6VAB0xkic3DWclhBPbxOdwUe8zJeoxprMVcbQKST1H3+f8e3y+D2YR/rD 2r4vVJTPY8pP65RQYCoqHA4lzL0unJq1xgDIVVDHlGw2tmgkxSbEZXOuc8P/2SbMiXsB8c1sxZ5 pmVxWCFAR7He/g2A3JVa+ZrrRCWGOeYehvdg== X-Received: by 2002:a17:90b:4ad1:b0:38e:11ba:992e with SMTP id 98e67ed59e1d1-38ec663d91emr5507518a91.35.1784862382578; Thu, 23 Jul 2026 20:06:22 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH 6/6] target/arm: Enable FEAT_FGWTE3 for -cpu max Date: Thu, 23 Jul 2026 20:06:16 -0700 Message-ID: <20260724030616.76180-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260724030616.76180-1-richard.henderson@linaro.org> References: <20260724030616.76180-1-richard.henderson@linaro.org> 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102a; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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: qemu development 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 @linaro.org) X-ZM-MESSAGEID: 1784862480340158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/cpu64.c | 1 + docs/system/arm/emulation.rst | 1 + 2 files changed, 2 insertions(+) diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c index 8a3ebf6321..a0d8d0bac8 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1362,6 +1362,7 @@ void aarch64_max_tcg_initfn(Object *obj) =20 t =3D GET_IDREG(isar, ID_AA64MMFR4); t =3D FIELD_DP64(t, ID_AA64MMFR4, ASID2, 1); /* FEAT_ASID2 */ + t =3D FIELD_DP64(t, ID_AA64MMFR4, FGWTE3, 1); /* FEAT_FGWTE3 */ SET_IDREG(isar, ID_AA64MMFR4, t); =20 t =3D GET_IDREG(isar, ID_AA64ZFR0); diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst index 9930974a50..9528afbb18 100644 --- a/docs/system/arm/emulation.rst +++ b/docs/system/arm/emulation.rst @@ -78,6 +78,7 @@ the following architecture extensions: - FEAT_FAMINMAX (Floating-point maximum and minimum absolute value instruc= tions) - FEAT_FCMA (Floating-point complex number instructions) - FEAT_FGT (Fine-Grained Traps) +- FEAT_FGWTE3 (Fine-Grained Write Trap EL3) - FEAT_FHM (Floating-point half-precision multiplication instructions) - FEAT_FP (Floating Point extensions) - FEAT_FP16 (Half-precision floating-point data processing) --=20 2.43.0