[PATCH v8 00/16] crypto: caam - Add i.MX8MQ support

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

 



Everyone:

Picking up where Chris left off (I chatted with him privately
beforehead), this series adds support for i.MX8MQ to CAAM driver. Just
like [v1], this series is i.MX8MQ only.

Feedback is welcome!
Thanks,
Andrey Smirnov

Changes since [v7]:

  - Series rebase on latest cryptodev-2.6 (198429631a85)

  - "crypto: caam - force DMA address to 32-bit on 64-bit i.MX SoCs"
    converted to use CTPR and MCFGR to determine CAAM pointer width
    and renamed to "crypto: caam - select DMA address size at runtime"

  - Patch adding corresponding DT node added to the series

Changes since [v6]:

  - Fixed build problems in "crypto: caam - make CAAM_PTR_SZ dynamic"

  - Collected Reviewied-by from Horia

  - "crypto: caam - force DMA address to 32-bit on 64-bit i.MX SoCs"
    is changed to check 'caam_ptr_sz' instead of using 'caam_imx'
    
  - Incorporated feedback for "crypto: caam - request JR IRQ as the
    last step" and "crypto: caam - simplfy clock initialization"

Changes since [v5]:

  - Hunk replacing sizeof(*jrp->inpring) to SIZEOF_JR_INPENTRY in
    "crypto: caam - don't hardcode inpentry size", lost in [v5], is
    back

  - Collected Tested-by from Iuliana

Changes since [v4]:

  - Fixed missing sentinel element in "crypto: caam - simplfy clock
    initialization"
    
  - Squashed all of the devers related patches into a single one and
    converted IRQ allocation to use devres while at it

  - Added "crypto: caam - request JR IRQ as the last step" as
    discussed

Changes since [v3]:

  - Patchset changed to select DMA size at runtime in order to enable
    support for both i.MX8MQ and Layerscape at the same time. I only
    tested the patches on i.MX6,7 and 8MQ, since I don't have access
    to any of the Layerscape HW. Any help in that regard would be
    appareciated.

  - Bulk clocks and their number are now stored as a part of struct
    caam_drv_private to simplify allocation and cleanup code (no
    special context needed)
    
  - Renamed 'soc_attr' -> 'imx_soc_match' for clarity

Changes since [v2]:

  - Dropped "crypto: caam - do not initialise clocks on the i.MX8" and
    replaced it with "crypto: caam - simplfy clock initialization" and 
    "crypto: caam - add clock entry for i.MX8MQ"


Changes since [v1]

  - Series reworked to continue using register based interface for
    queueing RNG initialization job, dropping "crypto: caam - use job
    ring for RNG instantiation instead of DECO"

  - Added a patch to share DMA mask selection code

  - Added missing Signed-off-by for authors of original NXP tree
    commits that this sereis is based on

[v7] lore.kernel.org/r/20190812200739.30389-1-andrew.smirnov@xxxxxxxxx
[v6] lore.kernel.org/r/20190717152458.22337-1-andrew.smirnov@xxxxxxxxx
[v5] lore.kernel.org/r/20190715201942.17309-1-andrew.smirnov@xxxxxxxxx
[v4] lore.kernel.org/r/20190703081327.17505-1-andrew.smirnov@xxxxxxxxx
[v3] lore.kernel.org/r/20190617160339.29179-1-andrew.smirnov@xxxxxxxxx
[v2] lore.kernel.org/r/20190607200225.21419-1-andrew.smirnov@xxxxxxxxx
[v1] https://patchwork.kernel.org/cover/10825625/

Andrey Smirnov (16):
  crypto: caam - move DMA mask selection into a function
  crypto: caam - simplfy clock initialization
  crypto: caam - convert caam_jr_init() to use devres
  crypto: caam - request JR IRQ as the last step
  crytpo: caam - make use of iowrite64*_hi_lo in wr_reg64
  crypto: caam - use ioread64*_hi_lo in rd_reg64
  crypto: caam - drop 64-bit only wr/rd_reg64()
  crypto: caam - share definition for MAX_SDLEN
  crypto: caam - make CAAM_PTR_SZ dynamic
  crypto: caam - move cpu_to_caam_dma() selection to runtime
  crypto: caam - drop explicit usage of struct jr_outentry
  crypto: caam - don't hardcode inpentry size
  crypto: caam - select DMA address size at runtime
  crypto: caam - always select job ring via RSR on i.MX8MQ
  crypto: caam - add clock entry for i.MX8MQ
  arm64: dts: imx8mq: Add CAAM node

 arch/arm64/boot/dts/freescale/imx8mq.dtsi |  30 +++
 drivers/crypto/caam/caamalg.c             |   2 +-
 drivers/crypto/caam/caamalg_qi2.h         |  27 ---
 drivers/crypto/caam/caamhash.c            |   2 +-
 drivers/crypto/caam/caampkc.c             |   8 +-
 drivers/crypto/caam/caamrng.c             |   2 +-
 drivers/crypto/caam/ctrl.c                | 221 ++++++++++------------
 drivers/crypto/caam/desc_constr.h         |  47 ++++-
 drivers/crypto/caam/error.c               |   3 +
 drivers/crypto/caam/intern.h              |  32 +++-
 drivers/crypto/caam/jr.c                  |  93 +++------
 drivers/crypto/caam/pdb.h                 |  16 +-
 drivers/crypto/caam/pkc_desc.c            |   8 +-
 drivers/crypto/caam/qi.h                  |  26 ---
 drivers/crypto/caam/regs.h                | 140 ++++++++++----
 15 files changed, 359 insertions(+), 298 deletions(-)

-- 
2.21.0




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

  Powered by Linux