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