1 What: /sys/class/ata_...
3 Provide a place in sysfs for storing the ATA topology of the
4 system. This allows retrieving various information about ATA
7 Files under /sys/class/ata_port
8 -------------------------------
10 For each port, a directory ataX is created where X is the ata_port_id of the
11 port. The device parent is the ata host device.
14 What: /sys/class/ata_port/ataX/nr_pmp_links
15 What: /sys/class/ata_port/ataX/idle_irq
17 KernelVersion: v2.6.37
18 Contact: Gwendal Grignou <gwendal@chromium.org>
20 nr_pmp_links: (RO) If a SATA Port Multiplier (PM) is
21 connected, the number of links behind it.
23 idle_irq: (RO) Number of IRQ received by the port while
24 idle [some ata HBA only].
27 What: /sys/class/ata_port/ataX/port_no
30 Contact: Gwendal Grignou <gwendal@chromium.org>
32 (RO) Host local port number. While registering host controller,
33 port numbers are tracked based upon number of ports available on
34 the controller. This attribute is needed by udev for composing
35 persistent links in /dev/disk/by-path.
37 Files under /sys/class/ata_link
38 -------------------------------
40 Behind each port, there is a ata_link. If there is a SATA PM in the topology, 15
41 ata_link objects are created.
43 If a link is behind a port, the directory name is linkX, where X is ata_port_id
44 of the port. If a link is behind a PM, its name is linkX.Y where X is
45 ata_port_id of the parent port and Y the PM port.
48 What: /sys/class/ata_link/linkX[.Y]/hw_sata_spd_limit
49 What: /sys/class/ata_link/linkX[.Y]/sata_spd_limit
50 What: /sys/class/ata_link/linkX[.Y]/sata_spd
52 KernelVersion: v2.6.37
53 Contact: Gwendal Grignou <gwendal@chromium.org>
55 hw_sata_spd_limit: (RO) Maximum speed supported by the
56 connected SATA device.
58 sata_spd_limit: (RO) Maximum speed imposed by libata.
60 sata_spd: (RO) Current speed of the link
64 Files under /sys/class/ata_device
65 ---------------------------------
67 Behind each link, up to two ata devices are created.
68 The name of the directory is devX[.Y].Z where:
69 - X is ata_port_id of the port where the device is connected,
70 - Y the port of the PM if any, and
71 - Z the device id: for PATA, there is usually 2 devices [0,1], only 1 for SATA.
74 What: /sys/class/ata_device/devX[.Y].Z/spdn_cnt
75 What: /sys/class/ata_device/devX[.Y].Z/gscr
76 What: /sys/class/ata_device/devX[.Y].Z/ering
77 What: /sys/class/ata_device/devX[.Y].Z/id
78 What: /sys/class/ata_device/devX[.Y].Z/pio_mode
79 What: /sys/class/ata_device/devX[.Y].Z/xfer_mode
80 What: /sys/class/ata_device/devX[.Y].Z/dma_mode
81 What: /sys/class/ata_device/devX[.Y].Z/class
83 KernelVersion: v2.6.37
84 Contact: Gwendal Grignou <gwendal@chromium.org>
86 spdn_cnt: (RO) Number of times libata decided to lower the
87 speed of link due to errors.
89 gscr: (RO) Cached result of the dump of PM GSCR
90 register. Valid registers are:
92 0: SATA_PMP_GSCR_PROD_ID,
94 2: SATA_PMP_GSCR_PORT_INFO,
95 32: SATA_PMP_GSCR_ERROR,
96 33: SATA_PMP_GSCR_ERROR_EN,
97 64: SATA_PMP_GSCR_FEAT,
98 96: SATA_PMP_GSCR_FEAT_EN,
99 130: SATA_PMP_GSCR_SII_GPIO
101 Only valid if the device is a PM.
103 ering: (RO) Formatted output of the error ring of the
106 id: (RO) Cached result of IDENTIFY command, as
107 described in ATA8 7.16 and 7.17. Only valid if
108 the device is not a PM.
110 pio_mode: (RO) Transfer modes supported by the device when
111 in PIO mode. Mostly used by PATA device.
113 xfer_mode: (RO) Current transfer mode
115 dma_mode: (RO) Transfer modes supported by the device when
116 in DMA mode. Mostly used by PATA device.
118 class: (RO) Device class. Can be "ata" for disk,
119 "atapi" for packet device, "pmp" for PM, or
120 "none" if no device was found behind the link.
123 What: /sys/class/ata_device/devX[.Y].Z/trim
126 Contact: Gwendal Grignou <gwendal@chromium.org>
128 (RO) Shows the DSM TRIM mode currently used by the device. Valid
131 unsupported: Drive does not support DSM TRIM
133 unqueued: Drive supports unqueued DSM TRIM only
135 queued: Drive supports queued DSM TRIM
137 forced_unqueued: Drive's queued DSM support is known to
138 be buggy and only unqueued TRIM commands