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