Does this mean that all the USB peripheral devices AND Ethernet controller share the single USB port to SoC/CPU also in Raspberry Pi 3?
Yes. All USB ports and the ethernet jack have a combined maximum throughput equal to one USB 2.0 port. It is not uncommon for computers of all sorts to combine several USB ports on one hub this way, although including an ethernet adapter is (I believe the LAN9415 may actually be the first thing of this kind). So if you are reading 5 MB/s through the ethernet then writing it back out to a USB device, that (minimally) amounts to 10 MB/s throughput on the bus.
If yes, then does this mean that this Ethernet controller appears as am USB Ethernet controller in OS?
Yes. Here's something you'll see in the output from lsusb
:
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
And there is a driver for this device in the vanilla linux kernel under drivers/net/usb
, smsc95xx
. I presume this is built into the pre-compiled pi kernel (i.e., it is not built as a separate module) since you will not see it listed under lsmod
nor find it in the /lib/modules/n.n.n
directory. However, as noted here, you need to include it when you are building a custom kernel (it might be that it has to be built in, i.e., cannot be a separate .ko.
, I don't remember).
lsusb
in OS does not list the Ethernet controller? Does this mean that Ethernet controller is connected to SoC/CPU over some other bus than USB? Over PCI bus? – Martin Apr 20 '16 at 08:26