mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-08 18:23:57 -06:00
target/ppc: Implement attn instruction on BookS 64-bit processors
attn is an implementation-specific instruction that on POWER (and G5/ 970) can be enabled with a HID bit (disabled = illegal), and executing it causes the host processor to stop and the service processor to be notified. Generally used for debugging. Implement attn and make it checkstop the system, which should be good enough for QEMU debugging. Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
This commit is contained in:
parent
9728fb5c22
commit
45693f94dd
6 changed files with 130 additions and 9 deletions
|
@ -1375,6 +1375,9 @@ struct CPUArchState {
|
|||
/* Power management */
|
||||
int (*check_pow)(CPUPPCState *env);
|
||||
|
||||
/* attn instruction enable */
|
||||
int (*check_attn)(CPUPPCState *env);
|
||||
|
||||
#if !defined(CONFIG_USER_ONLY)
|
||||
void *load_info; /* holds boot loading state */
|
||||
#endif
|
||||
|
@ -1523,6 +1526,7 @@ struct PowerPCCPUClass {
|
|||
int n_host_threads;
|
||||
void (*init_proc)(CPUPPCState *env);
|
||||
int (*check_pow)(CPUPPCState *env);
|
||||
int (*check_attn)(CPUPPCState *env);
|
||||
};
|
||||
|
||||
ObjectClass *ppc_cpu_class_by_name(const char *name);
|
||||
|
@ -2320,6 +2324,8 @@ void ppc_compat_add_property(Object *obj, const char *name,
|
|||
#define HID0_NAP (1 << 22) /* pre-2.06 */
|
||||
#define HID0_HILE PPC_BIT(19) /* POWER8 */
|
||||
#define HID0_POWER9_HILE PPC_BIT(4)
|
||||
#define HID0_ENABLE_ATTN PPC_BIT(31) /* POWER8 */
|
||||
#define HID0_POWER9_ENABLE_ATTN PPC_BIT(3)
|
||||
|
||||
/*****************************************************************************/
|
||||
/* PowerPC Instructions types definitions */
|
||||
|
@ -3025,6 +3031,12 @@ static inline int check_pow_nocheck(CPUPPCState *env)
|
|||
return 1;
|
||||
}
|
||||
|
||||
/* attn enable check */
|
||||
static inline int check_attn_none(CPUPPCState *env)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/* PowerPC implementations definitions */
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue