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 * ======== DSKT2 ========
36 * XDAIS algorithm management library.
37 */
38 @Template("./DSKT2.xdt")
39
40 metaonly module DSKT2 {
41
42 /*!
43 * ======== DARAM0 ========
44 * IALG memory space mapping of IALG_DARAM0.
45 *
46 * This must be assigned the name of an instance of a module that
47 * implements IHeap.
48 */
49 config String DARAM0;
50
51 /*!
52 * ======== DARAM1 ========
53 * IALG memory space mapping of IALG_DARAM1.
54 *
55 * This must be assigned the name of an instance of a module that
56 * implements IHeap.
57 */
58 config String DARAM1;
59
60 /*!
61 * ======== DARAM2 ========
62 * IALG memory space mapping of IALG_DARAM2.
63 *
64 * This must be assigned the name of an instance of a module that
65 * implements IHeap.
66 */
67 config String DARAM2;
68
69 /*!
70 * ======== SARAM0 ========
71 * IALG memory space mapping of IALG_SARAM0.
72 *
73 * This must be assigned the name of an instance of a module that
74 * implements IHeap.
75 */
76 config String SARAM0;
77
78 /*!
79 * ======== SARAM1 ========
80 * IALG memory space mapping of IALG_SARAM1.
81 *
82 * This must be assigned the name of an instance of a module that
83 * implements IHeap.
84 */
85 config String SARAM1;
86
87 /*!
88 * ======== SARAM2 ========
89 * IALG memory space mapping of IALG_SARAM2.
90 *
91 * This must be assigned the name of an instance of a module that
92 * implements IHeap.
93 */
94 config String SARAM2;
95
96 /*!
97 * ======== ESDATA ========
98 * IALG memory space mapping of IALG_ESDATA.
99 *
100 * This must be assigned the name of an instance of a module that
101 * implements IHeap.
102 */
103 config String ESDATA;
104
105 /*!
106 * ======== IPROG ========
107 * IALG memory space mapping of IALG_IPROG.
108 *
109 * This must be assigned the name of an instance of a module that
110 * implements IHeap.
111 */
112 config String IPROG;
113
114 /*!
115 * ======== EPROG ========
116 * IALG memory space mapping of IALG_EPROG.
117 *
118 * This must be assigned the name of an instance of a module that
119 * implements IHeap.
120 */
121 config String EPROG;
122
123 /*!
124 * ======== DSKT2_HEAP ========
125 * Heap for allocating internal DSKT2 data structures.
126 *
127 * Objects internal to the DSKT2 module will be allocated from this heap.
128 */
129 config String DSKT2_HEAP;
130
131 /*!
132 * ======== ALLOW_EXTERNAL_SCRATCH ========
133 * Allow external memory to be used for algorithm scratch memory requests.
134 *
135 * If an algorithm requests scratch memory, and insufficient scratch
136 * memory is available, scratch buffers will be allocated in external
137 * memory if property is 'true'.
138 */
139 config bool ALLOW_EXTERNAL_SCRATCH = true;
140
141 /*!
142 * ======== DARAM_SCRATCH_SIZES ========
143 * Shared IALG_DARAM0 scratch group sizes.
144 */
145 config UInt DARAM_SCRATCH_SIZES[] =
146 [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
147
148 /*!
149 * ======== SARAM_SCRATCH_SIZES ========
150 * Shared IALG_SARAM0 scratch group sizes.
151 */
152 config UInt SARAM_SCRATCH_SIZES[] =
153 [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
154
155
156 /*!
157 * ======== cacheWritebackInvalidateFxn ========
158 * Name of function implementing cache writeback invalidate.
159 *
160 * This function must have the following signature:
161 * @p(code)
162 * (*DSKT2_CacheWBInvFxn)(Ptr blockPtr, size_t byteCnt, bool wait)
163 * @p
164 *
165 * For C6000 platforms DSKT2 calls this function to ensure that the
166 * algorithm instance memory is not resident in cache when it is
167 * instantiated. This is necessary for compliance with XDAIS C6000 DMA
168 * Rules and Guidelines.
169 */
170 config String cacheWritebackInvalidateFxn = "DSKT2_cacheWBInv";
171
172 /*!
173 * ======== disableLazyDeactivate =======
174 *
175 * Set this to TRUE to disable lazy deactivate feature in DSKT2.
176 * This could affect performance of your algorithm, and should be used
177 * mostly for diagnostic purposes.
178 */
179 config Bool disableLazyDeactivate;
180
181 /*!
182 * ======== ipcKeyBase ========
183 * Base value of keys of multi-process objects used by DSKT2.
184 *
185 * Linux only. The MP objects created by DSKT2 will use keys starting at
186 * this value, and incrementing with each new object. There is currently
187 * a DSKT2 lock and semaphores for each scratch group, that use a key.
188 * So the keys used by DSKT2 will range from ipcKeyBase to ipcKeyBase +
189 * DSKT2_NUM_SCRATCH_GROUPS.
190 * The default value of ipcKeyBase is ascii code for "DSKT".
191 *
192 * WARNING: This value should only be changed if it conflicts with
193 * another key in the system that cannot be changed. If this value
194 * is changed, all programs using DSKT2 that will be run simultaneously
195 * must have the ipcKeyBase configured to the new value.
196 *
197 * TODO:H, do we need this since we only support BIOS?
198 * @_nodoc
199 */
200 config UInt ipcKeyBase = 0x44534B54;
201
202 }
203
204 205 206 207
208