Mini-PC Server #7:

Firmwareaktualisierung des Marvell / Aquantia AQC113 Controllers

Veröffentlicht am Published on 发表于 26. Mai 2026 um at , 23:01

Nachdem der Kühler nun passend modifiziert ist und via HWiNFO sichergestellt wurde das zumindest bei niedriger Last keine extremen Temperaturen auftreten habe ich mich als nächstes um die Firmware gekümmert:

Die Controller von Marvell / Aquantia haben eine interne Firmware, die aktualisiert werden kann. Bis heute werden Probleme behoben und es ist sehr empfehlenswert eine aktuelle Firmwareversion zu flashen, auch wenn das gewisse Risiken mit sich bringt. Die Aktualisierung ist (nur?) unter Windows möglich und daher macht es für mich Sinn, das jetzt durchzuführen, bevor Proxmox und somit Debian auf den Mini-PCs läuft.

Es gibt gute Ressourcen zu den Aquantiacontrollern bei station-drivers.com

Ablauf der Aktualisierung

Etwas Sorgen habe ich mir schon gemacht, immerhin kann man das Modul durchaus unbrauchbar machen falls etwas schiefläuft. Ähnlich wie bei einem BIOS bzw. UEFI-Update mit Stromausfall.

Daher habe ich in zwei Schritten aktualisiert: Einmal auf Version 1.5.38 mit dem offiziellen Marvell Firmwareaktualisierungsprogramm und dann einen kleinen Schritt auf 1.5.45 mithilfe des modifizierten Updaters bei station-drivers.com. Beides gibt es dort zum Download mitsamt einem ausführlichen Forenthread:

Download von v1.5.38 (Offiziell)
Download von v1.5.45 (Mod)
Forenthread

Interessant sind auch die Release Notes, es wurde wirklich viel verbessert über die Jahre, danke an Marvell / Aquantia:

FW version 1.5.45 for Marvell AQC113 Family of Controllers
==============================================

1.5.45
?
-------
* Updates the PCIe Gen3 x4 advertisement information.
* Tunes the PCIe memory timing for 0.7 V power supply.
* Sets hysteresis to 50 mV.
* Provides SRAM ECC protection.
* Restricts the presets to used only P4-P9.


1.5.38
27 February 2024
-------
* Bypassed automatic execution of PCIe Configuration from Bootloader.
* PCIe Serdes Firmware integrated into MAC Firmware image and loaded during cold boot.
* PCIe initialization triggered from MAC Firmware.
* ROMBIN atlantic2 set to Antigua_1_5_xxx_487


1.3.37
31 October 2023
-------
* Signed PXE ROM v3.1.106 with EFI v2.1.13 FW 
* Added fix for Pre-Boot DMA protection


1.3.36
31 October 2023
-------
* Signed PXE ROM v3.1.105 with EFI v2.1.12 FW 
* Added boot time optimization and check for cable detect status - fix for Lenovo


1.3.34
3 February 2023
-------
* Reverted the change of loading the PCIe PHY FW to PCIe PHY SRAM (Change introduced in 1.3.29).
  The PHY FW will be loaded from PCIe PHY ROM as it was before


1.3.28
8 April 2022
------------
* Added Advertize 2.5 and 5G NBase-T speed capabilities
* Added AQC113 device ID 0x34C0 to inventory list


1.3.27
18 March 2022
------------
* OEM specific release
* exluded SerDes FW to 3.5.0
* Added configuration to enable SRAM ECC detection and correction


1.3.26
23 feb 2022
------------
* OEM specific release
* Added CFG TLV configuration changes(need your input)


1.3.25
16 feb 2022
------------
* OEM specific release
*	Fixed the unintended Wake-On-Link-Up behavior on the Mac-OS environment.
* Fixed the issue of untimely wake-up from Wake-On-Timer.


1.3.24
08 feb 2022
------------
* Updated the SerDes FW to 3.5.0
* Limited the PCIe preset mask to p4-p9 for Gen3 and Gen4


1.3.23
15 jan 2022
------------
* Introduced additional provisionable PCIe configuration mode to workaround PCIe instability observed on some platforms
  Relevance- AQC113C


1.3.22
5 jan 2022
------------
* Removed default advertisement of GARP and Unsolicited NA in Sleep Proxy mode. The driver can use the new capability mask bit in the offload-control register to control this feature
* Do not wait for 20sec (linklatchuptimeout) to enable Wakeonlinkup if the link is down at the time of suspend/sleep
* Removed the extra link flap on Wake-on-link. And when the system wakes up, initialize the link at the highest possible speed
  Relevance: fast-boot mode


1.3.21
11 nov 2021
------------
* Updated PCIe VPD data
  Relevance: images with PCIe VPD support
* Added support for drvdiag -s in PCIROM v3.1.4 UEFI driver
  Relevance: UEFI


1.3.20
16 oct 2021
------------
 * OEM specific release with specific provisioning


1.3.19
-----------
* Skipped version


