ATA ident command
Thomas Doerfler
Thomas.Doerfler at embedded-brains.de
Thu Aug 27 11:32:29 UTC 2009
Chris Johns wrote:
> Thomas Doerfler wrote:
>> So I think you are correct.
>>
>
> Excellent. I will commit the change. Interesting it has been in RTEMS
> for this amount of time.
Gotcha. I didn't dare to ask that question ;-)
Thomas.
>
> Thanks.
> Chris
>
>> wkr,
>> Thomas.
>>
>> Chris Johns wrote:
>>> Hi all,
>>>
>>> I have found the ATA driver's handling of the ident command seems a
>>> little suspect but I did not want to change the driver without some
>>> feedback.
>>>
>>> If you look around line 1470 in the ata.c driver the LBA sectors is
>>> passed to the rtems_disk_create_phys call. This value comes from the
>>> handling of the ident table returned from the drive (line 1419). I
>>> found the value returned by qemu for its drive was word reversed. I
>>> now have this:
>>>
>>> ATA_DEV_INFO(ctrl_minor, dev).lba_sectors =
>>> (CF_LE_W(buffer[ATA_IDENT_WORD_NUM_OF_USR_SECS1]) << 16) +
>>> CF_LE_W(buffer[ATA_IDENT_WORD_NUM_OF_USR_SECS0]);
>>>
>>> and it is working with qemu.
>>>
>>> If any one has an ATA standard handy could they please check if this
>>> change is ok ?
>>>
>>> Regards
>>> Chris
>>> _______________________________________________
>>> rtems-users mailing list
>>> rtems-users at rtems.org
>>> http://www.rtems.org/mailman/listinfo/rtems-users
>>
>>
--
--------------------------------------------
embedded brains GmbH
Thomas Doerfler Obere Lagerstrasse 30
D-82178 Puchheim Germany
email: Thomas.Doerfler at embedded-brains.de
Phone: +49-89-18908079-2
Fax: +49-89-18908079-9
PGP: Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
More information about the users
mailing list