Problem with ATA driver on pc386

Eugeny S. Mints emints at ru.mvista.com
Wed Jul 21 07:27:55 UTC 2004


Angelo,

Angelo Fraietta wrote:
> 
> 
> Angelo Fraietta wrote:
> 
>>
>> I changed the conditionals on the 2 do - while loops to include
>>
>> ata_process_request_on_init_phase(rtems_device_minor_number  ctrl_minor,
>>                                   ata_req_t                 *areq)
>> {
>>     unsigned16         byte;/* emphasize that only 8 low bits is 
>> meaningful */
>>     <snip>
>>     do {
>>         ide_controller_read_register(ctrl_minor, IDE_REGISTER_STATUS, 
>> &byte);
>>                 printk("Start ide_controller_read_register 1 Byte = 
>> %x\r\n", byte);
>>     } while (((byte & IDE_REGISTER_STATUS_BSY) ||
>>              (!(byte & IDE_REGISTER_STATUS_DRDY))) && !(byte & 
>> IDE_REGISTER_STATUS_DRDY));
>>     <snip>
>>     do {
>>         ide_controller_read_register(ctrl_minor, IDE_REGISTER_STATUS, 
>> &byte);
>>                 printk("Start ide_controller_read_register 2 Byte = 
>> %x\r\n", byte);
>>     } while ((byte & IDE_REGISTER_STATUS_BSY)&& !(byte & 
>> IDE_REGISTER_STATUS_DRDY));
>>
>> This stopped from freezing. This however, was on the DIMMPC with the 
>> On Board IDE enabled. When I plugged the PC104 in, the first one 
>> looped indefinately with a byte value of 0. I disabled the primary IDE 
>> port in the bios, which gave me the result as per the DIMMPC - Byte 
>> returns zero.
>>
>> In performing theses tests, I beliee that the secondary IDE port is 
>> not tested. Am I correct? If so, what would I need to do to test and 
>> mount it?
>>
> 
> I also found that the changes that I made also prevented the Primary 
> Master from loading, so these changes don't work
As you see - a possible issue lays into IDE controller driver 
implementation  thus check it twice. Other possibility is that ata 
driver needs to be updated if there are serious changes in most recent 
ATA2 spec (if any).

Regards,
			Eugeny





More information about the users mailing list