| What: /sys/bus/thunderbolt/devices/.../domainX/boot_acl | |
| Date: Jun 2018 | |
| KernelVersion: 4.17 | |
| Contact: Mika Westerberg <mika.westerberg@linux.intel.com> | |
| Description: Holds a comma separated list of device unique_ids that | |
| are allowed to be connected automatically during system | |
| startup (e.g boot devices). The list always contains | |
| maximum supported number of unique_ids where unused | |
| entries are empty. This allows the userspace software | |
| to determine how many entries the controller supports. | |
| If there are multiple controllers, each controller has | |
| its own ACL list and size may be different between the | |
| controllers. | |
| System BIOS may have an option "Preboot ACL" or similar | |
| that needs to be selected before this list is taken into | |
| consideration. | |
| Software always updates a full list in each write. | |
| If a device is authorized automatically during boot its | |
| boot attribute is set to 1. | |
| What: /sys/bus/thunderbolt/devices/.../domainX/deauthorization | |
| Date: May 2021 | |
| KernelVersion: 5.12 | |
| Contact: Mika Westerberg <mika.westerberg@linux.intel.com> | |
| Description: This attribute tells whether the system supports | |
| de-authorization of devices. Value of 1 means user can | |
| de-authorize PCIe tunnel by writing 0 to authorized | |
| attribute under each device. | |
| What: /sys/bus/thunderbolt/devices/.../domainX/iommu_dma_protection | |
| Date: Mar 2019 | |
| KernelVersion: 4.21 | |
| Contact: Mika Westerberg <mika.westerberg@linux.intel.com> | |
| Description: This attribute tells whether the system uses IOMMU | |
| for DMA protection. Value of 1 means IOMMU is used 0 means | |
| it is not (DMA protection is solely based on Thunderbolt | |
| security levels). | |
| What: /sys/bus/thunderbolt/devices/.../domainX/security | |
| Date: Sep 2017 | |
| KernelVersion: 4.13 | |
| Contact: Mika Westerberg <mika.westerberg@linux.intel.com> | |
| Description: This attribute holds current Thunderbolt security level | |
| set by the system BIOS. Possible values are: | |
| ======= ================================================== | |
| none All devices are automatically authorized | |
| user Devices are only authorized based on writing | |
| appropriate value to the authorized attribute | |
| secure Require devices that support secure connect at | |
| minimum. User needs to authorize each device. | |
| dponly Automatically tunnel Display port (and USB). No | |
| PCIe tunnels are created. | |
| usbonly Automatically tunnel USB controller of the | |
| connected Thunderbolt dock (and Display Port). All | |
| PCIe links downstream of the dock are removed. | |
| nopcie USB4 system where PCIe tunneling is disabled from | |
| the BIOS. | |
| ======= ================================================== | |
| What: /sys/bus/thunderbolt/devices/.../authorized | |
| Date: Sep 2017 | |
| KernelVersion: 4.13 | |
| Contact: Mika Westerberg <mika.westerberg@linux.intel.com> | |
| Description: This attribute is used to authorize Thunderbolt devices | |
| after they have been connected. If the device is not | |
| authorized, no PCIe devices are available to the system. | |
| Contents of this attribute will be 0 when the device is not | |
| yet authorized. | |
| Possible values are supported: | |
| == =================================================== | |
| 0 The device will be de-authorized (only supported if | |
| deauthorization attribute under domain contains 1) | |
| 1 The device will be authorized and connected | |
| == =================================================== | |
| When key attribute contains 32 byte hex string the possible | |
| values are: | |
| == ======================================================== | |
| 0 The device will be de-authorized (only supported if | |
| deauthorization attribute under domain contains 1) | |
| 1 The 32 byte hex string is added to the device NVM and | |
| the device is authorized. | |
| 2 Send a challenge based on the 32 byte hex string. If the | |
| challenge response from device is valid, the device is | |
| authorized. In case of failure errno will be ENOKEY if | |
| the device did not contain a key at all, and | |
| EKEYREJECTED if the challenge response did not match. | |
| == ======================================================== | |
| What: /sys/bus/thunderbolt/devices/.../boot | |
| Date: Jun 2018 | |
| KernelVersion: 4.17 | |
| Contact: Mika Westerberg <mika.westerberg@linux.intel.com> | |
| Description: This attribute contains 1 if Thunderbolt device was already | |
| authorized on boot and 0 otherwise. | |
| What: /sys/bus/thunderbolt/devices/.../generation | |
| Date: Jan 2020 | |
| KernelVersion: 5.5 | |
| Contact: Christian Kellner <christian@kellner.me> | |
| Description: This attribute contains the generation of the Thunderbolt | |
| controller associated with the device. It will contain 4 | |
| for USB4. | |
| What: /sys/bus/thunderbolt/devices/.../key | |
| Date: Sep 2017 | |
| KernelVersion: 4.13 | |
| Contact: Mika Westerberg <mika.westerberg@linux.intel.com> | |
| Description: When a devices supports Thunderbolt secure connect it will | |
| have this attribute. Writing 32 byte hex string changes | |
| authorization to use the secure connection method instead. | |
| Writing an empty string clears the key and regular connection | |
| method can be used again. | |
| What: /sys/bus/thunderbolt/devices/.../device | |
| Date: Sep 2017 | |
| KernelVersion: 4.13 | |
| Contact: Mika Westerberg <mika.westerberg@linux.intel.com> | |
| Description: This attribute contains id of this device extracted from | |
| the device DROM. | |
| What: /sys/bus/thunderbolt/devices/.../device_name | |
| Date: Sep 2017 | |
| KernelVersion: 4.13 | |
| Contact: Mika Westerberg <mika.westerberg@linux.intel.com> | |
| Description: This attribute contains name of this device extracted from | |
| the device DROM. | |
| What: /sys/bus/thunderbolt/devices/.../maxhopid | |
| Date: Jul 2021 | |
| KernelVersion: 5.13 | |
| Contact: Mika Westerberg <mika.westerberg@linux.intel.com> | |
| Description: Only set for XDomains. The maximum HopID the other host | |
| supports as its input HopID. | |
| What: /sys/bus/thunderbolt/devices/.../rx_speed | |
| Date: Jan 2020 | |
| KernelVersion: 5.5 | |
| Contact: Mika Westerberg <mika.westerberg@linux.intel.com> | |
| Description: This attribute reports the device RX speed per lane. | |
| All RX lanes run at the same speed. | |
| What: /sys/bus/thunderbolt/devices/.../rx_lanes | |
| Date: Jan 2020 | |
| KernelVersion: 5.5 | |
| Contact: Mika Westerberg <mika.westerberg@linux.intel.com> | |
| Description: This attribute reports number of RX lanes the device is | |
| using simultaneously through its upstream port. | |
| What: /sys/bus/thunderbolt/devices/.../tx_speed | |
| Date: Jan 2020 | |
| KernelVersion: 5.5 | |
| Contact: Mika Westerberg <mika.westerberg@linux.intel.com> | |
| Description: This attribute reports the TX speed per lane. | |
| All TX lanes run at the same speed. | |
| What: /sys/bus/thunderbolt/devices/.../tx_lanes | |
| Date: Jan 2020 | |
| KernelVersion: 5.5 | |
| Contact: Mika Westerberg <mika.westerberg@linux.intel.com> | |
| Description: This attribute reports number of TX lanes the device is | |
| using simultaneously through its upstream port. | |
| What: /sys/bus/thunderbolt/devices/.../vendor | |
| Date: Sep 2017 | |
| KernelVersion: 4.13 | |
| Contact: Mika Westerberg <mika.westerberg@linux.intel.com> | |
| Description: This attribute contains vendor id of this device extracted | |
| from the device DROM. | |
| What: /sys/bus/thunderbolt/devices/.../vendor_name | |
| Date: Sep 2017 | |
| KernelVersion: 4.13 | |
| Contact: Mika Westerberg <mika.westerberg@linux.intel.com> | |
| Description: This attribute contains vendor name of this device extracted | |
| from the device DROM. | |
| What: /sys/bus/thunderbolt/devices/.../unique_id | |
| Date: Sep 2017 | |
| KernelVersion: 4.13 | |
| Contact: Mika Westerberg <mika.westerberg@linux.intel.com> | |
| Description: This attribute contains unique_id string of this device. | |
| This is either read from hardware registers (UUID on | |
| newer hardware) or based on UID from the device DROM. | |
| Can be used to uniquely identify particular device. | |
| What: /sys/bus/thunderbolt/devices/.../nvm_version | |
| Date: Sep 2017 | |
| KernelVersion: 4.13 | |
| Contact: Mika Westerberg <mika.westerberg@linux.intel.com> | |
| Description: If the device has upgradeable firmware the version | |
| number is available here. Format: %x.%x, major.minor. | |
| If the device is in safe mode reading the file returns | |
| -ENODATA instead as the NVM version is not available. | |
| What: /sys/bus/thunderbolt/devices/.../nvm_authenticate | |
| Date: Sep 2017 | |
| KernelVersion: 4.13 | |
| Contact: Mika Westerberg <mika.westerberg@linux.intel.com> | |
| Description: When new NVM image is written to the non-active NVM | |
| area (through non_activeX NVMem device), the | |
| authentication procedure is started by writing to | |
| this file. | |
| If everything goes well, the device is | |
| restarted with the new NVM firmware. If the image | |
| verification fails an error code is returned instead. | |
| This file will accept writing values "1", "2" or "3". | |
| - Writing "1" will flush the image to the storage | |
| area and authenticate the image in one action. | |
| - Writing "2" will run some basic validation on the image | |
| and flush it to the storage area. | |
| - Writing "3" will authenticate the image that is | |
| currently written in the storage area. This is only | |
| supported with USB4 devices and retimers. | |
| When read holds status of the last authentication | |
| operation if an error occurred during the process. This | |
| is directly the status value from the DMA configuration | |
| based mailbox before the device is power cycled. Writing | |
| 0 here clears the status. | |
| What: /sys/bus/thunderbolt/devices/.../nvm_authenticate_on_disconnect | |
| Date: Oct 2020 | |
| KernelVersion: v5.9 | |
| Contact: Mario Limonciello <mario.limonciello@outlook.com> | |
| Description: For supported devices, automatically authenticate the new Thunderbolt | |
| image when the device is disconnected from the host system. | |
| This file will accept writing values "1" or "2" | |
| - Writing "1" will flush the image to the storage | |
| area and prepare the device for authentication on disconnect. | |
| - Writing "2" will run some basic validation on the image | |
| and flush it to the storage area. | |
| What: /sys/bus/thunderbolt/devices/<xdomain>.<service>/key | |
| Date: Jan 2018 | |
| KernelVersion: 4.15 | |
| Contact: Mika Westerberg <mika.westerberg@linux.intel.com> | |
| Description: This contains name of the property directory the XDomain | |
| service exposes. This entry describes the protocol in | |
| question. Following directories are already reserved by | |
| the Apple XDomain specification: | |
| ======== =============================================== | |
| network IP/ethernet over Thunderbolt | |
| targetdm Target disk mode protocol over Thunderbolt | |
| extdisp External display mode protocol over Thunderbolt | |
| ======== =============================================== | |
| What: /sys/bus/thunderbolt/devices/<xdomain>.<service>/modalias | |
| Date: Jan 2018 | |
| KernelVersion: 4.15 | |
| Contact: Mika Westerberg <mika.westerberg@linux.intel.com> | |
| Description: Stores the same MODALIAS value emitted by uevent for | |
| the XDomain service. Format: tbtsvc:kSpNvNrN | |
| What: /sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcid | |
| Date: Jan 2018 | |
| KernelVersion: 4.15 | |
| Contact: Mika Westerberg <mika.westerberg@linux.intel.com> | |
| Description: This contains XDomain protocol identifier the XDomain | |
| service supports. | |
| What: /sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcvers | |
| Date: Jan 2018 | |
| KernelVersion: 4.15 | |
| Contact: Mika Westerberg <mika.westerberg@linux.intel.com> | |
| Description: This contains XDomain protocol version the XDomain | |
| service supports. | |
| What: /sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcrevs | |
| Date: Jan 2018 | |
| KernelVersion: 4.15 | |
| Contact: Mika Westerberg <mika.westerberg@linux.intel.com> | |
| Description: This contains XDomain software version the XDomain | |
| service supports. | |
| What: /sys/bus/thunderbolt/devices/<xdomain>.<service>/prtcstns | |
| Date: Jan 2018 | |
| KernelVersion: 4.15 | |
| Contact: Mika Westerberg <mika.westerberg@linux.intel.com> | |
| Description: This contains XDomain service specific settings as | |
| bitmask. Format: %x | |
| What: /sys/bus/thunderbolt/devices/usb4_portX/connector | |
| Date: April 2022 | |
| Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com> | |
| Description: | |
| Symlink to the USB Type-C connector. This link is only | |
| created when USB Type-C Connector Class is enabled, | |
| and only if the system firmware is capable of | |
| describing the connection between a port and its | |
| connector. | |
| What: /sys/bus/thunderbolt/devices/usb4_portX/link | |
| Date: Sep 2021 | |
| KernelVersion: v5.14 | |
| Contact: Mika Westerberg <mika.westerberg@linux.intel.com> | |
| Description: Returns the current link mode. Possible values are | |
| "usb4", "tbt" and "none". | |
| What: /sys/bus/thunderbolt/devices/usb4_portX/offline | |
| Date: Sep 2021 | |
| KernelVersion: v5.14 | |
| Contact: Rajmohan Mani <rajmohan.mani@intel.com> | |
| Description: Writing 1 to this attribute puts the USB4 port into | |
| offline mode. Only allowed when there is nothing | |
| connected to the port (link attribute returns "none"). | |
| Once the port is in offline mode it does not receive any | |
| hotplug events. This is used to update NVM firmware of | |
| on-board retimers. Writing 0 puts the port back to | |
| online mode. | |
| This attribute is only visible if the platform supports | |
| powering on retimers when there is no cable connected. | |
| What: /sys/bus/thunderbolt/devices/usb4_portX/rescan | |
| Date: Sep 2021 | |
| KernelVersion: v5.14 | |
| Contact: Rajmohan Mani <rajmohan.mani@intel.com> | |
| Description: When the USB4 port is in offline mode writing 1 to this | |
| attribute forces rescan of the sideband for on-board | |
| retimers. Each retimer appear under the USB4 port as if | |
| the USB4 link was up. These retimers act in the same way | |
| as if the cable was connected so upgrading their NVM | |
| firmware can be done the usual way. | |
| What: /sys/bus/thunderbolt/devices/<device>:<port>.<index>/device | |
| Date: Oct 2020 | |
| KernelVersion: v5.9 | |
| Contact: Mika Westerberg <mika.westerberg@linux.intel.com> | |
| Description: Retimer device identifier read from the hardware. | |
| What: /sys/bus/thunderbolt/devices/<device>:<port>.<index>/nvm_authenticate | |
| Date: Oct 2020 | |
| KernelVersion: v5.9 | |
| Contact: Mika Westerberg <mika.westerberg@linux.intel.com> | |
| Description: When new NVM image is written to the non-active NVM | |
| area (through non_activeX NVMem device), the | |
| authentication procedure is started by writing 1 to | |
| this file. If everything goes well, the device is | |
| restarted with the new NVM firmware. If the image | |
| verification fails an error code is returned instead. | |
| When read holds status of the last authentication | |
| operation if an error occurred during the process. | |
| Format: %x. | |
| What: /sys/bus/thunderbolt/devices/<device>:<port>.<index>/nvm_version | |
| Date: Oct 2020 | |
| KernelVersion: v5.9 | |
| Contact: Mika Westerberg <mika.westerberg@linux.intel.com> | |
| Description: Holds retimer NVM version number. Format: %x.%x, major.minor. | |
| What: /sys/bus/thunderbolt/devices/<device>:<port>.<index>/vendor | |
| Date: Oct 2020 | |
| KernelVersion: v5.9 | |
| Contact: Mika Westerberg <mika.westerberg@linux.intel.com> | |
| Description: Retimer vendor identifier read from the hardware. |