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 */
44 u32 MCD_funcDescTab0[];
46 u32 MCD_funcDescTab1[];
47 u32 MCD_funcDescTab2[];
48 u32 MCD_funcDescTab3[];
49 u32 MCD_funcDescTab4[];
50 u32 MCD_funcDescTab5[];
51 u32 MCD_funcDescTab6[];
52 u32 MCD_funcDescTab7[];
53 u32 MCD_funcDescTab8[];
54 u32 MCD_funcDescTab9[];
55 u32 MCD_funcDescTab10[];
56 u32 MCD_funcDescTab11[];
57 u32 MCD_funcDescTab12[];
58 u32 MCD_funcDescTab13[];
59 u32 MCD_funcDescTab14[];
60 u32 MCD_funcDescTab15[];
63 u32 MCD_contextSave0[];
64 u32 MCD_contextSave1[];
65 u32 MCD_contextSave2[];
66 u32 MCD_contextSave3[];
67 u32 MCD_contextSave4[];
68 u32 MCD_contextSave5[];
69 u32 MCD_contextSave6[];
70 u32 MCD_contextSave7[];
71 u32 MCD_contextSave8[];
72 u32 MCD_contextSave9[];
73 u32 MCD_contextSave10[];
74 u32 MCD_contextSave11[];
75 u32 MCD_contextSave12[];
76 u32 MCD_contextSave13[];
77 u32 MCD_contextSave14[];
78 u32 MCD_contextSave15[];
80 u32 MCD_realTaskTableSrc[] = {
83 (u32) MCD_varTab0, /* Task 0 Variable Table */
84 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
87 (u32) MCD_contextSave0, /* Task 0 context save space */
91 (u32) MCD_varTab1, /* Task 1 Variable Table */
93 (u32) MCD_funcDescTab1, /* Task 1 Fn Desc. Table & Flags */
95 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
99 (u32) MCD_contextSave1, /* Task 1 context save space */
103 (u32) MCD_varTab2, /* Task 2 Variable Table */
104 #ifdef MCD_INCLUDE_EU
105 (u32) MCD_funcDescTab2, /* Task 2 Fn Desc. Table & Flags */
107 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
111 (u32) MCD_contextSave2, /* Task 2 context save space */
115 (u32) MCD_varTab3, /* Task 3 Variable Table */
116 #ifdef MCD_INCLUDE_EU
117 (u32) MCD_funcDescTab3, /* Task 3 Fn Desc. Table & Flags */
119 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
123 (u32) MCD_contextSave3, /* Task 3 context save space */
127 (u32) MCD_varTab4, /* Task 4 Variable Table */
128 #ifdef MCD_INCLUDE_EU
129 (u32) MCD_funcDescTab4, /* Task 4 Fn Desc. Table & Flags */
131 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
135 (u32) MCD_contextSave4, /* Task 4 context save space */
139 (u32) MCD_varTab5, /* Task 5 Variable Table */
140 #ifdef MCD_INCLUDE_EU
141 (u32) MCD_funcDescTab5, /* Task 5 Fn Desc. Table & Flags */
143 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
147 (u32) MCD_contextSave5, /* Task 5 context save space */
151 (u32) MCD_varTab6, /* Task 6 Variable Table */
152 #ifdef MCD_INCLUDE_EU
153 (u32) MCD_funcDescTab6, /* Task 6 Fn Desc. Table & Flags */
155 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
159 (u32) MCD_contextSave6, /* Task 6 context save space */
163 (u32) MCD_varTab7, /* Task 7 Variable Table */
164 #ifdef MCD_INCLUDE_EU
165 (u32) MCD_funcDescTab7, /* Task 7 Fn Desc. Table & Flags */
167 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
171 (u32) MCD_contextSave7, /* Task 7 context save space */
175 (u32) MCD_varTab8, /* Task 8 Variable Table */
176 #ifdef MCD_INCLUDE_EU
177 (u32) MCD_funcDescTab8, /* Task 8 Fn Desc. Table & Flags */
179 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
183 (u32) MCD_contextSave8, /* Task 8 context save space */
187 (u32) MCD_varTab9, /* Task 9 Variable Table */
188 #ifdef MCD_INCLUDE_EU
189 (u32) MCD_funcDescTab9, /* Task 9 Fn Desc. Table & Flags */
191 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
195 (u32) MCD_contextSave9, /* Task 9 context save space */
199 (u32) MCD_varTab10, /* Task 10 Variable Table */
200 #ifdef MCD_INCLUDE_EU
201 (u32) MCD_funcDescTab10, /* Task 10 Fn Desc. Table & Flags */
203 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
207 (u32) MCD_contextSave10, /* Task 10 context save space */
211 (u32) MCD_varTab11, /* Task 11 Variable Table */
212 #ifdef MCD_INCLUDE_EU
213 (u32) MCD_funcDescTab11, /* Task 11 Fn Desc. Table & Flags */
215 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
219 (u32) MCD_contextSave11, /* Task 11 context save space */
223 (u32) MCD_varTab12, /* Task 12 Variable Table */
224 #ifdef MCD_INCLUDE_EU
225 (u32) MCD_funcDescTab12, /* Task 12 Fn Desc. Table & Flags */
227 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
231 (u32) MCD_contextSave12, /* Task 12 context save space */
235 (u32) MCD_varTab13, /* Task 13 Variable Table */
236 #ifdef MCD_INCLUDE_EU
237 (u32) MCD_funcDescTab13, /* Task 13 Fn Desc. Table & Flags */
239 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
243 (u32) MCD_contextSave13, /* Task 13 context save space */
247 (u32) MCD_varTab14, /* Task 14 Variable Table */
248 #ifdef MCD_INCLUDE_EU
249 (u32) MCD_funcDescTab14, /* Task 14 Fn Desc. Table & Flags */
251 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
255 (u32) MCD_contextSave14, /* Task 14 context save space */
259 (u32) MCD_varTab15, /* Task 15 Variable Table */
260 #ifdef MCD_INCLUDE_EU
261 (u32) MCD_funcDescTab15, /* Task 15 Fn Desc. Table & Flags */
263 (u32) MCD_funcDescTab0, /* Task 0 Fn Desc. Table & Flags */
267 (u32) MCD_contextSave15, /* Task 15 context save space */
271 u32 MCD_varTab0[] = { /* Task 0 Variable Table */
272 0x00000000, /* var[0] */
273 0x00000000, /* var[1] */
274 0x00000000, /* var[2] */
275 0x00000000, /* var[3] */
276 0x00000000, /* var[4] */
277 0x00000000, /* var[5] */
278 0x00000000, /* var[6] */
279 0x00000000, /* var[7] */
280 0x00000000, /* var[8] */
281 0x00000000, /* var[9] */
282 0x00000000, /* var[10] */
283 0x00000000, /* var[11] */
284 0x00000000, /* var[12] */
285 0x00000000, /* var[13] */
286 0x00000000, /* var[14] */
287 0x00000000, /* var[15] */
288 0x00000000, /* var[16] */
289 0x00000000, /* var[17] */
290 0x00000000, /* var[18] */
291 0x00000000, /* var[19] */
292 0x00000000, /* var[20] */
293 0x00000000, /* var[21] */
294 0x00000000, /* var[22] */
295 0x00000000, /* var[23] */
296 0xe0000000, /* inc[0] */
297 0x20000000, /* inc[1] */
298 0x2000ffff, /* inc[2] */
299 0x00000000, /* inc[3] */
300 0x00000000, /* inc[4] */
301 0x00000000, /* inc[5] */
302 0x00000000, /* inc[6] */
303 0x00000000, /* inc[7] */
306 u32 MCD_varTab1[] = {
341 u32 MCD_varTab2[] = {
376 u32 MCD_varTab3[] = {
411 u32 MCD_varTab4[] = {
446 u32 MCD_varTab5[] = {
481 u32 MCD_varTab6[] = {
516 u32 MCD_varTab7[] = {
551 u32 MCD_varTab8[] = {
586 u32 MCD_varTab9[] = {
621 u32 MCD_varTab10[] = {
656 u32 MCD_varTab11[] = {
691 u32 MCD_varTab12[] = {
726 u32 MCD_varTab13[] = {
761 u32 MCD_varTab14[] = {
796 u32 MCD_varTab15[] = {
831 u32 MCD_funcDescTab0[] = {
898 #ifdef MCD_INCLUDE_EU
899 u32 MCD_funcDescTab1[] = {
966 u32 MCD_funcDescTab2[] = {
1033 u32 MCD_funcDescTab3[] = {
1100 u32 MCD_funcDescTab4[] = {
1167 u32 MCD_funcDescTab5[] = {
1234 u32 MCD_funcDescTab6[] = {
1301 u32 MCD_funcDescTab7[] = {
1368 u32 MCD_funcDescTab8[] = {
1435 u32 MCD_funcDescTab9[] = {
1502 u32 MCD_funcDescTab10[] = {
1569 u32 MCD_funcDescTab11[] = {
1636 u32 MCD_funcDescTab12[] = {
1703 u32 MCD_funcDescTab13[] = {
1770 u32 MCD_funcDescTab14[] = {
1837 u32 MCD_funcDescTab15[] = {
1903 #endif /*MCD_INCLUDE_EU */
1905 u32 MCD_contextSave0[128]; /* Task 0 context save space */
1906 u32 MCD_contextSave1[128]; /* Task 1 context save space */
1907 u32 MCD_contextSave2[128]; /* Task 2 context save space */
1908 u32 MCD_contextSave3[128]; /* Task 3 context save space */
1909 u32 MCD_contextSave4[128]; /* Task 4 context save space */
1910 u32 MCD_contextSave5[128]; /* Task 5 context save space */
1911 u32 MCD_contextSave6[128]; /* Task 6 context save space */
1912 u32 MCD_contextSave7[128]; /* Task 7 context save space */
1913 u32 MCD_contextSave8[128]; /* Task 8 context save space */
1914 u32 MCD_contextSave9[128]; /* Task 9 context save space */
1915 u32 MCD_contextSave10[128]; /* Task 10 context save space */
1916 u32 MCD_contextSave11[128]; /* Task 11 context save space */
1917 u32 MCD_contextSave12[128]; /* Task 12 context save space */
1918 u32 MCD_contextSave13[128]; /* Task 13 context save space */
1919 u32 MCD_contextSave14[128]; /* Task 14 context save space */
1920 u32 MCD_contextSave15[128]; /* Task 15 context save space */
1922 u32 MCD_ChainNoEu_TDT[];
1923 u32 MCD_SingleNoEu_TDT[];
1924 #ifdef MCD_INCLUDE_EU
1925 u32 MCD_ChainEu_TDT[];
1926 u32 MCD_SingleEu_TDT[];
1928 u32 MCD_ENetRcv_TDT[];
1929 u32 MCD_ENetXmit_TDT[];
1931 u32 MCD_modelTaskTableSrc[] = {
1932 (u32) MCD_ChainNoEu_TDT,
1933 (u32) & ((u8 *) MCD_ChainNoEu_TDT)[0x0000016c],
1940 (u32) MCD_SingleNoEu_TDT,
1941 (u32) & ((u8 *) MCD_SingleNoEu_TDT)[0x000000d4],
1948 #ifdef MCD_INCLUDE_EU
1949 (u32) MCD_ChainEu_TDT,
1950 (u32) & ((u8 *) MCD_ChainEu_TDT)[0x000001b4],
1957 (u32) MCD_SingleEu_TDT,
1958 (u32) & ((u8 *) MCD_SingleEu_TDT)[0x00000124],
1966 (u32) MCD_ENetRcv_TDT,
1967 (u32) & ((u8 *) MCD_ENetRcv_TDT)[0x0000009c],
1974 (u32) MCD_ENetXmit_TDT,
1975 (u32) & ((u8 *) MCD_ENetXmit_TDT)[0x000000d0],
1984 u32 MCD_ChainNoEu_TDT[] = {
2079 u32 MCD_SingleNoEu_TDT[] = {
2136 #ifdef MCD_INCLUDE_EU
2137 u32 MCD_ChainEu_TDT[] = {
2250 u32 MCD_SingleEu_TDT[] = {
2327 u32 MCD_ENetRcv_TDT[] = {
2370 u32 MCD_ENetXmit_TDT[] = {
2426 #ifdef MCD_INCLUDE_EU
2427 MCD_bufDesc MCD_singleBufDescs[NCHANNELS];