1 /**
2   ******************************************************************************
3   * @file    bl602_romdriver.h
4   * @version V1.0
5   * @date
6   * @brief   This file is the standard driver header file
7   ******************************************************************************
8   * @attention
9   *
10   * <h2><center>&copy; COPYRIGHT(c) 2020 Bouffalo Lab</center></h2>
11   *
12   * Redistribution and use in source and binary forms, with or without modification,
13   * are permitted provided that the following conditions are met:
14   *   1. Redistributions of source code must retain the above copyright notice,
15   *      this list of conditions and the following disclaimer.
16   *   2. Redistributions in binary form must reproduce the above copyright notice,
17   *      this list of conditions and the following disclaimer in the documentation
18   *      and/or other materials provided with the distribution.
19   *   3. Neither the name of Bouffalo Lab nor the names of its contributors
20   *      may be used to endorse or promote products derived from this software
21   *      without specific prior written permission.
22   *
23   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
24   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
26   * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
27   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
29   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
30   * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
31   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33   *
34   ******************************************************************************
35   */
36 #ifndef __BL602_ROMDRIVER_H__
37 #define __BL602_ROMDRIVER_H__
38 
39 #include "bl602_common.h"
40 #include "bl602_aon.h"
41 #include "bl602_glb.h"
42 #include "bl602_hbn.h"
43 #include "bl602_ef_ctrl.h"
44 // #include "bl602_sec_eng.h"
45 #include "bflb_xip_sflash.h"
46 #include "bflb_sflash.h"
47 #include "bflb_sf_ctrl.h"
48 // #include "softcrc.h"
49 
50 /** @addtogroup  BL602_Peripheral_Driver
51  *  @{
52  */
53 
54 /** @addtogroup  ROMDRIVER
55  *  @{
56  */
57 
58 /** @defgroup  ROMDRIVER_Public_Types
59  *  @{
60  */
61 
62 #define ROMAPI_INDEX_SECT_SIZE (0x800)
63 #define ROMAPI_INDEX_MAX       (ROMAPI_INDEX_SECT_SIZE / 4 - 1)
64 
65 typedef enum {
66     ROM_API_INDEX_VERSION = 0,
67     ROM_API_INDEX_RSVD_0,
68     ROM_API_INDEX_RSVD_1,
69     ROM_API_INDEX_RSVD_LAST,
70 
71     ROM_API_INDEX_AON_Power_On_MBG,
72     ROM_API_INDEX_AON_Power_Off_MBG,
73     ROM_API_INDEX_AON_Power_On_XTAL,
74     ROM_API_INDEX_AON_Set_Xtal_CapCode,
75     ROM_API_INDEX_AON_Get_Xtal_CapCode,
76     ROM_API_INDEX_AON_Power_Off_XTAL,
77     ROM_API_INDEX_AON_Power_On_BG,
78     ROM_API_INDEX_AON_Power_Off_BG,
79     ROM_API_INDEX_AON_Power_On_LDO11_SOC,
80     ROM_API_INDEX_AON_Power_Off_LDO11_SOC,
81     ROM_API_INDEX_AON_Power_On_LDO15_RF,
82     ROM_API_INDEX_AON_Power_Off_LDO15_RF,
83     ROM_API_INDEX_AON_Power_On_SFReg,
84     ROM_API_INDEX_AON_Power_Off_SFReg,
85     ROM_API_INDEX_AON_LowPower_Enter_PDS0,
86     ROM_API_INDEX_AON_LowPower_Exit_PDS0,
87 
88     ROM_API_INDEX_ASM_Delay_Us,
89 
90     ROM_API_INDEX_BL602_Delay_US,
91     ROM_API_INDEX_BL602_Delay_MS,
92     ROM_API_INDEX_BL602_MemCpy,
93     ROM_API_INDEX_BL602_MemCpy4,
94     ROM_API_INDEX_BL602_MemCpy_Fast,
95     ROM_API_INDEX_BL602_MemSet,
96     ROM_API_INDEX_BL602_MemSet4,
97     ROM_API_INDEX_BL602_MemCmp,
98 
99     ROM_API_INDEX_EF_Ctrl_Sw_AHB_Clk_0,
100     ROM_API_INDEX_EF_Ctrl_Program_Efuse_0,
101     ROM_API_INDEX_EF_Ctrl_Load_Efuse_R0,
102     ROM_API_INDEX_EF_Ctrl_Busy,
103     ROM_API_INDEX_EF_Ctrl_AutoLoad_Done,
104     ROM_API_INDEX_EF_Ctrl_Get_Trim_Parity,
105     ROM_API_INDEX_EF_Ctrl_Read_RC32M_Trim,
106     ROM_API_INDEX_EF_Ctrl_Read_RC32K_Trim,
107     ROM_API_INDEX_EF_Ctrl_Clear,
108 
109     ROM_API_INDEX_GLB_Get_Root_CLK_Sel,
110     ROM_API_INDEX_GLB_Set_System_CLK_Div,
111     ROM_API_INDEX_GLB_Get_BCLK_Div,
112     ROM_API_INDEX_GLB_Get_HCLK_Div,
113 
114     ROM_API_INDEX_Update_SystemCoreClockWith_XTAL,
115 
116     ROM_API_INDEX_GLB_Set_System_CLK,
117 
118     ROM_API_INDEX_System_Core_Clock_Update_From_RC32M,
119 
120     ROM_API_INDEX_GLB_Set_SF_CLK,
121     ROM_API_INDEX_GLB_Set_PKA_CLK_Sel,
122     ROM_API_INDEX_GLB_SW_System_Reset,
123     ROM_API_INDEX_GLB_SW_CPU_Reset,
124     ROM_API_INDEX_GLB_SW_POR_Reset,
125     ROM_API_INDEX_GLB_Select_Internal_Flash,
126     ROM_API_INDEX_GLB_Select_External_Flash,
127     ROM_API_INDEX_GLB_Deswap_Flash_Pin,
128     ROM_API_INDEX_GLB_Swap_Flash_Pin,
129     ROM_API_INDEX_GLB_GPIO_Init,
130     ROM_API_INDEX_GLB_GPIO_OUTPUT_Enable,
131     ROM_API_INDEX_GLB_GPIO_OUTPUT_Disable,
132     ROM_API_INDEX_GLB_GPIO_Set_HZ,
133     ROM_API_INDEX_GLB_GPIO_Get_Fun,
134 
135     ROM_API_INDEX_HBN_Mode_Enter,
136     ROM_API_INDEX_HBN_Power_Down_Flash,
137     ROM_API_INDEX_HBN_Enable,
138     ROM_API_INDEX_HBN_Reset,
139     ROM_API_INDEX_HBN_Set_Ldo11_Aon_Vout,
140     ROM_API_INDEX_HBN_Set_Ldo11_Rt_Vout,
141     ROM_API_INDEX_HBN_Set_Ldo11_Soc_Vout,
142     ROM_API_INDEX_HBN_32K_Sel,
143     ROM_API_INDEX_HBN_Set_ROOT_CLK_Sel,
144     ROM_API_INDEX_HBN_Power_On_Xtal_32K,
145     ROM_API_INDEX_HBN_Power_Off_Xtal_32K,
146     ROM_API_INDEX_HBN_Power_On_RC32K,
147     ROM_API_INDEX_HBN_Power_Off_RC32K,
148     ROM_API_INDEX_HBN_Trim_RC32K,
149     ROM_API_INDEX_HBN_Hw_Pu_Pd_Cfg,
150     ROM_API_INDEX_HBN_Pin_WakeUp_Mask,
151     ROM_API_INDEX_HBN_GPIO7_Dbg_Pull_Cfg,
152     ROM_API_INDEX_HBN_Set_Embedded_Flash_Pullup,
153 
154     ROM_API_INDEX_L1C_Set_Wrap,
155     ROM_API_INDEX_L1C_Set_Way_Disable,
156     ROM_API_INDEX_L1C_IROM_2T_Access_Set,
157 
158     ROM_API_INDEX_PDS_Reset,
159     ROM_API_INDEX_PDS_Enable,
160     ROM_API_INDEX_PDS_Force_Config,
161     ROM_API_INDEX_PDS_RAM_Config,
162     ROM_API_INDEX_PDS_Default_Level_Config,
163     ROM_API_INDEX_PDS_Trim_RC32M,
164     ROM_API_INDEX_PDS_Select_RC32M_As_PLL_Ref,
165     ROM_API_INDEX_PDS_Select_XTAL_As_PLL_Ref,
166     ROM_API_INDEX_PDS_Power_On_PLL,
167     ROM_API_INDEX_PDS_Enable_PLL_All_Clks,
168     ROM_API_INDEX_PDS_Disable_PLL_All_Clks,
169     ROM_API_INDEX_PDS_Enable_PLL_Clk,
170     ROM_API_INDEX_PDS_Disable_PLL_Clk,
171     ROM_API_INDEX_PDS_Power_Off_PLL,
172 
173     ROM_API_INDEX_SEC_Eng_Turn_On_Sec_Ring,
174     ROM_API_INDEX_SEC_Eng_Turn_Off_Sec_Ring,
175 
176     ROM_API_INDEX_SFlash_Init,
177     ROM_API_INDEX_SFlash_SetSPIMode,
178     ROM_API_INDEX_SFlash_Read_Reg,
179     ROM_API_INDEX_SFlash_Write_Reg,
180     ROM_API_INDEX_SFlash_Busy,
181     ROM_API_INDEX_SFlash_Write_Enable,
182     ROM_API_INDEX_SFlash_Qspi_Enable,
183     ROM_API_INDEX_SFlash_Volatile_Reg_Write_Enable,
184     ROM_API_INDEX_SFlash_Chip_Erase,
185     ROM_API_INDEX_SFlash_Sector_Erase,
186     ROM_API_INDEX_SFlash_Blk32_Erase,
187     ROM_API_INDEX_SFlash_Blk64_Erase,
188     ROM_API_INDEX_SFlash_Erase,
189     ROM_API_INDEX_SFlash_Program,
190     ROM_API_INDEX_SFlash_GetUniqueId,
191     ROM_API_INDEX_SFlash_GetJedecId,
192     ROM_API_INDEX_SFlash_GetDeviceId,
193     ROM_API_INDEX_SFlash_Powerdown,
194     ROM_API_INDEX_SFlash_Releae_Powerdown,
195     ROM_API_INDEX_SFlash_SetBurstWrap,
196     ROM_API_INDEX_SFlash_DisableBurstWrap,
197     ROM_API_INDEX_SFlash_Software_Reset,
198     ROM_API_INDEX_SFlash_Reset_Continue_Read,
199     ROM_API_INDEX_SFlash_Set_IDbus_Cfg,
200     ROM_API_INDEX_SFlash_IDbus_Read_Enable,
201     ROM_API_INDEX_SFlash_Cache_Enable_Set,
202     ROM_API_INDEX_SFlash_Cache_Flush,
203     ROM_API_INDEX_SFlash_Cache_Read_Enable,
204     ROM_API_INDEX_SFlash_Cache_Hit_Count_Get,
205     ROM_API_INDEX_SFlash_Cache_Miss_Count_Get,
206     ROM_API_INDEX_SFlash_Cache_Read_Disable,
207     ROM_API_INDEX_SFlash_Read,
208     ROM_API_INDEX_SFlash_Read_Reg_With_Cmd,
209     ROM_API_INDEX_SFlash_Write_Reg_With_Cmd,
210     ROM_API_INDEX_SFlash_Restore_From_Powerdown,
211 
212     ROM_API_INDEX_SF_Cfg_Init_Ext_Flash_Gpio,
213     ROM_API_INDEX_SF_Cfg_Init_Internal_Flash_Gpio,
214     ROM_API_INDEX_SF_Cfg_Deinit_Ext_Flash_Gpio,
215     ROM_API_INDEX_SF_Cfg_Restore_GPIO17_Fun,
216     ROM_API_INDEX_SF_Cfg_Get_Flash_Cfg_Need_Lock,
217     ROM_API_INDEX_SF_Cfg_Init_Flash_Gpio,
218     ROM_API_INDEX_SF_Cfg_Flash_Identify,
219     ROM_API_INDEX_SF_Ctrl_Enable,
220     ROM_API_INDEX_SF_Ctrl_Select_Pad,
221     ROM_API_INDEX_SF_Ctrl_Set_Owner,
222     ROM_API_INDEX_SF_Ctrl_Disable,
223     ROM_API_INDEX_SF_Ctrl_AES_Enable_BE,
224     ROM_API_INDEX_SF_Ctrl_AES_Enable_LE,
225     ROM_API_INDEX_SF_Ctrl_AES_Set_Region,
226     ROM_API_INDEX_SF_Ctrl_AES_Set_Key,
227     ROM_API_INDEX_SF_Ctrl_AES_Set_Key_BE,
228     ROM_API_INDEX_SF_Ctrl_AES_Set_IV,
229     ROM_API_INDEX_SF_Ctrl_AES_Set_IV_BE,
230     ROM_API_INDEX_SF_Ctrl_AES_Enable,
231     ROM_API_INDEX_SF_Ctrl_AES_Disable,
232     ROM_API_INDEX_SF_Ctrl_Set_Flash_Image_Offset,
233     ROM_API_INDEX_SF_Ctrl_Get_Flash_Image_Offset,
234     ROM_API_INDEX_SF_Ctrl_Select_Clock,
235     ROM_API_INDEX_SF_Ctrl_SendCmd,
236     ROM_API_INDEX_SF_Ctrl_Icache_Set,
237     ROM_API_INDEX_SF_Ctrl_Icache2_Set,
238     ROM_API_INDEX_SF_Ctrl_GetBusyState,
239     ROM_API_INDEX_SF_Ctrl_Is_AES_Enable,
240     ROM_API_INDEX_SF_Ctrl_Get_Clock_Delay,
241     ROM_API_INDEX_SF_Ctrl_Set_Clock_Delay,
242 
243     ROM_API_INDEX_XIP_SFlash_State_Save,
244     ROM_API_INDEX_XIP_SFlash_State_Restore,
245     ROM_API_INDEX_XIP_SFlash_Erase_Need_Lock,
246     ROM_API_INDEX_XIP_SFlash_Write_Need_Lock,
247     ROM_API_INDEX_XIP_SFlash_Read_Need_Lock,
248     ROM_API_INDEX_XIP_SFlash_GetJedecId_Need_Lock,
249     ROM_API_INDEX_XIP_SFlash_GetDeviceId_Need_Lock,
250     ROM_API_INDEX_XIP_SFlash_GetUniqueId_Need_Lock,
251     ROM_API_INDEX_XIP_SFlash_Read_Via_Cache_Need_Lock,
252     ROM_API_INDEX_XIP_SFlash_Read_With_Lock,
253     ROM_API_INDEX_XIP_SFlash_Write_With_Lock,
254     ROM_API_INDEX_XIP_SFlash_Erase_With_Lock,
255     ROM_API_INDEX_XIP_SFlash_Opt_Enter,
256     ROM_API_INDEX_XIP_SFlash_Opt_Exit,
257 
258     ROM_API_INDEX_BFLB_Soft_CRC32,
259 
260     ROM_API_INDEX_FUNC_EMPTY_START,
261 
262     ROM_API_INDEX_FUNC_EMPTY_END = ROMAPI_INDEX_MAX
263 
264 } ROM_API_INDEX_e;
265 
266 /*@} end of group ROMDRIVER_Public_Types */
267 
268 /** @defgroup  ROMDRIVER_Public_Constants
269  *  @{
270  */
271 
272 /*@} end of group ROMDRIVER_Public_Constants */
273 
274 /** @defgroup  ROMDRIVER_Public_Macros
275  *  @{
276  */
277 
278 #define ROM_APITABLE ((uint32_t *)0x21010800)
279 
280 #define RomDriver_AON_Power_On_MBG \
281     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_AON_Power_On_MBG])
282 
283 #define RomDriver_AON_Power_Off_MBG \
284     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_AON_Power_Off_MBG])
285 
286 #define RomDriver_AON_Power_On_XTAL \
287     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_AON_Power_On_XTAL])
288 
289 #define RomDriver_AON_Set_Xtal_CapCode \
290     ((BL_Err_Type(*)(uint8_t capIn, uint8_t capOut))ROM_APITABLE[ROM_API_INDEX_AON_Set_Xtal_CapCode])
291 
292 #define RomDriver_AON_Get_Xtal_CapCode \
293     ((uint8_t(*)(void))ROM_APITABLE[ROM_API_INDEX_AON_Get_Xtal_CapCode])
294 
295 #define RomDriver_AON_Power_Off_XTAL \
296     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_AON_Power_Off_XTAL])
297 
298 #define RomDriver_AON_Power_On_BG \
299     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_AON_Power_On_BG])
300 
301 #define RomDriver_AON_Power_Off_BG \
302     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_AON_Power_Off_BG])
303 
304 #define RomDriver_AON_Power_On_LDO11_SOC \
305     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_AON_Power_On_LDO11_SOC])
306 
307 #define RomDriver_AON_Power_Off_LDO11_SOC \
308     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_AON_Power_Off_LDO11_SOC])
309 
310 #define RomDriver_AON_Power_On_LDO15_RF \
311     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_AON_Power_On_LDO15_RF])
312 
313 #define RomDriver_AON_Power_Off_LDO15_RF \
314     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_AON_Power_Off_LDO15_RF])
315 
316 #define RomDriver_AON_Power_On_SFReg \
317     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_AON_Power_On_SFReg])
318 
319 #define RomDriver_AON_Power_Off_SFReg \
320     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_AON_Power_Off_SFReg])
321 
322 #define RomDriver_AON_LowPower_Enter_PDS0 \
323     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_AON_LowPower_Enter_PDS0])
324 
325 #define RomDriver_AON_LowPower_Exit_PDS0 \
326     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_AON_LowPower_Exit_PDS0])
327 
328 #define RomDriver_ASM_Delay_Us \
329     ((void (*)(uint32_t core, uint32_t cnt))ROM_APITABLE[ROM_API_INDEX_ASM_Delay_Us])
330 
331 #define RomDriver_BL602_Delay_US \
332     ((void (*)(uint32_t cnt))ROM_APITABLE[ROM_API_INDEX_BL602_Delay_US])
333 
334 #define RomDriver_BL602_Delay_MS \
335     ((void (*)(uint32_t cnt))ROM_APITABLE[ROM_API_INDEX_BL602_Delay_MS])
336 
337 #define RomDriver_BL602_MemCpy \
338     ((void *(*)(void *dst, const void *src, uint32_t n))ROM_APITABLE[ROM_API_INDEX_BL602_MemCpy])
339 
340 #define RomDriver_BL602_MemCpy4 \
341     ((uint32_t * (*)(uint32_t * dst, const uint32_t *src, uint32_t n)) ROM_APITABLE[ROM_API_INDEX_BL602_MemCpy4])
342 
343 #define RomDriver_BL602_MemCpy_Fast \
344     ((void *(*)(void *pdst, const void *psrc, uint32_t n))ROM_APITABLE[ROM_API_INDEX_BL602_MemCpy_Fast])
345 
346 #define RomDriver_BL602_MemSet \
347     ((void *(*)(void *s, uint8_t c, uint32_t n))ROM_APITABLE[ROM_API_INDEX_BL602_MemSet])
348 
349 #define RomDriver_BL602_MemSet4 \
350     ((uint32_t * (*)(uint32_t * dst, const uint32_t val, uint32_t n)) ROM_APITABLE[ROM_API_INDEX_BL602_MemSet4])
351 
352 #define RomDriver_BL602_MemCmp \
353     ((int (*)(const void *s1, const void *s2, uint32_t n))ROM_APITABLE[ROM_API_INDEX_BL602_MemCmp])
354 
355 #define RomDriver_EF_Ctrl_Sw_AHB_Clk_0 \
356     ((void (*)(void))ROM_APITABLE[ROM_API_INDEX_EF_Ctrl_Sw_AHB_Clk_0])
357 
358 #define RomDriver_EF_Ctrl_Program_Efuse_0 \
359     ((void (*)(void))ROM_APITABLE[ROM_API_INDEX_EF_Ctrl_Program_Efuse_0])
360 
361 #define RomDriver_EF_Ctrl_Load_Efuse_R0 \
362     ((void (*)(void))ROM_APITABLE[ROM_API_INDEX_EF_Ctrl_Load_Efuse_R0])
363 
364 #define RomDriver_EF_Ctrl_Busy \
365     ((BL_Sts_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_EF_Ctrl_Busy])
366 
367 #define RomDriver_EF_Ctrl_AutoLoad_Done \
368     ((BL_Sts_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_EF_Ctrl_AutoLoad_Done])
369 
370 #define RomDriver_EF_Ctrl_Get_Trim_Parity \
371     ((uint8_t(*)(uint32_t val, uint8_t len))ROM_APITABLE[ROM_API_INDEX_EF_Ctrl_Get_Trim_Parity])
372 
373 #define RomDriver_EF_Ctrl_Read_RC32M_Trim \
374     ((void (*)(Efuse_Ana_RC32M_Trim_Type * trim)) ROM_APITABLE[ROM_API_INDEX_EF_Ctrl_Read_RC32M_Trim])
375 
376 #define RomDriver_EF_Ctrl_Read_RC32K_Trim \
377     ((void (*)(Efuse_Ana_RC32K_Trim_Type * trim)) ROM_APITABLE[ROM_API_INDEX_EF_Ctrl_Read_RC32K_Trim])
378 
379 #define RomDriver_EF_Ctrl_Clear \
380     ((void (*)(uint32_t index, uint32_t len))ROM_APITABLE[ROM_API_INDEX_EF_Ctrl_Clear])
381 
382 #define RomDriver_GLB_Get_Root_CLK_Sel \
383     ((GLB_ROOT_CLK_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_GLB_Get_Root_CLK_Sel])
384 
385 #define RomDriver_GLB_Set_System_CLK_Div \
386     ((BL_Err_Type(*)(uint8_t hclkDiv, uint8_t bclkDiv))ROM_APITABLE[ROM_API_INDEX_GLB_Set_System_CLK_Div])
387 
388 #define RomDriver_GLB_Get_BCLK_Div \
389     ((uint8_t(*)(void))ROM_APITABLE[ROM_API_INDEX_GLB_Get_BCLK_Div])
390 
391 #define RomDriver_GLB_Get_HCLK_Div \
392     ((uint8_t(*)(void))ROM_APITABLE[ROM_API_INDEX_GLB_Get_HCLK_Div])
393 
394 #define RomDriver_Update_SystemCoreClockWith_XTAL \
395     ((BL_Err_Type(*)(GLB_PLL_XTAL_Type xtalType))ROM_APITABLE[ROM_API_INDEX_Update_SystemCoreClockWith_XTAL])
396 
397 #define RomDriver_GLB_Set_System_CLK \
398     ((BL_Err_Type(*)(GLB_PLL_XTAL_Type xtalType, GLB_SYS_CLK_Type clkFreq))ROM_APITABLE[ROM_API_INDEX_GLB_Set_System_CLK])
399 
400 #define RomDriver_System_Core_Clock_Update_From_RC32M \
401     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_System_Core_Clock_Update_From_RC32M])
402 
403 #define RomDriver_GLB_Set_SF_CLK \
404     ((BL_Err_Type(*)(uint8_t enable, GLB_SFLASH_CLK_Type clkSel, uint8_t div))ROM_APITABLE[ROM_API_INDEX_GLB_Set_SF_CLK])
405 
406 #define RomDriver_GLB_Set_PKA_CLK_Sel \
407     ((BL_Err_Type(*)(GLB_PKA_CLK_Type clkSel))ROM_APITABLE[ROM_API_INDEX_GLB_Set_PKA_CLK_Sel])
408 
409 #define RomDriver_GLB_SW_System_Reset \
410     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_GLB_SW_System_Reset])
411 
412 #define RomDriver_GLB_SW_CPU_Reset \
413     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_GLB_SW_CPU_Reset])
414 
415 #define RomDriver_GLB_SW_POR_Reset \
416     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_GLB_SW_POR_Reset])
417 
418 #define RomDriver_GLB_Select_Internal_Flash \
419     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_GLB_Select_Internal_Flash])
420 
421 #define RomDriver_GLB_Select_External_Flash \
422     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_GLB_Select_External_Flash])
423 
424 #define RomDriver_GLB_Deswap_Flash_Pin \
425     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_GLB_Deswap_Flash_Pin])
426 
427 #define RomDriver_GLB_Swap_Flash_Pin \
428     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_GLB_Swap_Flash_Pin])
429 
430 #define RomDriver_GLB_GPIO_Init \
431     ((BL_Err_Type(*)(GLB_GPIO_Cfg_Type * cfg)) ROM_APITABLE[ROM_API_INDEX_GLB_GPIO_Init])
432 
433 #define RomDriver_GLB_GPIO_OUTPUT_Enable \
434     ((BL_Err_Type(*)(GLB_GPIO_Type gpioPin))ROM_APITABLE[ROM_API_INDEX_GLB_GPIO_OUTPUT_Enable])
435 
436 #define RomDriver_GLB_GPIO_OUTPUT_Disable \
437     ((BL_Err_Type(*)(GLB_GPIO_Type gpioPin))ROM_APITABLE[ROM_API_INDEX_GLB_GPIO_OUTPUT_Disable])
438 
439 #define RomDriver_GLB_GPIO_Set_HZ \
440     ((BL_Err_Type(*)(GLB_GPIO_Type gpioPin))ROM_APITABLE[ROM_API_INDEX_GLB_GPIO_Set_HZ])
441 
442 #define RomDriver_GLB_GPIO_Get_Fun \
443     ((uint8_t(*)(GLB_GPIO_Type gpioPin))ROM_APITABLE[ROM_API_INDEX_GLB_GPIO_Get_Fun])
444 
445 #define RomDriver_HBN_Mode_Enter \
446     ((void (*)(HBN_APP_CFG_Type * cfg)) ROM_APITABLE[ROM_API_INDEX_HBN_Mode_Enter])
447 
448 #define RomDriver_HBN_Power_Down_Flash \
449     ((void (*)(spi_flash_cfg_type * flashCfg)) ROM_APITABLE[ROM_API_INDEX_HBN_Power_Down_Flash])
450 
451 #define RomDriver_HBN_Enable \
452     ((void (*)(uint8_t aGPIOIeCfg, HBN_LDO_LEVEL_Type ldoLevel, HBN_LEVEL_Type hbnLevel))ROM_APITABLE[ROM_API_INDEX_HBN_Enable])
453 
454 #define RomDriver_HBN_Reset \
455     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_HBN_Reset])
456 
457 #define RomDriver_HBN_Set_Ldo11_Aon_Vout \
458     ((BL_Err_Type(*)(HBN_LDO_LEVEL_Type ldoLevel))ROM_APITABLE[ROM_API_INDEX_HBN_Set_Ldo11_Aon_Vout])
459 
460 #define RomDriver_HBN_Set_Ldo11_Rt_Vout \
461     ((BL_Err_Type(*)(HBN_LDO_LEVEL_Type ldoLevel))ROM_APITABLE[ROM_API_INDEX_HBN_Set_Ldo11_Rt_Vout])
462 
463 #define RomDriver_HBN_Set_Ldo11_Soc_Vout \
464     ((BL_Err_Type(*)(HBN_LDO_LEVEL_Type ldoLevel))ROM_APITABLE[ROM_API_INDEX_HBN_Set_Ldo11_Soc_Vout])
465 
466 #define RomDriver_HBN_32K_Sel \
467     ((BL_Err_Type(*)(HBN_32K_CLK_Type clkType))ROM_APITABLE[ROM_API_INDEX_HBN_32K_Sel])
468 
469 #define RomDriver_HBN_Set_ROOT_CLK_Sel \
470     ((BL_Err_Type(*)(HBN_ROOT_CLK_Type rootClk))ROM_APITABLE[ROM_API_INDEX_HBN_Set_ROOT_CLK_Sel])
471 
472 #define RomDriver_HBN_Power_On_Xtal_32K \
473     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_HBN_Power_On_Xtal_32K])
474 
475 #define RomDriver_HBN_Power_Off_Xtal_32K \
476     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_HBN_Power_Off_Xtal_32K])
477 
478 #define RomDriver_HBN_Power_On_RC32K \
479     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_HBN_Power_On_RC32K])
480 
481 #define RomDriver_HBN_Power_Off_RC32K \
482     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_HBN_Power_Off_RC32K])
483 
484 #define RomDriver_HBN_Trim_RC32K \
485     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_HBN_Trim_RC32K])
486 
487 #define RomDriver_HBN_Hw_Pu_Pd_Cfg \
488     ((BL_Err_Type(*)(uint8_t enable))ROM_APITABLE[ROM_API_INDEX_HBN_Hw_Pu_Pd_Cfg])
489 
490 #define RomDriver_HBN_Pin_WakeUp_Mask \
491     ((BL_Err_Type(*)(uint8_t maskVal))ROM_APITABLE[ROM_API_INDEX_HBN_Pin_WakeUp_Mask])
492 
493 #define RomDriver_HBN_GPIO7_Dbg_Pull_Cfg \
494     ((BL_Err_Type(*)(BL_Fun_Type pupdEn, BL_Fun_Type iesmtEn, BL_Fun_Type dlyEn, uint8_t dlySec))ROM_APITABLE[ROM_API_INDEX_HBN_GPIO7_Dbg_Pull_Cfg])
495 
496 #define RomDriver_HBN_Set_Embedded_Flash_Pullup \
497     ((BL_Err_Type(*)(uint8_t enable))ROM_APITABLE[ROM_API_INDEX_HBN_Set_Embedded_Flash_Pullup])
498 
499 #define RomDriver_L1C_Set_Wrap \
500     ((BL_Err_Type(*)(BL_Fun_Type wrap))ROM_APITABLE[ROM_API_INDEX_L1C_Set_Wrap])
501 
502 #define RomDriver_L1C_Set_Way_Disable \
503     ((BL_Err_Type(*)(uint8_t disableVal))ROM_APITABLE[ROM_API_INDEX_L1C_Set_Way_Disable])
504 
505 #define RomDriver_L1C_IROM_2T_Access_Set \
506     ((BL_Err_Type(*)(uint8_t enable))ROM_APITABLE[ROM_API_INDEX_L1C_IROM_2T_Access_Set])
507 
508 #define RomDriver_PDS_Reset \
509     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_PDS_Reset])
510 
511 #define RomDriver_PDS_Enable \
512     ((BL_Err_Type(*)(PDS_CTL_Type * cfg, PDS_CTL4_Type * cfg4, uint32_t pdsSleepCnt)) ROM_APITABLE[ROM_API_INDEX_PDS_Enable])
513 
514 #define RomDriver_PDS_Force_Config \
515     ((BL_Err_Type(*)(PDS_CTL2_Type * cfg2, PDS_CTL3_Type * cfg3)) ROM_APITABLE[ROM_API_INDEX_PDS_Force_Config])
516 
517 #define RomDriver_PDS_RAM_Config \
518     ((BL_Err_Type(*)(PDS_RAM_CFG_Type * ramCfg)) ROM_APITABLE[ROM_API_INDEX_PDS_RAM_Config])
519 
520 #define RomDriver_PDS_Default_Level_Config \
521     ((BL_Err_Type(*)(PDS_DEFAULT_LV_CFG_Type * defaultLvCfg, PDS_RAM_CFG_Type * ramCfg, uint32_t pdsSleepCnt)) ROM_APITABLE[ROM_API_INDEX_PDS_Default_Level_Config])
522 
523 #define RomDriver_PDS_Trim_RC32M \
524     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_PDS_Trim_RC32M])
525 
526 #define RomDriver_PDS_Select_RC32M_As_PLL_Ref \
527     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_PDS_Select_RC32M_As_PLL_Ref])
528 
529 #define RomDriver_PDS_Select_XTAL_As_PLL_Ref \
530     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_PDS_Select_XTAL_As_PLL_Ref])
531 
532 #define RomDriver_PDS_Power_On_PLL \
533     ((BL_Err_Type(*)(PDS_PLL_XTAL_Type xtalType))ROM_APITABLE[ROM_API_INDEX_PDS_Power_On_PLL])
534 
535 #define RomDriver_PDS_Enable_PLL_All_Clks \
536     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_PDS_Enable_PLL_All_Clks])
537 
538 #define RomDriver_PDS_Disable_PLL_All_Clks \
539     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_PDS_Disable_PLL_All_Clks])
540 
541 #define RomDriver_PDS_Enable_PLL_Clk \
542     ((BL_Err_Type(*)(PDS_PLL_CLK_Type pllClk))ROM_APITABLE[ROM_API_INDEX_PDS_Enable_PLL_Clk])
543 
544 #define RomDriver_PDS_Disable_PLL_Clk \
545     ((BL_Err_Type(*)(PDS_PLL_CLK_Type pllClk))ROM_APITABLE[ROM_API_INDEX_PDS_Disable_PLL_Clk])
546 
547 #define RomDriver_PDS_Power_Off_PLL \
548     ((BL_Err_Type(*)(void))ROM_APITABLE[ROM_API_INDEX_PDS_Power_Off_PLL])
549 
550 #define RomDriver_SEC_Eng_Turn_On_Sec_Ring \
551     ((void (*)(void))ROM_APITABLE[ROM_API_INDEX_SEC_Eng_Turn_On_Sec_Ring])
552 
553 #define RomDriver_SEC_Eng_Turn_Off_Sec_Ring \
554     ((void (*)(void))ROM_APITABLE[ROM_API_INDEX_SEC_Eng_Turn_Off_Sec_Ring])
555 
556 #define RomDriver_SFlash_Init \
557     ((void (*)(const struct sf_ctrl_cfg_type *pSfCtrlCfg))ROM_APITABLE[ROM_API_INDEX_SFlash_Init])
558 
559 #define RomDriver_SFlash_SetSPIMode \
560     ((int(*)(uint8_t mode))ROM_APITABLE[ROM_API_INDEX_SFlash_SetSPIMode])
561 
562 #define RomDriver_SFlash_Read_Reg \
563     ((int(*)(spi_flash_cfg_type * flashCfg, uint8_t regIndex, uint8_t * regValue, uint8_t regLen)) ROM_APITABLE[ROM_API_INDEX_SFlash_Read_Reg])
564 
565 #define RomDriver_SFlash_Write_Reg \
566     ((int(*)(spi_flash_cfg_type * flashCfg, uint8_t regIndex, uint8_t * regValue, uint8_t regLen)) ROM_APITABLE[ROM_API_INDEX_SFlash_Write_Reg])
567 
568 #define RomDriver_SFlash_Busy \
569     ((int(*)(spi_flash_cfg_type * flashCfg)) ROM_APITABLE[ROM_API_INDEX_SFlash_Busy])
570 
571 #define RomDriver_SFlash_Write_Enable \
572     ((int(*)(spi_flash_cfg_type * flashCfg)) ROM_APITABLE[ROM_API_INDEX_SFlash_Write_Enable])
573 
574 #define RomDriver_SFlash_Qspi_Enable \
575     ((int(*)(spi_flash_cfg_type * flashCfg)) ROM_APITABLE[ROM_API_INDEX_SFlash_Qspi_Enable])
576 
577 #define RomDriver_SFlash_Volatile_Reg_Write_Enable \
578     ((void (*)(spi_flash_cfg_type * flashCfg)) ROM_APITABLE[ROM_API_INDEX_SFlash_Volatile_Reg_Write_Enable])
579 
580 #define RomDriver_SFlash_Chip_Erase \
581     ((int(*)(spi_flash_cfg_type * flashCfg)) ROM_APITABLE[ROM_API_INDEX_SFlash_Chip_Erase])
582 
583 #define RomDriver_SFlash_Sector_Erase \
584     ((int(*)(spi_flash_cfg_type * flashCfg, uint32_t secNum)) ROM_APITABLE[ROM_API_INDEX_SFlash_Sector_Erase])
585 
586 #define RomDriver_SFlash_Blk32_Erase \
587     ((int(*)(spi_flash_cfg_type * flashCfg, uint32_t blkNum)) ROM_APITABLE[ROM_API_INDEX_SFlash_Blk32_Erase])
588 
589 #define RomDriver_SFlash_Blk64_Erase \
590     ((int(*)(spi_flash_cfg_type * flashCfg, uint32_t blkNum)) ROM_APITABLE[ROM_API_INDEX_SFlash_Blk64_Erase])
591 
592 #define RomDriver_SFlash_Erase \
593     ((int(*)(spi_flash_cfg_type * flashCfg, uint32_t startaddr, uint32_t endaddr)) ROM_APITABLE[ROM_API_INDEX_SFlash_Erase])
594 
595 #define RomDriver_SFlash_Program \
596     ((int(*)(spi_flash_cfg_type * flashCfg, uint8_t ioMode, uint32_t addr, uint8_t * data, uint32_t len)) ROM_APITABLE[ROM_API_INDEX_SFlash_Program])
597 
598 #define RomDriver_SFlash_GetUniqueId \
599     ((void (*)(uint8_t * data, uint8_t idLen)) ROM_APITABLE[ROM_API_INDEX_SFlash_GetUniqueId])
600 
601 #define RomDriver_SFlash_GetJedecId \
602     ((void (*)(spi_flash_cfg_type * flashCfg, uint8_t * data)) ROM_APITABLE[ROM_API_INDEX_SFlash_GetJedecId])
603 
604 #define RomDriver_SFlash_GetDeviceId \
605     ((void (*)(uint8_t * data)) ROM_APITABLE[ROM_API_INDEX_SFlash_GetDeviceId])
606 
607 #define RomDriver_SFlash_Powerdown \
608     ((void (*)(void))ROM_APITABLE[ROM_API_INDEX_SFlash_Powerdown])
609 
610 #define RomDriver_SFlash_Releae_Powerdown \
611     ((void (*)(spi_flash_cfg_type * flashCfg)) ROM_APITABLE[ROM_API_INDEX_SFlash_Releae_Powerdown])
612 
613 #define RomDriver_SFlash_SetBurstWrap \
614     ((void (*)(spi_flash_cfg_type * flashCfg)) ROM_APITABLE[ROM_API_INDEX_SFlash_SetBurstWrap])
615 
616 #define RomDriver_SFlash_DisableBurstWrap \
617     ((void (*)(spi_flash_cfg_type * flashCfg)) ROM_APITABLE[ROM_API_INDEX_SFlash_DisableBurstWrap])
618 
619 #define RomDriver_SFlash_Software_Reset \
620     ((int(*)(spi_flash_cfg_type * flashCfg)) ROM_APITABLE[ROM_API_INDEX_SFlash_Software_Reset])
621 
622 #define RomDriver_SFlash_Reset_Continue_Read \
623     ((void (*)(spi_flash_cfg_type * flashCfg)) ROM_APITABLE[ROM_API_INDEX_SFlash_Reset_Continue_Read])
624 
625 #define RomDriver_SFlash_Set_IDbus_Cfg \
626     ((int(*)(spi_flash_cfg_type * flashCfg, uint8_t ioMode, uint8_t contRead, uint32_t addr, uint32_t len)) ROM_APITABLE[ROM_API_INDEX_SFlash_Set_IDbus_Cfg])
627 
628 #define RomDriver_SFlash_IDbus_Read_Enable \
629     ((int(*)(spi_flash_cfg_type * flashCfg, uint8_t ioMode, uint8_t contRead)) ROM_APITABLE[ROM_API_INDEX_SFlash_IDbus_Read_Enable])
630 
631 #define RomDriver_SFlash_Cache_Enable_Set \
632     ((int(*)(uint8_t wayDisable))ROM_APITABLE[ROM_API_INDEX_SFlash_Cache_Enable_Set])
633 
634 #define RomDriver_SFlash_Cache_Flush \
635     ((int(*)(void))ROM_APITABLE[ROM_API_INDEX_SFlash_Cache_Flush])
636 
637 #define RomDriver_SFlash_Cache_Read_Enable \
638     ((int(*)(spi_flash_cfg_type * flashCfg, uint8_t ioMode, uint8_t contRead, uint8_t wayDisable)) ROM_APITABLE[ROM_API_INDEX_SFlash_Cache_Read_Enable])
639 
640 #define RomDriver_SFlash_Cache_Hit_Count_Get \
641     ((void (*)(uint32_t * hitCountLow, uint32_t * hitCountHigh)) ROM_APITABLE[ROM_API_INDEX_SFlash_Cache_Hit_Count_Get])
642 
643 #define RomDriver_SFlash_Cache_Miss_Count_Get \
644     ((uint32_t(*)(void))ROM_APITABLE[ROM_API_INDEX_SFlash_Cache_Miss_Count_Get])
645 
646 #define RomDriver_SFlash_Cache_Read_Disable \
647     ((void (*)(void))ROM_APITABLE[ROM_API_INDEX_SFlash_Cache_Read_Disable])
648 
649 #define RomDriver_SFlash_Read \
650     ((int(*)(spi_flash_cfg_type * flashCfg, uint8_t ioMode, uint8_t contRead, uint32_t addr, uint8_t * data, uint32_t len)) ROM_APITABLE[ROM_API_INDEX_SFlash_Read])
651 
652 #define RomDriver_SFlash_Read_Reg_With_Cmd \
653     ((int(*)(spi_flash_cfg_type * flashCfg, uint8_t readRegCmd, uint8_t * regValue, uint8_t regLen)) ROM_APITABLE[ROM_API_INDEX_SFlash_Read_Reg_With_Cmd])
654 
655 #define RomDriver_SFlash_Write_Reg_With_Cmd \
656     ((int(*)(spi_flash_cfg_type * flashCfg, uint8_t writeRegCmd, uint8_t * regValue, uint8_t regLen)) ROM_APITABLE[ROM_API_INDEX_SFlash_Write_Reg_With_Cmd])
657 
658 #define RomDriver_SFlash_Restore_From_Powerdown \
659     ((int(*)(spi_flash_cfg_type * pFlashCfg, uint8_t flashContRead)) ROM_APITABLE[ROM_API_INDEX_SFlash_Restore_From_Powerdown])
660 
661 #define RomDriver_SF_Cfg_Init_Ext_Flash_Gpio \
662     ((int (*)(uint8_t extFlashPin))ROM_APITABLE[ROM_API_INDEX_SF_Cfg_Init_Ext_Flash_Gpio])
663 
664 #define RomDriver_SF_Cfg_Init_Internal_Flash_Gpio \
665     ((void (*)(void))ROM_APITABLE[ROM_API_INDEX_SF_Cfg_Init_Internal_Flash_Gpio])
666 
667 #define RomDriver_SF_Cfg_Deinit_Ext_Flash_Gpio \
668     ((int (*)(uint8_t extFlashPin))ROM_APITABLE[ROM_API_INDEX_SF_Cfg_Deinit_Ext_Flash_Gpio])
669 
670 #define RomDriver_SF_Cfg_Restore_GPIO17_Fun \
671     ((void (*)(uint8_t fun))ROM_APITABLE[ROM_API_INDEX_SF_Cfg_Restore_GPIO17_Fun])
672 
673 #define RomDriver_SF_Cfg_Get_Flash_Cfg_Need_Lock \
674     ((int(*)(uint32_t flashID, spi_flash_cfg_type * pFlashCfg)) ROM_APITABLE[ROM_API_INDEX_SF_Cfg_Get_Flash_Cfg_Need_Lock])
675 
676 #define RomDriver_SF_Cfg_Init_Flash_Gpio \
677     ((int (*)(uint8_t flashPinCfg, uint8_t restoreDefault))ROM_APITABLE[ROM_API_INDEX_SF_Cfg_Init_Flash_Gpio])
678 
679 #define RomDriver_SF_Cfg_Flash_Identify \
680     ((uint32_t(*)(uint8_t callFromFlash, uint32_t autoScan, uint32_t flashPinCfg, uint8_t restoreDefault, spi_flash_cfg_type * pFlashCfg)) ROM_APITABLE[ROM_API_INDEX_SF_Cfg_Flash_Identify])
681 
682 #define RomDriver_SF_Ctrl_Enable \
683     ((void (*)(const struct sf_ctrl_cfg_type *cfg))ROM_APITABLE[ROM_API_INDEX_SF_Ctrl_Enable])
684 
685 #define RomDriver_SF_Ctrl_Select_Pad \
686     ((void (*)(uint8_t sel))ROM_APITABLE[ROM_API_INDEX_SF_Ctrl_Select_Pad])
687 
688 #define RomDriver_SF_Ctrl_Set_Owner \
689     ((void (*)(uint8_t owner))ROM_APITABLE[ROM_API_INDEX_SF_Ctrl_Set_Owner])
690 
691 #define RomDriver_SF_Ctrl_Disable \
692     ((void (*)(void))ROM_APITABLE[ROM_API_INDEX_SF_Ctrl_Disable])
693 
694 #define RomDriver_SF_Ctrl_AES_Enable_BE \
695     ((void (*)(void))ROM_APITABLE[ROM_API_INDEX_SF_Ctrl_AES_Enable_BE])
696 
697 #define RomDriver_SF_Ctrl_AES_Enable_LE \
698     ((void (*)(void))ROM_APITABLE[ROM_API_INDEX_SF_Ctrl_AES_Enable_LE])
699 
700 #define RomDriver_SF_Ctrl_AES_Set_Region \
701     ((void (*)(uint8_t region, uint8_t enable, uint8_t hwKey, uint32_t startAddr, uint32_t endAddr, uint8_t locked))ROM_APITABLE[ROM_API_INDEX_SF_Ctrl_AES_Set_Region])
702 
703 #define RomDriver_SF_Ctrl_AES_Set_Key \
704     ((void (*)(uint8_t region, uint8_t * key, uint8_t keyType)) ROM_APITABLE[ROM_API_INDEX_SF_Ctrl_AES_Set_Key])
705 
706 #define RomDriver_SF_Ctrl_AES_Set_Key_BE \
707     ((void (*)(uint8_t region, uint8_t * key, uint8_t keyType)) ROM_APITABLE[ROM_API_INDEX_SF_Ctrl_AES_Set_Key_BE])
708 
709 #define RomDriver_SF_Ctrl_AES_Set_IV \
710     ((void (*)(uint8_t region, uint8_t * iv, uint32_t addrOffset)) ROM_APITABLE[ROM_API_INDEX_SF_Ctrl_AES_Set_IV])
711 
712 #define RomDriver_SF_Ctrl_AES_Set_IV_BE \
713     ((void (*)(uint8_t region, uint8_t * iv, uint32_t addrOffset)) ROM_APITABLE[ROM_API_INDEX_SF_Ctrl_AES_Set_IV_BE])
714 
715 #define RomDriver_SF_Ctrl_AES_Enable \
716     ((void (*)(void))ROM_APITABLE[ROM_API_INDEX_SF_Ctrl_AES_Enable])
717 
718 #define RomDriver_SF_Ctrl_AES_Disable \
719     ((void (*)(void))ROM_APITABLE[ROM_API_INDEX_SF_Ctrl_AES_Disable])
720 
721 #define RomDriver_SF_Ctrl_Set_Flash_Image_Offset \
722     ((void (*)(uint32_t addrOffset))ROM_APITABLE[ROM_API_INDEX_SF_Ctrl_Set_Flash_Image_Offset])
723 
724 #define RomDriver_SF_Ctrl_Get_Flash_Image_Offset \
725     ((uint32_t(*)(void))ROM_APITABLE[ROM_API_INDEX_SF_Ctrl_Get_Flash_Image_Offset])
726 
727 #define RomDriver_SF_Ctrl_Select_Clock \
728     ((void (*)(uint8_t sahbType))ROM_APITABLE[ROM_API_INDEX_SF_Ctrl_Select_Clock])
729 
730 #define RomDriver_SF_Ctrl_SendCmd \
731     ((void (*)(struct sf_ctrl_cmd_cfg_type * cfg)) ROM_APITABLE[ROM_API_INDEX_SF_Ctrl_SendCmd])
732 
733 #define RomDriver_SF_Ctrl_Icache_Set \
734     ((void (*)(struct sf_ctrl_cmd_cfg_type * cfg, uint8_t cmdValid)) ROM_APITABLE[ROM_API_INDEX_SF_Ctrl_Icache_Set])
735 
736 #define RomDriver_SF_Ctrl_Icache2_Set \
737     ((void (*)(struct sf_ctrl_cmd_cfg_type * cfg, uint8_t cmdValid)) ROM_APITABLE[ROM_API_INDEX_SF_Ctrl_Icache2_Set])
738 
739 #define RomDriver_SF_Ctrl_GetBusyState \
740     ((int(*)(void))ROM_APITABLE[ROM_API_INDEX_SF_Ctrl_GetBusyState])
741 
742 #define RomDriver_SF_Ctrl_Is_AES_Enable \
743     ((uint8_t(*)(void))ROM_APITABLE[ROM_API_INDEX_SF_Ctrl_Is_AES_Enable])
744 
745 #define RomDriver_SF_Ctrl_Get_Clock_Delay \
746     ((uint8_t(*)(void))ROM_APITABLE[ROM_API_INDEX_SF_Ctrl_Get_Clock_Delay])
747 
748 #define RomDriver_SF_Ctrl_Set_Clock_Delay \
749     ((void (*)(uint8_t delay))ROM_APITABLE[ROM_API_INDEX_SF_Ctrl_Set_Clock_Delay])
750 
751 #define RomDriver_XIP_SFlash_State_Save \
752     ((int(*)(spi_flash_cfg_type * pFlashCfg, uint32_t * offset)) ROM_APITABLE[ROM_API_INDEX_XIP_SFlash_State_Save])
753 
754 #define RomDriver_XIP_SFlash_State_Restore \
755     ((int(*)(spi_flash_cfg_type * pFlashCfg, uint32_t offset)) ROM_APITABLE[ROM_API_INDEX_XIP_SFlash_State_Restore])
756 
757 #define RomDriver_XIP_SFlash_Erase_Need_Lock \
758     ((int(*)(spi_flash_cfg_type * pFlashCfg, uint32_t startaddr, uint32_t endaddr)) ROM_APITABLE[ROM_API_INDEX_XIP_SFlash_Erase_Need_Lock])
759 
760 #define RomDriver_XIP_SFlash_Write_Need_Lock \
761     ((int(*)(spi_flash_cfg_type * pFlashCfg, uint32_t addr, uint8_t * data, uint32_t len)) ROM_APITABLE[ROM_API_INDEX_XIP_SFlash_Write_Need_Lock])
762 
763 #define RomDriver_XIP_SFlash_Read_Need_Lock \
764     ((int(*)(spi_flash_cfg_type * pFlashCfg, uint32_t addr, uint8_t * data, uint32_t len)) ROM_APITABLE[ROM_API_INDEX_XIP_SFlash_Read_Need_Lock])
765 
766 #define RomDriver_XIP_SFlash_GetJedecId_Need_Lock \
767     ((int(*)(spi_flash_cfg_type * pFlashCfg, uint8_t * data)) ROM_APITABLE[ROM_API_INDEX_XIP_SFlash_GetJedecId_Need_Lock])
768 
769 #define RomDriver_XIP_SFlash_GetDeviceId_Need_Lock \
770     ((int(*)(spi_flash_cfg_type * pFlashCfg, uint8_t * data)) ROM_APITABLE[ROM_API_INDEX_XIP_SFlash_GetDeviceId_Need_Lock])
771 
772 #define RomDriver_XIP_SFlash_GetUniqueId_Need_Lock \
773     ((int(*)(spi_flash_cfg_type * pFlashCfg, uint8_t * data, uint8_t idLen)) ROM_APITABLE[ROM_API_INDEX_XIP_SFlash_GetUniqueId_Need_Lock])
774 
775 #define RomDriver_XIP_SFlash_Read_Via_Cache_Need_Lock \
776     ((int(*)(uint32_t addr, uint8_t * data, uint32_t len)) ROM_APITABLE[ROM_API_INDEX_XIP_SFlash_Read_Via_Cache_Need_Lock])
777 
778 #define RomDriver_XIP_SFlash_Opt_Enter \
779     ((void (*)(uint8_t * aesEnable)) ROM_APITABLE[ROM_API_INDEX_XIP_SFlash_Opt_Enter])
780 
781 #define RomDriver_XIP_SFlash_Opt_Exit \
782     ((void (*)(uint8_t aesEnable))ROM_APITABLE[ROM_API_INDEX_XIP_SFlash_Opt_Exit])
783 
784 #define RomDriver_BFLB_Soft_CRC32 \
785     ((uint32_t(*)(void *dataIn, uint32_t len))ROM_APITABLE[ROM_API_INDEX_BFLB_Soft_CRC32])
786 
787 /*@} end of group ROMDRIVER_Public_Macros */
788 
789 /** @defgroup  ROMDRIVER_Public_Functions
790  *  @{
791  */
792 
793 /*@} end of group ROMDRIVER_Public_Functions */
794 
795 /*@} end of group ROMDRIVER */
796 
797 /*@} end of group BL602_Peripheral_Driver */
798 
799 #endif /* __BL602_ROMDRIVER_H__ */
800