[BACK]Return to if_xereg.h CVS log [TXT][DIR] Up to [local] / sys / dev / pcmcia

Annotation of sys/dev/pcmcia/if_xereg.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: if_xereg.h,v 1.4 2003/10/22 09:58:46 jmc Exp $        */
        !             2:
        !             3: /*
        !             4:  * Copyright (c) 1999 Niklas Hallqvist, C Stone, Job de Haas
        !             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. All advertising materials mentioning features or use of this software
        !            16:  *    must display the following acknowledgement:
        !            17:  *      This product includes software developed by Niklas Hallqvist,
        !            18:  *     C Stone and Job de Haas.
        !            19:  * 4. The name of the author may not be used to endorse or promote products
        !            20:  *    derived from this software without specific prior written permission
        !            21:  *
        !            22:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
        !            23:  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
        !            24:  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
        !            25:  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
        !            26:  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
        !            27:  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        !            28:  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        !            29:  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        !            30:  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
        !            31:  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        !            32:  */
        !            33:
        !            34: /* Additional Card Configuration Registers on Dingo */
        !            35:
        !            36: #define PCMCIA_CCR_DCOR0               0x20
        !            37: #define PCMCIA_CCR_DCOR0_MRST_SFRST            0x80
        !            38: #define PCMCIA_CCR_DCOR0_MRST_SFPWDN           0x40
        !            39: #define PCMCIA_CCR_DCOR0_LED3_SFRST            0x20
        !            40: #define PCMCIA_CCR_DCOR0_LED3_SFPWDN           0x10
        !            41: #define PCMCIA_CCR_DCOR0_BUS                   0x08
        !            42: #define PCMCIA_CCR_DCOR0_DECODE                        0x04
        !            43: #define PCMCIA_CCR_DCOR0_SFINT                 0x01
        !            44: #define PCMCIA_CCR_DCOR1               0x22
        !            45: #define PCMCIA_CCR_DCOR1_SFCSR_WAIT            0xC0
        !            46: #define PCMCIA_CCR_DCOR1_SHADOW_SFIOB          0x20
        !            47: #define PCMCIA_CCR_DCOR1_SHADOW_SFCSR          0x10
        !            48: #define PCMCIA_CCR_DCOR1_FORCE_LEVIREQ         0x08
        !            49: #define PCMCIA_CCR_DCOR1_D6                    0x04
        !            50: #define PCMCIA_CCR_DCOR1_SF_STSCHG             0x02
        !            51: #define PCMCIA_CCR_DCOR1_SF_IREQ               0x01
        !            52: #define PCMCIA_CCR_DCOR2               0x24
        !            53: #define PCMCIA_CCR_DCOR2_SHADOW_SFCOR          0x10
        !            54: #define PCMCIA_CCR_DCOR2_SMEM_BASE             0x0F
        !            55: #define PCMCIA_CCR_DCOR3               0x26
        !            56: #define PCMCIA_CCR_DCOR4               0x28
        !            57: #define PCMCIA_CCR_SFCOR               0x40
        !            58: #define PCMCIA_CCR_SFCOR_SRESET                        0x80
        !            59: #define PCMCIA_CCR_SFCOR_LEVIREQ               0x40
        !            60: #define PCMCIA_CCR_SFCOR_IRQ_STSCHG            0x20
        !            61: #define PCMCIA_CCR_SFCOR_CFINDEX               0x18
        !            62: #define PCMCIA_CCR_SFCOR_IREQ_ENABLE           0x04
        !            63: #define PCMCIA_CCR_SFCOR_ADDR_DECODE           0x02
        !            64: #define PCMCIA_CCR_SFCOR_FUNC_ENABLE           0x01
        !            65: #define PCMCIA_CCR_SFCSR               0x42
        !            66: #define PCMCIA_CCR_SFCSR_IOIS8                 0x20
        !            67: #define PCMCIA_CCR_SFCSR_AUDIO                 0x08
        !            68: #define PCMCIA_CCR_SFCSR_PWRDWN                        0x04
        !            69: #define PCMCIA_CCR_SFCSR_INTR                  0x02
        !            70: #define PCMCIA_CCR_SFCSR_INTRACK               0x01
        !            71: #define PCMCIA_CCR_SFIOBASE0           0x4A
        !            72: #define PCMCIA_CCR_SFIOBASE1           0x4C
        !            73: #define PCMCIA_CCR_SFILR               0x52
        !            74:
        !            75: #define PCMCIA_CCR_SIZE_DINGO          0x54
        !            76:
        !            77: /* All pages */
        !            78: #define CR     0x0     /* W  - Command register */
        !            79: #define ESR    0x0     /* R  - Ethernet status register */
        !            80: #define PR     0x1     /* RW - Page register select */
        !            81: #define EDP    0x4     /* RW - Ethernet data port, 4 registers */
        !            82: #define ISR0   0x6     /* R  - Ethernet interrupt status register */
        !            83: #define GIR    0x7     /* RW - Global interrupt register */
        !            84: #define PTR    0xd     /* R  - Packets Transmitted register */
        !            85:
        !            86: /* Page 0 */
        !            87: #define TSO0   0x8     /* R  - Transmit space open, 3 registers */
        !            88: #define TSO1   0x9
        !            89: #define TSO2   0xa
        !            90: #define DO0    0xc     /* W  - Data offset, 2 registers */
        !            91: #define DO1    0xd
        !            92: #define RSR    0xc     /* R  - Rx status register */
        !            93: #define TPR    0xd     /* R  - Tx packets register */
        !            94: #define RBC0   0xe     /* R  - Rx byte count, 2 registers */
        !            95: #define RBC1   0xf
        !            96:
        !            97: /* Page 1 */
        !            98: #define IMR0   0xc     /* RW - Interrupt mask, 2 registers */
        !            99: #define IMR1   0xd
        !           100: #define ECR    0xe     /* RW - Ethernet config register */
        !           101:
        !           102: /* Page 2 */
        !           103: #define RBS0   0x8     /* RW - Receive buffer start, 2 registers */
        !           104: #define RBS1   0x9
        !           105: #define LED    0xa     /* RW - LED control register */
        !           106: #define LED3   0xb     /* RW - LED3 control register */
        !           107: #define MSR    0xc     /* RW - Misc. setup register */
        !           108: #define GP2    0xd     /* RW - General purpose register 2 */
        !           109:
        !           110: /* Page 3 */
        !           111: #define TPT0   0xa     /* RW - Tx packet threshold, 2 registers */
        !           112: #define TPT1   0xb
        !           113:
        !           114: /* Page 4 */
        !           115: #define GP0    0x8     /* RW - General purpose register 0 */
        !           116: #define GP1    0x9     /* RW - General purpose register 1 */
        !           117: #define BV     0xa     /* R  - Bonding version register */
        !           118: #define EES    0xb     /* RW - EEPROM control register */
        !           119:
        !           120: /* Page 5 */
        !           121: #define RHSA0  0xa     /* RX host start address */
        !           122:
        !           123: /* Page 6 */
        !           124:
        !           125: /* Page 7 */
        !           126:
        !           127: /* Page 8 */
        !           128:
        !           129: /* Page 16 */
        !           130:
        !           131: /* Page 0x40 */
        !           132: #define CMD0   0x8     /* W  - Receive status register */
        !           133: #define RXST0  0x9     /* RW - Receive status register */
        !           134: #define TXST0  0xb     /* RW - Transmit status, 2 registers */
        !           135: #define TXST1  0xc
        !           136: #define RX0MSK 0xd     /* RW - Receive status mask register */
        !           137: #define TX0MSK 0xe     /* RW - Transmit status mask, 2 registers */
        !           138: #define TX1MSK 0xf     /* RW - Dingo does not define this register */
        !           139:
        !           140: /* Page 0x42 */
        !           141: #define SWC0   0x8     /* RW - Software configuration, 2 registers */
        !           142: #define SWC1   0x9
        !           143:
        !           144: /* Page 0x50-0x57 */
        !           145: #define        IA      0x8     /* RW - Individual address */
        !           146:
        !           147: /* CR register bits */
        !           148: #define TX_PKT         0x01    /* Transmit packet. */
        !           149: #define SOFT_RESET     0x02    /* Software reset. */
        !           150: #define ENABLE_INT     0x04    /* Enable interrupt. */
        !           151: #define FORCE_INT      0x08    /* Force interrupt. */
        !           152: #define CLR_TX_FIFO    0x10    /* Clear transmit FIFO. */
        !           153: #define CLR_RX_OVERRUN 0x20    /* Clear receive overrun. */
        !           154: #define RESTART_TX     0x40    /* Restart transmit process. */
        !           155:
        !           156: /* ESR register bits */
        !           157: #define FULL_PKT_RCV   0x01    /* Full packet received. */
        !           158: #define PKT_REJECTED   0x04    /* A packet was rejected. */
        !           159: #define TX_PKT_PEND    0x08    /* TX Packet Pending. */
        !           160: #define INCOR_POLARITY 0x10    /* XXX from linux driver, but not used there */
        !           161: #define MEDIA_SELECT   0x20    /* set if TP, clear if AUI */
        !           162:
        !           163: /* DO register bits */
        !           164: #define DO_OFF_MASK    0x1fff  /* Mask for offset value. */
        !           165: #define DO_CHG_OFFSET  0x2000  /* Change offset command. */
        !           166: #define DO_SHM_MODE    0x4000  /* Shared memory mode. */
        !           167: #define DO_SKIP_RX_PKT 0x8000  /* Skip Rx packet. */
        !           168:
        !           169: /* RBC register bits */
        !           170: #define RBC_COUNT_MASK 0x1fff  /* Mask for byte count. */
        !           171: #define RBC_RX_FULL    0x2000  /* Receive full packet. */
        !           172: #define RBC_RX_PARTIAL 0x4000  /* Receive partial packet. */
        !           173: #define RBC_RX_PKT_REJ 0x8000  /* Receive packet rejected. */
        !           174:
        !           175: /* ISR0(/IMR0) register bits */
        !           176: #define ISR_TX_OFLOW   0x01    /* Transmit buffer overflow. */
        !           177: #define ISR_PKT_TX     0x02    /* Packet transmitted. */
        !           178: #define ISR_MAC_INT    0x04    /* MAC interrupt. */
        !           179: #define ISR_RX_EARLY   0x10    /* Receive early packet. */
        !           180: #define ISR_RX_FULL    0x20    /* Receive full packet. */
        !           181: #define ISR_RX_PKT_REJ 0x40    /* Receive packet rejected. */
        !           182: #define ISR_FORCED_INT 0x80    /* Forced interrupt. */
        !           183:
        !           184: /* ECR register bits */
        !           185: #define ECR_EARLY_TX   0x01    /* Early transmit mode. */
        !           186: #define ECR_EARLY_RX   0x02    /* Early receive mode. */
        !           187: #define ECR_FULL_DUPLEX        0x04    /* Full duplex select. */
        !           188: #define ECR_LNK_PLS_DIS        0x20    /* Link pulse disable. */
        !           189: #define ECR_SW_COMPAT  0x80    /* Software compatibility switch. */
        !           190:
        !           191: /* GP0 register bits */
        !           192: #define GP1_WR         0x01    /* GP1 pin output value. */
        !           193: #define GP2_WR         0x02    /* GP2 pin output value. */
        !           194: #define GP1_OUT                0x04    /* GP1 pin output select. */
        !           195: #define GP2_OUT                0x08    /* GP2 pin output select. */
        !           196: #define GP1_RD         0x10    /* GP1 pin input value. */
        !           197: #define GP2_RD         0x20    /* GP2 pin input value. */
        !           198:
        !           199: /* GP1 register bits */
        !           200: #define POWER_UP       0x01    /* When 0, power down analogue part of chip. */
        !           201:
        !           202: /* LED register bits */
        !           203: #define LED0_SHIFT     0       /* LED0 Output shift & mask */
        !           204: #define LED0_MASK      0x7
        !           205: #define LED1_SHIFT     3       /* LED1 Output shift & mask */
        !           206: #define LED1_MASK      0x38
        !           207: #define LED0_RX_ENA    0x40    /* LED0 - receive enable */
        !           208: #define LED1_RX_ENA    0x80    /* LED1 - receive enable */
        !           209:
        !           210: /* LED3 register bits */
        !           211: #define LED3_SHIFT     0       /* LED0 output shift & mask */
        !           212: #define LED3_MASK      0x7
        !           213: #define LED3_RX_ENA    0x40    /* LED0 - receive enable */
        !           214:
        !           215: /* LED output values */
        !           216: #define LED_DISABLE    0       /* LED disabled */
        !           217: #define LED_COLL_ACT   1       /* Collision activity */
        !           218: #define LED_COLL_INACT 2       /* (NOT) Collision activity */
        !           219: #define LED_10MB_LINK  3       /* 10 Mb link detected */
        !           220: #define LED_100MB_LINK 4       /* 100 Mb link detected */
        !           221: #define LED_LINK       5       /* 10 Mb or 100 Mb link detected */
        !           222: #define LED_AUTO       6       /* Automatic assertion */
        !           223: #define LED_TX_ACT     7       /* Transmit activity */
        !           224:
        !           225: /* MSR register bits */
        !           226: #define SRAM_128K_EXT  0x01    /* 128K SRAM extension */
        !           227: #define RBS_BIT16      0x02    /* RBS bit 16 */
        !           228: #define SELECT_MII     0x08    /* Select MII */
        !           229: #define HASH_TBL_ENA   0x20    /* Hash table enable */
        !           230:
        !           231: /* GP2 register bits */
        !           232: #define GP3_WR         0x01    /* GP3 pin output value. */
        !           233: #define GP4_WR         0x02    /* GP4 pin output value. */
        !           234: #define GP3_OUT                0x04    /* GP3 pin output select. */
        !           235: #define GP4_OUT                0x08    /* GP4 pin output select. */
        !           236: #define GP3_RD         0x10    /* GP3 pin input value. */
        !           237: #define GP4_RD         0x20    /* GP4 pin input value. */
        !           238:
        !           239: /* RSR register bits */
        !           240: #define RSR_NOTMCAST   0x01    /* clear when multicast packet */
        !           241: #define RSR_BCAST      0x02    /* set when broadcast packet */
        !           242: #define RSR_TOO_LONG   0x04    /* set if packet is longer than 1518 octets */
        !           243: #define RSR_ALIGNERR   0x10    /* incorrect CRC and last octet not complete */
        !           244: #define RSR_CRCERR     0x20    /* incorrect CRC and last octet complete */
        !           245: #define RSR_RX_OK      0x80    /* packet received okay */
        !           246:
        !           247: /* CMD0 register bits */
        !           248: #define ONLINE         0x04    /* Online */
        !           249: #define OFFLINE                0x08    /* Online */
        !           250: #define ENABLE_RX      0x20    /* Enable receiver */
        !           251: #define DISABLE_RX     0x80    /* Disable receiver */
        !           252:
        !           253: /* RX0Msk register bits */
        !           254: #define PKT_TOO_LONG   0x02    /* Packet too long mask. */
        !           255: #define CRC_ERR                0x08    /* CRC error mask. */
        !           256: #define RX_OVERRUN     0x10    /* Receive overrun mask. */
        !           257: #define RX_ABORT       0x40    /* Receive abort mask. */
        !           258: #define RX_OK          0x80    /* Receive OK mask. */
        !           259:
        !           260: /* TX0Msk register bits */
        !           261: #define CARRIER_LOST   0x01    /* Carrier sense lost. */
        !           262: #define EXCESSIVE_COLL 0x02    /* Excessive collisions mask. */
        !           263: #define TX_UNDERRUN    0x08    /* Transmit underrun mask. */
        !           264: #define LATE_COLLISION 0x10    /* Late collision mask. */
        !           265: #define SQE            0x20    /* Signal quality error mask.. */
        !           266: #define TX_ABORT       0x40    /* Transmit abort mask. */
        !           267: #define TX_OK          0x80    /* Transmit OK mask. */
        !           268:
        !           269: /* SWC1 register bits */
        !           270: #define SWC1_IND_ADDR  0x01    /* Individual address enable. */
        !           271: #define SWC1_MCAST_PROM        0x02    /* Multicast promiscuous enable. */
        !           272: #define SWC1_PROMISC   0x04    /* Promiscuous mode enable. */
        !           273: #define SWC1_BCAST_DIS 0x08    /* Broadcast disable. */
        !           274: #define SWC1_MEDIA_SEL 0x40    /* Media select (Mohawk). */
        !           275: #define SWC1_AUTO_MEDIA        0x80    /* Automatic media select (Mohawk). */
        !           276:
        !           277: /* Misc. defines. */
        !           278:
        !           279: #define PAGE(sc, page) \
        !           280:     bus_space_write_1((sc->sc_bst), (sc->sc_bsh), (sc->sc_offset) + PR, (page))
        !           281:
        !           282: /*
        !           283:  * GP3 is connected to the MDC pin of the NS DP83840A PHY, GP4 is
        !           284:  * connected to the MDIO pin.  These are utility macros to enhance
        !           285:  * readability of the code.
        !           286:  */
        !           287: #define MDC_LOW                GP3_OUT
        !           288: #define MDC_HIGH       (GP3_OUT | GP3_WR)
        !           289: #define MDIO_LOW       GP4_OUT
        !           290: #define MDIO_HIGH      (GP4_OUT | GP4_WR)
        !           291: #define MDIO           GP4_RD
        !           292:
        !           293: /* Values found in MANFID. */
        !           294: #define XEMEDIA_ETHER          0x01
        !           295: #define XEMEDIA_TOKEN          0x02
        !           296: #define XEMEDIA_ARC            0x04
        !           297: #define XEMEDIA_WIRELESS       0x08
        !           298: #define XEMEDIA_MODEM          0x10
        !           299: #define XEMEDIA_GSM            0x20
        !           300:
        !           301: #define XEPROD_IDMASK          0x0f
        !           302: #define XEPROD_POCKET          0x10
        !           303: #define XEPROD_EXTERNAL                0x20
        !           304: #define XEPROD_CREDITCARD      0x40
        !           305: #define XEPROD_CARDBUS         0x80

CVSweb