• Declan Murphy's avatar
    crypto: keembay - Add Keem Bay OCS HCU driver · 472b0444
    Declan Murphy authored
    Add support for the Hashing Control Unit (HCU) included in the Offload
    Crypto Subsystem (OCS) of the Intel Keem Bay SoC, thus enabling
    hardware-accelerated hashing on the Keem Bay SoC for the following
    algorithms:
    - sha256
    - sha384
    - sha512
    - sm3
    
    The driver is composed of two files:
    
    - 'ocs-hcu.c' which interacts with the hardware and abstracts it by
      providing an API following the usual paradigm used in hashing drivers
      / libraries (e.g., hash_init(), hash_update(), hash_final(), etc.).
      NOTE: this API can block and sleep, since completions are used to wait
      for the HW to complete the hashing.
    
    - 'keembay-ocs-hcu-core.c' which exports the functionality provided by
      'ocs-hcu.c' as a ahash crypto driver. The crypto engine is used to
      provide asynchronous behavior. 'keembay-ocs-hcu-core.c' also takes
      care of the DMA mapping of the input sg list.
    
    The driver passes crypto manager self-tests, including the extra tests
    (CRYPTO_MANAGER_EXTRA_TESTS=y).
    Signed-off-by: default avatarDeclan Murphy <declan.murphy@intel.com>
    Co-developed-by: default avatarDaniele Alessandrelli <daniele.alessandrelli@intel.com>
    Signed-off-by: default avatarDaniele Alessandrelli <daniele.alessandrelli@intel.com>
    Acked-by: default avatarMark Gross <mgross@linux.intel.com>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    472b0444
keembay-ocs-hcu-core.c 20.6 KB