xref: /utopia/UTPA2-700.0.x/modules/security/hal/k7u/cipher/regCIPHER.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1 ////////////////////////////////////////////////////////////////////////////////
2 //
3 // Copyright (c) 2006-2009 MStar Semiconductor, Inc.
4 // All rights reserved.
5 //
6 // Unless otherwise stipulated in writing, any and all information contained
7 // herein regardless in any format shall remain the sole proprietary of
8 // MStar Semiconductor Inc. and be kept in strict confidence
9 // (��MStar Confidential Information��) by the recipient.
10 // Any unauthorized act including without limitation unauthorized disclosure,
11 // copying, use, reproduction, sale, distribution, modification, disassembling,
12 // reverse engineering and compiling of the contents of MStar Confidential
13 // Information is unlawful and strictly prohibited. MStar hereby reserves the
14 // rights to any and all damages, losses, costs and expenses resulting therefrom.
15 //
16 ////////////////////////////////////////////////////////////////////////////////
17 
18 ////////////////////////////////////////////////////////////////////////////////////////////////////
19 //
20 //  File name: regCIPHER.h
21 //  Description: CIPHER Register Definition
22 //
23 ////////////////////////////////////////////////////////////////////////////////////////////////////
24 
25 #ifndef __REG_CIPHER_H__
26 #define __REG_CIPHER_H__
27 
28 
29 //--------------------------------------------------------------------------------------------------
30 //  Abbreviation
31 //--------------------------------------------------------------------------------------------------
32 // Addr                             Address
33 // Buf                              Buffer
34 // Clr                              Clear
35 // CmdQ                             Command queue
36 // Cnt                              Count
37 // Ctrl                             Control
38 // Flt                              Filter
39 // Hw                               Hardware
40 // Int                              Interrupt
41 // Len                              Length
42 // Ovfw                             Overflow
43 // Pkt                              Packet
44 // Rec                              Record
45 // Recv                             Receive
46 // Rmn                              Remain
47 // Reg                              Register
48 // Req                              Request
49 // Rst                              Reset
50 // Scmb                             Scramble
51 // Sec                              Section
52 // Stat                             Status
53 // Sw                               Software
54 // Ts                               Transport Stream
55 
56 #include "MsTypes.h"
57 //--------------------------------------------------------------------------------------------------
58 //  Global Definition
59 //--------------------------------------------------------------------------------------------------
60 
61 
62 //--------------------------------------------------------------------------------------------------
63 //  Compliation Option
64 //--------------------------------------------------------------------------------------------------
65 
66 
67 //-------------------------------------------------------------------------------------------------
68 //  Harware Capability
69 //-------------------------------------------------------------------------------------------------
70 
71 
72 //-------------------------------------------------------------------------------------------------
73 //  Type and Structure
74 //-------------------------------------------------------------------------------------------------
75 #if defined (MCU_AEON)
76 #define REG_CIPHERCTRL_BASE         (0x1A0200 * 2) // bank 0x2A02
77 #else
78 #define REG_CIPHERCTRL_BASE         (0xA0B00 * 2) // bank 0x1A0B
79 #endif
80 #define REG_IRQCTRL_BASE            (0x01900 * 2) // bank 0x1019
81 #define REG_MIU_CROSSBAR            (0x61300 * 2) //bank 0x1613
82 
83 #define REG32_Data   volatile MS_U32
84 
85 #define DMA_CTRL_REG_SIZE       5UL  //0x02:ctrl  0x03:reserved  0x04:reserved  0x05:except_flag  0x06:cryptoDMA_debug
86 #define DMA_DIRECT_OUTPUT_SIZE  4UL
87 #define HASH_RPT_REG_SIZE       10UL
88 #define DMA_RPT_REG_SIZE        2UL
89 #define HMAC_KEY_SIZE           4UL
90 #define HWPA_KEY_SIZE           4UL
91 #define HWPA_IV_SIZE            4UL
92 
93 #define RESERVE_SIZE1           3UL
94 #define RESERVE_SIZE2           21UL
95 
96 #define HASH_CMD_MSG_SIZE           (64UL) //16*4
97 #define HASH_CMD_IV_SIZE            (32UL) //8*4
98 #define HASH_CMD_HMAC_HOSTKEY_SIZE  (16UL)
99 
100 typedef struct _REG_AESDMACtrl
101 {
102     REG32_Data   SpareCnt_ORG ;
103     REG32_Data   Cmd_Queue_ORG;
104     REG32_Data   Dma_Ctrl[DMA_CTRL_REG_SIZE]; //0x02:ctrl  0x03:debug data  0x04:reserved  0x05:except_flag  0x06:cryptoDMA_debug
105 		#define	 REG_DMA_CTRL 			       0x0
106         #define	 REG_EXCEPT_FLAG 			   0x3
107         #define  REG_EXCEPT_FLAG_SIZE          27
108         #define  REG_CRYPTODMA_DEBUG           0x4
109 		#define  REG_EXCEPT_FLAG_CLEAR         0x80000
110 		#define  REG_DMA_SW_RESET              0x1
111         #define  REG_PARSER_LG_PATH_EN         0x400
112     REG32_Data   Dma_Out[DMA_DIRECT_OUTPUT_SIZE];
113     REG32_Data   Hash_Reportp[HASH_RPT_REG_SIZE];
114         #define  REG_CIPHER_RPT_THREAD_MSK     0xFFFF
115         #define  REG_CIPHER_RPT_OK             0x80000000
116         #define  REG_CIPHER_RPT_SHT              31
117     REG32_Data   Dma_Reportp[DMA_RPT_REG_SIZE];
118     REG32_Data   CryptoDMA2MI_NS;
119     REG32_Data   Debug_Port;
120     REG32_Data   HMAC_Key[HMAC_KEY_SIZE];
121     REG32_Data   RESERVE1[RESERVE_SIZE1];
122     REG32_Data   HWPA_Ctrl;
123     REG32_Data   HWPA_IV2[HWPA_IV_SIZE];
124     REG32_Data   HWPA_Key2[HWPA_KEY_SIZE];
125     REG32_Data   Cipher_Status;
126     REG32_Data   Parser_Status;
127     REG32_Data   RESERVE2[RESERVE_SIZE2];
128     REG32_Data   SpareCnt ;
129     REG32_Data   Cmd_Queue;
130 
131 
132 }REG_AESDMACtrl;
133 
134 typedef enum
135 {
136     E_CIPHER_NDS_Region_fail,
137     E_CIPHER_NDS_keyoff,
138     E_CIPHER_sha_write_scr,
139     E_CIPHER_sha_read_scr,
140     E_CIPHER_sha_error_flag,
141     E_CIPHER_except_read_scr,
142     E_CIPHER_except_key,
143     E_CIPHER_except_CAVid,
144     E_CIPHER_except_des,
145     E_CIPHER_except_NDS,
146     E_CIPHER_except_chain,
147     E_CIPHER_except_algo,
148     E_CIPHER_except_key_HID,
149     E_CIPHER_except_key_cbc_mac,
150     E_CIPHER_except_file_dqmem,
151     E_CIPHER_except_hash_dqmem,
152     E_CIPHER_disable_masterkey0,
153     E_CIPHER_disable_masterkey1,
154     E_CIPHER_disable_cck,
155     E_CIPHER_disable_reg_key_0,
156     E_CIPHER_disable_reg_key_1,
157     E_CIPHER_disable_reg_key_2,
158     E_CIPHER_disable_reg_key_3,
159     E_CIPHER_dma_forbid_qmem2dram,
160     E_CIPHER_dma_forbid_cryptodma_keyslot_qmem,
161     E_CIPHER_sha_forbid_qmem2dram,
162     E_CIPHER_sha_forbid_cryptodma_keyslot_qmem,
163 	E_CIPHER_tdes_key_error,
164 	E_CIPHER_write_address_error,
165 	E_CIPHER_except_str,
166 	E_CIPHER_except_sha_str
167 
168 }REG_Cipher_ExceptFlag;
169 
170 typedef enum
171 {
172     E_CIPHER_DEBUG_HASH_BUSY  = 0x40,
173     E_CIPHER_DEBUG_DMA_BUSY   = 0x80,
174 
175 }REG_CIPHER_Debug;
176 
177 
178 typedef struct _CMD_DmaFormat0
179 {
180     MS_U32          Key_Index:6;
181 
182     MS_U32          DIV:1;
183 
184     MS_U32          DK:1;
185 
186     MS_U32          OVT:1;
187 
188     MS_U32          SB:3;
189         #define     CMD_DMA_SB_SEL_CLR          0x0UL
190         #define     CMD_DMA_SB_SEL_IV1          0x1UL
191         #define     CMD_DMA_SB_SEL_IV2          0x2UL
192 
193     MS_U32          Residue:3;
194     	#define     CMD_DMA_RESIDUE_CLR         0x0UL
195     	#define     CMD_DMA_RESIDUE_CTS         0x1UL
196     	#define     CMD_DMA_RESIDUE_SCTE52      0x2UL
197 
198   //jamietest  MS_U32          Decrypt:1;
199 
200     MS_U32          SubAlgo:4;
201         #define     CMD_DMA_SUBALGO_ECB          0x0UL
202         #define     CMD_DMA_SUBALGO_CBC          0x1UL
203         #define     CMD_DMA_SUBALGO_CTR          0x2UL
204         #define     CMD_DMA_SUBALGO_CBC_MAC      0x3UL  // [NOTE] This sub algorithm is AES only
205 		#define     CMD_DMA_SUBALGO_CTR64        0x4UL
206         #define     CMD_DMA_SUBALGO_CMAC_KEY     0x5UL
207         #define     CMD_DMA_SUBALGO_CMAC_ALGO    0x6UL
208 
209     MS_U32          Algo:4;
210         #define     CMD_DMA_ALGO_AES                0x1UL
211         #define     CMD_DMA_ALGO_DES                0x2UL
212         #define     CMD_DMA_ALGO_TDES               0x3UL
213         #define     CMD_DMA_ALGO_M6                 0x4UL
214         #define     CMD_DMA_ALGO_M6_CCBC_DIS        0x5UL
215         #define     CMD_DMA_ALGO_M6_KE56            0x6UL
216         #define     CMD_DMA_ALGO_M6_KE56_CCBC_DIS   0x7UL
217         #define     CMD_DMA_ALGO_RC4                0x8UL
218         #define     CMD_DMA_ALGO_RC4_128            0x9UL
219         #define     CMD_DMA_ALGO_SM4                0xAUL
220 
221     MS_U32          KeySel:4; //jamietest KeySel:3
222 
223         // bit [3]
224         #define     CMD_DMA_KSEL_CLR_SK             0x8UL
225 
226         // bit [2:0]
227         #define     CMD_DMA_KSEL_SK                 0x0UL //key from 64-keyslot sram
228         #define     CMD_DMA_KSEL_SCS_AUTH_KEY       0x1UL //SCS_Auth_key
229         #define     CMD_DMA_KSEL_SCS_AUX_KEY        0x2UL //SCS_Aux_key
230         #define     CMD_DMA_KSEL_SCS_IMG_KEY        0x3UL //SCS_IMG_key
231         #define     CMD_DMA_KSEL_MK0                0x4UL //master key0 (OTPC shadow reg)
232         #define     CMD_DMA_KSEL_MK1                0x5UL //master key1 (OTPC shadow reg)
233         #define     CMD_DMA_KSEL_MK2                0x6UL //master key2 (OTPC shadow reg)
234         #define     CMD_DMA_KSEL_STRN               0x7UL //DRAM signature nonce
235 
236 	MS_U32          CMD:3;
237         #define     CMD_DMA_ENCRYPT                 0x2UL
238         #define     CMD_DMA_DECRYPT                 0x3UL
239         #define     CMD_DMA_MASK                    0x2FUL
240 
241     MS_U32          Aes_mode:2;
242         #define     CMD_AES_MODE_128                 0x0UL
243         #define     CMD_AES_MODE_256                 0x1UL
244         #define     CMD_AES_MODE_192                 0x2UL
245 
246 }CMD_DmaFormat0;
247 
248 
249 typedef struct _CMD_DmaFormat1
250 {
251     MS_U32          TID:16;
252     MS_U32          CaVid:5;
253     MS_U32          IntM:1;
254         #define     CMD_INT_MODE_NONE       0x0UL
255         #define     CMD_INT_MODE_EN         0x1UL
256         //#define     CMD_INT_MODE_WAIT_CLR   0x2   // Block next operation until interrupt is cleared
257     MS_U32          NL:1;
258         #define     CMD_NEW_LINE            0x1UL
259 
260     MS_U32          RR:1;  	// Report Mode
261         #define     CMD_DMA_RPT_MODE_REG        0x0UL
262         #define     CMD_DMA_RPT_MODE_DRAM       0x1UL
263 
264     MS_U32          Dest0:1;     // File output Dest0
265         #define     CMD_DMA_OUTPUT_DRAM         0x0UL
266         #define     CMD_DMA_OUTPUT_REG          0x1UL   //[NOTE] if HID = R2 , the output will be written into DQRAM
267 
268     MS_U32          SD:2;       // Source Data
269 	    #define     CMD_DMA_DATA_REG            0x0UL
270         #define     CMD_DMA_DATA_DRAM           0x1UL
271         #define     CMD_DMA_DATA_R2             0x2UL //[NOTE] bit[15] = 0, IQMEM. bit[15] = 1, DQMEM
272         #define     CMD_DMA_DATA_HW_INPUT       0x3UL //jamietest
273     MS_U32          DIBS:1;     // Data Input Byte Swap
274     MS_U32          DOBS:1;     // Output Data Byte swap
275     MS_U32          Dest1:1;     // [NOTE] if Dest1 = 0 ,Write output data to DRAM, Regfile or QMEM by setting; else output to SRAM of KL or internal key bank by Dest0
276         #define     CMD_DMA_OUTPUT_DEST         0x0UL
277         #define     CMD_DMA_OUTPUT_SRAM_KL      0x1UL
278     MS_U32          COS:1;      // Output Data Swap
279     MS_U32          CIS:1;      // Input Data Swap
280 
281 }CMD_DmaFormat1;
282 
283 typedef struct _CMD_DmaFormat2
284 {
285     MS_U32          OBF_IDX_WRITE:5;
286     MS_U32          CTROT:4;
287     MS_U32          DMP:1;
288     MS_U32          TK:1;
289     MS_U32          TsInSb:2;
290     MS_U32          BPS:1;
291     MS_U32          TsSbMk:1;
292     MS_U32          TsSbPn:2;
293         #define     CMD_PARSER_SCB10            0x2UL
294         #define     CMD_PARSER_SCB11            0x3UL
295     MS_U32          InSb:1;
296     MS_U32          RmSb:1;
297     MS_U32          CR:1;
298     MS_U32          IT:1;
299     MS_U32          AT:1;
300     MS_U32          P192:1;
301     MS_U32          TS:1;
302     MS_U32          HDCP:1;
303     MS_U32          HP:1;
304     MS_U32          OBF_IDX_READ:5;
305 
306     MS_U32          Key_bank:1; //Set 1, the cipher key is from the internal key bank
307 
308 }CMD_DmaFormat2;
309 
310 typedef struct _CMD_DmaFormat3
311 {
312     MS_U32          Aes_mode2:2;
313         #define     CMD_AES_MODE_128                 0x0UL
314         #define     CMD_AES_MODE_256                 0x1UL
315         #define     CMD_AES_MODE_192                 0x2UL
316     MS_U32          TLB_write:1;
317         #define     CMD_WRITE_PHY_ADDRESS           0x0UL
318         #define     CMD_WRITE_VIR_ADDRESS           0x1UL
319     MS_U32          TLB_read:1;
320         #define     CMD_READ_PHY_ADDRESS            0x0UL
321         #define     CMD_READ_VIR_ADDRESS            0x1UL
322     MS_U32          CRS:1;
323     MS_U32          MP:1;
324     MS_U32          DIV2:1;
325     MS_U32          DK2:1;
326     MS_U32          MDEM:1;
327 
328     MS_U32          SB2:3;
329         #define     CMD_DMA_SB_SEL_CLR          0x0UL
330         #define     CMD_DMA_SB_SEL_IV1          0x1UL
331         #define     CMD_DMA_SB_SEL_IV2          0x2UL
332 
333     MS_U32          Residue2:3;
334         #define     CMD_DMA_RESIDUE_CLR         0x0UL
335         #define     CMD_DMA_RESIDUE_CTS         0x1UL
336         #define     CMD_DMA_RESIDUE_SCTE52      0x2UL
337 
338   //jamietest  MS_U32          Decrypt:1;
339 
340     MS_U32          SubAlgo2:4;
341         #define     CMD_DMA_SUBALGO_ECB          0x0UL
342         #define     CMD_DMA_SUBALGO_CBC          0x1UL
343         #define     CMD_DMA_SUBALGO_CTR          0x2UL
344         #define     CMD_DMA_SUBALGO_CBC_MAC      0x3UL  // [NOTE] This sub algorithm is AES only
345 		#define     CMD_DMA_SUBALGO_CTR64        0x4UL
346         #define     CMD_DMA_SUBALGO_CMAC_KEY     0x5UL
347         #define     CMD_DMA_SUBALGO_CMAC_ALGO    0x6UL
348 
349     MS_U32          Algo2:4;
350         #define     CMD_DMA_ALGO_AES                0x1UL
351         #define     CMD_DMA_ALGO_DES                0x2UL
352         #define     CMD_DMA_ALGO_TDES               0x3UL
353         #define     CMD_DMA_ALGO_M6                 0x4UL
354         #define     CMD_DMA_ALGO_M6_CCBC_DIS        0x5UL
355         #define     CMD_DMA_ALGO_M6_KE56            0x6UL
356         #define     CMD_DMA_ALGO_M6_KE56_CCBC_DIS   0x7UL
357         #define     CMD_DMA_ALGO_RC4                0x8UL
358         #define     CMD_DMA_ALGO_RC4_128            0x9UL
359         #define     CMD_DMA_ALGO_SM4                0xAUL
360 
361     MS_U32          KeySel2:4; //jamietest KeySel:3
362 
363         // bit [3]
364         #define     CMD_DMA_KSEL_CLR_SK             0x8UL
365 
366         // bit [2:0]
367         #define     CMD_DMA_KSEL_SK                 0x0UL //key from 64-keyslot sram
368         #define     CMD_DMA_KSEL_SCS_AUTH_KEY       0x1UL //SCS_Auth_key
369         #define     CMD_DMA_KSEL_SCS_AUX_KEY        0x2UL //SCS_Aux_key
370         #define     CMD_DMA_KSEL_SCS_IMG_KEY        0x3UL //SCS_IMG_key
371         #define     CMD_DMA_KSEL_MK0                0x4UL //master key0 (OTPC shadow reg)
372         #define     CMD_DMA_KSEL_MK1                0x5UL //master key1 (OTPC shadow reg)
373         #define     CMD_DMA_KSEL_MK2                0x6UL //master key2 (OTPC shadow reg)
374         #define     CMD_DMA_KSEL_STRN               0x7UL //DRAM signature nonce
375     MS_U32          Decrypt2:1;
376     MS_U32          IK:1;
377     MS_U32          AP:1;
378     MS_U32          Rsv:2;
379 
380 }CMD_DmaFormat3;
381 
382 
383 typedef struct _CMD_HashFormat0
384 {
385     MS_U32          HASH_Key_Index:6; //choose which key in the 64-keyslot sram
386     MS_U32          IntM:1;
387 
388     MS_U32          IWC_Sel:1;
389         #define     CMD_HASH_IWC_RPT        0x0UL
390         #define     CMD_HASH_IWC_CMDQ       0x1UL
391 
392     MS_U32          OVT:1;
393     MS_U32          HOS:1; //reverse hash output
394 
395     MS_U32          Inv16:1; //invere byte order per 16 byte
396     MS_U32          KPAD:1;
397         #define     CMD_HASH_IKP    0x0UL
398         #define     CMD_HASH_OKP    0x1UL
399     MS_U32          HMAC:1;
400         #define     CMD_HASH_NONE   0x0UL
401         #define     CMD_HASH_HMAC   0x1UL
402 
403 
404     MS_U32          HMAC_KeySel:4;
405 
406         // bit [3:0]
407         #define     CMD_HMAC_KSEL_HK                 0x0UL
408         #define     CMD_HMAC_KSEL_STRN               0x1UL
409         #define     CMD_HMAC_KSEL_MK0                0x2UL
410         #define     CMD_HMAC_KSEL_MK1                0x3UL
411         #define     CMD_HMAC_KSEL_MK2                0x4UL
412         #define     CMD_HMAC_KSEL_SK                 0x5UL
413         #define     CMD_HMAC_KSEL_SCS_AUTH_KEY       0x6UL
414         #define     CMD_HMAC_KSEL_SCS_AUX_KEY        0x7UL
415         #define     CMD_HMAC_KSEL_SCS_IMG_KEY        0x8UL
416         #define     CMD_HMAC_KSEL_INTERNAL_KEY_BANK  0x9UL
417 
418     MS_U32          DK:1;                                 //HMAC command key, clear seesion key
419         #define     CMD_HMAC_KSEL_CLR_SK             0x1UL  //HMAC KSEL = 5-8
420         #define     CMD_HMAC_KSEL_DIR_HK             0x1UL  //HMAC KSEL = 0
421 
422     MS_U32          Dest:2;
423         #define     CMD_HASH_OUTPUT_RPT     0x0UL
424         #define     CMD_HASH_OUTPUT_R2      0x2UL  //IQMEM or DQMEM
425         #define     CMD_HASH_OUTPUT_DRAM    0x3UL
426 
427     MS_U32          Src:2;
428         #define     CMD_HASH_SRC_DRAM       0x0UL
429         #define     CMD_HASH_SRC_PRV_RPT    0x1UL  //use previous hash operation result in hasg_rpt_reg2~9
430         #define     CMD_HASH_SRC_R2         0x2UL  //[NOTE] bit[15] = 0, IQMEM. bit[15] = 1, DQMEM
431         #define     CMD_HASH_SRC_REG        0x3UL
432     MS_U32          AutoPad:1;
433     MS_U32          InitHashSel:2;
434         #define     CMD_HASH_IV_FIPS        0x0UL
435         #define     CMD_HASH_IV_CMD         0x1UL
436         #define     CMD_HASH_IV_PRV_RPT     0x2UL
437 
438     MS_U32          HashSel:2;  //jamietest
439         #define     CMD_HASH_SHA1           0x0UL
440         #define     CMD_HASH_SHA256         0x1UL
441         #define     CMD_HASH_MD5            0x2UL
442 
443     MS_U32          CMD:3;
444         #define     CMD_HASH_START          0x4UL
445 		#define     CMD_HASH_START_RR       0x6UL
446 
447     MS_U32          Rsv:2;
448 
449 }Hash_DmaFormat0;
450 
451 typedef struct _CMD_HashFormat1
452 {
453     MS_U32          TID:16;
454     MS_U32          CaVid:5;
455     MS_U32          OBF_IDX_WRITE:5;
456     MS_U32          OBF_IDX_READ:5;
457     MS_U32          Byte_align_en:1;
458 
459 }Hash_DmaFormat1;
460 
461 typedef struct _CMD_HashFormat2
462 {
463     MS_U32          Rsv:29;
464     MS_U32          Hash_TLB_write:1;
465         #define     CMD_WRITE_PHY_ADDRESS           0x0UL
466         #define     CMD_WRITE_VIR_ADDRESS           0x1UL
467     MS_U32          Hash_TLB_read:1;
468         #define     CMD_READ_PHY_ADDRESS            0x0UL
469         #define     CMD_READ_VIR_ADDRESS            0x1UL
470     MS_U32          RR:1;
471 
472 }CMD_HashFormat2;
473 
474 
475 //=====================================================================
476 //            RSA Register Definition
477 //=====================================================================
478 
479 #define REG_RSA_BASE         (0x31800UL)
480 
481 #define REG_RSA_COMMON          ( REG_RSA_BASE + 0x0UL )
482 #define REG_RSA_ONEWAY_SYSREG   ( REG_RSA_BASE + 0x1UL )
483 #define REG_RSA_CTRL            ( REG_RSA_BASE + 0x2UL )
484 #define REG_RSA_IND32_ADDR      ( REG_RSA_BASE + 0x3UL )
485 #define REG_RSA_IND32_WDATA     ( REG_RSA_BASE + 0x4UL )
486 
487 #define REG_RSA_SEC_RANGE_START(_a_)   ( REG_RSA_BASE + ((_a_)* 2) + 0x5 ) // a = 0 ~ 5
488 #define REG_RSA_SEC_RANGE_END(_a_)     ( REG_RSA_BASE + ((_a_)* 2) + 0x6 )
489 
490 #define REG_RSA_KEY_SEL         ( REG_RSA_BASE + 0x32UL )
491 #define REG_RSA_WDATA           ( REG_RSA_BASE + 0x39UL )
492 #define REG_RSA_LV_PROTECT_EN   ( REG_RSA_BASE + 0x3aUL )
493 #define REG_RSA_MAILBOX(_a_)    ( REG_RSA_BASE + 0x40UL + (_a_) )
494 
495 //=====================================================================
496 //            MISC Register Definition
497 //=====================================================================
498 #define REG_RNG_BASE        (0x143800UL)//(0xA1C00 * 2)
499 #define REG_OTP_PUB0_BASE   (0xC5800UL)//(0x62C00 * 2)
500 #define REG_OTP_PUB1_BASE   (0xC5A00UL)//(0x62D00 * 2)
501 #define REG_OTP_PUB2_BASE   (0xC5C00UL)//(0x62E00 * 2)
502 
503 #define REG_RNG_TRNG_ACPU           (REG_RNG_BASE + 0x13 * 4)
504 
505 #define REG_RNG_TRNG_ACK_ACPU 0x80000000UL
506 #define REG_RNG_TRNG_VALID_ACPU_MASK 0x00010000UL
507 #define REG_RNG_TRNG_OUT_ACPU_MASK 0x0000FFFFUL
508 
509 #define REG_RNG_TRNG_SCPU           (REG_RNG_BASE + 0x12 * 4)
510 
511 #define REG_RNG_TRNG_ACK_SCPU 0x80000000UL
512 #define REG_RNG_TRNG_VALID_SCPU_MASK 0x00010000UL
513 #define REG_RNG_TRNG_OUT_SCPU_MASK 0x0000FFFFUL
514 
515 //=====================================================================
516 //            IRQ Register Definition
517 //=====================================================================
518 #define REG_HST0_FIQ_STATUS_63_48    (REG_IRQCTRL_BASE + (0xfUL * 4))
519 #define REG_HST0_FIQ_MASK_63_48      (REG_IRQCTRL_BASE + (0x7UL * 4))
520 
521 #define REG_HTS0_FIQ_MASK_CRYPTODMA  (0xFEFFUL)
522 #define REG_HTS0_FIQ_CRYPTODMA       (0x0100UL)   //FIQ 56 is CryptoDMA
523 
524 #endif // #ifndef __REG_CIPHER_H__
525