@@ -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[] = {