15b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/*  Copyright, 1988-1992, Russell Nelson, Crynwr Software
25b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
35b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project   This program is free software; you can redistribute it and/or modify
45b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project   it under the terms of the GNU General Public License as published by
55b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project   the Free Software Foundation, version 1.
65b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
75b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project   This program is distributed in the hope that it will be useful,
85b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project   but WITHOUT ANY WARRANTY; without even the implied warranty of
95b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
105b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project   GNU General Public License for more details.
115b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
125b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project   You should have received a copy of the GNU General Public License
135b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project   along with this program; if not, write to the Free Software
145b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
155b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
165b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_ChipID 0x0000	/* offset   0h -> Corp -ID              */
175b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project				/* offset   2h -> Model/Product Number  */
185b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project				/* offset   3h -> Chip Revision Number  */
195b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
205b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_ISAIOB 0x0020	/*  IO base address */
215b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_CS8900_ISAINT 0x0022	/*  ISA interrupt select */
225b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_CS8920_ISAINT 0x0370	/*  ISA interrupt select */
235b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_CS8900_ISADMA 0x0024	/*  ISA Rec DMA channel */
245b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_CS8920_ISADMA 0x0374	/*  ISA Rec DMA channel */
255b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_ISASOF 0x0026	/*  ISA DMA offset */
265b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_DmaFrameCnt 0x0028	/*  ISA DMA Frame count */
275b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_DmaByteCnt 0x002A	/*  ISA DMA Byte count */
285b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_CS8900_ISAMemB 0x002C	/*  Memory base */
295b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_CS8920_ISAMemB 0x0348 /*  */
305b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
315b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_ISABootBase 0x0030	/*  Boot Prom base  */
325b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_ISABootMask 0x0034	/*  Boot Prom Mask */
335b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
345b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/* EEPROM data and command registers */
355b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_EECMD 0x0040		/*  NVR Interface Command register */
365b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_EEData 0x0042	/*  NVR Interface Data Register */
375b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_DebugReg 0x0044	/*  Debug Register */
385b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
395b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_RxCFG 0x0102		/*  Rx Bus config */
405b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_RxCTL 0x0104		/*  Receive Control Register */
415b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_TxCFG 0x0106		/*  Transmit Config Register */
425b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_TxCMD 0x0108		/*  Transmit Command Register */
435b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_BufCFG 0x010A	/*  Bus configuration Register */
445b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_LineCTL 0x0112	/*  Line Config Register */
455b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_SelfCTL 0x0114	/*  Self Command Register */
465b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_BusCTL 0x0116	/*  ISA bus control Register */
475b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_TestCTL 0x0118	/*  Test Register */
485b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_AutoNegCTL 0x011C	/*  Auto Negotiation Ctrl */
495b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
505b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_ISQ 0x0120		/*  Interrupt Status */
515b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_RxEvent 0x0124	/*  Rx Event Register */
525b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_TxEvent 0x0128	/*  Tx Event Register */
535b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_BufEvent 0x012C	/*  Bus Event Register */
545b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_RxMiss 0x0130	/*  Receive Miss Count */
555b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_TxCol 0x0132		/*  Transmit Collision Count */
565b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_LineST 0x0134	/*  Line State Register */
575b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_SelfST 0x0136	/*  Self State register */
585b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_BusST 0x0138		/*  Bus Status */
595b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_TDR 0x013C		/*  Time Domain Reflectometry */
605b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_AutoNegST 0x013E	/*  Auto Neg Status */
615b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_TxCommand 0x0144	/*  Tx Command */
625b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_TxLength 0x0146	/*  Tx Length */
635b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_LAF 0x0150		/*  Hash Table */
645b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_IA 0x0158		/*  Physical Address Register */
655b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
665b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_RxStatus 0x0400	/*  Receive start of frame */
675b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_RxLength 0x0402	/*  Receive Length of frame */
685b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_RxFrame 0x0404	/*  Receive frame pointer */
695b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PP_TxFrame 0x0A00	/*  Transmit frame pointer */
705b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
715b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/*  Primary I/O Base Address. If no I/O base is supplied by the user, then this */
725b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/*  can be used as the default I/O base to access the PacketPage Area. */
735b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define DEFAULTIOBASE 0x0300
745b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define FIRST_IO 0x020C		/*  First I/O port to check */
755b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define LAST_IO 0x037C		/*  Last I/O port to check (+10h) */
765b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define ADD_MASK 0x3000		/*  Mask it use of the ADD_PORT register */
775b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define ADD_SIG 0x3000		/*  Expected ID signature */
785b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
795b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define CHIP_EISA_ID_SIG 0x630E   /*  Product ID Code for Crystal Chip (CS8900 spec 4.3) */
805b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
815b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#ifdef	IBMEIPKT
825b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define EISA_ID_SIG 0x4D24	/*  IBM */
835b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PART_NO_SIG 0x1010	/*  IBM */
845b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define MONGOOSE_BIT 0x0000	/*  IBM */
855b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#else
865b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define EISA_ID_SIG 0x630E	/*  PnP Vendor ID (same as chip id for Crystal board) */
875b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PART_NO_SIG 0x4000	/*  ID code CS8920 board (PnP Vendor Product code) */
885b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define MONGOOSE_BIT 0x2000	/*  PART_NO_SIG + MONGOOSE_BUT => ID of mongoose */
895b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#endif
905b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
915b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PRODUCT_ID_ADD 0x0002   /*  Address of product ID */
925b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
935b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/*  Mask to find out the types of  registers */
945b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define REG_TYPE_MASK 0x001F
955b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
965b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/*  Eeprom Commands */
975b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define ERSE_WR_ENBL 0x00F0
985b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define ERSE_WR_DISABLE 0x0000
995b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
1005b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/*  Defines Control/Config register quintuplet numbers */
1015b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_BUF_CFG 0x0003
1025b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_CONTROL 0x0005
1035b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_CFG 0x0007
1045b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_COMMAND 0x0009
1055b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define BUF_CFG 0x000B
1065b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define LINE_CONTROL 0x0013
1075b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define SELF_CONTROL 0x0015
1085b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define BUS_CONTROL 0x0017
1095b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TEST_CONTROL 0x0019
1105b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
1115b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/*  Defines Status/Count registers quintuplet numbers */
1125b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_EVENT 0x0004
1135b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_EVENT 0x0008
1145b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define BUF_EVENT 0x000C
1155b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_MISS_COUNT 0x0010
1165b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_COL_COUNT 0x0012
1175b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define LINE_STATUS 0x0014
1185b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define SELF_STATUS 0x0016
1195b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define BUS_STATUS 0x0018
1205b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TDR 0x001C
1215b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
1225b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/* PP_RxCFG - Receive  Configuration and Interrupt Mask bit definition -  Read/write */
1235b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define SKIP_1 0x0040
1245b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_STREAM_ENBL 0x0080
1255b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_OK_ENBL 0x0100
1265b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_DMA_ONLY 0x0200
1275b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define AUTO_RX_DMA 0x0400
1285b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define BUFFER_CRC 0x0800
1295b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_CRC_ERROR_ENBL 0x1000
1305b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_RUNT_ENBL 0x2000
1315b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_EXTRA_DATA_ENBL 0x4000
1325b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
1335b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/* PP_RxCTL - Receive Control bit definition - Read/write */
1345b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_IA_HASH_ACCEPT 0x0040
1355b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_PROM_ACCEPT 0x0080
1365b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_OK_ACCEPT 0x0100
1375b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_MULTCAST_ACCEPT 0x0200
1385b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_IA_ACCEPT 0x0400
1395b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_BROADCAST_ACCEPT 0x0800
1405b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_BAD_CRC_ACCEPT 0x1000
1415b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_RUNT_ACCEPT 0x2000
1425b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_EXTRA_DATA_ACCEPT 0x4000
1435b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_ALL_ACCEPT (RX_PROM_ACCEPT|RX_BAD_CRC_ACCEPT|RX_RUNT_ACCEPT|RX_EXTRA_DATA_ACCEPT)
1445b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/*  Default receive mode - individually addressed, broadcast, and error free */
1455b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define DEF_RX_ACCEPT (RX_IA_ACCEPT | RX_BROADCAST_ACCEPT | RX_OK_ACCEPT)
1465b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
1475b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/* PP_TxCFG - Transmit Configuration Interrupt Mask bit definition - Read/write */
1485b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_LOST_CRS_ENBL 0x0040
1495b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_SQE_ERROR_ENBL 0x0080
1505b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_OK_ENBL 0x0100
1515b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_LATE_COL_ENBL 0x0200
1525b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_JBR_ENBL 0x0400
1535b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_ANY_COL_ENBL 0x0800
1545b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_16_COL_ENBL 0x8000
1555b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
1565b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/* PP_TxCMD - Transmit Command bit definition - Read-only */
1575b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_START_4_BYTES 0x0000
1585b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_START_64_BYTES 0x0040
1595b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_START_128_BYTES 0x0080
1605b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_START_ALL_BYTES 0x00C0
1615b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_FORCE 0x0100
1625b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_ONE_COL 0x0200
1635b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_TWO_PART_DEFF_DISABLE 0x0400
1645b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_NO_CRC 0x1000
1655b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_RUNT 0x2000
1665b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
1675b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/* PP_BufCFG - Buffer Configuration Interrupt Mask bit definition - Read/write */
1685b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define GENERATE_SW_INTERRUPT 0x0040
1695b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_DMA_ENBL 0x0080
1705b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define READY_FOR_TX_ENBL 0x0100
1715b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_UNDERRUN_ENBL 0x0200
1725b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_MISS_ENBL 0x0400
1735b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_128_BYTE_ENBL 0x0800
1745b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_COL_COUNT_OVRFLOW_ENBL 0x1000
1755b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_MISS_COUNT_OVRFLOW_ENBL 0x2000
1765b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_DEST_MATCH_ENBL 0x8000
1775b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
1785b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/* PP_LineCTL - Line Control bit definition - Read/write */
1795b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define SERIAL_RX_ON 0x0040
1805b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define SERIAL_TX_ON 0x0080
1815b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define AUI_ONLY 0x0100
1825b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define AUTO_AUI_10BASET 0x0200
1835b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define MODIFIED_BACKOFF 0x0800
1845b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define NO_AUTO_POLARITY 0x1000
1855b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TWO_PART_DEFDIS 0x2000
1865b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define LOW_RX_SQUELCH 0x4000
1875b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
1885b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/* PP_SelfCTL - Software Self Control bit definition - Read/write */
1895b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define POWER_ON_RESET 0x0040
1905b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define SW_STOP 0x0100
1915b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define SLEEP_ON 0x0200
1925b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define AUTO_WAKEUP 0x0400
1935b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define HCB0_ENBL 0x1000
1945b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define HCB1_ENBL 0x2000
1955b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define HCB0 0x4000
1965b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define HCB1 0x8000
1975b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
1985b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/* PP_BusCTL - ISA Bus Control bit definition - Read/write */
1995b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RESET_RX_DMA 0x0040
2005b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define MEMORY_ON 0x0400
2015b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define DMA_BURST_MODE 0x0800
2025b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define IO_CHANNEL_READY_ON 0x1000
2035b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_DMA_SIZE_64K 0x2000
2045b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define ENABLE_IRQ 0x8000
2055b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
2065b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/* PP_TestCTL - Test Control bit definition - Read/write */
2075b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define LINK_OFF 0x0080
2085b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define ENDEC_LOOPBACK 0x0200
2095b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define AUI_LOOPBACK 0x0400
2105b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define BACKOFF_OFF 0x0800
2115b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define FAST_TEST 0x8000
2125b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
2135b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/* PP_RxEvent - Receive Event Bit definition - Read-only */
2145b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_IA_HASHED 0x0040
2155b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_DRIBBLE 0x0080
2165b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_OK 0x0100
2175b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_HASHED 0x0200
2185b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_IA 0x0400
2195b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_BROADCAST 0x0800
2205b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_CRC_ERROR 0x1000
2215b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_RUNT 0x2000
2225b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_EXTRA_DATA 0x4000
2235b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
2245b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define HASH_INDEX_MASK 0x0FC00
2255b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
2265b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/* PP_TxEvent - Transmit Event Bit definition - Read-only */
2275b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_LOST_CRS 0x0040
2285b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_SQE_ERROR 0x0080
2295b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_OK 0x0100
2305b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_LATE_COL 0x0200
2315b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_JBR 0x0400
2325b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_16_COL 0x8000
2335b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_SEND_OK_BITS (TX_OK|TX_LOST_CRS)
2345b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_COL_COUNT_MASK 0x7800
2355b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
2365b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/* PP_BufEvent - Buffer Event Bit definition - Read-only */
2375b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define SW_INTERRUPT 0x0040
2385b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_DMA 0x0080
2395b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define READY_FOR_TX 0x0100
2405b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_UNDERRUN 0x0200
2415b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_MISS 0x0400
2425b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_128_BYTE 0x0800
2435b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_COL_OVRFLW 0x1000
2445b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_MISS_OVRFLW 0x2000
2455b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_DEST_MATCH 0x8000
2465b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
2475b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/* PP_LineST - Ethernet Line Status bit definition - Read-only */
2485b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define LINK_OK 0x0080
2495b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define AUI_ON 0x0100
2505b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TENBASET_ON 0x0200
2515b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define POLARITY_OK 0x1000
2525b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define CRS_OK 0x4000
2535b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
2545b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/* PP_SelfST - Chip Software Status bit definition */
2555b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define ACTIVE_33V 0x0040
2565b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define INIT_DONE 0x0080
2575b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define SI_BUSY 0x0100
2585b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define EEPROM_PRESENT 0x0200
2595b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define EEPROM_OK 0x0400
2605b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define EL_PRESENT 0x0800
2615b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define EE_SIZE_64 0x1000
2625b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
2635b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/* PP_BusST - ISA Bus Status bit definition */
2645b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_BID_ERROR 0x0080
2655b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define READY_FOR_TX_NOW 0x0100
2665b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
2675b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/* PP_AutoNegCTL - Auto Negotiation Control bit definition */
2685b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RE_NEG_NOW 0x0040
2695b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define ALLOW_FDX 0x0080
2705b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define AUTO_NEG_ENABLE 0x0100
2715b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define NLP_ENABLE 0x0200
2725b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define FORCE_FDX 0x8000
2735b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define AUTO_NEG_BITS (FORCE_FDX|NLP_ENABLE|AUTO_NEG_ENABLE)
2745b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define AUTO_NEG_MASK (FORCE_FDX|NLP_ENABLE|AUTO_NEG_ENABLE|ALLOW_FDX|RE_NEG_NOW)
2755b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
2765b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/* PP_AutoNegST - Auto Negotiation Status bit definition */
2775b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define AUTO_NEG_BUSY 0x0080
2785b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define FLP_LINK 0x0100
2795b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define FLP_LINK_GOOD 0x0800
2805b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define LINK_FAULT 0x1000
2815b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define HDX_ACTIVE 0x4000
2825b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define FDX_ACTIVE 0x8000
2835b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
2845b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/*  The following block defines the ISQ event types */
2855b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define ISQ_RECEIVER_EVENT 0x04
2865b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define ISQ_TRANSMITTER_EVENT 0x08
2875b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define ISQ_BUFFER_EVENT 0x0c
2885b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define ISQ_RX_MISS_EVENT 0x10
2895b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define ISQ_TX_COL_EVENT 0x12
2905b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
2915b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define ISQ_EVENT_MASK 0x003F   /*  ISQ mask to find out type of event */
2925b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define ISQ_HIST 16		/*  small history buffer */
2935b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define AUTOINCREMENT 0x8000	/*  Bit mask to set bit-15 for autoincrement */
2945b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
2955b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TXRXBUFSIZE 0x0600
2965b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RXDMABUFSIZE 0x8000
2975b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RXDMASIZE 0x4000
2985b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TXRX_LENGTH_MASK 0x07FF
2995b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
3005b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/*  rx options bits */
3015b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RCV_WITH_RXON	1       /*  Set SerRx ON */
3025b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RCV_COUNTS	2       /*  Use Framecnt1 */
3035b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RCV_PONG	4       /*  Pong respondent */
3045b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RCV_DONG	8       /*  Dong operation */
3055b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RCV_POLLING	0x10	/*  Poll RxEvent */
3065b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RCV_ISQ		0x20	/*  Use ISQ, int */
3075b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RCV_AUTO_DMA	0x100	/*  Set AutoRxDMAE */
3085b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RCV_DMA		0x200	/*  Set RxDMA only */
3095b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RCV_DMA_ALL	0x400	/*  Copy all DMA'ed */
3105b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RCV_FIXED_DATA	0x800	/*  Every frame same */
3115b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RCV_IO		0x1000	/*  Use ISA IO only */
3125b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RCV_MEMORY	0x2000	/*  Use ISA Memory */
3135b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
3145b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RAM_SIZE	0x1000       /*  The card has 4k bytes or RAM */
3155b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PKT_START PP_TxFrame  /*  Start of packet RAM */
3165b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
3175b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RX_FRAME_PORT	0x0000
3185b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_FRAME_PORT RX_FRAME_PORT
3195b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_CMD_PORT	0x0004
3205b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_NOW		0x0000       /*  Tx packet after   5 bytes copied */
3215b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_AFTER_381	0x0020       /*  Tx packet after 381 bytes copied */
3225b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_AFTER_ALL	0x0060       /*  Tx packet after all bytes copied */
3235b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_LEN_PORT	0x0006
3245b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define ISQ_PORT	0x0008
3255b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define ADD_PORT	0x000A
3265b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define DATA_PORT	0x000C
3275b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
3285b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define EEPROM_WRITE_EN		0x00F0
3295b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define EEPROM_WRITE_DIS	0x0000
3305b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define EEPROM_WRITE_CMD	0x0100
3315b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define EEPROM_READ_CMD		0x0200
3325b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
3335b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/*  Receive Header */
3345b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/*  Description of header of each packet in receive area of memory */
3355b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RBUF_EVENT_LOW	0   /*  Low byte of RxEvent - status of received frame */
3365b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RBUF_EVENT_HIGH	1   /*  High byte of RxEvent - status of received frame */
3375b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RBUF_LEN_LOW	2   /*  Length of received data - low byte */
3385b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RBUF_LEN_HI	3   /*  Length of received data - high byte */
3395b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define RBUF_HEAD_LEN	4   /*  Length of this header */
3405b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
3415b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define CHIP_READ 0x1   /*  Used to mark state of the repins code (chip or dma) */
3425b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define DMA_READ 0x2   /*  Used to mark state of the repins code (chip or dma) */
3435b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
3445b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/*  for bios scan */
3455b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/*  */
3465b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#ifdef	CSDEBUG
3475b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/*  use these values for debugging bios scan */
3485b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define BIOS_START_SEG 0x00000
3495b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define BIOS_OFFSET_INC 0x0010
3505b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#else
3515b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define BIOS_START_SEG 0x0c000
3525b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define BIOS_OFFSET_INC 0x0200
3535b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#endif
3545b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
3555b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define BIOS_LAST_OFFSET 0x0fc00
3565b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
3575b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/*  Byte offsets into the EEPROM configuration buffer */
3585b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define ISA_CNF_OFFSET 0x6
3595b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define TX_CTL_OFFSET (ISA_CNF_OFFSET + 8)			/*  8900 eeprom */
3605b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define AUTO_NEG_CNF_OFFSET (ISA_CNF_OFFSET + 8)		/*  8920 eeprom */
3615b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
3625b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project  /*  the assumption here is that the bits in the eeprom are generally  */
3635b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project  /*  in the same position as those in the autonegctl register. */
3645b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project  /*  Of course the IMM bit is not in that register so it must be  */
3655b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project  /*  masked out */
3665b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define EE_FORCE_FDX  0x8000
3675b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define EE_NLP_ENABLE 0x0200
3685b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define EE_AUTO_NEG_ENABLE 0x0100
3695b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define EE_ALLOW_FDX 0x0080
3705b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define EE_AUTO_NEG_CNF_MASK (EE_FORCE_FDX|EE_NLP_ENABLE|EE_AUTO_NEG_ENABLE|EE_ALLOW_FDX)
3715b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
3725b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define IMM_BIT 0x0040		/*  ignore missing media */
3735b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
3745b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define ADAPTER_CNF_OFFSET (AUTO_NEG_CNF_OFFSET + 2)
3755b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define A_CNF_10B_T 0x0001
3765b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define A_CNF_AUI 0x0002
3775b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define A_CNF_10B_2 0x0004
3785b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define A_CNF_MEDIA_TYPE 0x0060
3795b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define A_CNF_MEDIA_AUTO 0x0000
3805b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define A_CNF_MEDIA_10B_T 0x0020
3815b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define A_CNF_MEDIA_AUI 0x0040
3825b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define A_CNF_MEDIA_10B_2 0x0060
3835b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define A_CNF_DC_DC_POLARITY 0x0080
3845b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define A_CNF_NO_AUTO_POLARITY 0x2000
3855b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define A_CNF_LOW_RX_SQUELCH 0x4000
3865b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define A_CNF_EXTND_10B_2 0x8000
3875b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
3885b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PACKET_PAGE_OFFSET 0x8
3895b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
3905b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/*  Bit definitions for the ISA configuration word from the EEPROM */
3915b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define INT_NO_MASK 0x000F
3925b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define DMA_NO_MASK 0x0070
3935b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define ISA_DMA_SIZE 0x0200
3945b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define ISA_AUTO_RxDMA 0x0400
3955b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define ISA_RxDMA 0x0800
3965b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define DMA_BURST 0x1000
3975b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define STREAM_TRANSFER 0x2000
3985b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define ANY_ISA_DMA (ISA_AUTO_RxDMA | ISA_RxDMA)
3995b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
4005b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/*  DMA controller registers */
4015b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define DMA_BASE 0x00     /*  DMA controller base */
4025b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define DMA_BASE_2 0x0C0    /*  DMA controller base */
4035b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
4045b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define DMA_STAT 0x0D0    /*  DMA controller status register */
4055b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define DMA_MASK 0x0D4    /*  DMA controller mask register */
4065b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define DMA_MODE 0x0D6    /*  DMA controller mode register */
4075b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define DMA_RESETFF 0x0D8    /*  DMA controller first/last flip flop */
4085b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
4095b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/*  DMA data */
4105b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define DMA_DISABLE 0x04     /*  Disable channel n */
4115b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define DMA_ENABLE 0x00     /*  Enable channel n */
4125b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/*  Demand transfers, incr. address, auto init, writes, ch. n */
4135b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define DMA_RX_MODE 0x14
4145b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/*  Demand transfers, incr. address, auto init, reads, ch. n */
4155b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define DMA_TX_MODE 0x18
4165b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
4175b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define DMA_SIZE (16*1024) /*  Size of dma buffer - 16k */
4185b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
4195b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define CS8900 0x0000
4205b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define CS8920 0x4000
4215b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define CS8920M 0x6000
4225b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define REVISON_BITS 0x1F00
4235b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define EEVER_NUMBER 0x12
4245b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define CHKSUM_LEN 0x14
4255b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define CHKSUM_VAL 0x0000
4265b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define START_EEPROM_DATA 0x001c /*  Offset into eeprom for start of data */
4275b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define IRQ_MAP_EEPROM_DATA 0x0046 /*  Offset into eeprom for the IRQ map */
4285b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define IRQ_MAP_LEN 0x0004 /*  No of bytes to read for the IRQ map */
4295b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PNP_IRQ_FRMT 0x0022 /*  PNP small item IRQ format */
4305b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define CS8900_IRQ_MAP 0x1c20 /*  This IRQ map is fixed */
4315b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
4325b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define CS8920_NO_INTS 0x0F   /*  Max CS8920 interrupt select # */
4335b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
4345b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PNP_ADD_PORT 0x0279
4355b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PNP_WRITE_PORT 0x0A79
4365b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
4375b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define GET_PNP_ISA_STRUCT 0x40
4385b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PNP_ISA_STRUCT_LEN 0x06
4395b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PNP_CSN_CNT_OFF 0x01
4405b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PNP_RD_PORT_OFF 0x02
4415b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PNP_FUNCTION_OK 0x00
4425b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PNP_WAKE 0x03
4435b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PNP_RSRC_DATA 0x04
4445b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PNP_RSRC_READY 0x01
4455b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PNP_STATUS 0x05
4465b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PNP_ACTIVATE 0x30
4475b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PNP_CNF_IO_H 0x60
4485b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PNP_CNF_IO_L 0x61
4495b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PNP_CNF_INT 0x70
4505b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PNP_CNF_DMA 0x74
4515b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define PNP_CNF_MEM 0x48
4525b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
4535b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define BIT0 1
4545b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define BIT15 0x8000
4555b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
4565b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/*
4575b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project * Local variables:
4585b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project *  c-basic-offset: 8
4595b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project * End:
4605b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project */
4615b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project
462