xref: /linux/Documentation/ABI/testing/sysfs-bus-thunderbolt (revision e5a52fd2b8cdb700b3c07b030e050a49ef3156b9)
1What: /sys/bus/thunderbolt/devices/.../domainX/boot_acl
2Date:		Jun 2018
3KernelVersion:	4.17
4Contact:	thunderbolt-software@lists.01.org
5Description:	Holds a comma separated list of device unique_ids that
6		are allowed to be connected automatically during system
7		startup (e.g boot devices). The list always contains
8		maximum supported number of unique_ids where unused
9		entries are empty. This allows the userspace software
10		to determine how many entries the controller supports.
11		If there are multiple controllers, each controller has
12		its own ACL list and size may be different between the
13		controllers.
14
15		System BIOS may have an option "Preboot ACL" or similar
16		that needs to be selected before this list is taken into
17		consideration.
18
19		Software always updates a full list in each write.
20
21		If a device is authorized automatically during boot its
22		boot attribute is set to 1.
23
24What: /sys/bus/thunderbolt/devices/.../domainX/iommu_dma_protection
25Date:		Mar 2019
26KernelVersion:	4.21
27Contact:	thunderbolt-software@lists.01.org
28Description:	This attribute tells whether the system uses IOMMU
29		for DMA protection. Value of 1 means IOMMU is used 0 means
30		it is not (DMA protection is solely based on Thunderbolt
31		security levels).
32
33What: /sys/bus/thunderbolt/devices/.../domainX/security
34Date:		Sep 2017
35KernelVersion:	4.13
36Contact:	thunderbolt-software@lists.01.org
37Description:	This attribute holds current Thunderbolt security level
38		set by the system BIOS. Possible values are:
39
40		none: All devices are automatically authorized
41		user: Devices are only authorized based on writing
42		      appropriate value to the authorized attribute
43		secure: Require devices that support secure connect at
44			minimum. User needs to authorize each device.
45		dponly: Automatically tunnel Display port (and USB). No
46			PCIe tunnels are created.
47		usbonly: Automatically tunnel USB controller of the
48			 connected Thunderbolt dock (and Display Port). All
49			 PCIe links downstream of the dock are removed.
50
51What: /sys/bus/thunderbolt/devices/.../authorized
52Date:		Sep 2017
53KernelVersion:	4.13
54Contact:	thunderbolt-software@lists.01.org
55Description:	This attribute is used to authorize Thunderbolt devices
56		after they have been connected. If the device is not
57		authorized, no devices such as PCIe and Display port are
58		available to the system.
59
60		Contents of this attribute will be 0 when the device is not
61		yet authorized.
62
63		Possible values are supported:
64		1: The device will be authorized and connected
65
66		When key attribute contains 32 byte hex string the possible
67		values are:
68		1: The 32 byte hex string is added to the device NVM and
69		   the device is authorized.
70		2: Send a challenge based on the 32 byte hex string. If the
71		   challenge response from device is valid, the device is
72		   authorized. In case of failure errno will be ENOKEY if
73		   the device did not contain a key at all, and
74		   EKEYREJECTED if the challenge response did not match.
75
76What: /sys/bus/thunderbolt/devices/.../boot
77Date:		Jun 2018
78KernelVersion:	4.17
79Contact:	thunderbolt-software@lists.01.org
80Description:	This attribute contains 1 if Thunderbolt device was already
81		authorized on boot and 0 otherwise.
82
83What: /sys/bus/thunderbolt/devices/.../generation
84Date:		Jan 2020
85KernelVersion:	5.5
86Contact:	Christian Kellner <christian@kellner.me>
87Description:	This attribute contains the generation of the Thunderbolt
88		controller associated with the device. It will contain 4
89		for USB4.
90
91What: /sys/bus/thunderbolt/devices/.../key
92Date:		Sep 2017
93KernelVersion:	4.13
94Contact:	thunderbolt-software@lists.01.org
95Description:	When a devices supports Thunderbolt secure connect it will
96		have this attribute. Writing 32 byte hex string changes
97		authorization to use the secure connection method instead.
98		Writing an empty string clears the key and regular connection
99		method can be used again.
100
101What:		/sys/bus/thunderbolt/devices/.../device
102Date:		Sep 2017
103KernelVersion:	4.13
104Contact:	thunderbolt-software@lists.01.org
105Description:	This attribute contains id of this device extracted from
106		the device DROM.
107
108What:		/sys/bus/thunderbolt/devices/.../device_name
109Date:		Sep 2017
110KernelVersion:	4.13
111Contact:	thunderbolt-software@lists.01.org
112Description:	This attribute contains name of this device extracted from
113		the device DROM.
114
115What:		/sys/bus/thunderbolt/devices/.../rx_speed
116Date:		Jan 2020
117KernelVersion:	5.5
118Contact:	Mika Westerberg <mika.westerberg@linux.intel.com>
119Description:	This attribute reports the device RX speed per lane.
120		All RX lanes run at the same speed.
121
122What:		/sys/bus/thunderbolt/devices/.../rx_lanes
123Date:		Jan 2020
124KernelVersion:	5.5
125Contact:	Mika Westerberg <mika.westerberg@linux.intel.com>
126Description:	This attribute reports number of RX lanes the device is
127		using simultaneusly through its upstream port.
128
129What:		/sys/bus/thunderbolt/devices/.../tx_speed
130Date:		Jan 2020
131KernelVersion:	5.5
132Contact:	Mika Westerberg <mika.westerberg@linux.intel.com>
133Description:	This attribute reports the TX speed per lane.
134		All TX lanes run at the same speed.
135
136What:		/sys/bus/thunderbolt/devices/.../tx_lanes
137Date:		Jan 2020
138KernelVersion:	5.5
139Contact:	Mika Westerberg <mika.westerberg@linux.intel.com>
140Description:	This attribute reports number of TX lanes the device is
141		using simultaneusly through its upstream port.
142
143What:		/sys/bus/thunderbolt/devices/.../vendor
144Date:		Sep 2017
145KernelVersion:	4.13
146Contact:	thunderbolt-software@lists.01.org
147Description:	This attribute contains vendor id of this device extracted
148		from the device DROM.
149
150What:		/sys/bus/thunderbolt/devices/.../vendor_name
151Date:		Sep 2017
152KernelVersion:	4.13
153Contact:	thunderbolt-software@lists.01.org
154Description:	This attribute contains vendor name of this device extracted
155		from the device DROM.
156
157What:		/sys/bus/thunderbolt/devices/.../unique_id
158Date:		Sep 2017
159KernelVersion:	4.13
160Contact:	thunderbolt-software@lists.01.org
161Description:	This attribute contains unique_id string of this device.
162		This is either read from hardware registers (UUID on
163		newer hardware) or based on UID from the device DROM.
164		Can be used to uniquely identify particular device.
165
166What:		/sys/bus/thunderbolt/devices/.../nvm_version
167Date:		Sep 2017
168KernelVersion:	4.13
169Contact:	thunderbolt-software@lists.01.org
170Description:	If the device has upgradeable firmware the version
171		number is available here. Format: %x.%x, major.minor.
172		If the device is in safe mode reading the file returns
173		-ENODATA instead as the NVM version is not available.
174
175What:		/sys/bus/thunderbolt/devices/.../nvm_authenticate
176Date:		Sep 2017
177KernelVersion:	4.13
178Contact:	thunderbolt-software@lists.01.org
179Description:	When new NVM image is written to the non-active NVM
180		area (through non_activeX NVMem device), the
181		authentication procedure is started by writing 1 to
182		this file. If everything goes well, the device is
183		restarted with the new NVM firmware. If the image
184		verification fails an error code is returned instead.
185
186		When read holds status of the last authentication
187		operation if an error occurred during the process. This
188		is directly the status value from the DMA configuration
189		based mailbox before the device is power cycled. Writing
190		0 here clears the status.
191
192What:		/sys/bus/thunderbolt/devices/<xdomain>.<service>/key
193Date:		Jan 2018
194KernelVersion:	4.15
195Contact:	thunderbolt-software@lists.01.org
196Description:	This contains name of the property directory the XDomain
197		service exposes. This entry describes the protocol in
198		question. Following directories are already reserved by
199		the Apple XDomain specification:
200
201		network:  IP/ethernet over Thunderbolt
202		targetdm: Target disk mode protocol over Thunderbolt
203		extdisp:  External display mode protocol over Thunderbolt
204
205What:		/sys/bus/thunderbolt/devices/<xdomain>.<service>/modalias
206Date:		Jan 2018
207KernelVersion:	4.15
208Contact:	thunderbolt-software@lists.01.org
209Description:	Stores the same MODALIAS value emitted by uevent for
210		the XDomain service. Format: tbtsvc:kSpNvNrN
211
212What:		/sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcid
213Date:		Jan 2018
214KernelVersion:	4.15
215Contact:	thunderbolt-software@lists.01.org
216Description:	This contains XDomain protocol identifier the XDomain
217		service supports.
218
219What:		/sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcvers
220Date:		Jan 2018
221KernelVersion:	4.15
222Contact:	thunderbolt-software@lists.01.org
223Description:	This contains XDomain protocol version the XDomain
224		service supports.
225
226What:		/sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcrevs
227Date:		Jan 2018
228KernelVersion:	4.15
229Contact:	thunderbolt-software@lists.01.org
230Description:	This contains XDomain software version the XDomain
231		service supports.
232
233What:		/sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcstns
234Date:		Jan 2018
235KernelVersion:	4.15
236Contact:	thunderbolt-software@lists.01.org
237Description:	This contains XDomain service specific settings as
238		bitmask. Format: %x
239