Problem with ATA driver on pc386

Eugeny S. Mints emints at
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 


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