On 1/30/07, Sergei Shtylyov <sshtylyov@xxxxxxxxxxxxx> wrote:
Steven Scholz wrote: > 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... :-)
These commands all just use ide_raw_taskfile(), there's nothing special about READ NATIVE MAX ADDRESS EXT or SET MAX ADDRESS EXT. I still suspect the FPGA is misusing the HOB bit. The driver (for example) does a READ MAX ADDRESS EXT and stored that value (0x000004A852FF is what is returned), then somehow only wrote to the lower 3 bytes of the LBA for the SET MAX command, the "previous contents" would shift into those upper bytes as shown. Maybe the FPGA is discarding the taskfile writes once the HOB bit is set? It wouldn't affect the READ NATIVE MAX ADDRESS EXT command being issued since the only the command register matters for that, but it would affect SET MAX ADDRESS EXT working properly. Without a device > 137GB to test with, and without errors on the device, you might not see any odd behavior in normal usage. It's *really* unlikely the drive doesn't have a working taskfile. --eric - 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