From owner-freebsd-hackers Tue Dec 2 10:10:58 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id KAA19868 for hackers-outgoing; Tue, 2 Dec 1997 10:10:58 -0800 (PST) (envelope-from owner-freebsd-hackers) Received: from iworks.InterWorks.org (deischen@iworks.interworks.org [128.255.18.10]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id KAA19850; Tue, 2 Dec 1997 10:10:53 -0800 (PST) (envelope-from deischen@iworks.interworks.org) Received: (from deischen@localhost) by iworks.InterWorks.org (8.7.5/) id MAA10260; Tue, 2 Dec 1997 12:13:54 -0600 (CST) Message-Id: <199712021813.MAA10260@iworks.InterWorks.org> Date: Tue, 2 Dec 1997 12:13:54 -0600 (CST) From: "Daniel M. Eischen" To: freebsd-hackers@freebsd.org, freebsd-mobile@freebsd.org Subject: Fix for slow reacting ATAPI CD-ROM Sender: owner-freebsd-hackers@freebsd.org X-Loop: FreeBSD.org Precedence: bulk Please forgive the cross-post, wasn't sure where this belongs. I have a new ChemUSA Chembook and everything works fine except for the CD-ROM drive, which times out waiting for the command phase in atapi_wait_cmd(). I was able to get it to work by increasing the wait count to 3000. /* Wait for DRQ from 50 usec to 3 msec for slow devices */ int cnt = ata->intrcmd ? 10000 : ata->slow ? 3000 : 50; int ireason = 0, phase = 0; + cnt = 3000; + /* Wait for command phase. */ for (; cnt>0; cnt-=10) { ireason = inb (ata->port + AR_IREASON); Obviously, this drive isn't detected as a slow device (I can post the boot messages later if needed). What I wanted to do was to add a config flag for setting this, but it doesn't look like that is sent down to the atapi driver. Question: Can we change atapi_attach() to accept a 4th argument and use this to pass config flags from wdattach() in wd.c? Is there another method I should be using to handle atapi device quirks? Thanks, Dan Eischen deischen@iworks.InterWorks.org