<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[LAN7800 support]]></title><description><![CDATA[<p dir="auto">Hello, I'm trying to use LAN7800 with a VOXL2. I'm on SDK 1.4 with an EVB-LAN7800LC-1 evaluation board.</p>
<p dir="auto">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?</p>
<p dir="auto">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</p>
<pre><code>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
</code></pre>
]]></description><link>https://forum.modalai.com/topic/4122/lan7800-support</link><generator>RSS for Node</generator><lastBuildDate>Sat, 12 Sep 2026 08:38:11 GMT</lastBuildDate><atom:link href="https://forum.modalai.com/topic/4122.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 24 Jan 2025 22:02:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to LAN7800 support on Wed, 29 Jan 2025 03:45:43 GMT]]></title><description><![CDATA[<p dir="auto">Hi <a class="plugin-mentions-user plugin-mentions-a" href="/user/jcai" aria-label="Profile: jcai">@<bdi>jcai</bdi></a> ,</p>
<p dir="auto">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! <img src="https://forum.modalai.com/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=43a1be1fe87" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>
<p dir="auto">the kernel module is in the build, as specified in the config file here : <a href="https://gitlab.com/voxl-public/system-image-build/qrb5165-kernel/-/blob/qrb5165-ubun1.0-14.1a/arch/arm64/configs/vendor/kona-perf_defconfig#L328" rel="nofollow ugc">https://gitlab.com/voxl-public/system-image-build/qrb5165-kernel/-/blob/qrb5165-ubun1.0-14.1a/arch/arm64/configs/vendor/kona-perf_defconfig#L328</a></p>
<p dir="auto">Some info about the driver : <a href="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" rel="nofollow ugc">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</a></p>
<p dir="auto">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).</p>
<p dir="auto">Maybe try another ethernet adapter? <img src="https://forum.modalai.com/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=43a1be1fe87" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>
<p dir="auto">For example,</p>
<pre><code>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
</code></pre>
<pre><code>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
	...
</code></pre>
<pre><code>voxl2-mini:/$ iperf -c &lt;my desktop machine ip&gt;
------------------------------------------------------------
Client connecting to &lt;my desktop machine ip&gt;, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3] local &lt;my voxl2 local ip&gt; port 52708 connected with &lt;my desktop machine ip&gt; port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec   339 MBytes   284 Mbits/sec
</code></pre>
<p dir="auto">Did not quite get 1 gig (about 300Mbit/s), maybe there is a bottleneck somewhere, but maybe that will work for you..</p>
<p dir="auto">Alex</p>
]]></description><link>https://forum.modalai.com/post/20672</link><guid isPermaLink="true">https://forum.modalai.com/post/20672</guid><dc:creator><![CDATA[Alex Kushleyev]]></dc:creator><pubDate>Wed, 29 Jan 2025 03:45:43 GMT</pubDate></item></channel></rss>