89fa373d06ff9bcde8a9c3230db47b41d955778d
[platform/kernel/u-boot.git] / arch / arm / include / asm / mach-imx / s400_api.h
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_GET_FW_VERSION_CID 0x9D
21 #define AHAB_RELEASE_RDC_REQ_CID   0xC4
22 #define AHAB_GET_FW_STATUS_CID   0xC5
23 #define AHAB_WRITE_FUSE_REQ_CID 0xD6
24 #define AHAB_CAAM_RELEASE_CID 0xD7
25 #define AHAB_GET_INFO_CID 0xDA
26
27 #define S400_MAX_MSG          255U
28
29 struct sentinel_msg {
30         u8 version;
31         u8 size;
32         u8 command;
33         u8 tag;
34         u32 data[(S400_MAX_MSG - 1U)];
35 };
36
37 struct sentinel_get_info_data {
38         u32 hdr;
39         u32 soc;
40         u32 lc;
41         u32 uid[4];
42         u32 sha256_rom_patch[8];
43         u32 sha_fw[8];
44 };
45
46 int ahab_release_rdc(u8 core_id, u8 xrdc, u32 *response);
47 int ahab_auth_oem_ctnr(ulong ctnr_addr, u32 *response);
48 int ahab_release_container(u32 *response);
49 int ahab_verify_image(u32 img_id, u32 *response);
50 int ahab_forward_lifecycle(u16 life_cycle, u32 *response);
51 int ahab_write_fuse(u16 fuse_id, u32 fuse_val, bool lock, u32 *response);
52 int ahab_read_common_fuse(u16 fuse_id, u32 *fuse_words, u32 fuse_num, u32 *response);
53 int ahab_release_caam(u32 core_did, u32 *response);
54 int ahab_get_fw_version(u32 *fw_version, u32 *sha1, u32 *response);
55 int ahab_dump_buffer(u32 *buffer, u32 buffer_length);
56 int ahab_get_info(struct sentinel_get_info_data *info, u32 *response);
57 int ahab_get_fw_status(u32 *status, u32 *response);
58 int ahab_release_m33_trout(void);
59
60 #endif