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


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?

Many Thanks,


On 14 August 2014 18:02, Christian Franke <Christian.Franke@t-online.de> wrote:
Richard Flint wrote:

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.

Again this is as expected. The option -d sat,12 selects SAT ATA-PASS-THROUGH(12) which does not support 48-bit ATA commands.

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.