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