1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
33
34 35 36 37 38
39
40
41 @Template("./Settings.xdt")
42
43 metaonly module Settings {
44
45 /*!
46 * ======== controllerId =======
47 * Id of the EDMA3 instance that will be used to request resources from.
48 * If this platform is natively supported by this module and the default
49 * configurations are being used, this Id is used to determine, which EDMA3
50 * instance to request resources from.
51 */
52 config UInt controllerId = 0;
53
54 /*!
55 * ======== region ========
56 * Id of the EDMA3 Region we will program with the assigned Resources etc.
57 * If this platform is natively supported by this module and the default
58 * configurations are being used, region number is used to determine,
59 * which region of the EDMA3 configuration to request resources from.
60 * On most heterogenous devices:
61 * Region number 1 usually corresponds to DSP.
62 * Region number 0 usually corresponds to ARM.
63 * On most multicore devices:
64 * Region number n corresponds to Core number n.
65 */
66 config UInt region = 1;
67
68 /*!
69 * ======== globalConfig ========
70 * If a platform is not natively supported by this module or if the default
71 * number of EDMA3 hardware resources is to be overriden for some reason,
72 * this configuration is required to set the SOC specific details of EDMA3
73 * Set this parameter to the name of a structure of type
74 * EDMA3_GblConfigParams (defined in edma3_config.h).
75 * far EDMA3_GblConfigParams _globalConfig;
76 *
77 * Note:- This is required to be supplied ONLY if application is built for * DSP target.
78 */
79 config String globalConfig = null;
80
81 /*!
82 * ======== regionConfig ========
83 * If a platform is not natively supported by this module or if the default
84 * number of resources available to a particular region are to be overriden,
85 * region specific configuration can be specified directly via this
86 * parameter.
87 * Set this parameter to the name of a structure of type
88 * EDMA3_InstanceInitConfg (defined in edma3_config.h).
89 * far EDMA3_InstanceInitConfg _regionConfig;
90 *
91 * Note:- This is required to be supplied ONLY if application is built for * DSP target.
92 */
93 config String regionConfig = null;
94
95 /*!
96 * ======== contiguousPaRams ========
97 * Boolean value indicating if PaRams assigned to scratch groups need to be
98 * contiguous or not
99 */
100 config bool contiguousPaRams = true;
101
102 const UInt EDMA3_MAXGROUPS = 20; /*! Maximum number of groups for sharing
103 EDMA3 resources. */
104 const UInt EDMA3_MAXTCS = 8;
105
106 /*!
107 * ======== globalInit ========
108 * This flag decides if EDMA3 global registers and PaRam entries will be
109 * initialized by this module.
110 * If building this app for a system where ARM-side (or other) drivers might * perform EDMA3 intialization, set this to false so it doesn't overwrite
111 * the ARM-side setup.
112 *
113 * Note:- This is required to be supplied ONLY if application is built for
114 * DSP target.
115 */
116 config Bool globalInit = false;
117
118
119 /*!
120 * ======== maxTccs ========
121 * Arrays containing the maximum number of TCCs that will be assigned to
122 * groups for sharing.
123 * Algorithms created within a given group ID will share the EDMA3 resources
124 * assigned to that group
125 *
126 * Note:- This is required to be supplied ONLY if application is built for
127 * DSP target.
128 */
129 config UInt maxTccs[EDMA3_MAXGROUPS];
130
131 /*!
132 * ======== maxPaRams ========
133 * Arrays containing the maximum number of PaRams that will be assigned to
134 * groups for sharing.
135 * Algorithms created within a given group ID will share the EDMA3 resources
136 * assigned to that group
137 *
138 * Note:- This is required to be supplied ONLY if application is built for
139 * DSP target.
140 */
141 config UInt maxPaRams[EDMA3_MAXGROUPS];
142
143 /*!
144 * ======== maxEdmaChannels ========
145 * Array containing the maximum number of Edma Channels that will be
146 * assigned to groups for sharing.
147 * Algorithms created within a given group ID will share the EDMA3 resources
148 * assigned to that group
149 * On devices where DCHMAP doesn't exist, it is recommended to request as
150 * many channels as PaRams requested
151 *
152 * Note:- This is required to be supplied ONLY if application is built for
153 * DSP target.
154 */
155 config UInt maxEdmaChannels[EDMA3_MAXGROUPS];
156
157 /*!
158 * ======== maxQdmaChannels ========
159 * Array containing the maximum number of Qdma Channels that will be
160 * assigned to groups for sharing.
161 * Algorithms created within a given group ID will share the EDMA3 resources
162 * assigned to that group
163 *
164 * Note:- This is required to be supplied ONLY if application is built for
165 * DSP target.
166 */
167 config UInt maxQdmaChannels[EDMA3_MAXGROUPS];
168
169 /*!
170 * ======== persistentAllocFxn ========
171 * Function for allocating persistent memory for RMAN's and other IRESMAN
172 * implementation's internal objects.
173 *
174 * Note:- This is required to be supplied ONLY if
175 * {@link ti.sdo.fc.rman.RMAN#useDSKT2} is set to `false`.
176 */
177 config String persistentAllocFxn = null;
178
179 /*!
180 * ======== persistentFreeFxn ========
181 * Function for freeing persistent memory used by RMAN and other IRESMAN
182 * implementation's internal objects.
183 *
184 * Note:- This is required to be supplied ONLY if
185 * {@link ti.sdo.fc.rman.RMAN#useDSKT2} is set to `false`.
186 */
187 config String persistentFreeFxn = null;
188
189 /*!
190 * ======== semCreateFxn ========
191 * Function to create semaphores used by various individual resource
192 * manager(s) registered with RMAN.
193 *
194 * Function signature is:
195 * @p(code)
196 * Void * _semCreate(Int key, Int count);
197 */
198 config String semCreateFxn = null;
199
200 /*!
201 * ======== semDeleteFxn ========
202 * Function to delete semaphores used by various individual resource
203 * manager(s) registered with RMAN.
204 *
205 * Function signature is:
206 * @p(code)
207 * Void _semDelete(Void * sem);
208 */
209 config String semDeleteFxn = null;
210
211 /*!
212 * ======== semPendFxn ========
213 * Function to pend on semaphores used by various resource manager(s)
214 * registered with RMAN.
215 *
216 * Function signature is:
217 * @p(code)
218 * Int _semPend(Void * sem, UInt32 timeout);
219 */
220 config String semPendFxn = null;
221
222 /*!
223 * ======== semPostFxn ========
224 * Function to post on Semaphores used by various resource manager(s)
225 * registered with RMAN.
226 *
227 * Function signature is:
228 * @p(code)
229 * Void _semPost(Void * sem);
230 */
231 config String semPostFxn = null;
232
233 /*!
234 * ======== maxAlgs ========
235 * Maximum number of algorithm instances that will be created
236 */
237 config UInt maxAlgs = 32;
238
239 /*!
240 * ========= maxRequests ======
241 * Maximum number of "active" resource requests that will be
242 * made by the algorithms in each scratch group
243 */
244 config UInt maxRequests = 64;
245
246
247 /*!
248 * ======= intMemoryQ =======
249 * Configuration to setup Queue # to be used to internal memory writes,
250 * Multiple Queues can be configured for same type of memory writes to allow
251 * load balancing for performance.
252 * This is required to be supplied ONLY if application is built for DSP
253 * target .
254 */
255 config UInt intMemoryQ0;
256 config UInt intMemoryQ1;
257 config UInt intMemoryQ2;
258
259 /*!
260 * ======= extMemoryQ =======
261 * Configuration to setup Queue # to be used to external memory writes
262 * Multiple Queues can be configured for same type of memory writes to allow
263 * load balancing for performance.
264 * This is required to be supplied ONLY if application is built for DSP
265 * target .
266 */
267 config UInt extMemoryQ0;
268 config UInt extMemoryQ1;
269 config UInt extMemoryQ2;
270
271 272 273 274 275 276 277 278
279 config UInt otherQ0;
280 config UInt otherQ1;
281
282 /*!
283 * ======== eventQueueSetup ========
284 * This flag decides if EDMA3 global registers related to Transfer
285 * Controller/Queues should be programmed.
286 * If using on a device where ARM-side drivers might perform the
287 * intialization, set this to false so it doesn't overwrite the ARM-side
288 * setup.
289 * This is required to be supplied ONLY if application is built for
290 * DSP target.
291 */
292 config Bool eventQueueSetup = false;
293
294 295 296 297 298 299 300 301 302
303 config Int queueTCMap[EDMA3_MAXTCS];
304
305 306 307 308 309 310 311 312 313 314 315 316
317 config Int queuePriority[EDMA3_MAXTCS];
318
319 /*!
320 * ======== ipcKeyBase ========
321 * Linux only. Base value of keys of Linux IPC objects used by
322 * EDMA3. The IPC objects created by EDMA3 will use keys starting
323 * at this
324 * value, and incrementing with each new object. There are currently
325 * three IPC objects, so keys in the range of ipcKeyBase to ipcKeyBase + 2
326 * will be reserved for EDMA3. The default value of ipcKeyBase is
327 * ascii code for "3AMD".
328 *
329 * WARNING: This value should only be changed if it conflicts with
330 * another IPC key in the system that cannot be changed. If this value
331 * is changed, all programs using EDMA3 that will be run simultaneously
332 * must have the ipcKeyBase configured to the new value.
333 * @_nodoc
334 */
335 config UInt ipcKeyBase = 0x33414D44;
336 }
337 338 339 340
341