19aaa3b8bSMika WesterbergWhat: /sys/bus/thunderbolt/devices/.../domainX/boot_acl
29aaa3b8bSMika WesterbergDate:		Jun 2018
39aaa3b8bSMika WesterbergKernelVersion:	4.17
49aaa3b8bSMika WesterbergContact:	thunderbolt-software@lists.01.org
59aaa3b8bSMika WesterbergDescription:	Holds a comma separated list of device unique_ids that
69aaa3b8bSMika Westerberg		are allowed to be connected automatically during system
79aaa3b8bSMika Westerberg		startup (e.g boot devices). The list always contains
89aaa3b8bSMika Westerberg		maximum supported number of unique_ids where unused
99aaa3b8bSMika Westerberg		entries are empty. This allows the userspace software
109aaa3b8bSMika Westerberg		to determine how many entries the controller supports.
119aaa3b8bSMika Westerberg		If there are multiple controllers, each controller has
129aaa3b8bSMika Westerberg		its own ACL list and size may be different between the
139aaa3b8bSMika Westerberg		controllers.
149aaa3b8bSMika Westerberg
159aaa3b8bSMika Westerberg		System BIOS may have an option "Preboot ACL" or similar
169aaa3b8bSMika Westerberg		that needs to be selected before this list is taken into
179aaa3b8bSMika Westerberg		consideration.
189aaa3b8bSMika Westerberg
199aaa3b8bSMika Westerberg		Software always updates a full list in each write.
209aaa3b8bSMika Westerberg
219aaa3b8bSMika Westerberg		If a device is authorized automatically during boot its
229aaa3b8bSMika Westerberg		boot attribute is set to 1.
239aaa3b8bSMika Westerberg
24dcc3c9e3SMika WesterbergWhat: /sys/bus/thunderbolt/devices/.../domainX/iommu_dma_protection
25dcc3c9e3SMika WesterbergDate:		Mar 2019
26dcc3c9e3SMika WesterbergKernelVersion:	4.21
27dcc3c9e3SMika WesterbergContact:	thunderbolt-software@lists.01.org
28dcc3c9e3SMika WesterbergDescription:	This attribute tells whether the system uses IOMMU
29dcc3c9e3SMika Westerberg		for DMA protection. Value of 1 means IOMMU is used 0 means
30dcc3c9e3SMika Westerberg		it is not (DMA protection is solely based on Thunderbolt
31dcc3c9e3SMika Westerberg		security levels).
32dcc3c9e3SMika Westerberg
33f67cf491SMika WesterbergWhat: /sys/bus/thunderbolt/devices/.../domainX/security
34f67cf491SMika WesterbergDate:		Sep 2017
35f67cf491SMika WesterbergKernelVersion:	4.13
36f67cf491SMika WesterbergContact:	thunderbolt-software@lists.01.org
37f67cf491SMika WesterbergDescription:	This attribute holds current Thunderbolt security level
38f67cf491SMika Westerberg		set by the system BIOS. Possible values are:
39f67cf491SMika Westerberg
4034433332SMauro Carvalho Chehab		=======  ==================================================
4134433332SMauro Carvalho Chehab		none     All devices are automatically authorized
4234433332SMauro Carvalho Chehab		user     Devices are only authorized based on writing
43f67cf491SMika Westerberg		         appropriate value to the authorized attribute
4434433332SMauro Carvalho Chehab		secure   Require devices that support secure connect at
45f67cf491SMika Westerberg			 minimum. User needs to authorize each device.
4634433332SMauro Carvalho Chehab		dponly   Automatically tunnel Display port (and USB). No
47f67cf491SMika Westerberg			 PCIe tunnels are created.
4834433332SMauro Carvalho Chehab		usbonly  Automatically tunnel USB controller of the
496fc14e1aSMika Westerberg			 connected Thunderbolt dock (and Display Port). All
506fc14e1aSMika Westerberg			 PCIe links downstream of the dock are removed.
5134433332SMauro Carvalho Chehab		=======  ==================================================
52f67cf491SMika Westerberg
53f67cf491SMika WesterbergWhat: /sys/bus/thunderbolt/devices/.../authorized
54f67cf491SMika WesterbergDate:		Sep 2017
55f67cf491SMika WesterbergKernelVersion:	4.13
56f67cf491SMika WesterbergContact:	thunderbolt-software@lists.01.org
57f67cf491SMika WesterbergDescription:	This attribute is used to authorize Thunderbolt devices
58f67cf491SMika Westerberg		after they have been connected. If the device is not
59f67cf491SMika Westerberg		authorized, no devices such as PCIe and Display port are
60f67cf491SMika Westerberg		available to the system.
61f67cf491SMika Westerberg
62f67cf491SMika Westerberg		Contents of this attribute will be 0 when the device is not
63f67cf491SMika Westerberg		yet authorized.
64f67cf491SMika Westerberg
65f67cf491SMika Westerberg		Possible values are supported:
6634433332SMauro Carvalho Chehab
6734433332SMauro Carvalho Chehab		==  ===========================================
6834433332SMauro Carvalho Chehab		1   The device will be authorized and connected
6934433332SMauro Carvalho Chehab		==  ===========================================
70f67cf491SMika Westerberg
71f67cf491SMika Westerberg		When key attribute contains 32 byte hex string the possible
72f67cf491SMika Westerberg		values are:
7334433332SMauro Carvalho Chehab
7434433332SMauro Carvalho Chehab		==  ========================================================
7534433332SMauro Carvalho Chehab		1   The 32 byte hex string is added to the device NVM and
76f67cf491SMika Westerberg		    the device is authorized.
7734433332SMauro Carvalho Chehab		2   Send a challenge based on the 32 byte hex string. If the
78f67cf491SMika Westerberg		    challenge response from device is valid, the device is
79f67cf491SMika Westerberg		    authorized. In case of failure errno will be ENOKEY if
80f67cf491SMika Westerberg		    the device did not contain a key at all, and
81f67cf491SMika Westerberg		    EKEYREJECTED if the challenge response did not match.
8234433332SMauro Carvalho Chehab		==  ========================================================
83f67cf491SMika Westerberg
8414862ee3SYehezkel BernatWhat: /sys/bus/thunderbolt/devices/.../boot
8514862ee3SYehezkel BernatDate:		Jun 2018
8614862ee3SYehezkel BernatKernelVersion:	4.17
8714862ee3SYehezkel BernatContact:	thunderbolt-software@lists.01.org
8814862ee3SYehezkel BernatDescription:	This attribute contains 1 if Thunderbolt device was already
8914862ee3SYehezkel Bernat		authorized on boot and 0 otherwise.
9014862ee3SYehezkel Bernat
91b406357cSChristian KellnerWhat: /sys/bus/thunderbolt/devices/.../generation
92b406357cSChristian KellnerDate:		Jan 2020
93b406357cSChristian KellnerKernelVersion:	5.5
94b406357cSChristian KellnerContact:	Christian Kellner <christian@kellner.me>
95b406357cSChristian KellnerDescription:	This attribute contains the generation of the Thunderbolt
96b406357cSChristian Kellner		controller associated with the device. It will contain 4
97b406357cSChristian Kellner		for USB4.
98b406357cSChristian Kellner
99f67cf491SMika WesterbergWhat: /sys/bus/thunderbolt/devices/.../key
100f67cf491SMika WesterbergDate:		Sep 2017
101f67cf491SMika WesterbergKernelVersion:	4.13
102f67cf491SMika WesterbergContact:	thunderbolt-software@lists.01.org
103f67cf491SMika WesterbergDescription:	When a devices supports Thunderbolt secure connect it will
104f67cf491SMika Westerberg		have this attribute. Writing 32 byte hex string changes
105f67cf491SMika Westerberg		authorization to use the secure connection method instead.
106e545f0d8SBernat, Yehezkel		Writing an empty string clears the key and regular connection
107e545f0d8SBernat, Yehezkel		method can be used again.
108f67cf491SMika Westerberg
109bfe778acSMika WesterbergWhat:		/sys/bus/thunderbolt/devices/.../device
110bfe778acSMika WesterbergDate:		Sep 2017
111bfe778acSMika WesterbergKernelVersion:	4.13
112bfe778acSMika WesterbergContact:	thunderbolt-software@lists.01.org
113bfe778acSMika WesterbergDescription:	This attribute contains id of this device extracted from
114bfe778acSMika Westerberg		the device DROM.
115bfe778acSMika Westerberg
11672ee3390SMika WesterbergWhat:		/sys/bus/thunderbolt/devices/.../device_name
11772ee3390SMika WesterbergDate:		Sep 2017
11872ee3390SMika WesterbergKernelVersion:	4.13
11972ee3390SMika WesterbergContact:	thunderbolt-software@lists.01.org
12072ee3390SMika WesterbergDescription:	This attribute contains name of this device extracted from
12172ee3390SMika Westerberg		the device DROM.
12272ee3390SMika Westerberg
12391c0c120SMika WesterbergWhat:		/sys/bus/thunderbolt/devices/.../rx_speed
12491c0c120SMika WesterbergDate:		Jan 2020
12591c0c120SMika WesterbergKernelVersion:	5.5
12691c0c120SMika WesterbergContact:	Mika Westerberg <mika.westerberg@linux.intel.com>
12791c0c120SMika WesterbergDescription:	This attribute reports the device RX speed per lane.
12891c0c120SMika Westerberg		All RX lanes run at the same speed.
12991c0c120SMika Westerberg
13091c0c120SMika WesterbergWhat:		/sys/bus/thunderbolt/devices/.../rx_lanes
13191c0c120SMika WesterbergDate:		Jan 2020
13291c0c120SMika WesterbergKernelVersion:	5.5
13391c0c120SMika WesterbergContact:	Mika Westerberg <mika.westerberg@linux.intel.com>
13491c0c120SMika WesterbergDescription:	This attribute reports number of RX lanes the device is
13591c0c120SMika Westerberg		using simultaneusly through its upstream port.
13691c0c120SMika Westerberg
13791c0c120SMika WesterbergWhat:		/sys/bus/thunderbolt/devices/.../tx_speed
13891c0c120SMika WesterbergDate:		Jan 2020
13991c0c120SMika WesterbergKernelVersion:	5.5
14091c0c120SMika WesterbergContact:	Mika Westerberg <mika.westerberg@linux.intel.com>
14191c0c120SMika WesterbergDescription:	This attribute reports the TX speed per lane.
14291c0c120SMika Westerberg		All TX lanes run at the same speed.
14391c0c120SMika Westerberg
14491c0c120SMika WesterbergWhat:		/sys/bus/thunderbolt/devices/.../tx_lanes
14591c0c120SMika WesterbergDate:		Jan 2020
14691c0c120SMika WesterbergKernelVersion:	5.5
14791c0c120SMika WesterbergContact:	Mika Westerberg <mika.westerberg@linux.intel.com>
14891c0c120SMika WesterbergDescription:	This attribute reports number of TX lanes the device is
14991c0c120SMika Westerberg		using simultaneusly through its upstream port.
15091c0c120SMika Westerberg
151bfe778acSMika WesterbergWhat:		/sys/bus/thunderbolt/devices/.../vendor
152bfe778acSMika WesterbergDate:		Sep 2017
153bfe778acSMika WesterbergKernelVersion:	4.13
154bfe778acSMika WesterbergContact:	thunderbolt-software@lists.01.org
155bfe778acSMika WesterbergDescription:	This attribute contains vendor id of this device extracted
156bfe778acSMika Westerberg		from the device DROM.
157bfe778acSMika Westerberg
15872ee3390SMika WesterbergWhat:		/sys/bus/thunderbolt/devices/.../vendor_name
15972ee3390SMika WesterbergDate:		Sep 2017
16072ee3390SMika WesterbergKernelVersion:	4.13
16172ee3390SMika WesterbergContact:	thunderbolt-software@lists.01.org
16272ee3390SMika WesterbergDescription:	This attribute contains vendor name of this device extracted
16372ee3390SMika Westerberg		from the device DROM.
16472ee3390SMika Westerberg
165bfe778acSMika WesterbergWhat:		/sys/bus/thunderbolt/devices/.../unique_id
166bfe778acSMika WesterbergDate:		Sep 2017
167bfe778acSMika WesterbergKernelVersion:	4.13
168bfe778acSMika WesterbergContact:	thunderbolt-software@lists.01.org
169bfe778acSMika WesterbergDescription:	This attribute contains unique_id string of this device.
170bfe778acSMika Westerberg		This is either read from hardware registers (UUID on
171bfe778acSMika Westerberg		newer hardware) or based on UID from the device DROM.
172bfe778acSMika Westerberg		Can be used to uniquely identify particular device.
173e6b245ccSMika Westerberg
174e6b245ccSMika WesterbergWhat:		/sys/bus/thunderbolt/devices/.../nvm_version
175e6b245ccSMika WesterbergDate:		Sep 2017
176e6b245ccSMika WesterbergKernelVersion:	4.13
177e6b245ccSMika WesterbergContact:	thunderbolt-software@lists.01.org
178e6b245ccSMika WesterbergDescription:	If the device has upgradeable firmware the version
179e6b245ccSMika Westerberg		number is available here. Format: %x.%x, major.minor.
180e6b245ccSMika Westerberg		If the device is in safe mode reading the file returns
181e6b245ccSMika Westerberg		-ENODATA instead as the NVM version is not available.
182e6b245ccSMika Westerberg
183e6b245ccSMika WesterbergWhat:		/sys/bus/thunderbolt/devices/.../nvm_authenticate
184e6b245ccSMika WesterbergDate:		Sep 2017
185e6b245ccSMika WesterbergKernelVersion:	4.13
186e6b245ccSMika WesterbergContact:	thunderbolt-software@lists.01.org
187e6b245ccSMika WesterbergDescription:	When new NVM image is written to the non-active NVM
188e6b245ccSMika Westerberg		area (through non_activeX NVMem device), the
1894b794f80SMario Limonciello		authentication procedure is started by writing to
1904b794f80SMario Limonciello		this file.
1914b794f80SMario Limonciello		If everything goes well, the device is
192e6b245ccSMika Westerberg		restarted with the new NVM firmware. If the image
193e6b245ccSMika Westerberg		verification fails an error code is returned instead.
194e6b245ccSMika Westerberg
1954b794f80SMario Limonciello		This file will accept writing values "1" or "2"
1964b794f80SMario Limonciello		- Writing "1" will flush the image to the storage
1974b794f80SMario Limonciello		area and authenticate the image in one action.
1984b794f80SMario Limonciello		- Writing "2" will run some basic validation on the image
1994b794f80SMario Limonciello		and flush it to the storage area.
2004b794f80SMario Limonciello
201e6b245ccSMika Westerberg		When read holds status of the last authentication
202e6b245ccSMika Westerberg		operation if an error occurred during the process. This
203e6b245ccSMika Westerberg		is directly the status value from the DMA configuration
204e6b245ccSMika Westerberg		based mailbox before the device is power cycled. Writing
205e6b245ccSMika Westerberg		0 here clears the status.
206d1ff7024SMika Westerberg
207d1ff7024SMika WesterbergWhat:		/sys/bus/thunderbolt/devices/<xdomain>.<service>/key
208d1ff7024SMika WesterbergDate:		Jan 2018
209d1ff7024SMika WesterbergKernelVersion:	4.15
210d1ff7024SMika WesterbergContact:	thunderbolt-software@lists.01.org
211d1ff7024SMika WesterbergDescription:	This contains name of the property directory the XDomain
212d1ff7024SMika Westerberg		service exposes. This entry describes the protocol in
213d1ff7024SMika Westerberg		question. Following directories are already reserved by
214d1ff7024SMika Westerberg		the Apple XDomain specification:
215d1ff7024SMika Westerberg
216d1ff7024SMika Westerberg		network:  IP/ethernet over Thunderbolt
217d1ff7024SMika Westerberg		targetdm: Target disk mode protocol over Thunderbolt
218d1ff7024SMika Westerberg		extdisp:  External display mode protocol over Thunderbolt
219d1ff7024SMika Westerberg
220d1ff7024SMika WesterbergWhat:		/sys/bus/thunderbolt/devices/<xdomain>.<service>/modalias
221d1ff7024SMika WesterbergDate:		Jan 2018
222d1ff7024SMika WesterbergKernelVersion:	4.15
223d1ff7024SMika WesterbergContact:	thunderbolt-software@lists.01.org
224d1ff7024SMika WesterbergDescription:	Stores the same MODALIAS value emitted by uevent for
225d1ff7024SMika Westerberg		the XDomain service. Format: tbtsvc:kSpNvNrN
226d1ff7024SMika Westerberg
227d1ff7024SMika WesterbergWhat:		/sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcid
228d1ff7024SMika WesterbergDate:		Jan 2018
229d1ff7024SMika WesterbergKernelVersion:	4.15
230d1ff7024SMika WesterbergContact:	thunderbolt-software@lists.01.org
231d1ff7024SMika WesterbergDescription:	This contains XDomain protocol identifier the XDomain
232d1ff7024SMika Westerberg		service supports.
233d1ff7024SMika Westerberg
234d1ff7024SMika WesterbergWhat:		/sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcvers
235d1ff7024SMika WesterbergDate:		Jan 2018
236d1ff7024SMika WesterbergKernelVersion:	4.15
237d1ff7024SMika WesterbergContact:	thunderbolt-software@lists.01.org
238d1ff7024SMika WesterbergDescription:	This contains XDomain protocol version the XDomain
239d1ff7024SMika Westerberg		service supports.
240d1ff7024SMika Westerberg
241d1ff7024SMika WesterbergWhat:		/sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcrevs
242d1ff7024SMika WesterbergDate:		Jan 2018
243d1ff7024SMika WesterbergKernelVersion:	4.15
244d1ff7024SMika WesterbergContact:	thunderbolt-software@lists.01.org
245d1ff7024SMika WesterbergDescription:	This contains XDomain software version the XDomain
246d1ff7024SMika Westerberg		service supports.
247d1ff7024SMika Westerberg
248d1ff7024SMika WesterbergWhat:		/sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcstns
249d1ff7024SMika WesterbergDate:		Jan 2018
250d1ff7024SMika WesterbergKernelVersion:	4.15
251d1ff7024SMika WesterbergContact:	thunderbolt-software@lists.01.org
252d1ff7024SMika WesterbergDescription:	This contains XDomain service specific settings as
253d1ff7024SMika Westerberg		bitmask. Format: %x
254dacb1287SKranthi Kuntala
255dacb1287SKranthi KuntalaWhat:		/sys/bus/thunderbolt/devices/<device>:<port>.<index>/device
256dacb1287SKranthi KuntalaDate:		Oct 2020
257dacb1287SKranthi KuntalaKernelVersion:	v5.9
258dacb1287SKranthi KuntalaContact:	Mika Westerberg <mika.westerberg@linux.intel.com>
259dacb1287SKranthi KuntalaDescription:	Retimer device identifier read from the hardware.
260dacb1287SKranthi Kuntala
261dacb1287SKranthi KuntalaWhat:		/sys/bus/thunderbolt/devices/<device>:<port>.<index>/nvm_authenticate
262dacb1287SKranthi KuntalaDate:		Oct 2020
263dacb1287SKranthi KuntalaKernelVersion:	v5.9
264dacb1287SKranthi KuntalaContact:	Mika Westerberg <mika.westerberg@linux.intel.com>
265dacb1287SKranthi KuntalaDescription:	When new NVM image is written to the non-active NVM
266dacb1287SKranthi Kuntala		area (through non_activeX NVMem device), the
267dacb1287SKranthi Kuntala		authentication procedure is started by writing 1 to
268dacb1287SKranthi Kuntala		this file. If everything goes well, the device is
269dacb1287SKranthi Kuntala		restarted with the new NVM firmware. If the image
270dacb1287SKranthi Kuntala		verification fails an error code is returned instead.
271dacb1287SKranthi Kuntala
272dacb1287SKranthi Kuntala		When read holds status of the last authentication
273dacb1287SKranthi Kuntala		operation if an error occurred during the process.
274dacb1287SKranthi Kuntala		Format: %x.
275dacb1287SKranthi Kuntala
276dacb1287SKranthi KuntalaWhat:		/sys/bus/thunderbolt/devices/<device>:<port>.<index>/nvm_version
277dacb1287SKranthi KuntalaDate:		Oct 2020
278dacb1287SKranthi KuntalaKernelVersion:	v5.9
279dacb1287SKranthi KuntalaContact:	Mika Westerberg <mika.westerberg@linux.intel.com>
280dacb1287SKranthi KuntalaDescription:	Holds retimer NVM version number. Format: %x.%x, major.minor.
281dacb1287SKranthi Kuntala
282dacb1287SKranthi KuntalaWhat:		/sys/bus/thunderbolt/devices/<device>:<port>.<index>/vendor
283dacb1287SKranthi KuntalaDate:		Oct 2020
284dacb1287SKranthi KuntalaKernelVersion:	v5.9
285dacb1287SKranthi KuntalaContact:	Mika Westerberg <mika.westerberg@linux.intel.com>
286dacb1287SKranthi KuntalaDescription:	Retimer vendor identifier read from the hardware.
2871cb36293SMario Limonciello
2881cb36293SMario LimoncielloWhat:		/sys/bus/thunderbolt/devices/.../nvm_authenticate_on_disconnect
2891cb36293SMario LimoncielloDate:		Oct 2020
2901cb36293SMario LimoncielloKernelVersion:	v5.9
2911cb36293SMario LimoncielloContact:	Mario Limonciello <mario.limonciello@dell.com>
2921cb36293SMario LimoncielloDescription:	For supported devices, automatically authenticate the new Thunderbolt
2931cb36293SMario Limonciello		image when the device is disconnected from the host system.
2941cb36293SMario Limonciello
2951cb36293SMario Limonciello		This file will accept writing values "1" or "2"
2961cb36293SMario Limonciello		- Writing "1" will flush the image to the storage
2971cb36293SMario Limonciello		area and prepare the device for authentication on disconnect.
2981cb36293SMario Limonciello		- Writing "2" will run some basic validation on the image
2991cb36293SMario Limonciello		and flush it to the storage area.
300