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>
