Appendix · reference

RK3399 crypto engine

Two on-die crypto accelerators — left dark, software crypto suffices.

The RK3399 has two independent crypto IP blocks (crypto0 and crypto1) for AES, DES/3DES, SHA, and HMAC offload. Linux exposes them through drivers/crypto/rockchip/. We don’t drive either of them.

Identity

PropertyValue
BlocksRK3399 Crypto v1 (crypto0) and Crypto v2 (crypto1)
DTS compatiblerockchip,rk3399-crypto
AlgorithmsAES (ECB/CBC/CTR), DES/3DES, SHA-1/256, MD5, HMAC
Linux driverdrivers/crypto/rockchip/

Driver

· not started No driver in tree.

Software crypto on the A72 cores is fast enough for the current workload — SSH session-bus, HTTPS via pkg, ZFS dataset crypto if it were enabled — and the kernel’s aesni-equivalent path on aarch64 (armv8_crypto) covers the only hot use case (TLS / ZFS bulk AES).

No bring-up is planned. If it were, the path would be:

  1. Decide on the FreeBSD shape — crypto(9) opencrypto session provider, or a cryptodev-bound device driver. Linux’s rockchip crypto driver registers as a crypto_engine async accelerator.
  2. Port the register programming from drivers/crypto/rockchip/rk3288_crypto*.c. Crypto v1 (crypto0) and v2 (crypto1) have different register layouts.
  3. Benchmark against armv8_crypto AES-NI-equivalent. If the on-die block isn’t materially faster than the inline AES instructions, the driver is not worth carrying.

Skipping this is intentional. RK3399 crypto offload is a low-priority item in HARDWARE.md (under System Peripherals) and would compete for attention with subsystems users actually notice (audio, modem, sensors).

Status

QuestionAnswer
Probes?n/a
Used by anything?No — armv8_crypto covers AES
User-visible?No
Blocking?No

Open work