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