/[gxemul]/trunk/src/include/mips_cpu_types.h
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/src/include/mips_cpu_types.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 11 by dpavlin, Mon Oct 8 16:18:27 2007 UTC revision 12 by dpavlin, Mon Oct 8 16:18:38 2007 UTC
# Line 28  Line 28 
28   *  SUCH DAMAGE.   *  SUCH DAMAGE.
29   *   *
30   *   *
31   *  $Id: mips_cpu_types.h,v 1.5 2005/06/24 09:33:37 debug Exp $   *  $Id: mips_cpu_types.h,v 1.8 2005/06/30 15:36:53 debug Exp $
32   *   *
33   *  MIPS CPU types.   *  MIPS CPU types.
34   */   */
# Line 67  Line 67 
67   */   */
68    
69  #define MIPS_CPU_TYPE_DEFS      {       \  #define MIPS_CPU_TYPE_DEFS      {       \
70          { "R2000",      MIPS_R2000, 0x00,       NOLLSC, EXC3K, MMU3K,   1,      64, 1,13,13, 2, 2, 0, 0 }, \          { "R2000",      MIPS_R2000, 0x00,       NOLLSC, EXC3K, MMU3K,   1,      64, 1,13,2,1,13,2,1, 0, 0, 0 }, \
71          { "R2000A",     MIPS_R2000, 0x10,       NOLLSC, EXC3K, MMU3K,   1,      64, 1,13,13, 2, 2, 0, 0 }, \          { "R2000A",     MIPS_R2000, 0x10,       NOLLSC, EXC3K, MMU3K,   1,      64, 1,13,2,1,13,2,1, 0, 0, 0 }, \
72          { "R3000",      MIPS_R3000, 0x20,       NOLLSC, EXC3K, MMU3K,   1,      64, 1,12,12, 2, 2, 0, 0 }, \          { "R3000",      MIPS_R3000, 0x20,       NOLLSC, EXC3K, MMU3K,   1,      64, 1,12,2,1,12,2,1, 0, 0, 0 }, \
73          { "R3000A",     MIPS_R3000, 0x30,       NOLLSC, EXC3K, MMU3K,   1,      64, 1,13,13, 2, 2, 0, 0 }, \          { "R3000A",     MIPS_R3000, 0x30,       NOLLSC, EXC3K, MMU3K,   1,      64, 1,13,2,1,13,2,1, 0, 0, 0 }, \
74          { "R6000",      MIPS_R6000, 0x00,       0,      EXC3K, MMU3K,   2,      32, 1,16,16, 2, 2, 0, 0 }, /*  instrs/cycle?  */  \          { "R6000",      MIPS_R6000, 0x00,       0,      EXC3K, MMU3K,   2,      32, 1,16,2,2,16,2,2, 0, 0, 0 }, /*  instrs/cycle?  */  \
75          { "R4000",      MIPS_R4000, 0x00,       DCOUNT, EXC4K, MMU4K,   3,      48, 2,13,13, 4, 4,19, 6 }, \          { "R4000",      MIPS_R4000, 0x00,       DCOUNT, EXC4K, MMU4K,   3,      48, 2,13,4,2,13,4,2,19, 6, 1 }, \
76          { "R4000PC",    MIPS_R4000, 0x00,       DCOUNT, EXC4K, MMU4K,   3,      48, 2,13,13, 4, 4, 0, 6 }, \          { "R4000PC",    MIPS_R4000, 0x00,       DCOUNT, EXC4K, MMU4K,   3,      48, 2,13,4,2,13,4,2, 0, 6, 1 }, \
77          { "R10000",     MIPS_R10000,0x26,       0,      EXC4K, MMU10K,  4,      64, 4,15,15, 6, 5,20, 6 }, /*  2way I,D,Secondary  */ \          { "R10000",     MIPS_R10000,0x26,       0,      EXC4K, MMU10K,  4,      64, 4,15,6,2,15,5,2,20, 6, 1 }, \
78          { "R4200",      MIPS_R4200, 0x00,       0,      EXC4K, MMU4K,   3,      32, 2, 0, 0, 0, 0, 0, 0 }, /*  No DCOUNT?  */ \          { "R4200",      MIPS_R4200, 0x00,       0,      EXC4K, MMU4K,   3,      32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /*  No DCOUNT?  */ \
79          { "R4300",      MIPS_R4300, 0x00,       0,      EXC4K, MMU4K,   3,      32, 2, 0, 0, 0, 0, 0, 0 }, /*  No DCOUNT?  */ \          { "R4300",      MIPS_R4300, 0x00,       0,      EXC4K, MMU4K,   3,      32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /*  No DCOUNT?  */ \
80          { "R4100",      MIPS_R4100, 0x00,       0,      EXC4K, MMU4K,   3,      32, 2, 0, 0, 0, 0, 0, 0 }, /*  No DCOUNT?  */ \          { "R4100",      MIPS_R4100, 0x00,       0,      EXC4K, MMU4K,   3,      32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /*  No DCOUNT?  */ \
81          { "VR4102",     MIPS_R4100, 0x40,       NOFPU,  EXC4K, MMU4K,   3,      32, 2,12,10, 0, 0, 0, 0 }, /*  TODO: Bogus?  */ \          { "VR4102",     MIPS_R4100, 0x40,       NOFPU,  EXC4K, MMU4K,   3,      32, 2,12,0,0,10,0,0, 0, 0, 0 }, /*  TODO: Bogus?  */ \
82          { "VR4181",     MIPS_R4100, 0x50,       NOFPU,  EXC4K, MMU4K,   3,      32, 2,12,12, 0, 0, 0, 0 }, /*  TODO: Bogus?  */ \          { "VR4181",     MIPS_R4100, 0x50,       NOFPU,  EXC4K, MMU4K,   3,      32, 2,12,0,0,12,0,0, 0, 0, 0 }, /*  TODO: Bogus?  */ \
83          { "VR4121",     MIPS_R4100, 0x60,       NOFPU,  EXC4K, MMU4K,   3,      32, 2,14,13, 0, 0, 0, 0 }, /*  TODO: Bogus?  */ \          { "VR4121",     MIPS_R4100, 0x60,       NOFPU,  EXC4K, MMU4K,   3,      32, 2,14,0,0,13,0,0, 0, 0, 0 }, /*  TODO: Bogus?  */ \
84          { "VR4122",     MIPS_R4100, 0x70,       NOFPU,  EXC4K, MMU4K,   3,      32, 2,14,14, 0, 0, 0, 0 }, /*  TODO: Bogus?  */ \          { "VR4122",     MIPS_R4100, 0x70,       NOFPU,  EXC4K, MMU4K,   3,      32, 2,14,0,0,14,0,0, 0, 0, 0 }, /*  TODO: Bogus?  */ \
85          { "VR4131",     MIPS_R4100, 0x80,       NOFPU,  EXC4K, MMU4K,   3,      32, 2,14,14, 0, 0, 0, 0 }, /*  TODO: Bogus?  */ \          { "VR4131",     MIPS_R4100, 0x80,       NOFPU,  EXC4K, MMU4K,   3,      32, 2,14,0,0,14,0,0, 0, 0, 0 }, /*  TODO: Bogus?  */ \
86          { "R4400",      MIPS_R4000, 0x40,       DCOUNT, EXC4K, MMU4K,   3,      48, 2,14,14, 4, 4,20, 6 }, /*  direct mapped I,D,Sec  */ \          { "R4400",      MIPS_R4000, 0x40,       DCOUNT, EXC4K, MMU4K,   3,      48, 2,14,4,1,14,4,1,20, 6, 1 }, \
87          { "R4600",      MIPS_R4600, 0x00,       DCOUNT, EXC4K, MMU4K,   3,      48, 2, 0, 0, 0, 0, 0, 0 }, \          { "R4600",      MIPS_R4600, 0x00,       DCOUNT, EXC4K, MMU4K,   3,      48, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, \
88          { "R4700",      MIPS_R4700, 0x00,       0,      EXC4K, MMU4K,   3,      48, 2, 0, 0, 0, 0, 0, 0 }, /*  No DCOUNT?  */ \          { "R4700",      MIPS_R4700, 0x00,       0,      EXC4K, MMU4K,   3,      48, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /*  No DCOUNT?  */ \
89          { "R4650",      MIPS_R4650, 0x00,       0,      EXC4K, MMU4K,   3,      48, 2, 0, 0, 0, 0, 0, 0 }, /*  No DCOUNT?  */ \          { "R4650",      MIPS_R4650, 0x00,       0,      EXC4K, MMU4K,   3,      48, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /*  No DCOUNT?  */ \
90          { "R8000",      MIPS_R8000, 0,          0,      EXC4K, MMU8K,   4,     192, 2, 0, 0, 0, 0, 0, 0 }, /*  192 tlb entries? or 384? instrs/cycle?  */ \          { "R8000",      MIPS_R8000, 0,          0,      EXC4K, MMU8K,   4,     192, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /*  192 tlb entries? or 384? instrs/cycle?  */ \
91          { "R12000",     MIPS_R12000,0x23,       0,      EXC4K, MMU10K,  4,      64, 4,15,15, 6, 5,23, 6 }, \          { "R12000",     MIPS_R12000,0x23,       0,      EXC4K, MMU10K,  4,      64, 4,15,6,2,15,5,2,23, 6, 1 }, \
92          { "R14000",     MIPS_R14000,0,          0,      EXC4K, MMU10K,  4,      64, 4,15,15, 6, 5,22, 6 }, \          { "R14000",     MIPS_R14000,0,          0,      EXC4K, MMU10K,  4,      64, 4,15,6,2,15,5,2,22, 6, 1 }, \
93          { "R5000",      MIPS_R5000, 0x21,       DCOUNT, EXC4K, MMU4K,   4,      48, 4,15,15, 5, 5, 0, 0 }, /*  2way I,D; instrs/cycle?  */ \          { "R5000",      MIPS_R5000, 0x21,       DCOUNT, EXC4K, MMU4K,   4,      48, 4,15,5,2,15,5,2, 0, 0, 0 }, /*  2way I,D; instrs/cycle?  */ \
94          { "R5900",      MIPS_R5900, 0x20,       0,      EXC4K, MMU4K,   3,      48, 4,14,13, 6, 6, 0, 0 }, /*  instrs/cycle?  */ \          { "R5900",      MIPS_R5900, 0x20,       0,      EXC4K, MMU4K,   3,      48, 4,14,6,2,13,6,2, 0, 0, 0 }, /*  instrs/cycle?  */ \
95          { "TX3920",     MIPS_TX3900,0x30,       0,      EXC32, MMU32,   1,      32, 2, 0, 0, 0, 0, 0, 0 }, /*  TODO: bogus?  */ \          { "TX3920",     MIPS_TX3900,0x30,       0,      EXC32, MMU32,   1,      32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /*  TODO: bogus?  */ \
96          { "TX7901",     0x38,       0x01,       0,      EXC4K, MMU4K,  64,      48, 4, 0, 0, 0, 0, 0, 0 }, /*  TODO: bogus?  */ \          { "TX7901",     0x38,       0x01,       0,      EXC4K, MMU4K,  64,      48, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /*  TODO: bogus?  */ \
97          { "VR5432",     MIPS_R5400, 13,         0,      EXC4K, MMU4K,   -1,     -1, 4, 0, 0, 0, 0, 0, 0 }, /*  DCOUNT?  instrs/cycle?  */ \          { "VR5432",     MIPS_R5400, 13,         0,      EXC4K, MMU4K,   4,      48, 4,15,0,0,15,0,0, 0, 0, 0 }, /*  DCOUNT?  instrs/cycle? linesize? etc */ \
98          { "RM5200",     MIPS_RM5200,0xa0,       0,      EXC4K, MMU4K,   4,      48, 4, 0, 0, 0, 0, 0, 0 }, /*  DCOUNT?  instrs/cycle?  */ \          { "RM5200",     MIPS_RM5200,0xa0,       0,      EXC4K, MMU4K,   4,      48, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /*  DCOUNT?  instrs/cycle?  */ \
99          { "RM7000",     MIPS_RM7000,0x0 /* ? */,DCOUNT, EXC4K, MMU4K,   4,      48, 4,14,14, 5, 5,18, 6 }, /*  instrs/cycle? cachelinesize & assoc.? RM7000A? */ \          { "RM7000",     MIPS_RM7000,0x0 /* ? */,DCOUNT, EXC4K, MMU4K,   4,      48, 4,14,5,1,14,5,1,18, 6, 1 }, /*  instrs/cycle? cachelinesize & assoc.? RM7000A? */ \
100          { "RM7900",     0 /*TODO*/, 0x0 /* ? */,DCOUNT, EXC4K, MMU4K,   4,      64, 4,14,14, 5, 5,18, 6 }, /*  instrs/cycle? cachelinesize? assoc = 4ways for all  */ \          { "RM7900",     0 /*TODO*/, 0x0 /* ? */,DCOUNT, EXC4K, MMU4K,   4,      64, 4,14,5,1,14,5,1,18, 6, 1 }, /*  instrs/cycle? cachelinesize? assoc = 4ways for all  */ \
101          { "RM9000",     0x34,       0x0 /* ? */,DCOUNT, EXC4K, MMU4K,   4,      48, 4,14,14, 5, 5,18, 6 }, /*  This is totally bogus  */ \          { "RM9000",     0x34,       0x0 /* ? */,DCOUNT, EXC4K, MMU4K,   4,      48, 4,14,5,1,14,5,1,18, 6, 1 }, /*  This is totally bogus  */ \
102          { "RC32334",    MIPS_RC32300,0x00,      0,      EXC32, MMU4K,  32,      16, 1, 0, 0, 0, 0, 0, 0 }, \          { "RC32334",    MIPS_RC32300,0x00,      0,      EXC32, MMU4K,  32,      16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, \
103          { "4Kc",        0x100+MIPS_4Kc, 1 /*?*/,0,      EXC32, MMU32,  32,      48, 4, 0, 0, 0, 0, 0, 0 }, /*  DCOUNT?  instrs/cycle? BOGUS, TODO  */ \          { "4Kc",        0x100+MIPS_4Kc, 1,      0,      EXC32, MMU32,  32,      16, 4,14,4,2,14,4,2, 0, 0, 0 }, /*  DCOUNT?  instrs/cycle? BOGUS, TODO  */ \
104          { "5Kc",        0x100+MIPS_5Kc, 1,      0,      EXC64, MMU64,  64,      48, 4, 0, 0, 0, 0, 0, 0 }, /*  DCOUNT?  instrs/cycle? BOGUS, TODO  */ \          { "5Kc",        0x100+MIPS_5Kc, 1,      0,      EXC64, MMU64,  64,      48, 4,15,5,2,15,5,2, 0, 0, 0 }, /*  DCOUNT?  instrs/cycle? BOGUS, TODO  */ \
105          { "BCM4710",    0x000240,   0x00,       0,      EXC32, MMU32,  32,      32, 2, 0, 0, 0, 0, 0, 0 }, /*  TODO: this is just bogus  */ \          { "BCM4710",    0x000240,   0x00,       0,      EXC32, MMU32,  32,      32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /*  TODO: this is just bogus  */ \
106          { "BCM4712",    0x000290,   0x07,       0,      EXC32, MMU32,  32,      32, 2,13,12, 4, 4, 0, 0 }, /*  2ways I, 2ways D  */ \          { "BCM4712",    0x000290,   0x07,       0,      EXC32, MMU32,  32,      32, 2,13,4,1,12,4,1, 0, 0, 0 }, /*  2ways I, 2ways D  */ \
107          { "AU1000",     0x000301,   0x00,       0,      EXC32, MMU32,  32,      32, 2, 0, 0, 0, 0, 0, 0 }, /*  TODO: this is just bogus  */ \          { "AU1000",     0x000301,   0x00,       0,      EXC32, MMU32,  32,      32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /*  TODO: this is just bogus  */ \
108          { "AU1500",     0x010301,   0x00,       0,      EXC32, MMU32,  32,      32, 2, 0, 0, 0, 0, 0, 0 }, /*  TODO: this is just bogus  */ \          { "AU1500",     0x010301,   0x00,       0,      EXC32, MMU32,  32,      32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /*  TODO: this is just bogus  */ \
109          { "AU1100",     0x020301,   0x00,       0,      EXC32, MMU32,  32,      32, 2, 0, 0, 0, 0, 0, 0 }, /*  TODO: this is just bogus  */ \          { "AU1100",     0x020301,   0x00,       0,      EXC32, MMU32,  32,      32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /*  TODO: this is just bogus  */ \
110          { "SB1",        0x000401,   0x00,       0,      EXC64, MMU64,  64,      32, 2, 0, 0, 0, 0, 0, 0 }, /*  TODO: this is just bogus  */ \          { "SB1",        0x000401,   0x00,       0,      EXC64, MMU64,  64,      32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /*  TODO: this is just bogus  */ \
111          { "SR7100",     0x000504,   0x00,       0,      EXC64, MMU64,  64,      32, 2, 0, 0, 0, 0, 0, 0 }, /*  TODO: this is just bogus  */ \          { "SR7100",     0x000504,   0x00,       0,      EXC64, MMU64,  64,      32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /*  TODO: this is just bogus  */ \
112          { "Allegrex",   0x000000,   0x00,       0,      EXC3K, MMU32,   2,       4, 1,14,14, 6, 6, 0, 0 }, \          { "Allegrex",   0x000000,   0x00,       0,      EXC32, MMU32,   2,       4, 1,14,6,2,14,6,2, 0, 0, 0 }, \
113          { NULL,         0,          0,          0,      0,     0,       0,       0, 0, 0, 0, 0, 0, 0, 0 } }          { NULL,         0,          0,          0,      0,     0,       0,       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
114    
115  #endif  /*  CPU_TYPES_H  */  #endif  /*  CPU_TYPES_H  */

Legend:
Removed from v.11  
changed lines
  Added in v.12

  ViewVC Help
Powered by ViewVC 1.1.26