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 */
27 #ifdef CONFIG_FSLDMAFEC
48 u32 MCD_funcDescTab0[];
50 u32 MCD_funcDescTab1[];
51 u32 MCD_funcDescTab2[];
52 u32 MCD_funcDescTab3[];
53 u32 MCD_funcDescTab4[];
54 u32 MCD_funcDescTab5[];
55 u32 MCD_funcDescTab6[];
56 u32 MCD_funcDescTab7[];
57 u32 MCD_funcDescTab8[];
58 u32 MCD_funcDescTab9[];
59 u32 MCD_funcDescTab10[];
60 u32 MCD_funcDescTab11[];
61 u32 MCD_funcDescTab12[];
62 u32 MCD_funcDescTab13[];
63 u32 MCD_funcDescTab14[];
64 u32 MCD_funcDescTab15[];
67 u32 MCD_contextSave0[];
68 u32 MCD_contextSave1[];
69 u32 MCD_contextSave2[];
70 u32 MCD_contextSave3[];
71 u32 MCD_contextSave4[];
72 u32 MCD_contextSave5[];
73 u32 MCD_contextSave6[];
74 u32 MCD_contextSave7[];
75 u32 MCD_contextSave8[];
76 u32 MCD_contextSave9[];
77 u32 MCD_contextSave10[];
78 u32 MCD_contextSave11[];
79 u32 MCD_contextSave12[];
80 u32 MCD_contextSave13[];
81 u32 MCD_contextSave14[];
82 u32 MCD_contextSave15[];
84 u32 MCD_realTaskTableSrc[] = {
87 (u32) MCD_varTab0, /* Task 0 Variable Table */
88 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
91 (u32) MCD_contextSave0, /* Task 0 context save space */
95 (u32) MCD_varTab1, /* Task 1 Variable Table */
97 (u32) MCD_funcDescTab1, /* Task 1 Fn Desc. Table & Flags */
99 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
103 (u32) MCD_contextSave1, /* Task 1 context save space */
107 (u32) MCD_varTab2, /* Task 2 Variable Table */
108 #ifdef MCD_INCLUDE_EU
109 (u32) MCD_funcDescTab2, /* Task 2 Fn Desc. Table & Flags */
111 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
115 (u32) MCD_contextSave2, /* Task 2 context save space */
119 (u32) MCD_varTab3, /* Task 3 Variable Table */
120 #ifdef MCD_INCLUDE_EU
121 (u32) MCD_funcDescTab3, /* Task 3 Fn Desc. Table & Flags */
123 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
127 (u32) MCD_contextSave3, /* Task 3 context save space */
131 (u32) MCD_varTab4, /* Task 4 Variable Table */
132 #ifdef MCD_INCLUDE_EU
133 (u32) MCD_funcDescTab4, /* Task 4 Fn Desc. Table & Flags */
135 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
139 (u32) MCD_contextSave4, /* Task 4 context save space */
143 (u32) MCD_varTab5, /* Task 5 Variable Table */
144 #ifdef MCD_INCLUDE_EU
145 (u32) MCD_funcDescTab5, /* Task 5 Fn Desc. Table & Flags */
147 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
151 (u32) MCD_contextSave5, /* Task 5 context save space */
155 (u32) MCD_varTab6, /* Task 6 Variable Table */
156 #ifdef MCD_INCLUDE_EU
157 (u32) MCD_funcDescTab6, /* Task 6 Fn Desc. Table & Flags */
159 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
163 (u32) MCD_contextSave6, /* Task 6 context save space */
167 (u32) MCD_varTab7, /* Task 7 Variable Table */
168 #ifdef MCD_INCLUDE_EU
169 (u32) MCD_funcDescTab7, /* Task 7 Fn Desc. Table & Flags */
171 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
175 (u32) MCD_contextSave7, /* Task 7 context save space */
179 (u32) MCD_varTab8, /* Task 8 Variable Table */
180 #ifdef MCD_INCLUDE_EU
181 (u32) MCD_funcDescTab8, /* Task 8 Fn Desc. Table & Flags */
183 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
187 (u32) MCD_contextSave8, /* Task 8 context save space */
191 (u32) MCD_varTab9, /* Task 9 Variable Table */
192 #ifdef MCD_INCLUDE_EU
193 (u32) MCD_funcDescTab9, /* Task 9 Fn Desc. Table & Flags */
195 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
199 (u32) MCD_contextSave9, /* Task 9 context save space */
203 (u32) MCD_varTab10, /* Task 10 Variable Table */
204 #ifdef MCD_INCLUDE_EU
205 (u32) MCD_funcDescTab10, /* Task 10 Fn Desc. Table & Flags */
207 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
211 (u32) MCD_contextSave10, /* Task 10 context save space */
215 (u32) MCD_varTab11, /* Task 11 Variable Table */
216 #ifdef MCD_INCLUDE_EU
217 (u32) MCD_funcDescTab11, /* Task 11 Fn Desc. Table & Flags */
219 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
223 (u32) MCD_contextSave11, /* Task 11 context save space */
227 (u32) MCD_varTab12, /* Task 12 Variable Table */
228 #ifdef MCD_INCLUDE_EU
229 (u32) MCD_funcDescTab12, /* Task 12 Fn Desc. Table & Flags */
231 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
235 (u32) MCD_contextSave12, /* Task 12 context save space */
239 (u32) MCD_varTab13, /* Task 13 Variable Table */
240 #ifdef MCD_INCLUDE_EU
241 (u32) MCD_funcDescTab13, /* Task 13 Fn Desc. Table & Flags */
243 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
247 (u32) MCD_contextSave13, /* Task 13 context save space */
251 (u32) MCD_varTab14, /* Task 14 Variable Table */
252 #ifdef MCD_INCLUDE_EU
253 (u32) MCD_funcDescTab14, /* Task 14 Fn Desc. Table & Flags */
255 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
259 (u32) MCD_contextSave14, /* Task 14 context save space */
263 (u32) MCD_varTab15, /* Task 15 Variable Table */
264 #ifdef MCD_INCLUDE_EU
265 (u32) MCD_funcDescTab15, /* Task 15 Fn Desc. Table & Flags */
267 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
271 (u32) MCD_contextSave15, /* Task 15 context save space */
275 u32 MCD_varTab0[] = { /* Task 0 Variable Table */
276 0x00000000, /* var[0] */
277 0x00000000, /* var[1] */
278 0x00000000, /* var[2] */
279 0x00000000, /* var[3] */
280 0x00000000, /* var[4] */
281 0x00000000, /* var[5] */
282 0x00000000, /* var[6] */
283 0x00000000, /* var[7] */
284 0x00000000, /* var[8] */
285 0x00000000, /* var[9] */
286 0x00000000, /* var[10] */
287 0x00000000, /* var[11] */
288 0x00000000, /* var[12] */
289 0x00000000, /* var[13] */
290 0x00000000, /* var[14] */
291 0x00000000, /* var[15] */
292 0x00000000, /* var[16] */
293 0x00000000, /* var[17] */
294 0x00000000, /* var[18] */
295 0x00000000, /* var[19] */
296 0x00000000, /* var[20] */
297 0x00000000, /* var[21] */
298 0x00000000, /* var[22] */
299 0x00000000, /* var[23] */
300 0xe0000000, /* inc[0] */
301 0x20000000, /* inc[1] */
302 0x2000ffff, /* inc[2] */
303 0x00000000, /* inc[3] */
304 0x00000000, /* inc[4] */
305 0x00000000, /* inc[5] */
306 0x00000000, /* inc[6] */
307 0x00000000, /* inc[7] */
310 u32 MCD_varTab1[] = {
345 u32 MCD_varTab2[] = {
380 u32 MCD_varTab3[] = {
415 u32 MCD_varTab4[] = {
450 u32 MCD_varTab5[] = {
485 u32 MCD_varTab6[] = {
520 u32 MCD_varTab7[] = {
555 u32 MCD_varTab8[] = {
590 u32 MCD_varTab9[] = {
625 u32 MCD_varTab10[] = {
660 u32 MCD_varTab11[] = {
695 u32 MCD_varTab12[] = {
730 u32 MCD_varTab13[] = {
765 u32 MCD_varTab14[] = {
800 u32 MCD_varTab15[] = {
835 u32 MCD_funcDescTab0[] = {
902 #ifdef MCD_INCLUDE_EU
903 u32 MCD_funcDescTab1[] = {
970 u32 MCD_funcDescTab2[] = {
1037 u32 MCD_funcDescTab3[] = {
1104 u32 MCD_funcDescTab4[] = {
1171 u32 MCD_funcDescTab5[] = {
1238 u32 MCD_funcDescTab6[] = {
1305 u32 MCD_funcDescTab7[] = {
1372 u32 MCD_funcDescTab8[] = {
1439 u32 MCD_funcDescTab9[] = {
1506 u32 MCD_funcDescTab10[] = {
1573 u32 MCD_funcDescTab11[] = {
1640 u32 MCD_funcDescTab12[] = {
1707 u32 MCD_funcDescTab13[] = {
1774 u32 MCD_funcDescTab14[] = {
1841 u32 MCD_funcDescTab15[] = {
1907 #endif /*MCD_INCLUDE_EU */
1909 u32 MCD_contextSave0[128]; /* Task 0 context save space */
1910 u32 MCD_contextSave1[128]; /* Task 1 context save space */
1911 u32 MCD_contextSave2[128]; /* Task 2 context save space */
1912 u32 MCD_contextSave3[128]; /* Task 3 context save space */
1913 u32 MCD_contextSave4[128]; /* Task 4 context save space */
1914 u32 MCD_contextSave5[128]; /* Task 5 context save space */
1915 u32 MCD_contextSave6[128]; /* Task 6 context save space */
1916 u32 MCD_contextSave7[128]; /* Task 7 context save space */
1917 u32 MCD_contextSave8[128]; /* Task 8 context save space */
1918 u32 MCD_contextSave9[128]; /* Task 9 context save space */
1919 u32 MCD_contextSave10[128]; /* Task 10 context save space */
1920 u32 MCD_contextSave11[128]; /* Task 11 context save space */
1921 u32 MCD_contextSave12[128]; /* Task 12 context save space */
1922 u32 MCD_contextSave13[128]; /* Task 13 context save space */
1923 u32 MCD_contextSave14[128]; /* Task 14 context save space */
1924 u32 MCD_contextSave15[128]; /* Task 15 context save space */
1926 u32 MCD_ChainNoEu_TDT[];
1927 u32 MCD_SingleNoEu_TDT[];
1928 #ifdef MCD_INCLUDE_EU
1929 u32 MCD_ChainEu_TDT[];
1930 u32 MCD_SingleEu_TDT[];
1932 u32 MCD_ENetRcv_TDT[];
1933 u32 MCD_ENetXmit_TDT[];
1935 u32 MCD_modelTaskTableSrc[] = {
1936 (u32) MCD_ChainNoEu_TDT,
1937 (u32) & ((u8 *) MCD_ChainNoEu_TDT)[0x0000016c],
1944 (u32) MCD_SingleNoEu_TDT,
1945 (u32) & ((u8 *) MCD_SingleNoEu_TDT)[0x000000d4],
1952 #ifdef MCD_INCLUDE_EU
1953 (u32) MCD_ChainEu_TDT,
1954 (u32) & ((u8 *) MCD_ChainEu_TDT)[0x000001b4],
1961 (u32) MCD_SingleEu_TDT,
1962 (u32) & ((u8 *) MCD_SingleEu_TDT)[0x00000124],
1970 (u32) MCD_ENetRcv_TDT,
1971 (u32) & ((u8 *) MCD_ENetRcv_TDT)[0x0000009c],
1978 (u32) MCD_ENetXmit_TDT,
1979 (u32) & ((u8 *) MCD_ENetXmit_TDT)[0x000000d0],
1988 u32 MCD_ChainNoEu_TDT[] = {
2083 u32 MCD_SingleNoEu_TDT[] = {
2140 #ifdef MCD_INCLUDE_EU
2141 u32 MCD_ChainEu_TDT[] = {
2254 u32 MCD_SingleEu_TDT[] = {
2331 u32 MCD_ENetRcv_TDT[] = {
2374 u32 MCD_ENetXmit_TDT[] = {
2430 #ifdef MCD_INCLUDE_EU
2431 MCD_bufDesc MCD_singleBufDescs[NCHANNELS];
2434 #endif /* CONFIG_FSLDMAFEC */