{"id":2215450,"url":"http://patchwork.ozlabs.org/api/patches/2215450/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/patch/20260324164007.549397-6-djordje.todorovic@htecgroup.com/","project":{"id":14,"url":"http://patchwork.ozlabs.org/api/projects/14/?format=json","name":"QEMU Development","link_name":"qemu-devel","list_id":"qemu-devel.nongnu.org","list_email":"qemu-devel@nongnu.org","web_url":"","scm_url":"","webscm_url":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20260324164007.549397-6-djordje.todorovic@htecgroup.com>","list_archive_url":null,"date":"2026-03-24T16:40:16","name":"[v5,5/7] target/riscv: Fix page table walk endianness for big-endian harts","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"6bf9d371901936c1761fae33dd4ac76c90d33921","submitter":{"id":90738,"url":"http://patchwork.ozlabs.org/api/people/90738/?format=json","name":"Djordje Todorovic","email":"Djordje.Todorovic@htecgroup.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/qemu-devel/patch/20260324164007.549397-6-djordje.todorovic@htecgroup.com/mbox/","series":[{"id":497314,"url":"http://patchwork.ozlabs.org/api/series/497314/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/list/?series=497314","date":"2026-03-24T16:40:16","name":"Add RISC-V big-endian target support","version":5,"mbox":"http://patchwork.ozlabs.org/series/497314/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2215450/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2215450/checks/","tags":{},"related":[],"headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=htecgroup.com header.i=@htecgroup.com\n header.a=rsa-sha256 header.s=selector1 header.b=f8t9cZ8r;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)","dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=htecgroup.com;"],"Received":["from lists.gnu.org (lists.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fgG4f1jLhz1y1g\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 25 Mar 2026 03:40:50 +1100 (AEDT)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1w54nw-0003k2-CL; Tue, 24 Mar 2026 12:40:34 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <Djordje.Todorovic@htecgroup.com>)\n id 1w54no-0003ik-EK; Tue, 24 Mar 2026 12:40:24 -0400","from mail-westeuropeazlp170110003.outbound.protection.outlook.com\n ([2a01:111:f403:c201::3] helo=AS8PR04CU009.outbound.protection.outlook.com)\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <Djordje.Todorovic@htecgroup.com>)\n id 1w54nm-0005Lv-OQ; Tue, 24 Mar 2026 12:40:24 -0400","from GV2PR09MB8755.eurprd09.prod.outlook.com (2603:10a6:150:358::6)\n by VI0PR09MB7005.eurprd09.prod.outlook.com (2603:10a6:800:243::20)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.19; Tue, 24 Mar\n 2026 16:40:17 +0000","from GV2PR09MB8755.eurprd09.prod.outlook.com\n ([fe80::939c:95df:4890:ce63]) by GV2PR09MB8755.eurprd09.prod.outlook.com\n ([fe80::939c:95df:4890:ce63%3]) with mapi id 15.20.9723.030; Tue, 24 Mar 2026\n 16:40:17 +0000"],"ARC-Seal":"i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=EziZwoC3xkGhuNQ4BCO96lM/1J2zsKTB03OEW8iI3FEUg9q6SkBMV3qoQ8AbiArKuFQhW5IO7GxeA8vcuWSYdTe21ufuNGvRBevtByLDM4bF9r7RBbFRVDv9RyiKPuZpT+U2NutlV6W/dZsRTIjRuytmBvkeM2/GrJ2yRjCb7He6pE26duKt2EiTm4GSe3bE9H6gmC9M0H6UnlsjhKfqfTQNFsat7WrLj2LQbPDG1s7mT6mnAfPCygubuPYX8f2ZjEACYr8JaW7EjS4rbZOXODvJJfiBHwU6wkTRgRxMOwd6QJM8zB3lECen06SgRZPCRGVJHUAmgGsu/RkwY18Pcg==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n 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;\n bh=TVlOz68TH6Rn29Kd8vfhWLfqyIhG54uGQnnB6efYGDo=;\n b=sYFER1XeKulTl3CgYr3hOiWHmUzuv0UtIxU13aR4iMuzY081U2vTzs5C+h9NeJnjhPn1ey/eF37XHIMbkMER8ycXROW6NgDT/r1Fmlb0UtACWBq0TuKFrhClfXk38SOfqZD0pK1DkQuIm7JcaCtLSzzxzrPiRZ/PVCQlRFbq4ZW9S0bAvdSvvAVCZ/C7k8jam44NgHElnuvVJ6Am1uGB9W85p2JUTVH89F6gqLfcOIZuBQRrl/zaAHzAQlwUg50tIuPcze1ReR4ceP59rr/9LPuFzH2MFZ0l17ZLZz/ncNqZr7Zqt4rjAqQ7xE92jkcDvy7+I1s//Uj2cqCC43LOvw==","ARC-Authentication-Results":"i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=htecgroup.com; dmarc=pass action=none\n 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;\n s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=TVlOz68TH6Rn29Kd8vfhWLfqyIhG54uGQnnB6efYGDo=;\n b=f8t9cZ8rz2zvqRmzB1A6bTQBLtolswypGC30HUgSHQ5jF+YAzTOtc7C4194+QYzugJeBptwluKyWA3SPkQVcyXmfyFFEb8ZBUyE4bSXD9iT68z5ridl0Xon3U7CzlGqvZpApkUXfpYkz7spUU606KXwhJrepz/LfEtPZbZKsC8yM/NN8hQ/daBPfpCOVb5E0pUR4Cc3INpxuy26BMIKYCZrX3TWjYnbOjl6TNJRgWozDb+HeQgk1zyeGrTaH04vgf5Ilap2G2YL1v/06nfYqweHoFSDkrDzPs8ANVtXG6F7bbIiukTkfJGDdwOCRHgjfMjtdnvfwdNHe/EOvB9f0sQ==","From":"Djordje Todorovic <Djordje.Todorovic@htecgroup.com>","To":"\"qemu-devel@nongnu.org\" <qemu-devel@nongnu.org>","CC":"\"qemu-riscv@nongnu.org\" <qemu-riscv@nongnu.org>, \"cfu@mips.com\"\n <cfu@mips.com>, \"mst@redhat.com\" <mst@redhat.com>,\n \"marcel.apfelbaum@gmail.com\" <marcel.apfelbaum@gmail.com>,\n \"dbarboza@ventanamicro.com\" <dbarboza@ventanamicro.com>, \"philmd@linaro.org\"\n <philmd@linaro.org>, \"alistair23@gmail.com\" <alistair23@gmail.com>,\n \"thuth@redhat.com\" <thuth@redhat.com>, Djordje Todorovic\n <Djordje.Todorovic@htecgroup.com>","Subject":"[PATCH v5 5/7] target/riscv: Fix page table walk endianness for\n big-endian harts","Thread-Topic":"[PATCH v5 5/7] target/riscv: Fix page table walk endianness for\n 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":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=htecgroup.com header.i=@htecgroup.com\n header.a=rsa-sha256 header.s=selector1 header.b=f8t9cZ8r;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)","dkim=none (message not signed)\n 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;\n ARA:13230040|366016|376014|1800799024|38070700021|56012099003|18002099003|22082099003;","x-microsoft-antispam-message-info":"\n 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:;\n IPV:NLI; SFV:NSPM; H:GV2PR09MB8755.eurprd09.prod.outlook.com; PTR:; CAT:NONE;\n SFS:(13230040)(366016)(376014)(1800799024)(38070700021)(56012099003)(18002099003)(22082099003);\n DIR:OUT; SFP:1102;","x-ms-exchange-antispam-messagedata-chunkcount":"1","x-ms-exchange-antispam-messagedata-0":"=?utf-8?q?Jpd/34T/+5uZteE85+VRwM6TBwbo?=\n\t=?utf-8?q?O4EfrBEAzMBe//3Td6rJCzy6PE6+fGFLZD6MJJjA208rd5OeYZOCB5IN99Xd9qqEC?=\n\t=?utf-8?q?YeIQwBf0Oq2/EhlLosmMggawQDAtoX7haOlVqroFVHi4ODYAel106oGZfGqNz7l+y?=\n\t=?utf-8?q?qwoBrLtnHqlB/i9YbpUJxGHHQsPO2ehKJOYBX6oRfQSdRS/a1SY7BbKMiSo279/2c?=\n\t=?utf-8?q?wZ9L6shkJDDszUJhsjKV1Ivy44NN8QbKFdH+d/TwyhC0tiYMdOeAp8GpBOrEUfusN?=\n\t=?utf-8?q?U6qPig1Y2Q9mXCHeV6Iypnn2V2dXpPwNcmOgJQBS5JFmfAMAcBwG0R+rYqbQONdmp?=\n\t=?utf-8?q?k6i3ZueGFRJf1dpwE8tPMeRQJ+PNBfpYRpK7aEfVqBb+TZLDB9Ae1xKU2QoX/OMUC?=\n\t=?utf-8?q?in3R5i1zyoma15NnXXf4IEqdrrj8enBynjT1qazY8F9fZv4n2POIwE6CaALVcpUtx?=\n\t=?utf-8?q?1SVD70WZmXHlsgHSWBIGmyAbel03H6l592jbwA0M85aJnH+vkpvllcrSxBLRBuym7?=\n\t=?utf-8?q?zJioE5ibiQXbJ2AwZGXKCRHecdjCH3KEDYckj8poQhkCRyDlGakRN6j3Ksod7duGl?=\n\t=?utf-8?q?PnxMOSMKFEeYef0pCy6bdEHxT8kpGnNn7jIQH9KMgIu5aGcQ8QzEx94HyAYsdn164?=\n\t=?utf-8?q?7jvj96V9mYcSG2j9fM35ZeUHiQYwLEN0qdyGDI7a4v7V2xR2b49kwN0HAjSXdJL/V?=\n\t=?utf-8?q?bQrG3naBsLwOihsoSuN7BuPmW22rXRIo5zVA9Cv1tMG5LH/8VmpJ5ezTYscG6yegG?=\n\t=?utf-8?q?fKthHSL2fGP7Qkpgr8w/8fqkaOT3uRo129cbku9U8BQsT9FphAkWejJgqBeCVASc5?=\n\t=?utf-8?q?w5l490NVQ9Hw7TUAFC5EVhUrjpIshPr0riuFHrEmtcJo3rqa8k77v4R82j7U+S6j5?=\n\t=?utf-8?q?P1YkS+sqaPWpaM0+R+6YgfZ11rzHvoJI1GhNW42OEWe+Z5zIjZAH394FDIStzdxuw?=\n\t=?utf-8?q?sEZDaAn2K011RsO/hFZLusVr14KsUtRu4Nya474NuzKAxvxVTbbyCLocdxEPuu080?=\n\t=?utf-8?q?Lli5Xc0nwxAWy3OHtJkKvN+fzSm3TT31y0jZcpzoYzfGat+rl2aP+WLjeOoYvawzm?=\n\t=?utf-8?q?qGWwzMJe4f72Tl/1PJhisidiBC6DBn8Vq1rBVIganCfULAbLnKVS4DMT0YQwjn5Ux?=\n\t=?utf-8?q?z4iVy6zKcHRynBGOdAFhZY7VVl5EilO9FFLHQk3JuU3mnsL6fUp7Ar1l6L3XllDWv?=\n\t=?utf-8?q?xRKALqvytVd1hbkY9S+VDlQM0V9fWlFSJ1wQ92CsRBir88RSgLbIYOIzz3ql0GLi3?=\n\t=?utf-8?q?EL3GMrBW5d0OxRIlWY6rh1O05WCWblDvQYSqDU9wTmDwjh/ZLzTRw2FEwBqkha1gN?=\n\t=?utf-8?q?Yg6QwPfzLxN/4Nf+JQ1cwc7W5PmwNu+RB7puXMKvR8din2hojprPFsbTzK5RuxVCP?=\n\t=?utf-8?q?2TXBghGqmHvPzbl1r4LeQ5nJBhB1ExGRZNKozJqWqthkBh8nhaD1RRBHXhEzmIoBC?=\n\t=?utf-8?q?M2x1bvXBLP6bOCFNxTbP4furIMJUs3Ih/ASrDdbvIY+8TEhG380WCCw7KU3wFVQhc?=\n\t=?utf-8?q?i66cNdQuAa40hOJdpp1ChSwh5KsYgVdMlkMCJ2CMY6SkCLqgWaQ9YmHqnKJkWsMGm?=\n\t=?utf-8?q?IfuPNATGPNH1Q3z5bq5NXXJxtIiUBSwSktSsNxsreSuU/ixnrHF438L/WCPFkt31a?=\n\t=?utf-8?q?SMKXcAOny6KFlIzeBPLPk1nRF1cFefdVBVNO8alZPfriWPlifSFeKuHbFVHRLqzyF?=\n\t=?utf-8?q?RYNSlANSB?=","Content-Type":"text/plain; charset=\"utf-8\"","Content-ID":"<BFB65B46A052744895E97DE2FE3AA6AC@eurprd09.prod.outlook.com>","Content-Transfer-Encoding":"base64","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":"\n 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":"\n ECF3ls8deg3gWNX4zoXFRw7uZDlxYxATcBI1Md2KcFAtLui0reVq3ktsDRjwvFJA8aj6wNjODKC4n6ZbKuj6byDOXNdLaBV1JSO54tTaOdM=","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"VI0PR09MB7005","Received-SPF":"pass client-ip=2a01:111:f403:c201::3;\n envelope-from=Djordje.Todorovic@htecgroup.com;\n 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,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n SPF_HELO_PASS=-0.001,\n 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 <qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"},"content":"The page table walker reads PTEs using address_space_ldl/ldq which use\ncompile-time native endianness (always LE for RISC-V). However, when a\nbig-endian kernel writes PTEs via normal store instructions, they are\nstored in big-endian byte order. The walker then misinterprets the PTE\nvalues, causing page faults and a hang when the kernel enables the MMU.\n\nThe RISC-V privileged specification states that implicit data memory\naccesses to supervisor-level memory management data structures follow\nthe hart's endianness setting (MSTATUS SBE/MBE bits).\n\nFix both PTE reads and atomic A/D bit updates to use the explicit _le\nor _be memory access variants based on the hart's runtime endianness.\n\nSigned-off-by: Djordje Todorovic <djordje.todorovic@htecgroup.com>\nReviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>\n---\n target/riscv/cpu_helper.c | 28 ++++++++++++++++++++++------\n 1 file changed, 22 insertions(+), 6 deletions(-)","diff":"diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c\r\nindex c28832e0e3..b3d33da13e 100644\r\n--- a/target/riscv/cpu_helper.c\r\n+++ b/target/riscv/cpu_helper.c\r\n@@ -1365,9 +1365,13 @@ static int get_physical_address(CPURISCVState *env, hwaddr *physical,\r\n         }\r\n \r\n         if (riscv_cpu_mxl(env) == MXL_RV32) {\r\n-            pte = address_space_ldl_le(cs->as, pte_addr, attrs, &res);\r\n+            pte = riscv_cpu_data_is_big_endian(env)\r\n+                ? address_space_ldl_be(cs->as, pte_addr, attrs, &res)\r\n+                : address_space_ldl_le(cs->as, pte_addr, attrs, &res);\r\n         } else {\r\n-            pte = address_space_ldq_le(cs->as, pte_addr, attrs, &res);\r\n+            pte = riscv_cpu_data_is_big_endian(env)\r\n+                ? address_space_ldq_be(cs->as, pte_addr, attrs, &res)\r\n+                : address_space_ldq_le(cs->as, pte_addr, attrs, &res);\r\n         }\r\n \r\n         if (res != MEMTX_OK) {\r\n@@ -1566,12 +1570,24 @@ static int get_physical_address(CPURISCVState *env, hwaddr *physical,\r\n         if (memory_region_is_ram(mr)) {\r\n             target_ulong *pte_pa = qemu_map_ram_ptr(mr->ram_block, addr1);\r\n             target_ulong old_pte;\r\n+            bool be = riscv_cpu_data_is_big_endian(env);\r\n             if (riscv_cpu_sxl(env) == MXL_RV32) {\r\n-                old_pte = qatomic_cmpxchg((uint32_t *)pte_pa, cpu_to_le32(pte), cpu_to_le32(updated_pte));\r\n-                old_pte = le32_to_cpu(old_pte);\r\n+                uint32_t cmp = be ? cpu_to_be32(pte)\r\n+                                  : cpu_to_le32(pte);\r\n+                uint32_t val = be ? cpu_to_be32(updated_pte)\r\n+                                  : cpu_to_le32(updated_pte);\r\n+                old_pte = qatomic_cmpxchg((uint32_t *)pte_pa,\r\n+                                          cmp, val);\r\n+                old_pte = be ? be32_to_cpu(old_pte)\r\n+                             : le32_to_cpu(old_pte);\r\n             } else {\r\n-                old_pte = qatomic_cmpxchg(pte_pa, cpu_to_le64(pte), cpu_to_le64(updated_pte));\r\n-                old_pte = le64_to_cpu(old_pte);\r\n+                target_ulong cmp = be ? cpu_to_be64(pte)\r\n+                                      : cpu_to_le64(pte);\r\n+                target_ulong val = be ? cpu_to_be64(updated_pte)\r\n+                                      : cpu_to_le64(updated_pte);\r\n+                old_pte = qatomic_cmpxchg(pte_pa, cmp, val);\r\n+                old_pte = be ? be64_to_cpu(old_pte)\r\n+                             : le64_to_cpu(old_pte);\r\n             }\r\n             if (old_pte != pte) {\r\n                 goto restart;\r\n","prefixes":["v5","5/7"]}