* [PULL 0/7] ppc-for-11.2 queue
@ 2026-08-23 7:35 Harsh Prateek Bora
2026-08-23 7:35 ` [PULL 1/7] target/ppc/cpu_init: make cpu listing deterministic Harsh Prateek Bora
` (7 more replies)
0 siblings, 8 replies; 9+ messages in thread
From: Harsh Prateek Bora @ 2026-08-23 7:35 UTC (permalink / raw)
To: qemu-devel
The following changes since commit eea8fe61b8be8f3016e522e6af24924a0266ca95:
Merge tag 'igvm-20260821-pull-request' of https://gitlab.com/kraxel/qemu into staging (2026-08-21 10:39:31 -0700)
are available in the Git repository at:
https://gitlab.com/harshpb/qemu.git tags/pull-ppc-for-11.2-20260823
for you to fetch changes up to 45caf67b9a6a446629e1c133b76a3d9a3cebdcf1:
MAINTAINERS: add self as reviewer for PowerPC RAS (2026-08-23 11:42:57 +0530)
----------------------------------------------------------------
PPC PR for 11.2 - 20260823
* powernv: boot OpenBSD on POWER9
* Misc fixes in target/ppc and spapr_watchdog
* MAINTAINERS: adding reviewers - Amit (PPC KVM, sPAPR) and Shivang (PPC RAS)
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEa4EM1tK+EPOIPSFCRUTplPnWj7sFAmqKlQcACgkQRUTplPnW
j7tgEw//anSKG8cNMcauqfv9kB4buOdtGPLZS7QjO35JPYD6bI8Z+DvPMSJKi+xP
3GcjT3rZbzCI0OsbAzw5OmSCZzsY/Cgr+1FrlJcC49jOEHC4VklD7tVV6dH5MS1j
CUZlxd5TQrf49URitZcaOcQWHNxrr1WjDhGxmdz0VnV4nJF4QQMyACRM6e+KpgXN
0qLGfuHF77N79g+ttf1psI+VYESk8kMg48rQDDBqlF1y27D1GEMdsNqq8lhvzvZc
tLUiui3xvhXPRqUTE6AcvGrpCfdkoiAsR/R6i0kdu+HrQ10CcRHTXCyYpPjBj2wg
bo7erO4jQBHroIXXkAJ8EJzOTNMmaBtHuXjMZYgCHO9pYMGgHzp3yXvqyC9k3F/c
dlOgrdw6mC7K+3b4REHeG8kaYRtIFi8vbENGQNSMyEDZswvU+obwKZWz24nmOvvl
A6QP2C6/gAraodcoDMaJ9pYhU6/5ynGhbcrfjzqiGN1z/pmXIiXffW342oLciWa/
/yAMCiHhH9k7aBULm27JqcCWOiotk/Xv9J1/TlLfcs6h3YuMlVGl6V4zMvctufYO
XqqP/iJqbj3djdYQLGUEdEG1Yh2LItO9KYu5F00jET1fE8DW6NS9ceUe4A6oma8f
nMv3ErfxAbVkr5rN/vibo35yG2O26ApwW8oQDM0NzlesklsMHd0=
=vkyg
-----END PGP SIGNATURE-----
----------------------------------------------------------------
Amit Machhiwal (1):
MAINTAINERS: Add myself as a reviewer for PPC KVM and sPAPR
Chinmay Rath (1):
hw/watchdog: Add lower bound check for watchdogNumber
Kirill A. Korinsky (1):
powernv: boot OpenBSD on POWER9
Minhang Zhang (1):
target/ppc: Validate HTABMASK and reserved bits in SDR1 for 32-bit mode
Pierrick Bouvier (1):
target/ppc/cpu_init: make cpu listing deterministic
Shivang Upadhyay (2):
MAINTAINERS: add dedicated PowerPC RAS section
MAINTAINERS: add self as reviewer for PowerPC RAS
MAINTAINERS | 35 ++++++++++++-----------
hw/ppc/pnv_psi.c | 11 +++++--
hw/watchdog/spapr_watchdog.c | 16 +++++++----
target/ppc/cpu_init.c | 2 +-
target/ppc/mmu-book3s-v3.c | 21 +++++++++++---
target/ppc/mmu_common.c | 25 ++++++++++++----
tests/functional/ppc64/meson.build | 2 ++
tests/functional/ppc64/test_openbsd.py | 52 ++++++++++++++++++++++++++++++++++
8 files changed, 129 insertions(+), 35 deletions(-)
create mode 100755 tests/functional/ppc64/test_openbsd.py
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PULL 1/7] target/ppc/cpu_init: make cpu listing deterministic
2026-08-23 7:35 [PULL 0/7] ppc-for-11.2 queue Harsh Prateek Bora
@ 2026-08-23 7:35 ` Harsh Prateek Bora
2026-08-23 7:35 ` [PULL 2/7] target/ppc: Validate HTABMASK and reserved bits in SDR1 for 32-bit mode Harsh Prateek Bora
` (6 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Harsh Prateek Bora @ 2026-08-23 7:35 UTC (permalink / raw)
To: qemu-devel; +Cc: Pierrick Bouvier, Philippe Mathieu-Daudé, Amit Machhiwal
From: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
The existing compare function only make sure that we list cpus with PVR
order. However, we never compare cpu names.
As a result, while cpus are grouped per PVR, the order within a group is
non deterministic. Depending on QOM type initialization order, we get
different results for -cpu help.
For instance, previous output could be:
Available CPUs:
755_v1.0 PVR 00083100
745_v1.0 PVR 00083100
755_v1.1 PVR 00083101
745_v1.1 PVR 00083101
While a sorted output should be:
Available CPUs:
745_v1.0 PVR 00083100
755_v1.0 PVR 00083100
745_v1.1 PVR 00083101
755_v1.1 PVR 00083101
Fix it by comparing cpu names to have a stable result.
This allows us to record and compare various command line results across
versions to make sure we didn't break anything while working on
single-binary.
Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>
Tested-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>
Reviewed-by: Amit Machhiwal <amachhiw@linux.ibm.com>
Tested-by: Amit Machhiwal <amachhiw@linux.ibm.com>
Link: https://lore.kernel.org/qemu-devel/20260720192403.66694-1-pierrick.bouvier@oss.qualcomm.com
Signed-off-by: Harsh Prateek Bora <harshpb@linux.ibm.com>
---
target/ppc/cpu_init.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/target/ppc/cpu_init.c b/target/ppc/cpu_init.c
index e3a1075aad..e2533481d8 100644
--- a/target/ppc/cpu_init.c
+++ b/target/ppc/cpu_init.c
@@ -7130,7 +7130,7 @@ static gint ppc_cpu_list_compare(gconstpointer a, gconstpointer b, gpointer d)
} else if (pcc_a->pvr > pcc_b->pvr) {
return 1;
} else {
- return 0;
+ return strcmp(name_a, name_b);
}
}
}
--
2.52.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PULL 2/7] target/ppc: Validate HTABMASK and reserved bits in SDR1 for 32-bit mode
2026-08-23 7:35 [PULL 0/7] ppc-for-11.2 queue Harsh Prateek Bora
2026-08-23 7:35 ` [PULL 1/7] target/ppc/cpu_init: make cpu listing deterministic Harsh Prateek Bora
@ 2026-08-23 7:35 ` Harsh Prateek Bora
2026-08-23 7:35 ` [PULL 3/7] MAINTAINERS: Add myself as a reviewer for PPC KVM and sPAPR Harsh Prateek Bora
` (5 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Harsh Prateek Bora @ 2026-08-23 7:35 UTC (permalink / raw)
To: qemu-devel; +Cc: Minhang Zhang, Chinmay Rath
From: Minhang Zhang <zhangminhang@kylinos.cn>
ppc_store_sdr1() had validation for 64-bit SDR1 values but lacked
corresponding checks for the 32-bit case. According to the Power ISA,
in 32-bit mode SDR1 bits 16-22 are reserved (must be zero) and
HTABMASK (bits 23-31) must consist of a consecutive string of
1-bits starting from the LSB, i.e., be of the form 2^n-1.
Add checks to reject invalid HTABMASK values and log a guest error
for non-zero reserved bits, following the same pattern used by the
existing 64-bit validation.
Reviewed-by: Chinmay Rath <rathc@linux.ibm.com>
Signed-off-by: Minhang Zhang <zhangminhang@kylinos.cn>
Link: https://lore.kernel.org/qemu-devel/tencent_8388D4B38DC5172F5EEE70436D3AD6D02006@qq.com
Signed-off-by: Harsh Prateek Bora <harshpb@linux.ibm.com>
---
target/ppc/mmu_common.c | 25 ++++++++++++++++++++-----
1 file changed, 20 insertions(+), 5 deletions(-)
diff --git a/target/ppc/mmu_common.c b/target/ppc/mmu_common.c
index 2499e619f8..2a36817181 100644
--- a/target/ppc/mmu_common.c
+++ b/target/ppc/mmu_common.c
@@ -42,24 +42,39 @@ void ppc_store_sdr1(CPUPPCState *env, target_ulong value)
PowerPCCPU *cpu = env_archcpu(env);
qemu_log_mask(CPU_LOG_MMU, "%s: " TARGET_FMT_lx "\n", __func__, value);
assert(!cpu->env.has_hv_mode || !cpu->vhyp);
-#if defined(TARGET_PPC64)
if (mmu_is_64bit(env->mmu_model)) {
+#if defined(TARGET_PPC64)
target_ulong sdr_mask = SDR_64_HTABORG | SDR_64_HTABSIZE;
target_ulong htabsize = value & SDR_64_HTABSIZE;
if (value & ~sdr_mask) {
qemu_log_mask(LOG_GUEST_ERROR, "Invalid bits 0x"TARGET_FMT_lx
- " set in SDR1", value & ~sdr_mask);
+ " set in SDR1\n", value & ~sdr_mask);
value &= sdr_mask;
}
if (htabsize > 28) {
qemu_log_mask(LOG_GUEST_ERROR, "Invalid HTABSIZE 0x" TARGET_FMT_lx
- " stored in SDR1", htabsize);
+ " stored in SDR1\n", htabsize);
return;
}
- }
#endif /* defined(TARGET_PPC64) */
- /* FIXME: Should check for valid HTABMASK values in 32-bit case */
+ } else {
+ target_ulong sdr_mask = SDR_32_HTABORG | SDR_32_HTABMASK;
+ target_ulong htabmask = value & SDR_32_HTABMASK;
+
+ if (value & ~sdr_mask) {
+ qemu_log_mask(LOG_GUEST_ERROR,
+ "Invalid bits 0x" TARGET_FMT_lx
+ " set in SDR1\n", value & ~sdr_mask);
+ value &= sdr_mask;
+ }
+ if ((htabmask & (htabmask + 1)) != 0) {
+ qemu_log_mask(LOG_GUEST_ERROR,
+ "Invalid HTABMASK 0x" TARGET_FMT_lx
+ " in SDR1 (must be of form 2^n-1)\n", htabmask);
+ return;
+ }
+ }
env->spr[SPR_SDR1] = value;
}
--
2.52.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PULL 3/7] MAINTAINERS: Add myself as a reviewer for PPC KVM and sPAPR
2026-08-23 7:35 [PULL 0/7] ppc-for-11.2 queue Harsh Prateek Bora
2026-08-23 7:35 ` [PULL 1/7] target/ppc/cpu_init: make cpu listing deterministic Harsh Prateek Bora
2026-08-23 7:35 ` [PULL 2/7] target/ppc: Validate HTABMASK and reserved bits in SDR1 for 32-bit mode Harsh Prateek Bora
@ 2026-08-23 7:35 ` Harsh Prateek Bora
2026-08-23 7:35 ` [PULL 4/7] hw/watchdog: Add lower bound check for watchdogNumber Harsh Prateek Bora
` (4 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Harsh Prateek Bora @ 2026-08-23 7:35 UTC (permalink / raw)
To: qemu-devel
Cc: Amit Machhiwal, Gautam Menghani, Chinmay Rath,
Cédric Le Goater
From: Amit Machhiwal <amachhiw@linux.ibm.com>
I have been contributing to PPC KVM and sPAPR (pseries) for some time now and
would like to get notified of incoming changes to help with code reviews.
Signed-off-by: Amit Machhiwal <amachhiw@linux.ibm.com>
Acked-by: Gautam Menghani <gautam@linux.ibm.com>
Acked-by: Chinmay Rath <rathc@linux.ibm.com>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Link: https://lore.kernel.org/qemu-devel/20260819050545.21232-1-amachhiw@linux.ibm.com
Signed-off-by: Harsh Prateek Bora <harshpb@linux.ibm.com>
---
MAINTAINERS | 2 ++
1 file changed, 2 insertions(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index 08017f4786..79e6c8e0b2 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -497,6 +497,7 @@ F: tests/functional/aarch64/test_kvm.py
PPC KVM CPUs
M: Nicholas Piggin <npiggin@gmail.com>
R: Harsh Prateek Bora <harshpb@linux.ibm.com>
+R: Amit Machhiwal <amachhiw@linux.ibm.com>
S: Odd Fixes
F: target/ppc/kvm.c
@@ -1662,6 +1663,7 @@ F: tests/functional/ppc/test_40p.py
sPAPR (pseries)
M: Nicholas Piggin <npiggin@gmail.com>
M: Harsh Prateek Bora <harshpb@linux.ibm.com>
+R: Amit Machhiwal <amachhiw@linux.ibm.com>
L: qemu-ppc@nongnu.org
S: Odd Fixes
F: hw/*/spapr*
--
2.52.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PULL 4/7] hw/watchdog: Add lower bound check for watchdogNumber
2026-08-23 7:35 [PULL 0/7] ppc-for-11.2 queue Harsh Prateek Bora
` (2 preceding siblings ...)
2026-08-23 7:35 ` [PULL 3/7] MAINTAINERS: Add myself as a reviewer for PPC KVM and sPAPR Harsh Prateek Bora
@ 2026-08-23 7:35 ` Harsh Prateek Bora
2026-08-23 7:35 ` [PULL 5/7] powernv: boot OpenBSD on POWER9 Harsh Prateek Bora
` (3 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Harsh Prateek Bora @ 2026-08-23 7:35 UTC (permalink / raw)
To: qemu-devel; +Cc: Chinmay Rath, Amit Machhiwal, huntr bubble
From: Chinmay Rath <rathc@linux.ibm.com>
Add missing lower bound check for H_WATCHDOG H_CALL's watchdogNumber parameter
as per PAPR documentation ver 12.10.00 section 14.15.5 'H_WATCHDOG'.
Closes : https://gitlab.com/qemu-project/qemu/-/work_items/3600
Reviewed-by: Amit Machhiwal <amachhiw@linux.ibm.com>
Reported-by: huntr bubble <bubblehuntr@gmail.com>
Signed-off-by: Chinmay Rath <rathc@linux.ibm.com>
Link: https://lore.kernel.org/qemu-devel/20260818104551.76023-1-rathc@linux.ibm.com
[harshpb: corrected title prefix to hw/watchdog]
Signed-off-by: Harsh Prateek Bora <harshpb@linux.ibm.com>
---
hw/watchdog/spapr_watchdog.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/hw/watchdog/spapr_watchdog.c b/hw/watchdog/spapr_watchdog.c
index 5b3f50de3a..5a72896066 100644
--- a/hw/watchdog/spapr_watchdog.c
+++ b/hw/watchdog/spapr_watchdog.c
@@ -127,6 +127,12 @@ static void watchdog_expired(void *pw)
}
}
+static inline bool watchdog_number_valid(target_ulong watchdogNumber,
+ SpaprMachineState *spapr)
+{
+ return watchdogNumber >= 1 && watchdogNumber <= ARRAY_SIZE(spapr->wds);
+}
+
static target_ulong h_watchdog(PowerPCCPU *cpu,
SpaprMachineState *spapr,
target_ulong opcode, target_ulong *args)
@@ -145,7 +151,7 @@ static target_ulong h_watchdog(PowerPCCPU *cpu,
switch (operation) {
case PSERIES_WDTF_OP_START:
- if (watchdogNumber > ARRAY_SIZE(spapr->wds)) {
+ if (!watchdog_number_valid(watchdogNumber, spapr)) {
return H_P2;
}
if (timeoutInMs <= WDT_MIN_TIMEOUT) {
@@ -170,11 +176,11 @@ static target_ulong h_watchdog(PowerPCCPU *cpu,
case PSERIES_WDTF_OP_STOP:
if (watchdogNumber == PSERIES_WDT_STOP_ALL) {
ret = watchdog_stop_all(spapr);
- } else if (watchdogNumber <= ARRAY_SIZE(spapr->wds)) {
+ } else if (!watchdog_number_valid(watchdogNumber, spapr)) {
+ return H_P2;
+ } else {
ret = watchdog_stop(watchdogNumber,
&spapr->wds[watchdogNumber - 1]);
- } else {
- return H_P2;
}
break;
case PSERIES_WDTF_OP_QUERY:
@@ -184,7 +190,7 @@ static target_ulong h_watchdog(PowerPCCPU *cpu,
trace_spapr_watchdog_query(args[0]);
break;
case PSERIES_WDTF_OP_QUERY_LPM:
- if (watchdogNumber > ARRAY_SIZE(spapr->wds)) {
+ if (!watchdog_number_valid(watchdogNumber, spapr)) {
return H_P2;
}
args[0] = PSERIES_WDTQL_QUERY_NOT_STOPPED;
--
2.52.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PULL 5/7] powernv: boot OpenBSD on POWER9
2026-08-23 7:35 [PULL 0/7] ppc-for-11.2 queue Harsh Prateek Bora
` (3 preceding siblings ...)
2026-08-23 7:35 ` [PULL 4/7] hw/watchdog: Add lower bound check for watchdogNumber Harsh Prateek Bora
@ 2026-08-23 7:35 ` Harsh Prateek Bora
2026-08-23 7:35 ` [PULL 6/7] MAINTAINERS: add dedicated PowerPC RAS section Harsh Prateek Bora
` (2 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Harsh Prateek Bora @ 2026-08-23 7:35 UTC (permalink / raw)
To: qemu-devel; +Cc: Kirill A. Korinsky, Chinmay Rath, Aditya Gupta
From: "Kirill A. Korinsky" <kirill@korins.ky>
The POWER9 Processor User's Manual, section 4.9.4, specifies that POWER9
ignores PTCR[PATS] and only supports a 64 KiB partition table. Use an
effective PATS value of 4 on POWER9; other processors keep the existing
ISA v3.0 interpretation.
The PSI model now exposes POWER9 IRQ level and pending status registers,
and keeps both updated while delivering through the existing XIVE LSI
source. This lets guests that select the POWER9 PSI LSI IRQ method
continue to receive LPC interrupts.
The blast radius is probably minimal: the PTCR change is limited to
POWER9, while the PSI change only touches POWER9 PSI state and reuses
the existing delivery path.
Acked-by: Chinmay Rath <rathc@linux.ibm.com>
Signed-off-by: Kirill A. Korinsky <kirill@korins.ky>
Reviewed-by: Aditya Gupta <adityag@linux.ibm.com>
Link: https://lore.kernel.org/qemu-devel/20260719145559.94342-1-kirill@korins.ky
Signed-off-by: Harsh Prateek Bora <harshpb@linux.ibm.com>
---
hw/ppc/pnv_psi.c | 11 ++++--
target/ppc/mmu-book3s-v3.c | 21 +++++++++--
tests/functional/ppc64/meson.build | 2 +
tests/functional/ppc64/test_openbsd.py | 52 ++++++++++++++++++++++++++
4 files changed, 79 insertions(+), 7 deletions(-)
create mode 100755 tests/functional/ppc64/test_openbsd.py
diff --git a/hw/ppc/pnv_psi.c b/hw/ppc/pnv_psi.c
index e8701c6100..39ec448f3c 100644
--- a/hw/ppc/pnv_psi.c
+++ b/hw/ppc/pnv_psi.c
@@ -688,6 +688,8 @@ static uint64_t pnv_psi_p9_mmio_read(void *opaque, hwaddr addr, unsigned size)
case PSIHB9_ESB_CI_BASE:
case PSIHB9_ESB_NOTIF_ADDR:
case PSIHB9_IVT_OFFSET:
+ case PSIHB9_IRQ_LEVEL:
+ case PSIHB9_IRQ_STAT:
val = psi->regs[reg];
break;
default:
@@ -818,17 +820,20 @@ static void pnv_psi_power9_set_irq(void *opaque, int irq, int state)
{
PnvPsi *psi = opaque;
uint64_t irq_method = psi->regs[PSIHB_REG(PSIHB9_INTERRUPT_CONTROL)];
+ uint64_t irq_bit = PPC_BIT(irq);
if (irq_method & PSIHB9_IRQ_METHOD) {
qemu_log_mask(LOG_GUEST_ERROR, "PSI: LSI IRQ method no supported\n");
return;
}
- /* Update LSI levels */
+ /* Update LSI levels and pending status */
if (state) {
- psi->regs[PSIHB_REG(PSIHB9_IRQ_LEVEL)] |= PPC_BIT(irq);
+ psi->regs[PSIHB_REG(PSIHB9_IRQ_LEVEL)] |= irq_bit;
+ psi->regs[PSIHB_REG(PSIHB9_IRQ_STAT)] |= irq_bit;
} else {
- psi->regs[PSIHB_REG(PSIHB9_IRQ_LEVEL)] &= ~PPC_BIT(irq);
+ psi->regs[PSIHB_REG(PSIHB9_IRQ_LEVEL)] &= ~irq_bit;
+ psi->regs[PSIHB_REG(PSIHB9_IRQ_STAT)] &= ~irq_bit;
}
qemu_set_irq(psi->qirqs[irq], state);
diff --git a/target/ppc/mmu-book3s-v3.c b/target/ppc/mmu-book3s-v3.c
index 3865556310..f329a7a0f2 100644
--- a/target/ppc/mmu-book3s-v3.c
+++ b/target/ppc/mmu-book3s-v3.c
@@ -23,24 +23,37 @@
#include "mmu-hash64.h"
#include "mmu-book3s-v3.h"
+#define PPC64_V3_PATE_SIZE 16 /* two 64-bit words */
+
bool ppc64_v3_get_pate(PowerPCCPU *cpu, target_ulong lpid, ppc_v3_pate_t *entry)
{
uint64_t patb = cpu->env.spr[SPR_PTCR] & PTCR_PATB;
uint64_t pats = cpu->env.spr[SPR_PTCR] & PTCR_PATS;
+ uint64_t table_size;
+ uint64_t entries;
+
+ /*
+ * The POWER9 Processor User's Manual, section 4.9.4, specifies that
+ * POWER9 ignores PTCR[PATS] and only supports a 64 KiB partition table.
+ */
+ if (cpu->env.excp_model == POWERPC_EXCP_POWER9) {
+ pats = 4;
+ }
+ table_size = 1ULL << (pats + 12);
/* Check if partition table is properly aligned */
- if (patb & MAKE_64BIT_MASK(0, pats + 12)) {
+ if (patb & (table_size - 1)) {
return false;
}
/* Calculate number of entries */
- pats = 1ull << (pats + 12 - 4);
- if (pats <= lpid) {
+ entries = table_size / PPC64_V3_PATE_SIZE;
+ if (entries <= lpid) {
return false;
}
/* Grab entry */
- patb += 16 * lpid;
+ patb += PPC64_V3_PATE_SIZE * lpid;
entry->dw0 = ldq_phys(CPU(cpu)->as, patb);
entry->dw1 = ldq_phys(CPU(cpu)->as, patb + 8);
return true;
diff --git a/tests/functional/ppc64/meson.build b/tests/functional/ppc64/meson.build
index f0f8ab8f61..cb3c745624 100644
--- a/tests/functional/ppc64/meson.build
+++ b/tests/functional/ppc64/meson.build
@@ -4,6 +4,7 @@ test_ppc64_timeouts = {
'fadump' : 480,
'hv' : 1000,
'mac99' : 120,
+ 'openbsd' : 240,
'powernv' : 480,
'pseries' : 480,
'replay' : 210,
@@ -20,6 +21,7 @@ tests_ppc64_system_thorough = [
'fadump',
'hv',
'mac99',
+ 'openbsd',
'powernv',
'pseries',
'replay',
diff --git a/tests/functional/ppc64/test_openbsd.py b/tests/functional/ppc64/test_openbsd.py
new file mode 100755
index 0000000000..bdbef6bf82
--- /dev/null
+++ b/tests/functional/ppc64/test_openbsd.py
@@ -0,0 +1,52 @@
+#!/usr/bin/env python3
+#
+# Test that OpenBSD boots on a ppc powernv machine and reaches the installer.
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+from qemu_test import QemuSystemTest, Asset
+from qemu_test import wait_for_console_pattern
+
+
+class OpenBSDPowerNV(QemuSystemTest):
+
+ ASSET_MINIROOT = Asset(
+ 'https://kirill.korins.ky/pub/qemu-powerpc64-openbsd/miniroot79.img',
+ '7829e42b75d81cafd732038b9d63228b79c1f5828d8375872a4bb655e1d6b13c')
+
+ ASSET_BOOTKERNEL = Asset(
+ 'https://kirill.korins.ky/pub/qemu-powerpc64-openbsd/pnor.BOOTKERNEL',
+ '397ce43ce61910e1a2c4f13d301f957e61513a9ec5371bc3e87d3095411fae7b')
+
+ def test_powernv9_openbsd_installer(self):
+ self.set_machine('powernv9')
+ self.require_accelerator('tcg')
+
+ miniroot_path = self.ASSET_MINIROOT.fetch()
+ bootkernel_path = self.ASSET_BOOTKERNEL.fetch()
+
+ self.vm.set_console()
+ self.vm.add_args('-cpu', 'power9',
+ '-accel', 'tcg,thread=single',
+ '-smp', '1,cores=1,threads=1',
+ '-m', '2g',
+ '-kernel', bootkernel_path,
+ '-device',
+ 'ich9-ahci,id=sata0,bus=pcie.0,addr=0x0',
+ '-drive',
+ f'file={miniroot_path},format=raw,if=none,'
+ 'id=bootdisk,snapshot=on',
+ '-device',
+ 'ide-hd,bus=sata0.0,unit=0,drive=bootdisk,'
+ 'bootindex=1')
+ self.vm.launch()
+
+ wait_for_console_pattern(self, 'OpenBSD 7.9 (RAMDISK)', 'panic:')
+ wait_for_console_pattern(
+ self,
+ '(I)nstall, (U)pgrade, (A)utoinstall or (S)hell?',
+ 'panic:')
+
+
+if __name__ == '__main__':
+ QemuSystemTest.main()
--
2.52.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PULL 6/7] MAINTAINERS: add dedicated PowerPC RAS section
2026-08-23 7:35 [PULL 0/7] ppc-for-11.2 queue Harsh Prateek Bora
` (4 preceding siblings ...)
2026-08-23 7:35 ` [PULL 5/7] powernv: boot OpenBSD on POWER9 Harsh Prateek Bora
@ 2026-08-23 7:35 ` Harsh Prateek Bora
2026-08-23 7:35 ` [PULL 7/7] MAINTAINERS: add self as reviewer for PowerPC RAS Harsh Prateek Bora
2026-08-24 6:03 ` [PULL 0/7] ppc-for-11.2 queue Richard Henderson
7 siblings, 0 replies; 9+ messages in thread
From: Harsh Prateek Bora @ 2026-08-23 7:35 UTC (permalink / raw)
To: qemu-devel; +Cc: Shivang Upadhyay, Sourabh Jain, Aditya Gupta, Hari Bathini
From: Shivang Upadhyay <shivangu@linux.ibm.com>
Introduce a new "PowerPC RAS (Reliability, Availability and
Serviceability)" entry in the PowerPC Machines block, replacing the
existing Fadump/MPIPL sections. Retaining the maintainer and
reviewer entries from Fadump/MPIPL sections for this broader umbrella.
Currently most of RAS related code sits in spapr_rtas.c, So Adding
it to PowerPC RAS section. Additionally adding spapr_events.c, as it
implements RTAS error logging infrastructure and spapr_pci_vfio.c, since
its all EEH related code.
Acked-by: Sourabh Jain <sourabhjain@linux.ibm.com>
Acked-by: Aditya Gupta <adityag@linux.ibm.com>
Signed-off-by: Shivang Upadhyay <shivangu@linux.ibm.com>
Acked-by: Hari Bathini <hbathini@linux.ibm.com>
Link: https://lore.kernel.org/qemu-devel/20260819193757.1072909-2-shivangu@linux.ibm.com
Signed-off-by: Harsh Prateek Bora <harshpb@linux.ibm.com>
---
MAINTAINERS | 32 +++++++++++++++-----------------
1 file changed, 15 insertions(+), 17 deletions(-)
diff --git a/MAINTAINERS b/MAINTAINERS
index 79e6c8e0b2..c47e0790ba 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1765,6 +1765,21 @@ F: include/hw/ppc/vof*
F: pc-bios/vof/*
F: pc-bios/vof*
+PowerPC RAS (Reliability, Availability and Serviceability)
+M: Aditya Gupta <adityag@linux.ibm.com>
+R: Sourabh Jain <sourabhjain@linux.ibm.com>
+R: Hari Bathini <hbathini@linux.ibm.com>
+L: qemu-ppc@nongnu.org
+S: Maintained
+F: hw/ppc/spapr_events.c
+F: hw/ppc/spapr_fadump.c
+F: hw/ppc/spapr_pci_vfio.c
+F: hw/ppc/spapr_rtas.c
+F: hw/ppc/pnv_mpipl.c
+F: include/hw/ppc/spapr_fadump.h
+F: include/hw/ppc/pnv_mpipl.h
+F: tests/functional/ppc64/test_fadump.py
+
RISC-V Machines
---------------
OpenTitan
@@ -3402,23 +3417,6 @@ F: scripts/coccinelle/remove_local_err.cocci
F: scripts/coccinelle/use-error_fatal.cocci
F: scripts/coccinelle/errp-guard.cocci
-Firmware Assisted Dump (fadump) for sPAPR (pseries)
-M: Aditya Gupta <adityag@linux.ibm.com>
-R: Sourabh Jain <sourabhjain@linux.ibm.com>
-S: Maintained
-F: include/hw/ppc/spapr_fadump.h
-F: hw/ppc/spapr_fadump.c
-F: tests/functional/ppc64/test_fadump.py
-
-Memory-Preserving Initial Program Load (MPIPL) for PowerNV
-M: Aditya Gupta <adityag@linux.ibm.com>
-R: Hari Bathini <hbathini@linux.ibm.com>
-R: Sourabh <sourabhjain@linux.ibm.com>
-S: Maintained
-F: include/hw/ppc/pnv_mpipl.h
-F: hw/ppc/pnv_mpipl.c
-F: tests/functional/ppc64/test_fadump.py
-
GDB stub
M: Alex Bennée <alex.bennee@linaro.org>
R: Philippe Mathieu-Daudé <philmd@mailo.com>
--
2.52.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PULL 7/7] MAINTAINERS: add self as reviewer for PowerPC RAS
2026-08-23 7:35 [PULL 0/7] ppc-for-11.2 queue Harsh Prateek Bora
` (5 preceding siblings ...)
2026-08-23 7:35 ` [PULL 6/7] MAINTAINERS: add dedicated PowerPC RAS section Harsh Prateek Bora
@ 2026-08-23 7:35 ` Harsh Prateek Bora
2026-08-24 6:03 ` [PULL 0/7] ppc-for-11.2 queue Richard Henderson
7 siblings, 0 replies; 9+ messages in thread
From: Harsh Prateek Bora @ 2026-08-23 7:35 UTC (permalink / raw)
To: qemu-devel; +Cc: Shivang Upadhyay, Aditya Gupta
From: Shivang Upadhyay <shivangu@linux.ibm.com>
I have been contributing to Fadump, MPIPL as well as PowerNV for quite
some time, and my daily work responsibilities includes taking care of
PowerPC RAS features. I, therefore would like to step up as a reviewer
to get notified of incoming changes in this area and help reviewing
them.
Acked-by: Aditya Gupta <adityag@linux.ibm.com>
Signed-off-by: Shivang Upadhyay <shivangu@linux.ibm.com>
Link: https://lore.kernel.org/qemu-devel/20260819193757.1072909-3-shivangu@linux.ibm.com
Signed-off-by: Harsh Prateek Bora <harshpb@linux.ibm.com>
---
MAINTAINERS | 1 +
1 file changed, 1 insertion(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index c47e0790ba..60c7f51c23 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1769,6 +1769,7 @@ PowerPC RAS (Reliability, Availability and Serviceability)
M: Aditya Gupta <adityag@linux.ibm.com>
R: Sourabh Jain <sourabhjain@linux.ibm.com>
R: Hari Bathini <hbathini@linux.ibm.com>
+R: Shivang Upadhyay <shivangu@linux.ibm.com>
L: qemu-ppc@nongnu.org
S: Maintained
F: hw/ppc/spapr_events.c
--
2.52.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PULL 0/7] ppc-for-11.2 queue
2026-08-23 7:35 [PULL 0/7] ppc-for-11.2 queue Harsh Prateek Bora
` (6 preceding siblings ...)
2026-08-23 7:35 ` [PULL 7/7] MAINTAINERS: add self as reviewer for PowerPC RAS Harsh Prateek Bora
@ 2026-08-24 6:03 ` Richard Henderson
7 siblings, 0 replies; 9+ messages in thread
From: Richard Henderson @ 2026-08-24 6:03 UTC (permalink / raw)
To: Harsh Prateek Bora, qemu-devel
On 8/23/26 00:35, Harsh Prateek Bora wrote:
> The following changes since commit eea8fe61b8be8f3016e522e6af24924a0266ca95:
>
> Merge tag 'igvm-20260821-pull-request' ofhttps://gitlab.com/kraxel/qemu into staging (2026-08-21 10:39:31 -0700)
>
> are available in the Git repository at:
>
> https://gitlab.com/harshpb/qemu.git tags/pull-ppc-for-11.2-20260823
>
> for you to fetch changes up to 45caf67b9a6a446629e1c133b76a3d9a3cebdcf1:
>
> MAINTAINERS: add self as reviewer for PowerPC RAS (2026-08-23 11:42:57 +0530)
>
> ----------------------------------------------------------------
> PPC PR for 11.2 - 20260823
>
> * powernv: boot OpenBSD on POWER9
> * Misc fixes in target/ppc and spapr_watchdog
> * MAINTAINERS: adding reviewers - Amit (PPC KVM, sPAPR) and Shivang (PPC RAS)
Applied, thanks. Please update https://wiki.qemu.org/ChangeLog/11.2 as appropriate.
r~
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2026-08-24 6:03 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-23 7:35 [PULL 0/7] ppc-for-11.2 queue Harsh Prateek Bora
2026-08-23 7:35 ` [PULL 1/7] target/ppc/cpu_init: make cpu listing deterministic Harsh Prateek Bora
2026-08-23 7:35 ` [PULL 2/7] target/ppc: Validate HTABMASK and reserved bits in SDR1 for 32-bit mode Harsh Prateek Bora
2026-08-23 7:35 ` [PULL 3/7] MAINTAINERS: Add myself as a reviewer for PPC KVM and sPAPR Harsh Prateek Bora
2026-08-23 7:35 ` [PULL 4/7] hw/watchdog: Add lower bound check for watchdogNumber Harsh Prateek Bora
2026-08-23 7:35 ` [PULL 5/7] powernv: boot OpenBSD on POWER9 Harsh Prateek Bora
2026-08-23 7:35 ` [PULL 6/7] MAINTAINERS: add dedicated PowerPC RAS section Harsh Prateek Bora
2026-08-23 7:35 ` [PULL 7/7] MAINTAINERS: add self as reviewer for PowerPC RAS Harsh Prateek Bora
2026-08-24 6:03 ` [PULL 0/7] ppc-for-11.2 queue Richard Henderson
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.