123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421 |
- #ifndef _SAFE_SAFEREG_H_
- #define _SAFE_SAFEREG_H_
- #define BS_BAR 0x10
- #define BS_TRDY_TIMEOUT 0x40
- #define BS_RETRY_TIMEOUT 0x41
- #define PCI_VENDOR_SAFENET 0x16ae
- #define PCI_PRODUCT_SAFEXCEL 0x1141
- #define SAFE_PE_CSR 0x0000
- #define SAFE_PE_SRC 0x0004
- #define SAFE_PE_DST 0x0008
- #define SAFE_PE_SA 0x000c
- #define SAFE_PE_LEN 0x0010
- #define SAFE_PE_DMACFG 0x0040
- #define SAFE_PE_DMASTAT 0x0044
- #define SAFE_PE_PDRBASE 0x0048
- #define SAFE_PE_RDRBASE 0x004c
- #define SAFE_PE_RINGCFG 0x0050
- #define SAFE_PE_RINGPOLL 0x0054
- #define SAFE_PE_IRNGSTAT 0x0058
- #define SAFE_PE_ERNGSTAT 0x005c
- #define SAFE_PE_IOTHRESH 0x0060
- #define SAFE_PE_GRNGBASE 0x0064
- #define SAFE_PE_SRNGBASE 0x0068
- #define SAFE_PE_PARTSIZE 0x006c
- #define SAFE_PE_PARTCFG 0x0070
- #define SAFE_CRYPTO_CTRL 0x0080
- #define SAFE_DEVID 0x0084
- #define SAFE_DEVINFO 0x0088
- #define SAFE_HU_STAT 0x00a0
- #define SAFE_HM_STAT 0x00a4
- #define SAFE_HI_CLR 0x00a4
- #define SAFE_HI_MASK 0x00a8
- #define SAFE_HI_CFG 0x00ac
- #define SAFE_HI_RD_DESCR 0x00b4
- #define SAFE_HI_DESC_CNT 0x00b8
- #define SAFE_DMA_ENDIAN 0x00c0
- #define SAFE_DMA_SRCADDR 0x00c4
- #define SAFE_DMA_DSTADDR 0x00c8
- #define SAFE_DMA_STAT 0x00cc
- #define SAFE_DMA_CFG 0x00d4
- #define SAFE_ENDIAN 0x00e0
- #define SAFE_PK_A_ADDR 0x0800
- #define SAFE_PK_B_ADDR 0x0804
- #define SAFE_PK_C_ADDR 0x0808
- #define SAFE_PK_D_ADDR 0x080c
- #define SAFE_PK_A_LEN 0x0810
- #define SAFE_PK_B_LEN 0x0814
- #define SAFE_PK_SHIFT 0x0818
- #define SAFE_PK_FUNC 0x081c
- #define SAFE_PK_RAM_START 0x1000
- #define SAFE_PK_RAM_END 0x1fff
- #define SAFE_RNG_OUT 0x0100
- #define SAFE_RNG_STAT 0x0104
- #define SAFE_RNG_CTRL 0x0108
- #define SAFE_RNG_A 0x010c
- #define SAFE_RNG_B 0x0110
- #define SAFE_RNG_X_LO 0x0114
- #define SAFE_RNG_X_MID 0x0118
- #define SAFE_RNG_X_HI 0x011c
- #define SAFE_RNG_X_CNTR 0x0120
- #define SAFE_RNG_ALM_CNT 0x0124
- #define SAFE_RNG_CNFG 0x0128
- #define SAFE_RNG_LFSR1_LO 0x012c
- #define SAFE_RNG_LFSR1_HI 0x0130
- #define SAFE_RNG_LFSR2_LO 0x0134
- #define SAFE_RNG_LFSR2_HI 0x0138
- #define SAFE_PE_CSR_READY 0x00000001
- #define SAFE_PE_CSR_DONE 0x00000002
- #define SAFE_PE_CSR_LOADSA 0x00000004
- #define SAFE_PE_CSR_HASHFINAL 0x00000010
- #define SAFE_PE_CSR_SABUSID 0x000000c0
- #define SAFE_PE_CSR_SAPCI 0x00000040
- #define SAFE_PE_CSR_NXTHDR 0x0000ff00
- #define SAFE_PE_CSR_FPAD 0x0000ff00
- #define SAFE_PE_CSR_STATUS 0x00ff0000
- #define SAFE_PE_CSR_AUTH_FAIL 0x00010000
- #define SAFE_PE_CSR_PAD_FAIL 0x00020000
- #define SAFE_PE_CSR_SEQ_FAIL 0x00040000
- #define SAFE_PE_CSR_XERROR 0x00080000
- #define SAFE_PE_CSR_XECODE 0x00f00000
- #define SAFE_PE_CSR_XECODE_S 20
- #define SAFE_PE_CSR_XECODE_BADCMD 0
- #define SAFE_PE_CSR_XECODE_BADALG 1
- #define SAFE_PE_CSR_XECODE_ALGDIS 2
- #define SAFE_PE_CSR_XECODE_ZEROLEN 3
- #define SAFE_PE_CSR_XECODE_DMAERR 4
- #define SAFE_PE_CSR_XECODE_PIPEABORT 5
- #define SAFE_PE_CSR_XECODE_BADSPI 6
- #define SAFE_PE_CSR_XECODE_TIMEOUT 10
- #define SAFE_PE_CSR_PAD 0xff000000
- #define SAFE_PE_CSR_PAD_MIN 0x00000000
- #define SAFE_PE_CSR_PAD_16 0x08000000
- #define SAFE_PE_CSR_PAD_32 0x10000000
- #define SAFE_PE_CSR_PAD_64 0x20000000
- #define SAFE_PE_CSR_PAD_128 0x40000000
- #define SAFE_PE_CSR_PAD_256 0x80000000
- #define SAFE_PE_CSR_IS_DONE(_csr) \
- (((_csr) & (SAFE_PE_CSR_READY | SAFE_PE_CSR_DONE)) == SAFE_PE_CSR_DONE)
- #define SAFE_PE_LEN_LENGTH 0x000fffff
- #define SAFE_PE_LEN_READY 0x00400000
- #define SAFE_PE_LEN_DONE 0x00800000
- #define SAFE_PE_LEN_BYPASS 0xff000000
- #define SAFE_PE_LEN_BYPASS_S 24
- #define SAFE_PE_LEN_IS_DONE(_len) \
- (((_len) & (SAFE_PE_LEN_READY | SAFE_PE_LEN_DONE)) == SAFE_PE_LEN_DONE)
- #define SAFE_INT_PE_CDONE 0x00000002
- #define SAFE_INT_PE_DDONE 0x00000008
- #define SAFE_INT_PE_ERROR 0x00000010
- #define SAFE_INT_PE_ODONE 0x00000020
- #define SAFE_HI_CFG_PULSE 0x00000001
- #define SAFE_HI_CFG_LEVEL 0x00000000
- #define SAFE_HI_CFG_AUTOCLR 0x00000002
- #define SAFE_ENDIAN_PASS 0x000000e4
- #define SAFE_ENDIAN_SWAB 0x0000001b
- #define SAFE_PE_DMACFG_PERESET 0x00000001
- #define SAFE_PE_DMACFG_PDRRESET 0x00000002
- #define SAFE_PE_DMACFG_SGRESET 0x00000004
- #define SAFE_PE_DMACFG_FSENA 0x00000008
- #define SAFE_PE_DMACFG_PEMODE 0x00000100
- #define SAFE_PE_DMACFG_SAPREC 0x00000200
- #define SAFE_PE_DMACFG_PKFOLL 0x00000400
- #define SAFE_PE_DMACFG_GPRBID 0x00003000
- #define SAFE_PE_DMACFG_GPRPCI 0x00001000
- #define SAFE_PE_DMACFG_SPRBID 0x0000c000
- #define SAFE_PE_DMACFG_SPRPCI 0x00004000
- #define SAFE_PE_DMACFG_ESDESC 0x00010000
- #define SAFE_PE_DMACFG_ESSA 0x00020000
- #define SAFE_PE_DMACFG_ESPACKET 0x00040000
- #define SAFE_PE_DMACFG_ESPDESC 0x00080000
- #define SAFE_PE_DMACFG_NOPDRUP 0x00100000
- #define SAFE_PD_EDMACFG_PCIMODE 0x01000000
- #define SAFE_PE_DMASTAT_PEIDONE 0x00000001
- #define SAFE_PE_DMASTAT_PEODONE 0x00000002
- #define SAFE_PE_DMASTAT_ENCDONE 0x00000004
- #define SAFE_PE_DMASTAT_IHDONE 0x00000008
- #define SAFE_PE_DMASTAT_OHDONE 0x00000010
- #define SAFE_PE_DMASTAT_PADFLT 0x00000020
- #define SAFE_PE_DMASTAT_ICVFLT 0x00000040
- #define SAFE_PE_DMASTAT_SPIMIS 0x00000080
- #define SAFE_PE_DMASTAT_CRYPTO 0x00000100
- #define SAFE_PE_DMASTAT_CQACT 0x00000200
- #define SAFE_PE_DMASTAT_IRACT 0x00000400
- #define SAFE_PE_DMASTAT_ORACT 0x00000800
- #define SAFE_PE_DMASTAT_PEISIZE 0x003ff000
- #define SAFE_PE_DMASTAT_PEOSIZE 0xffc00000
- #define SAFE_PE_RINGCFG_SIZE 0x000003ff
- #define SAFE_PE_RINGCFG_OFFSET 0xffff0000
- #define SAFE_PE_RINGCFG_OFFSET_S 16
- #define SAFE_PE_RINGPOLL_POLL 0x00000fff
- #define SAFE_PE_RINGPOLL_RETRY 0x03ff0000
- #define SAFE_PE_RINGPOLL_CONT 0x80000000
- #define SAFE_PE_IRNGSTAT_CQAVAIL 0x00000001
- #define SAFE_PE_ERNGSTAT_NEXT 0x03ff0000
- #define SAFE_PE_ERNGSTAT_NEXT_S 16
- #define SAFE_PE_IOTHRESH_INPUT 0x000003ff
- #define SAFE_PE_IOTHRESH_OUTPUT 0x03ff0000
- #define SAFE_PE_PARTCFG_SIZE 0x0000ffff
- #define SAFE_PE_PARTCFG_GBURST 0x00030000
- #define SAFE_PE_PARTCFG_GBURST_2 0x00000000
- #define SAFE_PE_PARTCFG_GBURST_4 0x00010000
- #define SAFE_PE_PARTCFG_GBURST_8 0x00020000
- #define SAFE_PE_PARTCFG_GBURST_16 0x00030000
- #define SAFE_PE_PARTCFG_SBURST 0x000c0000
- #define SAFE_PE_PARTCFG_SBURST_2 0x00000000
- #define SAFE_PE_PARTCFG_SBURST_4 0x00040000
- #define SAFE_PE_PARTCFG_SBURST_8 0x00080000
- #define SAFE_PE_PARTCFG_SBURST_16 0x000c0000
- #define SAFE_PE_PARTSIZE_SCAT 0xffff0000
- #define SAFE_PE_PARTSIZE_GATH 0x0000ffff
- #define SAFE_CRYPTO_CTRL_3DES 0x00000001
- #define SAFE_CRYPTO_CTRL_PKEY 0x00010000
- #define SAFE_CRYPTO_CTRL_RNG 0x00020000
- #define SAFE_DEVINFO_REV_MIN 0x0000000f
- #define SAFE_DEVINFO_REV_MAJ 0x000000f0
- #define SAFE_DEVINFO_REV_MAJ_S 4
- #define SAFE_DEVINFO_DES 0x00000100
- #define SAFE_DEVINFO_ARC4 0x00000200
- #define SAFE_DEVINFO_AES 0x00000400
- #define SAFE_DEVINFO_MD5 0x00001000
- #define SAFE_DEVINFO_SHA1 0x00002000
- #define SAFE_DEVINFO_RIPEMD 0x00004000
- #define SAFE_DEVINFO_DEFLATE 0x00010000
- #define SAFE_DEVINFO_SARAM 0x00100000
- #define SAFE_DEVINFO_EMIBUS 0x00200000
- #define SAFE_DEVINFO_PKEY 0x00400000
- #define SAFE_DEVINFO_RNG 0x00800000
- #define SAFE_REV(_maj, _min) (((_maj) << SAFE_DEVINFO_REV_MAJ_S) | (_min))
- #define SAFE_REV_MAJ(_chiprev) \
- (((_chiprev) & SAFE_DEVINFO_REV_MAJ) >> SAFE_DEVINFO_REV_MAJ_S)
- #define SAFE_REV_MIN(_chiprev) ((_chiprev) & SAFE_DEVINFO_REV_MIN)
- #define SAFE_PK_FUNC_MULT 0x00000001
- #define SAFE_PK_FUNC_SQUARE 0x00000004
- #define SAFE_PK_FUNC_ADD 0x00000010
- #define SAFE_PK_FUNC_SUB 0x00000020
- #define SAFE_PK_FUNC_LSHIFT 0x00000040
- #define SAFE_PK_FUNC_RSHIFT 0x00000080
- #define SAFE_PK_FUNC_DIV 0x00000100
- #define SAFE_PK_FUNC_CMP 0x00000400
- #define SAFE_PK_FUNC_COPY 0x00000800
- #define SAFE_PK_FUNC_EXP16 0x00002000
- #define SAFE_PK_FUNC_EXP4 0x00004000
- #define SAFE_PK_FUNC_RUN 0x00008000
- #define SAFE_RNG_STAT_BUSY 0x00000001
- #define SAFE_RNG_CTRL_PRE_LFSR 0x00000001
- #define SAFE_RNG_CTRL_TST_MODE 0x00000002
- #define SAFE_RNG_CTRL_TST_RUN 0x00000004
- #define SAFE_RNG_CTRL_ENA_RING1 0x00000008
- #define SAFE_RNG_CTRL_ENA_RING2 0x00000010
- #define SAFE_RNG_CTRL_DIS_ALARM 0x00000020
- #define SAFE_RNG_CTRL_TST_CLOCK 0x00000040
- #define SAFE_RNG_CTRL_SHORTEN 0x00000080
- #define SAFE_RNG_CTRL_TST_ALARM 0x00000100
- #define SAFE_RNG_CTRL_RST_LFSR 0x00000200
- struct safe_desc {
- u_int32_t d_csr;
- u_int32_t d_src;
- u_int32_t d_dst;
- u_int32_t d_sa;
- u_int32_t d_len;
- };
- struct safe_pdesc {
- u_int32_t pd_addr;
- #ifdef __BIG_ENDIAN
- u_int16_t pd_flags;
- u_int16_t pd_size;
- #else
- u_int16_t pd_flags;
- u_int16_t pd_size;
- #endif
- };
- #define SAFE_PD_READY 0x0001
- #define SAFE_PD_DONE 0x0002
- struct safe_sarec {
- u_int32_t sa_cmd0;
- u_int32_t sa_cmd1;
- u_int32_t sa_resv0;
- u_int32_t sa_resv1;
- u_int32_t sa_key[8];
- u_int32_t sa_indigest[5];
- u_int32_t sa_outdigest[5];
- u_int32_t sa_spi;
- u_int32_t sa_seqnum;
- u_int32_t sa_seqmask[2];
- u_int32_t sa_resv2;
- u_int32_t sa_staterec;
- u_int32_t sa_resv3[2];
- u_int32_t sa_samgmt0;
- u_int32_t sa_samgmt1;
- };
- #define SAFE_SA_CMD0_OP 0x00000007
- #define SAFE_SA_CMD0_OP_CRYPT 0x00000000
- #define SAFE_SA_CMD0_OP_BOTH 0x00000001
- #define SAFE_SA_CMD0_OP_HASH 0x00000003
- #define SAFE_SA_CMD0_OP_ESP 0x00000000
- #define SAFE_SA_CMD0_OP_AH 0x00000001
- #define SAFE_SA_CMD0_INBOUND 0x00000008
- #define SAFE_SA_CMD0_OUTBOUND 0x00000000
- #define SAFE_SA_CMD0_GROUP 0x00000030
- #define SAFE_SA_CMD0_BASIC 0x00000000
- #define SAFE_SA_CMD0_PROTO 0x00000010
- #define SAFE_SA_CMD0_BUNDLE 0x00000020
- #define SAFE_SA_CMD0_PAD 0x000000c0
- #define SAFE_SA_CMD0_PAD_IPSEC 0x00000000
- #define SAFE_SA_CMD0_PAD_PKCS7 0x00000040
- #define SAFE_SA_CMD0_PAD_CONS 0x00000080
- #define SAFE_SA_CMD0_PAD_ZERO 0x000000c0
- #define SAFE_SA_CMD0_CRYPT_ALG 0x00000f00
- #define SAFE_SA_CMD0_DES 0x00000000
- #define SAFE_SA_CMD0_3DES 0x00000100
- #define SAFE_SA_CMD0_AES 0x00000300
- #define SAFE_SA_CMD0_CRYPT_NULL 0x00000f00
- #define SAFE_SA_CMD0_HASH_ALG 0x0000f000
- #define SAFE_SA_CMD0_MD5 0x00000000
- #define SAFE_SA_CMD0_SHA1 0x00001000
- #define SAFE_SA_CMD0_HASH_NULL 0x0000f000
- #define SAFE_SA_CMD0_HDR_PROC 0x00080000
- #define SAFE_SA_CMD0_IBUSID 0x00300000
- #define SAFE_SA_CMD0_IPCI 0x00100000
- #define SAFE_SA_CMD0_OBUSID 0x00c00000
- #define SAFE_SA_CMD0_OPCI 0x00400000
- #define SAFE_SA_CMD0_IVLD 0x03000000
- #define SAFE_SA_CMD0_IVLD_NONE 0x00000000
- #define SAFE_SA_CMD0_IVLD_IBUF 0x01000000
- #define SAFE_SA_CMD0_IVLD_STATE 0x02000000
- #define SAFE_SA_CMD0_HSLD 0x0c000000
- #define SAFE_SA_CMD0_HSLD_SA 0x00000000
- #define SAFE_SA_CMD0_HSLD_STATE 0x08000000
- #define SAFE_SA_CMD0_HSLD_NONE 0x0c000000
- #define SAFE_SA_CMD0_SAVEIV 0x10000000
- #define SAFE_SA_CMD0_SAVEHASH 0x20000000
- #define SAFE_SA_CMD0_IGATHER 0x40000000
- #define SAFE_SA_CMD0_OSCATTER 0x80000000
- #define SAFE_SA_CMD1_HDRCOPY 0x00000002
- #define SAFE_SA_CMD1_PAYCOPY 0x00000004
- #define SAFE_SA_CMD1_PADCOPY 0x00000008
- #define SAFE_SA_CMD1_IPV4 0x00000000
- #define SAFE_SA_CMD1_IPV6 0x00000010
- #define SAFE_SA_CMD1_MUTABLE 0x00000020
- #define SAFE_SA_CMD1_SRBUSID 0x000000c0
- #define SAFE_SA_CMD1_SRPCI 0x00000040
- #define SAFE_SA_CMD1_CRMODE 0x00000300
- #define SAFE_SA_CMD1_ECB 0x00000000
- #define SAFE_SA_CMD1_CBC 0x00000100
- #define SAFE_SA_CMD1_OFB 0x00000200
- #define SAFE_SA_CMD1_CFB 0x00000300
- #define SAFE_SA_CMD1_CRFEEDBACK 0x00000c00
- #define SAFE_SA_CMD1_64BIT 0x00000000
- #define SAFE_SA_CMD1_8BIT 0x00000400
- #define SAFE_SA_CMD1_1BIT 0x00000800
- #define SAFE_SA_CMD1_128BIT 0x00000c00
- #define SAFE_SA_CMD1_OPTIONS 0x00001000
- #define SAFE_SA_CMD1_HMAC SAFE_SA_CMD1_OPTIONS
- #define SAFE_SA_CMD1_SAREV1 0x00008000
- #define SAFE_SA_CMD1_OFFSET 0x00ff0000
- #define SAFE_SA_CMD1_OFFSET_S 16
- #define SAFE_SA_CMD1_AESKEYLEN 0x0f000000
- #define SAFE_SA_CMD1_AES128 0x02000000
- #define SAFE_SA_CMD1_AES192 0x03000000
- #define SAFE_SA_CMD1_AES256 0x04000000
- struct safe_sastate {
- u_int32_t sa_saved_iv[4];
- u_int32_t sa_saved_hashbc;
- u_int32_t sa_saved_indigest[5];
- };
- #endif
|