Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 22 Mar 2002 10:33:16 +0100 (CET)
From:      Søren Schmidt <sos@freebsd.dk>
To:        Ian Dowse <iedowse@maths.tcd.ie>
Cc:        Jon Larssen <jonlarssen@hotmail.com>, freebsd-stable@freebsd.org, sos@freebsd.org
Subject:   Re: Is ATA partially broken in -STABLE?
Message-ID:  <200203220933.g2M9XGT90073@freebsd.dk>
In-Reply-To: <200203220914.aa83048@salmon.maths.tcd.ie>

next in thread | previous in thread | raw e-mail | index | archive | help
It seems Ian Dowse wrote:
> In message <F67M19VMczi9yzu23Li00008fa7@hotmail.com>, Jon Larssen writes:
> >I have just cvsup'd my -STABLE system running under VMware 3
> >Workstation under Windows 2000.  After making world and a
> >GENERIC kernel I can't boot into my system.  These are the
> >messages I get:
> >
> >ata0-master: timeout waiting for interrupt
> >ata0-master: ATA identify failed
> >ata1-master: timeout waiting for interrupt
> >ata1-master: ATAPI identify failed
> 
> I get something similar with VMware2. The following patch seems to work
> for me, but I haven't really investigated the problem. It is the change
> in ata_boot_attach() below that actually makes the difference; I think
> the ata_attach bit won't affect boot-time probes.

Its a known problem, the old way of solving it was:

diff -u -r1.50.2.30 ata-all.c
--- ata-all.c   2002/03/18 08:37:33     1.50.2.30
+++ ata-all.c   2002/03/21 08:39:59
@@ -1039,13 +1039,14 @@

     case ATA_WAIT_INTR:
        atadev->channel->active |= ATA_WAIT_INTR;
+       asleep((caddr_t)atadev->channel, PRIBIO, "atacmd", 10 * hz);
        ATA_OUTB(atadev->channel->r_io, ATA_CMD, command);

        /* enable interrupt */
        if (atadev->channel->flags & ATA_QUEUED)
            ATA_OUTB(atadev->channel->r_altio, ATA_ALTSTAT, ATA_A_4BIT);

-       if (tsleep((caddr_t)atadev->channel, PRIBIO, "atacmd", 10 * hz)) {
+       if (await(PRIBIO, 10 * hz)) {
            ata_prtdev(atadev, "timeout waiting for interrupt\n");
            atadev->channel->active &= ~ATA_WAIT_INTR;
            error = -1;

-Søren

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




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