EPIA success and problem
SONE Takeshi
ts1 at tsn.or.jp
Tue May 6 15:04:39 CEST 2003
On Tue, May 06, 2003 at 03:02:21PM -0400, Adam Sulmicki wrote:
>
> > > grumbe. This code should correct initalization as per ATA-3 specs.
> > > what hard disk is this?
> >
> > It's a 20GB drive from Fujitsu.
> >
> > I'm thinking to replace this with a 2.5" drive.
> > Should I avoid Fujitsu next time? :)
>
> heh. dunno. It would be interesting to see why it fails. Is that b/c the
> loop times out or is that b/c it does not confirm to ATA specs, or
> something else.
>
> unfortunatelly I'm at the present time busy with other things nor I have
> the hardware to test.
I inserted a call to wait_for_notbusy prior to any tests, and it worked. :)
I think this is what etherboot is doing (with appropreate timeout).
In my case, the timeout is infinite, but even if I changed it to probe
4 devices, no visible delay was observed.
(this is not a diff, cvs server seems too busy to give me a diff...)
// Disable interrupts
outb(iobase2+ATA_CB_DC, ATA_CB_DC_HD15 | ATA_CB_DC_NIEN);
+ // Wait for device to spin up
+ ata_wait_for_notbusy(iobase1);
// Look for device
outb(iobase1+ATA_CB_DH, slave ? ATA_CB_DH_DEV1 : ATA_CB_DH_DEV0);
outb(iobase1+ATA_CB_SC, 0x55);
--
Takeshi
More information about the coreboot
mailing list