xref: /linux/Documentation/ABI/testing/sysfs-bus-thunderbolt (revision 46b494f286812a88caba28dd0810cf3a55747431)
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
243da88be2SMika WesterbergWhat: /sys/bus/thunderbolt/devices/.../domainX/deauthorization
253da88be2SMika WesterbergDate:		May 2021
263da88be2SMika WesterbergKernelVersion:	5.12
273da88be2SMika WesterbergContact:	Mika Westerberg <mika.westerberg@linux.intel.com>
283da88be2SMika WesterbergDescription:	This attribute tells whether the system supports
293da88be2SMika Westerberg		de-authorization of devices. Value of 1 means user can
303da88be2SMika Westerberg		de-authorize PCIe tunnel by writing 0 to authorized
313da88be2SMika Westerberg		attribute under each device.
323da88be2SMika Westerberg
33dcc3c9e3SMika WesterbergWhat: /sys/bus/thunderbolt/devices/.../domainX/iommu_dma_protection
34dcc3c9e3SMika WesterbergDate:		Mar 2019
35dcc3c9e3SMika WesterbergKernelVersion:	4.21
36dcc3c9e3SMika WesterbergContact:	thunderbolt-software@lists.01.org
37dcc3c9e3SMika WesterbergDescription:	This attribute tells whether the system uses IOMMU
38dcc3c9e3SMika Westerberg		for DMA protection. Value of 1 means IOMMU is used 0 means
39dcc3c9e3SMika Westerberg		it is not (DMA protection is solely based on Thunderbolt
40dcc3c9e3SMika Westerberg		security levels).
41dcc3c9e3SMika Westerberg
42f67cf491SMika WesterbergWhat: /sys/bus/thunderbolt/devices/.../domainX/security
43f67cf491SMika WesterbergDate:		Sep 2017
44f67cf491SMika WesterbergKernelVersion:	4.13
45f67cf491SMika WesterbergContact:	thunderbolt-software@lists.01.org
46f67cf491SMika WesterbergDescription:	This attribute holds current Thunderbolt security level
47f67cf491SMika Westerberg		set by the system BIOS. Possible values are:
48f67cf491SMika Westerberg
4934433332SMauro Carvalho Chehab		=======  ==================================================
5034433332SMauro Carvalho Chehab		none     All devices are automatically authorized
5134433332SMauro Carvalho Chehab		user     Devices are only authorized based on writing
52f67cf491SMika Westerberg		         appropriate value to the authorized attribute
5334433332SMauro Carvalho Chehab		secure   Require devices that support secure connect at
54f67cf491SMika Westerberg			 minimum. User needs to authorize each device.
5534433332SMauro Carvalho Chehab		dponly   Automatically tunnel Display port (and USB). No
56f67cf491SMika Westerberg			 PCIe tunnels are created.
5734433332SMauro Carvalho Chehab		usbonly  Automatically tunnel USB controller of the
586fc14e1aSMika Westerberg			 connected Thunderbolt dock (and Display Port). All
596fc14e1aSMika Westerberg			 PCIe links downstream of the dock are removed.
603cd542e6SMika Westerberg		nopcie   USB4 system where PCIe tunneling is disabled from
613cd542e6SMika Westerberg			 the BIOS.
6234433332SMauro Carvalho Chehab		=======  ==================================================
63f67cf491SMika Westerberg
64f67cf491SMika WesterbergWhat: /sys/bus/thunderbolt/devices/.../authorized
65f67cf491SMika WesterbergDate:		Sep 2017
66f67cf491SMika WesterbergKernelVersion:	4.13
67f67cf491SMika WesterbergContact:	thunderbolt-software@lists.01.org
68f67cf491SMika WesterbergDescription:	This attribute is used to authorize Thunderbolt devices
69f67cf491SMika Westerberg		after they have been connected. If the device is not
703da88be2SMika Westerberg		authorized, no PCIe devices are available to the system.
71f67cf491SMika Westerberg
72f67cf491SMika Westerberg		Contents of this attribute will be 0 when the device is not
73f67cf491SMika Westerberg		yet authorized.
74f67cf491SMika Westerberg
75f67cf491SMika Westerberg		Possible values are supported:
7634433332SMauro Carvalho Chehab
773da88be2SMika Westerberg		==  ===================================================
783da88be2SMika Westerberg		0   The device will be de-authorized (only supported if
793da88be2SMika Westerberg		    deauthorization attribute under domain contains 1)
8034433332SMauro Carvalho Chehab		1   The device will be authorized and connected
813da88be2SMika Westerberg		==  ===================================================
82f67cf491SMika Westerberg
83f67cf491SMika Westerberg		When key attribute contains 32 byte hex string the possible
84f67cf491SMika Westerberg		values are:
8534433332SMauro Carvalho Chehab
8634433332SMauro Carvalho Chehab		==  ========================================================
873da88be2SMika Westerberg		0   The device will be de-authorized (only supported if
883da88be2SMika Westerberg		    deauthorization attribute under domain contains 1)
8934433332SMauro Carvalho Chehab		1   The 32 byte hex string is added to the device NVM and
90f67cf491SMika Westerberg		    the device is authorized.
9134433332SMauro Carvalho Chehab		2   Send a challenge based on the 32 byte hex string. If the
92f67cf491SMika Westerberg		    challenge response from device is valid, the device is
93f67cf491SMika Westerberg		    authorized. In case of failure errno will be ENOKEY if
94f67cf491SMika Westerberg		    the device did not contain a key at all, and
95f67cf491SMika Westerberg		    EKEYREJECTED if the challenge response did not match.
9634433332SMauro Carvalho Chehab		==  ========================================================
97f67cf491SMika Westerberg
9814862ee3SYehezkel BernatWhat: /sys/bus/thunderbolt/devices/.../boot
9914862ee3SYehezkel BernatDate:		Jun 2018
10014862ee3SYehezkel BernatKernelVersion:	4.17
10114862ee3SYehezkel BernatContact:	thunderbolt-software@lists.01.org
10214862ee3SYehezkel BernatDescription:	This attribute contains 1 if Thunderbolt device was already
10314862ee3SYehezkel Bernat		authorized on boot and 0 otherwise.
10414862ee3SYehezkel Bernat
105b406357cSChristian KellnerWhat: /sys/bus/thunderbolt/devices/.../generation
106b406357cSChristian KellnerDate:		Jan 2020
107b406357cSChristian KellnerKernelVersion:	5.5
108b406357cSChristian KellnerContact:	Christian Kellner <christian@kellner.me>
109b406357cSChristian KellnerDescription:	This attribute contains the generation of the Thunderbolt
110b406357cSChristian Kellner		controller associated with the device. It will contain 4
111b406357cSChristian Kellner		for USB4.
112b406357cSChristian Kellner
113f67cf491SMika WesterbergWhat: /sys/bus/thunderbolt/devices/.../key
114f67cf491SMika WesterbergDate:		Sep 2017
115f67cf491SMika WesterbergKernelVersion:	4.13
116f67cf491SMika WesterbergContact:	thunderbolt-software@lists.01.org
117f67cf491SMika WesterbergDescription:	When a devices supports Thunderbolt secure connect it will
118f67cf491SMika Westerberg		have this attribute. Writing 32 byte hex string changes
119f67cf491SMika Westerberg		authorization to use the secure connection method instead.
120e545f0d8SBernat, Yehezkel		Writing an empty string clears the key and regular connection
121e545f0d8SBernat, Yehezkel		method can be used again.
122f67cf491SMika Westerberg
123bfe778acSMika WesterbergWhat:		/sys/bus/thunderbolt/devices/.../device
124bfe778acSMika WesterbergDate:		Sep 2017
125bfe778acSMika WesterbergKernelVersion:	4.13
126bfe778acSMika WesterbergContact:	thunderbolt-software@lists.01.org
127bfe778acSMika WesterbergDescription:	This attribute contains id of this device extracted from
128bfe778acSMika Westerberg		the device DROM.
129bfe778acSMika Westerberg
13072ee3390SMika WesterbergWhat:		/sys/bus/thunderbolt/devices/.../device_name
13172ee3390SMika WesterbergDate:		Sep 2017
13272ee3390SMika WesterbergKernelVersion:	4.13
13372ee3390SMika WesterbergContact:	thunderbolt-software@lists.01.org
13472ee3390SMika WesterbergDescription:	This attribute contains name of this device extracted from
13572ee3390SMika Westerberg		the device DROM.
13672ee3390SMika Westerberg
137*46b494f2SMika WesterbergWhat:		/sys/bus/thunderbolt/devices/.../maxhopid
138*46b494f2SMika WesterbergDate:		Jul 2021
139*46b494f2SMika WesterbergKernelVersion:	5.13
140*46b494f2SMika WesterbergContact:	Mika Westerberg <mika.westerberg@linux.intel.com>
141*46b494f2SMika WesterbergDescription:	Only set for XDomains. The maximum HopID the other host
142*46b494f2SMika Westerberg		supports as its input HopID.
143*46b494f2SMika Westerberg
14491c0c120SMika WesterbergWhat:		/sys/bus/thunderbolt/devices/.../rx_speed
14591c0c120SMika WesterbergDate:		Jan 2020
14691c0c120SMika WesterbergKernelVersion:	5.5
14791c0c120SMika WesterbergContact:	Mika Westerberg <mika.westerberg@linux.intel.com>
14891c0c120SMika WesterbergDescription:	This attribute reports the device RX speed per lane.
14991c0c120SMika Westerberg		All RX lanes run at the same speed.
15091c0c120SMika Westerberg
15191c0c120SMika WesterbergWhat:		/sys/bus/thunderbolt/devices/.../rx_lanes
15291c0c120SMika WesterbergDate:		Jan 2020
15391c0c120SMika WesterbergKernelVersion:	5.5
15491c0c120SMika WesterbergContact:	Mika Westerberg <mika.westerberg@linux.intel.com>
15591c0c120SMika WesterbergDescription:	This attribute reports number of RX lanes the device is
15691c0c120SMika Westerberg		using simultaneusly through its upstream port.
15791c0c120SMika Westerberg
15891c0c120SMika WesterbergWhat:		/sys/bus/thunderbolt/devices/.../tx_speed
15991c0c120SMika WesterbergDate:		Jan 2020
16091c0c120SMika WesterbergKernelVersion:	5.5
16191c0c120SMika WesterbergContact:	Mika Westerberg <mika.westerberg@linux.intel.com>
16291c0c120SMika WesterbergDescription:	This attribute reports the TX speed per lane.
16391c0c120SMika Westerberg		All TX lanes run at the same speed.
16491c0c120SMika Westerberg
16591c0c120SMika WesterbergWhat:		/sys/bus/thunderbolt/devices/.../tx_lanes
16691c0c120SMika WesterbergDate:		Jan 2020
16791c0c120SMika WesterbergKernelVersion:	5.5
16891c0c120SMika WesterbergContact:	Mika Westerberg <mika.westerberg@linux.intel.com>
16991c0c120SMika WesterbergDescription:	This attribute reports number of TX lanes the device is
17091c0c120SMika Westerberg		using simultaneusly through its upstream port.
17191c0c120SMika Westerberg
172bfe778acSMika WesterbergWhat:		/sys/bus/thunderbolt/devices/.../vendor
173bfe778acSMika WesterbergDate:		Sep 2017
174bfe778acSMika WesterbergKernelVersion:	4.13
175bfe778acSMika WesterbergContact:	thunderbolt-software@lists.01.org
176bfe778acSMika WesterbergDescription:	This attribute contains vendor id of this device extracted
177bfe778acSMika Westerberg		from the device DROM.
178bfe778acSMika Westerberg
17972ee3390SMika WesterbergWhat:		/sys/bus/thunderbolt/devices/.../vendor_name
18072ee3390SMika WesterbergDate:		Sep 2017
18172ee3390SMika WesterbergKernelVersion:	4.13
18272ee3390SMika WesterbergContact:	thunderbolt-software@lists.01.org
18372ee3390SMika WesterbergDescription:	This attribute contains vendor name of this device extracted
18472ee3390SMika Westerberg		from the device DROM.
18572ee3390SMika Westerberg
186bfe778acSMika WesterbergWhat:		/sys/bus/thunderbolt/devices/.../unique_id
187bfe778acSMika WesterbergDate:		Sep 2017
188bfe778acSMika WesterbergKernelVersion:	4.13
189bfe778acSMika WesterbergContact:	thunderbolt-software@lists.01.org
190bfe778acSMika WesterbergDescription:	This attribute contains unique_id string of this device.
191bfe778acSMika Westerberg		This is either read from hardware registers (UUID on
192bfe778acSMika Westerberg		newer hardware) or based on UID from the device DROM.
193bfe778acSMika Westerberg		Can be used to uniquely identify particular device.
194e6b245ccSMika Westerberg
195e6b245ccSMika WesterbergWhat:		/sys/bus/thunderbolt/devices/.../nvm_version
196e6b245ccSMika WesterbergDate:		Sep 2017
197e6b245ccSMika WesterbergKernelVersion:	4.13
198e6b245ccSMika WesterbergContact:	thunderbolt-software@lists.01.org
199e6b245ccSMika WesterbergDescription:	If the device has upgradeable firmware the version
200e6b245ccSMika Westerberg		number is available here. Format: %x.%x, major.minor.
201e6b245ccSMika Westerberg		If the device is in safe mode reading the file returns
202e6b245ccSMika Westerberg		-ENODATA instead as the NVM version is not available.
203e6b245ccSMika Westerberg
204e6b245ccSMika WesterbergWhat:		/sys/bus/thunderbolt/devices/.../nvm_authenticate
205e6b245ccSMika WesterbergDate:		Sep 2017
206e6b245ccSMika WesterbergKernelVersion:	4.13
207e6b245ccSMika WesterbergContact:	thunderbolt-software@lists.01.org
208e6b245ccSMika WesterbergDescription:	When new NVM image is written to the non-active NVM
209e6b245ccSMika Westerberg		area (through non_activeX NVMem device), the
2104b794f80SMario Limonciello		authentication procedure is started by writing to
2114b794f80SMario Limonciello		this file.
2124b794f80SMario Limonciello		If everything goes well, the device is
213e6b245ccSMika Westerberg		restarted with the new NVM firmware. If the image
214e6b245ccSMika Westerberg		verification fails an error code is returned instead.
215e6b245ccSMika Westerberg
2164b794f80SMario Limonciello		This file will accept writing values "1" or "2"
21754a19b4dSMauro Carvalho Chehab
2184b794f80SMario Limonciello		- Writing "1" will flush the image to the storage
2194b794f80SMario Limonciello		  area and authenticate the image in one action.
2204b794f80SMario Limonciello		- Writing "2" will run some basic validation on the image
2214b794f80SMario Limonciello		  and flush it to the storage area.
2224b794f80SMario Limonciello
223e6b245ccSMika Westerberg		When read holds status of the last authentication
224e6b245ccSMika Westerberg		operation if an error occurred during the process. This
225e6b245ccSMika Westerberg		is directly the status value from the DMA configuration
226e6b245ccSMika Westerberg		based mailbox before the device is power cycled. Writing
227e6b245ccSMika Westerberg		0 here clears the status.
228d1ff7024SMika Westerberg
229d1ff7024SMika WesterbergWhat:		/sys/bus/thunderbolt/devices/<xdomain>.<service>/key
230d1ff7024SMika WesterbergDate:		Jan 2018
231d1ff7024SMika WesterbergKernelVersion:	4.15
232d1ff7024SMika WesterbergContact:	thunderbolt-software@lists.01.org
233d1ff7024SMika WesterbergDescription:	This contains name of the property directory the XDomain
234d1ff7024SMika Westerberg		service exposes. This entry describes the protocol in
235d1ff7024SMika Westerberg		question. Following directories are already reserved by
236d1ff7024SMika Westerberg		the Apple XDomain specification:
237d1ff7024SMika Westerberg
23854a19b4dSMauro Carvalho Chehab		========  ===============================================
23954a19b4dSMauro Carvalho Chehab		network   IP/ethernet over Thunderbolt
24054a19b4dSMauro Carvalho Chehab		targetdm  Target disk mode protocol over Thunderbolt
24154a19b4dSMauro Carvalho Chehab		extdisp   External display mode protocol over Thunderbolt
24254a19b4dSMauro Carvalho Chehab		========  ===============================================
243d1ff7024SMika Westerberg
244d1ff7024SMika WesterbergWhat:		/sys/bus/thunderbolt/devices/<xdomain>.<service>/modalias
245d1ff7024SMika WesterbergDate:		Jan 2018
246d1ff7024SMika WesterbergKernelVersion:	4.15
247d1ff7024SMika WesterbergContact:	thunderbolt-software@lists.01.org
248d1ff7024SMika WesterbergDescription:	Stores the same MODALIAS value emitted by uevent for
249d1ff7024SMika Westerberg		the XDomain service. Format: tbtsvc:kSpNvNrN
250d1ff7024SMika Westerberg
251d1ff7024SMika WesterbergWhat:		/sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcid
252d1ff7024SMika WesterbergDate:		Jan 2018
253d1ff7024SMika WesterbergKernelVersion:	4.15
254d1ff7024SMika WesterbergContact:	thunderbolt-software@lists.01.org
255d1ff7024SMika WesterbergDescription:	This contains XDomain protocol identifier the XDomain
256d1ff7024SMika Westerberg		service supports.
257d1ff7024SMika Westerberg
258d1ff7024SMika WesterbergWhat:		/sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcvers
259d1ff7024SMika WesterbergDate:		Jan 2018
260d1ff7024SMika WesterbergKernelVersion:	4.15
261d1ff7024SMika WesterbergContact:	thunderbolt-software@lists.01.org
262d1ff7024SMika WesterbergDescription:	This contains XDomain protocol version the XDomain
263d1ff7024SMika Westerberg		service supports.
264d1ff7024SMika Westerberg
265d1ff7024SMika WesterbergWhat:		/sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcrevs
266d1ff7024SMika WesterbergDate:		Jan 2018
267d1ff7024SMika WesterbergKernelVersion:	4.15
268d1ff7024SMika WesterbergContact:	thunderbolt-software@lists.01.org
269d1ff7024SMika WesterbergDescription:	This contains XDomain software version the XDomain
270d1ff7024SMika Westerberg		service supports.
271d1ff7024SMika Westerberg
272d1ff7024SMika WesterbergWhat:		/sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcstns
273d1ff7024SMika WesterbergDate:		Jan 2018
274d1ff7024SMika WesterbergKernelVersion:	4.15
275d1ff7024SMika WesterbergContact:	thunderbolt-software@lists.01.org
276d1ff7024SMika WesterbergDescription:	This contains XDomain service specific settings as
277d1ff7024SMika Westerberg		bitmask. Format: %x
278dacb1287SKranthi Kuntala
279dacb1287SKranthi KuntalaWhat:		/sys/bus/thunderbolt/devices/<device>:<port>.<index>/device
280dacb1287SKranthi KuntalaDate:		Oct 2020
281dacb1287SKranthi KuntalaKernelVersion:	v5.9
282dacb1287SKranthi KuntalaContact:	Mika Westerberg <mika.westerberg@linux.intel.com>
283dacb1287SKranthi KuntalaDescription:	Retimer device identifier read from the hardware.
284dacb1287SKranthi Kuntala
285dacb1287SKranthi KuntalaWhat:		/sys/bus/thunderbolt/devices/<device>:<port>.<index>/nvm_authenticate
286dacb1287SKranthi KuntalaDate:		Oct 2020
287dacb1287SKranthi KuntalaKernelVersion:	v5.9
288dacb1287SKranthi KuntalaContact:	Mika Westerberg <mika.westerberg@linux.intel.com>
289dacb1287SKranthi KuntalaDescription:	When new NVM image is written to the non-active NVM
290dacb1287SKranthi Kuntala		area (through non_activeX NVMem device), the
291dacb1287SKranthi Kuntala		authentication procedure is started by writing 1 to
292dacb1287SKranthi Kuntala		this file. If everything goes well, the device is
293dacb1287SKranthi Kuntala		restarted with the new NVM firmware. If the image
294dacb1287SKranthi Kuntala		verification fails an error code is returned instead.
295dacb1287SKranthi Kuntala
296dacb1287SKranthi Kuntala		When read holds status of the last authentication
297dacb1287SKranthi Kuntala		operation if an error occurred during the process.
298dacb1287SKranthi Kuntala		Format: %x.
299dacb1287SKranthi Kuntala
300dacb1287SKranthi KuntalaWhat:		/sys/bus/thunderbolt/devices/<device>:<port>.<index>/nvm_version
301dacb1287SKranthi KuntalaDate:		Oct 2020
302dacb1287SKranthi KuntalaKernelVersion:	v5.9
303dacb1287SKranthi KuntalaContact:	Mika Westerberg <mika.westerberg@linux.intel.com>
304dacb1287SKranthi KuntalaDescription:	Holds retimer NVM version number. Format: %x.%x, major.minor.
305dacb1287SKranthi Kuntala
306dacb1287SKranthi KuntalaWhat:		/sys/bus/thunderbolt/devices/<device>:<port>.<index>/vendor
307dacb1287SKranthi KuntalaDate:		Oct 2020
308dacb1287SKranthi KuntalaKernelVersion:	v5.9
309dacb1287SKranthi KuntalaContact:	Mika Westerberg <mika.westerberg@linux.intel.com>
310dacb1287SKranthi KuntalaDescription:	Retimer vendor identifier read from the hardware.
3111cb36293SMario Limonciello
3121cb36293SMario LimoncielloWhat:		/sys/bus/thunderbolt/devices/.../nvm_authenticate_on_disconnect
3131cb36293SMario LimoncielloDate:		Oct 2020
3141cb36293SMario LimoncielloKernelVersion:	v5.9
3151cb36293SMario LimoncielloContact:	Mario Limonciello <mario.limonciello@dell.com>
3161cb36293SMario LimoncielloDescription:	For supported devices, automatically authenticate the new Thunderbolt
3171cb36293SMario Limonciello		image when the device is disconnected from the host system.
3181cb36293SMario Limonciello
3191cb36293SMario Limonciello		This file will accept writing values "1" or "2"
32054a19b4dSMauro Carvalho Chehab
3211cb36293SMario Limonciello		- Writing "1" will flush the image to the storage
3221cb36293SMario Limonciello		  area and prepare the device for authentication on disconnect.
3231cb36293SMario Limonciello		- Writing "2" will run some basic validation on the image
3241cb36293SMario Limonciello		  and flush it to the storage area.
325