|
|
1.1 root 1:
2: # privileged registers constants (addresses) */
3:
4:
5:
6: .set SBR,0 /*system base register */
7: .set SLR,1 /*system length reg */
8: .set P0BR,2 /*p0 base reg */
9: .set P0LR,3 /*p0 length reg */
10: .set P1BR,4 /*p1 base reg */
11: .set P1LR,5 /*p1 length reg */
12: .set P2BR,6 /*p2 base reg */
13: .set P2LR,7 /*p2 length reg */
14: .set IPL,8 /*int priority level reg */
15: .set MME,9 /*memory mgmt enable reg */
16: .set TBIA,10 /*trans buf invalidate all */
17: /*entries */
18: .set TBIS,11 /*trans buf invalidate single */
19: /*entry */
20: .set DCK,12 /*data cache key */
21: .set CCK,13 /*code cache key */
22: .set PCBB,14 /*process control block base */
23: .set ISP,15 /*interrupt stack pointer */
24: .set SIRR,16 /*software int request reg */
25: .set SISR,17 /*software int summary reg */
26: .set SCBB,18 /*system control block base reg */
27: .set KSP,19 /*kernel stack pointer reg */
28: .set USP,20 /*user stack pointer */
29: .set DCB,21 /*CPU2 DCB */
30: .set PACC,23 /*purge (invalidate) all pages */
31: /*of process in code cache */
32: .set P1DC,24 /*purge one page of data cache */
33: .set PADC,25 /*purge all the pages of */
34: /*process in data cache */
35: .set HISR,26 /* Hardware interrupt summary reg */
36: .set DCR,27 /* Diagnostic control register */
37: .set PDCS,28 /* Purge 1 data cache slot */
38:
39: #
40: #TAHOE program status longword
41: #
42:
43: .set PSL_C,0x00000001 /* carry bit */
44: .set PSL_V,0x00000002 /* overflow bit */
45: .set PSL_Z,0x00000004 /* zero bit */
46: .set Z,0x00000004
47: .set PSL_N,0x00000008 /* negative bit */
48: .set PSL_T,0x00000010 /* trace enable bit */
49: .set PSL_I,0x00000020 /* integer overflow enable bit */
50: .set PSL_IPL,0x001f0000 /* interrupt priority level */
51: .set PSL_MOD,0x01000000 /* mode = 1 means user*/
52: .set PSL_IS,0x04000000 /* interrupt stack */
53: .set PSL_TP,0x40000000 /* trace pending */
54:
55: #
56: # TAHOE page table entry
57: #/
58: .set PG_V,0x80000000
59: .set PG_PROT,0x78000000
60: .set PG_M,0x04000000
61: .set PG_USED,0x02000000
62: .set PG_NC,0x01000000
63: .set PG_PFNUM,0x003fffff
64:
65: .set PG_NOACC,0
66: .set PG_KR,0x40000000
67: .set PG_KW,0x60000000
68: .set PG_URKR,0x50000000
69: .set PG_URKW,0x70000000
70: .set PG_UW,0x78000000
71:
72: #* PCB offsets & diagnostic extension to pcb */
73: #* PCB is at pcb0 */
74:
75:
76: .set PCB_SIZE, 26
77: .set PCB_KSP, 0
78: .set PCB_USP, 4
79: .set PCB_R0, 8
80: .set PCB_R1, 12
81: .set PCB_R2, 16
82: .set PCB_R3, 20
83: .set PCB_R4, 24
84: .set PCB_R5, 28
85: .set PCB_R6, 32
86: .set PCB_R7, 36
87: .set PCB_R8, 40
88: .set PCB_R9, 44
89: .set PCB_R10, 48
90: .set PCB_R11, 52
91: .set PCB_R12, 56
92: .set PCB_R13, 60
93: .set PCB_PC, 64
94: .set PCB_PSL, 68
95: .set PCB_P0BR, 72
96: .set PCB_P0LR, 76
97: .set PCB_P1BR, 80
98: .set PCB_P1LR, 84
99: .set PCB_P2BR, 88
100: .set PCB_P2LR, 92
101: .set PCB_ACCM, 96
102: .set PCB_ACCL, 100
103: #*
104: # Diagnostic pcb extension
105: #/
106: .set PCB_STAT, 104 /*process status,statistics,id,etc*/
107:
108:
109:
110: #* fundamental constants */
111:
112: #*
113: # fundamental constants of the implementation--
114: # cannot be changed easily.
115: #/
116:
117: .set NBPG,1024
118: .set PGOFSET,(NBPG-1) /* byte offset into page */
119: .set PGSHIFT,10 /* LOG2(NBPG) */
120: .set HIGH,0x1f
121:
122:
123: #* SCB offsets */
124: #* SCB is at scb */
125:
126: .set PFVEC,1*4 /*power fail */
127: .set PRVEC,2*4 /*power restore */
128: .set CLOCKVEC,7*4 /*hard clock vector */
129: .set CRVEC,0xa*4 /*console receive */
130: .set CXVEC,44 /*console transmit */
131: .set SIVEC1,0x1e*4 /*software int vec #1 */
132: /*for 2,3,..15, sub 4,8,.. 56 */
133: /*from SIVEC1 */
134: .set BEVEC,0x20*4 /*bus error */
135: .set SYSVEC,0x2b*4 /*system call (kcall) */
136: .set PINSTVEC,0x2c*4 /*privileged instruction fault */
137: .set ROVEC,0x2d*4 /*reserved operand fault */
138: .set RAVEC,0x2e*4 /*reserved addressing fault */
139: .set PROTVEC,0x2f*4 /*access control violation */
140: .set TRANS,0x30 /*translation fault vector */
141: .set TRANSVEC,0x30*4 /*translation fault vector */
142: .set KSPVEC,0x31*4 /*kernel stack not valid vector */
143: .set TRACEVEC,0x32*4 /*trace vector */
144: .set BPTVEC,0x33*4 /*break point fault */
145: .set ARITHVEC,0x34*4 /*arithmetic trap */
146: .set ALIGNVEC,0x35*4 /*alignment vector */
147: .set IO14VEC,256 /*io vector, ipl #14 */
148: .set IO15VEC,320 /*io vector, ipl #15 */
149: .set IO16VEC,384 /*io vector, ipl #16 */
150: .set IO17VEC,448 /*io vector, ipl #17 */
151:
152: #* SPT (system page table) offsets */
153: #* SPT is at Sysmap */
154:
155: .set SCBPTE,8 /*system control block pte offset*/
156: .set BUFPTE,12 /*buffer pte offset */
157: .set ISPTE,16 /*interrupt stack page 0 */
158: .set IS1PTE,20 /*interrupt stack page 1 */
159: .set SPTPTE,20 /*system page table page 1 */
160: .set SPT1PTE,20 /*system page table page 2 */
161: .set IOMAPPTE,24 /*io map */
162: .set PCBPTE,28 /*process control blocks pte */
163: .set U0P0PTE,32 /*U0 p0pt pte */
164: .set U0P1PTE,36 /*U0 p1pt pte */
165: .set U0P2PTE,40 /*U0 p2pt pte */
166: .set U1P0PTE,44
167: .set U1P1PTE,48
168: .set U1P2PTE,52
169: .set U2P0PTE,56
170: .set U2P1PTE,60
171: .set U2P2PTE,64
172: .set U3P0PTE,68
173: .set U3P1PTE,72
174: .set U3P2PTE,76
175: .set U4P0PTE,80
176: .set U4P1PTE,84
177: .set U4P2PTE,88
178: .set U5P0PTE,92
179: .set U5P1PTE,96
180: .set U5P2PTE,100
181: .set U6P0PTE,104
182: .set U6P1PTE,108
183: .set U6P2PTE,112
184: .set U7P0PTE,116 /*U7 p0pt pte */
185: .set U7P1PTE,120 /*U7 p1pt pte */
186: .set U7P2PTE,124 /*U7 p2pt pte */
187: .set IOB0PTE,128 /*io buffer 0 pte */
188: .set IOB1PTE,132
189: .set IOB2PTE,136
190: .set IOB3PTE,140
191: .set IOB4PTE,144
192: .set IOB5PTE,148
193: .set IOB6PTE,152
194: .set IOB7PTE,156 /*io buffer 7 pte */
195:
196:
197: #* trap.h 4.6 81/03/03 */
198:
199: #*
200: #* Trap type values
201: #/
202:
203: .set RESADFLT,0 /* reserved addressing fault */
204: .set PRIVINFLT,1 /* privileged instruction fault */
205: .set RESOPFLT,2 /* reserved operand fault */
206: .set BPTFLT,3 /* bpt instruction fault */
207: .set ALIGNFLT,4 /* alignment fault */
208: .set SYSCALL,5 /* kcall instruction (syscall trap) */
209: .set ARITHTRAP,6 /* arithmetic trap */
210: .set PROTFLT,7 /* protection fault */
211: .set TRCTRAP,8 /* trace trap */
212: .set TRANSFLT,9 /* translation not valid fault */
213: .set DONE,255
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.