1.3.18
02 july 2021
------------
* Fixed the issue of incorrect packet statistics counters reported by fw
* Removed 1G half duplex speed advertisement from the speed capability configuration
* Fixed the invalid speed advertisement 
  Relevance: AQC115C-B1
* Fixed the wrong led behavior at 2.5G speed 
  Relevance: AQC115C


1.3.17
23 apr 2021
-----------
* Added firmware support to disable NCSI via BDP provisioning
* Fixed longer link downtime during os suspend to resume transition in fast-boot mode


1.3.16
13 apr 2021
-----------
* Fixed the TFTP pxe boot failure due to failure to acknowledge Ock/Oack 
  Relevance: FW images with PCIe option rom support


1.3.15
02 apr 2021
-----------
* Added mDNS support
 
 
1.3.14
-----------
* Skipped version


1.3.13
13 feb 2021
-----------
* PHY firmware updated to v6.01.02 for Bx
* PHY change: only enable autoneg timeout when downshift is enabled if downshift was active
* Disable Reed Solomon feature in PHY firmware
* Fixed AQC113 power consumption is higher when cable is removed vs. Attached


1.3.12
08 feb 2021
-----------
* Revert additional fix for mDNS


1.3.11
05 feb 2021
-----------
* Fixed answers in mDNS query differ between when system is in sleep and when the system is awake - additional fix
* Fixed panic case: extended Lom port not open up after secure request was sent


1.3.10
01 feb 2021
-----------
* Fixed AQC113 failed when configured with 10G/full-duplex and came back up with a hot-plug of cable


1.3.9
28 jan 2021
-----------
* Fixed additional fix - remove questions from response (mDNS)


1.3.8
26 jan 2021
-----------
* Fixed AQC113: link became inactive and still fails with hot-plug of cable
* Fixed additional fix for regression test failure
* Fixed AQC113: answers in mDNS query differ between when system is in sleep and when the system is awake
 
 
1.3.7
20 jan 2021
-----------
* Fixed AQC113 ping failed after stress test when system is in sleep
* Fixed [Lom] ping6 extLom is successful after the system panics without pinging basic Lom


1.3.6
10 jan 2021
-----------
* Fixed AQC113 PTP tx ring appears to stop working

	
1.3.5
6 jan 2021
----------
* Fixed AQC113 A0 : built-in became 10base after cable was plugged in switch
* Fixed [Lom] extended mode enabled before 30 sec window
* Fixed [Lom] extended Lom port should be closed after 300 seconds, not 500+ seconds
* Added provision registers 3660 and 3664 in config
* PHY firmware updated to v6.01.01 for Bx


1.3.4
18 dec 2020
-----------
* Fixed AQC113 extended Lom port should be closed after 300 seconds, not 500+ seconds - "shutdown" case
* Fixed AQC113 extended Lom port kept open after Lom unenrolled
* Fixed AQC113 ping6 ext Lom drops packets when system is shutdown (power on failed)


1.3.3
15 dec 2020
-----------
* Fixed AQC113 (both A0/B0) FW does not respond to mDNS query while sleeping
* Fixed AQC113 did not wake after tcp keepalive expires
* PHY firmware updated to v6.0.15


1.3.2
26 nov 2020
-----------
* Fixed AQC113 (both A0/B0) FW does not respond to mDNS query while sleeping (side-issue with uncast request)
* Fixed thermal shutdown functionality is not provisionable
* Remove support for 10m_HD and 100m_HD


1.3.1
09 nov 2020
-----------
* Added support for B1 devices


1.2.3
27 oct 2020
-----------
* Fixed AQC113 Lom0 doesn't generate interrupts for link change events


1.2.1
14 oct 2020
-----------
* Added support for B0 devices


1.1.27
16 sept 2020
------------
* Fixed MAC firmware hang while pc wakeup from suspend state
* Fixed unexpected wake when thunderbolt ethernet adapter is connected
* Fixed regression: ipv4 ping to nic proxy not functioning


1.1.24
22 july 2020
-------------
* Fixed configuration for GPIO
* Fixed calculation read bytes for smbus transaction of Lom
* Fixed interrupt line for Lom if rx packet available
* Fixed Lom interruption pin set to "asserted" after initializing


1.1.19
26 june 2020
-------------
* No changes


1.1.18
25 june 2020
-------------
* Fixed processing of mDNS resource records
Known issue:
* GPIO pin for reset function should be pulled up instead of pulled down


1.1.12
10 june 2020
-------------
Bug fixes:
* Fixed possible datapath stuck after hot-reset
* Fixed link negotiation issue caused after reset for AQC113C 7x7 devices
* Fixed chip stuck which may be caused by soft reset
* Fixed issue preventing chip reset when reset requested while loading ITI


1.1.5
6 may 2020
-----------
Bug fixes:
* Fixed issue that cause PCIe link drops
* Fixed issue when MAC calculated PHY hash before PHY is ready
Enhancements:
* FW provide packet to driver that woke up the system
New features:
* SNR data were added to driver interface


