ppc/pnv: Implement Power9 CPU core thread state indirect register
Power9 CPUs have a core thread state register accessible via SPRC/SPRD indirect registers. This register includes a bit for big-core mode, which skiboot requires. Reviewed-by: Cédric Le Goater <clg@redhat.com> Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
This commit is contained in:
parent
27f61d1b0b
commit
16ffcb3401
@ -325,6 +325,23 @@ target_ulong helper_load_sprd(CPUPPCState *env)
|
||||
case 0: /* SCRATCH0-3 */
|
||||
case 1: /* SCRATCH4-7 */
|
||||
return pc->scratch[(sprc >> 3) & 0x7];
|
||||
|
||||
case 0x1e0: /* core thread state */
|
||||
if (env->excp_model == POWERPC_EXCP_POWER9) {
|
||||
/*
|
||||
* Only implement for POWER9 because skiboot uses it to check
|
||||
* big-core mode. Other bits are unimplemented so we would
|
||||
* prefer to get unimplemented message on POWER10 if it were
|
||||
* used anywhere.
|
||||
*/
|
||||
if (pc->big_core) {
|
||||
return PPC_BIT(63);
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
/* fallthru */
|
||||
|
||||
default:
|
||||
qemu_log_mask(LOG_UNIMP, "mfSPRD: Unimplemented SPRC:0x"
|
||||
TARGET_FMT_lx"\n", sprc);
|
||||
|
Loading…
Reference in New Issue
Block a user