New 1.0.85 MXL firmware

The new MXL firmware has been updated. Those who need it can download it from the official website link.

Firmware name: mxl862xxc_1030_1085_1085_0069_signed_upgrade_xfi_v2.bin

Download link: Banana Pi BPI-R4 Pro Wifi7 Router board design with Mediatek MT7988A | BananaPi Docs

Change details: mxl862xxc-FW Release Note.txt (12.9 KB)

2 Likes

Updated, no problems

[    6.761324] mxl862xx mdio-bus:10:    Mxl862xx CPU Port 8, User Port number 5
[    6.778013] MaxLinear Ethernet MxL862XX mxl862xx_dsa-0:00: Firmware Version: 0.105 (0x0069 test version)
[    6.816172] MaxLinear Ethernet MxL862XX mxl862xx_dsa-0:01: Firmware Version: 0.105 (0x0069 test version)
[    6.854349] MaxLinear Ethernet MxL862XX mxl862xx_dsa-0:02: Firmware Version: 0.105 (0x0069 test version)
[    6.892499] MaxLinear Ethernet MxL862XX mxl862xx_dsa-0:03: Firmware Version: 0.105 (0x0069 test version)
[   11.701877] mxl862xx mdio-bus:10: Firmware version 1.0.85.85

Nothing has changed, so maybe it’s fine.

1 Like
  1. Can we get sha256sum or a checksum of the update?
  2. How about the previous firmware? What should one do if the new firmware doesn’t work? How do I revert back to the previous working version?
  3. Is this applicable to the pro 4E as well?

mxl862xxc_1030_1085_1085_0069_signed_upgrade_xfi_v2.bin

Change the default configurations for _dsa.bin and _xfi.bin.

Does this mean that the new firmware is not designed for dsa? We need the dsa variant here.

Hold on, please. @frank-w, can you please check the below for me:

❯ sha256sum mxl862xxc_1030_1085_1085_0069_signed_xfi_upgrade_fca.bin 
68a510b7333d7974c1bf21a190f0bd35312db4f77abca9e93794a4e672bf9b90  mxl862xxc_1030_1085_1085_0069_signed_xfi_upgrade_fca.bin

mbana in asus-zenbook-14 in @192.168.1.6 ~/dev/github/mbana/notes/builds_BPI-R4PRO-4E-OPENWRT-V24.10.0-Master-Devel/official/mxl-chip-firmware/mxl862xxc_1030_1085_1085_0069_signed_xfi_upgrade_fca on  main [?] 
❯ sha256sum ../mxl862xxc_1030_1085_1085_0069_signed_upgrade_xfi_v2/mxl862xxc_1030_1085_1085_0069_signed_upgrade_xfi_v2.bin
68a510b7333d7974c1bf21a190f0bd35312db4f77abca9e93794a4e672bf9b90  ../mxl862xxc_1030_1085_1085_0069_signed_upgrade_xfi_v2/mxl862xxc_1030_1085_1085_0069_signed_upgrade_xfi_v2.bin

So the sha256sum of both files are the same … ? @sinovoip, is this correct? Did someone forget to upload the new firmware?

Are these different? If so, how?

Seems like, literally, nothing has changed according to the sha256sum of the files.

if you are curious to understand why it is worth upgrading to 1.0.85. (not the v2. just 1.0.85 in general)

here is what i meant when i asked you to read the thread on the pull request

putting it here for anyone in the future wondering or asking the same.

2 Likes

I’ve updated to mxl862xxc_1030_1085_1085_0069_signed_xfi_upgrade_fca.bin since both versions are identical, and I think it’s working. Now to try out frank-w’s branch again with the new firmware.

root in 🌐 OpenWrt in ~ 
❯ dmesg | grep -i firmware
[   11.029084] MaxLinear Ethernet MxL862XX mxl862xx_dsa-0:00: Firmware Version: 0.105 (0x0069 test version)
[   11.089155] MaxLinear Ethernet MxL862XX mxl862xx_dsa-0:01: Firmware Version: 0.105 (0x0069 test version)
[   11.149137] MaxLinear Ethernet MxL862XX mxl862xx_dsa-0:02: Firmware Version: 0.105 (0x0069 test version)
[   11.209116] MaxLinear Ethernet MxL862XX mxl862xx_dsa-0:03: Firmware Version: 0.105 (0x0069 test version)
[   17.706059] mxl862xx mdio-bus:10: Firmware version 1.0.85.85
[   51.965390] platform 15010000.wed: MTK WED WO Firmware Version: ____000000, Build Time: 20230218204509
[   52.653410] mt7996e 0000:01:00.0: WM Firmware Version: ____000000, Build Time: 20250605130338
[   52.710322] mt7996e 0000:01:00.0: DSP Firmware Version: ____000000, Build Time: 20250605125645
[   52.783840] mt7996e 0000:01:00.0: WA Firmware Version: ____000000, Build Time: 20250605130248

