So I got a PCB board with Kinetis K70 and 64MB DDR ram, the PCB board got a usb full speed OTG port and it's the only port I can use to communicate with other device. I have successfully port u-boot / uClinux on the PCB board, I also implemented USB Ethernet in u-boot. when I turn on the power, the u-boot run first, and it can do tftp load linux image via usb cable connected to my linux PC host, which looks great!
The problem now I am facing is that I want USB Ethernet too in linux so that I can use NFS to do more. but it seems the USB Ethernet isn't work in linux, what I am seeing now is the gadget udc driver( I have implemented kinetis k70 udc driver in linux) most of the time can only response reset interrupt. and that's it, no more usb setup command receive from linux host. sometime with luck I can see the board receive setup command and can do USB emulation.
So, in a word, usb ethernet works in u-boot, but not works in linux, my udc driver is allmost the same between u-boot and linux. I have no idea what happened in linux, I am thinking some of the causes: 1. usb BDT/buffer can only be in SRAM and linux is running in DDR ram; 2. maybe the UDC initialization need to be different between u-boot and linux; 3. power supply is not enough in linux because it enable LCD etc..
Can someone give me advice? appreciated!