Hello balbi , Thank you for your reply. Yes, my system is an Edison board. It is embedded in a larger system and is hardwired to a hub which is hardwired to another (custom) embedded board based on an Atmel SAMA5 device. I had been trying (and finally succeeded) to convince the two boards to communicate with each other via ethernet-over-usb, and was getting confused by my lack of knowledge of vocabulary terms such as CDC, EEM, NCM, RNDIS, etc... Yes, I know that the Google and, in a lot of cases, the KConfig files can define all of these terms for me, but none of that helped explain why, when I thought I had configured both ends equivalently, they still wouldn't talk to each other. It was only very late in the game where I realized that the kernel on the Edison board was creating a usb0 and a usb1 device and that made me wonder how one got associated with the working connection and one did not. Your explanation of the architecture on the Edison board and the operation of the DWC3 device is much appreciated, and provides a much more palatable explanation of the use of the "Gadget only mode" selection in my Edison kernel than the explanation I invented. Thank you very much. I remain confused by the fact that the Edison does not switch to host-mode until/unless I load the g_multi module. ("lsusb" won't even work until I load that module.) I expect that when I load that module, it kicks off enough other things that realize that the Edison is plugged into a hub and it should switch over to "host-only XHCI" and therefore things start to work. Perhaps, based on your explanation, I should just disable the DWC3 driver completely and that would enable the XHCI driver to work. I'll give that a try. Thank you again. --wpd -- 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