2 * Copyright (C) 2004-2007 Freescale Semiconductor, Inc.
4 * See file CREDITS for list of people who contributed to this
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as
9 * published by the Free Software Foundation; either version 2 of
10 * the License, or (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
23 /* Contains task code and structures for Multi-channel DMA */
46 u32 MCD_funcDescTab0[];
48 u32 MCD_funcDescTab1[];
49 u32 MCD_funcDescTab2[];
50 u32 MCD_funcDescTab3[];
51 u32 MCD_funcDescTab4[];
52 u32 MCD_funcDescTab5[];
53 u32 MCD_funcDescTab6[];
54 u32 MCD_funcDescTab7[];
55 u32 MCD_funcDescTab8[];
56 u32 MCD_funcDescTab9[];
57 u32 MCD_funcDescTab10[];
58 u32 MCD_funcDescTab11[];
59 u32 MCD_funcDescTab12[];
60 u32 MCD_funcDescTab13[];
61 u32 MCD_funcDescTab14[];
62 u32 MCD_funcDescTab15[];
65 u32 MCD_contextSave0[];
66 u32 MCD_contextSave1[];
67 u32 MCD_contextSave2[];
68 u32 MCD_contextSave3[];
69 u32 MCD_contextSave4[];
70 u32 MCD_contextSave5[];
71 u32 MCD_contextSave6[];
72 u32 MCD_contextSave7[];
73 u32 MCD_contextSave8[];
74 u32 MCD_contextSave9[];
75 u32 MCD_contextSave10[];
76 u32 MCD_contextSave11[];
77 u32 MCD_contextSave12[];
78 u32 MCD_contextSave13[];
79 u32 MCD_contextSave14[];
80 u32 MCD_contextSave15[];
82 u32 MCD_realTaskTableSrc[] = {
85 (u32) MCD_varTab0, /* Task 0 Variable Table */
86 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
89 (u32) MCD_contextSave0, /* Task 0 context save space */
93 (u32) MCD_varTab1, /* Task 1 Variable Table */
95 (u32) MCD_funcDescTab1, /* Task 1 Fn Desc. Table & Flags */
97 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
101 (u32) MCD_contextSave1, /* Task 1 context save space */
105 (u32) MCD_varTab2, /* Task 2 Variable Table */
106 #ifdef MCD_INCLUDE_EU
107 (u32) MCD_funcDescTab2, /* Task 2 Fn Desc. Table & Flags */
109 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
113 (u32) MCD_contextSave2, /* Task 2 context save space */
117 (u32) MCD_varTab3, /* Task 3 Variable Table */
118 #ifdef MCD_INCLUDE_EU
119 (u32) MCD_funcDescTab3, /* Task 3 Fn Desc. Table & Flags */
121 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
125 (u32) MCD_contextSave3, /* Task 3 context save space */
129 (u32) MCD_varTab4, /* Task 4 Variable Table */
130 #ifdef MCD_INCLUDE_EU
131 (u32) MCD_funcDescTab4, /* Task 4 Fn Desc. Table & Flags */
133 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
137 (u32) MCD_contextSave4, /* Task 4 context save space */
141 (u32) MCD_varTab5, /* Task 5 Variable Table */
142 #ifdef MCD_INCLUDE_EU
143 (u32) MCD_funcDescTab5, /* Task 5 Fn Desc. Table & Flags */
145 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
149 (u32) MCD_contextSave5, /* Task 5 context save space */
153 (u32) MCD_varTab6, /* Task 6 Variable Table */
154 #ifdef MCD_INCLUDE_EU
155 (u32) MCD_funcDescTab6, /* Task 6 Fn Desc. Table & Flags */
157 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
161 (u32) MCD_contextSave6, /* Task 6 context save space */
165 (u32) MCD_varTab7, /* Task 7 Variable Table */
166 #ifdef MCD_INCLUDE_EU
167 (u32) MCD_funcDescTab7, /* Task 7 Fn Desc. Table & Flags */
169 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
173 (u32) MCD_contextSave7, /* Task 7 context save space */
177 (u32) MCD_varTab8, /* Task 8 Variable Table */
178 #ifdef MCD_INCLUDE_EU
179 (u32) MCD_funcDescTab8, /* Task 8 Fn Desc. Table & Flags */
181 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
185 (u32) MCD_contextSave8, /* Task 8 context save space */
189 (u32) MCD_varTab9, /* Task 9 Variable Table */
190 #ifdef MCD_INCLUDE_EU
191 (u32) MCD_funcDescTab9, /* Task 9 Fn Desc. Table & Flags */
193 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
197 (u32) MCD_contextSave9, /* Task 9 context save space */
201 (u32) MCD_varTab10, /* Task 10 Variable Table */
202 #ifdef MCD_INCLUDE_EU
203 (u32) MCD_funcDescTab10, /* Task 10 Fn Desc. Table & Flags */
205 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
209 (u32) MCD_contextSave10, /* Task 10 context save space */
213 (u32) MCD_varTab11, /* Task 11 Variable Table */
214 #ifdef MCD_INCLUDE_EU
215 (u32) MCD_funcDescTab11, /* Task 11 Fn Desc. Table & Flags */
217 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
221 (u32) MCD_contextSave11, /* Task 11 context save space */
225 (u32) MCD_varTab12, /* Task 12 Variable Table */
226 #ifdef MCD_INCLUDE_EU
227 (u32) MCD_funcDescTab12, /* Task 12 Fn Desc. Table & Flags */
229 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
233 (u32) MCD_contextSave12, /* Task 12 context save space */
237 (u32) MCD_varTab13, /* Task 13 Variable Table */
238 #ifdef MCD_INCLUDE_EU
239 (u32) MCD_funcDescTab13, /* Task 13 Fn Desc. Table & Flags */
241 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
245 (u32) MCD_contextSave13, /* Task 13 context save space */
249 (u32) MCD_varTab14, /* Task 14 Variable Table */
250 #ifdef MCD_INCLUDE_EU
251 (u32) MCD_funcDescTab14, /* Task 14 Fn Desc. Table & Flags */
253 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
257 (u32) MCD_contextSave14, /* Task 14 context save space */
261 (u32) MCD_varTab15, /* Task 15 Variable Table */
262 #ifdef MCD_INCLUDE_EU
263 (u32) MCD_funcDescTab15, /* Task 15 Fn Desc. Table & Flags */
265 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
269 (u32) MCD_contextSave15, /* Task 15 context save space */
273 u32 MCD_varTab0[] = { /* Task 0 Variable Table */
274 0x00000000, /* var[0] */
275 0x00000000, /* var[1] */
276 0x00000000, /* var[2] */
277 0x00000000, /* var[3] */
278 0x00000000, /* var[4] */
279 0x00000000, /* var[5] */
280 0x00000000, /* var[6] */
281 0x00000000, /* var[7] */
282 0x00000000, /* var[8] */
283 0x00000000, /* var[9] */
284 0x00000000, /* var[10] */
285 0x00000000, /* var[11] */
286 0x00000000, /* var[12] */
287 0x00000000, /* var[13] */
288 0x00000000, /* var[14] */
289 0x00000000, /* var[15] */
290 0x00000000, /* var[16] */
291 0x00000000, /* var[17] */
292 0x00000000, /* var[18] */
293 0x00000000, /* var[19] */
294 0x00000000, /* var[20] */
295 0x00000000, /* var[21] */
296 0x00000000, /* var[22] */
297 0x00000000, /* var[23] */
298 0xe0000000, /* inc[0] */
299 0x20000000, /* inc[1] */
300 0x2000ffff, /* inc[2] */
301 0x00000000, /* inc[3] */
302 0x00000000, /* inc[4] */
303 0x00000000, /* inc[5] */
304 0x00000000, /* inc[6] */
305 0x00000000, /* inc[7] */
308 u32 MCD_varTab1[] = {
343 u32 MCD_varTab2[] = {
378 u32 MCD_varTab3[] = {
413 u32 MCD_varTab4[] = {
448 u32 MCD_varTab5[] = {
483 u32 MCD_varTab6[] = {
518 u32 MCD_varTab7[] = {
553 u32 MCD_varTab8[] = {
588 u32 MCD_varTab9[] = {
623 u32 MCD_varTab10[] = {
658 u32 MCD_varTab11[] = {
693 u32 MCD_varTab12[] = {
728 u32 MCD_varTab13[] = {
763 u32 MCD_varTab14[] = {
798 u32 MCD_varTab15[] = {
833 u32 MCD_funcDescTab0[] = {
900 #ifdef MCD_INCLUDE_EU
901 u32 MCD_funcDescTab1[] = {
968 u32 MCD_funcDescTab2[] = {
1035 u32 MCD_funcDescTab3[] = {
1102 u32 MCD_funcDescTab4[] = {
1169 u32 MCD_funcDescTab5[] = {
1236 u32 MCD_funcDescTab6[] = {
1303 u32 MCD_funcDescTab7[] = {
1370 u32 MCD_funcDescTab8[] = {
1437 u32 MCD_funcDescTab9[] = {
1504 u32 MCD_funcDescTab10[] = {
1571 u32 MCD_funcDescTab11[] = {
1638 u32 MCD_funcDescTab12[] = {
1705 u32 MCD_funcDescTab13[] = {
1772 u32 MCD_funcDescTab14[] = {
1839 u32 MCD_funcDescTab15[] = {
1905 #endif /*MCD_INCLUDE_EU */
1907 u32 MCD_contextSave0[128]; /* Task 0 context save space */
1908 u32 MCD_contextSave1[128]; /* Task 1 context save space */
1909 u32 MCD_contextSave2[128]; /* Task 2 context save space */
1910 u32 MCD_contextSave3[128]; /* Task 3 context save space */
1911 u32 MCD_contextSave4[128]; /* Task 4 context save space */
1912 u32 MCD_contextSave5[128]; /* Task 5 context save space */
1913 u32 MCD_contextSave6[128]; /* Task 6 context save space */
1914 u32 MCD_contextSave7[128]; /* Task 7 context save space */
1915 u32 MCD_contextSave8[128]; /* Task 8 context save space */
1916 u32 MCD_contextSave9[128]; /* Task 9 context save space */
1917 u32 MCD_contextSave10[128]; /* Task 10 context save space */
1918 u32 MCD_contextSave11[128]; /* Task 11 context save space */
1919 u32 MCD_contextSave12[128]; /* Task 12 context save space */
1920 u32 MCD_contextSave13[128]; /* Task 13 context save space */
1921 u32 MCD_contextSave14[128]; /* Task 14 context save space */
1922 u32 MCD_contextSave15[128]; /* Task 15 context save space */
1924 u32 MCD_ChainNoEu_TDT[];
1925 u32 MCD_SingleNoEu_TDT[];
1926 #ifdef MCD_INCLUDE_EU
1927 u32 MCD_ChainEu_TDT[];
1928 u32 MCD_SingleEu_TDT[];
1930 u32 MCD_ENetRcv_TDT[];
1931 u32 MCD_ENetXmit_TDT[];
1933 u32 MCD_modelTaskTableSrc[] = {
1934 (u32) MCD_ChainNoEu_TDT,
1935 (u32) & ((u8 *) MCD_ChainNoEu_TDT)[0x0000016c],
1942 (u32) MCD_SingleNoEu_TDT,
1943 (u32) & ((u8 *) MCD_SingleNoEu_TDT)[0x000000d4],
1950 #ifdef MCD_INCLUDE_EU
1951 (u32) MCD_ChainEu_TDT,
1952 (u32) & ((u8 *) MCD_ChainEu_TDT)[0x000001b4],
1959 (u32) MCD_SingleEu_TDT,
1960 (u32) & ((u8 *) MCD_SingleEu_TDT)[0x00000124],
1968 (u32) MCD_ENetRcv_TDT,
1969 (u32) & ((u8 *) MCD_ENetRcv_TDT)[0x0000009c],
1976 (u32) MCD_ENetXmit_TDT,
1977 (u32) & ((u8 *) MCD_ENetXmit_TDT)[0x000000d0],
1986 u32 MCD_ChainNoEu_TDT[] = {
2081 u32 MCD_SingleNoEu_TDT[] = {
2138 #ifdef MCD_INCLUDE_EU
2139 u32 MCD_ChainEu_TDT[] = {
2252 u32 MCD_SingleEu_TDT[] = {
2329 u32 MCD_ENetRcv_TDT[] = {
2372 u32 MCD_ENetXmit_TDT[] = {
2428 #ifdef MCD_INCLUDE_EU
2429 MCD_bufDesc MCD_singleBufDescs[NCHANNELS];