[illumos-Developer] Illumos device drivers (Was: Solaris Future?)
Gary Mills
mills at cc.umanitoba.ca
Sun Jul 31 18:49:36 BST 2011
On Fri, Jul 29, 2011 at 02:31:19PM -0700, Garrett D'Amore wrote:
> On 07/29/2011 02:27 PM, Gary Mills wrote:
> >Before I went further, I decided to install oi_148b on my ASUS laptop
> >and see if the existing `atge' driver handled the AR8132 ethernet
> >adapter. I used this command to add an alias for it:
> >
> > update_drv -a -i '"pciex1969,1062"' atge
> >
> >That produced these messages:
> >
> > Jul 29 15:46:14 asus atge: [ID 451854 kern.warning] WARNING: atge0:
> > atge driver is attaching to unknown pci6505,4194 vendor/device-id card
> > Jul 29 15:46:14 asus pcplusmp: [ID 805372 kern.info] pcplusmp:
> > pciex1969,1062 (atge) instance 0 irq 0x19 vector 0x61 ioapic 0xff
> > intin 0xff is bound to cpu 0
> > Jul 29 15:46:14 asus mac: [ID 469746 kern.info] NOTICE: atge0
> > registered
> > Jul 29 15:46:14 asus mii: [ID 427086 kern.info] atge0: Using
> > 1000BASE-T Ethernet PHY at 1: Atheros/Attansic PHY
> >
> >Does that all look reasonable? Then I plumbed atge0 and configured it
> >with an IP address. That produced this message:
> >
> > Jul 29 15:46:26 asus mac: [ID 435574 kern.info] NOTICE: atge0 link
> > up, 100 Mbps, full duplex
> >
> >`ifconfig -a' and `netstat -rn' both looked correct, but I couldn't get
> >any traffic through it with `ping' from either end. `netstat -i' showed
> >only zeros after the initial traffic, 38 output and zero input. What
> >could be wrong?
>
> This looks normal. The part you have uses the same registers for PHY
> communication, but requires modifications for actually moving packets
> through the DMA engine. You're on the right path, but real code changes
> are required. The good news is that the PHY layer (which can be one of
> the more annoying ones to deal with) will Just Work for you.
Well, I learned a few things by reading the source. The Illumos
`atge' driver supports the Attansic L1 (chip 1048) and
AR8121/8113/8114 (chip 1026) devices, with separate source modules for
each. These are supported in Freebsd by the `age' and `ale' drivers,
respectively. The one in my ASUS laptop is an AR8132 (chip 1062).
It's not supported at all by the Illumos `atge' driver. Freebsd
supports this device and the AR8131 (chip 1063) by the `alc' driver.
These two are virtually identical.
So it looks as if the Illumos `atge' driver needs another source
module, perhaps called atge_l1c.c, to handle the AR8131 and AR8132
devices. I may need some help with this. It's looking like infinite
time at this point.
--
-Gary Mills- -Unix Group- -Computer and Network Services-
More information about the Developer
mailing list