OSDN Git Service

crypto: caam - disable pkc for non-E SoCs
authorMichael Walle <michael@walle.cc>
Wed, 15 Sep 2021 22:03:07 +0000 (00:03 +0200)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 24 Sep 2021 08:03:04 +0000 (16:03 +0800)
commitf20311cc9c58052e0b215013046cbf390937910c
tree00147e9f064b8ce5a1204340a370f01d85fa91ee
parenta2d3cbc80d2527b435154ff0f89b56ef4b84370f
crypto: caam - disable pkc for non-E SoCs

On newer CAAM versions, not all accelerators are disabled if the SoC is
a non-E variant. While the driver checks most of the modules for
availability, there is one - PKHA - which sticks out. On non-E variants
it is still reported as available, that is the number of instances is
non-zero, but it has limited functionality. In particular it doesn't
support encryption and decryption, but just signing and verifying. This
is indicated by a bit in the PKHA_MISC field. Take this bit into account
if we are checking for availability.

This will the following error:
[    8.167817] caam_jr 8020000.jr: 20000b0f: CCB: desc idx 11: : Invalid CHA selected.

Tested on an NXP LS1028A (non-E) SoC.

Fixes: d239b10d4ceb ("crypto: caam - add register map changes cf. Era 10")
Signed-off-by: Michael Walle <michael@walle.cc>
Reviewed-by: Horia Geantă <horia.geanta@nxp.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/caam/caampkc.c
drivers/crypto/caam/regs.h