qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 4/5] hw/openrisc: Mark devices as big-endian


From: Richard Henderson
Subject: Re: [PATCH 4/5] hw/openrisc: Mark devices as big-endian
Date: Sat, 9 Nov 2024 10:08:16 -0800
User-agent: Mozilla Thunderbird

On 11/9/24 07:58, Philippe Mathieu-Daudé wrote:
Hi Thomas,

On 9/11/24 06:42, Thomas Huth wrote:
Am Wed,  6 Nov 2024 18:46:11 +0000
schrieb Philippe Mathieu-Daudé <philmd@linaro.org>:

These devices are only used by the OpenRISC target, which is
only built as big-endian. Therefore the DEVICE_NATIVE_ENDIAN
definition expand to DEVICE_BIG_ENDIAN (besides, the
DEVICE_LITTLE_ENDIAN case isn't tested). Simplify directly
using DEVICE_BIG_ENDIAN.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
  hw/openrisc/openrisc_sim.c | 2 +-
  hw/openrisc/virt.c         | 2 +-
  2 files changed, 2 insertions(+), 2 deletions(-)


diff --git a/hw/openrisc/virt.c b/hw/openrisc/virt.c
index 47d2c9bd3c..ede57fe391 100644
--- a/hw/openrisc/virt.c
+++ b/hw/openrisc/virt.c
@@ -236,7 +236,7 @@ static void openrisc_virt_serial_init(OR1KVirtState *state, hwaddr base,
      qemu_irq serial_irq = get_per_cpu_irq(cpus, num_cpus, irq_pin);
      serial_mm_init(get_system_memory(), base, 0, serial_irq, 115200,
-                   serial_hd(0), DEVICE_NATIVE_ENDIAN);
+                   serial_hd(0), DEVICE_BIG_ENDIAN);
      /* Add device tree node for serial. */
      nodename = g_strdup_printf("/serial@%" HWADDR_PRIx, base);

According to https://openrisc.io/or1k.html the openrisc CPU could be
implemented as little endian, too ... so would it make sense to use
a runtime detected value here instead?

While this patch is a code change, it aims to not introduce any
functional change. We are not building (nor testing) these devices
in a little endian configuration:

$ git grep -l TARGET_BIG_ENDIAN configs/targets/*softmmu*
configs/targets/hppa-softmmu.mak
configs/targets/m68k-softmmu.mak
configs/targets/microblaze-softmmu.mak
configs/targets/mips-softmmu.mak
configs/targets/mips64-softmmu.mak
configs/targets/or1k-softmmu.mak
                 ^^^^

The openrisc little-endian control is in a control register: SR[LEE] (which we do not implement at present).

So any openrisc little-endian support would look like qemu-system-ppc64. I would not expect devices to switch endianness at all.


r~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]