summaryrefslogtreecommitdiffstats
path: root/include/asm-blackfin/mach-common/bits/lockbox.h
blob: 77f849e8f23f239191242d7f68c7bec809737077 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/*
 * Lockbox/Security Masks
 */

#ifndef __BFIN_PERIPHERAL_LOCKBOX__
#define __BFIN_PERIPHERAL_LOCKBOX__

#ifndef __ASSEMBLY__

#include "bootrom.h"

/* SESR argument structure. Expected to reside at 0xFF900018. */
typedef struct SESR_args {
	unsigned short  usFlags;            /* security firmware flags            */
	unsigned short  usIRQMask;          /* interrupt mask                     */
	unsigned long   ulMessageSize;      /* message length in bytes            */
	unsigned long   ulSFEntryPoint;     /* entry point of secure function     */
	unsigned long   ulMessagePtr;       /* pointer to the buffer containing
	                                       the digital signature and message  */
	unsigned long   ulReserved1;        /* reserved                           */
	unsigned long   ulReserved2;        /* reserved                           */
} tSESR_args;

/* Secure Entry Service Routine */
static void (* const sesr)(void) = (void *)_BOOTROM_SESR;

#endif

/* SESR flags argument bitfields */
#define SESR_FLAGS_STAY_AT_NMI              0x0000
#define SESR_FLAGS_DROP_BELOW_NMI           0x0001
#define SESR_FLAGS_NO_SF_DMA                0x0000
#define SESR_FLAGS_DMA_SF_TO_RUN_DEST       0x0002
#define SESR_FLAGS_USE_ADI_PUB_KEY          0x0000
#define SESR_FLAGS_USE_CUST_PUB_KEY         0x0100

/* Bit masks for SECURE_SYSSWT */
#define EMUDABL                0x00000001    /* Emulation Disable */
#define RSTDABL                0x00000002    /* Reset Disable */
#define L1IDABL                0x0000001c    /* L1 Instruction Memory Disable */
#define L1DADABL               0x000000e0    /* L1 Data Bank A Memory Disable */
#define L1DBDABL               0x00000700    /* L1 Data Bank B Memory Disable */
#define DMA0OVR                0x00000800    /* DMA0 Memory Access Override */
#define DMA1OVR                0x00001000    /* DMA1 Memory Access Override */
#define EMUOVR                 0x00004000    /* Emulation Override */
#define OTPSEN                 0x00008000    /* OTP Secrets Enable */
#define L2DABL                 0x00070000    /* L2 Memory Disable */

/* Bit masks for SECURE_CONTROL */
#define SECURE0                0x0001        /* SECURE 0 */
#define SECURE1                0x0002        /* SECURE 1 */
#define SECURE2                0x0004        /* SECURE 2 */
#define SECURE3                0x0008        /* SECURE 3 */

/* Bit masks for SECURE_STATUS */
#define SECMODE                0x0003        /* Secured Mode Control State */
#define NMI                    0x0004        /* Non Maskable Interrupt */
#define AFVALID                0x0008        /* Authentication Firmware Valid */
#define AFEXIT                 0x0010        /* Authentication Firmware Exit */
#define SECSTAT                0x00e0        /* Secure Status */

#endif