371 lines · plain
1What: /sys/bus/thunderbolt/devices/.../domainX/boot_acl2Date: Jun 20183KernelVersion: 4.174Contact: Mika Westerberg <mika.westerberg@linux.intel.com>5Description: Holds a comma separated list of device unique_ids that6 are allowed to be connected automatically during system7 startup (e.g boot devices). The list always contains8 maximum supported number of unique_ids where unused9 entries are empty. This allows the userspace software10 to determine how many entries the controller supports.11 If there are multiple controllers, each controller has12 its own ACL list and size may be different between the13 controllers.14 15 System BIOS may have an option "Preboot ACL" or similar16 that needs to be selected before this list is taken into17 consideration.18 19 Software always updates a full list in each write.20 21 If a device is authorized automatically during boot its22 boot attribute is set to 1.23 24What: /sys/bus/thunderbolt/devices/.../domainX/deauthorization25Date: May 202126KernelVersion: 5.1227Contact: Mika Westerberg <mika.westerberg@linux.intel.com>28Description: This attribute tells whether the system supports29 de-authorization of devices. Value of 1 means user can30 de-authorize PCIe tunnel by writing 0 to authorized31 attribute under each device.32 33What: /sys/bus/thunderbolt/devices/.../domainX/iommu_dma_protection34Date: Mar 201935KernelVersion: 4.2136Contact: Mika Westerberg <mika.westerberg@linux.intel.com>37Description: This attribute tells whether the system uses IOMMU38 for DMA protection. Value of 1 means IOMMU is used 0 means39 it is not (DMA protection is solely based on Thunderbolt40 security levels).41 42What: /sys/bus/thunderbolt/devices/.../domainX/security43Date: Sep 201744KernelVersion: 4.1345Contact: Mika Westerberg <mika.westerberg@linux.intel.com>46Description: This attribute holds current Thunderbolt security level47 set by the system BIOS. Possible values are:48 49 ======= ==================================================50 none All devices are automatically authorized51 user Devices are only authorized based on writing52 appropriate value to the authorized attribute53 secure Require devices that support secure connect at54 minimum. User needs to authorize each device.55 dponly Automatically tunnel Display port (and USB). No56 PCIe tunnels are created.57 usbonly Automatically tunnel USB controller of the58 connected Thunderbolt dock (and Display Port). All59 PCIe links downstream of the dock are removed.60 nopcie USB4 system where PCIe tunneling is disabled from61 the BIOS.62 ======= ==================================================63 64What: /sys/bus/thunderbolt/devices/.../authorized65Date: Sep 201766KernelVersion: 4.1367Contact: Mika Westerberg <mika.westerberg@linux.intel.com>68Description: This attribute is used to authorize Thunderbolt devices69 after they have been connected. If the device is not70 authorized, no PCIe devices are available to the system.71 72 Contents of this attribute will be 0 when the device is not73 yet authorized.74 75 Possible values are supported:76 77 == ===================================================78 0 The device will be de-authorized (only supported if79 deauthorization attribute under domain contains 1)80 1 The device will be authorized and connected81 == ===================================================82 83 When key attribute contains 32 byte hex string the possible84 values are:85 86 == ========================================================87 0 The device will be de-authorized (only supported if88 deauthorization attribute under domain contains 1)89 1 The 32 byte hex string is added to the device NVM and90 the device is authorized.91 2 Send a challenge based on the 32 byte hex string. If the92 challenge response from device is valid, the device is93 authorized. In case of failure errno will be ENOKEY if94 the device did not contain a key at all, and95 EKEYREJECTED if the challenge response did not match.96 == ========================================================97 98What: /sys/bus/thunderbolt/devices/.../boot99Date: Jun 2018100KernelVersion: 4.17101Contact: Mika Westerberg <mika.westerberg@linux.intel.com>102Description: This attribute contains 1 if Thunderbolt device was already103 authorized on boot and 0 otherwise.104 105What: /sys/bus/thunderbolt/devices/.../generation106Date: Jan 2020107KernelVersion: 5.5108Contact: Christian Kellner <christian@kellner.me>109Description: This attribute contains the generation of the Thunderbolt110 controller associated with the device. It will contain 4111 for USB4.112 113What: /sys/bus/thunderbolt/devices/.../key114Date: Sep 2017115KernelVersion: 4.13116Contact: Mika Westerberg <mika.westerberg@linux.intel.com>117Description: When a devices supports Thunderbolt secure connect it will118 have this attribute. Writing 32 byte hex string changes119 authorization to use the secure connection method instead.120 Writing an empty string clears the key and regular connection121 method can be used again.122 123What: /sys/bus/thunderbolt/devices/.../device124Date: Sep 2017125KernelVersion: 4.13126Contact: Mika Westerberg <mika.westerberg@linux.intel.com>127Description: This attribute contains id of this device extracted from128 the device DROM.129 130What: /sys/bus/thunderbolt/devices/.../device_name131Date: Sep 2017132KernelVersion: 4.13133Contact: Mika Westerberg <mika.westerberg@linux.intel.com>134Description: This attribute contains name of this device extracted from135 the device DROM.136 137What: /sys/bus/thunderbolt/devices/.../maxhopid138Date: Jul 2021139KernelVersion: 5.13140Contact: Mika Westerberg <mika.westerberg@linux.intel.com>141Description: Only set for XDomains. The maximum HopID the other host142 supports as its input HopID.143 144What: /sys/bus/thunderbolt/devices/.../rx_speed145Date: Jan 2020146KernelVersion: 5.5147Contact: Mika Westerberg <mika.westerberg@linux.intel.com>148Description: This attribute reports the device RX speed per lane.149 All RX lanes run at the same speed.150 151What: /sys/bus/thunderbolt/devices/.../rx_lanes152Date: Jan 2020153KernelVersion: 5.5154Contact: Mika Westerberg <mika.westerberg@linux.intel.com>155Description: This attribute reports number of RX lanes the device is156 using simultaneously through its upstream port.157 158What: /sys/bus/thunderbolt/devices/.../tx_speed159Date: Jan 2020160KernelVersion: 5.5161Contact: Mika Westerberg <mika.westerberg@linux.intel.com>162Description: This attribute reports the TX speed per lane.163 All TX lanes run at the same speed.164 165What: /sys/bus/thunderbolt/devices/.../tx_lanes166Date: Jan 2020167KernelVersion: 5.5168Contact: Mika Westerberg <mika.westerberg@linux.intel.com>169Description: This attribute reports number of TX lanes the device is170 using simultaneously through its upstream port.171 172What: /sys/bus/thunderbolt/devices/.../vendor173Date: Sep 2017174KernelVersion: 4.13175Contact: Mika Westerberg <mika.westerberg@linux.intel.com>176Description: This attribute contains vendor id of this device extracted177 from the device DROM.178 179What: /sys/bus/thunderbolt/devices/.../vendor_name180Date: Sep 2017181KernelVersion: 4.13182Contact: Mika Westerberg <mika.westerberg@linux.intel.com>183Description: This attribute contains vendor name of this device extracted184 from the device DROM.185 186What: /sys/bus/thunderbolt/devices/.../unique_id187Date: Sep 2017188KernelVersion: 4.13189Contact: Mika Westerberg <mika.westerberg@linux.intel.com>190Description: This attribute contains unique_id string of this device.191 This is either read from hardware registers (UUID on192 newer hardware) or based on UID from the device DROM.193 Can be used to uniquely identify particular device.194 195What: /sys/bus/thunderbolt/devices/.../nvm_version196Date: Sep 2017197KernelVersion: 4.13198Contact: Mika Westerberg <mika.westerberg@linux.intel.com>199Description: If the device has upgradeable firmware the version200 number is available here. Format: %x.%x, major.minor.201 If the device is in safe mode reading the file returns202 -ENODATA instead as the NVM version is not available.203 204What: /sys/bus/thunderbolt/devices/.../nvm_authenticate205Date: Sep 2017206KernelVersion: 4.13207Contact: Mika Westerberg <mika.westerberg@linux.intel.com>208Description: When new NVM image is written to the non-active NVM209 area (through non_activeX NVMem device), the210 authentication procedure is started by writing to211 this file.212 If everything goes well, the device is213 restarted with the new NVM firmware. If the image214 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 storage219 area and authenticate the image in one action.220 - Writing "2" will run some basic validation on the image221 and flush it to the storage area.222 - Writing "3" will authenticate the image that is223 currently written in the storage area. This is only224 supported with USB4 devices and retimers.225 226 When read holds status of the last authentication227 operation if an error occurred during the process. This228 is directly the status value from the DMA configuration229 based mailbox before the device is power cycled. Writing230 0 here clears the status.231 232What: /sys/bus/thunderbolt/devices/.../nvm_authenticate_on_disconnect233Date: Oct 2020234KernelVersion: v5.9235Contact: Mario Limonciello <mario.limonciello@outlook.com>236Description: For supported devices, automatically authenticate the new Thunderbolt237 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 storage242 area and prepare the device for authentication on disconnect.243 - Writing "2" will run some basic validation on the image244 and flush it to the storage area.245 246What: /sys/bus/thunderbolt/devices/<xdomain>.<service>/key247Date: Jan 2018248KernelVersion: 4.15249Contact: Mika Westerberg <mika.westerberg@linux.intel.com>250Description: This contains name of the property directory the XDomain251 service exposes. This entry describes the protocol in252 question. Following directories are already reserved by253 the Apple XDomain specification:254 255 ======== ===============================================256 network IP/ethernet over Thunderbolt257 targetdm Target disk mode protocol over Thunderbolt258 extdisp External display mode protocol over Thunderbolt259 ======== ===============================================260 261What: /sys/bus/thunderbolt/devices/<xdomain>.<service>/modalias262Date: Jan 2018263KernelVersion: 4.15264Contact: Mika Westerberg <mika.westerberg@linux.intel.com>265Description: Stores the same MODALIAS value emitted by uevent for266 the XDomain service. Format: tbtsvc:kSpNvNrN267 268What: /sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcid269Date: Jan 2018270KernelVersion: 4.15271Contact: Mika Westerberg <mika.westerberg@linux.intel.com>272Description: This contains XDomain protocol identifier the XDomain273 service supports.274 275What: /sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcvers276Date: Jan 2018277KernelVersion: 4.15278Contact: Mika Westerberg <mika.westerberg@linux.intel.com>279Description: This contains XDomain protocol version the XDomain280 service supports.281 282What: /sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcrevs283Date: Jan 2018284KernelVersion: 4.15285Contact: Mika Westerberg <mika.westerberg@linux.intel.com>286Description: This contains XDomain software version the XDomain287 service supports.288 289What: /sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcstns290Date: Jan 2018291KernelVersion: 4.15292Contact: Mika Westerberg <mika.westerberg@linux.intel.com>293Description: This contains XDomain service specific settings as294 bitmask. Format: %x295 296What: /sys/bus/thunderbolt/devices/usb4_portX/connector297Date: April 2022298Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>299Description:300 Symlink to the USB Type-C connector. This link is only301 created when USB Type-C Connector Class is enabled,302 and only if the system firmware is capable of303 describing the connection between a port and its304 connector.305 306What: /sys/bus/thunderbolt/devices/usb4_portX/link307Date: Sep 2021308KernelVersion: v5.14309Contact: Mika Westerberg <mika.westerberg@linux.intel.com>310Description: Returns the current link mode. Possible values are311 "usb4", "tbt" and "none".312 313What: /sys/bus/thunderbolt/devices/usb4_portX/offline314Date: Sep 2021315KernelVersion: v5.14316Contact: Rajmohan Mani <rajmohan.mani@intel.com>317Description: Writing 1 to this attribute puts the USB4 port into318 offline mode. Only allowed when there is nothing319 connected to the port (link attribute returns "none").320 Once the port is in offline mode it does not receive any321 hotplug events. This is used to update NVM firmware of322 on-board retimers. Writing 0 puts the port back to323 online mode.324 325 This attribute is only visible if the platform supports326 powering on retimers when there is no cable connected.327 328What: /sys/bus/thunderbolt/devices/usb4_portX/rescan329Date: Sep 2021330KernelVersion: v5.14331Contact: Rajmohan Mani <rajmohan.mani@intel.com>332Description: When the USB4 port is in offline mode writing 1 to this333 attribute forces rescan of the sideband for on-board334 retimers. Each retimer appear under the USB4 port as if335 the USB4 link was up. These retimers act in the same way336 as if the cable was connected so upgrading their NVM337 firmware can be done the usual way.338 339What: /sys/bus/thunderbolt/devices/<device>:<port>.<index>/device340Date: Oct 2020341KernelVersion: v5.9342Contact: Mika Westerberg <mika.westerberg@linux.intel.com>343Description: Retimer device identifier read from the hardware.344 345What: /sys/bus/thunderbolt/devices/<device>:<port>.<index>/nvm_authenticate346Date: Oct 2020347KernelVersion: v5.9348Contact: Mika Westerberg <mika.westerberg@linux.intel.com>349Description: When new NVM image is written to the non-active NVM350 area (through non_activeX NVMem device), the351 authentication procedure is started by writing 1 to352 this file. If everything goes well, the device is353 restarted with the new NVM firmware. If the image354 verification fails an error code is returned instead.355 356 When read holds status of the last authentication357 operation if an error occurred during the process.358 Format: %x.359 360What: /sys/bus/thunderbolt/devices/<device>:<port>.<index>/nvm_version361Date: Oct 2020362KernelVersion: v5.9363Contact: Mika Westerberg <mika.westerberg@linux.intel.com>364Description: Holds retimer NVM version number. Format: %x.%x, major.minor.365 366What: /sys/bus/thunderbolt/devices/<device>:<port>.<index>/vendor367Date: Oct 2020368KernelVersion: v5.9369Contact: Mika Westerberg <mika.westerberg@linux.intel.com>370Description: Retimer vendor identifier read from the hardware.371