/fs/jffs2/

ption> The LITMUS^RT kernel.Bjoern Brandenburg
aboutsummaryrefslogblamecommitdiffstats
path: root/drivers/net/ni52.h
blob: a33ea0884aaf5034a2273cddb599e8b53bb18d6d (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13











                                                                            
 









































































































































                                                                                         
                 

















































                                                                              
                         






                            
                    



















                                                                                
                          
   
                         


















                                                                            
                   
   
                          














































                                                                             
/*
 * Intel i82586 Ethernet definitions
 *
 * This is an extension to the Linux operating system, and is covered by the
 * same GNU General 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
 */


#define NI52_RESET     0  /* writing to this address, resets the i82586 */
#define NI52_ATTENTION 1  /* channel attention, kick the 586 */
#define NI52_TENA      3  /* 2-5 possibly wrong, Xmit enable */
#define NI52_TDIS      2  /* Xmit disable */
#define NI52_INTENA    5  /* Interrupt enable */
#define NI52_INTDIS    4  /* Interrupt disable */
#define NI52_MAGIC1    6  /* dunno exact function */
#define NI52_MAGIC2    7  /* dunno exact function */

#define NI52_MAGICVAL1 0x00  /* magic-values for ni5210 card */
#define NI52_MAGICVAL2 0x55

/*
 * where to find the System Configuration Pointer (SCP)
 */
#define SCP_DEFAULT_ADDRESS 0xfffff4


/*
 * System Configuration Pointer Struct
 */

struct scp_struct
{
  unsigned short zero_dum0;	/* has to be zero */
  unsigned char  sysbus;	/* 0=16Bit,1=8Bit */
  unsigned char  zero_dum1;	/* has to be zero for 586 */
  unsigned short zero_dum2;
  unsigned short zero_dum3;
  char          *iscp;		/* pointer to the iscp-block */
};


/*
 * Intermediate System Configuration Pointer (ISCP)
 */
struct iscp_struct
{
  unsigned char  busy;          /* 586 clears after successful init */
  unsigned char  zero_dummy;    /* has to be zero */
  unsigned short scb_offset;    /* pointeroffset to the scb_base */
  char          *scb_base;      /* base-address of all 16-bit offsets */
};

/*
 * System Control Block (SCB)
 */
struct scb_struct
{
  unsigned char rus;
  unsigned char cus;
  unsigned char cmd_ruc;           /* command word: RU part */
  unsigned char cmd_cuc;           /* command word: CU part & ACK */
  unsigned short cbl_offset;    /* pointeroffset, command block list */
  unsigned short rfa_offset;    /* pointeroffset, receive frame area */
  unsigned short crc_errs;      /* CRC-Error counter */
  unsigned short aln_errs;      /* alignmenterror counter */
  unsigned short rsc_errs;      /* Resourceerror counter */
  unsigned short ovrn_errs;     /* OVerrunerror counter */
};

/*
 * possible command values for the command word
 */
#define RUC_MASK	0x0070	/* mask for RU commands */
#define RUC_NOP		0x0000	/* NOP-command */
#define RUC_START	0x0010	/* start RU */
#define RUC_RESUME	0x0020	/* resume RU after suspend */
#define RUC_SUSPEND	0x0030	/* suspend RU */
#define RUC_ABORT	0x0040	/* abort receiver operation immediately */

#define CUC_MASK        0x07  /* mask for CU command */