Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 14 Mar 2000 17:50:02 -0800 (PST)
From:      Ted Mittelstaedt <tedm@ipinc.net>
To:        freebsd-bugs@FreeBSD.org
Subject:   re: i386/2598: ep0 in eisa mode hangs if ep0-device (isa) is enabled
Message-ID:  <200003150150.RAA46015@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR i386/2598; it has been noted by GNATS.

From: Ted Mittelstaedt <tedm@ipinc.net>
To: "'freebsd-gnats-submit@freebsd.org'" <freebsd-gnats-submit@freebsd.org>,
	"'mi@aldan.algebra.com'" <mi@aldan.algebra.com>
Cc:  
Subject: re: i386/2598: ep0 in eisa mode hangs if ep0-device (isa) is enabled
Date: Tue, 14 Mar 2000 17:44:28 -0800

 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
 


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200003150150.RAA46015>