source: rtems/c/src/lib/libbsp/powerpc/gen5200/bestcomm/dma_image.h @ ca680bc5

4.104.114.84.95
Last change on this file since ca680bc5 was ca680bc5, checked in by Ralf Corsepius <ralf.corsepius@…>, on 12/31/05 at 05:09:26

New (CVS import Thomas Doerfler <Thomas.Doerfler@…>'s
submission).

  • Property mode set to 100644
File size: 14.0 KB
Line 
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 "../bestcomm/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
60typedef 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
85typedef 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
109typedef 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
137typedef 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
163typedef 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
189typedef 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
214typedef 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
240typedef 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
266typedef 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
292typedef 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
318typedef 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
344typedef 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
370typedef 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
396typedef 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
421typedef 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
446typedef 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 */
Note: See TracBrowser for help on using the repository browser.