1 /*
2  * Copyright 2024 NXP
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #include "fsl_romapi_nboot.h"
8 #include "fsl_romapi.h"
9 
10 #define NBOOT_API_TREE ((nboot_interface_t *)(((uint32_t *)ROM_API_TREE_ADDR)[10]))
11 
NBOOT_ContextInit(nboot_context_t * context)12 nboot_status_t NBOOT_ContextInit(nboot_context_t *context)
13 {
14     assert(NBOOT_API_TREE);
15     return NBOOT_API_TREE->nboot_context_init(context);
16 }
17 
NBOOT_ContextDeinit(nboot_context_t * context)18 nboot_status_t NBOOT_ContextDeinit(nboot_context_t *context)
19 {
20     assert(NBOOT_API_TREE);
21     return NBOOT_API_TREE->nboot_context_deinit(context);
22 }
23 
NBOOT_Sb3LoadManifest(nboot_context_t * context,uint32_t * manifest,nboot_sb3_load_manifest_parms_t * parms)24 nboot_status_protected_t NBOOT_Sb3LoadManifest(nboot_context_t *context,
25                                                uint32_t *manifest,
26                                                nboot_sb3_load_manifest_parms_t *parms)
27 {
28     assert(NBOOT_API_TREE);
29     return NBOOT_API_TREE->nboot_sb3_load_manifest(context, manifest, parms);
30 }
31 
NBOOT_Sb3LoadBlock(nboot_context_t * context,uint32_t * block)32 nboot_status_protected_t NBOOT_Sb3LoadBlock(nboot_context_t *context, uint32_t *block)
33 {
34     assert(NBOOT_API_TREE);
35     return NBOOT_API_TREE->nboot_sb3_load_block(context, block);
36 }
37 
NBOOT_Sb3CheckAuthenticityAndCompleteness(nboot_context_t * context,uint32_t * address,nboot_sb3_load_manifest_parms_t * parms)38 nboot_status_protected_t NBOOT_Sb3CheckAuthenticityAndCompleteness(nboot_context_t *context,
39                                                                    uint32_t *address,
40                                                                    nboot_sb3_load_manifest_parms_t *parms)
41 {
42     assert(NBOOT_API_TREE);
43     return NBOOT_API_TREE->nboot_sb3_check_authenticity_and_completeness(context, address, parms);
44 }
45 
NBOOT_ImgAuthenticateEcdsa(nboot_context_t * context,uint8_t imageStartAddress[],nboot_bool_t * isSignatureVerified,nboot_img_auth_ecdsa_parms_t * parms)46 nboot_status_protected_t NBOOT_ImgAuthenticateEcdsa(nboot_context_t *context,
47                                                     uint8_t imageStartAddress[],
48                                                     nboot_bool_t *isSignatureVerified,
49                                                     nboot_img_auth_ecdsa_parms_t *parms)
50 {
51     assert(NBOOT_API_TREE);
52     return NBOOT_API_TREE->nboot_img_authenticate_ecdsa(context, imageStartAddress, isSignatureVerified, parms);
53 }
54 
NBOOT_ImgAuthenticateCmac(nboot_context_t * context,uint8_t imageStartAddress[],nboot_bool_t * isSignatureVerified,nboot_img_authenticate_cmac_parms_t * parms)55 nboot_status_protected_t NBOOT_ImgAuthenticateCmac(nboot_context_t *context,
56                                                    uint8_t imageStartAddress[],
57                                                    nboot_bool_t *isSignatureVerified,
58                                                    nboot_img_authenticate_cmac_parms_t *parms)
59 {
60     assert(NBOOT_API_TREE);
61     return NBOOT_API_TREE->nboot_img_authenticate_cmac(context, imageStartAddress, isSignatureVerified, parms);
62 }
63