Date: Wed, 4 Nov 1998 00:03:12 -0800 (PST) From: igusarov@crow.mephi.net.ru To: freebsd-gnats-submit@FreeBSD.ORG Subject: i386/8571: Bug in config utility in FreeBSD 2.2.6-RELEASE Message-ID: <199811040803.AAA13802@hub.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 8571
>Category: i386
>Synopsis: Bug in config utility in FreeBSD 2.2.6-RELEASE
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Wed Nov 4 00:10:01 PST 1998
>Last-Modified:
>Originator: Igor Goussarov
>Organization:
Moscow Engineering and Physics Institute
>Release: 2.2.6
>Environment:
FreeBSD crow.mephi.net.ru 2.2.6-RELEASE FreeBSD 2.2.6-RELEASE
#0: Sat Apr 25 18:54:30 MSD 1998
root@crow.mephi.ru:/usr/src/sys/compile/CROW i386
>Description:
CONFIG incorrectly processes explicitly supplied IO addresses for IDE
controller (wdc). When I try to set it's IO address for wdc controller
via "port" parametr even to it's standard value 0x0170, the kernel
compilation fails with error in ioconf.c
>How-To-Repeat:
Make a copy of standard config file:
cp /usr/src/sys/i386/conf/GENERIC /usr/src/sys/i386/conf/TMP
And edit the lines in /usr/src/sys/i386/conf/TMP so that the
definition of IDE controller looks like
controller wdc1 at isa? port 0x0170 bio irq 15 flags 0x80ff80ff vector wdintr
disk wd2 at wdc1 drive 0
It'll produce the following lines in /usr/src/sys/compile/TMP/ioconf.c
struct isa_device isa_devtab_bio[] = {
/* id driver iobase irq drq maddr msiz intr unit flags scsiid alive ri_flags reconfig enabled conflicts next */
{ 6, &fdcdriver, IO_FD1, IRQ6, 2, C 0x00000, 0, fdintr, 0, 0x0000, 0, 0, 0, 0, 1, 0, 0 },
{ 7, &wdcdriver, IO_WD1, IRQ14, -1, C 0x00000, 0, wdintr, 0, 0x80FF80FF, 0, 0, 0, 0, 1, 0, 0 },
{ 8, &wdcdriver, 0x0170, IRQ15, -1, C 0x00000, 0, wdintr, 1, 0x80FF80FF, 0, 0, 0, 0, 1, 0, 0 },
0};
struct isa_device isa_biotab_wdc[] = {
/* id driver iobase irq drq maddr msiz intr unit flags drive alive ri_flags reconfig enabled conflicts next */
{ -1, &wdcdriver, IO_WD1, IRQ14, -1, C 0x00000, 0, wdintr, 0, 0x0000, 0, 0, 0, 0, 1, 0, 0 },
{ -1, &wdcdriver, IO_WD1, IRQ14, -1, C 0x00000, 0, wdintr, 1, 0x0000, 1, 0, 0, 0, 1, 0, 0 },
{ -1, &wdcdriver, (null), IRQ15, -1, C 0x00000, 0, wdintr, 2, 0x0000, 0, 0, 0, 0, 1, 0, 0 },
0};
No doubt, the kernel with (null) instead of wdc1 IO base address can't
be compiled. Note that in isa_devtab_bio structure IO address stated
correctly.
>Fix:
This situation can be avoided only if I type
controller wdc1 at isa? port "0x0170" bio irq 15 flags 0x80ff80ff vector wdintr
then that port address appears in ioconf.c as it was given in config
file and such kernel compiles just fine. So as far as all the other
devices can be configured with IO address without any quotation marks
and this controller can not - thus I guess it's a kind of bug.
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199811040803.AAA13802>
