Is there any down side to using that dc fix in pfsense for now?

Yes, I would like to have time to submit the cas bug as well. Maybe in the next week but probably by august I hope. ;-)

    Thanks for your help,
    Clif

YongHyeon PYUN wrote:
On Mon, Jun 10, 2013 at 12:13:11PM -0700, Mr. Clif wrote:
Hi John and Pyun,

Ok got the new kernel installed and tested. Yes it works! :-) Maybe that
Thanks, probably John can fix PCI-PCI bridge code.

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?
Cassini does not support I/O port BARs so I guess you're seeing
different issue. Would you start a new thread that explains cas(4)
issues you're suffering from?

     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.


_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to