/* SPDX-License-Identifier: GPL-2.0-only */ /* * Intel i82586 Ethernet definitions * * This is an extension to the Linux operating system, and is covered by the * same Gnu Public License that covers that work. * * copyrights (c) 1994 by Michael Hipp (hippm@informatik.uni-tuebingen.de) * * I have done a look in the following sources: * crynwr-packet-driver by Russ Nelson * Garret A. Wollman's i82586-driver for BSD
*/
/* * Cloned from ni52.h, copyright as above. * * Modified for Sun3 OBIO i82586 by Sam Creasey (sammy@sammy.net)
*/
/* defines for the obio chip (not vme) */ #define IEOB_NORSET 0x80 /* don't reset the board */ #define IEOB_ONAIR 0x40 /* put us on the air */ #define IEOB_ATTEN 0x20 /* attention! */ #define IEOB_IENAB 0x10 /* interrupt enable */ #define IEOB_XXXXX 0x08 /* free bit */ #define IEOB_XCVRL2 0x04 /* level 2 transceiver? */ #define IEOB_BUSERR 0x02 /* bus error */ #define IEOB_INT 0x01 /* interrupt */
/* where the obio one lives */ #define IE_OBIO 0xc0000 #define IE_IRQ 3
/* * where to find the System Configuration Pointer (SCP)
*/ #define SCP_DEFAULT_ADDRESS 0xfffff4
/* * System Configuration Pointer Struct
*/
struct scp_struct
{ unsignedshort zero_dum0; /* has to be zero */ unsignedchar sysbus; /* 0=16Bit,1=8Bit */ unsignedchar zero_dum1; /* has to be zero for 586 */ unsignedshort zero_dum2; unsignedshort zero_dum3; char *iscp; /* pointer to the iscp-block */
};
/* * Intermediate System Configuration Pointer (ISCP)
*/ struct iscp_struct
{ unsignedchar busy; /* 586 clears after successful init */ unsignedchar zero_dummy; /* has to be zero */ unsignedshort scb_offset; /* pointeroffset to the scb_base */ char *scb_base; /* base-address of all 16-bit offsets */
};
/* * possible status values for the status word
*/ #define STAT_MASK 0xf0 /* mask for cause of interrupt */ #define STAT_CX 0x80 /* CU finished cmd with its I bit set */ #define STAT_FR 0x40 /* RU finished receiving a frame */ #define STAT_CNA 0x20 /* CU left active state */ #define STAT_RNR 0x10 /* RU left ready state */
#define CU_STATUS 0x7 /* CU status, 0=idle */ #define CU_SUSPEND 0x1 /* CU is suspended */ #define CU_ACTIVE 0x2 /* CU is active */
#define TDR_LNK_OK 0x8000 /* No link problem identified */ #define TDR_XCVR_PRB 0x4000 /* indicates a transceiver problem */ #define TDR_ET_OPN 0x2000 /* open, no correct termination */ #define TDR_ET_SRT 0x1000 /* TDR detected a short circuit */ #define TDR_TIMEMASK 0x07ff /* mask for the time field */
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.