keystone-crypto.txt 1.49 KB
* Texas Instruments Keystone Security Accelerator Crypto Driver

The Security Accelerator (SA) is one of the main components of the Network
Coprocessor (NETCP) peripheral. The SA works together with the Packet
Accelerator (PA) and the Gigabit Ethernet (GbE) switch subsystem to
form a network processing solution. The purpose of the SA is to assist
the host by performing security related tasks. The SA provides hardware
engines to perform encryption, decryption, and authentication operations on
packets for commonly supported protocols, including IPsec ESP and AH, SRTP,
and Air Cipher.

See the http://www.ti.com/lit/ug/sprugy6b/sprugy6b.pdf for details.

Keystone Linux kernel implements a crypto driver which offloads crypto
algorithm processing to CP_ACE. Crypto driver registers algorithm implementations
in the kernel's crypto algorithm management framework. Since the primary use
case for this driver is IPSec ESP offload, it currently registers only AEAD
algorithms.

Following algorithms are supported by the driver:
1. authenc(hmac(sha1),cbc(aes))
2. authenc(hmac(sha1),cbc(des3-ede))
3. authenc(xcbc(aes),cbc(aes))
4. authenc(xcbc(aes),cbc(des3-ede))

The driver source code:
drivers/crypto/keystone-*.[ch]

See the Documentation/devicetree/bindings/soc/ti/keystone-crypto.txt for
configuration.

In order to work driver requires the sa_mci.fw firmware. By default driver compiled as kernel
module and loaded after root file system is mounted, it is enough to place the firmware to
the /lib/firmware directory.