Commit afcb125165 for qemu.org
commit afcb125165eb3168ea95424a7355ea7e66256790
Author: Helge Deller <deller@gmx.de>
Date: Sun Mar 29 20:46:52 2026 +0200
target/hppa: Fix TOC handler for 64-bit CPUs
When the TOC handler is triggered, e.g. by using the "NMI" command
in the QEMU monitor, make sure to call the full 64-bit TOC handler
address in SeaBIOS-hppa firmware.
This fixes the TOC handler on 64-bit CPUs (and 64-bit SeaBIOS).
Signed-off-by: Helge Deller <deller@gmx.de>
diff --git a/target/hppa/int_helper.c b/target/hppa/int_helper.c
index d5a20cd549..3e87b9a001 100644
--- a/target/hppa/int_helper.c
+++ b/target/hppa/int_helper.c
@@ -203,7 +203,12 @@ void hppa_cpu_do_interrupt(CPUState *cs)
/* step 7 */
if (i == EXCP_TOC) {
- env->iaoq_f = hppa_form_gva(env, 0, FIRMWARE_START);
+ hwaddr pdc_toc_addr = FIRMWARE_START;
+
+ /* for 64-bit include the high bits of PDC */
+ pdc_toc_addr |= ((uint64_t) FIRMWARE_HIGH) << 32;
+ env->iaoq_f = hppa_form_gva(env, 0, pdc_toc_addr);
+
/* help SeaBIOS and provide iaoq_b and iasq_back in shadow regs */
env->gr[24] = env->cr_back[0];
env->gr[25] = env->cr_back[1];