RTEMS  5.0.0
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 
31 void init_dma_image_TASK_PCI_TX(uint8 *vMem_taskBar, sint64 vMemOffset);
32 void init_dma_image_TASK_PCI_RX(uint8 *vMem_taskBar, sint64 vMemOffset);
33 void init_dma_image_TASK_FEC_TX(uint8 *vMem_taskBar, sint64 vMemOffset);
34 void init_dma_image_TASK_FEC_RX(uint8 *vMem_taskBar, sint64 vMemOffset);
35 void init_dma_image_TASK_LPC(uint8 *vMem_taskBar, sint64 vMemOffset);
36 void init_dma_image_TASK_ATA(uint8 *vMem_taskBar, sint64 vMemOffset);
37 void init_dma_image_TASK_CRC16_DP_0(uint8 *vMem_taskBar, sint64 vMemOffset);
38 void init_dma_image_TASK_CRC16_DP_1(uint8 *vMem_taskBar, sint64 vMemOffset);
39 void init_dma_image_TASK_GEN_DP_0(uint8 *vMem_taskBar, sint64 vMemOffset);
40 void init_dma_image_TASK_GEN_DP_1(uint8 *vMem_taskBar, sint64 vMemOffset);
41 void init_dma_image_TASK_GEN_DP_2(uint8 *vMem_taskBar, sint64 vMemOffset);
42 void init_dma_image_TASK_GEN_DP_3(uint8 *vMem_taskBar, sint64 vMemOffset);
43 void init_dma_image_TASK_GEN_TX_BD(uint8 *vMem_taskBar, sint64 vMemOffset);
44 void init_dma_image_TASK_GEN_RX_BD(uint8 *vMem_taskBar, sint64 vMemOffset);
45 void init_dma_image_TASK_GEN_DP_BD_0(uint8 *vMem_taskBar, sint64 vMemOffset);
46 void 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;
83 extern 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;
107 extern 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;
135 extern 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;
161 extern 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;
187 extern 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;
212 extern 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;
238 extern 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;
264 extern 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;
290 extern 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;
316 extern 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;
342 extern 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;
368 extern 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;
394 extern 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;
419 extern 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;
444 extern 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;
469 extern TASK_GEN_DP_BD_1_api_t *TASK_GEN_DP_BD_1_api;
470 
471 
472 #endif /* __DMA_IMAGE_H */
Definition: dma_image.h:60
Definition: dma_image.h:189
Definition: dma_image.h:370
Definition: dma_image.h:85
Definition: dma_image.h:421
Definition: dma_image.h:214
Definition: dma_image.h:344
Definition: dma_image.h:109
Definition: dma_image.h:396
Definition: dma_image.h:240
Definition: dma_image.h:137
Definition: dma_image.h:318
Definition: dma_image.h:266
Definition: dma_image.h:163
Definition: dma_image.h:446
Definition: dma_image.h:292