Blame view

board/qemu-mips/lowlevel_init.S 594 Bytes
d41ce506b   Eric Lee   Initial Release, ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
  /* 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