Hi Kevin et al,
In this log file:
http://ward.vandewege.net/coreboot/seabios/20090515-seabios-sgabios-serial-d...
you can see that seabios is having a hard time on this mcp55 detecting controllers/disks:
...... init hard drives ATA controller 0 at 1f0/3f0 (dev 20 prog_if 8a) ATA controller 1 at 170/370 (dev 20 prog_if 8a) ATA controller 2 at 5000/5070 (dev 28 prog_if 85) ATA controller 3 at 5010/5080 (dev 28 prog_if 85) powerup iobase=1f0 st=0 powerup iobase=1f0 st=0 ata_detect drive=0 sc=55 sn=aa dh=a0 ata_reset driveid=0 ata_reset exit status=0 Identify w0=85c0 w2=0 ata0-0: PIONEER DVD-RW DVR-111D ATAPI-5 CD-Rom/DVD-Rom powerup iobase=1f0 st=50 powerup iobase=1f0 st=0 ata_detect drive=1 sc=55 sn=aa dh=b0 send_cmd : read error (status=01 err=04) IDE time out powerup IDE floating powerup IDE floating ata_detect drive=2 sc=ff sn=ff dh=ff powerup IDE floating powerup IDE floating ata_detect drive=3 sc=ff sn=ff dh=ff powerup iobase=5000 st=50 powerup iobase=5000 st=50 ata_detect drive=4 sc=55 sn=aa dh=a0 ata_reset driveid=4 ata_reset exit status=50 send_cmd : read error (status=51 err=04) Identify w0=427a w2=0 ata2-0: PCHS=16383/16/63 translation=lba LCHS=1024/255/63 ata2-0: WDC WD2500SD-01KCB0 ATA-6 Hard-Disk (232 GiBytes) powerup iobase=5000 st=50 powerup iobase=5000 st=0 ata_detect drive=5 sc=55 sn=aa dh=b0 send_cmd : DRQ not set (status 00) powerup iobase=5010 st=7f powerup iobase=5010 st=7f ata_detect drive=6 sc=ff sn=ff dh=ff powerup iobase=5010 st=7f powerup iobase=5010 st=7f ata_detect drive=7 sc=ff sn=ff dh=ff
Scan for option roms ......
It takes about 30 seconds between printing
ata0-0: PIONEER DVD-RW DVR-111D ATAPI-5 CD-Rom/DVD-Rom
and
ata2-0: WDC WD2500SD-01KCB0 ATA-6 Hard-Disk (232 GiBytes)
on the console. Cold or warm boot does not appear to make a difference, which is perhaps not surprising since I still have so much logging on that the disk is always spun up by the time the machine gets to seabios and its disk detection.
Is there something that can be done about this?
Thanks, Ward.
On Fri, May 15, 2009 at 11:37:56AM -0400, Ward Vandewege wrote:
you can see that seabios is having a hard time on this mcp55 detecting controllers/disks:
[...]
ata0-0: PIONEER DVD-RW DVR-111D ATAPI-5 CD-Rom/DVD-Rom powerup iobase=1f0 st=50 powerup iobase=1f0 st=0 ata_detect drive=1 sc=55 sn=aa dh=b0 send_cmd : read error (status=01 err=04) IDE time out
Ughh. It looks like your cdrom is out of spec (or very confused).
I'm assuming you have just a cdrom on the first controller (as the first drive). If so, it should be returning zeros when we probe the second drive of the first controller - however it appears to be responding to the registers.
Because seabios thinks something is present on the second drive, it tries to identify it. The packet identify command fails ("send_cmd : read error"), and then seabios waits for the RDY signal so that it can send a normal identify command. However, RDY never becomes available and SeaBIOS times out 30 seconds later.
Anyone have suggestions on a more robust drive detect routine?
-Kevin
Kevin O'Connor wrote:
Anyone have suggestions on a more robust drive detect routine?
I guess you've already looked at FILO's detect code?
The other code I can recommend is ATADRVR and/or MINDRVR.
http://www.ata-atapi.com/atadrvr.html http://www.ata-atapi.com/mindrvr.html
The former is more complete and robust, the latter is stripped down a bit.
//Peter
On Sat, May 16, 2009 at 08:15:52PM +0200, Peter Stuge wrote:
Kevin O'Connor wrote:
Anyone have suggestions on a more robust drive detect routine?
I guess you've already looked at FILO's detect code?
The other code I can recommend is ATADRVR and/or MINDRVR.
http://www.ata-atapi.com/atadrvr.html http://www.ata-atapi.com/mindrvr.html
Thanks - that's a handy reference.
Unfortunately, it doesn't seem to have detection code as advanced as SeaBIOS or filo.
I did note that it uses a small delay when switching drives - I've committed something similar to SeaBIOS.
-Kevin
On Fri, May 15, 2009 at 11:32:37PM -0400, Kevin O'Connor wrote:
On Fri, May 15, 2009 at 11:37:56AM -0400, Ward Vandewege wrote:
you can see that seabios is having a hard time on this mcp55 detecting controllers/disks:
[...]
ata0-0: PIONEER DVD-RW DVR-111D ATAPI-5 CD-Rom/DVD-Rom powerup iobase=1f0 st=50 powerup iobase=1f0 st=0 ata_detect drive=1 sc=55 sn=aa dh=b0 send_cmd : read error (status=01 err=04) IDE time out
Ughh. It looks like your cdrom is out of spec (or very confused).
I'm assuming you have just a cdrom on the first controller (as the first drive). If so, it should be returning zeros when we probe the second drive of the first controller - however it appears to be responding to the registers.
This board (m57sli) has only one ide connector. The CDROM drive is the only thing connected to it via an 80 pin ide cable with two connectors. It's connected to the connector at the end of the cable. The drive is set to master with a jumper. It's a Pioneer DVR-111D. It appears to work normally (at least for reading data CDs from gnu/linux).
Because seabios thinks something is present on the second drive, it tries to identify it. The packet identify command fails ("send_cmd : read error"), and then seabios waits for the RDY signal so that it can send a normal identify command. However, RDY never becomes available and SeaBIOS times out 30 seconds later.
Hmm. So, cdrom firmware bug?
Thanks, Ward.
Ward Vandewege wrote:
Hmm. So, cdrom firmware bug?
Does FILO behave the same way?
Can you try with a few different optical drives?
//Peter
On Thu, May 21, 2009 at 12:19:20PM -0400, Ward Vandewege wrote:
This board (m57sli) has only one ide connector.
That's odd - what is:
ata2-0: PCHS=16383/16/63 translation=lba LCHS=1024/255/63 ata2-0: WDC WD2500SD-01KCB0 ATA-6 Hard-Disk (232 GiBytes)
from?
The CDROM drive is the only thing connected to it via an 80 pin ide cable with two connectors. It's connected to the connector at the end of the cable. The drive is set to master with a jumper. It's a Pioneer DVR-111D. It appears to work normally (at least for reading data CDs from gnu/linux).
Because seabios thinks something is present on the second drive, it tries to identify it. The packet identify command fails ("send_cmd : read error"), and then seabios waits for the RDY signal so that it can send a normal identify command. However, RDY never becomes available and SeaBIOS times out 30 seconds later.
Hmm. So, cdrom firmware bug?
It looks that way to me.
Filo has a specific test to see if a "slave" drive exists. Can you try the patch attached and see if it improves things?
-Kevin
Kevin O'Connor wrote:
That's odd - what is:
ata2-0: PCHS=16383/16/63 translation=lba LCHS=1024/255/63 ata2-0: WDC WD2500SD-01KCB0 ATA-6 Hard-Disk (232 GiBytes)
from?
That seems to be a SATA drive.
//Peter
On Sun, May 24, 2009 at 08:42:14PM +0200, Peter Stuge wrote:
Kevin O'Connor wrote:
That's odd - what is:
ata2-0: PCHS=16383/16/63 translation=lba LCHS=1024/255/63 ata2-0: WDC WD2500SD-01KCB0 ATA-6 Hard-Disk (232 GiBytes)
from?
That seems to be a SATA drive.
Yes, it is.
Thanks, Ward.
On Sun, May 24, 2009 at 02:04:09PM -0400, Kevin O'Connor wrote:
On Thu, May 21, 2009 at 12:19:20PM -0400, Ward Vandewege wrote:
This board (m57sli) has only one ide connector.
That's odd - what is:
ata2-0: PCHS=16383/16/63 translation=lba LCHS=1024/255/63 ata2-0: WDC WD2500SD-01KCB0 ATA-6 Hard-Disk (232 GiBytes)
from?
The CDROM drive is the only thing connected to it via an 80 pin ide cable with two connectors. It's connected to the connector at the end of the cable. The drive is set to master with a jumper. It's a Pioneer DVR-111D. It appears to work normally (at least for reading data CDs from gnu/linux).
Because seabios thinks something is present on the second drive, it tries to identify it. The packet identify command fails ("send_cmd : read error"), and then seabios waits for the RDY signal so that it can send a normal identify command. However, RDY never becomes available and SeaBIOS times out 30 seconds later.
Hmm. So, cdrom firmware bug?
It looks that way to me.
Filo has a specific test to see if a "slave" drive exists. Can you try the patch attached and see if it improves things?
Sorry for the delay... The patch does help, the delay is gone. Here's a boot log:
http://ward.vandewege.net/coreboot/m57sli/v1.1/seabios-with-check-pdiag.cap
Thanks! Ward.
On Wed, Jun 10, 2009 at 12:05:35PM -0400, Ward Vandewege wrote:
Sorry for the delay... The patch does help, the delay is gone. Here's a boot log:
http://ward.vandewege.net/coreboot/m57sli/v1.1/seabios-with-check-pdiag.cap
And here's a boot log from seabios head as of today, with debug level 6:
http://ward.vandewege.net/coreboot/m57sli/v1.1/m57sli-v1.1-seabios-level-6-2...
It still works great, thanks!
Thanks, Ward.
On Mon, Jun 15, 2009 at 01:02:06PM -0400, Ward Vandewege wrote:
On Wed, Jun 10, 2009 at 12:05:35PM -0400, Ward Vandewege wrote:
Sorry for the delay... The patch does help, the delay is gone. Here's a boot log:
http://ward.vandewege.net/coreboot/m57sli/v1.1/seabios-with-check-pdiag.cap
And here's a boot log from seabios head as of today, with debug level 6:
http://ward.vandewege.net/coreboot/m57sli/v1.1/m57sli-v1.1-seabios-level-6-2...
Duh - or rather:
http://ward.vandewege.net/coreboot/m57sli/v1.1/m57sli-v1.1-seabios-level-6-2...
Thanks, Ward.