*#ident "$Header: /proj/irix6.5.7m/isms/irix/kern/master.d/RCS/if_ef,v 1.13 1999/02/10 23:15:43 paulson Exp $"
*
* ef - SGI IOC3 10/100Mbps Fast Ethernet driver
*
*FLAG	PREFIX	SOFT	#DEV	DEPENDENCIES
cs	if_ef	-	-	bsd
*
+thread_class		network
$$$

uint ef_nrbuf10 = 40;				/* # rx bufs in  10Mbit mode */
uint ef_nrbuf100 = 80;				/* # rx bufs in 100Mbit mode */
uint ef_nrbuf10_promisc = 128;			/* # rx bufs in  10Mbit promisc mode */
uint ef_nrbuf100_promisc = 128;			/* # rx bufs in 100Mbit promisc mode */
uint ef_rxdelay = 26;				/* rx intr delay (units == 7.68us) */
uint ef_nrbufthreshdiv = 3;			/* rx threshold intr divisor (nrbuf/X) */
uint ef_halfduplex_ipg[] = {21, 11, 17};	/* halfduplex ipgt, ipgr1, ipgr2 */
uint ef_fullduplex_ipg[] = {21, 21, 21};	/* fullduplex ipgt, ipgr1, ipgr2 */

/*
 * TCP and UDP checksums
 * 0 = disabled
 * 1 = hw computes checksums for received frames but not transmitted frames
 * 2 = hw computes checksums for transmitted frames but not received frames
 * 3 = hw computes checksums for both transmitted and received frames
 */
uint ef_cksum = 3;

#define PHY_ICS1890		0x0015F42	/* Octane */
#define PHY_DP83840		0x20005C0	/* Origin 200/2000 and Onyx2 */

/*
 * To disable AutoNegotiation and force a particular speed/duplex,
 * change "XXX" below to one of the valid phy types,
 * change "YYY" to one of the valid speed/duplex modes,
 * and remove the #ifdef/#endif lines.
 */
#define	F100	0x2100				/* 100mbps full duplex mode */
#define	H100	0x2000				/* 100mbps half duplex mode */
#define	F10	0x0100				/* 10mbps full duplex mode */
#define	H10	0x0000				/* 10mbps half duplex mode */

struct phyerrata {
	__uint32_t	type;
	short		rev;
	unsigned short	reg, mask, val;
} ef_phyerrata[] = {
	{ PHY_DP83840, -1, 23, 1 << 5, 1 << 5 },	/* bypass link disconnect */
	{ PHY_ICS1890, -1, 18, 1 << 5, 1 << 5 },	/* link loss inhibit */
#ifdef notdef
	{ XXX, -1, 0, 0xffff, YYY },
#endif
	0,
};
