1 /*
2  *     Copyright 2020-2021 NXP
3  *     All rights reserved.
4  *
5  *     SPDX-License-Identifier: BSD-3-Clause
6  */
7 #ifndef __NBOOT_ROM_API_TABLE_H__
8 #define __NBOOT_ROM_API_TABLE_H__
9 
10 typedef int romapi_status_t;
11 
12 typedef struct
13 {
14     romapi_status_t (*nboot_rsvd0)(void);
15     fsl_nboot_status_t (*nboot_context_init)(fsl_nboot_context_t *context);
16     fsl_nboot_status_t (*nboot_context_deinit)(fsl_nboot_context_t *context);
17     fsl_nboot_status_protected_t (*nboot_sb3_load_manifest)(fsl_nboot_context_t *context,
18                                                         uint32_t *manifest,
19                                                         fsl_nboot_sb3_load_manifest_parms_t *parms);
20     fsl_nboot_status_protected_t (*nboot_sb3_load_block)(fsl_nboot_context_t *context, uint32_t *block);
21     fsl_nboot_status_protected_t (*nboot_rsvd1)(void);
22     fsl_nboot_status_protected_t (*nboot_rsvd2)(void);
23 } nboot_interface_v0_t;
24 
25 typedef struct
26 {
27     romapi_status_t (*romapi_rng_generate_random)(uint8_t *output, size_t outputByteLen);
28     fsl_nboot_status_t (*nboot_context_init)(fsl_nboot_context_t *context);
29     fsl_nboot_status_t (*nboot_context_deinit)(fsl_nboot_context_t *context);
30     fsl_nboot_status_protected_t (*nboot_sb3_load_manifest)(fsl_nboot_context_t *context,
31                                                         uint32_t *manifest,
32                                                         fsl_nboot_sb3_load_manifest_parms_t *parms);
33     fsl_nboot_status_protected_t (*nboot_sb3_load_block)(fsl_nboot_context_t *context, uint32_t *block);
34     fsl_nboot_status_protected_t (*nboot_img_authenticate_ecdsa)(fsl_nboot_context_t *context,
35                                                              uint8_t imageStartAddress[],
36                                                              fsl_nboot_bool_t *isSignatureVerified,
37                                                              fsl_nboot_img_auth_ecdsa_parms_t *parms);
38 } nboot_interface_v1_t;
39 
40 #endif /* _NBOOT_ROM_API_TABLE_H_ */
41