Subject: Re: Upgrade boot floppy locks up
To: None <port-i386@NetBSD.ORG>
From: Mike Long <mike.long@analog.com>
List: port-i386
Date: 01/25/1996 11:18:35
[moved to port-i386 from netbsd-help]

>Date: Wed, 24 Jan 96 11:22:11 EST
>From: Mike Long <Mike.Long@spd.analog.com>
>
>>From: Brad Colbert <bcolbert@gotham.accurate-automation.com>
>>Date: Tue, 23 Jan 1996 16:58:26 -0500 (EST)
>
>>   I'm trying to upgrade to 1.1 but I can't get the kernel/upgrade floppies
>>   to boot.  It locks up on what it says is an sea0 device?  I don't
>>   know what that is.  Here is what I have:
>
>>   Buslogic 445S (local bus)
>
>This is the second report like this I've seen.  I have experienced the
>same thing, and I have a Buslogic 445C.  My card is located at 0x334
>(found as bt1); I'd like to know if yours is the same.
>
>I've tracked the problem down to the uha driver.  Something in the uha
>probe violently disagrees with the presence of a BusLogic 445[SC], and
>the system hangs.
>
>I haven't had time to track it further.  But this is a show-stopping
>bug for anyone with a BT445[SC], and needs to be fixed ASAP.

I looked into this problem some more last night.  The system hangs
while probing for uha0 (iobase 0x330), at the point in u14_find()
indicated below:

#define U14_ID			0x0004	/* product id reg (2 ports) */
...
int
u14_find(uha, ia)
	struct uha_softc *uha;
	struct isa_attach_args *ia;
{
	int iobase = ia->ia_iobase;
	u_short model, config;
	int resetcount = 4000;	/* 4 secs? */

	if (ia->ia_iobase == IOBASEUNK)
		return ENXIO;

	model = htons(inw(iobase + U14_ID));
BOOM! ----------------^

The actual operation that causes the hang is inw(0x334).  This is
almost certainly a hardware bug in the BT445[CS], because a simple I/O
read should *never* hang the bus indefinitely.

Someone who knows more about the Buslogic and Ultrastor cards will
have to take it from here:

* Is it possible to read the model number from the Ultrastor card with
  two 8-bit accesses instead of one 16-bit access?

* Why does the Buslogic card disagree so violently with the 16-bit I/O
  read of its control/status port?

Comments?
-- 
Mike Long <mike.long@analog.com>           http://www.shore.net/~mikel
VLSI Design Engineer         finger mikel@shore.net for PGP public key
Analog Devices, CPD Division          CCBF225E7D3F7ECB2C8F7ABB15D9BE7B
Norwood, MA 02062 USA       (eq (opinion 'ADI) (opinion 'mike)) -> nil