ModalAI Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    LAN7800 support

    Ask your questions right here!
    2
    2
    67
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      jcai
      last edited by

      Hello, I'm trying to use LAN7800 with a VOXL2. I'm on SDK 1.4 with an EVB-LAN7800LC-1 evaluation board.

      I've seen that the lan78xx driver requires Linux kernel 4.3+ but even though the VOXL is on 4.19.125, it looks like there's support for lan78xx?

      I've confirmed that the adapter works on my Windows laptop, but the following is what happens when I connect it to the VOXL2 on the M0151's port

      voxl2:/$ dmesg | grep lan78
      [    1.869189] usbcore: registered new interface driver lan78xx
      [    3.326980] libphy: lan78xx-mdiobus: probed
      [    4.342277] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [    4.342307] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [    4.342340] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000098. ret = -19
      [    4.342365] lan78xx 2-1:1.0 eth0: Failed to write register index 0x00000098. ret = -19
      [    4.342462] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000098. ret = -19
      [    4.342487] lan78xx 2-1:1.0 eth0: Failed to write register index 0x00000098. ret = -19
      [    4.342520] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [    4.869096] libphy: lan78xx-mdiobus: probed
      [   12.810643] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [   12.810685] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [   12.810735] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000098. ret = -19
      [   12.810772] lan78xx 2-1:1.0 eth0: Failed to write register index 0x00000098. ret = -19
      [   12.810881] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [   12.810931] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000098. ret = -19
      [   12.810966] lan78xx 2-1:1.0 eth0: Failed to write register index 0x00000098. ret = -19
      [   12.811009] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [   13.329593] libphy: lan78xx-mdiobus: probed
      [   27.122628] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [   27.122673] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [   27.122727] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000098. ret = -19
      [   27.122818] lan78xx 2-1:1.0 eth0: Failed to write register index 0x00000098. ret = -19
      [   27.123017] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000098. ret = -19
      [   27.123056] lan78xx 2-1:1.0 eth0: Failed to write register index 0x00000098. ret = -19
      [   27.123108] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [   27.657519] libphy: lan78xx-mdiobus: probed
      [   28.098415] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [   28.098467] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [   28.098525] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000098. ret = -19
      [   28.098569] lan78xx 2-1:1.0 eth0: Failed to write register index 0x00000098. ret = -19
      [   28.098727] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000098. ret = -19
      [   28.098770] lan78xx 2-1:1.0 eth0: Failed to write register index 0x00000098. ret = -19
      [   28.098827] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [   28.610233] libphy: lan78xx-mdiobus: probed
      [   30.898654] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [   30.898721] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [   30.898781] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000098. ret = -19
      [   30.898821] lan78xx 2-1:1.0 eth0: Failed to write register index 0x00000098. ret = -19
      [   30.898994] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [   30.899056] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000098. ret = -19
      [   30.899097] lan78xx 2-1:1.0 eth0: Failed to write register index 0x00000098. ret = -19
      [   30.899146] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [   31.412477] libphy: lan78xx-mdiobus: probed
      [   32.814550] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [   32.814604] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [   32.814662] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000098. ret = -19
      [   32.814832] lan78xx 2-1:1.0 eth0: Failed to write register index 0x00000098. ret = -19
      [   32.814989] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000098. ret = -19
      [   32.815030] lan78xx 2-1:1.0 eth0: Failed to write register index 0x00000098. ret = -19
      [   32.815088] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [   33.326810] libphy: lan78xx-mdiobus: probed
      [   33.476910] lan78xx 2-1:1.0 eth0: Failed to write register index 0x00000424. ret = -71
      [   33.477263] lan78xx 2-1:1.0 eth0: Failed to write register index 0x00000420. ret = -71
      .
      .
      .
      [   42.338752] lan78xx 2-1:1.0 eth0: Failed to write register index 0x00000098. ret = -19
      [   42.339081] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000098. ret = -19
      [   42.339126] lan78xx 2-1:1.0 eth0: Failed to write register index 0x00000098. ret = -19
      [   42.339185] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [   42.863468] libphy: lan78xx-mdiobus: probed
      [   44.298561] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [   44.298614] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [   44.298674] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000098. ret = -19
      [   44.298720] lan78xx 2-1:1.0 eth0: Failed to write register index 0x00000098. ret = -19
      [   44.298867] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000098. ret = -19
      [   44.298911] lan78xx 2-1:1.0 eth0: Failed to write register index 0x00000098. ret = -19
      [   44.298966] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [   44.813080] libphy: lan78xx-mdiobus: probed
      [   45.258417] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [   45.258469] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [   45.258651] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000098. ret = -19
      [   45.258697] lan78xx 2-1:1.0 eth0: Failed to write register index 0x00000098. ret = -19
      [   45.258842] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000098. ret = -19
      [   45.258886] lan78xx 2-1:1.0 eth0: Failed to write register index 0x00000098. ret = -19
      [   45.258942] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [   45.774138] libphy: lan78xx-mdiobus: probed
      [   46.226421] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [   46.226472] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [   46.226529] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000098. ret = -19
      [   46.226572] lan78xx 2-1:1.0 eth0: Failed to write register index 0x00000098. ret = -19
      [   46.226716] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000098. ret = -19
      [   46.226759] lan78xx 2-1:1.0 eth0: Failed to write register index 0x00000098. ret = -19
      [   46.226814] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [   46.741781] libphy: lan78xx-mdiobus: probed
      [   50.346684] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [   50.346739] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [   50.346801] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000098. ret = -19
      [   50.346847] lan78xx 2-1:1.0 eth0: Failed to write register index 0x00000098. ret = -19
      [   50.346991] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [   50.347061] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000098. ret = -19
      [   50.347107] lan78xx 2-1:1.0 eth0: Failed to write register index 0x00000098. ret = -19
      [   50.347164] lan78xx 2-1:1.0 eth0: Failed to read register index 0x00000120. ret = -19
      [   50.607172] lan78xx 2-1:1.0 (unnamed net_device) (uninitialized): Failed to read register index 0x00000098. ret = -71
      [   50.607688] lan78xx 2-1:1.0 (unnamed net_device) (uninitialized): Failed to read register index 0x00000098. ret = -71
      [   50.608208] lan78xx 2-1:1.0 (unnamed net_device) (uninitialized): Failed to read register index 0x00000010. ret = -71
      [   50.608668] lan78xx 2-1:1.0 (unnamed net_device) (uninitialized): Failed to write register index 0x00000010. ret = -71
      [   50.610775] lan78xx 2-1:1.0 (unnamed net_device) (uninitialized): Failed to read register index 0x00000010. ret = -71
      [   50.612909] lan78xx 2-1:1.0 (unnamed net_device) (uninitialized): Failed to read register index 0x00000010. ret = -71
      [   50.615291] lan78xx 2-1:1.0 (unnamed net_device) (uninitialized): Failed to read register index 0x00000010. ret = -71
      [   50.617395] lan78xx 2-1:1.0 (unnamed net_device) (uninitialized): Failed to read register index 0x00000010. ret = -71
      [   50.619530] lan78xx 2-1:1.0 (unnamed net_device) (uninitialized): Failed to read register index 0x00000010. ret = -71
      [   50.621638] lan78xx 2-1:1.0 (unnamed net_device) (uninitialized): Failed to read register index 0x00000010. ret = -71
      [   50.624239] lan78xx 2-1:1.0 (unnamed net_device) (uninitialized): Failed to read register index 0x00000010. ret = -71
      [   50.626414] lan78xx 2-1:1.0 (unnamed net_device) (uninitialized): Failed to read register index 0x00000010. ret = -71
      [   50.628507] lan78xx 2-1:1.0 (unnamed net_device) (uninitialized): Failed to read register index 0x00000010. ret = -71
      [   50.630636] lan78xx 2-1:1.0 (unnamed net_device) (uninitialized): Failed to read register index 0x00000010. ret = -71
      [   50.632776] lan78xx 2-1:1.0 (unnamed net_device) (uninitialized): Failed to read register index 0x00000010. ret = -71
      [   50.635169] lan78xx 2-1:1.0 (unnamed net_device) (uninitialized): Failed to read register index 0x00000010. ret = -71
      [   50.637805] lan78xx 2-1:1.0 (unnamed net_device) (uninitialized): Failed to read register index 0x00000010. ret = -71
      [   50.639887] lan78xx 2-1:1.0 (unnamed net_device) (uninitialized): Failed to read register index 0x00000010. ret = -71
      [   50.642301] lan78xx 2-1:1.0 (unnamed net_device) (uninitialized): Failed to read register index 0x00000010. ret = -71
      [   50.644417] lan78xx 2-1:1.0 (unnamed net_device) (uninitialized): Failed to read register index 0x00000010. ret = -71
      [   50.646512] lan78xx 2-1:1.0 (unnamed net_device) (uninitialized): Failed to read register index 0x00000010. ret = -71
      [   50.648658] lan78xx 2-1:1.0 (unnamed net_device) (uninitialized): Failed to read register index 0x00000010. ret = -71
      [   50.650747] lan78xx 2-1:1.0 (unnamed net_device) (uninitialized): Failed to read register index 0x00000010. ret = -71
      [   50.653185] lan78xx 2-1:1.0 (unnamed net_device) (uninitialized): Failed to read register index 0x00000010. ret = -71
      [   50.655546] lan78xx 2-1:1.0 (unnamed net_device) (uninitialized): Failed to read register index 0x00000010. ret = -71
      [   50.657652] lan78xx 2-1:1.0 (unnamed net_device) (uninitialized): Failed to read register index 0x00000010. ret = -71
      [   50.659752] lan78xx 2-1:1.0 (unnamed net_device) (uninitialized): Failed to read register index 0x00000010. ret = -71
      .
      .
      .
      [   51.611757] lan78xx 2-1:1.0 (unnamed net_device) (uninitialized): Failed to read register index 0x00000010. ret = -71
      [   51.614032] lan78xx 2-1:1.0 (unnamed net_device) (uninitialized): Failed to read register index 0x00000010. ret = -71
      [   51.614038] lan78xx 2-1:1.0 (unnamed net_device) (uninitialized): timeout on completion of LiteReset
      [   51.614043] lan78xx 2-1:1.0 (unnamed net_device) (uninitialized): Registers INIT FAILED....
      [   51.614089] lan78xx 2-1:1.0 (unnamed net_device) (uninitialized): Bind routine FAILED
      [   51.615072] lan78xx: probe of 2-1:1.0 failed with error -5
      
      Alex KushleyevA 1 Reply Last reply Reply Quote 0
      • Alex KushleyevA
        Alex Kushleyev ModalAI Team @jcai
        last edited by Alex Kushleyev

        Hi @jcai ,

        I am not sure about this one.. If a higher kernel version is required and the existing driver does not actually work, then maybe it is not a big surprise! 🙂

        the kernel module is in the build, as specified in the config file here : https://gitlab.com/voxl-public/system-image-build/qrb5165-kernel/-/blob/qrb5165-ubun1.0-14.1a/arch/arm64/configs/vendor/kona-perf_defconfig#L328

        Some info about the driver : https://gitlab.com/voxl-public/system-image-build/qrb5165-kernel/-/blob/qrb5165-ubun1.0-14.1a/arch/arm64/boot/dts/vendor/bindings/net/microchip,lan78xx.txt

        You could try to pull source code from updated driver for this device from a newer kernel, drop it into the voxl2 kernel build and build the kernel with new driver. I think some users on this forum were able to do something similar with another device (not ethernet adapter).

        Maybe try another ethernet adapter? 🙂

        For example,

        voxl2-mini:/$ lsusb -t
        /:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 10000M
            |__ Port 1: Dev 2, If 0, Class=Vendor Specific Class, Driver=ax88179_178a, 5000M
        
        voxl2-mini:/$ ethtool eth0
        Settings for eth0:
        	Supported ports: [ TP MII ]
        	Supported link modes:   10baseT/Half 10baseT/Full 
        	                        100baseT/Half 100baseT/Full 
        	                        1000baseT/Half 1000baseT/Full 
        	...
        	Speed: 1000Mb/s
        	Duplex: Full
        	...
        
        voxl2-mini:/$ iperf -c <my desktop machine ip>
        ------------------------------------------------------------
        Client connecting to <my desktop machine ip>, TCP port 5001
        TCP window size: 85.0 KByte (default)
        ------------------------------------------------------------
        [  3] local <my voxl2 local ip> port 52708 connected with <my desktop machine ip> port 5001
        [ ID] Interval       Transfer     Bandwidth
        [  3]  0.0-10.0 sec   339 MBytes   284 Mbits/sec
        

        Did not quite get 1 gig (about 300Mbit/s), maybe there is a bottleneck somewhere, but maybe that will work for you..

        Alex

        1 Reply Last reply Reply Quote 0
        • First post
          Last post
        Powered by NodeBB | Contributors