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 to
182		this file.
183		If everything goes well, the device is
184		restarted with the new NVM firmware. If the image
185		verification fails an error code is returned instead.
186
187		This file will accept writing values "1" or "2"
188		- Writing "1" will flush the image to the storage
189		area and authenticate the image in one action.
190		- Writing "2" will run some basic validation on the image
191		and flush it to the storage area.
192
193		When read holds status of the last authentication
194		operation if an error occurred during the process. This
195		is directly the status value from the DMA configuration
196		based mailbox before the device is power cycled. Writing
197		0 here clears the status.
198
199What:		/sys/bus/thunderbolt/devices/<xdomain>.<service>/key
200Date:		Jan 2018
201KernelVersion:	4.15
202Contact:	thunderbolt-software@lists.01.org
203Description:	This contains name of the property directory the XDomain
204		service exposes. This entry describes the protocol in
205		question. Following directories are already reserved by
206		the Apple XDomain specification:
207
208		network:  IP/ethernet over Thunderbolt
209		targetdm: Target disk mode protocol over Thunderbolt
210		extdisp:  External display mode protocol over Thunderbolt
211
212What:		/sys/bus/thunderbolt/devices/<xdomain>.<service>/modalias
213Date:		Jan 2018
214KernelVersion:	4.15
215Contact:	thunderbolt-software@lists.01.org
216Description:	Stores the same MODALIAS value emitted by uevent for
217		the XDomain service. Format: tbtsvc:kSpNvNrN
218
219What:		/sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcid
220Date:		Jan 2018
221KernelVersion:	4.15
222Contact:	thunderbolt-software@lists.01.org
223Description:	This contains XDomain protocol identifier the XDomain
224		service supports.
225
226What:		/sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcvers
227Date:		Jan 2018
228KernelVersion:	4.15
229Contact:	thunderbolt-software@lists.01.org
230Description:	This contains XDomain protocol version the XDomain
231		service supports.
232
233What:		/sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcrevs
234Date:		Jan 2018
235KernelVersion:	4.15
236Contact:	thunderbolt-software@lists.01.org
237Description:	This contains XDomain software version the XDomain
238		service supports.
239
240What:		/sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcstns
241Date:		Jan 2018
242KernelVersion:	4.15
243Contact:	thunderbolt-software@lists.01.org
244Description:	This contains XDomain service specific settings as
245		bitmask. Format: %x
246
247What:		/sys/bus/thunderbolt/devices/<device>:<port>.<index>/device
248Date:		Oct 2020
249KernelVersion:	v5.9
250Contact:	Mika Westerberg <mika.westerberg@linux.intel.com>
251Description:	Retimer device identifier read from the hardware.
252
253What:		/sys/bus/thunderbolt/devices/<device>:<port>.<index>/nvm_authenticate
254Date:		Oct 2020
255KernelVersion:	v5.9
256Contact:	Mika Westerberg <mika.westerberg@linux.intel.com>
257Description:	When new NVM image is written to the non-active NVM
258		area (through non_activeX NVMem device), the
259		authentication procedure is started by writing 1 to
260		this file. If everything goes well, the device is
261		restarted with the new NVM firmware. If the image
262		verification fails an error code is returned instead.
263
264		When read holds status of the last authentication
265		operation if an error occurred during the process.
266		Format: %x.
267
268What:		/sys/bus/thunderbolt/devices/<device>:<port>.<index>/nvm_version
269Date:		Oct 2020
270KernelVersion:	v5.9
271Contact:	Mika Westerberg <mika.westerberg@linux.intel.com>
272Description:	Holds retimer NVM version number. Format: %x.%x, major.minor.
273
274What:		/sys/bus/thunderbolt/devices/<device>:<port>.<index>/vendor
275Date:		Oct 2020
276KernelVersion:	v5.9
277Contact:	Mika Westerberg <mika.westerberg@linux.intel.com>
278Description:	Retimer vendor identifier read from the hardware.
279
280What:		/sys/bus/thunderbolt/devices/.../nvm_authenticate_on_disconnect
281Date:		Oct 2020
282KernelVersion:	v5.9
283Contact:	Mario Limonciello <mario.limonciello@dell.com>
284Description:	For supported devices, automatically authenticate the new Thunderbolt
285		image when the device is disconnected from the host system.
286
287		This file will accept writing values "1" or "2"
288		- Writing "1" will flush the image to the storage
289		area and prepare the device for authentication on disconnect.
290		- Writing "2" will run some basic validation on the image
291		and flush it to the storage area.
292