[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