Re: Current 8/27/2004, DVD problems

From: J.R. Oldroyd <fbsd_at_opal.com>
Date: Tue, 31 Aug 2004 19:35:43 -0400
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
> _at__at_ -721,6 +721,12 _at__at_
>  		   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);
>  
Received on Tue Aug 31 2004 - 21:35:55 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:09 UTC