Branch: refs/heads/staging
Home: https://github.com/qemu/qemu
Commit: 58c497fac60dc9882b8456e042b6c5b6f0e3a811
https://github.com/qemu/qemu/commit/58c497fac60dc9882b8456e042b6c5b6f0e3a811
Author: Zejun Zhao <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M hw/riscv/sifive_u.c
Log Message:
-----------
hw/riscv: Correct mmu-type property of sifive_u harts in device tree
Correct mmu-type property of sifive_u harts from Sv48 to Sv39 in 64-bit
mode since it's the only supported SATP mode.
Signed-off-by: Zejun Zhao <[email protected]>
Reviewed-by: Daniel Henrique Barboza <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Cc: [email protected]
Commit: 02dd56a295dffbef8fba1a0605936f5c1548b714
https://github.com/qemu/qemu/commit/02dd56a295dffbef8fba1a0605936f5c1548b714
Author: Philippe Mathieu-Daudé <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M target/riscv/insn_trans/trans_rva.c.inc
M target/riscv/insn_trans/trans_rvd.c.inc
M target/riscv/insn_trans/trans_rvf.c.inc
M target/riscv/insn_trans/trans_rvi.c.inc
M target/riscv/insn_trans/trans_rvzabha.c.inc
M target/riscv/insn_trans/trans_rvzacas.c.inc
M target/riscv/insn_trans/trans_rvzce.c.inc
M target/riscv/insn_trans/trans_rvzfh.c.inc
M target/riscv/insn_trans/trans_rvzicfiss.c.inc
M target/riscv/insn_trans/trans_xthead.c.inc
M target/riscv/op_helper.c
Log Message:
-----------
target/riscv: Explode MO_TExx -> MO_TE | MO_xx
Extract the implicit MO_TE definition in order to replace
it in the next commit.
Mechanical change using:
$ for n in UW UL UQ UO SW SL SQ; do \
sed -i -e "s/MO_TE$n/MO_TE | MO_$n/" \
$(git grep -l MO_TE$n target/hexagon); \
done
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Reviewed-by: Alistair Francis <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Commit: a24defd419a1430b8ee5a34e8639a7d6e9441839
https://github.com/qemu/qemu/commit/a24defd419a1430b8ee5a34e8639a7d6e9441839
Author: Philippe Mathieu-Daudé <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M target/riscv/insn_trans/trans_rva.c.inc
M target/riscv/insn_trans/trans_rvzabha.c.inc
M target/riscv/translate.c
Log Message:
-----------
target/riscv: Conceal MO_TE within gen_amo()
All callers of gen_amo() set the MO_TE flag. Set it once in
the callee.
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Reviewed-by: Alistair Francis <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Commit: b09e0f30e7a8b96c4abbbbe3d20ecef7f1c1f221
https://github.com/qemu/qemu/commit/b09e0f30e7a8b96c4abbbbe3d20ecef7f1c1f221
Author: Philippe Mathieu-Daudé <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M target/riscv/insn_trans/trans_xthead.c.inc
Log Message:
-----------
target/riscv: Conceal MO_TE within gen_inc()
All callers of gen_inc() set the MO_TE flag. Set it once in
the callee.
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Reviewed-by: Alistair Francis <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Commit: 4413ad413260e8983098dc254204456265ec82c3
https://github.com/qemu/qemu/commit/4413ad413260e8983098dc254204456265ec82c3
Author: Philippe Mathieu-Daudé <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M target/riscv/insn_trans/trans_rvi.c.inc
M target/riscv/insn_trans/trans_rvzce.c.inc
Log Message:
-----------
target/riscv: Conceal MO_TE within gen_load() / gen_store()
All callers of gen_load() / gen_store() set the MO_TE flag.
Set it once in the callees.
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Reviewed-by: Alistair Francis <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Commit: c83da477801039b88d4efdee4be1ce32de44e47e
https://github.com/qemu/qemu/commit/c83da477801039b88d4efdee4be1ce32de44e47e
Author: Philippe Mathieu-Daudé <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M target/riscv/insn_trans/trans_xthead.c.inc
Log Message:
-----------
target/riscv: Conceal MO_TE within gen_load_idx() / gen_store_idx()
All callers of gen_load_idx() / gen_store_idx() set the MO_TE flag.
Set it once in the callees.
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Reviewed-by: Alistair Francis <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Commit: 507e86947d41fd690d794b1c2b4e3597412546d1
https://github.com/qemu/qemu/commit/507e86947d41fd690d794b1c2b4e3597412546d1
Author: Philippe Mathieu-Daudé <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M target/riscv/insn_trans/trans_xthead.c.inc
Log Message:
-----------
target/riscv: Conceal MO_TE within gen_fload_idx() / gen_fstore_idx()
All callers of gen_fload_idx() / gen_fstore_idx() set the MO_TE flag.
Set it once in the callees.
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Reviewed-by: Alistair Francis <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Commit: cdfe0ffd0d36f12cbe7b715b3165f796efb0302d
https://github.com/qemu/qemu/commit/cdfe0ffd0d36f12cbe7b715b3165f796efb0302d
Author: Philippe Mathieu-Daudé <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M target/riscv/insn_trans/trans_xthead.c.inc
Log Message:
-----------
target/riscv: Conceal MO_TE within gen_storepair_tl()
All callers of gen_storepair_tl() set the MO_TE flag. Set it once in
the callee.
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Reviewed-by: Alistair Francis <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Commit: 7698b05c2824fce7301d6386c4f69319e6bcd1aa
https://github.com/qemu/qemu/commit/7698b05c2824fce7301d6386c4f69319e6bcd1aa
Author: Philippe Mathieu-Daudé <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M target/riscv/insn_trans/trans_rvzabha.c.inc
M target/riscv/insn_trans/trans_rvzacas.c.inc
M target/riscv/translate.c
Log Message:
-----------
target/riscv: Conceal MO_TE within gen_cmpxchg*()
All callers of gen_cmpxchg() / gen_cmpxchg64() set the MO_TE flag.
Set it once in the callees.
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Reviewed-by: Alistair Francis <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Commit: c838cf671e355cc57929165616b04bc49e1b49e2
https://github.com/qemu/qemu/commit/c838cf671e355cc57929165616b04bc49e1b49e2
Author: Philippe Mathieu-Daudé <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M target/riscv/insn_trans/trans_rva.c.inc
Log Message:
-----------
target/riscv: Conceal MO_TE|MO_ALIGN within gen_lr() / gen_sc()
All callers of gen_lr() / gen_sc() set the MO_TE and MO_ALIGN flags.
Set them once in the callees.
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Reviewed-by: Alistair Francis <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Commit: 20e865d47d1664e07e6aad98b9582920505d4656
https://github.com/qemu/qemu/commit/20e865d47d1664e07e6aad98b9582920505d4656
Author: Philippe Mathieu-Daudé <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M target/riscv/insn_trans/trans_rvd.c.inc
M target/riscv/insn_trans/trans_rvf.c.inc
M target/riscv/insn_trans/trans_rvzacas.c.inc
M target/riscv/insn_trans/trans_rvzce.c.inc
M target/riscv/insn_trans/trans_rvzfh.c.inc
M target/riscv/insn_trans/trans_rvzicfiss.c.inc
Log Message:
-----------
target/riscv: Factor MemOp variable out when MO_TE is set
In preparation of automatically replacing the MO_TE flag
in the next commit, use an local @memop variable.
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Alistair Francis <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Commit: 96bc1182ea1a51c5e797536b2f0fd42971da8a40
https://github.com/qemu/qemu/commit/96bc1182ea1a51c5e797536b2f0fd42971da8a40
Author: Philippe Mathieu-Daudé <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M target/riscv/insn_trans/trans_rva.c.inc
M target/riscv/insn_trans/trans_rvd.c.inc
M target/riscv/insn_trans/trans_rvf.c.inc
M target/riscv/insn_trans/trans_rvi.c.inc
M target/riscv/insn_trans/trans_rvzacas.c.inc
M target/riscv/insn_trans/trans_rvzce.c.inc
M target/riscv/insn_trans/trans_rvzfh.c.inc
M target/riscv/insn_trans/trans_rvzicfiss.c.inc
M target/riscv/insn_trans/trans_xthead.c.inc
M target/riscv/translate.c
Log Message:
-----------
target/riscv: Introduce mo_endian() helper
mo_endian() returns the target endianness from DisasContext.
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Heinrich Schuchardt <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Reviewed-by: Alistair Francis <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Commit: fa9a228acfc7d8f9a1fb0a5955c0bb2485d886b0
https://github.com/qemu/qemu/commit/fa9a228acfc7d8f9a1fb0a5955c0bb2485d886b0
Author: Philippe Mathieu-Daudé <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M target/riscv/op_helper.c
Log Message:
-----------
target/riscv: Introduce mo_endian_env() helper
mo_endian_env() returns the target endianness from CPUArchState.
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Heinrich Schuchardt <[email protected]>
Reviewed-by: Alistair Francis <[email protected]>
Message-ID: <[email protected]>
[ Changes by AF:
- Only define mo_endian_env() for softmmu
]
Signed-off-by: Alistair Francis <[email protected]>
Commit: 3dd1b6f12587162d92c3b7a56035aa95fc5c17b9
https://github.com/qemu/qemu/commit/3dd1b6f12587162d92c3b7a56035aa95fc5c17b9
Author: Guenter Roeck <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M hw/net/cadence_gem.c
M include/hw/net/cadence_gem.h
Log Message:
-----------
hw/net/cadence_gem: Support two Ethernet interfaces connected to single MDIO
bus
The Microchip PolarFire SoC Icicle Kit supports two Ethernet interfaces.
The PHY on each may be connected to separate MDIO busses, or both may be
connected on the same MDIO bus using different PHY addresses.
To be able to support two PHY instances on a single MDIO bus, two properties
are needed: First, there needs to be a flag indicating if the MDIO bus on
a given Ethernet interface is connected. If not, attempts to read from this
bus must always return 0xffff. Implement this property as phy-connected.
Second, if the MDIO bus on an interface is active, it needs a link to the
consumer interface to be able to provide PHY access for it. Implement this
property as phy-consumer.
Signed-off-by: Guenter Roeck <[email protected]>
Acked-by: Alistair Francis <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Commit: 160d6f09bc368b2f14029dcc6c25021ce52cac33
https://github.com/qemu/qemu/commit/160d6f09bc368b2f14029dcc6c25021ce52cac33
Author: Guenter Roeck <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M hw/riscv/microchip_pfsoc.c
Log Message:
-----------
hw/riscv: microchip_pfsoc: Connect Ethernet PHY channels
Signed-off-by: Guenter Roeck <[email protected]>
Acked-by: Alistair Francis <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Commit: 71dd56e0ba3e67abed8e07f5da602b403cd590eb
https://github.com/qemu/qemu/commit/71dd56e0ba3e67abed8e07f5da602b403cd590eb
Author: Guenter Roeck <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M hw/net/cadence_gem.c
M include/hw/net/cadence_gem.h
Log Message:
-----------
hw/net/cadence_gem: Add pcs-enabled property
The Linux kernel checks the PCS disabled bit in the R_DESCONF register
to determine if SGMII is supported. If the bit is set, SGMII support is
disabled. Since the Microchip Icicle devicetree file configures SGMII
interface mode, enabling the Ethernet interfaces fails when booting
the Linux kernel.
Add pcs-enabled property to to let the driver know if PCS should be
enabled. Set the flag to false by default (indicating that PCS is disabled)
to match the exiting code.
Signed-off-by: Guenter Roeck <[email protected]>
Acked-by: Alistair Francis <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Commit: ecfec7df59a982f556fb756d21c3d6459cdbf06b
https://github.com/qemu/qemu/commit/ecfec7df59a982f556fb756d21c3d6459cdbf06b
Author: Guenter Roeck <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M hw/riscv/microchip_pfsoc.c
Log Message:
-----------
microchip icicle: Enable PCS on Cadence Ethernet
PCS needs to be enabled for SGMII to be supported by the Linux kernel.
Signed-off-by: Guenter Roeck <[email protected]>
Acked-by: Alistair Francis <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Commit: ecd8fa3e35734a22910f96b1e6c12e3148b57825
https://github.com/qemu/qemu/commit/ecd8fa3e35734a22910f96b1e6c12e3148b57825
Author: Jialong Yang <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M hw/intc/riscv_aplic.c
Log Message:
-----------
aplic: fix mask for smsiaddrcfgh
4.5.4. Supervisor MSI address configuration (smsiaddrcfg and
smsiaddrcfgh)
smsiaddrcfgh:
bits 22:20 LHXS(WARL)
bits 11:0 High Base PPN(WARL)
Signed-off-by: Jialong Yang <[email protected]>
Acked-by: Alistair Francis <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Cc: [email protected]
Commit: acf4aeb3a0a4fe9f0912604dc1ddd0fae2c34f45
https://github.com/qemu/qemu/commit/acf4aeb3a0a4fe9f0912604dc1ddd0fae2c34f45
Author: Djordje Todorovic <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M hw/intc/riscv_aclint.c
M hw/intc/riscv_aplic.c
Log Message:
-----------
hw/intc: Allow gaps in hartids for aclint and aplic
This is needed for riscv based CPUs by MIPS since those may have
sparse hart-ID layouts. ACLINT and APLIC still assume a dense
range, and if a hart is missing, this causes NULL derefs.
Signed-off-by: Chao-ying Fu <[email protected]>
Signed-off-by: Djordje Todorovic <[email protected]>
Reviewed-by: Daniel Henrique Barboza <[email protected]>
Reviewed-by: Alistair Francis <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Commit: 562962128d535bd60b8b4a1a8712bd8e5d14accf
https://github.com/qemu/qemu/commit/562962128d535bd60b8b4a1a8712bd8e5d14accf
Author: Djordje Todorovic <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M target/riscv/cpu.c
M target/riscv/cpu.h
Log Message:
-----------
target/riscv: Add cpu_set_exception_base
Add a new function, so we can change reset vector from platforms
during runtime.
Signed-off-by: Chao-ying Fu <[email protected]>
Signed-off-by: Djordje Todorovic <[email protected]>
Reviewed-by: Daniel Henrique Barboza <[email protected]>
Reviewed-by: Alistair Francis <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Commit: 2f49deebab0960c4d42a268c6d2ab5ec3175ddea
https://github.com/qemu/qemu/commit/2f49deebab0960c4d42a268c6d2ab5ec3175ddea
Author: Djordje Todorovic <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M target/riscv/cpu-qom.h
M target/riscv/cpu.c
M target/riscv/cpu_vendorid.h
Log Message:
-----------
target/riscv: Add MIPS P8700 CPU
Introduce P8700 CPU by MIPS.
Signed-off-by: Chao-ying Fu <[email protected]>
Signed-off-by: Djordje Todorovic <[email protected]>
Reviewed-by: Daniel Henrique Barboza <[email protected]>
Reviewed-by: Alistair Francis <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Commit: 60f8df281ee54d04de50dced4d6c7f9b55406958
https://github.com/qemu/qemu/commit/60f8df281ee54d04de50dced4d6c7f9b55406958
Author: Djordje Todorovic <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M target/riscv/cpu.c
M target/riscv/cpu.h
M target/riscv/meson.build
A target/riscv/mips_csr.c
Log Message:
-----------
target/riscv: Add MIPS P8700 CSRs
Define MIPS CSRs used for P8700 CPU.
Signed-off-by: Chao-ying Fu <[email protected]>
Signed-off-by: Djordje Todorovic <[email protected]>
Reviewed-by: Daniel Henrique Barboza <[email protected]>
Reviewed-by: Alistair Francis <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Commit: 34370b607ec9cfd1b7f63535fa3b82865e8e5c20
https://github.com/qemu/qemu/commit/34370b607ec9cfd1b7f63535fa3b82865e8e5c20
Author: Djordje Todorovic <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M target/riscv/cpu.c
M target/riscv/cpu_cfg.h
M target/riscv/cpu_cfg_fields.h.inc
A target/riscv/insn_trans/trans_xmips.c.inc
M target/riscv/meson.build
M target/riscv/translate.c
A target/riscv/xmips.decode
Log Message:
-----------
target/riscv: Add mips.ccmov instruction
Add mips.ccmov defined by Xmipscmov.
Signed-off-by: Chao-ying Fu <[email protected]>
Signed-off-by: Djordje Todorovic <[email protected]>
Acked-by: Daniel Henrique Barboza <[email protected]>
Acked-by: Alistair Francis <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Commit: 2585149396656e6738a2b622e15c85dcce1d1f13
https://github.com/qemu/qemu/commit/2585149396656e6738a2b622e15c85dcce1d1f13
Author: Djordje Todorovic <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M target/riscv/cpu.c
M target/riscv/cpu_cfg.h
M target/riscv/cpu_cfg_fields.h.inc
M target/riscv/insn_trans/trans_xmips.c.inc
M target/riscv/xmips.decode
Log Message:
-----------
target/riscv: Add mips.pref instruction
Add MIPS P8700 prefetch instruction defined by Xmipscbop.
Signed-off-by: Chao-ying Fu <[email protected]>
Signed-off-by: Djordje Todorovic <[email protected]>
Reviewed-by: Daniel Henrique Barboza <[email protected]>
Acked-by: Alistair Francis <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Commit: 5324ab70a6fde6730012166e5068014ea10a7d60
https://github.com/qemu/qemu/commit/5324ab70a6fde6730012166e5068014ea10a7d60
Author: Djordje Todorovic <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M target/riscv/cpu.c
M target/riscv/cpu_cfg.h
M target/riscv/cpu_cfg_fields.h.inc
M target/riscv/insn_trans/trans_xmips.c.inc
M target/riscv/xmips.decode
Log Message:
-----------
target/riscv: Add Xmipslsp instructions
Add MIPS P8700 ldp, lwp, sdp, swp instructions.
Signed-off-by: Chao-ying Fu <[email protected]>
Signed-off-by: Djordje Todorovic <[email protected]>
Acked-by: Daniel Henrique Barboza <[email protected]>
Acked-by: Alistair Francis <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Commit: 6994d6f900007eee8582255c4871ec1a1b5e6610
https://github.com/qemu/qemu/commit/6994d6f900007eee8582255c4871ec1a1b5e6610
Author: Djordje Todorovic <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M hw/misc/Kconfig
M hw/misc/meson.build
A hw/misc/riscv_cmgcr.c
A include/hw/misc/riscv_cmgcr.h
Log Message:
-----------
hw/misc: Add RISC-V CMGCR device implementation
Add RISC-V implementation of the Coherent Manager Global Control
Register (CMGCR) device. It is based on the existing MIPS CMGCR
implementation but adapted for RISC-V systems.
The CMGCR device provides global system control for multi-core
configurations in RISC-V systems.
This is needed for the MIPS BOSTON AIA board.
Signed-off-by: Chao-ying Fu <[email protected]>
Signed-off-by: Djordje Todorovic <[email protected]>
Reviewed-by: Daniel Henrique Barboza <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Commit: 141c399907befdc1d9607ad1685f99b06f67cc17
https://github.com/qemu/qemu/commit/141c399907befdc1d9607ad1685f99b06f67cc17
Author: Djordje Todorovic <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M hw/misc/Kconfig
M hw/misc/meson.build
A hw/misc/riscv_cpc.c
A include/hw/misc/riscv_cpc.h
Log Message:
-----------
hw/misc: Add RISC-V CPC device implementation
Add RISC-V implementation of the Cluster Power Controller (CPC) device.
It is based on the existing MIPS CPC implementations but adapted for
RISC-V systems.
The CPC device manages power control for CPU clusters in RISC-V
systems.
This is needed for the MIPS BOSTON AIA board.
Signed-off-by: Chao-ying Fu <[email protected]>
Signed-off-by: Djordje Todorovic <[email protected]>
Reviewed-by: Daniel Henrique Barboza <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Commit: 99b6fa41ad15006955a6cbbc385550662cc84b3f
https://github.com/qemu/qemu/commit/99b6fa41ad15006955a6cbbc385550662cc84b3f
Author: Djordje Todorovic <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M hw/misc/Kconfig
A hw/riscv/cps.c
M hw/riscv/meson.build
A include/hw/riscv/cps.h
Log Message:
-----------
hw/riscv: Add support for RISCV CPS
Add support for the Coherent Processing System for RISC-V.
This enables SMP support for RISC-V boards that require
cache-coherent multiprocessor systems.
Signed-off-by: Chao-ying Fu <[email protected]>
Signed-off-by: Djordje Todorovic <[email protected]>
Acked-by: Daniel Henrique Barboza <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Commit: 1d8d24dd5d7d8996605cf0ecbc082344e6079bc9
https://github.com/qemu/qemu/commit/1d8d24dd5d7d8996605cf0ecbc082344e6079bc9
Author: Djordje Todorovic <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M configs/devices/riscv64-softmmu/default.mak
A docs/system/riscv/mips.rst
M docs/system/target-riscv.rst
M hw/riscv/Kconfig
A hw/riscv/boston-aia.c
M hw/riscv/meson.build
Log Message:
-----------
hw/riscv: Add support for MIPS Boston-aia board mode
The board model supports up to 64 harts with MIPS CPS, MIPS GCR,
MIPS CPC, AIA plic, and AIA clint devices. The model can create
boot code, if there is no -bios parameter. We can specify -smp x,
cores=y,thread=z.
Ex: Use 4 cores and 2 threads with each core to
have 8 smp cpus as follows.
qemu-system-riscv64 -cpu mips-p8700 \
-m 2G -M boston-aia \
-smp 8,cores=4,threads=2 -kernel fw_payload.bin \
-drive file=rootfs.ext2,format=raw -serial stdio
Signed-off-by: Chao-ying Fu <[email protected]>
Signed-off-by: Djordje Todorovic <[email protected]>
Acked-by: Daniel Henrique Barboza <[email protected]>
Acked-by: Alistair Francis <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Commit: 602cfa0b03031e16906df546857184631a33c5da
https://github.com/qemu/qemu/commit/602cfa0b03031e16906df546857184631a33c5da
Author: Djordje Todorovic <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M hw/riscv/boston-aia.c
Log Message:
-----------
riscv/boston-aia: Add an e1000e NIC in slot 0 func 1
The Boston AIA board needs a basic GbE NIC. There is no PCH GbE
device emulation, so use an `e1000e` instead. We place it in
**slot 0, function 1** in order not to conflict with the existing
AHCI device in slot 0 func 0.
Signed-off-by: Chao-ying Fu <[email protected]>
Signed-off-by: Djordje Todorovic <[email protected]>
Reviewed-by: Daniel Henrique Barboza <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Commit: 1dc4c72f2919f0260b1b872aece9289a94fea9cd
https://github.com/qemu/qemu/commit/1dc4c72f2919f0260b1b872aece9289a94fea9cd
Author: Djordje Todorovic <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M tests/functional/riscv64/meson.build
A tests/functional/riscv64/test_boston.py
Log Message:
-----------
test/functional: Add test for boston-aia board
Add functional test for Boston AIA board. The P8700 RISC-V based
CPU by MIPS supports it at the moment.
Signed-off-by: Chao-ying Fu <[email protected]>
Signed-off-by: Djordje Todorovic <[email protected]>
Acked-by: Alistair Francis <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Commit: 95a97b4a38dfeb00b9c57571c8f740e70e781f7d
https://github.com/qemu/qemu/commit/95a97b4a38dfeb00b9c57571c8f740e70e781f7d
Author: Daniel Henrique Barboza <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M target/riscv/kvm/kvm-cpu.c
Log Message:
-----------
target/riscv/kvm: fix env->priv setting in reset_regs_csr()
This patch was originally made by Gitlab user Bo Gan (@ganboing) 4
months ago in the context of issue [1]. I asked the author to send a
patch to the mailing list ~3 months ago and got no reply. I'm sending
the patch myself because we already missed 10.1 without this fix.
I'll also just post verbatim Bo Gan comment in the commit msg:
"In RISCV Linux with KVM enabled, gdbstub is broken. The
get_physical_address isn't able to page-walk correctly and resolve the
physical page. This is due to that the vcpu is being treated as starting
in M mode even if KVM enabled. However, with KVM, the vcpu is actually
started in S mode. The mmu_idx will give 3 (M), instead of 1 (S),
resulting in Guest PA == VA (wrong)!"
Set env->priv to PRV_S in kvm_riscv_reset_regs_csr() since the VCPU is
always started in S-mode for KVM.
[1] https://gitlab.com/qemu-project/qemu/-/issues/2991
Cc: [email protected]
Closes: https://gitlab.com/qemu-project/qemu/-/issues/2991
Originally-by: Bo Gan (@ganboing in Gitlab)
Signed-off-by: Daniel Henrique Barboza <[email protected]>
Reviewed-by: Alistair Francis <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Commit: 51e525dc4eee1f74198053f07a2808365605135f
https://github.com/qemu/qemu/commit/51e525dc4eee1f74198053f07a2808365605135f
Author: Daniel Henrique Barboza <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M target/riscv/riscv-qmp-cmds.c
Log Message:
-----------
target/riscv/riscv-qmp-cmds.c: coverity-related fixes
Coverity CID 1641401 reports that, in reg_is_ulong_integer(), we're
dereferencing a NULL pointer in "reg1" when using it in strcasecmp()
call. A similar case is reported with CID 1641393.
In theory that will never happen - it's guaranteed that both "reg1" and
"reg2" is non-NULL because we're retrieving them in compile-time from
static arrays. Coverity doesn't know that though.
To make Coverity happier and add a bit more clarity in the code,
g_assert() each token to make it clear that those 2 values aren't
supposed to be NULL ever. Do that in both reg_is_ulong_integer() and
reg_is_u64_fpu().
We're also taking the opportunity to implement suggestions made by Peter
in [1] in both functions:
- use g_strsplit() instead of strtok();
- use g_ascii_strcasecmp() instead of strcasecmp().
[1]
https://lore.kernel.org/qemu-devel/cafeaca_y4bwd9ganbxnpty2mv80vg_jp+a-vkqs5v6f0+bf...@mail.gmail.com/
Coverity: CID 1641393, 1641401
Fixes: e06d209aa6 ("target/riscv: implement MonitorDef HMP API")
Suggested-by: Peter Maydell <[email protected]>
Signed-off-by: Daniel Henrique Barboza <[email protected]>
Reviewed-by: Alistair Francis <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Commit: 346cbe97ec1adcb72d4a8b3662b8cdb41abee72b
https://github.com/qemu/qemu/commit/346cbe97ec1adcb72d4a8b3662b8cdb41abee72b
Author: Daniel Henrique Barboza <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M target/riscv/cpu_helper.c
Log Message:
-----------
target/riscv: fix riscv_cpu_sirq_pending() mask
We're filtering out (MIP_VSSIP | MIP_VSTIP | MIP_VSEIP) from S-mode
pending interrupts without apparent reason. There's no special treatment
for these ints as far as the spec goes, and this filtering is causing
read_stopi() to miss those VS interrupts [1].
We shouldn't return delegated VS interrupts in S-mode though, so change
the current mask with "~env->hideleg". Note that this is the same
handling we're doing in riscv_cpu_mirq_pending() and env->mideleg.
[1] https://gitlab.com/qemu-project/qemu/-/issues/2820
Closes: https://gitlab.com/qemu-project/qemu/-/issues/2820
Signed-off-by: Daniel Henrique Barboza <[email protected]>
Reviewed-by: Alistair Francis <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Cc: [email protected]
Commit: 6938cf7378c63bb8610c82b681789c2174c1e52e
https://github.com/qemu/qemu/commit/6938cf7378c63bb8610c82b681789c2174c1e52e
Author: Akihiko Odaki <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M target/riscv/tcg/tcg-cpu.c
Log Message:
-----------
target/riscv: Fix a uninitialized variable warning
riscv_cpu_validate_v() left its variable, min_vlen, uninitialized if
no vector extension is available, causing a compiler warning.
Re-define riscv_cpu_validate_v() as no-op when no vector extension is
available to prevent the scenario that will read the unintialized
variable by construction. It also simplifies its caller as a bonus.
Signed-off-by: Akihiko Odaki <[email protected]>
Reviewed-by: Daniel Henrique Barboza <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Commit: 0c999b666960121d521523ae251a96438c3121eb
https://github.com/qemu/qemu/commit/0c999b666960121d521523ae251a96438c3121eb
Author: Jay Chang <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M target/riscv/cpu.c
M target/riscv/cpu.h
M target/riscv/cpu_cfg_fields.h.inc
Log Message:
-----------
target/riscv: Make PMP granularity configurable
Previously, the PMP granularity in qemu always used a minimum
granularity of 4 bytes, this patch add pmp-granularity to allow
platforms to configure the value.
A new CPU parameter pmp-granularity has been introduced to the QEMU
command line. For example:
-cpu rv64, g=true, c=true, pmp=true, pmp-granularity=1024
If no specific value is provided, the default value is 4 bytes.
Signed-off-by: Jay Chang <[email protected]>
Reviewed-by: Frank Chang <[email protected]>
Reviewed-by: Jim Shu <[email protected]>
Reviewed-by: Alistair Francis <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Commit: 741566c3e07fd34ed28d4464d1d7fda67db12925
https://github.com/qemu/qemu/commit/741566c3e07fd34ed28d4464d1d7fda67db12925
Author: Jay Chang <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M target/riscv/pmp.c
Log Message:
-----------
target/riscv: Make PMP CSRs conform to WARL constraints
This patch ensure pmpcfg and pmpaddr comply with WARL constraints.
When the PMP granularity is greater than 4 bytes, NA4 mode is not valid
per the spec and will be silently ignored.
According to the spec, changing pmpcfg.A only affects the "read" value
of pmpaddr. When G > 2 and pmpcfg.A is NAPOT, bits pmpaddr[G-2:0] read
as all ones. When G > 1 and pmpcfg.A is OFF or TOR, bits pmpaddr[G-1:0]
read as all zeros. This allows software to read back the correct
granularity value.
In addition, when updating the PMP address rule in TOR mode,
the start and end addresses of the PMP region should be aligned
to the PMP granularity. (The current SPEC only state in TOR mode
that bits pmpaddr[G-1:0] do not affect the TOR address-matching logic.)
Signed-off-by: Jay Chang <[email protected]>
Reviewed-by: Frank Chang <[email protected]>
Reviewed-by: Jim Shu <[email protected]>
Reviewed-by: Alistair Francis <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Alistair Francis <[email protected]>
Commit: a5f72ed1e10e12090588846d6897f2b9596de0f2
https://github.com/qemu/qemu/commit/a5f72ed1e10e12090588846d6897f2b9596de0f2
Author: Richard Henderson <[email protected]>
Date: 2025-10-23 (Thu, 23 Oct 2025)
Changed paths:
M configs/devices/riscv64-softmmu/default.mak
A docs/system/riscv/mips.rst
M docs/system/target-riscv.rst
M hw/intc/riscv_aclint.c
M hw/intc/riscv_aplic.c
M hw/misc/Kconfig
M hw/misc/meson.build
A hw/misc/riscv_cmgcr.c
A hw/misc/riscv_cpc.c
M hw/net/cadence_gem.c
M hw/riscv/Kconfig
A hw/riscv/boston-aia.c
A hw/riscv/cps.c
M hw/riscv/meson.build
M hw/riscv/microchip_pfsoc.c
M hw/riscv/sifive_u.c
A include/hw/misc/riscv_cmgcr.h
A include/hw/misc/riscv_cpc.h
M include/hw/net/cadence_gem.h
A include/hw/riscv/cps.h
M target/riscv/cpu-qom.h
M target/riscv/cpu.c
M target/riscv/cpu.h
M target/riscv/cpu_cfg.h
M target/riscv/cpu_cfg_fields.h.inc
M target/riscv/cpu_helper.c
M target/riscv/cpu_vendorid.h
M target/riscv/insn_trans/trans_rva.c.inc
M target/riscv/insn_trans/trans_rvd.c.inc
M target/riscv/insn_trans/trans_rvf.c.inc
M target/riscv/insn_trans/trans_rvi.c.inc
M target/riscv/insn_trans/trans_rvzabha.c.inc
M target/riscv/insn_trans/trans_rvzacas.c.inc
M target/riscv/insn_trans/trans_rvzce.c.inc
M target/riscv/insn_trans/trans_rvzfh.c.inc
M target/riscv/insn_trans/trans_rvzicfiss.c.inc
A target/riscv/insn_trans/trans_xmips.c.inc
M target/riscv/insn_trans/trans_xthead.c.inc
M target/riscv/kvm/kvm-cpu.c
M target/riscv/meson.build
A target/riscv/mips_csr.c
M target/riscv/op_helper.c
M target/riscv/pmp.c
M target/riscv/riscv-qmp-cmds.c
M target/riscv/tcg/tcg-cpu.c
M target/riscv/translate.c
A target/riscv/xmips.decode
M tests/functional/riscv64/meson.build
A tests/functional/riscv64/test_boston.py
Log Message:
-----------
Merge tag 'pull-riscv-to-apply-20251023' of
https://github.com/alistair23/qemu into staging
Second RISC-V PR for 10.2
* Correct mmu-type property of sifive_u harts in device tree
* Centralize MO_TE uses in a pair of helpers
* Fix Ethernet interface support for microchip-icicle-kit
* Fix mask for smsiaddrcfgh
* Add support for MIPS P8700 CPU
* Fix env->priv setting in reset_regs_csr()
* Coverity-related fixes
* Fix riscv_cpu_sirq_pending() mask
* Fix a uninitialized variable warning
* Make PMP granularity configurable
# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCgAdFiEEaukCtqfKh31tZZKWr3yVEwxTgBMFAmj5q0YACgkQr3yVEwxT
# gBPCKA/8Csi5JlW2QImCZTEZJBTFjYNyAp7Z97Zqbc208vlkmu9nmamyiE9p39S0
# JgdvXs/S6lr6lZ5W01r2y11Qc+PeQuNYasSmcbimrj3aypHMaN5YnULKF+6CdTVF
# 9UJhPh3RCu2SOoqIkWRDTlFuHRuwa22TP8RcVm9eQA6lTRQFXrZgmosUE5mafxQ/
# n4eEzQEcYgzevgJ5YH+irgMfmbxi8Zbr3zlIkZiMD0Uh0IxjiNFGfOpoFrM34vVH
# LVmlZSxmMWIRUPp7ofLEZ2/Oj1mEx0ZC1eGrKa9ZGr3R9CCBmxtO2tXi5VLvGDUv
# hUdUNaS/gghIpfcd7Ifs2btUCoY+uSlEexXbu4KGFGXsCSG+HxpGQnqW/2TYafxZ
# jMCLDnjkhiIep8PFA5uFzt/xKdmp8zVwhGrDhzg9DtH74f+XB4lYQQaZeLeSF8my
# eJ4VStget/ld+HdKUmYqzqViQhKMusdcxYPjNRChKORJ4sW3w2cic2/XhNgfhb11
# jszjjJJ4dD/CdWY1whKnNg1RdJMLKRk4x5lkQ6VaJDChkOLsbnKx2xxaU1W8Xs+i
# xQzdf+5BnjbZA8nivJf0FS9BQeUSf+uqvk6YM4Jsc9pUKql59EQmK7b+qyeAnQ4h
# c5/A0T+o3J405qUUrdAMY/gRWs1vOPBHdQ/YCR/nUgYkScMz/Ks=
# =IeRj
# -----END PGP SIGNATURE-----
# gpg: Signature made Wed 22 Oct 2025 11:12:54 PM CDT
# gpg: using RSA key 6AE902B6A7CA877D6D659296AF7C95130C538013
# gpg: Good signature from "Alistair Francis <[email protected]>" [unknown]
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg: There is no indication that the signature belongs to the owner.
# Primary key fingerprint: 6AE9 02B6 A7CA 877D 6D65 9296 AF7C 9513 0C53 8013
* tag 'pull-riscv-to-apply-20251023' of https://github.com/alistair23/qemu: (37
commits)
target/riscv: Make PMP CSRs conform to WARL constraints
target/riscv: Make PMP granularity configurable
target/riscv: Fix a uninitialized variable warning
target/riscv: fix riscv_cpu_sirq_pending() mask
target/riscv/riscv-qmp-cmds.c: coverity-related fixes
target/riscv/kvm: fix env->priv setting in reset_regs_csr()
test/functional: Add test for boston-aia board
riscv/boston-aia: Add an e1000e NIC in slot 0 func 1
hw/riscv: Add support for MIPS Boston-aia board mode
hw/riscv: Add support for RISCV CPS
hw/misc: Add RISC-V CPC device implementation
hw/misc: Add RISC-V CMGCR device implementation
target/riscv: Add Xmipslsp instructions
target/riscv: Add mips.pref instruction
target/riscv: Add mips.ccmov instruction
target/riscv: Add MIPS P8700 CSRs
target/riscv: Add MIPS P8700 CPU
target/riscv: Add cpu_set_exception_base
hw/intc: Allow gaps in hartids for aclint and aplic
aplic: fix mask for smsiaddrcfgh
...
Signed-off-by: Richard Henderson <[email protected]>
Compare: https://github.com/qemu/qemu/compare/c0e80879c876...a5f72ed1e10e
To unsubscribe from these emails, change your notification settings at
https://github.com/qemu/qemu/settings/notifications