linux/Documentation/ABI/testing/sysfs-bus-pci-drivers-xhci_hcd
Mathias Nyman edf1664f32 xhci: dbc: Provide sysfs option to configure dbc descriptors
When DbC is enabled the first port on the xHC host acts as a usb device.
xHC provides the descriptors automatically when the DbC device is
enumerated. Most of the values are hardcoded, but some fields such as
idProduct, idVendor, bcdDevice and bInterfaceProtocol can be modified.

Add sysfs entries that allow userspace to change these.
User can only change them before dbc is enabled, i.e. before writing
"enable" to dbc sysfs file as we don't want these values to change while
device is connected, or during  enumeration.

Add documentation for these entries in
Documentation/ABI/testing/sysfs-bus-pci-drivers-xhci_hcd

Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20230317154715.535523-9-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-03-23 17:25:22 +01:00

78 lines
3.1 KiB
Plaintext

What: /sys/bus/pci/drivers/xhci_hcd/.../dbc
Date: June 2017
Contact: Lu Baolu <baolu.lu@linux.intel.com>
Description:
xHCI compatible USB host controllers (i.e. super-speed
USB3 controllers) are often implemented with the Debug
Capability (DbC). It can present a debug device which
is fully compliant with the USB framework and provides
the equivalent of a very high performance full-duplex
serial link for debug purpose.
The DbC debug device shares a root port with xHCI host.
When the DbC is enabled, the root port will be assigned
to the Debug Capability. Otherwise, it will be assigned
to xHCI.
Writing "enable" to this attribute will enable the DbC
functionality and the shared root port will be assigned
to the DbC device. Writing "disable" to this attribute
will disable the DbC functionality and the shared root
port will roll back to the xHCI.
Reading this attribute gives the state of the DbC. It
can be one of the following states: disabled, enabled,
initialized, connected, configured and stalled.
What: /sys/bus/pci/drivers/xhci_hcd/.../dbc_idVendor
Date: March 2023
Contact: Mathias Nyman <mathias.nyman@linux.intel.com>
Description:
This dbc_idVendor attribute lets us change the idVendor field
presented in the USB device descriptor by this xhci debug
device.
Value can only be changed while debug capability (DbC) is in
disabled state to prevent USB device descriptor change while
connected to a USB host.
The default value is 0x1d6b (Linux Foundation).
It can be any 16-bit integer.
What: /sys/bus/pci/drivers/xhci_hcd/.../dbc_idProduct
Date: March 2023
Contact: Mathias Nyman <mathias.nyman@linux.intel.com>
Description:
This dbc_idProduct attribute lets us change the idProduct field
presented in the USB device descriptor by this xhci debug
device.
Value can only be changed while debug capability (DbC) is in
disabled state to prevent USB device descriptor change while
connected to a USB host.
The default value is 0x0010. It can be any 16-bit integer.
What: /sys/bus/pci/drivers/xhci_hcd/.../dbc_bcdDevice
Date: March 2023
Contact: Mathias Nyman <mathias.nyman@linux.intel.com>
Description:
This dbc_bcdDevice attribute lets us change the bcdDevice field
presented in the USB device descriptor by this xhci debug
device.
Value can only be changed while debug capability (DbC) is in
disabled state to prevent USB device descriptor change while
connected to a USB host.
The default value is 0x0010. (device rev 0.10)
It can be any 16-bit integer.
What: /sys/bus/pci/drivers/xhci_hcd/.../dbc_bInterfaceProtocol
Date: March 2023
Contact: Mathias Nyman <mathias.nyman@linux.intel.com>
Description:
This attribute lets us change the bInterfaceProtocol field
presented in the USB Interface descriptor by the xhci debug
device.
Value can only be changed while debug capability (DbC) is in
disabled state to prevent USB descriptor change while
connected to a USB host.
The default value is 1 (GNU Remote Debug command).
Other permissible value is 0 which is for vendor defined debug
target.