xref: /utopia/UTPA2-700.0.x/mxlib/include/drvCA_v2.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1*53ee8cc1Swenshuai.xi #ifndef __DRV_CA_V2_H__
2*53ee8cc1Swenshuai.xi #define __DRV_CA_V2_H__
3*53ee8cc1Swenshuai.xi 
4*53ee8cc1Swenshuai.xi #include "drvCA.h"
5*53ee8cc1Swenshuai.xi 
6*53ee8cc1Swenshuai.xi #ifdef __cplusplus
7*53ee8cc1Swenshuai.xi extern "C"
8*53ee8cc1Swenshuai.xi {
9*53ee8cc1Swenshuai.xi #endif
10*53ee8cc1Swenshuai.xi 
11*53ee8cc1Swenshuai.xi typedef enum {
12*53ee8cc1Swenshuai.xi     E_MDRV_CMD_CA_Init,
13*53ee8cc1Swenshuai.xi     E_MDRV_CMD_CA_OTP_EnableSecureBoot,
14*53ee8cc1Swenshuai.xi     E_MDRV_CMD_CA_OTP_IsSecureBootEnabled,
15*53ee8cc1Swenshuai.xi     E_MDRV_CMD_CA_OTP_SetBlockLock,
16*53ee8cc1Swenshuai.xi     E_MDRV_CMD_CA_OTP_GetBlockLock,
17*53ee8cc1Swenshuai.xi     E_MDRV_CMD_CA_OTP_IsBlank,
18*53ee8cc1Swenshuai.xi     E_MDRV_CMD_CA_OTP_Read,
19*53ee8cc1Swenshuai.xi     E_MDRV_CMD_CA_OTP_Write,
20*53ee8cc1Swenshuai.xi     E_MDRV_CMD_CA_Locked,
21*53ee8cc1Swenshuai.xi     E_MDRV_CMD_CA_OTP_Lock,
22*53ee8cc1Swenshuai.xi     E_MDRV_CMD_CA_OTP_SetRSAextID,
23*53ee8cc1Swenshuai.xi     E_MDRV_CMD_CA_OTP_GetRSAextID,
24*53ee8cc1Swenshuai.xi     E_MDRV_CMD_CA_OTP_SetHASH1_REF_VER,
25*53ee8cc1Swenshuai.xi     E_MDRV_CMD_CA_OTP_GetHASH1_REF_VER,
26*53ee8cc1Swenshuai.xi     E_MDRV_CMD_CA_OTP_SetHASH_REF_VER,
27*53ee8cc1Swenshuai.xi     E_MDRV_CMD_CA_OTP_GetHASH_REF_VER,
28*53ee8cc1Swenshuai.xi     E_MDRV_CMD_CA_OTP_SetDebugPortMode,
29*53ee8cc1Swenshuai.xi     E_MDRV_CMD_CA_OTP_GetDebugPortMode,
30*53ee8cc1Swenshuai.xi     E_MDRV_CMD_CA_OTP_SetDeviceId,
31*53ee8cc1Swenshuai.xi     E_MDRV_CMD_CA_OTP_GetDeviceId,
32*53ee8cc1Swenshuai.xi     E_MDRV_CMD_CA_MaxDeviceIdSize,
33*53ee8cc1Swenshuai.xi     E_MDRV_CMD_CA_OTP_EnableSecureCWMode,
34*53ee8cc1Swenshuai.xi     E_MDRV_CMD_CA_OTP_IsSecureCWMode,
35*53ee8cc1Swenshuai.xi     E_MDRV_CMD_CA_Random,
36*53ee8cc1Swenshuai.xi     E_MDRV_CMD_CA_OTP_ReadCAVendor,
37*53ee8cc1Swenshuai.xi 
38*53ee8cc1Swenshuai.xi } eCAIoctlOpt;
39*53ee8cc1Swenshuai.xi 
40*53ee8cc1Swenshuai.xi 
41*53ee8cc1Swenshuai.xi typedef struct _CA_OTP_SETBLOCKLOCK
42*53ee8cc1Swenshuai.xi {
43*53ee8cc1Swenshuai.xi     MS_U32 u32Start;
44*53ee8cc1Swenshuai.xi     MS_U32 u32End;
45*53ee8cc1Swenshuai.xi     CA_LOCK_TYPE eLockType;
46*53ee8cc1Swenshuai.xi } CA_OTP_SETBLOCKLOCK;
47*53ee8cc1Swenshuai.xi 
48*53ee8cc1Swenshuai.xi typedef struct _CA_OTP_GETBLOCKLOCK
49*53ee8cc1Swenshuai.xi {
50*53ee8cc1Swenshuai.xi     MS_U32 *pu32Start;
51*53ee8cc1Swenshuai.xi     MS_U32 *pu32End;
52*53ee8cc1Swenshuai.xi     CA_LOCK_TYPE *peLockType;
53*53ee8cc1Swenshuai.xi } CA_OTP_GETBLOCKLOCK;
54*53ee8cc1Swenshuai.xi 
55*53ee8cc1Swenshuai.xi typedef struct _CA_OTP_ISBLANK
56*53ee8cc1Swenshuai.xi {
57*53ee8cc1Swenshuai.xi     MS_U32 u32addr;
58*53ee8cc1Swenshuai.xi } CA_OTP_ISBLANK;
59*53ee8cc1Swenshuai.xi 
60*53ee8cc1Swenshuai.xi typedef struct _CA_OTP_READ
61*53ee8cc1Swenshuai.xi {
62*53ee8cc1Swenshuai.xi     MS_U32 u32Addr;
63*53ee8cc1Swenshuai.xi     MS_U32 u32OTPValue;
64*53ee8cc1Swenshuai.xi } CA_OTP_READ;
65*53ee8cc1Swenshuai.xi 
66*53ee8cc1Swenshuai.xi typedef struct _CA_OTP_WRITE
67*53ee8cc1Swenshuai.xi {
68*53ee8cc1Swenshuai.xi     MS_U32 u32Addr;
69*53ee8cc1Swenshuai.xi     MS_U32 u32value;
70*53ee8cc1Swenshuai.xi } CA_OTP_WRITE;
71*53ee8cc1Swenshuai.xi 
72*53ee8cc1Swenshuai.xi typedef struct _CA_OTP_LOCK20
73*53ee8cc1Swenshuai.xi {
74*53ee8cc1Swenshuai.xi     CA_OTP_LOCK eLock;
75*53ee8cc1Swenshuai.xi } CA_OTP_LOCK20;
76*53ee8cc1Swenshuai.xi 
77*53ee8cc1Swenshuai.xi typedef struct _CA_OTP_SETRSAEXTID
78*53ee8cc1Swenshuai.xi {
79*53ee8cc1Swenshuai.xi     MS_U32 u32value;
80*53ee8cc1Swenshuai.xi } CA_OTP_SETRSAEXTID;
81*53ee8cc1Swenshuai.xi 
82*53ee8cc1Swenshuai.xi typedef struct _CA_OTP_GETRSAEXTID
83*53ee8cc1Swenshuai.xi {
84*53ee8cc1Swenshuai.xi     MS_U32 u32value;
85*53ee8cc1Swenshuai.xi } CA_OTP_GETRSAEXTID;
86*53ee8cc1Swenshuai.xi 
87*53ee8cc1Swenshuai.xi typedef struct _CA_OTP_SETHASH1REFVER
88*53ee8cc1Swenshuai.xi {
89*53ee8cc1Swenshuai.xi     MS_U32 u32HASH1_REF_VER;
90*53ee8cc1Swenshuai.xi } CA_OTP_SETHASH1REFVER;
91*53ee8cc1Swenshuai.xi 
92*53ee8cc1Swenshuai.xi typedef struct _CA_OTP_GETHASH1REFVER
93*53ee8cc1Swenshuai.xi {
94*53ee8cc1Swenshuai.xi     MS_U32 *pu32HASH1_REF_VER;
95*53ee8cc1Swenshuai.xi } CA_OTP_GETHASH1REFVER;
96*53ee8cc1Swenshuai.xi 
97*53ee8cc1Swenshuai.xi typedef struct _CA_OTP_SETHASHREFVER
98*53ee8cc1Swenshuai.xi {
99*53ee8cc1Swenshuai.xi     MS_U32 u32HASH0_REF_VER;
100*53ee8cc1Swenshuai.xi     MS_U32 u32HASH2_REF_VER;
101*53ee8cc1Swenshuai.xi } CA_OTP_SETHASHREFVER;
102*53ee8cc1Swenshuai.xi 
103*53ee8cc1Swenshuai.xi typedef struct _CA_OTP_GETHASHREFVER
104*53ee8cc1Swenshuai.xi {
105*53ee8cc1Swenshuai.xi     MS_U32 *pu32HASH0_REF_VER;
106*53ee8cc1Swenshuai.xi     MS_U32 *pu32HASH2_REF_VER;
107*53ee8cc1Swenshuai.xi } CA_OTP_GETHASHREFVER;
108*53ee8cc1Swenshuai.xi 
109*53ee8cc1Swenshuai.xi typedef struct _CA_OTP_SETDEBUGPORTMODE
110*53ee8cc1Swenshuai.xi {
111*53ee8cc1Swenshuai.xi     CA_DEBUG_PORT eDebugPort;
112*53ee8cc1Swenshuai.xi     CA_DEBUG_PORT_MODE eMode;
113*53ee8cc1Swenshuai.xi } CA_OTP_SETDEBUGPORTMODE;
114*53ee8cc1Swenshuai.xi 
115*53ee8cc1Swenshuai.xi typedef struct _CA_OTP_GETDEBUGPORTMODE
116*53ee8cc1Swenshuai.xi {
117*53ee8cc1Swenshuai.xi     CA_DEBUG_PORT eDebugPort;
118*53ee8cc1Swenshuai.xi     CA_DEBUG_PORT_MODE *eMode;
119*53ee8cc1Swenshuai.xi } CA_OTP_GETDEBUGPORTMODE;
120*53ee8cc1Swenshuai.xi 
121*53ee8cc1Swenshuai.xi typedef struct _CA_OTP_SETDEVICEID
122*53ee8cc1Swenshuai.xi {
123*53ee8cc1Swenshuai.xi     const MS_U8 *pu8Did;
124*53ee8cc1Swenshuai.xi     MS_U32 u32Size;
125*53ee8cc1Swenshuai.xi } CA_OTP_SETDEVICEID;
126*53ee8cc1Swenshuai.xi 
127*53ee8cc1Swenshuai.xi typedef struct _CA_OTP_GETDEVICEID
128*53ee8cc1Swenshuai.xi {
129*53ee8cc1Swenshuai.xi     MS_U8 *pu8Did;
130*53ee8cc1Swenshuai.xi     MS_U32 u32Size;
131*53ee8cc1Swenshuai.xi } CA_OTP_GETDEVICEID;
132*53ee8cc1Swenshuai.xi 
133*53ee8cc1Swenshuai.xi typedef struct _CA_MAXDEVICEIDSIZE
134*53ee8cc1Swenshuai.xi {
135*53ee8cc1Swenshuai.xi     MS_U32 u32MaxDeviceIdSize;
136*53ee8cc1Swenshuai.xi } CA_MAXDEVICEIDSIZE;
137*53ee8cc1Swenshuai.xi 
138*53ee8cc1Swenshuai.xi typedef struct _CA_RANDOM
139*53ee8cc1Swenshuai.xi {
140*53ee8cc1Swenshuai.xi     MS_U32 u32Random;
141*53ee8cc1Swenshuai.xi } CA_RANDOM;
142*53ee8cc1Swenshuai.xi 
143*53ee8cc1Swenshuai.xi typedef struct _CA_OTP_READCAVENDOR
144*53ee8cc1Swenshuai.xi {
145*53ee8cc1Swenshuai.xi     MS_U32 u32CAVendor;
146*53ee8cc1Swenshuai.xi } CA_OTP_READCAVENDOR;
147*53ee8cc1Swenshuai.xi 
148*53ee8cc1Swenshuai.xi MS_U32 CAOpen(void** pInstantTmp, MS_U32 u32ModuleVersion, void* pAttribute);
149*53ee8cc1Swenshuai.xi MS_U32 CAClose(void* pInstantTmp);
150*53ee8cc1Swenshuai.xi MS_U32 CAIoctl(void* pInstantTmp, MS_U32 u32Cmd, void* pu32Args);
151*53ee8cc1Swenshuai.xi 
152*53ee8cc1Swenshuai.xi #ifdef __cplusplus
153*53ee8cc1Swenshuai.xi }
154*53ee8cc1Swenshuai.xi #endif
155*53ee8cc1Swenshuai.xi 
156*53ee8cc1Swenshuai.xi #endif // __DRV_CA_V2_H__
157