72aad489f9
The {dma|pio}_mode sysfs files are incorrectly documented as having a
list of the supported DMA/PIO transfer modes, while the corresponding
fields of the *struct* ata_device hold the transfer mode IDs, not masks.
To match these docs, the {dma|pio}_mode (and even xfer_mode!) sysfs
files are handled by the ata_bitfield_name_match() macro which leads to
reading such kind of nonsense from them:
$ cat /sys/class/ata_device/dev3.0/pio_mode
XFER_UDMA_7, XFER_UDMA_6, XFER_UDMA_5, XFER_UDMA_4, XFER_MW_DMA_4,
XFER_PIO_6, XFER_PIO_5, XFER_PIO_4, XFER_PIO_3, XFER_PIO_2, XFER_PIO_1,
XFER_PIO_0
Using the correct ata_bitfield_name_search() macro fixes that:
$ cat /sys/class/ata_device/dev3.0/pio_mode
XFER_PIO_4
While fixing the file documentation, somewhat reword the {dma|pio}_mode
file doc and add a note about being mostly useful for PATA devices to
the xfer_mode file doc...
Fixes: d9027470b8
("[libata] Add ATA transport class")
Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
Cc: stable@vger.kernel.org
Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
141 lines
4.3 KiB
Plaintext
141 lines
4.3 KiB
Plaintext
What: /sys/class/ata_*
|
|
Description:
|
|
Provide a place in sysfs for storing the ATA topology of the
|
|
system. This allows retrieving various information about ATA
|
|
objects.
|
|
|
|
Files under /sys/class/ata_port
|
|
-------------------------------
|
|
|
|
For each port, a directory ataX is created where X is the ata_port_id of the
|
|
port. The device parent is the ata host device.
|
|
|
|
|
|
What: /sys/class/ata_port/ataX/nr_pmp_links
|
|
What: /sys/class/ata_port/ataX/idle_irq
|
|
Date: May, 2010
|
|
KernelVersion: v2.6.37
|
|
Contact: Gwendal Grignou <gwendal@chromium.org>
|
|
Description:
|
|
nr_pmp_links: (RO) If a SATA Port Multiplier (PM) is
|
|
connected, the number of links behind it.
|
|
|
|
idle_irq: (RO) Number of IRQ received by the port while
|
|
idle [some ata HBA only].
|
|
|
|
|
|
What: /sys/class/ata_port/ataX/port_no
|
|
Date: May, 2013
|
|
KernelVersion: v3.11
|
|
Contact: Gwendal Grignou <gwendal@chromium.org>
|
|
Description:
|
|
(RO) Host local port number. While registering host controller,
|
|
port numbers are tracked based upon number of ports available on
|
|
the controller. This attribute is needed by udev for composing
|
|
persistent links in /dev/disk/by-path.
|
|
|
|
Files under /sys/class/ata_link
|
|
-------------------------------
|
|
|
|
Behind each port, there is a ata_link. If there is a SATA PM in the topology, 15
|
|
ata_link objects are created.
|
|
|
|
If a link is behind a port, the directory name is linkX, where X is ata_port_id
|
|
of the port. If a link is behind a PM, its name is linkX.Y where X is
|
|
ata_port_id of the parent port and Y the PM port.
|
|
|
|
|
|
What: /sys/class/ata_link/linkX[.Y]/hw_sata_spd_limit
|
|
What: /sys/class/ata_link/linkX[.Y]/sata_spd_limit
|
|
What: /sys/class/ata_link/linkX[.Y]/sata_spd
|
|
Date: May, 2010
|
|
KernelVersion: v2.6.37
|
|
Contact: Gwendal Grignou <gwendal@chromium.org>
|
|
Description:
|
|
hw_sata_spd_limit: (RO) Maximum speed supported by the
|
|
connected SATA device.
|
|
|
|
sata_spd_limit: (RO) Maximum speed imposed by libata.
|
|
|
|
sata_spd: (RO) Current speed of the link
|
|
eg. 1.5, 3 Gbps etc.
|
|
|
|
|
|
Files under /sys/class/ata_device
|
|
---------------------------------
|
|
|
|
Behind each link, up to two ata devices are created.
|
|
The name of the directory is devX[.Y].Z where:
|
|
- X is ata_port_id of the port where the device is connected,
|
|
- Y the port of the PM if any, and
|
|
- Z the device id: for PATA, there is usually 2 devices [0,1], only 1 for SATA.
|
|
|
|
|
|
What: /sys/class/ata_device/devX[.Y].Z/spdn_cnt
|
|
What: /sys/class/ata_device/devX[.Y].Z/gscr
|
|
What: /sys/class/ata_device/devX[.Y].Z/ering
|
|
What: /sys/class/ata_device/devX[.Y].Z/id
|
|
What: /sys/class/ata_device/devX[.Y].Z/pio_mode
|
|
What: /sys/class/ata_device/devX[.Y].Z/xfer_mode
|
|
What: /sys/class/ata_device/devX[.Y].Z/dma_mode
|
|
What: /sys/class/ata_device/devX[.Y].Z/class
|
|
Date: May, 2010
|
|
KernelVersion: v2.6.37
|
|
Contact: Gwendal Grignou <gwendal@chromium.org>
|
|
Description:
|
|
spdn_cnt: (RO) Number of times libata decided to lower the
|
|
speed of link due to errors.
|
|
|
|
gscr: (RO) Cached result of the dump of PM GSCR
|
|
register. Valid registers are:
|
|
|
|
0: SATA_PMP_GSCR_PROD_ID,
|
|
1: SATA_PMP_GSCR_REV,
|
|
2: SATA_PMP_GSCR_PORT_INFO,
|
|
32: SATA_PMP_GSCR_ERROR,
|
|
33: SATA_PMP_GSCR_ERROR_EN,
|
|
64: SATA_PMP_GSCR_FEAT,
|
|
96: SATA_PMP_GSCR_FEAT_EN,
|
|
130: SATA_PMP_GSCR_SII_GPIO
|
|
|
|
Only valid if the device is a PM.
|
|
|
|
ering: (RO) Formatted output of the error ring of the
|
|
device.
|
|
|
|
id: (RO) Cached result of IDENTIFY command, as
|
|
described in ATA8 7.16 and 7.17. Only valid if
|
|
the device is not a PM.
|
|
|
|
pio_mode: (RO) PIO transfer mode used by the device.
|
|
Mostly used by PATA devices.
|
|
|
|
xfer_mode: (RO) Current transfer mode. Mostly used by
|
|
PATA devices.
|
|
|
|
dma_mode: (RO) DMA transfer mode used by the device.
|
|
Mostly used by PATA devices.
|
|
|
|
class: (RO) Device class. Can be "ata" for disk,
|
|
"atapi" for packet device, "pmp" for PM, or
|
|
"none" if no device was found behind the link.
|
|
|
|
|
|
What: /sys/class/ata_device/devX[.Y].Z/trim
|
|
Date: May, 2015
|
|
KernelVersion: v4.10
|
|
Contact: Gwendal Grignou <gwendal@chromium.org>
|
|
Description:
|
|
(RO) Shows the DSM TRIM mode currently used by the device. Valid
|
|
values are:
|
|
|
|
unsupported: Drive does not support DSM TRIM
|
|
|
|
unqueued: Drive supports unqueued DSM TRIM only
|
|
|
|
queued: Drive supports queued DSM TRIM
|
|
|
|
forced_unqueued: Drive's queued DSM support is known to
|
|
be buggy and only unqueued TRIM commands
|
|
are sent
|