Re: Compex FreedomLine 32 PnP-PCI2 broken with de2104x
- From: Grant Grundler <grundler@xxxxxxxxxxxxxxxx>
- Date: Sun, 17 Feb 2008 20:21:11 -0700
On Wed, Jan 30, 2008 at 09:23:06PM +0100, Ondrej Zary wrote:
On Saturday 26 January 2008 21:58:10 Ondrej Zary wrote:
Hello,
I was having problems with these FreedomLine cards with Linux before but
tested it thoroughly today. This card uses DEC 21041 chip and has TP and
BNC connectors:
00:12.0 Ethernet controller [0200]: Digital Equipment Corporation DECchip
21041 [Tulip Pass 3] [1011:0014] (rev 21)
de2104x driver was loaded automatically by udev and card seemed to work.
Until I disconnected the TP cable and putting it back after a while. The
driver then switched to (non-existing) AUI port and remained there. I tried
to set media to TP using ethtool - and the whole kernel crashed because of
BUG_ON(de_is_running(de));
in de_set_media(). Seems that the driver is unable to stop the DMA in
de_stop_rxtx().
The BUG_ON() is probably fine normally. But the media selection sounds broken.
It's possible to select the wrong media type with 21040 chip but shouldn't
be possible with 21041. For 21040 support, see de21040_get_media_info().
But de21041_get_srom_info() is expected to determine which media
types are supported from SEPROM "media blocks". My guess is that code
is broken since it seems to work with de405 driver. If you care to
work the difference, I'd be happy to make a patch to fix that up.
Also, from code review, DE2104X driver still has a few places with
potential PCI MMIO Write posting issues. Specifically, I was looking
in de_stop_hw() and de_set_media(). Several other bits of code correctly
flush MMIO writes: e.g. tulip_read_eeprom().
I commented out AUI detection in the driver - this time it switched to BNC
after unplugging the cable and remained there. I also attempted to reset
the chip when de_stop_rxtx failed but failed to do it.
You'd have to basically hardcode only one media type and it's corresponding
parameters.
Then I found that there's de4x5 driver which supports the same cards as
de2104x (and some other too) - and this one works fine! I can plug and
unplug the cable and even change between TP and BNC ports just by
unplugging one and plugging the other cable in. Unfortunately, this driver
is blacklisted by default - at least in Slackware and Debian.
ISTR there was a time when tulip would compete with de4x5 for devices.
tulip is the preferred driver. That's clearly no longer the case
and perhaps both distro's need to revisit this.
The question is: why does de2104x exist? Does it work better with some
hardware?
de2104x is a "work in progress".
That's why it's marked "EXPERIMENTAL" in the Kconfig file.
BTW. Found that the problem exist at least since 2003:
http://oss.sgi.com/archives/netdev/2003-08/msg00951.html
Does the de2104x driver work correctly for anyone?
No idea. I've only used tulip driver.
thanks for the bug report,
grant
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
- Follow-Ups:
- Re: Compex FreedomLine 32 PnP-PCI2 broken with de2104x
- From: Jeff Garzik
- Re: Compex FreedomLine 32 PnP-PCI2 broken with de2104x
- From: Ondrej Zary
- Re: Compex FreedomLine 32 PnP-PCI2 broken with de2104x
- Prev by Date: Re: arch/x86/mm/ioremap unification grew by 10x
- Next by Date: Re: What is "ERROR: "LGUEST_PAGES_guest_gdt_desc" [drivers/lguest/lg.ko] undefined!"
- Previous by thread: Re: [PATCH] x86: Coding style fixes for arch/x86/kernel/cpu/centaur.c
- Next by thread: Re: Compex FreedomLine 32 PnP-PCI2 broken with de2104x
- Index(es):
Relevant Pages
|