Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 12 Jan 2003 21:07:31 +0200
From:      "Mikko S. Hyvarinen" <morphy@morphy.iki.fi>
To:        freebsd-net@freebsd.org
Cc:        freebsd-current@freebsd.org
Subject:   Asus A7N8X Deluxe, nForce2 chipset, 3com MAC, Broadcom/Altima PHY
Message-ID:  <20030112190731.GB14895@morphy.iki.fi>

next in thread | raw e-mail | index | archive | help

--UugvWAfsgieZRqgk
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

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.

--UugvWAfsgieZRqgk
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="nforce2-xl.patch"

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

--UugvWAfsgieZRqgk--

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030112190731.GB14895>