All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/16] Add RISC-V big-endian target support
@ 2026-02-25 10:20 Djordje Todorovic
  2026-02-25 10:20 ` [PATCH v2 03/16] config/devices: Add BE riscv configs Djordje Todorovic
                   ` (16 more replies)
  0 siblings, 17 replies; 43+ messages in thread
From: Djordje Todorovic @ 2026-02-25 10:20 UTC (permalink / raw)
  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

This series adds big-endian (BE) RISC-V target support to QEMU,
covering both softmmu and linux-user emulation for riscv32be and
riscv64be.
 
The RISC-V ISA supports big-endian operation via the mstatus SBE/MBE/UBE
bits. While instructions are always little-endian, data accesses follow
the configured endianness. This series implements the necessary QEMU
infrastructure.

Furthermore, MIPS announced cores with BE configuration:
  https://mips.com/products/hardware/i8500/

Patches 01-03: Build system and config for new BE targets
Patches 04-07: Core emulation fixes (instruction fetch, boot ROM, ELF
               loading, fw_dynamic endianness)
Patches 08-11: Linux-user BE targets and vDSO handling
Patch  12:     Set SBE/MBE mstatus bits at CPU reset
Patch  13:     Fix PTE A/D atomic update endianness in page table walker
Patch  14:     Clean up instruction fetch to use MO_LE directly
Patch  15:     Fix virtio-mmio legacy device register endianness
Patch  16:     Add riscv32be and riscv64be to SysEmuTarget

Djordje Todorovic (9):
  meson: Add BE RISCV targets
  config/targets: Add BE RISCV softmmu targets
  config/devices: Add BE riscv configs
  target/riscv: Ensure LE instruction fetching
  hw/riscv: Ensure bootrom has correct endianess
  hw/riscv: Ensure proper ELF endian expectation
  hw/riscv: Check endianness for fw_dynamic fields
  config/targets: Add RISC-V userspace targets
  arch/riscv: Set UBE bit on BE target

djtodoro (7):
  config/targets: Add missing fields to BE linux-user targets
  linux-user/riscv: Disable vDSO for big-endian targets
  target/riscv: Set SBE and MBE bits at CPU reset for BE targets
  target/riscv: Fix PTE A/D atomic update endianness
  target/riscv: Use MO_LE for instruction fetch
  hw/virtio: Use DEVICE_LITTLE_ENDIAN for virtio-mmio legacy ops
  qapi: Add riscv32be and riscv64be to SysEmuTarget

 configs/devices/riscv32be-softmmu/default.mak | 15 +++++++
 configs/devices/riscv64be-softmmu/default.mak | 16 ++++++++
 configs/targets/riscv32be-linux-user.mak      | 11 +++++
 configs/targets/riscv32be-softmmu.mak         |  8 ++++
 configs/targets/riscv64be-linux-user.mak      | 11 +++++
 configs/targets/riscv64be-softmmu.mak         |  8 ++++
 hw/riscv/boot.c                               | 41 ++++++++++++++++---
 hw/virtio/virtio-mmio.c                       |  2 +-
 include/hw/riscv/boot.h                       |  5 +++
 linux-user/riscv/target_elf.h                 | 10 ++++-
 meson.build                                   |  7 +++-
 qapi/machine.json                             |  3 +-
 target/riscv/cpu.c                            |  3 ++
 target/riscv/cpu_bits.h                       |  2 +
 target/riscv/cpu_helper.c                     |  9 ++--
 target/riscv/translate.c                      | 16 ++++----
 16 files changed, 145 insertions(+), 22 deletions(-)
 create mode 100644 configs/devices/riscv32be-softmmu/default.mak
 create mode 100644 configs/devices/riscv64be-softmmu/default.mak
 create mode 100644 configs/targets/riscv32be-linux-user.mak
 create mode 100644 configs/targets/riscv32be-softmmu.mak
 create mode 100644 configs/targets/riscv64be-linux-user.mak
 create mode 100644 configs/targets/riscv64be-softmmu.mak

-- 
2.34.1


^ permalink raw reply	[flat|nested] 43+ messages in thread

