Subject: Re: Intel Dual Gigabit Adapter i82546GB not supported...
To: Jonathan Stone <jonathan@dsg.stanford.edu>
From: Christoph Kaegi <kgc@zhwin.ch>
List: tech-net
Date: 11/05/2004 09:54:21
On 04.11-08:52, Jonathan Stone wrote:
> 
> I know for a fact that the i82546EB works fine with NetBSD.  I've used
> several 82546 dual-port parts with the wm driver, both on-mohterboard
> (Intel server boards), and the PCI-X dual-port card.

Yes, there are two i82546EB on the motherboard which work ok.
That's an Supermicro X5DP8-G2 motherboard, btw.

> Last I looked at the wm(4) driver, it had logic to compute a MAC
> address for the 2nd chanel, by toggling the low-oder MAC address bit
> of the first channel.  (I guess Intel didn't burn in two MAC
> addresses).  I suspect that wm(4) needs a one-line change to also do
> that for the 82546GB.

When I run the Intel diags.exe, it seems like they actually do
have two different MAC addresses. The first one was
00:04:23:a7:b9:cc, the second 00:04:23:a7:b9:cd, as expected.

> 
> If you're adventurous, try changing code just below the comment
> 
> 	/*
>          * Toggle the LSB of the MAC address on the second port
>          * of the i82546.
>          */
> 
> so the `if()' also accepts sc->type == WM_T_82546_3. That should fix
> your dual-MAC-address problem. Please let me know if it does.

I tried this:

---------------------------------- 8< ----------------------------------
1052c1052
<       if (sc->sc_type == WM_T_82546) {
---
>       if (sc->sc_type == WM_T_82546 || sc->sc_type == WM_T_82546_3) {
---------------------------------- 8< ----------------------------------

but it didn't work as expected:

---------------------------------- 8< ----------------------------------
# dmesg |grep wm[23]
wm2 at pci5 dev 1 function 0: Intel i82546GB 1000BASE-T Ethernet, rev. 3
wm2: interrupting at irq 11
wm2: 64-bit 66MHz PCIX bus
wm2: 256 word (8 address bits) MicroWire EEPROM
wm2: Ethernet address 00:04:23:a7:b9:cc
makphy2 at wm2 phy 1: Marvell 88E1011 Gigabit PHY, rev. 5
wm3 at pci5 dev 1 function 1: Intel i82546GB 1000BASE-T Ethernet, rev. 3
wm3: interrupting at irq 11
wm3: 64-bit 66MHz PCIX bus
wm3: 256 word (8 address bits) MicroWire EEPROM
wm3: Ethernet address 00:04:23:a7:b9:cc
makphy3 at wm3 phy 1: Marvell 88E1011 Gigabit PHY, rev. 5
---------------------------------- 8< ----------------------------------

I gladly try out even more adventurous things to get this
working. :-)

Thanks in advance

Chris

-- 
----------------------------------------------------------------------
Christoph Kaegi                                           kgc@zhwin.ch
----------------------------------------------------------------------