misc/179033: [dc] dc ethernet driver seems to have issues with some multiport card and mother board combinations
Mr. Clif
clif at eugeneweb.com
Mon Jun 10 19:13:20 UTC 2013
Hi John and Pyun,
Ok got the new kernel installed and tested. Yes it works! :-) Maybe that
will also fix a simular problem with the sun cards (cas[03]), except I
don't see a define like that in if_cas.c. Suggestions?
Thanks,
Clif
John Baldwin wrote:
> On Thursday, May 30, 2013 1:12:14 am YongHyeon PYUN wrote:
>> On Wed, May 29, 2013 at 08:58:10PM -0700, Mr. Clif wrote:
>>> Sorry for the confusion Pyun,
>>>
>>> I started looking at it in the context of pfsense, but they rejected my
>>> bug report which was understandable because it's an upstream issue. They
>>> suggested I resubmit it to you guys if I could reproduce it. So I booted
>>> FreeBSD and lo and behold the same two ports failed in exactly the same
>> Ok, I'd like to fix that.
> Hmmm, the dc(4) driver is using the I/O port BARs rather than the
> memory BARs for its registers and this bug seems to be that the dc(4)
> device can't properly access its registers on dc0 and dc1 on the
> Atom box. The one thing I see is that the BIOS on the Atom box assigns
> addresses in the 0x1100-0x11ff range for dc0 and dc1. Those addresses
> conflict with ISA I/O aliases for the 0x100-0x1ff range. The Dell BIOS
> is more careful to avoid these ranges.
>
> I think the fix is that I need to fix the PCI-PCI bridge to reject these
> resource ranges if the ISA enable bit is set in the bridge's control
> register. However, for the time being you can change dc(4) to use the
> memory BAR instead of the I/O port BAR as a workaround:
>
> Index: if_dc.c
> ===================================================================
> --- if_dc.c (revision 251132)
> +++ if_dc.c (working copy)
> @@ -128,7 +128,7 @@ __FBSDID("$FreeBSD$");
> #include<dev/pci/pcireg.h>
> #include<dev/pci/pcivar.h>
>
> -#define DC_USEIOSPACE
> +//#define DC_USEIOSPACE
>
> #include<dev/dc/if_dcreg.h>
>
>
> If this fixes it then I can take this PR as a test case for handling the ISA
> enable bit in the PCI-PCI bridge code.
>
More information about the freebsd-net
mailing list