sysfs-bus-thunderbolt 14 KB

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