
Hi Marcel,
Marcel wrote:
Not sure that branch is anything up to date....
hmmm. What branch is best to work on for this code ?
If someone sends USB-CDC patches they usually are applied into master branch of u-boot-usb.git repository: http://git.denx.de/cgi-bin/gitweb.cgi?p=u-boot/u-boot-usb.git;a=summary
AFAIK, master branch of u-boot main repository is also working well, but I haven't checked whether all recent patches are pulled into main repository. If you are using another version of u-boot (one of the previous releases) the driver in your version may be broken.
According to the log from "Usage of DMA" thread I think your gadget stack is up to date.
req->buf = (u8 *) NetRxPackets[0];
*maybe* "req" itself is not allocated?
Good question. My code that rejects the buffer is this :
[...] if (!_req || !_req->complete || !_req->buf || !list_empty(&req->queue)) {
DBG("invalid request\n"); if(!_req) debug("NO REQUEST\n"); if(!_req->complete) debug("NO REQUEST COMPLETE\n"); if(!_req->buf) debug("NO REQUEST BUF\n"); if(!list_empty(&req->queue)) debug("NO LIST EMPTY\n"); return -EINVAL; }
It just keeps failing with "NO REQUEST BUF". I feel like I'm staring at a typo for days and just don't see it.
I suppose that usage of kzalloc in usba_ep_alloc_request (if you haven't changed it) may be not well. at91_udc driver (for example) uses static pool for requests allocation.
Anyway it's strange. I have a suspicion that buf was set to NULL somewhere inside atmel_usba_udc.
____ With best regards, Vitaly.