The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/ic/i82596reg.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /* $NetBSD: i82596reg.h,v 1.1 2004/03/12 11:37:17 jkunz Exp $ */
    2 
    3 /*
    4  * Copyright (c) 2003 Jochen Kunz.
    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  * 3. The name of Jochen Kunz may not be used to endorse or promote
   16  *    products derived from this software without specific prior
   17  *    written permission.
   18  *
   19  * THIS SOFTWARE IS PROVIDED BY JOCHEN KUNZ
   20  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
   21  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
   22  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL JOCHEN KUNZ
   23  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
   24  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
   25  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   26  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
   27  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   28  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   29  * POSSIBILITY OF SUCH DAMAGE.
   30  */
   31 
   32 /* All definitions are for a Intel 82596 DX/SX / CA in linear 32 bit mode. */
   33 
   34 #define IEE_SYSBUS_BE   0x80    /* == 1 32 bit pointers are big endian */
   35 #define IEE_SYSBUS_INT  0x20    /* == 1 interrupt pin is active low */
   36 #define IEE_SYSBUS_LOCK 0x10    /* == 1 lock funtion disabled */
   37 #define IEE_SYSBUS_TRG  0x08    /* == 1 external triggering of bus throtle */
   38 #define IEE_SYSBUS_M1   0x04    /* M1 == 0 && M0 == 0 82586 mode */
   39 #define IEE_SYSBUS_M0   0x02    /* M1 == 0 && M0 == 1 32 bit segmented mode */
   40                                 /* M1 == 1 && M0 == 0 linear mode */
   41                                 /* M1 == 1 && M0 == 1 reserved */
   42 #define IEE_SYSBUS_M    0x06    /* mode mask */
   43 #define IEE_SYSBUS_82586        0x00    /* 82586 mode */
   44 #define IEE_SYSBUS_32SEG        0x02    /* 32 bit segmented mode */
   45 #define IEE_SYSBUS_LIEAR        0x04    /* linear mode */
   46 #define IEE_SYSBUS_STD  0x40    /* must be 1 all times */
   47 
   48 #define IEE_PORT_RESET  0x0     /* PORT command reset */
   49 #define IEE_PORT_SEFTST 0x1     /* PORT command self test */
   50 #define IEE_PORT_SCP    0x2     /* PORT command set SCP */
   51 #define IEE_PORT_DUMP   0x3     /* PORT command dump aread pointer */
   52 
   53 /* System Control Block Command word.*/
   54 #define IEE_SCB_ACK_CX  0x8000  /* CU completed an Action */
   55 #define IEE_SCB_ACK_FR  0x4000  /* RU received a frame */
   56 #define IEE_SCB_ACK_CNA 0x2000  /* CU became not active */
   57 #define IEE_SCB_ACK_RNR 0x1000  /* RU became not active */
   58 #define IEE_SCB_ACK     0xf000  /* Acknowledge mask */
   59 
   60 #define IEE_SCB_CUC_NOP 0x0000  /* NOP, does not affect state of unit */
   61 #define IEE_SCB_CUC_EXE 0x0100  /* Start execution off CMD on CBL */
   62 #define IEE_SCB_CUC_RES 0x0200  /* Resume operat. of CU after suspend */
   63 #define IEE_SCB_CUC_SUS 0x0300  /* Suspend exec. of cmds on CBL */
   64 #define IEE_SCB_CUC_ABR 0x0400  /* Abort current command */
   65 #define IEE_SCB_CUC_BT  0x0500  /* Load Bus Throtle */
   66 #define IEE_SCB_CUC_BTI 0x0600  /* Load Bus Throtle immediately */
   67 #define IEE_SCB_CUC     0x0700  /* Command mask */
   68 
   69 #define IEE_SCB_RESET   0x0080  /* Reset the Chip */
   70 
   71 #define IEE_SCB_RUC_NOP 0x0000  /* NOP, does not affect state of unit */
   72 #define IEE_SCB_RUC_ST  0x0010  /* Start reception of frames */
   73 #define IEE_SCB_RUC_RES 0x0020  /* Resume operat. of RU after suspend */
   74 #define IEE_SCB_RUC_SUS 0x0030  /* Suspend frame reception */
   75 #define IEE_SCB_RUC_ABR 0x0040  /* Abort receiver operat. immediately */
   76 #define IEE_SCB_RUC     0x0070  /* Command mask */
   77 
   78 /* System Control Block Status word.*/
   79 #define IEE_SCB_STAT_CX 0x8000  /* CU finished cmd with int bit set */
   80 #define IEE_SCB_STAT_FR 0x4000  /* RU finished receiving a frame */
   81 #define IEE_SCB_STAT_CNA        0x2000  /* CU left active state */
   82 #define IEE_SCB_STAT_RNR        0x1000  /* RU left ready state */
   83 #define IEE_SCB_STAT            0xf000  /* Status mask */
   84 
   85 #define IEE_SCB_CUS_IDL 0x0000  /* Idle */
   86 #define IEE_SCB_CUS_SUS 0x0100  /* Suspend */
   87 #define IEE_SCB_CUS_ACT 0x0200  /* Active */
   88 #define IEE_SCB_CUS     0x0700  /* CU status bit mask */
   89 
   90 #define IEE_SCB_RUS_IDL 0x0000  /* Idle */
   91 #define IEE_SCB_RUS_SUS 0x0010  /* Suspend */
   92 #define IEE_SCB_RUS_NR1 0x0020  /* No Resources (RFDs and / or RBDs) */
   93 #define IEE_SCB_RUS_RDY 0x0040  /* Ready */
   94 #define IEE_SCB_RUS_NR2 0x00a0  /* No Resources (no RBDs) */
   95 #define IEE_SCB_RUS_NR3 0x00c0  /* No more RBDs */
   96 #define IEE_SCB_RUS     0x00f0  /* RU status bit mask */
   97 
   98 #define IEE_SCB_T       0x0008  /* Bus Throtle timers loaded */
   99 
  100 #define IEE_SCB_TON     0x0000ffff      /* Bus Throtle TON mask */
  101 #define IEE_SCB_TOFF    0xffff0000      /* Bus Throtle TOFF mask */
  102 
  103 /* Bits in the Command Block Command word. */
  104 #define IEE_CB_EL       0x8000  /* End of List, cmd is last on CBL */
  105 #define IEE_CB_S        0x4000  /* Suspend after exec of this CB */
  106 #define IEE_CB_I        0x2000  /* generate Interrupt after exec */
  107 #define IEE_CB_NC       0x0010  /* No CRC insertaton disable */
  108 #define IEE_CB_SF       0x0008  /* Flexible Mode, data in TCB and TBD */
  109 
  110 /* Bits in the Command Block Status word. */
  111 #define IEE_CB_C        0x8000  /* Command is executed */
  112 #define IEE_CB_B        0x4000  /* Command running or fetching CB */
  113 #define IEE_CB_OK       0x2000  /* Command finished without error */
  114 #define IEE_CB_A        0x1000  /* CU Abort control cmd was issued */
  115 #define IEE_CB_F        0x0800  /* self test faild */
  116 #define IEE_CB_EOF      0x8000  /* End Of Frame */
  117 #define IEE_CB_STAT     0xf800  /* Status bit mask */
  118 #define IEE_CB_COL      0x0020  /* TX stopped because of to much collisions */
  119 #define IEE_CB_MAXCOL   0x000f  /* Number of Collisions mask */
  120 /* Commands */
  121 #define IEE_CB_CMD_NOP  0x0000  /* NOP */
  122 #define IEE_CB_CMD_IAS  0x0001  /* Individual Address Setup */
  123 #define IEE_CB_CMD_CONF 0x0002  /* Configure */
  124 #define IEE_CB_CMD_MCS  0x0003  /* Multicast Setup */
  125 #define IEE_CB_CMD_TR   0x0004  /* Transmit */
  126 #define IEE_CB_CMD_TDR  0x0005  /* Time Domain Reflectometry */
  127 #define IEE_CB_CMD_DUMP 0x0006  /* Dump */
  128 #define IEE_CB_CMD_DIAG 0x0007  /* Diagnose */
  129 #define IEE_CB_CMD      0x0007  /* CMD bit mask */
  130 
  131 /* Receive Frame Descriptor bits */
  132 #define IEE_RFD_EL      0x8000  /* End of List, RFD is last on list */
  133 #define IEE_RFD_S       0x4000  /* Suspend after this RFD is filled */
  134 #define IEE_RFD_SF      0x0008  /* Flexible Mode, data in RFD and RBD */
  135 #define IEE_RFD_C       0x8000  /* Frame reception has completed */
  136 #define IEE_RFD_B       0x4000  /* i82596 is bussy on this RFD */
  137 #define IEE_RFD_OK      0x2000  /* Frame received without error */
  138 #define IEE_RFD_STAT    0x1fff  /* Status bits */
  139 #define IEE_RFD_STAT_LEN        0x1000  /* Lenghth error */
  140 #define IEE_RFD_STAT_CRC        0x0800  /* CRC error */
  141 #define IEE_RFD_STAT_ALIGN      0x0400  /* Alignment error */
  142 #define IEE_RFD_STAT_NORES      0x0200  /* Ran out of buffer space */
  143 #define IEE_RFD_STAT_DMA        0x0100  /* DMA Overrun */
  144 #define IEE_RFD_STAT_SHORT      0x0080  /* Frame to short */
  145 #define IEE_RFD_STAT_NOEOP      0x0040  /* No EOP Flag */
  146 #define IEE_RFD_STAT_TRUNC      0x0020  /* Frame was truncated */
  147 #define IEE_RFD_STAT_IA         0x0002  /* Frame doesn't match Individ. Addr. */
  148 #define IEE_RFD_STAT_COLL       0x0001  /* Receive Collision */
  149 #define IEE_RFD_EOF     0x8000          /* this is last buffer on list */
  150 #define IEE_RFD_F       0x4000          /* buffer has already been used */
  151 #define IEE_RFD_COUNT   0xc000          /* count mask */
  152 
  153 /* Receive Buffer Descriptor bits */
  154 #define IEE_RBD_EOF     0x8000          /* last buffer related to frame */
  155 #define IEE_RBD_F       0x4000          /* buffer has already been used */
  156 #define IEE_RBD_EL      0x8000          /* this is last buffer on list */
  157 #define IEE_RBD_P       0x4000          /* this buffer is already prefetched */
  158 #define IEE_RBD_COUNT   0x3fff          /* count mask */
  159 
  160 /* Bits in Configure Bytes */
  161 #define IEE_CF_0_CNT(x)         ((x) & 0x0f)    /* Count of CF Bytes */
  162 #define IEE_CF_0_CNT_DEF        0x0e    /* 14 Bytes is the default */
  163 #define IEE_CF_0_CNT_M          0x0f    /* Mask */
  164 #define IEE_CF_0_PREF           0x80    /* Write Prefetched bit */
  165 #define IEE_CF_0_DEF            0x0e    /* Configuration Byte 0 Default Value */
  166 
  167 #define IEE_CF_1_FIFO(x)        ((x) & 0x0f)    /* FIFO Limit */
  168 #define IEE_CF_1_FIFO_DEF       0x08    /* FIFO Default Value */
  169 #define IEE_CF_1_MON2           (((x) & 0x3) << 6)      /* Monitor Bits */
  170 #define IEE_CF_1_MON_DEF        0xc0    /* Monitor Bits Default */
  171 #define IEE_CF_1_DEF            0xc8    /* Configuration Byte 1 Default Value */
  172 
  173 #define IEE_CF_2_SAVBF          0x02    /* Save Bad frames */
  174 #define IEE_CF_2_RESUM          0x80    /* Resume next CB */
  175 #define IEE_CF_2_DEF            0x40    /* Configuration Byte 2 Default Value */
  176 #define IEE_CF_2_STD            0x40    /* Configuration Byte 2 Standard Val. */
  177 
  178 #define IEE_CF_3_ADDRLEN(x)     ((x) & 0x07)    /* Address Length */
  179 #define IEE_CF_3_ADDRLEN_DEF    0x06    /* Address Length Default */
  180 #define IEE_CF_3_NSAI           0x08    /* No Source Address Insertation */
  181 #define IEE_CF_3_ALLOC          0x08    /* == AL_LOC */
  182 #define IEE_CF_3_PREAMLEN(x)    (((x) & 0x3) << 4)      /* Preamble Length */
  183 #define IEE_CF_3_PREAMLEN_DEF   0x20    /*  */
  184 #define IEE_CF_3_LOOPBK(x)      (((x) & 0x3) << 6)      /* Loopback Mode */
  185 #define IEE_CF_3_LOOPBK_DEF     0x00    /*  */
  186 #define IEE_CF_3_DEF            0x26    /* Configuration Byte 3 Default Value */
  187 
  188 #define IEE_CF_4_LINPRIO(x)     ((x) & 0x07)    /* Linear Priority */
  189 #define IEE_CF_4_LINPRIO_DEF    0x00    /* Linear Priority */
  190 #define IEE_CF_4_EXPPRIO(x)     (((x) & 0x07) << 4)     /* Exponential Prio. */
  191 #define IEE_CF_4_EXPPRIO_DEF    0x00    /* Exponential Prio. */
  192 #define IEE_CF_4_BOFMETD        0x80    /* Exponential Backoff Method */
  193 #define IEE_CF_4_DEF            0x00    /* Configuration Byte 4 Default Value */
  194 
  195 #define IEE_CF_5_IFSP(x)        ((x) & 0xff)    /* Inter Frame Spacing */
  196 #define IEE_CF_5_IFSP_DEF       0x60    /*  */
  197 #define IEE_CF_5_DEF            0x60    /* Configuration Byte 5 Default Value */
  198 
  199 #define IEE_CF_6_SLOT_TL(x)     ((x) & 0xff)    /* Slot Time Low */
  200 #define IEE_CF_6_SLOT_TL_DEF    0x00    /*  */
  201 #define IEE_CF_6_DEF            0x00    /* Configuration Byte 6 Default Value */
  202 
  203 #define IEE_CF_7_SLOT_TH(x)     ((x) & 0x0f)    /* Slot Time High */
  204 #define IEE_CF_7_SLOT_TH_DEF    0x02    /*  */
  205 #define IEE_CF_7_RETR(x)        (((x) & 0x0f) << 4)     /* Num Retrans Retry */
  206 #define IEE_CF_7_RETR_DEF       0xf0    /*  */
  207 #define IEE_CF_7_DEF            0xf2    /* Configuration Byte 7 Default Value */
  208 
  209 #define IEE_CF_8_PRM            0x01    /* Promiscuous Mode */
  210 #define IEE_CF_8_BCDIS          0x02    /* Bradcast Disable */
  211 #define IEE_CF_8_MANCH          0x04    /* Manchester encoding */
  212 #define IEE_CF_8_TONO           0x08    /* Transmit on no CRS */
  213 #define IEE_CF_8_NOCRCINS       0x10    /* No CRC Insertion */
  214 #define IEE_CF_8_CRC16          0x20    /* CRC16 */
  215 #define IEE_CF_8_BITSTF         0x40    /* Bit Stuffing */
  216 #define IEE_CF_8_PAD            0x80    /* Padding */
  217 #define IEE_CF_8_DEF            0x00    /* Configuration Byte 8 Default Value */
  218 
  219 #define IEE_CF_9_CRSF(x)        ((x) & 0x07)    /* Carrier Sense Filter Len */
  220 #define IEE_CF_9_CRSF_DEF       0x00    /*  */
  221 #define IEE_CF_9_CRSSRC         0x08    /* Carrier Sense Source */
  222 #define IEE_CF_9_CDTF(x)        (((x) & 0x07) << 4)/* Carrier Detect Filt Len */
  223 #define IEE_CF_9_CDTF_DEF       0x00    /*  */
  224 #define IEE_CF_9_CDTSRC         0x80    /* Carrier Detect Source */
  225 #define IEE_CF_9_DEF            0x00    /* Configuration Byte 9 Default Value */
  226 
  227 #define IEE_CF_10_MINFRMLEN(x)  ((x) & 0xff)    /* Minimum Frame Length */
  228 #define IEE_CF_10_DEF           0x40    /* Configuration Byte 10 Default Val. */
  229 
  230 #define IEE_CF_11_PRECRS        0x01    /* Preamble until Carrier Sense */
  231 #define IEE_CF_11_LNGFLD        0x02    /* Length field. Enable padding */
  232 #define IEE_CF_11_CRCINM        0x04    /* Rx CRC appended to the frame in MEM*/
  233 #define IEE_CF_11_AUTOTX        0x08    /* Auto Retransmit when Coll in Preamb*/
  234 #define IEE_CF_11_CDBSAC        0x10    /* Coll Detect by source Addr Recogn */
  235 #define IEE_CF_11_MCALL         0x20    /* Enable to receive all MC Frames */
  236 #define IEE_CF_11_MON(x)        (((x) & 0x03) << 6) /* Receive Monitor Bits */
  237 #define IEE_CF_11_MON_DEF       0xc0    /*  */
  238 #define IEE_CF_11_DEF           0xff    /* Configuration Byte 11 Default Val. */
  239 
  240 #define IEE_CF_12_FDX           0x40    /* Enable Full Duplex */
  241 #define IEE_CF_12_DEF           0x00    /* Configuration Byte 12 Default Val. */
  242 
  243 #define IEE_CF_13_MULTIA        0x40    /* Multiple Individual Address */
  244 #define IEE_CF_13_DISBOF        0x80    /* Disable the Backoff Algorithm */
  245 #define IEE_CF_13_DEF           0x3f    /* Configuration Byte 13 Default Val. */
  246 

Cache object: ee3a9bbe0f4b046fc02b3defe8cf4b16


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.