Hello, I am starting work on a board that has the Intel Skylake chipset, which has hardware for doing USB-device. The Intel chipset USB-device hardware is the Synopsys DesignWare Controller 3, aka "dwc3". The Linux source tree has code for dwc3, so I thought to try running Linux on this board. The USB-device function is hard-wired on my board to be USB-device. Cannot be OTG. Cannot be USB-host. I boot Ubuntu Desktop 16.04, kernel = 4.4.0-59, to test the USB-device function. Using a script, I set up the USB-device to be RNDIS, using functionfs. I connect a USB cable from my board to a USB-host. My USB analyzer shows nothing happens. No connection, no SETUP packets, nothing. To troubleshoot, I try turning on some test modes, using the Linux debugfs interface. The debugfs interface is in this directory: /sys/kernel/debug/dwc3.0.auto I see link_state, mode, regdump, testmode files. * echo "test_j" > testmode I see D+ go high, D- stays low. * echo "test_k" > testmode No change on D+ No change on D- This is not correct. * echo "test_se0_nak" > testmode No changes. * echo "test_packet" D+ goes low, D- remains low. OK, so here are my questions. 1) Should I expect Ubuntu 16.04 dwc3 code to work? (uname -a shows kernel level is 4.4.0-59) I ask, because kernel.org shows recent changes in dwc3 code. 2) The Linux dwc3 code appears to be written to work with several different USB phy's. I see dwc3-exynos.c, dwc3-keystone.c, dwc3-omap.c, dwc3-pci.c, dwc3-of-simple.c, etc. The schematic for my board shows there is no external USB2 phy and no external USB3 phy. For my board, the phy's are internal to the Skylake chipset. a. Should the Linux dwc3 code work without an external phy? b. Is there some configuration I need to do for my board? Andy Purcell -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html