MCPcopy Create free account
hub / github.com/F-Stack/f-stack / init_5x86

Function init_5x86

freebsd/i386/i386/initcpu.c:186–279  ·  view source on GitHub ↗

* Cyrix 5x86 */

Source from the content-addressed store, hash-verified

184 * Cyrix 5x86
185 */
186static void
187init_5x86(void)
188{
189 register_t saveintr;
190 u_char ccr2, ccr3, ccr4, pcr0;
191
192 saveintr = intr_disable();
193
194 load_cr0(rcr0() | CR0_CD | CR0_NW);
195 wbinvd();
196
197 (void)read_cyrix_reg(CCR3); /* dummy */
198
199 /* Initialize CCR2. */
200 ccr2 = read_cyrix_reg(CCR2);
201 ccr2 |= CCR2_WB;
202#ifdef CPU_SUSP_HLT
203 ccr2 |= CCR2_SUSP_HLT;
204#else
205 ccr2 &= ~CCR2_SUSP_HLT;
206#endif
207 ccr2 |= CCR2_WT1;
208 write_cyrix_reg(CCR2, ccr2);
209
210 /* Initialize CCR4. */
211 ccr3 = read_cyrix_reg(CCR3);
212 write_cyrix_reg(CCR3, CCR3_MAPEN0);
213
214 ccr4 = read_cyrix_reg(CCR4);
215 ccr4 |= CCR4_DTE;
216 ccr4 |= CCR4_MEM;
217#ifdef CPU_FASTER_5X86_FPU
218 ccr4 |= CCR4_FASTFPE;
219#else
220 ccr4 &= ~CCR4_FASTFPE;
221#endif
222 ccr4 &= ~CCR4_IOMASK;
223 /********************************************************************
224 * WARNING: The "BIOS Writers Guide" mentions that I/O recovery time
225 * should be 0 for errata fix.
226 ********************************************************************/
227#ifdef CPU_IORT
228 ccr4 |= CPU_IORT & CCR4_IOMASK;
229#endif
230 write_cyrix_reg(CCR4, ccr4);
231
232 /* Initialize PCR0. */
233 /****************************************************************
234 * WARNING: RSTK_EN and LOOP_EN could make your system unstable.
235 * BTB_EN might make your system unstable.
236 ****************************************************************/
237 pcr0 = read_cyrix_reg(PCR0);
238#ifdef CPU_RSTK_EN
239 pcr0 |= PCR0_RSTK;
240#else
241 pcr0 &= ~PCR0_RSTK;
242#endif
243#ifdef CPU_BTB_EN

Callers 1

initializecpuFunction · 0.85

Calls 7

read_cyrix_regFunction · 0.85
write_cyrix_regFunction · 0.85
intr_disableFunction · 0.50
load_cr0Function · 0.50
rcr0Function · 0.50
wbinvdFunction · 0.50
intr_restoreFunction · 0.50

Tested by

no test coverage detected