From nobody Mon Feb 9 12:12:24 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=eik.bme.hu Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 16363770708301022.2046508702481; Mon, 8 Nov 2021 05:11:10 -0800 (PST) Received: from localhost ([::1]:48306 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mk4QX-00086o-QD for importer@patchew.org; Mon, 08 Nov 2021 08:11:09 -0500 Received: from eggs.gnu.org ([209.51.188.92]:36806) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mk4P7-0006f9-AX for qemu-devel@nongnu.org; Mon, 08 Nov 2021 08:09:41 -0500 Received: from zero.eik.bme.hu ([152.66.115.2]:11355) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mk4P3-0006kv-W2 for qemu-devel@nongnu.org; Mon, 08 Nov 2021 08:09:40 -0500 Received: from zero.eik.bme.hu (blah.eik.bme.hu [152.66.115.182]) by localhost (Postfix) with SMTP id 77131748F54; Mon, 8 Nov 2021 14:09:34 +0100 (CET) Received: by zero.eik.bme.hu (Postfix, from userid 432) id 59B48748F52; Mon, 8 Nov 2021 14:09:34 +0100 (CET) From: BALATON Zoltan Subject: [PATCH] hw/acpi: Set memory regions to native endian as a work around Date: Mon, 08 Nov 2021 14:05:42 +0100 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable To: qemu-devel@nongnu.org Message-Id: <20211108130934.59B48748F52@zero.eik.bme.hu> X-Spam-Probability: 8% 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=152.66.115.2; envelope-from=balaton@eik.bme.hu; helo=zero.eik.bme.hu X-Spam_score_int: -41 X-Spam_score: -4.2 X-Spam_bar: ---- X-Spam_report: (-4.2 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Igor Mammedov , Paolo Bonzini , "Michael S. Tsirkin" Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZM-MESSAGEID: 1636377072986100001 Content-Type: text/plain; charset="utf-8" When using ACPI on big endian machine (such as ppc/pegasos2 which has a VT8231 south bridge with ACPI) writes to ACPI registers come out byte swapped. This may be caused by a bug in memory subsystem but until that is fixed setting the ACPI memory regions to native endian makes it usable for big endian machines. This fixes ACPI shutdown with pegasos2 when using the board firmware for now. This could be reverted when the memory layer is fixed. Signed-off-by: BALATON Zoltan --- hw/acpi/core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/acpi/core.c b/hw/acpi/core.c index 1e004d0078..543e4a7875 100644 --- a/hw/acpi/core.c +++ b/hw/acpi/core.c @@ -461,7 +461,7 @@ static const MemoryRegionOps acpi_pm_evt_ops =3D { .impl.min_access_size =3D 2, .valid.min_access_size =3D 1, .valid.max_access_size =3D 2, - .endianness =3D DEVICE_LITTLE_ENDIAN, + .endianness =3D DEVICE_NATIVE_ENDIAN, }; =20 void acpi_pm1_evt_init(ACPIREGS *ar, acpi_update_sci_fn update_sci, @@ -531,7 +531,7 @@ static const MemoryRegionOps acpi_pm_tmr_ops =3D { .impl.min_access_size =3D 4, .valid.min_access_size =3D 1, .valid.max_access_size =3D 4, - .endianness =3D DEVICE_LITTLE_ENDIAN, + .endianness =3D DEVICE_NATIVE_ENDIAN, }; =20 void acpi_pm_tmr_init(ACPIREGS *ar, acpi_update_sci_fn update_sci, @@ -608,7 +608,7 @@ static const MemoryRegionOps acpi_pm_cnt_ops =3D { .impl.min_access_size =3D 2, .valid.min_access_size =3D 1, .valid.max_access_size =3D 2, - .endianness =3D DEVICE_LITTLE_ENDIAN, + .endianness =3D DEVICE_NATIVE_ENDIAN, }; =20 void acpi_pm1_cnt_init(ACPIREGS *ar, MemoryRegion *parent, --=20 2.30.2