Revision fcb4a419 target-mips/translate_init.c

b/target-mips/translate_init.c
28 28
   (0x0 << CP0C0_AT) | (0x0 << CP0C0_AR) | (0x1 << CP0C0_MT) |    \
29 29
   (0x2 << CP0C0_K0))
30 30

  
31
/* Have config2, 16 TLB entries, 64 sets Icache, 16 bytes Icache line,
31
/* Have config2, 64 sets Icache, 16 bytes Icache line,
32 32
   2-way Icache, 64 sets Dcache, 16 bytes Dcache line, 2-way Dcache,
33 33
   no coprocessor2 attached, no MDMX support attached,
34 34
   no performance counters, watch registers present,
35 35
   no code compression, EJTAG present, no FPU */
36 36
#define MIPS_CONFIG1                                              \
37
((1 << CP0C1_M) | ((MIPS_TLB_NB - 1) << CP0C1_MMU) |              \
37
((1 << CP0C1_M) |                                                 \
38 38
 (0x0 << CP0C1_IS) | (0x3 << CP0C1_IL) | (0x1 << CP0C1_IA) |      \
39 39
 (0x0 << CP0C1_DS) | (0x3 << CP0C1_DL) | (0x1 << CP0C1_DA) |      \
40 40
 (0 << CP0C1_C2) | (0 << CP0C1_MD) | (0 << CP0C1_PC) |            \
......
81 81
        .name = "4Kc",
82 82
        .CP0_PRid = 0x00018000,
83 83
        .CP0_Config0 = MIPS_CONFIG0,
84
        .CP0_Config1 = MIPS_CONFIG1,
84
        .CP0_Config1 = MIPS_CONFIG1 | (15 << CP0C1_MMU),
85 85
        .CP0_Config2 = MIPS_CONFIG2,
86 86
        .CP0_Config3 = MIPS_CONFIG3,
87 87
        .SYNCI_Step = 32,
......
92 92
        .name = "4KEcR1",
93 93
        .CP0_PRid = 0x00018400,
94 94
        .CP0_Config0 = MIPS_CONFIG0,
95
        .CP0_Config1 = MIPS_CONFIG1,
95
        .CP0_Config1 = MIPS_CONFIG1 | (15 << CP0C1_MMU),
96 96
        .CP0_Config2 = MIPS_CONFIG2,
97 97
        .CP0_Config3 = MIPS_CONFIG3,
98 98
        .SYNCI_Step = 32,
......
103 103
        .name = "4KEc",
104 104
        .CP0_PRid = 0x00019000,
105 105
        .CP0_Config0 = MIPS_CONFIG0 | (0x1 << CP0C0_AR),
106
        .CP0_Config1 = MIPS_CONFIG1,
106
        .CP0_Config1 = MIPS_CONFIG1 | (15 << CP0C1_MMU),
107 107
        .CP0_Config2 = MIPS_CONFIG2,
108 108
        .CP0_Config3 = MIPS_CONFIG3,
109 109
        .SYNCI_Step = 32,
......
114 114
        .name = "24Kc",
115 115
        .CP0_PRid = 0x00019300,
116 116
        .CP0_Config0 = MIPS_CONFIG0 | (0x1 << CP0C0_AR),
117
        .CP0_Config1 = MIPS_CONFIG1,
117
        .CP0_Config1 = MIPS_CONFIG1 | (15 << CP0C1_MMU),
118 118
        .CP0_Config2 = MIPS_CONFIG2,
119 119
        .CP0_Config3 = MIPS_CONFIG3,
120 120
        .SYNCI_Step = 32,
......
125 125
        .name = "24Kf",
126 126
        .CP0_PRid = 0x00019300,
127 127
        .CP0_Config0 = MIPS_CONFIG0 | (0x1 << CP0C0_AR),
128
        .CP0_Config1 = MIPS_CONFIG1 | (1 << CP0C1_FP),
128
        .CP0_Config1 = MIPS_CONFIG1 | (1 << CP0C1_FP) | (15 << CP0C1_MMU),
129 129
        .CP0_Config2 = MIPS_CONFIG2,
130 130
        .CP0_Config3 = MIPS_CONFIG3,
131 131
        .SYNCI_Step = 32,
......
137 137
        .name = "R4000",
138 138
        .CP0_PRid = 0x00000400,
139 139
        .CP0_Config0 = MIPS_CONFIG0 | (0x2 << CP0C0_AT),
140
        .CP0_Config1 = MIPS_CONFIG1 | (1 << CP0C1_FP),
140
        .CP0_Config1 = MIPS_CONFIG1 | (1 << CP0C1_FP) | (47 << CP0C1_MMU),
141 141
        .CP0_Config2 = MIPS_CONFIG2,
142 142
        .CP0_Config3 = MIPS_CONFIG3,
143 143
        .SYNCI_Step = 16,
......
192 192
    env->SYNCI_Step = def->SYNCI_Step;
193 193
    env->CCRes = def->CCRes;
194 194
    env->fcr0 = def->CP1_fcr0;
195
#if defined (MIPS_USES_R4K_TLB)
196
    env->nb_tlb = 1 + ((def->CP0_Config1 >> CP0C1_MMU) & 63);
197
    env->CP0_Random = env->nb_tlb - 1;
198
    env->tlb_in_use = env->nb_tlb;
199
#endif
195 200
    return 0;
196 201
}

Also available in: Unified diff