1.0.32
16 march 2020
-------------
Bug fixes:
* PHY reset stability improvements
* Fixed PHY FW stuck caused by fast reset
* Fixed ipv6 offload issue which may prevent receiving fragmented packets
* Fixed VPD corruption caused by multiple VPD read/write operations
Enhancements:
* Hot reset alarm support added
* MSM settings may be applied without link drop-off


1.0.25
14 february 2020
-------------
Bug fixes:
* FW no longer wake host after first link down/up immediately after hibernation
* Fixed SerDes initialization which cause disappearance from PCIe
* Fixed wake on link up
Changes:
* Disabled half-duplex by default for 10M, 100M, 1G speeds


1.0.22
31 january 2020
-------------
Enhancements:
* Disabled half duplex on 10M, 100M, 1G speeds by default
Changes:
* Disabled run-time power optimizations


1.0.19
24 january 2020
-------------
Enhancements:
* Added "coma" power mode
Bug fixes:
* Fixed disappearing from PCI after hibernating
* Fixed data at mDNS response for ipv4 "A" request
* Fixed missing response for mDNS PTR+TXT request
* Fixed chip licensing, which hadn't got settings from efuse high word


1.0.13
10 january 2020
-------------
Enhancements:
* Reduced minimal timeout for TCPKA from 60 to 1 sec
Bug fixes:
* Fixed link up in sleep proxy mode
* Fixed missed ipv6 probes after TCPKA timeout
* Fixed wake up caused by receiving TCPKA probe with wrong flags
* Fixed data at mDNS reply


1.0.11
30 december 2019
-------------
New features:
* Added chip licensing functionality
* Added thermal monitor interface
* Added cable diagnostics
Bug fixes:
* Fixed flow control configuration. Incoming pause frames cause traffic slow down as intended.
* Fixed forced reset of PHY FW caused by MAC FW
* Fixed incorrect data at probe packet which is generated by TCPKA offload
* Fixed invalid src ipv6 at mDNS reply
* VPD mailbox was removed from FW
* Fixed wake up counter
* Fixed resending probes by TCPKA after receiving correct ack on first probe


1.0.3
20 december 2019
-------------
Initial release

Die erste Aktualisierung durchführen

Als Voraussetzungen sollte:

  • Secure Boot im UEFI deaktiviert worden sein
  • Im Windows Defender alles ausgeschaltet sein (Auch „Treiber-Sperrliste“)
  • Andere Antivirensoftware ebenfalls deaktiviert sein

Um auf Version 1.5.38 zu kommen, einfach das oben verlinkte Archiv herunterladen, entpacken und die darin enthaltene „startprg.bat“ als Administrator ausführen. Nach Abschluss werden sich die aufgegangenen Kommandozeilenfenster von selbst schließen und man sollte den PC neu starten.

Mithilfe von „kickstart2.exe“ kann man vorher bzw. nachher herausfinden, welche Firmware momentan auf dem Controller läuft:

Version 1.5.38 wurde erfolgreich geflashed

Skriptanpassungen

Um danach auf Version 1.5.45 zu kommen müssen im von station-drivers.com bereitgestellten Skript Änderungen vorgenommen werden, da die eingetragenen IDs nicht passen:

Damit der modifizierte Updater bei diesem HP FlexIO v2 Modul funktioniert, müssen die vier ID-Blöcke derer des Moduls angepasst werden. Eigentlich eher nur zwei. Dazu im Bereich „Check if device matches required IDs“ innerhalb der Skriptdatei „flashUpdateScript.ps1“ das:

    # Configuration 1 and 2
    If (($ids[1] -eq "0x1D6A") -and ($ids[3] -eq "0x1043") -and ($ids[4] -eq "0x8890")) {
        If (($ids[2] -eq "0x04C0") -or ($ids[2] -eq "0x14C0")) {
            $deviceSupported = $true
        }
    }

durch das ersetzen:

    # Configuration 1 and 2
    If (($ids[1] -eq "0x1D6A") -and ($ids[3] -eq "0x103C") -and ($ids[4] -eq "0x88FB")) {
        If (($ids[2] -eq "0x04C0") -or ($ids[2] -eq "0x14C0")) {
            $deviceSupported = $true
        }
    }

Am Besten die IDs mit den Hardware IDs im Geräte-Manager gegenprüfen, diese müssen übereinstimmen. Im Anschluss das Skript abspeichern, schließen und die ebenfalls vorhandene „startprg.bat“ ausführen.

Das Update auf 1.5.45 durchführen

Als erstes kam bei mir der Hinweis, das der installierte Treiber (von Windows Update) zu alt sei. Nachdem dieser dann durch die Installation der neueren v3.1.11 von der Marvell Website auf dem neuesten Stand war ließ sich das Update problemlos durchführen:

Nach einem Neustart des PCs läuft alles wie es soll. Das war ein nervenaufreibender Prozess, wäre doch all das vorangegangenes Gebastel umsonst gewesen falls das Update schiefgegangen wäre. Nun ist der Controller bereit für die Zukunft unter Debian / Proxmox VE.


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert