From nobody Mon Feb 9 12:28:46 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1488667442883300.64616570044154; Sat, 4 Mar 2017 14:44:02 -0800 (PST) Received: from localhost ([::1]:36802 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ckIPB-0003K2-KY for importer@patchew.org; Sat, 04 Mar 2017 17:44:01 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35388) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ckIO2-0003HW-3P for qemu-devel@nongnu.org; Sat, 04 Mar 2017 17:42:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ckINz-0000ut-HA for qemu-devel@nongnu.org; Sat, 04 Mar 2017 17:42:50 -0500 Received: from zero.eik.bme.hu ([152.66.115.2]:26779) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ckINz-0000t0-4v; Sat, 04 Mar 2017 17:42:47 -0500 Received: from zero.eik.bme.hu (blah.eik.bme.hu [152.66.115.182]) by localhost (Postfix) with SMTP id 66186745976; Sat, 4 Mar 2017 23:42:38 +0100 (CET) Received: by zero.eik.bme.hu (Postfix, from userid 432) id C82B874596A; Sat, 4 Mar 2017 23:42:37 +0100 (CET) Message-Id: <6003064214f099ab5ec9625e356543b22f01b9cf.1488665935.git.balaton@eik.bme.hu> In-Reply-To: References: From: BALATON Zoltan Date: Sat, 25 Feb 2017 19:46:03 +0100 To: qemu-devel@nongnu.org, qemu-trivial@nongnu.org X-detected-operating-system: by eggs.gnu.org: FreeBSD 9.x [fuzzy] X-Received-From: 152.66.115.2 Subject: [Qemu-devel] [PATCH v4 07/13] sm501: Fix device endianness X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Magnus Damm , Aurelien Jarno , David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" We only emulate the sysbus device in its default LE mode and PCI is LE as well so specify this for registers. Colors were also off on both SH4 and PPC which is also fixed here. Signed-off-by: BALATON Zoltan --- v2: Split off small clean up to other patch v4: Set serial part to little endian as well hw/display/sm501.c | 8 ++++---- hw/display/sm501_template.h | 23 ++++++++++++++--------- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/hw/display/sm501.c b/hw/display/sm501.c index c92a5fa..a628ef1 100644 --- a/hw/display/sm501.c +++ b/hw/display/sm501.c @@ -850,7 +850,7 @@ static const MemoryRegionOps sm501_system_config_ops = =3D { .min_access_size =3D 4, .max_access_size =3D 4, }, - .endianness =3D DEVICE_NATIVE_ENDIAN, + .endianness =3D DEVICE_LITTLE_ENDIAN, }; =20 static uint32_t sm501_palette_read(void *opaque, hwaddr addr) @@ -1086,7 +1086,7 @@ static const MemoryRegionOps sm501_disp_ctrl_ops =3D { .min_access_size =3D 4, .max_access_size =3D 4, }, - .endianness =3D DEVICE_NATIVE_ENDIAN, + .endianness =3D DEVICE_LITTLE_ENDIAN, }; =20 static uint64_t sm501_2d_engine_read(void *opaque, hwaddr addr, @@ -1174,7 +1174,7 @@ static const MemoryRegionOps sm501_2d_engine_ops =3D { .min_access_size =3D 4, .max_access_size =3D 4, }, - .endianness =3D DEVICE_NATIVE_ENDIAN, + .endianness =3D DEVICE_LITTLE_ENDIAN, }; =20 /* draw line functions for all console modes */ @@ -1510,7 +1510,7 @@ static void sm501_realize_sysbus(DeviceState *dev, Er= ror **errp) if (s->chr_state) { serial_mm_init(&s->state.mmio_region, SM501_UART0, 2, NULL, /* TODO : chain irq to IRL */ - 115200, s->chr_state, DEVICE_NATIVE_ENDIAN); + 115200, s->chr_state, DEVICE_LITTLE_ENDIAN); } } =20 diff --git a/hw/display/sm501_template.h b/hw/display/sm501_template.h index 832ee61..6e56baf 100644 --- a/hw/display/sm501_template.h +++ b/hw/display/sm501_template.h @@ -64,10 +64,16 @@ static void glue(draw_line16_, PIXEL_NAME)( uint8_t r, g, b; =20 do { - rgb565 =3D lduw_p(s); - r =3D ((rgb565 >> 11) & 0x1f) << 3; - g =3D ((rgb565 >> 5) & 0x3f) << 2; - b =3D ((rgb565 >> 0) & 0x1f) << 3; + rgb565 =3D lduw_le_p(s); +#if defined(TARGET_WORDS_BIGENDIAN) + r =3D (rgb565 >> 8) & 0xf8; + g =3D (rgb565 >> 3) & 0xfc; + b =3D (rgb565 << 3) & 0xf8; +#else + b =3D (rgb565 >> 8) & 0xf8; + g =3D (rgb565 >> 3) & 0xfc; + r =3D (rgb565 << 3) & 0xf8; +#endif *(PIXEL_TYPE *)d =3D glue(rgb_to_pixel, PIXEL_NAME)(r, g, b); s +=3D 2; d +=3D BPP; @@ -80,15 +86,14 @@ static void glue(draw_line32_, PIXEL_NAME)( uint8_t r, g, b; =20 do { - ldub_p(s); #if defined(TARGET_WORDS_BIGENDIAN) + r =3D s[0]; + g =3D s[1]; + b =3D s[2]; +#else r =3D s[1]; g =3D s[2]; b =3D s[3]; -#else - b =3D s[0]; - g =3D s[1]; - r =3D s[2]; #endif *(PIXEL_TYPE *)d =3D glue(rgb_to_pixel, PIXEL_NAME)(r, g, b); s +=3D 4; --=20 2.7.4