Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 2 Feb 1998 07:39:37 -0500
From:      Randall Hopper <rhh@ct.picker.com>
To:        hackers@FreeBSD.ORG
Subject:   Tertiary IDE -- not supported?
Message-ID:  <19980202073937.25578@ct.picker.com>

next in thread | raw e-mail | index | archive | help
     I tried to build a 3.0-current kernel last night with support for a
Tertiary (3rd) IDE controller (port 0x1e8, IRQ 11).  After config, the
kernel wouldn't build until I did some patching, and once I got it built,
it wouldn't detect.

     Any tips on this would be appreciated.

Here's the saga:


***** 1. FIRST TRY: *****

controller wdc2 at isa? port "IO_WD3" bio irq 11 flags 0xa0ffa004 vector wdintr
disk       wd4  at wdc2 drive 0

No dice.  For some reason:

     #define IO_WD3 0x1e8

is missing from isa.h.  "#define IO_WD4 0x168" is missing as well.  (Are
these non-standard?)


***** 2. SECOND TRY: *****

controller wdc2 at isa? port 0x1e8 bio irq 11 flags 0xa0ffa004 vector wdintr
disk       wd4  at wdc2 drive 0


This got "isa_devtab_bio[]" set right in ioconf.c, but "isa_biotab_wdc[]"
had a conspicuous "(null)" in it as opposed to an acceptable port number
(see below).  I guess this is a bug in "config".


***** 3. THIRD TRY: *****

Touched up the generated ioconf.c and replaced the "(null)" in the corrupt
isa_biotab_wdc[] entry:

{ -1, &wdcdriver,   (null), IRQ11, -1, C 0x00000,     0,   wdintr,   4, 0x0000,
    0,    0,       0,       0,      1,        0,   0 },

with the correct port number for the teriary controller ("0x1e8").

This kernel did build, but wouldn't detect wdc2 when I booted it up.


It occurs to me that one thing I didn't try last night is activating the
IORDY jumper on the controller.  I wouldn't think this'd make any
difference for controller detection though.  (Would it?)

BTW, this is on 3.0-971208-SNAP.

Thanks in advance for any input,

Randall



<<...snip from ioconf.c after Second Try...>>

struct isa_device isa_devtab_bio[] = {
/* id     driver    iobase    irq drq      maddr   msiz      intr unit   flags s
csiid alive ri_flags reconfig enabled conflicts next */
{ 10, &wdcdriver,   IO_WD1, IRQ14, -1, C 0x00000,     0,   wdintr,   0, 0xA0FFA0
04,     0,    0,       0,       0,      1,        0,   0 },
{ 11, &wdcdriver,   IO_WD2, IRQ15, -1, C 0x00000,     0,   wdintr,   1, 0xA0FFA0
04,     0,    0,       0,       0,      1,        0,   0 },
{ 12, &wdcdriver,   0x01e8, IRQ11, -1, C 0x00000,     0,   wdintr,   2, 0xA0FFA0
04,     0,    0,       0,       0,      1,        0,   0 },
{ 13, &fdcdriver,   IO_FD1,  IRQ6,  2, C 0x00000,     0,   fdintr,   0, 0x0000,
    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,   IO_WD2, IRQ15, -1, C 0x00000,     0,   wdintr,   2, 0x0000,
    0,    0,       0,       0,      1,        0,   0 },
{ -1, &wdcdriver,   IO_WD2, IRQ15, -1, C 0x00000,     0,   wdintr,   3, 0x0000,
    1,    0,       0,       0,      1,        0,   0 },
{ -1, &wdcdriver,   (null), IRQ11, -1, C 0x00000,     0,   wdintr,   4, 0x0000,
    0,    0,       0,       0,      1,        0,   0 },
0
};
                    ^^^^^^       



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19980202073937.25578>