My configuration descriptor is 205 bytes long.
This is a part of the usbmon's log:
ffff8800c5f82780 764099747 S Ci:1:051:0 s 80 06 0100 0000 0012 18 <
ffff8800c5f82780 764099974 C Ci:1:051:0 0 18 = 12010002 ef020140
51041190 00010102 0001
ffff8800c5f82780 764100158 S Ci:1:051:0 s 80 06 0200 0000 0009 9 <
ffff8800c5f82780 764100343 C Ci:1:051:0 0 9 = 0902cd00 02010080 fa
ffff8800c5f82780 764100365 S Ci:1:051:0 s 80 06 0200 0000 00cd 205 <
ffff8800c5f82780 764100720 C Ci:1:051:0 -32 64 = 0902cd00 02010080
fa080b00 020e0300 00090400 00010e01 00000d24 01000150
ffff8800c5f82780 764100741 S Ci:1:051:0 s 80 06 0200 0000 00cd 205 <
ffff8800c5f82780 764101218 C Ci:1:051:0 -32 64 = 0902cd00 02010080
fa080b00 020e0300 00090400 00010e01 00000d24 01000150
ffff8800c5f82780 764101239 S Ci:1:051:0 s 80 06 0200 0000 00cd 205 <
ffff8800c5f82780 764101843 C Ci:1:051:0 -32 64 = 0902cd00 02010080
fa080b00 020e0300 00090400 00010e01 00000d24 01000150
ffff8800c5f82780 764101895 S Co:1:001:0 s 23 01 0001 0008 0000 0
ffff8800c5f82780 764101948 C Co:1:001:0 0 0
"18 <" means that host expects 18 bytes
"18 = " means Host has received 18 bytes
"-32" is error code.
I did place a condition in USB_coreEventProcessEp0:
if(pContext->ep0State == CSL_USB_EP0_IDLE){
USB_sendEpZLP(CSL_USB_EP0);
}
I can see that I do not enter this function anymore but this did not help.
Maybe I will have to go step by step in the debugger to see what happens after TXPKTRDY flag for the first 64 bytes is set.