Source Files
The drivers source code is maintained in the Linux kernel source tree, under drivers/crypto/caam. Below is a non-exhaustive list
of files, mapping to Security Engine (SEC)(some files have been omitted since their existence is justified only by driver logic /
design):
Source File(s) Description Module name
ctrl.[c,h] Init (global settings, RNG, power
management etc.)
caam
desc.h HW description (CCSR registers etc.) N/A
desc_constr.h Inline append - descriptor construction
library
N/A
caamalg_desc.[c,h] (Shared) Descriptors library (symmetric
encryption, AEAD)
caamalg_desc
caamrng.c RNG (runtime) caamrng
jr.[c,h] JRI backend caam_jr
qi.[c,h] QI backend caam
dpseci.[c,h], dpseci_cmd.h DPSECI backend N/A (built-in)
caamalg.c JRI frontend (symmetric encryption,
AEAD)
caamalg
caamhash.c JRI frontend (hashing) caamhash
caampkc.c, pkc_desc.c JRI frontend (public key cryptography) caam_pkc
caamalg_qi.c QI frontend (symmetric encryption,
AEAD)
caamalg_qi
caamalg_qi2.[c,h] DPSECI frontend (symmetric
encryption, AEAD)
caamalg_qi2
Module loading
CAAM device drivers can be compiled either built-in or as modules (with the exception of DPSECI backend, which is always built-
in). See section Source Files on page 65 for the list of module names and section Kernel Configuration on page 65 for how
kernel configuration looks like and a mapping between menu entries and modules and / or functionalities enabled.
Kernel Configuration
CAAM device drivers are located in the "Cryptographic API" -> "Hardware crypto devices" sub-menu in the kernel configuration.
Depending on the target platform and / or configuration file(s) used, the output will be different; below is an example taken from
NXP Layerscape SDK for ARMv8 platforms with default options:
Kernel Configure Tree View Options Description
Cryptographic API --->
[*] Hardware crypto devices --->
<*> Freescale CAAM-Multicore platform
driver backend (SEC)
[ ] Enable debug output in CAAM
Enable CAAM device drivers, options:
• basic platform driver: Freescale CAAM-Multicore platform
driver backend (SEC); all non-DPAA2 sub-options depend on
it
Table continues on the next page...
Device Drivers
Layerscape LS1028A BSP User Guide, Rev. 0.3, 04/2019
NXP Semiconductors
65