From owner-freebsd-hackers Mon Feb 2 04:40:28 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id EAA23770 for hackers-outgoing; Mon, 2 Feb 1998 04:40:28 -0800 (PST) (envelope-from owner-freebsd-hackers@FreeBSD.ORG) Received: from whqvax.picker.com (whqvax.picker.com [144.54.1.1]) by hub.freebsd.org (8.8.8/8.8.8) with SMTP id EAA23764 for ; Mon, 2 Feb 1998 04:40:25 -0800 (PST) (envelope-from rhh@ct.picker.com) Received: from ct.picker.com by whqvax.picker.com with SMTP; Mon, 2 Feb 1998 7:39:54 -0500 (EST) Received: from elmer.ct.picker.com by ct.picker.com (4.1/SMI-4.1) id AA20126; Mon, 2 Feb 98 07:39:51 EST Received: by elmer.ct.picker.com (SMI-8.6/SMI-SVR4) id HAA20042; Mon, 2 Feb 1998 07:39:42 -0500 Message-Id: <19980202073937.25578@ct.picker.com> Date: Mon, 2 Feb 1998 07:39:37 -0500 From: Randall Hopper To: hackers@FreeBSD.ORG Subject: Tertiary IDE -- not supported? Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.88 Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG X-To-Unsubscribe: mail to majordomo@FreeBSD.org "unsubscribe hackers" 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 }; ^^^^^^