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