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

Reply via email to