linux-imx/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

3.1 KiB

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.