i.MX51 EVK Linux Reference Manual
Freescale Semiconductor
23-1
Chapter 23
Symmetric/Asymmetric Hashing and Random Accelerator
(Sahara) Drivers
23.1
Overview
The Symmetric/Asymmetric Hashing and Random Accelerator (Sahara) implements block encryption
algorithms, hashing algorithms, a stream cipher algorithm, public key algorithms, and pseudo-random
number generation. It has a slave IP bus interface for the host to write configuration and command
information, and to read status information. It also has a DMA controller, with an AHB bus interface, to
reduce the burden on the host to move the required data to and from memory.
23.2
Software Operation
23.2.1
API Notes
Kernel users should not use blocking mode unless the code is operating on behalf of the kernel process
which needs to sleep because blocking mode attempts to put the current process to sleep. Therefore
blocking mode cannot be used from bottom half code or from interrupt code.
Kernel users must provide a
kmalloc
-ed buffer address for all data types (key structures, context structures,
input/output buffers, and so on)
User-mode users should beware of (or even avoid) using the stack for I/O, as cache line boundaries can
cause problems. This can even be true for such simple things as having a context object on the stack, or
retrieving a random number into a
uint32_t
stack variable. This applies to key structures, context
structures, and input/output buffers.
23.2.2
Architecture
The conceptual model is shown in
. All of the processes in
common code, except for the following platform-centric processes:
•
UM Extension
•
Init/Cleanup
•
Translator
•
Completion Notification
Summary of Contents for i.MX51 EVK
Page 1: ...Part Number 924 76374 Rev 10 11 01 11 2010 i MX51 EVK Linux Reference Manual...
Page 14: ...i MX51 EVK Linux Reference Manual xiv Freescale Semiconductor...
Page 18: ...i MX51 EVK Linux Reference Manual xviii Freescale Semiconductor...
Page 24: ...i MX51 EVK Linux Reference Manual xxiv Freescale Semiconductor...
Page 38: ...Machine Specific Layer MSL i MX51 EVK Linux Reference Manual 2 8 Freescale Semiconductor...
Page 52: ...MC13892 Digitizer Driver i MX51 EVK Linux Reference Manual 5 4 Freescale Semiconductor...
Page 64: ...TV Encoder TVE Driver i MX51 EVK Linux Reference Manual 10 4 Freescale Semiconductor...
Page 82: ...Video for Linux Two V4L2 Driver i MX51 EVK Linux Reference Manual 12 8 Freescale Semiconductor...
Page 86: ...i MX5 Dual Display i MX51 EVK Linux Reference Manual 13 4 Freescale Semiconductor...
Page 100: ...X Windows Acceleration i MX51 EVK Linux Reference Manual 16 6 Freescale Semiconductor...
Page 118: ...Low Level Keypad Driver i MX51 EVK Linux Reference Manual 20 6 Freescale Semiconductor...
Page 134: ...Security Drivers i MX51 EVK Linux Reference Manual 22 10 Freescale Semiconductor...
Page 148: ...Inter IC I2C Driver i MX51 EVK Linux Reference Manual 24 4 Freescale Semiconductor...
Page 178: ...ARC USB Driver i MX51 EVK Linux Reference Manual 29 10 Freescale Semiconductor...
Page 194: ...OProfile i MX51 EVK Linux Reference Manual 33 6 Freescale Semiconductor...