/* Copyright, 1988-1992, Russell Nelson, Crynwr Software
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 1.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* Primary I/O Base Address. If no I/O base is supplied by the user, then this */ /* can be used as the default I/O base to access the PacketPage Area. */ #define DEFAULTIOBASE 0x0300 #define FIRST_IO 0x020C /* First I/O port to check */ #define LAST_IO 0x037C /* Last I/O port to check (+10h) */ #define ADD_MASK 0x3000 /* Mask it use of the ADD_PORT register */ #define ADD_SIG 0x3000 /* Expected ID signature */
/* On Macs, we only need use the ISA I/O stuff until we do MEMORY_ON */ #ifdef CONFIG_MAC #define LCSLOTBASE 0xfee00000 #define MMIOBASE 0x40000 #endif
#define CHIP_EISA_ID_SIG 0x630E /* Product ID Code for Crystal Chip (CS8900 spec 4.3) */ #define CHIP_EISA_ID_SIG_STR "0x630E"
#ifdef IBMEIPKT #define EISA_ID_SIG 0x4D24 /* IBM */ #define PART_NO_SIG 0x1010 /* IBM */ #define MONGOOSE_BIT 0x0000 /* IBM */ #else #define EISA_ID_SIG 0x630E /* PnP Vendor ID (same as chip id for Crystal board) */ #define PART_NO_SIG 0x4000 /* ID code CS8920 board (PnP Vendor Product code) */ #define MONGOOSE_BIT 0x2000 /* PART_NO_SIG + MONGOOSE_BUT => ID of mongoose */ #endif
#define PRODUCT_ID_ADD 0x0002 /* Address of product ID */
/* Mask to find out the types of registers */ #define REG_TYPE_MASK 0x001F
/* PP_BusST - ISA Bus Status bit definition */ #define TX_BID_ERROR 0x0080 #define READY_FOR_TX_NOW 0x0100
/* PP_AutoNegCTL - Auto Negotiation Control bit definition */ #define RE_NEG_NOW 0x0040 #define ALLOW_FDX 0x0080 #define AUTO_NEG_ENABLE 0x0100 #define NLP_ENABLE 0x0200 #define FORCE_FDX 0x8000 #define AUTO_NEG_BITS (FORCE_FDX|NLP_ENABLE|AUTO_NEG_ENABLE) #define AUTO_NEG_MASK (FORCE_FDX|NLP_ENABLE|AUTO_NEG_ENABLE|ALLOW_FDX|RE_NEG_NOW)
/* PP_AutoNegST - Auto Negotiation Status bit definition */ #define AUTO_NEG_BUSY 0x0080 #define FLP_LINK 0x0100 #define FLP_LINK_GOOD 0x0800 #define LINK_FAULT 0x1000 #define HDX_ACTIVE 0x4000 #define FDX_ACTIVE 0x8000
/* The following block defines the ISQ event types */ #define ISQ_RECEIVER_EVENT 0x04 #define ISQ_TRANSMITTER_EVENT 0x08 #define ISQ_BUFFER_EVENT 0x0c #define ISQ_RX_MISS_EVENT 0x10 #define ISQ_TX_COL_EVENT 0x12
#define ISQ_EVENT_MASK 0x003F /* ISQ mask to find out type of event */ #define ISQ_HIST 16 /* small history buffer */ #define AUTOINCREMENT 0x8000 /* Bit mask to set bit-15 for autoincrement */
/* Receive Header */ /* Description of header of each packet in receive area of memory */ #define RBUF_EVENT_LOW 0 /* Low byte of RxEvent - status of received frame */ #define RBUF_EVENT_HIGH 1 /* High byte of RxEvent - status of received frame */ #define RBUF_LEN_LOW 2 /* Length of received data - low byte */ #define RBUF_LEN_HI 3 /* Length of received data - high byte */ #define RBUF_HEAD_LEN 4 /* Length of this header */
#define CHIP_READ 0x1 /* Used to mark state of the repins code (chip or dma) */ #define DMA_READ 0x2 /* Used to mark state of the repins code (chip or dma) */
/* for bios scan */ /* */ #ifdef CSDEBUG /* use these values for debugging bios scan */ #define BIOS_START_SEG 0x00000 #define BIOS_OFFSET_INC 0x0010 #else #define BIOS_START_SEG 0x0c000 #define BIOS_OFFSET_INC 0x0200 #endif
/* the assumption here is that the bits in the eeprom are generally */ /* in the same position as those in the autonegctl register. */ /* Of course the IMM bit is not in that register so it must be */ /* masked out */ #define EE_FORCE_FDX 0x8000 #define EE_NLP_ENABLE 0x0200 #define EE_AUTO_NEG_ENABLE 0x0100 #define EE_ALLOW_FDX 0x0080 #define EE_AUTO_NEG_CNF_MASK (EE_FORCE_FDX|EE_NLP_ENABLE|EE_AUTO_NEG_ENABLE|EE_ALLOW_FDX)
#define CS8900 0x0000 #define CS8920 0x4000 #define CS8920M 0x6000 #define REVISON_BITS 0x1F00 #define EEVER_NUMBER 0x12 #define CHKSUM_LEN 0x14 #define CHKSUM_VAL 0x0000 #define START_EEPROM_DATA 0x001c /* Offset into eeprom for start of data */ #define IRQ_MAP_EEPROM_DATA 0x0046 /* Offset into eeprom for the IRQ map */ #define IRQ_MAP_LEN 0x0004 /* No of bytes to read for the IRQ map */ #define PNP_IRQ_FRMT 0x0022 /* PNP small item IRQ format */ #define CS8900_IRQ_MAP 0x1c20 /* This IRQ map is fixed */
#define CS8920_NO_INTS 0x0F /* Max CS8920 interrupt select # */
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.