5

Raspberry Pi 3 uses SMSC LAN9514-JZX USB and Ethernet controller. While I read the LAN9514 manual, I quite did not understand how Ethernet controller interacts with SoC/CPU. Block diagram from manual can be seen below:

LAN9514 internal block diagram

Manual states that USB hub has Four downstream ports, one upstream port. 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? If yes, then does this mean that this Ethernet controller appears as am USB Ethernet controller in OS?

3
  • 1
    The USB ports and the Ethernet port do indeed share the same controller, however you will find in the OS that the Ethernet port is not treated as a USB port.
    – Darth Vader
    Apr 19, 2016 at 15:04
  • Well it's not a USB port, it's an ethernet controller that happens to be connected via a USB port. Apr 20, 2016 at 2:01
  • Ok, so as I understand, then for example 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, 2016 at 8:26

1 Answer 1

8

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).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.