Linux Kernel
3.7.1
|
#include <linux/module.h>
#include <linux/init.h>
#include <linux/errno.h>
#include <linux/kernel.h>
#include <linux/clk.h>
#include <linux/platform_device.h>
#include <linux/scatterlist.h>
#include <linux/dma-mapping.h>
#include <linux/io.h>
#include <linux/mutex.h>
#include <linux/interrupt.h>
#include <linux/completion.h>
#include <linux/workqueue.h>
#include <mach/clk.h>
#include <crypto/scatterwalk.h>
#include <crypto/aes.h>
#include <crypto/internal/rng.h>
#include "tegra-aes.h"
Go to the source code of this file.
Data Structures | |
struct | tegra_aes_slot |
struct | tegra_aes_reqctx |
struct | tegra_aes_dev |
struct | tegra_aes_ctx |
Macros | |
#define | FLAGS_MODE_MASK 0x00FF |
#define | FLAGS_ENCRYPT BIT(0) |
#define | FLAGS_CBC BIT(1) |
#define | FLAGS_GIV BIT(2) |
#define | FLAGS_RNG BIT(3) |
#define | FLAGS_OFB BIT(4) |
#define | FLAGS_NEW_KEY BIT(5) |
#define | FLAGS_NEW_IV BIT(6) |
#define | FLAGS_INIT BIT(7) |
#define | FLAGS_FAST BIT(8) |
#define | FLAGS_BUSY 9 |
#define | AES_HW_DMA_BUFFER_SIZE_BYTES 0x4000 |
#define | AES_HW_KEY_TABLE_LENGTH_BYTES 64 |
#define | AES_HW_IV_SIZE 16 |
#define | AES_HW_KEYSCHEDULE_LEN 256 |
#define | AES_IVKEY_SIZE (AES_HW_KEY_TABLE_LENGTH_BYTES + AES_HW_KEYSCHEDULE_LEN) |
#define | MEMDMA_DIR_DTOVRAM 0 /* sdram -> vram */ |
#define | MEMDMA_DIR_VTODRAM 1 /* vram -> sdram */ |
#define | MEMDMA_DIR_SHIFT 25 |
#define | MEMDMA_NUM_WORDS_SHIFT 12 |
#define | SSK_SLOT_NUM 4 |
#define | AES_NR_KEYSLOTS 8 |
#define | TEGRA_AES_QUEUE_LENGTH 50 |
#define | DEFAULT_RNG_BLK_SZ 16 |
#define | AES_HW_MAX_ICQ_LENGTH 5 |
Enumerations | |
enum | { CMD_BLKSTARTENGINE = 0x0E, CMD_DMASETUP = 0x10, CMD_DMACOMPLETE = 0x11, CMD_SETTABLE = 0x15, CMD_MEMDMAVD = 0x22 } |
enum | { SUBCMD_VRAM_SEL = 0x1, SUBCMD_CRYPTO_TABLE_SEL = 0x3, SUBCMD_KEY_TABLE_SEL = 0x8 } |
enum | { CMDQ_KEYTABLEADDR_SHIFT = 0, CMDQ_KEYTABLEID_SHIFT = 17, CMDQ_VRAMSEL_SHIFT = 23, CMDQ_TABLESEL_SHIFT = 24, CMDQ_OPCODE_SHIFT = 26 } |
Functions | |
unsigned long long | tegra_chip_uid (void) |
void | tegra_aes_cra_exit (struct crypto_tfm *tfm) |
module_platform_driver (tegra_aes_driver) | |
MODULE_DESCRIPTION ("Tegra AES/OFB/CPRNG hw acceleration support.") | |
MODULE_AUTHOR ("NVIDIA Corporation") | |
MODULE_LICENSE ("GPL v2") | |
#define AES_HW_DMA_BUFFER_SIZE_BYTES 0x4000 |
Definition at line 71 of file tegra-aes.c.
#define AES_HW_IV_SIZE 16 |
Definition at line 89 of file tegra-aes.c.
#define AES_HW_KEY_TABLE_LENGTH_BYTES 64 |
Definition at line 78 of file tegra-aes.c.
#define AES_HW_KEYSCHEDULE_LEN 256 |
Definition at line 90 of file tegra-aes.c.
#define AES_HW_MAX_ICQ_LENGTH 5 |
Definition at line 136 of file tegra-aes.c.
#define AES_IVKEY_SIZE (AES_HW_KEY_TABLE_LENGTH_BYTES + AES_HW_KEYSCHEDULE_LEN) |
Definition at line 91 of file tegra-aes.c.
#define AES_NR_KEYSLOTS 8 |
Definition at line 131 of file tegra-aes.c.
#define DEFAULT_RNG_BLK_SZ 16 |
Definition at line 133 of file tegra-aes.c.
#define FLAGS_BUSY 9 |
Definition at line 62 of file tegra-aes.c.
#define FLAGS_CBC BIT(1) |
Definition at line 54 of file tegra-aes.c.
#define FLAGS_ENCRYPT BIT(0) |
Definition at line 53 of file tegra-aes.c.
#define FLAGS_FAST BIT(8) |
Definition at line 61 of file tegra-aes.c.
#define FLAGS_GIV BIT(2) |
Definition at line 55 of file tegra-aes.c.
#define FLAGS_INIT BIT(7) |
Definition at line 60 of file tegra-aes.c.
#define FLAGS_MODE_MASK 0x00FF |
Definition at line 52 of file tegra-aes.c.
#define FLAGS_NEW_IV BIT(6) |
Definition at line 59 of file tegra-aes.c.
#define FLAGS_NEW_KEY BIT(5) |
Definition at line 58 of file tegra-aes.c.
#define FLAGS_OFB BIT(4) |
Definition at line 57 of file tegra-aes.c.
#define FLAGS_RNG BIT(3) |
Definition at line 56 of file tegra-aes.c.
#define MEMDMA_DIR_DTOVRAM 0 /* sdram -> vram */ |
Definition at line 110 of file tegra-aes.c.
#define MEMDMA_DIR_SHIFT 25 |
Definition at line 112 of file tegra-aes.c.
#define MEMDMA_DIR_VTODRAM 1 /* vram -> sdram */ |
Definition at line 111 of file tegra-aes.c.
#define MEMDMA_NUM_WORDS_SHIFT 12 |
Definition at line 113 of file tegra-aes.c.
#define SSK_SLOT_NUM 4 |
Definition at line 129 of file tegra-aes.c.
#define TEGRA_AES_QUEUE_LENGTH 50 |
Definition at line 132 of file tegra-aes.c.
anonymous enum |
Definition at line 94 of file tegra-aes.c.
anonymous enum |
Definition at line 103 of file tegra-aes.c.
anonymous enum |
CMDQ_KEYTABLEADDR_SHIFT | |
CMDQ_KEYTABLEID_SHIFT | |
CMDQ_VRAMSEL_SHIFT | |
CMDQ_TABLESEL_SHIFT | |
CMDQ_OPCODE_SHIFT |
Definition at line 116 of file tegra-aes.c.
MODULE_AUTHOR | ( | "NVIDIA Corporation" | ) |
MODULE_DESCRIPTION | ( | "Tegra AES/OFB/CPRNG hw acceleration support." | ) |
MODULE_LICENSE | ( | "GPL v2" | ) |
module_platform_driver | ( | tegra_aes_driver | ) |
void tegra_aes_cra_exit | ( | struct crypto_tfm * | tfm | ) |
Definition at line 805 of file tegra-aes.c.