Odd that it doesn’t reach > ~9 GBytes on the iperf3 test. I am connected to the router using SFP+ DAC cable on the LAN side:

mbana in asus-zenbook-14 in @192.168.1.5 ~/dev/github/mbana/notes/builds_BPI-R4PRO-4E-OPENWRT-V24.10.0-Master-Devel/official/mxl-chip-firmware/mxl862xxc_1030_1085_1085_0069_signed_xfi_upgrade_fca on  main [?] took 10s 
❯ iperf3 -c OpenWrt -p 5201 --time 3             
Connecting to host OpenWrt, port 5201
[  5] local 192.168.1.5 port 37334 connected to 192.168.1.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   394 MBytes  3.30 Gbits/sec   37   1.23 MBytes       
[  5]   1.00-2.00   sec   394 MBytes  3.30 Gbits/sec    4   1.02 MBytes       
[  5]   2.00-3.00   sec   396 MBytes  3.32 Gbits/sec    0   1.26 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-3.00   sec  1.16 GBytes  3.31 Gbits/sec   41            sender
[  5]   0.00-3.00   sec  1.15 GBytes  3.30 Gbits/sec                  receiver

iperf Done.

mbana in asus-zenbook-14 in @192.168.1.5 ~/dev/github/mbana/notes/builds_BPI-R4PRO-4E-OPENWRT-V24.10.0-Master-Devel/official/mxl-chip-firmware/mxl862xxc_1030_1085_1085_0069_signed_xfi_upgrade_fca on  main [?] took 3s 
❯ iperf3 -c OpenWrt -p 5201 --time 3 --reverse
Connecting to host OpenWrt, port 5201
Reverse mode, remote host OpenWrt is sending
[  5] local 192.168.1.5 port 60098 connected to 192.168.1.1 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  1.04 GBytes  8.96 Gbits/sec                  
[  5]   1.00-2.00   sec  1.08 GBytes  9.26 Gbits/sec                  
[  5]   2.00-3.00   sec  1.04 GBytes  8.96 Gbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-3.00   sec  3.17 GBytes  9.07 Gbits/sec  2297            sender
[  5]   0.00-3.00   sec  3.16 GBytes  9.06 Gbits/sec                  receiver

iperf Done.

mbana in asus-zenbook-14 in @192.168.1.5 ~/dev/github/mbana/notes/builds_BPI-R4PRO-4E-OPENWRT-V24.10.0-Master-Devel/official/mxl-chip-firmware/mxl862xxc_1030_1085_1085_0069_signed_xfi_upgrade_fca on  main [?] took 3s 
❯ iperf3 -c OpenWrt -p 5201 --time 3 --bidir  
Connecting to host OpenWrt, port 5201
[  5] local 192.168.1.5 port 60114 connected to 192.168.1.1 port 5201
[  7] local 192.168.1.5 port 60120 connected to 192.168.1.1 port 5201
[ ID][Role] Interval           Transfer     Bitrate         Retr  Cwnd
[  5][TX-C]   0.00-1.00   sec   282 MBytes  2.37 Gbits/sec   75   1.25 MBytes       
[  7][RX-C]   0.00-1.00   sec  1013 MBytes  8.49 Gbits/sec                  
[  5][TX-C]   1.00-2.00   sec   273 MBytes  2.29 Gbits/sec    0   1.40 MBytes       
[  7][RX-C]   1.00-2.00   sec   998 MBytes  8.37 Gbits/sec                  
[  5][TX-C]   2.00-3.00   sec   266 MBytes  2.23 Gbits/sec    5   1.14 MBytes       
[  7][RX-C]   2.00-3.00   sec   870 MBytes  7.29 Gbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID][Role] Interval           Transfer     Bitrate         Retr
[  5][TX-C]   0.00-3.00   sec   821 MBytes  2.30 Gbits/sec   80            sender
[  5][TX-C]   0.00-3.00   sec   817 MBytes  2.29 Gbits/sec                  receiver
[  7][RX-C]   0.00-3.00   sec  2.82 GBytes  8.06 Gbits/sec  3306            sender
[  7][RX-C]   0.00-3.00   sec  2.81 GBytes  8.06 Gbits/sec                  receiver

