1 /* SPDX-License-Identifier: GPL-2.0+ */ 2 /* 3 * Copyright 2021 NXP 4 */ 5 6 #ifndef __S400_API_H__ 7 #define __S400_API_H__ 8 9 #define AHAB_VERSION 0x6 10 #define AHAB_CMD_TAG 0x17 11 #define AHAB_RESP_TAG 0xe1 12 13 #define AHAB_LOG_CID 0x21 14 #define AHAB_AUTH_OEM_CTNR_CID 0x87 15 #define AHAB_VERIFY_IMG_CID 0x88 16 #define AHAB_RELEASE_CTNR_CID 0x89 17 #define AHAB_WRITE_SECURE_FUSE_REQ_CID 0x91 18 #define AHAB_FWD_LIFECYCLE_UP_REQ_CID 0x95 19 #define AHAB_READ_FUSE_REQ_CID 0x97 20 #define AHAB_RELEASE_RDC_REQ_CID 0xC4 21 #define AHAB_WRITE_FUSE_REQ_CID 0xD6 22 23 #define S400_MAX_MSG 8U 24 25 struct imx8ulp_s400_msg { 26 u8 version; 27 u8 size; 28 u8 command; 29 u8 tag; 30 u32 data[(S400_MAX_MSG - 1U)]; 31 }; 32 33 int ahab_release_rdc(u8 core_id, bool xrdc, u32 *response); 34 int ahab_auth_oem_ctnr(ulong ctnr_addr, u32 *response); 35 int ahab_release_container(u32 *response); 36 int ahab_verify_image(u32 img_id, u32 *response); 37 int ahab_forward_lifecycle(u16 life_cycle, u32 *response); 38 int ahab_write_fuse(u16 fuse_id, u32 fuse_val, bool lock, u32 *response); 39 int ahab_read_common_fuse(u16 fuse_id, u32 *fuse_words, u32 fuse_num, u32 *response); 40 41 #endif 42