[442] in NetBSD-Development

home help back first fref pref prev next nref lref last post

3c509 autodetect problem workaround

daemon@ATHENA.MIT.EDU (ghudson@MIT.EDU)
Fri Jan 20 20:32:57 1995

From: ghudson@MIT.EDU
Date: Fri, 20 Jan 1995 20:32:37 -0500
To: netbsd-dev@MIT.EDU, christos@deshaw.com


I came up with a workaround for the 3c509 autodetect problems.  In
sys/arch/i386/isa/if_ep.c, I added some code to the ISA probing
sequence:

		for (slot = 0; slot < 10; slot++) {
			elink_reset();
			elink_idseq(ELINK_509_POLY);
			if (slot == 0)
				outb(ELINK_ID_PORT, 0xd0);
			/* ... */


(I also removed a delay(1000) which I don't think was necessary.)  The
idea here is to reset the tags on all of the cards during the first
probe.

This allows 3c509 cards to be detected on a warm boot, but is only a
workaround for two reasons: first, it doesn't use a symbolic name for
0xd0, and second, the kernel is still unable to figure out what
connectors the 3c509 card has after a warm boot (it gets the base
address and IRQ right, and it still gets the correct ports after a
cold boot).  This doesn't seem to be a serious problem (it just means
that the kernel message is wrong during autoprobing), but it's
annoying.  Unfortunately, my only reference material is the Linux
3c509 driver, which doesn't figure out what ports are available on the
card.  I'm hoping that this will help point Christos (who probably has
technical documentation) in the right direction.

[The rest of this note is MIT-specific.]

I've updated the Athena installation script to only select a kernel
based on aha vs. bt, and I upgraded both the script and the kernels
(just two of them now) on sipb.mit.edu so that people who install at
this point will get new kernels.

In other news, I've started testing of a snapshot of -current on
lola-granola; the snapshot is in /mit/netbsd/dev/athena-kernel.  It
seems to work fine, except that "ps" and "w" have to be updated to
match the kernel.  This is annoying, and I'm considering writing
versions of these utilities which use procfs so that it's not a
problem in the future.


home help back first fref pref prev next nref lref last post