1 |
1623 |
jcastillo |
#include
|
2 |
|
|
/* initial PRCB */
|
3 |
|
|
|
4 |
|
|
.globl _prcb
|
5 |
|
|
.align 4 /* or .align 2 */
|
6 |
|
|
|
7 |
|
|
_prcb:
|
8 |
|
|
.word boot_flt_table # 0 - Fault Table
|
9 |
|
|
.word _boot_control_table # 4 - Control Table
|
10 |
|
|
.word 0x00001000 # 8 - AC reg mask overflow fault
|
11 |
|
|
.word 0x40000001 # 12 - Flt CFG- Allow Unaligned
|
12 |
|
|
.word boot_intr_table # 16 - Interrupt Table
|
13 |
|
|
.word sys_proc_table # 20 - System Procedure Table
|
14 |
|
|
.word 0 # 24 - Reserved
|
15 |
|
|
.word _intr_stack # 28 - Interrupt Stack Pointer
|
16 |
|
|
.word 0x00000000 # 32 - Inst. Cache - enable cache
|
17 |
|
|
.word 0x5 # 36 - Register Cache Config.- 5 sets cached
|
18 |
|
|
|
19 |
|
|
/* ROM system procedure table */
|
20 |
|
|
|
21 |
|
|
.equ supervisor_proc, 2
|
22 |
|
|
.text
|
23 |
|
|
.align 6 /* or .align 2 or .align 4 */
|
24 |
|
|
|
25 |
|
|
sys_proc_table:
|
26 |
|
|
.space 12 # Reserved
|
27 |
|
|
.word _supervisor_stack # Supervisor stack pointer
|
28 |
|
|
.space 32 # Preserved
|
29 |
|
|
.word SYMBOL_NAME(system_call) # sysproc 0
|
30 |
|
|
.space 258*4 # sysproc 1-258
|
31 |
|
|
|
32 |
|
|
/* Fault Table */
|
33 |
|
|
|
34 |
|
|
.equ syscall, 2
|
35 |
|
|
.equ fault_proc, 7
|
36 |
|
|
.text
|
37 |
|
|
.align 4
|
38 |
|
|
|
39 |
|
|
boot_flt_table:
|
40 |
|
|
|
41 |
|
|
.word (fault_proc<<2) + syscall # 0-Parallel Fault
|
42 |
|
|
.word 0x27f
|
43 |
|
|
.word (fault_proc<<2) + syscall # 1-Trace Fault
|
44 |
|
|
.word 0x27f
|
45 |
|
|
.word (fault_proc<<2) + syscall # 2-Operation Fault
|
46 |
|
|
.word 0x27f
|
47 |
|
|
.word (fault_proc<<2) + syscall # 3-Arithmetic Fault
|
48 |
|
|
.word 0x27f
|
49 |
|
|
.word (fault_proc<<2) + syscall # 4-Reserved
|
50 |
|
|
.word 0x27f
|
51 |
|
|
.word (fault_proc<<2) + syscall # 5-Constraint Fault
|
52 |
|
|
.word 0x27f
|
53 |
|
|
.word (fault_proc<<2) + syscall # 6-Reserved
|
54 |
|
|
.word 0x27f
|
55 |
|
|
.word (fault_proc<<2) + syscall # 7-Protection Fault
|
56 |
|
|
.word 0x27f
|
57 |
|
|
.word (fault_proc<<2) + syscall # 8-Reserved
|
58 |
|
|
.word 0x27f
|
59 |
|
|
.word (fault_proc<<2) + syscall # 9-Reserved
|
60 |
|
|
.word 0x27f
|
61 |
|
|
.word (fault_proc<<2) + syscall # 0xa-Type Fault
|
62 |
|
|
.word 0x27f
|
63 |
|
|
.space 21*8 # reserved
|
64 |
|
|
|
65 |
|
|
/* Boot Interrupt Table */
|
66 |
|
|
|
67 |
|
|
.text
|
68 |
|
|
|
69 |
|
|
boot_intr_table:
|
70 |
|
|
|
71 |
|
|
.word 0
|
72 |
|
|
.word 0, 0, 0, 0, 0, 0, 0, 0
|
73 |
|
|
.word _intr, _intr, _intr, _intr, _intr, _intr, _intr, _intr
|
74 |
|
|
.word _intr, _intr, _intr, _intr, _intr, _intr, _intr, _intr
|
75 |
|
|
.word _intr, _intr, _intr, _intr, _intr, _intr, _intr, _intr
|
76 |
|
|
.word _intr, _intr, _intr, _intr, _intr, _intr, _intr, _intr
|
77 |
|
|
.word _intr, _intr, _intr, _intr, _intr, _intr, _intr, _intr
|
78 |
|
|
.word _intr, _intr, _intr, _intr, _intr, _intr, _intr, _intr
|
79 |
|
|
.word _intr, _intr, _intr, _intr, _intr, _intr, _intr, _intr
|
80 |
|
|
.word _intr, _intr, _intr, _intr, _intr, _intr, _intr, _intr
|
81 |
|
|
.word _intr, _intr, _intr, _intr, _intr, _intr, _intr, _intr
|
82 |
|
|
.word _intr, _intr, _intr, _intr, _intr, _intr, _intr, _intr
|
83 |
|
|
.word _intr, _intr, _intr, _intr, _intr, _intr, _intr, _intr
|
84 |
|
|
.word _intr, _intr, _intr, _intr, _intr, _intr, _intr, _intr
|
85 |
|
|
.word _intr, _intr, _intr, _intr, _intr, _intr, _intr, _intr
|
86 |
|
|
.word _intr, _intr, _intr, _intr, _intr, _intr, _intr, _intr
|
87 |
|
|
.word _intr, _intr, _intr, _intr, _intr, _intr, _intr, _intr
|
88 |
|
|
.word _intr, _intr, _intr, _intr, _intr, _intr, _intr, _intr
|
89 |
|
|
.word _intr, _intr, _intr, _intr, _intr, _intr, _intr, _intr
|
90 |
|
|
.word _intr, _intr, _intr, _intr, _intr, _intr, _intr, _intr
|
91 |
|
|
.word _intr, _intr, _intr, _intr, _intr, _intr, _intr, _intr
|
92 |
|
|
.word _intr, _intr, _intr, _intr, _intr, _intr, _intr, _intr
|
93 |
|
|
.word _intr, _intr, _intr, _intr, _intr, _intr, _intr, _intr
|
94 |
|
|
.word _intr, _intr, _intr, _intr, _intr, _intr, _intr, _intr
|
95 |
|
|
.word _intr, _intr, _intr, _intr, _intr, _intr, _intr, _intr
|
96 |
|
|
.word _intr, _intr, _intr, _intr, _intr, _intr, _intr, _intr
|
97 |
|
|
.word _intr, _intr, _intr, _intr, _intr, _intr, _intr, _intr
|
98 |
|
|
.word _intr, _intr, _intr, _intr, _intr, _intr, _intr, _intr
|
99 |
|
|
.word _intr, _intr, _intr, _intr, _intr, _intr, _intr, _intr
|
100 |
|
|
.word _intr, _intr, _intr, _intr, _intr, _intr, _intr, _intr
|
101 |
|
|
.word _intr, _intr, _intr, _intr, _intr, _intr, _intr, _intr
|
102 |
|
|
.word _intr, _intr, _intr, _intr, _intr, _intr, _intr, _intr
|
103 |
|
|
.word _intr, _intr, _intr, _intr, _intr, _intr, _intr, _intr
|