DragonFly BSD
DragonFly kernel List (threaded) for 2011-06
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: Intel Corporation 82578DC Gigabit NIC support


From: Chris Turner <c.turner@xxxxxxxxxxxxxxxxxxx>
Date: Sat, 4 Jun 2011 21:13:15 +0000

On Wed, Jun 01, 2011 at 03:14:46PM +0530, Siju George wrote:
> 
> Where do I put the PCI IDs in this file?
> 
> O should I copy the FreeBSD driver files for this chipset and then add
> those files here?
> 

Really, with all due respect to Sephe as he is the guru of this driver, 
I don't think this is igb - 
but instead is em, as outlined in my mail from 2011-05-31 - 

"
Our e1000/em contains what apppears to be the needed items for this card:       
                                                                                
em0@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 'pcidevs' output is your FreeBSD output - which probes as em0
rather than igb0, and as can be seen from the chip id - chip=0x10f08086 -
that is, chip 0x10F0 from vendor 0x8086 (Intel) - and as can be seen
from the 'grep' output, the related device ID confirugration is already 
referenced in our 'unbuilt' em copy (if_em.c, etc)
which resides in src/sys/dev/netif/e1000, as well as the freebsd dev/e1000
if_em.c , etc.

Again, the e1000/em copy is not built, but instead an older copy is built under
the path /src/sys/dev/netif/em.  

I'd again suggest first doing a manual build of /src/sys/dev/netif/e1000/em -
on a already built source tree:

  # cd /src/sys/dev/netif/e1000/em
  # wmake
  # ls if_em.ko

You can then test this 'if_em.ko' instead of the 'default' one -
but will need to build a kernel *without* the 'built' em (netif/em)
in order to be able to load this one (or will need to change the files 
so it has a different driver name).

If this happens to work - not counting on it becuase we have several DF 
specific fixes in the dev/netif/em copy, though I do know it compiles,
and alot of the code is modularized into common files used by the 
functional igb driver - so there is a chance -
from there it will be a matter of deciding how to merge the two 'em' copies
in the tree.

Alternately you could try to merge in the stuff from netif/e1000/em
into the dev/netif/em - but I think this might be a 'backwards' approach.

again I didn't dig enough in this driver or the history to be 100% sure
of all of this - but based on the file contents, the device id & probe 
you provided from your FreeBSD system and a limited check of our tree
this does appear to be the case.

Again I defer to Sephe if I'm completely missing something here, which
of course is possible.

Cheers & Good Luck,

- Chris




[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]