Soren Schmidt writes:

 > > ata1: mask=03 status0=a5 status1=a5
 > > <..30+ seconds>
 > > ata1: mask=00 status0=ffffffa5 status1=ffffffa5
 > 
 > Hmm, you could try to change the probe to something like:
 > ...
 >     status1 = inb(scp->ioaddr + ATA_STATUS);
 >     if ((status0 & 0xf8) != 0xf8 && status0 != 0xa5)
 >         mask |= 0x01;
 >     if ((status1 & 0xf8) != 0xf8 && status1 != 0xa5)
 >         mask |= 0x02;
 >     if (bootverbose)
 >         ata_printf(scp, -1, "mask=%02x status0=%02x status1=%02x\n",
 >                    mask, status0, status1);
 > ...
 > 
 > It seems that the 0xa5 value means "no device" too, on lots of 
 > controllers, and its not valid anyways, so it wouldn't hurt..." 

That works!  The pause is gone and the reboot time is more than cut in
half.  I urge you to commit this ;-)

Thanks!

Drew

------------------------------------------------------------------------------
Andrew Gallatin, Sr Systems Programmer  http://www.cs.duke.edu/~gallatin
Duke University                         Email: [EMAIL PROTECTED]
Department of Computer Science          Phone: (919) 660-6590




To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to