Hi Stefano, 2010/8/5 Stefano Babic <sba...@denx.de>: > Hi Remy, > > I would like to add CDC support to a davinci (DM365 Soc) board using the > musb controller. As the actual driver (musb_udc) does have gadget > support, I decided (even if I get some advises that it is a harder way)
The USB gadget layer used for CDC is derived from Linux 2.6.27. It was ported such that the gadget drivers from Linux could be used with little modifications. > The usb_eth_init does not complete, and a ping request ends with "The > remote end did not respond in time". However, a CDC gadget is recognized > on both sides (target and PC). On the PC, I get the usb0 interface, and > the cdc driver is loaded: > I get a lot of "respond with data transfer before status phase", but as > I see in code, it seems to be quite a normal case, and the setup is sent > again (is this true ?). Indeed, this seems to be some debug logging that can be removed... > In musb_gadget_queue() entry point (usb_ep_queue from ethernet gadget) > there is a check for the parameters, and the ep should be the same as > the ep in the request. This is not a case, and an error is reported (see > later in error log). We have tested it with the Atmel at91sam9261 core, and I have never used it with any other hardware. It is possible that you run into problems here that where not visible on the Atmel core... > I report the whole log, enabling debug output on both musb driver and > ether.c. Do you have some hints to give me to go further ? This is my log when I do a (successful) ping to the host when I run on a Atmel eval-kit. Maybe you can use it as reference? Maybe it helps... at91sam9261-ek> ping 10.0.0.1 Holding VBUS down: 4...3...2...1...Go! end bus reset end bus reset SETUP 80.06 v0100 i0000 l0040 eth_setup:... respond with data transfer before status phase ep0 20aa35e8 in/8 ep0 20aa35e8 in/8 end bus reset nuke ep0 setup complete --> -108, 16/18 SETUP 00.05 v0025 i0000 l0000 address 37 SETUP 80.06 v0100 i0000 l0012 eth_setup:... respond with data transfer before status phase ep0 20aa35e8 in/8 ep0 20aa35e8 in/8 ep0 20aa35e8 in/2 (done) ep0 out/status ACK SETUP 80.06 v0600 i0000 l000a eth_setup:... req 80.06 protocol STALL; stat -95 ep0 stalled SETUP 80.06 v0600 i0000 l000a eth_setup:... req 80.06 protocol STALL; stat -95 ep0 stalled SETUP 80.06 v0600 i0000 l000a eth_setup:... req 80.06 protocol STALL; stat -95 ep0 stalled SETUP 80.06 v0200 i0000 l0009 eth_setup:... respond with data transfer before status phase ep0 20aa35e8 in/8 ep0 20aa35e8 in/1 (done) ep0 out/status ACK SETUP 80.06 v0200 i0000 l0050 eth_setup:... respond with data transfer before status phase ep0 20aa35e8 in/8 ep0 20aa35e8 in/8 ep0 20aa35e8 in/8 ep0 20aa35e8 in/8 ep0 20aa35e8 in/8 ep0 20aa35e8 in/8 ep0 20aa35e8 in/8 ep0 20aa35e8 in/8 ep0 20aa35e8 in/8 ep0 20aa35e8 in/8 (done) ep0 out/status ACK SETUP 80.06 v0300 i0000 l00ff eth_setup:... respond with data transfer before status phase ep0 20aa35e8 in/4 (done) ep0 out/status ACK SETUP 80.06 v0302 i0409 l00ff eth_setup:... respond with data transfer before status phase ep0 20aa35e8 in/8 ep0 20aa35e8 in/8 ep0 20aa35e8 in/8 ep0 20aa35e8 in/8 ep0 20aa35e8 in/0 (done) ep0 out/status ACK SETUP 80.06 v0301 i0409 l00ff eth_setup:... respond with data transfer before status phase ep0 20aa35e8 in/8 ep0 20aa35e8 in/8 ep0 20aa35e8 in/8 ep0 20aa35e8 in/8 ep0 20aa35e8 in/8 ep0 20aa35e8 in/2 (done) ep0 out/status ACK SETUP 00.09 v0001 i0000 l0000 wait for config eth_setup:... udc: alloc_req: request[2] udc: alloc_req: request[3] full speed config #1: 2 mA, Ethernet Gadget, using CDC Ethernet respond with data transfer before status phase toggle config ep0 in/status SETUP 80.06 v0307 i0409 l00ff eth_setup:... respond with data transfer before status phase ep0 20aa35e8 in/8 ep0 20aa35e8 in/8 ep0 20aa35e8 in/8 ep0 20aa35e8 in/2 (done) ep0 out/status ACK SETUP 80.06 v0305 i0409 l00ff eth_setup:... respond with data transfer before status phase ep0 20aa35e8 in/8 ep0 20aa35e8 in/8 ep0 20aa35e8 in/8 ep0 20aa35e8 in/8 ep0 20aa35e8 in/8 ep0 20aa35e8 in/8 ep0 20aa35e8 in/6 (done) ep0 out/status ACK SETUP 01.0b v0001 i0001 l0000 eth_setup:... ep4 20aa361c in/8 (done) send SPEED_CHANGE --> 0 respond with data transfer before status phase ep0 in/status SETUP 80.06 v0303 i0409 l00ff eth_setup:... respond with data transfer before status phase ep0 20aa35e8 in/8 ep0 20aa35e8 in/8 ep0 20aa35e8 in/8 ep0 20aa35e8 in/2 (done) ep0 out/status ACK SETUP 80.06 v0304 i0409 l00ff eth_setup:... respond with data transfer before status phase ep0 20aa35e8 in/8 ep0 20aa35e8 in/8 ep0 20aa35e8 in/8 ep0 20aa35e8 in/4 (done) ep0 out/status ACK ep4 20aa361c in/16 (done) event 2a --> 0 USB network up! rx_submit Using usb0 device usb_eth_send:... ep1 20aa3650 in/42 (done) tx_complete, status: ok usb_eth_send: packet queued ep2 20aa3684 out/42 (done) rx_complete rx status 0 usb_eth_recv: packet received usb_eth_send:... ep1 20aa3650 in/42 (done) tx_complete, status: ok usb_eth_send: packet queued rx_submit ep2 20aa3684 out/54 (done) rx_complete rx status 0 usb_eth_recv: packet received rx_submit ep2 20aa3684 out/42 (done) rx_complete rx status 0 usb_eth_recv: packet received rx_submit nuke ep2 rx_complete rx status -108 host 10.0.0.1 is alive _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot