This source file includes following definitions.
- nile4_sync
- nile4_out32
- nile4_in32
- nile4_out16
- nile4_in16
- nile4_out8
- nile4_in8
1
2
3
4
5
6
7
8
9
10
11
12
13 #ifndef _ASM_NILE4_H
14 #define _ASM_NILE4_H
15
16 #define NILE4_BASE 0xbfa00000
17 #define NILE4_SIZE 0x00200000
18
19
20
21
22
23
24 #define NILE4_SDRAM0 0x0000
25 #define NILE4_SDRAM1 0x0008
26 #define NILE4_DCS2 0x0010
27 #define NILE4_DCS3 0x0018
28 #define NILE4_DCS4 0x0020
29 #define NILE4_DCS5 0x0028
30 #define NILE4_DCS6 0x0030
31 #define NILE4_DCS7 0x0038
32 #define NILE4_DCS8 0x0040
33 #define NILE4_PCIW0 0x0060
34 #define NILE4_PCIW1 0x0068
35 #define NILE4_INTCS 0x0070
36
37 #define NILE4_BOOTCS 0x0078
38
39
40
41
42
43
44 #define NILE4_CPUSTAT 0x0080
45 #define NILE4_INTCTRL 0x0088
46 #define NILE4_INTSTAT0 0x0090
47 #define NILE4_INTSTAT1 0x0098
48
49 #define NILE4_INTCLR 0x00A0
50 #define NILE4_INTPPES 0x00A8
51
52
53
54
55
56
57 #define NILE4_MEMCTRL 0x00C0
58 #define NILE4_ACSTIME 0x00C8
59 #define NILE4_CHKERR 0x00D0
60
61
62
63
64
65
66 #define NILE4_PCICTRL 0x00E0
67 #define NILE4_PCIARB 0x00E8
68 #define NILE4_PCIINIT0 0x00F0
69 #define NILE4_PCIINIT1 0x00F8
70 #define NILE4_PCIERR 0x00B8
71
72
73
74
75
76
77 #define NILE4_LCNFG 0x0100
78 #define NILE4_LCST2 0x0110
79 #define NILE4_LCST3 0x0118
80 #define NILE4_LCST4 0x0120
81 #define NILE4_LCST5 0x0128
82 #define NILE4_LCST6 0x0130
83 #define NILE4_LCST7 0x0138
84 #define NILE4_LCST8 0x0140
85 #define NILE4_DCSFN 0x0150
86
87 #define NILE4_DCSIO 0x0158
88 #define NILE4_BCST 0x0178
89
90
91
92
93
94
95 #define NILE4_DMACTRL0 0x0180
96 #define NILE4_DMASRCA0 0x0188
97 #define NILE4_DMADESA0 0x0190
98 #define NILE4_DMACTRL1 0x0198
99 #define NILE4_DMASRCA1 0x01A0
100 #define NILE4_DMADESA1 0x01A8
101
102
103
104
105
106
107 #define NILE4_T0CTRL 0x01C0
108 #define NILE4_T0CNTR 0x01C8
109 #define NILE4_T1CTRL 0x01D0
110 #define NILE4_T1CNTR 0x01D8
111 #define NILE4_T2CTRL 0x01E0
112 #define NILE4_T2CNTR 0x01E8
113 #define NILE4_T3CTRL 0x01F0
114 #define NILE4_T3CNTR 0x01F8
115
116
117
118
119
120
121 #define NILE4_PCI_BASE 0x0200
122
123 #define NILE4_VID 0x0200
124 #define NILE4_DID 0x0202
125 #define NILE4_PCICMD 0x0204
126 #define NILE4_PCISTS 0x0206
127 #define NILE4_REVID 0x0208
128 #define NILE4_CLASS 0x0209
129 #define NILE4_CLSIZ 0x020C
130 #define NILE4_MLTIM 0x020D
131 #define NILE4_HTYPE 0x020E
132 #define NILE4_BIST 0x020F
133 #define NILE4_BARC 0x0210
134 #define NILE4_BAR0 0x0218
135 #define NILE4_BAR1 0x0220
136 #define NILE4_CIS 0x0228
137
138 #define NILE4_SSVID 0x022C
139 #define NILE4_SSID 0x022E
140 #define NILE4_ROM 0x0230
141
142 #define NILE4_INTLIN 0x023C
143 #define NILE4_INTPIN 0x023D
144 #define NILE4_MINGNT 0x023E
145 #define NILE4_MAXLAT 0x023F
146 #define NILE4_BAR2 0x0240
147 #define NILE4_BAR3 0x0248
148 #define NILE4_BAR4 0x0250
149 #define NILE4_BAR5 0x0258
150 #define NILE4_BAR6 0x0260
151 #define NILE4_BAR7 0x0268
152 #define NILE4_BAR8 0x0270
153 #define NILE4_BARB 0x0278
154
155
156
157
158
159
160 #define NILE4_UART_BASE 0x0300
161
162 #define NILE4_UARTRBR 0x0300
163 #define NILE4_UARTTHR 0x0300
164 #define NILE4_UARTIER 0x0308
165 #define NILE4_UARTDLL 0x0300
166 #define NILE4_UARTDLM 0x0308
167 #define NILE4_UARTIIR 0x0310
168 #define NILE4_UARTFCR 0x0310
169 #define NILE4_UARTLCR 0x0318
170 #define NILE4_UARTMCR 0x0320
171 #define NILE4_UARTLSR 0x0328
172 #define NILE4_UARTMSR 0x0330
173 #define NILE4_UARTSCR 0x0338
174
175 #define NILE4_UART_BASE_BAUD 520833
176
177
178
179
180
181
182 #define NILE4_INT_CPCE 0
183 #define NILE4_INT_CNTD 1
184 #define NILE4_INT_MCE 2
185 #define NILE4_INT_DMA 3
186 #define NILE4_INT_UART 4
187 #define NILE4_INT_WDOG 5
188 #define NILE4_INT_GPT 6
189 #define NILE4_INT_LBRTD 7
190 #define NILE4_INT_INTA 8
191 #define NILE4_INT_INTB 9
192 #define NILE4_INT_INTC 10
193 #define NILE4_INT_INTD 11
194 #define NILE4_INT_INTE 12
195 #define NILE4_INT_RESV 13
196 #define NILE4_INT_PCIS 14
197 #define NILE4_INT_PCIE 15
198
199
200
201
202
203
204 static inline void nile4_sync(void)
205 {
206 volatile u32 *p = (volatile u32 *)0xbfc00000;
207 (void)(*p);
208 }
209
210 static inline void nile4_out32(u32 offset, u32 val)
211 {
212 *(volatile u32 *)(NILE4_BASE+offset) = val;
213 nile4_sync();
214 }
215
216 static inline u32 nile4_in32(u32 offset)
217 {
218 u32 val = *(volatile u32 *)(NILE4_BASE+offset);
219 nile4_sync();
220 return val;
221 }
222
223 static inline void nile4_out16(u32 offset, u16 val)
224 {
225 *(volatile u16 *)(NILE4_BASE+offset) = val;
226 nile4_sync();
227 }
228
229 static inline u16 nile4_in16(u32 offset)
230 {
231 u16 val = *(volatile u16 *)(NILE4_BASE+offset);
232 nile4_sync();
233 return val;
234 }
235
236 static inline void nile4_out8(u32 offset, u8 val)
237 {
238 *(volatile u8 *)(NILE4_BASE+offset) = val;
239 nile4_sync();
240 }
241
242 static inline u8 nile4_in8(u32 offset)
243 {
244 u8 val = *(volatile u8 *)(NILE4_BASE+offset);
245 nile4_sync();
246 return val;
247 }
248
249
250
251
252
253
254 extern void nile4_set_pdar(u32 pdar, u32 phys, u32 size, int width,
255 int on_memory_bus, int visible);
256
257
258
259
260
261
262 #define NILE4_PCICMD_IACK 0
263 #define NILE4_PCICMD_IO 1
264 #define NILE4_PCICMD_MEM 3
265 #define NILE4_PCICMD_CFG 5
266
267
268
269
270
271
272
273
274 #define NILE4_PCI_IO_BASE 0xa6000000
275 #define NILE4_PCI_MEM_BASE 0xa8000000
276 #define NILE4_PCI_CFG_BASE NILE4_PCI_MEM_BASE
277 #define NILE4_PCI_IACK_BASE NILE4_PCI_IO_BASE
278
279
280 extern void nile4_set_pmr(u32 pmr, u32 type, u32 addr);
281
282
283
284
285
286
287 #define NUM_I8259_INTERRUPTS 16
288 #define NUM_NILE4_INTERRUPTS 16
289
290 #define IRQ_I8259_CASCADE NILE4_INT_INTE
291 #define is_i8259_irq(irq) ((irq) < NUM_I8259_INTERRUPTS)
292 #define nile4_to_irq(n) ((n)+NUM_I8259_INTERRUPTS)
293 #define irq_to_nile4(n) ((n)-NUM_I8259_INTERRUPTS)
294
295 extern void nile4_map_irq(int nile4_irq, int cpu_irq);
296 extern void nile4_map_irq_all(int cpu_irq);
297 extern void nile4_enable_irq(unsigned int nile4_irq);
298 extern void nile4_disable_irq(unsigned int nile4_irq);
299 extern void nile4_disable_irq_all(void);
300 extern u16 nile4_get_irq_stat(int cpu_irq);
301 extern void nile4_enable_irq_output(int cpu_irq);
302 extern void nile4_disable_irq_output(int cpu_irq);
303 extern void nile4_set_pci_irq_polarity(int pci_irq, int high);
304 extern void nile4_set_pci_irq_level_or_edge(int pci_irq, int level);
305 extern void nile4_clear_irq(int nile4_irq);
306 extern void nile4_clear_irq_mask(u32 mask);
307 extern u8 nile4_i8259_iack(void);
308 extern void nile4_dump_irq_status(void);
309
310 #endif