Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 31 Aug 2004 19:35:43 -0400
From:      "J.R. Oldroyd" <fbsd@opal.com>
To:        =?iso-8859-1?Q?S=F8ren?= Schmidt <sos@DeepCore.dk>
Cc:        current@freebsd.org
Subject:   Re: Current 8/27/2004, DVD problems
Message-ID:  <20040831233543.GA836@linwhf.opal.com>
In-Reply-To: <4134DE3C.7080303@DeepCore.dk>
References:  <412F5A10.8080907@drexel.edu> <412F7292.6000804@DeepCore.dk> <20040830181540.GA809@linwhf.opal.com> <413372B3.5010603@DeepCore.dk> <20040830192224.GB809@linwhf.opal.com> <413390B9.5050705@DeepCore.dk> <20040831144205.GA817@linwhf.opal.com> <4134DE3C.7080303@DeepCore.dk>

next in thread | previous in thread | raw e-mail | index | archive | help
Afraid not.

Just to confirm since my line numbers seem to be a few off yours...

I have:
__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.46 2004/08/27 22:14:45 sos Exp $");

And after adding the extra call to ata_wait() there are now TWO ata_wait()s:

int
ata_generic_command(struct ata_device *atadev, u_int8_t command,
                    u_int64_t lba, u_int16_t count, u_int16_t feature)
{
    if (atadebug)
        ata_prtdev(atadev, "ata_command: addr=%04lx, command=%02x, "
                   "lba=%jd, count=%d, feature=%d\n",
                   rman_get_start(atadev->channel->r_io[ATA_DATA].res),
                   command, (intmax_t)lba, count, feature);

    /* ready to issue command ? */
    if (ata_wait(atadev, 0) < 0) {
        ata_prtdev(atadev, "timeout waiting for ready command=%02x\n", command);
        return -1;
    }

    /* select device */
    ATA_IDX_OUTB(atadev->channel, ATA_DRIVE, ATA_D_IBM | atadev->unit);

    /* ready to issue command ? */
    if (ata_wait(atadev, 0) < 0) {
        ata_prtdev(atadev, "timeout sending command=%02x\n", command);
        return -1;
    }
  
    /* enable interrupt */
    ATA_IDX_OUTB(atadev->channel, ATA_ALTSTAT, ATA_A_4BIT);

Same result.  Hangs at the CD probe with a normal boot.  Hangs also
in verbose mode with a disc in.  Does boot in verbose mode with no
disc in.

	-jr



On Aug 31, 22:23, Søren Schmidt wrote:
> J.R. Oldroyd wrote:
> >Some follow-up.
> >
> >Similar to other folks with this problem, the system will boot in
> >verbose mode.  However, ONLY with no medium.  If medium is present,
> >it still hangs.  If the tray is empty, it will boot in either DMA or
> >PIO mode.  And if I then insert a disc, I can read it OK.
> 
> Hmm does the attached patch change behavior in any way ?
> 
> -Søren

> Index: ata-lowlevel.c
> ===================================================================
> RCS file: /home/ncvs/src/sys/dev/ata/ata-lowlevel.c,v
> retrieving revision 1.44
> diff -u -r1.44 ata-lowlevel.c
> --- ata-lowlevel.c	16 Aug 2004 09:32:35 -0000	1.44
> +++ ata-lowlevel.c	24 Aug 2004 07:25:32 -0000
> @@ -721,6 +721,12 @@
>  		   rman_get_start(atadev->channel->r_io[ATA_DATA].res), 
>  		   command, (intmax_t)lba, count, feature);
>  
> +    /* ready to issue command ? */
> +    if (ata_wait(atadev, 0) < 0) { 
> +	ata_prtdev(atadev, "timeout waiting for ready command=%02x\n", command);
> +	return -1;
> +    }
> +
>      /* select device */
>      ATA_IDX_OUTB(atadev->channel, ATA_DRIVE, ATA_D_IBM | atadev->unit);
>  



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