RTEMS: bsps/powerpc/gen5200/include/bsp/bestcomm/dma_image.h Source File

| RTEMS 5.4-rc2

Loading...
Searching...
No Matches
dma_image.h
1#ifndef __DMA_IMAGE_H
2#define __DMA_IMAGE_H 1
3
4/******************************************************************************
5*
6* Copyright (c) 2004 Freescale Semiconductor, Inc.
7*
8* Permission is hereby granted, free of charge, to any person obtaining a
9* copy of this software and associated documentation files (the "Software"),
10* to deal in the Software without restriction, including without limitation
11* the rights to use, copy, modify, merge, publish, distribute, sublicense,
12* and/or sell copies of the Software, and to permit persons to whom the
13* Software is furnished to do so, subject to the following conditions:
14*
15* The above copyright notice and this permission notice shall be included
16* in all copies or substantial portions of the Software.
17*
18* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
21* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
22* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
23* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24* OTHER DEALINGS IN THE SOFTWARE.
25*
26******************************************************************************/
27
28
29#include "include/ppctypes.h"
30
31void init_dma_image_TASK_PCI_TX(uint8 *vMem_taskBar, sint64 vMemOffset);
32void init_dma_image_TASK_PCI_RX(uint8 *vMem_taskBar, sint64 vMemOffset);
33void init_dma_image_TASK_FEC_TX(uint8 *vMem_taskBar, sint64 vMemOffset);
34void init_dma_image_TASK_FEC_RX(uint8 *vMem_taskBar, sint64 vMemOffset);
35void init_dma_image_TASK_LPC(uint8 *vMem_taskBar, sint64 vMemOffset);
36void init_dma_image_TASK_ATA(uint8 *vMem_taskBar, sint64 vMemOffset);
37void init_dma_image_TASK_CRC16_DP_0(uint8 *vMem_taskBar, sint64 vMemOffset);
38void init_dma_image_TASK_CRC16_DP_1(uint8 *vMem_taskBar, sint64 vMemOffset);
39void init_dma_image_TASK_GEN_DP_0(uint8 *vMem_taskBar, sint64 vMemOffset);
40void init_dma_image_TASK_GEN_DP_1(uint8 *vMem_taskBar, sint64 vMemOffset);
41void init_dma_image_TASK_GEN_DP_2(uint8 *vMem_taskBar, sint64 vMemOffset);
42void init_dma_image_TASK_GEN_DP_3(uint8 *vMem_taskBar, sint64 vMemOffset);
43void init_dma_image_TASK_GEN_TX_BD(uint8 *vMem_taskBar, sint64 vMemOffset);
44void init_dma_image_TASK_GEN_RX_BD(uint8 *vMem_taskBar, sint64 vMemOffset);
45void init_dma_image_TASK_GEN_DP_BD_0(uint8 *vMem_taskBar, sint64 vMemOffset);
46void init_dma_image_TASK_GEN_DP_BD_1(uint8 *vMem_taskBar, sint64 vMemOffset);
47
48/* MBAR_TASK_TABLE is the first address of task table */
49#ifndef MBAR_TASK_TABLE
50#define MBAR_TASK_TABLE 0xf0008000UL
51#endif
52
53/* MBAR_DMA_FREE is the first free address after task table */
54#define MBAR_DMA_FREE MBAR_TASK_TABLE + 0x00001500UL
55
56/* TASK_BAR is the first address of the Entry table */
57#define TASK_BAR MBAR_TASK_TABLE + 0x00000000UL
58#define TASK_BAR_OFFSET 0x00000000UL
59
60 typedef struct task_info0 {
61 volatile uint32 TaskNum;
62 volatile uint32 *PtrStartTDT;
63 volatile uint32 *PtrEndTDT;
64 volatile uint32 *PtrVarTab;
65 volatile uint32 *PtrFDT;
66 volatile uint32 *PtrCSave;
67 volatile uint32 NumDRD;
68 volatile uint32 *DRD[7];
69 volatile uint32 NumVar;
70 volatile uint32 *var;
71 volatile uint32 NumInc;
72 volatile uint32 *inc;
73 volatile uint8 *TaskPragma;
74 volatile uint32 *AddrDstFIFO;
75 volatile sint16 *IncrBytes;
76 volatile uint32 *AddrPktSizeReg;
77 volatile sint16 *IncrSrc;
78 volatile uint32 *AddrSCStatusReg;
79 volatile uint32 *Bytes;
80 volatile uint32 *IterExtra;
81 volatile uint32 *StartAddrSrc;
82} TASK_PCI_TX_api_t;
83extern TASK_PCI_TX_api_t *TASK_PCI_TX_api;
84
85 typedef struct task_info1 {
86 volatile uint32 TaskNum;
87 volatile uint32 *PtrStartTDT;
88 volatile uint32 *PtrEndTDT;
89 volatile uint32 *PtrVarTab;
90 volatile uint32 *PtrFDT;
91 volatile uint32 *PtrCSave;
92 volatile uint32 NumDRD;
93 volatile uint32 *DRD[5];
94 volatile uint32 NumVar;
95 volatile uint32 *var;
96 volatile uint32 NumInc;
97 volatile uint32 *inc;
98 volatile uint8 *TaskPragma;
99 volatile uint32 *AddrPktSizeReg;
100 volatile sint16 *IncrBytes;
101 volatile uint32 *AddrSrcFIFO;
102 volatile sint16 *IncrDst;
103 volatile uint32 *Bytes;
104 volatile uint32 *IterExtra;
105 volatile uint32 *StartAddrDst;
106} TASK_PCI_RX_api_t;
107extern TASK_PCI_RX_api_t *TASK_PCI_RX_api;
108
109 typedef struct task_info2 {
110 volatile uint32 TaskNum;
111 volatile uint32 *PtrStartTDT;
112 volatile uint32 *PtrEndTDT;
113 volatile uint32 *PtrVarTab;
114 volatile uint32 *PtrFDT;
115 volatile uint32 *PtrCSave;
116 volatile uint32 NumDRD;
117 volatile uint32 *DRD[22];
118 volatile uint32 NumVar;
119 volatile uint32 *var;
120 volatile uint32 NumInc;
121 volatile uint32 *inc;
122 volatile uint8 *TaskPragma;
123 volatile uint32 *AddrDRD;
124 volatile uint32 AddrDRDIdx;
125 volatile sint16 *IncrBytes;
126 volatile uint32 *AddrDstFIFO;
127 volatile sint16 *IncrSrc;
128 volatile uint32 *AddrEnable;
129 volatile sint16 *IncrSrcMA;
130 volatile uint32 *BDTableBase;
131 volatile uint32 *BDTableLast;
132 volatile uint32 *BDTableStart;
133 volatile uint32 *Bytes;
134} TASK_FEC_TX_api_t;
135extern TASK_FEC_TX_api_t *TASK_FEC_TX_api;
136
137 typedef struct task_info3 {
138 volatile uint32 TaskNum;
139 volatile uint32 *PtrStartTDT;
140 volatile uint32 *PtrEndTDT;
141 volatile uint32 *PtrVarTab;
142 volatile uint32 *PtrFDT;
143 volatile uint32 *PtrCSave;
144 volatile uint32 NumDRD;
145 volatile uint32 *DRD[13];
146 volatile uint32 NumVar;
147 volatile uint32 *var;
148 volatile uint32 NumInc;
149 volatile uint32 *inc;
150 volatile uint8 *TaskPragma;
151 volatile uint32 *AddrEnable;
152 volatile sint16 *IncrBytes;
153 volatile uint32 *AddrSrcFIFO;
154 volatile sint16 *IncrDst;
155 volatile uint32 *BDTableBase;
156 volatile sint16 *IncrDstMA;
157 volatile uint32 *BDTableLast;
158 volatile uint32 *BDTableStart;
159 volatile uint32 *Bytes;
160} TASK_FEC_RX_api_t;
161extern TASK_FEC_RX_api_t *TASK_FEC_RX_api;
162
163 typedef struct task_info4 {
164 volatile uint32 TaskNum;
165 volatile uint32 *PtrStartTDT;
166 volatile uint32 *PtrEndTDT;
167 volatile uint32 *PtrVarTab;
168 volatile uint32 *PtrFDT;
169 volatile uint32 *PtrCSave;
170 volatile uint32 NumDRD;
171 volatile uint32 *DRD[4];
172 volatile uint32 NumVar;
173 volatile uint32 *var;
174 volatile uint32 NumInc;
175 volatile uint32 *inc;
176 volatile uint8 *TaskPragma;
177 volatile uint32 *Bytes;
178 volatile sint16 *IncrBytes;
179 volatile uint32 *IterExtra;
180 volatile sint16 *IncrDst;
181 volatile sint16 *IncrDstMA;
182 volatile sint16 *IncrSrc;
183 volatile uint32 *StartAddrDst;
184 volatile sint16 *IncrSrcMA;
185 volatile uint32 *StartAddrSrc;
186} TASK_LPC_api_t;
187extern TASK_LPC_api_t *TASK_LPC_api;
188
189 typedef struct task_info5 {
190 volatile uint32 TaskNum;
191 volatile uint32 *PtrStartTDT;
192 volatile uint32 *PtrEndTDT;
193 volatile uint32 *PtrVarTab;
194 volatile uint32 *PtrFDT;
195 volatile uint32 *PtrCSave;
196 volatile uint32 NumDRD;
197 volatile uint32 *DRD[7];
198 volatile uint32 NumVar;
199 volatile uint32 *var;
200 volatile uint32 NumInc;
201 volatile uint32 *inc;
202 volatile uint8 *TaskPragma;
203 volatile uint32 *AddrEnable;
204 volatile sint16 *IncrBytes;
205 volatile uint32 *BDTableBase;
206 volatile sint16 *IncrDst;
207 volatile uint32 *BDTableLast;
208 volatile sint16 *IncrSrc;
209 volatile uint32 *BDTableStart;
210 volatile uint32 *Bytes;
211} TASK_ATA_api_t;
212extern TASK_ATA_api_t *TASK_ATA_api;
213
214 typedef struct task_info6 {
215 volatile uint32 TaskNum;
216 volatile uint32 *PtrStartTDT;
217 volatile uint32 *PtrEndTDT;
218 volatile uint32 *PtrVarTab;
219 volatile uint32 *PtrFDT;
220 volatile uint32 *PtrCSave;
221 volatile uint32 NumDRD;
222 volatile uint32 *DRD[9];
223 volatile uint32 NumVar;
224 volatile uint32 *var;
225 volatile uint32 NumInc;
226 volatile uint32 *inc;
227 volatile uint8 *TaskPragma;
228 volatile uint32 *Bytes;
229 volatile sint16 *IncrBytes;
230 volatile uint32 *IterExtra;
231 volatile sint16 *IncrDst;
232 volatile sint16 *IncrDstMA;
233 volatile sint16 *IncrSrc;
234 volatile uint32 *StartAddrDst;
235 volatile sint16 *IncrSrcMA;
236 volatile uint32 *StartAddrSrc;
237} TASK_CRC16_DP_0_api_t;
238extern TASK_CRC16_DP_0_api_t *TASK_CRC16_DP_0_api;
239
240 typedef struct task_info7 {
241 volatile uint32 TaskNum;
242 volatile uint32 *PtrStartTDT;
243 volatile uint32 *PtrEndTDT;
244 volatile uint32 *PtrVarTab;
245 volatile uint32 *PtrFDT;
246 volatile uint32 *PtrCSave;
247 volatile uint32 NumDRD;
248 volatile uint32 *DRD[9];
249 volatile uint32 NumVar;
250 volatile uint32 *var;
251 volatile uint32 NumInc;
252 volatile uint32 *inc;
253 volatile uint8 *TaskPragma;
254 volatile uint32 *Bytes;
255 volatile sint16 *IncrBytes;
256 volatile uint32 *IterExtra;
257 volatile sint16 *IncrDst;
258 volatile sint16 *IncrDstMA;
259 volatile sint16 *IncrSrc;
260 volatile uint32 *StartAddrDst;
261 volatile sint16 *IncrSrcMA;
262 volatile uint32 *StartAddrSrc;
263} TASK_CRC16_DP_1_api_t;
264extern TASK_CRC16_DP_1_api_t *TASK_CRC16_DP_1_api;
265
266 typedef struct task_info8 {
267 volatile uint32 TaskNum;
268 volatile uint32 *PtrStartTDT;
269 volatile uint32 *PtrEndTDT;
270 volatile uint32 *PtrVarTab;
271 volatile uint32 *PtrFDT;
272 volatile uint32 *PtrCSave;
273 volatile uint32 NumDRD;
274 volatile uint32 *DRD[4];
275 volatile uint32 NumVar;
276 volatile uint32 *var;
277 volatile uint32 NumInc;
278 volatile uint32 *inc;
279 volatile uint8 *TaskPragma;
280 volatile uint32 *Bytes;
281 volatile sint16 *IncrBytes;
282 volatile uint32 *IterExtra;
283 volatile sint16 *IncrDst;
284 volatile sint16 *IncrDstMA;
285 volatile sint16 *IncrSrc;
286 volatile uint32 *StartAddrDst;
287 volatile sint16 *IncrSrcMA;
288 volatile uint32 *StartAddrSrc;
289} TASK_GEN_DP_0_api_t;
290extern TASK_GEN_DP_0_api_t *TASK_GEN_DP_0_api;
291
292 typedef struct task_info9 {
293 volatile uint32 TaskNum;
294 volatile uint32 *PtrStartTDT;
295 volatile uint32 *PtrEndTDT;
296 volatile uint32 *PtrVarTab;
297 volatile uint32 *PtrFDT;
298 volatile uint32 *PtrCSave;
299 volatile uint32 NumDRD;
300 volatile uint32 *DRD[4];
301 volatile uint32 NumVar;
302 volatile uint32 *var;
303 volatile uint32 NumInc;
304 volatile uint32 *inc;
305 volatile uint8 *TaskPragma;
306 volatile uint32 *Bytes;
307 volatile sint16 *IncrBytes;
308 volatile uint32 *IterExtra;
309 volatile sint16 *IncrDst;
310 volatile sint16 *IncrDstMA;
311 volatile sint16 *IncrSrc;
312 volatile uint32 *StartAddrDst;
313 volatile sint16 *IncrSrcMA;
314 volatile uint32 *StartAddrSrc;
315} TASK_GEN_DP_1_api_t;
316extern TASK_GEN_DP_1_api_t *TASK_GEN_DP_1_api;
317
318 typedef struct task_info10 {
319 volatile uint32 TaskNum;
320 volatile uint32 *PtrStartTDT;
321 volatile uint32 *PtrEndTDT;
322 volatile uint32 *PtrVarTab;
323 volatile uint32 *PtrFDT;
324 volatile uint32 *PtrCSave;
325 volatile uint32 NumDRD;
326 volatile uint32 *DRD[4];
327 volatile uint32 NumVar;
328 volatile uint32 *var;
329 volatile uint32 NumInc;
330 volatile uint32 *inc;
331 volatile uint8 *TaskPragma;
332 volatile uint32 *Bytes;
333 volatile sint16 *IncrBytes;
334 volatile uint32 *IterExtra;
335 volatile sint16 *IncrDst;
336 volatile sint16 *IncrDstMA;
337 volatile sint16 *IncrSrc;
338 volatile uint32 *StartAddrDst;
339 volatile sint16 *IncrSrcMA;
340 volatile uint32 *StartAddrSrc;
341} TASK_GEN_DP_2_api_t;
342extern TASK_GEN_DP_2_api_t *TASK_GEN_DP_2_api;
343
344 typedef struct task_info11 {
345 volatile uint32 TaskNum;
346 volatile uint32 *PtrStartTDT;
347 volatile uint32 *PtrEndTDT;
348 volatile uint32 *PtrVarTab;
349 volatile uint32 *PtrFDT;
350 volatile uint32 *PtrCSave;
351 volatile uint32 NumDRD;
352 volatile uint32 *DRD[4];
353 volatile uint32 NumVar;
354 volatile uint32 *var;
355 volatile uint32 NumInc;
356 volatile uint32 *inc;
357 volatile uint8 *TaskPragma;
358 volatile uint32 *Bytes;
359 volatile sint16 *IncrBytes;
360 volatile uint32 *IterExtra;
361 volatile sint16 *IncrDst;
362 volatile sint16 *IncrDstMA;
363 volatile sint16 *IncrSrc;
364 volatile uint32 *StartAddrDst;
365 volatile sint16 *IncrSrcMA;
366 volatile uint32 *StartAddrSrc;
367} TASK_GEN_DP_3_api_t;
368extern TASK_GEN_DP_3_api_t *TASK_GEN_DP_3_api;
369
370 typedef struct task_info12 {
371 volatile uint32 TaskNum;
372 volatile uint32 *PtrStartTDT;
373 volatile uint32 *PtrEndTDT;
374 volatile uint32 *PtrVarTab;
375 volatile uint32 *PtrFDT;
376 volatile uint32 *PtrCSave;
377 volatile uint32 NumDRD;
378 volatile uint32 *DRD[8];
379 volatile uint32 NumVar;
380 volatile uint32 *var;
381 volatile uint32 NumInc;
382 volatile uint32 *inc;
383 volatile uint8 *TaskPragma;
384 volatile uint32 *AddrDstFIFO;
385 volatile sint16 *IncrBytes;
386 volatile uint32 *AddrEnable;
387 volatile sint16 *IncrSrc;
388 volatile uint32 *BDTableBase;
389 volatile sint16 *IncrSrcMA;
390 volatile uint32 *BDTableLast;
391 volatile uint32 *BDTableStart;
392 volatile uint32 *Bytes;
393} TASK_GEN_TX_BD_api_t;
394extern TASK_GEN_TX_BD_api_t *TASK_GEN_TX_BD_api;
395
396 typedef struct task_info13 {
397 volatile uint32 TaskNum;
398 volatile uint32 *PtrStartTDT;
399 volatile uint32 *PtrEndTDT;
400 volatile uint32 *PtrVarTab;
401 volatile uint32 *PtrFDT;
402 volatile uint32 *PtrCSave;
403 volatile uint32 NumDRD;
404 volatile uint32 *DRD[7];
405 volatile uint32 NumVar;
406 volatile uint32 *var;
407 volatile uint32 NumInc;
408 volatile uint32 *inc;
409 volatile uint8 *TaskPragma;
410 volatile uint32 *AddrEnable;
411 volatile sint16 *IncrBytes;
412 volatile uint32 *AddrSrcFIFO;
413 volatile sint16 *IncrDst;
414 volatile uint32 *BDTableBase;
415 volatile uint32 *BDTableLast;
416 volatile uint32 *BDTableStart;
417 volatile uint32 *Bytes;
418} TASK_GEN_RX_BD_api_t;
419extern TASK_GEN_RX_BD_api_t *TASK_GEN_RX_BD_api;
420
421 typedef struct task_info14 {
422 volatile uint32 TaskNum;
423 volatile uint32 *PtrStartTDT;
424 volatile uint32 *PtrEndTDT;
425 volatile uint32 *PtrVarTab;
426 volatile uint32 *PtrFDT;
427 volatile uint32 *PtrCSave;
428 volatile uint32 NumDRD;
429 volatile uint32 *DRD[7];
430 volatile uint32 NumVar;
431 volatile uint32 *var;
432 volatile uint32 NumInc;
433 volatile uint32 *inc;
434 volatile uint8 *TaskPragma;
435 volatile uint32 *AddrEnable;
436 volatile sint16 *IncrBytes;
437 volatile uint32 *BDTableBase;
438 volatile sint16 *IncrDst;
439 volatile uint32 *BDTableLast;
440 volatile sint16 *IncrSrc;
441 volatile uint32 *BDTableStart;
442 volatile uint32 *Bytes;
443} TASK_GEN_DP_BD_0_api_t;
444extern TASK_GEN_DP_BD_0_api_t *TASK_GEN_DP_BD_0_api;
445
446 typedef struct task_info15 {
447 volatile uint32 TaskNum;
448 volatile uint32 *PtrStartTDT;
449 volatile uint32 *PtrEndTDT;
450 volatile uint32 *PtrVarTab;
451 volatile uint32 *PtrFDT;
452 volatile uint32 *PtrCSave;
453 volatile uint32 NumDRD;
454 volatile uint32 *DRD[7];
455 volatile uint32 NumVar;
456 volatile uint32 *var;
457 volatile uint32 NumInc;
458 volatile uint32 *inc;
459 volatile uint8 *TaskPragma;
460 volatile uint32 *AddrEnable;
461 volatile sint16 *IncrBytes;
462 volatile uint32 *BDTableBase;
463 volatile sint16 *IncrDst;
464 volatile uint32 *BDTableLast;
465 volatile sint16 *IncrSrc;
466 volatile uint32 *BDTableStart;
467 volatile uint32 *Bytes;
468} TASK_GEN_DP_BD_1_api_t;
469extern TASK_GEN_DP_BD_1_api_t *TASK_GEN_DP_BD_1_api;
470
471
472#endif /* __DMA_IMAGE_H */
task_info0
Definition: dma_image.h:60
task_info10
Definition: dma_image.h:318
task_info11
Definition: dma_image.h:344
task_info12
Definition: dma_image.h:370
task_info13
Definition: dma_image.h:396
task_info14
Definition: dma_image.h:421
task_info15
Definition: dma_image.h:446
task_info1
Definition: dma_image.h:85
task_info2
Definition: dma_image.h:109
task_info3
Definition: dma_image.h:137
task_info4
Definition: dma_image.h:163
task_info5
Definition: dma_image.h:189
task_info6
Definition: dma_image.h:214
task_info7
Definition: dma_image.h:240
task_info8
Definition: dma_image.h:266
task_info9
Definition: dma_image.h:292