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