From nobody Tue Apr 7 22:05:30 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; arc=pass (i=1 dmarc=pass fromdomain=htecgroup.com); dmarc=pass(p=reject dis=none) header.from=htecgroup.com ARC-Seal: i=2; a=rsa-sha256; t=1775490660; cv=pass; d=zohomail.com; s=zohoarc; b=KN4CtRbCNxtTLq9qqDGOV2ziaaZwnoqY5d/TedPPfh4Q5lK90VUq5ECvflqYbIcKLvGXeWnGd1c1/MPjjkP4v5lpZKelSPdii3CLQVTkaM/E3mG1y3gUVA+9NAVNeOVhltGWq7ZsOok9LlbEmiUUzG4cey6211n3OrOUD/MY40U= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775490660; h=Content-ID: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=cFS2bocjopt9JcLptnVKBLFV3kuaoabxxjLxZXVHQu0=; b=OX5dxvFO4Rixuci4hB8phIUVzmy5DePZq2Bz4mowPSh6gdkXO84rBhShhoi3ApD8Jwo4XFcJDWidRYdy9IK1sRWaHy12fGqpRU9ewHho1eVIoBsciXqQf31meBqRjCiavw7h08nqGkMGWBRL81jb2/9K8o6UrPt6Ltn9EZYv2QY= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=htecgroup.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775490660070390.2636609904072; Mon, 6 Apr 2026 08:51:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w9mD5-0005aJ-Gv; Mon, 06 Apr 2026 11:49:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w9mD3-0005Wc-9f; Mon, 06 Apr 2026 11:49:53 -0400 Received: from mail-swedencentralazlp170130007.outbound.protection.outlook.com ([2a01:111:f403:c202::7] helo=GVXPR05CU001.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w9mD1-00021U-T1; Mon, 06 Apr 2026 11:49:53 -0400 Received: from GV2PR09MB8755.eurprd09.prod.outlook.com (2603:10a6:150:358::6) by VI1PR09MB6903.eurprd09.prod.outlook.com (2603:10a6:800:1e2::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.19; Mon, 6 Apr 2026 15:49:42 +0000 Received: from GV2PR09MB8755.eurprd09.prod.outlook.com ([fe80::939c:95df:4890:ce63]) by GV2PR09MB8755.eurprd09.prod.outlook.com ([fe80::939c:95df:4890:ce63%3]) with mapi id 15.20.9769.014; Mon, 6 Apr 2026 15:49:42 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jAMUIrdKPs4BnGlSuzO/ZjOtOnjHuE7KiJyOfjNb8AZMVPyXBopSTOhmuGOTM/J/KNC0dulFQXlC+fCbajPHm1yKWlksXkhCMDLBL612f8/eJEETIC7Y/zVmfiMtcWGWMehzg90leCYt25RC75PTZ3I1cBqhE3/fedLfYcbNgGOG/iF1PW+req6w/BjTc9gNBBdNDmW3UAWFfkCFbzdcmhJbALHsalgdf79ED4PeoJewccrwCYCawjd4NthJUCXj7EzmpqezJX7t7U1rlGbTqDTa57/9s3Qg2WxYxfl5/HRuuxGXCvr5lrjGPGg6d4lDNPrGA06bp9V+K0bZLJmS3Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=cFS2bocjopt9JcLptnVKBLFV3kuaoabxxjLxZXVHQu0=; b=k2/6JJ0enixHhUOTiJMcRz7Ej3DZRQqj3VlFFSY8sPU/9IaPU4ZdEMvT2RDBcDEUZCw/h0pJY9UsUX265WijFd+p4bU/cx7kaIzG5WfnMs6KsnLqMpN5kimpjj9Hx2qdNIpcog8CB0PINOd9+8xz9UXiWVX4Zz2N7xdtYZUmPCr2W3KuNQaVLfWPgwufqn9p/ofC3YFTa6Qnen5CmeDqeYZ2tz2Wtjf8H+ImQsIWO+ETDs1ljrbuUP8HLT1m0HpSADfVmv/Xu8j3xqVkCiyhrPmetWeUJhk7L8MP7wG8UPb8jlaq41u7HvtzOaqo+teNTmNBN85c3MrQjecy9S4nHg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=htecgroup.com; dmarc=pass action=none header.from=htecgroup.com; dkim=pass header.d=htecgroup.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=htecgroup.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=cFS2bocjopt9JcLptnVKBLFV3kuaoabxxjLxZXVHQu0=; b=jY9UaGTH433zuG6n4kPhkGum+qIr7HizDdOY3Vr5716KkuwnkxAP14pprx6sRTSfw2IwN+8p16Gtc3aP5xDudoY1BeWIaYVnT95kwYWCaRjOorX+5Nf9ji2JmcT1xaSOAQimrStaLhey/kESu4cV4vYsCcFf14Y2Wizxi9AoGMJ1wQsdnCczba35MvQSChuxlm3mSb8vr/tmnAElTdoR94ajpkVjo+Q40rlNQpkaIUFqeS8N9Sd9wA9lUSVSYBjoYvFWqd5pi4a4JI5wy1BddPKNI0xeuJwPVzIK20DN6OgzcHYLHgrUh/vn7PwO6omKwsvkBPl3e4ux831vQ8G7cg== From: Djordje Todorovic To: "qemu-devel@nongnu.org" CC: "qemu-riscv@nongnu.org" , "cfu@mips.com" , "mst@redhat.com" , "marcel.apfelbaum@gmail.com" , "dbarboza@ventanamicro.com" , "philmd@linaro.org" , "alistair23@gmail.com" , "thuth@redhat.com" , Djordje Todorovic Subject: [PATCH v6 1/7] target/riscv: Define MSTATUS_SBE and MSTATUS_MBE bit masks Thread-Topic: [PATCH v6 1/7] target/riscv: Define MSTATUS_SBE and MSTATUS_MBE bit masks Thread-Index: AQHcxdz7F+GgfLpRZU2hzXBWhLs/DA== Date: Mon, 6 Apr 2026 15:49:41 +0000 Message-ID: <20260406154935.144674-2-djordje.todorovic@htecgroup.com> References: <20260406154935.144674-1-djordje.todorovic@htecgroup.com> In-Reply-To: <20260406154935.144674-1-djordje.todorovic@htecgroup.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=htecgroup.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: GV2PR09MB8755:EE_|VI1PR09MB6903:EE_ x-ms-office365-filtering-correlation-id: ad2dff92-cfbd-4348-b9e5-08de93f41e23 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|376014|1800799024|18002099003|38070700021|22082099003|56012099003; x-microsoft-antispam-message-info: we29LETso0f5TqCqnGLMwNDrEIurBW/iK5WE1O4NRCU9TNGQrUnOj79+tVFutGGYSH5VUkN4hIdeN3N0BSVwQLgIyO6w7iiiDef50NcXcqzA2rWSfp70xj8MUloqRl5JhexfzyP6JZHvdTF8OX1F5qAJ5kECxwkBSmWI1XmxgOn96ueiSUQRKXIsGTH0tzDccEt1VpIujJmeTyEEVq8Qn12k2ra8HCX7gei51l0rwrwN2b3T7zkZAnGeQg6qiMV0ieZC6uBY97wLIgjt4c5PNR2kd9se67MrVlmpYM+KQAuhPWs2waCGAVAtQinLPVb44ug/5zbpmuainZd/UT/dCbjCDrqA1Nh7MLg1gL9aCIw5L7i9VABLIoJI34iiNZm+ZBHZyzlrj/4kevK/m+jK0lHbkLIlHLWlKGEM1oZsIyh+XhD9If5z3iCKPBc8i0Nd/AMHpW1EaUZhLjKF+39RWxaCzxSoWwqVvChT1x6VFkjpTPLo4EzSPaoYqASVlNbj3g32OS1JP/t0+0qVDeWTi3XbeQ4qGyGh6uu5DSnJl6VXfJP0Cy6xiywuvfAYaWmnmKLTcEvBUjDk+L2EoDVUusExNZtPKrFYUbUu8BGNT0POlqxVnj1KfsCp7j2I72N7BVKLhwezeAsL4kAE3yvQ+9JX7M1gX0tA3J0jEBaA8VWZDaLsWSt13Ba8N6AuDk0kVErhDBapA4PFVi+5IgZtSHOowI/K7szAe4dvIVY2bAgsSQyZ//q1BFxn1UZ9U49zqGNtI3/E4LbA5VyusojSlwf1uvzNxr8xWN1Y6HoOwy4= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:GV2PR09MB8755.eurprd09.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024)(18002099003)(38070700021)(22082099003)(56012099003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZFhqM2trWE4vMGhmYzJxb0JLenliekhjajArbnBtZThhNWFPdDZPZ0J5UkpX?= =?utf-8?B?RDNCYllmbnhBMkwrUFFvdWRIUHdiak84SllZK2FRT2ZPcHhrblZCdmNwcVUy?= =?utf-8?B?MS9vNFZBSUxWMkpiVUtUTzhiRVlGRll2TXhrc2pScUZ6SEdDV3J0KzdHK2o4?= =?utf-8?B?eWNKVWQzcDdMenN6SmtUU3NOVXBkc1l4RlFRdHVGMzBuZjM2anZhaENrRVlG?= =?utf-8?B?eTI4V0w0TmFsSGJULy9HTXg3MXhnanBoT3FyaTFSalk3NTZlTStLMDY3dVNM?= =?utf-8?B?Q1k3TGk4RnBkcFdnWEZQaG5KNW14Um5jeTQvczhWV0c3TGY3MGI2N3RQdWho?= =?utf-8?B?d3BMbDVXUklWejhuQVNtVHB6aytTUDk3bm9BVVZOVzh2OUVhaDRJclhYZFlz?= =?utf-8?B?ZkdwY1pRQ20wSFR4Z1IwRmRFNG9qbWVBUFhDNUJwSjFNczlzTWpTcVJ1bllJ?= =?utf-8?B?a0xZUXowQ2wrVnFqSDF4VEF4dGRLVUpkQ0dIcWZiTlJScm5MamVVdFBuNFZu?= =?utf-8?B?YW1Tb0xCY1hRVFVzZWN3MXR1SmhVYzFWUmYwSEVxVFlZMERYWE1tWWtlSHZv?= =?utf-8?B?NkpTN3dWNDJNbkEyOUtxdlJFN2NMdTZpRFgwUzRBUDFxWlNUN2d3ZC9OOEl1?= =?utf-8?B?elphVDlCc2pUaDhOSzBBY2x5aERZeVZ3KzduWUQ0elNTdlY3VU5lOEVqbGI5?= =?utf-8?B?QTFOVGRvcWg0emVMTko4dllHU1lDMDBLa0xRaXFaT3RIbkx2OE42T2lteHU4?= =?utf-8?B?NGNSZ3FRRWlDeFczSGp2aWZoMnl5MHFWenJrV2xEMWVUbnpiSm9oY0lSMEp3?= =?utf-8?B?VFJ6bHFrdXpGYThBK29yVTh1WUJJQmZYWUZQNkZLUnBUWS9MSTVsSnZCU1V6?= =?utf-8?B?RDl4cjIvNlVwZ09Scm94VXNINjZmZEllb1ZDME5jTkR1SFdnMnVNWmdvLzVj?= =?utf-8?B?T01MUlN6Y1JQNTBISVpMZm8wRWVacjhtZTVLMzlHSTlIOWNob2cydlRUZE9v?= =?utf-8?B?T3BmbjZqcHVlT2FZdGdHWHMyZ0lCOUJQWTdpZk4vN3g3TUxvZUVwYXF3alZB?= =?utf-8?B?U2ZyVUpuNmlHNnRLdWsxV0dSeE13RkpHRFdCWkkyUWExUVdSVWJoanpSdGZI?= =?utf-8?B?ZzA1Ni9Wdnlpei8vMjFTZ3hEazU2dXk0amRzbDBiWUs0SmRaVkhJYi9FR2Iv?= =?utf-8?B?U3BIQTk0NjhBV3hyZnBiOTBJZDZuaElzWlhaK2JEc05HZ3JiWEdXRktjbkpq?= =?utf-8?B?dVlQOE9OcW9pdWhkMUJpNHFkcGc1WUNxZXJ5MTc0Y0R0VWFPTHhPVmJUc3ZP?= =?utf-8?B?V0N6SkNGK3BLc3VWU08rS3Yrb1MrZE1QVlNKbERYMWI1Zlh2c05zVVg5bDhD?= =?utf-8?B?ZWlHRk1SbUZ5ZWwrWmhVdnEvL0Z4bFhTNGRIOElpZ2lWdkxPcndSWEdiRUdt?= =?utf-8?B?QXRyYkVmSGtJMU1SQ0lEU1BlR3FKTm0zRVVaSWt5MEZSTE1oT0x1QUJiVGgx?= =?utf-8?B?NGhSZjByTStnd2lkRncyQVJHMDRiT0hMaXF5MnJ5TG9IcStyUDlYZnZ5Tm1y?= =?utf-8?B?YUhMQXhGZDZrc3dBQ20rcTlrYTRuWmNKUHFYZHpSdER3UGU3cFBsZHNCcXVk?= =?utf-8?B?dzZ3Y3Vvc1BpNTY5NjJ6WWk1L3BGbFU4VTd4TW16N2l0OGo2eVZFMWl1UnJr?= =?utf-8?B?NUQ4djhlbVh5OFRHd1lPbitCTlE2MzNzQkUzbHpxOXJ5aGlubVZSam1sZjZq?= =?utf-8?B?Q0pPaW1xNVRKUkZvWHFjZWIwU1IzQk51TGUzWm0xZkxoeTZVc2dMR1ZVcEQr?= =?utf-8?B?bFFoQmtLZUFpWmo1N1hmcnMvSVVnc01YWnZSODZuRXVmZ2UyTVJOMnJKZ3ln?= =?utf-8?B?T1FJM1p4bEQxUEVLeHdObU8wOGtQSHlqYjV6Nk9xenhPaW5RcTFGVjkzaXFL?= =?utf-8?B?ZjBOYXpRNTl5TjZ0S3EzSjhETlNpR3JteTBKNWowS0IzaXJPbUdQTTFWRHpr?= =?utf-8?B?M3ZramJoVWNkVkl1d3NMbHdjQlM1TFFUWm9BL0Z3REVvdktRM2ZrSmdPM2lL?= =?utf-8?B?eUtWb1VHNnJPeTljV01qbUpRU2FiNUVzeitFL2Rsbk1jcVBuWDhNQ3JZLytQ?= =?utf-8?B?SVZVbHVPMjZNWnY0WDJtSDBWbmdMRGc1MzcxeDZYMGkyeEk1T0RBWWhCZFll?= =?utf-8?B?NHBlamtTRUViZWdXQno5OFFzZEhTczBJRi96N0k4RkEwR1U0UE9uK0xCMWcr?= =?utf-8?B?MnZnMzFyeFhJUnFSYWhRSC9pNTIwQ2NZeSt2RW52RWc4REcrcUQwRHBtNENa?= =?utf-8?B?NlNFUGFLSjVGNzI3aGlNamNnK0EwUWFBelNWdXQ5UHV0TGtpeWRXc2lyS0lO?= =?utf-8?Q?lIoUcQWQa+QZD8Y9nbRi5iWbgKuAnJGNUE0Jl?= Content-Type: text/plain; charset="utf-8" Content-ID: <6A81C358F35EF44188DE60D42CA0B69B@eurprd09.prod.outlook.com> Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: htecgroup.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: GV2PR09MB8755.eurprd09.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ad2dff92-cfbd-4348-b9e5-08de93f41e23 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Apr 2026 15:49:41.4602 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 9f85665b-7efd-4776-9dfe-b6bfda2565ee X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: W/re0g/f+uTGU/CExZC00CwSlcbbT0eMfCzBZjpFwRrZkBN77jBD0N8P+Rmx4RkCX3WiLiuL3YLjSiA4JuB7GBdhWyn0d8rv/K3wnS9Pn7M= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR09MB6903 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a01:111:f403:c202::7; envelope-from=Djordje.Todorovic@htecgroup.com; helo=GVXPR05CU001.outbound.protection.outlook.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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 @htecgroup.com) X-ZM-MESSAGEID: 1775490660971158501 Add the RISC-V privileged ISA defined bit positions for the Supervisor Big-Endian (SBE, bit 36) and Machine Big-Endian (MBE, bit 37) fields in the mstatus register. These are used alongside the existing MSTATUS_UBE (bit 6) to control data endianness at each privilege level. The MSTATUS_UBE definition was already present, but SBE and MBE were missing. Signed-off-by: Djordje Todorovic Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- target/riscv/cpu_bits.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/target/riscv/cpu_bits.h b/target/riscv/cpu_bits.h index b62dd82fe7..c2a3ee4bf3 100644 --- a/target/riscv/cpu_bits.h +++ b/target/riscv/cpu_bits.h @@ -628,6 +628,8 @@ #define MSTATUS_TSR 0x00400000 /* since: priv-1.10 */ #define MSTATUS_SPELP 0x00800000 /* zicfilp */ #define MSTATUS_SDT 0x01000000 +#define MSTATUS_SBE 0x1000000000ULL +#define MSTATUS_MBE 0x2000000000ULL #define MSTATUS_MPELP 0x020000000000 /* zicfilp */ #define MSTATUS_GVA 0x4000000000ULL #define MSTATUS_MPV 0x8000000000ULL --=20 2.34.1 From nobody Tue Apr 7 22:05:30 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; arc=pass (i=1 dmarc=pass fromdomain=htecgroup.com); dmarc=pass(p=reject dis=none) header.from=htecgroup.com ARC-Seal: i=2; a=rsa-sha256; t=1775490642; cv=pass; d=zohomail.com; s=zohoarc; b=NysGrUXnN5x7l9/S4Vwr6xj0oXPz3JB4l24FPuWEf4kJHl6xjgTweAVsMU0NBD1bGTzGxe2Bh3dCoxvQQKF9WrOBWrnUl0Qq1uR0gWhd1ydwuw5rRNYPzD49FO5JjaWfm8eYampu+XEsHh31jULwX0bS5cMMjVlYfsLiIfDS+4c= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775490642; 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=jVzeAQgbNcTCN2rAOS4YgOjyXCHcfr+CNWjkMHHQHy8=; b=EfsA3c8deTtCkTnxdir7wFg+nf+vRvHTVi6KG3xdzoNtNachBeCVBiOQWLqFTHYwYWLmmzoHKVPsh2zQned2Af/uQVV+HdcutoTj+kxUVI2AIyZQQhewDPJ0LAgaKCJKSXeQTQvG3yAtym/0LftHverwgHpVATL0ScOKWT8qP84= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=htecgroup.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775490642093736.3135138647189; Mon, 6 Apr 2026 08:50:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w9mD4-0005a4-OU; Mon, 06 Apr 2026 11:49:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w9mD0-0005Uv-SF; Mon, 06 Apr 2026 11:49:51 -0400 Received: from mail-swedencentralazlp170130007.outbound.protection.outlook.com ([2a01:111:f403:c202::7] helo=GVXPR05CU001.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w9mCy-00021U-RU; Mon, 06 Apr 2026 11:49:50 -0400 Received: from GV2PR09MB8755.eurprd09.prod.outlook.com (2603:10a6:150:358::6) by VI1PR09MB6903.eurprd09.prod.outlook.com (2603:10a6:800:1e2::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.19; Mon, 6 Apr 2026 15:49:42 +0000 Received: from GV2PR09MB8755.eurprd09.prod.outlook.com ([fe80::939c:95df:4890:ce63]) by GV2PR09MB8755.eurprd09.prod.outlook.com ([fe80::939c:95df:4890:ce63%3]) with mapi id 15.20.9769.014; Mon, 6 Apr 2026 15:49:42 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=s+axGXUeKWPwldl53WfNwcxdCbmEFf1xnGH1RFAwstQOycJIrebFhrluDFl6jkmwnHtYC+gSkMzu27ebMPKBmCQTZOOyfeoz20cmnldQpKlzcmuRWKU1JYqOdDBM25nLaz1Ex/yRSvMq7OnQX1SvhyQL9S9mFElQ25ZSYKCtWN5yOArV2xWZb1KV+t2Dyd5lN0Xcx/Gx/zZDr+uxHG1Qbf7k6AKfyvzhq4sI0XMoUDxqRLLnZqZimykPgNL7pgK9u/Q428Di9ZuZexiiHtxLB3XEsS2RDHzH3dutbh8Jv6uHD0UnjTNgdOyGhgLAeaCMlr8FQnVS9aQVqc8qB4Z3Qg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=jVzeAQgbNcTCN2rAOS4YgOjyXCHcfr+CNWjkMHHQHy8=; b=No8t6aBFjUC3zrlSg14VYFhB8abQy+B2Hkm6ZVRVrSc0xBk2TDA3ywQpUiiy6blO70TBJdZuGER35MnYAFR4+Wr8idw8yWnIm/RVWRzlf9jROs3pjs7ZfzrtmCCIRLmNU1B3liDdybag46j8Zx5JifPbZ7YVtHdRy4x2gV+6STcFE7K1IhTGRSW2u0u0pb9yHuJCmYcqxdhjYloIiF+QYuXy4f5NHTJ16Yl5Y99UDuu4TP+7lElDJD8fb+stTghVQj0VGjzHiM0yhC4cL9eIPjfPdkM579mYFdCYcIbqcXV6jhzIEWVoUfFXjutwcqZskM/uhwY/yyK7FDVpkodG2A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=htecgroup.com; dmarc=pass action=none header.from=htecgroup.com; dkim=pass header.d=htecgroup.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=htecgroup.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jVzeAQgbNcTCN2rAOS4YgOjyXCHcfr+CNWjkMHHQHy8=; b=ehyADqDrgt65rfThJRzWIODGl7tDiwrl9DRV1oJuoQED1s0kWsigZB7DzZwfSz2SMvFEVrcwQ57M8MEC6Ojhc0v1M9Xs8xYejNHIc2GGC08eZzKJEW1AKzXT9yYMFR5rYOtObRzOquMJa1iAyK27ZhUGV1vLglXi7d7r1tGSAdvNoFZOYmxAvuI6uWxtWhsvMtVpuGYib05xqW+tS18GFaAuPOdZFHM+zzTX3ZscDUM0Ek5MrMuyo7PgnxC8JOpjd94jJI/kgQGLZ+CKmMeoKg+GTVxa7aEY1UiVDazKJXViX1UlR4aCyi7K1Mnxei3XQOskK4qqSrKcO6cBZ088eg== From: Djordje Todorovic To: "qemu-devel@nongnu.org" CC: "qemu-riscv@nongnu.org" , "cfu@mips.com" , "mst@redhat.com" , "marcel.apfelbaum@gmail.com" , "dbarboza@ventanamicro.com" , "philmd@linaro.org" , "alistair23@gmail.com" , "thuth@redhat.com" , Djordje Todorovic , Chao Liu Subject: [PATCH v6 2/7] target/riscv: Add big-endian CPU property Thread-Topic: [PATCH v6 2/7] target/riscv: Add big-endian CPU property Thread-Index: AQHcxdz7upla7z38V0m76mmMu7gfvw== Date: Mon, 6 Apr 2026 15:49:41 +0000 Message-ID: <20260406154935.144674-3-djordje.todorovic@htecgroup.com> References: <20260406154935.144674-1-djordje.todorovic@htecgroup.com> In-Reply-To: <20260406154935.144674-1-djordje.todorovic@htecgroup.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=htecgroup.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: GV2PR09MB8755:EE_|VI1PR09MB6903:EE_ x-ms-office365-filtering-correlation-id: 424218c8-1c47-4e73-e387-08de93f41e59 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|7416014|376014|1800799024|18002099003|38070700021|22082099003|56012099003; x-microsoft-antispam-message-info: /k4IgLBN/f55PbSv3D2azmJjQcg8G1T8wzfCONwBauxytLGb7Mm/fmxGBV2a5F0swbQBi3I19FSg/CuajuR1rfibe59XzhirJgMNZ1ugObfR8PUL7UdOmcH8G7tK6589Z07RVcdw2GdVh9WIsmDwU2VXcZs9Fyuz0KnxPnJd31L+sflVCtpaAW9UQ0qK9353FoZUPceF0d9uOrVl7PvRLAcf0jMu6I/xWw+7nt1YvXBOidOJIep+Vl4wHJeP+g+y0iUpL4/Sd/wDQMIiIaztLIFAjrs3vVy2MeLOYNOJaMt6Gwh4UFx6sDObVJZyvLcah9KaieGY8AntIUhY5E67I2yqGOnvzfNFKzyoUwt1PiNKzRlqFxH93OQfbscqCmUcYbJS7zI+bpT2BdWGpRjQp8me7RxqJ0cCnmSxrS+wCxf3nS8LfwqopYpzJi3/ShyHdG49jmgdMRIMXTgt/oQrOoGPba+c9mSK4yciL1VpX4CL5/Ku/qyv7ZgC71STTtORG8D57XzaK5lM3nU4/3Z76OfNtlRFmIM4XTNf1cBqGRPnXKFEA+4qXaDVPu0cjGv7Rjyppt0RU1qbBImIZHzkQLJGQXSu2u69iG5rCkbDnAyqrViIb50RDNNHtFG0alRF02LlQ+M+D0UbRMWSPjts4aktZKAMbo5Jd19keJRtUSvShcynmJ+LyLKc7i1GgPWJBgXiT2pgev2Nep5IKrCG4Dozyvlpw8Y7gkEVLolRs6XPTi/MQRERSwSyM61ZnqvcG0vkGCLDXNp+fVCALHuXH/gjkiOqVjo84XoAwXnoEig= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:GV2PR09MB8755.eurprd09.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(7416014)(376014)(1800799024)(18002099003)(38070700021)(22082099003)(56012099003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?72uTg6gLu2IVH0Gk6MEHTCjA9k4c7HtdwuVF2FttyEa6qzsecj+/j1uIHw?= =?iso-8859-1?Q?xFVQFkmSBg9QySXs2IXl89ANIjXw0l8Uvec+MxMezeUWrQakEdOiY/Rs+2?= =?iso-8859-1?Q?zoTeXIqQa4AnJq/MSDou3N1Cczb4P6mD6bg3Zgs/GtX9nELVMHvXKE+Q+a?= =?iso-8859-1?Q?0V/wYgsSpEyE5CudZyF7LYXFfus9QYivzA+p2ufMEYY4m6OE7usZ6zPW5D?= =?iso-8859-1?Q?cTqPVXnqHi7+jcaO0DjiIpXqHfreZXlwVRRyqmTL+WhuEkaYAbG0Tma9Ri?= =?iso-8859-1?Q?ZZdFUAL7lJmzgZEuTN43RmU8q7FghywpTprSlX/kJO2rI/iFYbmS9znFth?= =?iso-8859-1?Q?Up/yGRt2U3TmwYUnrE+PYtkps0//CLZuowhnXNFqfFPtvxUi+OLyOf/y/Q?= =?iso-8859-1?Q?TYRRM8s2outAF+sSYrKUvQNTce5kRQDzeP/GzhFrj+jLPYngWup8P8sVUL?= =?iso-8859-1?Q?rSRVpdDLwl8GAKWJL0/Kc4/kCuWQSw7cr/jQIXVJ9AMfK4h2dcK91x30hZ?= =?iso-8859-1?Q?tFld5M/h3DR4WearN/qNvuMfUMip9sskwtlU+zY8/iq5drNCPZpFKtGNj7?= =?iso-8859-1?Q?qxqpbk6LptLuwYH/8thhKtkBe6U//pFY4fIIsqrYFHP9I79LC9QIfW2SFM?= =?iso-8859-1?Q?XM3Tl1OyThT/QFSVomOXA2Bh3xsYxvmbhaOf+iS8y46F7EBF0MF4uKY4hW?= =?iso-8859-1?Q?1JH4ep1Zfrh63cn94mJ3tY4t/5iqd72xilyUo7QjqZYuVWZRk1fKvA98Id?= =?iso-8859-1?Q?+Jkw9M/iJMXGFrqK7sdOr92e3nL+mu0NCJMo5iYEYRGxBYVj2BMqm0e/7q?= =?iso-8859-1?Q?uA2oCI3mxiW1iGp8R6B/5qzt/WwCCZu+3jswdm00tWzGj7by9yOpambd3f?= =?iso-8859-1?Q?fo47MVt9b3wOn02NCIV38AEDFBBlFuwr8zJ4B0xe5+PZ9RJP9ngmxbRQRY?= =?iso-8859-1?Q?OU1/VnRtJdi+6Zqx0/Inv6/lTkRKiX3DHNVVD/xslqyK0q6fc6ICNTmdlI?= =?iso-8859-1?Q?BgGyixe9IMhgrVJNAF8nlWgeyLnb6jCSB/RPzx+XRdNLHinvH3snS7gBv2?= =?iso-8859-1?Q?2ij/x2vmbsZ42GqcnRGABAPWhrqn3nbC+WSmOuPEOu4nOADWTAFU6Su60+?= =?iso-8859-1?Q?7wGZBXsj6Pahq93wl9xwi7M41pfKM59HO9aTzXuZNqF09lTYsSIv9Ze7U5?= =?iso-8859-1?Q?nkw7W6qRilV/goV5Qy1UIsoPi9ZAv7pMvfrtRCLRXOZ6lMuC3T7UVaS6s/?= =?iso-8859-1?Q?XaRHMGI8poHvwatb4kpYTho96N41CDza9fEDzu2sMS/3AOQqL1pemypJQe?= =?iso-8859-1?Q?V1TbNPKruOy5DU8jbfun3IMDgTRxLkAaTf8E7NAvSQ6bLwYaTLTDUXiveF?= =?iso-8859-1?Q?dfBeYoBzhmKYd2xmveMtrZq768PoFxaaU/gMkt1yjJ/OMXJrvhYJYi/UdQ?= =?iso-8859-1?Q?Zrex+JWqd5/KGZwXx7y7D7iihfTzQAyS4FFdwdO8TpBxm2ah7uHuOAFiKc?= =?iso-8859-1?Q?L2bp30O1aCJ7Kn4SZGuyFrka2dgX29CVmd5t7GwSBSZXUTdfNhbNXJSeH9?= =?iso-8859-1?Q?R/GmkrUQO/IDflQoexoT40yTrpVUz1yazpQT+coMOKB24loi9KomUCnbCJ?= =?iso-8859-1?Q?ZszL6gR3FhRlZWKYVF46GjQ/OZmiBNpgViM8NvfVliUmXkmdNKap2TIygt?= =?iso-8859-1?Q?QjHWsUkXM1+G3yNCk6mM202+hjBq4XstokYdFs4il8EuXns5FRHLhljBX1?= =?iso-8859-1?Q?UFBxeKsRSMaaMkGY4gUayqxLs2BsbETVbuTuC6OLsbePhPI7m2P7XSeZIu?= =?iso-8859-1?Q?BD/uMi5Cq9HtCNrH0GdpJA5Wf7ZN28IY3I1BQQlTnl50W82N2LVV?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: htecgroup.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: GV2PR09MB8755.eurprd09.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 424218c8-1c47-4e73-e387-08de93f41e59 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Apr 2026 15:49:41.7239 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 9f85665b-7efd-4776-9dfe-b6bfda2565ee X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: a5Jh4Heuw+Kg8bggIWEm2rfHkfzo7kpB7xo7FMb6k6v/7/ousLJF7Y+iujji8TJ9qy21ZSiagO7ecgzz9dCa8w8zdGX6UESnEEks6VG2SFE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR09MB6903 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a01:111:f403:c202::7; envelope-from=Djordje.Todorovic@htecgroup.com; helo=GVXPR05CU001.outbound.protection.outlook.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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 @htecgroup.com) X-ZM-MESSAGEID: 1775490644539154100 Content-Type: text/plain; charset="utf-8" Add a "big-endian" boolean property to the RISC-V CPU configuration, defaulting to false (little-endian). This property allows machine models to configure individual HARTs for big-endian data operation. The RISC-V ISA supports big-endian data accesses via the mstatus SBE/MBE/UBE bits, while instructions remain always little-endian. This property provides the configuration interface; subsequent patches will connect it to the CPU state and translation logic. Signed-off-by: Djordje Todorovic Reviewed-by: Chao Liu --- target/riscv/cpu.c | 1 + target/riscv/cpu_cfg_fields.h.inc | 1 + 2 files changed, 2 insertions(+) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index e56470a374..4537305dfe 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -2641,6 +2641,7 @@ RISCVCPUImpliedExtsRule *riscv_multi_ext_implied_rule= s[] =3D { =20 static const Property riscv_cpu_properties[] =3D { DEFINE_PROP_BOOL("debug", RISCVCPU, cfg.debug, true), + DEFINE_PROP_BOOL("big-endian", RISCVCPU, cfg.big_endian, false), =20 {.name =3D "pmu-mask", .info =3D &prop_pmu_mask}, {.name =3D "pmu-num", .info =3D &prop_pmu_num}, /* Deprecated */ diff --git a/target/riscv/cpu_cfg_fields.h.inc b/target/riscv/cpu_cfg_field= s.h.inc index 70ec650abf..51436daabf 100644 --- a/target/riscv/cpu_cfg_fields.h.inc +++ b/target/riscv/cpu_cfg_fields.h.inc @@ -154,6 +154,7 @@ BOOL_FIELD(ext_xmipscbop) BOOL_FIELD(ext_xmipscmov) BOOL_FIELD(ext_xmipslsp) =20 +BOOL_FIELD(big_endian) BOOL_FIELD(mmu) BOOL_FIELD(pmp) BOOL_FIELD(debug) --=20 2.34.1 From nobody Tue Apr 7 22:05:30 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; arc=pass (i=1 dmarc=pass fromdomain=htecgroup.com); dmarc=pass(p=reject dis=none) header.from=htecgroup.com ARC-Seal: i=2; a=rsa-sha256; t=1775490898; cv=pass; d=zohomail.com; s=zohoarc; b=eTVA79jb8QR3y+B7xv44YnJwcs/pIAYI0e64wn38ivDZ55gQi+Xd49vq9FUKVrJUX89o1z/j40Nw19UhJiNU7r/jSd39A7WnC4+L5Wxh8oH4MZQRMJ1qzOo8isDrONS6z7ECp49QV8oG3TounfKG8Orr1T9mp6kXk6Dyje1ClhA= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775490898; 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=ecCfSg8uDGE4ujf8sKSBImdcxzfMnPxIU4Dlw7Q9APE=; b=WZnz8MQrqyhhjXSVdMQLtvfmYp9pAPgDAVI5Mz9r/OIh+8A+Vl1sLeTSy4tZ2Dydu0DjwZtnG9iahmbEVZAIrUMyFJBZcm7Ezks1eqFCwmVGQeE5IkzpHpVq43TIIrqbGijdzq3HnXx+S6OA9JYhiArvrmZMMQWAlbwIji4nQOI= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=htecgroup.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 177549089860918.90726763455075; Mon, 6 Apr 2026 08:54:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w9mHr-000247-5w; Mon, 06 Apr 2026 11:54:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w9mHp-00023p-UQ; Mon, 06 Apr 2026 11:54:50 -0400 Received: from mail-francecentralazon11023134.outbound.protection.outlook.com ([40.107.162.134] helo=PA4PR04CU001.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w9mHo-0003KG-Hy; Mon, 06 Apr 2026 11:54:49 -0400 Received: from GV2PR09MB8755.eurprd09.prod.outlook.com (2603:10a6:150:358::6) by VI1PR09MB6903.eurprd09.prod.outlook.com (2603:10a6:800:1e2::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.19; Mon, 6 Apr 2026 15:49:42 +0000 Received: from GV2PR09MB8755.eurprd09.prod.outlook.com ([fe80::939c:95df:4890:ce63]) by GV2PR09MB8755.eurprd09.prod.outlook.com ([fe80::939c:95df:4890:ce63%3]) with mapi id 15.20.9769.014; Mon, 6 Apr 2026 15:49:42 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FpRJcFC/MvyVHbfJ5P0eLpJRt1+kMTh5XqJC2oOQHyjejtC2+Zt2BfX/sMcmEG1MF7SA5kGTGml84QEof+UlAvvIf2E6OOsI4eSc5kPS3olQL8WVR+KjA4gYtelRqEGFwfoFMHvp57QbJ36Dtq89eQgVtrpiVVZS1+XQpYPhskaR32meaivy6Z/5UQadeWpD1ZdSwdhItwncNAWPLaXNCYlT+AcHt9s3PhGZrO1CJjjM1a9DYCy/A1TBfhIkC6pwhb6oAXaUHAfObozRogoXB7pZVoS8bD1mtERdJgaVC/Ae0AFBd0Jvp5N3TkT+nL588/NQyuK654JwJdD6ctuwFA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ecCfSg8uDGE4ujf8sKSBImdcxzfMnPxIU4Dlw7Q9APE=; b=aijSgETzPyZTxdbQzh6g6wZhD7NLRe89ENYgiF2e+cxlgQOvxQxfweH7H1Mv3pnt/t3vkyDB/VV7VAx0JKrJ9CoL7VIo7ZPZoSR/S+Ioasg168SgE9Rrt1p6Ayiy4rT5+bP/j3mUTfxEiUd3CUuxYG/w+8E4KnyParqp+YZkIu/BIsM/VHKR1lAdRDXPAuoWjs6r1BtIv26RKfRPXG+L7Gc1myYNEQylAK9G82gSAz69Lq0ex+hnjOOmocL314jyqldO9xuXyYHXuo7XfjomYIAoCB9RjHKq6uv7E6AiXlQ8pF4PNDig+G7Zsx2tjt1999xAkUHj1sCdci3niWWjFw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=htecgroup.com; dmarc=pass action=none header.from=htecgroup.com; dkim=pass header.d=htecgroup.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=htecgroup.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ecCfSg8uDGE4ujf8sKSBImdcxzfMnPxIU4Dlw7Q9APE=; b=KM8xcibsfNW65ZvkuXj8JU19YERLzGf90qoQ5w4FM/M2/Z30imBMjstAr2jli+JxNdcGOYDLL0CYhE7O8njhc77lZmi7geDH64+ZQPcf0+BqpLdFXGp2Co4ryNstemMHk6y5pq4FJhGts3c7bo937cA3yV9h2cEDirKT02KzrC1lrAHHW5sBEylKwgJ+7lRCzgoccf7+VonCSd9iZ8wlB2v650tb0LsglfuneD9mK+3aY7EB+2tDKVYh9MNEmzVgbSY3Q7zRniEr+TV/uO7Y5k9ig8qzy2EeCRswdMwwXr0a4mP7iUEjFZmrIwMePtCbsr8IetiTC/hzw9FROYNhpg== From: Djordje Todorovic To: "qemu-devel@nongnu.org" CC: "qemu-riscv@nongnu.org" , "cfu@mips.com" , "mst@redhat.com" , "marcel.apfelbaum@gmail.com" , "dbarboza@ventanamicro.com" , "philmd@linaro.org" , "alistair23@gmail.com" , "thuth@redhat.com" , Djordje Todorovic Subject: [PATCH v6 3/7] target/riscv: Set endianness MSTATUS bits at CPU reset Thread-Topic: [PATCH v6 3/7] target/riscv: Set endianness MSTATUS bits at CPU reset Thread-Index: AQHcxdz7egpNESDMekSh2U2baJ4koQ== Date: Mon, 6 Apr 2026 15:49:41 +0000 Message-ID: <20260406154935.144674-4-djordje.todorovic@htecgroup.com> References: <20260406154935.144674-1-djordje.todorovic@htecgroup.com> In-Reply-To: <20260406154935.144674-1-djordje.todorovic@htecgroup.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=htecgroup.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: GV2PR09MB8755:EE_|VI1PR09MB6903:EE_ x-ms-office365-filtering-correlation-id: 88733c24-2174-433b-161a-08de93f41e8d x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|376014|1800799024|18002099003|38070700021|22082099003|56012099003; x-microsoft-antispam-message-info: kTJz8PrZJqnm7fJd15RtOKe/uPlaiVJbZi7SDi1PATbDDAWYGuQHl9JHIK2/gxLtNNLbcUPV3DuuWEyD5vdKl/IvYXimvANCkbvI/Bz/mEqw138UCNAv61atprZrh99ycVxNlHSUucqAqpYY0Uojn+HWwClAktbn+LMJFafQP+Qcj1XmxGPhtjOXwPVFmVsaAb+vHQG83uVX/TuNEkkxjEMLnaV2mAYbZqMx9aoiHS1/SfPAwMNvBEM+wgYlw8s9Cmy1+ymkhmPhFKWdvPdkx14HMmf1sZqS6ImhHo2gUoV8hmkjjcXyqMSMEt7OIVnK2tBTR+EblIOr/g4BAldgd3f6LDO8EqLVk6AaRnmmbBjLabOUmOf2IUfEZCExtfD57FF3ZH7hLYjH6+zxYQvC3w4Z6LRw84hf+39WmyLNNrCCzYdHXYXEYKN2PReoaQ5mnuk5o9lRtzCifZ74gISV24cMpUP3TlaOVeqAfLul0bSw9o5wF2//dNqWjVcYeluUjAy9N6T4WvGkngNStccwPNzUNlU3m1sxhUrNngrA/KUdS/3raPdXRwn+HsFL/nsX9x3YNjbKVQZw3Nj8jMmMlVZ7YU/JG3Xl3Ci7XOpVCr9/bdLJ6KEEQDesoq/g4Avaic+na/E9ZClaQFiB3FPBvz+eYNM048lnuUBK9CdErSmSJvlg5QTdMaq4lAU+FiSCj801TT7wzjqHaJKHeVSCRw4YrPnpT+V/fB52E3vYSp+eeHT04Ss8KwkoGE9QiWpzEitUmg2A0TIxNDAQ0c4opD6CQjlliJLw+6z7i/KoW1k= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:GV2PR09MB8755.eurprd09.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024)(18002099003)(38070700021)(22082099003)(56012099003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?owvX0tC52T9mkcXnlDcQqIbQ4oL2uQcRhrGeTVfD4fsJc8PzZK2KUnl7Iv?= =?iso-8859-1?Q?GC3/Suj+WqlG9gBPhwKbRLrQjZiXifLzpx0bMAEeVLxC1/o5HqVHhOCJg2?= =?iso-8859-1?Q?tMBH0S8CcOeRp9or4MaarpziGy7A4jmEIkXOe2dA36DZsi8FccSPwsvlUt?= =?iso-8859-1?Q?PffhBaT4DEIVQ5WQo7ge4YP+vDNTNyKaKEiXgyJk03DHz9zeZh12kTUAvM?= =?iso-8859-1?Q?6dlwEJKoo8dofLxs+7PQxlHskBQxzypgIXmWVRA4ixBzKrzGEKcBNUQNHx?= =?iso-8859-1?Q?/MWwKwHA98NljjOV0p44N72/M8WZFXRsJosYaril8HMV/VcYhd4FIXO6mi?= =?iso-8859-1?Q?SxT46KwaLHAdSRMxGW6okxux70m5t5HRPgW6R6xTEUnl9f2UptZGPLjhlp?= =?iso-8859-1?Q?rhJgzmCdKzzGgexFQwZ04DID40kFeOYcEmJfDYuBC85YaXD5Rr4wH/ExNR?= =?iso-8859-1?Q?6e1o133NmNJAKDxWRFYQkvAEGn26qz0U8xm0XufF2pvQlugDUGWkT2CN5j?= =?iso-8859-1?Q?3EFTU0yVD8YvLxTCyIengJd4Lf4o1fTf+ZcYmL5y+EKdI6hqcf5y4d+mO6?= =?iso-8859-1?Q?JE2aZXHzThjfy2yBYVOiMJdbg3aOTCVAAK9SpFnIGs1PSNibLqUaW6WURl?= =?iso-8859-1?Q?DzwQRLi6vuCjWo29WrrfB3Yqr4hjPFEzANaTNDCvhN1ynr9MrFNYsXn2S9?= =?iso-8859-1?Q?IEXShrbniI8cwTOMxZlvav6Ne1ByQYsKkCIAjTMa8lT6KdxBSPRhmeJ7LY?= =?iso-8859-1?Q?HS/OdwH74MkZU1EswtFEWr9iqdepiuapvFOAVYhSYDRtrJMp3AAhtr64D0?= =?iso-8859-1?Q?52/3d1ZeJZPRx0TlJdZXN6qP3N8PZwsE9+z7kuYQYdYp7Iww5H5Teqpxl2?= =?iso-8859-1?Q?IFS8YhIfVgGRT2ASWyIFD8G0d2vVVymiDuoNnK4Oa7elmeRS0LXduuUM9R?= =?iso-8859-1?Q?tG9xaxz7xzkA97Er0dj5fj8DcQQrmzoHgAQ4t1qd//58QOkkPbwZrnj7Yj?= =?iso-8859-1?Q?1cKlX7kEzAnHtlo0+UzaGVL5qbWF8pkq4YumRdKBLCA55Fh4pw9weJfliS?= =?iso-8859-1?Q?9cECUqSKWglfOw+pdZvC7VKAYdFkKXYZkfl+HWtFnHs+bG8hhYOsxbiBm5?= =?iso-8859-1?Q?R0iSDyDBXmSZNXWRLbkkiuhHoSBADZyRdBYQkZmuDGqqsvvRkEQAKb21gj?= =?iso-8859-1?Q?k/SR8dYMwxcb5TJEqEtyWuTdwiiGK34E908+tE2umefhwooxmM1cKj9g+D?= =?iso-8859-1?Q?MPT5GAJ9yF53sFffteYgohul0b/Wr6qiQtOg7OxtU8DgwwQjh6O19Ui9aj?= =?iso-8859-1?Q?4G9nrnGocOZTa2RVp21M76JVo0lQlChTCJmCws/m1o8bOpzRIh+xjNzz0E?= =?iso-8859-1?Q?MuUVw04zoKi2xrpRYW286Pz2dYvjNhXd+iUH7hAD1lF6x8mcpTFPkkpWSN?= =?iso-8859-1?Q?OLJRXUW5W48D6SsrZ1FG6tpodv546t6IKI1yQIu4/AMDTNDj/IwPte7xFn?= =?iso-8859-1?Q?xDgU3eSMMEPR9NqtJEWpXUyyCmYRKxZt44wcURK0a+kumpbMrIGB4OWFam?= =?iso-8859-1?Q?VjaxT93e/nM+DTVS8tzuH8ZiVOs/OZQVW7WOowTTNWetUgJve7XkJ0+7fv?= =?iso-8859-1?Q?myjmwcCuKZFzmYXm+JEJeAV4Mezojw2kQR1cvXrsZfXM8UJJ7fMv6slivq?= =?iso-8859-1?Q?LS4ek7fV35j2obL+crUpDaKAqOQv4nnE24OQQbhEkVF2AIY6QdPz2BotEv?= =?iso-8859-1?Q?3KgrldNCGSOg4vTyysYujzWJu9sgNsfFsPANt9eoNaG0fHGuxa1pmCBbFr?= =?iso-8859-1?Q?q4X/bfxXX6021TyjwdrYehnsX9oFvz3LLnD/EmC7v6FXHx4BHGAG?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: htecgroup.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: GV2PR09MB8755.eurprd09.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 88733c24-2174-433b-161a-08de93f41e8d X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Apr 2026 15:49:41.9852 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 9f85665b-7efd-4776-9dfe-b6bfda2565ee X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: kDfRlLp4choGXGv7sh04yGk3M41nL+UwHCjUCjW1ULrOM50DC5w6JBrroEe2sZsM7iqye2ccyNwJRRTwB3IH6fmRf0mnXvDNWyPAc0TOMM0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR09MB6903 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=40.107.162.134; envelope-from=Djordje.Todorovic@htecgroup.com; helo=PA4PR04CU001.outbound.protection.outlook.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H2=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-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 @htecgroup.com) X-ZM-MESSAGEID: 1775490900182158500 Content-Type: text/plain; charset="utf-8" When the big-endian CPU property is enabled, set the MSTATUS_UBE (User Big-Endian), MSTATUS_SBE (Supervisor Big-Endian), and MSTATUS_MBE (Machine Big-Endian) bits during CPU reset. This configures all privilege levels for big-endian data access, matching the RISC-V privileged specification's endianness control mechanism. Instructions remain little-endian regardless. Also update the disassembler comment to clarify that BFD_ENDIAN_LITTLE is correct because RISC-V instructions are always little-endian per the ISA specification. Signed-off-by: Djordje Todorovic --- target/riscv/cpu.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 4537305dfe..eed5afd27e 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -716,6 +716,9 @@ static void riscv_cpu_reset_hold(Object *obj, ResetType= type) env->mstatus =3D set_field(env->mstatus, MSTATUS_MDT, 1); } } + if (cpu->cfg.big_endian) { + env->mstatus |=3D MSTATUS_UBE | MSTATUS_SBE | MSTATUS_MBE; + } env->mcause =3D 0; env->miclaim =3D MIP_SGEIP; env->pc =3D env->resetvec; @@ -803,11 +806,8 @@ static void riscv_cpu_disas_set_info(const CPUState *s= , disassemble_info *info) info->target_info =3D &cpu->cfg; =20 /* - * A couple of bits in MSTATUS set the endianness: - * - MSTATUS_UBE (User-mode), - * - MSTATUS_SBE (Supervisor-mode), - * - MSTATUS_MBE (Machine-mode) - * but we don't implement that yet. + * RISC-V instructions are always little-endian, regardless of the + * data endianness configured via MSTATUS UBE/SBE/MBE bits. */ info->endian =3D BFD_ENDIAN_LITTLE; =20 --=20 2.34.1 From nobody Tue Apr 7 22:05:30 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; arc=pass (i=1 dmarc=pass fromdomain=htecgroup.com); dmarc=pass(p=reject dis=none) header.from=htecgroup.com ARC-Seal: i=2; a=rsa-sha256; t=1775490693; cv=pass; d=zohomail.com; s=zohoarc; b=e6Yrl7dZfooRI2nfTjyl9OeS0laVZaXYdw8FAwvrBZ/95hpt67LVwoSfbgC+tiDgkpEGtPe1IRTcpRQ4Zz3wI41z9cCf5Tj/s4BqkRMEnrizTZ+AOkPtQFxDTUnUMaxEWrzScx6In+9/KT+g0QGPvyTuQmq9IADnuforyGRihV4= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775490693; 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=08/sHQojIUy4zh5MSN5RxF3KfqZ+pBKOElAfPMDok1s=; b=NGua9ARLSH7SoD9Rxn2HNawxWtqwBNSA+aU6GzV6NZz1q5Mx0H29FOrqkZSHAtEdpiSPCl67tM4cOy9mIuYSzMuasyeJDZGK9TJX20IQhCf8UxjVbTZajTau1csd2shOUu5PaCFtOgif6PLlYuXIxNezFW/iESGenmn9QiZC3Mw= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=htecgroup.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775490693868524.0786481339154; Mon, 6 Apr 2026 08:51:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w9mD7-0005c3-PN; Mon, 06 Apr 2026 11:49:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w9mD5-0005ar-RZ; Mon, 06 Apr 2026 11:49:55 -0400 Received: from mail-swedencentralazlp170130007.outbound.protection.outlook.com ([2a01:111:f403:c202::7] helo=GVXPR05CU001.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w9mD3-00021U-VM; Mon, 06 Apr 2026 11:49:55 -0400 Received: from GV2PR09MB8755.eurprd09.prod.outlook.com (2603:10a6:150:358::6) by VI1PR09MB6903.eurprd09.prod.outlook.com (2603:10a6:800:1e2::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.19; Mon, 6 Apr 2026 15:49:43 +0000 Received: from GV2PR09MB8755.eurprd09.prod.outlook.com ([fe80::939c:95df:4890:ce63]) by GV2PR09MB8755.eurprd09.prod.outlook.com ([fe80::939c:95df:4890:ce63%3]) with mapi id 15.20.9769.014; Mon, 6 Apr 2026 15:49:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HmTJbpNLluEjiwtCDihtpnbSMxPB0GqHy8BOXhRKZBdncUEGxVoBEPiDN6nNnjp+9j8eawoPQgqiiiO6HYhMxLsJm4ra5JeizG39QmBfRaXoyLgUHy8Xao0Wx0GD+OBGoBRv0hSe/n3WVvxwCyaxG9CyOF5HS8OIsLpDXdkcpQ5wukfBIRG7uVhcR520QFx3UazbPHrVuTQ+SxwjdJFjk6imsc6PI695xyTBi8HOd1X91ghMimPyufJdfq1mMbB4j2kT5boPQqXZmpnNmTUdZody3JPMIhMxWA3g4c4yyDeS3RGLQm+lSICCIH85sGh3XhArC0fyXycVll4HKqfpvw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=08/sHQojIUy4zh5MSN5RxF3KfqZ+pBKOElAfPMDok1s=; b=wntZsYdhuevAKOJGLC9LIxjfUe63oKySV+GUqkhXIo7m2uLQXHGYsE73FVZ/z6K6xVw/bZHOLa2f4OMOnNUWCpWnUY0EoVPsIOY0hzsQBJiEbRl6+QrQfgm/DpfjnMxDB+xOlftmQm36PK1GUExubUBJqP3EA1kUYDVr+3OWGC5P5LPnLQON4eXEVb/SH/ReCVA1T9mUJ/vnFoDcrLxbm+WvbtHMcd+32B/blA9w0lFKI5eH6OQJKEFfWFxA9IW2NmLNzwbF/0l3b4a4LvXV1BUFHS2O5qJmUgznLgTt7dKqJK/wMq8DX4l8BXxft26pcYDrG4i4ijzcpXVRmfNjbA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=htecgroup.com; dmarc=pass action=none header.from=htecgroup.com; dkim=pass header.d=htecgroup.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=htecgroup.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=08/sHQojIUy4zh5MSN5RxF3KfqZ+pBKOElAfPMDok1s=; b=r/Heu4SNvq2y24x195D19SyW1bRtzuzQxFvvlS/YKKjZ/x2ZwrRFUvpUuyin9/x3+kN8/PtbyAO2ybWk+d+pTUy4anASePRrpjK74XIcNEwjX1XMQ1+M2tpLxDgxX+BSnh2kTTV+sRiJVxIQkTlvrfOZwUY656umYmagWUa50x/Dnyw0YvnUtQn+Na3Pcu16i5nuvuoz5bKIdeh/j7/STm8pvvK5DxCbLw2kphRo1RDUNvogUZM5bI2KkSi7CffZN4kvN6vJc+Ns+0aqdOSGKvJA32v/S6biBfj+GRkYFYkZGPWVXDyR1Kq9jFyXHjysO08grG4qcf6j+g3JPeDRvA== From: Djordje Todorovic To: "qemu-devel@nongnu.org" CC: "qemu-riscv@nongnu.org" , "cfu@mips.com" , "mst@redhat.com" , "marcel.apfelbaum@gmail.com" , "dbarboza@ventanamicro.com" , "philmd@linaro.org" , "alistair23@gmail.com" , "thuth@redhat.com" , Djordje Todorovic Subject: [PATCH v6 4/7] target/riscv: Implement runtime data endianness via MSTATUS bits Thread-Topic: [PATCH v6 4/7] target/riscv: Implement runtime data endianness via MSTATUS bits Thread-Index: AQHcxdz70J0jqOWNlUqTEQuyJ5XzXw== Date: Mon, 6 Apr 2026 15:49:42 +0000 Message-ID: <20260406154935.144674-5-djordje.todorovic@htecgroup.com> References: <20260406154935.144674-1-djordje.todorovic@htecgroup.com> In-Reply-To: <20260406154935.144674-1-djordje.todorovic@htecgroup.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=htecgroup.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: GV2PR09MB8755:EE_|VI1PR09MB6903:EE_ x-ms-office365-filtering-correlation-id: 7178137b-59ac-4f98-102c-08de93f41eb6 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|376014|1800799024|18002099003|38070700021|22082099003|56012099003; x-microsoft-antispam-message-info: t4mb1KgDBRbTXdhwCk0PV8pf5z6SVFy+MAsWgtlUo+Gyh66jyNSOwIcnDzbNHH9ec4uEugWxv3wIKQ1TVaDZn8qhkEHAR8SJOAa1HMMgftYFgeASWWmE8Z5wIrBoAwu2c5xvYVV+OTonp+91I83LVA8eyV3lv/6BRz5epT70kwuIX0B4cVIuZLFiOgX2HSn+uE3dw9kPD1d9GTD2a8yhPLkOxBRqcxedg9vpPdvAijyiweUQP9UsoOvWtHc6Eqjv3nDjiZVXxDesGfB2eoAcT8D/IpgDz0Ku0QK0OftNwdaaRDsKsWM7G7nIfS7loNshhIdx+2xi5Nu50Bs9rBGnnEJXzjTSyG9AIQSM+KqT7Wmii5yWSb+zc7issPJe4tN9kXsvGnFKEUqWZuZJTJLihvO/rAAHLDaKh4E21/hMhVYl2zJ+/7ZewUwFrCu8s6ybM9NfGO0OyUkhe6QsAwrE80RhCM4CNWkklekoiL/pTpPPqMF2ukKM6SJfWDOtny+ndWp4t+0o2uoDPGLjileumxtpyjlzEUz+mGGvuhYpINTLZ7MCnCql2j1ergtqbxkxWi6XdC0xmTbCFTegdKY5td4y6qVXOMdEd6b8sWoUhn4O9bYFmAmZn0wqmqPxrAKbhCfoJ/0lkLyD/WD+8/4oDcg0FODBQgWhXjlRXnd6GxO48msUqzkEpUwnORv5rLO4ZgdNtZvUCtSHYfI4742xkyTxEXPwke97b05tnkBva5i03tds5UzvRol6SIebCeFnb9iGCB2+31v6RK4S2V3xaNEHYsXQYEZPbeedxoF209I= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:GV2PR09MB8755.eurprd09.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024)(18002099003)(38070700021)(22082099003)(56012099003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?C8CX+SUwaiGYY/cQWIyKZKa68QJBdh7Vkbx3r5Cmfw5XQokhDdbGDQls/t?= =?iso-8859-1?Q?NZUNrut+Wg0+dk5RW1NWv0dMEuSq1zKZGc/NPO1JwYCgW8lODG60ogQtNi?= =?iso-8859-1?Q?QYmPzcX4RF3D1Kwhhc9UbIq06uwNgBDbdEja32kes69y9QgMaHEDcvDip+?= =?iso-8859-1?Q?s3yZi+SK9TuUuAE2zQtnFJZd1vsgj2h0jPxoAxl7/f7DkEvhqMXzhbbvel?= =?iso-8859-1?Q?+Q+eNS1SxRSw5SlpfYZ45mD/c792bzMRt3GQhWbVdQn0iYp2c1OhkcP2X4?= =?iso-8859-1?Q?hWlYsmu2N5bb/gYXOl9HlQCyJGAN82tjbMvHnvjPGDPud1PjsK6G2W7Lzm?= =?iso-8859-1?Q?nczS4DSKGAR/n1nkYribwwU7UdZK2CeMae1N/Fx3f35n3QjW3dCKLzmeaT?= =?iso-8859-1?Q?RWM/XKzJ6+1JirqgWQMyLO05b4E0vjjA0QQtn1Nt3Aee/oZa722AURRm9b?= =?iso-8859-1?Q?sK+Nk+eShsmWPFksfcGQnPTcXZLXfItgbjSnYuiqbQMYfDKdbi66tMrb4M?= =?iso-8859-1?Q?d/B1zhl7X9dYuxsfBAolXebMctbAR1LL3SEDwY0VBesphFOA19A6BkA+hO?= =?iso-8859-1?Q?UApT3Yl5EqgNqSANJUiSCwJFMsBhob1+OsTsiPE8lsRJX1tcGJFbci0tuc?= =?iso-8859-1?Q?qvz+BZI97yxXYQf7B0sqNzXI2XPrVcPLeSOK8Q0EV+7oFFNGwaTJf7wk0R?= =?iso-8859-1?Q?MPn7SrfWQIBTDxon655ZDGCAOu/60xUVkXLQkMrKTAttHmj/JYSQCWF0aP?= =?iso-8859-1?Q?1UvjwAnXh9dRsd0ukQyQcX+n1U/5Q5ZfBlG9Ayo75AednyDPunD1c2hYii?= =?iso-8859-1?Q?KS9etP3BsSwNRpq8yZqFvx/ro8cyrZClHA14CnWQnOR5I+rpgePvh+9zx0?= =?iso-8859-1?Q?5494GNM/XE8ns5lLpNtyFUDAAwGmsXCMuI/yzY2l6NZdpG3rlVl/yrdAOZ?= =?iso-8859-1?Q?F7M59A0qXLVBWIoE39Sh9zA6Yy5F5U6qTPGqypjbX0ifXXLMJbo6xjTqlj?= =?iso-8859-1?Q?fLXPFhf2gFEN9jwKlcpF+d1AgiW3WeU5e1uWsabmH1b+GFy0J+QZAmcqWW?= =?iso-8859-1?Q?aOONKW9qqjsx4dN1gq2KS509IEKDL4Tmcc/3ADR2K5zb62/o5/l2xpOod/?= =?iso-8859-1?Q?fK23yvtmXjVaGtpBxSE+onQUgbQrvCzGXPILEeIH5sQ1lY6EohhTrHeett?= =?iso-8859-1?Q?gfNy8FZ96KZRXWfwoCpDYo1i7bwZbqeWysBa9UC8arQcUAUzLluxlhS5/D?= =?iso-8859-1?Q?G9tDrLOvNSYZmaIcD/+Q17jyb/tfPmjo8GGVsEdX5auPnhMBOVt5bRtPkT?= =?iso-8859-1?Q?4TATpi+X+aaFoElNMjt53OsqlSPTvGnqCvtmxDNBPyUyXKTrQAjzxFb5Bh?= =?iso-8859-1?Q?51sazzwxumrjnTUPprnpnlVe/XMPrx8F0k23o1s+kL2afFumWbv4S6OreP?= =?iso-8859-1?Q?O3mFk81JyvddHgqbeDlqvf0ET5LP5mh4ib6dXsGtIMR/HoerYTZaai1xRO?= =?iso-8859-1?Q?e/8wLPJa4XVns2FieX0BZsGPvLMkFl1rKsThTNhhS6NESNABZ3vsNeI/tg?= =?iso-8859-1?Q?tjrGdDDQI+N4D7+DzUMjehzCRvRQ1TZeXN0hdoCnyPkTwqrDFnob3ks6Z2?= =?iso-8859-1?Q?Pvb/Yrj+jqL6X2zu2nth2yt2e8YST82VJQ1MW5EES36z3JyjHu98BzjZu8?= =?iso-8859-1?Q?dJ8WUOe0+TRfVnfTBYflgUkzG6cBIymH4K9tlW7dYFAVPGw6y3NXYfgfO0?= =?iso-8859-1?Q?cHel/HqD8saACRBWkGXSmSz96DHBijJglODWRAA1MwfvfrXP8H71vRbvNl?= =?iso-8859-1?Q?IAvLjxt43jGewxU3FBq89S/AT8PsLauQVFV12GzMTz8x4EqAKGrv?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: htecgroup.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: GV2PR09MB8755.eurprd09.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7178137b-59ac-4f98-102c-08de93f41eb6 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Apr 2026 15:49:42.2515 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 9f85665b-7efd-4776-9dfe-b6bfda2565ee X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: jAvwMA4/YKEvPWFFPlvGfyR02X2gDaDqk7ykQRKoJP8gopUR2Ka/AZ2wDVD+K0YkHRZBg9QyMCFK20gikWGFeWqArN2Cqqz1KIPwn7Sf9/c= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR09MB6903 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a01:111:f403:c202::7; envelope-from=Djordje.Todorovic@htecgroup.com; helo=GVXPR05CU001.outbound.protection.outlook.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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 @htecgroup.com) X-ZM-MESSAGEID: 1775490695185154100 Content-Type: text/plain; charset="utf-8" Implement runtime big-endian data support by reading the MSTATUS UBE/SBE/MBE bits to determine data endianness per privilege level. The key changes are: - Add riscv_cpu_data_is_big_endian() helper in cpu.h that checks the appropriate MSTATUS endianness bit based on current privilege level (MBE for M-mode, SBE for S-mode, UBE for U-mode). - Update mo_endian() in translate.c to return MO_BE or MO_LE based on a new 'big_endian' field in DisasContext, rather than the previous hardcoded MO_TE. - Update mo_endian_env() in op_helper.c to call the new helper, giving hypervisor load/store helpers correct runtime endianness. - Pack the endianness flag into cs_base bit 32 (alongside misa_ext in bits 0-25) in riscv_get_tb_cpu_state(), ensuring translation blocks are correctly separated by data endianness. Note: instruction fetches continue to use MO_LE unconditionally (from the previous patch), as RISC-V instructions are always little-endian per the ISA specification. Signed-off-by: Djordje Todorovic --- target/riscv/cpu.h | 28 ++++++++++++++++++++++++++++ target/riscv/internals.h | 9 +-------- target/riscv/tcg/tcg-cpu.c | 7 ++++++- target/riscv/translate.c | 13 +++++-------- 4 files changed, 40 insertions(+), 17 deletions(-) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index 35d1f6362c..ef870d05b3 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -703,6 +703,12 @@ FIELD(TB_FLAGS, BCFI_ENABLED, 28, 1) FIELD(TB_FLAGS, PM_PMM, 29, 2) FIELD(TB_FLAGS, PM_SIGNEXTEND, 31, 1) =20 +/* + * cs_base carries misa_ext (bits 0-25) plus additional flags. + * Bit 32 is used for data endianness since TB_FLAGS has no free bits. + */ +#define TB_CSBASE_BIG_ENDIAN (1ULL << 32) + #ifdef TARGET_RISCV32 #define riscv_cpu_mxl(env) ((void)(env), MXL_RV32) #else @@ -718,6 +724,28 @@ static inline const RISCVCPUConfig *riscv_cpu_cfg(CPUR= ISCVState *env) return &env_archcpu(env)->cfg; } =20 +/* + * Return true if data accesses are big-endian for the current privilege + * level, based on the MSTATUS MBE/SBE/UBE bits. + */ +static inline bool riscv_cpu_data_is_big_endian(CPURISCVState *env) +{ +#if defined(CONFIG_USER_ONLY) + return false; +#else + switch (env->priv) { + case PRV_M: + return env->mstatus & MSTATUS_MBE; + case PRV_S: + return env->mstatus & MSTATUS_SBE; + case PRV_U: + return env->mstatus & MSTATUS_UBE; + default: + g_assert_not_reached(); + } +#endif +} + #if !defined(CONFIG_USER_ONLY) static inline int cpu_address_mode(CPURISCVState *env) { diff --git a/target/riscv/internals.h b/target/riscv/internals.h index 460346dd6d..e2f0334da8 100644 --- a/target/riscv/internals.h +++ b/target/riscv/internals.h @@ -64,14 +64,7 @@ static inline bool mmuidx_2stage(int mmu_idx) =20 static inline MemOp mo_endian_env(CPURISCVState *env) { - /* - * A couple of bits in MSTATUS set the endianness: - * - MSTATUS_UBE (User-mode), - * - MSTATUS_SBE (Supervisor-mode), - * - MSTATUS_MBE (Machine-mode) - * but we don't implement that yet. - */ - return MO_LE; + return riscv_cpu_data_is_big_endian(env) ? MO_BE : MO_LE; } =20 /* share data between vector helpers and decode code */ diff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg-cpu.c index 3407191c22..d73b749bae 100644 --- a/target/riscv/tcg/tcg-cpu.c +++ b/target/riscv/tcg/tcg-cpu.c @@ -189,10 +189,15 @@ static TCGTBCPUState riscv_get_tb_cpu_state(CPUState = *cs) flags =3D FIELD_DP32(flags, TB_FLAGS, PM_PMM, riscv_pm_get_pmm(env)); flags =3D FIELD_DP32(flags, TB_FLAGS, PM_SIGNEXTEND, pm_signext); =20 + uint64_t cs_base =3D env->misa_ext; + if (riscv_cpu_data_is_big_endian(env)) { + cs_base |=3D TB_CSBASE_BIG_ENDIAN; + } + return (TCGTBCPUState){ .pc =3D env->xl =3D=3D MXL_RV32 ? env->pc & UINT32_MAX : env->pc, .flags =3D flags, - .cs_base =3D env->misa_ext, + .cs_base =3D cs_base, }; } =20 diff --git a/target/riscv/translate.c b/target/riscv/translate.c index 5df5b73849..77f36906e8 100644 --- a/target/riscv/translate.c +++ b/target/riscv/translate.c @@ -119,6 +119,8 @@ typedef struct DisasContext { bool fcfi_lp_expected; /* zicfiss extension, if shadow stack was enabled during TB gen */ bool bcfi_enabled; + /* Data endianness from MSTATUS UBE/SBE/MBE */ + MemOp mo_endianness; } DisasContext; =20 static inline bool has_ext(DisasContext *ctx, uint32_t ext) @@ -128,14 +130,7 @@ static inline bool has_ext(DisasContext *ctx, uint32_t= ext) =20 static inline MemOp mo_endian(DisasContext *ctx) { - /* - * A couple of bits in MSTATUS set the endianness: - * - MSTATUS_UBE (User-mode), - * - MSTATUS_SBE (Supervisor-mode), - * - MSTATUS_MBE (Machine-mode) - * but we don't implement that yet. - */ - return MO_LE; + return ctx->mo_endianness; } =20 #ifdef TARGET_RISCV32 @@ -1346,6 +1341,8 @@ static void riscv_tr_init_disas_context(DisasContextB= ase *dcbase, CPUState *cs) ctx->zero =3D tcg_constant_tl(0); ctx->virt_inst_excp =3D false; ctx->decoders =3D cpu->decoders; + ctx->mo_endianness =3D (ctx->base.tb->cs_base & TB_CSBASE_BIG_ENDIAN) + ? MO_BE : MO_LE; } =20 static void riscv_tr_tb_start(DisasContextBase *db, CPUState *cpu) --=20 2.34.1 From nobody Tue Apr 7 22:05:30 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; arc=pass (i=1 dmarc=pass fromdomain=htecgroup.com); dmarc=pass(p=reject dis=none) header.from=htecgroup.com ARC-Seal: i=2; a=rsa-sha256; t=1775490628; cv=pass; d=zohomail.com; s=zohoarc; b=BYPeOXUEuEsLZEgEfZpCZI8Jm7qOJVg7hYBBuVqdjJwyzfOiitO2poU02pgz1mBqFfxRVorpvlT2bSX4SU00wNUgll49QrZQ8en4gJAR+wZtsSaHBBzTa3JgTarHgUdgq+iMJnyWMNux0NRBwT4lC2a6zI149wZJom7SFlRJoEY= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775490628; 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=pbfVXWr9+U6etvsznPf/5+PQydUm4sQ3DPy9B4dJuEk=; b=WIR/rC1fUJECrUEZElT6MLTQpiaqoyTVjwT64A86PyP0yPt3o3PHFA1hpVB5JOjCIXvP4ONQ1F0M8px5h88OsEN1kbSiSRS1/ym7KFFg3Mvcv40W2nMxZeBmPYvetliH601v6119Z8QqB2yi6gXxpnI8HBedU4Tc0NPRashqISI= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=htecgroup.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775490628609675.0455661740297; Mon, 6 Apr 2026 08:50:28 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w9mD9-0005dd-QG; Mon, 06 Apr 2026 11:49:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w9mD8-0005cE-6V; Mon, 06 Apr 2026 11:49:58 -0400 Received: from mail-swedencentralazlp170130007.outbound.protection.outlook.com ([2a01:111:f403:c202::7] helo=GVXPR05CU001.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w9mD6-00021U-F3; Mon, 06 Apr 2026 11:49:57 -0400 Received: from GV2PR09MB8755.eurprd09.prod.outlook.com (2603:10a6:150:358::6) by VI1PR09MB6903.eurprd09.prod.outlook.com (2603:10a6:800:1e2::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.19; Mon, 6 Apr 2026 15:49:43 +0000 Received: from GV2PR09MB8755.eurprd09.prod.outlook.com ([fe80::939c:95df:4890:ce63]) by GV2PR09MB8755.eurprd09.prod.outlook.com ([fe80::939c:95df:4890:ce63%3]) with mapi id 15.20.9769.014; Mon, 6 Apr 2026 15:49:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gL6jfjb9/YfBTm0QCxXJKJX43bxbD7WC2UQNc9i4DHNc2HVB2idVXoHLWnQMpemqBZmwp5TEptkhCcF0sGZBRckec7VihvVoWCAQ76w34t27sAkov319kj/zPHWUfu62PlMtVWz7bXpyk2uvbp4Ncg+H+1mMgeHKMFjWiDMTjDxKRixPB2nIFz8mha7rD7uXPShstqbAFvtYjmZCR+CLnVqkZEGq3gSOkLcK6+Pyop2Xwy3yqS4Zr9HcbHilJEn9cSABbWfKhvZaEHqpU+iGFYTXk2m79Mxi7ZhBZKMo0OEBdYUEavdrR/ElIKoIlsg6PfJLWxYwqMph4bXRfoeBXQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=pbfVXWr9+U6etvsznPf/5+PQydUm4sQ3DPy9B4dJuEk=; b=D9NHE1DQ2yO/l5eSpmh1sO6Kyjp1iG1LYOcos4ZgP9TspRFFmx1qAjpuv8JJec+apoT7RL2ZXr13R0lGLHIYdUZAgL4wiYq1XMaUFZDD/VT22A5+wZLV4HmkndfPvjF1vz+BAkrIXKSin9mthg5YVE5y0NfjyVbcRdiF+UQZB0auXYyjfYGq1mPs4T5WvFAHisFZZRhus6IjuO/iFS10T23jHtSGLqH7PSLOGLEYksiO5gYM9ZudwPef+pJuh0A8mu/ffLV8ncdHifEdluwKJRkKhzHwTgOQIJe6rIdq46ZeTOBZdTM38viHtQP8jxj9tgyFejz4GhMOrNiBdVlHWg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=htecgroup.com; dmarc=pass action=none header.from=htecgroup.com; dkim=pass header.d=htecgroup.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=htecgroup.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pbfVXWr9+U6etvsznPf/5+PQydUm4sQ3DPy9B4dJuEk=; b=u7rMRZLKj/KGn9QxcfkfLdkNFJASKXswINNuwIP32yRVdQQuTfqSDuB3iOEcv5u3DPutzK9+xLgnNbAZDnpzX2Rukc+PBrp4OmOGnGPVPAWpTJhAwaewp4BdlXbhFPdPhqjnCa/c5GCpqhnLcMXD+SS86qoBA5mjKP4WiYU/1hHGq3m7BqOpJkCretU/B6Wo7AuVzn9sQRI7cmQio1bveSy84k1T2LeGEhY2XTahXdP6jfRae85v5hcp0m5udd5UEr6LDwyvLADWNu+CZQK8DZRkgi6k/3vK/OEbAVUIgsuYpphpUFRD93l/bnwb/tEu5mN+R6BBzOaXvLJDiDhoBw== From: Djordje Todorovic To: "qemu-devel@nongnu.org" CC: "qemu-riscv@nongnu.org" , "cfu@mips.com" , "mst@redhat.com" , "marcel.apfelbaum@gmail.com" , "dbarboza@ventanamicro.com" , "philmd@linaro.org" , "alistair23@gmail.com" , "thuth@redhat.com" , Djordje Todorovic Subject: [PATCH v6 5/7] hw/riscv: Make boot code endianness-aware at runtime Thread-Topic: [PATCH v6 5/7] hw/riscv: Make boot code endianness-aware at runtime Thread-Index: AQHcxdz7ZtpTLs+6xkGyp26LLHNMSg== Date: Mon, 6 Apr 2026 15:49:42 +0000 Message-ID: <20260406154935.144674-6-djordje.todorovic@htecgroup.com> References: <20260406154935.144674-1-djordje.todorovic@htecgroup.com> In-Reply-To: <20260406154935.144674-1-djordje.todorovic@htecgroup.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=htecgroup.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: GV2PR09MB8755:EE_|VI1PR09MB6903:EE_ x-ms-office365-filtering-correlation-id: a2bc9e86-62f0-4003-f899-08de93f41ede x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|376014|1800799024|18002099003|38070700021|22082099003|56012099003; x-microsoft-antispam-message-info: vJZw3P482XhjvAHR7USZJQ0ftOKB5bC4fhMj+p0d+z/AuNyWsKfnZoS01Km9JXaAhbUtIyhpT5RRL7Yo6erCc/ugMxj1uyxbdv8tQMfzvB+yq/wxi9q5mg/+l60QV7oQC1y8rxKkdAWEpyOuSS8dCWlztoU3fyjwfe+j47oLg37X2xLok7hh5PyxPyWUxDyWL3S68Rg1Pjj3PlXtVX3xQ+wWhN88ude15b/0K3b2q65cHYP/Vd4C9o8jKcWm/AA2JLSSwH0Kv+OynPbJC3bvYiACAXEpomOerj8em4ejnsLKAjqzgmAUXl1fGnkiX9rnUYIwrjWRfFXu5cyYfD/KwVSaRI7IAKoFNYR0GOCBk4HkFJnGrlCuHyrc6Z+nO4Av5mxz1YPdS7Bql4wH4EG4oB/n78HxFbqwFKaJJN4mX+tZUGwHR1tcXvrzww/KNf3gy9NJ14ByA3xYonOWlFSVTk6Ap4ZyzsBV6U9lD5RbX9yMUZy+r1QlDAEMO4CKixZU2xSWLaL5hSn23X0bbNFKDc1K7w0k6QvYyWh+vpc7Os7YpravY5eY7G69Uz8IhXbFb6Wmfn3Ijv9cWw/41NKZPIK7LmY1rbQYT5byx81keZyfhsAAMXc6mKRSUqda50i1N6WUWHJujYReCw02WiW4upksWKymyili1kLY/EaQmi9hxGFec4mOWOEaqt9rLSCNuW1GEoq+zLWDn7yFiTTURFa6sRcdJ5tj+ntA5EItRKcfRApZKFcYcuQjO5XE9GGW2X1+KuDfnv3sfxvbWTEkRoWUOYlRxBL9sGCIHJgeNbQ= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:GV2PR09MB8755.eurprd09.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024)(18002099003)(38070700021)(22082099003)(56012099003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?BsWLVdKMM21V2WegaCFLd3Kqjt6yKIfy3VlhCt0wNRIbwi7Q73Zc1vt4X/?= =?iso-8859-1?Q?0aznxbYJi4vbXyjlnFhk0Adk5tq5cRX9dRybQrk8Q3vZkG164V9Rxa5CLJ?= =?iso-8859-1?Q?nT3uHN5DIn4ztvXWzWZbRPNJ6e8j92oZ9l9mkaIEyJRRiXR/7D0H97XurN?= =?iso-8859-1?Q?P35yw4/nEkhSegV5SgTd/Z9g1oX8qwNXdIiSTfzGUw0NPopi20SpXSLNNp?= =?iso-8859-1?Q?8h1+tgXEKWp+6sU1GhH7oEU0wzqFvFduCaQN1CedQuk1lAMB5Lt4S/7l1x?= =?iso-8859-1?Q?JxwtmERS6e/5VEEDoMh3v/6edRhPhVHlTFDu0Mah6qQc4yfppd8m/ugmCQ?= =?iso-8859-1?Q?DYLeOpZ/PjXZUwGluXabpD+Z/jUtDRTp0tAsCbqkiqZgZ9wAw8fRgTn7Dg?= =?iso-8859-1?Q?9qAkrrjwnmcoaG0us1rR3M0fK9JYECO39PIl5h4Px4WwmSM1VDdhME21AH?= =?iso-8859-1?Q?x3DJbFuqxEJSyf/yjVGyjBl1FMNaK/CLQiNfKisAAfpNPqv0aSZ6WkzqeQ?= =?iso-8859-1?Q?jxxTPPBY+DVY9g4yYGf622tvleri8EfPdcd4ekdyO5ue/yoe4W0korLkEy?= =?iso-8859-1?Q?67EnbjVpypAg29d4R/Af4DSd+gz2fQ8nY26dEqgtDpTeocB/I7kPd3F1kI?= =?iso-8859-1?Q?YE/u3kigP3g2UQ4cbgGTQLXcbPtHcTA8Zvx/DuOE9Tb/rXKcoBj/6anqj5?= =?iso-8859-1?Q?x1T68JaLfiCPBnUlm9FtRAzBdyflaPt9N+tkN5h6cx1hXEhewwMZ0KzIDm?= =?iso-8859-1?Q?dFmdYcM1oQ04Qdu2+yBQDmuJQ/3UkmzU7in1YPEg19oZzDW/ZuH97JpGuS?= =?iso-8859-1?Q?G9PkU0RYa/dxmqg3BepUj6xnFXbVylz5aUW+ypi2OxUOKvuVOGxFa+hVBx?= =?iso-8859-1?Q?sJ3C4waJTkBimz6Sz5z/Enp9xHbz6KzkyEutIq+X8ciZFBzOYeNsu3P7pv?= =?iso-8859-1?Q?BDtecnEVqrAoe7px7MEfKGWXbIwC0Ky9kzPfpWir2TtuLFkuRFhTr/FEjc?= =?iso-8859-1?Q?bNU8gl9JiYomb9aiB8pxgNCTNXdDOXH5255hv7/FStv5HlhnVm3ndhQ8AS?= =?iso-8859-1?Q?IvfPyTt25dVCpvHrTcLDPy1y3563BOsPe3p6TmgYyqVGJ+d7htXRbmSpss?= =?iso-8859-1?Q?gKUdmhd+yZMyorXLt2w+5C3wbQxiyGiVUNH0LmKdUea7+vZJoMzKcpX31R?= =?iso-8859-1?Q?Z7JbaF/i1xEhk3tu6Nol/GS9EcvyMdoqv1NCgqDfSMyCgoVpPiZI6bnXpa?= =?iso-8859-1?Q?gOgONvHwu5pA5ApvNPfTc6hv5bnZQuurgzQJel3HjC0S0Zj/fzoXhImDHF?= =?iso-8859-1?Q?6WI3tP6/I6Bw+MXTlo4Tl6rAWyB5rSxU3LvNOyE4AimH9xll7IPEmJ4htB?= =?iso-8859-1?Q?IkZa7x1tRmu5gWMiiTAV1mbmBhIV3/QlDrwzbSuc/brtICwLoU9v6GlfpF?= =?iso-8859-1?Q?VlLQBRJt5PP17XyykOw+5E3cWPD6gS9LP/LFkY6SrwQFqlmIsmVnHUoSgR?= =?iso-8859-1?Q?a+FsgtU8TGWg+TTAbqslN4kgoQ2i9FLrvSR2WfkC1R9+rEpjy6tsbzbJoi?= =?iso-8859-1?Q?6CrI2SbCfPHZ6MlLKQp180O0JoqgjSh8p0wq4cMIECrL0WchqHebLoI7DP?= =?iso-8859-1?Q?CXTexqu2hntWaIr+Jy9SHpmXCJJ/n8ufnfaGSQhFoGPwkTGBbTk/Z+FxNz?= =?iso-8859-1?Q?kUr+KBznva23iIGDfdIjOgcmyXwN976+LhytTvSrBFCTOYsOj9dR5KQiUQ?= =?iso-8859-1?Q?3WDVFT0lLYZjJoivp5TFBiJ9yPIHQtOis3Wrgs8pZnH/wnyD04TgBuSrR6?= =?iso-8859-1?Q?x23W8PIjHq7Vtgi3HGhFjViF7Qllt9YWNPfNqkA/WshouD1YsrHF?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: htecgroup.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: GV2PR09MB8755.eurprd09.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a2bc9e86-62f0-4003-f899-08de93f41ede X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Apr 2026 15:49:42.5185 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 9f85665b-7efd-4776-9dfe-b6bfda2565ee X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: q2PuC5JEp54zRQE79BSUCHRvYSuQU8Z9lJUIm43c1jbXI9JjewO1SOrirDJJZSl+zScwbxVvuDE1CVZ5A3tZ95cvHgPU8LPjk0E1yjqQnnM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR09MB6903 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a01:111:f403:c202::7; envelope-from=Djordje.Todorovic@htecgroup.com; helo=GVXPR05CU001.outbound.protection.outlook.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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 @htecgroup.com) X-ZM-MESSAGEID: 1775490631272158500 Content-Type: text/plain; charset="utf-8" Add riscv_is_big_endian() helper that checks the hart's big-endian CPU property and use it throughout the boot code: - ELF loading: pass ELFDATA2MSB or ELFDATA2LSB based on endianness - Firmware dynamic info: use cpu_to_be* or cpu_to_le* based on endianness - Reset vector: instructions (entries 0-5) remain always little-endian, data words (entries 6-9) use target data endianness. For RV64 BE, the hi/lo word pairs within each dword are swapped since LD reads as BE. This is part of the runtime big-endian support series which avoids separate BE binaries by handling endianness as a CPU property. Signed-off-by: Djordje Todorovic --- hw/riscv/boot.c | 82 +++++++++++++++++++++++++++++++++++------ include/hw/riscv/boot.h | 2 + 2 files changed, 72 insertions(+), 12 deletions(-) diff --git a/hw/riscv/boot.c b/hw/riscv/boot.c index e5490beda0..c7558b904f 100644 --- a/hw/riscv/boot.c +++ b/hw/riscv/boot.c @@ -40,6 +40,28 @@ bool riscv_is_32bit(RISCVHartArrayState *harts) return mcc->def->misa_mxl_max =3D=3D MXL_RV32; } =20 +bool riscv_is_big_endian(RISCVHartArrayState *harts) +{ + return harts->harts[0].cfg.big_endian; +} + +/* + * Convert a pair of 32-bit words forming a 64-bit dword to target data + * endianness. For big-endian, the hi/lo word order is swapped since LD + * interprets bytes as BE. + */ +static void riscv_boot_data_dword(uint32_t *data, bool big_endian) +{ + if (big_endian) { + uint32_t tmp =3D data[0]; + data[0] =3D cpu_to_be32(data[1]); + data[1] =3D cpu_to_be32(tmp); + } else { + data[0] =3D cpu_to_le32(data[0]); + data[1] =3D cpu_to_le32(data[1]); + } +} + /* * Return the per-socket PLIC hart topology configuration string * (caller must free with g_free()) @@ -72,6 +94,7 @@ void riscv_boot_info_init(RISCVBootInfo *info, RISCVHartA= rrayState *harts) info->kernel_size =3D 0; info->initrd_size =3D 0; info->is_32bit =3D riscv_is_32bit(harts); + info->is_big_endian =3D riscv_is_big_endian(harts); } =20 vaddr riscv_calc_kernel_start_addr(RISCVBootInfo *info, @@ -247,8 +270,9 @@ void riscv_load_kernel(MachineState *machine, */ kernel_size =3D load_elf_ram_sym(kernel_filename, NULL, NULL, NULL, NU= LL, &info->image_low_addr, &info->image_hig= h_addr, - NULL, ELFDATA2LSB, EM_RISCV, - 1, 0, NULL, true, sym_cb); + NULL, + ELFDATA2LSB, + EM_RISCV, 1, 0, NULL, true, sym_cb); if (kernel_size > 0) { info->kernel_size =3D kernel_size; goto out; @@ -391,21 +415,32 @@ void riscv_rom_copy_firmware_info(MachineState *machi= ne, struct fw_dynamic_info64 dinfo64; void *dinfo_ptr =3D NULL; size_t dinfo_len; + bool big_endian =3D riscv_is_big_endian(harts); =20 if (riscv_is_32bit(harts)) { - dinfo32.magic =3D cpu_to_le32(FW_DYNAMIC_INFO_MAGIC_VALUE); - dinfo32.version =3D cpu_to_le32(FW_DYNAMIC_INFO_VERSION); - dinfo32.next_mode =3D cpu_to_le32(FW_DYNAMIC_INFO_NEXT_MODE_S); - dinfo32.next_addr =3D cpu_to_le32(kernel_entry); + dinfo32.magic =3D big_endian ? cpu_to_be32(FW_DYNAMIC_INFO_MAGIC_V= ALUE) + : cpu_to_le32(FW_DYNAMIC_INFO_MAGIC_VAL= UE); + dinfo32.version =3D big_endian ? cpu_to_be32(FW_DYNAMIC_INFO_VERSI= ON) + : cpu_to_le32(FW_DYNAMIC_INFO_VERSION= ); + dinfo32.next_mode =3D big_endian + ? cpu_to_be32(FW_DYNAMIC_INFO_NEXT_MODE_S) + : cpu_to_le32(FW_DYNAMIC_INFO_NEXT_MODE_S); + dinfo32.next_addr =3D big_endian ? cpu_to_be32(kernel_entry) + : cpu_to_le32(kernel_entry); dinfo32.options =3D 0; dinfo32.boot_hart =3D 0; dinfo_ptr =3D &dinfo32; dinfo_len =3D sizeof(dinfo32); } else { - dinfo64.magic =3D cpu_to_le64(FW_DYNAMIC_INFO_MAGIC_VALUE); - dinfo64.version =3D cpu_to_le64(FW_DYNAMIC_INFO_VERSION); - dinfo64.next_mode =3D cpu_to_le64(FW_DYNAMIC_INFO_NEXT_MODE_S); - dinfo64.next_addr =3D cpu_to_le64(kernel_entry); + dinfo64.magic =3D big_endian ? cpu_to_be64(FW_DYNAMIC_INFO_MAGIC_V= ALUE) + : cpu_to_le64(FW_DYNAMIC_INFO_MAGIC_VAL= UE); + dinfo64.version =3D big_endian ? cpu_to_be64(FW_DYNAMIC_INFO_VERSI= ON) + : cpu_to_le64(FW_DYNAMIC_INFO_VERSION= ); + dinfo64.next_mode =3D big_endian + ? cpu_to_be64(FW_DYNAMIC_INFO_NEXT_MODE_S) + : cpu_to_le64(FW_DYNAMIC_INFO_NEXT_MODE_S); + dinfo64.next_addr =3D big_endian ? cpu_to_be64(kernel_entry) + : cpu_to_le64(kernel_entry); dinfo64.options =3D 0; dinfo64.boot_hart =3D 0; dinfo_ptr =3D &dinfo64; @@ -474,10 +509,33 @@ void riscv_setup_rom_reset_vec(MachineState *machine,= RISCVHartArrayState *harts reset_vec[2] =3D 0x00000013; /* addi x0, x0, 0 */ } =20 - /* copy in the reset vector in little_endian byte order */ - for (i =3D 0; i < ARRAY_SIZE(reset_vec); i++) { + /* RISC-V instructions are always little-endian */ + for (i =3D 0; i < 6; i++) { reset_vec[i] =3D cpu_to_le32(reset_vec[i]); } + + /* + * Data words (addresses at entries 6-9) must match the firmware's data + * endianness. + */ + if (riscv_is_32bit(harts)) { + for (i =3D 6; i < ARRAY_SIZE(reset_vec); i++) { + if (riscv_is_big_endian(harts)) { + reset_vec[i] =3D cpu_to_be32(reset_vec[i]); + } else { + reset_vec[i] =3D cpu_to_le32(reset_vec[i]); + } + } + } else { + /* + * For RV64, each pair of 32-bit words forms a dword. For big-endi= an, + * the hi/lo word order within each dword must be swapped since LD + * interprets bytes as BE. + */ + for (i =3D 6; i < ARRAY_SIZE(reset_vec); i +=3D 2) { + riscv_boot_data_dword(reset_vec + i, riscv_is_big_endian(harts= )); + } + } rom_add_blob_fixed_as("mrom.reset", reset_vec, sizeof(reset_vec), rom_base, &address_space_memory); riscv_rom_copy_firmware_info(machine, harts, diff --git a/include/hw/riscv/boot.h b/include/hw/riscv/boot.h index f00b3ca122..a54c2b397d 100644 --- a/include/hw/riscv/boot.h +++ b/include/hw/riscv/boot.h @@ -36,9 +36,11 @@ typedef struct RISCVBootInfo { ssize_t initrd_size; =20 bool is_32bit; + bool is_big_endian; } RISCVBootInfo; =20 bool riscv_is_32bit(RISCVHartArrayState *harts); +bool riscv_is_big_endian(RISCVHartArrayState *harts); =20 char *riscv_plic_hart_config_string(int hart_count); =20 --=20 2.34.1 From nobody Tue Apr 7 22:05:30 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; arc=pass (i=1 dmarc=pass fromdomain=htecgroup.com); dmarc=pass(p=reject dis=none) header.from=htecgroup.com ARC-Seal: i=2; a=rsa-sha256; t=1775490675; cv=pass; d=zohomail.com; s=zohoarc; b=YNBHfssetynWZ6YKYGxv+MgP/hMRatINWdFv9D8amXi1BSJxbnUtY7AA0g8qQ7b1Grr6EPuYlBsfoQDXaMk5/JyGXasQ5vWhoxIhda+LCY33EAQae32/l6l64ynxIZskLckqaU7x9h1aRYj+oc7h9IWSEP3onchd8AuNTZzfiro= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775490675; h=Content-ID: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=TVlOz68TH6Rn29Kd8vfhWLfqyIhG54uGQnnB6efYGDo=; b=HOq9lOzp+SvJzsLeibtPsF3jrcoW4uLcabmwlEA+iQBy2VTU2Ec0cVWqO9KhykbqC/9Ag1lQKPKWpfWT95Vb1lpdVVYlObuN9s6EVJNDBVnFe1/vPbeMgZJ0ZrXszKgocRlTbeBj6iTy2VCebTX79OKz7Vp7dwB75W6IPTVg1P4= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=htecgroup.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775490675540729.397822171881; Mon, 6 Apr 2026 08:51:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w9mDC-0005eE-P3; Mon, 06 Apr 2026 11:50:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w9mDB-0005dm-77; Mon, 06 Apr 2026 11:50:01 -0400 Received: from mail-swedencentralazlp170130007.outbound.protection.outlook.com ([2a01:111:f403:c202::7] helo=GVXPR05CU001.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w9mD9-00021U-L8; Mon, 06 Apr 2026 11:50:00 -0400 Received: from GV2PR09MB8755.eurprd09.prod.outlook.com (2603:10a6:150:358::6) by VI1PR09MB6903.eurprd09.prod.outlook.com (2603:10a6:800:1e2::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.19; Mon, 6 Apr 2026 15:49:43 +0000 Received: from GV2PR09MB8755.eurprd09.prod.outlook.com ([fe80::939c:95df:4890:ce63]) by GV2PR09MB8755.eurprd09.prod.outlook.com ([fe80::939c:95df:4890:ce63%3]) with mapi id 15.20.9769.014; Mon, 6 Apr 2026 15:49:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VXYyIefMU5XMdWG4w3eOtCsYpwwrqPa/RAiqxeoJrUiA/HnjYeqV5/LPjab2woJpNaEsdANAM99OsSjDdOq3U4zk2Xe9+hbsFTfadwKCeHVVXhmVdKI63HNz/MbCKVwzrLq+VqBuyIUl5cY3bUyyJXdatsi7l9o1EbjA8rMt1hEEIm4qJXkj9ZRHuEA62QlKth1iInGcnk3R0SYv3BfbBrpdgU+9Lm9FMn/4/8jW2W8zBFhzRM0OEfjT1+ScfFEsLO6Qc5mxb50TLjWmJg+1oynMedtDF/l3ByTtdUK2hGweuF+iyPK4M40gpuFtWNmpZYpI/ND3+tKu88Md4YUKwg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=TVlOz68TH6Rn29Kd8vfhWLfqyIhG54uGQnnB6efYGDo=; b=ADixOhDhJ9ExIMkg0VIcMqQEIIVmzu1hjdmJtvArH2cxT2gaNvAz+HKTXonWTtWMX5d6DnckgIRNwJPBG0lBwmR3U7sF2amiYDVusv51DMVpA3kkS8AJGIn9Fbq1XGglspWawL8rwRML/EPCBiq4tvFfZS2cPL01RMAQA0jsRJlLt27N+ENSM0vGOyCJFrJU3yL7nAisRxFCIc7Ek2xEu86Y8/q0X0Jhdsw8UPGhpEFZvy+Z2M/c96PEhSqzkn7Xc3aqCivoI38DV+9Cqy/nyDpD4ym4wtIUqu+8Mb0Gm6NINoZ3obqPL0Gl2pRZVi32micnE/na+r4kFPrX66VJ1g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=htecgroup.com; dmarc=pass action=none header.from=htecgroup.com; dkim=pass header.d=htecgroup.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=htecgroup.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TVlOz68TH6Rn29Kd8vfhWLfqyIhG54uGQnnB6efYGDo=; b=njA1Q5AmDDSM528ByVtg3kiBYa6ZdUpXThvX6TXrNp/A3ID/Io8O+a5ed9DXAN95tC54gYhdFoDtXK6EQAqpNCINTsy4b5VjaUIgxydrlNa7UqMLnOUkcJxpGrGCTdBo6Hw3yTHCYwZDRs2/SMmILBh3BGbEtNzh5BWTMBWSIthEckxWRAS9tJ/GUI1jjGHwu+fUlOAVj07Al+ifPy+MzEkbkfh7ggetu24EiO366cxeNOawKwQb7l+D0oZNJe0M4TwHZ3yZQvblmnffZVIEK4O5RVVNdas9GZBmY1vm948zW38bRNIYbvcPTpze2tEwjFgiVE9br1EcNbSq/++vOg== From: Djordje Todorovic To: "qemu-devel@nongnu.org" CC: "qemu-riscv@nongnu.org" , "cfu@mips.com" , "mst@redhat.com" , "marcel.apfelbaum@gmail.com" , "dbarboza@ventanamicro.com" , "philmd@linaro.org" , "alistair23@gmail.com" , "thuth@redhat.com" , Djordje Todorovic Subject: [PATCH v6 6/7] target/riscv: Fix page table walk endianness for big-endian harts Thread-Topic: [PATCH v6 6/7] target/riscv: Fix page table walk endianness for big-endian harts Thread-Index: AQHcxdz85GQ32f8AqkK1O7gP1A+/Sw== Date: Mon, 6 Apr 2026 15:49:42 +0000 Message-ID: <20260406154935.144674-7-djordje.todorovic@htecgroup.com> References: <20260406154935.144674-1-djordje.todorovic@htecgroup.com> In-Reply-To: <20260406154935.144674-1-djordje.todorovic@htecgroup.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=htecgroup.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: GV2PR09MB8755:EE_|VI1PR09MB6903:EE_ x-ms-office365-filtering-correlation-id: c70ab610-5457-410e-69a2-08de93f41f0b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|376014|1800799024|18002099003|38070700021|22082099003|56012099003; x-microsoft-antispam-message-info: XLzaSgEO+nPUcxDfMwmtYXfTNvLcL3uMUPnPib2IUboWrWQ+so4u4ELKRbg29UG6c9D02qwaKRjcp3mNbKgqOvRrM6SNeoJ8h45ygdqO00KKRci0bL0BdzLJ78rzSW/dYNEPxQ0Eqf8KaAOcBH29bN5DvaHS3w+chwG0OJbKsWAtUWPVNsA0EKKrpInOiIF58TrtW8tV/KE+TxqovRxOy55sMpuWSz9r92VDJl1GtljHnp2iK/8AMuzT3rVUe8C3/4V8wfeGFTITML24Q/i5X2X5MVa16LMrp9s+AaBIyPcvn/mxrLTPoCKkJ82etwoBlD1gdjVGTgLE0K5+Sfh7tM5PBPrDIWLWJO5RWtxQnCfCE4bWM996ah8bRPIESx/paDsZQN5pVJdrsHSALkbXcehfhtlUo+xHUF+cB+JjRORq6TGc9asz/Wn7XR2L8ZMpNq0GeGUiVOX8vjA88gmeRA7dHNr3JCPn7EqcFZGDkZn6pev7/+gcAlBRvYUbs8WcILec/2GewNDvmPDbrG7VFmh9xw9pssgcjFvut1aW4SKMbPEErHxHqJ9+DYLQjBUxzUPCRiq35zKXgFkRtx2RJKshTr+VceBXgXJrFKnmVGDw7tOmofGBe2dwiUfLT0H55z0n8QHZGSzr36e9yAsg14aou9GSs5tlPtmQaui8fNAMPG7YBEKrsedACj9kNFyPLiWYKZVKAOCAIYp4voMiKwsfVg8vai6WtE9lipRutIfEfEg0bGz7D2+K34y8K4sp0rGRCul33UKcFeqvaKzYxJJ1rZOObWGhIueDH+I15+E= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:GV2PR09MB8755.eurprd09.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024)(18002099003)(38070700021)(22082099003)(56012099003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?eHlNYU94ckpQb3hXTnlzMW4rS2ptbCtwVk9XaXMwVzZZSFNRQ1prQXFkemdj?= =?utf-8?B?RWxaVzBHZy9nMDZmUTZzU3BIaTNFeHJreXZRN0Yxd0Ixcmo0dE54TzYvVWlR?= =?utf-8?B?R012emhLZDcyd2RLajF2WTM2NzZQSDBBMGJTQnBrTW8wVHBOVDRNU3FKelBw?= =?utf-8?B?SHlBcUFMdUNFOUlDY24rWkNMWGJ4eVpnUmlra0s0eWNKWWczZ3ZBZzBOSEtG?= =?utf-8?B?d2ZyamVBWFpZOFUxQW5HMDB6NlZYbm5IYW1nbjFiSDVyZkV6NEk4Mml5aWdU?= =?utf-8?B?d2VXc2ZIbzVkZjUwL3F2SHk4b1lyaDNXZFFQanZob2hkTmNYVjR1QlA5TjF1?= =?utf-8?B?WTQ3R2lzRi9rUFFKd3l5WXJzQWFUTGZ4YkVqNlBQVTFCZEl2VHZ1N3poWTB3?= =?utf-8?B?dlBxS0VxSVNrRHlRVGdybFRXdzdLN2pDM0FsUWlQaXFEUDAwMHgrdzRvdVhU?= =?utf-8?B?d3E2L01WblpRY2xWbFk5bmVhN0x6cGFBWlFrWGZMOFo2MWNTaDdzYWVJRlpS?= =?utf-8?B?eUk4c09kR2FKd2hZVU9jSDFaL0Fad2hwUE9nK0gxQldISVhEMzdiOXcrVnNE?= =?utf-8?B?Y1JHNUpmeEgxVzVWdnJqOFpuYzVVMzU5bi9hMjJWR3lKaVVTd0lZeHp1MEN1?= =?utf-8?B?eWpMSXFabW9ERFE3Y2ZnQ2tVUFpIVmJzbmgyUFlEclg4Z09MZUw2NEF3SXFN?= =?utf-8?B?TzBRbWlNOC8vSVZPZCtXOXBKTFFBSmxMckhNMTFBOVZqNzNjTFVLWGpCa2Zi?= =?utf-8?B?RUxGMzlsQUEvbG9nRjh6SnVOcXpBWThsbDVMaW1ubGJKSU1DRmp5OXVodTZH?= =?utf-8?B?NG5QNnB2QTFoVWZkVHBjZzQwMFBoVlY5Nnk3YndPdlFyR3JOd0VHUnZNemN1?= =?utf-8?B?VkcvTW5pdXhEdUllUCs2N2tpeVVRZTlmZlAxUTFpZGZRM3MrRkl3OFB6clR1?= =?utf-8?B?dWFTditvY1JKRVJFZkJwaUVaUjhmN1BUVTRwZXRLcmY5TTQvUFVDcXlkWTE5?= =?utf-8?B?NWlzbVdSMUxJdERERXBTVnV3OEZkdjdsQzFwVWRCQnQ5dG5OWnQrdlhxWExu?= =?utf-8?B?UU9ia3ZBdDJJM0RkOTk5aUJSR2VkZW1xd2F0L1N2WHd0c2hBTEpTd2hkL2pT?= =?utf-8?B?UWNlSkhaeFdGMU1hbFlvZEdONEpFNC9YOUpzZmRtbGlkNE5CYlRrYmdCRG0w?= =?utf-8?B?dnpidERkSG5nc3B3ZWNQdmU4RmR4K3BtWWQ1cG5xZGFnbTAvakwrcnBzY3VZ?= =?utf-8?B?QmhNTnBXbnczKyt3dTcvUEtlWkJkZXgvOEE3TmlSL2Fsb3VCWS9BOFJLc2xa?= =?utf-8?B?NGxnR2h6endQVy9TKzhUdmhWc01lbXFFak1yK01KM2RrcUx5NWpzcHNMSWd3?= =?utf-8?B?dmQxb2VoTnRMWit1L0VFczRRdDdaUE9JcUZtNjlDaHFvWjJEWnEycFBVU1Vh?= =?utf-8?B?OWxtWUcxaDZaZ2dqWUJKNjlUS05UN2cwWlNSNmlPdUI3U3NEZmhpOVBPQVNE?= =?utf-8?B?WEJ1RDd6dWdOWTIza3M0a1VQU3h4b09ESTZvU05yc1d0clc4OWhLSkZVaEcw?= =?utf-8?B?ODVZOVFrY2dSNjA0MHBCU2lNTnlsQkt1V3IwWkswUUMrM0JVRmtSZjFYSHhB?= =?utf-8?B?NXc2eERPZ0ZDTlEyblhWZDVscStaNEFwZnd0L0hwTzY2cFQ1MzdCUWNIc1N3?= =?utf-8?B?Vno4bW1WY0w2RXl5U3duV1VSN0hwUnk1YWg4MkNIdTNOTkQvQkw0K2lVM2Nm?= =?utf-8?B?TXBwUlV3ZWFzZ3N6VGZkcTl1TkczdHF3NGxuYVlQbXlJTVZnKzZ5andJOVBv?= =?utf-8?B?dktvdk0wQk4zVnovTVNTU21zTkVPaGxyT0xaZUZwN2VzWXg0b2ZhTStQd3g1?= =?utf-8?B?Yzh4MHE2OUUxVzEzUWpWTGd3TDFhbVlrNXNQMCt6b3Z6Y2NZNmR6SEFhbThN?= =?utf-8?B?R21zVmNqSFVaSWlZcVNCZDZNS0Y1WTQrNnJnRkYxNHd1aW9CdjZwMFRIZUhQ?= =?utf-8?B?NDVPeEVjL1VvM3pRUiswNVNpMFZUWTg5TjNUbmNMSXpXM0ZPdWFMOFZ4cmZF?= =?utf-8?B?a3JWMnE0UTBjZHY2ZzZRMVNzeXZwdjRRTGdoZUxrQTdlL2ErcDRXTEhPN2h5?= =?utf-8?B?aUFxSXhTT295N0VDVVhOL2dxWXZNQ0M5RFMwWVNERWo1ZDRDOFJsT2tDbTBq?= =?utf-8?B?bkhnbXRZNjBtRVVOOFlxRU80Wno2UkozcGZ5dStiLzZEdHlUTWJ3VFZpZ2ZV?= =?utf-8?B?Yk5DbnBYOXhkQ0pUS3JuamxBUW5MSWNjSlE2eEd6NURmRU9SZUNFdmg1cjFP?= =?utf-8?B?Q3ZzVGw5S0xCc0NqVy9wQVVlaDBqRlBwaXZrUEI3SlFESEoyMC9jTzNoRDhy?= =?utf-8?Q?kpnMH7S1EKKhsrQnnDRv6sDmtN+1lZRlbzOaS?= Content-Type: text/plain; charset="utf-8" Content-ID: <38ECEEB28EE1694497EBA60BAE2F0E3C@eurprd09.prod.outlook.com> Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: htecgroup.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: GV2PR09MB8755.eurprd09.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c70ab610-5457-410e-69a2-08de93f41f0b X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Apr 2026 15:49:42.7849 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 9f85665b-7efd-4776-9dfe-b6bfda2565ee X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: JKbsZGYypgozre9bIZUfcvQWuggvu7rF2w2Twl4WB4ZpV99YB3uieBLXQcfHHGRE5WHKKUVSrq5iTAPu0vTgIcSKHz6+yAszca6eqBpGSyU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR09MB6903 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a01:111:f403:c202::7; envelope-from=Djordje.Todorovic@htecgroup.com; helo=GVXPR05CU001.outbound.protection.outlook.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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 @htecgroup.com) X-ZM-MESSAGEID: 1775490676939154100 The page table walker reads PTEs using address_space_ldl/ldq which use compile-time native endianness (always LE for RISC-V). However, when a big-endian kernel writes PTEs via normal store instructions, they are stored in big-endian byte order. The walker then misinterprets the PTE values, causing page faults and a hang when the kernel enables the MMU. The RISC-V privileged specification states that implicit data memory accesses to supervisor-level memory management data structures follow the hart's endianness setting (MSTATUS SBE/MBE bits). Fix both PTE reads and atomic A/D bit updates to use the explicit _le or _be memory access variants based on the hart's runtime endianness. Signed-off-by: Djordje Todorovic Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- target/riscv/cpu_helper.c | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c index c28832e0e3..b3d33da13e 100644 --- a/target/riscv/cpu_helper.c +++ b/target/riscv/cpu_helper.c @@ -1365,9 +1365,13 @@ static int get_physical_address(CPURISCVState *env, = hwaddr *physical, } =20 if (riscv_cpu_mxl(env) =3D=3D MXL_RV32) { - pte =3D address_space_ldl_le(cs->as, pte_addr, attrs, &res); + pte =3D riscv_cpu_data_is_big_endian(env) + ? address_space_ldl_be(cs->as, pte_addr, attrs, &res) + : address_space_ldl_le(cs->as, pte_addr, attrs, &res); } else { - pte =3D address_space_ldq_le(cs->as, pte_addr, attrs, &res); + pte =3D riscv_cpu_data_is_big_endian(env) + ? address_space_ldq_be(cs->as, pte_addr, attrs, &res) + : address_space_ldq_le(cs->as, pte_addr, attrs, &res); } =20 if (res !=3D MEMTX_OK) { @@ -1566,12 +1570,24 @@ static int get_physical_address(CPURISCVState *env,= hwaddr *physical, if (memory_region_is_ram(mr)) { target_ulong *pte_pa =3D qemu_map_ram_ptr(mr->ram_block, addr1= ); target_ulong old_pte; + bool be =3D riscv_cpu_data_is_big_endian(env); if (riscv_cpu_sxl(env) =3D=3D MXL_RV32) { - old_pte =3D qatomic_cmpxchg((uint32_t *)pte_pa, cpu_to_le3= 2(pte), cpu_to_le32(updated_pte)); - old_pte =3D le32_to_cpu(old_pte); + uint32_t cmp =3D be ? cpu_to_be32(pte) + : cpu_to_le32(pte); + uint32_t val =3D be ? cpu_to_be32(updated_pte) + : cpu_to_le32(updated_pte); + old_pte =3D qatomic_cmpxchg((uint32_t *)pte_pa, + cmp, val); + old_pte =3D be ? be32_to_cpu(old_pte) + : le32_to_cpu(old_pte); } else { - old_pte =3D qatomic_cmpxchg(pte_pa, cpu_to_le64(pte), cpu_= to_le64(updated_pte)); - old_pte =3D le64_to_cpu(old_pte); + target_ulong cmp =3D be ? cpu_to_be64(pte) + : cpu_to_le64(pte); + target_ulong val =3D be ? cpu_to_be64(updated_pte) + : cpu_to_le64(updated_pte); + old_pte =3D qatomic_cmpxchg(pte_pa, cmp, val); + old_pte =3D be ? be64_to_cpu(old_pte) + : le64_to_cpu(old_pte); } if (old_pte !=3D pte) { goto restart; --=20 2.34.1 From nobody Tue Apr 7 22:05:30 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; arc=pass (i=1 dmarc=pass fromdomain=htecgroup.com); dmarc=pass(p=reject dis=none) header.from=htecgroup.com ARC-Seal: i=2; a=rsa-sha256; t=1775490658; cv=pass; d=zohomail.com; s=zohoarc; b=Sr5zs4Jc6xT/79Kw5e2EpTRzByUdisj/7q/QTNU4t6WVkj5MGPaQCnwY7Utqi28GvEsBK7N3wHmfWWOcvyQdcnjsGfNQb+AuCYCm7lFAkVpV+4JaJDwG1zSyDf+5nj/z487p1yM90XjGNCGfZxJXDheQfzokNxbfYwuXktyw+O4= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775490658; 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=M8RCiRCN9qIN9MxuTsL1AqvgLxWkKHPm0sWQZ4MLQVY=; b=Q2HRmc9+M3MSZyUUE8EigGxU39mEm0BGvNHmxxwltu2lsjj8M8tURVqCcTa4nC/PJ6Lu4ZE4dICHlLHMYnQHgkfyaqdFQs3IR+sWDxoWtclU9iM2y5OX1WPOtG3rqDD/sgHj5W/aNw5SdC3Yub0fZ1RrHBtacNJvbX1bgkeR0MU= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=htecgroup.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775490658873374.80097528847216; Mon, 6 Apr 2026 08:50:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w9mDF-0005fr-Gi; Mon, 06 Apr 2026 11:50:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w9mDD-0005et-Lj; Mon, 06 Apr 2026 11:50:03 -0400 Received: from mail-swedencentralazlp170130007.outbound.protection.outlook.com ([2a01:111:f403:c202::7] helo=GVXPR05CU001.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w9mDB-00021U-Tf; Mon, 06 Apr 2026 11:50:03 -0400 Received: from GV2PR09MB8755.eurprd09.prod.outlook.com (2603:10a6:150:358::6) by VI1PR09MB6903.eurprd09.prod.outlook.com (2603:10a6:800:1e2::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.19; Mon, 6 Apr 2026 15:49:43 +0000 Received: from GV2PR09MB8755.eurprd09.prod.outlook.com ([fe80::939c:95df:4890:ce63]) by GV2PR09MB8755.eurprd09.prod.outlook.com ([fe80::939c:95df:4890:ce63%3]) with mapi id 15.20.9769.014; Mon, 6 Apr 2026 15:49:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=AYJU/wd5fSZRdGfmLSaW/yu8TKTjfvyr5fZfRZO/zB7iJ+sJqCittVbfmXKW4IaRDxaQsu2tUcTiNOv5zQ03R425Ge2lyrH2DpIEsbkgjr+jHpTfwRJbisHPZgVDJ1Ge6XYJXEYQS4OlEKeE13iw4CVo+6e4pa6pF/03CL0UY9DaUmf8I/DzjZTvyM32kLOEuCV84FJpD4dAnIcojEJsWlOSv8ZTuICS4X1//uuRYd3LpQk2ZZM4kq4MYYrs7w8QHcQFkMQk/cyhkmedq7w46HKQxIjgsQ4lj+TcX3ABeeOZqgknGfLAQOtK1ExaN6BQjMVhAZGStQv9z8RrtBpIQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=M8RCiRCN9qIN9MxuTsL1AqvgLxWkKHPm0sWQZ4MLQVY=; b=fEeTa66fxSAiHJuXprkuCVVjRTqY/9qgk3jD3M6YFsASzidQ73sA0dC+wYZMW4e62l6gVCOtkpPmagvM7N1Jyv/3Hb1q8i1fQaybuo0sQaqODrvVuuOnORZlfzmGL29XBfaU/d0z/79xdlRQiCKoSdjdKwYgjrILk2UrAK+2IIC1mjwsMBspl5aLbxLmjSz+UCmRbJEom57Nc6dcF6q6fhaVN7fP1IFSvkS0otUyAHhm3aspdxXQdaONlR9XkJ9Z3OSfHEuZhNj2b45ToAuMjcAdunNVWBd8uL4quqYZffHZ8UWQLBg3Ewb4/hijb8j9qV4icvnftgppvjYkRab/yA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=htecgroup.com; dmarc=pass action=none header.from=htecgroup.com; dkim=pass header.d=htecgroup.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=htecgroup.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=M8RCiRCN9qIN9MxuTsL1AqvgLxWkKHPm0sWQZ4MLQVY=; b=lwY+kZjYoCcHKdgag8vVVzaK0u+/cHA54cSiy5fuPhcZcOmfSSWjriqxWqrSHYYntRA2rU4mgieY8ZzEHYVK2zHB2cyyDzKR6/bEcS1/Up/Qd1otMBm4I7b/ed7NZ3GqMkG8QpZv1PRO3pmFONg0BZBSJpwyXWdDN2WoznL4Zd/N0aO00Fmh/U9m+uKX2sdMptOjRL3jv4ati1YYeS2oroNqTGOS8+5V97vGRYLc72Hbv4LAO9c3BtA35u7CS4DYFFx8Va1cw3Kf3ff7R8SpmJBVYjeOtgXHqSJ4tWx0exFQZoRirBZET/N5gm12jqIS17zcoNRrCEYAGChwXz5k3w== From: Djordje Todorovic To: "qemu-devel@nongnu.org" CC: "qemu-riscv@nongnu.org" , "cfu@mips.com" , "mst@redhat.com" , "marcel.apfelbaum@gmail.com" , "dbarboza@ventanamicro.com" , "philmd@linaro.org" , "alistair23@gmail.com" , "thuth@redhat.com" , Djordje Todorovic Subject: [PATCH v6 7/7] target/riscv: Add test for RISC-V BE Thread-Topic: [PATCH v6 7/7] target/riscv: Add test for RISC-V BE Thread-Index: AQHcxdz8KefIOhZRcEG13lsP3GIgKA== Date: Mon, 6 Apr 2026 15:49:43 +0000 Message-ID: <20260406154935.144674-8-djordje.todorovic@htecgroup.com> References: <20260406154935.144674-1-djordje.todorovic@htecgroup.com> In-Reply-To: <20260406154935.144674-1-djordje.todorovic@htecgroup.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=htecgroup.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: GV2PR09MB8755:EE_|VI1PR09MB6903:EE_ x-ms-office365-filtering-correlation-id: d743d4e7-e976-4e34-419f-08de93f41f3e x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|376014|1800799024|18002099003|38070700021|22082099003|56012099003; x-microsoft-antispam-message-info: vFkzguuLJUyMUhOuaAntEnV02ZMLqbnbOVVDnaJM8ROudw0wEe9fRPwO+z+wtywqifffh1vN8xKn5GHbmiXTN7oMVvnzDq/SVZgjiXwLj43VouEevgc0TNTGXY4XMi8QVidhXDl8MDd2qlf92rkE90CjveaZ2wpeFdv0hLvHHiKl3y3upsFdFa93aGjC95RIo2xEiNI909qL+k+gL7HyOA2uIbYM+NtDwXb51182/rRFVn7TgwAaZ10STkYI9MxXPTCT073f4JyQ27Nw3Nukcb2AvzOwvox9FtbEquZIAP93fLwAoltv13Nf/NeHrqW/0uvMa/T27tJdrt0nQVYBksNY9NcE1kmJRWiB+UCsHWZxwdjqTrFTNcDK/CKr+W3j2TVQeLr30fEWz9wHgsCYUa3vv/YdZzl//1PGsaPi3vz8CkCtCyDZ5byHLzP/TOfTq1kpYMk5Nhgphb82I2y8LMgM5UU/kL/86dQis8lWikkRyu8EJ/KaKm5pM0VWij1QqwKXczOImSPnjrYQIPrLbY9cQXJi2AFtkC+7X2j5tXSdIxl2a7ZVY8oJNPIrpgWoenjqJSmg+HSQVjPxbLmPN8g1WAiEr8SA+tk871dFDcOCqVxfDWrheP0E1ZRR3baCrT0MaJONEkZRjTkT+VTQvfdLd/V0dtj0Y5qKYuOiuT3rrt2kF9aY8IrWYI+xQwGnqWV3S2mHn43WoF1GOM8PESeG83CYYryBf3qysH1jwKlODG/9QNR/RlARQ/QfjvRdBxAb3exTeeyyx7N81zBuBL9fBO6bh64yZHgkHzv1zG4= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:GV2PR09MB8755.eurprd09.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024)(18002099003)(38070700021)(22082099003)(56012099003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?fsgx04LHZTXtDjomuLC1QeV+zUFQHPwny8ap//AzqDdQOwPpMPkzUGriTN?= =?iso-8859-1?Q?26iliN5njPfe2KDW2orYlxaclhdipUv9JUh6xpW6sGoMT/SQ84bg74T29S?= =?iso-8859-1?Q?4jEPnkRSJ8rq3peg1CtwwjXjHwTYxmnLOm6TprU/uzI/AP31fYBWqLFyRE?= =?iso-8859-1?Q?J8C/IFw4E/vsvsRZ9tfRgHw8zKJGx0QTIBput5PlEBHmN9hDaRBGUKxg/L?= =?iso-8859-1?Q?15i3zBLF4XzhpdhFRdcoqAuipv3Lg4tnbpZp5xoHoiId+kINfrNUerzyo1?= =?iso-8859-1?Q?5tOzqGCtYLXBCcCAIhSKq5Guxb8/DJ9fJvPmmX3SbKU7gWwqBjDNJG++z3?= =?iso-8859-1?Q?Goj7qC0ctvkXPJ8SyqrBDPJ77pZ5PRP+aPefn637GOW31ZDvSLwb4BngAR?= =?iso-8859-1?Q?6dOtI4/QEuvcM2wQWpKUcryqt8vSiWW8RNKTTruv3ltUVMJmBBRpBhbHvq?= =?iso-8859-1?Q?rh/HUiB5pm9yRQxWRKKbTF05lKbMTs9eXCK+OG+53DIHKXvx3ZQi/Oealw?= =?iso-8859-1?Q?DaTDEABjrUhj9vvMvFMrx688tje+rfkn4L13ZSfhXi0RCAzQGUYx3H/XMa?= =?iso-8859-1?Q?9d6/HfL8TOVpquCbdvd8artOXqn0yQ9nbPT7igrmSL5zdjpCTHMwRCNPxs?= =?iso-8859-1?Q?4J3R0+lYQoBLYCY4YLtwc+y3uKjiEa6P6QqC8WkNrzePiWhDFxkBznjuKQ?= =?iso-8859-1?Q?VHaOGBziFfMQ2BbrMAlTo4qkbH24PZOW1DdyJUnyXaqC6oaOn1ISyDNAsG?= =?iso-8859-1?Q?yNK8eo+nhnHBCeuVHQta9nCzm8xZEWKwsJvYebkZq4LWsSmDbVX4wXD2qW?= =?iso-8859-1?Q?84m6Ci+ONh28g56zo66bQ8pfGl9FVTnQGgQsNzv9S830qNwlVud2/fFz72?= =?iso-8859-1?Q?CSaGz+kJBpGaFykYBfyCH3T4vbXftoEwSzQPy/E9lyND9vxyrgmpKSH4rE?= =?iso-8859-1?Q?45N6/uYI8CYHb91BFevH7KJkZIDoL/DpW4iDFmDVpZSdoH4SnPZ48LJYs1?= =?iso-8859-1?Q?4Vv/23rSDCstfmgq7NeC4+pdMsiZOr/rpThRuWynuPiFqhnMI85CRpihHc?= =?iso-8859-1?Q?C/0W6lyNNlDcIcMsfcFLgZAuZPu6TAGbsQBXxFMg+gnwpSOPS6SuQ0H2lJ?= =?iso-8859-1?Q?q4GTEyAc1BW75tXLru9dTVic9G/Rfi62w/9ThLay7vHUCiUcUTkNZEpDH1?= =?iso-8859-1?Q?7iPbIX5R29R4cnoqJUuSJMKUeD5wE5uzfbN37eEwltJQAhr+bL2vw5GNxh?= =?iso-8859-1?Q?ngP8a5Xb+JKug/htNoh0tdn4eBUeusTO0AoE5P5u8DNs2Ep0LUp8Zu78Bo?= =?iso-8859-1?Q?mwa9Wzu1WEPWMPIJ4PxyIjk+AdkUoipEKpP+DLiBZN4o4ym6HRj7FRrgKV?= =?iso-8859-1?Q?puybyA+Ze2eENMYnqvKwYQE5irkvHL3iTM5h0W/lUK4KfeUtG73ZTYoMiA?= =?iso-8859-1?Q?oXGqBTl1G1GHxpPEpi8IgWaizuXrpxgkHC/LBAv60j4yL9z1ikhQ7+CyLi?= =?iso-8859-1?Q?nS9dN25aDIT/PmABzDogD5D0OGUkVsxUe6hL7/NZNS+HpAIMO0Hs9OI0sh?= =?iso-8859-1?Q?hVBYQ6lvPy7TzQojbe4UUCP+iBu8izAcxiWs0qrXUCIcc7Gi0+2lQnFKRy?= =?iso-8859-1?Q?yNA7LVwwaCUXZLtk1vHUkyVnhSvzh09jd5AsSMw5ZBSEuko3W+paAk+W0p?= =?iso-8859-1?Q?RxY3KoYUi8qmFnwxhZ7qmemfV2bWm6i/pKfaXowcP7woJeNywD5GywbZha?= =?iso-8859-1?Q?pgTDCKzgNc8g4U0J9Tr0AFZCS1dz3OJqiIN5+6A5oVKmutpBaLMLcdxk0D?= =?iso-8859-1?Q?nyRHX8NYwMqTqLSGtVfd/NWXygewkVhshBXl9vWhytfBbMBOxwE9?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: htecgroup.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: GV2PR09MB8755.eurprd09.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d743d4e7-e976-4e34-419f-08de93f41f3e X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Apr 2026 15:49:43.0483 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 9f85665b-7efd-4776-9dfe-b6bfda2565ee X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ZLArOYmd4eJ6Wx4mlOnKABVINOo+6sOiB0n5k29vOAoQcIC8QULOQNl4/HisIQvpsqC3nV9bSdK8tkXT9W4XVzMsOhLzlR3vgaRr9DEv8+w= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR09MB6903 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a01:111:f403:c202::7; envelope-from=Djordje.Todorovic@htecgroup.com; helo=GVXPR05CU001.outbound.protection.outlook.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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 @htecgroup.com) X-ZM-MESSAGEID: 1775490660662154100 Content-Type: text/plain; charset="utf-8" Add functional test for RISC-V big-endian. Signed-off-by: Djordje Todorovic Reviewed-by: Thomas Huth --- tests/functional/riscv64/meson.build | 1 + tests/functional/riscv64/test_bigendian.py | 57 ++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 tests/functional/riscv64/test_bigendian.py diff --git a/tests/functional/riscv64/meson.build b/tests/functional/riscv6= 4/meson.build index b996c89d7d..d06d6ea112 100644 --- a/tests/functional/riscv64/meson.build +++ b/tests/functional/riscv64/meson.build @@ -11,6 +11,7 @@ tests_riscv64_system_quick =3D [ ] =20 tests_riscv64_system_thorough =3D [ + 'bigendian', 'boston', 'sifive_u', 'tuxrun', diff --git a/tests/functional/riscv64/test_bigendian.py b/tests/functional/= riscv64/test_bigendian.py new file mode 100644 index 0000000000..9e0b3b7db5 --- /dev/null +++ b/tests/functional/riscv64/test_bigendian.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python3 +# +# Functional tests for RISC-V big-endian support +# +# Copyright (c) 2026 MIPS +# +# SPDX-License-Identifier: GPL-2.0-or-later + +from qemu_test import QemuSystemTest, Asset +from qemu_test import wait_for_console_pattern + + +class RiscvBigEndian(QemuSystemTest): + """ + Tests for RISC-V runtime big-endian data support. + + Uses a bare-metal RV64 ELF that detects data endianness at runtime + by storing a 32-bit word and reading back byte 0. Prints "ENDIAN: BE" + or "ENDIAN: LE" to the NS16550A UART on the virt machine. + """ + + timeout =3D 10 + + ASSET_BE_TEST =3D Asset( + 'https://github.com/MIPS/linux-test-downloads/raw/main/' + 'riscvbe-baremetal/be-test-bare-metal.elf', + '9ad51b675e101de65908fadbac064ed1d0564c17463715d09dd734db86ea0f58') + + def _run_bare_metal(self, big_endian=3DFalse): + self.set_machine('virt') + kernel =3D self.ASSET_BE_TEST.fetch() + self.vm.add_args('-bios', 'none') + self.vm.add_args('-kernel', kernel) + if big_endian: + self.vm.add_args('-cpu', 'rv64,big-endian=3Don') + self.vm.set_console() + self.vm.launch() + expected =3D 'ENDIAN: BE' if big_endian else 'ENDIAN: LE' + wait_for_console_pattern(self, expected) + + def test_bare_metal_littleendian(self): + """ + Boot bare-metal ELF on virt with default little-endian CPU. + Expects "ENDIAN: LE" on UART. + """ + self._run_bare_metal(big_endian=3DFalse) + + def test_bare_metal_bigendian(self): + """ + Boot bare-metal ELF on virt with big-endian=3Don CPU property. + Expects "ENDIAN: BE" on UART. + """ + self._run_bare_metal(big_endian=3DTrue) + + +if __name__ =3D=3D '__main__': + QemuSystemTest.main() --=20 2.34.1