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