em0 - bge0 failed to work at 1000baseTX

Jack Vogel jfvogel at gmail.com
Tue Apr 24 18:03:29 UTC 2007


On 4/24/07, Stefan Lambrev <stefan.lambrev at sun-fish.com> wrote:
> Hello,
>
> I'm trying to get two gigabit network cards to work together.
>
> em0: <Intel(R) PRO/1000 Network Connection Version - 6.2.9> port
> 0x1000-0x101f mem 0xf0500000-0xf051ffff,0xf0524000-0xf0524fff irq 19 at
> device 25.0 on pci0
>
> em0 at pci0:25:0:  class=0x020000 card=0x2800103c chip=0x104a8086 rev=0x02
> hdr=0x00
>     vendor     = 'Intel Corporation'
>     class      = network
>     subclass   = ethernet
>
> and broadcom on the other end:
>
> bge0: <Broadcom BCM5750 C1, ASIC rev. 0x4201> mem 0xf4100000-0xf410ffff
> irq 16 at device 0.0 on pci8
>
> bge0 at pci8:0:0:  class=0x020000 card=0x30a3103c chip=0x16fd14e4 rev=0x21
> hdr=0x00
>     vendor     = 'Broadcom Corporation'
>     device     = 'BCM5753M NetXtreme Gigabit Ethernet PCI Express'
>     class      = network
>     subclass   = ethernet
>
>
> When I connect both networks without switch e.g. directly they auto
> negotiate to:
> media: Ethernet autoselect (100baseTX <full-duplex>)
> but I want 1000baseTX :(
>
> First thing that I tried was to force both network card with:
> ifconfig bge0/em0 media 1000baseTX mediaopt full-duplex
> but this lead to status: no carrier
>
> Second step was to set bge link0 and em0 link1, but still "no carrier"
> (from bge manual)
>
> On the machine with em card I have linux installed so I boot under linux
> and then everything works
> with autoselect, and I'm able to transfer with speed +50MB/s.
>
> When I forced both network cards to 1000baseTX I notice this:
>
> em0 media: Ethernet 1000baseTX <full-duplex> (autoselect)
>
> ^^^^^^^^
> bge0 media: Ethernet 1000baseTX <full-duplex> (none)
>
> ^^^^
>
> Something else that is quite strange is that when I change em media from
> autoselec to 1000baseTX,
> I see that for 2-3 seconds there is a connection between cards (e.g.
> status: active), but just for 2-3 seconds
> and then it disconnects again. (ping between hosts works for 2 seconds)
> At this time ifconfig shows:
> em0
> media: Ethernet 1000baseTX <full-duplex>
>
> ^^^^^^ no autoselect here ?
> status: active
>
> and bge0:
> media: Ethernet autoselect (1000baseTX <full-duplex>) ( I left bge to
> autoselect at some point as I saw it does not change a thing..)
> status: active
>
> I compiled new kernel with
> #define EM_MASTER_SLAVE      2 (and then 3)
> in if_em.h (as I'm suspecting em driver ..)
> but still no success.
>
> Last thing that I notice while (re)booting freebsd server with em0 is that
> during starting program and rc scripts the status of the network changed
> from 100mbps -> 1000mbps -> no carrier -> 100mbps.
>
> So any ideas how to get my network working at gigabit speeds? :)
>
> P.S. both machines are running freebsd 6.2 stable - em0 is i386 and bge0
> is on amd64.
> em0 was tested with 6.2-release too.
>
> Thanks in advance.

Do me a favor please, go to downloadfinder.intel.com and get my latest
driver,  its version 6.3.9, since ICH8 is fairly recent and has had some
late-breaking fixes in shared code its possible that will solve things.
You will want to use this driver as a module, its a hassle to build into
the kernel (although there is a patch to allow you to do that if you wish).

Please report back EITHER if it works or fails, if it does still fail I will
have our test/validation group get hardware set up to look into this.

Jack


More information about the freebsd-net mailing list