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