[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
ATA ident command
- Date: Thu, 27 Aug 2009 19:26:02 +1000
- From: chrisj at rtems.org (Chris Johns)
- Subject: ATA ident command
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