1 /*
2  * Copyright 2024 NXP
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #include "fsl_romapi_iap.h"
8 #include "fsl_romapi.h"
9 
10 #define IAP_API_TREE ((iap_api_interface_t *)(((uint32_t *)ROM_API_TREE_ADDR)[13]))
11 
iap_api_version(void)12 uint32_t iap_api_version(void)
13 {
14     assert(IAP_API_TREE);
15     return IAP_API_TREE->version.version;
16 }
17 
iap_api_init(api_core_context_t * coreCtx,const kp_api_init_param_t * param)18 status_t iap_api_init(api_core_context_t *coreCtx, const kp_api_init_param_t *param)
19 {
20     assert(IAP_API_TREE);
21     return IAP_API_TREE->api_init(coreCtx, param);
22 }
23 
iap_api_deinit(api_core_context_t * coreCtx)24 status_t iap_api_deinit(api_core_context_t *coreCtx)
25 {
26     assert(IAP_API_TREE);
27     return IAP_API_TREE->api_deinit(coreCtx);
28 }
29 
iap_sbloader_init(api_core_context_t * ctx)30 status_t iap_sbloader_init(api_core_context_t *ctx)
31 {
32     assert(IAP_API_TREE);
33     return IAP_API_TREE->sbloader_init(ctx);
34 }
35 
iap_sbloader_pump(api_core_context_t * ctx,uint8_t * data,uint32_t length)36 status_t iap_sbloader_pump(api_core_context_t *ctx, uint8_t *data, uint32_t length)
37 {
38     assert(IAP_API_TREE);
39     return IAP_API_TREE->sbloader_pump(ctx, data, length);
40 }
41 
iap_sbloader_finalize(api_core_context_t * ctx)42 status_t iap_sbloader_finalize(api_core_context_t *ctx)
43 {
44     assert(IAP_API_TREE);
45     return IAP_API_TREE->sbloader_finalize(ctx);
46 }
47