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