On Sat, Oct 12, 2002 at 04:12:02AM -0500, ryan beasley wrote:
>     was loaded / probed the card?  (FWIW, I'm not seeing any significant
>     changes to dc_setfilt_21143() between revs 1.9.2.33 and 1.81...)

    Er, I meant dc_attach.  Rilly.  Trust me.  ;)  (<dunce> I think I
    initially guessed there from the 'set our mac address' comment without
    taking *any* of the surrounding code into context. </dunce>)

    I skimmed over a portion of the DM9102A data sheet, saw the SROM layout,
    and modified this driver to grab the MAC from that space.  It's worked
    fine ever since.

    (I sent a pr this morning with said patch, and while my mail logs show
     the message as having been received as msgID B63E843E3B, it hasn't shown
     up anywhere.)

    Thoughts?

-- 
ryan beasley                            <[EMAIL PROTECTED]>
GPG ID: 0x16EFBD48                      http://www.goddamnbastard.org           
# made against if_dcreg.h 1.27 and if_dc.c 1.81
--- sys/pci/if_dcreg.h.orig     Tue Oct 15 07:44:12 2002
+++ sys/pci/if_dcreg.h  Tue Oct 15 07:42:37 2002
@@ -856,6 +856,11 @@
 #define DC_REVISION_DM9102A    0x30
 
 /*
+ * DM9102A MAC address SROM offset.
+ */
+#define        DC_DM9102_NODEADDR      0x14
+
+/*
  * ADMtek vendor ID.
  */
 #define DC_VENDORID_ADMTEK     0x1317
--- sys/pci/if_dc.c.orig        Tue Oct 15 07:44:08 2002
+++ sys/pci/if_dc.c     Tue Oct 15 07:42:29 2002
@@ -1995,6 +1995,9 @@
                command &= 0xFFFF00FF;
                command |= 0x00008000;
                pci_write_config(dev, DC_PCI_CFLT, command, 4);
+               /* See above.  ;) */
+               dc_eeprom_width(sc);
+               dc_read_srom(sc, sc->dc_romwidth);
                break;
        case DC_DEVICEID_AL981:
                sc->dc_type = DC_TYPE_AL981;
@@ -2142,6 +2145,9 @@
                dc_read_eeprom(sc, (caddr_t)&eaddr, 0, 3, 1);
                break;
        case DC_TYPE_DM9102:
+               bcopy(&sc->dc_srom[DC_DM9102_NODEADDR], (caddr_t)&eaddr,
+                   ETHER_ADDR_LEN);
+               break;
        case DC_TYPE_21143:
        case DC_TYPE_ASIX:
                dc_read_eeprom(sc, (caddr_t)&eaddr, DC_EE_NODEADDR, 3, 0);

Attachment: msg44737/pgp00000.pgp
Description: PGP signature

Reply via email to