Subject: kern/4883: cy_isa never probes.
To: None <gnats-bugs@gnats.netbsd.org>
From: Andreas Wrede <andreas@planix.com>
List: netbsd-bugs
Date: 01/24/1998 10:25:21
>Number: 4883
>Category: kern
>Synopsis: cy_isa.c checks for wildcarded i/o address, but the board does not use i/o ports.
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: kern-bug-people (Kernel Bug People)
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sat Jan 24 07:35:01 1998
>Last-Modified:
>Originator: Andreas Wrede
>Organization:
Planix, Inc.
>Release: <NetBSD-current source date> NetBSD 1.3 release
>Environment:
System: NetBSD darkstar 1.3 NetBSD 1.3 (DARKSTAR) #6: Fri Jan 23 18:15:22 EST 1998 root@darkstar:/var/local/src/netbsd/src/sys/arch/i386/compile/DARKSTAR i386
>Description:
The cyclades ISA front cy_isa.c checks if the i/o port parameter in
the kernel config file was a wildcard and exits if it is. To my
knowledge, cyclades boards do not use i/o ports, so the test always
succeeds and the board is never probed.
>How-To-Repeat:
Install a properly configured cylcom-y ISA card and boot a kernel with
a cy driver configured for the isa bus. Observe that the driver does
not receognize the card.
>Fix:
Apply the following fix:
*** src/sys/dev/isa/cy_isa.c.orig Tue Oct 21 04:19:24 1997
--- src/sys/dev/isa/cy_isa.c Fri Jan 23 18:14:54 1998
***************
*** 45,53 ****
sc.sc_memt = ia->ia_memt;
sc.sc_bustype = CY_BUSTYPE_ISA;
! /* Disallow wildcarded i/o address. */
! if (ia->ia_iobase == ISACF_PORT_DEFAULT)
return (0);
if (ia->ia_irq == IRQUNK) {
printf("%s: interrupt not defined\n", sc.sc_dev.dv_xname);
--- 45,55 ----
sc.sc_memt = ia->ia_memt;
sc.sc_bustype = CY_BUSTYPE_ISA;
! /* Disallow wildcarded memory address. */
! if (ia->ia_maddr == ISACF_IOMEM_DEFAULT) {
! printf("%s: memory addr not defined\n", sc.sc_dev.dv_xname);
return (0);
+ }
if (ia->ia_irq == IRQUNK) {
printf("%s: interrupt not defined\n", sc.sc_dev.dv_xname);
>Audit-Trail:
>Unformatted: