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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html