Problem with ATA driver on pc386
Eugeny S. Mints
emints at ru.mvista.com
Tue Jul 6 11:24:42 UTC 2004
Hi Angelo!
Ok, let start from the beginning. I developed the the code based on ATA
spec revision mentioned in the header in ata.c file. The revision is
quite old.
First command executed for a IDE controller is DEVICE DIAGNOSTIC
command. Return codes other then 0x81 or 0x01 are vendor specific and
probably are not handled properly by the current ata.c driver. There is
no special return code for "master (device 0) not present". THere is
"device 0 failed" only. One potential is that your IDE controller uses
some vendor specific code for "master not present". Other is that your
IDE controller cann't handle "no master" case and doesn't set BSY bit
properly and DIAGNOSTIC command never terminates.
I would like to help you with the issue but I need more details on the
failure. Could you please check first that:
- execution of ata_process_request_on_init_phase is completed
successfully for DEVICE_DIAGNOSTIC command
- disassembe of the diagnostic return codes gives correct configuration
for you system, i.e. it detects "no master, slave present" for your IDE
controller
Thanks,
Eugeny
Chris Johns wrote:
> Angelo Fraietta wrote:
>
>>
>> It definitately locks up. I can't wait for 30 seconds anyway so i will
>> need a way of defining that I don't want to even look for it on the
>> primary
>>
>
> Sure 30sec is a little long these days, but it would be good to know if
> the driver recovers. Would it be possible to leave it for a few minutes
> and see what happens ?
>
> Using a different controller is a BSP issue and more like a feature
> request than a bug.
>
More information about the users
mailing list