This source file includes following definitions.
- pica_set_led
- r4030_delay
- r4030_read_reg16
- r4030_read_reg32
- r4030_write_reg16
- r4030_write_reg32
1
2
3
4
5
6
7
8 #ifndef __ASM_JAZZ_H
9 #define __ASM_JAZZ_H
10
11
12
13
14
15
16
17
18
19 #define JAZZ_LOCAL_IO_SPACE 0xe0000000
20
21
22
23
24
25
26
27
28 #define PICA_ASIC_REVISION 0xe0000008
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 #define PICA_LED 0xe000f000
46
47
48
49
50
51
52
53
54 #define LED_DOT 0x01
55 #define LED_SPACE 0x00
56 #define LED_0 0xfc
57 #define LED_1 0x60
58 #define LED_2 0xda
59 #define LED_3 0xf2
60 #define LED_4 0x66
61 #define LED_5 0xb6
62 #define LED_6 0xbe
63 #define LED_7 0xe0
64 #define LED_8 0xfe
65 #define LED_9 0xf6
66 #define LED_A 0xee
67 #define LED_b 0x3e
68 #define LED_C 0x9c
69 #define LED_d 0x7a
70 #define LED_E 0x9e
71 #define LED_F 0x8e
72
73 #ifndef __ASSEMBLY__
74
75 static __inline__ void pica_set_led(unsigned int bits)
76 {
77 volatile unsigned int *led_register = (unsigned int *) PICA_LED;
78
79 *led_register = bits;
80 }
81
82 #endif
83
84
85
86
87 #define JAZZ_ETHERNET_BASE 0xe0001000
88
89
90
91
92 #define JAZZ_SCSI_BASE 0xe0002000
93
94
95
96
97
98
99 #define JAZZ_KEYBOARD_ADDRESS 0xe0005000
100 #define JAZZ_KEYBOARD_DATA 0xe0005000
101 #define JAZZ_KEYBOARD_COMMAND 0xe0005001
102
103 #ifndef __ASSEMBLY__
104
105 typedef struct {
106 unsigned char data;
107 unsigned char command;
108 } jazz_keyboard_hardware;
109
110 #define jazz_kh ((keyboard_hardware *) JAZZ_KEYBOARD_ADDRESS)
111
112 typedef struct {
113 unsigned char pad0[3];
114 unsigned char data;
115 unsigned char pad1[3];
116 unsigned char command;
117 } mips_keyboard_hardware;
118
119
120
121
122 #define keyboard_hardware jazz_keyboard_hardware
123
124 #endif
125
126
127
128
129 #define MIPS_KEYBOARD_ADDRESS 0xb9005000
130 #define MIPS_KEYBOARD_DATA 0xb9005003
131 #define MIPS_KEYBOARD_COMMAND 0xb9005007
132
133
134
135
136 #define JAZZ_SERIAL1_BASE (unsigned int)0xe0006000
137 #define JAZZ_SERIAL2_BASE (unsigned int)0xe0007000
138 #define JAZZ_PARALLEL_BASE (unsigned int)0xe0008000
139
140
141
142
143 #define JAZZ_DUMMY_DEVICE 0xe000d000
144
145
146
147
148
149
150
151 #define JAZZ_TIMER_INTERVAL 0xe0000228
152 #define JAZZ_TIMER_REGISTER 0xe0000230
153
154
155
156
157 #ifndef __ASSEMBLY__
158 #ifdef __MIPSEL__
159 typedef struct {
160 unsigned int bank2 : 3;
161 unsigned int bank1 : 3;
162 unsigned int mem_bus_width : 1;
163 unsigned int reserved2 : 1;
164 unsigned int page_mode : 1;
165 unsigned int reserved1 : 23;
166 } dram_configuration;
167 #else
168 typedef struct {
169 unsigned int reserved1 : 23;
170 unsigned int page_mode : 1;
171 unsigned int reserved2 : 1;
172 unsigned int mem_bus_width : 1;
173 unsigned int bank1 : 3;
174 unsigned int bank2 : 3;
175 } dram_configuration;
176 #endif
177 #endif
178
179 #define PICA_DRAM_CONFIG 0xe00fffe0
180
181
182
183
184 #define JAZZ_IO_IRQ_SOURCE 0xe0010000
185 #define JAZZ_IO_IRQ_ENABLE 0xe0010002
186
187
188
189
190
191
192
193 #define JAZZ_IRQ_START 24
194 #define JAZZ_IRQ_END (24 + 9)
195 #define JAZZ_PARALLEL_IRQ (JAZZ_IRQ_START + 0)
196 #define JAZZ_FLOPPY_IRQ (JAZZ_IRQ_START + 1)
197 #define JAZZ_SOUND_IRQ (JAZZ_IRQ_START + 2)
198 #define JAZZ_VIDEO_IRQ (JAZZ_IRQ_START + 3)
199 #define JAZZ_ETHERNET_IRQ (JAZZ_IRQ_START + 4)
200 #define JAZZ_SCSI_IRQ (JAZZ_IRQ_START + 5)
201 #define JAZZ_KEYBOARD_IRQ (JAZZ_IRQ_START + 6)
202 #define JAZZ_MOUSE_IRQ (JAZZ_IRQ_START + 7)
203 #define JAZZ_SERIAL1_IRQ (JAZZ_IRQ_START + 8)
204 #define JAZZ_SERIAL2_IRQ (JAZZ_IRQ_START + 9)
205
206 #define JAZZ_TIMER_IRQ (MIPS_CPU_IRQ_BASE+6)
207
208
209
210
211
212
213
214 #define JAZZ_SCSI_DMA 0
215 #define JAZZ_FLOPPY_DMA 1
216 #define JAZZ_AUDIOL_DMA 2
217 #define JAZZ_AUDIOR_DMA 3
218
219
220
221
222
223 #define JAZZ_R4030_CONFIG 0xE0000000
224 #define JAZZ_R4030_REVISION 0xE0000008
225 #define JAZZ_R4030_INV_ADDR 0xE0000010
226
227 #define JAZZ_R4030_TRSTBL_BASE 0xE0000018
228 #define JAZZ_R4030_TRSTBL_LIM 0xE0000020
229 #define JAZZ_R4030_TRSTBL_INV 0xE0000028
230
231 #define JAZZ_R4030_CACHE_MTNC 0xE0000030
232 #define JAZZ_R4030_R_FAIL_ADDR 0xE0000038
233 #define JAZZ_R4030_M_FAIL_ADDR 0xE0000040
234
235 #define JAZZ_R4030_CACHE_PTAG 0xE0000048
236 #define JAZZ_R4030_CACHE_LTAG 0xE0000050
237 #define JAZZ_R4030_CACHE_BMASK 0xE0000058
238 #define JAZZ_R4030_CACHE_BWIN 0xE0000060
239
240
241
242
243
244
245
246
247
248 #define JAZZ_R4030_REM_SPEED 0xE0000070
249
250 #define JAZZ_R4030_IRQ_ENABLE 0xE00000E8
251 #define JAZZ_R4030_INVAL_ADDR 0xE0000010
252 #define JAZZ_R4030_IRQ_SOURCE 0xE0000200
253 #define JAZZ_R4030_I386_ERROR 0xE0000208
254
255
256
257
258 #define JAZZ_EISA_IRQ_ACK 0xE0000238
259
260
261
262
263 #ifndef __ASSEMBLY__
264
265 static inline void r4030_delay(void)
266 {
267 __asm__ __volatile__(
268 ".set\tnoreorder\n\t"
269 "nop\n\t"
270 "nop\n\t"
271 "nop\n\t"
272 "nop\n\t"
273 ".set\treorder");
274 }
275
276 static inline unsigned short r4030_read_reg16(unsigned long addr)
277 {
278 unsigned short ret = *((volatile unsigned short *)addr);
279 r4030_delay();
280 return ret;
281 }
282
283 static inline unsigned int r4030_read_reg32(unsigned long addr)
284 {
285 unsigned int ret = *((volatile unsigned int *)addr);
286 r4030_delay();
287 return ret;
288 }
289
290 static inline void r4030_write_reg16(unsigned long addr, unsigned val)
291 {
292 *((volatile unsigned short *)addr) = val;
293 r4030_delay();
294 }
295
296 static inline void r4030_write_reg32(unsigned long addr, unsigned val)
297 {
298 *((volatile unsigned int *)addr) = val;
299 r4030_delay();
300 }
301
302 #endif
303
304 #define JAZZ_FDC_BASE 0xe0003000
305 #define JAZZ_RTC_BASE 0xe0004000
306 #define JAZZ_PORT_BASE 0xe2000000
307
308 #define JAZZ_EISA_BASE 0xe3000000
309
310 #endif