target/ppc: Introduce macro for deprecating PowerPC CPUs
QEMU has a way to deprecate CPUs by setting the 'deprecation_note' in
CPUClass.
Currently PowerPC CPUs don't use this deprecation process.
Introduce 'POWERPC_DEPRECATED_CPU' macro to deprecate particular PowerPC
CPUs in future.
With the change, QEMU will print a warning like below when the
deprecated CPU/Chips are used (example output if power8nvl is deprecated):
$ ./build/qemu-system-ppc64 -M powernv8 --cpu power8nvl -nographic
qemu-system-ppc64: warning: CPU model power8nvl_v1.0-powerpc64-cpu is deprecated -- CPU is unmaintained.
...
Also, print '(deprecated)' for deprecated CPUs in 'qemu-system-ppc64
--cpu ?' (example output if power8nvl is deprecated):
$ ./build/qemu-system-ppc64 --cpu help
...
power8e (alias for power8e_v2.1)
power8nvl_v1.0 PVR 004c0100 (deprecated)
power8nvl (alias for power8nvl_v1.0)
power8_v2.0 PVR 004d0200
...
Suggested-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Aditya Gupta <adityag@linux.ibm.com>
Tested-by: Anushree Mathur <anushree.mathur@linux.ibm.com>
Signed-off-by: Harsh Prateek Bora <harshpb@linux.ibm.com>
Link: https://lore.kernel.org/r/20250607110412.2342511-2-adityag@linux.ibm.com
Message-ID: <20250607110412.2342511-2-adityag@linux.ibm.com>
This commit is contained in:
parent
241f6f7994
commit
f19052110e
2 changed files with 17 additions and 2 deletions
|
|
@ -32,17 +32,20 @@
|
|||
/* PowerPC CPU definitions */
|
||||
#define POWERPC_DEF_PREFIX(pvr, svr, type) \
|
||||
glue(glue(glue(glue(pvr, _), svr), _), type)
|
||||
#define POWERPC_DEF_SVR(_name, _desc, _pvr, _svr, _type) \
|
||||
#define POWERPC_DEF_SVR_DEPR(_name, _desc, _pvr, _svr, _type, _deprecation_note) \
|
||||
static void \
|
||||
glue(POWERPC_DEF_PREFIX(_pvr, _svr, _type), _cpu_class_init) \
|
||||
(ObjectClass *oc, const void *data) \
|
||||
{ \
|
||||
DeviceClass *dc = DEVICE_CLASS(oc); \
|
||||
CPUClass *cc = CPU_CLASS(oc); \
|
||||
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc); \
|
||||
\
|
||||
pcc->pvr = _pvr; \
|
||||
pcc->svr = _svr; \
|
||||
dc->desc = _desc; \
|
||||
\
|
||||
cc->deprecation_note = _deprecation_note; \
|
||||
} \
|
||||
\
|
||||
static const TypeInfo \
|
||||
|
|
@ -63,6 +66,13 @@
|
|||
type_init( \
|
||||
glue(POWERPC_DEF_PREFIX(_pvr, _svr, _type), _cpu_register_types))
|
||||
|
||||
#define POWERPC_DEF_SVR(_name, _desc, _pvr, _svr, _type) \
|
||||
POWERPC_DEF_SVR_DEPR(_name, _desc, _pvr, _svr, _type, NULL)
|
||||
|
||||
#define POWERPC_DEPRECATED_CPU(_name, _pvr, _type, _desc, _deprecation_note)\
|
||||
POWERPC_DEF_SVR_DEPR(_name, _desc, _pvr, POWERPC_SVR_NONE, _type, \
|
||||
_deprecation_note)
|
||||
|
||||
#define POWERPC_DEF(_name, _pvr, _type, _desc) \
|
||||
POWERPC_DEF_SVR(_name, _desc, _pvr, POWERPC_SVR_NONE, _type)
|
||||
|
||||
|
|
|
|||
|
|
@ -7298,6 +7298,7 @@ static void ppc_cpu_list_entry(gpointer data, gpointer user_data)
|
|||
{
|
||||
ObjectClass *oc = data;
|
||||
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
|
||||
CPUClass *cc = CPU_CLASS(oc);
|
||||
DeviceClass *family = DEVICE_CLASS(ppc_cpu_get_family_class(pcc));
|
||||
const char *typename = object_class_get_name(oc);
|
||||
char *name;
|
||||
|
|
@ -7308,7 +7309,11 @@ static void ppc_cpu_list_entry(gpointer data, gpointer user_data)
|
|||
}
|
||||
|
||||
name = cpu_model_from_type(typename);
|
||||
qemu_printf(" %-16s PVR %08x\n", name, pcc->pvr);
|
||||
if (cc->deprecation_note) {
|
||||
qemu_printf(" %-16s PVR %08x (deprecated)\n", name, pcc->pvr);
|
||||
} else {
|
||||
qemu_printf(" %-16s PVR %08x\n", name, pcc->pvr);
|
||||
}
|
||||
for (i = 0; ppc_cpu_aliases[i].alias != NULL; i++) {
|
||||
PowerPCCPUAlias *alias = &ppc_cpu_aliases[i];
|
||||
ObjectClass *alias_oc = ppc_cpu_class_by_name(alias->model);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue