1What:		/sys/class/ata_*
2Description:
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
7Files under /sys/class/ata_port
8-------------------------------
9
10For each port, a directory ataX is created where X is the ata_port_id of the
11port. The device parent is the ata host device.
12
13
14What:		/sys/class/ata_port/ataX/nr_pmp_links
15What:		/sys/class/ata_port/ataX/idle_irq
16Date:		May, 2010
17KernelVersion:	v2.6.37
18Contact:	Gwendal Grignou <gwendal@chromium.org>
19Description:
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
27What:		/sys/class/ata_port/ataX/port_no
28Date:		May, 2013
29KernelVersion:	v3.11
30Contact:	Gwendal Grignou <gwendal@chromium.org>
31Description:
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
37Files under /sys/class/ata_link
38-------------------------------
39
40Behind each port, there is a ata_link. If there is a SATA PM in the topology, 15
41ata_link objects are created.
42
43If a link is behind a port, the directory name is linkX, where X is ata_port_id
44of the port. If a link is behind a PM, its name is linkX.Y where X is
45ata_port_id of the parent port and Y the PM port.
46
47
48What:		/sys/class/ata_link/linkX[.Y]/hw_sata_spd_limit
49What:		/sys/class/ata_link/linkX[.Y]/sata_spd_limit
50What:		/sys/class/ata_link/linkX[.Y]/sata_spd
51Date:		May, 2010
52KernelVersion:	v2.6.37
53Contact:	Gwendal Grignou <gwendal@chromium.org>
54Description:
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
64Files under /sys/class/ata_device
65---------------------------------
66
67Behind each link, up to two ata devices are created.
68The 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
74What:		/sys/class/ata_device/devX[.Y].Z/spdn_cnt
75What:		/sys/class/ata_device/devX[.Y].Z/gscr
76What:		/sys/class/ata_device/devX[.Y].Z/ering
77What:		/sys/class/ata_device/devX[.Y].Z/id
78What:		/sys/class/ata_device/devX[.Y].Z/pio_mode
79What:		/sys/class/ata_device/devX[.Y].Z/xfer_mode
80What:		/sys/class/ata_device/devX[.Y].Z/dma_mode
81What:		/sys/class/ata_device/devX[.Y].Z/class
82Date:		May, 2010
83KernelVersion:	v2.6.37
84Contact:	Gwendal Grignou <gwendal@chromium.org>
85Description:
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) PIO transfer mode used by the device.
111				Mostly used by PATA devices.
112
113		xfer_mode:	(RO) Current transfer mode. Mostly used by
114				PATA devices.
115
116		dma_mode:	(RO) DMA transfer mode used by the device.
117				Mostly used by PATA devices.
118
119		class:		(RO) Device class. Can be "ata" for disk,
120				"atapi" for packet device, "pmp" for PM, or
121				"none" if no device was found behind the link.
122
123
124What:		/sys/class/ata_device/devX[.Y].Z/trim
125Date:		May, 2015
126KernelVersion:	v4.10
127Contact:	Gwendal Grignou <gwendal@chromium.org>
128Description:
129		(RO) Shows the DSM TRIM mode currently used by the device. Valid
130		values are:
131
132		unsupported:		Drive does not support DSM TRIM
133
134		unqueued:               Drive supports unqueued DSM TRIM only
135
136		queued:                 Drive supports queued DSM TRIM
137
138		forced_unqueued:	Drive's queued DSM support is known to
139					be buggy and only unqueued TRIM commands
140					are sent
141