Merge branch 'remotes/lorenzo/pci/tegra194'
[linux-2.6-microblaze.git] / Documentation / ABI / testing / sysfs-ata
1 What:           /sys/class/ata_...
2 Description:
3                 Provide a place in sysfs for storing the ATA topology of the
4                 system. This allows retrieving various information about ATA
5                 objects.
6
7 Files under /sys/class/ata_port
8 -------------------------------
9
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.
12
13
14 What:           /sys/class/ata_port/ataX/nr_pmp_links
15 What:           /sys/class/ata_port/ataX/idle_irq
16 Date:           May, 2010
17 KernelVersion:  v2.6.37
18 Contact:        Gwendal Grignou <gwendal@chromium.org>
19 Description:
20                 nr_pmp_links:   (RO) If a SATA Port Multiplier (PM) is
21                                 connected, the number of links behind it.
22
23                 idle_irq:       (RO) Number of IRQ received by the port while
24                                 idle [some ata HBA only].
25
26
27 What:           /sys/class/ata_port/ataX/port_no
28 Date:           May, 2013
29 KernelVersion:  v3.11
30 Contact:        Gwendal Grignou <gwendal@chromium.org>
31 Description:
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.
36
37 Files under /sys/class/ata_link
38 -------------------------------
39
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.
42
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.
46
47
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
51 Date:           May, 2010
52 KernelVersion:  v2.6.37
53 Contact:        Gwendal Grignou <gwendal@chromium.org>
54 Description:
55                 hw_sata_spd_limit:      (RO) Maximum speed supported by the
56                                         connected SATA device.
57
58                 sata_spd_limit:         (RO) Maximum speed imposed by libata.
59
60                 sata_spd:               (RO) Current speed of the link
61                                         eg. 1.5, 3 Gbps etc.
62
63
64 Files under /sys/class/ata_device
65 ---------------------------------
66
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.
72
73
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
82 Date:           May, 2010
83 KernelVersion:  v2.6.37
84 Contact:        Gwendal Grignou <gwendal@chromium.org>
85 Description:
86                 spdn_cnt:       (RO) Number of times libata decided to lower the
87                                 speed of link due to errors.
88
89                 gscr:           (RO) Cached result of the dump of PM GSCR
90                                 register. Valid registers are:
91
92                                 0:      SATA_PMP_GSCR_PROD_ID,
93                                 1:      SATA_PMP_GSCR_REV,
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
100
101                                 Only valid if the device is a PM.
102
103                 ering:          (RO) Formatted output of the error ring of the
104                                 device.
105
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.
109
110                 pio_mode:       (RO) Transfer modes supported by the device when
111                                 in PIO mode. Mostly used by PATA device.
112
113                 xfer_mode:      (RO) Current transfer mode
114
115                 dma_mode:       (RO) Transfer modes supported by the device when
116                                 in DMA mode. Mostly used by PATA device.
117
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.
121
122
123 What:           /sys/class/ata_device/devX[.Y].Z/trim
124 Date:           May, 2015
125 KernelVersion:  v4.10
126 Contact:        Gwendal Grignou <gwendal@chromium.org>
127 Description:
128                 (RO) Shows the DSM TRIM mode currently used by the device. Valid
129                 values are:
130
131                 unsupported:            Drive does not support DSM TRIM
132
133                 unqueued:               Drive supports unqueued DSM TRIM only
134
135                 queued:                 Drive supports queued DSM TRIM
136
137                 forced_unqueued:        Drive's queued DSM support is known to
138                                         be buggy and only unqueued TRIM commands
139                                         are sent