Sparc support added. (#734)
* Fix for MIPS issue. * Sparc support added.
This commit is contained in:

committed by
Nguyen Anh Quynh

parent
69ae8f7987
commit
a40921ce32
@ -158,338 +158,378 @@ void cpu_sparc_set_id(CPUSPARCState *env, unsigned int cpu)
|
||||
static const sparc_def_t sparc_defs[] = {
|
||||
#ifdef TARGET_SPARC64
|
||||
{
|
||||
.name = "Fujitsu Sparc64",
|
||||
.iu_version = ((0x04ULL << 48) | (0x02ULL << 32) | (0ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_us_12,
|
||||
.nwindows = 4,
|
||||
.maxtl = 4,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"Fujitsu Sparc64",
|
||||
((0x04ULL << 48) | (0x02ULL << 32) | (0ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_us_12,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
4,
|
||||
4,
|
||||
},
|
||||
{
|
||||
.name = "Fujitsu Sparc64 III",
|
||||
.iu_version = ((0x04ULL << 48) | (0x03ULL << 32) | (0ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_us_12,
|
||||
.nwindows = 5,
|
||||
.maxtl = 4,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"Fujitsu Sparc64 III",
|
||||
((0x04ULL << 48) | (0x03ULL << 32) | (0ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_us_12,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
5,
|
||||
4,
|
||||
},
|
||||
{
|
||||
.name = "Fujitsu Sparc64 IV",
|
||||
.iu_version = ((0x04ULL << 48) | (0x04ULL << 32) | (0ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_us_12,
|
||||
.nwindows = 8,
|
||||
.maxtl = 5,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"Fujitsu Sparc64 IV",
|
||||
((0x04ULL << 48) | (0x04ULL << 32) | (0ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_us_12,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
5,
|
||||
},
|
||||
{
|
||||
.name = "Fujitsu Sparc64 V",
|
||||
.iu_version = ((0x04ULL << 48) | (0x05ULL << 32) | (0x51ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_us_12,
|
||||
.nwindows = 8,
|
||||
.maxtl = 5,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"Fujitsu Sparc64 V",
|
||||
((0x04ULL << 48) | (0x05ULL << 32) | (0x51ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_us_12,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
5,
|
||||
},
|
||||
{
|
||||
.name = "TI UltraSparc I",
|
||||
.iu_version = ((0x17ULL << 48) | (0x10ULL << 32) | (0x40ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_us_12,
|
||||
.nwindows = 8,
|
||||
.maxtl = 5,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"TI UltraSparc I",
|
||||
((0x17ULL << 48) | (0x10ULL << 32) | (0x40ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_us_12,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
5,
|
||||
},
|
||||
{
|
||||
.name = "TI UltraSparc II",
|
||||
.iu_version = ((0x17ULL << 48) | (0x11ULL << 32) | (0x20ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_us_12,
|
||||
.nwindows = 8,
|
||||
.maxtl = 5,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"TI UltraSparc II",
|
||||
((0x17ULL << 48) | (0x11ULL << 32) | (0x20ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_us_12,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
5,
|
||||
},
|
||||
{
|
||||
.name = "TI UltraSparc IIi",
|
||||
.iu_version = ((0x17ULL << 48) | (0x12ULL << 32) | (0x91ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_us_12,
|
||||
.nwindows = 8,
|
||||
.maxtl = 5,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"TI UltraSparc IIi",
|
||||
((0x17ULL << 48) | (0x12ULL << 32) | (0x91ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_us_12,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
5,
|
||||
},
|
||||
{
|
||||
.name = "TI UltraSparc IIe",
|
||||
.iu_version = ((0x17ULL << 48) | (0x13ULL << 32) | (0x14ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_us_12,
|
||||
.nwindows = 8,
|
||||
.maxtl = 5,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"TI UltraSparc IIe",
|
||||
((0x17ULL << 48) | (0x13ULL << 32) | (0x14ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_us_12,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
5,
|
||||
},
|
||||
{
|
||||
.name = "Sun UltraSparc III",
|
||||
.iu_version = ((0x3eULL << 48) | (0x14ULL << 32) | (0x34ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_us_12,
|
||||
.nwindows = 8,
|
||||
.maxtl = 5,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"Sun UltraSparc III",
|
||||
((0x3eULL << 48) | (0x14ULL << 32) | (0x34ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_us_12,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
5,
|
||||
},
|
||||
{
|
||||
.name = "Sun UltraSparc III Cu",
|
||||
.iu_version = ((0x3eULL << 48) | (0x15ULL << 32) | (0x41ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_us_3,
|
||||
.nwindows = 8,
|
||||
.maxtl = 5,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"Sun UltraSparc III Cu",
|
||||
((0x3eULL << 48) | (0x15ULL << 32) | (0x41ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_us_3,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
5,
|
||||
},
|
||||
{
|
||||
.name = "Sun UltraSparc IIIi",
|
||||
.iu_version = ((0x3eULL << 48) | (0x16ULL << 32) | (0x34ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_us_12,
|
||||
.nwindows = 8,
|
||||
.maxtl = 5,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"Sun UltraSparc IIIi",
|
||||
((0x3eULL << 48) | (0x16ULL << 32) | (0x34ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_us_12,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
5,
|
||||
},
|
||||
{
|
||||
.name = "Sun UltraSparc IV",
|
||||
.iu_version = ((0x3eULL << 48) | (0x18ULL << 32) | (0x31ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_us_4,
|
||||
.nwindows = 8,
|
||||
.maxtl = 5,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"Sun UltraSparc IV",
|
||||
((0x3eULL << 48) | (0x18ULL << 32) | (0x31ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_us_4,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
5,
|
||||
},
|
||||
{
|
||||
.name = "Sun UltraSparc IV+",
|
||||
.iu_version = ((0x3eULL << 48) | (0x19ULL << 32) | (0x22ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_us_12,
|
||||
.nwindows = 8,
|
||||
.maxtl = 5,
|
||||
.features = CPU_DEFAULT_FEATURES | CPU_FEATURE_CMT,
|
||||
"Sun UltraSparc IV+",
|
||||
((0x3eULL << 48) | (0x19ULL << 32) | (0x22ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_us_12,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES | CPU_FEATURE_CMT,
|
||||
8,
|
||||
5,
|
||||
},
|
||||
{
|
||||
.name = "Sun UltraSparc IIIi+",
|
||||
.iu_version = ((0x3eULL << 48) | (0x22ULL << 32) | (0ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_us_3,
|
||||
.nwindows = 8,
|
||||
.maxtl = 5,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"Sun UltraSparc IIIi+",
|
||||
((0x3eULL << 48) | (0x22ULL << 32) | (0ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_us_3,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
5,
|
||||
},
|
||||
{
|
||||
.name = "Sun UltraSparc T1",
|
||||
"Sun UltraSparc T1",
|
||||
/* defined in sparc_ifu_fdp.v and ctu.h */
|
||||
.iu_version = ((0x3eULL << 48) | (0x23ULL << 32) | (0x02ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_sun4v,
|
||||
.nwindows = 8,
|
||||
.maxtl = 6,
|
||||
.features = CPU_DEFAULT_FEATURES | CPU_FEATURE_HYPV | CPU_FEATURE_CMT
|
||||
| CPU_FEATURE_GL,
|
||||
((0x3eULL << 48) | (0x23ULL << 32) | (0x02ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_sun4v,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES | CPU_FEATURE_HYPV | CPU_FEATURE_CMT
|
||||
| CPU_FEATURE_GL,
|
||||
8,
|
||||
6,
|
||||
},
|
||||
{
|
||||
.name = "Sun UltraSparc T2",
|
||||
"Sun UltraSparc T2",
|
||||
/* defined in tlu_asi_ctl.v and n2_revid_cust.v */
|
||||
.iu_version = ((0x3eULL << 48) | (0x24ULL << 32) | (0x02ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_sun4v,
|
||||
.nwindows = 8,
|
||||
.maxtl = 6,
|
||||
.features = CPU_DEFAULT_FEATURES | CPU_FEATURE_HYPV | CPU_FEATURE_CMT
|
||||
| CPU_FEATURE_GL,
|
||||
((0x3eULL << 48) | (0x24ULL << 32) | (0x02ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_sun4v,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES | CPU_FEATURE_HYPV | CPU_FEATURE_CMT
|
||||
| CPU_FEATURE_GL,
|
||||
8,
|
||||
6,
|
||||
},
|
||||
{
|
||||
.name = "NEC UltraSparc I",
|
||||
.iu_version = ((0x22ULL << 48) | (0x10ULL << 32) | (0x40ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_us_12,
|
||||
.nwindows = 8,
|
||||
.maxtl = 5,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"NEC UltraSparc I",
|
||||
((0x22ULL << 48) | (0x10ULL << 32) | (0x40ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_us_12,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
5,
|
||||
},
|
||||
#else
|
||||
{
|
||||
.name = "Fujitsu MB86904",
|
||||
.iu_version = 0x04 << 24, /* Impl 0, ver 4 */
|
||||
.fpu_version = 4 << 17, /* FPU version 4 (Meiko) */
|
||||
.mmu_version = 0x04 << 24, /* Impl 0, ver 4 */
|
||||
.mmu_bm = 0x00004000,
|
||||
.mmu_ctpr_mask = 0x00ffffc0,
|
||||
.mmu_cxr_mask = 0x000000ff,
|
||||
.mmu_sfsr_mask = 0x00016fff,
|
||||
.mmu_trcr_mask = 0x00ffffff,
|
||||
.nwindows = 8,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"Fujitsu MB86904",
|
||||
0x04 << 24, /* Impl 0, ver 4 */
|
||||
4 << 17, /* FPU version 4 (Meiko) */
|
||||
0x04 << 24, /* Impl 0, ver 4 */
|
||||
0x00004000,
|
||||
0x00ffffc0,
|
||||
0x000000ff,
|
||||
0x00016fff,
|
||||
0x00ffffff,
|
||||
0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
0,
|
||||
},
|
||||
{
|
||||
.name = "Fujitsu MB86907",
|
||||
.iu_version = 0x05 << 24, /* Impl 0, ver 5 */
|
||||
.fpu_version = 4 << 17, /* FPU version 4 (Meiko) */
|
||||
.mmu_version = 0x05 << 24, /* Impl 0, ver 5 */
|
||||
.mmu_bm = 0x00004000,
|
||||
.mmu_ctpr_mask = 0xffffffc0,
|
||||
.mmu_cxr_mask = 0x000000ff,
|
||||
.mmu_sfsr_mask = 0x00016fff,
|
||||
.mmu_trcr_mask = 0xffffffff,
|
||||
.nwindows = 8,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"Fujitsu MB86907",
|
||||
0x05 << 24, /* Impl 0, ver 5 */
|
||||
4 << 17, /* FPU version 4 (Meiko) */
|
||||
0x05 << 24, /* Impl 0, ver 5 */
|
||||
0x00004000,
|
||||
0xffffffc0,
|
||||
0x000000ff,
|
||||
0x00016fff,
|
||||
0xffffffff,
|
||||
0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
0,
|
||||
},
|
||||
{
|
||||
.name = "TI MicroSparc I",
|
||||
.iu_version = 0x41000000,
|
||||
.fpu_version = 4 << 17,
|
||||
.mmu_version = 0x41000000,
|
||||
.mmu_bm = 0x00004000,
|
||||
.mmu_ctpr_mask = 0x007ffff0,
|
||||
.mmu_cxr_mask = 0x0000003f,
|
||||
.mmu_sfsr_mask = 0x00016fff,
|
||||
.mmu_trcr_mask = 0x0000003f,
|
||||
.nwindows = 7,
|
||||
.features = CPU_FEATURE_FLOAT | CPU_FEATURE_SWAP | CPU_FEATURE_MUL |
|
||||
CPU_FEATURE_DIV | CPU_FEATURE_FLUSH | CPU_FEATURE_FSQRT |
|
||||
CPU_FEATURE_FMUL,
|
||||
"TI MicroSparc I",
|
||||
0x41000000,
|
||||
4 << 17,
|
||||
0x41000000,
|
||||
0x00004000,
|
||||
0x007ffff0,
|
||||
0x0000003f,
|
||||
0x00016fff,
|
||||
0x0000003f,
|
||||
0,
|
||||
CPU_FEATURE_FLOAT | CPU_FEATURE_SWAP | CPU_FEATURE_MUL |
|
||||
CPU_FEATURE_DIV | CPU_FEATURE_FLUSH | CPU_FEATURE_FSQRT |
|
||||
CPU_FEATURE_FMUL,
|
||||
7,
|
||||
0,
|
||||
},
|
||||
{
|
||||
.name = "TI MicroSparc II",
|
||||
.iu_version = 0x42000000,
|
||||
.fpu_version = 4 << 17,
|
||||
.mmu_version = 0x02000000,
|
||||
.mmu_bm = 0x00004000,
|
||||
.mmu_ctpr_mask = 0x00ffffc0,
|
||||
.mmu_cxr_mask = 0x000000ff,
|
||||
.mmu_sfsr_mask = 0x00016fff,
|
||||
.mmu_trcr_mask = 0x00ffffff,
|
||||
.nwindows = 8,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"TI MicroSparc II",
|
||||
0x42000000,
|
||||
4 << 17,
|
||||
0x02000000,
|
||||
0x00004000,
|
||||
0x00ffffc0,
|
||||
0x000000ff,
|
||||
0x00016fff,
|
||||
0x00ffffff,
|
||||
0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
0,
|
||||
},
|
||||
{
|
||||
.name = "TI MicroSparc IIep",
|
||||
.iu_version = 0x42000000,
|
||||
.fpu_version = 4 << 17,
|
||||
.mmu_version = 0x04000000,
|
||||
.mmu_bm = 0x00004000,
|
||||
.mmu_ctpr_mask = 0x00ffffc0,
|
||||
.mmu_cxr_mask = 0x000000ff,
|
||||
.mmu_sfsr_mask = 0x00016bff,
|
||||
.mmu_trcr_mask = 0x00ffffff,
|
||||
.nwindows = 8,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"TI MicroSparc IIep",
|
||||
0x42000000,
|
||||
4 << 17,
|
||||
0x04000000,
|
||||
0x00004000,
|
||||
0x00ffffc0,
|
||||
0x000000ff,
|
||||
0x00016bff,
|
||||
0x00ffffff,
|
||||
0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
0,
|
||||
},
|
||||
{
|
||||
.name = "TI SuperSparc 40", /* STP1020NPGA */
|
||||
.iu_version = 0x41000000, /* SuperSPARC 2.x */
|
||||
.fpu_version = 0 << 17,
|
||||
.mmu_version = 0x00000800, /* SuperSPARC 2.x, no MXCC */
|
||||
.mmu_bm = 0x00002000,
|
||||
.mmu_ctpr_mask = 0xffffffc0,
|
||||
.mmu_cxr_mask = 0x0000ffff,
|
||||
.mmu_sfsr_mask = 0xffffffff,
|
||||
.mmu_trcr_mask = 0xffffffff,
|
||||
.nwindows = 8,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"TI SuperSparc 40", /* STP1020NPGA */
|
||||
0x41000000, /* SuperSPARC 2.x */
|
||||
0 << 17,
|
||||
0x00000800, /* SuperSPARC 2.x, no MXCC */
|
||||
0x00002000,
|
||||
0xffffffc0,
|
||||
0x0000ffff,
|
||||
0xffffffff,
|
||||
0xffffffff,
|
||||
0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
0,
|
||||
},
|
||||
{
|
||||
.name = "TI SuperSparc 50", /* STP1020PGA */
|
||||
.iu_version = 0x40000000, /* SuperSPARC 3.x */
|
||||
.fpu_version = 0 << 17,
|
||||
.mmu_version = 0x01000800, /* SuperSPARC 3.x, no MXCC */
|
||||
.mmu_bm = 0x00002000,
|
||||
.mmu_ctpr_mask = 0xffffffc0,
|
||||
.mmu_cxr_mask = 0x0000ffff,
|
||||
.mmu_sfsr_mask = 0xffffffff,
|
||||
.mmu_trcr_mask = 0xffffffff,
|
||||
.nwindows = 8,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"TI SuperSparc 50", /* STP1020PGA */
|
||||
0x40000000, /* SuperSPARC 3.x */
|
||||
0 << 17,
|
||||
0x01000800, /* SuperSPARC 3.x, no MXCC */
|
||||
0x00002000,
|
||||
0xffffffc0,
|
||||
0x0000ffff,
|
||||
0xffffffff,
|
||||
0xffffffff,
|
||||
0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
0,
|
||||
},
|
||||
{
|
||||
.name = "TI SuperSparc 51",
|
||||
.iu_version = 0x40000000, /* SuperSPARC 3.x */
|
||||
.fpu_version = 0 << 17,
|
||||
.mmu_version = 0x01000000, /* SuperSPARC 3.x, MXCC */
|
||||
.mmu_bm = 0x00002000,
|
||||
.mmu_ctpr_mask = 0xffffffc0,
|
||||
.mmu_cxr_mask = 0x0000ffff,
|
||||
.mmu_sfsr_mask = 0xffffffff,
|
||||
.mmu_trcr_mask = 0xffffffff,
|
||||
.mxcc_version = 0x00000104,
|
||||
.nwindows = 8,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"TI SuperSparc 51",
|
||||
0x40000000, /* SuperSPARC 3.x */
|
||||
0 << 17,
|
||||
0x01000000, /* SuperSPARC 3.x, MXCC */
|
||||
0x00002000,
|
||||
0xffffffc0,
|
||||
0x0000ffff,
|
||||
0xffffffff,
|
||||
0xffffffff,
|
||||
0x00000104,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
0,
|
||||
},
|
||||
{
|
||||
.name = "TI SuperSparc 60", /* STP1020APGA */
|
||||
.iu_version = 0x40000000, /* SuperSPARC 3.x */
|
||||
.fpu_version = 0 << 17,
|
||||
.mmu_version = 0x01000800, /* SuperSPARC 3.x, no MXCC */
|
||||
.mmu_bm = 0x00002000,
|
||||
.mmu_ctpr_mask = 0xffffffc0,
|
||||
.mmu_cxr_mask = 0x0000ffff,
|
||||
.mmu_sfsr_mask = 0xffffffff,
|
||||
.mmu_trcr_mask = 0xffffffff,
|
||||
.nwindows = 8,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"TI SuperSparc 60", /* STP1020APGA */
|
||||
0x40000000, /* SuperSPARC 3.x */
|
||||
0 << 17,
|
||||
0x01000800, /* SuperSPARC 3.x, no MXCC */
|
||||
0x00002000,
|
||||
0xffffffc0,
|
||||
0x0000ffff,
|
||||
0xffffffff,
|
||||
0xffffffff,
|
||||
0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
0,
|
||||
},
|
||||
{
|
||||
.name = "TI SuperSparc 61",
|
||||
.iu_version = 0x44000000, /* SuperSPARC 3.x */
|
||||
.fpu_version = 0 << 17,
|
||||
.mmu_version = 0x01000000, /* SuperSPARC 3.x, MXCC */
|
||||
.mmu_bm = 0x00002000,
|
||||
.mmu_ctpr_mask = 0xffffffc0,
|
||||
.mmu_cxr_mask = 0x0000ffff,
|
||||
.mmu_sfsr_mask = 0xffffffff,
|
||||
.mmu_trcr_mask = 0xffffffff,
|
||||
.mxcc_version = 0x00000104,
|
||||
.nwindows = 8,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"TI SuperSparc 61",
|
||||
0x44000000, /* SuperSPARC 3.x */
|
||||
0 << 17,
|
||||
0x01000000, /* SuperSPARC 3.x, MXCC */
|
||||
0x00002000,
|
||||
0xffffffc0,
|
||||
0x0000ffff,
|
||||
0xffffffff,
|
||||
0xffffffff,
|
||||
0x00000104,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
0,
|
||||
},
|
||||
{
|
||||
.name = "TI SuperSparc II",
|
||||
.iu_version = 0x40000000, /* SuperSPARC II 1.x */
|
||||
.fpu_version = 0 << 17,
|
||||
.mmu_version = 0x08000000, /* SuperSPARC II 1.x, MXCC */
|
||||
.mmu_bm = 0x00002000,
|
||||
.mmu_ctpr_mask = 0xffffffc0,
|
||||
.mmu_cxr_mask = 0x0000ffff,
|
||||
.mmu_sfsr_mask = 0xffffffff,
|
||||
.mmu_trcr_mask = 0xffffffff,
|
||||
.mxcc_version = 0x00000104,
|
||||
.nwindows = 8,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"TI SuperSparc II",
|
||||
0x40000000, /* SuperSPARC II 1.x */
|
||||
0 << 17,
|
||||
0x08000000, /* SuperSPARC II 1.x, MXCC */
|
||||
0x00002000,
|
||||
0xffffffc0,
|
||||
0x0000ffff,
|
||||
0xffffffff,
|
||||
0xffffffff,
|
||||
0x00000104,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
0,
|
||||
},
|
||||
{
|
||||
.name = "LEON2",
|
||||
.iu_version = 0xf2000000,
|
||||
.fpu_version = 4 << 17, /* FPU version 4 (Meiko) */
|
||||
.mmu_version = 0xf2000000,
|
||||
.mmu_bm = 0x00004000,
|
||||
.mmu_ctpr_mask = 0x007ffff0,
|
||||
.mmu_cxr_mask = 0x0000003f,
|
||||
.mmu_sfsr_mask = 0xffffffff,
|
||||
.mmu_trcr_mask = 0xffffffff,
|
||||
.nwindows = 8,
|
||||
.features = CPU_DEFAULT_FEATURES | CPU_FEATURE_TA0_SHUTDOWN,
|
||||
"LEON2",
|
||||
0xf2000000,
|
||||
4 << 17, /* FPU version 4 (Meiko) */
|
||||
0xf2000000,
|
||||
0x00004000,
|
||||
0x007ffff0,
|
||||
0x0000003f,
|
||||
0xffffffff,
|
||||
0xffffffff,
|
||||
0,
|
||||
CPU_DEFAULT_FEATURES | CPU_FEATURE_TA0_SHUTDOWN,
|
||||
8,
|
||||
0,
|
||||
},
|
||||
{
|
||||
.name = "LEON3",
|
||||
.iu_version = 0xf3000000,
|
||||
.fpu_version = 4 << 17, /* FPU version 4 (Meiko) */
|
||||
.mmu_version = 0xf3000000,
|
||||
.mmu_bm = 0x00000000,
|
||||
.mmu_ctpr_mask = 0xfffffffc,
|
||||
.mmu_cxr_mask = 0x000000ff,
|
||||
.mmu_sfsr_mask = 0xffffffff,
|
||||
.mmu_trcr_mask = 0xffffffff,
|
||||
.nwindows = 8,
|
||||
.features = CPU_DEFAULT_FEATURES | CPU_FEATURE_TA0_SHUTDOWN |
|
||||
CPU_FEATURE_ASR17 | CPU_FEATURE_CACHE_CTRL | CPU_FEATURE_POWERDOWN |
|
||||
CPU_FEATURE_CASA,
|
||||
"LEON3",
|
||||
0xf3000000,
|
||||
4 << 17, /* FPU version 4 (Meiko) */
|
||||
0xf3000000,
|
||||
0x00000000,
|
||||
0xfffffffc,
|
||||
0x000000ff,
|
||||
0xffffffff,
|
||||
0xffffffff,
|
||||
0,
|
||||
CPU_DEFAULT_FEATURES | CPU_FEATURE_TA0_SHUTDOWN |
|
||||
CPU_FEATURE_ASR17 | CPU_FEATURE_CACHE_CTRL | CPU_FEATURE_POWERDOWN |
|
||||
CPU_FEATURE_CASA,
|
||||
8,
|
||||
0,
|
||||
},
|
||||
#endif
|
||||
};
|
||||
@ -857,16 +897,25 @@ static void sparc_cpu_class_init(struct uc_struct *uc, ObjectClass *oc, void *da
|
||||
|
||||
void sparc_cpu_register_types(void *opaque)
|
||||
{
|
||||
TypeInfo sparc_cpu_type_info = {
|
||||
.name = TYPE_SPARC_CPU,
|
||||
.parent = TYPE_CPU,
|
||||
.instance_userdata = opaque,
|
||||
.instance_size = sizeof(SPARCCPU),
|
||||
.instance_init = sparc_cpu_initfn,
|
||||
.instance_finalize = sparc_cpu_uninitfn,
|
||||
.abstract = false,
|
||||
.class_size = sizeof(SPARCCPUClass),
|
||||
.class_init = sparc_cpu_class_init,
|
||||
const TypeInfo sparc_cpu_type_info = {
|
||||
TYPE_SPARC_CPU,
|
||||
TYPE_CPU,
|
||||
|
||||
sizeof(SPARCCPUClass),
|
||||
sizeof(SPARCCPU),
|
||||
opaque,
|
||||
|
||||
sparc_cpu_initfn,
|
||||
NULL,
|
||||
sparc_cpu_uninitfn,
|
||||
|
||||
NULL,
|
||||
|
||||
sparc_cpu_class_init,
|
||||
NULL,
|
||||
NULL,
|
||||
|
||||
false,
|
||||
};
|
||||
|
||||
//printf(">>> sparc_cpu_register_types\n");
|
||||
|
Reference in New Issue
Block a user