USB services: Difference between revisions
Line 223: | Line 223: | ||
This structure matches [http://libusb.sourceforge.net/api-1.0/structlibusb__endpoint__descriptor.html libusb_endpoint_descriptor]. | This structure matches [http://libusb.sourceforge.net/api-1.0/structlibusb__endpoint__descriptor.html libusb_endpoint_descriptor]. | ||
The buffer size must be >=0x7. Only the first 0x7-bytes from the buffer are used. Byte0(bLength) must match 0x7 | The buffer size must be >=0x7. Only the first 0x7-bytes from the buffer are used. | ||
* Byte0(bLength) must match 0x7. | |||
* Byte1(bDescriptorType) must match 0x5. | |||
* Byte2(bEndpointAddress) is only compared with 0x80 to determine whether to use an input or output endpoint, the actual endpoint-number is allocated automatically by checking state. Hence, all input endpoints must use bEndpointAddress==0x80. Up to endpoint-number 0xF can be allocated for each endpoint-direction, for a total of 16 endpoints including control, and 15 for non-control endpoints([[#IDsEndpoint]] sessions for each direction). This matches the Tegra maximum. | |||
From the Tegra datasheet: "The maximum packet size supported on any endpoint is 1024 bytes in high-speed mode, for both device and host modes." | |||
=== GetSetupEvent === | === GetSetupEvent === |