|  | /* Memory sub-system initialization code */ | 
|  |  | 
|  | #include <config.h> | 
|  | #include <asm/regdef.h> | 
|  | #include <asm/mipsregs.h> | 
|  |  | 
|  | .text | 
|  | .set noreorder | 
|  | .set mips32 | 
|  |  | 
|  | .globl	lowlevel_init | 
|  | lowlevel_init: | 
|  |  | 
|  | /* | 
|  | * Step 2) Establish Status Register | 
|  | * (set BEV, clear ERL, clear EXL, clear IE) | 
|  | */ | 
|  | li	t1, 0x00400000 | 
|  | mtc0	t1, CP0_STATUS | 
|  |  | 
|  | /* | 
|  | * Step 3) Establish CP0 Config0 | 
|  | * (set K0=3) | 
|  | */ | 
|  | li	t1, 0x00000003 | 
|  | mtc0	t1, CP0_CONFIG | 
|  |  | 
|  | /* | 
|  | * Step 7) Establish Cause | 
|  | * (set IV bit) | 
|  | */ | 
|  | li	t1, 0x00800000 | 
|  | mtc0	t1, CP0_CAUSE | 
|  |  | 
|  | /* Establish Wired (and Random) */ | 
|  | mtc0	zero, CP0_WIRED | 
|  | nop | 
|  |  | 
|  | jr	ra | 
|  | nop |