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 */