Checking drives passes about 60second, it's terrible.
I tried your patch and see no improvements.
After 1 minute the driver works fine.
On 27.10.2011, at 13:35, Tian, Feng wrote:
I worked out a patch to boost IDE boot when slave device is absent.
Could you have a test to see if the issue goes away?
From:Tian, Feng [mailto:firstname.lastname@example.org] Sent:Wednesday, October 12, 2011 09:33 To:email@example.com Subject:Re: [edk2] [UDK] Boot slowly under IDE mode when slave device is absent.
Yes, now we use Identify cmd to help confirm if there is a real device because even if there is no device 1, the signature for device 1 is still valid.
Reducing detection time is not a good way. Some big capacity h/d may fail to response Identify cmd at short time frame.
From:winddy [mailto:firstname.lastname@example.org] Sent:Wednesday, October 12, 2011 09:05 To:email@example.com Subject:[edk2] [UDK] Boot slowly under IDE mode when slave device is absent.
Now I meet a problem: under IDE mode, if a channel only master has device attached, device detection will be slow.
After trace, we found in function DetectAndConfigIdeDevice() in idemode.c, it will send IDENTIFY command to device to make sure its presence.
According to ATA7 spec 5.16.1 (Device 0 only configurations), Even though Device 1 is not present, the register content may appear valid for Device 1.
It means if a channel only master has device, issue Diagnostic command may see slave also has signature. And default command timeout is 3 seconds. If IDENTIFY command is failed, it will try to issue identify packet cmd. So the total time for slave will be at least 6 second.
Could we have a way to reduce detection time under this condition such as reduce timeout value or not do double identify command?