Sergei,
>> How could one then explain
>
>> current capacity is 78140160 sectors would be 0x000004A85300
>> native capacity is 185074430006016 sectors would be 0xA852FFA85300
>>
>> ? First three bytes ok, then the other three bytes rubbish?
>
> Note that they're not complete garbage but equal the value of the
> lower 3 bytes minus 1. What is clear is that Read Native Max Address Ext
> command must be mistreating the HOB bit... :-)
Well this results from
addr++; /* since the return value is (maxlba - 1), we add 1 */
in idedisk_read_native_max_address_ext().
Apparently on my system
u32 high = (args.hobRegister[IDE_HCYL_OFFSET] << 16) |
(args.hobRegister[IDE_LCYL_OFFSET] << 8) |
args.hobRegister[IDE_SECTOR_OFFSET];
u32 low = ((args.tfRegister[IDE_HCYL_OFFSET])<<16) |
((args.tfRegister[IDE_LCYL_OFFSET])<<8) |
(args.tfRegister[IDE_SECTOR_OFFSET]);
high and low contain the same values! :-(
I "hardcoded" set_max = capacity, now I get
hda: Host Protected Area detected.
current capacity is 78140160 sectors (40007 MB)
native capacity is 78140160 sectors (40007 MB)
hda: Host Protected Area disabled.
hda: 4289221376 sectors (2196081 MB) w/8192KiB Cache, CHS=65535/255/63
;-)
But still something must go terribly wrong.
smartctl shows
7 Seek_Error_Rate 0x000f 061 060 030 - 1513926
195 Hardware_ECC_Recovered 0x001a 100 066 000 - 104721680
And after just doing a "mke2fs /dev/hda1" I see
7 Seek_Error_Rate 0x000f 061 060 030 - 1516919
195 Hardware_ECC_Recovered 0x001a 095 066 000 - 104791382
:-(
--
Steven
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html