ppc: Add 460EX embedded CPU
Despite its name it is a 440 core CPU Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
9ffe4ce56b
commit
81bb29ace5
@ -167,6 +167,8 @@
|
||||
"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")
|
||||
@ -786,6 +788,7 @@ PowerPCCPUAlias ppc_cpu_aliases[] = {
|
||||
{ "x2vp50", "x2vp20" },
|
||||
|
||||
{ "440ep", "440epb" },
|
||||
{ "460ex", "460exb" },
|
||||
#if defined(TODO_USER_ONLY)
|
||||
{ "440gp", "440gpc" },
|
||||
{ "440gr", "440gra" },
|
||||
|
@ -240,6 +240,7 @@ enum {
|
||||
CPU_POWERPC_440SP = 0x53221850,
|
||||
CPU_POWERPC_440SP2 = 0x53221891,
|
||||
CPU_POWERPC_440SPE = 0x53421890,
|
||||
CPU_POWERPC_460EXb = 0x130218A4, /* called 460 but 440 core */
|
||||
/* PowerPC 460 family */
|
||||
#if 0
|
||||
/* Generic PowerPC 464 */
|
||||
|
@ -3833,6 +3833,44 @@ POWERPC_FAMILY(440EP)(ObjectClass *oc, void *data)
|
||||
POWERPC_FLAG_DE | POWERPC_FLAG_BUS_CLK;
|
||||
}
|
||||
|
||||
POWERPC_FAMILY(460EX)(ObjectClass *oc, void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(oc);
|
||||
PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
|
||||
|
||||
dc->desc = "PowerPC 460 EX";
|
||||
pcc->init_proc = init_proc_440EP;
|
||||
pcc->check_pow = check_pow_nocheck;
|
||||
pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING |
|
||||
PPC_FLOAT | PPC_FLOAT_FRES | PPC_FLOAT_FSEL |
|
||||
PPC_FLOAT_FSQRT | PPC_FLOAT_FRSQRTE |
|
||||
PPC_FLOAT_STFIWX |
|
||||
PPC_DCR | PPC_DCRX | PPC_WRTEE | PPC_RFMCI |
|
||||
PPC_CACHE | PPC_CACHE_ICBI |
|
||||
PPC_CACHE_DCBZ | PPC_CACHE_DCBA |
|
||||
PPC_MEM_TLBSYNC | PPC_MFTB |
|
||||
PPC_BOOKE | PPC_4xx_COMMON | PPC_405_MAC |
|
||||
PPC_440_SPEC;
|
||||
pcc->msr_mask = (1ull << MSR_POW) |
|
||||
(1ull << MSR_CE) |
|
||||
(1ull << MSR_EE) |
|
||||
(1ull << MSR_PR) |
|
||||
(1ull << MSR_FP) |
|
||||
(1ull << MSR_ME) |
|
||||
(1ull << MSR_FE0) |
|
||||
(1ull << MSR_DWE) |
|
||||
(1ull << MSR_DE) |
|
||||
(1ull << MSR_FE1) |
|
||||
(1ull << MSR_IR) |
|
||||
(1ull << MSR_DR);
|
||||
pcc->mmu_model = POWERPC_MMU_BOOKE;
|
||||
pcc->excp_model = POWERPC_EXCP_BOOKE;
|
||||
pcc->bus_model = PPC_FLAGS_INPUT_BookE;
|
||||
pcc->bfd_mach = bfd_mach_ppc_403;
|
||||
pcc->flags = POWERPC_FLAG_CE | POWERPC_FLAG_DWE |
|
||||
POWERPC_FLAG_DE | POWERPC_FLAG_BUS_CLK;
|
||||
}
|
||||
|
||||
static void init_proc_440GP(CPUPPCState *env)
|
||||
{
|
||||
/* Time base */
|
||||
|
Loading…
Reference in New Issue
Block a user