Date: Sun, 9 Nov 1997 22:20:01 -0800 (PST) From: Bruce Evans <bde@zeta.org.au> To: freebsd-bugs Subject: Re: kern/4921: sio0/sio1 not found - probe test 5 and 8 failed Message-ID: <199711100620.WAA06828@hub.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/4921; it has been noted by GNATS. From: Bruce Evans <bde@zeta.org.au> To: cjafe@tin.it, freebsd-gnats-submit@FreeBSD.ORG Cc: Subject: Re: kern/4921: sio0/sio1 not found - probe test 5 and 8 failed Date: Mon, 10 Nov 1997 17:10:04 +1100 >>Description: >Totem motherboard TX1, bios 1.2N, Award Bios 4.51PG, chipset 430Tx, ALI 5135, AMD K6 166Mhz. >during boot i receive this message: > >sio0 not found >probe test 5 failed >sio1 not found >probe test 8 failed This is probably caused by nonstandard hardware configuration of the IRQs. I get similar failures if I swap the IRQs using userconfig. The above messages can't happen (please be careful transcribing error messages), but the asymmetry of the failures suggests that sio0 is getting in the way of sio1, so I was able to debug this quickly. I get the following messages: sio0: probe test 3 failed sio0: not found at 0x3f8 sio1: probe test 5 failed sio1: probe test 8 failed sio1: not found at 0x2f8 With the IRQs swapped, test 3 on sio0 normally fails because it tests the wrong IRQ and sio1 has not been initialized enough to confuse the issue. But sometimes, sio1 will be driving the IRQ _low_ at boot time. Then partial initalization of sio1 will float the IRQ high and cause a false positive for test 3 on sio0. The error will be detected later because the IRQ won't go away so tests 5 and 8 on sio0 will fail. This behaviour is surprising. I would have expected the floating IRQ to cause a false positive for test 3 on sio0 in all (IRQ swapped) cases. It doesn't because the interrupt controller (ICU) loses track of the IRQ state when the ICU is reset. With the IRQs swapped, tests 5 and 8 on sio1 always fail because sio0 _has_ been initialized enough to confuse the issue. sio0's IRQ is driven low and high during the sio0 probe and floats high at the end of the probe, so the behaviour is the same as in the "sometimes" case above (with the sio's swapped). Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199711100620.WAA06828>