TIOVX User Guide
tivx_config.h
1 /*
2 *
3 * Copyright (c) 2018 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 
65 #ifndef TIVX_CONFIG_H_
66 #define TIVX_CONFIG_H_
67 
68 #ifdef __cplusplus
69 extern "C" {
70 #endif
71 
75 #define TIVX_KERNEL_MAX_PARAMS (64u)
76 
80 #define TIVX_NODE_MAX_OUT_NODES (8u)
81 
85 #define TIVX_NODE_MAX_IN_NODES (8u)
86 
90 #define TIVX_PYRAMID_MAX_LEVEL_OBJECTS (32u)
91 
95 #define TIVX_OBJECT_ARRAY_MAX_ITEMS (32u)
96 
100 #define TIVX_GRAPH_MAX_NODES (32u)
101 
105 #define TIVX_GRAPH_MAX_SUPER_NODES (8u)
106 
112 #define TIVX_GRAPH_MAX_PIPELINE_DEPTH (16u)
113 
117 #define TIVX_NODE_MAX_REPLICATE (32u)
118 
124 #define TIVX_META_FORMAT_MAX_OBJECTS (512u)
125 
131 #define TIVX_CONTEXT_MAX_OBJECTS (1u)
132 
138 #define TIVX_GRAPH_MAX_OBJECTS (256u)
139 
145 #define TIVX_SUPER_NODE_MAX_OBJECTS (16u)
146 
152 #define TIVX_NODE_MAX_OBJECTS (32u)
153 
159 #define TIVX_KERNEL_MAX_OBJECTS (128u)
160 
166 #define TIVX_ARRAY_MAX_OBJECTS (96u)
167 
173 #define TIVX_USER_DATA_OBJECT_MAX_OBJECTS (96u)
174 
180 #define TIVX_RAW_IMAGE_MAX_OBJECTS (96u)
181 
187 #define TIVX_CONVOLUTION_MAX_OBJECTS (48u)
188 
194 #define TIVX_DELAY_MAX_OBJECTS (48u)
195 
201 #define TIVX_DISTRIBUTION_MAX_OBJECTS (48u)
202 
208 #define TIVX_IMAGE_MAX_OBJECTS (512u + 1u)
209 
215 #define TIVX_TENSOR_MAX_OBJECTS (256u)
216 
222 #define TIVX_LUT_MAX_OBJECTS (48u)
223 
229 #define TIVX_MATRIX_MAX_OBJECTS (48u)
230 
236 #define TIVX_PYRAMID_MAX_OBJECTS (48u)
237 
243 #define TIVX_REMAP_MAX_OBJECTS (48u)
244 
250 #define TIVX_SCALAR_MAX_OBJECTS (48u)
251 
257 #define TIVX_THRESHOLD_MAX_OBJECTS (48u)
258 
264 #define TIVX_ERROR_MAX_OBJECTS (30u)
265 
271 #define TIVX_OBJ_ARRAY_MAX_OBJECTS (256u)
272 
278 #define TIVX_PARAMETER_MAX_OBJECTS (48u)
279 
285 #define TIVX_DATA_REF_Q_MAX_OBJECTS (64u)
286 
291 #if defined(SOC_J6)
292 #define TIVX_TARGET_MAX_TARGETS_IN_CPU (16u)
293 #else
294 #define TIVX_TARGET_MAX_TARGETS_IN_CPU (64u)
295 #endif
296 
303 #define TIVX_TARGET_MAX_JOB_QUEUE_DEPTH (96u)
304 
310 #define TIVX_CONTEXT_MAX_REFERENCES (512u + 256u + 64u + 8u)
311 
312 
318 #define TIVX_CONTEXT_MAX_KERNELS (128u)
319 
325 #define TIVX_CONTEXT_MAX_USER_STRUCTS (64u)
326 
330 #define TIVX_MAX_TARGETS_PER_KERNEL (8u)
331 
335 #define TIVX_MODULE_MAX (16u)
336 
342 #define TIVX_TARGET_KERNEL_MAX (256u)
343 
350 #define TIVX_PYRAMID_MAX_LEVELS_ORB (17u)
351 
357 #define TIVX_TARGET_KERNEL_INSTANCE_MAX (64u)
358 
364 #define TIVX_ARRAY_MAX_MAPS (16u)
365 
371 #define TIVX_USER_DATA_OBJECT_MAX_MAPS (16u)
372 
378 #define TIVX_RAW_IMAGE_MAX_MAPS (16u)
379 
383 #define TIVX_GRAPH_MAX_HEAD_NODES (8u)
384 
388 #define TIVX_GRAPH_MAX_LEAF_NODES (16u)
389 
393 #define TIVX_GRAPH_MAX_PARAMS (8u)
394 
398 #define TIVX_GRAPH_MAX_DATA_REF_QUEUE (32u)
399 
403 #define TIVX_GRAPH_MAX_DELAYS (8u)
404 
408 #define TIVX_GRAPH_MAX_DATA_REF (128u)
409 
415 #define TIVX_IMAGE_MAX_SUBIMAGES (16u)
416 
422 #define TIVX_RAW_IMAGE_MAX_SUBIMAGES (16u)
423 
429 #define TIVX_IMAGE_MAX_MAPS (16u)
430 
436 #define TIVX_TENSOR_MAX_MAPS (16u)
437 
441 #define TIVX_DELAY_MAX_OBJECT (8u)
442 
446 #define TIVX_DELAY_MAX_PRM_OBJECT (16u)
447 
451 #define TIVX_EVENT_QUEUE_MAX_SIZE (256u)
452 
456 #define TIVX_MAX_DSP_BAM_USER_PLUGINS (8u)
457 
461 #define TIVX_SUPER_NODE_MAX_NODES (16u)
462 
466 #define TIVX_SUPER_NODE_MAX_EDGES (16u)
467 
471 #define TIVX_DEFAULT_TILE_WIDTH (64u)
472 
476 #define TIVX_DEFAULT_TILE_HEIGHT (48u)
477 
484 #define TIVX_DEFAULT_KERNAL_TIMEOUT (TIVX_EVENT_TIMEOUT_WAIT_FOREVER)
485 
492 #define TIVX_DEFAULT_GRAPH_TIMEOUT (TIVX_EVENT_TIMEOUT_WAIT_FOREVER)
493 
497 #define TIVX_MAX_CTRL_CMD_OBJECTS (4u)
498 
502 #define TIVX_MAX_KERNEL_ID (VX_KERNEL_MASK)
503 
507 #define TIVX_MAX_LIBRARY_ID (VX_LIBRARY(VX_LIBRARY_MASK))
508 
509 #ifdef __cplusplus
510 }
511 #endif
512 
513 #endif