mirror of https://gitee.com/openkylin/qemu.git
target-ppc: disable unsupported modes for SPR_CTRL/SPR_UCTRL
The Figure 17 "SPR encodings" of the PowerISA 2.07 describes CTRL SPR as: priviledged # spr5-9 spr0-4 name mtspr mfspr len cat 136 00100 01000 CTRL - no 32 S 152 00100 11000 CTRL yes - 32 S According to this chart, the hypervisor's CTRL (#152) does not support reading, the user-space's CTRL (UCTRL, #136) does not support writing. This replaces unsupported operations with the default SPR_NOACCESS hook. Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
parent
3052f0d594
commit
4e38181979
|
@ -6739,11 +6739,11 @@ static void init_proc_970FX (CPUPPCState *env)
|
|||
0x00000000);
|
||||
spr_register(env, SPR_CTRL, "SPR_CTRL",
|
||||
SPR_NOACCESS, SPR_NOACCESS,
|
||||
&spr_read_generic, &spr_write_generic,
|
||||
SPR_NOACCESS, &spr_write_generic,
|
||||
0x00000000);
|
||||
spr_register(env, SPR_UCTRL, "SPR_UCTRL",
|
||||
SPR_NOACCESS, SPR_NOACCESS,
|
||||
&spr_read_generic, &spr_write_generic,
|
||||
&spr_read_generic, SPR_NOACCESS,
|
||||
0x00000000);
|
||||
spr_register(env, SPR_VRSAVE, "SPR_VRSAVE",
|
||||
&spr_read_generic, &spr_write_generic,
|
||||
|
@ -6909,11 +6909,11 @@ static void init_proc_power5plus(CPUPPCState *env)
|
|||
0x00000000);
|
||||
spr_register(env, SPR_CTRL, "SPR_CTRL",
|
||||
SPR_NOACCESS, SPR_NOACCESS,
|
||||
&spr_read_generic, &spr_write_generic,
|
||||
SPR_NOACCESS, &spr_write_generic,
|
||||
0x00000000);
|
||||
spr_register(env, SPR_UCTRL, "SPR_UCTRL",
|
||||
SPR_NOACCESS, SPR_NOACCESS,
|
||||
&spr_read_generic, &spr_write_generic,
|
||||
&spr_read_generic, SPR_NOACCESS,
|
||||
0x00000000);
|
||||
spr_register(env, SPR_VRSAVE, "SPR_VRSAVE",
|
||||
&spr_read_generic, &spr_write_generic,
|
||||
|
@ -7014,11 +7014,11 @@ static void init_proc_POWER7 (CPUPPCState *env)
|
|||
/* XXX : not implemented */
|
||||
spr_register(env, SPR_CTRL, "SPR_CTRLT",
|
||||
SPR_NOACCESS, SPR_NOACCESS,
|
||||
&spr_read_generic, &spr_write_generic,
|
||||
SPR_NOACCESS, &spr_write_generic,
|
||||
0x80800000);
|
||||
spr_register(env, SPR_UCTRL, "SPR_CTRLF",
|
||||
SPR_NOACCESS, SPR_NOACCESS,
|
||||
&spr_read_generic, &spr_write_generic,
|
||||
&spr_read_generic, SPR_NOACCESS,
|
||||
0x80800000);
|
||||
spr_register(env, SPR_VRSAVE, "SPR_VRSAVE",
|
||||
&spr_read_generic, &spr_write_generic,
|
||||
|
|
Loading…
Reference in New Issue