Bug 2598 - ep0 in EISA mode hangs if ep0-device (ISA) is enabled
Summary: ep0 in EISA mode hangs if ep0-device (ISA) is enabled
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: i386 (show other bugs)
Version: Unspecified
Hardware: Any Any
: Normal Affects Only Me
Assignee: Matthew N. Dodd
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 1997-01-27 01:10 UTC by mi
Modified: 2000-07-18 07:37 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description mi 1997-01-27 01:10:07 UTC
	ep-device is recognized as EISA device at the beginning
	Then, it is probed and (obviously) not found on ISA bus.
	Attempts to ifconfig it later (from /etc/netstart or manually)
	hang machine cold...

	Note, this is not something new, it was happening with the August
	snapshot as well.

Fix: 

Boot into -c, and disable ep0. The card works fine after that.
How-To-Repeat: 
	See Description
Comment 1 tedm 2000-03-15 01:44:28 UTC
The documentation for the ep device driver shows that 3c509 cards are 
soft-configured
and that probes to port 110 are used for the driver to communicate with the 
card.

3c579 EISA cards, by contrast, are configured by the eisa-config program for 
the
system, not by the 3c5x9cfg.exe DOS configuration program.  Thus port 110 on
these cards is not supposed to be there  (because your supposed to use 
eisa-config
to config the card)

When the ep driver normally loads it first checks for EISA 3c579 cards, then it 
checks for
ISA 3c509 cards.  This probe order is fine since the 3c579 card has no port 
110, the EISA
probe will not need to disturb the port.  When the ISA probe is done then port 
110 is
twiddled with and the 3c579 card will not be bothered.

In this instance your putting an ISA card into EISA mode.  So when the driver 
probes it
EISA-configs the card.  Then later on when the ISA probe is run it attempts to 
twiddle
port 110.  If you were using an EISA card this would not be a problem because 
EISA
3c579's have no port 110.  Since your using an ISA card in EISA-emulation, 
there is a port
110, and this is why the second probe trashes the driver.

If the driver were modded with a crude "don't probe for ISA cards if an ep card 
is configured
on EISA" then you would screw all the people running a mix of EISA 3c579 and 
ISA 3c509
cards in an EISA box.

Needless to say there is no way the 3c509 can report an "IN EISA emulation 
mode" during
an EISA probe because the 3c579 EISA card does not have an ISA-emulation mode 
and
thus that message was never put into the EISA-probe.

While there may be a more convoluted way of making the probing work in nice 
fashion
for ISA-in-EISA cards like the 3c509 card in EISA mode, it's going to make 
probe logic
needlessly complex.  In any case the 3c509 was not originally a true 
Plug-n-Play ISA
card, so that's not an option, the ep probe logic is basically doing the user a 
kindness
by doing an autoprobe - non Plug-n-Play ISA cards really should be hard-coded 
in the
kernel.conf file anyway.

I'd recommend this be a documentation change on the ep manual page, and in the
hardware.txt, and FAQ, rather than a driver code change.

Ted
Comment 2 Sheldon Hearn freebsd_committer freebsd_triage 2000-03-15 09:32:58 UTC
Responsible Changed
From-To: freebsd-bugs->mdodd

Matthew, you're Mr ep.  If you decide that we should change the docs 
instead of the driver, let me know and I'll do the graft. 
Comment 3 Matthew N. Dodd freebsd_committer freebsd_triage 2000-07-18 07:35:51 UTC
State Changed
From-To: open->closed

Fix committed.