root/dev/pci/noctreg.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


    1 /*      $OpenBSD: noctreg.h,v 1.8 2003/06/02 19:08:58 jason Exp $       */
    2 
    3 /*
    4  * Copyright (c) 2002 Jason L. Wright (jason@thought.net)
    5  * All rights reserved.
    6  *
    7  * Redistribution and use in source and binary forms, with or without
    8  * modification, are permitted provided that the following conditions
    9  * are met:
   10  * 1. Redistributions of source code must retain the above copyright
   11  *    notice, this list of conditions and the following disclaimer.
   12  * 2. Redistributions in binary form must reproduce the above copyright
   13  *    notice, this list of conditions and the following disclaimer in the
   14  *    documentation and/or other materials provided with the distribution.
   15  *
   16  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
   17  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
   18  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   19  * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
   20  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
   21  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
   22  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   23  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
   24  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
   25  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   26  * POSSIBILITY OF SUCH DAMAGE.
   27  *
   28  * Effort sponsored in part by the Defense Advanced Research Projects
   29  * Agency (DARPA) and Air Force Research Laboratory, Air Force
   30  * Materiel Command, USAF, under agreement number F30602-01-2-0537.
   31  *
   32  */
   33 
   34 #define NOCT_BAR0               0x10            /* PCI base address */
   35 
   36 #define NOCT_BRDG_ENDIAN        0x0000          /* bridge endian mode */
   37 #define NOCT_BRDG_TIMER_PRESET  0x0004          /* bridge timer preset */
   38 #define NOCT_BRDG_STAT          0x0008          /* bridge status */
   39 #define NOCT_BRDG_CTL           0x000c          /* bridge control */
   40 #define NOCT_BRDG_TIMR          0x0010          /* bridge timer */
   41 #define NOCT_BRDG_TEST          0x0014          /* bridge test */
   42 #define NOCT_BRDG_RPMR          0x0018          /* bridge read ptr mirror */
   43 #define NOCT_PKH_TEST0          0x4000          /* pkh test 0 */
   44 #define NOCT_PKH_TEST1          0x4004          /* pkh test 1 */
   45 #define NOCT_PKH_Q_LEN          0x4008          /* pkh queue length */
   46 #define NOCT_PKH_Q_PTR          0x400c          /* pkh queue ptrs */
   47 #define NOCT_PKH_Q_BASE_HI      0x4010          /* pkh queue base, msw */
   48 #define NOCT_PKH_Q_BASE_LO      0x4014          /* pkh queue base, lsw */
   49 #define NOCT_PKH_IER            0x4018          /* pkh intr enable */
   50 #define NOCT_PKH_CSR            0x401c          /* pkh control/status */
   51 #define NOCT_PKH_SKS_DATA       0x4020          /* pkh secure key data */
   52 #define NOCT_PKH_SKS_CTRL       0x4024          /* pkh secure key ctrl */
   53 #define NOCT_PKH_CMDB_0         0x40e0          /* pkh command block 0 */
   54 #define NOCT_PKH_CMDB_1         0x40e4          /* pkh command block 1 */
   55 #define NOCT_PKH_CMDB_2         0x40e8          /* pkh command block 2 */
   56 #define NOCT_PKH_CMDB_3         0x40ec          /* pkh command block 3 */
   57 #define NOCT_PKH_CMDB_4         0x40f0          /* pkh command block 4 */
   58 #define NOCT_PKH_CMDB_5         0x40f4          /* pkh command block 5 */
   59 #define NOCT_PKH_CMDB_6         0x40f8          /* pkh command block 6 */
   60 #define NOCT_PKH_CMDB_7         0x40fc          /* pkh command block 7 */
   61 #define NOCT_PKH_BNCACHE_START  0x5000          /* pkh bignumber cache start */
   62 #define NOCT_PKH_BNCACHE_END    0x5fff          /* pkh bigbumber cache end */
   63 #define NOCT_EA_TEST_1          0x8000          /* e/a test 1 */
   64 #define NOCT_EA_TEST_0          0x8004          /* e/a test 0 */
   65 #define NOCT_EA_Q_LEN           0x8008          /* e/a cmd queue len */
   66 #define NOCT_EA_Q_PTR           0x800c          /* e/a cmd queue ptr */
   67 #define NOCT_EA_Q_BASE_HI       0x8010          /* e/a cmd queue bar 1 */
   68 #define NOCT_EA_Q_BASE_LO       0x8014          /* e/a cmd queue bar 0 */
   69 #define NOCT_EA_IER             0x8018          /* e/a intr enable */
   70 #define NOCT_EA_CSR             0x801c          /* e/a control/status */
   71 #define NOCT_EA_CTX_DAT_1       0x8020          /* e/a context data 1 */
   72 #define NOCT_EA_CTX_DAT_0       0x8024          /* e/a context data 0 */
   73 #define NOCT_EA_CTX_ADDR        0x8028          /* e/a context address */
   74 #define NOCT_EA_SDRAM_CFG       0x802c          /* e/a sdram config */
   75 #define NOCT_RNG_TOD            0xc000          /* rng time of day */
   76 #define NOCT_RNG_TOD_SCALE      0xc008          /* rng pre-scale */
   77 #define NOCT_RNG_TOD_READ       0xc010          /* rng time of day (read) */
   78 #define NOCT_RNG_X917_KEY1      0xc018          /* rng x9.17 key 1 */
   79 #define NOCT_RNG_X917_KEY2      0xc020          /* rng x9.17 key 2 */
   80 #define NOCT_RNG_HOSTSEED       0xc028          /* rng host seed */
   81 #define NOCT_RNG_SAMPBIAS       0xc030          /* rng intrl seed gen/bias */
   82 #define NOCT_RNG_EXTCLK_SCALE   0xc038          /* rng extrn clock scale */
   83 #define NOCT_RNG_WRITE          0xc040          /* rng write pointer */
   84 #define NOCT_RNG_SEEDSAMP       0xc048          /* rng seed sample */
   85 #define NOCT_RNG_LFSRDIAG       0xc050          /* rng lfsr diagnostics */
   86 #define NOCT_RNG_LFSRHIST_1     0xc058          /* rng lfsr history 1 */
   87 #define NOCT_RNG_LFSRHIST_2     0xc060          /* rng lfsr history 2 */
   88 #define NOCT_RNG_LFSRHIST_3     0xc068          /* rng lfsr history 3 */
   89 #define NOCT_RNG_LFSRHIST_4     0xc070          /* rng lfsr history 4 */
   90 #define NOCT_RNG_CTL            0xc078          /* rng control */
   91 #define NOCT_RNG_TEST_1         0xd000          /* rng test 1 */
   92 #define NOCT_RNG_TEST_0         0xd004          /* rng test 0 */
   93 #define NOCT_RNG_Q_LEN          0xd008          /* rng queue length */
   94 #define NOCT_RNG_Q_PTR          0xd00c          /* rng queue pointer */
   95 #define NOCT_RNG_Q_BASE_HI      0xd010          /* rng bar1 */
   96 #define NOCT_RNG_Q_BASE_LO      0xd014          /* rng bar0 */
   97 #define NOCT_RNG_CSR            0xd018          /* rng control/status */
   98 
   99 /* NOCT_BRDG_STAT */
  100 #define BRDGSTS_PKP_INT         0x80000000      /* pkp interrupt */
  101 #define BRDGSTS_CCH_INT         0x40000000      /* cch interrupt */
  102 #define BRDGSTS_RNG_INT         0x20000000      /* rng interrupt */
  103 #define BRDGSTS_BRG_INT         0x10000000      /* bridge interrupt */
  104 #define BRDGSTS_TMR_INT         0x08000000      /* timer interrupt */
  105 #define BRDGSTS_CCH_ENA         0x01000000      /* mirror from e/a */
  106 #define BRDGSTS_CCH_BSY         0x00800000      /* mirror from e/a */
  107 #define BRDGSTS_CCH_ERR         0x00400000      /* mirror from e/a */
  108 #define BRDGSTS_CCH_RD_PEND     0x00200000      /* mirror from e/a */
  109 #define BRDGSTS_CCH_WR_PEND     0x00100000      /* mirror from e/a */
  110 #define BRDGSTS_PKH_ENA         0x00080000      /* mirror from pkh */
  111 #define BRDGSTS_PKH_BSY         0x00040000      /* mirror from pkh */
  112 #define BRDGSTS_PKH_ERR         0x00020000      /* mirror from pkh */
  113 #define BRDGSTS_PKH_SKS         0x00010000      /* mirror from pkh */
  114 #define BRDGSTS_HRESP_ERR       0x00002000      /* AHB slave HRESP error */
  115 #define BRDGSTS_HBURST_ERR      0x00001000      /* ccm, illegal burst */
  116 #define BRDGSTS_HSIZE_ERR       0x00000800      /* ccm, illegal size */
  117 #define BRDGSTS_PCIACC_ERR      0x00000400      /* pci access error */
  118 #define BRDGSTS_RSVMEM_ERR      0x00000200      /* reserved access */
  119 #define BRDGSTS_TRCVFIFO_PERR   0x00000100      /* CS6464AF parity error */
  120 #define BRDGSTS_PCIPERR         0x00000080      /* host parity error */
  121 
  122 /* NOCT_BRDG_CTL */
  123 #define BRDGCTL_PKIRQ_ENA       0x80000000      /* pkh interrupt enable */
  124 #define BRDGCTL_EAIRQ_ENA       0x40000000      /* ea interrupt enable */
  125 #define BRDGCTL_RNIRQ_ENA       0x20000000      /* rng interrupt enable */
  126 #define BRDGCTL_BIRQ_ENA        0x10000000      /* bridge interrupt enable */
  127 #define BRDGCTL_TIRQ_ENA        0x08000000      /* timer interrupt enable */
  128 #define BRDGCTL_TIMER_ENA       0x00000001      /* enable timer */
  129 
  130 /* NOCT_PKH_Q_LEN */
  131 #define PKHQLEN_MASK            0x0000000f      /* queue length, 2^n */
  132 
  133 /* NOCT_PKH_Q_PTR */
  134 #define PKHQPTR_READ_M          0x7fff0000      /* read mask */
  135 #define PKHQPTR_READ_S          16              /* read shift */
  136 #define PKHQPTR_WRITE_M         0x00007fff      /* write mask */
  137 #define PKHQPTR_WRITE_S         0               /* write shift */
  138 
  139 /* NOCT_PKH_IER */
  140 #define PKHIER_CMDSI            0x00020000      /* cmd successful, SI */
  141 #define PKHIER_SKSWR            0x00010000      /* sks write op done */
  142 #define PKHIER_SKSOFF           0x00008000      /* sks offset error */
  143 #define PKHIER_PKHLEN           0x00004000      /* invalid data length */
  144 #define PKHIER_PKHOPCODE        0x00002000      /* invalid opcode */
  145 #define PKHIER_BADQBASE         0x00001000      /* base queue base */
  146 #define PKHIER_LOADERR          0x00000800      /* bus error during load */
  147 #define PKHIER_STOREERR         0x00000400      /* bus error during store */
  148 #define PKHIER_CMDERR           0x00000200      /* bus error during cmd */
  149 #define PKHIER_ILL              0x00000100      /* illegal access */
  150 #define PKHIER_PKERESV          0x00000080      /* pke reserved */
  151 #define PKHIER_PKEWDT           0x00000040      /* pke mul inv watchdog */
  152 #define PKHIER_PKENOTPRIME      0x00000020      /* pke not relatively prime */
  153 #define PKHIER_PKE_B            0x00000010      /* pke bad 'b' error */
  154 #define PKHIER_PKE_A            0x00000008      /* pke bad 'a' error */
  155 #define PKHIER_PKE_M            0x00000004      /* pke bad 'm' error */
  156 #define PKHIER_PKE_R            0x00000002      /* pke bad 'r' error */
  157 #define PKHIER_PKEOPCODE        0x00000001      /* pke bad opcode */
  158 
  159 /* NOCT_PKH_CSR */
  160 #define PKHCSR_PKH_ENA          0x80000000      /* enable pkh */
  161 #define PKHCSR_PKH_BUSY         0x40000000      /* pkh busy */
  162 #define PKHCSR_PKE_GO           0x20000000      /* pke go input */
  163 #define PKHCSR_PKE_BUSY         0x10000000      /* pke busy output */
  164 #define PKHCSR_LINENO           0x0f000000      /* pke error opcode */
  165 #define PKHCSR_CMDSI            0x00020000      /* cmd successful, SI */
  166 #define PKHCSR_SKSWR            0x00010000      /* sks write op done */
  167 #define PKHCSR_SKSOFF           0x00008000      /* sks offset error */
  168 #define PKHCSR_PKHLEN           0x00004000      /* invalid data length */
  169 #define PKHCSR_PKHOPCODE        0x00002000      /* invalid opcode */
  170 #define PKHCSR_BADQBASE         0x00001000      /* base queue base */
  171 #define PKHCSR_LOADERR          0x00000800      /* bus error during load */
  172 #define PKHCSR_STOREERR         0x00000400      /* bus error during store */
  173 #define PKHCSR_CMDERR           0x00000200      /* bus error during cmd */
  174 #define PKHCSR_ILL              0x00000100      /* illegal access */
  175 #define PKHCSR_PKERESV          0x00000080      /* pke reserved */
  176 #define PKHCSR_PKEWDT           0x00000040      /* pke mul inv watchdog */
  177 #define PKHCSR_PKENOTPRIME      0x00000020      /* pke not relatively prime */
  178 #define PKHCSR_PKE_B            0x00000010      /* pke bad 'b' error */
  179 #define PKHCSR_PKE_A            0x00000008      /* pke bad 'a' error */
  180 #define PKHCSR_PKE_M            0x00000004      /* pke bad 'm' error */
  181 #define PKHCSR_PKE_R            0x00000002      /* pke bad 'r' error */
  182 #define PKHCSR_PKEOPCODE        0x00000001      /* pke bad opcode */
  183 
  184 /* NOCT_PKH_SKS_CTRL */
  185 #define PKHSKS_GO               0x80000000      /* pkhsks busy */
  186 #define PKHSKS_PROMERR          0x40000000      /* prom protocol error */
  187 #define PKHSKS_ACCERR           0x20000000      /* access error */
  188 #define PKHSKS_LOCMASK          0x00003000      /* location mask: */
  189 #define PKHSKS_LOC_FROMPROM     0x00002000
  190 #define PKHSKS_LOC_CACHEONLY    0x00001000
  191 #define PKHSKS_ADDR             0x00000fff      /* address mask */
  192 
  193 /*
  194  * public key structures
  195  */
  196 /* opcodes/flags */
  197 #define PKH_OP_CODE_MASK        0xf0000000      /* opcode mask */
  198 #define PKH_OP_CODE_MOD         0x00000000      /* a mod m */
  199 #define PKH_OP_CODE_RMOD        0x10000000      /* R mod m */
  200 #define PKH_OP_CODE_ADD         0x20000000      /* (a + b) mod m */
  201 #define PKH_OP_CODE_SUB         0x30000000      /* (a - b) mod m */
  202 #define PKH_OP_CODE_ADDINV      0x40000000      /* -a mod m */
  203 #define PKH_OP_CODE_MUL         0x50000000      /* (a * b) mod m */
  204 #define PKH_OP_CODE_MULINV      0x60000000      /* 1/a mod m */
  205 #define PKH_OP_CODE_EXP         0x70000000      /* g^e mod m */
  206 #define PKH_OP_CODE_LOAD        0x80000000      /* load bn cache */
  207 #define PKH_OP_CODE_STORE       0x90000000      /* store bn cache */
  208 #define PKH_OP_CODE_RSAPRIV     0xa0000000      /* rsa private key op */
  209 #define PKH_OP_CODE_DSASIGN     0xb0000000      /* dsa sign op */
  210 #define PKH_OP_CODE_NOP         0xf0000000      /* no-op */
  211 #define PKH_OP_SI               0x08000000      /* set interrupt */
  212 
  213 /* pkh arithmetic commands */
  214 struct noct_pkh_cmd_arith {
  215         volatile u_int32_t      op;             /* opcode/si, 0x0 - 0x7 */
  216         volatile u_int32_t      r;              /* r offset */
  217         volatile u_int32_t      m;              /* m length, m offset */
  218         volatile u_int32_t      a;              /* a length, a offset */
  219         volatile u_int32_t      b;              /* b length, b offset */
  220         volatile u_int32_t      c;              /* c offset */
  221         volatile u_int32_t      unused[2];      /* reserved */
  222 };
  223 
  224 /* pkh load/store bn cache commands */
  225 struct noct_pkh_cmd_cache {
  226         volatile u_int32_t      op;             /* opcode/si, 0x8-0x9 */
  227         volatile u_int32_t      r;              /* r offset */
  228         volatile u_int32_t      addrhi;         /* host address, msw */
  229         volatile u_int32_t      addrlo;         /* host address, lsw */
  230         volatile u_int32_t      len;            /* data length (0-4096) */
  231         volatile u_int32_t      unused[3];      /* reserved */
  232 };
  233 
  234 /* pkh rsa private command */
  235 struct noct_pkh_cmd_rsapriv {
  236         volatile u_int32_t      op;             /* opcode/si, 0xa */
  237         volatile u_int32_t      par;            /* n, keylen, sksoffset */
  238         volatile u_int32_t      unused[6];      /* reserved */
  239 };
  240 
  241 /* pkh dsa sign command */
  242 struct noct_pkh_cmd_dsasign {
  243         volatile u_int32_t      op;             /* opcode/si, 0xb */
  244         volatile u_int32_t      par;            /* n, keylen, sksoffset */
  245         volatile u_int32_t      unused[6];      /* reserved */
  246 };
  247 
  248 /* pkh nop command */
  249 struct noct_pkh_cmd_nop {
  250         volatile u_int32_t      op;             /* opcode/si, 0xf */
  251         volatile u_int32_t      unused[7];      /* reserved */
  252 };
  253 
  254 /* pkh generic command */
  255 union noct_pkh_cmd {
  256         struct noct_pkh_cmd_arith       arith;
  257         struct noct_pkh_cmd_cache       cache;
  258         struct noct_pkh_cmd_rsapriv     rsapriv;
  259         struct noct_pkh_cmd_dsasign     dsasign;
  260         struct noct_pkh_cmd_nop         nop;
  261 };
  262 
  263 /* NOCT_EA_Q_LEN */
  264 #define EAQLEN_MASK             0x0000000f      /* queue length, 2^n */
  265 
  266 /* NOCT_EA_Q_PTR */
  267 #define EAQPTR_READ_M           0x7fff0000      /* read mask */
  268 #define EAQPTR_READ_S           16              /* read shift */
  269 #define EAQPTR_WRITE_M          0x00007fff      /* write mask */
  270 #define EAQPTR_WRITE_S          0               /* write shift */
  271 
  272 /* NOCT_EA_IER */
  273 #define EAIER_QALIGN            0x00008000      /* queue alignment */
  274 #define EAIER_CMDCMPL           0x00004000      /* command complete */
  275 #define EAIER_OPERR             0x00002000      /* opcode error */
  276 #define EAIER_CMDREAD           0x00001000      /* command read error */
  277 #define EAIER_CMDWRITE          0x00000800      /* command write error */
  278 #define EAIER_DATAREAD          0x00000400      /* data read error */
  279 #define EAIER_DATAWRITE         0x00000200      /* data write error */
  280 #define EAIER_INTRNLLEN         0x00000100      /* internal data length err */
  281 #define EAIER_EXTRNLLEN         0x00000080      /* external data length err */
  282 #define EAIER_DESBLOCK          0x00000040      /* des block size error */
  283 #define EAIER_DESKEY            0x00000020      /* des key error */
  284 #define EAIER_ILL               0x00000001      /* illegal access */
  285 
  286 /* NOCT_EA_CSR */
  287 #define EACSR_ENABLE            0x80000000      /* e/a enable */
  288 #define EACSR_BUSY              0x40000000      /* e/a busy */
  289 #define EACSR_QALIGN            0x00008000      /* queue alignment */
  290 #define EACSR_CMDCMPL           0x00004000      /* command complete */
  291 #define EACSR_OPERR             0x00002000      /* opcode error */
  292 #define EACSR_CMDREAD           0x00001000      /* command read error */
  293 #define EACSR_CMDWRITE          0x00000800      /* command write error */
  294 #define EACSR_DATAREAD          0x00000400      /* data read error */
  295 #define EACSR_DATAWRITE         0x00000200      /* data write error */
  296 #define EACSR_INTRNLLEN         0x00000100      /* internal data length err */
  297 #define EACSR_EXTRNLLEN         0x00000080      /* external data length err */
  298 #define EACSR_DESBLOCK          0x00000040      /* des block size error */
  299 #define EACSR_DESKEY            0x00000020      /* des key error */
  300 #define EACSR_ILL               0x00000001      /* illegal access */
  301 
  302 /* NOCT_EA_CTX_ADDR */
  303 #define EACTXADDR_READPEND      0x80000000      /* read pending/start */
  304 #define EACTXADDR_WRITEPEND     0x40000000      /* write pending/start */
  305 #define EACTXADDR_MASK          0x00ffffff      /* address mask */
  306 
  307 /* NOCT_EA_SDRAM_CFG */
  308 #define EASDRC_8KREFRESH        0x00000080      /* 8K refreshes/64ms */
  309 #define EASDRC_FREQ             0x0000003f      /* in MHz */
  310 
  311 /* NOCT_RNG_CTL */
  312 #define RNGCTL_RNG_ENA          0x80000000      /* rng enable */
  313 #define RNGCTL_TOD_ENA          0x40000000      /* enable tod counter */
  314 #define RNGCTL_EXTCLK_ENA       0x20000000      /* external clock enable */
  315 #define RNGCTL_DIAG             0x10000000      /* diagnostic mode */
  316 #define RNGCTL_BUFSRC_M         0x0c000000      /* buffer source: */
  317 #define RNGCTL_BUFSRC_X917      0x00000000      /*  X9.17 expander */
  318 #define RNGCTL_BUFSRC_SEED      0x04000000      /*  seed generator */
  319 #define RNGCTL_BUFSRC_HOST      0x08000000      /*  host data */
  320 #define RNGCTL_SEEDSRC_M        0x03000000      /* seed source: */
  321 #define RNGCTL_SEEDSRC_INT      0x00000000      /*  internal seed generator */
  322 #define RNGCTL_SEEDSRC_EXT      0x01000000      /*  external seed generator */
  323 #define RNGCTL_SEEDSRC_HOST     0x02000000      /*  host seed */
  324 #define RNGCTL_SEED_ERR         0x00008000      /* seed error */
  325 #define RNGCTL_X917_ERR         0x00004000      /* X9.17 error */
  326 #define RNGCTL_KEY1PAR_ERR      0x00002000      /* key 1 parity error */
  327 #define RNGCTL_KEY2PAR_ERR      0x00001000      /* key 2 parity error */
  328 #define RNGCTL_HOSTSEEDVALID    0x00000400      /* host seed not consumed */
  329 #define RNGCTL_BUF_RDY          0x00000200      /* buffer ready for write */
  330 #define RNGCTL_ITERCNT          0x000000ff      /* iteration count */
  331 
  332 /* NOCT_RNG_CSR */
  333 #define RNGCSR_XFER_ENABLE      0x80000000      /* enable xfer queue */
  334 #define RNGCSR_XFER_BUSY        0x40000000      /* xfer in progress */
  335 #define RNGCSR_ERR_KEY          0x00800000      /* key error */
  336 #define RNGCSR_ERR_BUS          0x00400000      /* pci bus error */
  337 #define RNGCSR_ERR_DUP          0x00200000      /* duplicate block generated */
  338 #define RNGCSR_ERR_ACCESS       0x00100000      /* access error */
  339 #define RNGCSR_INT_KEY          0x00080000      /* intr ena: key error */
  340 #define RNGCSR_INT_BUS          0x00040000      /* intr ena: pci error */
  341 #define RNGCSR_INT_DUP          0x00020000      /* intr ena: dup error */
  342 #define RNGCSR_INT_ACCESS       0x00010000      /* intr ena: access error */
  343 
  344 /* NOCT_RNG_Q_PTR */
  345 #define RNGQPTR_READ_M          0x00007fff      /* read mask */
  346 #define RNGQPTR_READ_S          0               /* read shift */
  347 #define RNGQPTR_WRITE_M         0x7fff0000      /* write mask */
  348 #define RNGQPTR_WRITE_S         16              /* write shift */
  349 
  350 #define EA_CMD_WORDS            32
  351 struct noct_ea_cmd {
  352         volatile u_int32_t      buf[EA_CMD_WORDS];
  353 };
  354 
  355 
  356 #define EA_0_CP                 0x80000000      /* context block */
  357 #define EA_0_SI                 0x40000000      /* set interrupt */
  358 #define EA_0_CTXIDX             0x0003ffff      /* context index */
  359 
  360 #define EA_1_OPCODE             0xff000000      /* opcode */
  361 #define EA_1_ITERCNT            0x000f0000      /* iteration count */
  362 #define EA_1_DATALEN            0x0000ffff      /* data length (bytes) */
  363 
  364 #define EA_OP_NOP               0x00000000      /* nop */
  365 #define EA_OP_WCTX              0x01000000      /* write context mem */
  366 #define EA_OP_RCTX              0x02000000      /* read context mem */
  367 #define EA_OP_3DESCBCE          0x03000000      /* 3DES, CBC, encrypt */
  368 #define EA_OP_3DESCBCD          0x04000000      /* 3DES, CBC, decrypt */
  369 #define EA_OP_ARC4              0x05000000      /* ARC4 transform */
  370 #define EA_OP_MD5               0x10000000      /* simple MD5 hash */
  371 #define EA_OP_MD5_APP           0x11000000      /* MD5 hash w/append */
  372 #define EA_OP_MD5_CMDIV         0x12000000      /* MD5 hash, IV from cmd */
  373 #define EA_OP_MD5_LSTIV         0x13000000      /* MD5 hash, IV from last */
  374 #define EA_OP_MD5_LSTCMD        0x14000000      /* MD5 hashlast;iv from cmd */
  375 #define EA_OP_MD5_LSTLST        0x15000000      /* MD5 hashlast;iv from last */
  376 #define EA_OP_MD5_KEYMAT        0x16000000      /* MD5 KEYMAT expansion */
  377 #define EA_OP_MD5_SKEYID        0x17000000      /* MD5 SKEYID expansion */
  378 #define EA_OP_MD5_IKEKEY        0x18000000      /* MD5 IKE KEYMAT */
  379 #define EA_OP_SHA1              0x20000000      /* simple SHA1 hash */
  380 #define EA_OP_SHA1_APP          0x21000000      /* SHA1 hash w/append */
  381 #define EA_OP_SHA1_CMDIV        0x22000000      /* SHA1 hash, IV from cmd */
  382 #define EA_OP_SHA1_LSTIV        0x23000000      /* SHA1 hash, IV from last */
  383 #define EA_OP_SHA1_LSTCMD       0x24000000      /* SHA1 hashlast;iv from cmd */
  384 #define EA_OP_SHA1_LSTLST       0x25000000      /* SHA1 hashlast;iv from lst */
  385 #define EA_OP_SHA1_KEYMAT       0x26000000      /* SHA1 KEYMAT expansion */
  386 #define EA_OP_SHA1_SKEYID       0x27000000      /* SHA1 SKEYID expansion */
  387 #define EA_OP_SHA1_IKEKEY       0x28000000      /* SHA1 IKE KEYMAT */
  388 #define EA_OP_MASTER_HASH       0x30000000      /* master secret hash */
  389 #define EA_OP_NULL_NULL         0x80000000      /* packet level null/null */
  390 #define EA_OP_SSL3_ARC4_MD5_E   0x81000000      /* ssl 3.0 arc4/md5 enc */
  391 #define EA_OP_SSL3_DES_MD5_E    0x82000000      /* ssl 3.0 des/md5 enc */
  392 #define EA_OP_SSL3_ARC4_SHA1_E  0x83000000      /* ssl 3.0 arc4/sha1 enc */
  393 #define EA_OP_SSL3_DES_SHA1_E   0x84000000      /* ssl 3.0 des/sha1 enc */
  394 #define EA_OP_SSL3_ARC4_MD5_D   0x91000000      /* ssl 3.0 arc4/md5 dec */
  395 #define EA_OP_SSL3_DES_MD5_D    0x92000000      /* ssl 3.0 des/md5 dec */
  396 #define EA_OP_SSL3_ARC4_SHA1_D  0x93000000      /* ssl 3.0 arc4/sha1 dec */
  397 #define EA_OP_SSL3_DES_SHA1_D   0x94000000      /* ssl 3.0 des/sha1 dec */
  398 #define EA_OP_TLS1_ARC4_MD5_E   0xa1000000      /* tls 1.0 arc4/md5 enc */
  399 #define EA_OP_TLS1_DES_MD5_E    0xa2000000      /* tls 1.0 des/md5 enc */
  400 #define EA_OP_TLS1_ARC4_SHA1_E  0xa3000000      /* tls 1.0 arc4/sha1 enc */
  401 #define EA_OP_TLS1_DES_SHA1_E   0xa4000000      /* tls 1.0 des/sha1 enc */
  402 #define EA_OP_TLS1_ARC4_MD5_D   0xb1000000      /* tls 1.0 arc4/md5 dec */
  403 #define EA_OP_TLS1_DES_MD5_D    0xb2000000      /* tls 1.0 des/md5 dec */
  404 #define EA_OP_TLS1_ARC4_SHA1_D  0xb3000000      /* tls 1.0 arc4/sha1 dec */
  405 #define EA_OP_TLS1_DES_SHA1_D   0xb4000000      /* tls 1.0 des/sha1 dec */
  406 #define EA_OP_IPS_DES_MD5_E     0xc1000000      /* ipsec des/md5 enc */
  407 #define EA_OP_IPS_DES_SHA1_E    0xc2000000      /* ipsec des/sha1 enc */
  408 #define EA_OP_IPS_DES_MD5_D     0xd1000000      /* ipsec des/md5 dec */
  409 #define EA_OP_IPS_DES_SHA1_D    0xd2000000      /* ipsec des/sha1 dec */

/* [<][>][^][v][top][bottom][index][help] */