Re: [PATCH v2 0/7] crypto: caam - IOMMU support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, May 03, 2019 at 05:17:36PM +0300, Horia Geantă wrote:
> This patch set adds support in caam drivers (caam/jr, caam/qi, caam/qi2)
> for the crypto engine to work behind an IOMMU.
> 
> v2:
> Fixed compilation warnings (unused variables) in patch 3/7.
> 
> v1:
> 
> The changes consist in:
> 
> 1. Deferred probing support
> -caam/jr - top level drivers are converted to "libraries"; this also fixes
> the issue reported previously by Marcin:
> https://patchwork.kernel.org/cover/10558409/
> -caam/qi - use the newly added QBMan functions (*) to decide whether to defer
> caam controller probing or not
> 
> 2. Fixing spurios memory accesses, that lead to IOMMU access faults
> -crypto engine prefetches S/G table entries in chunks of 4 (64 bytes),
> and driver has to make sure memory is allocated and mapped
> -crypto engine tries to prefetch S/G table entries when input / output
> is marked as scattered, even though length is zero
> 
> 3. Getting rid of platform device created by caam/qi
> There are inherent problems with platform device being created dynamically
> (and not relying on the existence of a DT node).
> 
> 4. Update phys -> virt address translation in case IOMMU is present
> iova -> phys -> virt
> 
> 5. Fix the device used for key buffers DMA mapping
> Key buffers are incorrectly DMA mapped using a job ring device, since they
> are accessed eventually by the QI - this creating an ICID / stream ID
> mismatch at IOMMU level.
> 
> Tests were performed on:
> -LS1046A - caam/jr and caam/qi - job ring and queue interface
> -LS1088A - caam/jr and caam/qi2 - job ring and dpsec interface
> 
> There are some dependencies (see below).
> While not everything is in place, I would like at least to patches 1-6/7
> being reviewed & merged.
> 
> i. Patch 7/7 (crypto: caam - defer probing until QMan is available) depends
> on commit 1c8f39946c03 ("soc: fsl: qbman_portals: add APIs to retrieve the probing status")
> from Leo's tree: git://git.kernel.org/pub/scm/linux/kernel/git/leo/linux.git
> and should not be merged.
> 
> ii. U-boot updates for LS1088A (needed for caam/jr ICID programming)
> [U-Boot,1/2] armv8: fsl-layerscape: add missing sec jr base address defines
> https://patchwork.ozlabs.org/patch/1059256/
> [U-Boot,2/2] armv8: ls1088a: add icid setup for platform devices
> https://patchwork.ozlabs.org/patch/1059259/
> 
> Horia Geantă (7):
>   crypto: caam - avoid S/G table fetching for AEAD zero-length output
>   crypto: caam - fix S/G table passing page boundary
>   crypto: caam - convert top level drivers to libraries
>   crypto: caam/qi - don't allocate an extra platform device
>   crypto: caam/qi - fix address translations with IOMMU enabled
>   crypto: caam/qi - DMA map keys using proper device
>   crypto: caam - defer probing until QMan is available
> 
>  drivers/crypto/caam/Kconfig       |  46 ++++-------
>  drivers/crypto/caam/Makefile      |  18 ++---
>  drivers/crypto/caam/caamalg.c     |  74 ++++++++----------
>  drivers/crypto/caam/caamalg_qi.c  | 124 +++++++++++++++---------------
>  drivers/crypto/caam/caamalg_qi2.c |  72 +++++++++++++----
>  drivers/crypto/caam/caamhash.c    |  81 ++++++-------------
>  drivers/crypto/caam/caampkc.c     |  57 +++-----------
>  drivers/crypto/caam/caamrng.c     |  54 ++-----------
>  drivers/crypto/caam/ctrl.c        | 124 ++++++++++++++++++------------
>  drivers/crypto/caam/desc_constr.h |  11 +++
>  drivers/crypto/caam/intern.h      | 102 ++++++++++++++++++++++--
>  drivers/crypto/caam/jr.c          |  43 +++++++++++
>  drivers/crypto/caam/qi.c          |  52 ++++++-------
>  13 files changed, 465 insertions(+), 393 deletions(-)

Patches 1-6 applied.  Thanks.
-- 
Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt



[Index of Archives]     [Kernel]     [Gnu Classpath]     [Gnu Crypto]     [DM Crypt]     [Netfilter]     [Bugtraq]

  Powered by Linux