crypto/fsl: fix BLOB encapsulation and decapsulation
authorClemens Gruber <clemens.gruber@pqgruber.com>
Sun, 7 Jan 2018 19:26:29 +0000 (20:26 +0100)
committerTom Rini <trini@konsulko.com>
Mon, 8 Jan 2018 13:26:03 +0000 (08:26 -0500)
commit598e9dccc75d8302df58560c52487248a6c33c4d
tree805e773b33c458ab20982405eb3b180623d89419
parentca833ca9579b29c5667ea2fa7a9d3f89f1599a94
crypto/fsl: fix BLOB encapsulation and decapsulation

The blob_encap and blob_decap functions were not flushing the dcache
before passing data to CAAM/DMA and not invalidating the dcache when
getting data back.
Therefore, blob encapsulation and decapsulation failed with errors like
the following due to data cache incoherency:
"40000006: DECO: desc idx 0: Invalid KEY command"

To ensure coherency, we require the key_mod, src and dst buffers to be
aligned to the cache line size and flush/invalidate the memory regions.
The same requirements apply to the job descriptor.

Tested on an i.MX6Q board.

Reviewed-by: Sumit Garg <sumit.garg@nxp.com>
Signed-off-by: Clemens Gruber <clemens.gruber@pqgruber.com>
drivers/crypto/fsl/fsl_blob.c
include/fsl_sec.h