qemu/target/ppc/cpu-models.c

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

925 lines
47 KiB
C
Raw Normal View History

/*
* PowerPC CPU initialization for qemu.
*
* Copyright (c) 2003-2007 Jocelyn Mayer
* Copyright 2011 Freescale Semiconductor, Inc.
* Copyright 2013 SUSE LINUX Products GmbH
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
#include "qemu/osdep.h"
#include "cpu.h"
#include "qemu/module.h"
#include "cpu-models.h"
#if defined(CONFIG_USER_ONLY)
#define TODO_USER_ONLY 1
#endif
/***************************************************************************/
/* 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) \
static void \
glue(POWERPC_DEF_PREFIX(_pvr, _svr, _type), _cpu_class_init) \
(ObjectClass *oc, void *data) \
{ \
DeviceClass *dc = DEVICE_CLASS(oc); \
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc); \
\
pcc->pvr = _pvr; \
pcc->svr = _svr; \
dc->desc = _desc; \
} \
\
static const TypeInfo \
glue(POWERPC_DEF_PREFIX(_pvr, _svr, _type), _cpu_type_info) = { \
.name = POWERPC_CPU_TYPE_NAME(_name), \
.parent = stringify(_type) "-family-" TYPE_POWERPC_CPU, \
.class_init = \
glue(POWERPC_DEF_PREFIX(_pvr, _svr, _type), _cpu_class_init), \
}; \
\
static void \
glue(POWERPC_DEF_PREFIX(_pvr, _svr, _type), _cpu_register_types)(void) \
{ \
type_register_static( \
&glue(POWERPC_DEF_PREFIX(_pvr, _svr, _type), _cpu_type_info)); \
} \
\
type_init( \
glue(POWERPC_DEF_PREFIX(_pvr, _svr, _type), _cpu_register_types))
#define POWERPC_DEF(_name, _pvr, _type, _desc) \
POWERPC_DEF_SVR(_name, _desc, _pvr, POWERPC_SVR_NONE, _type)
/* Embedded PowerPC */
/* PowerPC 405 family */
/* PowerPC 405 cores */
POWERPC_DEF("405d2", CPU_POWERPC_405D2, 405,
"PowerPC 405 D2")
POWERPC_DEF("405d4", CPU_POWERPC_405D4, 405,
"PowerPC 405 D4")
/* PowerPC 405 microcontrollers */
POWERPC_DEF("405cra", CPU_POWERPC_405CRa, 405,
"PowerPC 405 CRa")
POWERPC_DEF("405crb", CPU_POWERPC_405CRb, 405,
"PowerPC 405 CRb")
POWERPC_DEF("405crc", CPU_POWERPC_405CRc, 405,
"PowerPC 405 CRc")
POWERPC_DEF("405ep", CPU_POWERPC_405EP, 405,
"PowerPC 405 EP")
POWERPC_DEF("405ez", CPU_POWERPC_405EZ, 405,
"PowerPC 405 EZ")
POWERPC_DEF("405gpa", CPU_POWERPC_405GPa, 405,
"PowerPC 405 GPa")
POWERPC_DEF("405gpb", CPU_POWERPC_405GPb, 405,
"PowerPC 405 GPb")
POWERPC_DEF("405gpc", CPU_POWERPC_405GPc, 405,
"PowerPC 405 GPc")
POWERPC_DEF("405gpd", CPU_POWERPC_405GPd, 405,
"PowerPC 405 GPd")
POWERPC_DEF("405gpr", CPU_POWERPC_405GPR, 405,
"PowerPC 405 GPR")
POWERPC_DEF("405lp", CPU_POWERPC_405LP, 405,
"PowerPC 405 LP")
POWERPC_DEF("npe405h", CPU_POWERPC_NPE405H, 405,
"Npe405 H")
POWERPC_DEF("npe405h2", CPU_POWERPC_NPE405H2, 405,
"Npe405 H2")
POWERPC_DEF("npe405l", CPU_POWERPC_NPE405L, 405,
"Npe405 L")
POWERPC_DEF("npe4gs3", CPU_POWERPC_NPE4GS3, 405,
"Npe4GS3")
/* PowerPC 401/403/405 based set-top-box microcontrollers */
POWERPC_DEF("stb03", CPU_POWERPC_STB03, 405,
"STB03xx")
POWERPC_DEF("stb04", CPU_POWERPC_STB04, 405,
"STB04xx")
POWERPC_DEF("stb25", CPU_POWERPC_STB25, 405,
"STB25xx")
/* Xilinx PowerPC 405 cores */
POWERPC_DEF("x2vp4", CPU_POWERPC_X2VP4, 405,
NULL)
POWERPC_DEF("x2vp20", CPU_POWERPC_X2VP20, 405,
NULL)
/* PowerPC 440 family */
#if defined(TODO_USER_ONLY)
POWERPC_DEF("440", CPU_POWERPC_440, 440GP,
"Generic PowerPC 440")
#endif
/* PowerPC 440 cores */
POWERPC_DEF("440-xilinx", CPU_POWERPC_440_XILINX, 440x5,
"PowerPC 440 Xilinx 5")
POWERPC_DEF("440-xilinx-w-dfpu", CPU_POWERPC_440_XILINX, 440x5wDFPU,
"PowerPC 440 Xilinx 5 With a Double Prec. FPU")
/* PowerPC 440 microcontrollers */
POWERPC_DEF("440epa", CPU_POWERPC_440EPa, 440EP,
"PowerPC 440 EPa")
POWERPC_DEF("440epb", CPU_POWERPC_440EPb, 440EP,
"PowerPC 440 EPb")
POWERPC_DEF("440epx", CPU_POWERPC_440EPX, 440EP,
"PowerPC 440 EPX")
POWERPC_DEF("460exb", CPU_POWERPC_460EXb, 460EX,
"PowerPC 460 EXb")
#if defined(TODO_USER_ONLY)
POWERPC_DEF("440gpb", CPU_POWERPC_440GPb, 440GP,
"PowerPC 440 GPb")
#endif
#if defined(TODO_USER_ONLY)
POWERPC_DEF("440gpc", CPU_POWERPC_440GPc, 440GP,
"PowerPC 440 GPc")
#endif
#if defined(TODO_USER_ONLY)
POWERPC_DEF("440gra", CPU_POWERPC_440GRa, 440x5,
"PowerPC 440 GRa")
#endif
#if defined(TODO_USER_ONLY)
POWERPC_DEF("440grx", CPU_POWERPC_440GRX, 440x5,
"PowerPC 440 GRX")
#endif
#if defined(TODO_USER_ONLY)
POWERPC_DEF("440gxa", CPU_POWERPC_440GXa, 440EP,
"PowerPC 440 GXa")
#endif
#if defined(TODO_USER_ONLY)
POWERPC_DEF("440gxb", CPU_POWERPC_440GXb, 440EP,
"PowerPC 440 GXb")
#endif
#if defined(TODO_USER_ONLY)
POWERPC_DEF("440gxc", CPU_POWERPC_440GXc, 440EP,
"PowerPC 440 GXc")
#endif
#if defined(TODO_USER_ONLY)
POWERPC_DEF("440gxf", CPU_POWERPC_440GXf, 440EP,
"PowerPC 440 GXf")
#endif
#if defined(TODO_USER_ONLY)
POWERPC_DEF("440sp", CPU_POWERPC_440SP, 440EP,
"PowerPC 440 SP")
#endif
#if defined(TODO_USER_ONLY)
POWERPC_DEF("440sp2", CPU_POWERPC_440SP2, 440EP,
"PowerPC 440 SP2")
#endif
#if defined(TODO_USER_ONLY)
POWERPC_DEF("440spe", CPU_POWERPC_440SPE, 440EP,
"PowerPC 440 SPE")
#endif
/* Freescale embedded PowerPC cores */
/* MPC5xx family (aka RCPU) */
#if defined(TODO_USER_ONLY)
POWERPC_DEF("mpc5xx", CPU_POWERPC_MPC5xx, MPC5xx,
"Generic MPC5xx core")
#endif
/* MPC8xx family (aka PowerQUICC) */
#if defined(TODO_USER_ONLY)
POWERPC_DEF("mpc8xx", CPU_POWERPC_MPC8xx, MPC8xx,
"Generic MPC8xx core")
#endif
/* MPC82xx family (aka PowerQUICC-II) */
POWERPC_DEF("g2", CPU_POWERPC_G2, G2,
"PowerPC G2 core")
POWERPC_DEF("g2h4", CPU_POWERPC_G2H4, G2,
"PowerPC G2 H4 core")
POWERPC_DEF("g2gp", CPU_POWERPC_G2gp, G2,
"PowerPC G2 GP core")
POWERPC_DEF("g2ls", CPU_POWERPC_G2ls, G2,
"PowerPC G2 LS core")
POWERPC_DEF("g2hip3", CPU_POWERPC_G2_HIP3, G2,
"PowerPC G2 HiP3 core")
POWERPC_DEF("g2hip4", CPU_POWERPC_G2_HIP4, G2,
"PowerPC G2 HiP4 core")
POWERPC_DEF("mpc603", CPU_POWERPC_MPC603, 603E,
"PowerPC MPC603 core")
POWERPC_DEF("g2le", CPU_POWERPC_G2LE, G2LE,
"PowerPC G2le core (same as G2 plus little-endian mode support)")
POWERPC_DEF("g2legp", CPU_POWERPC_G2LEgp, G2LE,
"PowerPC G2LE GP core")
POWERPC_DEF("g2lels", CPU_POWERPC_G2LEls, G2LE,
"PowerPC G2LE LS core")
POWERPC_DEF("g2legp1", CPU_POWERPC_G2LEgp1, G2LE,
"PowerPC G2LE GP1 core")
POWERPC_DEF("g2legp3", CPU_POWERPC_G2LEgp3, G2LE,
"PowerPC G2LE GP3 core")
/* PowerPC G2 microcontrollers */
POWERPC_DEF_SVR("mpc5200_v10", "MPC5200 v1.0",
CPU_POWERPC_MPC5200_v10, POWERPC_SVR_5200_v10, G2LE)
POWERPC_DEF_SVR("mpc5200_v11", "MPC5200 v1.1",
CPU_POWERPC_MPC5200_v11, POWERPC_SVR_5200_v11, G2LE)
POWERPC_DEF_SVR("mpc5200_v12", "MPC5200 v1.2",
CPU_POWERPC_MPC5200_v12, POWERPC_SVR_5200_v12, G2LE)
POWERPC_DEF_SVR("mpc5200b_v20", "MPC5200B v2.0",
CPU_POWERPC_MPC5200B_v20, POWERPC_SVR_5200B_v20, G2LE)
POWERPC_DEF_SVR("mpc5200b_v21", "MPC5200B v2.1",
CPU_POWERPC_MPC5200B_v21, POWERPC_SVR_5200B_v21, G2LE)
/* e200 family */
POWERPC_DEF("e200z5", CPU_POWERPC_e200z5, e200,
"PowerPC e200z5 core")
POWERPC_DEF("e200z6", CPU_POWERPC_e200z6, e200,
"PowerPC e200z6 core")
/* e300 family */
POWERPC_DEF("e300c1", CPU_POWERPC_e300c1, e300,
"PowerPC e300c1 core")
POWERPC_DEF("e300c2", CPU_POWERPC_e300c2, e300,
"PowerPC e300c2 core")
POWERPC_DEF("e300c3", CPU_POWERPC_e300c3, e300,
"PowerPC e300c3 core")
POWERPC_DEF("e300c4", CPU_POWERPC_e300c4, e300,
"PowerPC e300c4 core")
/* PowerPC e300 microcontrollers */
POWERPC_DEF_SVR("mpc8343", "MPC8343",
CPU_POWERPC_MPC834x, POWERPC_SVR_8343, e300)
POWERPC_DEF_SVR("mpc8343a", "MPC8343A",
CPU_POWERPC_MPC834x, POWERPC_SVR_8343A, e300)
POWERPC_DEF_SVR("mpc8343e", "MPC8343E",
CPU_POWERPC_MPC834x, POWERPC_SVR_8343E, e300)
POWERPC_DEF_SVR("mpc8343ea", "MPC8343EA",
CPU_POWERPC_MPC834x, POWERPC_SVR_8343EA, e300)
POWERPC_DEF_SVR("mpc8347t", "MPC8347T",
CPU_POWERPC_MPC834x, POWERPC_SVR_8347T, e300)
POWERPC_DEF_SVR("mpc8347p", "MPC8347P",
CPU_POWERPC_MPC834x, POWERPC_SVR_8347P, e300)
POWERPC_DEF_SVR("mpc8347at", "MPC8347AT",
CPU_POWERPC_MPC834x, POWERPC_SVR_8347AT, e300)
POWERPC_DEF_SVR("mpc8347ap", "MPC8347AP",
CPU_POWERPC_MPC834x, POWERPC_SVR_8347AP, e300)
POWERPC_DEF_SVR("mpc8347et", "MPC8347ET",
CPU_POWERPC_MPC834x, POWERPC_SVR_8347ET, e300)
POWERPC_DEF_SVR("mpc8347ep", "MPC8343EP",
CPU_POWERPC_MPC834x, POWERPC_SVR_8347EP, e300)
POWERPC_DEF_SVR("mpc8347eat", "MPC8347EAT",
CPU_POWERPC_MPC834x, POWERPC_SVR_8347EAT, e300)
POWERPC_DEF_SVR("mpc8347eap", "MPC8343EAP",
CPU_POWERPC_MPC834x, POWERPC_SVR_8347EAP, e300)
POWERPC_DEF_SVR("mpc8349", "MPC8349",
CPU_POWERPC_MPC834x, POWERPC_SVR_8349, e300)
POWERPC_DEF_SVR("mpc8349a", "MPC8349A",
CPU_POWERPC_MPC834x, POWERPC_SVR_8349A, e300)
POWERPC_DEF_SVR("mpc8349e", "MPC8349E",
CPU_POWERPC_MPC834x, POWERPC_SVR_8349E, e300)
POWERPC_DEF_SVR("mpc8349ea", "MPC8349EA",
CPU_POWERPC_MPC834x, POWERPC_SVR_8349EA, e300)
POWERPC_DEF_SVR("mpc8377", "MPC8377",
CPU_POWERPC_MPC837x, POWERPC_SVR_8377, e300)
POWERPC_DEF_SVR("mpc8377e", "MPC8377E",
CPU_POWERPC_MPC837x, POWERPC_SVR_8377E, e300)
POWERPC_DEF_SVR("mpc8378", "MPC8378",
CPU_POWERPC_MPC837x, POWERPC_SVR_8378, e300)
POWERPC_DEF_SVR("mpc8378e", "MPC8378E",
CPU_POWERPC_MPC837x, POWERPC_SVR_8378E, e300)
POWERPC_DEF_SVR("mpc8379", "MPC8379",
CPU_POWERPC_MPC837x, POWERPC_SVR_8379, e300)
POWERPC_DEF_SVR("mpc8379e", "MPC8379E",
CPU_POWERPC_MPC837x, POWERPC_SVR_8379E, e300)
/* e500 family */
POWERPC_DEF_SVR("e500_v10", "PowerPC e500 v1.0 core",
CPU_POWERPC_e500v1_v10, POWERPC_SVR_E500, e500v1);
POWERPC_DEF_SVR("e500_v20", "PowerPC e500 v2.0 core",
CPU_POWERPC_e500v1_v20, POWERPC_SVR_E500, e500v1);
POWERPC_DEF_SVR("e500v2_v10", "PowerPC e500v2 v1.0 core",
CPU_POWERPC_e500v2_v10, POWERPC_SVR_E500, e500v2);
POWERPC_DEF_SVR("e500v2_v20", "PowerPC e500v2 v2.0 core",
CPU_POWERPC_e500v2_v20, POWERPC_SVR_E500, e500v2);
POWERPC_DEF_SVR("e500v2_v21", "PowerPC e500v2 v2.1 core",
CPU_POWERPC_e500v2_v21, POWERPC_SVR_E500, e500v2);
POWERPC_DEF_SVR("e500v2_v22", "PowerPC e500v2 v2.2 core",
CPU_POWERPC_e500v2_v22, POWERPC_SVR_E500, e500v2);
POWERPC_DEF_SVR("e500v2_v30", "PowerPC e500v2 v3.0 core",
CPU_POWERPC_e500v2_v30, POWERPC_SVR_E500, e500v2);
POWERPC_DEF_SVR("e500mc", "e500mc",
CPU_POWERPC_e500mc, POWERPC_SVR_E500, e500mc)
#ifdef TARGET_PPC64
POWERPC_DEF_SVR("e5500", "e5500",
CPU_POWERPC_e5500, POWERPC_SVR_E500, e5500)
POWERPC_DEF_SVR("e6500", "e6500",
CPU_POWERPC_e6500, POWERPC_SVR_E500, e6500)
#endif
/* PowerPC e500 microcontrollers */
POWERPC_DEF_SVR("mpc8533_v10", "MPC8533 v1.0",
CPU_POWERPC_MPC8533_v10, POWERPC_SVR_8533_v10, e500v2)
POWERPC_DEF_SVR("mpc8533_v11", "MPC8533 v1.1",
CPU_POWERPC_MPC8533_v11, POWERPC_SVR_8533_v11, e500v2)
POWERPC_DEF_SVR("mpc8533e_v10", "MPC8533E v1.0",
CPU_POWERPC_MPC8533E_v10, POWERPC_SVR_8533E_v10, e500v2)
POWERPC_DEF_SVR("mpc8533e_v11", "MPC8533E v1.1",
CPU_POWERPC_MPC8533E_v11, POWERPC_SVR_8533E_v11, e500v2)
POWERPC_DEF_SVR("mpc8540_v10", "MPC8540 v1.0",
CPU_POWERPC_MPC8540_v10, POWERPC_SVR_8540_v10, e500v1)
POWERPC_DEF_SVR("mpc8540_v20", "MPC8540 v2.0",
CPU_POWERPC_MPC8540_v20, POWERPC_SVR_8540_v20, e500v1)
POWERPC_DEF_SVR("mpc8540_v21", "MPC8540 v2.1",
CPU_POWERPC_MPC8540_v21, POWERPC_SVR_8540_v21, e500v1)
POWERPC_DEF_SVR("mpc8541_v10", "MPC8541 v1.0",
CPU_POWERPC_MPC8541_v10, POWERPC_SVR_8541_v10, e500v1)
POWERPC_DEF_SVR("mpc8541_v11", "MPC8541 v1.1",
CPU_POWERPC_MPC8541_v11, POWERPC_SVR_8541_v11, e500v1)
POWERPC_DEF_SVR("mpc8541e_v10", "MPC8541E v1.0",
CPU_POWERPC_MPC8541E_v10, POWERPC_SVR_8541E_v10, e500v1)
POWERPC_DEF_SVR("mpc8541e_v11", "MPC8541E v1.1",
CPU_POWERPC_MPC8541E_v11, POWERPC_SVR_8541E_v11, e500v1)
POWERPC_DEF_SVR("mpc8543_v10", "MPC8543 v1.0",
CPU_POWERPC_MPC8543_v10, POWERPC_SVR_8543_v10, e500v2)
POWERPC_DEF_SVR("mpc8543_v11", "MPC8543 v1.1",
CPU_POWERPC_MPC8543_v11, POWERPC_SVR_8543_v11, e500v2)
POWERPC_DEF_SVR("mpc8543_v20", "MPC8543 v2.0",
CPU_POWERPC_MPC8543_v20, POWERPC_SVR_8543_v20, e500v2)
POWERPC_DEF_SVR("mpc8543_v21", "MPC8543 v2.1",
CPU_POWERPC_MPC8543_v21, POWERPC_SVR_8543_v21, e500v2)
POWERPC_DEF_SVR("mpc8543e_v10", "MPC8543E v1.0",
CPU_POWERPC_MPC8543E_v10, POWERPC_SVR_8543E_v10, e500v2)
POWERPC_DEF_SVR("mpc8543e_v11", "MPC8543E v1.1",
CPU_POWERPC_MPC8543E_v11, POWERPC_SVR_8543E_v11, e500v2)
POWERPC_DEF_SVR("mpc8543e_v20", "MPC8543E v2.0",
CPU_POWERPC_MPC8543E_v20, POWERPC_SVR_8543E_v20, e500v2)
POWERPC_DEF_SVR("mpc8543e_v21", "MPC8543E v2.1",
CPU_POWERPC_MPC8543E_v21, POWERPC_SVR_8543E_v21, e500v2)
POWERPC_DEF_SVR("mpc8544_v10", "MPC8544 v1.0",
CPU_POWERPC_MPC8544_v10, POWERPC_SVR_8544_v10, e500v2)
POWERPC_DEF_SVR("mpc8544_v11", "MPC8544 v1.1",
CPU_POWERPC_MPC8544_v11, POWERPC_SVR_8544_v11, e500v2)
POWERPC_DEF_SVR("mpc8544e_v10", "MPC8544E v1.0",
CPU_POWERPC_MPC8544E_v10, POWERPC_SVR_8544E_v10, e500v2)
POWERPC_DEF_SVR("mpc8544e_v11", "MPC8544E v1.1",
CPU_POWERPC_MPC8544E_v11, POWERPC_SVR_8544E_v11, e500v2)
POWERPC_DEF_SVR("mpc8545_v20", "MPC8545 v2.0",
CPU_POWERPC_MPC8545_v20, POWERPC_SVR_8545_v20, e500v2)
POWERPC_DEF_SVR("mpc8545_v21", "MPC8545 v2.1",
CPU_POWERPC_MPC8545_v21, POWERPC_SVR_8545_v21, e500v2)
POWERPC_DEF_SVR("mpc8545e_v20", "MPC8545E v2.0",
CPU_POWERPC_MPC8545E_v20, POWERPC_SVR_8545E_v20, e500v2)
POWERPC_DEF_SVR("mpc8545e_v21", "MPC8545E v2.1",
CPU_POWERPC_MPC8545E_v21, POWERPC_SVR_8545E_v21, e500v2)
POWERPC_DEF_SVR("mpc8547e_v20", "MPC8547E v2.0",
CPU_POWERPC_MPC8547E_v20, POWERPC_SVR_8547E_v20, e500v2)
POWERPC_DEF_SVR("mpc8547e_v21", "MPC8547E v2.1",
CPU_POWERPC_MPC8547E_v21, POWERPC_SVR_8547E_v21, e500v2)
POWERPC_DEF_SVR("mpc8548_v10", "MPC8548 v1.0",
CPU_POWERPC_MPC8548_v10, POWERPC_SVR_8548_v10, e500v2)
POWERPC_DEF_SVR("mpc8548_v11", "MPC8548 v1.1",
CPU_POWERPC_MPC8548_v11, POWERPC_SVR_8548_v11, e500v2)
POWERPC_DEF_SVR("mpc8548_v20", "MPC8548 v2.0",
CPU_POWERPC_MPC8548_v20, POWERPC_SVR_8548_v20, e500v2)
POWERPC_DEF_SVR("mpc8548_v21", "MPC8548 v2.1",
CPU_POWERPC_MPC8548_v21, POWERPC_SVR_8548_v21, e500v2)
POWERPC_DEF_SVR("mpc8548e_v10", "MPC8548E v1.0",
CPU_POWERPC_MPC8548E_v10, POWERPC_SVR_8548E_v10, e500v2)
POWERPC_DEF_SVR("mpc8548e_v11", "MPC8548E v1.1",
CPU_POWERPC_MPC8548E_v11, POWERPC_SVR_8548E_v11, e500v2)
POWERPC_DEF_SVR("mpc8548e_v20", "MPC8548E v2.0",
CPU_POWERPC_MPC8548E_v20, POWERPC_SVR_8548E_v20, e500v2)
POWERPC_DEF_SVR("mpc8548e_v21", "MPC8548E v2.1",
CPU_POWERPC_MPC8548E_v21, POWERPC_SVR_8548E_v21, e500v2)
POWERPC_DEF_SVR("mpc8555_v10", "MPC8555 v1.0",
target/ppc: Fix MPC8555 and MPC8560 core type to e500v1 Commit 80d11f4467c4 ("Add definitions for Freescale PowerPC implementations") changed core type of MPC8555 and MPC8560 from e500v1 to e500v2. But both MPC8555 and MPC8560 have just e500v1 cores, there are no features of e500v2 cores. It can be verified by reading NXP documentations: https://www.nxp.com/docs/en/data-sheet/MPC8555EEC.pdf https://www.nxp.com/docs/en/data-sheet/MPC8560EC.pdf https://www.nxp.com/docs/en/reference-manual/MPC8555ERM.pdf https://www.nxp.com/docs/en/reference-manual/MPC8560RM.pdf Therefore fix core type of MPC8555 and MPC8560 back to e500v1. Just for completeness, here is list of all Motorola/Freescale/NXP processors which were released and have e500v1 or e500v2 cores: e500v1: MPC8540 MPC8541 MPC8555 MPC8560 e500v2: BSC9131 BSC9132 C291 C292 C293 MPC8533 MPC8535 MPC8536 MPC8543 MPC8544 MPC8545 MPC8547 MPC8548 MPC8567 MPC8568 MPC8569 MPC8572 P1010 P1011 P1012 P1013 P1014 P1015 P1016 P1020 P1021 P1022 P1024 P1025 P2010 P2020 Sorted alphabetically; not by release date / generation / feature set. All this is from public information available on NXP website. Seems that qemu has support only for some subset of MPC85xx processors. Historically processors with e500 cores have mpc85xx family codename and lot of software have them in mpc85xx architecture subdirectory. Note that GCC uses -mcpu=8540 option for specifying e500v1 core and -mcpu=8548 option for specifying e500v2 core. So sometimes (mpc)8540 is alias for e500v1 and (mpc)8548 is alias for e500v2. Fixes: 80d11f4467c4 ("Add definitions for Freescale PowerPC implementations") Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com> Message-Id: <20220703195029.23793-1-pali@kernel.org> [danielhb: added more context in the commit msg] Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
2022-07-03 22:50:29 +03:00
CPU_POWERPC_MPC8555_v10, POWERPC_SVR_8555_v10, e500v1)
POWERPC_DEF_SVR("mpc8555_v11", "MPC8555 v1.1",
target/ppc: Fix MPC8555 and MPC8560 core type to e500v1 Commit 80d11f4467c4 ("Add definitions for Freescale PowerPC implementations") changed core type of MPC8555 and MPC8560 from e500v1 to e500v2. But both MPC8555 and MPC8560 have just e500v1 cores, there are no features of e500v2 cores. It can be verified by reading NXP documentations: https://www.nxp.com/docs/en/data-sheet/MPC8555EEC.pdf https://www.nxp.com/docs/en/data-sheet/MPC8560EC.pdf https://www.nxp.com/docs/en/reference-manual/MPC8555ERM.pdf https://www.nxp.com/docs/en/reference-manual/MPC8560RM.pdf Therefore fix core type of MPC8555 and MPC8560 back to e500v1. Just for completeness, here is list of all Motorola/Freescale/NXP processors which were released and have e500v1 or e500v2 cores: e500v1: MPC8540 MPC8541 MPC8555 MPC8560 e500v2: BSC9131 BSC9132 C291 C292 C293 MPC8533 MPC8535 MPC8536 MPC8543 MPC8544 MPC8545 MPC8547 MPC8548 MPC8567 MPC8568 MPC8569 MPC8572 P1010 P1011 P1012 P1013 P1014 P1015 P1016 P1020 P1021 P1022 P1024 P1025 P2010 P2020 Sorted alphabetically; not by release date / generation / feature set. All this is from public information available on NXP website. Seems that qemu has support only for some subset of MPC85xx processors. Historically processors with e500 cores have mpc85xx family codename and lot of software have them in mpc85xx architecture subdirectory. Note that GCC uses -mcpu=8540 option for specifying e500v1 core and -mcpu=8548 option for specifying e500v2 core. So sometimes (mpc)8540 is alias for e500v1 and (mpc)8548 is alias for e500v2. Fixes: 80d11f4467c4 ("Add definitions for Freescale PowerPC implementations") Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com> Message-Id: <20220703195029.23793-1-pali@kernel.org> [danielhb: added more context in the commit msg] Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
2022-07-03 22:50:29 +03:00
CPU_POWERPC_MPC8555_v11, POWERPC_SVR_8555_v11, e500v1)
POWERPC_DEF_SVR("mpc8555e_v10", "MPC8555E v1.0",
target/ppc: Fix MPC8555 and MPC8560 core type to e500v1 Commit 80d11f4467c4 ("Add definitions for Freescale PowerPC implementations") changed core type of MPC8555 and MPC8560 from e500v1 to e500v2. But both MPC8555 and MPC8560 have just e500v1 cores, there are no features of e500v2 cores. It can be verified by reading NXP documentations: https://www.nxp.com/docs/en/data-sheet/MPC8555EEC.pdf https://www.nxp.com/docs/en/data-sheet/MPC8560EC.pdf https://www.nxp.com/docs/en/reference-manual/MPC8555ERM.pdf https://www.nxp.com/docs/en/reference-manual/MPC8560RM.pdf Therefore fix core type of MPC8555 and MPC8560 back to e500v1. Just for completeness, here is list of all Motorola/Freescale/NXP processors which were released and have e500v1 or e500v2 cores: e500v1: MPC8540 MPC8541 MPC8555 MPC8560 e500v2: BSC9131 BSC9132 C291 C292 C293 MPC8533 MPC8535 MPC8536 MPC8543 MPC8544 MPC8545 MPC8547 MPC8548 MPC8567 MPC8568 MPC8569 MPC8572 P1010 P1011 P1012 P1013 P1014 P1015 P1016 P1020 P1021 P1022 P1024 P1025 P2010 P2020 Sorted alphabetically; not by release date / generation / feature set. All this is from public information available on NXP website. Seems that qemu has support only for some subset of MPC85xx processors. Historically processors with e500 cores have mpc85xx family codename and lot of software have them in mpc85xx architecture subdirectory. Note that GCC uses -mcpu=8540 option for specifying e500v1 core and -mcpu=8548 option for specifying e500v2 core. So sometimes (mpc)8540 is alias for e500v1 and (mpc)8548 is alias for e500v2. Fixes: 80d11f4467c4 ("Add definitions for Freescale PowerPC implementations") Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com> Message-Id: <20220703195029.23793-1-pali@kernel.org> [danielhb: added more context in the commit msg] Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
2022-07-03 22:50:29 +03:00
CPU_POWERPC_MPC8555E_v10, POWERPC_SVR_8555E_v10, e500v1)
POWERPC_DEF_SVR("mpc8555e_v11", "MPC8555E v1.1",
target/ppc: Fix MPC8555 and MPC8560 core type to e500v1 Commit 80d11f4467c4 ("Add definitions for Freescale PowerPC implementations") changed core type of MPC8555 and MPC8560 from e500v1 to e500v2. But both MPC8555 and MPC8560 have just e500v1 cores, there are no features of e500v2 cores. It can be verified by reading NXP documentations: https://www.nxp.com/docs/en/data-sheet/MPC8555EEC.pdf https://www.nxp.com/docs/en/data-sheet/MPC8560EC.pdf https://www.nxp.com/docs/en/reference-manual/MPC8555ERM.pdf https://www.nxp.com/docs/en/reference-manual/MPC8560RM.pdf Therefore fix core type of MPC8555 and MPC8560 back to e500v1. Just for completeness, here is list of all Motorola/Freescale/NXP processors which were released and have e500v1 or e500v2 cores: e500v1: MPC8540 MPC8541 MPC8555 MPC8560 e500v2: BSC9131 BSC9132 C291 C292 C293 MPC8533 MPC8535 MPC8536 MPC8543 MPC8544 MPC8545 MPC8547 MPC8548 MPC8567 MPC8568 MPC8569 MPC8572 P1010 P1011 P1012 P1013 P1014 P1015 P1016 P1020 P1021 P1022 P1024 P1025 P2010 P2020 Sorted alphabetically; not by release date / generation / feature set. All this is from public information available on NXP website. Seems that qemu has support only for some subset of MPC85xx processors. Historically processors with e500 cores have mpc85xx family codename and lot of software have them in mpc85xx architecture subdirectory. Note that GCC uses -mcpu=8540 option for specifying e500v1 core and -mcpu=8548 option for specifying e500v2 core. So sometimes (mpc)8540 is alias for e500v1 and (mpc)8548 is alias for e500v2. Fixes: 80d11f4467c4 ("Add definitions for Freescale PowerPC implementations") Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com> Message-Id: <20220703195029.23793-1-pali@kernel.org> [danielhb: added more context in the commit msg] Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
2022-07-03 22:50:29 +03:00
CPU_POWERPC_MPC8555E_v11, POWERPC_SVR_8555E_v11, e500v1)
POWERPC_DEF_SVR("mpc8560_v10", "MPC8560 v1.0",
target/ppc: Fix MPC8555 and MPC8560 core type to e500v1 Commit 80d11f4467c4 ("Add definitions for Freescale PowerPC implementations") changed core type of MPC8555 and MPC8560 from e500v1 to e500v2. But both MPC8555 and MPC8560 have just e500v1 cores, there are no features of e500v2 cores. It can be verified by reading NXP documentations: https://www.nxp.com/docs/en/data-sheet/MPC8555EEC.pdf https://www.nxp.com/docs/en/data-sheet/MPC8560EC.pdf https://www.nxp.com/docs/en/reference-manual/MPC8555ERM.pdf https://www.nxp.com/docs/en/reference-manual/MPC8560RM.pdf Therefore fix core type of MPC8555 and MPC8560 back to e500v1. Just for completeness, here is list of all Motorola/Freescale/NXP processors which were released and have e500v1 or e500v2 cores: e500v1: MPC8540 MPC8541 MPC8555 MPC8560 e500v2: BSC9131 BSC9132 C291 C292 C293 MPC8533 MPC8535 MPC8536 MPC8543 MPC8544 MPC8545 MPC8547 MPC8548 MPC8567 MPC8568 MPC8569 MPC8572 P1010 P1011 P1012 P1013 P1014 P1015 P1016 P1020 P1021 P1022 P1024 P1025 P2010 P2020 Sorted alphabetically; not by release date / generation / feature set. All this is from public information available on NXP website. Seems that qemu has support only for some subset of MPC85xx processors. Historically processors with e500 cores have mpc85xx family codename and lot of software have them in mpc85xx architecture subdirectory. Note that GCC uses -mcpu=8540 option for specifying e500v1 core and -mcpu=8548 option for specifying e500v2 core. So sometimes (mpc)8540 is alias for e500v1 and (mpc)8548 is alias for e500v2. Fixes: 80d11f4467c4 ("Add definitions for Freescale PowerPC implementations") Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com> Message-Id: <20220703195029.23793-1-pali@kernel.org> [danielhb: added more context in the commit msg] Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
2022-07-03 22:50:29 +03:00
CPU_POWERPC_MPC8560_v10, POWERPC_SVR_8560_v10, e500v1)
POWERPC_DEF_SVR("mpc8560_v20", "MPC8560 v2.0",
target/ppc: Fix MPC8555 and MPC8560 core type to e500v1 Commit 80d11f4467c4 ("Add definitions for Freescale PowerPC implementations") changed core type of MPC8555 and MPC8560 from e500v1 to e500v2. But both MPC8555 and MPC8560 have just e500v1 cores, there are no features of e500v2 cores. It can be verified by reading NXP documentations: https://www.nxp.com/docs/en/data-sheet/MPC8555EEC.pdf https://www.nxp.com/docs/en/data-sheet/MPC8560EC.pdf https://www.nxp.com/docs/en/reference-manual/MPC8555ERM.pdf https://www.nxp.com/docs/en/reference-manual/MPC8560RM.pdf Therefore fix core type of MPC8555 and MPC8560 back to e500v1. Just for completeness, here is list of all Motorola/Freescale/NXP processors which were released and have e500v1 or e500v2 cores: e500v1: MPC8540 MPC8541 MPC8555 MPC8560 e500v2: BSC9131 BSC9132 C291 C292 C293 MPC8533 MPC8535 MPC8536 MPC8543 MPC8544 MPC8545 MPC8547 MPC8548 MPC8567 MPC8568 MPC8569 MPC8572 P1010 P1011 P1012 P1013 P1014 P1015 P1016 P1020 P1021 P1022 P1024 P1025 P2010 P2020 Sorted alphabetically; not by release date / generation / feature set. All this is from public information available on NXP website. Seems that qemu has support only for some subset of MPC85xx processors. Historically processors with e500 cores have mpc85xx family codename and lot of software have them in mpc85xx architecture subdirectory. Note that GCC uses -mcpu=8540 option for specifying e500v1 core and -mcpu=8548 option for specifying e500v2 core. So sometimes (mpc)8540 is alias for e500v1 and (mpc)8548 is alias for e500v2. Fixes: 80d11f4467c4 ("Add definitions for Freescale PowerPC implementations") Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com> Message-Id: <20220703195029.23793-1-pali@kernel.org> [danielhb: added more context in the commit msg] Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
2022-07-03 22:50:29 +03:00
CPU_POWERPC_MPC8560_v20, POWERPC_SVR_8560_v20, e500v1)
POWERPC_DEF_SVR("mpc8560_v21", "MPC8560 v2.1",
target/ppc: Fix MPC8555 and MPC8560 core type to e500v1 Commit 80d11f4467c4 ("Add definitions for Freescale PowerPC implementations") changed core type of MPC8555 and MPC8560 from e500v1 to e500v2. But both MPC8555 and MPC8560 have just e500v1 cores, there are no features of e500v2 cores. It can be verified by reading NXP documentations: https://www.nxp.com/docs/en/data-sheet/MPC8555EEC.pdf https://www.nxp.com/docs/en/data-sheet/MPC8560EC.pdf https://www.nxp.com/docs/en/reference-manual/MPC8555ERM.pdf https://www.nxp.com/docs/en/reference-manual/MPC8560RM.pdf Therefore fix core type of MPC8555 and MPC8560 back to e500v1. Just for completeness, here is list of all Motorola/Freescale/NXP processors which were released and have e500v1 or e500v2 cores: e500v1: MPC8540 MPC8541 MPC8555 MPC8560 e500v2: BSC9131 BSC9132 C291 C292 C293 MPC8533 MPC8535 MPC8536 MPC8543 MPC8544 MPC8545 MPC8547 MPC8548 MPC8567 MPC8568 MPC8569 MPC8572 P1010 P1011 P1012 P1013 P1014 P1015 P1016 P1020 P1021 P1022 P1024 P1025 P2010 P2020 Sorted alphabetically; not by release date / generation / feature set. All this is from public information available on NXP website. Seems that qemu has support only for some subset of MPC85xx processors. Historically processors with e500 cores have mpc85xx family codename and lot of software have them in mpc85xx architecture subdirectory. Note that GCC uses -mcpu=8540 option for specifying e500v1 core and -mcpu=8548 option for specifying e500v2 core. So sometimes (mpc)8540 is alias for e500v1 and (mpc)8548 is alias for e500v2. Fixes: 80d11f4467c4 ("Add definitions for Freescale PowerPC implementations") Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com> Message-Id: <20220703195029.23793-1-pali@kernel.org> [danielhb: added more context in the commit msg] Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
2022-07-03 22:50:29 +03:00
CPU_POWERPC_MPC8560_v21, POWERPC_SVR_8560_v21, e500v1)
POWERPC_DEF_SVR("mpc8567", "MPC8567",
CPU_POWERPC_MPC8567, POWERPC_SVR_8567, e500v2)
POWERPC_DEF_SVR("mpc8567e", "MPC8567E",
CPU_POWERPC_MPC8567E, POWERPC_SVR_8567E, e500v2)
POWERPC_DEF_SVR("mpc8568", "MPC8568",
CPU_POWERPC_MPC8568, POWERPC_SVR_8568, e500v2)
POWERPC_DEF_SVR("mpc8568e", "MPC8568E",
CPU_POWERPC_MPC8568E, POWERPC_SVR_8568E, e500v2)
POWERPC_DEF_SVR("mpc8572", "MPC8572",
CPU_POWERPC_MPC8572, POWERPC_SVR_8572, e500v2)
POWERPC_DEF_SVR("mpc8572e", "MPC8572E",
CPU_POWERPC_MPC8572E, POWERPC_SVR_8572E, e500v2)
/* e600 family */
POWERPC_DEF("e600", CPU_POWERPC_e600, e600,
"PowerPC e600 core")
/* PowerPC e600 microcontrollers */
POWERPC_DEF_SVR("mpc8610", "MPC8610",
CPU_POWERPC_MPC8610, POWERPC_SVR_8610, e600)
POWERPC_DEF_SVR("mpc8641", "MPC8641",
CPU_POWERPC_MPC8641, POWERPC_SVR_8641, e600)
POWERPC_DEF_SVR("mpc8641d", "MPC8641D",
CPU_POWERPC_MPC8641D, POWERPC_SVR_8641D, e600)
/* 32 bits "classic" PowerPC */
/* PowerPC 6xx family */
POWERPC_DEF("603", CPU_POWERPC_603, 603,
"PowerPC 603")
POWERPC_DEF("603e_v1.1", CPU_POWERPC_603E_v11, 603E,
"PowerPC 603e v1.1")
POWERPC_DEF("603e_v1.2", CPU_POWERPC_603E_v12, 603E,
"PowerPC 603e v1.2")
POWERPC_DEF("603e_v1.3", CPU_POWERPC_603E_v13, 603E,
"PowerPC 603e v1.3")
POWERPC_DEF("603e_v1.4", CPU_POWERPC_603E_v14, 603E,
"PowerPC 603e v1.4")
POWERPC_DEF("603e_v2.2", CPU_POWERPC_603E_v22, 603E,
"PowerPC 603e v2.2")
POWERPC_DEF("603e_v3", CPU_POWERPC_603E_v3, 603E,
"PowerPC 603e v3")
POWERPC_DEF("603e_v4", CPU_POWERPC_603E_v4, 603E,
"PowerPC 603e v4")
POWERPC_DEF("603e_v4.1", CPU_POWERPC_603E_v41, 603E,
"PowerPC 603e v4.1")
POWERPC_DEF("603e7", CPU_POWERPC_603E7, 603E,
"PowerPC 603e (aka PID7)")
POWERPC_DEF("603e7t", CPU_POWERPC_603E7t, 603E,
"PowerPC 603e7t")
POWERPC_DEF("603e7v", CPU_POWERPC_603E7v, 603E,
"PowerPC 603e7v")
POWERPC_DEF("603e7v1", CPU_POWERPC_603E7v1, 603E,
"PowerPC 603e7v1")
POWERPC_DEF("603e7v2", CPU_POWERPC_603E7v2, 603E,
"PowerPC 603e7v2")
POWERPC_DEF("603p", CPU_POWERPC_603P, 603E,
"PowerPC 603p (aka PID7v)")
POWERPC_DEF("604", CPU_POWERPC_604, 604,
"PowerPC 604")
POWERPC_DEF("604e_v1.0", CPU_POWERPC_604E_v10, 604E,
"PowerPC 604e v1.0")
POWERPC_DEF("604e_v2.2", CPU_POWERPC_604E_v22, 604E,
"PowerPC 604e v2.2")
POWERPC_DEF("604e_v2.4", CPU_POWERPC_604E_v24, 604E,
"PowerPC 604e v2.4")
POWERPC_DEF("604r", CPU_POWERPC_604R, 604E,
"PowerPC 604r (aka PIDA)")
/* PowerPC 7xx family */
POWERPC_DEF("740_v1.0", CPU_POWERPC_7x0_v10, 740,
"PowerPC 740 v1.0 (G3)")
POWERPC_DEF("750_v1.0", CPU_POWERPC_7x0_v10, 750,
"PowerPC 750 v1.0 (G3)")
POWERPC_DEF("740_v2.0", CPU_POWERPC_7x0_v20, 740,
"PowerPC 740 v2.0 (G3)")
POWERPC_DEF("750_v2.0", CPU_POWERPC_7x0_v20, 750,
"PowerPC 750 v2.0 (G3)")
POWERPC_DEF("740_v2.1", CPU_POWERPC_7x0_v21, 740,
"PowerPC 740 v2.1 (G3)")
POWERPC_DEF("750_v2.1", CPU_POWERPC_7x0_v21, 750,
"PowerPC 750 v2.1 (G3)")
POWERPC_DEF("740_v2.2", CPU_POWERPC_7x0_v22, 740,
"PowerPC 740 v2.2 (G3)")
POWERPC_DEF("750_v2.2", CPU_POWERPC_7x0_v22, 750,
"PowerPC 750 v2.2 (G3)")
POWERPC_DEF("740_v3.0", CPU_POWERPC_7x0_v30, 740,
"PowerPC 740 v3.0 (G3)")
POWERPC_DEF("750_v3.0", CPU_POWERPC_7x0_v30, 750,
"PowerPC 750 v3.0 (G3)")
POWERPC_DEF("740_v3.1", CPU_POWERPC_7x0_v31, 740,
"PowerPC 740 v3.1 (G3)")
POWERPC_DEF("750_v3.1", CPU_POWERPC_7x0_v31, 750,
"PowerPC 750 v3.1 (G3)")
POWERPC_DEF("740e", CPU_POWERPC_740E, 740,
"PowerPC 740E (G3)")
POWERPC_DEF("750e", CPU_POWERPC_750E, 750,
"PowerPC 750E (G3)")
POWERPC_DEF("740p", CPU_POWERPC_7x0P, 740,
"PowerPC 740P (G3)")
POWERPC_DEF("750p", CPU_POWERPC_7x0P, 750,
"PowerPC 750P (G3)")
POWERPC_DEF("750cl_v1.0", CPU_POWERPC_750CL_v10, 750cl,
"PowerPC 750CL v1.0")
POWERPC_DEF("750cl_v2.0", CPU_POWERPC_750CL_v20, 750cl,
"PowerPC 750CL v2.0")
POWERPC_DEF("750cx_v1.0", CPU_POWERPC_750CX_v10, 750cx,
"PowerPC 750CX v1.0 (G3 embedded)")
POWERPC_DEF("750cx_v2.0", CPU_POWERPC_750CX_v20, 750cx,
"PowerPC 750CX v2.1 (G3 embedded)")
POWERPC_DEF("750cx_v2.1", CPU_POWERPC_750CX_v21, 750cx,
"PowerPC 750CX v2.1 (G3 embedded)")
POWERPC_DEF("750cx_v2.2", CPU_POWERPC_750CX_v22, 750cx,
"PowerPC 750CX v2.2 (G3 embedded)")
POWERPC_DEF("750cxe_v2.1", CPU_POWERPC_750CXE_v21, 750cx,
"PowerPC 750CXe v2.1 (G3 embedded)")
POWERPC_DEF("750cxe_v2.2", CPU_POWERPC_750CXE_v22, 750cx,
"PowerPC 750CXe v2.2 (G3 embedded)")
POWERPC_DEF("750cxe_v2.3", CPU_POWERPC_750CXE_v23, 750cx,
"PowerPC 750CXe v2.3 (G3 embedded)")
POWERPC_DEF("750cxe_v2.4", CPU_POWERPC_750CXE_v24, 750cx,
"PowerPC 750CXe v2.4 (G3 embedded)")
POWERPC_DEF("750cxe_v2.4b", CPU_POWERPC_750CXE_v24b, 750cx,
"PowerPC 750CXe v2.4b (G3 embedded)")
POWERPC_DEF("750cxe_v3.0", CPU_POWERPC_750CXE_v30, 750cx,
"PowerPC 750CXe v3.0 (G3 embedded)")
POWERPC_DEF("750cxe_v3.1", CPU_POWERPC_750CXE_v31, 750cx,
"PowerPC 750CXe v3.1 (G3 embedded)")
POWERPC_DEF("750cxe_v3.1b", CPU_POWERPC_750CXE_v31b, 750cx,
"PowerPC 750CXe v3.1b (G3 embedded)")
POWERPC_DEF("750cxr", CPU_POWERPC_750CXR, 750cx,
"PowerPC 750CXr (G3 embedded)")
POWERPC_DEF("750fl", CPU_POWERPC_750FL, 750fx,
"PowerPC 750FL (G3 embedded)")
POWERPC_DEF("750fx_v1.0", CPU_POWERPC_750FX_v10, 750fx,
"PowerPC 750FX v1.0 (G3 embedded)")
POWERPC_DEF("750fx_v2.0", CPU_POWERPC_750FX_v20, 750fx,
"PowerPC 750FX v2.0 (G3 embedded)")
POWERPC_DEF("750fx_v2.1", CPU_POWERPC_750FX_v21, 750fx,
"PowerPC 750FX v2.1 (G3 embedded)")
POWERPC_DEF("750fx_v2.2", CPU_POWERPC_750FX_v22, 750fx,
"PowerPC 750FX v2.2 (G3 embedded)")
POWERPC_DEF("750fx_v2.3", CPU_POWERPC_750FX_v23, 750fx,
"PowerPC 750FX v2.3 (G3 embedded)")
POWERPC_DEF("750gl", CPU_POWERPC_750GL, 750gx,
"PowerPC 750GL (G3 embedded)")
POWERPC_DEF("750gx_v1.0", CPU_POWERPC_750GX_v10, 750gx,
"PowerPC 750GX v1.0 (G3 embedded)")
POWERPC_DEF("750gx_v1.1", CPU_POWERPC_750GX_v11, 750gx,
"PowerPC 750GX v1.1 (G3 embedded)")
POWERPC_DEF("750gx_v1.2", CPU_POWERPC_750GX_v12, 750gx,
"PowerPC 750GX v1.2 (G3 embedded)")
POWERPC_DEF("750l_v2.0", CPU_POWERPC_750L_v20, 750,
"PowerPC 750L v2.0 (G3 embedded)")
POWERPC_DEF("750l_v2.1", CPU_POWERPC_750L_v21, 750,
"PowerPC 750L v2.1 (G3 embedded)")
POWERPC_DEF("750l_v2.2", CPU_POWERPC_750L_v22, 750,
"PowerPC 750L v2.2 (G3 embedded)")
POWERPC_DEF("750l_v3.0", CPU_POWERPC_750L_v30, 750,
"PowerPC 750L v3.0 (G3 embedded)")
POWERPC_DEF("750l_v3.2", CPU_POWERPC_750L_v32, 750,
"PowerPC 750L v3.2 (G3 embedded)")
POWERPC_DEF("745_v1.0", CPU_POWERPC_7x5_v10, 745,
"PowerPC 745 v1.0")
POWERPC_DEF("755_v1.0", CPU_POWERPC_7x5_v10, 755,
"PowerPC 755 v1.0")
POWERPC_DEF("745_v1.1", CPU_POWERPC_7x5_v11, 745,
"PowerPC 745 v1.1")
POWERPC_DEF("755_v1.1", CPU_POWERPC_7x5_v11, 755,
"PowerPC 755 v1.1")
POWERPC_DEF("745_v2.0", CPU_POWERPC_7x5_v20, 745,
"PowerPC 745 v2.0")
POWERPC_DEF("755_v2.0", CPU_POWERPC_7x5_v20, 755,
"PowerPC 755 v2.0")
POWERPC_DEF("745_v2.1", CPU_POWERPC_7x5_v21, 745,
"PowerPC 745 v2.1")
POWERPC_DEF("755_v2.1", CPU_POWERPC_7x5_v21, 755,
"PowerPC 755 v2.1")
POWERPC_DEF("745_v2.2", CPU_POWERPC_7x5_v22, 745,
"PowerPC 745 v2.2")
POWERPC_DEF("755_v2.2", CPU_POWERPC_7x5_v22, 755,
"PowerPC 755 v2.2")
POWERPC_DEF("745_v2.3", CPU_POWERPC_7x5_v23, 745,
"PowerPC 745 v2.3")
POWERPC_DEF("755_v2.3", CPU_POWERPC_7x5_v23, 755,
"PowerPC 755 v2.3")
POWERPC_DEF("745_v2.4", CPU_POWERPC_7x5_v24, 745,
"PowerPC 745 v2.4")
POWERPC_DEF("755_v2.4", CPU_POWERPC_7x5_v24, 755,
"PowerPC 755 v2.4")
POWERPC_DEF("745_v2.5", CPU_POWERPC_7x5_v25, 745,
"PowerPC 745 v2.5")
POWERPC_DEF("755_v2.5", CPU_POWERPC_7x5_v25, 755,
"PowerPC 755 v2.5")
POWERPC_DEF("745_v2.6", CPU_POWERPC_7x5_v26, 745,
"PowerPC 745 v2.6")
POWERPC_DEF("755_v2.6", CPU_POWERPC_7x5_v26, 755,
"PowerPC 755 v2.6")
POWERPC_DEF("745_v2.7", CPU_POWERPC_7x5_v27, 745,
"PowerPC 745 v2.7")
POWERPC_DEF("755_v2.7", CPU_POWERPC_7x5_v27, 755,
"PowerPC 755 v2.7")
POWERPC_DEF("745_v2.8", CPU_POWERPC_7x5_v28, 745,
"PowerPC 745 v2.8")
POWERPC_DEF("755_v2.8", CPU_POWERPC_7x5_v28, 755,
"PowerPC 755 v2.8")
/* PowerPC 74xx family */
POWERPC_DEF("7400_v1.0", CPU_POWERPC_7400_v10, 7400,
"PowerPC 7400 v1.0 (G4)")
POWERPC_DEF("7400_v1.1", CPU_POWERPC_7400_v11, 7400,
"PowerPC 7400 v1.1 (G4)")
POWERPC_DEF("7400_v2.0", CPU_POWERPC_7400_v20, 7400,
"PowerPC 7400 v2.0 (G4)")
POWERPC_DEF("7400_v2.1", CPU_POWERPC_7400_v21, 7400,
"PowerPC 7400 v2.1 (G4)")
POWERPC_DEF("7400_v2.2", CPU_POWERPC_7400_v22, 7400,
"PowerPC 7400 v2.2 (G4)")
POWERPC_DEF("7400_v2.6", CPU_POWERPC_7400_v26, 7400,
"PowerPC 7400 v2.6 (G4)")
POWERPC_DEF("7400_v2.7", CPU_POWERPC_7400_v27, 7400,
"PowerPC 7400 v2.7 (G4)")
POWERPC_DEF("7400_v2.8", CPU_POWERPC_7400_v28, 7400,
"PowerPC 7400 v2.8 (G4)")
POWERPC_DEF("7400_v2.9", CPU_POWERPC_7400_v29, 7400,
"PowerPC 7400 v2.9 (G4)")
POWERPC_DEF("7410_v1.0", CPU_POWERPC_7410_v10, 7410,
"PowerPC 7410 v1.0 (G4)")
POWERPC_DEF("7410_v1.1", CPU_POWERPC_7410_v11, 7410,
"PowerPC 7410 v1.1 (G4)")
POWERPC_DEF("7410_v1.2", CPU_POWERPC_7410_v12, 7410,
"PowerPC 7410 v1.2 (G4)")
POWERPC_DEF("7410_v1.3", CPU_POWERPC_7410_v13, 7410,
"PowerPC 7410 v1.3 (G4)")
POWERPC_DEF("7410_v1.4", CPU_POWERPC_7410_v14, 7410,
"PowerPC 7410 v1.4 (G4)")
POWERPC_DEF("7448_v1.0", CPU_POWERPC_7448_v10, 7445,
"PowerPC 7448 v1.0 (G4)")
POWERPC_DEF("7448_v1.1", CPU_POWERPC_7448_v11, 7445,
"PowerPC 7448 v1.1 (G4)")
POWERPC_DEF("7448_v2.0", CPU_POWERPC_7448_v20, 7445,
"PowerPC 7448 v2.0 (G4)")
POWERPC_DEF("7448_v2.1", CPU_POWERPC_7448_v21, 7445,
"PowerPC 7448 v2.1 (G4)")
POWERPC_DEF("7450_v1.0", CPU_POWERPC_7450_v10, 7450,
"PowerPC 7450 v1.0 (G4)")
POWERPC_DEF("7450_v1.1", CPU_POWERPC_7450_v11, 7450,
"PowerPC 7450 v1.1 (G4)")
POWERPC_DEF("7450_v1.2", CPU_POWERPC_7450_v12, 7450,
"PowerPC 7450 v1.2 (G4)")
POWERPC_DEF("7450_v2.0", CPU_POWERPC_7450_v20, 7450,
"PowerPC 7450 v2.0 (G4)")
POWERPC_DEF("7450_v2.1", CPU_POWERPC_7450_v21, 7450,
"PowerPC 7450 v2.1 (G4)")
POWERPC_DEF("7441_v2.1", CPU_POWERPC_7450_v21, 7440,
"PowerPC 7441 v2.1 (G4)")
POWERPC_DEF("7441_v2.3", CPU_POWERPC_74x1_v23, 7440,
"PowerPC 7441 v2.3 (G4)")
POWERPC_DEF("7451_v2.3", CPU_POWERPC_74x1_v23, 7450,
"PowerPC 7451 v2.3 (G4)")
POWERPC_DEF("7441_v2.10", CPU_POWERPC_74x1_v210, 7440,
"PowerPC 7441 v2.10 (G4)")
POWERPC_DEF("7451_v2.10", CPU_POWERPC_74x1_v210, 7450,
"PowerPC 7451 v2.10 (G4)")
POWERPC_DEF("7445_v1.0", CPU_POWERPC_74x5_v10, 7445,
"PowerPC 7445 v1.0 (G4)")
POWERPC_DEF("7455_v1.0", CPU_POWERPC_74x5_v10, 7455,
"PowerPC 7455 v1.0 (G4)")
POWERPC_DEF("7445_v2.1", CPU_POWERPC_74x5_v21, 7445,
"PowerPC 7445 v2.1 (G4)")
POWERPC_DEF("7455_v2.1", CPU_POWERPC_74x5_v21, 7455,
"PowerPC 7455 v2.1 (G4)")
POWERPC_DEF("7445_v3.2", CPU_POWERPC_74x5_v32, 7445,
"PowerPC 7445 v3.2 (G4)")
POWERPC_DEF("7455_v3.2", CPU_POWERPC_74x5_v32, 7455,
"PowerPC 7455 v3.2 (G4)")
POWERPC_DEF("7445_v3.3", CPU_POWERPC_74x5_v33, 7445,
"PowerPC 7445 v3.3 (G4)")
POWERPC_DEF("7455_v3.3", CPU_POWERPC_74x5_v33, 7455,
"PowerPC 7455 v3.3 (G4)")
POWERPC_DEF("7445_v3.4", CPU_POWERPC_74x5_v34, 7445,
"PowerPC 7445 v3.4 (G4)")
POWERPC_DEF("7455_v3.4", CPU_POWERPC_74x5_v34, 7455,
"PowerPC 7455 v3.4 (G4)")
POWERPC_DEF("7447_v1.0", CPU_POWERPC_74x7_v10, 7445,
"PowerPC 7447 v1.0 (G4)")
POWERPC_DEF("7457_v1.0", CPU_POWERPC_74x7_v10, 7455,
"PowerPC 7457 v1.0 (G4)")
POWERPC_DEF("7447_v1.1", CPU_POWERPC_74x7_v11, 7445,
"PowerPC 7447 v1.1 (G4)")
POWERPC_DEF("7457_v1.1", CPU_POWERPC_74x7_v11, 7455,
"PowerPC 7457 v1.1 (G4)")
POWERPC_DEF("7457_v1.2", CPU_POWERPC_74x7_v12, 7455,
"PowerPC 7457 v1.2 (G4)")
POWERPC_DEF("7447a_v1.0", CPU_POWERPC_74x7A_v10, 7445,
"PowerPC 7447A v1.0 (G4)")
POWERPC_DEF("7457a_v1.0", CPU_POWERPC_74x7A_v10, 7455,
"PowerPC 7457A v1.0 (G4)")
POWERPC_DEF("7447a_v1.1", CPU_POWERPC_74x7A_v11, 7445,
"PowerPC 7447A v1.1 (G4)")
POWERPC_DEF("7457a_v1.1", CPU_POWERPC_74x7A_v11, 7455,
"PowerPC 7457A v1.1 (G4)")
POWERPC_DEF("7447a_v1.2", CPU_POWERPC_74x7A_v12, 7445,
"PowerPC 7447A v1.2 (G4)")
POWERPC_DEF("7457a_v1.2", CPU_POWERPC_74x7A_v12, 7455,
"PowerPC 7457A v1.2 (G4)")
/* 64 bits PowerPC */
#if defined(TARGET_PPC64)
POWERPC_DEF("970_v2.2", CPU_POWERPC_970_v22, 970,
"PowerPC 970 v2.2")
POWERPC_DEF("970fx_v1.0", CPU_POWERPC_970FX_v10, 970,
"PowerPC 970FX v1.0 (G5)")
POWERPC_DEF("970fx_v2.0", CPU_POWERPC_970FX_v20, 970,
"PowerPC 970FX v2.0 (G5)")
POWERPC_DEF("970fx_v2.1", CPU_POWERPC_970FX_v21, 970,
"PowerPC 970FX v2.1 (G5)")
POWERPC_DEF("970fx_v3.0", CPU_POWERPC_970FX_v30, 970,
"PowerPC 970FX v3.0 (G5)")
POWERPC_DEF("970fx_v3.1", CPU_POWERPC_970FX_v31, 970,
"PowerPC 970FX v3.1 (G5)")
POWERPC_DEF("970mp_v1.0", CPU_POWERPC_970MP_v10, 970,
"PowerPC 970MP v1.0")
POWERPC_DEF("970mp_v1.1", CPU_POWERPC_970MP_v11, 970,
"PowerPC 970MP v1.1")
POWERPC_DEF("power5+_v2.1", CPU_POWERPC_POWER5P_v21, POWER5P,
"POWER5+ v2.1")
POWERPC_DEF("power7_v2.3", CPU_POWERPC_POWER7_v23, POWER7,
"POWER7 v2.3")
POWERPC_DEF("power7+_v2.1", CPU_POWERPC_POWER7P_v21, POWER7,
"POWER7+ v2.1")
POWERPC_DEF("power8e_v2.1", CPU_POWERPC_POWER8E_v21, POWER8,
"POWER8E v2.1")
POWERPC_DEF("power8_v2.0", CPU_POWERPC_POWER8_v20, POWER8,
"POWER8 v2.0")
POWERPC_DEF("power8nvl_v1.0", CPU_POWERPC_POWER8NVL_v10, POWER8,
"POWER8NVL v1.0")
POWERPC_DEF("power9_v1.0", CPU_POWERPC_POWER9_DD1, POWER9,
"POWER9 v1.0")
POWERPC_DEF("power9_v2.0", CPU_POWERPC_POWER9_DD20, POWER9,
"POWER9 v2.0")
POWERPC_DEF("power9_v2.2", CPU_POWERPC_POWER9_DD22, POWER9,
"POWER9 v2.2")
POWERPC_DEF("power10_v1.0", CPU_POWERPC_POWER10_DD1, POWER10,
"POWER10 v1.0")
POWERPC_DEF("power10_v2.0", CPU_POWERPC_POWER10_DD20, POWER10,
"POWER10 v2.0")
#endif /* defined (TARGET_PPC64) */
/***************************************************************************/
/* PowerPC CPU aliases */
PowerPCCPUAlias ppc_cpu_aliases[] = {
{ "405", "405d4" },
{ "405cr", "405crc" },
{ "405gp", "405gpd" },
{ "405gpe", "405crc" },
{ "x2vp7", "x2vp4" },
{ "x2vp50", "x2vp20" },
{ "440ep", "440epb" },
{ "460ex", "460exb" },
#if defined(TODO_USER_ONLY)
{ "440gp", "440gpc" },
{ "440gr", "440gra" },
{ "440gx", "440gxf" },
{ "rcpu", "mpc5xx" },
/* MPC5xx microcontrollers */
{ "mgt560", "mpc5xx" },
{ "mpc509", "mpc5xx" },
{ "mpc533", "mpc5xx" },
{ "mpc534", "mpc5xx" },
{ "mpc555", "mpc5xx" },
{ "mpc556", "mpc5xx" },
{ "mpc560", "mpc5xx" },
{ "mpc561", "mpc5xx" },
{ "mpc562", "mpc5xx" },
{ "mpc563", "mpc5xx" },
{ "mpc564", "mpc5xx" },
{ "mpc565", "mpc5xx" },
{ "mpc566", "mpc5xx" },
{ "powerquicc", "mpc8xx" },
/* MPC8xx microcontrollers */
{ "mgt823", "mpc8xx" },
{ "mpc821", "mpc8xx" },
{ "mpc823", "mpc8xx" },
{ "mpc850", "mpc8xx" },
{ "mpc852t", "mpc8xx" },
{ "mpc855t", "mpc8xx" },
{ "mpc857", "mpc8xx" },
{ "mpc859", "mpc8xx" },
{ "mpc860", "mpc8xx" },
{ "mpc862", "mpc8xx" },
{ "mpc866", "mpc8xx" },
{ "mpc870", "mpc8xx" },
{ "mpc875", "mpc8xx" },
{ "mpc880", "mpc8xx" },
{ "mpc885", "mpc8xx" },
#endif
/* PowerPC MPC603 microcontrollers */
{ "mpc8240", "603" },
{ "mpc52xx", "mpc5200_v12" },
{ "mpc5200", "mpc5200_v12" },
{ "mpc5200b", "mpc5200b_v21" },
{ "mpc82xx", "g2legp3" },
{ "powerquicc-ii", "g2legp3" },
{ "mpc8241", "g2hip4" },
{ "mpc8245", "g2hip4" },
{ "mpc8247", "g2legp3" },
{ "mpc8248", "g2legp3" },
{ "mpc8250", "g2hip4" },
{ "mpc8250_hip3", "g2hip3" },
{ "mpc8250_hip4", "g2hip4" },
{ "mpc8255", "g2hip4" },
{ "mpc8255_hip3", "g2hip3" },
{ "mpc8255_hip4", "g2hip4" },
{ "mpc8260", "g2hip4" },
{ "mpc8260_hip3", "g2hip3" },
{ "mpc8260_hip4", "g2hip4" },
{ "mpc8264", "g2hip4" },
{ "mpc8264_hip3", "g2hip3" },
{ "mpc8264_hip4", "g2hip4" },
{ "mpc8265", "g2hip4" },
{ "mpc8265_hip3", "g2hip3" },
{ "mpc8265_hip4", "g2hip4" },
{ "mpc8266", "g2hip4" },
{ "mpc8266_hip3", "g2hip3" },
{ "mpc8266_hip4", "g2hip4" },
{ "mpc8270", "g2legp3" },
{ "mpc8271", "g2legp3" },
{ "mpc8272", "g2legp3" },
{ "mpc8275", "g2legp3" },
{ "mpc8280", "g2legp3" },
{ "e200", "e200z6" },
{ "e300", "e300c3" },
{ "mpc8347", "mpc8347t" },
{ "mpc8347a", "mpc8347at" },
{ "mpc8347e", "mpc8347et" },
{ "mpc8347ea", "mpc8347eat" },
{ "e500", "e500v2_v22" },
{ "e500v1", "e500_v20" },
{ "e500v2", "e500v2_v22" },
{ "mpc8533", "mpc8533_v11" },
{ "mpc8533e", "mpc8533e_v11" },
{ "mpc8540", "mpc8540_v21" },
{ "mpc8541", "mpc8541_v11" },
{ "mpc8541e", "mpc8541e_v11" },
{ "mpc8543", "mpc8543_v21" },
{ "mpc8543e", "mpc8543e_v21" },
{ "mpc8544", "mpc8544_v11" },
{ "mpc8544e", "mpc8544e_v11" },
{ "mpc8545", "mpc8545_v21" },
{ "mpc8545e", "mpc8545e_v21" },
{ "mpc8547e", "mpc8547e_v21" },
{ "mpc8548", "mpc8548_v21" },
{ "mpc8548e", "mpc8548e_v21" },
{ "mpc8555", "mpc8555_v11" },
{ "mpc8555e", "mpc8555e_v11" },
{ "mpc8560", "mpc8560_v21" },
{ "vanilla", "603" },
{ "603e", "603e_v4.1" },
{ "stretch", "603e_v4.1" },
{ "vaillant", "603e7v" },
{ "603r", "603e7t" },
{ "goldeneye", "603e7t" },
{ "604e", "604e_v2.4" },
{ "sirocco", "604e_v2.4" },
{ "mach5", "604r" },
{ "740", "740_v3.1" },
{ "arthur", "740_v3.1" },
{ "750", "750_v3.1" },
{ "typhoon", "750_v3.1" },
{ "g3", "750_v3.1" },
{ "conan/doyle", "750p" },
{ "750cl", "750cl_v2.0" },
{ "750cx", "750cx_v2.2" },
{ "750cxe", "750cxe_v3.1b" },
{ "750fx", "750fx_v2.3" },
{ "750gx", "750gx_v1.2" },
{ "750l", "750l_v3.2" },
{ "lonestar", "750l_v3.2" },
{ "745", "745_v2.8" },
{ "755", "755_v2.8" },
{ "goldfinger", "755_v2.8" },
{ "7400", "7400_v2.9" },
{ "g4", "7400_v2.9" },
{ "7410", "7410_v1.4" },
{ "nitro", "7410_v1.4" },
{ "7448", "7448_v2.1" },
{ "7450", "7450_v2.1" },
{ "vger", "7450_v2.1" },
{ "7441", "7441_v2.3" },
{ "7451", "7451_v2.3" },
{ "7445", "7445_v3.2" },
{ "7455", "7455_v3.2" },
{ "apollo6", "7455_v3.2" },
{ "7447", "7447_v1.1" },
{ "7457", "7457_v1.2" },
{ "apollo7", "7457_v1.2" },
{ "7447a", "7447a_v1.2" },
{ "7457a", "7457a_v1.2" },
{ "apollo7pm", "7457a_v1.0" },
#if defined(TARGET_PPC64)
{ "970", "970_v2.2" },
{ "970fx", "970fx_v3.1" },
{ "970mp", "970mp_v1.1" },
{ "power5+", "power5+_v2.1" },
{ "power5gs", "power5+_v2.1" },
{ "power7", "power7_v2.3" },
{ "power7+", "power7+_v2.1" },
{ "power8e", "power8e_v2.1" },
{ "power8", "power8_v2.0" },
{ "power8nvl", "power8nvl_v1.0" },
{ "power9", "power9_v2.2" },
{ "power10", "power10_v2.0" },
#endif
/* Generic PowerPCs */
#if defined(TARGET_PPC64)
{ "ppc64", "970fx_v3.1" },
#endif
{ "ppc32", "604" },
{ "ppc", "604" },
{ NULL, NULL }
};