Yes, an --xall using dsat,12 reports things like
ATA_READ_LOG_EXT (addr=0x11:0x00, page=0, n=1) failed: 48-bit ATA commands require SAT ATA PASS-THROUGH (16)
but using --xall dsat,16 the output is interspersed with things like:
Read SMART Data failed: scsi error aborted command
=== START OF READ SMART DATA SECTION ===
SMART Status command failed: scsi error aborted command
SMART overall-health self-assessment test result: UNKNOWN!
SMART Status, Attributes and Thresholds cannot be read.
Read SMART Log Directory failed: scsi error aborted command
Does this mean 48bit commands are not supported on my machine? if they aren't supported, how come reading the SATA Phy Event Counter log works?
Richard Flint wrote:Again this is as expected. The option -d sat,12 selects SAT ATA-PASS-THROUGH(12) which does not support 48-bit ATA commands.
Thanks for the clarification. I accept your point that querying some data requires support for 48-bit ATA commands whilst other data can be queried using 28-bit ATA commands. What confuses me is that when comparing the output of
"sudo smartctl --xall xselftest -dsat,12 /dev/rdsk/c7t5d0" and "sudo smartctl --xall xselftest -dsat,16 /dev/rdsk/c7t5d0", the latter returns more data (e.g. the SATA Phy Event Counter log) than the former. If the environment does not support the longer ATA command (as mine apparently doesn't) I wouldn't expect -dsat,16 command to return more data then dsat,12.
Note that smartctl prints "48-bit ATA commands require SAT ATA PASS-THROUGH (16)".
Always use -d sat[,16] if supported by the SAT layer.