end of thread, other threads:[~2026-02-27 23:01 UTC | newest]

Thread overview: 43+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-25 10:20 [PATCH v2 00/16] Add RISC-V big-endian target support Djordje Todorovic
2026-02-25 10:20 ` [PATCH v2 03/16] config/devices: Add BE riscv configs Djordje Todorovic
2026-02-25 10:20 ` [PATCH v2 02/16] config/targets: Add BE RISCV softmmu targets Djordje Todorovic
2026-02-25 10:20 ` [PATCH v2 01/16] meson: Add BE RISCV targets Djordje Todorovic
2026-02-25 10:39   ` Thomas Huth
2026-02-25 12:05     ` Chao Liu
2026-02-25 12:30     ` Daniel P. Berrangé
2026-02-26 23:26       ` Alistair Francis
2026-02-25 12:27   ` Daniel P. Berrangé
2026-02-25 10:20 ` [PATCH v2 05/16] hw/riscv: Ensure bootrom has correct endianess Djordje Todorovic
2026-02-25 10:20 ` [PATCH v2 06/16] hw/riscv: Ensure proper ELF endian expectation Djordje Todorovic
2026-02-27 22:44   ` Philippe Mathieu-Daudé
2026-02-25 10:20 ` [PATCH v2 04/16] target/riscv: Ensure LE instruction fetching Djordje Todorovic
2026-02-27 22:41   ` Philippe Mathieu-Daudé
2026-02-25 10:20 ` [PATCH v2 09/16] arch/riscv: Set UBE bit on BE target Djordje Todorovic
2026-02-27 22:51   ` Philippe Mathieu-Daudé
2026-02-25 10:20 ` [PATCH v2 07/16] hw/riscv: Check endianness for fw_dynamic fields Djordje Todorovic
2026-02-26 23:32   ` Alistair Francis
2026-02-27 22:47     ` Philippe Mathieu-Daudé
2026-02-25 10:20 ` [PATCH v2 08/16] config/targets: Add RISC-V userspace targets Djordje Todorovic
2026-02-27 22:50   ` Philippe Mathieu-Daudé
2026-02-25 10:20 ` [PATCH v2 12/16] target/riscv: Set SBE and MBE bits at CPU reset for BE targets Djordje Todorovic
2026-02-25 10:20 ` [PATCH v2 11/16] linux-user/riscv: Disable vDSO for big-endian targets Djordje Todorovic
2026-02-26 23:33   ` Alistair Francis
2026-02-27 22:55     ` Philippe Mathieu-Daudé
2026-02-25 10:20 ` [PATCH v2 10/16] config/targets: Add missing fields to BE linux-user targets Djordje Todorovic
2026-02-25 10:20 ` [PATCH v2 15/16] hw/virtio: Use DEVICE_LITTLE_ENDIAN for virtio-mmio legacy ops Djordje Todorovic
2026-02-25 10:20 ` [PATCH v2 13/16] target/riscv: Fix PTE A/D atomic update endianness Djordje Todorovic
2026-02-27 23:00   ` Philippe Mathieu-Daudé
2026-02-25 10:20 ` [PATCH v2 14/16] target/riscv: Use MO_LE for instruction fetch Djordje Todorovic
2026-02-27 22:57   ` Philippe Mathieu-Daudé
2026-02-25 10:20 ` [PATCH v2 16/16] qapi: Add riscv32be and riscv64be to SysEmuTarget Djordje Todorovic
2026-02-25 11:39 ` [PATCH v2 00/16] Add RISC-V big-endian target support Mohamed Mediouni
2026-02-26 23:30   ` Alistair Francis
2026-02-26 23:47     ` Conor Dooley
2026-02-27  0:56       ` Alistair Francis
2026-02-27  9:27         ` Thomas Huth
2026-02-27 12:28           ` Djordje Todorovic
2026-02-27 12:42         ` Djordje Todorovic
2026-02-27 12:56           ` Conor Dooley
2026-02-27 14:24             ` Djordje Todorovic
2026-02-27 22:40               ` Philippe Mathieu-Daudé
2026-02-27 12:40     ` Djordje Todorovic

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.