Intel Corporation 82578DC Gigabit NIC support

Sepherosa Ziehau sepherosa at
Tue May 31 18:41:38 PDT 2011

On Wed, Jun 1, 2011 at 5:49 AM, Chris Turner
<c.turner at> wrote:
> On Tue, May 31, 2011 at 12:52:15PM +0800, Sepherosa Ziehau wrote:
>> You probably need to change dev/netif/igb instead of em and ig_hal.
>> You could simply add the PCI ids to igb and see whether it works or
>> not.
> The plot thickens -
> based on a whole lot of suppositions, b/c it would take hours
> to review the history and someone here probably knows it better
> anyhow -
> It looks something like em driver (perhaps btw v6-7 of the intel rev?)
> grew into the e1000 driver, with pcie support - and a 'legacy' em(4)
> driver - subsequent updates? were made to the e1000/*em* items,
> such as adding more chips -
> Our e1000/em contains what apppears to be the needed items for this card:
> em0 at pci0:0:25:0:        class=0x020000 card=0x80001025 chip=0x10f08086
> rev=0x06 hdr=0x00
> e1000_api.c:    case E1000_DEV_ID_PCH_D_HV_DC:
> e1000_hw.h:#define E1000_DEV_ID_PCH_D_HV_DC              0x10F0
> if_em.c:        { 0x8086, E1000_DEV_ID_PCH_D_HV_DC,     PCI_ANY_ID, PCI_ANY_ID,
> 0},
> (the 0x10F0 being the relavent bits)
> which are not in the 'live' sys/dev/netif/em driver -
> however, this copy of 'em' (sys/dev/netif/e1000/em) is not linked
> into the build - whereas the sys/dev/netif/em copy is.
> I was able to :
> cd sys/dev/netif/e1000/em && wmake
> to get a clean 'if_em.ko' - no idea if this will probe/attach/send packets
> and so on..
> So - Siju - feel free to build that and test I suppose -
> not sure where to take it from here w/r/t 'em' development - either
> to disable / merge in the relavent bits of sys/dev/netif/em to e1000/em,
> or the other way around, etc..
> my thoughts would be to use the new copy - however it does appear
> that someone at some point took the time to cleanly separate the phy
> stuff, into that 'ig_hal' etc- so maybe this was overlooked when e1000
> was added, I dunno.. (see history, above :D )
> so - I will defer to the experts

Heh, netif/ig_hal (it was actually e1000 hardware related code from
Intel) was added before I took a short break from dfly in 2009, while
netif/e1000 code was added later to support igb only.  Currently I
don't have enough time to put the whole thing into shape; the hardware
related bits will finally go into netif/ig_hal.  However, as I have
suggested, if you want 82578 to work, you probably need to change the
stuffs under netif/e1000/igb instead of netif/em or netif/emx.

Best Regards,

Tomorrow Will Never Die

More information about the Users mailing list