1What:		/sys/bus/thunderbolt/devices/<xdomain>/rx_speed
2Date:		Feb 2021
3KernelVersion:	5.11
4Contact:	Isaac Hazan <isaac.hazan@intel.com>
5Description:	This attribute reports the XDomain RX speed per lane.
6		All RX lanes run at the same speed.
7
8What:		/sys/bus/thunderbolt/devices/<xdomain>/rx_lanes
9Date:		Feb 2021
10KernelVersion:	5.11
11Contact:	Isaac Hazan <isaac.hazan@intel.com>
12Description:	This attribute reports the number of RX lanes the XDomain
13		is using simultaneously through its upstream port.
14
15What:		/sys/bus/thunderbolt/devices/<xdomain>/tx_speed
16Date:		Feb 2021
17KernelVersion:	5.11
18Contact:	Isaac Hazan <isaac.hazan@intel.com>
19Description:	This attribute reports the XDomain TX speed per lane.
20		All TX lanes run at the same speed.
21
22What:		/sys/bus/thunderbolt/devices/<xdomain>/tx_lanes
23Date:		Feb 2021
24KernelVersion:	5.11
25Contact:	Isaac Hazan <isaac.hazan@intel.com>
26Description:	This attribute reports number of TX lanes the XDomain
27		is using simultaneously through its upstream port.
28
29What: /sys/bus/thunderbolt/devices/.../domainX/boot_acl
30Date:		Jun 2018
31KernelVersion:	4.17
32Contact:	thunderbolt-software@lists.01.org
33Description:	Holds a comma separated list of device unique_ids that
34		are allowed to be connected automatically during system
35		startup (e.g boot devices). The list always contains
36		maximum supported number of unique_ids where unused
37		entries are empty. This allows the userspace software
38		to determine how many entries the controller supports.
39		If there are multiple controllers, each controller has
40		its own ACL list and size may be different between the
41		controllers.
42
43		System BIOS may have an option "Preboot ACL" or similar
44		that needs to be selected before this list is taken into
45		consideration.
46
47		Software always updates a full list in each write.
48
49		If a device is authorized automatically during boot its
50		boot attribute is set to 1.
51
52What: /sys/bus/thunderbolt/devices/.../domainX/deauthorization
53Date:		May 2021
54KernelVersion:	5.12
55Contact:	Mika Westerberg <mika.westerberg@linux.intel.com>
56Description:	This attribute tells whether the system supports
57		de-authorization of devices. Value of 1 means user can
58		de-authorize PCIe tunnel by writing 0 to authorized
59		attribute under each device.
60
61What: /sys/bus/thunderbolt/devices/.../domainX/iommu_dma_protection
62Date:		Mar 2019
63KernelVersion:	4.21
64Contact:	thunderbolt-software@lists.01.org
65Description:	This attribute tells whether the system uses IOMMU
66		for DMA protection. Value of 1 means IOMMU is used 0 means
67		it is not (DMA protection is solely based on Thunderbolt
68		security levels).
69
70What: /sys/bus/thunderbolt/devices/.../domainX/security
71Date:		Sep 2017
72KernelVersion:	4.13
73Contact:	thunderbolt-software@lists.01.org
74Description:	This attribute holds current Thunderbolt security level
75		set by the system BIOS. Possible values are:
76
77		=======  ==================================================
78		none     All devices are automatically authorized
79		user     Devices are only authorized based on writing
80		         appropriate value to the authorized attribute
81		secure   Require devices that support secure connect at
82			 minimum. User needs to authorize each device.
83		dponly   Automatically tunnel Display port (and USB). No
84			 PCIe tunnels are created.
85		usbonly  Automatically tunnel USB controller of the
86			 connected Thunderbolt dock (and Display Port). All
87			 PCIe links downstream of the dock are removed.
88		nopcie   USB4 system where PCIe tunneling is disabled from
89			 the BIOS.
90		=======  ==================================================
91
92What: /sys/bus/thunderbolt/devices/.../authorized
93Date:		Sep 2017
94KernelVersion:	4.13
95Contact:	thunderbolt-software@lists.01.org
96Description:	This attribute is used to authorize Thunderbolt devices
97		after they have been connected. If the device is not
98		authorized, no PCIe devices are available to the system.
99
100		Contents of this attribute will be 0 when the device is not
101		yet authorized.
102
103		Possible values are supported:
104
105		==  ===================================================
106		0   The device will be de-authorized (only supported if
107		    deauthorization attribute under domain contains 1)
108		1   The device will be authorized and connected
109		==  ===================================================
110
111		When key attribute contains 32 byte hex string the possible
112		values are:
113
114		==  ========================================================
115		0   The device will be de-authorized (only supported if
116		    deauthorization attribute under domain contains 1)
117		1   The 32 byte hex string is added to the device NVM and
118		    the device is authorized.
119		2   Send a challenge based on the 32 byte hex string. If the
120		    challenge response from device is valid, the device is
121		    authorized. In case of failure errno will be ENOKEY if
122		    the device did not contain a key at all, and
123		    EKEYREJECTED if the challenge response did not match.
124		==  ========================================================
125
126What: /sys/bus/thunderbolt/devices/.../boot
127Date:		Jun 2018
128KernelVersion:	4.17
129Contact:	thunderbolt-software@lists.01.org
130Description:	This attribute contains 1 if Thunderbolt device was already
131		authorized on boot and 0 otherwise.
132
133What: /sys/bus/thunderbolt/devices/.../generation
134Date:		Jan 2020
135KernelVersion:	5.5
136Contact:	Christian Kellner <christian@kellner.me>
137Description:	This attribute contains the generation of the Thunderbolt
138		controller associated with the device. It will contain 4
139		for USB4.
140
141What: /sys/bus/thunderbolt/devices/.../key
142Date:		Sep 2017
143KernelVersion:	4.13
144Contact:	thunderbolt-software@lists.01.org
145Description:	When a devices supports Thunderbolt secure connect it will
146		have this attribute. Writing 32 byte hex string changes
147		authorization to use the secure connection method instead.
148		Writing an empty string clears the key and regular connection
149		method can be used again.
150
151What:		/sys/bus/thunderbolt/devices/.../device
152Date:		Sep 2017
153KernelVersion:	4.13
154Contact:	thunderbolt-software@lists.01.org
155Description:	This attribute contains id of this device extracted from
156		the device DROM.
157
158What:		/sys/bus/thunderbolt/devices/.../device_name
159Date:		Sep 2017
160KernelVersion:	4.13
161Contact:	thunderbolt-software@lists.01.org
162Description:	This attribute contains name of this device extracted from
163		the device DROM.
164
165What:		/sys/bus/thunderbolt/devices/.../rx_speed
166Date:		Jan 2020
167KernelVersion:	5.5
168Contact:	Mika Westerberg <mika.westerberg@linux.intel.com>
169Description:	This attribute reports the device RX speed per lane.
170		All RX lanes run at the same speed.
171
172What:		/sys/bus/thunderbolt/devices/.../rx_lanes
173Date:		Jan 2020
174KernelVersion:	5.5
175Contact:	Mika Westerberg <mika.westerberg@linux.intel.com>
176Description:	This attribute reports number of RX lanes the device is
177		using simultaneusly through its upstream port.
178
179What:		/sys/bus/thunderbolt/devices/.../tx_speed
180Date:		Jan 2020
181KernelVersion:	5.5
182Contact:	Mika Westerberg <mika.westerberg@linux.intel.com>
183Description:	This attribute reports the TX speed per lane.
184		All TX lanes run at the same speed.
185
186What:		/sys/bus/thunderbolt/devices/.../tx_lanes
187Date:		Jan 2020
188KernelVersion:	5.5
189Contact:	Mika Westerberg <mika.westerberg@linux.intel.com>
190Description:	This attribute reports number of TX lanes the device is
191		using simultaneusly through its upstream port.
192
193What:		/sys/bus/thunderbolt/devices/.../vendor
194Date:		Sep 2017
195KernelVersion:	4.13
196Contact:	thunderbolt-software@lists.01.org
197Description:	This attribute contains vendor id of this device extracted
198		from the device DROM.
199
200What:		/sys/bus/thunderbolt/devices/.../vendor_name
201Date:		Sep 2017
202KernelVersion:	4.13
203Contact:	thunderbolt-software@lists.01.org
204Description:	This attribute contains vendor name of this device extracted
205		from the device DROM.
206
207What:		/sys/bus/thunderbolt/devices/.../unique_id
208Date:		Sep 2017
209KernelVersion:	4.13
210Contact:	thunderbolt-software@lists.01.org
211Description:	This attribute contains unique_id string of this device.
212		This is either read from hardware registers (UUID on
213		newer hardware) or based on UID from the device DROM.
214		Can be used to uniquely identify particular device.
215
216What:		/sys/bus/thunderbolt/devices/.../nvm_version
217Date:		Sep 2017
218KernelVersion:	4.13
219Contact:	thunderbolt-software@lists.01.org
220Description:	If the device has upgradeable firmware the version
221		number is available here. Format: %x.%x, major.minor.
222		If the device is in safe mode reading the file returns
223		-ENODATA instead as the NVM version is not available.
224
225What:		/sys/bus/thunderbolt/devices/.../nvm_authenticate
226Date:		Sep 2017
227KernelVersion:	4.13
228Contact:	thunderbolt-software@lists.01.org
229Description:	When new NVM image is written to the non-active NVM
230		area (through non_activeX NVMem device), the
231		authentication procedure is started by writing to
232		this file.
233		If everything goes well, the device is
234		restarted with the new NVM firmware. If the image
235		verification fails an error code is returned instead.
236
237		This file will accept writing values "1" or "2"
238
239		- Writing "1" will flush the image to the storage
240		  area and authenticate the image in one action.
241		- Writing "2" will run some basic validation on the image
242		  and flush it to the storage area.
243
244		When read holds status of the last authentication
245		operation if an error occurred during the process. This
246		is directly the status value from the DMA configuration
247		based mailbox before the device is power cycled. Writing
248		0 here clears the status.
249
250What:		/sys/bus/thunderbolt/devices/<xdomain>.<service>/key
251Date:		Jan 2018
252KernelVersion:	4.15
253Contact:	thunderbolt-software@lists.01.org
254Description:	This contains name of the property directory the XDomain
255		service exposes. This entry describes the protocol in
256		question. Following directories are already reserved by
257		the Apple XDomain specification:
258
259		========  ===============================================
260		network   IP/ethernet over Thunderbolt
261		targetdm  Target disk mode protocol over Thunderbolt
262		extdisp   External display mode protocol over Thunderbolt
263		========  ===============================================
264
265What:		/sys/bus/thunderbolt/devices/<xdomain>.<service>/modalias
266Date:		Jan 2018
267KernelVersion:	4.15
268Contact:	thunderbolt-software@lists.01.org
269Description:	Stores the same MODALIAS value emitted by uevent for
270		the XDomain service. Format: tbtsvc:kSpNvNrN
271
272What:		/sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcid
273Date:		Jan 2018
274KernelVersion:	4.15
275Contact:	thunderbolt-software@lists.01.org
276Description:	This contains XDomain protocol identifier the XDomain
277		service supports.
278
279What:		/sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcvers
280Date:		Jan 2018
281KernelVersion:	4.15
282Contact:	thunderbolt-software@lists.01.org
283Description:	This contains XDomain protocol version the XDomain
284		service supports.
285
286What:		/sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcrevs
287Date:		Jan 2018
288KernelVersion:	4.15
289Contact:	thunderbolt-software@lists.01.org
290Description:	This contains XDomain software version the XDomain
291		service supports.
292
293What:		/sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcstns
294Date:		Jan 2018
295KernelVersion:	4.15
296Contact:	thunderbolt-software@lists.01.org
297Description:	This contains XDomain service specific settings as
298		bitmask. Format: %x
299
300What:		/sys/bus/thunderbolt/devices/<device>:<port>.<index>/device
301Date:		Oct 2020
302KernelVersion:	v5.9
303Contact:	Mika Westerberg <mika.westerberg@linux.intel.com>
304Description:	Retimer device identifier read from the hardware.
305
306What:		/sys/bus/thunderbolt/devices/<device>:<port>.<index>/nvm_authenticate
307Date:		Oct 2020
308KernelVersion:	v5.9
309Contact:	Mika Westerberg <mika.westerberg@linux.intel.com>
310Description:	When new NVM image is written to the non-active NVM
311		area (through non_activeX NVMem device), the
312		authentication procedure is started by writing 1 to
313		this file. If everything goes well, the device is
314		restarted with the new NVM firmware. If the image
315		verification fails an error code is returned instead.
316
317		When read holds status of the last authentication
318		operation if an error occurred during the process.
319		Format: %x.
320
321What:		/sys/bus/thunderbolt/devices/<device>:<port>.<index>/nvm_version
322Date:		Oct 2020
323KernelVersion:	v5.9
324Contact:	Mika Westerberg <mika.westerberg@linux.intel.com>
325Description:	Holds retimer NVM version number. Format: %x.%x, major.minor.
326
327What:		/sys/bus/thunderbolt/devices/<device>:<port>.<index>/vendor
328Date:		Oct 2020
329KernelVersion:	v5.9
330Contact:	Mika Westerberg <mika.westerberg@linux.intel.com>
331Description:	Retimer vendor identifier read from the hardware.
332
333What:		/sys/bus/thunderbolt/devices/.../nvm_authenticate_on_disconnect
334Date:		Oct 2020
335KernelVersion:	v5.9
336Contact:	Mario Limonciello <mario.limonciello@dell.com>
337Description:	For supported devices, automatically authenticate the new Thunderbolt
338		image when the device is disconnected from the host system.
339
340		This file will accept writing values "1" or "2"
341
342		- Writing "1" will flush the image to the storage
343		  area and prepare the device for authentication on disconnect.
344		- Writing "2" will run some basic validation on the image
345		  and flush it to the storage area.
346