.. | .. |
---|
4 | 4 | * Definitions to support CAAM descriptor instruction generation |
---|
5 | 5 | * |
---|
6 | 6 | * Copyright 2008-2011 Freescale Semiconductor, Inc. |
---|
| 7 | + * Copyright 2018 NXP |
---|
7 | 8 | */ |
---|
8 | 9 | |
---|
9 | 10 | #ifndef DESC_H |
---|
.. | .. |
---|
17 | 18 | */ |
---|
18 | 19 | |
---|
19 | 20 | #define SEC4_SG_LEN_EXT 0x80000000 /* Entry points to table */ |
---|
20 | | -#define SEC4_SG_LEN_FIN 0x40000000 /* Last ent in table */ |
---|
| 21 | +#define SEC4_SG_LEN_FIN 0x40000000 /* Last entry in table */ |
---|
21 | 22 | #define SEC4_SG_BPID_MASK 0x000000ff |
---|
22 | 23 | #define SEC4_SG_BPID_SHIFT 16 |
---|
23 | 24 | #define SEC4_SG_LEN_MASK 0x3fffffff /* Excludes EXT and FINAL */ |
---|
.. | .. |
---|
112 | 113 | */ |
---|
113 | 114 | #define HDR_REVERSE 0x00000800 |
---|
114 | 115 | |
---|
115 | | -/* Propogate DNR property to SharedDesc */ |
---|
| 116 | +/* Propagate DNR property to SharedDesc */ |
---|
116 | 117 | #define HDR_PROP_DNR 0x00000800 |
---|
117 | 118 | |
---|
118 | 119 | /* JobDesc/SharedDesc share property */ |
---|
.. | .. |
---|
242 | 243 | #define LDST_SRCDST_WORD_DESCBUF_SHARED (0x42 << LDST_SRCDST_SHIFT) |
---|
243 | 244 | #define LDST_SRCDST_WORD_DESCBUF_JOB_WE (0x45 << LDST_SRCDST_SHIFT) |
---|
244 | 245 | #define LDST_SRCDST_WORD_DESCBUF_SHARED_WE (0x46 << LDST_SRCDST_SHIFT) |
---|
| 246 | +#define LDST_SRCDST_WORD_INFO_FIFO_SM (0x71 << LDST_SRCDST_SHIFT) |
---|
245 | 247 | #define LDST_SRCDST_WORD_INFO_FIFO (0x7a << LDST_SRCDST_SHIFT) |
---|
246 | 248 | |
---|
247 | 249 | /* Offset in source/destination */ |
---|
.. | .. |
---|
283 | 285 | #define LDLEN_SET_OFIFO_OFF_RSVD (1 << 3) |
---|
284 | 286 | #define LDLEN_SET_OFIFO_OFFSET_SHIFT 0 |
---|
285 | 287 | #define LDLEN_SET_OFIFO_OFFSET_MASK (3 << LDLEN_SET_OFIFO_OFFSET_SHIFT) |
---|
| 288 | + |
---|
| 289 | +/* Special Length definitions when dst=sm, nfifo-{sm,m} */ |
---|
| 290 | +#define LDLEN_MATH0 0 |
---|
| 291 | +#define LDLEN_MATH1 1 |
---|
| 292 | +#define LDLEN_MATH2 2 |
---|
| 293 | +#define LDLEN_MATH3 3 |
---|
286 | 294 | |
---|
287 | 295 | /* |
---|
288 | 296 | * FIFO_LOAD/FIFO_STORE/SEQ_FIFO_LOAD/SEQ_FIFO_STORE |
---|
.. | .. |
---|
408 | 416 | #define FIFOST_TYPE_MESSAGE_DATA (0x30 << FIFOST_TYPE_SHIFT) |
---|
409 | 417 | #define FIFOST_TYPE_RNGSTORE (0x34 << FIFOST_TYPE_SHIFT) |
---|
410 | 418 | #define FIFOST_TYPE_RNGFIFO (0x35 << FIFOST_TYPE_SHIFT) |
---|
| 419 | +#define FIFOST_TYPE_METADATA (0x3e << FIFOST_TYPE_SHIFT) |
---|
411 | 420 | #define FIFOST_TYPE_SKIP (0x3f << FIFOST_TYPE_SHIFT) |
---|
412 | 421 | |
---|
413 | 422 | /* |
---|
.. | .. |
---|
1133 | 1142 | #define OP_ALG_TYPE_CLASS1 (2 << OP_ALG_TYPE_SHIFT) |
---|
1134 | 1143 | #define OP_ALG_TYPE_CLASS2 (4 << OP_ALG_TYPE_SHIFT) |
---|
1135 | 1144 | |
---|
| 1145 | +/* version register fields */ |
---|
| 1146 | +#define OP_VER_CCHA_NUM 0x000000ff /* Number CCHAs instantiated */ |
---|
| 1147 | +#define OP_VER_CCHA_MISC 0x0000ff00 /* CCHA Miscellaneous Information */ |
---|
| 1148 | +#define OP_VER_CCHA_REV 0x00ff0000 /* CCHA Revision Number */ |
---|
| 1149 | +#define OP_VER_CCHA_VID 0xff000000 /* CCHA Version ID */ |
---|
| 1150 | + |
---|
1136 | 1151 | #define OP_ALG_ALGSEL_SHIFT 16 |
---|
1137 | 1152 | #define OP_ALG_ALGSEL_MASK (0xff << OP_ALG_ALGSEL_SHIFT) |
---|
1138 | 1153 | #define OP_ALG_ALGSEL_SUBMASK (0x0f << OP_ALG_ALGSEL_SHIFT) |
---|
.. | .. |
---|
1140 | 1155 | #define OP_ALG_ALGSEL_DES (0x20 << OP_ALG_ALGSEL_SHIFT) |
---|
1141 | 1156 | #define OP_ALG_ALGSEL_3DES (0x21 << OP_ALG_ALGSEL_SHIFT) |
---|
1142 | 1157 | #define OP_ALG_ALGSEL_ARC4 (0x30 << OP_ALG_ALGSEL_SHIFT) |
---|
| 1158 | +#define OP_ALG_CHA_MDHA (0x40 << OP_ALG_ALGSEL_SHIFT) |
---|
1143 | 1159 | #define OP_ALG_ALGSEL_MD5 (0x40 << OP_ALG_ALGSEL_SHIFT) |
---|
1144 | 1160 | #define OP_ALG_ALGSEL_SHA1 (0x41 << OP_ALG_ALGSEL_SHIFT) |
---|
1145 | 1161 | #define OP_ALG_ALGSEL_SHA224 (0x42 << OP_ALG_ALGSEL_SHIFT) |
---|
.. | .. |
---|
1152 | 1168 | #define OP_ALG_ALGSEL_KASUMI (0x70 << OP_ALG_ALGSEL_SHIFT) |
---|
1153 | 1169 | #define OP_ALG_ALGSEL_CRC (0x90 << OP_ALG_ALGSEL_SHIFT) |
---|
1154 | 1170 | #define OP_ALG_ALGSEL_SNOW_F9 (0xA0 << OP_ALG_ALGSEL_SHIFT) |
---|
| 1171 | +#define OP_ALG_ALGSEL_CHACHA20 (0xD0 << OP_ALG_ALGSEL_SHIFT) |
---|
| 1172 | +#define OP_ALG_ALGSEL_POLY1305 (0xE0 << OP_ALG_ALGSEL_SHIFT) |
---|
1155 | 1173 | |
---|
1156 | 1174 | #define OP_ALG_AAI_SHIFT 4 |
---|
1157 | 1175 | #define OP_ALG_AAI_MASK (0x1ff << OP_ALG_AAI_SHIFT) |
---|
.. | .. |
---|
1199 | 1217 | #define OP_ALG_AAI_RNG4_AI (0x80 << OP_ALG_AAI_SHIFT) |
---|
1200 | 1218 | #define OP_ALG_AAI_RNG4_SK (0x100 << OP_ALG_AAI_SHIFT) |
---|
1201 | 1219 | |
---|
| 1220 | +/* Chacha20 AAI set */ |
---|
| 1221 | +#define OP_ALG_AAI_AEAD (0x002 << OP_ALG_AAI_SHIFT) |
---|
| 1222 | +#define OP_ALG_AAI_KEYSTREAM (0x001 << OP_ALG_AAI_SHIFT) |
---|
| 1223 | +#define OP_ALG_AAI_BC8 (0x008 << OP_ALG_AAI_SHIFT) |
---|
| 1224 | + |
---|
1202 | 1225 | /* hmac/smac AAI set */ |
---|
1203 | 1226 | #define OP_ALG_AAI_HASH (0x00 << OP_ALG_AAI_SHIFT) |
---|
1204 | 1227 | #define OP_ALG_AAI_HMAC (0x01 << OP_ALG_AAI_SHIFT) |
---|
.. | .. |
---|
1230 | 1253 | #define OP_ALG_ICV_MASK (1 << OP_ALG_ICV_SHIFT) |
---|
1231 | 1254 | #define OP_ALG_ICV_OFF (0 << OP_ALG_ICV_SHIFT) |
---|
1232 | 1255 | #define OP_ALG_ICV_ON (1 << OP_ALG_ICV_SHIFT) |
---|
| 1256 | + |
---|
| 1257 | +#define OP_ALG_PR_ON BIT(1) |
---|
1233 | 1258 | |
---|
1234 | 1259 | #define OP_ALG_DIR_SHIFT 0 |
---|
1235 | 1260 | #define OP_ALG_DIR_MASK 1 |
---|
.. | .. |
---|
1387 | 1412 | #define MOVE_SRC_MATH3 (0x07 << MOVE_SRC_SHIFT) |
---|
1388 | 1413 | #define MOVE_SRC_INFIFO (0x08 << MOVE_SRC_SHIFT) |
---|
1389 | 1414 | #define MOVE_SRC_INFIFO_CL (0x09 << MOVE_SRC_SHIFT) |
---|
| 1415 | +#define MOVE_SRC_AUX_ABLK (0x0a << MOVE_SRC_SHIFT) |
---|
1390 | 1416 | |
---|
1391 | 1417 | #define MOVE_DEST_SHIFT 16 |
---|
1392 | 1418 | #define MOVE_DEST_MASK (0x0f << MOVE_DEST_SHIFT) |
---|
.. | .. |
---|
1413 | 1439 | |
---|
1414 | 1440 | #define MOVELEN_MRSEL_SHIFT 0 |
---|
1415 | 1441 | #define MOVELEN_MRSEL_MASK (0x3 << MOVE_LEN_SHIFT) |
---|
| 1442 | +#define MOVELEN_MRSEL_MATH0 (0 << MOVELEN_MRSEL_SHIFT) |
---|
| 1443 | +#define MOVELEN_MRSEL_MATH1 (1 << MOVELEN_MRSEL_SHIFT) |
---|
| 1444 | +#define MOVELEN_MRSEL_MATH2 (2 << MOVELEN_MRSEL_SHIFT) |
---|
| 1445 | +#define MOVELEN_MRSEL_MATH3 (3 << MOVELEN_MRSEL_SHIFT) |
---|
1416 | 1446 | |
---|
1417 | 1447 | /* |
---|
1418 | 1448 | * MATH Command Constructs |
---|
.. | .. |
---|
1589 | 1619 | #define NFIFOENTRY_DTYPE_IV (0x2 << NFIFOENTRY_DTYPE_SHIFT) |
---|
1590 | 1620 | #define NFIFOENTRY_DTYPE_SAD (0x3 << NFIFOENTRY_DTYPE_SHIFT) |
---|
1591 | 1621 | #define NFIFOENTRY_DTYPE_ICV (0xA << NFIFOENTRY_DTYPE_SHIFT) |
---|
| 1622 | +#define NFIFOENTRY_DTYPE_POLY (0xB << NFIFOENTRY_DTYPE_SHIFT) |
---|
1592 | 1623 | #define NFIFOENTRY_DTYPE_SKIP (0xE << NFIFOENTRY_DTYPE_SHIFT) |
---|
1593 | 1624 | #define NFIFOENTRY_DTYPE_MSG (0xF << NFIFOENTRY_DTYPE_SHIFT) |
---|
1594 | 1625 | |
---|