0001 What: /sys/bus/thunderbolt/devices/.../domainX/boot_acl
0002 Date: Jun 2018
0003 KernelVersion: 4.17
0004 Contact: thunderbolt-software@lists.01.org
0005 Description: Holds a comma separated list of device unique_ids that
0006 are allowed to be connected automatically during system
0007 startup (e.g boot devices). The list always contains
0008 maximum supported number of unique_ids where unused
0009 entries are empty. This allows the userspace software
0010 to determine how many entries the controller supports.
0011 If there are multiple controllers, each controller has
0012 its own ACL list and size may be different between the
0013 controllers.
0014
0015 System BIOS may have an option "Preboot ACL" or similar
0016 that needs to be selected before this list is taken into
0017 consideration.
0018
0019 Software always updates a full list in each write.
0020
0021 If a device is authorized automatically during boot its
0022 boot attribute is set to 1.
0023
0024 What: /sys/bus/thunderbolt/devices/.../domainX/deauthorization
0025 Date: May 2021
0026 KernelVersion: 5.12
0027 Contact: Mika Westerberg <mika.westerberg@linux.intel.com>
0028 Description: This attribute tells whether the system supports
0029 de-authorization of devices. Value of 1 means user can
0030 de-authorize PCIe tunnel by writing 0 to authorized
0031 attribute under each device.
0032
0033 What: /sys/bus/thunderbolt/devices/.../domainX/iommu_dma_protection
0034 Date: Mar 2019
0035 KernelVersion: 4.21
0036 Contact: thunderbolt-software@lists.01.org
0037 Description: This attribute tells whether the system uses IOMMU
0038 for DMA protection. Value of 1 means IOMMU is used 0 means
0039 it is not (DMA protection is solely based on Thunderbolt
0040 security levels).
0041
0042 What: /sys/bus/thunderbolt/devices/.../domainX/security
0043 Date: Sep 2017
0044 KernelVersion: 4.13
0045 Contact: thunderbolt-software@lists.01.org
0046 Description: This attribute holds current Thunderbolt security level
0047 set by the system BIOS. Possible values are:
0048
0049 ======= ==================================================
0050 none All devices are automatically authorized
0051 user Devices are only authorized based on writing
0052 appropriate value to the authorized attribute
0053 secure Require devices that support secure connect at
0054 minimum. User needs to authorize each device.
0055 dponly Automatically tunnel Display port (and USB). No
0056 PCIe tunnels are created.
0057 usbonly Automatically tunnel USB controller of the
0058 connected Thunderbolt dock (and Display Port). All
0059 PCIe links downstream of the dock are removed.
0060 nopcie USB4 system where PCIe tunneling is disabled from
0061 the BIOS.
0062 ======= ==================================================
0063
0064 What: /sys/bus/thunderbolt/devices/.../authorized
0065 Date: Sep 2017
0066 KernelVersion: 4.13
0067 Contact: thunderbolt-software@lists.01.org
0068 Description: This attribute is used to authorize Thunderbolt devices
0069 after they have been connected. If the device is not
0070 authorized, no PCIe devices are available to the system.
0071
0072 Contents of this attribute will be 0 when the device is not
0073 yet authorized.
0074
0075 Possible values are supported:
0076
0077 == ===================================================
0078 0 The device will be de-authorized (only supported if
0079 deauthorization attribute under domain contains 1)
0080 1 The device will be authorized and connected
0081 == ===================================================
0082
0083 When key attribute contains 32 byte hex string the possible
0084 values are:
0085
0086 == ========================================================
0087 0 The device will be de-authorized (only supported if
0088 deauthorization attribute under domain contains 1)
0089 1 The 32 byte hex string is added to the device NVM and
0090 the device is authorized.
0091 2 Send a challenge based on the 32 byte hex string. If the
0092 challenge response from device is valid, the device is
0093 authorized. In case of failure errno will be ENOKEY if
0094 the device did not contain a key at all, and
0095 EKEYREJECTED if the challenge response did not match.
0096 == ========================================================
0097
0098 What: /sys/bus/thunderbolt/devices/.../boot
0099 Date: Jun 2018
0100 KernelVersion: 4.17
0101 Contact: thunderbolt-software@lists.01.org
0102 Description: This attribute contains 1 if Thunderbolt device was already
0103 authorized on boot and 0 otherwise.
0104
0105 What: /sys/bus/thunderbolt/devices/.../generation
0106 Date: Jan 2020
0107 KernelVersion: 5.5
0108 Contact: Christian Kellner <christian@kellner.me>
0109 Description: This attribute contains the generation of the Thunderbolt
0110 controller associated with the device. It will contain 4
0111 for USB4.
0112
0113 What: /sys/bus/thunderbolt/devices/.../key
0114 Date: Sep 2017
0115 KernelVersion: 4.13
0116 Contact: thunderbolt-software@lists.01.org
0117 Description: When a devices supports Thunderbolt secure connect it will
0118 have this attribute. Writing 32 byte hex string changes
0119 authorization to use the secure connection method instead.
0120 Writing an empty string clears the key and regular connection
0121 method can be used again.
0122
0123 What: /sys/bus/thunderbolt/devices/.../device
0124 Date: Sep 2017
0125 KernelVersion: 4.13
0126 Contact: thunderbolt-software@lists.01.org
0127 Description: This attribute contains id of this device extracted from
0128 the device DROM.
0129
0130 What: /sys/bus/thunderbolt/devices/.../device_name
0131 Date: Sep 2017
0132 KernelVersion: 4.13
0133 Contact: thunderbolt-software@lists.01.org
0134 Description: This attribute contains name of this device extracted from
0135 the device DROM.
0136
0137 What: /sys/bus/thunderbolt/devices/.../maxhopid
0138 Date: Jul 2021
0139 KernelVersion: 5.13
0140 Contact: Mika Westerberg <mika.westerberg@linux.intel.com>
0141 Description: Only set for XDomains. The maximum HopID the other host
0142 supports as its input HopID.
0143
0144 What: /sys/bus/thunderbolt/devices/.../rx_speed
0145 Date: Jan 2020
0146 KernelVersion: 5.5
0147 Contact: Mika Westerberg <mika.westerberg@linux.intel.com>
0148 Description: This attribute reports the device RX speed per lane.
0149 All RX lanes run at the same speed.
0150
0151 What: /sys/bus/thunderbolt/devices/.../rx_lanes
0152 Date: Jan 2020
0153 KernelVersion: 5.5
0154 Contact: Mika Westerberg <mika.westerberg@linux.intel.com>
0155 Description: This attribute reports number of RX lanes the device is
0156 using simultaneusly through its upstream port.
0157
0158 What: /sys/bus/thunderbolt/devices/.../tx_speed
0159 Date: Jan 2020
0160 KernelVersion: 5.5
0161 Contact: Mika Westerberg <mika.westerberg@linux.intel.com>
0162 Description: This attribute reports the TX speed per lane.
0163 All TX lanes run at the same speed.
0164
0165 What: /sys/bus/thunderbolt/devices/.../tx_lanes
0166 Date: Jan 2020
0167 KernelVersion: 5.5
0168 Contact: Mika Westerberg <mika.westerberg@linux.intel.com>
0169 Description: This attribute reports number of TX lanes the device is
0170 using simultaneusly through its upstream port.
0171
0172 What: /sys/bus/thunderbolt/devices/.../vendor
0173 Date: Sep 2017
0174 KernelVersion: 4.13
0175 Contact: thunderbolt-software@lists.01.org
0176 Description: This attribute contains vendor id of this device extracted
0177 from the device DROM.
0178
0179 What: /sys/bus/thunderbolt/devices/.../vendor_name
0180 Date: Sep 2017
0181 KernelVersion: 4.13
0182 Contact: thunderbolt-software@lists.01.org
0183 Description: This attribute contains vendor name of this device extracted
0184 from the device DROM.
0185
0186 What: /sys/bus/thunderbolt/devices/.../unique_id
0187 Date: Sep 2017
0188 KernelVersion: 4.13
0189 Contact: thunderbolt-software@lists.01.org
0190 Description: This attribute contains unique_id string of this device.
0191 This is either read from hardware registers (UUID on
0192 newer hardware) or based on UID from the device DROM.
0193 Can be used to uniquely identify particular device.
0194
0195 What: /sys/bus/thunderbolt/devices/.../nvm_version
0196 Date: Sep 2017
0197 KernelVersion: 4.13
0198 Contact: thunderbolt-software@lists.01.org
0199 Description: If the device has upgradeable firmware the version
0200 number is available here. Format: %x.%x, major.minor.
0201 If the device is in safe mode reading the file returns
0202 -ENODATA instead as the NVM version is not available.
0203
0204 What: /sys/bus/thunderbolt/devices/.../nvm_authenticate
0205 Date: Sep 2017
0206 KernelVersion: 4.13
0207 Contact: thunderbolt-software@lists.01.org
0208 Description: When new NVM image is written to the non-active NVM
0209 area (through non_activeX NVMem device), the
0210 authentication procedure is started by writing to
0211 this file.
0212 If everything goes well, the device is
0213 restarted with the new NVM firmware. If the image
0214 verification fails an error code is returned instead.
0215
0216 This file will accept writing values "1", "2" or "3".
0217
0218 - Writing "1" will flush the image to the storage
0219 area and authenticate the image in one action.
0220 - Writing "2" will run some basic validation on the image
0221 and flush it to the storage area.
0222 - Writing "3" will authenticate the image that is
0223 currently written in the storage area. This is only
0224 supported with USB4 devices and retimers.
0225
0226 When read holds status of the last authentication
0227 operation if an error occurred during the process. This
0228 is directly the status value from the DMA configuration
0229 based mailbox before the device is power cycled. Writing
0230 0 here clears the status.
0231
0232 What: /sys/bus/thunderbolt/devices/.../nvm_authenticate_on_disconnect
0233 Date: Oct 2020
0234 KernelVersion: v5.9
0235 Contact: Mario Limonciello <mario.limonciello@outlook.com>
0236 Description: For supported devices, automatically authenticate the new Thunderbolt
0237 image when the device is disconnected from the host system.
0238
0239 This file will accept writing values "1" or "2"
0240
0241 - Writing "1" will flush the image to the storage
0242 area and prepare the device for authentication on disconnect.
0243 - Writing "2" will run some basic validation on the image
0244 and flush it to the storage area.
0245
0246 What: /sys/bus/thunderbolt/devices/<xdomain>.<service>/key
0247 Date: Jan 2018
0248 KernelVersion: 4.15
0249 Contact: thunderbolt-software@lists.01.org
0250 Description: This contains name of the property directory the XDomain
0251 service exposes. This entry describes the protocol in
0252 question. Following directories are already reserved by
0253 the Apple XDomain specification:
0254
0255 ======== ===============================================
0256 network IP/ethernet over Thunderbolt
0257 targetdm Target disk mode protocol over Thunderbolt
0258 extdisp External display mode protocol over Thunderbolt
0259 ======== ===============================================
0260
0261 What: /sys/bus/thunderbolt/devices/<xdomain>.<service>/modalias
0262 Date: Jan 2018
0263 KernelVersion: 4.15
0264 Contact: thunderbolt-software@lists.01.org
0265 Description: Stores the same MODALIAS value emitted by uevent for
0266 the XDomain service. Format: tbtsvc:kSpNvNrN
0267
0268 What: /sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcid
0269 Date: Jan 2018
0270 KernelVersion: 4.15
0271 Contact: thunderbolt-software@lists.01.org
0272 Description: This contains XDomain protocol identifier the XDomain
0273 service supports.
0274
0275 What: /sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcvers
0276 Date: Jan 2018
0277 KernelVersion: 4.15
0278 Contact: thunderbolt-software@lists.01.org
0279 Description: This contains XDomain protocol version the XDomain
0280 service supports.
0281
0282 What: /sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcrevs
0283 Date: Jan 2018
0284 KernelVersion: 4.15
0285 Contact: thunderbolt-software@lists.01.org
0286 Description: This contains XDomain software version the XDomain
0287 service supports.
0288
0289 What: /sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcstns
0290 Date: Jan 2018
0291 KernelVersion: 4.15
0292 Contact: thunderbolt-software@lists.01.org
0293 Description: This contains XDomain service specific settings as
0294 bitmask. Format: %x
0295
0296 What: /sys/bus/thunderbolt/devices/usb4_portX/connector
0297 Date: April 2022
0298 Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
0299 Description:
0300 Symlink to the USB Type-C connector. This link is only
0301 created when USB Type-C Connector Class is enabled,
0302 and only if the system firmware is capable of
0303 describing the connection between a port and its
0304 connector.
0305
0306 What: /sys/bus/thunderbolt/devices/usb4_portX/link
0307 Date: Sep 2021
0308 KernelVersion: v5.14
0309 Contact: Mika Westerberg <mika.westerberg@linux.intel.com>
0310 Description: Returns the current link mode. Possible values are
0311 "usb4", "tbt" and "none".
0312
0313 What: /sys/bus/thunderbolt/devices/usb4_portX/offline
0314 Date: Sep 2021
0315 KernelVersion: v5.14
0316 Contact: Rajmohan Mani <rajmohan.mani@intel.com>
0317 Description: Writing 1 to this attribute puts the USB4 port into
0318 offline mode. Only allowed when there is nothing
0319 connected to the port (link attribute returns "none").
0320 Once the port is in offline mode it does not receive any
0321 hotplug events. This is used to update NVM firmware of
0322 on-board retimers. Writing 0 puts the port back to
0323 online mode.
0324
0325 This attribute is only visible if the platform supports
0326 powering on retimers when there is no cable connected.
0327
0328 What: /sys/bus/thunderbolt/devices/usb4_portX/rescan
0329 Date: Sep 2021
0330 KernelVersion: v5.14
0331 Contact: Rajmohan Mani <rajmohan.mani@intel.com>
0332 Description: When the USB4 port is in offline mode writing 1 to this
0333 attribute forces rescan of the sideband for on-board
0334 retimers. Each retimer appear under the USB4 port as if
0335 the USB4 link was up. These retimers act in the same way
0336 as if the cable was connected so upgrading their NVM
0337 firmware can be done the usual way.
0338
0339 What: /sys/bus/thunderbolt/devices/<device>:<port>.<index>/device
0340 Date: Oct 2020
0341 KernelVersion: v5.9
0342 Contact: Mika Westerberg <mika.westerberg@linux.intel.com>
0343 Description: Retimer device identifier read from the hardware.
0344
0345 What: /sys/bus/thunderbolt/devices/<device>:<port>.<index>/nvm_authenticate
0346 Date: Oct 2020
0347 KernelVersion: v5.9
0348 Contact: Mika Westerberg <mika.westerberg@linux.intel.com>
0349 Description: When new NVM image is written to the non-active NVM
0350 area (through non_activeX NVMem device), the
0351 authentication procedure is started by writing 1 to
0352 this file. If everything goes well, the device is
0353 restarted with the new NVM firmware. If the image
0354 verification fails an error code is returned instead.
0355
0356 When read holds status of the last authentication
0357 operation if an error occurred during the process.
0358 Format: %x.
0359
0360 What: /sys/bus/thunderbolt/devices/<device>:<port>.<index>/nvm_version
0361 Date: Oct 2020
0362 KernelVersion: v5.9
0363 Contact: Mika Westerberg <mika.westerberg@linux.intel.com>
0364 Description: Holds retimer NVM version number. Format: %x.%x, major.minor.
0365
0366 What: /sys/bus/thunderbolt/devices/<device>:<port>.<index>/vendor
0367 Date: Oct 2020
0368 KernelVersion: v5.9
0369 Contact: Mika Westerberg <mika.westerberg@linux.intel.com>
0370 Description: Retimer vendor identifier read from the hardware.