iperf Done.

So basicly lan-works now,right? Speed is always limited by cpu due to missing RSS/LRO.

I wonder too that both firmwares have identical sha hash…i only looked in changelog which seems default config has changed,but that should change shasum too

can you try enabling packet steering and hardware flow offload?

I am afraid in your branch the SFP+ 10 Gbp/s LAN port does not work. :frowning: . What information would you like from me? I’m happy to dig further into this.

Yeh, maybe an oversight. @sinovoip and @hyf, please confirm.

I believe they are already enabled? Please correct me if I am wrong:

root in 🌐 OpenWrt in ~ 
❯ uci show | grep -i -e 'hw' -e 'offload'
firewall.@defaults[0].flow_offloading='1'
firewall.@defaults[0].flow_offloading_hw='1'

root in 🌐 OpenWrt in ~ 
❯ cat /sys/module/mt7996e/parameters/wed_enable 
Y

uci set network.@globals[0].packet_steering=‘2’

uci commit network

/etc/init.d/network restart

Thanks!

root in 🌐 OpenWrt in ~ 
❯ uci show | grep -i -e 'hw' -e 'offload' -e 'steering'            
firewall.@defaults[0].flow_offloading='1'
firewall.@defaults[0].flow_offloading_hw='1'
network.globals.packet_steering='2'

UI

By default it shows:

Packet Steering Enabled Enable packet steering across CPUs. May help or hinder network speed.

Steering flows (RPS) Standard: none Directs packet flows to specific CPUs where the local socket owner listens (the local service). Note: this setting is for local services on the device only (not for forwarding).

Results

Roughly the same as before:

mbana in asus-zenbook-14 in @192.168.1.5 ~ took 7s 
❯ iperf3 -c OpenWrt -p 5201 --time 3 --reverse
Connecting to host OpenWrt, port 5201
Reverse mode, remote host OpenWrt is sending
[  5] local 192.168.1.5 port 60266 connected to 192.168.1.1 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  1.01 GBytes  8.71 Gbits/sec                  
[  5]   1.00-2.00   sec  1.02 GBytes  8.75 Gbits/sec                  
[  5]   2.00-3.00   sec  1.04 GBytes  8.92 Gbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-3.00   sec  3.08 GBytes  8.80 Gbits/sec  2404            sender
[  5]   0.00-3.00   sec  3.07 GBytes  8.79 Gbits/sec                  receiver

iperf Done.

I’ll try out frank-w’s suggestion of RSS/LRO.

Always mention which board,which port (you did here),if it is an mxl port the firmware,applied overlays (on 4e only for wan) and output of ip a,ethtool interface, ethtool -s interface,for sfp: ethtool -m interface

And repo/branch…i have many in multiple repos :slight_smile:

Rss/lro is more work…just stay at basics first

https://fwupd.org/lvfs/devices/com.maxlinear.mxl862xx.firmware

maxlinear started pushing firmware files on lvfs. you can download from there too. the cab files contains an xml file to verify sha.

1 Like

Great, thanks for the info. Not sure how the correct way is to load firmware from fwupd. I guess there is some special process,not just manually download unpack,manual verify. But official vendor firmware is a huge step forward.

Noticed they tested on R4Pro 8X :smiley: most vendors testing on their own dev boards.

fwupdtool get-details

bananapi Bananapi BPI-R4 Pro 8X
│
└─Unknown Device:
  │   URL:                https://www.maxlinear.com/
  │   Update Error:       Device was not found
  │   GUIDs:              9ac715d5-9e4c-53da-9801-05d8366855b6
  │                       d2a6f602-d988-5425-b686-5c1081576cce
  │
  └─MxL862xx Device Update:
        New version:      1.0.85
        Summary:          Firmware for the MaxLinear MxL86252 and MxL86282 Ethernet switches
        Licence:          Proprietary
        Size:             2.0 MB
        Urgency:          Medium
        Vendor:           MaxLinear
        Release Flags:    • Trusted payload
                          • Trusted metadata
        Description:
        This stable release 1086 has the following improvements:

        • Added support for the MxL86253 device.
        • Added SerDes (host) API support for DSA driver and MCU/SoC systems.

        Some PHY firmware improvements:

        • Improved 2.5G RI / CI regulatory testing.
        • Enhanced cable diagnostics
        Checksum:         972ec047263bc0e3e06a9fa929c65923f1cae6ead59e0904d4fe7440c5e6847a
1 Like