Hi,

I recently acquired one of these motherboards and suitable CPU + memory for it.
The on-board 3com MAC and Broadcom/Altima PHY are not being detected by the
xl(4) driver in -current (cvsup done yesterday evening).
In the Award BIOS there is only one setting for the 3com device, a supposed
on/off switch with only values Disabled and Auto; I have used Auto.

Output with stock drivers:
pcib2: <ACPI PCI-PCI bridge> at device 12.0 on pci0
pci2: <ACPI PCI bus> on pcib2
pci2: <network, ethernet> at device 1.0 (no driver attached)

pciconf -lv output:
none9@pci2:1:0: class=0x020000 card=0x80ab1043 chip=0x920110b7 rev=0x40 hdr=0x00
    vendor   = '3COM Corp, Networking Division'
    class    = network
    subclass = ethernet

Output after adding the chip in question to if_xlreg.h and if_xl.c probe table:
pcib2: <ACPI PCI-PCI bridge> at device 12.0 on pci0
pci2: <ACPI PCI bus> on pcib2
xl1: <3Com 3c905C-TX on nVidia nForce2 chipset> port 0xb000-0xb07f mem 
0xd3000000-0xd300007f irq 11 at device 1.0 on pci2
xl1: Ethernet address: 00:26:54:07:e5:95
xl1: no PHY found!
device_probe_and_attach: xl1 attach returned 6

So far, so good. The on-board PHY is a Broadcom/Altime AC101L, which is
not listed in miidevs. I added it there and to acphy_probe() just
to see if it would work. I also added a printf() to acphy_probe() to
output the mii_id1 and mii_id2 values before checking for the supported
models so that I could see if the probe was even getting that far.
Probe doesn't get that far since the printf() is never executed;
I believe probe halts in mii_phy_probe() since acphy_probe() would be
called by bus_generic_attach() if a PHY was found on the miibus and
that in turn would show up in the kernel boot messages because of the
printf() I added.

FWIW, the diff for the files mentioned is attached, in case someone wants
to continue from here.

Specifications for the Altima PHY are available at:
   http://www.altimacom.com/products/ac101L.html
I could not find any specifications on nVidia site for the integration
of the 3com MAC into the nForce2 chipset; neither could I find any documents
on Asus site about the power control for the Broadcom/Altima MAC in case
it is somehow powered off by default.

Regards,
 MSH

-- 
All opinions expressed above are mine alone and do not express the views
of my employer or any other organizations that I am affiliated with.
Index: sys/dev/mii/miidevs
===================================================================
RCS file: /data/cvs/freebsd/src/sys/dev/mii/miidevs,v
retrieving revision 1.21
diff -u -r1.21 miidevs
--- sys/dev/mii/miidevs 8 Sep 2002 19:12:02 -0000       1.21
+++ sys/dev/mii/miidevs 4 Jan 2003 23:00:40 -0000
@@ -98,6 +98,7 @@
 
 /* Altima Communications PHYs */
 model xxALTIMA AC101           0x0021 AC101 10/100 media interface
+model xxALTIMA AC101L          0x0012 AC101L 10/100 media interface
 
 /* Advanced Micro Devices PHYs */
 model xxAMD 79C873             0x0000 Am79C873 10/100 media interface
Index: sys/dev/mii/acphy.c
===================================================================
RCS file: /data/cvs/freebsd/src/sys/dev/mii/acphy.c,v
retrieving revision 1.10
diff -u -r1.10 acphy.c
--- sys/dev/mii/acphy.c 14 Oct 2002 22:31:52 -0000      1.10
+++ sys/dev/mii/acphy.c 12 Jan 2003 18:51:40 -0000
@@ -129,6 +129,9 @@
        if (MII_OUI(ma->mii_id1, ma->mii_id2) == MII_OUI_xxALTIMA &&
            MII_MODEL(ma->mii_id2) == MII_MODEL_xxALTIMA_AC101) {
                device_set_desc(dev, MII_STR_xxALTIMA_AC101);
+       } else if(MII_OUI(ma->mii_id1, ma->mii_id2) == MII_OUI_xxALTIMA &&
+                 MII_MODEL(ma->mii_id2) == MII_MODEL_xxALTIMA_AC101L) {
+               device_set_desc(dev, MII_STR_xxALTIMA_AC101L);
        } else 
                return (ENXIO);
 
Index: sys/pci/if_xl.c
===================================================================
RCS file: /data/cvs/freebsd/src/sys/pci/if_xl.c,v
retrieving revision 1.120
diff -u -r1.120 if_xl.c
--- sys/pci/if_xl.c     10 Jan 2003 08:09:58 -0000      1.120
+++ sys/pci/if_xl.c     12 Jan 2003 11:47:13 -0000
@@ -183,6 +183,8 @@
                "3Com 3c905B-COMBO Fast Etherlink XL" },
        { TC_VENDORID, TC_DEVICEID_TORNADO_10_100BT,
                "3Com 3c905C-TX Fast Etherlink XL" },
+       { TC_VENDORID, TC_DEVICEID_TORNADO_10_100BT_NVIDIA,
+               "3Com 3c905C-TX on nVidia nForce2 chipset" },
        { TC_VENDORID, TC_DEVICEID_HURRICANE_10_100BT_SERV,
                "3Com 3c980 Fast Etherlink XL" },
        { TC_VENDORID, TC_DEVICEID_TORNADO_10_100BT_SERV,
Index: sys/pci/if_xlreg.h
===================================================================
RCS file: /data/cvs/freebsd/src/sys/pci/if_xlreg.h,v
retrieving revision 1.40
diff -u -r1.40 if_xlreg.h
--- sys/pci/if_xlreg.h  6 Jan 2003 00:46:03 -0000       1.40
+++ sys/pci/if_xlreg.h  8 Jan 2003 19:55:18 -0000
@@ -676,6 +676,7 @@
 #define TC_DEVICEID_CYCLONE_10_100_COMBO       0x9058
 #define TC_DEVICEID_CYCLONE_10_100FX           0x905A
 #define TC_DEVICEID_TORNADO_10_100BT           0x9200
+#define TC_DEVICEID_TORNADO_10_100BT_NVIDIA     0x9201
 #define TC_DEVICEID_HURRICANE_10_100BT_SERV    0x9800
 #define TC_DEVICEID_TORNADO_10_100BT_SERV      0x9805
 #define TC_DEVICEID_HURRICANE_SOHO100TX                0x7646

Reply via email to