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