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