target/ppc: booke: Machine Check cleanups
There's no MSR_HV in BookE. Also remove 40x code. Signed-off-by: Fabiano Rosas <farosas@linux.ibm.com> Message-Id: <20220128224018.1228062-5-farosas@linux.ibm.com> Signed-off-by: Cédric Le Goater <clg@kaod.org>
This commit is contained in:
parent
9c9b67fe91
commit
db403211f8
@ -819,34 +819,17 @@ static void powerpc_excp_booke(PowerPCCPU *cpu, int excp)
|
|||||||
cs->halted = 1;
|
cs->halted = 1;
|
||||||
cpu_interrupt_exittb(cs);
|
cpu_interrupt_exittb(cs);
|
||||||
}
|
}
|
||||||
if (env->msr_mask & MSR_HVB) {
|
|
||||||
/*
|
|
||||||
* ISA specifies HV, but can be delivered to guest with HV
|
|
||||||
* clear (e.g., see FWNMI in PAPR).
|
|
||||||
*/
|
|
||||||
new_msr |= (target_ulong)MSR_HVB;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* machine check exceptions don't have ME set */
|
/* machine check exceptions don't have ME set */
|
||||||
new_msr &= ~((target_ulong)1 << MSR_ME);
|
new_msr &= ~((target_ulong)1 << MSR_ME);
|
||||||
|
|
||||||
/* XXX: should also have something loaded in DAR / DSISR */
|
|
||||||
switch (excp_model) {
|
|
||||||
case POWERPC_EXCP_40x:
|
|
||||||
srr0 = SPR_40x_SRR2;
|
|
||||||
srr1 = SPR_40x_SRR3;
|
|
||||||
break;
|
|
||||||
case POWERPC_EXCP_BOOKE:
|
|
||||||
/* FIXME: choose one or the other based on CPU type */
|
/* FIXME: choose one or the other based on CPU type */
|
||||||
srr0 = SPR_BOOKE_MCSRR0;
|
srr0 = SPR_BOOKE_MCSRR0;
|
||||||
srr1 = SPR_BOOKE_MCSRR1;
|
srr1 = SPR_BOOKE_MCSRR1;
|
||||||
|
|
||||||
env->spr[SPR_BOOKE_CSRR0] = env->nip;
|
env->spr[SPR_BOOKE_CSRR0] = env->nip;
|
||||||
env->spr[SPR_BOOKE_CSRR1] = msr;
|
env->spr[SPR_BOOKE_CSRR1] = msr;
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case POWERPC_EXCP_DSI: /* Data storage exception */
|
case POWERPC_EXCP_DSI: /* Data storage exception */
|
||||||
trace_ppc_excp_dsi(env->spr[SPR_DSISR], env->spr[SPR_DAR]);
|
trace_ppc_excp_dsi(env->spr[SPR_DSISR], env->spr[SPR_DAR]);
|
||||||
|
Loading…
Reference in New Issue
Block a user