1 /******************************************************************************
2 	TORNADO AMC modules Software Development Kit (SDK). Rev 4A.
3 	General definitions and API functions.
4 	(C) MicroLAB Systems, 2015-2017
5 
6 
7 	http://www.mlabsys.com
8 	ftp://ftp.mlabsys.com
9 	email: techsupport@mlabsys.com
10 
11 
12 	Description:
13 	------------
14 	This file contains general definitions and API functions for TORNADO AMC
15 	modules SDK and must be included in the user C-application for
16 	TORNADO AMC modules.
17 
18 
19 	Revision history:
20 	-----------------
21 	rev.2A		- 2015, initial release for TORNADO-A6678 board rev.1B;
22 	rev.3A		- 2016:
23 						- added support for TORNADO-A6678/FMC board rev.1A;
24 	rev.3B		- 2017:
25 						- added support for TORNADO-A6678/FMC board rev.1B;
26 	rev.4A		- 2017:
27 					- added support for TORNADO-AZ/FMC board rev.1A;
28 
29 
30 	Notes:
31 	------
32 	1.	This C-header file is an include file for TI C6xxx C/C++ Code
33 		Generation Tools, which must be invoked to compile for C66xx DSP
34 		platform.
35 
36 	2.	This file is best viewed with the TAB setting set to '4'.
37 
38 
39 	Copyright:
40 	----------
41 	This utility is supplied free of charge as it is without any obligation
42 	from MicroLAB Systems. No responsibility is assumed for any use or misuse
43 	of these utilities.
44 
45 ******************************************************************************/
46 
47 
48 /**
49  * @file  TA66XX_DSP.h
50  *
51  * @brief  Main include file
52  *
53  * This file contains general definitions and API functions for TORNADO
54  * AMC modules SDK
55  *
56  */
57 
58 
59 #ifndef __TA66XX_DSP_H__									// check for this file has been already included
60 #define __TA66XX_DSP_H__									1
61 
62 
63 // General defs
64 #define TA66XX_ON											1
65 #define TA66XX_OFF											0
66 
67 
68 // Include C66xx DSP defs, macros and aux functions
69 #include "C66XX.h"
70 // Include TORNADO AMC SDK functions errors
71 #include "TASDK_ERR.h"
72 
73 
74 
75 //=============================================================================
76 /** TORNADO AMC SDK revision ID */
77 #define TA66XX_SDK_REVISION_ID								"4A"
78 //=============================================================================
79 
80 
81 
82 //=============================================================================
83 //============ TORNADO AMC SDK API functions ID defs ==========================
84 //=============================================================================
85 /** @addtogroup  TA66XX_FUNCTIONS_ID  SDK API functions ID defs
86  *  @{
87  */
88 
89 
90 /**< Function name max size */
91 #define TA66XX_FUNCTION_NAME_LEN_MAX						64
92 
93 
94 enum
95 {
96 	TA66XX_GET_ERROR_MESSAGE_FUNCTION_ID = 0,
97 	TA66XX_GET_FUNCTION_NAME_FUNCTION_ID,
98 	TA66XX_BC_SET_I2C_INTERRUPT_NUMBER_FUNCTION_ID,
99 	TA66XX_BC_SET_UART_INTERRUPT_NUMBER_FUNCTION_ID,
100 	TA66XX_BC_INIT_FUNCTION_ID,
101 	TA66XX_BC_MAP_DSP_GPIO_INTERRUPT_FUNCTION_ID,
102 	TA66XX_BC_UNMAP_DSP_GPIO_INTERRUPT_FUNCTION_ID,
103 	TA66XX_BC_INIT_UART_FUNCTION_ID,
104 	TA66XX_BC_WRITE_EEPROM_FUNCTION_ID,
105 	TA66XX_BC_READ_EEPROM_FUNCTION_ID,
106 	TA66XX_BC_ERASE_EEPROM_FUNCTION_ID,
107 	TA66XX_BC_GET_DEVICE_INFO_FUNCTION_ID,
108 	TA66XX_BC_GET_HW_CFG_INFO_FUNCTION_ID,
109 	TA66XX_BC_GET_FMC_INFO_FUNCTION_ID,
110 	TA66XX_BC_GET_TEMP_STATE_FUNCTION_ID,
111 	TA66XX_BC_GET_POWER_STATE_FUNCTION_ID,
112 	TA66XX_BC_GET_FMC_POWER_STATE_FUNCTION_ID,
113 	TA66XX_BC_GET_SFP_INFO_FUNCTION_ID,
114 	TA66XX_BC_SET_FPGA_HIF_CONFIG_FUNCTION_ID,
115 	TA66XX_BC_GET_FPGA_HIF_CONFIG_FUNCTION_ID,
116 	TA66XX_BC_CLEAR_FPGA_CNF_FUNCTION_ID,
117 	TA66XX_BC_LOAD_FPGA_CNF_FUNCTION_ID,
118 	TA66XX_BC_GET_GBE_PORT_INFO_FUNCTION_ID,
119 	TA66XX_BC_INIT_GBE_PORT_FUNCTION_ID,
120 	TA66XX_BC_ERASE_FLASH_FUNCTION_ID,
121 	TA66XX_BC_WRITE_FLASH_FUNCTION_ID,
122 	TA66XX_BC_READ_FLASH_FUNCTION_ID,
123 	TA66XX_SC_INIT_FLASH_RECORD_LIST_FUNCTION_ID,
124 	TA66XX_SC_GET_NUMBER_OF_FLASH_RECORDS_FUNCTION_ID,
125 	TA66XX_SC_GET_FLASH_RECORD_LIST_FUNCTION_ID,
126 	TA66XX_SC_GET_FLASH_RECORD_INFO_FUNCTION_ID,
127 	TA66XX_SC_READ_FLASH_RECORD_DATA_FUNCTION_ID,
128 	TA66XX_SC_CREATE_FLASH_RECORD_FUNCTION_ID,
129 	TA66XX_SC_WRITE_FLASH_RECORD_DATA_FUNCTION_ID,
130 	TA66XX_SC_XCLOSE_FLASH_RECORD_FUNCTION_ID,
131 	TA66XX_SC_UPDATE_FLASH_RECORD_FUNCTION_ID,
132 	TA66XX_SC_DELETE_FLASH_RECORD_FUNCTION_ID,
133 	TA66XX_SC_SQUEEZE_FLASH_RECORDS_FUNCTION_ID,
134 	TA66XX_SC_GET_FLASH_FREE_SPACE_FUNCTION_ID,
135 	TA66XX_SC_GET_BOOT_SEQ_FUNCTION_ID,
136 	TA66XX_SC_DELETE_BOOT_SEQ_FUNCTION_ID,
137 	TA66XX_SC_SET_BOOT_SEQ_FUNCTION_ID,
138 	TA66XX_SC_LOAD_DSP_APPL_FROM_MEMORY_FUNCTION_ID,
139 	TA66XX_SC_LOAD_DSP_APPL_FROM_FLASH_RECORD_FUNCTION_ID,
140 	TA66XX_SC_LOAD_FPGA_CNF_FROM_FLASH_RECORD_FUNCTION_ID,
141 	TA66XX_NUMBER_OF_FUNCTIONS
142 };
143 /** @}*/
144 //=============================================================================
145 
146 
147 
148 #ifdef __cplusplus
149 extern "C" {
150 #endif
151 
152 
153 
154 //=============================================================================
155 //============ General SDK API functions declarations =========================
156 //=============================================================================
157 
158 /** @addtogroup  TA66XX_GENERAL  TORNADO AMC SDK general API functions
159  *  @{
160  */
161 
162 /*------------ TA66XX_set_error() function -------------------------------*//**
163  * @brief  Function should be used on exit from SDK API functions in
164  * order to set error code and function ID of SDK API functions
165  *
166  * @param[in]  err - error code;
167  * @param[in]  function_id - function ID of SDK API functions;
168  *
169  * @return  Error code
170  *
171 -----------------------------------------------------------------------------*/
172 int32_t TA66XX_set_error(int32_t err, int32_t function_id);
173 
174 
175 /*------------ TA66XX_get_last_error() function --------------------------*//**
176  * @brief  Function returns error code of last executed API function
177  *
178  * @return  Error code of last executed API function
179  *
180 -----------------------------------------------------------------------------*/
181 int32_t TA66XX_get_last_error(void);
182 
183 
184 /*------------ TA66XX_get_error_flag() function --------------------------*//**
185  * @brief  Function returns status of ERROR_FLAG for API functions
186  *
187  * ERROR_FLAG is set by each API function in case error has been detected.
188  * ERROR_FLAG can be reset by TA66XX_clear_error_flag() API function
189  *
190  * @param[out]  error_code - pointer to a variable to receive the error code in
191  *					case error has been detected. In case pointer is NULL, then
192  *					no error code is returned;
193  * @param[out]  error_function_id - pointer to a variable to receive ID of the
194  *					first API function, which has returned with error. In case
195  *					pointer is NULL, then no function ID is returned;
196  *
197  * @return  Status of ERROR_FLAG: ON or OFF
198  *
199 -----------------------------------------------------------------------------*/
200 int32_t TA66XX_get_error_flag(int32_t *error_code, int32_t *error_function_id);
201 
202 
203 /*------------ TA66XX_clear_error_flag() function ------------------------*//**
204  * @brief  Function clear ERROR_FLAG for API functions
205  *
206  * @return  Always OK
207  *
208 -----------------------------------------------------------------------------*/
209 int32_t TA66XX_clear_error_flag(void);
210 
211 
212 /*------------ TA66XX_get_error_message() function -----------------------*//**
213  * @brief  Function returns the text interpretation of the error code.
214  *
215  * @param[in]  error - error code to be interpreted;
216  * @param[out]  error_message - pointer to the returned string. In case pointer
217  *				is NULL, then no text is filled in;
218  *
219  * @return  Error code
220  *
221 -----------------------------------------------------------------------------*/
222 int32_t TA66XX_get_error_message(int32_t error, char *error_message);
223 
224 
225 /*------------ TA66XX_get_function_name() function -----------------------*//**
226  * @brief  Function returns the text interpretation of API function.
227  *
228  * @param[in]  function_id - ID of the API function to be interpreted;
229  * @param[out]  function_name - pointer to the returned string. In case pointer
230  *				is NULL, then no text is filled in;
231  *
232  * @return  Error code
233  *
234 -----------------------------------------------------------------------------*/
235 int32_t TA66XX_get_function_name(int32_t function_id, char *function_name);
236 
237 
238 /** @}*/
239 //=============================================================================
240 
241 
242 
243 #ifdef __cplusplus
244 }
245 #endif
246 
247 
248 
249 //=============================================================================
250 #endif /* __TA66XX_DSP_H__ */
251 
252