/* Copyright 1999, Be Incorporated. All Rights Reserved. This file may be used under the terms of the Be Sample Code License. */ /* * etherpci_private.h * Copyright (c) 1998 Be, Inc. All Rights Reserved * * Definitions private to ne2000 PCI ethernet driver * * Modification History (most recent first): * * 18 May 98 malyn new today */ #ifndef _ETHERPCI_PRIVATE_H #define _ETHERPCI_PRIVATE_H #ifndef _KERNEL_EXPORT_H #include #endif /* * Wait this long before giving up on an ethernet transmit */ #define ETHER_TRANSMIT_TIMEOUT ((bigtime_t)1000000) /* one second */ #define NIRQS 128 //x hmm... #define MAX_MULTI 14 #define ETHER_BUF_START_NE2000 0x4000 #define ETHER_BUF_SIZE_NE2000 0x4000 #define ETHER_BUF_SIZE_MAX ETHER_BUF_SIZE_NE2000 #define ETHER_MTU 1500 #define ETHER_MIN_SIZE 60 #define ETHER_MAX_SIZE 1514 #define ETHER_IRQ2 0x10 #define ETHER_IRQ3 0x20 #define ETHER_IRQ4 0x40 #define ETHER_IRQ5 0x80 #define ECNTRL_RESET 0x01 #define ECNTRL_ONBOARD 0x02 #define ECNTRL_SAPROM 0x04 #define EGACFR_NORM 0x49 #define EGACFR_IRQOFF 0xc9 #define EC_PAGE_SIZE 256 #define EC_PAGE_SHIFT 8 #define EN_CCMD 0x0 #define EN0_STARTPG 0x01 #define EN0_STOPPG 0x02 #define EN0_BOUNDARY 0x03 #define EN0_TPSR 0x04 #define EN0_TCNTLO 0x05 #define EN0_TCNTHI 0x06 #define EN0_ISR 0x07 #define EN0_RADDRLO 0x08 #define EN0_RADDRHI 0x09 #define EN0_RCNTLO 0x0a #define EN0_RCNTHI 0x0b #define NE_DATA 0x10 #define NE_RESET 0x1f #define ISR_RECEIVE 0x01 #define ISR_TRANSMIT 0x02 #define ISR_RECEIVE_ERROR 0x04 #define ISR_TRANSMIT_ERROR 0x08 #define ISR_OVERWRITE 0x10 #define ISR_COUNTER 0x20 #define ISR_DMADONE 0x40 #define ISR_RESET 0x80 #define EN0_RXCR 0xc #define EN0_TXCR 0xd #define EN0_DCFG 0xe #define EN0_IMR 0xf #define EN0_CNTR0 0x0d #define EN0_CNTR1 0x0e #define EN0_CNTR2 0x0f #define DCFG_BM8 0x48 #define DCFG_BM16 0x49 #define EN1_PHYS 0x1 #define EN1_CURPAG 0x7 #define EN1_MULT 0x8 #define ENRXCR_MON 0x20 #define ENRXCR_MCST 0x08 #define ENRXCR_BCST 0x04 #define TXCR_LOOPBACK 0x02 #define ENC_PAGE0 0x00 #define ENC_STOP 0x01 #define ENC_START 0x02 #define ENC_TRANS 0x04 #define ENC_DMAREAD 0x08 #define ENC_DMAWRITE 0x10 #define ENC_NODMA 0x20 #define ENC_PAGE1 0x40 #define RSR_INTACT 0x01 #define TSR_ABORTED 0x08 #define TSR_UNDERRUN 0x20 #define TSR_HEARTBEAT 0x40 #define ETHER_ADDR_LEN 6 /* * Maximum iterations to poll before assuming error */ #define MAXWAIT 10000 /* * Swap the bytes in a short, but not on a little-endian machine */ static const union { long l; char b[4]; } ENDIAN_TEST = { 1 }; #define LITTLE_ENDIAN ENDIAN_TEST.b[0] #define SWAPSHORT(x) (((x & 0xff) << 8) | ((x >> 8) & 0xff)) #define swapshort(x) (LITTLE_ENDIAN ? (x) : SWAPSHORT(x)) /* * NS8390 ring header structure */ typedef struct ring_header { unsigned char status; unsigned char next_packet; unsigned short count; } ring_header; #endif