Linux Documentation
 help / color / mirror / Atom feed
From: Conor Dooley <conor@kernel.org>
To: Alex Ousherovitch <aousherovitch@rambus.com>
Cc: Conor Dooley <conor+dt@kernel.org>,
	"David S. Miller" <davem@davemloft.net>,
	Herbert Xu <herbert@gondor.apana.org.au>,
	Jonathan Corbet <corbet@lwn.net>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Rob Herring <robh@kernel.org>,
	Saravanakrishnan Krishnamoorthy <skrishnamoorthy@rambus.com>,
	devicetree@vger.kernel.org,
	Joel Wittenauer <Joel.Wittenauer@cryptography.com>,
	linux-crypto@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Shuah Khan <skhan@linuxfoundation.org>,
	Thi Nguyen <thin@rambus.com>
Subject: Re: [PATCH 0/5] crypto: cmh - add Rambus CryptoManager Hub core driver and AES
Date: Tue, 13 Oct 2026 18:57:55 +0100	[thread overview]
Message-ID: <20261013-evoke-coil-60a7037b7a0d@spud> (raw)
In-Reply-To: <20261013174847.2192609-1-aousherovitch@rambus.com>

[-- Attachment #1: Type: text/plain, Size: 9764 bytes --]

On Tue, Oct 13, 2026 at 10:48:42AM -0700, Alex Ousherovitch wrote:
> This is the first of a short, incremental set of submissions adding

Maybe you're breaking stuff down, but this is v6, not v1, and shopuld
contain a changelog.

Thanks,
Conor.

> support for the Rambus CryptoManager Hub (CMH), a hardware cryptographic
> accelerator accessed through a mailbox-based VCQ (Virtual Command Queue)
> interface.  To keep each posting small and independently reviewable, the
> driver is submitted in self-contained parts; this first series adds the
> core platform driver, the shared key/datastore layer and the AES
> transforms (plus the device-tree binding and the MAINTAINERS entry).  AES
> is the first and least-problematic algorithm family, so the core has a
> user and the VCQ/DMA/completion data path is reviewable end to end.
> Later series add the remaining symmetric ciphers (SM4, ChaCha20-Poly1305)
> and the hwrng, the hashes and MACs, and finally the asymmetric and
> post-quantum algorithms together with the /dev/cmh_mgmt management
> interface.
> 
> The core driver binds the device, parses its device-tree description,
> sets up DMA, the mailbox queue interface and the transaction manager,
> and exposes sysfs/debugfs instrumentation.  The key/datastore patch adds
> the key provisioning and system-object layer that the AES driver in this
> series, and the algorithm drivers in the following series, build on.
> 
> The transaction manager runs as a kthread that packs VCQ entries, maps
> DMA, and submits to the least-loaded mailbox; completion is handled by
> per-mailbox threaded IRQs.  The data path is asynchronous: requests
> return -EINPROGRESS and the driver honors CRYPTO_TFM_REQ_MAY_BACKLOG for
> queue-full backpressure.  The CMH eSW is loaded independently by the
> hardware before probe; the driver loads no firmware.
> 
> The CMH is a platform device matched via device tree (compatible
> "rambus,cmh-v1030").  Following the inside-secure,eip93 binding model
> and the DT maintainer's guidance, the schema requires a SoC-specific
> compatible ahead of the IP fallback and therefore carries no example.
> 
> Public hardware documentation:
>   Product brief: https://go.rambus.com/ch-7xx-and-cc-7xx-product-brief
>   No public datasheets are currently available.  The driver was
>   developed against the Rambus CryptoManager Hub Hardware Reference
>   Manual (Rambus Inc. confidential).  Detailed hardware reference is
>   available under NDA from Rambus Inc.; contact the maintainers listed
>   in MAINTAINERS for access during review.
> 
> Developed against Herbert Xu's cryptodev tree.  checkpatch.pl --strict,
> sparse (C=2) and a W=1 -Werror build are clean, and dtschema's
> dt-doc-validate accepts the binding.  Exercised on riscv64 and arm64 --
> QEMU with the CMH hardware model and a Xilinx VMK180 FPGA with the CMH
> IP -- under lockdep/PROVE_LOCKING, DEBUG_OBJECTS,
> KASAN/UBSAN/KMEMLEAK/KFENCE and (arm64) KCSAN with no findings;
> worst-case stack stays under 1 KB.
> 
> Alex Ousherovitch (5):
>   dt-bindings: crypto: add Rambus CryptoManager Hub
>   crypto: cmh - add core platform driver
>   crypto: cmh - add key/datastore infrastructure
>   crypto: cmh - add AES skcipher/aead/cmac
>   MAINTAINERS: add Rambus CryptoManager Hub (CMH)
> 
>  Documentation/ABI/testing/debugfs-driver-cmh  |  171 ++
>  Documentation/ABI/testing/sysfs-driver-cmh    |   67 +
>  Documentation/crypto/device_drivers/cmh.rst   |  340 +++
>  Documentation/crypto/device_drivers/index.rst |    1 +
>  .../bindings/crypto/rambus,cmh-v1030.yaml     |  144 ++
>  .../devicetree/bindings/vendor-prefixes.yaml  |    2 +
>  MAINTAINERS                                   |   13 +
>  drivers/crypto/Kconfig                        |    1 +
>  drivers/crypto/Makefile                       |    1 +
>  drivers/crypto/cmh/Kconfig                    |   62 +
>  drivers/crypto/cmh/Makefile                   |   30 +
>  drivers/crypto/cmh/cmh_aes.c                  |  755 ++++++
>  drivers/crypto/cmh/cmh_aes_aead.c             | 1013 ++++++++
>  drivers/crypto/cmh/cmh_aes_cmac.c             |  476 ++++
>  drivers/crypto/cmh/cmh_config.c               |  619 +++++
>  drivers/crypto/cmh/cmh_debugfs.c              |  307 +++
>  drivers/crypto/cmh/cmh_dma.c                  |  482 ++++
>  drivers/crypto/cmh/cmh_key.c                  |  119 +
>  drivers/crypto/cmh/cmh_main.c                 |  394 +++
>  drivers/crypto/cmh/cmh_mqi.c                  |  344 +++
>  drivers/crypto/cmh/cmh_rh.c                   | 1211 +++++++++
>  drivers/crypto/cmh/cmh_sys.c                  |  376 +++
>  drivers/crypto/cmh/cmh_sysfs.c                |  108 +
>  drivers/crypto/cmh/cmh_txn.c                  | 2235 +++++++++++++++++
>  drivers/crypto/cmh/include/cmh.h              |   24 +
>  drivers/crypto/cmh/include/cmh_aes.h          |   24 +
>  drivers/crypto/cmh/include/cmh_aes_abi.h      |   98 +
>  drivers/crypto/cmh/include/cmh_ccp_abi.h      |  108 +
>  drivers/crypto/cmh/include/cmh_config.h       |  105 +
>  drivers/crypto/cmh/include/cmh_debugfs.h      |   93 +
>  drivers/crypto/cmh/include/cmh_dma.h          |  249 ++
>  drivers/crypto/cmh/include/cmh_drbg_abi.h     |   67 +
>  drivers/crypto/cmh/include/cmh_eac_abi.h      |   44 +
>  drivers/crypto/cmh/include/cmh_hc_abi.h       |  162 ++
>  drivers/crypto/cmh/include/cmh_hcq_abi.h      |  222 ++
>  drivers/crypto/cmh/include/cmh_key.h          |   73 +
>  drivers/crypto/cmh/include/cmh_kic_abi.h      |   77 +
>  drivers/crypto/cmh/include/cmh_mqi.h          |   35 +
>  drivers/crypto/cmh/include/cmh_pke_abi.h      |  272 ++
>  drivers/crypto/cmh/include/cmh_qse_abi.h      |  201 ++
>  drivers/crypto/cmh/include/cmh_registers.h    |  161 ++
>  drivers/crypto/cmh/include/cmh_rh.h           |   93 +
>  drivers/crypto/cmh/include/cmh_sm3_abi.h      |   79 +
>  drivers/crypto/cmh/include/cmh_sm4_abi.h      |  101 +
>  drivers/crypto/cmh/include/cmh_sys.h          |  111 +
>  drivers/crypto/cmh/include/cmh_sys_abi.h      |  148 ++
>  drivers/crypto/cmh/include/cmh_sysfs.h        |   14 +
>  drivers/crypto/cmh/include/cmh_txn.h          |  493 ++++
>  drivers/crypto/cmh/include/cmh_vcq.h          |  288 +++
>  49 files changed, 12613 insertions(+)
>  create mode 100644 Documentation/ABI/testing/debugfs-driver-cmh
>  create mode 100644 Documentation/ABI/testing/sysfs-driver-cmh
>  create mode 100644 Documentation/crypto/device_drivers/cmh.rst
>  create mode 100644 Documentation/devicetree/bindings/crypto/rambus,cmh-v1030.yaml
>  create mode 100644 drivers/crypto/cmh/Kconfig
>  create mode 100644 drivers/crypto/cmh/Makefile
>  create mode 100644 drivers/crypto/cmh/cmh_aes.c
>  create mode 100644 drivers/crypto/cmh/cmh_aes_aead.c
>  create mode 100644 drivers/crypto/cmh/cmh_aes_cmac.c
>  create mode 100644 drivers/crypto/cmh/cmh_config.c
>  create mode 100644 drivers/crypto/cmh/cmh_debugfs.c
>  create mode 100644 drivers/crypto/cmh/cmh_dma.c
>  create mode 100644 drivers/crypto/cmh/cmh_key.c
>  create mode 100644 drivers/crypto/cmh/cmh_main.c
>  create mode 100644 drivers/crypto/cmh/cmh_mqi.c
>  create mode 100644 drivers/crypto/cmh/cmh_rh.c
>  create mode 100644 drivers/crypto/cmh/cmh_sys.c
>  create mode 100644 drivers/crypto/cmh/cmh_sysfs.c
>  create mode 100644 drivers/crypto/cmh/cmh_txn.c
>  create mode 100644 drivers/crypto/cmh/include/cmh.h
>  create mode 100644 drivers/crypto/cmh/include/cmh_aes.h
>  create mode 100644 drivers/crypto/cmh/include/cmh_aes_abi.h
>  create mode 100644 drivers/crypto/cmh/include/cmh_ccp_abi.h
>  create mode 100644 drivers/crypto/cmh/include/cmh_config.h
>  create mode 100644 drivers/crypto/cmh/include/cmh_debugfs.h
>  create mode 100644 drivers/crypto/cmh/include/cmh_dma.h
>  create mode 100644 drivers/crypto/cmh/include/cmh_drbg_abi.h
>  create mode 100644 drivers/crypto/cmh/include/cmh_eac_abi.h
>  create mode 100644 drivers/crypto/cmh/include/cmh_hc_abi.h
>  create mode 100644 drivers/crypto/cmh/include/cmh_hcq_abi.h
>  create mode 100644 drivers/crypto/cmh/include/cmh_key.h
>  create mode 100644 drivers/crypto/cmh/include/cmh_kic_abi.h
>  create mode 100644 drivers/crypto/cmh/include/cmh_mqi.h
>  create mode 100644 drivers/crypto/cmh/include/cmh_pke_abi.h
>  create mode 100644 drivers/crypto/cmh/include/cmh_qse_abi.h
>  create mode 100644 drivers/crypto/cmh/include/cmh_registers.h
>  create mode 100644 drivers/crypto/cmh/include/cmh_rh.h
>  create mode 100644 drivers/crypto/cmh/include/cmh_sm3_abi.h
>  create mode 100644 drivers/crypto/cmh/include/cmh_sm4_abi.h
>  create mode 100644 drivers/crypto/cmh/include/cmh_sys.h
>  create mode 100644 drivers/crypto/cmh/include/cmh_sys_abi.h
>  create mode 100644 drivers/crypto/cmh/include/cmh_sysfs.h
>  create mode 100644 drivers/crypto/cmh/include/cmh_txn.h
>  create mode 100644 drivers/crypto/cmh/include/cmh_vcq.h
> 
> 
> ---
> 
> The CMH driver was first posted as a single series; it is now
> split into smaller, independently reviewable series per maintainer
> feedback.  Earlier single-series postings:
>   v1: https://lore.kernel.org/linux-crypto/20260625173328.1140487-1-skrishnamoorthy@rambus.com/
>   v2: https://lore.kernel.org/linux-crypto/20260709203037.1884436-1-skrishnamoorthy@rambus.com/
>   v3: https://lore.kernel.org/linux-crypto/20260806195519.2703224-1-skrishnamoorthy@rambus.com/
>   v4: https://lore.kernel.org/linux-crypto/20260825221539.255951-1-aousherovitch@rambus.com/
>   v5: https://lore.kernel.org/linux-crypto/20260917225929.2494111-1-aousherovitch@rambus.com/
> base-commit: 9695df3b1db4ac4534274d38ee16e3b9b0bf910e
> 
> -- 
> 2.43.7
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

  parent reply	other threads:[~2026-10-13 17:57 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-13 17:48 [PATCH 0/5] crypto: cmh - add Rambus CryptoManager Hub core driver and AES Alex Ousherovitch
2026-10-13 17:48 ` [PATCH 1/5] dt-bindings: crypto: add Rambus CryptoManager Hub Alex Ousherovitch
2026-10-14  5:58   ` Krzysztof Kozlowski
2026-10-14  5:59   ` Krzysztof Kozlowski
2026-10-14  6:59     ` Ousherovitch, Alex
2026-10-13 17:48 ` [PATCH 2/5] crypto: cmh - add core platform driver Alex Ousherovitch
2026-10-14  6:01   ` Krzysztof Kozlowski
2026-10-13 17:48 ` [PATCH 3/5] crypto: cmh - add key/datastore infrastructure Alex Ousherovitch
2026-10-13 17:48 ` [PATCH 4/5] crypto: cmh - add AES skcipher/aead/cmac Alex Ousherovitch
2026-10-13 17:48 ` [PATCH 5/5] MAINTAINERS: add Rambus CryptoManager Hub (CMH) Alex Ousherovitch
2026-10-13 17:57 ` Conor Dooley [this message]
2026-10-13 18:35   ` [PATCH 0/5] crypto: cmh - add Rambus CryptoManager Hub core driver and AES Ousherovitch, Alex
2026-10-14  5:58 ` Krzysztof Kozlowski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20261013-evoke-coil-60a7037b7a0d@spud \
    --to=conor@kernel.org \
    --cc=Joel.Wittenauer@cryptography.com \
    --cc=aousherovitch@rambus.com \
    --cc=conor+dt@kernel.org \
    --cc=corbet@lwn.net \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=herbert@gondor.apana.org.au \
    --cc=krzk+dt@kernel.org \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=robh@kernel.org \
    --cc=skhan@linuxfoundation.org \
    --cc=skrishnamoorthy@rambus.com \
    --cc=thin@rambus.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox