qemu/target/hppa
Helge Deller 6ce18d5306 target/hppa: Fix PDC address translation on PA2.0 with PSW.W=0
Fix the address translation for PDC space on PA2.0 if PSW.W=0.
Basically, for any address in the 32-bit PDC range from 0xf0000000 to
0xf1000000 keep the lower 32-bits and just set the upper 32-bits to
0xfffffff0.

This mapping fixes the emulated power button in PDC space for 32- and
64-bit machines and is how the physical C3700 machine seems to map
PDC.

Figures H-10 and H-11 in the parisc2.0 spec [1] show that the 32-bit
region will be mapped somewhere into a higher and bigger 64-bit PDC
space.  The start and end of this 64-bit space is defined by the
physical address bits. But the figures don't specifiy where exactly the
mapping will start inside that region. Tests on a real HP C3700
regarding the address of the power button indicate, that the lower
32-bits will stay the same though.
[1] https://parisc.wiki.kernel.org/images-parisc/7/73/Parisc2.0.pdf

Signed-off-by: Helge Deller <deller@gmx.de>
Tested-by: Bruno Haible <bruno@clisp.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
2024-01-13 06:48:14 +01:00
..
cpu-param.h target/hppa: Reduce TARGET_PHYS_ADDR_SPACE_BITS to 40 2023-11-13 09:21:32 -08:00
cpu-qom.h target: Move ArchCPUClass definition to 'cpu.h' 2023-11-07 13:08:48 +01:00
cpu.c target/hppa: Add unwind_breg to CPUHPPAState 2023-11-06 18:49:34 -08:00
cpu.h target/hppa: spelling fixes: Indicies, Truely 2023-11-15 11:59:54 +03:00
fpu_helper.c target/hppa: Extract FPU helpers to fpu_helper.c 2023-02-27 22:29:01 +01:00
gdbstub.c target/hppa: Drop attempted gdbstub support for hppa64 2023-11-06 18:49:34 -08:00
helper.c target/hppa: Remove TARGET_REGISTER_BITS 2023-11-06 18:49:34 -08:00
helper.h target/hppa: Add pa2.0 cpu local tlb flushes 2023-11-06 18:49:34 -08:00
insns.decode target/hppa: Add pa2.0 cpu local tlb flushes 2023-11-06 18:49:34 -08:00
int_helper.c target/hppa: Fix calculation of CR_IIASQ back register 2023-11-13 09:17:07 -08:00
Kconfig
machine.c target/hppa: spelling fixes: Indicies, Truely 2023-11-15 11:59:54 +03:00
mem_helper.c target/hppa: Fix PDC address translation on PA2.0 with PSW.W=0 2024-01-13 06:48:14 +01:00
meson.build meson: Rename target_softmmu_arch -> target_system_arch 2023-10-07 19:03:07 +02:00
op_helper.c target/hppa: Use PRIV_P_TO_MMU_IDX in helper_probe 2023-11-13 09:17:07 -08:00
sys_helper.c target/hppa: Update IIAOQ, IIASQ for pa2.0 2023-11-06 18:49:34 -08:00
trace-events target/hppa: Add pa2.0 cpu local tlb flushes 2023-11-06 18:49:34 -08:00
trace.h
translate.c target/hppa: Fix 64-bit SHRPD instruction 2023-11-17 18:36:36 +01:00