--- drivers/net/eepro100.c-vanilla Fri Jan 17 20:18:17 2003 +++ drivers/net/eepro100.c Fri Jan 17 20:19:39 2003 @@ -496,19 +496,66 @@ #endif }; -/* The parameters for a CmdConfigure operation. - There are so many options that it would be difficult to document each bit. - We mostly use the default or recommended settings. */ -static const char i82557_config_cmd[CONFIG_DATA_SIZE] = { - 22, 0x08, 0, 0, 0, 0, 0x32, 0x03, 1, /* 1=Use MII 0=Use AUI */ - 0, 0x2E, 0, 0x60, 0, - 0xf2, 0x48, 0, 0x40, 0xf2, 0x80, /* 0x40=Force full-duplex */ - 0x3f, 0x05, }; +#define i55x_CB1_TXFIFO_LIMIT(x) ((x)<<4) +#define i55x_CB1_RXFIFO_LIMIT(x) ((x)&0xf) + +#define i55x_CB3_MWIENABLE (1<<0) + +#define i55x_CB6_EXTSTATCOUNT (1<<5) +#define i55x_CB6_MANDBITS (1<<1) + +#define i55x_CB7_DISCARDSHORT (1<<0) +#define i55x_CB7_UNDERRUNRETRY(x) ((x)<<1) + +#define i557_CB8_USEMII (1<<0) +#define i558_CB8_MANDBITS i557_CB8_USEMII + +#define i55x_CB10_MANDBITS (3<<1) +#define i55x_CB10_PREAMBLELEN(x) ((x&3)<<4) +#define i55x_CB10_NSAI (1<<3) + +#define i55x_CB12_INTERFRAMESPACE(x) ((x)<<4) + +#define i558_CB15_MANDBITS (1<<3|1<<6) +#define i559_CB16_CRC16 (1<<5) + +#define i558_CB18_MANDBITS (1<<7) +#define i558_CB18_FCTHRESH(x) ((x&7)<<4) +#define i558_CB18_LONGRCV (1<<3) +#define i55x_CB18_PAD (1<<1) + +#define i558_CB19_TXFC (1<<2) +#define i558_CB19_AUTOFDX (1<<7) + +#define i558_CB20_PRIFCLOC (1<<5) +#define i558_CB20_MANDBITS (0x1f) + +#define i558_CB21_MANDBITS (0x05) + static const char i82558_config_cmd[CONFIG_DATA_SIZE] = { - 22, 0x08, 0, 1, 0, 0, 0x22, 0x03, 1, /* 1=Use MII 0=Use AUI */ - 0, 0x2E, 0, 0x60, 0x08, 0x88, - 0x68, 0, 0x40, 0xf2, 0x84, /* Disable FC */ - 0x31, 0x05, }; + CONFIG_DATA_SIZE, + i55x_CB1_TXFIFO_LIMIT(0)|i55x_CB1_RXFIFO_LIMIT(8), + 0, + i55x_CB3_MWIENABLE, + 0, + 0, + i55x_CB6_EXTSTATCOUNT|i55x_CB6_MANDBITS, + i55x_CB7_UNDERRUNRETRY(1)|i55x_CB7_DISCARDSHORT, + i558_CB8_MANDBITS, + 0, + i55x_CB10_MANDBITS|i55x_CB10_NSAI|i55x_CB10_PREAMBLELEN(2), + 0, + i55x_CB12_INTERFRAMESPACE(6), + 0x00, /* cb 13 - ARP Filter IP Address Low */ + 0xf2, /* cb 14 - ARP Filter IP Address High */ + i558_CB15_MANDBITS|i559_CB16_CRC16, + 0, /* cb 16 - FC Delay - LSB */ + 0x40, /* cb 17 - FC Delay - MSB */ + i558_CB18_MANDBITS|i558_CB18_FCTHRESH(7)|i558_CB18_LONGRCV|i55x_CB18_PAD, + i558_CB19_TXFC|i558_CB19_AUTOFDX, + i558_CB20_PRIFCLOC|i558_CB20_MANDBITS, + i558_CB21_MANDBITS, + }; /* PHY media interface chips. */ static const char *phys[] = {