linux/drivers/mxc/security/mxc_scc.c File Reference


Detailed Description

This is the driver code for the Security Controller (SCC). It has no device driver interface, so no user programs may access it. Its interaction with the Linux kernel is from calls to scc_init() when the driver is loaded, and scc_cleanup() should the driver be unloaded. The driver uses locking and (task-sleep/task-wakeup) functions of the kernel. It also registers itself to handle the interrupt line(s) from the SCC.

Other drivers in the kernel may use the remaining API functions to get at the services of the SCC. The main service provided is the Secure Memory, which allows encoding and decoding of secrets with a per-chip secret key.

The SCC is single-threaded, and so is this module. When the scc_crypt() routine is called, it will lock out other accesses to the function. If another task is already in the module, the subsequent caller will spin on a lock waiting for the other access to finish.

Note that long crypto operations could cause a task to spin for a while, preventing other kernel work (other than interrupt processing) to get done.

The external (kernel module) interface is through the following functions:

All other functions are internal to the driver.
footer
©  Freescale Semiconductor, Inc., 2007.  All rights reserved.
Freescale Confidential Proprietary
NDA Required
doxygen