Date: Thu, 6 Mar 2003 09:10:20 +0800 From: "David Xu" <davidxu@freebsd.org> To: "Luoqi Chen" <lchen@briontech.com>, <current@FreeBSD.ORG> Subject: Re: ATA MODE_SENSE_BIG timeout Message-ID: <000701c2e37d$285ce930$f001a8c0@davidw2k> References: <AHEKICEOIHLOGINAFIINCENOCAAA.lchen@briontech.com>
next in thread | previous in thread | raw e-mail | index | archive | help
----- Original Message -----=20 From: "Luoqi Chen" <lchen@briontech.com> To: "David Xu" <davidxu@FreeBSD.ORG>; <current@FreeBSD.ORG> Sent: Wednesday, March 05, 2003 8:44 AM Subject: RE: ATA MODE_SENSE_BIG timeout > > For those want to fix ATA code, I have another problem > > with CURRENT. I have a Tyan Tiger 230T which is based > > on VIA Apollo 133T, south bridge is VIA 686B. > > On second IDE, I have a Mitsubishi 52X cdrom as master, > > and a Sony 16X CD R/W as slave, when startup, kernel > > is always stuck at "MODE_SENSE_BIG timeout". > > I fortunately catched the dmesg text since ATA code past the=20 > > probing stage. In most case, it will be stuck there forever. > > BTW, both Linux (2.2.14, Redhat) and MS Windows can probe > > these devices in few seconds without any problem. > >=20 > I had more than a few machines behaved this way. I believe > the problem is with the probe and attach sequence of our > ata driver. After an ATA reset, according to spec, an ATAPI > device is supposed to present the ATAPI signature and deassert > the ready bit, until it receives its first packet command. > However when the ata driver issues the first mode sense command, > it polls first for the ready bit which never becomes set and > the operation times out. The most obviously solution is > sending the first command without checking for the ready bit. >=20 > My solution is a little different, but works equally well, > instead I issue an ATAPI reset (what now called a device reset?), > because I don't want to write another or alter the current > ata_command function and we need an atapi_reset function anyway. > According spec, atapi devices SHOULD ONLY be reset via the > atapi reset command (our ata driver doesn't follow this rule). >=20 > The patch is for -stable. I hope it's not too difficult to port > to -current. >=20 I have applied the patch manually to CURRENT, it helps nothing. :( Then I booted kernel without the patch, waited for a very long time to=20 let ata code retry, finally it found the Sony 16X CD RW, but I can=20 not mount it. It is always timeout. David Xu To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?000701c2e37d$285ce930$f001a8c0>