From nobody Tue Apr 7 22:05:03 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=1773230397; cv=pass; d=zohomail.com; s=zohoarc; b=hEiX6YsLyYGaEpgTNMKxOeEV7r/QrcadJHESJBu1LUxkVTl7qE75QFOyxfq+bPU+nMsG0mIDlC15vT7ARLJRrD4DqBscu79ayVjS2dlx7KJerYDDAWl2fC5gK9v/efS/SV6TO/apXIyb60CUV1NY2lzxmTCNOxsubXdJ2WwkHVc= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773230397; 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=9NE+6VlmEEzsbxLpGg9YPgXRz7jZqbn3s/no2Lp9e/A=; b=iyg8+pReBaEkTZzIBqLvf56tXjfLEEMIKCYBDLcR3JVt5Xwp9qZMg3RIisxG0kCHIpICyesClbpanPA0WCve9GkOgc/FGOM9A6o97JgVGU/D5pnEBNOXgjm2faaT46J649UBXzpysKXo4qjMkl/4raAOEdZy4SvwaC7VHDzXdxc= 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 1773230396869209.69729409737863; Wed, 11 Mar 2026 04:59:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0IE4-0008K3-FU; Wed, 11 Mar 2026 07:59:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0IDp-0008Dz-CP; Wed, 11 Mar 2026 07:59:30 -0400 Received: from mail-northeuropeazlp170100001.outbound.protection.outlook.com ([2a01:111:f403:c200::1] helo=DB3PR0202CU003.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 1w0IDm-0004do-92; Wed, 11 Mar 2026 07:59:29 -0400 Received: from GV2PR09MB8755.eurprd09.prod.outlook.com (2603:10a6:150:358::6) by DU0PR09MB6069.eurprd09.prod.outlook.com (2603:10a6:10:407::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.25; Wed, 11 Mar 2026 11:59:18 +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.9700.010; Wed, 11 Mar 2026 11:59:17 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GtIjzX+bJWBBkK1hNCUr/0C5+1b0SAS2jFrZ800irsPI5DqoJyT2NZ4YSMMjRYOdhmyoM1ytgqK5p3nFS/sT5nnuYyS4THtCYfpu/lQCybTB6DJVZ84EzZPEWINIqEI4fl3j5Vnqtg5xcce0dJuv1WLKQq0clG/cVLoWTVm0Hg0U5xo4jzZfq/DL/Ehxd8Enfa5+sYxGib9+tcrIZwskRC51vTENIOt5cYc9YvzGirOPI6PEjKxQcH5jmnEGWdAyCGsmwda5hmBVj1AT+x31iqM+fqXm1LtlnkAP2WLKCyHSt2FjO/WsRVx6ul9wXObfFA4JtarDh4dAfe3soxyMEQ== 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=9NE+6VlmEEzsbxLpGg9YPgXRz7jZqbn3s/no2Lp9e/A=; b=mwKlrwDhZoNA/n3BoAat2+LOrA8fL0ydmkIKplDMBo3is9rRW/de552x8ciNGiSalEdP49hF4ZQbu7ge7ZzRmqI55BGgQpx6nxxEtpFsInrkFRx/VmXif3qHcffxh+EXLzwgWVCJPFweTS7o1gsNXCpVR+vro9TMtBaWQ+lYvVs+0GQL1Ae/5zPN0KRCo6iDWdUwZq2o7m5eHJWgLr8yEDw5t1kNyCKZxGPz/JECd1Rkp5bLKdWoB+SkwqOUHH+lFnfifPtsE+JXeGss6jiB0MHLpUzrqUxmBpZj3ZoxQR0XnnxZP6TiE2Vm2OZuSwbxKDUA85hFdXxm5MCVQLzYGg== 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=9NE+6VlmEEzsbxLpGg9YPgXRz7jZqbn3s/no2Lp9e/A=; b=cDRwCyVrtV6b5c2w9y8ydD2+/qwt6qei6CNLgnR/DS2tDSZmpJzhQsumFm2QO+J2fUGNQM9Rfbr1Z0OAkXWU7jwiHdpZI7zgnQYiA36UtlWZyadgRhjfnJpaP/yU8B+69BkulcBtEPbTxD1tdiEoXACU2z8LdXERzjxY6Yk7LHhpUlcthSyLhjugVRxarFChjIHLw+/d9Qji0P/iMbE2RFTr2Gp/c/ueGTzYcdd/bPTPJ/8CXDjdT5dRVDfh+RUhAUfySyAzYsD3njQOpcSc3/tg8F9mjEb3H1R+fu1lkMmH0+5ZW3LMKsGLR48J9A5wtR6voTyxgsVV/t4bh+Ldnw== 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 v3 1/9] target/riscv: Define MSTATUS_SBE and MSTATUS_MBE bit masks Thread-Topic: [PATCH v3 1/9] target/riscv: Define MSTATUS_SBE and MSTATUS_MBE bit masks Thread-Index: AQHcsU58YzF/Y3qJ9kaE6DNKDVQxZg== Date: Wed, 11 Mar 2026 11:59:17 +0000 Message-ID: <20260311115910.564481-2-djordje.todorovic@htecgroup.com> References: <20260311115910.564481-1-djordje.todorovic@htecgroup.com> In-Reply-To: <20260311115910.564481-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_|DU0PR09MB6069:EE_ x-ms-office365-filtering-correlation-id: b44d40e0-7b28-494f-d73a-08de7f659f89 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|376014|366016|1800799024|38070700021|18002099003|22082099003|56012099003; x-microsoft-antispam-message-info: qMjTBk8jI42JpPzkGctf8dqWJVcdSEsJ6nDwvXrkVNnKgm+q+IgnFtf8SNJqLjlJGahNM4fHO3lbwyOHbOqFqzZ0aa1VPYodS/uK+EdykhI9j0wgZTbGWEtIniJSPXSycUu1z+j3ePJqpcrQ0tAUvLqwDhGpjzIM8vkG6zpf7mAaMrMYDiWuuabogFQahmSYBYfB1AXr0zN3ulq750Mekm1mOFnQkkxFNgQOm6dVFOUC9rRwEmgiRnypF/pgv5JPHoalenj6tefcFkMU4x2/FKeZ67bvmQApJiT78zICriN0BtXuotbk8iHNpozy9wrUrdFtfvI0x+w7cuDJeVy0mPKdDMMJ0Hb2/nXINGJ+Vb2oICeQ0zX01dH4Ple80oe9+iFbJPeChXcF+spkYywfcJ/H26UQcpPVHCrYC8jZS5hL8oX4cC7h50RxfKqhvbSO87Fu1PU4Vfj6pHIX4rMOLyqFg+bVlWdSnymnBKP5QxZ1Y9Jv1U0IG0qVwuYCJeMPyrkNWEJJbOajWY+ZRJLIjjPIljNvONxoiTxEwocf/1/dcUQ0z1c74V6UnJqP41CQJbLijbyxmkZgGBCx315pGfM800zm/xNcawCDcw5z+3pgArF9JyDBPYSi0hO5kNi4yHqov73cWq9pKvxFRd7zrfmQMHHRzVLsEqndiXjcr6eaYfKHxNQ13lzNPAqPHPS0B86hdeYEqRT3Sd+i1o+NL76/c6BgIQHKx/NRiV+XcGekUTpAs5p5oT1dko6SRzA1LaAt6jvQaoUYj71OD5vH7ncz4PS2MErSO82QoulXnuQ= 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)(376014)(366016)(1800799024)(38070700021)(18002099003)(22082099003)(56012099003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?ORMhI++pkG0Jq9VC3sQ0COz7HuVSIS8fNkIjtEA+4wZk7tHl43/ts6qnAf?= =?iso-8859-1?Q?l30Fe4Mz5gNpORYyk6i136mYM/sIuqarO+aQeDNZ3Exo43Gq5+2SIuITA0?= =?iso-8859-1?Q?7O65AEHBv6uucriy/ir0P0hTbCk8VMdqaF58Q349UW0AXDxSBQ9qZvdBrX?= =?iso-8859-1?Q?FCkAUHLZOTw0C9m3WN7bXCezw1sPywgvM0jD3J/fTbC5mgwWVndmjDZJR+?= =?iso-8859-1?Q?SkfGT0RGNrh6v7YtNcBrlafGaQRq3nEH2+K2IybskpNzaCAJ/tH8Pa++F6?= =?iso-8859-1?Q?z4DwR59t1e563SwxNwdHxBe6vTVfdv1PqLPSYHkrA2/1TcEyARfK9KABLH?= =?iso-8859-1?Q?HKOgTOCh22pI3V/kxHmElBtCl9i4YDsD0QhjPpj6hiZYkr6986GIyjgIAn?= =?iso-8859-1?Q?iGuiBM6pTTfLdPaqHkxlJJ5FPyn6Vh7xEzkKHQWLbo8JPQ2yxnIhwKLxAV?= =?iso-8859-1?Q?3hvpYqdLYwLY2HOgyDZ1M/zMBMZazbd9rCRFIxTexPjipBqFHvVX45D9YZ?= =?iso-8859-1?Q?k+q59njwBlY9ZBpoAWrNjsqCS8qiY36bVK2GvaboH8jWclDBsWw4WyoAuQ?= =?iso-8859-1?Q?IEObPElrYZvzOrdbGhAzAwP1DOEkRIowuYks1+uFT3wwT7QrnrwzDIQozC?= =?iso-8859-1?Q?dbr1TIl9iRYPubf0eezoBnUR/fa/IAc2d+07uouUk5qKGevGYk2ezDYr2g?= =?iso-8859-1?Q?/tIc8wjZUIvTRjsZdrVEI6lxyBXvpjc3MKiwKih6ZsTZn++NJB28edOwoh?= =?iso-8859-1?Q?AM9gc3Vl5ux1n0WPp9EuPrke9SgOXfPrG5aDdj9I/8g6s9CpBzdJvgfC7+?= =?iso-8859-1?Q?YOdywvkJ1RbWYU4Lcekp5ajtyTfFYYkhmoCiNMEohx0yNxxYIXa+1QVCLM?= =?iso-8859-1?Q?nZ3ohhYiwNCJw57Bx5MZRl91HqlLttcH+6IyzqfogqrNPSQxtcD62N8nxd?= =?iso-8859-1?Q?N9aBsPeJ6nABE0ZXk7ABUGcfjVJOEMBgVKebqPgxPiedW29dLT2h8bUxgL?= =?iso-8859-1?Q?+oWkLl3uGqy0uX0gQ9H+I8T2yjYSqdQGfqAjEsPGopx/cl9bsVOOC/om3v?= =?iso-8859-1?Q?y+vNiX/CUhJPOv9qNlsN29vssMecQSpWAwh2w+0L+uxgYJ2CpGpMY9qtNf?= =?iso-8859-1?Q?I0Ws9VVtrf7XSJIdErslmi/hybSBQAs3lppb3xRkIwR7J7N7RuDO3Nlj3A?= =?iso-8859-1?Q?JhEdil0xk5dYFLbEkS/fbGwPiszpeFraA/CdrOOzcziapmYsN8fu7aG+NG?= =?iso-8859-1?Q?Wr0lafgZ9+7+x8IeoxXJA8pOKb2L5Cxli4uZ/cw2aalVQ0WvklKQqyYTUQ?= =?iso-8859-1?Q?m2+dnWflFY15LR9oErTHRamTMYhY1iIGtZ0HaLUfJKG6K7183NTRR+E5bG?= =?iso-8859-1?Q?bOw4e5GCvOKRnqIJvt2MmckmOZIUMj7Yoh80GhB5SAVhufV/eCruTOwwY2?= =?iso-8859-1?Q?QnNNi9wHpZTPi4pBEf76R8crPoClGpD4xUnuUrAPpfwEatiTtE0/58UARD?= =?iso-8859-1?Q?a1RjIQIHFgYcUC+lshVvTzfOfQTXQAaHojtA8d3YCiUfBPse8m9DXv4KzW?= =?iso-8859-1?Q?YOGznJjgn6w4e5+SiAwy/RcFmevlzVPPDvm+WIUgvEqFBIlH5uAtPlApDA?= =?iso-8859-1?Q?ugCNNNSXX5g7O8BotuVzjOTH1C2Mhy4W+vQZxDBWyOPROLZTl647gM+vP+?= =?iso-8859-1?Q?9z6piQjX2mAlgFW2Awf3xgqoP4F/r61THG6ib5sS3PEklkEWHCuQvQ1nZf?= =?iso-8859-1?Q?oniaCvvYAKEr8IdR78FFwe/wukwkQlRkcC9Q/T2/Ngmn1yYIDE9NVtKoBR?= =?iso-8859-1?Q?WdfNYMGhmcGn/ZC3vAaGC2rkzkii0ReZvcCXVIQC2URrJysyxbo/?= 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: b44d40e0-7b28-494f-d73a-08de7f659f89 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Mar 2026 11:59:17.3620 (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: ondpjEytZliwXl/AuGDx51Agf75UYdAdXFKGZISfd6Rn9H5p8stivAVajcq8COJKx98VBMCm7SzO016oF55jlye7vzQernZwqOfptxcQYHM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR09MB6069 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:c200::1; envelope-from=Djordje.Todorovic@htecgroup.com; helo=DB3PR0202CU003.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_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: 1773230412360158501 Content-Type: text/plain; charset="utf-8" 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. Reviewed-by: Alistair Francis 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:03 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=1773230425; cv=pass; d=zohomail.com; s=zohoarc; b=Sv7iPxpPPaOTUaBhwjom8bRcPds7Kmb4yYdgHvtPjnStEjo42UjObSmafowCklyLQqMySS/zotSY0Kk7oUsB92B17YslI7dLEP4JLoYb1uviauJxA3IMs31QM98S2+EeRGjIuEQUB6v+TaL7Wj40sbp5ef9pf8mtVDNCUnoI1c0= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773230425; 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=Jz82LXzriYZgfoGUE3iZDQh9xSJrs20j1KePjysyZwc=; b=Si0FkBLN1mm6cnUqj9gkMn2SDDjjbrCUvD93misi4SpmqJArF16kUsrTDeBvjQExOC5RUiMaQlKFBdE0+hLX51K7NsK2LQF5NQ2hPXWyjq9TM1giXFptPqoOjqaOCupT7dY5GorOlLzYNQ/7w3p0gw37Th6o5BH37JhVGOy4bmA= 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 1773230425404549.037754120378; Wed, 11 Mar 2026 05:00:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0IED-0008RA-QN; Wed, 11 Mar 2026 07:59:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0IDr-0008Ej-0i; Wed, 11 Mar 2026 07:59:31 -0400 Received: from mail-westeuropeazlp170110003.outbound.protection.outlook.com ([2a01:111:f403:c201::3] helo=AS8PR04CU009.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 1w0IDm-0004dU-8Q; Wed, 11 Mar 2026 07:59:30 -0400 Received: from GV2PR09MB8755.eurprd09.prod.outlook.com (2603:10a6:150:358::6) by DU0PR09MB6069.eurprd09.prod.outlook.com (2603:10a6:10:407::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.25; Wed, 11 Mar 2026 11:59:18 +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.9700.010; Wed, 11 Mar 2026 11:59:18 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vr/0LUbvLnM0bziwo4mkyh2k6TwPpQIk4iURRw8Jm12rYCwyaema6DxoTbZBHQczVKFDH8lxh0KUCV7UFkc9fnc1E7YJuZ7cJ+gxYUdXtxbCnQY/SlckZeKuZS0tqNuqxUB/xwNCPJ5IhFJ3H+kXy6U0hmAb2d1geA47+PfmAAXUpQ8ivGw6p1CcKEUpTpDvZmpDiw7QncUY13a5Hfva9vj/+WV7ixeZnj4vdv0mTOEoNmuamREEkIa6xW+GVTsFhPEpeuSVr0Z/igqTP4R1jHIhj0mn7OZA7oGSdRSxwOUUL7AzNjV47fVukGkcF2kW5PVqlJQ3lnu6Df0AyLEpWQ== 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=Jz82LXzriYZgfoGUE3iZDQh9xSJrs20j1KePjysyZwc=; b=GsFxgx34awX4LM9l6M4NrojQvI2xH3VMWc+QcRjcvrQAOTuzKt2Yn84MYvmnoEjeeyXbejebh/nedJ7kM41kdnaCSMLVmWXakzeFSYqiUbVuYq0/dULvpgDr6YWXbLvl73LQXoC91GggRA/boH/GWAxBqaE63+R9ppk7IQ00K+eq7raycvE9/DeccUjF+iZHAT13Ynd8nBmdQPYrN/YOvXANjj2zz0odEcfeNtqDRmD+hKUzaA5ENeWgjK8kF8heLso/6MCBDIbbtON0djxoAGqCCi/K0XYbm5dP+06+p098HkDAoj8b5Pa0pQI7Nq4ITgAKis7c0ysiXveWf3U8QQ== 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=Jz82LXzriYZgfoGUE3iZDQh9xSJrs20j1KePjysyZwc=; b=oAIy9arXP+c8SxVrQjP2nN6sQJb5HisiR+i67VfwV9y0RBcWUtBN69XrItheXkM7+pqF48LSuLsWZivnbLKAQ0VDh00ciAA44LIy9RnRV5AUacpfcBXRdzi5gC4g9uJKZS3aySNk9ZjEKs1ixxxMf23CRXU/v57thR3hKeM6r3MJV411uKahvdibZFLgXY/VTv3O5BX3cIufAuCvht9yl2r3LtOFAKTPNY+heRfN/6ki0jqeTOZvpxqoHxZDN/AetV+YoeYZIPCdgShHiGshMEJBxRTxcJGamvh/ls+N5I6CnVP25mqbq0ZHf+A2SxT+M//Mpc8EL1lnHTM+cgaOYQ== 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 v3 2/9] target/riscv: Use MO_LE for instruction fetch Thread-Topic: [PATCH v3 2/9] target/riscv: Use MO_LE for instruction fetch Thread-Index: AQHcsU584lAtYgI5wE6ljRovRmRCow== Date: Wed, 11 Mar 2026 11:59:17 +0000 Message-ID: <20260311115910.564481-3-djordje.todorovic@htecgroup.com> References: <20260311115910.564481-1-djordje.todorovic@htecgroup.com> In-Reply-To: <20260311115910.564481-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_|DU0PR09MB6069:EE_ x-ms-office365-filtering-correlation-id: 7e727737-6022-4405-9d07-08de7f659ff8 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|376014|366016|1800799024|38070700021|18002099003|22082099003|56012099003; x-microsoft-antispam-message-info: Hq/FGiBeK0BI2YjADVry3NWLb08Iw8OjJfyv+1aBGzT1tOQfDT0BcxRyYbwF1wgqq/0KKcUelEPZkpwYRtHViyYAS4U160obw+Yo8FKYlJuzaunESGjzRsk42tpL2JIF1uP7HRvW3BzMltMTJxAMkfEiGInZE5P1Bv3D0vSCrB3P5/FS+ZJOjQh5avhUOocqyBsPD6MUB1J/25ldsCD8iZwQHaAQjpl/+mhp/LJ0YFA4TfZTdJixBzaldyjvD8yXzqLmRS+REKC6vbdNm0YSF3V9q/NU4uJyRL2wQAK38O3qLRfsO680cAT7UssOIhpVp02kZGkT4cuq8upsrY42KYKUv4TkgGYfQVVzxbzr0S6abytAY32Ie/sX1h0n3yP9K8EeSEjxbAffzCFADto9tWlJwBwAcKqPunYG1BDURfrC53y69t4F46IG9/lkg1xbjjphClyi7b0BkSXHE47J3/r3EuUDo3MnLB1T9mCLAKV3TvAHRH5qTLaRh22OaaEW41rFvpyW5PBczfZD5YBbmIovquOXd7CP0EOsFc+yhdT1ZNIeHMRxXNBcRZbbwSmSPGviG+o/5EcOOJKpAvSwGPPdg23eQpPEvBVOdwtdBDTCMcsgkfAM4JIG/4khA7zgDYtzHVTWtfVo3dDuqy+4rPXSjb07ZVbArNusj+5hl8d4oWqkj0fv75b7ouAUAgGc0poOhN695h5dgGu6px4pfMEmngW5ovgkvB+IyWIsVpBatOBda+8lsVNmpOVNd9e0qHTnoNd8Brjh4g34pdOOHTUIL+zFzrI59ScI4wuavGo= 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)(376014)(366016)(1800799024)(38070700021)(18002099003)(22082099003)(56012099003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?cxMiiBggNuC7InAyS4su2GdYe/GEdPXeHaQpdwtf8n3hEKpwN6gbvGLyDB?= =?iso-8859-1?Q?APnVbab4Dhs/RPkPGYL5kVCCVvMYqNmLCWpT5C2PoiGCxuv7NsUkbV1Ldd?= =?iso-8859-1?Q?0CutD+zyfOAEOqZXGwxtkHUzqGrhyg3JLv5qUItr2zaHBdpPfox2VW5PtS?= =?iso-8859-1?Q?37I6iB1s4mdvRyj1gjtPEOfs47VYVZkUkY4DFdug/wWs8ngZjItEVUfOIm?= =?iso-8859-1?Q?drTNNJ8dOBh619Of/sCktknNL7TOgZt9NY7L3M4FIXn+l+7vTI7GYVxIGD?= =?iso-8859-1?Q?rZEzpGWiajDxKDGK3Z/MIyRknp/qi5wbgkwXg+TJDZ61OfkAcaFzbbgfBU?= =?iso-8859-1?Q?BEFfPvRdZrAxl9xpXZgSUl6HKiyjduTmvefIA+hZYcl6I/v4rbcX28LBEY?= =?iso-8859-1?Q?Ks8jGOcqxasMW6m1Y1EJY+Y1ZvQ72KS2N7jtRYpFODtRbzwoVlmkLirCYR?= =?iso-8859-1?Q?UewIEIt8DmyO2eGogtlQaQgYF+FYvgUI32cvlTGmSRbTjM85DZe1oQyPyz?= =?iso-8859-1?Q?V71v/89Yz9B/i728PwSmG03xqCWG0cwOdlVo0eA9oQuVHh+4A5pYMW6bAx?= =?iso-8859-1?Q?UBY81z9j+X0JcboqLT1JaP0LQEAvLtr5hxOho/czhbxH3ujZQ/ySExwPHb?= =?iso-8859-1?Q?//K/cb02rLgtNQmYgf+qQbhfMGlrqFB7f0x9vZLvItFL5w849utYL8jFjE?= =?iso-8859-1?Q?26j1XIw5SgCBaTx44jZAPMbcm6PV9qCikEL3lwuExnToitvqoDnhdctawV?= =?iso-8859-1?Q?MUh0kVJtGxE6w5GGuzPcuIGGZXVNyYufmefaG9IATMdCyJbnYCK03+2qeg?= =?iso-8859-1?Q?vm5nsrQD/dSE/KmTNggSYfUdDieSGXUazXYjq5GENcm0s/j7Y6em1w1EqS?= =?iso-8859-1?Q?CqdYW5z6QXzLgKP0UkKUzuesA1gzyCDaDnyP3uhuB5Ie4QzS7UHpi9AoIX?= =?iso-8859-1?Q?sqv4DZkU4bzT3BDF+ePS0BFd1du7gY+VUhpYj/m8GhHPB6gADzGqWpRwu9?= =?iso-8859-1?Q?toLg8pQpBIggpjil5o2PEOy/Jkw9wFiElGiDq9g8dmX5yB3SGn33lpMCt2?= =?iso-8859-1?Q?64qSbU0KALre6ZCnoClxOK8ZyhyEU+D2XZXvyPcSqM4cUscfTHBOkmu2g/?= =?iso-8859-1?Q?MqszMolx7COgJ0NPa39xCaiHOCJETdjS/iZVXA8laq7gdw980HFqgwDymW?= =?iso-8859-1?Q?XaqYZE7D6KSpMdA5E7bPBF8SrLwu2Jp6sPiCb+6zWv7heU5B9tdIITiChO?= =?iso-8859-1?Q?1NCh6iG7Wq5Uw5wGmQGrv6Nh1+wv+OyOaIuk6gY1NlqWNxSRoyy71RB3Pj?= =?iso-8859-1?Q?PV/1AhbKqhDS28DTvoYtpddE2aj9lb+XJaNipDmCNA5KmLfymTAYtnbsMQ?= =?iso-8859-1?Q?UfS7jk/aF67UDt9F4fbnFzWrdhfpViLjdV8mu4MC3tJwn835jBTBLH+zCc?= =?iso-8859-1?Q?DxTzSFuCzFttB9a6K9nWAcckd2F95mIFQL4Nn1fXA3ysbD6NDc58UhXLi3?= =?iso-8859-1?Q?U2TtvCCY83oQHycWj53AFzLUHtqUSynX9p/4cRxoBC08B7Kijexk/TQTnc?= =?iso-8859-1?Q?w8h3r9No102w5dsnqP7f4DEfq1INhIowYD+aZF+j3jYd4AKBpcAVTqJJO9?= =?iso-8859-1?Q?U8StD9uy//kBtszqiDbQIQV2ODN/5aU0kUrdlifm5sJ72mHNdvWRXzm482?= =?iso-8859-1?Q?B7L3Gv08HQoLLVm6G2f6w9UnA+xiA09RWS+MsN6OPEo0PE+aUIWVQU3Edt?= =?iso-8859-1?Q?T8wdJguYMl7cAbpF/5WnksONXOxtcKshEchagcJ4Fxg4Nqz0WdtOjBoXJI?= =?iso-8859-1?Q?qTYPpyVBTMvu4AwCSBLiX4oWZxi16265uFlv+DiNWgY3JRixQOlA?= 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: 7e727737-6022-4405-9d07-08de7f659ff8 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Mar 2026 11:59:17.6976 (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: hTo4RNT5F9v4izXnf1NwL+tD91aoGsKRMvasXUbt0NM/fIPaiBamD6KeDKqcxcB1ydrS0U0vYP84cJ9iYghbL/csdnLmkjzNxegpn7updUg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR09MB6069 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:c201::3; envelope-from=Djordje.Todorovic@htecgroup.com; helo=AS8PR04CU009.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_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: 1773230427155154100 Content-Type: text/plain; charset="utf-8" RISC-V instructions are always little-endian regardless of the data endianness mode configured via mstatus SBE/MBE/UBE bits. Currently, instruction fetches in decode_opc() and the page boundary check use mo_endian(ctx), which returns MO_TE. This happens to work today because RISC-V targets are little-endian only, but is semantically incorrect and will break once mo_endian() is updated to respect runtime data endianness for big-endian support. Use MO_LE explicitly for all instruction fetch paths. Data memory operations (AMOs, loads/stores via mxl_memop) continue to use mo_endian(ctx) as they should respect the configured data endianness. Reviewed-by: Alistair Francis --- target/riscv/translate.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/target/riscv/translate.c b/target/riscv/translate.c index cb4f443601..413911f7f9 100644 --- a/target/riscv/translate.c +++ b/target/riscv/translate.c @@ -1255,7 +1255,7 @@ static void decode_opc(CPURISCVState *env, DisasConte= xt *ctx) * additional page fault. */ opcode =3D translator_ldl_end(env, &ctx->base, ctx->base.pc_next, - mo_endian(ctx)); + MO_LE); } else { /* * For unaligned pc, instruction preload may trigger additional @@ -1263,7 +1263,7 @@ static void decode_opc(CPURISCVState *env, DisasConte= xt *ctx) */ opcode =3D (uint32_t) translator_lduw_end(env, &ctx->base, ctx->base.pc_next, - mo_endian(ctx)); + MO_LE); } ctx->ol =3D ctx->xl; =20 @@ -1285,7 +1285,7 @@ static void decode_opc(CPURISCVState *env, DisasConte= xt *ctx) opcode =3D deposit32(opcode, 16, 16, translator_lduw_end(env, &ctx->base, ctx->base.pc_next + 2, - mo_endian(ctx))); + MO_LE)); } ctx->opcode =3D opcode; =20 @@ -1401,7 +1401,7 @@ static void riscv_tr_translate_insn(DisasContextBase = *dcbase, CPUState *cpu) if (page_ofs > TARGET_PAGE_SIZE - MAX_INSN_LEN) { uint16_t next_insn =3D translator_lduw_end(env, &ctx->base, ctx->base.pc_next, - mo_endian(ctx)); + MO_LE); int len =3D insn_len(next_insn); =20 if (!translator_is_same_page(&ctx->base, ctx->base.pc_next= + len - 1)) { --=20 2.34.1 From nobody Tue Apr 7 22:05:03 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=1773230458; cv=pass; d=zohomail.com; s=zohoarc; b=UDru6mXRTRFrFCmXPuCqzaiJgV6PDxx7Zwat1c/temVlQQKxYivauzXHhGs4Po7JRJV/va6SBV01ZOKyGNFRvDqh6vN8Ie9bnFJZgNqXUGZCwDNdb9Z8gPqVcUE00jEpvwpnn7gY76bgUMfUK5qQC9orRSte5s0JdVK9E4i+q98= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773230458; 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=Tkei2kYdtPHqUpnwbmqPE3IhATTJbwItpyNatAULDio=; b=n49j6C1DHKaVWC5qlqJwV9khOC0WFR4vWyV7F7KikA13KzyLCKB1EWYD8mMX4xzvjiXvQAtTASHY6wmuhQhTqEvbiWkgmWTgUpdwdPAcdA8oEgQw5KSFcbkrwuxqLupIqsnf0FMd2o2GLoDFw0jFmUuF7fOf4rSVd+RyRTWHPgk= 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 1773230458783547.8215028318815; Wed, 11 Mar 2026 05:00:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0IEF-00007h-26; Wed, 11 Mar 2026 07:59: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 1w0IDr-0008F0-Ji; Wed, 11 Mar 2026 07:59:31 -0400 Received: from mail-northeuropeazlp170100001.outbound.protection.outlook.com ([2a01:111:f403:c200::1] helo=DB3PR0202CU003.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 1w0IDp-0004do-UN; Wed, 11 Mar 2026 07:59:31 -0400 Received: from GV2PR09MB8755.eurprd09.prod.outlook.com (2603:10a6:150:358::6) by DU0PR09MB6069.eurprd09.prod.outlook.com (2603:10a6:10:407::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.25; Wed, 11 Mar 2026 11:59:19 +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.9700.010; Wed, 11 Mar 2026 11:59:18 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Rsce3emvdIPALuyZsy1dLWNrlwA1ycSWCtFfgVOdc4cjkaLiwB1EZCm3fW5PMextE8HuT/SdjGquormWS29zZcImfsA4z14DlR0ErpYnonGUwvHnX1Mxq1AQh8qXt9XVNJXzM9+vOCG/Z1WKwDz8bCvr0d8661erO3ZYLNQ2JM/ft8438n4FxGhGRWXWjTx8XOxjQS/OnOGCzQ+NsyEv9+Ag0sbqckGHZhSFulydw5LwKJgBxlQFK4lgQi2Zl+bY4Qy1lbUqwmUXJpuThkBzPv9z9bxfJMX5/ZJTdIKkjMMqbL/GVSuvmsC4kkgV7kZCnwmky8s/ru6jYryBaWDZkA== 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=Tkei2kYdtPHqUpnwbmqPE3IhATTJbwItpyNatAULDio=; b=gQe/cbUQN11oxNIJIHnPNtWSthmv68W6T1P6oxWu3PnG7bHWbzo4hGzrM4oueCSNo8kzW33ThmTSa0RAZltm5Hf4ZdmW26+mVz6JFHYX5qEDc4SOteAxi/tynzf1Cgqnzo4XQO4x+zj0rGRvum4BI1KT1V+cUVMhs2iMTdGQmUW1iaZhDfnnZRkGinRWWIZxuEHjO9PgBTDZ26WONAwtAj439D7f0so7+C1fXA9XEH+XMRcWjtVDNzaUkcMcDMrr0rV0L4/WqBiahvA2E02jYlwCiQP7H729ofS/Q7bdvejNwWZNHY1WLkjHG3JGekFAgJ7H0fLVj1ouquX7p2ki7w== 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=Tkei2kYdtPHqUpnwbmqPE3IhATTJbwItpyNatAULDio=; b=mGIA8tmHuTScOqhs/S2Qex8wv0vPjP3G+yNEtJ2mZQjzLS1SH89NzYi1I4DzzCTnYPoW2BRaI+ai/7aarY6if1ylc9uQEjWfUw6Ms9WcItZEsUfDB39Dkz1KpZs8RjdjnhyC6xarsZQVQfT4J2EL7unHN0mGyRLciAlDFASF3kI0XtzoPn7SUJg4ffD1MZq9BmF645kd2NAfgx7eC2fyxfZ+DrrZff4VhQLtWdhSzGQkvs0j1MR2dWER8x29lMnF0BUnE+mtLXv41VuSISBhRPchB2M8pnuVBk9UNrObHp3uUn5hbubW1VByHns/qksR1iaQONkCy1a6Oo2cWJdM3A== 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 v3 3/9] target/riscv: Add big-endian CPU property Thread-Topic: [PATCH v3 3/9] target/riscv: Add big-endian CPU property Thread-Index: AQHcsU59vqrNlKryJkO//TIQ3aKIxg== Date: Wed, 11 Mar 2026 11:59:17 +0000 Message-ID: <20260311115910.564481-4-djordje.todorovic@htecgroup.com> References: <20260311115910.564481-1-djordje.todorovic@htecgroup.com> In-Reply-To: <20260311115910.564481-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_|DU0PR09MB6069:EE_ x-ms-office365-filtering-correlation-id: 59cb973c-6a8f-46aa-be70-08de7f65a02f x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|376014|366016|1800799024|38070700021|18002099003|22082099003|56012099003; x-microsoft-antispam-message-info: a3tLxMNPdBICHBgJW97RFHfzVprvzH4KuMMNKmBFNX749ba7TSJC/2e7JQAeNK+k2tWCjM522TkeFEuwVaweJVKiLzzUX1THdphbLTK8oEPVVGFetAb3MFFESWlRbjW7BjxFa1bkbVdjSA9yr9/jb+co6brlYD0vfwrnwjYYBByzcEzTXVim5XjFBTLXwK0xg4uLMs/AC74KYvgT/ouaEdj4c0GF3zRwG2yedFxuRmQym4o9E/CoTTrb5uPwBqNemJSTgCeORq2t119wLXQPdPOQzHuMDV8AAIvAeGftMuBW72vZWfTu1duZOqAjqGYW5TW9D9pYYKEyBbXTIzYLiodgXKB4WJm2ig9Cy7fWv3usFJzlMtDR6OHCqoR4w5XNOu8fHENDwprStMi1zm0JcbRWZkmwa7tagAbRzEJK+MbID3Ds+UmwS+qDpHp/c5Sc93/NnKzaRAY9AjonE6FxHXYmnimmMFc3dpwQA9Pzq1KjBMax4GUMNjS/uarrikDitMOpKUrU6UwnFhUz2dFhSKKSEsJYssxJlCLVucYQ9Ecd8EXTXAfnI8Y5E56oBZvbXRczkmrAakDmTKdEs+m0KhjA2AqPySoH6sDrEejTLC4QPuWX69MUjYHSR7W2BHX/TiQcb+bBo9Jm10Ln42iNqN5TM6hZwFL7E4+A6zm1qgBHkQoibBVHT12p5GeK9mm1ImaUfCLmS+5v+W1Aok68UhTG721AfStoGe9joeDTKC0XxoUhL9nYU5t/FB6EaRYGM14IeSKCOjI2cOn/b8ujSgWkHzSZjmXIxHvyhG75JzQ= 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)(376014)(366016)(1800799024)(38070700021)(18002099003)(22082099003)(56012099003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?cZUvQ7gtqEeqagbw03eEeEUoyihpjsXtNtu4lT0PPHUjAHYI8YLOEeD0+J?= =?iso-8859-1?Q?FvQG3VqzZ/dT0jsyqgPtFtojlsnsdhQqPMEFRC/qFfUpelTvSnXnYYyekU?= =?iso-8859-1?Q?RCQIo9bxaOB6zA7apqQThHkrxPYYn5l8x+4LKrkTljzgi3bRB//bl67Q1g?= =?iso-8859-1?Q?4H4ZnOanotEoF8BxcRpUBgR89xjT2z0xduZMfe/QnPtnHv5LQ2VmaCjx1V?= =?iso-8859-1?Q?6DxlgLna9WeW19s0igpMSnthzPMxetZ+6E4LwrQhNaWmpcOf1CHkXs6I1I?= =?iso-8859-1?Q?dmtsvFXuf9lOgvu8mTSdENryNFTws3b5FWPvnYqPwUELV4a7nF948KB7kd?= =?iso-8859-1?Q?GJeLJPQbs9JQ6Hv/vF/ZXQnMPHgVXfr/DqqfNrruEXSQDy10AdrdYyPare?= =?iso-8859-1?Q?HqNAGIo3eZNfLyAGz1YZLMZoFfDEgIDQGoh6h0ULWkT6QCRhwrRVWYCSO7?= =?iso-8859-1?Q?+tTG1dzgX7OvNY5JptRIHd27bmAbf8GMVwlWQ4LVJNNJru2X+Z4Z5t6XR3?= =?iso-8859-1?Q?oGmKz5w9MxXi3luv24CoQ/UKFjcTE7sYOK7znoYJHP4selw93LnYrLcyik?= =?iso-8859-1?Q?EuYo1gVSr5qIyvr9EbMo8NvgCwpZm1o+xAWU4uXXdwybzK2VQ7ejJIa6sH?= =?iso-8859-1?Q?hKwy6LOWWi5ymi0JvSEAZGjOlfW1nzCtWXkm+uOKGd8Tz4cw9ilTS1ARsy?= =?iso-8859-1?Q?A7wjLyLcKDzlGdbc0rkKEQkHbBNJZBu0X7D+/esFjpVTz5on3KWjsIwCUz?= =?iso-8859-1?Q?KstQI1N9uSBFB1ZXpTcELf0GJ+KJh1xPR6VthzWpIpD79C27wy3QewGfO6?= =?iso-8859-1?Q?CIb15HQQyA89g1uJS7CxyMUzW50FxvgXlrCvZnTTgAZEfeM67NsBbaheat?= =?iso-8859-1?Q?9ICxidRIVYyloLx7KsT25elW9ndsWnZy7pB4wN0d+11rq8M78u3DqEJl0E?= =?iso-8859-1?Q?Kbk6pYELCvMmLgSD6oCbXL4rDndG+irfVRtIGdBjg/uyWYR2pn3RYijzRF?= =?iso-8859-1?Q?UoidI1tctIDL0puGzG5vyoeihvOeVzrG8aBpjgCB3LQ8trSAuxrag3Okfp?= =?iso-8859-1?Q?3Ax/wO5qeyR+HDdG9QmIxXkl61nYErl0Q18S2hDu5JZTAG4m7PdFISeF1S?= =?iso-8859-1?Q?QYWHCc/M1oVAbKPxtW2R+suhzWJTajvPIAnQxAUlNxv1WSPrKCTQe8TNoo?= =?iso-8859-1?Q?0eIvGgiBvZg82DGSOUs75yhA2ocb4ZmKsH2hxKglPr5YBKs8DGTVVDWIs/?= =?iso-8859-1?Q?q6bGPM+yLTd0cM2FEjBoML8KtL5DjB9viewY/lUz8AUbqA0H259hUKzsIZ?= =?iso-8859-1?Q?Iy0SxoVSHi6rq6mbY5qSO7FuFTKkjalVaax5vVTX/yn+OuKGthnNLtCvO6?= =?iso-8859-1?Q?0ibeOIWqhYnIQp9YCJIq1rK6jF3bs2Lf61w1u05SHbjvTIYO7Vxa3v6fRY?= =?iso-8859-1?Q?o8A9kPZqDABH9WP81k4XO5XKCblO/KTH+Se4eJltVDR7VlJMw4X2oe7no3?= =?iso-8859-1?Q?TuWy1HLyuAEwyZoQjdA2mpXF4aaGNGU/7sJiGNPACdCANjnHrepWobHzBA?= =?iso-8859-1?Q?PnaOopUNIJ4wp8qLNUgQn4T584yINKZa6GL19wv0mWarG0aUHeX/KEYskf?= =?iso-8859-1?Q?uGaQw1HHjnGQSy6OcZAp0LL5zwlJOkgyYYqJFpEuqJlW/ezgSwgxOw0kbo?= =?iso-8859-1?Q?Hdo5fKPB4v7gPK7iYF7ntZRGgj9GUvj4rgVs/94X/ycscHqQrolr6YjIYM?= =?iso-8859-1?Q?2W8nF22bTDewDp25e6M6sR5XIZQHs56/njwFzXjYY1p7jqd/DHBTUso4LT?= =?iso-8859-1?Q?g7Hm7gLWw647iQp3QqZuktph1n0A/wgyWUk8U5p/mE22+5DAz6s8?= 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: 59cb973c-6a8f-46aa-be70-08de7f65a02f X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Mar 2026 11:59:17.9929 (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: aINS349rHmvxrQxbqZ0ol5CFeCLK5hb/w/0EtnDSMGyFAlLDpT85j0pI8tAYq0tVSLKtPC/A+iNH/krR4w66+8+k2+2zCMhetso1bRajJ8U= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR09MB6069 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:c200::1; envelope-from=Djordje.Todorovic@htecgroup.com; helo=DB3PR0202CU003.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_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: 1773230461759154100 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. --- include/qemu/target-info.h | 9 +++++++++ target-info-stub.c | 8 +++++++- target/riscv/cpu.c | 6 ++++++ target/riscv/cpu_cfg_fields.h.inc | 1 + 4 files changed, 23 insertions(+), 1 deletion(-) diff --git a/include/qemu/target-info.h b/include/qemu/target-info.h index 23c997de54..1701cc1c9d 100644 --- a/include/qemu/target-info.h +++ b/include/qemu/target-info.h @@ -50,6 +50,15 @@ const char *target_cpu_type(void); */ bool target_big_endian(void); =20 +/** + * target_set_big_endian: + * @big_endian: the new endianness setting + * + * Set the target endianness at runtime. Used by bi-endian targets + * (e.g. RISC-V) where data endianness is a runtime CPU property. + */ +void target_set_big_endian(bool big_endian); + /** * target_base_arm: * diff --git a/target-info-stub.c b/target-info-stub.c index f5896a7262..b6532c419a 100644 --- a/target-info-stub.c +++ b/target-info-stub.c @@ -22,7 +22,7 @@ QEMU_BUILD_BUG_ON(offsetof(ArchCPU, env) !=3D sizeof(CPUS= tate)); QEMU_BUILD_BUG_ON(TARGET_PAGE_BITS < TARGET_PAGE_BITS_MIN); #endif =20 -static const TargetInfo target_info_stub =3D { +static TargetInfo target_info_stub =3D { .target_name =3D TARGET_NAME, .target_arch =3D glue(SYS_EMU_TARGET_, TARGET_ARCH), .long_bits =3D TARGET_LONG_BITS, @@ -44,3 +44,9 @@ const TargetInfo *target_info(void) { return &target_info_stub; } + +void target_set_big_endian(bool big_endian) +{ + target_info_stub.endianness =3D big_endian + ? ENDIAN_MODE_BIG : ENDIAN_MODE_LITTLE; +} diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index e56470a374..305a8d73ad 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -34,6 +34,7 @@ #include "system/device_tree.h" #include "system/kvm.h" #include "system/tcg.h" +#include "qemu/target-info.h" #include "kvm/kvm_riscv.h" #include "tcg/tcg-cpu.h" #include "tcg/tcg.h" @@ -941,6 +942,10 @@ static void riscv_cpu_realize(DeviceState *dev, Error = **errp) return; } =20 + if (cpu->cfg.big_endian) { + target_set_big_endian(true); + } + riscv_cpu_register_gdb_regs_for_features(cs); =20 #ifndef CONFIG_USER_ONLY @@ -2641,6 +2646,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:03 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=1773230549; cv=pass; d=zohomail.com; s=zohoarc; b=E0U3Ke2fEZktiw+urQz1tWnAdBsmr0dHECgoMWClOfxKTamn1BF1PA1oDtlIPMvGPvtILdUkdspbX+xGujKn5DFlPuohIjZHWhajlBG/C4wcsvwG/ltrTU4EdK09FOT45raT2ywjdzxrkkbz88t4zyIWT+l7rDbNg393l0yCDM0= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773230549; 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=TpZRMbEu+DbcxNsi0jFoqxmY97B3yL0FLW/gg070UHI=; b=kxpGNM8lrkNp0ZerSiqYdtDpI8fWCyVCIbhUoDBfYqDH8WCJne4w7JZuBDyQVSoNtkDhQweVg2Myc0pWZW/NVffIHquuyHnMg1tvDTgQA2I3CFYkJh7KoGxP2t4mCDsMsdVoqsqEpLfweaZTSNOAe7TqOOEPF1lVkilxSx5ClKk= 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 1773230549629834.2566784923994; Wed, 11 Mar 2026 05:02:29 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0IEH-0000Cl-2m; Wed, 11 Mar 2026 07:59: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 1w0IDu-0008G1-0T; Wed, 11 Mar 2026 07:59:36 -0400 Received: from mail-westeuropeazlp170110003.outbound.protection.outlook.com ([2a01:111:f403:c201::3] helo=AS8PR04CU009.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 1w0IDr-0004dU-O7; Wed, 11 Mar 2026 07:59:32 -0400 Received: from GV2PR09MB8755.eurprd09.prod.outlook.com (2603:10a6:150:358::6) by DU0PR09MB6069.eurprd09.prod.outlook.com (2603:10a6:10:407::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.25; Wed, 11 Mar 2026 11:59:19 +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.9700.010; Wed, 11 Mar 2026 11:59:19 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=aNHsScdhU+n5lQve/lGQJCVYbrxeCyGHWJtRxyi/0yHOtIb6AcFcnMveuAOqpbXY+CFsTn2n/PXTDT3HsOBUYMOfYuOfnCnxHe/0XsA4Avm6qWY07t/Vlbgcbx2jQAlSuIhaABO6UzzMElyAP0JNO5kKmy0GkBLEANLQZvZn450Ujo4Fww1uZwjBiirvfdfSYO10nuNYZjfLKrp43h31Cqx/OHM8d/xrPRnT0wFlhZqprDGui+XHS9b7To8NWf0IDYmCUG2hdXcjVQtwiHUxg5bj+TWjRVhNS08Wre3jTY8w4uW9jySdwdWOYUwMVK/d4aisePE+rVyMedxtlrqrRg== 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=TpZRMbEu+DbcxNsi0jFoqxmY97B3yL0FLW/gg070UHI=; b=kbeaBeNwpBNo/zwUKn7HqmmOa+LBv+PJQoOUh17w4jqe+wNHBrVcLmIbGNN1UtbpiiuhOK3lFXgtAqYzmKEEpA2Lw+v8eoYPk0TLalEChnDUmSywAoPtW1A/HN2OveaBXWpO1IhQ3MbqYKOj5VDuHrOQnvR9TO868lJiwrq7WeqPGp+qBRLjId8GYtVZha8pv2+vtzVJJDDwGvEqAoRei3l/ZLuryxfPzi8Nb3WLoTzNfxP8lznJMMST+ffYoUJKPbcTREHY0xIam1R3lNimh5CY/NZEyTeV4jDsDlFsJ9vTbnM7QfEJH8pbmMwcAo6V269TDvFVs//wZZmmG5YQ3Q== 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=TpZRMbEu+DbcxNsi0jFoqxmY97B3yL0FLW/gg070UHI=; b=SGmZM1xJ2S1aJesMKdvjGFMxbVzSwI6dNBCPw7903OzG58ZMQvouzBY7Z/eaCZHWoyPobNzH3SCzcicm0d0D4FNSxEHaYkO5kZAgVPBifQpw95WsFuRiqSi/0ZlyJxlVSI0lLuB2vOE0GaMKewTXRH/JyIwSs4vixSpqxG/Cq3qn1u+5SOpRE6oMD//WYMOZ1NSIkyuF1QQOuciEqCdLSHBxsdZuT2EJlB7IHFvVyTaYHG3YHoMKHT93yJP2r/c4rUJ21ixcrGbl0fsqUeDcLuK9EdxGv3gb00bSSaJ7NVwmt+oc5EQw4Avsg9B1b9+pR+DwZy13aSbctBdoSXu+pg== 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 v3 4/9] target/riscv: Set endianness MSTATUS bits at CPU reset Thread-Topic: [PATCH v3 4/9] target/riscv: Set endianness MSTATUS bits at CPU reset Thread-Index: AQHcsU5967JdqHXbmECHWiSK6MnYgw== Date: Wed, 11 Mar 2026 11:59:18 +0000 Message-ID: <20260311115910.564481-5-djordje.todorovic@htecgroup.com> References: <20260311115910.564481-1-djordje.todorovic@htecgroup.com> In-Reply-To: <20260311115910.564481-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_|DU0PR09MB6069:EE_ x-ms-office365-filtering-correlation-id: fe46bcbc-c589-4ef5-fedf-08de7f65a05d x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|376014|366016|1800799024|38070700021|18002099003|22082099003|56012099003; x-microsoft-antispam-message-info: dkiNchxIE/r7ZqX7JaAkVnUFobweQaduBdmrqlruPncpGDtwB6fsxth2bKBM2+CDQHIJSor7FypECQp/8LkrItGAI+QddQPqwp+BZWEel2yPMrXhWr4xCQZiLiOcnb2fkQthBLB6SfzTSzNNpjOvdio7F2JYGh0/ZOh58hwDmg0Uffa/g8XoRD1wOhgy6SRwI5at1FJ+gID59YigpiPspt0clKdIilAewt6YpeVxOgyKvV7sDcpfAh+EqYpIAu2bJgzbR/4i+7VIjjIIeQlne5jYW+U4sHJWBg4rMwM7f4Bux5qqHVJLLawu8wZxvFlPjVbmfLfJWQwPnNuvHeP+12tiRdBQWH6YGpii+qGDWZXw30QqnxdIL58xl63DR3tAHj1DRmXyp3GNQ8bguPrFkaEJwJ8pj6lsn3vWl1a+h97xDHjFrBeNtkrnRQhZHToXuNisYzSAotCGJLBubuAleLYUcP9KOS1ev630cjcey9jH6THV7rvEhKR94MQzAfezWEz5nTe7hXMwbN0lj7WzRqHEcU+OrH7petd3/rp8WaogGlQpfA1P5UYdlyxkWkG4mM7SkfrzjEq+W36ooqHtc8IvWbSw42nWQGWQmZxfVsSYdqNt2kdDX9ylxO6e0LdEAe1GXNm0E8tQ/0foGFL/5Qru+0VmDImkfZNN/tZRQPDm2jbpJNS3aAugrl+c/yownbPHpLJel+JpAqgX/7JaxV/hkGold1t2xzAnVbX/Dqbnka1JiUAMzQ7bkqgB8KkHvrBSWAsxl1wRYd5PXNJSCsOx4Pu+bDgzjprU2aiDXzc= 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)(376014)(366016)(1800799024)(38070700021)(18002099003)(22082099003)(56012099003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?0+lkIFTs0ao9FvuYLLGdS0Fn3dis2tlSjRGw8GS063txhI7g0u1qJhocCO?= =?iso-8859-1?Q?sPFVJQptOuLSBiyvIKcF67kdqWaAEA9rrOQiR5ub+lCB9od/TOMU0JamrV?= =?iso-8859-1?Q?2Fq3bcFVeFGAZllK74iQs8QgTSdbCnI7ck1aG8lSoEeFbE1psDKtJW38NW?= =?iso-8859-1?Q?6iwBK+v4nphXuLgj/YqM2oUevOiN5MfPnBlrCErZSuJ5/CeSg2q44TS9pV?= =?iso-8859-1?Q?LEdk+ybU2PQHJVK2bjCaRS+jCfs4XCSdMy78rS4njrWgAzlimoDxUlPQJj?= =?iso-8859-1?Q?zX2uYUbWEfQmoxjgEtXyxZvsSlIlroU3ZWr9hUxPDLmYOq4NnmcWUYvFlP?= =?iso-8859-1?Q?x9uaqGtrjfPgWOy0/+7CbYvOsTXCGEr6wOZ9r29q5l/I18BXUGas/01ybe?= =?iso-8859-1?Q?Wplb+sUYPbK4/olWIksJhmow+niPTc+WTqmEAQ6aajvn4E8G8cJ3fvy6PZ?= =?iso-8859-1?Q?MTftEwBdNvXaZi1yXNg05o1WjRbwm/fRV2l/S1IfRunD7NjcSMp5FEuB7x?= =?iso-8859-1?Q?1UJh5gUwZ0RGwED+DhLGcqQUJcL5SLr4/LAB2nGcKnu/5ovQ/c3bSKCxFI?= =?iso-8859-1?Q?kc+SmoHy4GwFFMczq/wY6sJKHSEX42vQpyR5suqkwOqt7d2cop74MHnS1s?= =?iso-8859-1?Q?JlQHi1WPXdjD9swM6eO/+aHcmxC5524/DsiGzt3xeFVSkfJnaE/73MDtBA?= =?iso-8859-1?Q?iv2EhpYlvDSXeX+vJKQwM6WZU3qynfByIdXIaegs0LzwflAqHaHKvi9Gch?= =?iso-8859-1?Q?go/Rh1Q/Fvcc/1JSBzzFttLiG0/Phs8Y57x3QzWnUhQ/SOYeBlH9qrm0qr?= =?iso-8859-1?Q?+pPZanGKReFSzBpfMy/QhCZWmA1fVInT06PnwNT0Wtjbr8A5Akz5rJJD7Q?= =?iso-8859-1?Q?xFtxdfgQdDHGSiSxDRxDxSPTo4OpCsReKKSIeSuj73mk9xcZj1NbWAXA8H?= =?iso-8859-1?Q?heEjfEYALaI/T6Ne4Ihex120/SD2lbnVUJGiGYj2PDGfZ1NvMQXECshIMm?= =?iso-8859-1?Q?40iNEdtPUXHMG2mNENLZWJypgaTexIZYk8xrjYN4x8At5xY4jxhE53fAUl?= =?iso-8859-1?Q?gQOnKZjqTAj7ZxyurWrNnXw6xm616gYzlSjosSkCIjVipvcgZlhNLNm4bK?= =?iso-8859-1?Q?DP9CvdrtiMc0R8RLDuEDO0pSvb2UbSlFhq0IysPIY//Ml9xwiUIFgaE6rx?= =?iso-8859-1?Q?j21R3XAbXwYQtsMXksAXUir7SLryzLNGuN8EMJLxrrHPJctqha5NAkWyQb?= =?iso-8859-1?Q?afk2j+oJtCAEP/8dHWYKnQesGL7PfgXTufkNViOQXEgOczT7owVeU/3OIO?= =?iso-8859-1?Q?MsRbSlRUuJk0GHE5m3uJEFHRFT1yMb+TGbzTmyYhJ9BoOF08OOSDbuJQE/?= =?iso-8859-1?Q?CsLXTa6rFG7Yg1xJGb+ukXlqsroa6A/7l75Gilyyp1E/3J9c4YJBiJcb5u?= =?iso-8859-1?Q?hfLC0amNvNPQ6RT4/8qKzT3gQ8GEXdDWKaTY/H1sdn3RBztERG81FW2Y3O?= =?iso-8859-1?Q?gbfCQ0JyjwGbkJwevhGFhxuFt2KZzBbOzbthRhAYJETEiE+4DWtgqCLLOG?= =?iso-8859-1?Q?X/jguer6KSKTs3z/um/D4rXU8OtYkqXsgL5BtzZnyAepyT0F/WTvzPhn7c?= =?iso-8859-1?Q?txrkQ/mAWsCc3oiZLXgHQKA8FQjfoYWXzknoyI4DqoDudx0GnTrtorZQ17?= =?iso-8859-1?Q?v0zGgcsWgqehjiKoaLkS/dBoYcjmkfHk5EbksbrNVCmOhq5J+FMfiSmJXU?= =?iso-8859-1?Q?tlmgFPp/4F1Fd/4d57/39KW/LLUZEqe0K6DHEX4gP2NQlcrhkZtj+NdLPJ?= =?iso-8859-1?Q?9dvjvdyPLCWqePDqVQNpjdpm1FYmcW4NvuHbRvwMexDqQS47hyCZ?= 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: fe46bcbc-c589-4ef5-fedf-08de7f65a05d X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Mar 2026 11:59:18.3232 (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: bY9olr6Sw+nwnZBx3N84Bij/WG+yEVzuauWX3nvBynxwv523TfomPx2Sgw1BvT5mVvWQKCUnIIsbXECzT485PGlgDvEsJfbe+yxgHBtDokU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR09MB6069 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:c201::3; envelope-from=Djordje.Todorovic@htecgroup.com; helo=AS8PR04CU009.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_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: 1773230551241154100 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. --- 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 305a8d73ad..4e5781ff04 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -717,6 +717,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; @@ -804,11 +807,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:03 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=1773230493; cv=pass; d=zohomail.com; s=zohoarc; b=QcUl7C6waeW/4XRn0dEHusDRM6pWL2zpZZlfijA+wH3XoNOAt6DssGXrfwxiwNTLqQlJqWO0WfX2VyVMGYqPLVjkfIybk2RGFGqqVBLYvh2L7JZAAUS1cwwTCWf9ifPBgpJiMmAntbvvS34K7dfn0fOiMORTYW3O7IH6zaV/VSE= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773230493; 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=C+GpSTI5UkPta0antcimc0FXxOqrY16NPB5qieIlurA=; b=YhqRZb74ZgexEz6xfrkIj7L05zLKOKncj57lJ+js77vGJiEUxzJDjxJvs8b67vy/YK1d6LIa0JWrSn+v8AsWnta1zkQ5O2EE3Y4fXALcNxY/xUE5q++0hhC1rJwlbHr5CIIjaryFhVXELTjP/5BnVT+7q2+K6T2YWuls5nlISGE= 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 1773230493585854.7956883491865; Wed, 11 Mar 2026 05:01:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0IEG-00009T-3z; Wed, 11 Mar 2026 07:59:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0IDu-0008G3-8x; Wed, 11 Mar 2026 07:59:36 -0400 Received: from mail-northeuropeazlp170100001.outbound.protection.outlook.com ([2a01:111:f403:c200::1] helo=DB3PR0202CU003.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 1w0IDs-0004do-I0; Wed, 11 Mar 2026 07:59:34 -0400 Received: from GV2PR09MB8755.eurprd09.prod.outlook.com (2603:10a6:150:358::6) by DU0PR09MB6069.eurprd09.prod.outlook.com (2603:10a6:10:407::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.25; Wed, 11 Mar 2026 11:59:19 +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.9700.010; Wed, 11 Mar 2026 11:59:19 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HlV/8Yhfp+IIPIpcv+KdhZZWy2Sr4aRilrAlKkPP4FxiLmMj3sNg9NOUnWCQHoiKqj5vsCA5sPVXg8fKx+QI8ToRd1d6Scxw6wX94lFi2+sRTvRo1ZViRzOJLCtHdJ4u7qTWPYVULDbzEdMi67JwvFNrbgyBEG/3nVHtI9XCsZnFKu9b97ytptAQ/6akpnmI4b4R9QR99AU969qTWP9IwrPbDOLnCoTT/K7kAOM+d5yDOSYUwQN6myRMrMeisEitTMECfeFEhWkQ8gu0bRGddlClh6m2u5DGrhBGiPG0FhT0OlZ8EH+tPpkMv27h0v68LOVr2v4FZA8CO9BNXJ22wQ== 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=C+GpSTI5UkPta0antcimc0FXxOqrY16NPB5qieIlurA=; b=nOSwS6OIgmVxpEl2XA8dNbuUr5IM1k2b6jdzp4tHa7Ve8eqJh4QdTTrhMhuL8w8E+Wtvkm8EQPbKSffQyiP+N6PkeK9oxAmJlfLkX7Et8PfkyCGsjw/xTBnWaonxVnYIslndYPEFI9LwYkwuJCNz17uuBR4J+if6BBSotA5oIK+nOxCqJnRFVZgNhnFB09/qzBDe1RgPdEh5kyFNmMtpmp4VROI0R28GcHFXg6bLYhgNnRKgwr3smg5nDvkknqMbnpv5/UAod+8ATvI0+mNJkDXlfbVtgHSGY+VrVr+goh1zHSWKSR9rMV2xXm3DK0+dYHZL3uQU6ZDNE+u6n4+EEw== 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=C+GpSTI5UkPta0antcimc0FXxOqrY16NPB5qieIlurA=; b=KnQW1NF2PKyoJq4jz9tBel87PW8JMsrbNRsmDKaoiOHgWzfGPlFSYnnLgRzIhRm1H0jqmE2WWTb5K7IUq+cYulSqn/e/pV2ZXhfSKp0TtoMhWkviKSEHiR1uyot3uPpTjo5gehV7PIHlxMcBYNYx9WDvyh/mCtEtFW8vjcF4aRq4ppJ8qO6UKIC2L0WzEto49rJQTqtStXfIc54Uc/XdPD6LyZIYlSwQEi+R2YSw5UZe3hGGyplLf9se/iAIqh84vrrSzKDnxSu7U5RAd8t1zgaKGpdsWm1uwWysfFh8wf5yD3v44v9vMbT5PcJOTaCShDh3gICxtirsF2OBeaM+ng== 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 v3 5/9] target/riscv: Implement runtime data endianness via MSTATUS bits Thread-Topic: [PATCH v3 5/9] target/riscv: Implement runtime data endianness via MSTATUS bits Thread-Index: AQHcsU59CU23aLKwv0qnhqe/n9XYmw== Date: Wed, 11 Mar 2026 11:59:18 +0000 Message-ID: <20260311115910.564481-6-djordje.todorovic@htecgroup.com> References: <20260311115910.564481-1-djordje.todorovic@htecgroup.com> In-Reply-To: <20260311115910.564481-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_|DU0PR09MB6069:EE_ x-ms-office365-filtering-correlation-id: b8126018-d71b-4082-138c-08de7f65a0ae x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|376014|366016|1800799024|38070700021|18002099003|22082099003|56012099003; x-microsoft-antispam-message-info: GE9Jwvtntlz7xOaEGrKSoHUI0kkZOYaReS6PiXCCv6qXjBA9tvCzSYqvxkVedJAdU75EyjZpoR52rwSsxrodRhSw+M8/cO7YD26XrjhG0g8KCd1sGtW4y+PSZSqfkyYb3C+6Ugvc197gPTQjTqEcNJb5D/pZrBKT9u8HH93fhx/C4WXLmjpyDgoyyPEDnSMoisinDVNaM2Y/PYXLEaXlnnZh/Smbu3pyPNodPH9xhtGqVhLCR+YV51VZ0T+jDkFrGxhQYERzylkcryDOr7SdP7lraZuZGZE3s9xMcqy7p4xfZokU0Nwo7/fwCPbKY7UwpAnUXnXCWgU3A/1Y6BS5iNaIq4bpWMe+YpgtCYoUruZ9Vjktn4wM3dxtp6qV+2M3K2r017p5nwgHZv/Nx25kg4ApZfxn80Hfd0oxBYJfrMZajjyog/o5Jdp/u+arxJT9U2lF6sStP6ghYlS51Bork/uXj2hNSsoVpIbMfH63gQOBmhIW76x+bvY/YMghHz+EvlbSQ59V+HcO6RNKqtfGn2633Qy96WCGsoRCUNKAJMqXtX4AztS5Pvvj5p6XP+/FGJcS17hQgU6NWxkNfIgYZASKaS9aJlMTnivQvJ938aoTwk4OZ2dbKbcap8RibPQ6ImKJTakhVitgTakEhrM8QG4EL+9zU9G2ZOc8D4Dw8VVK43yH+QyNFePNVfLSahFZjbh53dO8iG+ryl5b7f31DkxTSzc4UyLLstRh7CP8BlCFPnbN0uxJAyIaMkzWdvRmkHvFR3aK2Jk/jJ+mAsbjD5oA94/y06GqSGS61anMctg= 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)(376014)(366016)(1800799024)(38070700021)(18002099003)(22082099003)(56012099003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?H7NfKrsu8DTtJY4Seh0lKQhWdX32SMG63Synyb/RaaISX6gW+J1ZZPz8I1?= =?iso-8859-1?Q?hJFVctnCQmEWhuky1MFgC5IzFwH3Q3VyNXEGJRUqE7a6Ro+2OSbBnFvM14?= =?iso-8859-1?Q?+NLPuibZXq5nravJXuO6yRvlUb1JReXzkJ1SxyBq5w/gpZzDC4f3uqT2ij?= =?iso-8859-1?Q?p01Go3jigsrGXeoRT+56qeAKQkTlDyCruNoooHNZmfvLAbYGjbaQIR/yB3?= =?iso-8859-1?Q?UVMH80Z0DPClWhfIOdEyiSagyJ6G65nIxuGJtsTxdiyyGdKjta0OGvm+Du?= =?iso-8859-1?Q?RMBLR7fXDlBaM4FkUeIye7FP7sYPyGsOCoqQHL37KGIA6skJLA5hzuXDWb?= =?iso-8859-1?Q?TK0ekf6HJfIXu2CcqAnjrbT0TlyzbeWNYJoujgLCnHqq8GnHYclydXv/Rn?= =?iso-8859-1?Q?tORWMgSCZWLcA5WIkPTemXdtirEUMHgR7tdI5B8UanzmFB/9XnTOdui+ip?= =?iso-8859-1?Q?Ee2z/biV2E46a49q2rCvuyb7trf9TGNlrLW2w5Vc2nzv62DOTH1L6wZ+Ww?= =?iso-8859-1?Q?DZ0Tx4Dgyr7Clu9TwgwCbtlgOwQ9H+EAMSlb8rxddYFkvoyL7QNxEEJMg+?= =?iso-8859-1?Q?LOf4bjltZErRISw2TkHTmYIvW5Jt2NVI3/OSmp+BXsgzuPaq6ainpo/BDb?= =?iso-8859-1?Q?6Z8OEEFCWvI12ETmhOPYNbMszqW7XY61UsG2grll3Qfdv7voJsQ0ZMQ+kK?= =?iso-8859-1?Q?u3prCY3fkQcScwuYESjk3vjr08nymte/Iu8fi4kwmjjbPAAbu0denV7vAG?= =?iso-8859-1?Q?cLeUXU82UX+Z+pyNxtkjaz7m36G4VY3myQ0GHp5wQRUSN55KOFl1l5qsjt?= =?iso-8859-1?Q?9h06mbEV0bLrUb/XyTgDTvGniMbr2v5rfEUJP5WA2EvjLADM1rjY9jqgBv?= =?iso-8859-1?Q?BFZLPYE2/3z61/eGVDKew98IEaJU1URIR0BpTRCwELCXoN9pJ5kWbiW1aD?= =?iso-8859-1?Q?pGguitGUqsr5FdtRgyty6D+Q1FSBzfV0tAqhEmMf22gC/YQzL9jcqkHTVx?= =?iso-8859-1?Q?wZI7g7DAdgFpmOXKD2b+/ReND63AOuWCi6c923eB87+i88EjklYYyFIcN/?= =?iso-8859-1?Q?EbvX14Jm1emyggwEW0v3Y/sUULQKN+m1ARhvIFoqf9E6pS1lFIaV5IlZpc?= =?iso-8859-1?Q?AOKgk8lmegWsdaSgXrk2WRT3jS68OdLOY2uJ5IVW79+mjT9RhFXFgnyInQ?= =?iso-8859-1?Q?7emTjwBfLMmi6E4ezpMettXRcnj71G9mQMksV0fdWb4jhEhCycnGxCSanT?= =?iso-8859-1?Q?8incrkvvVtbDtVDB/ws9QK/xYJk5kMkpUjJfv6JzL1tS3blygiJ7uh1eci?= =?iso-8859-1?Q?TekxilCrJA1n2Owd3OMW0mbYnv+/FOMXwrS/vxfofx7vIWhnSqpga1Okhu?= =?iso-8859-1?Q?647jOljtAFoPV9hDKB7zleV91gcFn8YeVbDH0ttet/ht09DxtRaNSLe0EE?= =?iso-8859-1?Q?Ad2Njd3nFUAYCMcfSPcAnL2OVdWK4jH+5Mw9jVYFmZDkmfjV9m1CZywoWX?= =?iso-8859-1?Q?JminipUIZJNpTv268GH0glOMfkuq56hWrFLsl/2itUvp5LWpCHx2EAp/0P?= =?iso-8859-1?Q?D0AQhEuMBlhtDh06x7LlUmNiutQwkehdeozXe4m4w5NO7wp/pTdlYCSj6s?= =?iso-8859-1?Q?9n0Caxca7k2s0xHenv5t1NFpPzzu4WHWmqdgBP0dd+9KMSHy3s0TFl9dP7?= =?iso-8859-1?Q?b2rQlO0KNUDOXXj6lnBFb5dEFuOpXG7dKzncQ3wQeISeUSpt/c6AwYIKYD?= =?iso-8859-1?Q?H+Cc988oswJtcvBiWW5Rqkn+v8xHKx6swYEqYQgOA0zlT3fO+jfM5vjKvn?= =?iso-8859-1?Q?sim9NzY3mZlgOmiFxmRkkQVI7oXecYSa0A1smrGYgTJ3197fl3S1?= 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: b8126018-d71b-4082-138c-08de7f65a0ae X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Mar 2026 11:59:18.6725 (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: a2RRY+nIwQrtPfPkd+v69pglh+xk5TuxUdzy8rVgZz73jezqN+/ZYBkmOsgJmZ6zUtjK5GtKo6vHn/Z/lSEAWxI471J/ytFVj7Ty48jmI24= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR09MB6069 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:c200::1; envelope-from=Djordje.Todorovic@htecgroup.com; helo=DB3PR0202CU003.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_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: 1773230496280154100 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. --- target/riscv/cpu.h | 24 ++++++++++++++++++++++++ target/riscv/op_helper.c | 9 +-------- target/riscv/tcg/tcg-cpu.c | 9 ++++++++- target/riscv/translate.c | 12 ++++-------- 4 files changed, 37 insertions(+), 17 deletions(-) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index 35d1f6362c..c644462dfa 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 @@ -729,6 +735,24 @@ static inline int cpu_address_mode(CPURISCVState *env) return mode; } =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) +{ + 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(); + } +} + static inline RISCVMXL cpu_get_xl(CPURISCVState *env, target_ulong mode) { RISCVMXL xl =3D env->misa_mxl; diff --git a/target/riscv/op_helper.c b/target/riscv/op_helper.c index 6ccc127c30..18f7773a38 100644 --- a/target/riscv/op_helper.c +++ b/target/riscv/op_helper.c @@ -31,14 +31,7 @@ #ifndef CONFIG_USER_ONLY 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_TE; + return riscv_cpu_data_is_big_endian(env) ? MO_BE : MO_LE; } #endif =20 diff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg-cpu.c index 988b2d905f..e0f8fa2734 100644 --- a/target/riscv/tcg/tcg-cpu.c +++ b/target/riscv/tcg/tcg-cpu.c @@ -189,10 +189,17 @@ 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; +#ifndef CONFIG_USER_ONLY + if (riscv_cpu_data_is_big_endian(env)) { + cs_base |=3D TB_CSBASE_BIG_ENDIAN; + } +#endif + 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 413911f7f9..d7f1f8e466 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 */ + bool big_endian; } 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_TE; + return ctx->big_endian ? MO_BE : MO_LE; } =20 #ifdef TARGET_RISCV32 @@ -1346,6 +1341,7 @@ 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->big_endian =3D ctx->base.tb->cs_base & TB_CSBASE_BIG_ENDIAN; } =20 static void riscv_tr_tb_start(DisasContextBase *db, CPUState *cpu) --=20 2.34.1 From nobody Tue Apr 7 22:05:03 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=1773230508; cv=pass; d=zohomail.com; s=zohoarc; b=aib/2VWCzqgS2lCs/XOz/MNG9LqAg3+eovC3Oj0vRNKEjTDWznN6UHNcVuVH46OnKibKD5KN9n7o3BqjDB6daiAwrYnll5IlRtkrvdShTStWxJvWjPaRg/ioTZ3KjOON+6mKwS2eJASTQxUBo8pq3vgdvrqIR2henoit81xfC+0= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773230508; 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=obg22XJW8rFs/l+JFsffm5A0qb9DwXngOOCrpt6CGgU=; b=afnDXLjcttVox+DF96Zg+BbUk+l8J5Nna5b5E/hfBcwsync75O6A2RDPZ3sDQaBT0+7pYkxVq1/Sj9nyR50B6dfkw/HcFR5+GP+L6bCBxtYavL7qqtGWbWSAlcKQ3WlR2tpPNu5Uol5nXu3lFHxF/Pbs833zccxS/Gn1G8LAjo4= 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 1773230508851606.7394869750134; Wed, 11 Mar 2026 05:01:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0IEL-0000Q5-UQ; Wed, 11 Mar 2026 08:00: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 1w0IE0-0008K2-W9; Wed, 11 Mar 2026 07:59:43 -0400 Received: from mail-westeuropeazlp170110003.outbound.protection.outlook.com ([2a01:111:f403:c201::3] helo=AS8PR04CU009.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 1w0IDu-0004dU-Po; Wed, 11 Mar 2026 07:59:37 -0400 Received: from GV2PR09MB8755.eurprd09.prod.outlook.com (2603:10a6:150:358::6) by DU0PR09MB6069.eurprd09.prod.outlook.com (2603:10a6:10:407::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.25; Wed, 11 Mar 2026 11:59:20 +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.9700.010; Wed, 11 Mar 2026 11:59:20 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HfL3iuOeOrpyVh6RAITO/66Nocmj57I0GAC1+bUFRHwu59g1cZ4da2JwysstAj0JR/aQqQM1h5L4BsjiroSqnVAbqotdaIGUYN7r1dcdiUEeH+lq89vObQ/QKkzAJiMolivuFa+gJ5K+9D5dB/kMkm98D7IrGwfgxnSq2MZ6TojMSWvOs+fBTtY9T09HhUlv+Dt3RN+ApbAxosoK2Ni/Z/hQCWdy8CS1O2911Us1Od6dcc5/XSRE6QvcXYifx8X5WfeoouwuaVZDjR+uechhKKiNDokVBadkA+9f9PfM7Jh5qytpmR4Npvd+fpeOaFK1+ebDeLLpnxg8r2KR/Skhnw== 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=obg22XJW8rFs/l+JFsffm5A0qb9DwXngOOCrpt6CGgU=; b=eyE7+8/gFFc+fQGMORmIOlpQR/kiHEFDiAS8anK+Vpzszl/+4C0+jaSsFabjSRNYDGjhhOBkR9no6molVBIEcTJ09MPZgrrgvn8sQy5nGS/VStPHF0blKiDt3TcK2S/9rZ+OwyHmiRFeQZ/adRxg2fPVxcK4vbKN8CTdioZgpNscf8yb0Nuydg8avCdPoHxx4i11RqAU4+bVi2SZKRB8Y8ymIKLauizM0E5tqpNyXF8QIreCKBAUN0bT1wEodc0Qfe6/xlydikorcn4xEFf96s426MD10+hsXFrpvQ02HZfA9Zs2Vj8v2oFWAOTGRt3qVEYhPlqBF0YeIShLmNnZ4w== 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=obg22XJW8rFs/l+JFsffm5A0qb9DwXngOOCrpt6CGgU=; b=HtMdM8sf2jQMe+M4j1r00EmWmqc0HGLnIWSrGtn9oYWd7H0GVAdqmJtpMjDo1bAZMw0HNx1+KGaEWnbzDkd4+jVwX5qF8le1UHaueAES8EmFh7whgrA6b4584MleSyZVIszsqtFJ9nBUPtXrlRXOPquvZSvzcusqBrrQ+fmlHKRRvRRFstP2qR9P8WuaSwBWru2V4DrDxG72U1M7i3I9V5iS6rTrXT13rheIoBCubXjpngxEAFLNt1xb1+89+K6RfL63qk9kXrG9yTi8qqEuvx74GhY5I3EcpYTxQ8+Dnp4ktCnNarTgFQere5bM7nRTibR5eZFjc9jopjEKHlyA/Q== 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 v3 6/9] hw/riscv: Make boot code endianness-aware at runtime Thread-Topic: [PATCH v3 6/9] hw/riscv: Make boot code endianness-aware at runtime Thread-Index: AQHcsU59cwikxk0gFkGPIH+ONT2gVQ== Date: Wed, 11 Mar 2026 11:59:19 +0000 Message-ID: <20260311115910.564481-7-djordje.todorovic@htecgroup.com> References: <20260311115910.564481-1-djordje.todorovic@htecgroup.com> In-Reply-To: <20260311115910.564481-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_|DU0PR09MB6069:EE_ x-ms-office365-filtering-correlation-id: ae473d2c-a68f-40eb-d299-08de7f65a0de x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|376014|366016|1800799024|38070700021|18002099003|22082099003|56012099003; x-microsoft-antispam-message-info: OOd40125Azwv6/0QhwUQQvhB/d/6HdaARoDVV8YJHtcOYMLEtRnQz6WWMfYkZ4Yllp2vVUsTKhh1iS96Jt9rUlgo/zGmtGH8heYsdBSB08mVNBZCc0hQSeATI5moV6xzq9t3WPh3swnCzF3FVGvZa0vvnkh3khLGwslO2P2OsF+slPjQbrJN1XajeekXVYsgWE8xxItgvitz35viGZsLMmv7yaHsJuJ4l8U1qI9UIFJUQQQXBOSoZUocLTDUwPl089pFjEU8OJLgPT3/cfn0GrDgobUD2aU4cMnbRUb0osnYBpjlg3E4bfzuzYX/DZPnOZyahzvYiF5PvxTehMJAmz6VWsx9N/TLsNB6sd8Bgvcq+Emo0CQP2cayr9QTG1WofT3XAj1P7ET/T3BRX1UVWmCUSVhrZJ1g4OgQekWfwh3Wpaxg//WM/tL5dz0tR/j/wOo0A7jKD7psoeEJlJ0CVS5Ihmwa2rh+l1g2mmtST0y8cz32CYlsRbRRJRvIrBxKT0VIEeg+ZQAEtJXakJz3krxXN7EirEXtEllebdhyOp8iyZkgexdTxeYq1cB9qTKpQlr0ZAjCF7F9vkdbbn+PoP8QiYEBzWMvHhQFITnoIkbqP42RqDKiEAe0BeBj2i/J4jiGdMBUAOsazHXsOSpQQIKUoE38NgFoDeAvpCXoyyXBKL1W+xdc4621N+s0d9fKKPwV9nJ5hpzKSUOVEI08rJwxCimYpSUfVka1SN1K2W/lKev9tiM9PfjXYK3WDyyvTmqDKtcDtQ93+jHk59wzfXLb6ya7538MGt6IpeFKC48= 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)(376014)(366016)(1800799024)(38070700021)(18002099003)(22082099003)(56012099003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?m7+FlY4nfCeKJ5ymJgeJIcl2q95NhRREApqRrYQFc7JWM0Hpg0b5Ker72r?= =?iso-8859-1?Q?XIcItYkA13IYch2QozwoinnGKwBWSU0UqemjJtQU3rZyf6k74pCNCTJAgB?= =?iso-8859-1?Q?D3YsG16bLO4oZwEXXlZCQqocQlgyM7bsR2XkZ6xLdwHtyK14gC7uHBF0HK?= =?iso-8859-1?Q?e3LOLwKF3yS3DjZN+CplJgBtCc4v17OcJJkGfoWNbLZIVdVSHIpg/PsO+v?= =?iso-8859-1?Q?QnQhqAij0jcDCV+OQPfPZEv8ktcfIIhCGhwJIkZacFfq8NIaPSV6WylOF0?= =?iso-8859-1?Q?y18rQu7giy9xyXCnf4rdYxwsUjOR82EN42G/gJgRNvJmHHEcO2pYGj5aNP?= =?iso-8859-1?Q?2bCjJ2+kTc1Esuo10gIEfYaDu56xeukDn54M/9nkGXU6qcxlZX7uKx0pRE?= =?iso-8859-1?Q?eT8vvtekBXsM1mSPFrHSDX0Yoccml2YfY7yBzEv5FV6LzN05O/nsyt8DiL?= =?iso-8859-1?Q?wMfXav/V+qbWeSwwP827lnFDapUKazu+8kg/cIxwFBWkfwtXCSRqUxxAyN?= =?iso-8859-1?Q?5ms51002rVMUzkNi/S2j4r2PfxIAl31RjewZ1GUNFZVmWwraTPE4nevY1J?= =?iso-8859-1?Q?P9DfiwjDDxiPlyKKGpKRLihYP1fpyW26D6O28RbdnW6YC7IExGf0aW6H3C?= =?iso-8859-1?Q?84KzFWdmJP0rYbLY0mXo7AYlx5Bcc8gnd9YJj96vb76EsLPr8lFjS15wd+?= =?iso-8859-1?Q?sft16Jk1ngPXseOv1QMzk9srwsOj/W8k/JAaEDvXZIvZN8cY49tH3I/sbb?= =?iso-8859-1?Q?maXfJ/dK72k4l/rdSD/y5BhUP85YRYK1NXYyVZzwvD6vJMh5kSjo+8OHjN?= =?iso-8859-1?Q?SFeJ/CZSvCH3132M4fyvKSV6bEm18n2qLWnr+9kv0FJUg8SX4JFHoWcKSN?= =?iso-8859-1?Q?JjYSftGSgZiECJ4Y5sTEBDMq/cRafbvJ6l5YFvfvOxAtSAtn2ZzemYswOU?= =?iso-8859-1?Q?IcYoKnWtWJxTyjDkQF9ERUpFSDjbPxxOMrAFmqMhG6j6he8KXhJVb05IJn?= =?iso-8859-1?Q?nevgjLIudtm5mgZQZo+SBVezllFDyCHqaPHOsTq/8q5ybWrfeNUISrI8n9?= =?iso-8859-1?Q?9pCVaTgB4O/bVsrkX1fWlTl/HZnUrk4YWrBFsieuzJg81eQ/MdA+BT6Y4d?= =?iso-8859-1?Q?uXiw2/vSfzGwWDPPTYmAQmoOkEG8PlXhSRh75ypXDpcSK/+Z5xE0HeRf5l?= =?iso-8859-1?Q?pjmIKaAue8jjwuTh+Mc2blGZxJOV+9SISOj9aeonMd8vqS7ysmrktOBvW9?= =?iso-8859-1?Q?wPouQKR0kmC855BXqpD5Xcn60PHaFe2fV/LjMJOTo3j8FZcy9vJXk2ZEhV?= =?iso-8859-1?Q?KbNh1HXlxV2dpGSAqijx6U+LrmgHTmVO67yTPyZe4LcK6j+aKjuQyRFWM7?= =?iso-8859-1?Q?N0lzOXUH+G9ObLktCokVjphgxDDaFiFJqcSixFHGLpXSwfZ224q/+9YRWn?= =?iso-8859-1?Q?0Z7VeCUDY8Vd/Aqn+DwDgsJsiA6ywYtEPUIk22uJcudBd0iHFfMhmHNvoK?= =?iso-8859-1?Q?nQi/As51h+B6orWgLqdsbGFvE3362bVPinFWqA65PU63NT2CAfqQa7Mgty?= =?iso-8859-1?Q?iJhDtG5g5VU8phfcU08ucv4+F01niXhXrZLjsJ4pptwij5VQVdYWnEBi7b?= =?iso-8859-1?Q?JI+2WeTaHXBYttp2PrsuKGqfO93wWsK4omF1Xfl11gCD8UyaH+dp8FD8Cy?= =?iso-8859-1?Q?dDmCohmZFsIjMZI74srsGmUinQrS5KzgM2HkOQz20bdUZ5NCaSn6Gn0spT?= =?iso-8859-1?Q?qRHzvm8bTNinuwznAZTzDQYVn8VRkcd2zMWB8bPANMnywPGYyzFVPrMyYR?= =?iso-8859-1?Q?8sfHi1GURlWHa4lpqZY9HPgItJp5sy3EkwMrCTVCpBvkt1B7liq3?= 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: ae473d2c-a68f-40eb-d299-08de7f65a0de X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Mar 2026 11:59:19.3202 (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: 8CmSKEk3Q2VUdV6oj+3ZbNetAIfxqKceqmXL5VNlV0YqhGHLeYhrekkHLMdZyBplyJPSEP7QOkfkUDI38JsA2JwCNqQkRC81QnAekMfDFkE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR09MB6069 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:c201::3; envelope-from=Djordje.Todorovic@htecgroup.com; helo=AS8PR04CU009.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_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: 1773230510639154100 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. --- hw/riscv/boot.c | 68 +++++++++++++++++++++++++++++++++-------- include/hw/riscv/boot.h | 2 ++ 2 files changed, 58 insertions(+), 12 deletions(-) diff --git a/hw/riscv/boot.c b/hw/riscv/boot.c index e5490beda0..e9a049d2ba 100644 --- a/hw/riscv/boot.c +++ b/hw/riscv/boot.c @@ -40,6 +40,11 @@ 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; +} + /* * Return the per-socket PLIC hart topology configuration string * (caller must free with g_free()) @@ -72,6 +77,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 +253,10 @@ 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, + info->is_big_endian ? ELFDATA2MSB + : ELFDATA2LSB, + EM_RISCV, 1, 0, NULL, true, sym_cb); if (kernel_size > 0) { info->kernel_size =3D kernel_size; goto out; @@ -391,21 +399,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 +493,35 @@ 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. For 64-bit big-endian, the high/low word order within + * each dword must also be swapped since LD interprets bytes as BE. + */ + if (riscv_is_big_endian(harts)) { + if (!riscv_is_32bit(harts)) { + uint32_t tmp; + tmp =3D reset_vec[6]; + reset_vec[6] =3D cpu_to_be32(reset_vec[7]); + reset_vec[7] =3D cpu_to_be32(tmp); + tmp =3D reset_vec[8]; + reset_vec[8] =3D cpu_to_be32(reset_vec[9]); + reset_vec[9] =3D cpu_to_be32(tmp); + } else { + for (i =3D 6; i < ARRAY_SIZE(reset_vec); i++) { + reset_vec[i] =3D cpu_to_be32(reset_vec[i]); + } + } + } else { + for (i =3D 6; i < ARRAY_SIZE(reset_vec); i++) { + reset_vec[i] =3D cpu_to_le32(reset_vec[i]); + } + } 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:03 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=1773230501; cv=pass; d=zohomail.com; s=zohoarc; b=ZvH54mvopL+ef8lHn93LUvrYvDIa07A9zkgWav29BoFVTxVZEy85v82pH7u65fzB8TOuFkoWEaTY5yUwt6AO1x7ePlBu0bxTj5uTWP9bmGNdfdYFIWTxL6lsIXbcPj2OO6d0ExAePHxE334drj4/xmWzLc5jLnpTrRxQa+uRles= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773230501; 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=6n6E2MSxiqkKsSp7HrCz7LjmyI+FmXyYjxobjKU8SxI=; b=WGHzomyf+vnO+rR/9KN/YxktZi8+VBAhBElBIkzMBLcS7JzbPqyMbDZgisAvmoZOLnPWV+gsM3gS4c8hrGqcqjd6DqMNgZOPw9X1851A/hrf+c8F22fb7NDbuGL/OF6Rg4lNqCPrTj9wGW9NvE6JALdR8QCtMuzUZEofem+2lpo= 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 1773230501565429.2366028256687; Wed, 11 Mar 2026 05:01:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0IEI-0000I8-2C; Wed, 11 Mar 2026 07:59:58 -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 1w0IDw-0008Gl-95; Wed, 11 Mar 2026 07:59:40 -0400 Received: from mail-northeuropeazlp170100001.outbound.protection.outlook.com ([2a01:111:f403:c200::1] helo=DB3PR0202CU003.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 1w0IDu-0004do-Oa; Wed, 11 Mar 2026 07:59:36 -0400 Received: from GV2PR09MB8755.eurprd09.prod.outlook.com (2603:10a6:150:358::6) by DU0PR09MB6069.eurprd09.prod.outlook.com (2603:10a6:10:407::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.25; Wed, 11 Mar 2026 11:59:20 +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.9700.010; Wed, 11 Mar 2026 11:59:20 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=C9kQQi2vIaIU9IIy8cHIs8pbrEjZkv/0CfFfkDcKdK8iK6de0lwoKLC7ljyPoTmWttQWJ+xYDrz13Tvsds5LINYuMOIU2QYX//e8/gbmboiS8U61WjsjnaITXndrsm67c84kYKnGMulrCXFaMZ0wp/fQ1q+JLI7C4Su8jBESs5m63NdbFfYto+yBuvGfsQRUab5i4S7VwdzVNSEzxnUa68VOHV2Mj2XxrXmYXh+3MoJQfiYA5GshAgpmCgpw3VLDzwU7DByPeSN0nOY7QncSyI9h+dKNOV0x+966SgrkYIEatom7qTO0iMaoO9i1GNIN2ma0jIFaYvri/X9si9bNzg== 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=6n6E2MSxiqkKsSp7HrCz7LjmyI+FmXyYjxobjKU8SxI=; b=lBfbK8afOV/DMNfGG08NHTthpTGAKXbufG1a1DSYnyJ88ARYH8r5xxQhlks9sOgzm6X2TESjiXY8bxDDfmf6mzgzHpb82CC4LivMN301bklQwkLY1Hlj7NuYLjIWHVQ8nc/Z+iP1BgHZgLDNmJQCXdHq5Mf1OX/y/vH4DXvkDTderfUfkg9UEY6UMElBbcjxCpRXPoR8N6yJ1IjavWzZKDOfSqtFC/CYShBnm83Zqzp8Aj2bEJf1fd/3bOYiaAsTOtpBQ/lDqUPpl1gBQKoJD7aV5Iit+pmZ8Nuh8oJxc3jYWrR3Q1ubfTufcG2hZHv52gWHXxOSfGxy9sjyBkecTA== 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=6n6E2MSxiqkKsSp7HrCz7LjmyI+FmXyYjxobjKU8SxI=; b=KeWq12Z5N/DXsGZLmzNcw7/9kFTfA1TcRvb8ae/CMH8pIYM8zOZ59RZ2kZ7FUCGLjYKOX8HfhfHRUO1C9IlKLwQRLy9fOhyrPB3m7Z9ZqEwRURjf5gp9TBy0WnGAT52ErR1ztWbtJFfhdemlwRlPXqcwx+CQLc8W52KNrcC0Y6muu9QsPLRAtoiql1gsN98YoFnOdkBiIbVzFLbvzI7f3h8Tr/edgJGg1Mf2G4zZsunjq3tRZq29ZIWOaMFcq8VeO5G34EIzQUjUNmzI/fMM4JKA/FXVGnZK/w1NLQI4x2WydwthcCzRONqhqt0WJTh5n+84TVMoTL2EJWEKPqvnzA== 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 v3 7/9] target/riscv: Fix page table walk endianness for big-endian harts Thread-Topic: [PATCH v3 7/9] target/riscv: Fix page table walk endianness for big-endian harts Thread-Index: AQHcsU5+8M7u1FBfEUudHg0nX57WTQ== Date: Wed, 11 Mar 2026 11:59:19 +0000 Message-ID: <20260311115910.564481-8-djordje.todorovic@htecgroup.com> References: <20260311115910.564481-1-djordje.todorovic@htecgroup.com> In-Reply-To: <20260311115910.564481-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_|DU0PR09MB6069:EE_ x-ms-office365-filtering-correlation-id: a5920a16-efb7-4059-9dba-08de7f65a117 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|376014|366016|1800799024|38070700021|18002099003|22082099003|56012099003; x-microsoft-antispam-message-info: LY7emsi9f4mp1Q85MyMdGxXcPVlXT5glqn0O4D78A2/31hcfKeCpNJwIjp8ji6RyOy7dBzllIkI0Vf7m1R3dLIcipNvK74iNhKDfS5oUAFGfZZFHlcLIkKV2SvjDtR7g42eDBkqBsAPF+eHLSaopfcyFjN9hzbytYek/T7KnqRXnkYFfr68/4se/WW8tqGgyMm75q7Ags/VpNgtGId3b8FmBCJFWNDYanjsZYqC4WynZx2Q8g+/674C3sxIGyDBx3noxSJUU28jKadmJs3bQy5Ug10tsspzkfWJBsqOYnWrqx1dsQOrXv1/o1dAmTcg3F7nMdr0Y4zo//4gA3d6g539B/7dwk4mV+w1wVYX+/vlwWN8CaMTohx94411Zd92OKTrVMcNv/R/Uhp6cLfK96ie0RS48ckMVOpz31kvUwF0odNVXRaG7Os22YBNwm8JJpQP+Y242RLiVW2vL4TDkouQK7rXPLbCbZyT/N0+Nuc5YBsoNhhkUImJ9zMJ7Wqi/w7cyiv//snJnqeR/Syzg05VHT1vfiV4XbpdrFXpeaPmENf+F8/5XnyQG6Cf6yePVoAcikSQVdAw3+jm755NPh8pmOyyyFvpXWNQBEYlhbwY1QdrzErME1+Kp1xhbwFMwZ/9jjP88kVaKjTn5dgFkwjJwCzgwLXAzk+XcW1tEtLkBsl98UFt7DZvJs45/tUyEkWDAAJNQMP2ksiLG3zdLQG483UOLbn0eu7wysFflfEwRDVz5kiJMy+MW4S6lC7hjIFPa4pksxea+eShVDWICanPwGFVUfgnD2nVbkU0WhPo= 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)(376014)(366016)(1800799024)(38070700021)(18002099003)(22082099003)(56012099003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?yN483l09jZvegKA4fP0nHFximm5/tTPhs6q5jeXfUM0QBl5p1voQGPMXHe?= =?iso-8859-1?Q?7OwsvulZAzeZ3t6UegcEZT+mjTgcYpIw3h1RpuVqT92VjzDaGfjZyeCAeJ?= =?iso-8859-1?Q?mvQ8dNAen78Uz0mQ+ymLAGziy95yYG8UD+hINYm8hBJ7LZq7FYpZOS+hge?= =?iso-8859-1?Q?K2ZQyyncQipUws4JsC5K5byYwUYk8zsaQQCTRpkmydxY/JzyLXLMNRJNZQ?= =?iso-8859-1?Q?ZHdFRCugbiOaHBHGQ1U5ykAhv9VsZismGwjDlQ3EObo+h2nwhIjgBY6PxT?= =?iso-8859-1?Q?brEXpFGyJNM19CS/R7Ycx1wySCJeHH7hlWJ2c5z1CygkyvCXhRvDsJdIck?= =?iso-8859-1?Q?cB/f4TvOsNpbWAlRiKpnr1zZIaBpOq6UVBYBsS+WA9/c1pCuI6+0vn6Iua?= =?iso-8859-1?Q?pSSE2O89Oj5YIN88qkLbUoSJFN8Cs/ocoeTf2SaIfGK4ZS3chRNJO5qCsn?= =?iso-8859-1?Q?hmykdYb3K3ua384nk065FcocyYqffWnpp3hKmQpAoO3O7GGroZOCbjsIx3?= =?iso-8859-1?Q?YvAq78IpTlLMgRGyQAlHi3JL6hUuFsQ7UG4JcgzXfoaw8vGampb5yt1dmK?= =?iso-8859-1?Q?WlpSh++Zmd+StZwACOE0X42s2xQyMSRJpKvKx6+H28MfqFZjz9rmdqQFBn?= =?iso-8859-1?Q?ExNvP93rk6jXHIqMYbLM3+657PPfy3ZRieeJ7gytRHh0y3voRg1oMiIW7p?= =?iso-8859-1?Q?ndhkxqixTlTCYZsiH/PdjK9yM5lW/vYo8fGYyB1WVyg2wrz41a19Mj2cVi?= =?iso-8859-1?Q?do93kF6VDhJ3rNznIzoyFJeCHofmt4dNHmXyGKLFh0dd4tydkSbaT+W0NN?= =?iso-8859-1?Q?YgEWkWeQOkghvQtkY101UCPXcTy7i/j7kakkHtFwClUUq5O2+Q+tZU6x1o?= =?iso-8859-1?Q?1cOWC6DrDZX6wja4W1X0Q0umliOcLW3Jyl3fpHnO3ololNVNkfT/Xhkj3T?= =?iso-8859-1?Q?GheCwoieDmH+lv2WA53ccprUd5fqv/hcwdsnARJDn6AtDCAqcePxGzCrXR?= =?iso-8859-1?Q?OVk9LItoWe4Z3o5SB27JJZ97xoJ+pYbdFKOVs0WlVGJFYA6LlptLOdfzME?= =?iso-8859-1?Q?BviQxkhHx895zZoq5HK6nmY0nzPWIyIcHGFU5t8e9tYvA4APeq+Ueavfq4?= =?iso-8859-1?Q?OMilycIvEHVderEcXw+Bkuy1810U1KEIYTRpM7Wu9NhJI4QHJrlPyS1yFj?= =?iso-8859-1?Q?SYG7RXiVl2zX1xqIl68uAYiWX8ZqA9m+ui0ijm0bUQ3ot5/PZrhzVqRf9k?= =?iso-8859-1?Q?LnmjYZyLwjZPfCOl/ZolxTIiZbvDq1OPesDH6EsT39pdMENu1z0NcsTqhw?= =?iso-8859-1?Q?NcpIxRMjFYN5LqGlMBHOV3M5CeHgwbVHKCGENOqw0GeEScAueYvvSMV3hr?= =?iso-8859-1?Q?uc6gdotT0EsWwqj+wn3z9ptvetaWC91pNQQHNkwYpthO6PQbKpf3BFJ5o+?= =?iso-8859-1?Q?n+qRF9ejDvKiKB6+POXqQJ/n3sJe/qk6L4nH/yeQLNwc1k949aKMeWN9Re?= =?iso-8859-1?Q?oXbNeqUOmzgZr9X6WjZ3R6ghzPceUEN6Vb8V+NPJYSOXkzls8AiM6j4jDs?= =?iso-8859-1?Q?16ebJnYxywETfSGstpwLud0iGOc7iPUVA4lFM/MZgKN32gF0hQHjqbLpbL?= =?iso-8859-1?Q?G6tBhnnEi5coLHs4Dxdrrwsyy2RO6qidvv64vwiuo/ZjctBWOWwFILsE1O?= =?iso-8859-1?Q?9B4cZAajtglTSelndIJX30iw8I/DirTF5rkVv4c6t69BKmPuxCnplAnFgm?= =?iso-8859-1?Q?Vxva5almq4jPyQXAEZlQwpTGMlk8amqaXrfKvVk24czZoiU9vBE3qvXB1B?= =?iso-8859-1?Q?Vj8Ne+APYjNuUckHCpHm90dwl1BXcawOXHfKsrZCntn4aAGFGeo9?= 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: a5920a16-efb7-4059-9dba-08de7f65a117 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Mar 2026 11:59:19.6260 (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: /OkpBLNINf37aesq6T/g+Ta98VdkRDiWSfaenibtRLFp99VQ0hftB5I8ETU5/HVXCi08uaVwiwuwIE2oRXeOIlN3X+Czr/3ECqDlMZwxrs8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR09MB6069 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:c200::1; envelope-from=Djordje.Todorovic@htecgroup.com; helo=DB3PR0202CU003.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_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: 1773230504413154100 Content-Type: text/plain; charset="utf-8" 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. Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- target/riscv/cpu_helper.c | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c index dd6c861a90..052ec19b23 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(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(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) { @@ -1567,11 +1571,21 @@ static int get_physical_address(CPURISCVState *env,= hwaddr *physical, target_ulong *pte_pa =3D qemu_map_ram_ptr(mr->ram_block, addr1= ); target_ulong old_pte; 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); + if (riscv_cpu_data_is_big_endian(env)) { + old_pte =3D qatomic_cmpxchg((uint32_t *)pte_pa, cpu_to= _be32(pte), cpu_to_be32(updated_pte)); + old_pte =3D be32_to_cpu(old_pte); + } else { + old_pte =3D qatomic_cmpxchg((uint32_t *)pte_pa, cpu_to= _le32(pte), cpu_to_le32(updated_pte)); + old_pte =3D 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); + if (riscv_cpu_data_is_big_endian(env)) { + old_pte =3D qatomic_cmpxchg(pte_pa, cpu_to_be64(pte), = cpu_to_be64(updated_pte)); + old_pte =3D be64_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); + } } if (old_pte !=3D pte) { goto restart; --=20 2.34.1 From nobody Tue Apr 7 22:05:03 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=1773230472; cv=pass; d=zohomail.com; s=zohoarc; b=QunPHAdATM+7USAHWCGxoaBYlZG0qhXjei77eS60NkkFBMB6+9HikGFKLPcHAIbWgTPHD1sDhrWPHLIfUy6+iOR5HQVOqTVzSAfHsPChesQE1q0dbF5NYjTgK+NOzbrgveRpxu5qmAdpQpvLoXmPABA4qQyuQjMUKfrBGpvXfFc= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773230472; 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=Hp37qVhDQvOQIyg8rWcE4hJ0+0mSB5Qlz5n81cggFMg=; b=XR2/M6gHonWOxZ2r11ne+iIkLzJFeFXr8nVYkO3IHmaSeT0CbYu2QwYqdMrmPS7auNGGpoggFiB3K1ySIzQcEFE0zZSE9sETQwFNyr/2/5hFwaPQhbj61z96ToClEiLAyN9ZrGHpid7dAgqsy+5B/+Nw4esFfcLBzJMebifiL38= 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 1773230472428948.1853283618127; Wed, 11 Mar 2026 05:01:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0IEG-0000A5-Dm; Wed, 11 Mar 2026 07:59:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0IE2-0008KV-Je; Wed, 11 Mar 2026 07:59:44 -0400 Received: from mail-northeuropeazlp170100001.outbound.protection.outlook.com ([2a01:111:f403:c200::1] helo=DB3PR0202CU003.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 1w0IE1-0004do-1J; Wed, 11 Mar 2026 07:59:42 -0400 Received: from GV2PR09MB8755.eurprd09.prod.outlook.com (2603:10a6:150:358::6) by DU0PR09MB6069.eurprd09.prod.outlook.com (2603:10a6:10:407::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.25; Wed, 11 Mar 2026 11:59:20 +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.9700.010; Wed, 11 Mar 2026 11:59:20 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xDlA4Yi2QdGIXSIcfQSejng9XVBfpwA2hKYiNMygXweQE/O4jSYvbHeWEpozsFCWR9yW3scSEHF49c+QcVveBSVUQIlBX2X2Xm0Y/mU88JJiAW6iUUSdIe5Ju9c/T7lBOnSChHAQ8NKmmoFVCr8eqq17u74Ha48Vt1Q2XgSZiT4omSMicdnQCGumN8rFUIBo+HcCG1PXDe5USiO61LholrJGK5mwTsL+hXkjQFyHWN+GO3tQy+9sVshacCuhLEl8yVBTMmT89/yS1ADKajtRX0fCid7OhOlw9yqmQ5lod6VN1Xv9wJcrADWTb6Uzl/rWqOfJcGMnUi/2H/xYgpQKZA== 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=Hp37qVhDQvOQIyg8rWcE4hJ0+0mSB5Qlz5n81cggFMg=; b=q0bG5GNmRrkSrAMTwPocziic4QGmDbbcFz03YHq0AkdLDYZ3fxeHoFEHMzSG7Yy86dLKQaD1dxUAf5Ql2w2Kch7DF59NfLG8LBiWmDyt6eqXBuH5gFkiahKJDDyfS49snXQBZ0Ijl5WIuLk0DixyVGS+nbmTs2zahEnXx8+jxw8N0j1eMwoDRwmqTnH3YuECAn6c7iyQGj0rpJbH/jz8PMw7+2fuUhIE/MJHq5tvsmW44lEQYFi6GNL3UIw1KxcxUM30JtRZJKuJgArEx+dvU8ZNmvM18WWm11I5hBo2OZkFvm8SWa06ER30WHRB6tcspSr1Utz89mpErE9Uk6Prdg== 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=Hp37qVhDQvOQIyg8rWcE4hJ0+0mSB5Qlz5n81cggFMg=; b=QHEvXwHKi/L0Bf9w0pORj8uQJhrpr4/BJkk6oBNbxyc8IKyN3DZbe4x1QeE3jUVga2H6l+iZLKf4GxQTkKPqJBbqx1INMh2xaWGCFR0BpuyqkVbYu6Nt9TLJQ5dZtWyQXhcQHZOPSZD7qVgoZuV/jAq4qa3yhdkrAl6VtuGQFFXEIO8ly1+EWp9IPQyC4aFKrQZ6adL4+2v030SBOcXlV6+TAWaMe5PIxiwJKDVNFkT4vwmYJnDeKtz7AOzsbh1tftByieT7+FvykuyRdpgn7cty6MNUPLR0Vq0hMqVmPjw/CIH6n6+1Zt6Xf0fOxNmN+9ar4aqoSVdYD0YDllrwWQ== 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 v3 8/9] system/memory: Fix subpage endianness for big-endian targets Thread-Topic: [PATCH v3 8/9] system/memory: Fix subpage endianness for big-endian targets Thread-Index: AQHcsU5+NOPqL4wxGE+KphpT7sKvvA== Date: Wed, 11 Mar 2026 11:59:19 +0000 Message-ID: <20260311115910.564481-9-djordje.todorovic@htecgroup.com> References: <20260311115910.564481-1-djordje.todorovic@htecgroup.com> In-Reply-To: <20260311115910.564481-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_|DU0PR09MB6069:EE_ x-ms-office365-filtering-correlation-id: 308d66b9-0b89-462b-111b-08de7f65a147 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|376014|366016|1800799024|38070700021|18002099003|22082099003|56012099003; x-microsoft-antispam-message-info: kaFq3r9D7mS6V1yKVOgZTA2G4csGRg+jSOeOewKNKepT95WAABL+cZEzKvNqc46YocGk5MQcoChW5QsbGCM5CamPiW4nQLUCnLD2Aa64UbQ+Q3pwKUDcYvp4UuUzHIjBvJJpZ/V0k+zocA7H+yshInroQYAozzwjnxc46sf3wV1c3aDHJa7NuaVzkOmXC/eoqkfySgz5w/LAHrWXVOSjjMg0pqwAobbu6PhHvgS80g9EjRuRGJoOYJDn7JNJQ1R1lINpaudbO3nWvrbiR0DqAEbsEApu7qERRej6N6nMbr9y42BNl/R3RzgDXbEVK6TsnHhkLidKXEfiVqfkxcmONnEAB3aFWmssq2JEfjbCYvPA6A3wCMyqGnCT6ykK+TyAtWw7JHgfXKgZwr28phb3MKeJdhCqYsxKrYuaAnNH46LLNrj+yuECTq5Bt8oyd6dhsgKTUAT4oQ+BKDHqXbdnoEXT+/Fg1UJgOVTz8IJBwzQ9+KiElzgOgUfB2jnikTlpyrNeO8faRZcWD9upRyiLIivFRs+Drh+yByEiS1omKmuWHaDpLz6M0StiR68KxRWGd6E+92pGm5UE3dEyGwoPfyny3hcQHR8InVl2poDbAR+aHaF9VTjmkrnODZUQtXS7EnA746wayH5C6SnssLnES9VUcx+gMsOny16qNa575fG0d10H0TIPgdp7UCAfc0t4Vkoz3qdtw1uUajN+d3OmywBH5AXjNZ+NVg0CGpyFGRQKSW8cVGhmiZHLVqYcmwLSgT28LxxXL2aKK9E0s5vNzwnOaPsGufDnKn39XccxvoA= 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)(376014)(366016)(1800799024)(38070700021)(18002099003)(22082099003)(56012099003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?bP7QNdzePRin+PXVVCbvq3KB1j82JJ81GaHVNRU4QjjOVO6ugOETCW8mCE?= =?iso-8859-1?Q?U5DIJmDnGuiO4rCtTgWa2oBDRsc2zYRMnZ1/nB2M3pmU5vzcZBkYXd+cns?= =?iso-8859-1?Q?MtCTYCsEZ+BU0sFq7e0ViRzzqfPjVDnznXGe5+cXG1dvdo8+5AY0J7CNsi?= =?iso-8859-1?Q?vlq5maGlHNYkfyPtTjsofzEnPvDi7DUE972c3Rs4f8xUtfh0FZkQFyKtpy?= =?iso-8859-1?Q?je0Y68sFDgJOy9/7iG6EGYAXc3OD+WEGp2VqJ3MAEQ4sLcekczg8dsFnef?= =?iso-8859-1?Q?hr7ZMGqyuH2e8r6rXnXfhdwSs9VQ3xQDlvVqV55RxzrA9YIaW34Ts/c8UZ?= =?iso-8859-1?Q?TbYTqCNs4teLUnuTzyGlgMGgll8yTUCeFOKevkmDqU6n5AvTAdy26uodUI?= =?iso-8859-1?Q?wSH13/7yU8ZnttR6k+dcwyqzVxDKAuJweZbxtuAbaaCdqCGgO7giTVi6Ty?= =?iso-8859-1?Q?la908nsoVR4+6dW6VgO/shOLBj6g1HBkz0ZC27QFWyXdeEK1an68j++ila?= =?iso-8859-1?Q?V65K3UJW9ZZgtXW8bZZkbqnQiIwfww1NomiQZ/LsNVL9WP185GRjCzV0yp?= =?iso-8859-1?Q?s9RugZaTTYgNd8u0DAjwEXSsSUAE3mZugCRWsWMQ8h929wijpoXTbf08V9?= =?iso-8859-1?Q?6DBfYeyF7hNmX97adH4WhvjxesF1uVsXktmjflrH5AnWZpW5A155cort+x?= =?iso-8859-1?Q?DUmf3S74kNpnBMC/SrRG6BpLhwJcAuWfGTuixoNLaj6g3iBduXvEpcrXXR?= =?iso-8859-1?Q?FxicI8Ydlk2d4eAzthrzPgc0G++fI0MAG+HdPpRE+K9nzMAFi0xIzdGr5U?= =?iso-8859-1?Q?tzNDstmBaV2qSBxVhU2pARqwhvekVyObd9dO9hBYhCyNKMZndNAp4LL4Fm?= =?iso-8859-1?Q?xxiKafZ7hDhj8+d+TM3oyarY8ef7SfOzDlj1ydf82aBhGm7kRik/R3YKGk?= =?iso-8859-1?Q?gfcXhGJLxy+f/j7MEpbvofMidGurBBaBkG0HhBoCEFE7F8Sn0vo28PvQgq?= =?iso-8859-1?Q?SyvhRqOsnJFvrvi3uE8Ef6/HVibkAZmJF1Me5VffRA/nd+ptBhhjHL06pR?= =?iso-8859-1?Q?3Sv62o1NI1U9mjZLkrV/3MeiI4OS/nVDI6xdW4JpYb6XOupJnZAk/ilFPf?= =?iso-8859-1?Q?J+LQDCgbYZPfcN5qiIt+/HZCJoi8c7xtM5a5xrRtscRrGCK+Z8MajS82JI?= =?iso-8859-1?Q?X5Xvjrhw8yWuoN7SZXWRAT1H150qhC1Uj/NCkwJ0t6uCG1s38pqBcvBDxe?= =?iso-8859-1?Q?enqhv6Siqx7xwIADJiVLd9OcuHcpcYpNzI2/gGrXAMNWhn1OjGKZFcYRiF?= =?iso-8859-1?Q?a0+mIE1dNhkDBVN7Bj2ZZkdO1pxDdgfvQiZSE6FtByJ9i3PsWYQkPQ3vob?= =?iso-8859-1?Q?inI270VHIetXnqa/BSZHgqF2p5GPD6ezdVWvaEOvVDgTfp6Zq+tCmPZCIr?= =?iso-8859-1?Q?ee0UbPd3px/jHL14RZRQJI2jnxN8UW2I7JUcYcOu5N7UULdHAa9W6nwxK1?= =?iso-8859-1?Q?3CbxcaKZxSc2XaU/mZEi8FD2mKR74l+klVL8mhcySjJ2hybo5NhjHzbfdT?= =?iso-8859-1?Q?zIND7QhbBnRFlOjNf+dU9hBryaYrs/t9ASkEud5T5KU2/AUZGy4fmNijY5?= =?iso-8859-1?Q?pvziaRcVmBLk8iAtXa6UNF36ZBEG5EbwUWI/Uhhh7z6dEJ4j7Ixcraph1R?= =?iso-8859-1?Q?9PPLYSeNw3vvlk+mB+0YzLIaU02YTwP++QjNkbQaALdp6ShGWrMzSqnj1n?= =?iso-8859-1?Q?BjLWU4GfhpjVHUt0H1bgSk9L9vt5lYXLIYkYiGB023E2+iTZx3acgDNSHZ?= =?iso-8859-1?Q?fVTpgZPmQvmJuWJyeO2UZKqKf41YeNL/V9tcnd2fZq/9bIR5aJww?= 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: 308d66b9-0b89-462b-111b-08de7f65a147 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Mar 2026 11:59:19.9340 (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: T3ZE6jMwVSw7z4RBuo09HJGDTMNb2Rp1WCVN2yHUu50XOHMclIDFDu+wscaIT9j8o6ahiYiTvRkISvdw59d+50Y8p36eC6AdwfV5gGwShUw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR09MB6069 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:c200::1; envelope-from=Djordje.Todorovic@htecgroup.com; helo=DB3PR0202CU003.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_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: 1773230474291158500 Content-Type: text/plain; charset="utf-8" The subpage memory region wrapper dispatches MMIO accesses through flatview_read/write, which re-enters memory_region_dispatch_read/write on the underlying device MR. The inner dispatch uses size_memop() which strips endianness bits (effectively MO_LE), causing adjust_endianness to apply a byte-swap for DEVICE_NATIVE_ENDIAN devices on big-endian targets. The outer dispatch's adjust_endianness then sees matching endianness (MO_BE =3D=3D devend_BE) and does nothing, leaving the data incorrectly swa= pped. Fix by changing subpage_ops from DEVICE_NATIVE_ENDIAN to DEVICE_LITTLE_ENDI= AN. This matches the implicit LE semantics of size_memop() used in the inner dispatch, so the outer adjust_endianness correctly compensates with a second swap, yielding the correct net result. For little-endian targets, DEVICE_NATIVE_ENDIAN already equals LE, so this change has zero behavioral impact. --- system/physmem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/physmem.c b/system/physmem.c index 2fb0c25c93..5d917482eb 100644 --- a/system/physmem.c +++ b/system/physmem.c @@ -2929,7 +2929,7 @@ static const MemoryRegionOps subpage_ops =3D { .valid.min_access_size =3D 1, .valid.max_access_size =3D 8, .valid.accepts =3D subpage_accepts, - .endianness =3D DEVICE_NATIVE_ENDIAN, + .endianness =3D DEVICE_LITTLE_ENDIAN, }; =20 static int subpage_register(subpage_t *mmio, uint32_t start, uint32_t end, --=20 2.34.1 From nobody Tue Apr 7 22:05:03 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=1773230505; cv=pass; d=zohomail.com; s=zohoarc; b=QUEkdI0f2pDyDqZJfjQnazsn7H2ywQ6QqUtHaqdo9EOq5tLaGYZu+igScYlHG+6RGGycEmSK0xUBbS5lsM/MeQBbqJ2x23JAGJlKs2a3YXqg9zE6Wjc2HlAsBI3CMwhM0Fvnl7RnVOVoMP4OcCrXcoggmfleHHdHanQQ1BEKmps= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773230505; 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=lBzxtKLY3GASShKyHU5lxuF6BWzoJXWLEaL/nUZ9J9Y=; b=f8+k49PcKwDUlDEvU0UpTUvBMBKCMm9/YeuLnRBqks0vvBa7CdkG0VSSxkZuwi2kKjH9yY8KiGUjjYRlWgwIuLXl2EFLqrz+rhEp22Fd4WN1KRffcP/QLjtkNBNJlWvCbFU3EQSCFHcCVxJpf15rIVMga0geMYGHXJ0GWYkUMng= 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 1773230505584868.5443362059992; Wed, 11 Mar 2026 05:01:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0IEG-0000BX-Oj; Wed, 11 Mar 2026 07:59:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0IE3-0008L9-8S; Wed, 11 Mar 2026 07:59:44 -0400 Received: from mail-westeuropeazlp170110003.outbound.protection.outlook.com ([2a01:111:f403:c201::3] helo=AS8PR04CU009.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 1w0IE1-0004dU-KD; Wed, 11 Mar 2026 07:59:42 -0400 Received: from GV2PR09MB8755.eurprd09.prod.outlook.com (2603:10a6:150:358::6) by DU0PR09MB6069.eurprd09.prod.outlook.com (2603:10a6:10:407::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.25; Wed, 11 Mar 2026 11:59:21 +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.9700.010; Wed, 11 Mar 2026 11:59:21 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JcTmyxZF1KBEenljZ+SI928YL/T6kX2+Mq34ncsJtNcLL9EJZbQE/GV3TzZJuRo9CRhcWH4LH5VdTZQBDtsFYyHxdlJdjVpEYz+97r3Y+rX8u13SfLzJdzSPXf+lTQlWj1mJBPLC5eVUdwh9C1I1+rLNm8hm5lqwOJGJBigrlqGRtDwqpfrPLreJv07yHpisSGJ5LvC+9N6N1lkt0j5Ajd3A4s89eQ4tKv7zxwJ8uNLUnvynx+cRE3+VjpLS/PIuVU59IxXKF1ftzvN9j8rSse7cjiBfMGcHgHJfzfhUD+HYmQUUQDCmUe/sbuNeLxwAKj6eSyKbXFDmX5qv3ybBxg== 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=lBzxtKLY3GASShKyHU5lxuF6BWzoJXWLEaL/nUZ9J9Y=; b=tS661BHCfLz3Pvz4pEbFnzqWQqnE9Jr2zg133DGbtvTdbdjDCNdW5NrULDMLOnkaR/p18bSoYuJMeUjmEP4Beu6NGx5P1QyDDp2IHvQ9/i0cVb6TINLq6o03uKsHxTacaSuLBJ6umqAZ4Z49oK56XMdoNIDEf1Z1OeQCYF8TIubIfjCs5k+I/0gIk0cfJWsS5XAf2mePiFMQvyrhb1LKdK7e6U7nzpaWfAtdVFtUjlGB15HS3DBl7g/zR3x56OLsKW7V/xWnxIy4BsIPLqnzjhxixa9eWRzemI+FuFkiGfKX87nlLYWHg0kUKM6eXeVl/+ZqUVrnlKKoopbWU0g6mw== 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=lBzxtKLY3GASShKyHU5lxuF6BWzoJXWLEaL/nUZ9J9Y=; b=tScVI93En9Zd48RRWSAA5LL4AZiLlr1fYpSapiTXHYj6GKJ1LX/eXwhG9S98NHDDaTFoQZb2ovBRYR47UHaO5Y2IdJfuXWLsKQdS7BglyoIg0wXkQ2GfVxmvUDzg8a7YCX6lF1vlWj8dijQqaf1ahvtzvcNAieCoXCp6tm/YeLD1htqz2KSnvUmuQ2ufwP9Mz689VtnT162XNV70wKKqyHiQc+D7wuYNSDPiB2prKDrpeZ8G7KYsZjWyWLsEyZuLNZCmcH4naGcyJEpzb9XZz5eu66BaSuVrYmZJI2PUm9TnD/1jpeQ4ElKOKxwy9A5FnTIkXKhIKH5hXeiL54ByIw== 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 v3 9/9] hw/virtio: Support runtime endianness in virtio access helpers Thread-Topic: [PATCH v3 9/9] hw/virtio: Support runtime endianness in virtio access helpers Thread-Index: AQHcsU5+9voeSU0fEEuP4wmL1ve81Q== Date: Wed, 11 Mar 2026 11:59:20 +0000 Message-ID: <20260311115910.564481-10-djordje.todorovic@htecgroup.com> References: <20260311115910.564481-1-djordje.todorovic@htecgroup.com> In-Reply-To: <20260311115910.564481-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_|DU0PR09MB6069:EE_ x-ms-office365-filtering-correlation-id: 73154ff3-4558-47ed-c146-08de7f65a17e x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|376014|366016|1800799024|38070700021|18002099003|22082099003|56012099003; x-microsoft-antispam-message-info: GnKfZOlgoXcNEdzVCjQdzvmbu0YzJmt8SZ5GYzClVPus+hv7e/SBG9STZF3/PteyWgqmTgHu+CmdCku3SELl+auj8fXv0uVgrJ1wIzKOw1un3LDoLNRTqv9DTpmqG/r2GiK5QfRvnnaN9YwQLNMqYgJ1KhnR9kEjCKPP/6WFIYR3pxNGOrdLB7J7yAFrCs15BhxW4hXHMzMXK40TsTYhkmmwalbLajvtdPTEPZEs8D47pRbresUiLjOpPHtVaCzpq7DEe8yihysA7QpifiBEyfAWcwOz4lgZB17Q+i+9jZsB9Oa6QZRkMwOdMM+WxDoytMHB1bnif4l2podUOKejX47V2U9D11RjDQKe1V8WPjpW421xh6TMnJFwRNcs/H5b2mClTDS3T0eocWkWTTTACsQUgG0DCTHhWTtLdSvYxYRqVJtg1Fl9D6SJD0nyZxcfV5bhn4oicNH45eSphWHEm6UoFGz0i/1kirdljRsmA8ChQb7W/Vg+1GA5nunvgdtgmJJ1oJ8OM1fyIFHL3CCJqnT6vEZc1wA78GATHZ0xQieDlq7Gy3aIyTbSz5oQd6JGcx3HBOHb1gI5yLbSE2ZCprj6OOIXG9GpO5D6QvchRAJHhNys/sG7Yczk1Oo6d0EHPeFc2ldDk0FaoeMNMWbOy5hMn9YhSA/wpOjgc4v5kaLjyLXf7qpHyhiwnn3pMZCPkKInqNIIPAf9QDcEvEfbWH4WqZz1zdNE8Jw+u/LddyG6UcwA7Dx7mohJesvpoEq16rgXXQVFGN5owh9IKYVk/xZaLsJ9ZO2oQP0X1sQMFkY= 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)(376014)(366016)(1800799024)(38070700021)(18002099003)(22082099003)(56012099003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?+mYyoe3cdotYR8mHL+G76ObnRcU5dS8ay1Gr3SLQC3akdhYn9+u/UORdXq?= =?iso-8859-1?Q?cfsRs7V7bvvT2nVbOrwPqOCGSHLTnwjzgjCNUNVMsVimSnQVcgLsRIQa0x?= =?iso-8859-1?Q?W4n1P+UuK2kbW4sQs8CyaHSuqmeK00+rSVCh/OiW/WjrNzmqF3q4oJunSb?= =?iso-8859-1?Q?492MSLGFZPFzkYmm6DlqvMW/cCYR94LhxYbiqkrjvrk8wETe9pcrCkn2m8?= =?iso-8859-1?Q?aBHVP/hsCd36kH7+cF5m0YhYH9cDINP0+TW8HAo3p0O0+u4pBBVfPDFkU/?= =?iso-8859-1?Q?2JWrBz7tHt4xGIGOzuZBCNI0ruponhFNanfQ3O7OQhkcYYrK9wnoplkYbB?= =?iso-8859-1?Q?PYyRzxG/Yo+bZoiIWHDHov2kY3yPmTM+Wy0+AAz5UJGwtNcVJLk/BK0MU2?= =?iso-8859-1?Q?tMmFW8pK3itBMQsSewQLKEK+hu9xYvrCjbfZHg6+58XqcFnxmCRIfCtTHM?= =?iso-8859-1?Q?FP8NhVzwwjCpw811l+sQTFzC6bCmzMFuRjkY/bjspusnkVjI0SITqDQEzG?= =?iso-8859-1?Q?+aNvwmZrZb+ON5TLIgp3Qdn1pdmb6dsWzTxuhBw12aQEoQaZGO/Y92S7VM?= =?iso-8859-1?Q?Qm9o85aAcoINIBNs+wouZ9f7frJubpgOxV5Z9ngip8K9v9+N6ePy0UW5mh?= =?iso-8859-1?Q?wriqtVYDLDdGLmiiU27qeAz3d1WKeI6WlzpakyM3INPMzXnQRem0eAmiAi?= =?iso-8859-1?Q?7r3ttNmvxUfNpsf4hqqXBTlpIKtQ9HyfriYRmRixvr2bYcfPNGGpbyYS9n?= =?iso-8859-1?Q?B1Ylfd7PD6D85pZVtQdERTXJCIFpwGl4VuNYjSnA32ots3wEYeCC+CifPA?= =?iso-8859-1?Q?G2XYs3ZE8EKLvuw96hCcebJXBKPSnWpHyhBcSsaamycy2MDvasAj7Zq17T?= =?iso-8859-1?Q?7EVdajRfAx1PYO+psb+WVPPxZAcGBuTjNwwJxY4L6J4sJLd75t6xb0Zv6G?= =?iso-8859-1?Q?ep37MPVGrWIcGKrWqc5sOOkml4aoHi65BsJS9uUrylfidCoRKMfIs78vYF?= =?iso-8859-1?Q?4Baln+ishYXda7xVczN+geCQcG2sP8/0a9+kBDuT23BMKM5Galrsb08yt5?= =?iso-8859-1?Q?YtGn3y8LFvGBKOe2vkAgFtcK1uzMcS6gohhjBovbeJToxVYynKS1a5eq4Q?= =?iso-8859-1?Q?5BbYC2Zyaq1jSUFYQBmewvE/XJ509zE31C6QSTudhaBTX+QDkzpeBq6nAm?= =?iso-8859-1?Q?hhImPG45zbQTrk+DM4P+gCHNq5gF2NUXhJpqxtp2w7JXqWnlP1W3no3PON?= =?iso-8859-1?Q?fPFPOOPkXOGS+93K3GDa5ywKRUx4JVxqF/+6CrHPGrqOLjfkBkwlrLVimO?= =?iso-8859-1?Q?orZovrOjkypStVSpr+6yiISoKuDIBjYUFIMwVkgRApGSIr7zepfSV52HBV?= =?iso-8859-1?Q?tHJHR63z264qLt01c+6d8IF6K5Jb7qzwJABK6esE7+cqDD+KcW0WLzzlfJ?= =?iso-8859-1?Q?xqG4XLoc3Kslhd1GdTeB0F1BHrHM3HynKy1jYCv+c3S1c+0Nlg6UQw9JmZ?= =?iso-8859-1?Q?9GTO+enoSJfmUaRtTc/h1SnLlscNLuw6q4wktwUJr9pCy3zRbvNecE+FAr?= =?iso-8859-1?Q?cO7AIHmJnvC+K3/XHXIGbrxrloR38M0VQp7j4xIu0n4CF5OIVazPxaMtzQ?= =?iso-8859-1?Q?r6POyr09bGMqeuzeeLYDyfHCGhsycZMeZ+WRqRC1gHJeG0owW2oiTl+tIb?= =?iso-8859-1?Q?UhMSxoClDbIfsQ80Yvkf2LOWTi5mX+SiRxVk9drxlQBDXvRyyUjgKl6wqb?= =?iso-8859-1?Q?koS3JfvuAs892lCol11QcaULyY+VUloU0MHcbLToQozu2gzSytSSlS9MQ2?= =?iso-8859-1?Q?NYQBZF7HTFKxSgcUyjHvKS/fyWQKVPiIX0/fpVd/MhiS1JpVsoOQ?= 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: 73154ff3-4558-47ed-c146-08de7f65a17e X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Mar 2026 11:59:20.2730 (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: otcT1Ik50hBbvFrKLvHDLqbp92yGk6KXc+MOOKN0ma+dp4kU5El3NQpgbBcvfZxWb2VJLqt1U377KSRCwiuS2hxl3qNxJkkAdh68VUr/W7Y= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR09MB6069 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:c201::3; envelope-from=Djordje.Todorovic@htecgroup.com; helo=AS8PR04CU009.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_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: 1773230506632158500 Content-Type: text/plain; charset="utf-8" For targets compiled as little-endian but supporting runtime big-endian mode (e.g. RISC-V with big-endian=3Dtrue), virtio_access_is_big_endian() unconditionally returned false. This caused legacy virtio config space values to be stored in LE byte order even when the guest runs in BE mode, leading to byte-swapped config reads (e.g. virtio-blk block size 512 read as 131072). Use target_big_endian() in the #else branch to detect runtime endianness. For LE targets that are truly LE, target_big_endian() returns false so behavior is unchanged. For bi-endian targets running in BE mode, config values are now correctly stored in BE byte order, matching what the guest's le32_to_cpu() conversion expects. --- include/hw/virtio/virtio-access.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/include/hw/virtio/virtio-access.h b/include/hw/virtio/virtio-a= ccess.h index b58fb6ed7e..a3f1b9f5fe 100644 --- a/include/hw/virtio/virtio-access.h +++ b/include/hw/virtio/virtio-access.h @@ -20,6 +20,7 @@ #include "system/memory_cached.h" #include "hw/virtio/virtio.h" #include "hw/virtio/virtio-bus.h" +#include "qemu/target-info.h" =20 #if defined(TARGET_PPC64) || defined(TARGET_ARM) #define LEGACY_VIRTIO_IS_BIENDIAN 1 @@ -36,7 +37,10 @@ static inline bool virtio_access_is_big_endian(VirtIODev= ice *vdev) } return true; #else - return false; + if (virtio_vdev_has_feature(vdev, VIRTIO_F_VERSION_1)) { + return false; + } + return target_big_endian(); #endif } =20 --=20 2.34.1