Subject: kern/12313: bha driver fails miserably on 164LX alpha
To: None <gnats-bugs@gnats.netbsd.org>
From: Tim Rightnour <root@polaris.garbled.net>
List: netbsd-bugs
Date: 03/02/2001 00:54:10
>Number:         12313
>Category:       kern
>Synopsis:       bha driver fails miserably on 164LX alpha
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Mar 01 23:44:00 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     Tim Rightnour
>Release:        ANY<NetBSD-current source date>
>Organization:
	
>Environment:
	
System: NetBSD polaris 1.5_ALPHA2 NetBSD 1.5_ALPHA2 (POLARIS) #1: Wed Dec 13 00:45:28 MST 2000 root@polaris:/usr/src/sys/arch/i386/compile/POLARIS i386


>Description:
Boot a generic kernel on a 164LX alpha conaining a buslogic PCI scsi adapter.
The adapter will issue an error, and fail to probe:

bha_find: illegal irq setting 0

The problem is likely somewhere in bha.c where the attach routines look at the
interrupt level, and assign it to an IRQ.  If you change the following code:
--- fu  Fri Mar  2 00:51:40 2001
+++ bha.c       Fri Jan 12 11:00:44 2001
@@ -974,7 +974,7 @@
        default:
                printf("bha_find: illegal irq setting %x\n",
                    config.reply.intr);
-               irq=config.reply.intr;
+               return (0);
        }
 
        /* if we want to fill in softc, do so now */
The adapter will work fine:

bha_find: illegal irq setting 0
bha0 at pci0 dev 5 function 0: BusLogic 9xxC SCSI
bha_find: illegal irq setting 0
bha0: interrupting at eb164 irq 2
bha0: model BT-958D, firmware 5.06I
bha0: sync, parity
bha0 targ 0: sync, offset 15, period 100nsec
bha0 targ 1: sync, offset 15, period 100nsec
bha0 targ 2: sync, offset 15, period 100nsec
bha0 targ 3: sync, offset 15, period 100nsec
bha0 targ 4: sync, offset 15, period 100nsec
bha0 targ 5: sync, offset 15, period 100nsec
bha0 targ 6: sync, offset 15, period 100nsec
bha0 targ 8: sync, offset 15, period 100nsec
bha0 targ 9: sync, offset 15, period 100nsec
bha0 targ 10: sync, offset 15, period 100nsec
scsibus1 at bha0: 16 targets, 8 luns per target


	
>How-To-Repeat:
Try to use a bha controller on a 164LX.. be confused.

Note: this problem has existed since 1.3.  I thought I had allready PR'ed this
issue but cannot find any PR for it, so I am opening this one.

	
>Fix:
definately not the diff I pasted.
	
>Release-Note:
>Audit-Trail:
>Unformatted: