| .. | .. |
|---|
| 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 | |
|---|