TIOVX User Guide
tivx_config_j784s4.h
1 /*
2 *
3 * Copyright (c) 2023 Texas Instruments Incorporated
4 *
5 * All rights reserved not granted herein.
6 *
7 * Limited License.
8 *
9 * Texas Instruments Incorporated grants a world-wide, royalty-free, non-exclusive
10 * license under copyrights and patents it now or hereafter owns or controls to make,
11 * have made, use, import, offer to sell and sell ("Utilize") this software subject to the
12 * terms herein. With respect to the foregoing patent license, such license is granted
13 * solely to the extent that any such patent is necessary to Utilize the software alone.
14 * The patent license shall not apply to any combinations which include this software,
15 * other than combinations with devices manufactured by or for TI ("TI Devices").
16 * No hardware patent is licensed hereunder.
17 *
18 * Redistributions must preserve existing copyright notices and reproduce this license
19 * (including the above copyright notice and the disclaimer and (if applicable) source
20 * code license limitations below) in the documentation and/or other materials provided
21 * with the distribution
22 *
23 * Redistribution and use in binary form, without modification, are permitted provided
24 * that the following conditions are met:
25 *
26 * * No reverse engineering, decompilation, or disassembly of this software is
27 * permitted with respect to any software provided in binary form.
28 *
29 * * any redistribution and use are licensed by TI for use only with TI Devices.
30 *
31 * * Nothing shall obligate TI to provide you with source code for the software
32 * licensed and provided to you in object code.
33 *
34 * If software source code is provided to you, modification and redistribution of the
35 * source code are permitted provided that the following conditions are met:
36 *
37 * * any redistribution and use of the source code, including any resulting derivative
38 * works, are licensed by TI for use only with TI Devices.
39 *
40 * * any redistribution and use of any object code compiled from the source code
41 * and any resulting derivative works, are licensed by TI for use only with TI Devices.
42 *
43 * Neither the name of Texas Instruments Incorporated nor the names of its suppliers
44 *
45 * may be used to endorse or promote products derived from this software without
46 * specific prior written permission.
47 *
48 * DISCLAIMER.
49 *
50 * THIS SOFTWARE IS PROVIDED BY TI AND TI'S LICENSORS "AS IS" AND ANY EXPRESS
51 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
52 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
53 * IN NO EVENT SHALL TI AND TI'S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
54 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
55 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
56 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
57 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
58 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
59 * OF THE POSSIBILITY OF SUCH DAMAGE.
60 *
61 */
62 
63 
64 #ifndef TIVX_CONFIG_J784S4_H_
65 #define TIVX_CONFIG_J784S4_H_
66 
67 #ifdef __cplusplus
68 extern "C" {
69 #endif
70 
71 
72 /*
73  * FRAMEWORK OBJECTS
74  */
75 /*
76  * Context configuration resources
77  */
81 #define TIVX_CONTEXT_MAX_OBJECTS (1u)
82 
86 #define TIVX_CONTEXT_MAX_KERNELS (128u)
87 
91 #define TIVX_CONTEXT_MAX_USER_STRUCTS (128u)
92 
93 
94 /*
95  * Graph configuration resources
96  */
100 #define TIVX_GRAPH_MAX_DELAYS (8u)
101 
105 #define TIVX_GRAPH_MAX_HEAD_NODES (8u)
106 
112 #define TIVX_GRAPH_MAX_PIPELINE_DEPTH (16u)
113 
117 #define TIVX_GRAPH_MAX_LEAF_NODES (16u)
118 
122 #define TIVX_GRAPH_MAX_PARAMS (32u)
123 
127 #define TIVX_GRAPH_MAX_DATA_REF_QUEUE (32u)
128 
132 #define TIVX_GRAPH_MAX_NODES (64u)
133 
137 #define TIVX_GRAPH_MAX_DATA_REF (128u)
138 
142 #define TIVX_GRAPH_MAX_OBJECTS (256u)
143 
144 
145 /*
146  * Node configuration resources
147  */
151 #define TIVX_NODE_MAX_OUT_NODES (8u)
152 
156 #define TIVX_NODE_MAX_IN_NODES (8u)
157 
161 #define TIVX_NODE_MAX_REPLICATE (64u)
162 
166 #define TIVX_NODE_MAX_OBJECTS (64u)
167 
168 
169 /*
170  * DATA OBJECTS
171  */
172 /*
173  * Array data object configuration resources
174  */
178 #define TIVX_ARRAY_MAX_MAPS (16u)
179 
183 #define TIVX_ARRAY_MAX_OBJECTS (96u)
184 
185 
186 /*
187  * Convolution data object configuration resources
188  */
192 #define TIVX_CONVOLUTION_MAX_OBJECTS (48u)
193 
194 
195 /*
196  * Distribution data object configuration resources
197  */
201 #define TIVX_DISTRIBUTION_MAX_OBJECTS (48u)
202 
203 
204 /*
205  * Delay data object configuration resources
206  */
210 #define TIVX_DELAY_MAX_OBJECT (8u)
211 
215 #define TIVX_DELAY_MAX_PRM_OBJECT (16u)
216 
220 #define TIVX_DELAY_MAX_OBJECTS (48u)
221 
222 
223 /*
224  * Image data object configuration resources
225  */
229 #define TIVX_IMAGE_MAX_MAPS (16u)
230 
234 #define TIVX_IMAGE_MAX_SUBIMAGES (16u)
235 
239 #define TIVX_IMAGE_MAX_OBJECTS (1024u + 1u)
240 
241 
242 /*
243  * LUT data object configuration resources
244  */
248 #define TIVX_LUT_MAX_OBJECTS (48u)
249 
250 
251 /*
252  * Matrix configuration resources
253  */
257 #define TIVX_MATRIX_MAX_OBJECTS (48u)
258 
259 
260 /*
261  * Object array configuration resources
262  */
266 #define TIVX_OBJECT_ARRAY_MAX_ITEMS (32u)
267 
271 #define TIVX_OBJ_ARRAY_MAX_OBJECTS (512u)
272 
273 
274 /*
275  * Pyramid data object configuration resources
276  */
280 #define TIVX_PYRAMID_MAX_LEVEL_OBJECTS (64u)
281 
285 #define TIVX_PYRAMID_MAX_OBJECTS (64u)
286 
287 
288 /*
289  * Raw image data object configuration resources
290  */
294 #define TIVX_RAW_IMAGE_MAX_MAPS (16u)
295 
299 #define TIVX_RAW_IMAGE_MAX_OBJECTS (96u)
300 
301 
302 /*
303  * Remap configuration resources
304  */
308 #define TIVX_REMAP_MAX_OBJECTS (48u)
309 
310 
311 /*
312  * Scalar configuration resources
313  */
317 #define TIVX_SCALAR_MAX_OBJECTS (48u)
318 
319 
320 /*
321  * Tensor configuration resources
322  */
326 #define TIVX_TENSOR_MAX_MAPS (16u)
327 
331 #define TIVX_TENSOR_MAX_OBJECTS (256u)
332 
333 
334 /*
335  * Threshold configuration resources
336  */
340 #define TIVX_THRESHOLD_MAX_OBJECTS (48u)
341 
342 
343 /*
344  * User data configuration resources
345  */
349 #define TIVX_USER_DATA_OBJECT_MAX_MAPS (16u)
350 
354 #define TIVX_USER_DATA_OBJECT_MAX_OBJECTS (256u)
355 
356 
357 /*
358  * MISCELLANEOUS OBJECTS
359  */
360 /*
361  * Error configuration resources
362  */
366 #define TIVX_ERROR_MAX_OBJECTS (30u)
367 
368 
369 /*
370  * Event queue configuration resources
371  */
375 #define TIVX_EVENT_QUEUE_MAX_SIZE (256u)
376 
377 
378 /*
379  * Kernel configuration resources
380  */
384 #define TIVX_KERNEL_MAX_PARAMS (64u)
385 
389 #define TIVX_KERNEL_MAX_OBJECTS (128u)
390 
391 
392 /*
393  * Meta configuration resources
394  */
398 #define TIVX_META_FORMAT_MAX_OBJECTS (1024u)
399 
400 
401 /*
402  * Module configuration resources
403  */
407 #define TIVX_MODULE_MAX (16u)
408 
409 
410 /*
411  * Parameter configuration resources
412  */
416 #define TIVX_PARAMETER_MAX_OBJECTS (48u)
417 
418 
419 /*
420  * TI EXTENSIONS
421  */
422  /*
423  * Reference queue configuration resources
424  */
428 #define TIVX_DATA_REF_Q_MAX_OBJECTS (128u)
429 
430 
431 /*
432  * Control command configuration resources
433  */
437 #define TIVX_MAX_CTRL_CMD_OBJECTS (4u)
438 
439 
440 /*
441  * Target configuration resources
442  */
447 #define TIVX_TARGET_MAX_TARGETS_IN_CPU (128u)
448 
449 
450 /*
451  * Target kernel configuration resources
452  */
456 #define TIVX_MAX_TARGETS_PER_KERNEL (40u)
457 
461 #define TIVX_TARGET_KERNEL_INSTANCE_MAX (64u)
462 
466 #define TIVX_TARGET_KERNEL_MAX (256u)
467 
468 
469 /*
470  * FRAMEWORK OBJECTS CONT.
471  */
472 /*
473  * Context configuration resources cont.
474  */
478 #define TIVX_CONTEXT_MAX_REFERENCES (TIVX_GRAPH_MAX_OBJECTS+ \
479  TIVX_NODE_MAX_OBJECTS+ \
480  TIVX_ARRAY_MAX_OBJECTS+ \
481  TIVX_CONVOLUTION_MAX_OBJECTS+ \
482  TIVX_DISTRIBUTION_MAX_OBJECTS+ \
483  TIVX_DELAY_MAX_OBJECTS+ \
484  TIVX_IMAGE_MAX_OBJECTS+ \
485  TIVX_LUT_MAX_OBJECTS+ \
486  TIVX_MATRIX_MAX_OBJECTS+ \
487  TIVX_OBJ_ARRAY_MAX_OBJECTS+ \
488  TIVX_PYRAMID_MAX_OBJECTS+ \
489  TIVX_RAW_IMAGE_MAX_OBJECTS+ \
490  TIVX_REMAP_MAX_OBJECTS+ \
491  TIVX_SCALAR_MAX_OBJECTS+ \
492  TIVX_TENSOR_MAX_OBJECTS+ \
493  TIVX_THRESHOLD_MAX_OBJECTS+ \
494  TIVX_USER_DATA_OBJECT_MAX_OBJECTS+ \
495  TIVX_DATA_REF_Q_MAX_OBJECTS+ \
496  TIVX_ERROR_MAX_OBJECTS+ \
497  TIVX_KERNEL_MAX_OBJECTS+ \
498  TIVX_META_FORMAT_MAX_OBJECTS+ \
499  TIVX_PARAMETER_MAX_OBJECTS)
500 
501 
502 #ifdef __cplusplus
503 }
504 #endif
505 
506 #endif