[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 06/22] target-ppc: Add POWER8 v1.0 CPU model
From: |
Alexander Graf |
Subject: |
[Qemu-devel] [PATCH 06/22] target-ppc: Add POWER8 v1.0 CPU model |
Date: |
Thu, 11 Jul 2013 19:01:09 +0200 |
From: Prerna Saxena <address@hidden>
This patch adds CPU PVR definition for POWER8,
and enables QEMU to launch guests on POWER8 hardware.
Signed-off-by: Prerna Saxena <address@hidden>
Signed-off-by: Alexey Kardashevskiy <address@hidden>
Reviewed-by: Paul Mackerras <address@hidden>
Reviewed-by: Andreas Farber <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>
---
target-ppc/cpu-models.c | 3 +++
target-ppc/cpu-models.h | 1 +
target-ppc/translate_init.c | 34 ++++++++++++++++++++++++++++++++++
3 files changed, 38 insertions(+)
diff --git a/target-ppc/cpu-models.c b/target-ppc/cpu-models.c
index 13dd670..9578ed8 100644
--- a/target-ppc/cpu-models.c
+++ b/target-ppc/cpu-models.c
@@ -1143,6 +1143,8 @@
"POWER7 v2.1")
POWERPC_DEF("POWER7_v2.3", CPU_POWERPC_POWER7_v23, POWER7,
"POWER7 v2.3")
+ POWERPC_DEF("POWER8_v1.0", CPU_POWERPC_POWER8_v10, POWER8,
+ "POWER8 v1.0")
POWERPC_DEF("970", CPU_POWERPC_970, 970,
"PowerPC 970")
POWERPC_DEF("970fx_v1.0", CPU_POWERPC_970FX_v10, 970FX,
@@ -1388,6 +1390,7 @@ PowerPCCPUAlias ppc_cpu_aliases[] = {
{ "Dino", "POWER3" },
{ "POWER3+", "631" },
{ "POWER7", "POWER7_v2.3" },
+ { "POWER8", "POWER8_v1.0" },
{ "970fx", "970fx_v3.1" },
{ "970mp", "970mp_v1.1" },
{ "Apache", "RS64" },
diff --git a/target-ppc/cpu-models.h b/target-ppc/cpu-models.h
index fcd3a15..01e488f 100644
--- a/target-ppc/cpu-models.h
+++ b/target-ppc/cpu-models.h
@@ -556,6 +556,7 @@ enum {
CPU_POWERPC_POWER7_v20 = 0x003F0200,
CPU_POWERPC_POWER7_v21 = 0x003F0201,
CPU_POWERPC_POWER7_v23 = 0x003F0203,
+ CPU_POWERPC_POWER8_v10 = 0x004B0100,
CPU_POWERPC_970 = 0x00390202,
CPU_POWERPC_970FX_v10 = 0x00391100,
CPU_POWERPC_970FX_v20 = 0x003C0200,
diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c
index 76483d9..79bfcd8 100644
--- a/target-ppc/translate_init.c
+++ b/target-ppc/translate_init.c
@@ -7136,6 +7136,40 @@ POWERPC_FAMILY(POWER7)(ObjectClass *oc, void *data)
pcc->l1_dcache_size = 0x8000;
pcc->l1_icache_size = 0x8000;
}
+
+POWERPC_FAMILY(POWER8)(ObjectClass *oc, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(oc);
+ PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(oc);
+
+ dc->desc = "POWER8";
+ pcc->init_proc = init_proc_POWER7;
+ pcc->check_pow = check_pow_nocheck;
+ pcc->insns_flags = PPC_INSNS_BASE | PPC_STRING | PPC_MFTB |
+ PPC_FLOAT | PPC_FLOAT_FSEL | PPC_FLOAT_FRES |
+ PPC_FLOAT_FSQRT | PPC_FLOAT_FRSQRTE |
+ PPC_FLOAT_STFIWX |
+ PPC_CACHE | PPC_CACHE_ICBI | PPC_CACHE_DCBZ |
+ PPC_MEM_SYNC | PPC_MEM_EIEIO |
+ PPC_MEM_TLBIE | PPC_MEM_TLBSYNC |
+ PPC_64B | PPC_ALTIVEC |
+ PPC_SEGMENT_64B | PPC_SLBI |
+ PPC_POPCNTB | PPC_POPCNTWD;
+ pcc->insns_flags2 = PPC2_VSX | PPC2_DFP | PPC2_DBRX;
+ pcc->msr_mask = 0x800000000204FF36ULL;
+ pcc->mmu_model = POWERPC_MMU_2_06;
+#if defined(CONFIG_SOFTMMU)
+ pcc->handle_mmu_fault = ppc_hash64_handle_mmu_fault;
+#endif
+ pcc->excp_model = POWERPC_EXCP_POWER7;
+ pcc->bus_model = PPC_FLAGS_INPUT_POWER7;
+ pcc->bfd_mach = bfd_mach_ppc64;
+ pcc->flags = POWERPC_FLAG_VRE | POWERPC_FLAG_SE |
+ POWERPC_FLAG_BE | POWERPC_FLAG_PMM |
+ POWERPC_FLAG_BUS_CLK | POWERPC_FLAG_CFAR;
+ pcc->l1_dcache_size = 0x8000;
+ pcc->l1_icache_size = 0x8000;
+}
#endif /* defined (TARGET_PPC64) */
--
1.8.1.4
- [Qemu-devel] [PATCH 21/22] PPC: Add timer handler for newworld mac-io, (continued)
- [Qemu-devel] [PATCH 21/22] PPC: Add timer handler for newworld mac-io, Alexander Graf, 2013/07/11
- [Qemu-devel] [PATCH 17/22] PPC: dbdma: macio: Add DMA callback, Alexander Graf, 2013/07/11
- [Qemu-devel] [PATCH 11/22] PPC: Mac: Add debug prints in macio and dbdma code, Alexander Graf, 2013/07/11
- [Qemu-devel] [PATCH 18/22] PPC: dbdma: Move processing to io, Alexander Graf, 2013/07/11
- [Qemu-devel] [PATCH 10/22] PPC: dbdma: Replace tabs with spaces, Alexander Graf, 2013/07/11
- [Qemu-devel] [PATCH 13/22] PPC: dbdma: Allow new commands in RUN state, Alexander Graf, 2013/07/11
- [Qemu-devel] [PATCH 16/22] PPC: dbdma: Move static bh variable to device struct, Alexander Graf, 2013/07/11
- [Qemu-devel] [PATCH 07/22] PPC: Mac: Fix guest exported tbfreq values, Alexander Graf, 2013/07/11
- [Qemu-devel] [PATCH 14/22] PPC: dbdma: Move defines into header file, Alexander Graf, 2013/07/11
- [Qemu-devel] [PATCH 08/22] PPC: g3beige: Move secondary IDE bus to mac-io, Alexander Graf, 2013/07/11
- [Qemu-devel] [PATCH 06/22] target-ppc: Add POWER8 v1.0 CPU model,
Alexander Graf <=
- [Qemu-devel] [PATCH 19/22] PPC: dbdma: Wait for DMA until we have data, Alexander Graf, 2013/07/11
- [Qemu-devel] [PATCH 20/22] PPC: dbdma: Support unaligned DMA access, Alexander Graf, 2013/07/11
- Re: [Qemu-devel] [APPLIED] Merge remote-tracking branch 'agraf/ppc-for-upstream' into staging, Anthony Liguori, 2013/07/12