From nobody Sat Sep 26 21:36:41 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1788284134; cv=none; d=zohomail.com; s=zohoarc; b=boIH7g8Ib7U6C4EwMiRseywoVMOieI7p/h1LF0o/o/dTSOZwxe71zFmwTs5Bmr8WWPnCnSHHWQzHiCTgTxUPh1cRlbeJ2FTEp7p6OhrTCJ94T4GW1fs7fh1g/UzrGsGXmOKODzYLwdTkChPFOx+FfxpiuJSAzhditujU+wlHKWY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788284134; h=Content-Type: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=Q+yyBO814kI7Br828SGk8MSYeoA3mhhovbndqb0gy1g=; b=d+mWSDac9RGX/xvwkOrEBTYiN/YWd/dl8FvOkRlJWbhCEWIvUgdprAY/g/a9RfrLinEcjBrQdTLeTZa0ScwHRBWWvRLxyl03ywgJmqkpLczvNgnOpzJGYi8v5ZXmF9v56d8aG/SuNqmHjrntYsFiSe1x0RTwl3wj/HcEuQg3Dxk= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1788284134615394.37104557780333; Tue, 1 Sep 2026 10:35:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x1SN8-0005Zh-Nv; Tue, 01 Sep 2026 13:34:10 -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 1x1SN1-0005Xk-MV for qemu-devel@nongnu.org; Tue, 01 Sep 2026 13:34:04 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x1SMy-000807-UU for qemu-devel@nongnu.org; Tue, 01 Sep 2026 13:34:03 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 681H5mfB2668398 for ; Tue, 1 Sep 2026 17:33:58 GMT Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ge1wp8hfy-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 01 Sep 2026 17:33:57 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-395543dc382so122940a91.0 for ; Tue, 01 Sep 2026 10:33:57 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-3286f95a160sm39702934eec.18.2026.09.01.10.33.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Sep 2026 10:33:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= Q+yyBO814kI7Br828SGk8MSYeoA3mhhovbndqb0gy1g=; b=Z3ZdbH8WD/GfRGfM nTZM4bV54oZYB4vOHhFly7BoeOWUNOi2BbIf7KpDTXxpmwWfLt4A8ub1TsCbUVCq 0Y/DXu3zcFFwx2YYmLe4d2cECS3Yr3Dn0clt3we7Tw7jS3HXMe2Pssurpqfcmp33 ANtdsTeHqYKJwiAEp4JB7XUYUbo7n86x/wg7unZbBaef+dMJZMHSvq2WNEVp9col G1xfLfWx0XSczu+gc0XKqMXWN9z6m0An7msHTGgyiVLvnQYsfZ07L+R8YcgecHcg khOcVVzXlGjSTQ89XBTTGewu/+DZgGhAYHJmeGGj2+iaWFUHhM7xYk5ny9m9gmuO m0d7fg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1788284037; x=1788888837; darn=nongnu.org; h=content-transfer-encoding:content-type: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=Q+yyBO814kI7Br828SGk8MSYeoA3mhhovbndqb0gy1g=; b=NHgHS5r5iByhm2qiDKbAtQsqhNXI1VqzLtpHYlhiO+rs8l+7J51x0xczZaaxyo2Jvt e+IVSqA9CPkPW5QJsNroFqdejjBCjeIFh2efKS8Fkal+RRBGeElOeveyJy522xB4Tjy7 bmrpCJpbJZG/5bD3prvLucFsd2FQf8ABV/RpBPCY+tXpMunItIsPL/iB11s+oF4Dd8EG Y50qmQTLxeQ60WuhdRvIHGP4iWW3Bh6HQeVqyJuprB1vvT5Ac+9Cm1aUBvZRtzztpGQ9 SKQhu2SkTN89VBEV5PiJlSj7CVAByBsXfWQvQUDsyemLtRbBaHqlHGQb9q6gwrOriKit G97A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788284037; x=1788888837; h=content-transfer-encoding:content-type: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=Q+yyBO814kI7Br828SGk8MSYeoA3mhhovbndqb0gy1g=; b=YS0iB7PR6uNMkMDAHkn8vGeYuf0McfXp/BN+ZcAs2kDaGmbB+OoS4ytdZbFSNrWb37 ioxC0epttsnw1IQbtxb4GFIGGD7qD2Tq+vjdkalhbDYe9Df0aewY9n5B1OU0mKQPsO9k p3w9UzxM1G8LiGtFPANokOLkvGNFSSN3dGObd/2iYkgmwG681OQ8JNvKxGSMORPVTOwq 3x5SmPTrr25+Qs5Q7FGOCcsPeGozguDwusL7HtJGp4WrCSiwxEbLv3xMsbHpRNSuRlZr jo5TVws+zt/Y1Qx0EFSEum9pQuoGh6vmVXm31vEq100KXEkKBIEQArM2qhrJi0BJuFsp K9KA== X-Gm-Message-State: AFuF++l7Vjev8Db11A6HQsZ0bc8brj2gEwuAbR7ht/XJ7AlVTkyPiI0f /AkX2yAbbNoiyXf+Y3SykN4ZObAOHTXhD/Y9Iu9Z3yzbw1IeeGEMPruHvrBnPnCXtLSlQhekYVE tsIPGxPkI1zdchEvTaTP3hJM7AWXycPJg8Bxfx8zGFBB7pqLVZxQOMNaC7lcPNBCUyg== X-Gm-Gg: AYBFou21VQ4mnqpcvmRnBP1Cg2c+C9LXsUPtXy9NtKupqvKsK+8J/ATox3Hg1CIqudB jZ9Nvr8SacpgjFJliBlDloR7cV7k1vGRbVqA4jdmq0oEwh/GHO/GDM7eLPHtgz8KfI+cuxt2eX3 G8tKt2N3VbHYzaIK3tntAhdoo8D3y8Z3rSt265P8pajLoFg5xYQ77TR91X4opSmBC4/40Ax/M2H GrFlgmqlRBhVsPBUWwHfbn2W26hZvkNZIy/6TrV10xnfT7nf+ImmS21VrXY6W8h7qj7zUGvehrP 8w1Gh8pp73CB5Ij9/pqICHGSPWL4BPp4zlHTOs41chLc0vg36t24b2U54PEUAZ9Ip9JvOsr0/Ul k8Pu9edIxZ3fzlhSKXJEgMWveBHrLe9v62SqB7lIqdtg3y82T X-Received: by 2002:a17:90b:4a4b:b0:398:9be6:f999 with SMTP id 98e67ed59e1d1-39907e17dcdmr13216138a91.24.1788284037224; Tue, 01 Sep 2026 10:33:57 -0700 (PDT) X-Received: by 2002:a17:90b:4a4b:b0:398:9be6:f999 with SMTP id 98e67ed59e1d1-39907e17dcdmr13216053a91.24.1788284036623; Tue, 01 Sep 2026 10:33:56 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , Brian Cain , Laurent Vivier , Helge Deller Subject: [PATCH v2 01/11] target/hexagon: align exceptions for user/sysemu Date: Tue, 1 Sep 2026 10:33:43 -0700 Message-Id: <20260901173353.200474-2-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260901173353.200474-1-brian.cain@oss.qualcomm.com> References: <20260901173353.200474-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=F8JnsKhN c=1 sm=1 tr=0 ts=6a970c85 cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=YFOaZ8uGGOB_e2P6zNAA:9 a=QEXdDO2ut3YA:10 a=iS9zxrgQBfv6-_F4QbHw:22 X-Proofpoint-GUID: fbkky-MYfn2ZGUZYZtP-720kT0dUpuaw X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAxMDE1NSBTYWx0ZWRfX0np3Dp91r7tV bGyuAGq4hQDD9fHKwbb7q1zeX6rktgHR9CxR/Fv+2mi+i64DHGrpladcOcM3JSbgRdp+qYYn7V6 atXrakMBnunCvz81FU+Y9n436Rq7N5I= X-Proofpoint-ORIG-GUID: fbkky-MYfn2ZGUZYZtP-720kT0dUpuaw X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAxMDE1NSBTYWx0ZWRfX0uY0PHT/JZYo /cqxmtdYig7DLbz7NLvDS/X+FPzcTXTODlWYfrOpU2CN6fV5MgJj7BmOQ10FHPVFPON428IyUao IgG1aq93v6hG6HEym7e2RT7kwtxSmF5oElH5Ytr2Wkzn6oo75J2S/h9aFafR7jZZCFbS4GepxpB BQQfQEO8qicBTiIHaIssNY4Nka/oowl+26/NBPJCFlH/EZAl05KjFS0p69xw1LrufUmGScAy0h2 e0SnWBiMlZcq/FOrr5pTUO7rEIvSJ709qHV+1iR+dQg41JCx6f/w1c2FHXrVHnmF4Ar3s/zlcUR 6Do4ptqg8jCoB7GWK+RxrKd14ZyX9qJI6swHHyTt7AADhc1Q5izcyaBuF9U+pwivYDnsm+cd30T GRwWHutJPTonYFGfkH79ad0OunoF+qvq/vgPTxZKAKnu1wEe9RpAYxWD0XfKinAqTVMDqrWfwWI TtUJ0qOMdTFshHSbiFw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-01_05,2026-09-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 priorityscore=1501 spamscore=0 lowpriorityscore=0 impostorscore=0 adultscore=0 malwarescore=0 suspectscore=0 clxscore=1015 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609010155 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=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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 @qualcomm.com) X-ZM-MESSAGEID: 1788284134932158500 System mode reports an exception as cs->exception_index =3D HEX_EVENT_* plus env->cause_code =3D HEX_CAUSE_*, but translated code in user mode put the c= ause code straight into exception_index, so cpu_loop() was decoding both forms. gen_exception_decode_fail() and the misaligned-PC check used the raw form unconditionally, so in system mode the cause code was misread as an event number. Use the {event, cause} everywhere and drop the duplicated cases from cpu_loop(), which fixes HEX_CAUSE_PRIV_USER_NO_SINSN and HEX_CAUSE_PRIV_USER_NO_GINSN. The misaligned PC is no longer zeroed on its way out either, so it reaches the signal frame as si_addr instead of whatever r31 held. Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- target/hexagon/translate.h | 2 +- linux-user/hexagon/cpu_loop.c | 30 +++++++++++------------------- target/hexagon/cpu.c | 3 ++- target/hexagon/translate.c | 27 +++++++++------------------ 4 files changed, 23 insertions(+), 39 deletions(-) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index 3c5773e2c73..00de2b0d2ec 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -330,7 +330,7 @@ extern TCGv_i32 hex_t_sreg[NUM_SREGS]; #endif =20 =20 -void hex_gen_exception_end_tb(DisasContext *ctx, int excp); +void hex_gen_exception_end_tb(DisasContext *ctx, int cause); =20 void process_store(DisasContext *ctx, int slot_num); =20 diff --git a/linux-user/hexagon/cpu_loop.c b/linux-user/hexagon/cpu_loop.c index d7f73439dbc..e4ef97a1184 100644 --- a/linux-user/hexagon/cpu_loop.c +++ b/linux-user/hexagon/cpu_loop.c @@ -66,21 +66,22 @@ void cpu_loop(CPUHexagonState *env) case HEX_CAUSE_FETCH_NO_UPAGE: case HEX_CAUSE_PRIV_NO_UREAD: case HEX_CAUSE_PRIV_NO_UWRITE: - force_sig_fault(TARGET_SIGSEGV, TARGET_SEGV_MAPERR, - env->gpr[HEX_REG_PC]); - - break; + force_sig_fault(TARGET_SIGSEGV, TARGET_SEGV_MAPERR, + env->gpr[HEX_REG_PC]); + break; case HEX_CAUSE_PRIV_USER_NO_GINSN: case HEX_CAUSE_PRIV_USER_NO_SINSN: case HEX_CAUSE_INVALID_PACKET: - force_sig_fault(TARGET_SIGILL, TARGET_ILL_ILLOPC, - env->gpr[HEX_REG_PC]); - break; + case HEX_CAUSE_REG_WRITE_CONFLICT: + force_sig_fault(TARGET_SIGILL, TARGET_ILL_ILLOPC, + env->gpr[HEX_REG_PC]); + break; case HEX_CAUSE_MISALIGNED_LOAD: case HEX_CAUSE_MISALIGNED_STORE: - force_sig_fault(TARGET_SIGBUS, TARGET_BUS_ADRALN, - env->gpr[HEX_REG_PC]); - break; + case HEX_CAUSE_PC_NOT_ALIGNED: + force_sig_fault(TARGET_SIGBUS, TARGET_BUS_ADRALN, + env->gpr[HEX_REG_PC]); + break; default: EXCP_DUMP(env, "\nqemu: unhandled CPU precise exception " "cause code 0x%x - aborting\n", @@ -88,15 +89,6 @@ void cpu_loop(CPUHexagonState *env) exit(EXIT_FAILURE); } break; - case HEX_CAUSE_PC_NOT_ALIGNED: - force_sig_fault(TARGET_SIGBUS, TARGET_BUS_ADRALN, - env->gpr[HEX_REG_R31]); - break; - case HEX_CAUSE_INVALID_PACKET: - case HEX_CAUSE_REG_WRITE_CONFLICT: - force_sig_fault(TARGET_SIGILL, TARGET_ILL_ILLOPC, - env->gpr[HEX_REG_PC]); - break; case EXCP_ATOMIC: cpu_exec_step_atomic(cs); break; diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 7067e5b70f7..0bbefc2fb87 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -323,7 +323,8 @@ static TCGTBCPUState hexagon_get_tb_cpu_state(CPUState = *cs) hex_flags =3D FIELD_DP32(hex_flags, TB_FLAGS, IS_TIGHT_LOOP, 1); } if (pc & PCALIGN_MASK) { - hexagon_raise_exception_err(env, HEX_CAUSE_PC_NOT_ALIGNED, 0); + env->cause_code =3D HEX_CAUSE_PC_NOT_ALIGNED; + hexagon_raise_exception_err(env, HEX_EVENT_PRECISE, pc); } =20 #ifndef CONFIG_USER_ONLY diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 06a8159d283..5cfa60ca302 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -73,8 +73,8 @@ TCGv hex_vstore_pending[VSTORES_MAX]; #ifndef CONFIG_USER_ONLY TCGv_i32 hex_greg[NUM_GREGS]; TCGv_i32 hex_t_sreg[NUM_SREGS]; -TCGv_i32 hex_cause_code; #endif +static TCGv_i32 hex_cause_code; =20 static const char * const hexagon_prednames[] =3D { "p0", "p1", "p2", "p3" @@ -128,19 +128,14 @@ intptr_t ctx_tmp_vreg_off(DisasContext *ctx, int regn= um, return offset; } =20 -static void gen_exception(int excp, uint32_t PC) +static void gen_precise_exception(int cause, uint32_t PC) { - gen_helper_raise_exception(tcg_env, tcg_constant_i32(excp), + tcg_gen_movi_i32(hex_cause_code, cause); + gen_helper_raise_exception(tcg_env, tcg_constant_i32(HEX_EVENT_PRECISE= ), tcg_constant_i32(PC)); } =20 #ifndef CONFIG_USER_ONLY -static inline void gen_precise_exception(int excp, uint32_t PC) -{ - tcg_gen_movi_i32(hex_cause_code, excp); - gen_exception(HEX_EVENT_PRECISE, PC); -} - static void gen_pcycle_counters(DisasContext *ctx) { if (ctx->pcycle_enabled) { @@ -224,14 +219,10 @@ static void gen_end_tb(DisasContext *ctx) ctx->base.is_jmp =3D DISAS_NORETURN; } =20 -void hex_gen_exception_end_tb(DisasContext *ctx, int excp) +void hex_gen_exception_end_tb(DisasContext *ctx, int cause) { gen_exec_counters(ctx); -#ifdef CONFIG_USER_ONLY - gen_exception(excp, ctx->pkt.pc); -#else - gen_precise_exception(excp, ctx->pkt.pc); -#endif + gen_precise_exception(cause, ctx->pkt.pc); ctx->base.is_jmp =3D DISAS_NORETURN; } =20 @@ -239,13 +230,13 @@ void hex_gen_exception_end_tb(DisasContext *ctx, int = excp) * Generate exception for decode failures. Unlike gen_exception_end_tb, * this is used when decode fails before ctx->next_PC is initialized. */ -static void gen_exception_decode_fail(DisasContext *ctx, int nwords, int e= xcp) +static void gen_exception_decode_fail(DisasContext *ctx, int nwords, int c= ause) { target_ulong fail_pc =3D ctx->base.pc_next + nwords * sizeof(uint32_t); =20 gen_exec_counters(ctx); tcg_gen_movi_tl(hex_gpr[HEX_REG_PC], fail_pc); - gen_exception(excp, fail_pc); + gen_precise_exception(cause, fail_pc); ctx->base.is_jmp =3D DISAS_NORETURN; ctx->base.pc_next =3D fail_pc; } @@ -1361,9 +1352,9 @@ void hexagon_translate_init(void) offsetof(CPUHexagonState, llsc_val), "llsc_val"); hex_llsc_val_i64 =3D tcg_global_mem_new_i64(tcg_env, offsetof(CPUHexagonState, llsc_val_i64), "llsc_val_i64"); -#ifndef CONFIG_USER_ONLY hex_cause_code =3D tcg_global_mem_new_i32(tcg_env, offsetof(CPUHexagonState, cause_code), "cause_code"); +#ifndef CONFIG_USER_ONLY hex_cycle_count =3D tcg_global_mem_new_i64(tcg_env, offsetof(CPUHexagonState, t_cycle_count), "t_cycle_count"); #endif --=20 2.34.1 From nobody Sat Sep 26 21:36:41 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1788284095; cv=none; d=zohomail.com; s=zohoarc; b=H1O8uCH8p4kr/8iZbKgh582YiCS73l//ggmoLWRlMg+3eiJ2lr7eqRrRQhhg6/q0VNepMLnYNQMxRlIRLTGQW/S8VOLnuRYN/mxOCpClqww/Umql2yPVvvABMGbeqrWnxihS1id0xSf2pAMaXZLBQr6hx7n2BxdS0uI+sNOQpbo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788284095; h=Content-Type: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=uXO3tne317bGrEZCKuTBMVZVrng3uc6zCucp+Ub/ZgE=; b=A1CkCgzAHuET0Qyhys2pB6iwNPhh9BOpn9zQ7FCZrPMz67tRuKxZOYVmRlAVTXpABo/F/gLbOaT6jmrtV0xmXXe7AW8fokBZCTb3wDtP6bUAP+Qa2o0fkV1CaLzJDhIWeH63ibIENSDXCXYqbNGPBDAfKOGah5Nm1km4w7jVLM4= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1788284095216206.42751968671257; Tue, 1 Sep 2026 10:34:55 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x1SN9-0005a0-6G; Tue, 01 Sep 2026 13:34:11 -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 1x1SN1-0005Xj-LU for qemu-devel@nongnu.org; Tue, 01 Sep 2026 13:34:04 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x1SMz-00080H-P6 for qemu-devel@nongnu.org; Tue, 01 Sep 2026 13:34:03 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 681H6EMc3048057 for ; Tue, 1 Sep 2026 17:34:00 GMT Received: from mail-pg1-f200.google.com (mail-pg1-f200.google.com [209.85.215.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gdp8fus31-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 01 Sep 2026 17:33:59 +0000 (GMT) Received: by mail-pg1-f200.google.com with SMTP id 41be03b00d2f7-c856470fe9fso110061a12.2 for ; Tue, 01 Sep 2026 10:33:59 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-3286f95a160sm39702934eec.18.2026.09.01.10.33.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Sep 2026 10:33:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= uXO3tne317bGrEZCKuTBMVZVrng3uc6zCucp+Ub/ZgE=; b=T3DmOK/7xAV1xU5h zxM9/79cDeqNDp7HCrnaCcy22To4rOS73URjWP4mCSxuNuetLNsNKBQE/Omubvaa tloX9pzJt32Ffmk8xlCqYlKBTkyJd8+xpYOV8gbrmSgKpRKxNFbiAdlWAuX46kKO zjbBK/YGsSlpwPI3DD6NEqmmwjUxAli+K5u/X2Lg7aks3zIump8ae3Wxi381aABx VB95AFG19ZNVQo5eKGGMeAi5xMXAaWly8EHl3w+U14dOpmWwraha7b3TG+8614Kn aOlucWwm1f56htcpjhgiIMTFCn4bRMOxnIx8C59TQbUKqUH/uk1jjCOXB7BIPS5q SFtNnA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1788284039; x=1788888839; darn=nongnu.org; h=content-transfer-encoding:content-type: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=uXO3tne317bGrEZCKuTBMVZVrng3uc6zCucp+Ub/ZgE=; b=NTa4zwtk3Zys5gDDlY8TAhDQoGwFvGf3aZnRCwamM/gqbYv+pwl9rlAomKcHj0/Gfc WoTF4u0AVl+w1sZWxVHlFJ15Sx2T/tbpkBj1nUuFGEK7SNxIsgeNX51y7TcFdH6pfxYO j/DP1NnreqjqcWr+XnKfwUgGY7fxFjAXhN7wAxwAM+N8k4gyDuW66NVAxSQFB7u2JGU3 5vhynBkvpbD/RBs2PQVIy7gYgQPNTdJu9zgWMn0J9WGS1oP5zpPlVAFHrleOfjOlxoZn mK3X/0lK3PcM91/KxUx9OLcoy86BrA1jHkSwLKiDlQ7MhiiNL2oE1iBKM2sDDYFPb6kT O2ew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788284039; x=1788888839; h=content-transfer-encoding:content-type: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=uXO3tne317bGrEZCKuTBMVZVrng3uc6zCucp+Ub/ZgE=; b=Koa86a17zktDFZQkwHuo7Khm2NwsvBzG//StoEnRQ4mb49Wuh9j07ioCVyzbkST501 u+txhHxojfWydKz4EMQ5EtwFjTqyo8W4A51l9sB0WxtN7vEkVWrqP7MKIXslfZ6vOB4i klmu21MzHLITgA4RQh3N+77Iz1FtEUEAVU4YlqRAs879jm8jXw9Fxhfc4PR9L6FHFspI b81cYV5qLpt/HHGSJv13ZyS6q6ZnUuH6+FiZgodq9bRp3MwRGxiFRkBjb/fYGrLF6djf 3wuPG4/scNUI+yVdX2P8C4RPo1BkZWXqg5TzfLN8HSvHzmkgmse8CEF2WFszqs7Vfg5a 583w== X-Gm-Message-State: AFuF++mbZJjvvCliw7ARxdgbuC0Z9A6D2ZkJyKgzTRBYGP1JR2pfJGx6 a9XERqPKOap54BHle2ocKflYQrkxJZsSgwQv0tf8VmhtbGoewP8MfHwzqDA+2tH90UicBGN4BYv 6Sr27T9n4vjcDm11H0LyZt0vk46HcE3AtdggRaxX1YhG2Jx8TFTu84rcTJTbNPWh+rw== X-Gm-Gg: AYBFou3eGuoBNnULRfHnVLepKDzg6Mq7L4LNqvUDeEa+GTCvCoqwQw/AHrzOn6E6JX2 txbhF3V21z14mNmbfYeo0n0nuyubowQlfu4hJBL9gvVHUQ4IY+FQUo0IhtR2cX30g/BfaPztqQk 4QkXt+rL8rCOVsVOgg6KNG8/ofkCmJULHnBkxCyQbU0GeYER3DDmKahNra9DxkR3wA7irYaeZUb /6gGDnDWDolG9QZsV0MSMWJmytFTKlv2Vxm2/q3/HQLy2tcuxxVBBqaNsgm5eeVLnn755ipAnhe XxOzuDk0+PIbdirDLamKIn2FHtsFmicjvyjS/A0T6A6cn5DXAuelenktfpay2ZHgaUorybsTY4o Yx7+UZBFNnRN/SKWFOs4FOGlKePqdCh7L/Ybj0ux1FVPXJ0Wt X-Received: by 2002:a17:90b:1811:b0:398:e86b:ce14 with SMTP id 98e67ed59e1d1-398e86bcf08mr21371445a91.20.1788284038824; Tue, 01 Sep 2026 10:33:58 -0700 (PDT) X-Received: by 2002:a17:90b:1811:b0:398:e86b:ce14 with SMTP id 98e67ed59e1d1-398e86bcf08mr21371374a91.20.1788284038364; Tue, 01 Sep 2026 10:33:58 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , Brian Cain , Laurent Vivier , Helge Deller Subject: [PATCH v2 02/11] tests/tcg/hexagon: check priv instructions raise SIGILL Date: Tue, 1 Sep 2026 10:33:44 -0700 Message-Id: <20260901173353.200474-3-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260901173353.200474-1-brian.cain@oss.qualcomm.com> References: <20260901173353.200474-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: cK2HTv-ptA5kuxDRUUX8e7eB8cgaKPk5 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAxMDE1NSBTYWx0ZWRfX89gcjcMNgPU6 OSmwA+tncgLerlJt1RePpnOptvLpEz+rQlPtIO0ZDGoFfMzFVOQJ3kYb2+lTI0d5KDa5urnv0dX HCL4B8yooXnEHC7BoSkj2kU0o7Ze1hY= X-Proofpoint-ORIG-GUID: cK2HTv-ptA5kuxDRUUX8e7eB8cgaKPk5 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAxMDE1NSBTYWx0ZWRfX+YLRNx2CrLKZ ZM4AafgvaqgAOX9gcBKLCo1gsjsizvzd+YJEXKAicJf/ER5y/8877E2i0vhI1ljQcHlo56uiDom LnTHJtSO2gpGhZJ/+XRFcKkxuunZgCc1fVmlQYdPIKD+KPxy5cV8SZrl1BFsQvXJ1b/x2azRa5k OjGfUTsgEdIUpogJk/GUdSlnSx+TIkdhcyTobXC8a0CYBRE1S7ytK22wM9C+drhdt9ngZXIPlok WAvdbt3RbWsM3xVH5L66hXeeCNQNmp0QX/dQwrcEk0HTdGnUkE65rV5yzEnh6KDKyLPHyasqCez VVFBYVBl+LgVKIf2qLnCRagi/UyWFQt3AskdfSecGsQvN7lk3mtoPsDCLFbTRn+0fVbCBdqQSh2 6hsD4B9qPkXy+z1ik6KGFq5UnKdDDvVdFTexTwhr/Jvm3PGdeWTIg+GCkzMylFM3yjOuHSdRNAR 7dTbyeBFJjGKk0ieM4Q== X-Authority-Analysis: v=2.4 cv=BPWDalQG c=1 sm=1 tr=0 ts=6a970c88 cx=c_pps a=oF/VQ+ItUULfLr/lQ2/icg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=brjt2USROf7zqxP8TNAA:9 a=QEXdDO2ut3YA:10 a=3WC7DwWrALyhR5TkjVHa:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-01_05,2026-09-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 bulkscore=0 phishscore=0 adultscore=0 spamscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 malwarescore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609010155 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=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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 @qualcomm.com) X-ZM-MESSAGEID: 1788284098021154100 A_PRIV and A_GUEST instructions executed from user mode raise HEX_CAUSE_PRIV_USER_NO_SINSN and HEX_CAUSE_PRIV_USER_NO_GINSN, which aborted qemu-hexagon until the preceding patch. Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- tests/tcg/hexagon/privileged-insn.c | 79 +++++++++++++++++++++++++++++ tests/tcg/hexagon/Makefile.target | 1 + 2 files changed, 80 insertions(+) create mode 100644 tests/tcg/hexagon/privileged-insn.c diff --git a/tests/tcg/hexagon/privileged-insn.c b/tests/tcg/hexagon/privil= eged-insn.c new file mode 100644 index 00000000000..306d4542ea4 --- /dev/null +++ b/tests/tcg/hexagon/privileged-insn.c @@ -0,0 +1,79 @@ +/* + * Test that privileged and guest-mode instructions raise SIGILL in user m= ode. + * + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include +#include +#include +#include +#include +#include + +static void *resume_pc; + +static void handle_sigill(int sig, siginfo_t *info, void *puc) +{ + ucontext_t *uc =3D (ucontext_t *)puc; + + if (sig !=3D SIGILL) { + _exit(EXIT_FAILURE); + } + + uc->uc_mcontext.r0 =3D SIGILL; + uc->uc_mcontext.pc =3D (unsigned long)resume_pc; +} + +static int test_priv_insn(void) +{ + int sig; + + asm volatile( + "r0 =3D #0\n" + "r1 =3D ##1f\n" + "memw(%[pc]) =3D r1\n" + "stop(r0)\n" + "1:\n" + "%[sig] =3D r0\n" + : [sig] "=3Dr"(sig) + : [pc] "r"(&resume_pc) + : "r0", "r1", "memory"); + + return sig; +} + +static int test_guest_insn(void) +{ + int sig; + + asm volatile( + "r0 =3D #0\n" + "r1 =3D ##1f\n" + "memw(%[pc]) =3D r1\n" + "r0 =3D g0\n" + "1:\n" + "%[sig] =3D r0\n" + : [sig] "=3Dr"(sig) + : [pc] "r"(&resume_pc) + : "r0", "r1", "memory"); + + return sig; +} + +int main() +{ + struct sigaction act; + + memset(&act, 0, sizeof(act)); + act.sa_sigaction =3D handle_sigill; + act.sa_flags =3D SA_SIGINFO; + assert(sigaction(SIGILL, &act, NULL) =3D=3D 0); + + assert(test_priv_insn() =3D=3D SIGILL); + assert(test_guest_insn() =3D=3D SIGILL); + + puts("PASS"); + return EXIT_SUCCESS; +} diff --git a/tests/tcg/hexagon/Makefile.target b/tests/tcg/hexagon/Makefile= .target index 61adf6356e4..641f6bc10e7 100644 --- a/tests/tcg/hexagon/Makefile.target +++ b/tests/tcg/hexagon/Makefile.target @@ -58,6 +58,7 @@ HEX_TESTS +=3D invalid-slots HEX_TESTS +=3D valid-slots HEX_TESTS +=3D invalid-encoding HEX_TESTS +=3D multiple-writes +HEX_TESTS +=3D privileged-insn HEX_TESTS +=3D unaligned_pc HEX_TESTS +=3D unaligned_data =20 --=20 2.34.1 From nobody Sat Sep 26 21:36:41 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1788284140; cv=none; d=zohomail.com; s=zohoarc; b=jkwiql8QrhbO9dhDbuRFzF3BFv6xESlL1wgu/NwGmjTdjHTi6UHUKdpRzV/zE7RW6F61qf+npNeCkNSXKPaTBjW73F0rl7V5ITWy5BA6cPuncZrLgfJ1Y45et7U0JV6cGTz4+zuKCkngNLF4nm0rb9g38yfHST7E357vTksS+fA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788284140; h=Content-Type: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=tUb6HZcIOhxOTay/dp40hNaQg6ai7PBaXk7NXeGW/Mw=; b=f3vDH2kQMrxioDkSwj63StnIMjvUr3XNWuCng1af6b7XQAL2zmCNtJa6u+Q1jgsiwPg9+EhKhKoD5ARc08uslyadQy0W4h99Icc1p4mlRTWSSeqPTUsG+0nOp8EluFZiTJP8jj0QzWenWsQ6sX/SVMQeOLs4rrW1z1scazht1pc= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1788284140576245.40768861882782; Tue, 1 Sep 2026 10:35:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x1SN8-0005ZK-62; Tue, 01 Sep 2026 13:34:10 -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 1x1SN1-0005Xi-IT for qemu-devel@nongnu.org; Tue, 01 Sep 2026 13:34:04 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x1SN0-00080J-06 for qemu-devel@nongnu.org; Tue, 01 Sep 2026 13:34:03 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 681HTorc2594390 for ; Tue, 1 Sep 2026 17:34:00 GMT Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com [209.85.216.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ge35k00gx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 01 Sep 2026 17:34:00 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-38ec0f510a9so160066a91.2 for ; Tue, 01 Sep 2026 10:34:00 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-3286f95a160sm39702934eec.18.2026.09.01.10.33.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Sep 2026 10:33:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= tUb6HZcIOhxOTay/dp40hNaQg6ai7PBaXk7NXeGW/Mw=; b=KzJ3az8uhgnfA/Ks 7KV8XNvccCjI3KWIM552XWpXRv15LMAW8YWwfOgtQaASPECK/7YeczF08aVRTNHp LKFodSC/RMcAo45FJ1hY4hnmvTh80u1nAzx/2g2ZUtLfbLxG9WMkfR6melsVRIPz bRNtkPC08Yt0+SNwZAHSrKPZC7tunp5Lr7AwUJUp0XJtrYfd18ohHq0el2WC1lSB q/JPrTbcqTXRUaiQUD2up6Lnahbs+7iZYb60oaANORL6vDJK3DKkqMbxXsekIc44 fnjXlV2haN5ourGV9vNhsZIr190opEG3qPeVEK9k2i022tCHru6Agb8107Q5rRXe 2Iwt4A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1788284040; x=1788888840; darn=nongnu.org; h=content-transfer-encoding:content-type: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=tUb6HZcIOhxOTay/dp40hNaQg6ai7PBaXk7NXeGW/Mw=; b=Z2cSn7CXIw8a6RAgwooWIHy6pu914uM+ugw6jsw8WUjDVn0KFJa/pNIxbwi4mJKwYa 6WXT93EOFCRikPDTxpdPhbl6OFUesnXvSyw0TVxnMJKS1IMVJrUW1pL2t74wpsAgRQKz RUhBJz0Yj9y6lP96Kr83ngHwxU6iMQK7J+iSIrhK8Ih85rqvLHQBoyv1anivn9PtX0bP S1ITNqw53e5Bo7PuHTbBYOmFZ09BC/iynHJp6skhcTl58jy/oZV2rfSGH6DKLE/BHBei CcNHA76tCDU12Mt5sWs8hLRn7lX6dWRJA1aXLBPFLkfCipKg1NGsWILhdkMGwRw1Fczb ZsPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788284040; x=1788888840; h=content-transfer-encoding:content-type: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=tUb6HZcIOhxOTay/dp40hNaQg6ai7PBaXk7NXeGW/Mw=; b=dnfUFGb1/0hxI4qsbzIyVNoojoWO98CBnmR9K8my37lp5ci1DTEO0NmLMSmdgTB8xM EzlX91URVG/AWZNc58U5W9zaQ3qVqBjk9xHC67S//lfdeOXI3bOhdZAiITmY6l6a2IKC mlTbKhYZIgqzCTrnglYA0k3cX0wqhpCVGV8cdwp15P7jk+o8qRxUB4u3L5MTijOEK+kn RswpLBBKJR3XS8KAVkpnwGm+lQ4TPNsc2unwwh+yC7coqm9WPSzvD/3Y7okP/mLBU3B/ OXqJUqIxOnfw0pn8CRG4UlBX4ou8WOp1twIhmgwhU3qVPcPzNocacx5WWZjD7m4QVFsf sIWw== X-Gm-Message-State: AFuF++mVw42R1f/A1IU33ey1NTbceg2iX4ZlRZHvFeVWZUJrGo5EOcDU rJ6ruKN405Mh3ZxugHbK+EEGViMdp1AzmaLTVgbte5xkr5+c9JjxWZFO21NCReG8pT/VHnKzKNZ mnj/82KpgI9qBAO2bx7cuBVo8r+GKGPkfpIQrRK8LvwI8p3yiubp83qnePm1XmSN/WA== X-Gm-Gg: AYBFou2BGwKyqHp0/GKlvlcZXh/tJi/A8kR2Azdckb7yV7gDsC8NW9f9kl4ybRnHgdW vfqSWKaPYm5jKeNxAd4Xqr1EQhIGCRu4jRx/VbGa5Y8GodYp2pqVzpkSALPN9aUIdlNBG3Pqr3z xMxy0r0HisUMCpaOWJfE5i61rIdvHk7cWPThSdPAC9bJ+MUZ9P3oayDb0MHPzu2ayNY5u1w1JxD hEUIi+yge+gSMS76jMr9GSotQL8eLejKS4ijzUGlTkWqeyHmyx5X72LWeKN2T5FeUgrh+tccxoz nvfJawQc1h/fSZKE0G3Rlbz2ATdDT3oMSD1/RdBVn7yjoQLwXIDiZOOUgphCtmOAbC8+XSQrQ/7 yrqQmNT1JcHxCDyi6ZSWS7HGSecL6MrzUVrsRuYvYtPf1HLf+ X-Received: by 2002:a17:90b:264c:b0:396:61f1:da5c with SMTP id 98e67ed59e1d1-396d0e86577mr55408976a91.4.1788284040010; Tue, 01 Sep 2026 10:34:00 -0700 (PDT) X-Received: by 2002:a17:90b:264c:b0:396:61f1:da5c with SMTP id 98e67ed59e1d1-396d0e86577mr55408920a91.4.1788284039604; Tue, 01 Sep 2026 10:33:59 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , Brian Cain , Laurent Vivier , Helge Deller , Sid Manning Subject: [PATCH v2 03/11] hw/intc: clear pending bit on l2vic de-assertion Date: Tue, 1 Sep 2026 10:33:45 -0700 Message-Id: <20260901173353.200474-4-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260901173353.200474-1-brian.cain@oss.qualcomm.com> References: <20260901173353.200474-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAxMDE1NCBTYWx0ZWRfX0DljbRidTILa kItZcPjycWSZDzEaMJlkttcRXDaBHY6GyQDPgc8UwtBNC4lcAxyZ368vvYvhEOIsPWcIhasXZ8x FcWlWW+FrCgqXTlJ/k42hpGVhH5PF8k0gW6QMOYgkUxxb9be+FeTVKG5ugdHOh+fAXtKMZ0lUDc iEkfOhYgRVWZ2vTOFnyVB/ETHQgJEkY1uccUyuQ1cjj/O7Hx0e/uRqYeOrI8tyihc2S6FArJyBA oqbYvmVwk3LrIMr/9iXuXsW+y9G6ByJ97ZVqXl+IbXsohh0qEK/zD5c2CDU5YDadLbHJdJsVV9v qEOyH1KEaFqpOIzr0VYvW+FOHy+tkVQF6JCWlvNKTwbdpsoSHrnNB6YJkjQr26XPI+rdHkksNXw l80ifKAfJWf1rjKa6q0DP8kqGFu2Knr1VE9/gZTr2sD3Xh3cAEZj6beR88Gd9sjM23yhUSvZ4wS 0/E4sTEJCatL5aXMtNA== X-Proofpoint-GUID: ZJRvnnuk_4VwuKVYYd3QmwXANoZA3NNG X-Proofpoint-ORIG-GUID: ZJRvnnuk_4VwuKVYYd3QmwXANoZA3NNG X-Authority-Analysis: v=2.4 cv=VLrtWdPX c=1 sm=1 tr=0 ts=6a970c88 cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=Z8PlLslTYKWvlVeuNugA:9 a=QEXdDO2ut3YA:10 a=rl5im9kqc5Lf4LNbBjHf:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAxMDE1NCBTYWx0ZWRfXwUYS7SoBhBy0 IInB0ORNpB6OlTi0UD9+n9u3+j4VMBe6Pp9WXugGfUP4AsEOM6FxsQZAoqcP1da/cB42M2qUxbC Qf9rw0UMYc+DJGRrfj9/KcmnkUe/Ppc= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-01_05,2026-09-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0 lowpriorityscore=0 clxscore=1015 bulkscore=0 malwarescore=0 adultscore=0 priorityscore=1501 phishscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609010154 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=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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 @qualcomm.com) X-ZM-MESSAGEID: 1788284142435154100 From: Sid Manning l2vic_set_irq() clears a level-triggered source's pending bit on de-assertion, so a source that drops before it is latched into int_status is not spuriously re-delivered on the next ciad. Edge-triggered sources (int_type set) keep the pulse semantics they already have via SOFT_INT/set_irq(level=3D1). Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- hw/intc/hex-l2vic.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hw/intc/hex-l2vic.c b/hw/intc/hex-l2vic.c index f07ec850d49..a986f0bdf35 100644 --- a/hw/intc/hex-l2vic.c +++ b/hw/intc/hex-l2vic.c @@ -299,6 +299,8 @@ static void l2vic_set_irq(void *opaque, int irq, int le= vel) =20 if (level) { set_bit32(irq, s->int_pending); + } else if (!test_bit32(irq, s->int_type)) { + clear_bit32(irq, s->int_pending); } l2vic_update(s, irq); } --=20 2.34.1 From nobody Sat Sep 26 21:36:41 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1788284095; cv=none; d=zohomail.com; s=zohoarc; b=F8wMjEq5ZZr3Hs5AXpO6s4cZh3gvtN5/Vrm8T7IyiqYwvssgd6JCT9tc8M7Uyhk7k3hzBhuR9zYKG0i0tbt+kncZcTTZ8uAPM3sJvZZmRC7Qogj5Ly1bjFBzZwEjO1Bu18j96eivzjItNDoFSDMkW/Q8wJdsk+UFV6FAtF82ZmE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788284095; h=Content-Type: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=uRXMpWYP4aEFj13LYG0i9lWd6tmMXkmCiJ+ebFTu87Y=; b=YXqVgnYyA3hs9brsgTGkvwFyB3ked6dWiACzdO2lz1Uopd9VXYsZgS6vCfY62G6HNug483SAWnKKAb7w5M884Y9oJO/9hlgI2pNepfngHfRsuw7MAtTS8+4TO0qq26a1R6+aVKiKQkKjW/dFqhd3u1ml/sFk6ujx7y5EesrDQCk= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1788284095846806.9896448682118; Tue, 1 Sep 2026 10:34:55 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x1SN9-0005aF-9V; Tue, 01 Sep 2026 13:34:11 -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 1x1SN3-0005Xv-Ec for qemu-devel@nongnu.org; Tue, 01 Sep 2026 13:34:06 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x1SN1-00080n-Oo for qemu-devel@nongnu.org; Tue, 01 Sep 2026 13:34:05 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 681H6QCl2033274 for ; Tue, 1 Sep 2026 17:34:02 GMT Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gdrcskd67-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 01 Sep 2026 17:34:02 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-39512608fb1so201045a91.1 for ; Tue, 01 Sep 2026 10:34:02 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-3286f95a160sm39702934eec.18.2026.09.01.10.33.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Sep 2026 10:33:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= uRXMpWYP4aEFj13LYG0i9lWd6tmMXkmCiJ+ebFTu87Y=; b=faZk62dN7EsRgyCv yclJl25nIWLeWNXQl3ZsYZP5mucF8MgnYvKZVYE26vb8szVPL6ZwVfcoIcPqm0Bq /V4MK5YSmGgob50d3KuOb9AQQVjlXwHX6EwqaxOgm+gXroc0pfgqqGjqa65Hmtn2 /ZiJxRuTt2rBugl5bpJb5NCZbjONMSjBKeQNc9UF+iK4RiWnAv6Sj/O9daG6/Rpf 6c95RLJ7NQAKQrXN3ld4NXO/okCX37V/kzyTIetT9bdwHRQ8yqi3Y9VfD04F3HhQ 011IKUqwd+d8CxL43OIMZPE2PhDEOJg5V/nIGr+au3NMSJBQi35wA+rMi1NdbRKN 5LXZtA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1788284042; x=1788888842; darn=nongnu.org; h=content-transfer-encoding:content-type: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=uRXMpWYP4aEFj13LYG0i9lWd6tmMXkmCiJ+ebFTu87Y=; b=GjLdKyepTohByQJyme7NnS8nI19xf8S9IQcIPjaYGEch68HzJH4k7KTWs/bJRrU6ll ojAuwM4amUJxw1y34+/zlnBUElbJk2JvO2KT3UgrmMS2BKGt1cHgche3FZVigO5SYe+6 5lqE7Pam0dkVqkzYRiQj6y5Ib9iz5dOt+h2X7IyND+15RgIahlQjVJTqxIWIYRW+6/dh lNDYJL2wJx6YYG9ScCBfDAouIf0nx2PlflU4geIZYoPG1AL2U1WA66dg81oVlRo/N+o3 Lgb+6yybO9PtSWvXO4qj7bBYlynf7zSbvXGfiLYU8PKuPK0aZIapgweWRQs3mI4KPgvK lwOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788284042; x=1788888842; h=content-transfer-encoding:content-type: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=uRXMpWYP4aEFj13LYG0i9lWd6tmMXkmCiJ+ebFTu87Y=; b=HDeUvyvZuWMRMCeMPD6k0TC5f5igLwW7eJajXIWExhqAc/rKpz0RxfDj8N309lbasH ruovHyDzWfpgXNMnc11U1uxfSld+ZCU+gkH4QAVGrQjj8UbAOMdzn/l5XuX6XgvHfvId VDlB1WGpY6EPXm5Pb2Vo1ZHu5P2Dr+bfWb3J/2hfO51u0dOuOAY9GK+98N+IZnMtK+5O CcEN/w6hVYMVX8JIIswzo1I5cTenxZoW+RkmeQw9Wk+EDoxuFBwCEaSI9Zu1roRC6xNy XuwsobLAcvkhxe2iiblOzOsjJwd9pmKeZCwOpVJ37aMRxYcM5TLpElcOHZojm0DzsKDs v1fw== X-Gm-Message-State: AFuF++nt4dH8QeflWw5YjLLkOnBNDQk4eMYPgENq/x4/CqlmSQI/zHQ6 f1BJ6tdG4Dafn+jrW9W6Pvv0yR2rl+a2yGHN/a58M57gBdvzjkxbD/8z8/vvv7+X/lM1hdp4jao 4fOADQU6CxA7uyaiZ61JgOe+ikxc4ckqDLJmVtfSf/HJ+HYe2wyJSq4J4Bb38TbgedQ== X-Gm-Gg: AYBFou0QGvSLJtUtqJ1lJ8tPa60NRac1shSbzsqixBZLre+p3I0rrEJxPCZ2sK+6q5S h3Sx41X7Ifj/qyM+FZm4yWmFsnFqpXvHwEtuc1qJSlp1e2zsyBlLxmP/6WWHYnv9DbngNmwbVDp fK7BSYRQgHWY58ZR2hDLemoch66ddekxPlMT9is/MfpixJx5MAjmfQ0zZdTQgdRfRdTkSV6unMd RsZwahH+0kDrCNe0RNTDKGXnRwE4J9stqNj+TkX6pGGZEjww27SUzyq0gTj5dSV5JS/bSd37VyF fYkwbkQug/hA6kaXgUgoa2DFDwItF4/DaZyel+1+NLDtceU5uDdzpPSZ61Y70mR2GS4lljGz6Kr eVuyk3EXlox8y1+jI6OKqCeFGb30AQen4aD9qLSEwROxNnyPD X-Received: by 2002:a17:90a:e7cb:b0:398:bbe9:73af with SMTP id 98e67ed59e1d1-398bbe97548mr28316351a91.7.1788284041666; Tue, 01 Sep 2026 10:34:01 -0700 (PDT) X-Received: by 2002:a17:90a:e7cb:b0:398:bbe9:73af with SMTP id 98e67ed59e1d1-398bbe97548mr28316276a91.7.1788284041164; Tue, 01 Sep 2026 10:34:01 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , Brian Cain , Laurent Vivier , Helge Deller Subject: [PATCH v2 04/11] target/hexagon: guard writes to unimplemented guest registers Date: Tue, 1 Sep 2026 10:33:46 -0700 Message-Id: <20260901173353.200474-5-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260901173353.200474-1-brian.cain@oss.qualcomm.com> References: <20260901173353.200474-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAxMDE1NSBTYWx0ZWRfXxn5IwD1Utgqz 5N6fQDbYtwneFbP7xeP8p8Hcp4DDXR/OczIT5Sq/G1aCAx8RqvEjDMtLR7SKx6388ATtynQaK9p yaiCqTH2hMqPEGtDbIFK/SLV3t3x62U= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAxMDE1NSBTYWx0ZWRfX8yKeaE1UGPWy hrK+NLkbjwB9PZhkweP0jEIZKKXO7wuPz5vXFqg1N6iHlgpO5fjwPU/JCxiDVFtMSyEVaWArMhZ Aqx2eXOWs5j7WebZUVmLQ5TDd3NuvQsGa1gDaO6e10RS/+siwYwSOW7SUiqY17DhuLCc1fDRWFd 2Cm2tpshJUErdYqP7zRlsrM/zZNJfeLs0K8UUHc4v8GAsrLrUuEuNOmBzl9EuYLsU9qlh9ElzmK eil3nAm4RfRZtxoquYrH/F1iUgIXuQ6GsZZp+R3jb4gco+NMH0oUscFLAOgppLymXS4sTt/0hF0 faU00fPUtGfGfm0zXmE94lNzox/yCgn4UQ8eIINZpTYDWg+LVl8QP1Knm9rjDE9iIlNOAas5crq lQyTzgg9dw/5yIV+67YuP/+t2YUQlIginw3xDHx9Ld8GN3Ap7N7UX1t3+FPI1SZPuWb3XfD6lkU eGZ347ouLKjDuA367oQ== X-Proofpoint-GUID: R6Vqbmxb7hsxJdqlFvIdINc0jim3heSx X-Proofpoint-ORIG-GUID: R6Vqbmxb7hsxJdqlFvIdINc0jim3heSx X-Authority-Analysis: v=2.4 cv=QsNuG1yd c=1 sm=1 tr=0 ts=6a970c8a cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=q6_NcmobPIDMa4dJqmQA:9 a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-01_05,2026-09-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 impostorscore=0 phishscore=0 suspectscore=0 adultscore=0 lowpriorityscore=0 malwarescore=0 priorityscore=1501 spamscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609010155 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=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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 @qualcomm.com) X-ZM-MESSAGEID: 1788284099088158500 Guest register G4 and above have PMU-ish features that are yet to be implemented. We'll skip these when we encounter this code rather than fault on an assertion. Note that the generated call to greg_writable() has the side-effect of doing a LOG_UNIMP for these register accesses. Signed-off-by: Brian Cain Reviewed-by: Pierrick Bouvier --- target/hexagon/translate.h | 4 +++- target/hexagon/hex_common.py | 18 +++++++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index 00de2b0d2ec..d8628383f1d 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -97,7 +97,9 @@ bool is_gather_store_insn(DisasContext *ctx); #ifndef CONFIG_USER_ONLY static inline void ctx_log_greg_write(DisasContext *ctx, int rnum) { - assert(rnum <=3D HEX_GREG_G3); + if (rnum > HEX_GREG_G3) { + return; + } ctx->greg_log[ctx->greg_log_idx] =3D rnum; ctx->greg_log_idx++; } diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index e33d43e3ce0..c180c19b092 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -1097,11 +1097,24 @@ def analyze_write(self, f, tag, regno): """)) =20 class GuestRegister(Register): - pass + def gen_check_impl(self, f, regno): + if self.is_written(): + f.write(code_fmt(f"""\ + if (!greg_writable(insn->regno[{regno}], + {str(self.is_pair()).lower()})) {{ + return; + }} + """)) + else: + f.write(code_fmt(f"""\ + check_greg_impl(insn->regno[{regno}], + {str(self.is_pair()).lower()}); + """)) =20 class GuestDest(GuestRegister, Single, Dest): def decl_tcg(self, f, tag, regno): self.decl_reg_num(f, regno) + self.gen_check_impl(f, regno) f.write(code_fmt(f"""\ TCGv_i32 {self.reg_tcg()} =3D tcg_temp_new_i32(); """)) @@ -1121,6 +1134,7 @@ def decl_reg_num(self, f, regno): """)) def decl_tcg(self, f, tag, regno): self.decl_reg_num(f, regno) + self.gen_check_impl(f, regno) f.write(code_fmt(f"""\ TCGv_i32 {self.reg_tcg()} =3D tcg_temp_new_i32(); gen_read_greg({self.reg_tcg()}, {self.reg_num}); @@ -1131,6 +1145,7 @@ def analyze_read(self, f, regno): class GuestPairDest(GuestRegister, Pair, Dest): def decl_tcg(self, f, tag, regno): self.decl_reg_num(f, regno) + self.gen_check_impl(f, regno) f.write(code_fmt(f"""\ TCGv_i64 {self.reg_tcg()} =3D tcg_temp_new_i64(); """)) @@ -1150,6 +1165,7 @@ def decl_reg_num(self, f, regno): """)) def decl_tcg(self, f, tag, regno): self.decl_reg_num(f, regno) + self.gen_check_impl(f, regno) f.write(code_fmt(f"""\ TCGv_i64 {self.reg_tcg()} =3D tcg_temp_new_i64(); gen_read_greg_pair({self.reg_tcg()}, {self.reg_num}); --=20 2.34.1 From nobody Sat Sep 26 21:36:41 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1788284139; cv=none; d=zohomail.com; s=zohoarc; b=AILq7/n8H3Bl9ZqtJmkoMFyX0hi7E0T7e+7V3ezj3cwQzz+quumtrpmKSY20i7eZ/IPLj/vZ6fyUlBfGtVSbqF25BAYBVWkKcJSaFyNUjqD+hoXPPAv1wgKgzTs3xSk21bN+/8LiZrsL6fXi+QLscbLps09vDAmD+6P6T6WQcfc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788284139; h=Content-Type: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=UbLAd+REvcoJjIvZXB7piBXU7dhyhjnew72IgBR9WPM=; b=cWUNGKPYEDi0HKC+hRp0JP742/k8nUqeHagzzk+l0H8pOGjh+vhZUDxYgXHweO8ogsXMTwH542d897Cc/ixpJ7FtjwjI6cwlhgNpC8N56yaKo6uY9GbD5iXdZKP8cP003DoBFt8LTunmt4r1YOHyxDk9mqzQswu8weTHoI6fru0= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1788284139211664.968990923223; Tue, 1 Sep 2026 10:35:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x1SNA-0005as-PC; Tue, 01 Sep 2026 13:34:12 -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 1x1SN5-0005YZ-7T for qemu-devel@nongnu.org; Tue, 01 Sep 2026 13:34:08 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x1SN2-00081L-SH for qemu-devel@nongnu.org; Tue, 01 Sep 2026 13:34:06 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 681H6ZhK3659852 for ; Tue, 1 Sep 2026 17:34:04 GMT Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gdynt19uj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 01 Sep 2026 17:34:03 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2d55d8cd938so753425ad.1 for ; Tue, 01 Sep 2026 10:34:03 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-3286f95a160sm39702934eec.18.2026.09.01.10.34.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Sep 2026 10:34:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= UbLAd+REvcoJjIvZXB7piBXU7dhyhjnew72IgBR9WPM=; b=UUymvZJTqnZPWzLL To5Yk6Lo1nQx0Dw81GsqVREeFcIn3RtW1CQIKEEpRF3FIABB7eB6DICArKLcsHmA aU5WRNilqpEBAI/3Qc8EhJbvB/hqOldgnmkw7xd/id2QtTKVwIcr507NmDlehay1 I/+rGbI9vqDx+/0rIK4lYt5CLxMDQmB0mY8V8b0PZSJq6J4pBa5h184R+Zh89IHZ WWFqKTq12aKlCkglA7+UdHp4AXarb3cXRLMNp42qP3+9IOT0F/IXCM0iv5HcHHOT 3hdcLlu8jztWR9jgBNom+C/tZmNTx8KEJN0yMd28kwZCTY7TFze3b4mdPmDc0EAv Xj8ANw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1788284043; x=1788888843; darn=nongnu.org; h=content-transfer-encoding:content-type: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=UbLAd+REvcoJjIvZXB7piBXU7dhyhjnew72IgBR9WPM=; b=JRv3kSS33rY9AQ1tEJ2tvjzYRbNXnlGQSA3r2LyXm4rQWwqi3HrU2KiKjy6jbOoc8P AIyhrXWRdcTjJrP81Mexx43D5w2tHRTodrFzn4gj4Z9YhDgaMjlcW5eakFQcKct/Tdql glYw2DslQX4L8QQb720kEHLLw+anLPk6jYQYFP8HW/to4ly6KjvnMwEOICJNDA3Ae0dy qXco1DJHMnGTZykCt55lEWlwY8roSoiKxStBxQVWFfwYKUFj14jYMqydp5haM8tEbS0x noW3QmWLfLFr7uVE1wmF3zkBegh20trW++Da7vzpdqE/P0/Y2GXEUj0tTpd3K9MS5D0U Wx3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788284043; x=1788888843; h=content-transfer-encoding:content-type: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=UbLAd+REvcoJjIvZXB7piBXU7dhyhjnew72IgBR9WPM=; b=jEfgmAH1o8Clpthe9rDBMsyxqy8gxp3EH9GHYj4Qhd8FMsFcjLKsDvwboTzTKlJKPy doVlIHQoeJqkwO9OeHLwn/9bGf/iK73jdn1X7OfLZbUD1QSSXePZxjUIs6S3DcivoOzF tHadbi/QBbTK6MZaC+UduleWeT/D0DrpjyFx0nWdFdzLcSPIdi9ot4iSnhWtiCuH0wQt h4b7498nCuMf2n6UTJpmdAn5XZQuqHTE4Xc+hacxlupZ/c1+d7V/GxrzLanvdnSgakTm Hsu9pNNFmajKJWtoq5YEr0ioqQ1hU/A8CdZ+86nlyW9ZsC/MHe0XP8owTpB8QdpH8D5P ZFQw== X-Gm-Message-State: AFuF++n5bJtsuRQ/DfRqM6TntYAy9AwaTF5OyU0Y1WnccWK7xThtlZbb nF2Zrwtioc2JAcD3jkRzhF8W1q5VPMOCDKM1eRwtQJjBNL2n2up4Zgaarhcro8FkPEgGzfUWVwL M3EcGftRoXgLWf0ZVH/daqSxc/9geRCdYWb3Goosgqwi3EgEEDbzKxopn0aZ2KTebOA== X-Gm-Gg: AYBFou10GKZT3XK2H0zxG+EsxDAXFk5flGP83HV7PoJCn3MX0CrZuuBhdDoX0+ydgYW DOSs75NzxtG/as2cHCXJDN4K8VzTCCttSb6mh5yyKjqsaFtV9ZER7NYvFRDZb0B2KT+ChrKSM30 rfoFtYvRYNyzAsjE+HLqZBIjPwPM8RQcsf3+Uiuk9ZUcES7gU4nZurPTzsK9uJEMpeH+f/Vdk0h caokETqJhAbmwbCZPd8Nt8fK3vaxcmFdpGxDoIWYMdnyI7y6erM4wu6lLmc977LK5o8pmdtPugF CbqJvWfQok39G8doo5t64Hvnr0r54zFw5/17uOrbyeNBlzEVLQYkvZs4qJl6CDKegxGHz+nrmLX AG3bquIv/dEkajOyH0X8S+pIx2OvSlWJNio6EaHHwG+PS0nlC X-Received: by 2002:a17:903:1ac7:b0:2c6:90ec:f601 with SMTP id d9443c01a7336-2d74dc7a37cmr468887815ad.8.1788284042709; Tue, 01 Sep 2026 10:34:02 -0700 (PDT) X-Received: by 2002:a17:903:1ac7:b0:2c6:90ec:f601 with SMTP id d9443c01a7336-2d74dc7a37cmr468887225ad.8.1788284042262; Tue, 01 Sep 2026 10:34:02 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , Brian Cain , Laurent Vivier , Helge Deller Subject: [PATCH v2 05/11] target/hexagon: take BQL when reading the system pcycle count Date: Tue, 1 Sep 2026 10:33:47 -0700 Message-Id: <20260901173353.200474-6-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260901173353.200474-1-brian.cain@oss.qualcomm.com> References: <20260901173353.200474-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAxMDE1NSBTYWx0ZWRfXxF6ZA38ipnoM 98hB19FETtgScfTaoxveE2NFov2pQLzEKjwYvfsA9gn51Ej69mOJPyLkqLgPu3PUrFhXAyIEeqr OvjZ97UVn7rkK1LNZvdAAnzjJQkE4dmgeMyiqPHlWEssJBwj0r/XE3odNfrK11yVNE4VR/CFlwu +L3+k8rRgk7NoRtMy9LpNKWT1mY0xS2Uyf8GxqudPjkBhLHPFPcJY3f0FoKIXo+6QuKX53TNM2/ 5I6Z3A73KUqLJITNWatWffUTjX+ScurcHDYj6dLZ92+QkR1WntQ21HcZLA5xhNGrH8D6nI6xIRJ wighfc2BLENZrHQAcXNBRJI+Q6zcJyMdfrVt8bZ7mnjlFtDPvNtiLkTV8IdfPt7PMpcKDVULniC znMTwR9R5bc+hxwa66DK0lPeeEGp8F/nNBIrG30oqJprA3dYJJqpe7ufUzdXIBbcAb/ts/FYTyb fQ0p3PUeOI2/um3RunQ== X-Proofpoint-ORIG-GUID: swsUsdCNKwNwXQhaUXru0WYNx84RT20a X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAxMDE1NSBTYWx0ZWRfX3l+jjJsR6cov iBlkJ+TuAhBF1nMg97dgDrmt+cd4IlQj4e1FWQTtyWmBPIqGYYbZTeF44RhKRZPCNKBpkGkzjBl oTKIEmGT/FM+iYNmXTVeyUkJ3vUzzb0= X-Authority-Analysis: v=2.4 cv=LfkMLDfi c=1 sm=1 tr=0 ts=6a970c8b cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=tKA3sQWDS_42iA0j-SoA:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-GUID: swsUsdCNKwNwXQhaUXru0WYNx84RT20a X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-01_05,2026-09-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 bulkscore=0 clxscore=1015 impostorscore=0 malwarescore=0 phishscore=0 lowpriorityscore=0 spamscore=0 priorityscore=1501 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609010155 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=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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 @qualcomm.com) X-ZM-MESSAGEID: 1788284142422154101 hexagon_get_sys_pcycle_count() iterates all CPUs, so take the BQL with BQL_LOCK_GUARD() instead of asserting the caller already holds it. Convert the matching setters the same way, which keeps the locking contract symmetric and makes the read-modify-write in the _low/_high setters atomic. BQL_LOCK_GUARD() is a no-op when the lock is already held, so the nested guards on the guest-register read path cost nothing. Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- target/hexagon/cpu_helper.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c index 64c5746c6d9..649c583c0fa 100644 --- a/target/hexagon/cpu_helper.c +++ b/target/hexagon/cpu_helper.c @@ -36,7 +36,7 @@ uint64_t hexagon_get_sys_pcycle_count(CPUHexagonState *en= v) uint64_t total =3D 0; CPUState *cs; =20 - g_assert(bql_locked()); + BQL_LOCK_GUARD(); CPU_FOREACH(cs) { CPUHexagonState *thread_env =3D cpu_env(cs); total +=3D thread_env->t_cycle_count; @@ -54,11 +54,15 @@ uint32_t hexagon_get_sys_pcycle_count_low(CPUHexagonSta= te *env) return (uint32_t)(hexagon_get_sys_pcycle_count(env)); } =20 +/* + * Every function in this family takes the BQL itself, so the guard below + * holds it across the read-modify-write. Nested guards are no-ops. + */ void hexagon_set_sys_pcycle_count_high(CPUHexagonState *env, uint32_t val) { uint64_t old; =20 - g_assert(bql_locked()); + BQL_LOCK_GUARD(); old =3D hexagon_get_sys_pcycle_count(env); old =3D deposit64(old, 32, 32, val); hexagon_set_sys_pcycle_count(env, old); @@ -68,7 +72,7 @@ void hexagon_set_sys_pcycle_count_low(CPUHexagonState *en= v, uint32_t val) { uint64_t old; =20 - g_assert(bql_locked()); + BQL_LOCK_GUARD(); old =3D hexagon_get_sys_pcycle_count(env); old =3D deposit64(old, 0, 32, val); hexagon_set_sys_pcycle_count(env, old); @@ -81,7 +85,7 @@ void hexagon_set_sys_pcycle_count(CPUHexagonState *env, u= int64_t val) int num_threads; int64_t delta, per_thread, remainder; =20 - g_assert(bql_locked()); + BQL_LOCK_GUARD(); total =3D hexagon_get_sys_pcycle_count(env); =20 /* Count active threads */ --=20 2.34.1 From nobody Sat Sep 26 21:36:41 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1788284143; cv=none; d=zohomail.com; s=zohoarc; b=RTSOdulR1vHsOsxsUYOeavZmA8gYyyhSkj3XuyHCnqXWquQDM/ZpyerPtg9TGJQVB7k6jnnI6WRc/kuscSro4tXKmhFKaBqqziEZIkMV9ba/eL8LT/jlLpbAlzxR6Fvf7YWUAVMYzvR9WtvI4026HONGjWvYXWb0QUewpgw9J+s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788284143; h=Content-Type: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=dmVROyJcOOycMsieHBREEe5BhFjOWBR3dEiwSCpdgWI=; b=TIUm2p+vXsIX6YUZbGzOcX7ZXk0Luq8HO6caLxIp2agxkB7Ck6k9gC3x/Q5bVx+li24MeCBdtfy/GEHu+Cj97mkKGD801XqxAlIiGg0MPF7HlpA/RnPgYwVG3vsqJGE6qy29QsouA0jMmnySw/l7ZtKEPEPhKnEF7nSgfXP9Ujg= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1788284143505340.97755303267445; Tue, 1 Sep 2026 10:35:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x1SNA-0005aq-MX; Tue, 01 Sep 2026 13:34:12 -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 1x1SN5-0005Yf-NB for qemu-devel@nongnu.org; Tue, 01 Sep 2026 13:34:08 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x1SN4-00081h-9D for qemu-devel@nongnu.org; Tue, 01 Sep 2026 13:34:07 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 681H7WmY3661216 for ; Tue, 1 Sep 2026 17:34:05 GMT Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gdynt19uk-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 01 Sep 2026 17:34:05 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2ce8a76df2dso515655ad.2 for ; Tue, 01 Sep 2026 10:34:05 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-3286f95a160sm39702934eec.18.2026.09.01.10.34.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Sep 2026 10:34:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= dmVROyJcOOycMsieHBREEe5BhFjOWBR3dEiwSCpdgWI=; b=g8drnwsmF77ChJ0z VPQrDto7z7FbFMpDccQiP2IIttFhyKoviA/MeNLlM67hs0Jtlz+3RislWq6lrvvM 7dshXoCRieBN7peAM+Rdu0uk/nDiA2C76F4QG5bRO8YjO4Cx+yOZOXuMbpMVDrRl Eo6ISYRwsPEdITWszLTkURo/JE5RydPz2PzLeoalr8deY5qL5zre96ZrZYORlLc7 bFarJmFS6ZX/FWKLr5shBpDnAvyU/HZkM68KJofoNUhkyqTotTkEIySPyMEy6Bn7 oOv07/DfmADJlD4hHPXAV5fQFucFu77DqZJqA2eHvr1Ithfq4Twe5Cin8Z+Q26lC ND59dQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1788284044; x=1788888844; darn=nongnu.org; h=content-transfer-encoding:content-type: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=dmVROyJcOOycMsieHBREEe5BhFjOWBR3dEiwSCpdgWI=; b=dAdBN5IiX62/ad9qtzYNg9uEvT/heGvtgRTCeRjW561Zam7jLjiQhnCkQFd36cCE6N BRXOeQEBTqUS8i19PCfbmXj7DDdpWLTUX4NQW4NewKoE/grY3XBppJfoSgKVpmA5lAsl 8BHjopfXR6maj0eS39RHq7Mx8oRI2wflwHQdP6HnWGSOCoJJj5hSuG8VLzh4OQ2sQaEh LBD2/oDJnpo69fiQb+sjvVdp/DwzBvgPffU7pWGG4S46FRoUq7I3kGEKlXM/7bZBRE6l 5e6tAwvMzL7QDtBT5H4g7dDt8ulyXkIsKg4PlWyk4aaX+fFITa6Q2xpuDcYVg6a+7Xat AqQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788284044; x=1788888844; h=content-transfer-encoding:content-type: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=dmVROyJcOOycMsieHBREEe5BhFjOWBR3dEiwSCpdgWI=; b=LR5JNEHTmUzPm0AtzmgSCvdnVye6WK1P0z31IArz0KYa/uyNlqepDHNME4dQbR1Uxy PyEPGM/zTxH/FDHahe8fmt5rEizaS7hgq3BODBBgLwdzpHw0XVLJN831w5+tI3UatcGN cYu6v3+5QAjvAueyX82RO5dRdsrhs5mm8/00nFmCniYct3IgpeNMKOFS/OusoSZwKPrI 42TwPiGdbgYrpUoSytmXSiWMp/ZpoqHuOVwajlaDFCjmrXMrreSevwR+A5FgaBZZ1JU9 dWNG3CBjojRcD3k63b2jiyWhMw5IlMZ7ZmgiYAdtPLDteIoBlhpDbqxu8N4bYmvQeoAx JNBQ== X-Gm-Message-State: AFuF++l+kmlcoWIX4U8lrYE4uaZ0yGsj8WdhebhjmjQmfXUWseqKfDyY JeEKs4HwjeBi7pbFcUTaUX7EmOY51JME27wxQjlTVay6sFqYwIS/MSUeH2E5J8e+498nrD0+8NY pJzOl+IVcfrhKhiw8vjcHjLkaEvZ/vzY2tgpow26PkncZyk3P85g5LhxYY8CvZ7g2oQ== X-Gm-Gg: AYBFou2uDfrZjdtfDpRdufMWlzmsrhtt3XynsdehYMQ+qKAmdb+A1Lxz2m5Ob5rSKnN CsUIf7s2xEWytRypJAn0x4LOvVsei1FrL4y3u1ymCP/k6SFCSHn6EOE9QBeEEfayRL1/r6H89jA fIlS99Ecf9OMEVtKw1MK78gIw38JOCD66X46A5iesiYzJ0MwZWlqki+PvNJ7zhLIdFITNyqAGEt 5KH4PNw6urFxB9Tz5IJ9U/hZljwh5T3+roV7b20jIZx6+/DkwjtGN9G2dT7cWjm+et81pBQtIRx f/sTmQI5hB0HI6uPH/nUcLsfpnT5DlipbjS9iWKEX7jgN084nCLtlnEhEXRDVPi8qtV8JT33HT9 Nq3mvOxyEwhYrW+UhUzonW8DxLHrhPZ8EILXWpM8sf96vSwYq X-Received: by 2002:a17:903:40c6:b0:2d8:d4d1:3139 with SMTP id d9443c01a7336-2d94a935f0amr136198305ad.16.1788284044278; Tue, 01 Sep 2026 10:34:04 -0700 (PDT) X-Received: by 2002:a17:903:40c6:b0:2d8:d4d1:3139 with SMTP id d9443c01a7336-2d94a935f0amr136197675ad.16.1788284043756; Tue, 01 Sep 2026 10:34:03 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , Brian Cain , Laurent Vivier , Helge Deller Subject: [PATCH v2 06/11] target/hexagon: gate GPCYCLE guest register reads on SSR:CE Date: Tue, 1 Sep 2026 10:33:48 -0700 Message-Id: <20260901173353.200474-7-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260901173353.200474-1-brian.cain@oss.qualcomm.com> References: <20260901173353.200474-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAxMDE1NSBTYWx0ZWRfXyxa8C7L5BevS 54SQ4+4IW7nKZC0iwRvHAUCiDfEo9vy5jOU1J+w+ykFKSYM8MHE7kdWHEmCpypWWJNIubJgk1QS AfcvzDTZEG8Mws1JtMDIfHmzAzCOErCsAJq6LTI9Mj3uFoTxV0vjXJw3ZJJxbffwoaZs091EoAD x2eQdRugkORaslOe0sQC0WLYZvlVPmqAMUeBuk1hLtAja6prrYl/ICNmpGwfuWjdMGWduv1Fe/E 11L4RsZKA/WAF6k7L8sbCG1xAJx72fTLBOUS7gezo24euttSxwuxpGthXN+9lKyW9c2bid0vZ54 Ky9YkvGgxm6QkwonUCZtzC3kRjTjJJ+RWE4J3esQZqRXpje7BBwlxK88fLuMxv43hoWZfSf4pth RDtx27KqUHHVHZlBc4t5jwapdXyFIlYyI7AQkWrnDBOS0SUnysxzUv7rfjc0nA7qSbWUMcR8hN2 VjbXGdSQ/M7Bsdlu6jQ== X-Proofpoint-ORIG-GUID: y6cqke0rQxza1dPzmm_GbMxl8RNE90J4 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAxMDE1NSBTYWx0ZWRfX1hk+yA1DZ/4W Wi+p1w8cNskwjG8ihma4lRgby2TFdzpNFxMYlkI1dc8GAH5aP5Qedrc9bez9eFLyTWn4VCHk6iq 66RGC+TNVFRM5b/xmTSnpUmdywXECcs= X-Authority-Analysis: v=2.4 cv=LfkMLDfi c=1 sm=1 tr=0 ts=6a970c8d cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=xDRi0JrXNLxaQ6-XZMQA:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 X-Proofpoint-GUID: y6cqke0rQxza1dPzmm_GbMxl8RNE90J4 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-01_05,2026-09-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 bulkscore=0 clxscore=1015 impostorscore=0 malwarescore=0 phishscore=0 lowpriorityscore=0 spamscore=0 priorityscore=1501 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609010155 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=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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 @qualcomm.com) X-ZM-MESSAGEID: 1788284146482154100 GPCYCLELO/GPCYCLEHI read as zero unless the cycle counter is enabled (SSR:CE), matching the hardware. Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- target/hexagon/cpu.c | 7 +++++-- target/hexagon/op_helper.c | 9 ++------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 0bbefc2fb87..0a677840bcb 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -809,14 +809,17 @@ static void hexagon_cpu_class_init(ObjectClass *c, co= nst void *data) #ifndef CONFIG_USER_ONLY uint32_t hexagon_greg_read(CPUHexagonState *env, uint32_t reg) { + uint32_t ssr =3D env->t_sreg[HEX_SREG_SSR]; + int ssr_ce =3D GET_SSR_FIELD(SSR_CE, ssr); + if (reg <=3D HEX_GREG_G3) { return env->greg[reg]; } switch (reg) { case HEX_GREG_GPCYCLELO: - return hexagon_get_sys_pcycle_count_low(env); + return ssr_ce ? hexagon_get_sys_pcycle_count_low(env) : 0; case HEX_GREG_GPCYCLEHI: - return hexagon_get_sys_pcycle_count_high(env); + return ssr_ce ? hexagon_get_sys_pcycle_count_high(env) : 0; default: qemu_log_mask(LOG_UNIMP, "reading greg %" PRId32 " not yet supported.\n", reg); diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 23894ff3d28..2cea1927263 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1912,13 +1912,8 @@ uint64_t HELPER(greg_read_pair)(CPUHexagonState *env= , uint32_t reg) return (uint64_t)(env->greg[reg]) | (((uint64_t)(env->greg[reg + 1])) << 32); } - switch (reg) { - case HEX_GREG_GPCYCLELO: - return hexagon_get_sys_pcycle_count(env); - default: - return (uint64_t)hexagon_greg_read(env, reg) | - ((uint64_t)(hexagon_greg_read(env, reg + 1)) << 32); - } + return (uint64_t)hexagon_greg_read(env, reg) | + ((uint64_t)(hexagon_greg_read(env, reg + 1)) << 32); } =20 /* --=20 2.34.1 From nobody Sat Sep 26 21:36:41 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1788284145; cv=none; d=zohomail.com; s=zohoarc; b=J1CY9I3NJb+Z/zl7r1DU/2Tggf3XgzRWKe4fpvmPT2qpqVbLbWcV6Ub4lMhYkF6rMBBJJYf09lHzrZhjZKwYyi+FR2ZbqovcQYe/csHjkQfLZ/NsM2xvn4X8FNShmiyKqHmhboH6hkL7OxzoPQGoun/rm3AFsb1jEaFqrrEaOAg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788284145; h=Content-Type: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=LA3LpPUcsAsJJH0v7IALoyhsek3de2dSlP0tKUJxcdc=; b=Lix/j0qfuyTtODSkLRYY3S4whuyPURuOl+jTxafWrNqQKzG+Tg7zLFHJqbkApf59Jot7Gw0aKWNoq4q7D6c4+yefLqPZG0hPZMKnqp8aH/+cAxGUsZ1YecIuc5ZbVdzMmW+5FxTB5dBFIfs+TOmfGkuODndSOFG85ou4BoASkGY= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178828414597210.193180665788873; Tue, 1 Sep 2026 10:35:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x1SNA-0005at-Q1; Tue, 01 Sep 2026 13:34:12 -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 1x1SN8-0005ZT-7O for qemu-devel@nongnu.org; Tue, 01 Sep 2026 13:34:10 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x1SN6-00082F-9a for qemu-devel@nongnu.org; Tue, 01 Sep 2026 13:34:09 -0400 Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 681HY5cn3285336 for ; Tue, 1 Sep 2026 17:34:07 GMT Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com [209.85.216.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ge37j000k-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 01 Sep 2026 17:34:06 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-39512608fb1so201209a91.1 for ; Tue, 01 Sep 2026 10:34:06 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-3286f95a160sm39702934eec.18.2026.09.01.10.34.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Sep 2026 10:34:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= LA3LpPUcsAsJJH0v7IALoyhsek3de2dSlP0tKUJxcdc=; b=lAMcI6JBQwFmPto6 QVNtbw4m4Q4SSMaMl6HDhD2U3vYIRAZ3BNiVhnDJ0yFxI7l3IL23BFOVHzwM3Ys0 mZ8mQOpF3O1R2nsfytNOIwS/A7FTNNHJW7VI3FYIXFUWZ7J6ZVPtK2eQ7ml5niYF rQv1L4P87HPdcGqWaUQuo3MQEtiIoRkA4kPYQ+I2nxdB/zR97hbEAj/L1k4Lgik9 DHMEkZbhdOj0lzVW9P5smwhmqw0eluCu84s7yAF4vnHQmZ/GoCGklj4wpGZevlsh gF8FDaj9F4Cg/Ymoz+mfK1nQClRMck1uXhh66+oDFuiqh9FdkUO8MK4dUABzpIZ9 W4RExg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1788284046; x=1788888846; darn=nongnu.org; h=content-transfer-encoding:content-type: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=LA3LpPUcsAsJJH0v7IALoyhsek3de2dSlP0tKUJxcdc=; b=TExzt87Y+Q2nAJ+hmD9zfPBqY/nVnQ7lYW3aeqA0ScOukr3MQUK0C7w0Jw/o/NfHyQ X6F+0shbdFoGnPvjMxexL8gs8MSchJWQN8nF9CNIdplpUEza1JgkS1DuZHCj15m1MP+5 yy1welOFctnWpj4eSi3EkeMSzQuQljgY4BxCpwNB/zrU5FpaWmfjfAqNYcOb/EaLiBns TAtj/fIR71ARgndR6V3/iE5yaqaMnTXqvCZodJjwFWv+tYlR3xpkZAQOuq78AsNgMjrH /J/dEs9KeTjMdr47nepDcAnQ+Frex2qXNdl6uNxe6krIKFJvXo9O8gOUQ43hgjCU86a8 4flA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788284046; x=1788888846; h=content-transfer-encoding:content-type: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=LA3LpPUcsAsJJH0v7IALoyhsek3de2dSlP0tKUJxcdc=; b=F9RL2ZKXxYbpr9NinyXFe0iaEXJtTyZ19srD9VhUDXtJk6Sz94b4Pf4mB61ne8uTr1 Tv7WVNqGUasFwFSgWfYVZwiXy+JLNMi0qHIinhcrKeRxt/NbpnrHv0+p3Foj6Ump03fd S6q6JJynW/rg3Qad0/xmpjcrG2hzDe49v/aqDkj2rW2wvqZ3P37wB2BZoEY29AFDxWAJ VLz4MEAnlxZ8USTpS6SYJmsl86FQYHTzq73QQURW/jUD2FA0MwhH8966hd/wHdzmKzbl lu2euOLeRUqpQ7OnPfuFYN/GBjoDktyL+MNjLdudsE/xFjETBOvgWBFnh1HxP7NcPSUm Ssug== X-Gm-Message-State: AFuF++nnkJw2YVLfMiGKT8cEJU91kdhi4CKEHbe8oKQbHaO5gmcq52Q9 Px6f+U1eoUjfd99OYdgm7sSSJqTHcmN+ClM1f7Q3hC1e2rb4dZySspLgJhoI94nvCTxu2+SIjo7 Wnm8Lta06iTip38mrIMAzlKcBJ1pnxxq/9MBJm/M9LoN3F0JSRN7k0UK2Z4gIwmSMYg== X-Gm-Gg: AYBFou2R152GCYr+fKIb231WoDMn4xhlgfxS3F0l21Ex1uy06oZ6ihiIAbwhYC5VYey uOjBhTK4yDn8KSC33h1pk8CzEmyR8G7Kx16yU4SdPwiHu8T4sBIpLc7M2WLF16nBPFRHPTnwKNF cDlfgMhLwZiMCsJwOEMCE0HHo9AOnYrzLeI3q6Yel7hrOUv/K3YZ+woq/2BlXNb9a4V0y/v1aaA FQ4qmn0fhluMhjVTe+wqqjoKDICjYxFEVQYJeHcrw/zL/07IPF8vv3a/XhKUqpecduPMtQz93AZ RhIPwydWqMC0bYgvRmBeNnBUuhANWJhExnaYb21uYWD75WjEqRbZwr7p2GYZQ+AOF1gEtxteFAC nBRTrpD1nFgWt3bcLZUGrF3Jw58MzXIAnEoUP2/NWL46vwI6t X-Received: by 2002:a17:90b:17cc:b0:398:d8eb:cb2a with SMTP id 98e67ed59e1d1-398d8ebcd21mr21258596a91.23.1788284045616; Tue, 01 Sep 2026 10:34:05 -0700 (PDT) X-Received: by 2002:a17:90b:17cc:b0:398:d8eb:cb2a with SMTP id 98e67ed59e1d1-398d8ebcd21mr21258507a91.23.1788284045070; Tue, 01 Sep 2026 10:34:05 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , Brian Cain , Laurent Vivier , Helge Deller Subject: [PATCH v2 07/11] target/hexagon: read UTIMERLO/UTIMERHI from the global timer Date: Tue, 1 Sep 2026 10:33:49 -0700 Message-Id: <20260901173353.200474-8-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260901173353.200474-1-brian.cain@oss.qualcomm.com> References: <20260901173353.200474-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: uMtElhgjsxy-lMOyp8yuPW0qUCUpyFoi X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAxMDE1NSBTYWx0ZWRfX1Or86lHnmiZx J2dAAoyMiLHkUyVbtQPmATWDQcfPrRlhpWL/6+S+GlCH88wvPFQWfd4ICrKhlqbXsr+ncSCz82M +E+I9BFguyPYyOoLBTsCh6nXA8cyLvw= X-Proofpoint-ORIG-GUID: uMtElhgjsxy-lMOyp8yuPW0qUCUpyFoi X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAxMDE1NSBTYWx0ZWRfX213QytYJnEyg PtKxGFzPLSgV4oQvzl0nsE9OAhG6h3cNbQDBwQUJmvRIRMmoamGvybFXqxzuzCq6uJY2xlHDgBO G4E/PGT3SnGj8N/EnLLP8RSHbFPcJzo+wqWcOT1iTBGUuBbIH3Oqp4pe/Q2uXD7aj3KlUefiFyk m8QMML1yzGlwiY/pqy8l0VmKCaNvXMj0sT00bFNIE0wOydxkwda8kqK6siG2fJG4SPQrzwxIkMc +hd4WygppImrScyLcnvxOYVAkIN60Idk9Y8tipTUJSA8Jw/ewEb9VqlQh/xc0yMtBYWN6m2k9k4 6YDfEqVvbk4mTJylFuphFg6lBq0EcCeRS9ejSvQOw4+mtM0igCTHBTqqJEERoII5GjyNmM9wipV dKGgMCcQivfuN/aDdFwBzZWCBbaXfH6ZOuBPxkEbyKddS73Pkw6vF3w7lvLT/66zKWrtfPVYuJh EpBWSGlA1GLAPv5GrUw== X-Authority-Analysis: v=2.4 cv=PKg/P/qC c=1 sm=1 tr=0 ts=6a970c8e cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8 a=q_fxtLUCAn1J2UUIEkUA:9 a=QEXdDO2ut3YA:10 a=rl5im9kqc5Lf4LNbBjHf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-01_05,2026-09-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 impostorscore=0 phishscore=0 clxscore=1015 lowpriorityscore=0 bulkscore=0 spamscore=0 adultscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609010155 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=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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 @qualcomm.com) X-ZM-MESSAGEID: 1788284148567154100 In system mode, route accesses to the qtimer-backed global TIMERLO/TIMERHI so guest reads see a live, monotonically increasing timer. In user mode we derive it from QEMU_CLOCK_VIRTUAL. Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- target/hexagon/helper.h | 4 ++++ target/hexagon/genptr.c | 29 +++++++++++++++++++++++++++++ target/hexagon/op_helper.c | 21 +++++++++++++++++++++ tests/tcg/hexagon/reg_mut.c | 11 ++++++++--- 4 files changed, 62 insertions(+), 3 deletions(-) diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index 78dc28ca9e5..e39afd623b5 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -113,6 +113,10 @@ DEF_HELPER_FLAGS_4(gvec_sabsdiff_w, TCG_CALL_NO_RWG, v= oid, ptr, ptr, ptr, i32) DEF_HELPER_FLAGS_4(gvec_uabsdiff_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, = i32) DEF_HELPER_FLAGS_4(gvec_uabsdiff_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, = i32) =20 +#if defined(CONFIG_USER_ONLY) +DEF_HELPER_FLAGS_0(utimer, TCG_CALL_NO_RWG, i64) +#endif + #if !defined(CONFIG_USER_ONLY) DEF_HELPER_3(raise_stack_overflow, void, env, i32, i32) DEF_HELPER_2(swi, void, env, i32) diff --git a/target/hexagon/genptr.c b/target/hexagon/genptr.c index 2a98b13b714..282a697d190 100644 --- a/target/hexagon/genptr.c +++ b/target/hexagon/genptr.c @@ -411,6 +411,23 @@ static inline void gen_read_ctrl_reg(DisasContext *ctx= , const int reg_num, } else if (reg_num =3D=3D HEX_REG_QEMU_HVX_CNT) { tcg_gen_addi_tl(dest, hex_gpr[HEX_REG_QEMU_HVX_CNT], ctx->num_hvx_insns); +#ifndef CONFIG_USER_ONLY + } else if (reg_num =3D=3D HEX_REG_UTIMERLO) { + gen_helper_sreg_read(dest, tcg_env, + tcg_constant_i32(HEX_SREG_TIMERLO)); + } else if (reg_num =3D=3D HEX_REG_UTIMERHI) { + gen_helper_sreg_read(dest, tcg_env, + tcg_constant_i32(HEX_SREG_TIMERHI)); +#else + } else if (reg_num =3D=3D HEX_REG_UTIMERLO) { + TCGv_i64 utimer =3D tcg_temp_new_i64(); + gen_helper_utimer(utimer); + tcg_gen_extrl_i64_i32(dest, utimer); + } else if (reg_num =3D=3D HEX_REG_UTIMERHI) { + TCGv_i64 utimer =3D tcg_temp_new_i64(); + gen_helper_utimer(utimer); + tcg_gen_extrh_i64_i32(dest, utimer); +#endif } else { tcg_gen_mov_tl(dest, hex_gpr[reg_num]); } @@ -439,6 +456,18 @@ static inline void gen_read_ctrl_reg_pair(DisasContext= *ctx, const int reg_num, tcg_gen_addi_tl(hvx_cnt, hex_gpr[HEX_REG_QEMU_HVX_CNT], ctx->num_hvx_insns); tcg_gen_concat_i32_i64(dest, hvx_cnt, hex_gpr[reg_num + 1]); +#ifndef CONFIG_USER_ONLY + } else if (reg_num =3D=3D HEX_REG_UTIMERLO) { + TCGv lo =3D tcg_temp_new(); + TCGv hi =3D tcg_temp_new(); + gen_helper_sreg_read(lo, tcg_env, tcg_constant_i32(HEX_SREG_TIMERL= O)); + gen_helper_sreg_read(hi, tcg_env, tcg_constant_i32(HEX_SREG_TIMERH= I)); + tcg_gen_concat_i32_i64(dest, lo, hi); +#else + } else if (reg_num =3D=3D HEX_REG_UTIMERLO) { + /* One helper call, so the pair is a coherent 64-bit snapshot. */ + gen_helper_utimer(dest); +#endif } else { tcg_gen_concat_i32_i64(dest, hex_gpr[reg_num], diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 2cea1927263..df31ed2488a 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -37,6 +37,9 @@ #include "cpu_helper.h" #include "tcg/tcg-gvec-desc.h" #include "translate.h" +#ifdef CONFIG_USER_ONLY +#include "qemu/timer.h" +#endif #ifndef CONFIG_USER_ONLY #include "hw/hexagon/hexagon_globalreg.h" #include "hex_mmu.h" @@ -46,6 +49,24 @@ #include "hexswi.h" #endif =20 +#ifdef CONFIG_USER_ONLY +/* + * User mode has no qtimer device backing TIMERLO/TIMERHI, so derive the + * user timer directly from the virtual clock -- the same clock the qtimer + * counts -- at the qtimer's default 19.2MHz tick rate, masked to the + * qtimer's counter width. + */ +#define HEX_UTIMER_FREQ_HZ 19200000ULL +#define HEX_UTIMER_CNT_MASK 0x00ffffffffffffffULL + +uint64_t HELPER(utimer)(void) +{ + return muldiv64(qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL), + HEX_UTIMER_FREQ_HZ, NANOSECONDS_PER_SECOND) & + HEX_UTIMER_CNT_MASK; +} +#endif + #define SF_BIAS 127 #define SF_MANTBITS 23 =20 diff --git a/tests/tcg/hexagon/reg_mut.c b/tests/tcg/hexagon/reg_mut.c index c5a39e55100..9ce18f3ebe5 100644 --- a/tests/tcg/hexagon/reg_mut.c +++ b/tests/tcg/hexagon/reg_mut.c @@ -77,10 +77,10 @@ static inline void write_control_registers(void) check32(result, 0x00000000); =20 WRITE_REG_NOCLOBBER(result, "utimerlo", 0xffffffff); - check32(result, 0x00000000); + check32_ne(result, 0xffffffff); =20 WRITE_REG_NOCLOBBER(result, "utimerhi", 0xffffffff); - check32(result, 0x00000000); + check32_ne(result, 0xffffffff); =20 /* * PC is special. Setting it to these values @@ -106,8 +106,13 @@ static inline void write_control_register_pairs(void) WRITE_REG_NOCLOBBER(result, "c15:14", 0xffffffffffffffff); check64(result, 0x0000000000000000); =20 + /* + * c31:30 is UTIMERHI:UTIMERLO, a read-only free-running counter. The + * write must be discarded; the read-back is whatever the timer says, + * so only check that the written value did not stick. + */ WRITE_REG_NOCLOBBER(result, "c31:30", 0xffffffffffffffff); - check64(result, 0x0000000000000000); + check64_ne(result, 0xffffffffffffffff); =20 WRITE_REG_PAIR_ENCODED(result, "c9:8", (uint64_t) 0x0000000000000000, C9_8_EQ_R1_0); --=20 2.34.1 From nobody Sat Sep 26 21:36:41 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1788284105; cv=none; d=zohomail.com; s=zohoarc; b=f/C/YabCJruindlbDJGpbAXk81iISRW6E6M1BQ5UQvV4KmjXzvItcjuz4v+sqEYr/CR6h3OYbZ3gCwalcIsc3J0foXmHet5LjaT62gVnhjiUfjD4T27c/bKyAbqtWWE6JXvnSa6ouWsrer8jwv94Nl7hzJQZx9u8rXc51yTUl7Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788284105; h=Content-Type: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=P1l2ZVGv0EoeHnybpkMuwun9fGn5Vbquo/h7YZzATHw=; b=Ex7D05wngl53+mqyygmO9pdNTVxmCdKqukmTkBxz8PkrAwfAVqNwpJZ0lZecQYX4+5XSJ/QNb1Gdjjpzfg+teyJcjdIO6pwfrWS15hBvScmeSOZzRYXmRbuvhGRDudC9WUtQa9PaSm9o5McdJKeujoBE3yZ/akpckGouUimxoWs= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1788284105205626.0464673249592; Tue, 1 Sep 2026 10:35:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x1SNC-0005c6-Rk; Tue, 01 Sep 2026 13:34:15 -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 1x1SNB-0005bL-LT for qemu-devel@nongnu.org; Tue, 01 Sep 2026 13:34:13 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x1SN9-00082x-Np for qemu-devel@nongnu.org; Tue, 01 Sep 2026 13:34:13 -0400 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 681H6UsF3409550 for ; Tue, 1 Sep 2026 17:34:10 GMT Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gdqbh3nf0-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 01 Sep 2026 17:34:10 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2d94f086fedso410085ad.1 for ; Tue, 01 Sep 2026 10:34:10 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-3286f95a160sm39702934eec.18.2026.09.01.10.34.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Sep 2026 10:34:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= P1l2ZVGv0EoeHnybpkMuwun9fGn5Vbquo/h7YZzATHw=; b=jZ6G8+MyKudzLXjl kwiuDh8secWE1yvebRWE1nSwFgL1zCBC0Y9EFcKY7QCXPmyjnIqwm5rKJSEZjK3e j4b011lXkN0mHWK7lhI7piwACNeFhcM2dlnRvLLuUijnc3zorw1Ye6gk4f+YO/yq P30zdxoZQu+r0T4iPGfxedwGxYuUWFwBJFDvVge/P/hoEXmtlBlDrNcMZhAE5JZt k2sXYX78ahRpcHHIMxZ6sd/rIJtuW5hdHqA0HCKtwg1vzSWE0Kln+xx8jrKXxuoT x/FYDtqtk/S0wuVxGOHDNhq2qxZtcW64vQS5R0806MIJTT0R2qjxsl93nqoIRmpd YyhCOw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1788284047; x=1788888847; darn=nongnu.org; h=content-transfer-encoding:content-type: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=P1l2ZVGv0EoeHnybpkMuwun9fGn5Vbquo/h7YZzATHw=; b=PxpFyDYWmHwCiJ1G2sBhXHyATV3DiUkBSpx3O5vcbprrED5V0/Nq6qMc7i3tleXA2p go8gufEcEUaT8zTZkFDYDeOi6Sw45F7anuHThMilK4UHq8hKltQTrCw8ZrF1iLdtzyZy PQ/Q7xd7Kn1nXGSZu4fg/aB8WEyw4kctlxJ2k1gsYVT9NTr3VPMPNtyYWb4Sycvdb0Sp GRK7O1aIxKxYxgi0Th/YvWbPTLzvT0t+C75ttTmtz8u7TZJR5mlDaYx4U9Sbf+x+DvPA t+fhXx6KsoMpHaZdL9A1SmUfYXsYVjnoZ2vgZmcx81llPIX7LYNlauAkBuLPQtjV+J1B FvKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788284047; x=1788888847; h=content-transfer-encoding:content-type: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=P1l2ZVGv0EoeHnybpkMuwun9fGn5Vbquo/h7YZzATHw=; b=b/WXaJQJ2SGsHT1hn36bjxrdKXRHdHr8UD83mjyYLPlBEc1G3CYJWwgN3Mrj6nDvj5 CIT0EjakYn6BtsXIuq28oxOWgHa6rKqfe6sOvQ/JSLdoC82W0XI+0jT8PNo8Zb5dEvZu Eq82jxKUWM6hj2DES8h25e34NUQyd8dw7nmvT9SpWbLNE9zR4VERB1SHAcvY5ckKbuJI 2fw6NSTNrscEyszCbvJLGP42cIAT5wG+YG928+aMxL4MRnxO6XElpuVUm9orb12MVJWs /DuQPHEfuAqOx7o3gx6Ri7IwxQZlj7BlSfp2+5xBw4NNrDOwCZiQv4LQiWQQao1LllP+ KLHA== X-Gm-Message-State: AFuF++lhGJm7p1LpJEfsue/iuV2F3uihn4dQVrnvvuFVVl6xyTRC7Rfx CC8z2cF0f3keStcCtRgdoyOR1VJ84ixfO1yA+lxrCgOfWrCbQmvX61lkm+9q8DR5UKd+f+obHJv 4ARO2xIfc/LtOsgrEMn5Gf70ukuJdyhvOmNlqmU+gjjI5UvnzMjsU7iOB6HUZzWHnvg== X-Gm-Gg: AYBFou06jtfL8wEkpPmny/ELw6AmLfcYvGKINXk04mCQbI0gTr/mkl7frAadRDRvGyA 22y+YOdkUfkZZacg8jOj6N8AoyEs8bazXLk1hs76aG1K4VQfbtkC9LPqAO2FEWGshW0jJYTRS5Z DOpyiMpBciyZXUnBGRnGCg0Fkpa6u1z5hsLEt5DPhqU8oyDo3z+Lp3EerczdpXIlc+fKEKYrSMm LXA/mWBumixMQS0Ejpo//a8KhbddOvP5CREZj5XpczJKefeJZ87jUb01qhJ0d7c8nb1a1x+LvKN C5zFB+WWTKi7+SJiHSCSjP8txdM8fwBikW4L0+KBcGQpq8ykd/mjuoC3UaZc5T65cAfbxxvjgIw TiVa9ZpCZOsqQGiN+8eHRQnKN9mYDoIiCO2Mnp4eYyXuV2ldT X-Received: by 2002:a17:903:1b68:b0:2d8:d4cd:dc92 with SMTP id d9443c01a7336-2d8d4cddf49mr373185585ad.21.1788284047138; Tue, 01 Sep 2026 10:34:07 -0700 (PDT) X-Received: by 2002:a17:903:1b68:b0:2d8:d4cd:dc92 with SMTP id d9443c01a7336-2d8d4cddf49mr373184765ad.21.1788284046595; Tue, 01 Sep 2026 10:34:06 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , Brian Cain , Laurent Vivier , Helge Deller Subject: [PATCH v2 08/11] target/hexagon: raise imprecise exception on multi-TLB match Date: Tue, 1 Sep 2026 10:33:50 -0700 Message-Id: <20260901173353.200474-9-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260901173353.200474-1-brian.cain@oss.qualcomm.com> References: <20260901173353.200474-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAxMDE1NSBTYWx0ZWRfX5SafpxAPfVfz sY0R1yKgwxz+RuQWA7RFPA2Y+HjtigtorhdB2Z0A2ZmVYHW/P6oShezTj6XX1CsbGW+YhCBI5Ny 27rnsU17uzzK7h9Mn6B+TH8qLsUY/ok= X-Authority-Analysis: v=2.4 cv=R9wz39RX c=1 sm=1 tr=0 ts=6a970c92 cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=ibjyMvudXchfNAek6V4A:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-GUID: xedaHwdioL_s4ulPeNM56m7nUc2EkO1W X-Proofpoint-ORIG-GUID: xedaHwdioL_s4ulPeNM56m7nUc2EkO1W X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAxMDE1NSBTYWx0ZWRfX/q4KsReYAoya mz2rVKw3MahxtLGqI0bzTgGzAVEbO0RKAuw7CrrY8IQSYdsezp6dscA0jbKPC9jSXIaTyXVhF+/ aFRjRwk0W2exX10EZFA5D6NKjZSPOQUq0VYreaP10dV1Jsz/JqwhuQ4TbTqx4zoQhI+wrGw2d8g m1a2AIAeWn1Hu0ZEhmtApLt5Tv0NHc1Rnk7Y2zd/xknjTa34PTIJeJL0JcDK7rPat333ekDPgN1 OUdBblP7ipAG48fv2woqc5No9Dnj9BeMOjgJInLoRQogRB6D5uZEaYL/zEDWtI6B3dYIlK7SIW9 7gIm2P7WcZe4lP0oACRzaYO5kS1wvGcf+B7tg9LTsPU+KEdiYpC0+NMR1CtwfQZcTPjel/c/WpQ dhLoaaIPGJBTAYwofwJOd6pFQICeAxNKVin6k4RYbyAEepvJEEsj9NqbHJ1Cql8ptb8VA6zZY1H K8qFty3PKOvEtmgjpTA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-01_05,2026-09-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 adultscore=0 clxscore=1015 phishscore=0 suspectscore=0 malwarescore=0 lowpriorityscore=0 impostorscore=0 spamscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609010155 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=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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 @qualcomm.com) X-ZM-MESSAGEID: 1788284107944154100 tlbp now records a pending imprecise exception (via env->imprecise_exceptio= n) when the lookup matches multiple entries, and the translator raises it after the tlbp packet. Implement the HEX_EVENT_IMPRECISE delivery path so the guest sees HEX_CAUSE_IMPRECISE_MULTI_TLB_MATCH instead of the exception being silently dropped. Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- include/hw/hexagon/hexagon_tlb.h | 3 ++- target/hexagon/cpu.h | 1 + hw/hexagon/hexagon_tlb.c | 5 ++++- target/hexagon/hex_mmu.c | 5 ++++- target/hexagon/hexswi.c | 37 +++++++++++++++++++++++++++++--- target/hexagon/machine.c | 5 +++-- target/hexagon/translate.c | 29 +++++++++++++++++++++++++ 7 files changed, 77 insertions(+), 8 deletions(-) diff --git a/include/hw/hexagon/hexagon_tlb.h b/include/hw/hexagon/hexagon_= tlb.h index 760dc1ea811..67c0a56b79e 100644 --- a/include/hw/hexagon/hexagon_tlb.h +++ b/include/hw/hexagon/hexagon_tlb.h @@ -32,7 +32,8 @@ bool hexagon_tlb_find_match(HexagonTLBState *tlb, uint32_= t asid, int32_t *excp, int *cause_code, int mmu_idx); =20 uint32_t hexagon_tlb_lookup(HexagonTLBState *tlb, uint32_t asid, - uint32_t VA, int *cause_code); + uint32_t VA, uint32_t *imprecise_exception, + int *cause_code); =20 int hexagon_tlb_check_overlap(HexagonTLBState *tlb, uint64_t entry, uint64_t index); diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index c50fbb3f72a..ed5671abe5c 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -147,6 +147,7 @@ typedef struct CPUArchState { uint64_t t_cycle_count; #endif uint32_t next_PC; + uint32_t imprecise_exception; target_ulong new_value_usr; =20 MemLog mem_log_stores[STORES_MAX]; diff --git a/hw/hexagon/hexagon_tlb.c b/hw/hexagon/hexagon_tlb.c index b6d4aff389e..6539458f25f 100644 --- a/hw/hexagon/hexagon_tlb.c +++ b/hw/hexagon/hexagon_tlb.c @@ -319,15 +319,18 @@ bool hexagon_tlb_find_match(HexagonTLBState *tlb, uin= t32_t asid, } =20 uint32_t hexagon_tlb_lookup(HexagonTLBState *tlb, uint32_t asid, - uint32_t VA, int *cause_code) + uint32_t VA, uint32_t *imprecise_exception, + int *cause_code) { uint32_t not_found =3D 0x80000000; uint32_t idx =3D not_found; =20 + *imprecise_exception =3D 0; for (uint32_t i =3D 0; i < tlb->num_entries; i++) { uint64_t entry =3D tlb->entries[i]; if (hex_tlb_entry_match_noperm(entry, asid, VA)) { if (idx !=3D not_found) { + *imprecise_exception =3D HEX_EVENT_IMPRECISE; *cause_code =3D HEX_CAUSE_IMPRECISE_MULTI_TLB_MATCH; break; } diff --git a/target/hexagon/hex_mmu.c b/target/hexagon/hex_mmu.c index 81d64a6146c..de108f709c0 100644 --- a/target/hexagon/hex_mmu.c +++ b/target/hexagon/hex_mmu.c @@ -86,9 +86,12 @@ uint32_t hex_tlb_lookup(CPUHexagonState *env, uint32_t s= sr, uint32_t VA) { HexagonCPU *cpu =3D env_archcpu(env); uint8_t asid =3D GET_SSR_FIELD(SSR_ASID, ssr); + uint32_t imprecise_exception =3D 0; int cause_code =3D 0; =20 - uint32_t result =3D hexagon_tlb_lookup(cpu->tlb, asid, VA, &cause_code= ); + uint32_t result =3D hexagon_tlb_lookup(cpu->tlb, asid, VA, + &imprecise_exception, &cause_code= ); + env->imprecise_exception =3D imprecise_exception; if (cause_code) { env->cause_code =3D cause_code; } diff --git a/target/hexagon/hexswi.c b/target/hexagon/hexswi.c index 43c373ea2ee..d29c12e6481 100644 --- a/target/hexagon/hexswi.c +++ b/target/hexagon/hexswi.c @@ -69,6 +69,7 @@ void hexagon_cpu_do_interrupt(CPUState *cs) =20 { CPUHexagonState *env =3D cpu_env(cs); + HexagonCPU *cpu =3D HEXAGON_CPU(cs); uint32_t ssr; =20 BQL_LOCK_GUARD(); @@ -83,7 +84,6 @@ void hexagon_cpu_do_interrupt(CPUState *cs) =20 ssr =3D env->t_sreg[HEX_SREG_SSR]; if (GET_SSR_FIELD(SSR_EX, ssr) =3D=3D 1) { - HexagonCPU *cpu =3D env_archcpu(env); if (cpu->globalregs) { hexagon_globalreg_write(cpu->globalregs, HEX_SREG_DIAG, env->cause_code, env->threadId); @@ -243,8 +243,39 @@ void hexagon_cpu_do_interrupt(CPUState *cs) break; =20 case HEX_EVENT_IMPRECISE: - qemu_log_mask(LOG_UNIMP, - "Imprecise exception: this case is not yet handled"); + if (get_exe_mode(env) =3D=3D HEX_EXE_MODE_WAIT) { + env->gpr[HEX_REG_PC] =3D env->wait_next_pc - 4; + clear_wait_mode(env); + } + switch (env->cause_code) { + case HEX_CAUSE_IMPRECISE_MULTI_TLB_MATCH: + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 4, cs->exception_index); + if (cpu->globalregs) { + hexagon_globalreg_write(cpu->globalregs, HEX_SREG_DIAG, + (0x4 << 4) | (env->t_sreg[HEX_SREG_HTID] & 0xF), + env->threadId); + } + break; + + case HEX_CAUSE_IMPRECISE_NMI: + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 4, cs->exception_index); + if (cpu->globalregs) { + hexagon_globalreg_write(cpu->globalregs, HEX_SREG_DIAG, + (0x3 << 4) | (env->t_sreg[HEX_SREG_HTID] & 0xF), + env->threadId); + } + break; + + default: + qemu_log_mask(LOG_GUEST_ERROR, + "Imprecise exception with unhandled cause 0x%x\n", + env->cause_code); + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 4, cs->exception_index); + break; + } break; =20 default: diff --git a/target/hexagon/machine.c b/target/hexagon/machine.c index 2dd95466e7d..bf4646f4a8b 100644 --- a/target/hexagon/machine.c +++ b/target/hexagon/machine.c @@ -10,8 +10,8 @@ =20 const VMStateDescription vmstate_hexagon_cpu =3D { .name =3D "cpu", - .version_id =3D 1, - .minimum_version_id =3D 1, + .version_id =3D 2, + .minimum_version_id =3D 2, .fields =3D (const VMStateField[]) { VMSTATE_UINT32_ARRAY(env.gpr, HexagonCPU, TOTAL_PER_THREAD_REGS), VMSTATE_UINT32_ARRAY(env.pred, HexagonCPU, NUM_PREGS), @@ -26,6 +26,7 @@ const VMStateDescription vmstate_hexagon_cpu =3D { VMSTATE_UINT32(env.cause_code, HexagonCPU), VMSTATE_UINT32(env.wait_next_pc, HexagonCPU), VMSTATE_UINT64(env.t_cycle_count, HexagonCPU), + VMSTATE_UINT32(env.imprecise_exception, HexagonCPU), =20 VMSTATE_END_OF_LIST() }, diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 5cfa60ca302..1d28f2db0fc 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -65,6 +65,7 @@ TCGv hex_llsc_val; TCGv_i64 hex_llsc_val_i64; #ifndef CONFIG_USER_ONLY TCGv_i64 hex_cycle_count; +TCGv hex_imprecise_exception; #endif TCGv hex_vstore_addr[VSTORES_MAX]; TCGv hex_vstore_size[VSTORES_MAX]; @@ -1051,6 +1052,28 @@ static void update_exec_counters(DisasContext *ctx) ctx->num_cycles +=3D PCYCLES_PER_PACKET; } =20 +#ifndef CONFIG_USER_ONLY +/* + * A tlbp instruction may detect multiple TLB matches and set a pending + * imprecise exception. Raise it after the packet that ran the tlbp. + */ +static void check_imprecise_exception(Packet *pkt) +{ + for (int i =3D 0; i < pkt->num_insns; i++) { + if (pkt->insn[i].opcode =3D=3D Y2_tlbp) { + TCGv PC =3D tcg_constant_tl(pkt->pc); + TCGLabel *label =3D gen_new_label(); + tcg_gen_brcondi_tl(TCG_COND_EQ, hex_imprecise_exception, + 0, label); + gen_helper_raise_exception(tcg_env, + hex_imprecise_exception, PC); + gen_set_label(label); + return; + } + } +} +#endif + static void gen_commit_packet(DisasContext *ctx) { /* @@ -1150,6 +1173,10 @@ static void gen_commit_packet(DisasContext *ctx) ctx->pkt.vhist_insn->generate(ctx); } =20 +#ifndef CONFIG_USER_ONLY + check_imprecise_exception(&ctx->pkt); +#endif + if (ctx->pkt_ends_tb || ctx->base.is_jmp =3D=3D DISAS_NORETURN) { gen_end_tb(ctx); } @@ -1357,6 +1384,8 @@ void hexagon_translate_init(void) #ifndef CONFIG_USER_ONLY hex_cycle_count =3D tcg_global_mem_new_i64(tcg_env, offsetof(CPUHexagonState, t_cycle_count), "t_cycle_count"); + hex_imprecise_exception =3D tcg_global_mem_new(tcg_env, + offsetof(CPUHexagonState, imprecise_exception), "imprecise_excepti= on"); #endif for (i =3D 0; i < STORES_MAX; i++) { snprintf(store_addr_names[i], NAME_LEN, "store_addr_%d", i); --=20 2.34.1 From nobody Sat Sep 26 21:36:41 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1788284129; cv=none; d=zohomail.com; s=zohoarc; b=gyxcSG9prSw15JAsDBRJo5DzyndkQ3u0LCD4rww3qGit82eeFvNm9ylqpsplH3Hg5KVvLteAGBjm9M3PImME2d4bFV140IEu+Z8GoIV9GurkpGPRtjp+gn3ALHBsmOTzGJK/Y9yj+ZbkwPIB1hhSwY8X9HDfWTgXkv+QfTZ3n6I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788284129; h=Content-Type: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=0AKhix/scvbv2QrCtqtiI3Go0XM0dLJ+Hx96NpgIE5c=; b=ktaqVYsYI312j5kPi4pSD8WI+J2SJwFOaPq5yVQo+i/aj1FsWFtQHVCwp0Yy7Ljew2nxawydEV3u0Z3J0tP4Y3JcZs6zyaioIWqE/el4c5C+RfQVNOFIJIGpA+EaCV+4YmQBJIksoy8UjYPBYrU3Ly/cFHDtj88wA7DCrkpth2o= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1788284129754704.3751185671592; Tue, 1 Sep 2026 10:35:29 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x1SNC-0005c3-9u; Tue, 01 Sep 2026 13:34:14 -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 1x1SNB-0005b9-6Q for qemu-devel@nongnu.org; Tue, 01 Sep 2026 13:34:13 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x1SN9-00082q-8s for qemu-devel@nongnu.org; Tue, 01 Sep 2026 13:34:12 -0400 Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 681H60Yx3898844 for ; Tue, 1 Sep 2026 17:34:10 GMT Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gdy9nhg8f-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 01 Sep 2026 17:34:09 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-38e54b6556aso106551a91.2 for ; Tue, 01 Sep 2026 10:34:09 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-3286f95a160sm39702934eec.18.2026.09.01.10.34.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Sep 2026 10:34:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 0AKhix/scvbv2QrCtqtiI3Go0XM0dLJ+Hx96NpgIE5c=; b=d6QEGf0jxCJG6W7h xfOvbnpmVUrYW/vL1lq2jhyUZy3ik3ofbiuiSK3wYFvNaqqIuJbaTgDHyC194Wnf Ji+KYpd5/0E3BwwoN7hrZpYHj/mwjqCCG5F6NEvEs4IJs0v4ekXrp6hCX6UNDJEx k2NkhK2QAd0waxzA0TGTphg2S6VGU6UG+sQbsKcSNsFJfQrOHn0xxY+Fih3cVVQt 7UNX0wG7V78jZRuH66HPyfDc2YPzwkMrbXjJpOeWGJnYSxUw+SrtGqjU3poFPLdk 44JfDlqLWOtqShaoclUO+046FI5jkK54vTKazWTN7XHM2uYUthfjv6bx8UvHgrrA Hc/8Dg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1788284049; x=1788888849; darn=nongnu.org; h=content-transfer-encoding:content-type: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=0AKhix/scvbv2QrCtqtiI3Go0XM0dLJ+Hx96NpgIE5c=; b=T6yF9JRKXkmsnS4AR4Tv1SpcuWuqNkNAGLDh8CNb0VqCW3Wl8LV9P02v7TgMJjmqoE MNA59Kyqt3+mjz7H1eAvO3afJA9WRx/kBoDBO6AROiGsUjYq8rwHRJIXUIWgFYvs8UfV KC+zMplqoMu85sJesnVeVxAgP6YxZVA6syVfRWKjP+azyOvYkNJ2V2FRUPMjp7JT4nOL nLjsZ1B2FIXmedQhZAO0vQshm6KF9xorfY4tB5YFcb5NwCU1Ei15ymNHcct97FyliNV5 478iCjN915gkBCQ2s8/PKSZXJ+1cfR9lTjwnGU/BiofqomaRkI0QjtEh14o/t2Hi2GAr qxPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788284049; x=1788888849; h=content-transfer-encoding:content-type: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=0AKhix/scvbv2QrCtqtiI3Go0XM0dLJ+Hx96NpgIE5c=; b=Aa0D853rGpM8ANUXm6bMCOQCE5nr1w6kIb8GX8lVdmL/bfx9/4AQMOimscUzc9dEco yG4bgiQq+iYAp3uIaEO/90bqBftKtNlWca/pAs/O/ppNV7VOkeceaIPRlxnuoKZOKNRR 0LZ0/Wyd/NCUxHAS6eU7gZ8ZR/4yOwn8AdC0k1TkfgMCelQ1r+przOAiEsphPcrBtfjC mbXz7leMj2bydUVXUmCcyR884issAfExNsd1d8p3NHxj70op4IbUWYct5MPJP3MR4S7E jVxg8FfA7C2Ft31DAxBOok29xLZhxzOkCDtEQC2r+i3/NwwhT3oXAQEu3Knbe8LDwSFJ qKYQ== X-Gm-Message-State: AFuF++knolF50+XKpHCIfaj5JN0TVq35Vv+1eHTCQZc6XJn54NiGu80/ 5iidDjQj7llU/8q9G6dLATnPFRYlPOeKfmV7ENHgPapEfJW7RK+H27wV6SYkaGZIbMaYie4h3Gk vWTSFTcLiJff4S11ysLuhZ4eDfaIHt88YxchSgcG5xLOEaRCQCjY4uVfKAo15rqrjXg== X-Gm-Gg: AYBFou1Spx8A1uuJC2dTFrKFMkgnfaUdKpOdaXlSljJ5gCWxNo5BM46QM41wooQjJJ6 mgAGaqo1G8DlJMZPYVwMgo7p5T/mCwD77UR7FMwIrpX+bbiDdmAi9wvjolTf4z5Hj4UjytePS9L 9HP2JuJZxTHjcPd1URPzP4ieQdUktqCT1WKp7Ih/cwatThCpwXs3Qz/Hz4v9Gl6YIzz+2pnzsP0 03hyxF7Rw4bRms5faM3iLx/6gXf5hS89MwfJgoXufdVz3rBHNg2/XLhjrSXinj90HdzdqxtP8gh NNQVTNJLVy595ViodSorlq4T2mxN3HjbrZx8yExEZt3RPpErRlQZJkKDsQY1fx4YBpYO7HRXmNA nLxk7VYVQmyAXiRkxnvgJkIlON5+eKHNID3Xo/6PkM/T5VlQ0 X-Received: by 2002:a17:90b:5188:b0:396:5fce:8e24 with SMTP id 98e67ed59e1d1-396d0ea530emr60009433a91.4.1788284048871; Tue, 01 Sep 2026 10:34:08 -0700 (PDT) X-Received: by 2002:a17:90b:5188:b0:396:5fce:8e24 with SMTP id 98e67ed59e1d1-396d0ea530emr60009329a91.4.1788284048356; Tue, 01 Sep 2026 10:34:08 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , Brian Cain , Laurent Vivier , Helge Deller Subject: [PATCH v2 09/11] target/hexagon: implement direct-to-guest interrupt delivery Date: Tue, 1 Sep 2026 10:33:51 -0700 Message-Id: <20260901173353.200474-10-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260901173353.200474-1-brian.cain@oss.qualcomm.com> References: <20260901173353.200474-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAxMDE1NSBTYWx0ZWRfX81vGr5UaHLjq nZCru7lPAN8Zgnszq2RErxGT/OcNpuu1gpHKkeFeu9+LKF59P5uAfOt3P+COXS8P2B/0cHE5+7n 1Aohdj7/Y1Oi3xCR49dgLaz0GQcNHAU= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAxMDE1NSBTYWx0ZWRfX7k3zi0QFSbbP agvy21tqAD+pJlt6PreisZT+w6TBWfMhLk29ZxdQCeYvB8lIPM2LbBzLwRwLOrSOXHxDBx0gHVd qGTOO3KEcdzt3cpLnxT19BAAdIXmf8iWeR7/+Xk+g58RI6HHShCrnt8n/FxE6KLeB2J4+u896a6 L2kzmcoTlwJGjBN9oVBnwP6Ud/+fX8b2OwjCLU6ZmPrBDk0r61O4woTdX/jZgUDTMKVHRX/6me2 79TDaCBakBRtC2AzdO3u0JLAqKzwFTvt8OImOZ3BftMpbKF/bNjernkLDo92SwhqzdwYJjglGmn QAfxc0RnhBh43J7tLi44cSCie8UsfyImXRnWvGnxpbaEnhPVT68OyDJBVA90gGmSCol11G1FYTX W1DQdzj8eg+SDNHw8g+fJ1tKVQCxPjvSvDoZ7Dd+GqeGbMT7Bx2ahpAp6P6kkWO92CVOK77zP+O sF2O1NveQx5fQMUzhTQ== X-Authority-Analysis: v=2.4 cv=e/02j6p/ c=1 sm=1 tr=0 ts=6a970c91 cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=Zk8ngpzFGPinGHXTi4kA:9 a=QEXdDO2ut3YA:10 a=iS9zxrgQBfv6-_F4QbHw:22 X-Proofpoint-ORIG-GUID: xkDQRlVyJkKyk73vuxuUQ2sxE2_dsP7f X-Proofpoint-GUID: xkDQRlVyJkKyk73vuxuUQ2sxE2_dsP7f X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-01_05,2026-09-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 lowpriorityscore=0 suspectscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 spamscore=0 adultscore=0 bulkscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609010155 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=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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 @qualcomm.com) X-ZM-MESSAGEID: 1788284132414154100 Interrupts 3 through 5 are routed to guest mode when CCR:GIE and the matching CCR:VV bit are set. Enter through GEVB rather than EVB, record the pre-entry state in GSR and the return address in GELR, and read the vector ID from the l2vic. Signed-off-by: Brian Cain Reviewed-by: Pierrick Bouvier --- target/hexagon/reg_fields_def.h.inc | 7 +++ target/hexagon/cpu.c | 5 ++ target/hexagon/hex_interrupts.c | 91 ++++++++++++++++++++++++++--- 3 files changed, 96 insertions(+), 7 deletions(-) diff --git a/target/hexagon/reg_fields_def.h.inc b/target/hexagon/reg_field= s_def.h.inc index d2c706d56b5..29497fbcc4d 100644 --- a/target/hexagon/reg_fields_def.h.inc +++ b/target/hexagon/reg_fields_def.h.inc @@ -136,6 +136,13 @@ DEF_REG_FIELD(CCR_VV1, 29, 1) DEF_REG_FIELD(CCR_VV2, 30, 1) DEF_REG_FIELD(CCR_VV3, 31, 1) =20 +/* GSR fields */ +DEF_REG_FIELD(GSR_CAUSE, 0, 16) +DEF_REG_FIELD(GSR_CFI, 28, 1) +DEF_REG_FIELD(GSR_SS, 29, 1) +DEF_REG_FIELD(GSR_IE, 30, 1) +DEF_REG_FIELD(GSR_UM, 31, 1) + /* ISDB ST fields */ DEF_REG_FIELD(ISDBST_WAITRUN, 24, 8) DEF_REG_FIELD(ISDBST_ONOFF, 16, 8) diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 0a677840bcb..efaf569c6f8 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -475,6 +475,11 @@ static void hexagon_cpu_realize(DeviceState *dev, Erro= r **errp) error_setg(errp, "hexagon cpu requires 'tlb' link property to be s= et"); return; } + if (!HEXAGON_CPU(dev)->l2vic) { + error_setg(errp, + "hexagon cpu requires 'l2vic' link property to be set"); + return; + } #endif =20 qemu_init_vcpu(cs); diff --git a/target/hexagon/hex_interrupts.c b/target/hexagon/hex_interrupt= s.c index 3534481da24..7dde1294b2e 100644 --- a/target/hexagon/hex_interrupts.c +++ b/target/hexagon/hex_interrupts.c @@ -11,6 +11,7 @@ #include "cpu_helper.h" #include "exec/cpu-interrupt.h" #include "hex_interrupts.h" +#include "hw/intc/hex-l2vic.h" #include "macros.h" #include "sys_macros.h" #include "system/cpus.h" @@ -215,19 +216,79 @@ static void restore_state(CPUHexagonState *env, bool = int_accepted) } } =20 +/* + * Direct-to-guest interrupts bypass the need for monitor-mode + * forwarding of interrupts into the guest OS. + */ +static bool int_should_dtg(CPUHexagonState *env, int int_num) +{ + uint32_t ccr =3D env->t_sreg[HEX_SREG_CCR]; + + switch (int_num) { + case 3: + if (!GET_FIELD(CCR_VV1, ccr)) { + return false; + } + break; + case 4: + if (!GET_FIELD(CCR_VV2, ccr)) { + return false; + } + break; + case 5: + if (!GET_FIELD(CCR_VV3, ccr)) { + return false; + } + break; + default: + return false; + } + + return GET_FIELD(CCR_GIE, ccr); +} + +static void guest_interrupt_entry(CPUHexagonState *env, uint32_t cause, + uint32_t event_pc) +{ + uint32_t old_ssr =3D env->t_sreg[HEX_SREG_SSR]; + uint32_t new_ssr =3D old_ssr; + uint32_t ccr =3D env->t_sreg[HEX_SREG_CCR]; + uint32_t gsr =3D 0; + + gsr =3D deposit32(gsr, reg_field_info[GSR_CAUSE].offset, + reg_field_info[GSR_CAUSE].width, cause); + gsr =3D deposit32(gsr, reg_field_info[GSR_SS].offset, + reg_field_info[GSR_SS].width, + GET_SSR_FIELD(SSR_SS, old_ssr)); + gsr =3D deposit32(gsr, reg_field_info[GSR_UM].offset, + reg_field_info[GSR_UM].width, + !GET_SSR_FIELD(SSR_GM, old_ssr)); + gsr =3D deposit32(gsr, reg_field_info[GSR_IE].offset, + reg_field_info[GSR_IE].width, + GET_FIELD(CCR_GIE, ccr)); + env->greg[HEX_GREG_GSR] =3D gsr; + + fSET_FIELD(new_ssr, SSR_SS, 0); + fSET_FIELD(new_ssr, SSR_GM, 1); + env->t_sreg[HEX_SREG_SSR] =3D new_ssr; + hexagon_modify_ssr(env, new_ssr, old_ssr); + + SET_SYSTEM_FIELD(env, HEX_SREG_CCR, CCR_GIE, 0); + env->greg[HEX_GREG_GELR] =3D event_pc; + env->gpr[HEX_REG_PC] =3D env->t_sreg[HEX_SREG_GEVB] | + (HEX_EVENT_INT0 << 2); +} + static void hex_accept_int(CPUHexagonState *env, int int_num) { CPUState *cs =3D env_cpu(env); HexagonCPU *cpu =3D env_archcpu(env); - uint32_t evb =3D - hexagon_globalreg_read(cpu->globalregs, HEX_SREG_EVB, - env->threadId); const int exe_mode =3D get_exe_mode(env); const bool in_wait_mode =3D exe_mode =3D=3D HEX_EXE_MODE_WAIT; + uint32_t elr; =20 set_ipend_bit(env, int_num, 0); set_iad_bit(env, int_num, 1); - set_ssr_ex_cause(env, 1, HEX_CAUSE_INT0 | int_num); cs->exception_index =3D HEX_EVENT_INT0 + int_num; env->cause_code =3D HEX_EVENT_INT0 + int_num; clear_pending_locks(env); @@ -235,15 +296,31 @@ static void hex_accept_int(CPUHexagonState *env, int = int_num) qemu_log_mask(CPU_LOG_INT, "%s: thread " TARGET_FMT_ld " resuming, exiting WAIT mode\n", __func__, env->threadId); - set_elr(env, env->wait_next_pc); + elr =3D env->wait_next_pc; clear_wait_mode(env); cs->halted =3D false; } else if (env->k0_lock_state =3D=3D HEX_LOCK_WAITING) { g_assert_not_reached(); } else { - set_elr(env, env->gpr[HEX_REG_PC]); + elr =3D env->gpr[HEX_REG_PC]; + } + + if (int_should_dtg(env, int_num)) { + int vic_group =3D int_num - 2; + uint32_t vid_packed =3D l2vic_read_vid(cpu->l2vic, vic_group / 2); + uint32_t vid =3D extract32(vid_packed, + (vic_group & 1) ? 16 : 0, 16); + + guest_interrupt_entry(env, vid, elr); + } else { + uint32_t evb =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_EVB, + env->threadId); + + set_ssr_ex_cause(env, 1, HEX_CAUSE_INT0 | int_num); + set_elr(env, elr); + env->gpr[HEX_REG_PC] =3D evb | (cs->exception_index << 2); } - env->gpr[HEX_REG_PC] =3D evb | (cs->exception_index << 2); if (get_ipend(env) =3D=3D 0) { restore_state(env, true); } --=20 2.34.1 From nobody Sat Sep 26 21:36:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1788284122; cv=none; d=zohomail.com; s=zohoarc; b=BnLEEV+uU9rjs7cGL81ABtbPNY2Fto8yzj4ILlst0KTC9QoLPhHuSlVLRR1VN6lI23KuoDznPqELt+gGAn81UidAh2NgNpKFlNb/rA2jiMEUIeZyXnpDpDtN5a3cOyTkKYRmecXJwgUNftNj/qbGQjE6o1H47HzyaeNsCC33pCM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788284122; h=Content-Type: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:Reply-To:Reply-To:References:Sender:Subject:Subject:To:To:Message-Id; bh=3zPNMVE0OJOjrANZMwm8oXffR5wrlrrxJ1gjkFPtpLc=; b=GUCljlYZtu4qEdXLkkt26gYbYy861q/M10tfcde+WAx9bma785+tQGfQMTHSPxQON3lA6d8uU3KORG35caV+KPnAGmPGKxaAv/viJbxu+atxqqtgVDzElMoZcOZgyWiatB5d1p3ijevkE5LzhdZJeAGieB/DJeAOVzu6i8XzoRE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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 1788284122337693.6614807522332; Tue, 1 Sep 2026 10:35:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x1SNG-0005dJ-6U; Tue, 01 Sep 2026 13:34:18 -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 1x1SNE-0005cc-Jy for qemu-devel@nongnu.org; Tue, 01 Sep 2026 13:34:16 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x1SNC-00083K-DH for qemu-devel@nongnu.org; Tue, 01 Sep 2026 13:34:15 -0400 Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 681H5pmd119286 for ; Tue, 1 Sep 2026 17:34:13 GMT Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gdsnu35ru-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 01 Sep 2026 17:34:10 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-38f97b3f853so108225a91.3 for ; Tue, 01 Sep 2026 10:34:10 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-3286f95a160sm39702934eec.18.2026.09.01.10.34.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Sep 2026 10:34:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 3zPNMVE0OJOjrANZMwm8oXffR5wrlrrxJ1gjkFPtpLc=; b=ScaQCbxyy6zoVcT6 7nwaBF/k1j0ZS7zSqKLxIydcPGjFR4m+r2BBl9N/JCM9wxK3M6/FdyfGQdjRTfb8 XNtCKvVPfU+GgGB/4D5qc7NK5eHyImEDnGujETojD9T303uWIvUh+kuGKfqf+2wS TXN5/Sk20vEF+GX1tv48CAGvej0myMUf0LPjQb7ZE658Xn+M/mGHJMPZADODN0O5 KQ4U2qaVc2tDzaCKPFC7wUcrG9weChwFSKPVEJDReGAU93u1nE0Myq7Q/HYt/4Ir CpYOLlN4TsUkDJtlkSG3xl/CaBVB8EtOKEDYLAW+UguCttcA/3+oicIwmgBffWWT fU0vvA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1788284050; x=1788888850; darn=nongnu.org; h=content-transfer-encoding:content-type: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=3zPNMVE0OJOjrANZMwm8oXffR5wrlrrxJ1gjkFPtpLc=; b=MWSVDDJpikCtqf9KQb7sbHCiKec9dTkoGgjahbWsTty3pFP0ocpXnMN49eyF+L8Y6m uk/v5Z3KazVFZvfJ+SB858+wRWjgsin8uFqzFoUgU58JCG7tlyNvVmgrQbi+2XUkZ1rf 2AaJ4SRYouS+N3LQPXNRy3vfzHQHEo7Zb/IQCTKuOLIjhOnQoV5D8yMtsshAFZFfJOZ6 UdQann8k59bEKgVS+4c/qjJy762Avad6dzDpPzVDiz/zgpMf11ixISTpSeE/m/MixoO6 Cw2YCS9tFHUj18zSE2uEaDovRBmTjdNoi3FzjQORyOX3Q0Y92RFdS0TOYBfY05d2JPeM oQnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788284050; x=1788888850; h=content-transfer-encoding:content-type: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=3zPNMVE0OJOjrANZMwm8oXffR5wrlrrxJ1gjkFPtpLc=; b=oFchbHzOsn866BNt2bWJFYNw9rCiWvNK+cAspxyhI0ecmsESxxu4GZmRrt3GvKJPDf HRpl3UKzft7h8V+8kjFztCbJg1ILsi6L8ve6u0P/sUZLmSOM76YMGUdPqSNORYYE76OE Diz/1c/XNqA6PdM/SSRn7tPiYk4wXJTHPGevvt59g5qJxPTfXXDcESQrmDK2AplIkdpS XjClcP3OZcv2sWDJCW8wZ4+7WGgufjgO/E5nw/5edmQFWp1B+k777VRIsyEQA0mBwmlT X21k1okYMyTWklenilbxby38xwz3uK+2p4GmLJ1TqREKtMU6Vd9o43rDCfvAX0RxQyTp z1rw== X-Gm-Message-State: AFuF++mmmwZE7lNbgKKYUD/2tcN/GXVTZS6yUbvmhdp8+NodWa7GuVql 0pT4dXe4fiYqGMbQ2nnlCTcWSz9BsPsDpzpui/IGIaBOkuOMqk/24HX0/5G3HvbAPF9q3XmPNVA EyoRhqceSSH2gjiJdcxMBlR+oF/A2hhS21ngs8He4LEL5sgAq/Q391wPOUdn+PZ6nFA== X-Gm-Gg: AYBFou2LwyRrxwgEPT5EBtWlV1KD3l4RrQgOEMcoyL0Mw2Xj9WM4wGY8xuQrw6U4txn sDxrllLoLGuOr/OYG7k7iTjXbJdsNKCugvoLTljFG89Ir9w1Nsmt3sJvsuXLy2Si6vmINXaufj2 l6CH3p76Gtjd3UHxmIacEZF8Of7+yyINTP69lTXk0URxeuwXHLDxxuDLN3TXm14BsVo26BakII8 sNhQoJn6cFgGshwDjl5MF/25TTFKV8cIpLeBmy6yrmW9MlkpSHc8OQu6kPGqPrZkSeJzPMs/Bxa JurQ5j6k1dzQ/wg+2LqbdYXtvaucn6x5d/xHjw72D6dUPAoCigRAQpnYNdOlKlPQjOkX1PQt3dM 7YAxc6/owQ4jv5iW6APmFrAzVkuua90bON3jMNdeCKtPcm+GQ X-Received: by 2002:a17:90b:1b0e:b0:38e:2517:5d1f with SMTP id 98e67ed59e1d1-396d0f8e755mr50730679a91.9.1788284050084; Tue, 01 Sep 2026 10:34:10 -0700 (PDT) X-Received: by 2002:a17:90b:1b0e:b0:38e:2517:5d1f with SMTP id 98e67ed59e1d1-396d0f8e755mr50730598a91.9.1788284049676; Tue, 01 Sep 2026 10:34:09 -0700 (PDT) To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , Brian Cain , Laurent Vivier , Helge Deller Subject: [PATCH v2 10/11] target/hexagon: fix iassign{r, w} to cover all threads Date: Tue, 1 Sep 2026 10:33:52 -0700 Message-Id: <20260901173353.200474-11-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260901173353.200474-1-brian.cain@oss.qualcomm.com> References: <20260901173353.200474-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAxMDE1NSBTYWx0ZWRfX9p9YGZw2ygYZ MIJ0ASj03faeLDTXHw6esG1vjo+NYyJFqyOAPFx1A/6zCAC+i9klzky9m01m6aw1VtB94kGJBzz 1SeS6fi9bK3r0IBgmVZ2hVVvsRj/FOXUs4MsavMgXFvIP5Q3C+wJrJq5+xw5pZxNNKs7JjcK7Jy F0kPaYeJpvBI7wntc8OOYcMA63cVpNJG1W9FiE9JjZeI1s7KUfl0ffT4C0djn+JkHCYIRNGChpH cukcDYC8ZWoW22QgQ96Aco5RYyr9K2iVFWDQHnul/br82tOwibZeGfu2p+uROKXyLBbsXT8yKfT x88HOIyui0aIYnExC0fqpeTVxlyJE4zD2ULi65VbU0HJTlVYlvhshyZLvgpCtikVGGeTIdoUauH 3PX4n3m7XbGF1rBdORQE4YXTzs+V/HaufwkK2s/DMj1fIWlSETXtMu2kBD47uE+Uf8mpzgycgA2 S3iKMw7mxctyxdly/Wg== X-Authority-Analysis: v=2.4 cv=L6ItheT8 c=1 sm=1 tr=0 ts=6a970c95 cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=1MU65uQV28RDXwrdXuMA:9 a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAxMDE1NSBTYWx0ZWRfX4l5mrlt3j09v MulVcIPSjcPDhwd6afOOzD0FYq9KdDPDPmdVvZuoIDcw40zFs4NylGvQ4GAGzlj173ex6MeSgZf DRCIyEjxW5Z1Pc2rgsOrWVtEN0JGU94= X-Proofpoint-ORIG-GUID: GSBQXd_2uqerkvn7OCkIOuho4Jgk5nHu X-Proofpoint-GUID: GSBQXd_2uqerkvn7OCkIOuho4Jgk5nHu X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-01_05,2026-09-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 spamscore=0 phishscore=0 suspectscore=0 priorityscore=1501 lowpriorityscore=0 impostorscore=0 malwarescore=0 bulkscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609010155 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=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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: , Reply-to: Brian Cain From: Brian Cain via qemu development Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (found 2 invalid signatures) X-ZM-MESSAGEID: 1788284124286154100 iassignw/iassignr were filtering CPU_FOREACH by MODECTL_E, the thread-enabled mask. That mask reflects whether a thread has been started, not whether it exists, so IMASK writes/reads never reached threads that hadn't been started yet, leaving their IMASK stale or unreadable. Drop the MODECTL_E filtering and operate on every thread. Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- target/hexagon/op_helper.c | 42 +++++++++----------------------------- 1 file changed, 10 insertions(+), 32 deletions(-) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index df31ed2488a..e19c3c91085 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1637,61 +1637,39 @@ void HELPER(cswi)(CPUHexagonState *env, uint32_t ma= sk) =20 void HELPER(iassignw)(CPUHexagonState *env, uint32_t src) { - uint32_t modectl; - uint32_t thread_enabled_mask; CPUState *cpu; - HexagonCPU *hex_cpu; =20 BQL_LOCK_GUARD(); - hex_cpu =3D env_archcpu(env); - modectl =3D hex_cpu->globalregs ? - hexagon_globalreg_read(hex_cpu->globalregs, HEX_SREG_MODECTL, - env->threadId) : 0; - thread_enabled_mask =3D GET_FIELD(MODECTL_E, modectl); =20 CPU_FOREACH(cpu) { CPUHexagonState *thread_env =3D &(HEXAGON_CPU(cpu)->env); - uint32_t thread_id_mask =3D 0x1 << thread_env->threadId; - if (thread_enabled_mask & thread_id_mask) { - uint32_t imask =3D thread_env->t_sreg[HEX_SREG_IMASK]; - uint32_t intbitpos =3D (src >> 16) & 0xF; - uint32_t val =3D (src >> thread_env->threadId) & 0x1; - imask =3D deposit32(imask, intbitpos, 1, val); - thread_env->t_sreg[HEX_SREG_IMASK] =3D imask; + uint32_t imask =3D thread_env->t_sreg[HEX_SREG_IMASK]; + uint32_t intbitpos =3D (src >> 16) & 0xF; + uint32_t val =3D (src >> thread_env->threadId) & 0x1; + imask =3D deposit32(imask, intbitpos, 1, val); + thread_env->t_sreg[HEX_SREG_IMASK] =3D imask; =20 - qemu_log_mask(CPU_LOG_INT, "%s: thread " TARGET_FMT_ld - ", new imask 0x%" PRIx32 "\n", __func__, - thread_env->threadId, imask); - } + qemu_log_mask(CPU_LOG_INT, "%s: thread " TARGET_FMT_ld + ", new imask 0x%" PRIx32 "\n", __func__, + thread_env->threadId, imask); } hex_interrupt_update(env); } =20 uint32_t HELPER(iassignr)(CPUHexagonState *env, uint32_t src) { - uint32_t modectl; - uint32_t thread_enabled_mask; uint32_t intbitpos; uint32_t dest_reg; CPUState *cpu; - HexagonCPU *hex_cpu; =20 BQL_LOCK_GUARD(); - hex_cpu =3D env_archcpu(env); - modectl =3D hex_cpu->globalregs ? - hexagon_globalreg_read(hex_cpu->globalregs, HEX_SREG_MODECTL, - env->threadId) : 0; - thread_enabled_mask =3D GET_FIELD(MODECTL_E, modectl); /* src fields are in same position as modectl, but mean different thin= gs */ intbitpos =3D GET_FIELD(MODECTL_W, src); dest_reg =3D 0; CPU_FOREACH(cpu) { CPUHexagonState *thread_env =3D &(HEXAGON_CPU(cpu)->env); - uint32_t thread_id_mask =3D 0x1 << thread_env->threadId; - if (thread_enabled_mask & thread_id_mask) { - uint32_t imask =3D thread_env->t_sreg[HEX_SREG_IMASK]; - dest_reg |=3D ((imask >> intbitpos) & 0x1) << thread_env->thre= adId; - } + uint32_t imask =3D thread_env->t_sreg[HEX_SREG_IMASK]; + dest_reg |=3D ((imask >> intbitpos) & 0x1) << thread_env->threadId; } =20 return dest_reg; --=20 2.34.1 From nobody Sat Sep 26 21:36:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1788284125; cv=none; d=zohomail.com; s=zohoarc; b=esiAn4PuHtAN52pFR1XVPEzy+CSdGAYIOVFG9VsGP+biuyFQuo1/Bjd5j9X4mTnj2SIInq0dbdfJj0HuQ6zSilv9zJXuZr7ZwDFdroZe0emXqhiH+pCk7lgj7OSRe5TnKJHV/n9DEMJCjUGRLByUwgVar+7o9azjrwQtb8Ku5QQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788284125; h=Content-Type: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:Reply-To:Reply-To:References:Sender:Subject:Subject:To:To:Message-Id; bh=mqNoeHtdFOV/gb6ZNLRhsaJUt3UTdl0o5mgBjZ7nPM0=; b=HwyPCM4iHmBzH+l/wGkEGcKprjyYZM/K7Dy59fThGQFbjJpVawvMuDEnc8Zis6K0px/qbyDao/KfnIf/eV3Vmbhc3XwjX8CLwCwdKEcSo1NcUtsdCwuH8cbb7l+F9Cw1rDx5X50+bjRy+pS4ZUfZrfNoGNyqZ/09+7AZIMuJtvg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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 1788284125162858.5683773872009; Tue, 1 Sep 2026 10:35:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x1SNG-0005dF-1s; Tue, 01 Sep 2026 13:34:18 -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 1x1SNF-0005cq-9G for qemu-devel@nongnu.org; Tue, 01 Sep 2026 13:34:17 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x1SNC-00083S-T7 for qemu-devel@nongnu.org; Tue, 01 Sep 2026 13:34:16 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 681H6QCq2033274 for ; Tue, 1 Sep 2026 17:34:13 GMT Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gdrcskd6v-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 01 Sep 2026 17:34:13 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-398e1fafe17so109182a91.0 for ; Tue, 01 Sep 2026 10:34:13 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-3286f95a160sm39702934eec.18.2026.09.01.10.34.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Sep 2026 10:34:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= mqNoeHtdFOV/gb6ZNLRhsaJUt3UTdl0o5mgBjZ7nPM0=; b=Hn8meDS3lw70dlvB mlAds6KH14gBn5KISkhdrFjzkEiS2RnLmjuSPUlGHdd5PteVrfdO4k1bmVe0L24Z vnYNToqV+NRb1xeqlUpG9kG9K88gQzNjHoiS+O32Kx7y7srfeLsa+/paJirDxW6T X8Cth/fPcJCF/XLLWL3F2FyZRyY/sUlFEzhhTzLFBhzEfMmj3+1jnbcdt/8b+gNH OnHInymnbwOAMlBCtoNjLOfiTd6dsMiPp1z1rEyfmqgdbsCoBF0R3QcYqsmbk3oh WUEiKfPuF0NijL/uGa4diL4VmRlW8nVZBctzaNyy/mCeu3J4OapEGVWcyu9X7Kdi Qp11sg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1788284052; x=1788888852; darn=nongnu.org; h=content-transfer-encoding:content-type: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=mqNoeHtdFOV/gb6ZNLRhsaJUt3UTdl0o5mgBjZ7nPM0=; b=MaWVmwMfAM+bLrRL7rBuNCHutE2zIQ8f4FSic93KqMo9uvoGOahpc6Mg7X+6RSet9V xuf/5XH3N75pK/5gjqd/AWiGgcOQMghh3HbaEFiJX8niBRTHfj7Ykw0tz8vzMoxFVd0T RU/9lsobQ91n5bQ+9r8ajet+5CWGPxtJ9TiwUkQALQ9MgkCawn6x0p4mNWxI3/bnRZUq rQw4kr0y+AVeKllTwlmyNo+59E1g2RJQufvGKeimEkGTSHlNFMtpSbKzZe1wJXZboHFR kboHfU9K1+1lIQsC02ytcIrbIz746r8KrPp/VyF1dwGattPvrUq2+hSW/UPGRMlgMNAf /3ZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788284052; x=1788888852; h=content-transfer-encoding:content-type: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=mqNoeHtdFOV/gb6ZNLRhsaJUt3UTdl0o5mgBjZ7nPM0=; b=ASR/OgxvymZiOfELdOMpyWqrhLRVIwYr8+KQq2iDMScsqyEmzEg+v2VxgH8cZmgayU B3EJdzsCvBGO6ihHD4SyLGOeHh1fEq6hNm6TdgAdg/juvT3KutQGZslBi+9I0IlYTCst +vPOCCp1IocASukWO1a8k+sD2AgBPFd4080uv/a7uXPxDdQXXxn4he1cA71FPnPzhBoz GqLdPNqkjO+23hZFo3K4GpZuWf4mK1MKs2yT1qZCA6WB9RKl3nGuUOwC0oC2Z3IpAKKs 9Zz+3qVR3bG/qovKQ1UcrnUjljFMMt3KCYDuJcWW3VkRpzoA1/6rglyeVYTCmNS9jZhK Q4EA== X-Gm-Message-State: AFuF++lEsWOUZnRg8b0YM54jel0eGGl41HCTCw3VYdnM7DBarqkbBco2 j5dQnj4IYG+RHcbFTF88c2Nj3N8c2ucDCB6BSPtPx+ovL6DpEy3xP9jbqdepkTdUBmHNuMiBzzc wFwQJGB9qYQcMMVc6wyK8LBq1piy+EUEJAnlz3XOWHWu7NkUNLaHxaV2S751pIhfUKg== X-Gm-Gg: AYBFou2I/bnR2GMfn1s3tMTUrf5Cn68YYP71+fIhhkp9EEUNAx3jpvg6g57CVQG8Dxr E7Ke6VW4dUmxPqslUU7yu/SXjOXrDnMPtzT6/+Y3I7AflnLHZ83J7y7a0ztZ0ZKQDLwNCkQh/3A Qngd9bOrOG+Zf0d6/bAYqfqr3PQsrGH15mKPc3QcTp3kRqv3iH7lpEH1iJP5Dcfnc7nR9plrocB 7qg6iTsBd/oNKmkCGJD4gACokb7Ds1vD+tQ/RbYWzaZC13ZDZP+uOOt2xRYh5NuJ0k680tMzGmW eG5xhNEjWueCzuIJXbqlmNnT5TLrVUKk1HN1u/I6dVUtryXBwC6Fp9YBt2udSEcidAOGPpb4uxw TFf1iDOICML+nu00CRbaZTyXhItCy47uozWC/BvMM2rBbl0xJ X-Received: by 2002:a17:90b:17cd:b0:398:ba9e:75ff with SMTP id 98e67ed59e1d1-398ba9e7753mr30142431a91.21.1788284052441; Tue, 01 Sep 2026 10:34:12 -0700 (PDT) X-Received: by 2002:a17:90b:17cd:b0:398:ba9e:75ff with SMTP id 98e67ed59e1d1-398ba9e7753mr30142373a91.21.1788284051976; Tue, 01 Sep 2026 10:34:11 -0700 (PDT) To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , Brian Cain , Laurent Vivier , Helge Deller Subject: [PATCH v2 11/11] tests/functional/hexagon: update to v0.2.12, +test_{interrupts, sys_regs} Date: Tue, 1 Sep 2026 10:33:53 -0700 Message-Id: <20260901173353.200474-12-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260901173353.200474-1-brian.cain@oss.qualcomm.com> References: <20260901173353.200474-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwOTAxMDE1NSBTYWx0ZWRfX97gEKFhv53EC y9QVvtaJWaZaQQI9+9y4qdrobv0z6mH8oGcWTZltnfAuf/EJwtTBMeKQVJEsNVZOQXrMd+ZimeW kZfgogykZZG6ONPolSuf7LdzkgSe7SA= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTAxMDE1NSBTYWx0ZWRfX3q792rvHC7AZ WMltUx/11cE9i/vXmCb/IlpvNJpfhoFIJx2RGOKZF7yRZb1oD15RIENETG4qxoMLU6nEXJh8nB7 +aQ2mbSIc3f+vS6/x+0uxDoNjVIluwX6jHPj6EcyY7kXr/FtlnxLJXHygtJdE0cTraynysf6386 YGVbV9XGkNXX+14s7mSJIwHN/5xNriRv7n3+74Nt6qOHUriagG/hlLI6Mw5OODcuwz1Xv6OAjbo rEa/WM4y6YHUVsfivaOFx5hQJ01G3QnyjPOm0RqHNJFzRPYwc1f7qlycYdS2XhXXXB0ylOm15/s 45AEy9V42/7TvqpK9+0MPWlgkpPN6eZBekB29vdS/7Gvzw5xhOJe5IKBlxov1QtdOamVDS+6R+Y 6umerodvwEp5d+VjevJIV9MQ9BD+palB9I22IXgCJFOvaufGWchGxP+vUl3PNUoZ2CsLSA7SxH4 9N8bK6bv8SVcc0Hj2VA== X-Proofpoint-GUID: sxyPGs3XGXlK6vMxmUzAdsLT_3s3izR_ X-Proofpoint-ORIG-GUID: sxyPGs3XGXlK6vMxmUzAdsLT_3s3izR_ X-Authority-Analysis: v=2.4 cv=QsNuG1yd c=1 sm=1 tr=0 ts=6a970c95 cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=5vFef2XoAAAA:20 a=EUspDBNiAAAA:8 a=zjiCbJeFjdgwON9hqt0A:9 a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22 a=bA3UWDv6hWIuX7UZL3qL:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-01_05,2026-09-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 impostorscore=0 phishscore=0 suspectscore=0 adultscore=0 lowpriorityscore=0 malwarescore=0 priorityscore=1501 spamscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609010155 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=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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: , Reply-to: Brian Cain From: Brian Cain via qemu development Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (found 2 invalid signatures) X-ZM-MESSAGEID: 1788284128191154100 test_interrupts also now passes in full following the iassign{r,w} fix, so enable it alongside the other arch tests. Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- tests/functional/hexagon/test_arch_tests.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/tests/functional/hexagon/test_arch_tests.py b/tests/functional= /hexagon/test_arch_tests.py index 0834398c3b1..8e71386c186 100755 --- a/tests/functional/hexagon/test_arch_tests.py +++ b/tests/functional/hexagon/test_arch_tests.py @@ -21,8 +21,8 @@ class ArchTestsUart(QemuSystemTest): =20 ASSET_TARBALL =3D Asset( "https://github.com/qualcomm/qemu-hexagon-testing/releases/" - "download/v0.2.5/arch_tests_uart.tar.gz", - "edb4f37b877a3a72a0e10920477458a43b40045d34398fee8cb763fefd342f4f", + "download/v0.2.12/arch_tests_uart.tar.gz", + "871a339bf78cac0ebaf1b2509bfcd5b249ad8190be33e0cf848283b2f6915323", ) =20 def run_uart_test(self, test_name: str, @@ -58,6 +58,10 @@ def test_int_steering(self) -> None: """ self.run_uart_test("test_int_steering") =20 + def test_interrupts(self) -> None: + """Tests interrupt delivery.""" + self.run_uart_test("test_interrupts") + def test_cache(self) -> None: """Tests cache operations: dckill/ickill, l2kill, dczeroa, dccleaninva, cache disable/enable, barriers, and dcinva/dccleana. @@ -70,6 +74,10 @@ def test_l2vic(self) -> None: """ self.run_uart_test("test_l2vic") =20 + def test_sys_regs(self) -> None: + """Tests system registers.""" + self.run_uart_test("test_sys_regs") + def test_threads(self) -> None: """Tests hardware thread management: start/stop, MODECTL state, per-thread HTID, shared memory, wait/resume, STID priority, and --=20 2.34.1