EPIA success and problem
SONE Takeshi
ts1 at cma.co.jp
Tue May 6 13:50:01 CEST 2003
On Tue, May 06, 2003 at 12:13:09PM -0400, Adam Sulmicki wrote:
> > It now boots into GRUB in less than 2 seconds. :)
> > (It's too fast for IDE drive to spin up, so I have to hit reset
> > button after cold start.)
>
> hmm, in rombios.c, can you try increasing ATA_WAIT_COUNT by magnitude or
> two and see if it helps?
Tried it but no success.
I increased that value to 0xFFFFFFFF (it should be infinite :)
but nothing changed.
Also, I put some debug statement like this:
// If we found something
sc = inb(iobase1+ATA_CB_SC);
sn = inb(iobase1+ATA_CB_SN);
printf("A\n");
if ( (sc == 0x55) && (sn == 0xaa) ) {
printf("B\n");
write_byte(ebda_seg,&EbdaData->ata.devices[device].type,ATA_TYPE_UNKNOWN);
// reset the channel
ata_reset (device);
printf("C\n");
// check for ATA or ATAPI
outb(iobase1+ATA_CB_DH, slave ? ATA_CB_DH_DEV1 : ATA_CB_DH_DEV0);
sc = inb(iobase1+ATA_CB_SC);
sn = inb(iobase1+ATA_CB_SN);
if ( (sc==0x01) && (sn==0x01) ) {
printf("D\n");
cl = inb(iobase1+ATA_CB_CL);
And the output is this:
Bochs BIOS, 1 cpu, $Revision: 1.1 $ $Date: 2002/11/25 02:07:53 $
[BOCHS BIOS VER:1.79]
[COMPILE DATE:May 7 2003 TIME:03:04:48]
DEVICE:0
A
int13_harddisk: function 02, unmapped device for DL=80
Boot from Hard Disk 0 failed
FATAL: Could not read the boot disk
Then tried this:
// If we found something
sc = inb(iobase1+ATA_CB_SC);
sn = inb(iobase1+ATA_CB_SN);
printf("sc=%x sn=%x\n", sc, sn);
if ( (sc == 0x55) && (sn == 0xaa) ) {
write_byte(ebda_seg,&EbdaData->ata.devices[device].type,ATA_TYPE_UNKNOWN);
And the result:
[COMPILE DATE:May 7 2003 TIME:03:17:52]
DEVICE:0
sc=0080 sn=0080
int13_harddisk: function 02, unmapped device for DL=80
Hope this helps.
--
Takeshi
More information about the coreboot
mailing list