1 What: /sys/bus/thunderbolt/devices/.../domainX/boot_acl 2 Date: Jun 2018 3 KernelVersion: 4.17 4 Contact: Mika Westerberg <mika.westerberg@linux.intel.com> 5 Description: 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 24 What: /sys/bus/thunderbolt/devices/.../domainX/deauthorization 25 Date: May 2021 26 KernelVersion: 5.12 27 Contact: Mika Westerberg <mika.westerberg@linux.intel.com> 28 Description: This attribute tells whether the system supports 29 de-authorization of devices. Value of 1 means user can 30 de-authorize PCIe tunnel by writing 0 to authorized 31 attribute under each device. 32 33 What: /sys/bus/thunderbolt/devices/.../domainX/iommu_dma_protection 34 Date: Mar 2019 35 KernelVersion: 4.21 36 Contact: Mika Westerberg <mika.westerberg@linux.intel.com> 37 Description: This attribute tells whether the system uses IOMMU 38 for DMA protection. Value of 1 means IOMMU is used 0 means 39 it is not (DMA protection is solely based on Thunderbolt 40 security levels). 41 42 What: /sys/bus/thunderbolt/devices/.../domainX/security 43 Date: Sep 2017 44 KernelVersion: 4.13 45 Contact: Mika Westerberg <mika.westerberg@linux.intel.com> 46 Description: This attribute holds current Thunderbolt security level 47 set by the system BIOS. Possible values are: 48 49 ======= ================================================== 50 none All devices are automatically authorized 51 user Devices are only authorized based on writing 52 appropriate value to the authorized attribute 53 secure Require devices that support secure connect at 54 minimum. User needs to authorize each device. 55 dponly Automatically tunnel Display port (and USB). No 56 PCIe tunnels are created. 57 usbonly Automatically tunnel USB controller of the 58 connected Thunderbolt dock (and Display Port). All 59 PCIe links downstream of the dock are removed. 60 nopcie USB4 system where PCIe tunneling is disabled from 61 the BIOS. 62 ======= ================================================== 63 64 What: /sys/bus/thunderbolt/devices/.../authorized 65 Date: Sep 2017 66 KernelVersion: 4.13 67 Contact: Mika Westerberg <mika.westerberg@linux.intel.com> 68 Description: This attribute is used to authorize Thunderbolt devices 69 after they have been connected. If the device is not 70 authorized, no PCIe devices are available to the system. 71 72 Contents of this attribute will be 0 when the device is not 73 yet authorized. 74 75 Possible values are supported: 76 77 == =================================================== 78 0 The device will be de-authorized (only supported if 79 deauthorization attribute under domain contains 1) 80 1 The device will be authorized and connected 81 == =================================================== 82 83 When key attribute contains 32 byte hex string the possible 84 values are: 85 86 == ======================================================== 87 0 The device will be de-authorized (only supported if 88 deauthorization attribute under domain contains 1) 89 1 The 32 byte hex string is added to the device NVM and 90 the device is authorized. 91 2 Send a challenge based on the 32 byte hex string. If the 92 challenge response from device is valid, the device is 93 authorized. In case of failure errno will be ENOKEY if 94 the device did not contain a key at all, and 95 EKEYREJECTED if the challenge response did not match. 96 == ======================================================== 97 98 What: /sys/bus/thunderbolt/devices/.../boot 99 Date: Jun 2018 100 KernelVersion: 4.17 101 Contact: Mika Westerberg <mika.westerberg@linux.intel.com> 102 Description: This attribute contains 1 if Thunderbolt device was already 103 authorized on boot and 0 otherwise. 104 105 What: /sys/bus/thunderbolt/devices/.../generation 106 Date: Jan 2020 107 KernelVersion: 5.5 108 Contact: Christian Kellner <christian@kellner.me> 109 Description: This attribute contains the generation of the Thunderbolt 110 controller associated with the device. It will contain 4 111 for USB4. 112 113 What: /sys/bus/thunderbolt/devices/.../key 114 Date: Sep 2017 115 KernelVersion: 4.13 116 Contact: Mika Westerberg <mika.westerberg@linux.intel.com> 117 Description: When a devices supports Thunderbolt secure connect it will 118 have this attribute. Writing 32 byte hex string changes 119 authorization to use the secure connection method instead. 120 Writing an empty string clears the key and regular connection 121 method can be used again. 122 123 What: /sys/bus/thunderbolt/devices/.../device 124 Date: Sep 2017 125 KernelVersion: 4.13 126 Contact: Mika Westerberg <mika.westerberg@linux.intel.com> 127 Description: This attribute contains id of this device extracted from 128 the device DROM. 129 130 What: /sys/bus/thunderbolt/devices/.../device_name 131 Date: Sep 2017 132 KernelVersion: 4.13 133 Contact: Mika Westerberg <mika.westerberg@linux.intel.com> 134 Description: This attribute contains name of this device extracted from 135 the device DROM. 136 137 What: /sys/bus/thunderbolt/devices/.../maxhopid 138 Date: Jul 2021 139 KernelVersion: 5.13 140 Contact: Mika Westerberg <mika.westerberg@linux.intel.com> 141 Description: Only set for XDomains. The maximum HopID the other host 142 supports as its input HopID. 143 144 What: /sys/bus/thunderbolt/devices/.../rx_speed 145 Date: Jan 2020 146 KernelVersion: 5.5 147 Contact: Mika Westerberg <mika.westerberg@linux.intel.com> 148 Description: This attribute reports the device RX speed per lane. 149 All RX lanes run at the same speed. 150 151 What: /sys/bus/thunderbolt/devices/.../rx_lanes 152 Date: Jan 2020 153 KernelVersion: 5.5 154 Contact: Mika Westerberg <mika.westerberg@linux.intel.com> 155 Description: This attribute reports number of RX lanes the device is 156 using simultaneously through its upstream port. 157 158 What: /sys/bus/thunderbolt/devices/.../tx_speed 159 Date: Jan 2020 160 KernelVersion: 5.5 161 Contact: Mika Westerberg <mika.westerberg@linux.intel.com> 162 Description: This attribute reports the TX speed per lane. 163 All TX lanes run at the same speed. 164 165 What: /sys/bus/thunderbolt/devices/.../tx_lanes 166 Date: Jan 2020 167 KernelVersion: 5.5 168 Contact: Mika Westerberg <mika.westerberg@linux.intel.com> 169 Description: This attribute reports number of TX lanes the device is 170 using simultaneously through its upstream port. 171 172 What: /sys/bus/thunderbolt/devices/.../vendor 173 Date: Sep 2017 174 KernelVersion: 4.13 175 Contact: Mika Westerberg <mika.westerberg@linux.intel.com> 176 Description: This attribute contains vendor id of this device extracted 177 from the device DROM. 178 179 What: /sys/bus/thunderbolt/devices/.../vendor_name 180 Date: Sep 2017 181 KernelVersion: 4.13 182 Contact: Mika Westerberg <mika.westerberg@linux.intel.com> 183 Description: This attribute contains vendor name of this device extracted 184 from the device DROM. 185 186 What: /sys/bus/thunderbolt/devices/.../unique_id 187 Date: Sep 2017 188 KernelVersion: 4.13 189 Contact: Mika Westerberg <mika.westerberg@linux.intel.com> 190 Description: This attribute contains unique_id string of this device. 191 This is either read from hardware registers (UUID on 192 newer hardware) or based on UID from the device DROM. 193 Can be used to uniquely identify particular device. 194 195 What: /sys/bus/thunderbolt/devices/.../nvm_version 196 Date: Sep 2017 197 KernelVersion: 4.13 198 Contact: Mika Westerberg <mika.westerberg@linux.intel.com> 199 Description: If the device has upgradeable firmware the version 200 number is available here. Format: %x.%x, major.minor. 201 If the device is in safe mode reading the file returns 202 -ENODATA instead as the NVM version is not available. 203 204 What: /sys/bus/thunderbolt/devices/.../nvm_authenticate 205 Date: Sep 2017 206 KernelVersion: 4.13 207 Contact: Mika Westerberg <mika.westerberg@linux.intel.com> 208 Description: When new NVM image is written to the non-active NVM 209 area (through non_activeX NVMem device), the 210 authentication procedure is started by writing to 211 this file. 212 If everything goes well, the device is 213 restarted with the new NVM firmware. If the image 214 verification fails an error code is returned instead. 215 216 This file will accept writing values "1", "2" or "3". 217 218 - Writing "1" will flush the image to the storage 219 area and authenticate the image in one action. 220 - Writing "2" will run some basic validation on the image 221 and flush it to the storage area. 222 - Writing "3" will authenticate the image that is 223 currently written in the storage area. This is only 224 supported with USB4 devices and retimers. 225 226 When read holds status of the last authentication 227 operation if an error occurred during the process. This 228 is directly the status value from the DMA configuration 229 based mailbox before the device is power cycled. Writing 230 0 here clears the status. 231 232 What: /sys/bus/thunderbolt/devices/.../nvm_authenticate_on_disconnect 233 Date: Oct 2020 234 KernelVersion: v5.9 235 Contact: Mario Limonciello <mario.limonciello@outlook.com> 236 Description: For supported devices, automatically authenticate the new Thunderbolt 237 image when the device is disconnected from the host system. 238 239 This file will accept writing values "1" or "2" 240 241 - Writing "1" will flush the image to the storage 242 area and prepare the device for authentication on disconnect. 243 - Writing "2" will run some basic validation on the image 244 and flush it to the storage area. 245 246 What: /sys/bus/thunderbolt/devices/<xdomain>.<service>/key 247 Date: Jan 2018 248 KernelVersion: 4.15 249 Contact: Mika Westerberg <mika.westerberg@linux.intel.com> 250 Description: This contains name of the property directory the XDomain 251 service exposes. This entry describes the protocol in 252 question. Following directories are already reserved by 253 the Apple XDomain specification: 254 255 ======== =============================================== 256 network IP/ethernet over Thunderbolt 257 targetdm Target disk mode protocol over Thunderbolt 258 extdisp External display mode protocol over Thunderbolt 259 ======== =============================================== 260 261 What: /sys/bus/thunderbolt/devices/<xdomain>.<service>/modalias 262 Date: Jan 2018 263 KernelVersion: 4.15 264 Contact: Mika Westerberg <mika.westerberg@linux.intel.com> 265 Description: Stores the same MODALIAS value emitted by uevent for 266 the XDomain service. Format: tbtsvc:kSpNvNrN 267 268 What: /sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcid 269 Date: Jan 2018 270 KernelVersion: 4.15 271 Contact: Mika Westerberg <mika.westerberg@linux.intel.com> 272 Description: This contains XDomain protocol identifier the XDomain 273 service supports. 274 275 What: /sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcvers 276 Date: Jan 2018 277 KernelVersion: 4.15 278 Contact: Mika Westerberg <mika.westerberg@linux.intel.com> 279 Description: This contains XDomain protocol version the XDomain 280 service supports. 281 282 What: /sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcrevs 283 Date: Jan 2018 284 KernelVersion: 4.15 285 Contact: Mika Westerberg <mika.westerberg@linux.intel.com> 286 Description: This contains XDomain software version the XDomain 287 service supports. 288 289 What: /sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcstns 290 Date: Jan 2018 291 KernelVersion: 4.15 292 Contact: Mika Westerberg <mika.westerberg@linux.intel.com> 293 Description: This contains XDomain service specific settings as 294 bitmask. Format: %x 295 296 What: /sys/bus/thunderbolt/devices/usb4_portX/connector 297 Date: April 2022 298 Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com> 299 Description: 300 Symlink to the USB Type-C connector. This link is only 301 created when USB Type-C Connector Class is enabled, 302 and only if the system firmware is capable of 303 describing the connection between a port and its 304 connector. 305 306 What: /sys/bus/thunderbolt/devices/usb4_portX/link 307 Date: Sep 2021 308 KernelVersion: v5.14 309 Contact: Mika Westerberg <mika.westerberg@linux.intel.com> 310 Description: Returns the current link mode. Possible values are 311 "usb4", "tbt" and "none". 312 313 What: /sys/bus/thunderbolt/devices/usb4_portX/offline 314 Date: Sep 2021 315 KernelVersion: v5.14 316 Contact: Rajmohan Mani <rajmohan.mani@intel.com> 317 Description: Writing 1 to this attribute puts the USB4 port into 318 offline mode. Only allowed when there is nothing 319 connected to the port (link attribute returns "none"). 320 Once the port is in offline mode it does not receive any 321 hotplug events. This is used to update NVM firmware of 322 on-board retimers. Writing 0 puts the port back to 323 online mode. 324 325 This attribute is only visible if the platform supports 326 powering on retimers when there is no cable connected. 327 328 What: /sys/bus/thunderbolt/devices/usb4_portX/rescan 329 Date: Sep 2021 330 KernelVersion: v5.14 331 Contact: Rajmohan Mani <rajmohan.mani@intel.com> 332 Description: When the USB4 port is in offline mode writing 1 to this 333 attribute forces rescan of the sideband for on-board 334 retimers. Each retimer appear under the USB4 port as if 335 the USB4 link was up. These retimers act in the same way 336 as if the cable was connected so upgrading their NVM 337 firmware can be done the usual way. 338 339 What: /sys/bus/thunderbolt/devices/<device>:<port>.<index>/device 340 Date: Oct 2020 341 KernelVersion: v5.9 342 Contact: Mika Westerberg <mika.westerberg@linux.intel.com> 343 Description: Retimer device identifier read from the hardware. 344 345 What: /sys/bus/thunderbolt/devices/<device>:<port>.<index>/nvm_authenticate 346 Date: Oct 2020 347 KernelVersion: v5.9 348 Contact: Mika Westerberg <mika.westerberg@linux.intel.com> 349 Description: When new NVM image is written to the non-active NVM 350 area (through non_activeX NVMem device), the 351 authentication procedure is started by writing 1 to 352 this file. If everything goes well, the device is 353 restarted with the new NVM firmware. If the image 354 verification fails an error code is returned instead. 355 356 When read holds status of the last authentication 357 operation if an error occurred during the process. 358 Format: %x. 359 360 What: /sys/bus/thunderbolt/devices/<device>:<port>.<index>/nvm_version 361 Date: Oct 2020 362 KernelVersion: v5.9 363 Contact: Mika Westerberg <mika.westerberg@linux.intel.com> 364 Description: Holds retimer NVM version number. Format: %x.%x, major.minor. 365 366 What: /sys/bus/thunderbolt/devices/<device>:<port>.<index>/vendor 367 Date: Oct 2020 368 KernelVersion: v5.9 369 Contact: Mika Westerberg <mika.westerberg@linux.intel.com> 370 Description: Retimer vendor identifier read from the hardware.
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.