@@ -281,8 +281,10 @@ void HELPER(m68k_movec_to)(CPUM68KState *env, uint32_t reg, uint32_t val)
return;
}
break;
- /* Unimplemented Registers */
+ /* Dummy implementation for CAAR */
case M68K_CR_CAAR:
+ return;
+ /* Unimplemented Registers */
case M68K_CR_PCR:
case M68K_CR_BUSCR:
cpu_abort(env_cpu(env),
@@ -385,8 +387,10 @@ uint32_t HELPER(m68k_movec_from)(CPUM68KState *env, uint32_t reg)
return env->mmu.ttr[M68K_DTTR1];
}
break;
- /* Unimplemented Registers */
+ /* Dummy implementation for CAAR */
case M68K_CR_CAAR:
+ return 0;
+ /* Unimplemented Registers */
case M68K_CR_PCR:
case M68K_CR_BUSCR:
cpu_abort(env_cpu(env), "Unimplemented control register read 0x%x\n",
Why this change is made & How it will be used: The Sun-3 ROM expects the Cache Control Register (CAAR) to exist on the 68020. Reading/writing this register currently aborts QEMU. This patch provides a dummy implementation that simply ignores writes and returns 0 on reads, allowing the ROM to continue booting. Impact on existing functionality: No impact on existing targets. ColdFire and Mac targets do not access CAAR in a way that currently aborts, and providing a safe dummy implementation ensures robustness across M68k boards. Signed-off-by: 54weasels <54weasels@gmail.com> --- target/m68k/helper.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)