From owner-freebsd-current Fri Sep 22 06:17:40 1995 Return-Path: owner-current Received: (from root@localhost) by freefall.freebsd.org (8.6.12/8.6.6) id GAA29608 for current-outgoing; Fri, 22 Sep 1995 06:17:40 -0700 Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.34]) by freefall.freebsd.org (8.6.12/8.6.6) with ESMTP id GAA29600 for ; Fri, 22 Sep 1995 06:17:29 -0700 Received: (from bde@localhost) by godzilla.zeta.org.au (8.6.9/8.6.9) id XAA07515; Fri, 22 Sep 1995 23:13:37 +1000 Date: Fri, 22 Sep 1995 23:13:37 +1000 From: Bruce Evans Message-Id: <199509221313.XAA07515@godzilla.zeta.org.au> To: current@FreeBSD.org, josh@American.COM, vak@cronyx.ru Subject: Re: more ATAPI CD issues Sender: owner-current@FreeBSD.org Precedence: bulk >> First, the current layering of wd.c is obviously not well suited to this >> configuration. Your ATAPI controller has to react a certain way to particular >> ATA commands to get to the point of being probed at all as an ATAPI CD. The 3 >> trials of ATA you must pass are 1) writable byte count / cyl. address >> registers, 2) successful wdreset(), and 3) successful WDCC_DIAGNOSE behavior. >> >> The first test is reasonable, for what its worth. >This test could fail for single-drive configurations. >The driver does not set the drive unit number to 0 before testing >the cylinder register. If the BIOS leaves it set to 1, then the test >will fail... I tried toggling the drive select bit (in a debugger with interrupts off) on a single-drive IDE system and the test continued to work. The status register changed from 0x50 to 0x00 (0x00 for the nonexistent drive) and the cyl_lo register held values written to it. The altsts register did not change from 0xf0. Has EIDE changed the required behaviour here? Bruce