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>
This commit is contained in:
Helge Deller
2026-03-29 20:46:52 +02:00
parent a45862947e
commit afcb125165

View File

@@ -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];