--- eeprom.c.orig Mon May 27 16:02:03 2002 +++ eeprom.c Mon May 27 16:09:28 2002 @@ -62,6 +62,10 @@ */ { 0x1e00, 0x0000, 0x000b, 0x8f01, 0x0103, 0x0300, 0x0821, 0x000, 0x0001, 0x0000, 0x01e1 } }, + {"Cobalt MicroServer", 0, 0x10, 0xE0, { 0x1e00, 0x0000, 0x0800, 0x8001, + 0x0003, 0x0400, 0x0801, 0x0000, + 0x0800, 0x0000, 0x7800, 0x01e0, + 0x5000, 0x1800, 0x0000 }}, {0, 0, 0, 0, {}}}; --- media.c.orig Mon May 27 16:02:03 2002 +++ media.c Mon May 27 16:09:28 2002 @@ -400,6 +400,7 @@ } tp->csr6 = new_csr6 | (tp->csr6 & 0xfdff) | (tp->full_duplex ? 0x0200 : 0); + udelay(1000); return; } --- tulip_core.c.orig Mon May 27 16:03:54 2002 +++ tulip_core.c Mon May 27 16:09:50 2002 @@ -1583,6 +1583,14 @@ /* DEC now has a specification (see Notes) but early board makers just put the address in the first EEPROM locations. */ /* This does memcmp(eedata, eedata+16, 8) */ +#ifdef CONFIG_MIPS_COBALT + /* On-board tulip chips have a bad format EEPROM, so copy the + address to make it right */ + if ((pdev->bus->number == 0) && + ((PCI_SLOT(pdev->devfn) == 7) || + (PCI_SLOT(pdev->devfn) == 12))) + memcpy(ee_data+16, ee_data, 8); +#endif for (i = 0; i < 8; i ++) if (ee_data[i] != ee_data[16+i]) sa_offset = 20; @@ -1601,16 +1609,6 @@ #ifdef CONFIG_DDB5477 if ((pdev->bus->number == 0) && (PCI_SLOT(pdev->devfn) == 4)) { /* DDB5477 MAC address in first EEPROM locations. */ - sa_offset = 0; - /* No media table either */ - tp->flags &= ~HAS_MEDIA_TABLE; - } -#endif -#ifdef CONFIG_MIPS_COBALT - if ((pdev->bus->number == 0) && - ((PCI_SLOT(pdev->devfn) == 7) || - (PCI_SLOT(pdev->devfn) == 12))) { - /* Cobalt MAC address in first EEPROM locations. */ sa_offset = 0; /* No media table either */ tp->flags &= ~HAS_MEDIA_TABLE;