crypto: caam - fix rfc4543 descriptors
In some cases the CCB DMA-based internal transfer started by the MOVE command (src=M3 register, dst=descriptor buffer) does not finish in time and DECO executes the unpatched descriptor. This leads eventually to a DECO Watchdog Timer timeout error. To make sure the transfer ends, change the MOVE command to be blocking. Signed-off-by: Horia Geantă <horia.geanta@nxp.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
06d44c918a
commit
b2106476a8
@ -1093,7 +1093,7 @@ void cnstr_shdsc_rfc4543_encap(u32 * const desc, struct alginfo *cdata,
|
|||||||
read_move_cmd = append_move(desc, MOVE_SRC_DESCBUF | MOVE_DEST_MATH3 |
|
read_move_cmd = append_move(desc, MOVE_SRC_DESCBUF | MOVE_DEST_MATH3 |
|
||||||
(0x6 << MOVE_LEN_SHIFT));
|
(0x6 << MOVE_LEN_SHIFT));
|
||||||
write_move_cmd = append_move(desc, MOVE_SRC_MATH3 | MOVE_DEST_DESCBUF |
|
write_move_cmd = append_move(desc, MOVE_SRC_MATH3 | MOVE_DEST_DESCBUF |
|
||||||
(0x8 << MOVE_LEN_SHIFT));
|
(0x8 << MOVE_LEN_SHIFT) | MOVE_WAITCOMP);
|
||||||
|
|
||||||
/* Will read assoclen + cryptlen bytes */
|
/* Will read assoclen + cryptlen bytes */
|
||||||
append_math_sub(desc, VARSEQINLEN, SEQINLEN, REG0, CAAM_CMD_SZ);
|
append_math_sub(desc, VARSEQINLEN, SEQINLEN, REG0, CAAM_CMD_SZ);
|
||||||
@ -1178,7 +1178,7 @@ void cnstr_shdsc_rfc4543_decap(u32 * const desc, struct alginfo *cdata,
|
|||||||
read_move_cmd = append_move(desc, MOVE_SRC_DESCBUF | MOVE_DEST_MATH3 |
|
read_move_cmd = append_move(desc, MOVE_SRC_DESCBUF | MOVE_DEST_MATH3 |
|
||||||
(0x6 << MOVE_LEN_SHIFT));
|
(0x6 << MOVE_LEN_SHIFT));
|
||||||
write_move_cmd = append_move(desc, MOVE_SRC_MATH3 | MOVE_DEST_DESCBUF |
|
write_move_cmd = append_move(desc, MOVE_SRC_MATH3 | MOVE_DEST_DESCBUF |
|
||||||
(0x8 << MOVE_LEN_SHIFT));
|
(0x8 << MOVE_LEN_SHIFT) | MOVE_WAITCOMP);
|
||||||
|
|
||||||
/* Will read assoclen + cryptlen bytes */
|
/* Will read assoclen + cryptlen bytes */
|
||||||
append_math_sub(desc, VARSEQINLEN, SEQOUTLEN, REG0, CAAM_CMD_SZ);
|
append_math_sub(desc, VARSEQINLEN, SEQOUTLEN, REG0, CAAM_CMD_SZ);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user