I am developing a custom USB device on a iMX6q platform (Wandboard) Chipidea HDRC (highspeed dual role controller). The HID interface consists of a single Interrupt IN ep and ep0. It is required to send HID reports from Host to Gadget over ep0 (with set_report cmd on hidraw interface) in OUT direction. The size of each HID report is 64 bytes. The Chipidea HDRC is unable to receive/ process the 64 bytes of data over ep0 (OUT). The setup stage is fine. No UDC interrupt is raised by controller to indicate completion of transaction. The same data transfer works fine for <64 bytes (63, 63 etc) and >64 bytes (65, 66 etc) where the transfers are split as 64+n. Analyzer logs attached. 1. Is there an issue with Chipidea HDRC receiving wMaxPacketSize (i.e. 64 byte) aligned data transfers on ep0 in OUT direction? 2. Anything that needs to be configured/ added in descriptor or source to have completion interrupt hit on 64 bytes data transfer on ep0 OUT? THank you!!
File C:\Program Files (x86)\Lecroy\USBTracer\data.usb. From Packet #33198 to Packet #38355. Packet# _______|_______________________________________________________________________ Packet(33198) Dir(-->) H(S) SETUP(0xB4) ADDR(2) ENDP(0) CRC5(0x15) Pkt Len(8) _______| Time Stamp(00001.3535 6645) _______|_______________________________________________________________________ Packet(33199) Dir(-->) H(S) DATA0(0xC3) Data(8 bytes) CRC16(0xB504) Pkt Len(16) _______| Time Stamp(00001.3535 6669) _______|_______________________________________________________________________ Packet(33200) Dir(<--) H(S) ACK(0x4B) Pkt Len(6) Time Stamp(00001.3535 6705) _______|_______________________________________________________________________ Packet(38351) Dir(-->) H(S) PING(0x2D) ADDR(2) ENDP(0) CRC5(0x15) Pkt Len(10) _______| Time Stamp(00001.3663 3101) _______|_______________________________________________________________________ Packet(38352) Dir(<--) H(S) ACK(0x4B) Pkt Len(8) Time Stamp(00001.3663 3129) _______|_______________________________________________________________________ Packet(38353) Dir(-->) H(S) OUT(0x87) ADDR(2) ENDP(0) CRC5(0x15) Pkt Len(10) _______| Time Stamp(00001.3663 3275) _______|_______________________________________________________________________ Packet(38354) Dir(-->) H(S) DATA1(0xD2) Data(64 bytes) CRC16(0x9A52) Pkt Len(74) _______| Time Stamp(00001.3663 3299) _______|_______________________________________________________________________ Packet(38355) Dir(<--) H(S) NYET(0x69) Pkt Len(8) Time Stamp(00001.3663 3391) _______|_______________________________________________________________________
File C:\Program Files (x86)\Lecroy\USBTracer\data.usb. From Packet #29969 to Packet #87486. Packet# _______|_______________________________________________________________________ Packet(29969) Dir(-->) H(S) SETUP(0xB4) ADDR(2) ENDP(0) CRC5(0x15) Pkt Len(8) _______| Time Stamp(00001.0957 5739) _______|_______________________________________________________________________ Packet(29970) Dir(-->) H(S) DATA0(0xC3) Data(8 bytes) CRC16(0x3101) Pkt Len(16) _______| Time Stamp(00001.0957 5763) _______|_______________________________________________________________________ Packet(29971) Dir(<--) H(S) ACK(0x4B) Pkt Len(8) Time Stamp(00001.0957 5797) _______|_______________________________________________________________________ Packet(35124) Dir(-->) H(S) PING(0x2D) ADDR(2) ENDP(0) CRC5(0x15) Pkt Len(8) _______| Time Stamp(00001.1085 2569) _______|_______________________________________________________________________ Packet(35125) Dir(<--) H(S) ACK(0x4B) Pkt Len(6) Time Stamp(00001.1085 2597) _______|_______________________________________________________________________ Packet(35126) Dir(-->) H(S) OUT(0x87) ADDR(2) ENDP(0) CRC5(0x15) Pkt Len(8) _______| Time Stamp(00001.1085 2729) _______|_______________________________________________________________________ Packet(35127) Dir(-->) H(S) DATA1(0xD2) Data(62 bytes) CRC16(0xADB3) Pkt Len(70) _______| Time Stamp(00001.1085 2753) _______|_______________________________________________________________________ Packet(35128) Dir(<--) H(S) NYET(0x69) Pkt Len(6) Time Stamp(00001.1085 2843) _______|_______________________________________________________________________ Packet(87484) Dir(-->) H(S) IN(0x96) ADDR(2) ENDP(0) CRC5(0x15) Pkt Len(10) _______| Time Stamp(00001.2386 3931) _______|_______________________________________________________________________ Packet(87485) Dir(<--) H(S) DATA1(0xD2) Data(0 bytes) CRC16(0x0000) Pkt Len(10) _______| Time Stamp(00001.2386 3959) _______|_______________________________________________________________________ Packet(87486) Dir(-->) H(S) ACK(0x4B) Pkt Len(8) Time Stamp(00001.2386 3987) _______|_______________________________________________________________________
File C:\Program Files (x86)\Lecroy\USBTracer\data.usb. From Packet #37091 to Packet #87527. Packet# _______|_______________________________________________________________________ Packet(37091) Dir(-->) H(S) SETUP(0xB4) ADDR(2) ENDP(0) CRC5(0x15) Pkt Len(8) _______| Time Stamp(00001.3844 5502) _______|_______________________________________________________________________ Packet(37092) Dir(-->) H(S) DATA0(0xC3) Data(8 bytes) CRC16(0x350D) Pkt Len(16) _______| Time Stamp(00001.3844 5526) _______|_______________________________________________________________________ Packet(37093) Dir(<--) H(S) ACK(0x4B) Pkt Len(8) Time Stamp(00001.3844 5562) _______|_______________________________________________________________________ Packet(42250) Dir(-->) H(S) PING(0x2D) ADDR(2) ENDP(0) CRC5(0x15) Pkt Len(10) _______| Time Stamp(00001.3972 2419) _______|_______________________________________________________________________ Packet(42251) Dir(<--) H(S) ACK(0x4B) Pkt Len(8) Time Stamp(00001.3972 2447) _______|_______________________________________________________________________ Packet(42252) Dir(-->) H(S) OUT(0x87) ADDR(2) ENDP(0) CRC5(0x15) Pkt Len(10) _______| Time Stamp(00001.3972 2591) _______|_______________________________________________________________________ Packet(42253) Dir(-->) H(S) DATA1(0xD2) Data(64 bytes) CRC16(0x9A52) Pkt Len(74) _______| Time Stamp(00001.3972 2615) _______|_______________________________________________________________________ Packet(42254) Dir(<--) H(S) NYET(0x69) Pkt Len(8) Time Stamp(00001.3972 2707) _______|_______________________________________________________________________ Packet(42255) Dir(-->) H(S) PING(0x2D) ADDR(2) ENDP(0) CRC5(0x15) Pkt Len(10) _______| Time Stamp(00001.3972 2859) _______|_______________________________________________________________________ Packet(42256) Dir(<--) H(S) ACK(0x4B) Pkt Len(8) Time Stamp(00001.3972 2887) _______|_______________________________________________________________________ Packet(42257) Dir(-->) H(S) OUT(0x87) ADDR(2) ENDP(0) CRC5(0x15) Pkt Len(10) _______| Time Stamp(00001.3972 2957) _______|_______________________________________________________________________ Packet(42258) Dir(-->) H(S) DATA0(0xC3) Data(1 byte) CRC16(0x01F1) Pkt Len(10) _______| Time Stamp(00001.3972 2981) _______|_______________________________________________________________________ Packet(42259) Dir(<--) H(S) NYET(0x69) Pkt Len(8) Time Stamp(00001.3972 3011) _______|_______________________________________________________________________ Packet(87527) Dir(-->) H(S) IN(0x96) ADDR(2) ENDP(0) CRC5(0x15) Pkt Len(8) _______| Time Stamp(00001.5097 1195) _______|_______________________________________________________________________