From nobody Sun Apr 5 13:08:51 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=1774370476; cv=pass; d=zohomail.com; s=zohoarc; b=NErLPq/6IHZ7D2/8U4ICyK+KKRU6YqlRPadaFeecuAN7XyJzo3SrhrGiWaizmfLX4Maa0ulV/PdPFODRpL1cEzvXjIMK1xD1R+86odOrlqI8uT+zz+BdOM2EtT0TvbpdRPvI5HiEJ/i7kOQZgha915NT2lpUOqucqeu4x9cVsto= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774370476; 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=hHnzdsgHNf2uFkRyxnKwPC5haEbrZ9k9qd+J1Br6akA=; b=jSfiV1X9UZJSCjdC/w+TByBUBx7PWW7WK1mBnxtb8XBm07vVtCjaNDONhybNlT2JtJ0ir8vkdPZ1kdPBovuurIw1VaIbyfYfOLeVga80Zl9F6phatSxmz+CV2vVyOjGchJV2WzLgGExQ/gemjTgWWfdQkgShaGRG1EdYZZmKVH0= 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 1774370476048317.0886599288865; Tue, 24 Mar 2026 09:41:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w54o2-0003lr-T5; Tue, 24 Mar 2026 12:40:38 -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 1w54ns-0003jY-S3; Tue, 24 Mar 2026 12:40:32 -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 1w54np-0005LR-TD; Tue, 24 Mar 2026 12:40:28 -0400 Received: from GV2PR09MB8755.eurprd09.prod.outlook.com (2603:10a6:150:358::6) by DU0PR09MB6145.eurprd09.prod.outlook.com (2603:10a6:10:475::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Tue, 24 Mar 2026 16:40:15 +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.9723.030; Tue, 24 Mar 2026 16:40:15 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rW9A/8bRZrTAESTe6Wlp0HazDxvPf0SQPPPAPH5eKNu8KzDRiIIV/T8AVFFIn/GBx1wuvdGZkP6kX6i8ZeNCF4ELR+9U+88HAS4y0yE5v2srNThVwYl0tN8uKq97LdO+uIXkho56Q+Bs6cLOnNqa8TknSWPP/MUc4OHaUWOl6QvPginyImDG0GzeOeAdtuwCorJ0stCKyQN3TwvCHyDu7bZYa5tDohs4QDjnwNhfqd+NicP2pPl/WIlDJ+wRVkCfE2HZ0Zt8xalnS+KcE0FsFARjoW5zEMmL8T0sVKw2v7NjxYio1BysqQi3gLXSIVC/ruQiLUuq3qpD/npxHQJFHw== 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=hHnzdsgHNf2uFkRyxnKwPC5haEbrZ9k9qd+J1Br6akA=; b=vHGgMDu188txzsG6OHDgH1NATZLbw3erltrUJlSrb6a3syXBPaVJYIKUmvmrAacmWi5SRPF11zWqy6jJxqsU+JiE/KXdW8h+vF+HRgoojc+lL4P5+vdOglaW8ulJnsLectuE025SgKrNKYZxz9HwkwfdH+8lLgNU9IJ0uOU5KoL5Si+YVdqqa1Ybe5s9aXt278loxuWFZ9n/HIYYEsvC2fg6viMO/dYQeccqZvw8+FDEfSblNI+lpdDg43skdMxxUWLg+cYLY7uJDX5Fp5dyxtCTkKUtTZN5D3uZSBVmq9RZ3NSwqQzrLxpByR+qOTMItQmCyFa+JmVYWLWML44l3w== 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=hHnzdsgHNf2uFkRyxnKwPC5haEbrZ9k9qd+J1Br6akA=; b=Q++Pq7W5LI35ZCEENkLZ0ij2GnODqCxtwcIHlna8+sn12MwTJDiaOZK6GuGJsnEPFAK4l8N8szoNuZhElAfZarDKGv3AqEo/jno66HFJiOZW7dPffcWAbxYfOZ/mmPAVZP+yE6xZrHh+xpCCVUejJnP1jeeDQvDroQfBYKp0+j5nARqbfnZXJnYpWspJRO9q2tmxLVcVHdzsCcJx89vv4M4PzCCrHuSe74lswooAbUndxLYLrgOtTIcBLexN1yT83n9RRMomoTdQFvKUVQ+n3OyELtUKxJyfrVmOHNDdEMzb6boKbIVHlfOplT0oySQf3vfiU6ieIE0Se1urD48dNw== 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 v5 1/7] target/riscv: Add big-endian CPU property Thread-Topic: [PATCH v5 1/7] target/riscv: Add big-endian CPU property Thread-Index: AQHcu6zkB2QMaoma6Uq/22jUgSxNmQ== Date: Tue, 24 Mar 2026 16:40:15 +0000 Message-ID: <20260324164007.549397-2-djordje.todorovic@htecgroup.com> References: <20260324164007.549397-1-djordje.todorovic@htecgroup.com> In-Reply-To: <20260324164007.549397-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_|DU0PR09MB6145:EE_ x-ms-office365-filtering-correlation-id: 02679ac1-6570-4133-95a6-08de89c406f1 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|376014|366016|1800799024|38070700021|56012099003|18002099003|22082099003; x-microsoft-antispam-message-info: nPWaJaKjL8x606PsNO2cmt73KgYSL0xO2OxkldCGugUMmsL/7HhT7YV81w1wZ5CVJRH4lHyNo9/VT5GasKN2IhvWCp+p7zDJQlYxeuTXS8bGlhG3GXIa/GSAAYcBlyxfhV5RgHjjXmEI3MZIwm1z9heB1XmDs/6rzI6qbrDvgo/2DAtBMKOWZIfoVcjs6BwE0VGCs9fZk7NDq+BKXGl+6p4/XTVkUJ/kMK+wRAXLtFgetmcsg2KyRhrzU5wJHN4Dyjv8ARlDnx2j3VEcLYSsyjG1OMVyFkXbnU2XODpI2r53j3XtczTcX9a5ezvpZKbNIQvwqlGB+pODGTZb7vX3VDeDBQ6fBpicrY/7GvjpSkirnaGYtUGt6LYr9OfF52aDRm5h5tEpi0u4IBii4OUKpqllZNN6YYd2EuvjgqE7uUdjQIiKm9jRCEsVnrTOSmrgjGnAtnApHLMGz1TT1URke2B1/Q94KFoAOY5hSMFPbQs8UeMTDBajcemkgEIWygehOxqaNuNpcCV7u8qt2cYC6HemH2VgXuxl1KNAbrrGwp9rSwKJAwGC/1oM2T3fX5RUnKgaxpIZ/WI88a+uO4a2oHbNPv86OaCMo9+LJZHxEjD1rzN5Tx5Nf7TWGQdemmnWiCS//Xm/Zj6P/8ctmG90mluERSmBVzHee1AvwKrr9lFo6VgbYdrOWVvydm6cw3vBgmg0eTX0/U7p3QuZYeZvsWgoXvuI/mpKoTuHqJB1P77+eTwfJOGTukn5RwK4wXO31H7meNccfTAkMeHX/jYoLZzxDWN4IPwF2SD/dFmVE18= 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)(56012099003)(18002099003)(22082099003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?WmJhWArtBcfSmtjoNydgE82demt6Ind/eHI+yT+J8pce0lUz+Lb8EfplxU?= =?iso-8859-1?Q?mJx0tJcyCHS/f7U4KoZUhXjp1OfYgIJWvcpz0RgKvTIIPe/43uG5SrzjNP?= =?iso-8859-1?Q?iQdrJOPbhAsY08TBYwQxqPPA3rGys/uwinXNlTWjM1A2K+YLmGmn6+krEe?= =?iso-8859-1?Q?z1h7x1w3aHpQRHyp1/1gkuM5qOkbMEZgJcnFxGjP34tQJZmg/tlVrsI8xz?= =?iso-8859-1?Q?XECQljXfd7vLHVKTYHSf3GS279uigI2SrAOtJkIYpKx8eo8jWQXHSC6rWp?= =?iso-8859-1?Q?kV5/HXYnGXRZ9B2jfp7k40yzsXcZbIvsE8Ez2sHu361bhKlYgzBwu9FBD2?= =?iso-8859-1?Q?iH9jPnH0GkG04LSddn0mBOajKRC1Alcby7MtuVWWvP1PNQGvnlaMc/wEts?= =?iso-8859-1?Q?2wLp+eQPu9IcMzQTTAWHlzk1BEfE/tx0J838k8TJl/M+56qUdYlnFud7MX?= =?iso-8859-1?Q?NaHZOeP+zbIMJEumIl324i+iFIN0jcXKrNJ26EQvFD8XnwqruCJhciTz9i?= =?iso-8859-1?Q?klE/PSKUGZupUbpK0rP3OlG9zBi+vHCnqvOJzhRvmnMz2FcD+2ZCnZjetG?= =?iso-8859-1?Q?3UeKECkSvz3ret4iCRgBtwV0QL6eG4xfaf8czAGU0LZ/D/OSNdmjvHAba5?= =?iso-8859-1?Q?+Q2ykJtyG+bkb0sj5K2ni3RtPIywR/IQ34bupo9hnBY4ryRlne9PH8d1n7?= =?iso-8859-1?Q?XlpO37MsC6y60LH1trCtgKvkks7rnJzbPgxbjZ9KN0f70we89g2JX/dRSK?= =?iso-8859-1?Q?1K3MkgvpzqYsWitp3Rx7T8ZZvKWX0NCw9QhwChwtPx6DwfvtaorcBLNuSM?= =?iso-8859-1?Q?BD7m7JCZ+UE28j3nYvtp3qB94hNNofG2xf8iOjQRtWYSrSTA1BNz2BeEa/?= =?iso-8859-1?Q?Q0YEkFuXB0mEHnubZ2ZE5FJcOHWn2lAiWmVUMUYAedksyY/Ig3dFbZM0zD?= =?iso-8859-1?Q?ytKxurxdNfBUk4glRP9aXFQpE2FA/UfrE85MXSNBePx1J98kz4FtvTLrwU?= =?iso-8859-1?Q?uPsKUXrY1YU0PWCE/A20gH6PX196v/oUaFoLF1UPd2ILyBQNQ8zm5DjcrW?= =?iso-8859-1?Q?RicW38oL4gtP6DyegHYEP9KbmG0D6LZDb7OxF6OXrX8NLG0WW79I/yZysd?= =?iso-8859-1?Q?1m2f50W+zL9eSqEyeC4a6JGGnG2SckAficF8VCNk9zGOJ7Qw5qowlIZkqC?= =?iso-8859-1?Q?LryIypn0Nr9kTXmaOl8dx/FX3gm5FOvgZMN7lfoy16chq6FYfs7Soq8awI?= =?iso-8859-1?Q?6wnysqVZ0HBrvAQonhoelrnSpoVbr2/rjcszTc65EGjib+KYE6nZNg5YQH?= =?iso-8859-1?Q?4gxa6bVF4+KiXb9vEbExQ8D9WBzhLppORTDiPcMFhxSMJu+f1FF9Cehwtf?= =?iso-8859-1?Q?bMnSDyt3xkiQpBp1bOdFlojBRm67kS0MmjW/87ns9eQ04rAfTmVELYN6J4?= =?iso-8859-1?Q?a+EVMBqA25O1iZQR5/yF4twzGCI2j7BkRvF4hTB5unKCXGQP6hnmPSywNZ?= =?iso-8859-1?Q?SFztJ94b9fNfDJou5u368Z0bNri1D4wpCwusEuARVWzaG9s5WIKda3cef9?= =?iso-8859-1?Q?XeoD9wYyqXYvhPD90fwaE14heblm7ng+j7yMfTPxcZyjvQ35ywZTGZNhu2?= =?iso-8859-1?Q?SdDi0okmHVal2xfC3pQqkIAtI3SeYGSRo1oXgpCPSbZxSiHvy+CBq9zNtl?= =?iso-8859-1?Q?VgqMleeA5feQ7drjKu3ED+ErU9I9SD7y6KIsIXAnOI9PUpFlkkbA15JPcv?= =?iso-8859-1?Q?UFIOfiGWzNO3plx3rBo5oeh7+Vi9TQnNnmalBwzM1pPZaWTuzrTkvDKs5R?= =?iso-8859-1?Q?69yKe9ns6Z5wxFczXGVoUtxQNt6jcZSHKi5hZLp57KuwFDCo74Sv?= 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: 02679ac1-6570-4133-95a6-08de89c406f1 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Mar 2026 16:40:15.3846 (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: JofTGqAHg0uOTZVGgw0FbOqMSVdjdYoRFQFBxDH5RoqORy0bvJ4QUb0dverRxXJEhYTK9iq4SjLQOMtPxcUnNRSXMyQr8vJmH8qo6o0nTa8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR09MB6145 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: 1774370478435154100 Content-Type: text/plain; charset="utf-8" Add a "big-endian" boolean property to the RISC-V CPU configuration, defaulting to false (little-endian). This property allows machine models to configure individual HARTs for big-endian data operation. The RISC-V ISA supports big-endian data accesses via the mstatus SBE/MBE/UBE bits, while instructions remain always little-endian. This property provides the configuration interface; subsequent patches will connect it to the CPU state and translation logic. Signed-off-by: Djordje Todorovic Reviewed-by: Chao Liu --- target/riscv/cpu.c | 1 + target/riscv/cpu_cfg_fields.h.inc | 1 + 2 files changed, 2 insertions(+) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index e56470a374..4537305dfe 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -2641,6 +2641,7 @@ RISCVCPUImpliedExtsRule *riscv_multi_ext_implied_rule= s[] =3D { =20 static const Property riscv_cpu_properties[] =3D { DEFINE_PROP_BOOL("debug", RISCVCPU, cfg.debug, true), + DEFINE_PROP_BOOL("big-endian", RISCVCPU, cfg.big_endian, false), =20 {.name =3D "pmu-mask", .info =3D &prop_pmu_mask}, {.name =3D "pmu-num", .info =3D &prop_pmu_num}, /* Deprecated */ diff --git a/target/riscv/cpu_cfg_fields.h.inc b/target/riscv/cpu_cfg_field= s.h.inc index 70ec650abf..51436daabf 100644 --- a/target/riscv/cpu_cfg_fields.h.inc +++ b/target/riscv/cpu_cfg_fields.h.inc @@ -154,6 +154,7 @@ BOOL_FIELD(ext_xmipscbop) BOOL_FIELD(ext_xmipscmov) BOOL_FIELD(ext_xmipslsp) =20 +BOOL_FIELD(big_endian) BOOL_FIELD(mmu) BOOL_FIELD(pmp) BOOL_FIELD(debug) --=20 2.34.1 From nobody Sun Apr 5 13:08:51 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=1774370481; cv=pass; d=zohomail.com; s=zohoarc; b=lujSEOTHAIPZowH9YAJm+psMo0dJdGUBg4D0aEoUp3tbgj2HfBMxNdbwEaKVWaoRyZu/koUq/ymUTRMU4XDKMeNS366KZBVHBVTE/kHN5h7c+HmP/caQtFPOH4Y0VMAm9la+1AqlmjjGuk4snK1E8Kvl5gZiFGSFo8ILhnWn8gE= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774370481; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ecCfSg8uDGE4ujf8sKSBImdcxzfMnPxIU4Dlw7Q9APE=; b=aOjBD//D9x34gVF+Llp7hjq6wyl6+rxz2usdbgCVVU4TAFCvJP6RGGfsPaJSNqX+h6SXPPvenGK5PMOJLbNH9QuKYidnmVljyU4ka54HOz4ytn/r/viFsoCvrNqU0vDPmyHKT8pmvWxwPOrtrzL9Z9sleaOFNHem80fk8FywCwI= 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 1774370481007620.1890393036713; Tue, 24 Mar 2026 09:41:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w54o4-0003mO-9N; Tue, 24 Mar 2026 12:40:40 -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 1w54nm-0003ig-SK; Tue, 24 Mar 2026 12:40:23 -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 1w54nl-0005LR-3M; Tue, 24 Mar 2026 12:40:22 -0400 Received: from GV2PR09MB8755.eurprd09.prod.outlook.com (2603:10a6:150:358::6) by DU0PR09MB6145.eurprd09.prod.outlook.com (2603:10a6:10:475::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Tue, 24 Mar 2026 16:40:16 +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.9723.030; Tue, 24 Mar 2026 16:40:16 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=AvakYQCGhwi89aC70UglEW1T8KOybQG0K/WnAPIBQKb2G2c6GQO3AkG3jf1rzOpTdtLK3T4Y31ueBLVK6KfaITyNu5AZJqmMFZyZ4TaaKJtwduHs0afrJ41M5lvb+hgeo9xj3qcII3t9JzVB+mYoakbEnbZJBQLhxHTqIGDd0L93hs5wXgvHRcbSkWyKCsXm+NNDWW7/E+iQTv+u+EAnN8ys3vme0svLRj/e95hGL5XRIUHhDutY1nKfoJYdqDeSlFgYAiX4K/3pjWTpaJZVSaIYqeolA0nzLCVf79VNFZyVe/FvvkvDYjN4wPYENCmhpV3h0hNZHD72oFvhWxLhfA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ecCfSg8uDGE4ujf8sKSBImdcxzfMnPxIU4Dlw7Q9APE=; b=qBxZWWidTaxXzlkbd3NZiMvmDCA1kBTUwP/010syTTlilmBd57Fw5TaQTl267efpzTRO+P30f/XaQAW1k+YgUQrAghN1gXiGkA41T0EZC+diMlh8MQeaLrkTnZZVrFpThldbDfIUSdD6fTiM/3f95tEK0blQSUrsYmZ+X4TflywwoqfBLiPFbXx/CFWvbnWQFe1LKGR7XVPNI0HCh50erTE5jQVxMrqDK2N/7FtoH569N187Fd2e2CqAN3uBmg4w15Ac12pLALRXPpLNzoVhjJw7QTnTpR/D8UqavXyEu/HIhlF5NI4jkAW/HnIwLYk32u5ER9qvNUfW/YktDxi6Dg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=htecgroup.com; dmarc=pass action=none header.from=htecgroup.com; dkim=pass header.d=htecgroup.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=htecgroup.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ecCfSg8uDGE4ujf8sKSBImdcxzfMnPxIU4Dlw7Q9APE=; b=YABQoQFLTKYE8jrMcxEHsYbYU4ts/QAE6h+GZ7i/VdQWJf9NzxNqdhLolabXixf27GdUYxMI8h04TDdvJONUK9380qysuSUK8yXqLRMw4gZWQ3S11F6O4ygMN4T6U3+b/ozoulS9515GxYywqN08WmRDi1f6H+5yOn0tKxOcCrlHKspnZIEQvcx4Pw4b1TCFs2wT848skJC68n69dvbi9OyDxPAIv2tI7zxkYE8THevDfV5zgfk0Miwk8IlKjuSkikOj9CsXhEzNNKqkP156t6oO8vcC9GBD8Q49E41DKRSYCY3er0P0Zn4L7Y+BJOWGt16Hh1bptznHHJ4HLr2Nhg== 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 v5 2/7] target/riscv: Set endianness MSTATUS bits at CPU reset Thread-Topic: [PATCH v5 2/7] target/riscv: Set endianness MSTATUS bits at CPU reset Thread-Index: AQHcu6zkYuleY+yzyEiUSjKVozh/ZQ== Date: Tue, 24 Mar 2026 16:40:15 +0000 Message-ID: <20260324164007.549397-3-djordje.todorovic@htecgroup.com> References: <20260324164007.549397-1-djordje.todorovic@htecgroup.com> In-Reply-To: <20260324164007.549397-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_|DU0PR09MB6145:EE_ x-ms-office365-filtering-correlation-id: 2cf23b6c-d4b3-47c4-9c7b-08de89c4072e x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|376014|366016|1800799024|38070700021|56012099003|18002099003|22082099003; x-microsoft-antispam-message-info: aEi6ijTkuDDBN+qlvnV9YSo5rTT3BWgRT63YlvI9axRBhQgRr63gK23pudteIxxzA1pk9vmRKMe7kAHm8r0TJ1ZIWwjKTzG33DbldcOjElE34sCMrEkloYJMmwsaqYmQRvh13VlQxz6T3GQdTmNrOn4DzNRfdv5ZXGnF1sFnIZzSFajk8xrDi1ykrI39TgkA4UC6ed3vAW3Caw6bTfLkfsszDuDuU4URafA3wfLFDDAGl4m6JRLT9Q4SCbK+GvK/wGHfN7hoLyp/d1ZfFJqswOa3dVtLZJ6pinGkAxlBwqzpGKeekOWiIwfrGLELnjD6xStHxqlnHq+Drktn7zpJvGaJv58XRcbGO7OJTsLOAmKyyNj7pWwLNAclJ01NZndSLE5zZrbAqV/h85UIrD0mjJZ6FCHNlsdxCZfraG2OdWdFtefsfdrO2DABbmZGabfLNhI+ApY+zAZvM4bw51ff1RF3j0gJkCTUohH7SGf+2CbImqG7WjuzqzpQRCOQcupcXTolow7Q1fto87w84ZK1TZC3ieHlHFE5wlK3BWN1kXyHnZLxPOCRw1ZatoUMVDEzYmout9cFG/3KKeht2t/sOMsXxCgixCreGyNFjp7rOFne6lAMnGOXk6FfyyFS9nmAESHuF050MnJH6f9zH7nxEVtoNKYrLzxltuuB2/GqAkedohsAj58jSFTw0tA/pItJ56JIfejSVhcZ7W6MJlXu+rQTEdNL+9/Hp4+abZBEG9IoyvEkEC2sa6VaBRE9Wsop0ommyehxYqwBgByfEF0F2T9T8CQvXpqkti4uNkXX/zY= 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)(56012099003)(18002099003)(22082099003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?qQFR0iXtEIzec69UVWmHH/Yd0/UWgjPhP2Z99EIq86Ac+QAz0YP0UYps0Z?= =?iso-8859-1?Q?A9ZoDpzoAB4izBY3WJBHAYVvigqaQurrCgH5x1EYZjBqHn/Y5tUmBp6K0/?= =?iso-8859-1?Q?ROB8wiunTOm/6xxNM4maxCrSzoYmcKQMdWM6oH8BOY/Z94BCtLgYR+FaGw?= =?iso-8859-1?Q?zKVda9or1P4Tq6mg1ohzrdbHII6UYeGJeM5siOQ0jYxhaDBLwVD3NVVPCL?= =?iso-8859-1?Q?/8GpUgbnTmuHTKdRugAtnMvZt63SDqBXaf07DHHtkS/0srJ8BDVOJm6Lo0?= =?iso-8859-1?Q?pjI28uCF5lZWL10hAYd7n6NEKtecLfE0CAqYL/rH9/KcO4pav5roaGAqp1?= =?iso-8859-1?Q?egDnaHjZ868nsm7dZbr5426Q6+RW+Je8KnRnVppebRZ+lz03chktBLjJms?= =?iso-8859-1?Q?dBTZ/IXqLbLnEgbiPZwGe+OHLVbCq7ilJtPkjenfRTKFVxeQhFf1gPjyak?= =?iso-8859-1?Q?p9slMfLXqhoPz/jbDeIOQ7kngSZfRpLa4FKfcEKU8OXYwS5EX6VLgJqJXk?= =?iso-8859-1?Q?DIJHHffloNg6vlewCkHRQhy71LAPKpJMhzFysl9j05yf55Arv7wicb5GIS?= =?iso-8859-1?Q?7gd4ANOLTQ7Tj0zP8mpkQtsaUgZ3kC9XDq4K3YKDJ7X3NFYsaXTWexeKij?= =?iso-8859-1?Q?DvROAntno+gjbThk7jeDOKVin//s7/gE3X7UWFnDHeA5CDPnqZaEPmgFu6?= =?iso-8859-1?Q?v+H1il2+5SABAsMYIT6EsSqc87XNooRWXkzea5GSM96zIutb7OiRRouWlT?= =?iso-8859-1?Q?wk+u20MOx+YyTc/QNGecQHMEld5cqkufSNcKhgdAOsGQfyIIdI/T79rqXC?= =?iso-8859-1?Q?OiyUYPDKL38eucT0fvDniC0VoIYrtVc9fhaTdI3QhE56pXsY0oxOUsm/Z3?= =?iso-8859-1?Q?UsOMh2QsYx1k1gPx5jpjdB/nm/N/iRc3iuYZmihPulFzPlkLfi+iIS9mH0?= =?iso-8859-1?Q?u35S6Pnmhg1DFXg54l+vXhicplxvove2SH7Bd70KWjTY6g3e93WnObHphL?= =?iso-8859-1?Q?5iHaLBP8JJcSXHn1kA+NgqYei2+WvY6/aASO6eAS18Mb69QNzgtveuaGEe?= =?iso-8859-1?Q?IJmHiJk+H2aSvV6uv1RZ91egxPEHXoa+H/nkODIfhBCbJn/ejIqvM6ozU8?= =?iso-8859-1?Q?C5AbCRWy7uZ1ixSpjKXiF7TF1mx1OLu3+WNhT5Wgtl0MCV8NH2mDirQM7O?= =?iso-8859-1?Q?0hOuY4JPotV4O/8F0gWgAk20L3+c3Dn7oTrFNLB0mWKzIbtCXUE+yoIcIc?= =?iso-8859-1?Q?mHHTKvbUYtxeTS1vkGgrDFdDcUmUDDrAWejZapzYYJzxxKACJgnR1QmkSl?= =?iso-8859-1?Q?cZyomQZolcKSHZUOkWpRsB0cHNFhYkw6mZL/8VoVGsrad//cDutGfGMNNK?= =?iso-8859-1?Q?zjzsYWAghFDheELvE6v5GaSzNy4+inJ88Z3/SPtMe+xsPt/TjPmrB3xOvZ?= =?iso-8859-1?Q?9dpBRCYBVMdu7h45+zlnw5Y4EsdfU39f+DEZOeD++2R8MK7hoqlSlzZElI?= =?iso-8859-1?Q?Vmzu15oKhw8IDncUZmQgQB2qNeUzDVSSANNOR5oje59IyuPJdjVh0BXJP9?= =?iso-8859-1?Q?zXeZ9/KPtubeQCZ/v+wFwIiPy8VaR1tBf2BylJSjqCgybw6ZjyC4iZtIf2?= =?iso-8859-1?Q?O02Gu3k5mauywUNX+t7SMMJ81eFAc/NbYUDfL1DC49UOS0lj1ULECQxqgC?= =?iso-8859-1?Q?xAuzuZruOvhsc4WUbewhru/7HnxJddb4vjynwKyv+3p9tQbRZNa1sUEuIG?= =?iso-8859-1?Q?yw1ajvOHwx3i31atB3CDCdfJ6d5sUo7R7Z9WXqCSEY3+AzWdQDRVS5ilDd?= =?iso-8859-1?Q?gv5pW6cDxV9W1JKNDF0Uk4l5RaNyzeGe09Up36r04qTZKJF/FpLc?= 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: 2cf23b6c-d4b3-47c4-9c7b-08de89c4072e X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Mar 2026 16:40:15.7164 (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: QZSjxQQSh1XWLuvI1oZN8PDf7iMfQESJp3rrjaaex60rdfrQ9cXJ9kmMdTepgNrB4/5EriEzKbLp2hq8GUApihN8k1SWsn0tZCHrxVYolNk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR09MB6145 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: 1774370481896158500 Content-Type: text/plain; charset="utf-8" When the big-endian CPU property is enabled, set the MSTATUS_UBE (User Big-Endian), MSTATUS_SBE (Supervisor Big-Endian), and MSTATUS_MBE (Machine Big-Endian) bits during CPU reset. This configures all privilege levels for big-endian data access, matching the RISC-V privileged specification's endianness control mechanism. Instructions remain little-endian regardless. Also update the disassembler comment to clarify that BFD_ENDIAN_LITTLE is correct because RISC-V instructions are always little-endian per the ISA specification. Signed-off-by: Djordje Todorovic --- target/riscv/cpu.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 4537305dfe..eed5afd27e 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -716,6 +716,9 @@ static void riscv_cpu_reset_hold(Object *obj, ResetType= type) env->mstatus =3D set_field(env->mstatus, MSTATUS_MDT, 1); } } + if (cpu->cfg.big_endian) { + env->mstatus |=3D MSTATUS_UBE | MSTATUS_SBE | MSTATUS_MBE; + } env->mcause =3D 0; env->miclaim =3D MIP_SGEIP; env->pc =3D env->resetvec; @@ -803,11 +806,8 @@ static void riscv_cpu_disas_set_info(const CPUState *s= , disassemble_info *info) info->target_info =3D &cpu->cfg; =20 /* - * A couple of bits in MSTATUS set the endianness: - * - MSTATUS_UBE (User-mode), - * - MSTATUS_SBE (Supervisor-mode), - * - MSTATUS_MBE (Machine-mode) - * but we don't implement that yet. + * RISC-V instructions are always little-endian, regardless of the + * data endianness configured via MSTATUS UBE/SBE/MBE bits. */ info->endian =3D BFD_ENDIAN_LITTLE; =20 --=20 2.34.1 From nobody Sun Apr 5 13:08:51 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=1774370546; cv=pass; d=zohomail.com; s=zohoarc; b=oLbi8Ht9pNcnUhiI9viN4/veVI2kKAydN9JSxRPxKNTcYZUz+JkO2TGKFD5ujCrHNCLCbquN5fxCPRwXEgTkLJCNMhHHTM2cVO3LQK7fwJf5DMWBHmXVLJ/KAVePj8vtM5ZeM0KUNvBhMBO5Z9N11l+xM2fI9v7VLLchW2XdTK0= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774370546; 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=7IvIlDTSCqZOcy60cvRsxbmIPpRE8DmuWP/+rIsbc2k=; b=JB4t9oMKblfhAiUqzyulbSMCDgaY5RoTfOIZjmzojYcF37k9sIPRPfOQbf2Tf0vp6ILBNMNDGq2xu1gvetxZ08DjyV5lY/R2AUCxgl2tSZxRNoG62IraOH9w5iC++8MxKXAuX5yhu6ywTuGrRN6tnUQv7k6YpjdBroalPyauxSE= 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 1774370546393698.4244975311558; Tue, 24 Mar 2026 09:42:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w54o6-0003nB-5v; Tue, 24 Mar 2026 12:40:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w54nw-0003k3-59; Tue, 24 Mar 2026 12:40:32 -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 1w54nu-0005LR-C3; Tue, 24 Mar 2026 12:40:31 -0400 Received: from GV2PR09MB8755.eurprd09.prod.outlook.com (2603:10a6:150:358::6) by DU0PR09MB6145.eurprd09.prod.outlook.com (2603:10a6:10:475::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Tue, 24 Mar 2026 16:40:16 +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.9723.030; Tue, 24 Mar 2026 16:40:16 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=osWXb6hUXIpYICGCuXtVpZ5w8AgX/Jvl6rFaO+y//TPdPQ2HeSkkgn+IdeAzS6RJCLGH6bGfw8d1oJT0Xgr6KVBd0jrwvz2q7dMeZJrAM6ttBBGUeXo0KKuf2oHnEwU1NOuUUDNIR6Kl7qt6f0lVNTpwNA3mRzFKfNUmKWSLZMZ2cnuMKmiw6UvUTRxExCxN4GxpkxEaOVvS7p/xECMpQ4Bk1YUSgbLVjR8x4O+S8oCKnaaiFHxYcei4GFMI/6o4VOiyU2pIRNW5dO+5B9ayisyTsuXoVUw5ErO0/IE/xhujs/ThftV52ATYa4GcDbwof/L4f19tbrZSpq+bLw/64A== 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=7IvIlDTSCqZOcy60cvRsxbmIPpRE8DmuWP/+rIsbc2k=; b=nauqNKYRf3/UEYdX0rSi4SgrqfqjjfLIoLcpITcjn1NVSxiJrULdFHpaDeibQKPdSaUdl+w/BVE5oqoHRJLQdXQqUq2faPez8/1F4JO2sZuU/oUenFTgKMN72H+XGnQmhzsrQPGntMVoqNe9FFUak3Fugcf1iVZHXp3QA0VpSOvC9DRsX7k36c63uU08B8ABbSdhHr9Rr49u0JwhyyFdh7j3k897+fc0gfxU+U0nHc59fnSLLSVY/wptAmGhNJBPxu8gRjmhvEegciE1qoDbY7A49dKmHIipwtqMTvWs+RXIC3kL+ozrfTPe0QULuYynA81+8t22Qhp3Qbom69/OwA== 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=7IvIlDTSCqZOcy60cvRsxbmIPpRE8DmuWP/+rIsbc2k=; b=jHB9Wq2LZnkjaQdvMLqxgmCnNE1yoI0v45tq+eWseizOx+u9Mhqwi6uUgGatA7bTTTE7lbfmb75mEywWgJ5/TALbRXbcD3T4IEO3R2SfriAfY10qwqj1fZmeFry1fdheTFotJpkYmkY7FoOPax+l9zYUgmuJpPxr+7GMl0rr7SBV6B935xEEKca2PIB6qUCcTvKvrw0MkmXRLRXD5U30CMc9nkXUjbbnvnI+Ojna1TugMqEyYohWpyBQFuSnYgodQa+FNGKN2WXZzOb5B7UIBWEugmAtboI6XhU+Qn4q2r71DR9WaxSPi1Wzotk5umpHX4JFMm/lJwP1/VhPG6CTVA== 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 v5 3/7] target/riscv: Implement runtime data endianness via MSTATUS bits Thread-Topic: [PATCH v5 3/7] target/riscv: Implement runtime data endianness via MSTATUS bits Thread-Index: AQHcu6zkMXwXI9vy0EubjyivhQYRHA== Date: Tue, 24 Mar 2026 16:40:16 +0000 Message-ID: <20260324164007.549397-4-djordje.todorovic@htecgroup.com> References: <20260324164007.549397-1-djordje.todorovic@htecgroup.com> In-Reply-To: <20260324164007.549397-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_|DU0PR09MB6145:EE_ x-ms-office365-filtering-correlation-id: 91fce064-51bd-4081-daec-08de89c40769 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|376014|366016|1800799024|38070700021|56012099003|18002099003|22082099003; x-microsoft-antispam-message-info: DJIlAviIpFV49NxMe6Lqyz/5l7RiDbuu7vI++nJyBMDg45wBrEDhpTvVRwf21/X410PGa0ovcGjd9uKxJCSDf5ru9wR+ksJN2qhxJqEof9Za+I6gLQEx2Kw7qaFzCxENCIiDfQNf5Ll9+JVdRjmvMB7AzquxfzN2mEdPhmqfqqRmbVHcjKO5yvHdYSe0BKafEAuhs2b0x90ntVTnnGwKFqAhpoHhjIo8uI/k+l3THEOq0YAA1Ev1B40DJk7UoDnYonM8NxXdrhKgB62nItBA+W3E61ma4dhsDiGZePBDmmz62fiAlbQ4yC/1wrnpS1wYSyIIHP2PBG8hwxGgyEstL/KM0dA692vWGcp+1+PtmGsku+kMSz/Y1Gk8jqtilxOCAUiyCBbewErXNOoG8NC0rdO3oaaGwVh9BzuP0BhivlTuYwSjRWsyXzVXQKHEdgWnF1cUSJ6QqsTDeEy9oOFJw4GYlVGROxJuf12XjjXsNB7XkilW2N16OhY936uctFUVPfNIRsGlp9PGc43Clqgy0zZ9WP50LAX1zEj81UO1bNdrIcgVaYc3oi44ZGjCuF/JprHaYcS76yG8WcsCr9TivL22ZcY+QVcDR4iFImkBj1037gMEM+bq4M6BxCbWmotk91ST29Fx8WGSJaqWCGQHeE4lBeS78DlP5OUMTdcgmerrxe3oCFftayJGqCD4yEJy0TfiJ+M2zuVFRkOs/qAfTdvvok/hJqY+1frfp2uC5iHhcSTCLlWxd5iU1wjzrh3/Up8Dm//bdk+Oo7PIyzNZuVeykTh8dviW1CJlygDlj44= 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)(56012099003)(18002099003)(22082099003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?vxUJvZKAwucIKGnnbwbrcFZWp8n1Y4B3ga+fddpqvvPJbk0nVpH/nlvScY?= =?iso-8859-1?Q?Pgy0x0GwfJW4fVpxClPOPZSDBQ2YMmiHB59HeBeI7mHFTHGpX7ey+v8xl3?= =?iso-8859-1?Q?Rpht+gTQepBeGokZASrq3pZ3AijDBD25bQLQ1ym0iEVu1gZk4GTLenm6tE?= =?iso-8859-1?Q?I+9NxNUW6PWogl6IhoRSoKuiJ+MUPmXT+20fSlXXyXOjNoFrFfP/t4/aBO?= =?iso-8859-1?Q?4Po3qR5qKEa45EznvbBm0mKyg4qze9P22aKUL3nfTIcB6RVr+dtvrShxc6?= =?iso-8859-1?Q?hnVIkR0DCwtkXcuhcxv1+FmxiuO8gFESmEthuxXaXOD8ioLwd3h93Nh//C?= =?iso-8859-1?Q?4HEtvFjVHko6k0yQg7Umf2rpzUZ+LA7eWTpFMYnq9657qW3JtI4GMfJjCW?= =?iso-8859-1?Q?5G0Y87xLQhOE3SFJ6WCn7MueVzgeBSiDt3CNQgJCSfN6Imdz1xL3OHn76U?= =?iso-8859-1?Q?/OlBgGZGKimZ1v4DKamLXACrW20gcrIM7Ebsge0bbg9XOIq1WFCyzjdPbI?= =?iso-8859-1?Q?IUvTd18ZDzWPMytTwGYOH/GEyqp/JRn6J0P5DNRzJNPV/qBMTy7AuU9Hjv?= =?iso-8859-1?Q?5EXX9rVRLW9LZxdYG4flhpu24i7uBO9jnZKxlVXnU5lqZogCIHSueBApdh?= =?iso-8859-1?Q?uHhNV3yE7tg/iUo400kFlFSNqLfyjR8aPvefXWtRoI6dFuW7xmnsO4vykw?= =?iso-8859-1?Q?ff/oDF5gcZ3rdP9W9IOnIrZrH+d+nesE8MX5Bs44/OMJBu0Cu7pNwhH6Bc?= =?iso-8859-1?Q?WIFAvDjeLRdnlBZDmSlFxyV07L86uqGbgIYiTybxGblX0zSgaJvc6kx4fE?= =?iso-8859-1?Q?CbMl/euyAstZxWdj7rspe75gYOJG+51n2C3l20e0eDuYDcUs07uZMFk69/?= =?iso-8859-1?Q?dn06GThBNs6ULxLS7E8yoOovwkPZMMk55aX5lfBgHNWpRHhdvyvON9I1Ws?= =?iso-8859-1?Q?dq9Bd9RWNNvT/xkfJuSU/btNH1GcwXiubhOSQLFFsYnFUzdykbGI1XBZIH?= =?iso-8859-1?Q?bZGJuaTv1AeuI9nnc3Uv39YKZT4DJ4LFVBE9artPBq3m/vL5IAG1ofXB9C?= =?iso-8859-1?Q?TZK3agliw2z39t7sQWFPYY6Wi4bU4T9rn0EwR3xuwkXPPXEjU4Nk6tcj4L?= =?iso-8859-1?Q?n/+BxTz6bB0+cqwG0Nt6tCC0VT4kG3K51qIUFP9xGv8AfdK1i/5A4pzgaV?= =?iso-8859-1?Q?iITsfBaVoPUaEuP+J1B+V7XjqHgtQ4QcjuJrZaoqUnz4SbU8cmC8CVkTYO?= =?iso-8859-1?Q?5qZEZ3jnhJsCeV+FFCN/SqP8lE1gEsKyTw1NEB0dD8h2Eg2qWGk00m/RIC?= =?iso-8859-1?Q?8w9ih8CQqB2Y+e3jEhypsh1IVbyya9vYQviX8xBf+YRpZEPrRtHVe/QRgu?= =?iso-8859-1?Q?/P3LFAmIxu/MEReJ8p94gfM6pt7gUBb3lxjxXEkTzuQndGGzy9IZAChGQe?= =?iso-8859-1?Q?l/LbzRQ8IA6tFpNA/nZAJNA/QB3bY6tXdDJ4f791DlM95t10jwJag5Zt4b?= =?iso-8859-1?Q?+VfLkGW5RXrlHq3aHiI3l1/N+jAVjlujJl2TYN5+H7CpSjHQBDTxa/Y1OK?= =?iso-8859-1?Q?dQDxjnujep0MU2iPlk38/ae7umHDTQhDo63Rz6QwagdQAo81e4wEgqyOi5?= =?iso-8859-1?Q?3yyn60q1Qd+rlucUK+3mtc+1qKesRzm26zy1asA9YNNMocque9o7EfUTiV?= =?iso-8859-1?Q?q0xU2Umj7cBZrvc2maJFSfQjqfniEFDeNYX8ehhv9R9jsz6r2BU+gRNZ0E?= =?iso-8859-1?Q?F5zrhjr2cIwazEoNMJuoPZ0/+kTUboh6dR5Xkycps80zOzxWr7fRwguIS/?= =?iso-8859-1?Q?ayoYBU4moQH7xmmZEu/JYNEn4PUOu3QO1FFOgGwitT6Bi6hdtIhp?= 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: 91fce064-51bd-4081-daec-08de89c40769 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Mar 2026 16:40:16.0667 (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: zqVyudgTAgiC1ME9VNSgujlbcXdvLZ5/jMv2s1JU96cNt9QkbPUln6m1s83yS/k8EvjdQm+R7rAExC4M1yJp8CsAjemQGt/HrzfR4PSVO0E= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR09MB6145 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: 1774370547696154100 Content-Type: text/plain; charset="utf-8" Implement runtime big-endian data support by reading the MSTATUS UBE/SBE/MBE bits to determine data endianness per privilege level. The key changes are: - Add riscv_cpu_data_is_big_endian() helper in cpu.h that checks the appropriate MSTATUS endianness bit based on current privilege level (MBE for M-mode, SBE for S-mode, UBE for U-mode). - Update mo_endian() in translate.c to return MO_BE or MO_LE based on a new 'big_endian' field in DisasContext, rather than the previous hardcoded MO_TE. - Update mo_endian_env() in op_helper.c to call the new helper, giving hypervisor load/store helpers correct runtime endianness. - Pack the endianness flag into cs_base bit 32 (alongside misa_ext in bits 0-25) in riscv_get_tb_cpu_state(), ensuring translation blocks are correctly separated by data endianness. Note: instruction fetches continue to use MO_LE unconditionally (from the previous patch), as RISC-V instructions are always little-endian per the ISA specification. Signed-off-by: Djordje Todorovic --- target/riscv/cpu.h | 28 ++++++++++++++++++++++++++++ target/riscv/internals.h | 9 +-------- target/riscv/tcg/tcg-cpu.c | 9 ++++++++- target/riscv/translate.c | 12 ++++-------- 4 files changed, 41 insertions(+), 17 deletions(-) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index 35d1f6362c..ef870d05b3 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -703,6 +703,12 @@ FIELD(TB_FLAGS, BCFI_ENABLED, 28, 1) FIELD(TB_FLAGS, PM_PMM, 29, 2) FIELD(TB_FLAGS, PM_SIGNEXTEND, 31, 1) =20 +/* + * cs_base carries misa_ext (bits 0-25) plus additional flags. + * Bit 32 is used for data endianness since TB_FLAGS has no free bits. + */ +#define TB_CSBASE_BIG_ENDIAN (1ULL << 32) + #ifdef TARGET_RISCV32 #define riscv_cpu_mxl(env) ((void)(env), MXL_RV32) #else @@ -718,6 +724,28 @@ static inline const RISCVCPUConfig *riscv_cpu_cfg(CPUR= ISCVState *env) return &env_archcpu(env)->cfg; } =20 +/* + * Return true if data accesses are big-endian for the current privilege + * level, based on the MSTATUS MBE/SBE/UBE bits. + */ +static inline bool riscv_cpu_data_is_big_endian(CPURISCVState *env) +{ +#if defined(CONFIG_USER_ONLY) + return false; +#else + switch (env->priv) { + case PRV_M: + return env->mstatus & MSTATUS_MBE; + case PRV_S: + return env->mstatus & MSTATUS_SBE; + case PRV_U: + return env->mstatus & MSTATUS_UBE; + default: + g_assert_not_reached(); + } +#endif +} + #if !defined(CONFIG_USER_ONLY) static inline int cpu_address_mode(CPURISCVState *env) { diff --git a/target/riscv/internals.h b/target/riscv/internals.h index 460346dd6d..e2f0334da8 100644 --- a/target/riscv/internals.h +++ b/target/riscv/internals.h @@ -64,14 +64,7 @@ static inline bool mmuidx_2stage(int mmu_idx) =20 static inline MemOp mo_endian_env(CPURISCVState *env) { - /* - * A couple of bits in MSTATUS set the endianness: - * - MSTATUS_UBE (User-mode), - * - MSTATUS_SBE (Supervisor-mode), - * - MSTATUS_MBE (Machine-mode) - * but we don't implement that yet. - */ - return MO_LE; + return riscv_cpu_data_is_big_endian(env) ? MO_BE : MO_LE; } =20 /* share data between vector helpers and decode code */ diff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg-cpu.c index 3407191c22..fa42197e98 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 5df5b73849..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_LE; + 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 Sun Apr 5 13:08:51 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=1774370518; cv=pass; d=zohomail.com; s=zohoarc; b=ROU/GqLgLBovZCEpXoZSJITnHgj6zjQj5Lf/L2SM3d/Uc6ujySkCpEMbFG9dFmgrtRDiypy9/wzGIsOWK1gN3kqA/ys85asHSuSjM3tMDvvMMNYnB2DLUOahybofXdqO3DXua5Ua3r3faAwNFgtcsbIVjup5gWgT9KeTsEcxPrw= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774370518; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=pbfVXWr9+U6etvsznPf/5+PQydUm4sQ3DPy9B4dJuEk=; b=BgxPE+AkoNp7iebdulxYcFPoAe1P4sk1l9BYbqZDk7W7oCcT2CSb2yXKCSmN347IZcjf17Ku2d3xk3xQElm2M6VQZZAJDwzHCRTP8E83P3iBjz59Ft6ITTjYazeHdwG8xHL5pCSEoLLQhurqmLzpD8wWIyJUxCnj2ekIa0FzKZs= 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 1774370518197526.6707795465011; Tue, 24 Mar 2026 09:41:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w54o6-0003nQ-J9; Tue, 24 Mar 2026 12:40:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w54o0-0003lM-2E; Tue, 24 Mar 2026 12:40: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 1w54nx-0005LR-FW; Tue, 24 Mar 2026 12:40:35 -0400 Received: from GV2PR09MB8755.eurprd09.prod.outlook.com (2603:10a6:150:358::6) by DU0PR09MB6145.eurprd09.prod.outlook.com (2603:10a6:10:475::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Tue, 24 Mar 2026 16:40:16 +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.9723.030; Tue, 24 Mar 2026 16:40:16 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=S7uY1Y58vPAR9B7eme46vtCgSc+wpnOGRpH3W6F3eT90T9l5SUbKe4Si2HbyqGlQWb9jV4Xz329Dxe4uqZMeLgd6fR17ib58xmMRm0H7F35YhFKVVl87lSF8fcS08W6an18eLsi8YGeuHBRMoyeRF+cqf9WLwm3EiSlESD2HtRIibE4pay/rSUuUcxt69Fhp2tIWNJD7KflQFAjopYUTiMB/r1oTr1rsS4HQ0Fv0mkaIDpcHlY++lqt9onqbFzsmOBvwjU/2EPupvHH//UKo4eahZwCZ2b7JTxAL47cqbPQlEIfiz4DKBdwfMlYPS0uLznX7Y0+7QL21SWP00Sn7OA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=pbfVXWr9+U6etvsznPf/5+PQydUm4sQ3DPy9B4dJuEk=; b=airhLJ/FSH9KeFP3dzAkZFVswL5R5z4GfZpqtVUTsbQrDw/SnbvvggIEbJE7q5QSa85JnTmIoGtnQausKryiEkK58iEHUMHTyfK0ufJ0EENWpEZ3WYOELAPxJliXia338N12LvlW2XHY8ZeLdBWJwwLHjjlp5fQYsdJ8DQLhJqYoXaZI+LW9Yncd++RjwRbxx5Hbdh2mLY1CwAZohoYTtVp0Tg50H5LYXu4eGeEse4HQ3nzvHVEGNnsEzv7ye4ePG0U2I/i9ojIRffK98nunbuiWmAueIRuBlHiq1jG0ueNKDs1Jc/rTAQGgyQ1CJACEgmtww2Qt6AFm2X+QkCxlrg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=htecgroup.com; dmarc=pass action=none header.from=htecgroup.com; dkim=pass header.d=htecgroup.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=htecgroup.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pbfVXWr9+U6etvsznPf/5+PQydUm4sQ3DPy9B4dJuEk=; b=N3LqF6bcKAXiNmvS8ZXjxORJlyd8e2ipvMowzWlidJ0TlktYP/ONubpgv3N2CRshIK9ihIutCZjyaema0xdHJoPhIkGvdVinAzM8NvdTc/bT043uwJsH4T/66qpyR5/BcRT+yhhqhEkfh+hL7TrBWm6N2x5qnCKeWVqYoSzOdisY2dNC9x4cVcN0WScfF2NZB1ogOQHkl3A37jf2QPzkkWhMZ9hjCjvqETllK8dDSQyD52FFyG7vzHSn8svKSIRChc+EV6TT5RcYssCE7GZhtz3OpIPC/TSsWLnEpWdCkPwSsS0+eg5hSXL5j/zPollBiFAvazYDXasW8hG8prX9KQ== 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 v5 4/7] hw/riscv: Make boot code endianness-aware at runtime Thread-Topic: [PATCH v5 4/7] hw/riscv: Make boot code endianness-aware at runtime Thread-Index: AQHcu6zkp4dl2F3i9UaTc6hdecuzUQ== Date: Tue, 24 Mar 2026 16:40:16 +0000 Message-ID: <20260324164007.549397-5-djordje.todorovic@htecgroup.com> References: <20260324164007.549397-1-djordje.todorovic@htecgroup.com> In-Reply-To: <20260324164007.549397-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_|DU0PR09MB6145:EE_ x-ms-office365-filtering-correlation-id: 7d162eaf-bffe-45e5-5f42-08de89c407a5 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|376014|366016|1800799024|38070700021|56012099003|18002099003|22082099003; x-microsoft-antispam-message-info: 7Qhlh7qN9bTH3QeWv4WtvSeVHS35/KX6yXrg41ZBIrukEwfYvhFLB5GjzPvZgM6QdnS48OfY30bIlNAC5MlmnLpq80I33DQ3+4pgMzcyBcbkHqLM+T4nvY6R+DQbXA43O9C3jmwefydzGcHz1eBM2+NioAIi/O6D0Hi7f2X2nHVkQuNwJie/5/dfkjWBTujsMLmsasZpdyIBHI1yF+98oMQGc+FcWxtDFES+pRwuN+L3f8WK4qBFGfU7j1l+KWXGxbedBYyZl6o/gfC8gyYSWPWT6fX+iC90IpyasCGBwZC4Xt+Un/LVT/zTcLaGyatWuwlnpMxeIa8oZ8fwL7lNvvBazSgPjmWBLKYg4Hp/VIpYcxQxTFpdoQkHmaTSqfSgPYPZeVwoeAyJnZaGZYtd28krfXHOgy5RGZGCFxsWMYmxpTlOIzQ1t8rduAFFCHHITGTDISYTUlHJcOgeoO0dLOHpOsRlKexhTQQ0bSxtnesauz8Y33HRwXMU/7OXMpfdBvVvhj+VC3J0x2g8Ny5CyeOkGTvfySD/ksSLlM/59+Fx/ee3FfFXUx+OwDSmqg9gYQSthK7iRX4WdjPcSZXb5UB/IjhNlJ8D8U4+OlswXNkeokfZNfMkKFEZllt3SBvHTiZycIXil9rwCNJvXNmf+Qf4oNZb9ohmtfGZfrBvvdLWCmKVXiFzgqueedjiyUjW8i3AYiSt2Fu3jdgeSXgyVIbwO/B2kFRFDHYKGt43TGA+j9MK6OkLLi0pPfE4tqTrJQgCWRf56Q+OLlZJMcRvNgLfXVshrVZiEN+17vlA/so= 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)(56012099003)(18002099003)(22082099003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?nBsqJV2C/BI2Umc3qbLaELnr9VdotfN4DKBaVc9Q67IgpOHp+27/NtdXCU?= =?iso-8859-1?Q?zXYl9uHTHsUHWGsWmQO53SgEIQ0frJAoXO+mCnXuP9pBEDzxoVcC1f3daG?= =?iso-8859-1?Q?M2gAbXJKXLL2kl85a7Fu4b6eCuCXkvjZet5qnHntud43S80aD7sgLeoYTQ?= =?iso-8859-1?Q?DDx2bGYijKXWIslEw3hu8IHNuUrHFnIteSHyfSMsA3FlbZ5owuTATCP/D5?= =?iso-8859-1?Q?a4ibjL6dOckXhRWRLe8O5jJCWsJdiOGeKDvHaUoG+CsrmBS6swYjtUq9j+?= =?iso-8859-1?Q?hJhoYVM/P4+4m9GOsBFijohVcDcqKwVqzmvCUpie+ou0d9AADbdoZJQ0On?= =?iso-8859-1?Q?g2jnKjlwKMkQZQ1JJVmQ9P6zlG5xSn0Fk7ZodnudhxXunGEy4KKAM2lc4m?= =?iso-8859-1?Q?8eyrFxTD1g1BtNx+7iP3UQVWWoCrt0bOB6Hjo4cdQfBkAJPNiAHOOi8/pk?= =?iso-8859-1?Q?Y68awAbEefMbUkl3lODH5joQTUWGc9jwWL3bUTn5cYMwEFaIj4A1uvUzrB?= =?iso-8859-1?Q?B23U8Zz2Ni8DTTJobd/QZfmYSSyY0AD18wtlNHQTHc3jPDblG/R/pNvJT2?= =?iso-8859-1?Q?brgCIOhmiJdBwlDwrg5mH6DxvRxbDBEZ4cq8uOmtLmCpkMsGNTPrrpNwHo?= =?iso-8859-1?Q?zXE7Vgp2Bnxa5nZgw77knrIYLEVNv3KjyFmWlBEQWoawPnykl6abgqf0yW?= =?iso-8859-1?Q?xbPodf5lU5J1Ok1OxoJ7p5ADVh6i774AblnOdoojm1RGugcbSl1M8mcJjf?= =?iso-8859-1?Q?Dya5ivyJB5bwbWsammWTN7RIrWwNVUPGljfKYDTAUJ5Ga8t9I5H5L9m77y?= =?iso-8859-1?Q?1bm8xjxwzWvi26D5Mw4ChUdyCQIyBf9FA8PnYGUqPPkD3GqvGDJmDpSLRw?= =?iso-8859-1?Q?FZNSuBv9EZ+ANKlA7AZxhtDtPfkSVabqSlG79HKYcPfr6AWnkMIsOzMsgw?= =?iso-8859-1?Q?7yETskriL40RJPcfOhs77ilSpoF78UV89G2wPFamz221ZR3fkdxJ1Lga/g?= =?iso-8859-1?Q?Z7vL2ho+IkGpbXFl+WqNqIQXiOTLNjJ9Ai5DUHRd+fanIsL6pDBA9srTiu?= =?iso-8859-1?Q?b9JxSBXCam4HT7682gb9BFM6RkI/ltwP6Ec4gjGf564ZNVeJvET07/oZXe?= =?iso-8859-1?Q?1QVuP5S97ztvZ/ZmuR6qDAPZq4iG6FHKfuXLvU499fxFtBkzr3YrStLdfG?= =?iso-8859-1?Q?XtJ3FIXBavEGlEzVPLHQ/M9xCrv4V4R+KMnITm4inQ5tJtpr26A9AU89wt?= =?iso-8859-1?Q?XZR5ixvNQQRoztaSOBAS8+Uwld00ZAjGiug+xKlKLnO6NGPkkSzn4EECRe?= =?iso-8859-1?Q?uDf67RC6DOHUgjWgyUvHZDgYeC8msrrAftvGufq110tf3XMDWdJbw7EVFw?= =?iso-8859-1?Q?E41u4/zT+H0OP1np1Z9zVnce5uEKQnQNY4h6vSIGoZZDKtpQGbKmJ7U72H?= =?iso-8859-1?Q?ndFnr/hyQEQqZkffMF77XchMQ4Wy7et98YOMCRk5mBnRl+1KQhwatP1a/+?= =?iso-8859-1?Q?Y+KxurCFgoFf9neu/5wfVErO9vewq56rzQCELYroUvFD1+CFEG4Zls7w68?= =?iso-8859-1?Q?Z56nZBIiVFO2udP8Bqadn/LNaYWbxoAEqgOl1awx4x/SQVux9mOev6YGI/?= =?iso-8859-1?Q?Db5IoXr7FnmlkPDaobZlZUxahSxJInJe60BCyoS0XJ730/6IjFkVxYvftW?= =?iso-8859-1?Q?axLepj+uEegOTpmcIUmRbEct8U2Mbwdghmuhq2YI/ybur+xLbki4DEW2RE?= =?iso-8859-1?Q?a9wdkK0CYjAHVwZyflxCpV0Emljl7abrf0vckz9a9WmLIsE6Zmqt+dvUak?= =?iso-8859-1?Q?Jx4HUAvbYIxaTgCjUrB7obyc9jDPCJ9rngLLV4evKgLHHL3yzDsp?= 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: 7d162eaf-bffe-45e5-5f42-08de89c407a5 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Mar 2026 16:40:16.4489 (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: 4902d83BDxSC96jrBLH7kwi/B2WymZv5u7L1asJfMSoQN/iyDPR/O6DXjlBJSnCSZ8CO04yoxcT/dBLUrdeGOK+Hf6m7RDJsVL6nzoGMz2Y= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR09MB6145 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: 1774370521172154100 Content-Type: text/plain; charset="utf-8" Add riscv_is_big_endian() helper that checks the hart's big-endian CPU property and use it throughout the boot code: - ELF loading: pass ELFDATA2MSB or ELFDATA2LSB based on endianness - Firmware dynamic info: use cpu_to_be* or cpu_to_le* based on endianness - Reset vector: instructions (entries 0-5) remain always little-endian, data words (entries 6-9) use target data endianness. For RV64 BE, the hi/lo word pairs within each dword are swapped since LD reads as BE. This is part of the runtime big-endian support series which avoids separate BE binaries by handling endianness as a CPU property. Signed-off-by: Djordje Todorovic --- hw/riscv/boot.c | 82 +++++++++++++++++++++++++++++++++++------ include/hw/riscv/boot.h | 2 + 2 files changed, 72 insertions(+), 12 deletions(-) diff --git a/hw/riscv/boot.c b/hw/riscv/boot.c index e5490beda0..c7558b904f 100644 --- a/hw/riscv/boot.c +++ b/hw/riscv/boot.c @@ -40,6 +40,28 @@ bool riscv_is_32bit(RISCVHartArrayState *harts) return mcc->def->misa_mxl_max =3D=3D MXL_RV32; } =20 +bool riscv_is_big_endian(RISCVHartArrayState *harts) +{ + return harts->harts[0].cfg.big_endian; +} + +/* + * Convert a pair of 32-bit words forming a 64-bit dword to target data + * endianness. For big-endian, the hi/lo word order is swapped since LD + * interprets bytes as BE. + */ +static void riscv_boot_data_dword(uint32_t *data, bool big_endian) +{ + if (big_endian) { + uint32_t tmp =3D data[0]; + data[0] =3D cpu_to_be32(data[1]); + data[1] =3D cpu_to_be32(tmp); + } else { + data[0] =3D cpu_to_le32(data[0]); + data[1] =3D cpu_to_le32(data[1]); + } +} + /* * Return the per-socket PLIC hart topology configuration string * (caller must free with g_free()) @@ -72,6 +94,7 @@ void riscv_boot_info_init(RISCVBootInfo *info, RISCVHartA= rrayState *harts) info->kernel_size =3D 0; info->initrd_size =3D 0; info->is_32bit =3D riscv_is_32bit(harts); + info->is_big_endian =3D riscv_is_big_endian(harts); } =20 vaddr riscv_calc_kernel_start_addr(RISCVBootInfo *info, @@ -247,8 +270,9 @@ void riscv_load_kernel(MachineState *machine, */ kernel_size =3D load_elf_ram_sym(kernel_filename, NULL, NULL, NULL, NU= LL, &info->image_low_addr, &info->image_hig= h_addr, - NULL, ELFDATA2LSB, EM_RISCV, - 1, 0, NULL, true, sym_cb); + NULL, + ELFDATA2LSB, + EM_RISCV, 1, 0, NULL, true, sym_cb); if (kernel_size > 0) { info->kernel_size =3D kernel_size; goto out; @@ -391,21 +415,32 @@ void riscv_rom_copy_firmware_info(MachineState *machi= ne, struct fw_dynamic_info64 dinfo64; void *dinfo_ptr =3D NULL; size_t dinfo_len; + bool big_endian =3D riscv_is_big_endian(harts); =20 if (riscv_is_32bit(harts)) { - dinfo32.magic =3D cpu_to_le32(FW_DYNAMIC_INFO_MAGIC_VALUE); - dinfo32.version =3D cpu_to_le32(FW_DYNAMIC_INFO_VERSION); - dinfo32.next_mode =3D cpu_to_le32(FW_DYNAMIC_INFO_NEXT_MODE_S); - dinfo32.next_addr =3D cpu_to_le32(kernel_entry); + dinfo32.magic =3D big_endian ? cpu_to_be32(FW_DYNAMIC_INFO_MAGIC_V= ALUE) + : cpu_to_le32(FW_DYNAMIC_INFO_MAGIC_VAL= UE); + dinfo32.version =3D big_endian ? cpu_to_be32(FW_DYNAMIC_INFO_VERSI= ON) + : cpu_to_le32(FW_DYNAMIC_INFO_VERSION= ); + dinfo32.next_mode =3D big_endian + ? cpu_to_be32(FW_DYNAMIC_INFO_NEXT_MODE_S) + : cpu_to_le32(FW_DYNAMIC_INFO_NEXT_MODE_S); + dinfo32.next_addr =3D big_endian ? cpu_to_be32(kernel_entry) + : cpu_to_le32(kernel_entry); dinfo32.options =3D 0; dinfo32.boot_hart =3D 0; dinfo_ptr =3D &dinfo32; dinfo_len =3D sizeof(dinfo32); } else { - dinfo64.magic =3D cpu_to_le64(FW_DYNAMIC_INFO_MAGIC_VALUE); - dinfo64.version =3D cpu_to_le64(FW_DYNAMIC_INFO_VERSION); - dinfo64.next_mode =3D cpu_to_le64(FW_DYNAMIC_INFO_NEXT_MODE_S); - dinfo64.next_addr =3D cpu_to_le64(kernel_entry); + dinfo64.magic =3D big_endian ? cpu_to_be64(FW_DYNAMIC_INFO_MAGIC_V= ALUE) + : cpu_to_le64(FW_DYNAMIC_INFO_MAGIC_VAL= UE); + dinfo64.version =3D big_endian ? cpu_to_be64(FW_DYNAMIC_INFO_VERSI= ON) + : cpu_to_le64(FW_DYNAMIC_INFO_VERSION= ); + dinfo64.next_mode =3D big_endian + ? cpu_to_be64(FW_DYNAMIC_INFO_NEXT_MODE_S) + : cpu_to_le64(FW_DYNAMIC_INFO_NEXT_MODE_S); + dinfo64.next_addr =3D big_endian ? cpu_to_be64(kernel_entry) + : cpu_to_le64(kernel_entry); dinfo64.options =3D 0; dinfo64.boot_hart =3D 0; dinfo_ptr =3D &dinfo64; @@ -474,10 +509,33 @@ void riscv_setup_rom_reset_vec(MachineState *machine,= RISCVHartArrayState *harts reset_vec[2] =3D 0x00000013; /* addi x0, x0, 0 */ } =20 - /* copy in the reset vector in little_endian byte order */ - for (i =3D 0; i < ARRAY_SIZE(reset_vec); i++) { + /* RISC-V instructions are always little-endian */ + for (i =3D 0; i < 6; i++) { reset_vec[i] =3D cpu_to_le32(reset_vec[i]); } + + /* + * Data words (addresses at entries 6-9) must match the firmware's data + * endianness. + */ + if (riscv_is_32bit(harts)) { + for (i =3D 6; i < ARRAY_SIZE(reset_vec); i++) { + if (riscv_is_big_endian(harts)) { + reset_vec[i] =3D cpu_to_be32(reset_vec[i]); + } else { + reset_vec[i] =3D cpu_to_le32(reset_vec[i]); + } + } + } else { + /* + * For RV64, each pair of 32-bit words forms a dword. For big-endi= an, + * the hi/lo word order within each dword must be swapped since LD + * interprets bytes as BE. + */ + for (i =3D 6; i < ARRAY_SIZE(reset_vec); i +=3D 2) { + riscv_boot_data_dword(reset_vec + i, riscv_is_big_endian(harts= )); + } + } rom_add_blob_fixed_as("mrom.reset", reset_vec, sizeof(reset_vec), rom_base, &address_space_memory); riscv_rom_copy_firmware_info(machine, harts, diff --git a/include/hw/riscv/boot.h b/include/hw/riscv/boot.h index f00b3ca122..a54c2b397d 100644 --- a/include/hw/riscv/boot.h +++ b/include/hw/riscv/boot.h @@ -36,9 +36,11 @@ typedef struct RISCVBootInfo { ssize_t initrd_size; =20 bool is_32bit; + bool is_big_endian; } RISCVBootInfo; =20 bool riscv_is_32bit(RISCVHartArrayState *harts); +bool riscv_is_big_endian(RISCVHartArrayState *harts); =20 char *riscv_plic_hart_config_string(int hart_count); =20 --=20 2.34.1 From nobody Sun Apr 5 13:08:51 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=1774370449; cv=pass; d=zohomail.com; s=zohoarc; b=bIorhnqkVfGBH5efLx2QFL2BnbQtmnjtH+kEEbd/dnGyj+q1MXnBKmJP5pZ8D+omrj54WJqZK4WHjCmUzpsT99aWilocGfq5ltgIs7SDNs8xOpEgZg0YZ4EAjJFLl0vZAPtLlRCH1hLjTLxpimudoSZoxdazMI9hmqI4Q030tw8= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774370449; h=Content-ID:Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=TVlOz68TH6Rn29Kd8vfhWLfqyIhG54uGQnnB6efYGDo=; b=PtocRrUVRvpixGr8MIgxFC5GzTurYoqMpUyKxkUm2NrpMtIni36VRRPQ2tfA/qmkgERjG1km0byveUeTsyX0jzEM+y/9povlngbKEqDMicu9PWiR6RppNnaryWqYzJ7vpEk5u/qTcgkVQyZ94mTk72zcovtHZCVG7fZD3GmZhrY= 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 1774370449482207.3464229589589; Tue, 24 Mar 2026 09:40:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w54nw-0003k2-CL; Tue, 24 Mar 2026 12:40:34 -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 1w54no-0003ik-EK; Tue, 24 Mar 2026 12:40:24 -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 1w54nm-0005Lv-OQ; Tue, 24 Mar 2026 12:40:24 -0400 Received: from GV2PR09MB8755.eurprd09.prod.outlook.com (2603:10a6:150:358::6) by VI0PR09MB7005.eurprd09.prod.outlook.com (2603:10a6:800:243::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.19; Tue, 24 Mar 2026 16:40:17 +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.9723.030; Tue, 24 Mar 2026 16:40:17 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EziZwoC3xkGhuNQ4BCO96lM/1J2zsKTB03OEW8iI3FEUg9q6SkBMV3qoQ8AbiArKuFQhW5IO7GxeA8vcuWSYdTe21ufuNGvRBevtByLDM4bF9r7RBbFRVDv9RyiKPuZpT+U2NutlV6W/dZsRTIjRuytmBvkeM2/GrJ2yRjCb7He6pE26duKt2EiTm4GSe3bE9H6gmC9M0H6UnlsjhKfqfTQNFsat7WrLj2LQbPDG1s7mT6mnAfPCygubuPYX8f2ZjEACYr8JaW7EjS4rbZOXODvJJfiBHwU6wkTRgRxMOwd6QJM8zB3lECen06SgRZPCRGVJHUAmgGsu/RkwY18Pcg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=TVlOz68TH6Rn29Kd8vfhWLfqyIhG54uGQnnB6efYGDo=; b=sYFER1XeKulTl3CgYr3hOiWHmUzuv0UtIxU13aR4iMuzY081U2vTzs5C+h9NeJnjhPn1ey/eF37XHIMbkMER8ycXROW6NgDT/r1Fmlb0UtACWBq0TuKFrhClfXk38SOfqZD0pK1DkQuIm7JcaCtLSzzxzrPiRZ/PVCQlRFbq4ZW9S0bAvdSvvAVCZ/C7k8jam44NgHElnuvVJ6Am1uGB9W85p2JUTVH89F6gqLfcOIZuBQRrl/zaAHzAQlwUg50tIuPcze1ReR4ceP59rr/9LPuFzH2MFZ0l17ZLZz/ncNqZr7Zqt4rjAqQ7xE92jkcDvy7+I1s//Uj2cqCC43LOvw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=htecgroup.com; dmarc=pass action=none header.from=htecgroup.com; dkim=pass header.d=htecgroup.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=htecgroup.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TVlOz68TH6Rn29Kd8vfhWLfqyIhG54uGQnnB6efYGDo=; b=f8t9cZ8rz2zvqRmzB1A6bTQBLtolswypGC30HUgSHQ5jF+YAzTOtc7C4194+QYzugJeBptwluKyWA3SPkQVcyXmfyFFEb8ZBUyE4bSXD9iT68z5ridl0Xon3U7CzlGqvZpApkUXfpYkz7spUU606KXwhJrepz/LfEtPZbZKsC8yM/NN8hQ/daBPfpCOVb5E0pUR4Cc3INpxuy26BMIKYCZrX3TWjYnbOjl6TNJRgWozDb+HeQgk1zyeGrTaH04vgf5Ilap2G2YL1v/06nfYqweHoFSDkrDzPs8ANVtXG6F7bbIiukTkfJGDdwOCRHgjfMjtdnvfwdNHe/EOvB9f0sQ== 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 v5 5/7] target/riscv: Fix page table walk endianness for big-endian harts Thread-Topic: [PATCH v5 5/7] target/riscv: Fix page table walk endianness for big-endian harts Thread-Index: AQHcu6zlZ3gA0iKA9ESQSdn1zP3ymg== Date: Tue, 24 Mar 2026 16:40:16 +0000 Message-ID: <20260324164007.549397-6-djordje.todorovic@htecgroup.com> References: <20260324164007.549397-1-djordje.todorovic@htecgroup.com> In-Reply-To: <20260324164007.549397-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_|VI0PR09MB7005:EE_ x-ms-office365-filtering-correlation-id: 4952dbfb-f2c3-4459-cee8-08de89c407fb x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|376014|1800799024|38070700021|56012099003|18002099003|22082099003; x-microsoft-antispam-message-info: P8XkwW7/7vx3mnUvgFdzxUm2MicFnM9/qGFbXZfx4doL6H2Q2GRw0mmnxSOOJFGZSlK7iHHWLAWH2CYPLAaCb65mmvUCCJHs2f1/XjOb3322cu4vU9L1kYJ7sekLIAkMlUBp9l5exFFAGc9Ekdgrm4JjSDaRyfsRI8y1ppfZ8Ebv6C3rLqyHrxOJcpmdlKc8qrOG1ZM03pOEMpIALviYH6To4fXN+ub6r9YmPzjFRRMQfsCd4u6q6CXZrfzoShZhRcLNQU+jy0ENQ/5UCYPlFZqu2oTYoQ6cZhoYLqUfjbuQSJymkn3PD0oqqfjjz2s5d442tVhMYLC9Pb3z7Tzaa1+527+kkkBILC/SgosRFv8Gc+Fyv6aQ3k+uoyQc+R0ssi+XKlptl4zUK+RH2q/hKxknDrdRxfpyjWrmSYZD89OdX72AE4jrzs8eF0GPyTwbRSSDhvg+FD5FHVxTKVQa/qNtS0e4xl5/+gdRDMB2BzFkFvHwauVpnAAJP2/S1Zmx5iOpkSLTS0phu3LClsyvW3RV1ZpYvt8u8KdqOfWfDGb79gboO5X4ULr473T+xcn303EEUfpU9qbIK1y+yxV3qMfjtMn/pk3oX51uR8fwZ33WjmNR+HqscD9UwsD42JTJ/Yq0jDLs3s5VVV8uXw6xeI9+MDfo3DKBi7B72i6FkpkUx7eOyA+jIebPv4JGoS5/NnQp/dGaR6wQ7LuqKfuwAD7Jp9zXJFrSLrrGMnUaEB8IGQENrehS6KvynTMNp1MHjOfg74cfKUyEND4mIgXrPPMldbq1VHDz8Zt7EV/ZT/4= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:GV2PR09MB8755.eurprd09.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024)(38070700021)(56012099003)(18002099003)(22082099003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SnBkLzM0VC8rNXVadGVFODUrVlJ3TTZUQndib080RWZyQkVBek1CZS8vM1Rk?= =?utf-8?B?NnJKQ3p5NlBFNitmR0ZMWkQ2TUpKakEyMDhyZDVPZVlaT0NCNUlOOTlYZDlx?= =?utf-8?B?cUVDWWVJUXdCZjBPcTIvRWhsTG9zbU1nZ2F3UURBdG9YN2hhT2xWcXJvRlZI?= =?utf-8?B?aTRPRFlBZWwxMDZvR1pmR3FOejdsK3lxd29Cckx0bkhxbEIvaTlZYnBVSnhH?= =?utf-8?B?SEhRc1BPMmVoS0pPWUJYNm9SZlFTZFJTL2ExU1k3QmJLTWlTbzI3OS8yY3da?= =?utf-8?B?OUw2c2hrSkREc3pVSmhzaktWMUl2eTQ0Tk44UWJLRmRIK2QvVHd5aEMwdGlZ?= =?utf-8?B?TWRPZUFwOEdwQk9yRVVmdXNOVTZxUGlnMVkyUTltWENIZVY2SXlwbm4yVjJk?= =?utf-8?B?WHBQd05jbU9nSlFCUzVKRm1mQU1BY0J3RzBSK3JZcWJRT05kbXBrNmkzWnVl?= =?utf-8?B?R0ZSSmYxZHB3RTh0UE1lUlFKK1BOQmZwWVJwSzdhRWZWcUJiK1RaTERCOUFl?= =?utf-8?B?MXhLVTJRb1gvT01VQ2luM1I1aTF6eW9tYTE1Tm5YWGY0SUVxZHJyajhlbkJ5?= =?utf-8?B?bmpUMXFhelk4RjlmWnY0bjJQT0l3RTZDYUFMVmNwVXR4MVNWRDcwV1ptWEhs?= =?utf-8?B?c2dIU1dCSUdteUFiZWwwM0g2bDU5Mmpid0EwTTg1YUpuSCt2a3B2bGxjclN4?= =?utf-8?B?QkxSQnV5bTd6SmlvRTVpYmlRWGJKMkF3WkdYS0NSSGVjZGpDSDNLRURZY2tq?= =?utf-8?B?OHBvUWhrQ1J5RGxHYWtSTjZqM0tzb2Q3ZHVHbFBueE1PU01LRkVlWWVmMHBD?= =?utf-8?B?eTZiZEVIeFQ4a3BHbk5uN2pJUUg5S01nSXU1YUdjUThRekV4OTRIeUFZc2Ru?= =?utf-8?B?MTY0N2p2ajk2VjltWWNTRzJqOWZNMzVaZVVIaVFZd0xFTjBxZHlHREk3YTR2?= =?utf-8?B?N1YyeFIyYjQ5a3dOMEhBalNYZEpML1ZiUXJHM25hQnNMd09paHNvU3VON0J1?= =?utf-8?B?UG1XMjJyWFJJbzV6VkE5Q3YxdE1HNUxILzhWbXBKNWV6VFlzY0c2eWVnR2ZL?= =?utf-8?B?dGhIU0wyZkdQN1FrcGdyOHcvOGZxa2FPVDN1Um8xMjljYmt1OVU4QlFzVDlG?= =?utf-8?B?cGhBa1dlakpncUJlQ1ZBU2M1dzVsNDkwTlZROUh3N1RVQUZDNUVWaFVyanBJ?= =?utf-8?B?c2hQcjByaXVGSHJFbXRjSm8zcnFhOGs3N3Y0UjgyajdVK1M2ajVQMVlrUytz?= =?utf-8?B?cWFQV3BhTTArUis2WWdmWjExcnpIdm9KSTFHaE5XNDJPRVdlK1o1eklqWkFI?= =?utf-8?B?Mzk0RkRJU3R6ZHh1d3NFWkRhQW4ySzAxMVJzTy9oRlpMdXNWcjE0S3NVdFJ1?= =?utf-8?B?NE55YTQ3NE51ektBeHZ4VlRiYnlDTG9jZHhFUHV1MDgwTGxpNVhjMG53eEFX?= =?utf-8?B?eTNPSHRKa0t2TitmelNtM1RUMzF5MGpaY3B6b1l6ZkdhdCtybDJhUCtXTGpl?= =?utf-8?B?T29ZdmF3em1xR1d3ek1KZTRmNzJUbC8xUEpoaXNpZGlCQzZEQm44VnExckJW?= =?utf-8?B?SWdhbkNmVUxBYkxuS1ZTNERNVDBZUXdqbjVVeHo0aVZ5NnpLY0hSeW5CR09k?= =?utf-8?B?QUZoWlk3VlZsNUVpbE85RkZMSFFrM0p1VTNtbnNMNmZVcDdBcjFsNkwzWGxs?= =?utf-8?B?RFd2eFJLQUxxdnl0VmQxaGJrWTlTK1ZEbFFNMFY5ZldsRlNKMXdROTJDc1JC?= =?utf-8?B?aXI4OFJTZ0xiSVlPSXp6M3FsMEdMaTNFTDNHTXJCVzVkME94UklsV1k2cmgx?= =?utf-8?B?TzA1V0NXYmxEdlFZU3FEVTl3VG1Ed2poL1pMelRSdzJGRXdCcWtoYTFnTlln?= =?utf-8?B?NlF3UGZ6THhOLzROZitKUTFjd2M3VzVQbXdOdStSQjdwdVhNS3ZSOGRpbjJo?= =?utf-8?B?b2pwclBGc2JUeks1UnV4VkNQMlRYQmdoR3FtSHZQemJsMXI0TGVRNW5KQmhC?= =?utf-8?B?MUV4R1JaTktvekpxV3F0aGtCaDhuaGFEMVJSQkhYaEV6bUlvQkNNMngxYnZY?= =?utf-8?B?QkxQNmJPQ0ZOeFRiUDRmdXJJTUpVczNJaC9BU3JEZGJ2SVkrOFRFaEczODBX?= =?utf-8?B?Q0N3N0tVM3dGVlFoY2k2NmNOZFF1QWE0MGhPSmRwcDFDaFN3aDVLc1lnVmRN?= =?utf-8?B?bGtNQ0oyQ01ZNlNrQ0xxZ1dhUTlZbUhxbktKa1dzTUdtSWZ1UE5BVEdQTkgx?= =?utf-8?B?UTN6NWJxNU5YWEp4dElpVUJTd1NrdFNzTnhzcmVTdVUvaXhuckhGNDM4TC9X?= =?utf-8?B?Q1BGa3QzMWFTTUtYY0FPbnk2S0ZsSXplQlBMUGsxblJGMWNGZWZkVkJWTk84?= =?utf-8?Q?alZPfriWPlifSFeKuHbFVHRLqzyFRYNSlANSB?= Content-Type: text/plain; charset="utf-8" Content-ID: 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: 4952dbfb-f2c3-4459-cee8-08de89c407fb X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Mar 2026 16:40:16.7726 (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: ECF3ls8deg3gWNX4zoXFRw7uZDlxYxATcBI1Md2KcFAtLui0reVq3ktsDRjwvFJA8aj6wNjODKC4n6ZbKuj6byDOXNdLaBV1JSO54tTaOdM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR09MB7005 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: 1774370452014158500 The page table walker reads PTEs using address_space_ldl/ldq which use compile-time native endianness (always LE for RISC-V). However, when a big-endian kernel writes PTEs via normal store instructions, they are stored in big-endian byte order. The walker then misinterprets the PTE values, causing page faults and a hang when the kernel enables the MMU. The RISC-V privileged specification states that implicit data memory accesses to supervisor-level memory management data structures follow the hart's endianness setting (MSTATUS SBE/MBE bits). Fix both PTE reads and atomic A/D bit updates to use the explicit _le or _be memory access variants based on the hart's runtime endianness. Signed-off-by: Djordje Todorovic Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- target/riscv/cpu_helper.c | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c index c28832e0e3..b3d33da13e 100644 --- a/target/riscv/cpu_helper.c +++ b/target/riscv/cpu_helper.c @@ -1365,9 +1365,13 @@ static int get_physical_address(CPURISCVState *env, = hwaddr *physical, } =20 if (riscv_cpu_mxl(env) =3D=3D MXL_RV32) { - pte =3D address_space_ldl_le(cs->as, pte_addr, attrs, &res); + pte =3D riscv_cpu_data_is_big_endian(env) + ? address_space_ldl_be(cs->as, pte_addr, attrs, &res) + : address_space_ldl_le(cs->as, pte_addr, attrs, &res); } else { - pte =3D address_space_ldq_le(cs->as, pte_addr, attrs, &res); + pte =3D riscv_cpu_data_is_big_endian(env) + ? address_space_ldq_be(cs->as, pte_addr, attrs, &res) + : address_space_ldq_le(cs->as, pte_addr, attrs, &res); } =20 if (res !=3D MEMTX_OK) { @@ -1566,12 +1570,24 @@ static int get_physical_address(CPURISCVState *env,= hwaddr *physical, if (memory_region_is_ram(mr)) { target_ulong *pte_pa =3D qemu_map_ram_ptr(mr->ram_block, addr1= ); target_ulong old_pte; + bool be =3D riscv_cpu_data_is_big_endian(env); if (riscv_cpu_sxl(env) =3D=3D MXL_RV32) { - old_pte =3D qatomic_cmpxchg((uint32_t *)pte_pa, cpu_to_le3= 2(pte), cpu_to_le32(updated_pte)); - old_pte =3D le32_to_cpu(old_pte); + uint32_t cmp =3D be ? cpu_to_be32(pte) + : cpu_to_le32(pte); + uint32_t val =3D be ? cpu_to_be32(updated_pte) + : cpu_to_le32(updated_pte); + old_pte =3D qatomic_cmpxchg((uint32_t *)pte_pa, + cmp, val); + old_pte =3D be ? be32_to_cpu(old_pte) + : le32_to_cpu(old_pte); } else { - old_pte =3D qatomic_cmpxchg(pte_pa, cpu_to_le64(pte), cpu_= to_le64(updated_pte)); - old_pte =3D le64_to_cpu(old_pte); + target_ulong cmp =3D be ? cpu_to_be64(pte) + : cpu_to_le64(pte); + target_ulong val =3D be ? cpu_to_be64(updated_pte) + : cpu_to_le64(updated_pte); + old_pte =3D qatomic_cmpxchg(pte_pa, cmp, val); + old_pte =3D be ? be64_to_cpu(old_pte) + : le64_to_cpu(old_pte); } if (old_pte !=3D pte) { goto restart; --=20 2.34.1 From nobody Sun Apr 5 13:08:51 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=1774370492; cv=pass; d=zohomail.com; s=zohoarc; b=TEte+EAfIx/1DJh4Q1234fnRH16T2brK5V6DCfv0izyAtr4R59QgLlhcgJTldg73NPmztDZ2uSi1K4VDeVYeoLrBi0KosLa4KvjPgvJVcS3Hj1hGTslCqkLjfo+WytA9IrNureosmcFpF9gY918YvM5IHqBZaqOfaQ+R7gnRvYs= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774370492; 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=8M5Z6S4ogZPxT8/5fxf7hLQjOASU894pYLJSpuE5fis=; b=JlISmkWzaoMzE7YLWB38UZGIW6Od1n+3bCiEswmEMZbVTYE8xn8ET5ROPwV0/Rrxi6jwy8xOiPIjzlBTMoq8xXLCZPimxY9akFHPH8ulovpeSq9bXAjYgiV/Px0ETTQeoqoWQWRF394xLL1NVDSgKlAv5HBCA9JBcGWk1wOPdBs= 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 1774370492134153.00043853326883; Tue, 24 Mar 2026 09:41:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w54o3-0003ly-BV; Tue, 24 Mar 2026 12:40:39 -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 1w54ns-0003jZ-S3; Tue, 24 Mar 2026 12:40:32 -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 1w54nq-0005Lv-6A; Tue, 24 Mar 2026 12:40:28 -0400 Received: from GV2PR09MB8755.eurprd09.prod.outlook.com (2603:10a6:150:358::6) by VI0PR09MB7005.eurprd09.prod.outlook.com (2603:10a6:800:243::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.19; Tue, 24 Mar 2026 16:40: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.9723.030; Tue, 24 Mar 2026 16:40:17 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yIEpJqKZrUpEVZVXDvKimLsmRkUMetCHbGeKkf4+ksim+fZw2oy0p8JJb97ph5eA6rk4fv0pFaX4kjj26zcLj/dwHHJFvZQW9loEgRXZkOsvtP4Htnc0s3Dy5QComb/tKytwHFvp32OraWUSaJijHA4Dgdda13I4xi3pSsNGS47fhxnDfL+if5yXE/qqNjfLZxV725YZBEjHBP2rx8P3qIlc2miZxzQZcTAmYZCEAqH+5BMUWbU5unsDDIa4RLE25EWkQUCKJv3tbrLe5/5pMW4wRAaRMz0JsLyhkMZD2fSec3+fLD2X69qAWC5GHG1132UMyzRjpUUz4Jzp59Ek0w== 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=8M5Z6S4ogZPxT8/5fxf7hLQjOASU894pYLJSpuE5fis=; b=Bs50i2T5spRSgo15CVlx5quJBY9axggq9jpSGYOP866weiGHbMCR2JsLPglorqHqFDITNT1xm+3+AfHRIigU79idAHwFuJYdo2YPJJG+sZ5TD264FH3dnlRCDfL7m4hLG6PfOu9jZlDmB0uK2JKV4h5AG0RdNcfEl5R6Ze0GxiARL03FPmnt4TIh6YWS4lgUl3aypJTktbuxNAI6z4AiVO5YL7eR7d3G0Pp3L4JwxUai8IWyJNmy/lBiF+cXYxi9etaBGxN8Jl3ijDZFJXLPHc6uokaXeaOVJOIu5HSChv8L8MQi5zELTvH3I8V7j/ZMqxSR8gVBlrRp3AFrkbz72w== 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=8M5Z6S4ogZPxT8/5fxf7hLQjOASU894pYLJSpuE5fis=; b=kI54WT3BUXttKYPdcTO7/pcX87NJXw09zst3UZotPkGCGBnJvdM9cn8KNPgSIUPmt9envj8NTinRTum2YyGE/1+UtwsecUgVIDnNtMSndmiDar07iA4v6BsDRK5Y+vQ8paJ5Cht02UCwqlun60gtYrksuf4gi0qGTIEWyh82u/5FjVmKiCoV4TiFCeNGULVSl4LWy3KcFsfTBlgqoYZg4qEvHuta+wS2aspl2yhopjx9LHJypCqpVaVeo0TLOItShIHRT6G3yj7ne+qmLn57G9+DF7DoQGukFUOcnShVzUtC7Fozvd4EBpi4e16C6xISIAkYzhqU8Al8Ax2+oheIaQ== 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 v5 6/7] target/riscv: Support runtime endianness in virtio via sysemu callback Thread-Topic: [PATCH v5 6/7] target/riscv: Support runtime endianness in virtio via sysemu callback Thread-Index: AQHcu6zltcJpEkofREi367s+vheM/A== Date: Tue, 24 Mar 2026 16:40:17 +0000 Message-ID: <20260324164007.549397-7-djordje.todorovic@htecgroup.com> References: <20260324164007.549397-1-djordje.todorovic@htecgroup.com> In-Reply-To: <20260324164007.549397-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_|VI0PR09MB7005:EE_ x-ms-office365-filtering-correlation-id: 561c1ef9-8ea1-45dd-327a-08de89c4084d x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|376014|1800799024|38070700021|56012099003|18002099003|22082099003; x-microsoft-antispam-message-info: e2n2032DpORTzvwsEjR8SDgkJsVo4aayKQgweaR63ZjJeNpIYoVkQ+PpC3hK5ssQDvvbhd4RT9EX4lBQ2TugQ1HjxljNiS8eegts8WffTJijPtoYuG/tbjHrnqD49upywd5jOmQsMfiFeIfm75K6t4qcisw1+itSzri4Dz6qS+Z4d7E5CD10JymYBwoKzG7ymYD0blIEvK2nRrtHGyYqw9BoVJgzaGnKs0j/su6XjVveuMqa25AFYl8TViO1l2FlaOyhLU1zHd0psdNTJNfe/pQWZ3r7/r4SI3O4EU+hzfM2Xa5ZAjfCL8dupMZpc6hk9WDNuaS+V4sWE9H4nHek/QOlAeOyHJX/yRzSaheijWlfnp+Z1i146C8GDnyd29Mfwfy4mIV8pGycMi4hQhbsOj0+4EmSiRBm5HLbtfMxNf7dzN2kSHCQraZsGnga2RwdIlZtV7qJBGMP3GjNKC57c+IIgLrvoA4oZ7mynwpQvuqEj6F9b8RvVtWp8HJjfOsOZZpZrLG+xEy2Efg26ZCvWpHlUo7lO8bhvE5+Yzahjfp1HoV9Azl2x4y50D7t81223g4+JlWQgVKaG2m2RGz3dOt8h4XTTKVFCKtW2AIF4eXtQaNxe4dqhOhNaPqxG0iU5uL4MENd7Sawnwiup4dPLoC1rCLfj1ssDzn0NQGtuXp8po+Y9N6wmj6FEHYi3e0rRAEe0CtHXUSeYOErz1zYoJPVg3qg3rgOSQXCqpYzClswMD47IKpQ9q9GcIz1YrTt6iangGO8UlWcNPDwMcTuFmUko2UFXpYgR2xy1EphzOY= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:GV2PR09MB8755.eurprd09.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024)(38070700021)(56012099003)(18002099003)(22082099003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?sn4bTZ/cgbN7o9sfiae/LJOCINxopw58qA9aYBcmU0QnIjQN49ZjznQrzq?= =?iso-8859-1?Q?eaQ2ZPjZq0ldwuHEiXgPVyYCeCOEp8M2zibS+wF9EbAzaeZpDPpEzPp6E6?= =?iso-8859-1?Q?4L4EJGd2ctwSdXdvkPbxtbP8bscdn4y8EVwdJLPyL91jFKgAUQ4taaGUb6?= =?iso-8859-1?Q?83JrVl/kL7DoD5qJt0KbiP6+rowIwNH3/8mP30jrNzCzzKViJpzXiBVEF7?= =?iso-8859-1?Q?VSFJ3GBqUYjEF9AuQAl/KMlKiW6LYhtVGmOW5RLXYnYOm8OrSPtonoT8JN?= =?iso-8859-1?Q?A7KFRgigqNJrHUmLFowgFt8c8g5c8oEWdcekRism8lvIca4ElHZ6qVjWJS?= =?iso-8859-1?Q?l/WHabPfOL5KLMRY322zq3sluyhwda9EEDeMJRqisPxkLr6yBP+HUXILQV?= =?iso-8859-1?Q?jbH9DErkC4SijyZ9zn23ramqOLCUa9NGIyGiiPlFwxxEufezuVERhKiHuN?= =?iso-8859-1?Q?y76GQljIq5TFy3B3brMhjIQmH9bQ5Vw5fn9bx6z3wXUNE6LvtT2PvPTZWS?= =?iso-8859-1?Q?VNmQMLnaysowpgRU4pdDnzf7AhuLsJ/B6H9eBw7KIzJtTvaF15cVdURnkK?= =?iso-8859-1?Q?M3buRUoeYU0GFkFZ0EZ8W8+UEkExCHd0OKbsCnnDAEvvbgbgOwKuAF1PoR?= =?iso-8859-1?Q?C0McENXbGMKvYajEIeh4aWWJvCmRlR3D0yqGT6aJQlolHSeAgOz36y4r8S?= =?iso-8859-1?Q?KJ9oQHmaCRaJn7PA5kSZwmL9uXy87R6Y7GJXUmFHdtermrbi7nAfEZ5wyS?= =?iso-8859-1?Q?k4tCgvC1LxWnyf81Ndb7ZUsCll1dVWq9BPMfgd0MjDDsq6bLiZov4LYa82?= =?iso-8859-1?Q?DlcV4orx0ZGE03+PLVnzOGSthHWtmphMxS8s4iHzImg09Y1glr4eYdyKW9?= =?iso-8859-1?Q?1yTM0/40uTjkgEjD77elWz/AZsd4YEmINDlmPBuJn5XcoysPk0cZccjQJw?= =?iso-8859-1?Q?QKDjZYTcu0tu8A5YT+swGb4zBemoSDO1A84JGZ56VIF8J9rjQwOS9jWoYx?= =?iso-8859-1?Q?QYZBEP1PDEwOrptJdVN48F2U2AyLpOSIJCdVzpyB0JK4tuOfTb1x7mA9uc?= =?iso-8859-1?Q?JmPYc8uz/M6STkQDSWC1wogyYpHFhCwOnHpCzXzo7pMU+c3ekUCG8hIY2m?= =?iso-8859-1?Q?m53Eylxiy88vDVbhpPAzzW6v3oXukAz3Z/y8tx8JeQHS/gBm/FQGl4IA7u?= =?iso-8859-1?Q?85UT+/rk8v+sVcqrFbzFtlxVLbUNAERC89iSaH6U0+J9OT4jaq6ttCC7+5?= =?iso-8859-1?Q?bMt27aMM+I6AMv8YJ6p2PMgI1g7B2nDFofMBz36nOpjqI9RcwGvVtRdExj?= =?iso-8859-1?Q?ZaBfHrUroAAP4wEvpWUZ9daYcg2zHHywD8o+pq+XinuG0qGJiyrJhMlo5Q?= =?iso-8859-1?Q?BkBefatbG/UNl0VsCRrYsjEIXmdf9C3JOe1UKgXVRrurJ9zQ4lF0rFopni?= =?iso-8859-1?Q?OGn2sMm/sOSUqNHBVo3D/oj0NWaeIkxiCX/yFVS+17YIPR8rSgEadAkErg?= =?iso-8859-1?Q?0aJ2JpCbL2lVW4svE+gtJCgN7cpJFFGr9zlJftAm8lqPnc30t6YIR2OHjN?= =?iso-8859-1?Q?RxDgYmyXyU5uLo2YdZqn5keYX5uh8re2CPKNRYLK6dg4nwbhN6NOhU2Ivg?= =?iso-8859-1?Q?qTKg7+G+NYJgboEln6SY/KH7TkKLJTUl9KhzMuaKagyaE0WQt5x8liFsSS?= =?iso-8859-1?Q?3hYTW1a4yMLehl5phLKq5beG3955jUan9Lw+qV9TctOZEtZX5t2O1H4q93?= =?iso-8859-1?Q?6yPeqYM+eYk6Ycp1ZBFWAPDXpvzT9yzf1uLWxGEY55Yhd2XOWDZIsVPGRL?= =?iso-8859-1?Q?EGrv9Il7R6hvTD6OlwKZe3q+0UnVePokxKyRGVXW/2agtu1Ej699?= 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: 561c1ef9-8ea1-45dd-327a-08de89c4084d X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Mar 2026 16:40:17.1052 (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: EA4ld2/3CoxpipsB0xhzZbKv8b3dAYpkTMO/8YPXz3pGx1J+5S7fE9GV+UZkD9wl/bj8px4EbRnSTGhKFgVo1tl9eesL/2ZxNnsTGRVwBlI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR09MB7005 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: 1774370494905154100 Content-Type: text/plain; charset="utf-8" Implement the .virtio_is_big_endian SysemuCPUOps callback for RISC-V. This makes cpu_virtio_is_big_endian() return the correct endianness based on the hart's MSTATUS MBE/SBE/UBE bits, which is used by virtio_current_cpu_endian() during guest-initiated device resets. For bi-endian RISC-V targets, this ensures legacy virtio devices correctly detect the guest's runtime data endianness, matching how ARM handles its bi-endian support. Signed-off-by: Djordje Todorovic --- target/riscv/cpu.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index eed5afd27e..f813acf579 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -32,6 +32,7 @@ #include "migration/vmstate.h" #include "fpu/softfloat-helpers.h" #include "system/device_tree.h" +#include "system/hw_accel.h" #include "system/kvm.h" #include "system/tcg.h" #include "kvm/kvm_riscv.h" @@ -2713,11 +2714,21 @@ static int64_t riscv_get_arch_id(CPUState *cs) =20 #include "hw/core/sysemu-cpu-ops.h" =20 +static bool riscv_cpu_virtio_is_big_endian(CPUState *cs) +{ + RISCVCPU *cpu =3D RISCV_CPU(cs); + CPURISCVState *env =3D &cpu->env; + + cpu_synchronize_state(cs); + return riscv_cpu_data_is_big_endian(env); +} + static const struct SysemuCPUOps riscv_sysemu_ops =3D { .has_work =3D riscv_cpu_has_work, .get_phys_page_debug =3D riscv_cpu_get_phys_page_debug, .write_elf64_note =3D riscv_cpu_write_elf64_note, .write_elf32_note =3D riscv_cpu_write_elf32_note, + .internal_is_big_endian =3D riscv_cpu_virtio_is_big_endian, .legacy_vmsd =3D &vmstate_riscv_cpu, }; #endif --=20 2.34.1 From nobody Sun Apr 5 13:08:51 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=1774370496; cv=pass; d=zohomail.com; s=zohoarc; b=ZuuvqvItgkYaITW6NkpVZXlOkkKIzcTTOeWTP/qDuy4dPFY5HA4rFTAW3MfU6t6cvSdtxDLTFzES+jLuLJfXsxc0EmZbgqC/v2EQd0zLAxE8bSD5JXfo5a1pkamNYusIwYhRJqsEjh8pcCi/x3ViMoGsW5pFYTXN4t0Ibu5F684= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774370496; 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=rJ+8VnVISIaiAx3b/US0algMNION4gZYqhTqPzHdZEc=; b=cXwdO4QBGtkAHHdY0GQvZprnek1USmR32OZbD6I40k0ypYDuidGNwjpIq1N2s/l3lOUP6ZzF9f7M9jq3VP9eSYbyCukztd9ykn9weIj8YAXqHPePqO6wlDc4boHxEn793ESFvGr37qayeGsI0/eNtC+kQMqFCKbAq6r26vRDpgE= 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 177437049634399.65323226684825; Tue, 24 Mar 2026 09:41:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w54o8-0003pb-33; Tue, 24 Mar 2026 12:40:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w54nx-0003kc-Bd; Tue, 24 Mar 2026 12:40:34 -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 1w54nu-0005Lv-OL; Tue, 24 Mar 2026 12:40:33 -0400 Received: from GV2PR09MB8755.eurprd09.prod.outlook.com (2603:10a6:150:358::6) by VI0PR09MB7005.eurprd09.prod.outlook.com (2603:10a6:800:243::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.19; Tue, 24 Mar 2026 16:40: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.9723.030; Tue, 24 Mar 2026 16:40:18 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cYD2HyKDyitzXmTXI3bNfmPYU7LifsMZ35nfN3PkMkMggynkCxZ6hIBx/8uZvabPg1uBgfU/PW3faxzB6GEVPNlMcC3/FxWHhlCfyR2M3EhoPRUZoMCpYuriC0N5BSbQe280+Qj7UKsg9DSOEBcGqqCKg4Ul0iJhH0BOfLH6PTkLatV9U2HoJX4vSWujFsTBRswh5SaqQh435Emyijb7363ez3N70e2WUZ1SQqMBd6QFEbmDVeuctiZex6N+zPYbG1N72gRZHCUZYbXP+Fg5np24YcprZDqR0gF1XtCr/5YRsYIZqdChtS9L6SzmertFWh5nhqfmbupvo86pq6HRDQ== 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=rJ+8VnVISIaiAx3b/US0algMNION4gZYqhTqPzHdZEc=; b=Q+fUsgYrkYz3YeJ048XMoJdWWj9NwPXnGmMfCXxC/vEmclulbA8H7X0QnPURBSOZToQvhIyRJGIghWiI5mCIbp7EaQKT3Le5mlWcseYRpzG6Je8LZqoM+hwCzCqaein3l9mRi82LFS5setZkSk+1YgEv4Zz4sOoU1QHlIbAck/7AIlHIX0ZP5S5p4rNUKswFXrVCJjm4wEvmDFg9JRJN7AdUTkYLgN8XO9fPj1NG/lQOCXVI2FZ6YC790nUWTcQ7gW1H0bsrJe2J9KMEbyf4sVYGtHjSjLJo+BMw8t8gTB6FfFvxue/zKbcpdhEPq1DOnXRB532MpMR38nC3sKDXLQ== 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=rJ+8VnVISIaiAx3b/US0algMNION4gZYqhTqPzHdZEc=; b=edDky1n++1ygJxJXfpbhy9/e7AWxjC+Qg3n1HhtYORyOMjTAdsnd5AqFNHRlaxzsv4IcTHlijeCn94ZPh0i4rqNEer5NepM23IfiprBrIDJXpvl5nCrtDBSv8LRkG7kZZbzo/KlzySiXFC5kb0AdL5z/1Q/mt4b1AHS5rwq7+cDXgPqHXCPgzWNhtzoeT2A1l/v19viarsAWGx3VdEkmATnoIXA4lpbRCpN5ouH8EJbouIuVxaeCcEwK/yiA1AABJDSB+p0WgfUE65LAdBnaiYKUwyKdRznO0o/fgFP270pCa049/CUWvUJWYntuhSkIRSBCqAqZQvT7IobjoobOOQ== 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 v5 7/7] target/riscv: Add test for RISC-V BE Thread-Topic: [PATCH v5 7/7] target/riscv: Add test for RISC-V BE Thread-Index: AQHcu6zlqiKktxJWSECRq3yCOJ8gIg== Date: Tue, 24 Mar 2026 16:40:17 +0000 Message-ID: <20260324164007.549397-8-djordje.todorovic@htecgroup.com> References: <20260324164007.549397-1-djordje.todorovic@htecgroup.com> In-Reply-To: <20260324164007.549397-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_|VI0PR09MB7005:EE_ x-ms-office365-filtering-correlation-id: 553f3425-cb13-4e13-c21f-08de89c40885 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|376014|1800799024|38070700021|56012099003|18002099003|22082099003; x-microsoft-antispam-message-info: t71dhW8iOQ4AuWS8iDLM5ijHpTLnFzPpqovQrlzlrMIjJOB+9y5Ay5zvxNIUX8Yy2nNadquznDtupmCL245r+fbxHo8KYtms4XrmM227eUxFJ05hfzaYnKxKZ5fkI1uY8Ypibzq+VciS9EClVFE1EeF3Dk9uZCnndqhONG9MNccYDMo8RZ0KZ4xTNz/+Ouda/aI1J8fN2EIpGY50fKdIrD5BvlZRiAjK9WHHOcycdWHyyHY2CRQqRyWP97NuvszoVSnKyKxeBsWRwS0jL8ME8/6ElR2hmYo5N/alqCZNWYh87e/DFe8o5Dr9e2CRtXwxse1qcHs1tA2Oo3sS2UUg/uIN1lEBFNiWO7CPQpflsxwnl3E7wkZ6ywfn+566cXIGATL5hf1bBW0BJAXOIbG5PxDmDzFBYIOFYQhX9U5Xs41+oN8x1WZgAF4B80zATAffoXn8ulXGCZNYkJRdObxtRwF9CjpmQwmLj6/ZE33z5SAC13kGndxmERBUwAqBmxcpwQ94XZ072xWy4LfXScQObpVxXPVHSuZXeieLQjDj7OwolCosgTO2V35EtYXg7ERJj4edFpYK5HVelJCIjDV0I6qaQ0zZneAgaiNZ2/+TPd8iD2/3FpZ5azlLwG/ezNRMrkeAtXtYrjfS0e1bG6WhK+RKY/dVUMfevop1smxHh3WLa+uFG6/xGBlTyBCxrDg6l/B7IFdtXKKBXDzXTqmA2VehHpfh2CaUVZdG58eYoePZjch42rAJEGVCSDl9MW44wvGMqyWfU9DtAXOp3Sdg1HB08+XGYybmBbZ3x88uPPc= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:GV2PR09MB8755.eurprd09.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024)(38070700021)(56012099003)(18002099003)(22082099003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?0b5vp51aVCMYoL93Qmnbs++yE6aoUugZQhHieyM64v2a1xLqDsAOxx8lea?= =?iso-8859-1?Q?iEoWK/N3jN3mCUb12u0f2XljudM5RZY1rHoK+UmLf/zJ3wDniOaOeOyIvU?= =?iso-8859-1?Q?JBZQ7dq6mApx9knZnyP4xrVkKPnMHrOJ6BFVCjJeVV4QWw+QKupgg43hUt?= =?iso-8859-1?Q?h/MbcL0XEEXyM7zJe0PMybmvqcapWXHz6SMz+aackQtTyLB6asqxrvZVmW?= =?iso-8859-1?Q?oGq0BJ6wFFtAEvH9S0v0zJchgmGwOdU6mcPfUZA37PsWBzUDv/RK6BwT/E?= =?iso-8859-1?Q?Vet0+Wetafld3fK8sxBWsoFP/pnk4fuU+sWalCG9MVcghUpgQ8pjtqtcxt?= =?iso-8859-1?Q?TOa1MQUFsZBAq8B/WOtxJIf2VblM0zjm7ubr1RkuFCXdxWvLEqDg0hbnBu?= =?iso-8859-1?Q?tdfG/rPl1HT4Cbfnb4gTj1422XHMluoUhfeAAzcSZbD0uIPc0tzXr0YhPn?= =?iso-8859-1?Q?B3HjcaH/MJ1FEMd0hEs2LSYcgyyhn8S1a2TcwsqT8hGaRMhgxM/RUjDAmS?= =?iso-8859-1?Q?85GdqewwNu2cLpuz1xnSvcH3CjcOsqH0TQmW6Y7WmcU11Gj3cfxX/FzQ3b?= =?iso-8859-1?Q?8I+k2NzLqtT9vZ6jpLpV3+Rxokq1Q/XEvwKNpAbLEE4wBynBfAMaFafAvn?= =?iso-8859-1?Q?3JeeU8H4ovd7eVysgcVAmwy/UNAEZD3+2rrc6C+2M+PorjKBlbA8YxW8Hs?= =?iso-8859-1?Q?+4VzVtzpn0Nz895yboNaEVXllxT2eXnPRW72IHeBeSh4kBjtjbgPwWaHe9?= =?iso-8859-1?Q?TVuB3YkZ5H1bx7RAqMpTVcJFqUQpYyd1ELL03YpsrKe6MUa/AXRxjFR9pB?= =?iso-8859-1?Q?inXxRd68jE6SUCSZTTQRn00gYcSBpwKBAGoUEkUC0A+/zfoZusA4HHt7yC?= =?iso-8859-1?Q?j+KWcaXGMvEN5YSjqdoi0QUZk1CcWs8vvZh2ZR/JdH+Ym1t9pzSm0yKvJ1?= =?iso-8859-1?Q?QCTrLsA3087oKTXaga2F1rhaCEZ4511ZnfY8BwBGQYnOnE/tVDU6xTkgLE?= =?iso-8859-1?Q?ZzxrdmDtZLbm66SdWIdC1YnWHrCntdwbjQcX8W+tlQRQQXq0mrPKkLCCiA?= =?iso-8859-1?Q?LdINJSIUwFUYY1JVoMfu5or6/9vp+HlIYzrfPRB8Oa24AWfPmSL2tJgZMC?= =?iso-8859-1?Q?rvAS/ukSTvAxz9L0/wJXAYgs4bIlZRdNCnpVRejD2Fh1yAwJUtUm2PKqhH?= =?iso-8859-1?Q?5xI2cPz0GQq+OjtVlRna6oG8fJjhcSbseIyul7OTjoHhhwtk/BRstfy9dz?= =?iso-8859-1?Q?VveQgtdVPnhnW5641OBWzqvBsUkpomkMqgBJdsiOvMw9fgoMnr6pARuWQ7?= =?iso-8859-1?Q?GC0AkRMU5SCu1ZxLFLojK+jTUjx1M/i3BFcV6A3rHN0AnTpmEf54RfH9SE?= =?iso-8859-1?Q?qYZ7rQlN1bds0R8qamJHrPIGuxXDg9mljLZBA2hf7TG7Ppv4uhTQxhLxnj?= =?iso-8859-1?Q?hCYNGeDOhHlO5ZYDGN2nPrCII/qOWUSQEpxTArTrjedsvToSq1wiiElwQ5?= =?iso-8859-1?Q?WId3+vgEx4Bp78Y/xL1KBvQ1IVut4mgJwu1PWVP/66uf6HTfeFjhsworhZ?= =?iso-8859-1?Q?2gZ1nu/MAml4d43ggFk16AgxUiRo0qyb3JdYs31i/FfIvxUU/VfDHOQN4n?= =?iso-8859-1?Q?f+Sgi/fxEFajax57d1okM7aqI59NRpozBdXUH45mt3BPq7MUzr84yqxEv9?= =?iso-8859-1?Q?ftEsYMEZpwaHjM4zr7egoRRVsyvlnmtx76E5ZlhZik4m7Vhld0w/u+alvw?= =?iso-8859-1?Q?LogX3MtgTaHLj/gkOkDW8toFlXkrUPgNPZb2la8tr4om71T/ZCNH+lJnU7?= =?iso-8859-1?Q?qLvuU/bPvUpy9M1jLD49s6tlYSVl6Gr1raY2HzydVKKzzPafHg06?= 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: 553f3425-cb13-4e13-c21f-08de89c40885 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Mar 2026 16:40:17.4770 (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: Mw2RVOnUlgdgEi3lD7lNr9277IMuZyVVCZTh6Q6cnXBB97DXCETl/Lw9dvNgl1xnyfo+L1UMwnDbSM8+KhwCXUzMXQccQICyy2mBAOeCSxU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR09MB7005 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: 1774370498006158500 Content-Type: text/plain; charset="utf-8" Add functional test for RISC-V big-endian. Signed-off-by: Djordje Todorovic Reviewed-by: Thomas Huth --- tests/functional/riscv64/meson.build | 1 + tests/functional/riscv64/test_bigendian.py | 57 ++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 tests/functional/riscv64/test_bigendian.py diff --git a/tests/functional/riscv64/meson.build b/tests/functional/riscv6= 4/meson.build index b996c89d7d..d06d6ea112 100644 --- a/tests/functional/riscv64/meson.build +++ b/tests/functional/riscv64/meson.build @@ -11,6 +11,7 @@ tests_riscv64_system_quick =3D [ ] =20 tests_riscv64_system_thorough =3D [ + 'bigendian', 'boston', 'sifive_u', 'tuxrun', diff --git a/tests/functional/riscv64/test_bigendian.py b/tests/functional/= riscv64/test_bigendian.py new file mode 100644 index 0000000000..9e0b3b7db5 --- /dev/null +++ b/tests/functional/riscv64/test_bigendian.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python3 +# +# Functional tests for RISC-V big-endian support +# +# Copyright (c) 2026 MIPS +# +# SPDX-License-Identifier: GPL-2.0-or-later + +from qemu_test import QemuSystemTest, Asset +from qemu_test import wait_for_console_pattern + + +class RiscvBigEndian(QemuSystemTest): + """ + Tests for RISC-V runtime big-endian data support. + + Uses a bare-metal RV64 ELF that detects data endianness at runtime + by storing a 32-bit word and reading back byte 0. Prints "ENDIAN: BE" + or "ENDIAN: LE" to the NS16550A UART on the virt machine. + """ + + timeout =3D 10 + + ASSET_BE_TEST =3D Asset( + 'https://github.com/MIPS/linux-test-downloads/raw/main/' + 'riscvbe-baremetal/be-test-bare-metal.elf', + '9ad51b675e101de65908fadbac064ed1d0564c17463715d09dd734db86ea0f58') + + def _run_bare_metal(self, big_endian=3DFalse): + self.set_machine('virt') + kernel =3D self.ASSET_BE_TEST.fetch() + self.vm.add_args('-bios', 'none') + self.vm.add_args('-kernel', kernel) + if big_endian: + self.vm.add_args('-cpu', 'rv64,big-endian=3Don') + self.vm.set_console() + self.vm.launch() + expected =3D 'ENDIAN: BE' if big_endian else 'ENDIAN: LE' + wait_for_console_pattern(self, expected) + + def test_bare_metal_littleendian(self): + """ + Boot bare-metal ELF on virt with default little-endian CPU. + Expects "ENDIAN: LE" on UART. + """ + self._run_bare_metal(big_endian=3DFalse) + + def test_bare_metal_bigendian(self): + """ + Boot bare-metal ELF on virt with big-endian=3Don CPU property. + Expects "ENDIAN: BE" on UART. + """ + self._run_bare_metal(big_endian=3DTrue) + + +if __name__ =3D=3D '__main__': + QemuSystemTest.main() --=20 2.34.1