diff options
Diffstat (limited to 'drivers/crypto/mv_cesa.h')
-rw-r--r-- | drivers/crypto/mv_cesa.h | 40 |
1 files changed, 35 insertions, 5 deletions
diff --git a/drivers/crypto/mv_cesa.h b/drivers/crypto/mv_cesa.h index c3e25d3bb171..08fcb1116d90 100644 --- a/drivers/crypto/mv_cesa.h +++ b/drivers/crypto/mv_cesa.h | |||
@@ -1,6 +1,10 @@ | |||
1 | #ifndef __MV_CRYPTO_H__ | 1 | #ifndef __MV_CRYPTO_H__ |
2 | 2 | ||
3 | #define DIGEST_INITIAL_VAL_A 0xdd00 | 3 | #define DIGEST_INITIAL_VAL_A 0xdd00 |
4 | #define DIGEST_INITIAL_VAL_B 0xdd04 | ||
5 | #define DIGEST_INITIAL_VAL_C 0xdd08 | ||
6 | #define DIGEST_INITIAL_VAL_D 0xdd0c | ||
7 | #define DIGEST_INITIAL_VAL_E 0xdd10 | ||
4 | #define DES_CMD_REG 0xdd58 | 8 | #define DES_CMD_REG 0xdd58 |
5 | 9 | ||
6 | #define SEC_ACCEL_CMD 0xde00 | 10 | #define SEC_ACCEL_CMD 0xde00 |
@@ -70,6 +74,10 @@ struct sec_accel_config { | |||
70 | #define CFG_AES_LEN_128 (0 << 24) | 74 | #define CFG_AES_LEN_128 (0 << 24) |
71 | #define CFG_AES_LEN_192 (1 << 24) | 75 | #define CFG_AES_LEN_192 (1 << 24) |
72 | #define CFG_AES_LEN_256 (2 << 24) | 76 | #define CFG_AES_LEN_256 (2 << 24) |
77 | #define CFG_NOT_FRAG (0 << 30) | ||
78 | #define CFG_FIRST_FRAG (1 << 30) | ||
79 | #define CFG_LAST_FRAG (2 << 30) | ||
80 | #define CFG_MID_FRAG (3 << 30) | ||
73 | 81 | ||
74 | u32 enc_p; | 82 | u32 enc_p; |
75 | #define ENC_P_SRC(x) (x) | 83 | #define ENC_P_SRC(x) (x) |
@@ -90,7 +98,11 @@ struct sec_accel_config { | |||
90 | #define MAC_SRC_TOTAL_LEN(x) ((x) << 16) | 98 | #define MAC_SRC_TOTAL_LEN(x) ((x) << 16) |
91 | 99 | ||
92 | u32 mac_digest; | 100 | u32 mac_digest; |
101 | #define MAC_DIGEST_P(x) (x) | ||
102 | #define MAC_FRAG_LEN(x) ((x) << 16) | ||
93 | u32 mac_iv; | 103 | u32 mac_iv; |
104 | #define MAC_INNER_IV_P(x) (x) | ||
105 | #define MAC_OUTER_IV_P(x) ((x) << 16) | ||
94 | }__attribute__ ((packed)); | 106 | }__attribute__ ((packed)); |
95 | /* | 107 | /* |
96 | * /-----------\ 0 | 108 | * /-----------\ 0 |
@@ -101,19 +113,37 @@ struct sec_accel_config { | |||
101 | * | IV IN | 4 * 4 | 113 | * | IV IN | 4 * 4 |
102 | * |-----------| 0x40 (inplace) | 114 | * |-----------| 0x40 (inplace) |
103 | * | IV BUF | 4 * 4 | 115 | * | IV BUF | 4 * 4 |
104 | * |-----------| 0x50 | 116 | * |-----------| 0x80 |
105 | * | DATA IN | 16 * x (max ->max_req_size) | 117 | * | DATA IN | 16 * x (max ->max_req_size) |
106 | * |-----------| 0x50 (inplace operation) | 118 | * |-----------| 0x80 (inplace operation) |
107 | * | DATA OUT | 16 * x (max ->max_req_size) | 119 | * | DATA OUT | 16 * x (max ->max_req_size) |
108 | * \-----------/ SRAM size | 120 | * \-----------/ SRAM size |
109 | */ | 121 | */ |
122 | |||
123 | /* Hashing memory map: | ||
124 | * /-----------\ 0 | ||
125 | * | ACCEL CFG | 4 * 8 | ||
126 | * |-----------| 0x20 | ||
127 | * | Inner IV | 5 * 4 | ||
128 | * |-----------| 0x34 | ||
129 | * | Outer IV | 5 * 4 | ||
130 | * |-----------| 0x48 | ||
131 | * | Output BUF| 5 * 4 | ||
132 | * |-----------| 0x80 | ||
133 | * | DATA IN | 64 * x (max ->max_req_size) | ||
134 | * \-----------/ SRAM size | ||
135 | */ | ||
110 | #define SRAM_CONFIG 0x00 | 136 | #define SRAM_CONFIG 0x00 |
111 | #define SRAM_DATA_KEY_P 0x20 | 137 | #define SRAM_DATA_KEY_P 0x20 |
112 | #define SRAM_DATA_IV 0x40 | 138 | #define SRAM_DATA_IV 0x40 |
113 | #define SRAM_DATA_IV_BUF 0x40 | 139 | #define SRAM_DATA_IV_BUF 0x40 |
114 | #define SRAM_DATA_IN_START 0x50 | 140 | #define SRAM_DATA_IN_START 0x80 |
115 | #define SRAM_DATA_OUT_START 0x50 | 141 | #define SRAM_DATA_OUT_START 0x80 |
142 | |||
143 | #define SRAM_HMAC_IV_IN 0x20 | ||
144 | #define SRAM_HMAC_IV_OUT 0x34 | ||
145 | #define SRAM_DIGEST_BUF 0x48 | ||
116 | 146 | ||
117 | #define SRAM_CFG_SPACE 0x50 | 147 | #define SRAM_CFG_SPACE 0x80 |
118 | 148 | ||
119 | #endif | 149 | #endif |