Re: USB 3.0 and xHCI Host-Controller

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 16 Jan 2015, Mathias Nyman wrote:

> also usbmon traces can be helpful, at least for others, I'm myself horribly slow at deciphering those

Attached is my usbmon "cheat sheet".  It's a big help in deciphering 
common control transfers.

I wrote it before USB-3 came out, and I never included the USB-3 hub
commands and status bits.  If you feel like adding those on to the 
cheat sheet, please post the final result.

Alan Stern
		Standard device requests

RQtype Req	Value		Index	Length
----------------------------------------------
  0	1	dev-feat	0	0	Clear device feature
  0	3	dev-feat	0	0	Set device feature
  0	5	address		0	0	Set device address
  0	9	config-value	0	0	Set configuration
  1	b	altsetting	intf	0	Set interface
  1	1	intf-feat	intf	0	Clear interface feature
  1	3	intf-feat	intf	0	Set interface feature
  2	1	ep-feat		ep	0	Clear endpoint feature
  2	3	ep-feat		ep	0	Set endpoint feature
 80	0	0		0	2	Get device status
 80	6	descr-type/	0/	len	Get descriptor
		index		lang-ID
 80	8	0		0	1	Get configuration
 81	0	0		intf	2	Get interface status
 81	a	0		intf	1	Get interface (altsetting)
 82	0	0		ep	2	Get endpoint status

Device features:	0 = self-powered, 1 = remote wakeup
Interface features:	None
Endpoint features:	0 = halt
Descriptor types:	1 = device, 2 = config, 3 = string, (4 = interface,
	5 = endpoint), 6 = device qualifier, 7 = other-speed config



		Hub class requests

RQtype Req	Value		Index	Length
----------------------------------------------
 20	1	hub-feat	0	0	Clear hub feature
 20	3	hub-feat	0	0	Set hub feature
 23	1	port-feat	sel/	0	Clear port feature
				port
 23	3	port-feat	sel/	0	Set port feature
				port
 a0	0	0		0	4	Get hub status
 a0	6	2900		0	len	Get hub descriptor
 a3	0	0		port	4	Get port status

Hub features:	0 = hub local power, 1 = hub over current,
		10 = ch hub local power, 11 = ch hub over current
Port features:	0 = connect, 1 = enable, 2 = suspend, 3 = over current,
		4 = reset, 8 = power, 9 = low speed, a = high speed,
		b = test mode, c = indicator,
		10 = ch connect, 11 = ch enable, 12 = ch suspend,
		13 = ch over current, 14 = ch reset
Selector is used for port indicators



		HID class requests

RQtype Req	Value		Index	Length
----------------------------------------------
 21	9	report-type/ID	intf	len	Set report
 21	a	duration/ID	intf	0	Set idle
 21	b	proto		intf	0	Set protocol
 81	6	descr-type/set	intf	len	Get class descriptor
 a1	1	report-type/ID	intf	len	Get report
 a1	2	0/ID		intf	1	Get idle
 a1	3	0		intf	1	Get protocol

Report type:		1 = input, 2 = output, 3 = feature
Descriptor type:	21 = HID, 22 = Report, 23 = Physical
Protocol:		0 = boot, 1 = report

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux