# Marvell FastLinQ Edge Network Adapter Windows Driver - aqnic
Oct 1, 2021

##v3.1.4.0
_Date 11.08.2021_
* Added CodeQl changes.
* Increase chip reset timeout to 2s
* Updated ASUS Device Description for model XG-C100C.(ATLDRV-1740)

##v3.1.3.0
_Date 05.07.2021_
* Merged the changes from dev-release-3.0.x.
* Added power management registry entry.
* Modify ASUS Device Description for model XG-C100C.(ATLDRV-1740).
* Patch for WOL Issue.
* Support for win11

## v3.1.2.0
_Date 02.06.2021_
* Fixed NDISTest failures introduced with 3.1.0.0 (ATLDRV-1700)
* Logging linkstate at every boot-up (ATLDRV-1715)
* 1c_OIDSwmi fails due to DASH status indication (ATLDRV-1706)
* Driver updated to support Antigua DeviceIDs (ATLDRV-1711, ATLDRV-1718)
* SleepOnDisconnect (D3D) Removed (ATLDRV-1721)
* Add HWID for Lenovo AQC113C (ATLDRV-1666)
* Add HWID for GigaByte-GC-AQC113C (ATLDRV-1667)
* Added TODO on minor issues seen after merge (ATLDRV-1727)
* Dirty wake with S3 and S4 (ATLDRV-1682)
* Added HWID for ASROCK-Z690 (ATLDRV-1732)

## v3.1.1.0
_Date 28.04.2021_
* Fixed NDISTest failures introduced in previous build (ATLDRV-1700)

## v3.1.0.0
_Date 22.04.2021_
* Added DASH support (integrated from 2.x branch)
* Added Service Mode support (from 2.x branch)
* Merged miscellaneous minor fixes and improvements from v2.x (see https://vgitcentral.marvell.com/c/SCBU/AQ/atl/aqnic/+/68063)

##v3.0.21.0
_Date 29.06.2021_
* Modify ASUS Device Description for model XG-C100C.(ATLDRV-1740)

##v3.0.20.0
_Date 09.06.2021_
* Driver updated to support Antigua DeviceIDs (ATLDRV-1711, ATLDRV-1718)
* SleepOnDisconnect (D3D) Removed (ATLDRV-1721)
* Logging linkstate at every boot-up (ATLDRV-1715)
* Add HWID for Lenovo AQC113C (ATLDRV-1666)
* Add HWID for GigaByte-GC-AQC113C (ATLDRV-1667)
* Dirty wake with S3 and S4 (ATLDRV-1682)
* Added HWID for ASROCK-Z690 (ATLDRV-1732)

## v3.0.19.0
_Date 22.01.2021_
* Removed unsupported RSS IPv6 extension header capability
* Removed unsupported half duplex speeds (ANT-279)
* Disable DeviceSleepOnDisconnect by default (ATLDRV-1617)
* Correct Hardware IDs for AQC113-based Asus NIC
* Enabled WakeFromPowerOff for AQC113

## v3.0.18.0
_Date 18.11.2020_
* Added Hardware IDs for AQC113-based Asus NIC (ATLDRV-1584)
* Windows 8/8.1: enable PM by default for AQC113 (HCK requirement)
* Fixed RSC offload configuration (HLK test failure)
* Added workaround for OffloadLSO test failure in HLK 19041 (ATLDRV-1583)

## v3.0.17.0
_Date 12.10.2020_
* Security checks for secure AQC113 parts (ATLDRV-1574)

## v3.0.16.0
_Date 31.08.2020_
* Support for Antigua B0 counters (ATLDRV-1281)
* Additional HWIDs for Antigua (ATLDRV-1508)
* Advertise 2.5G/5G NBase-T speeds along with 2.5/5G Base-T (ATLDRV-1539)
* Add logging of 10Mbps link speed to system log.
* Fix reporting DeviceSleepOnDisconnect capability on Atlantic
* Fix RSC & Hyper-V vSwitch problem (ATLDRV-1221)


## v3.0.15.0
_Date 09.06.2020_
* Low Power on Media Disconnect (ATLDRV-1476)
* Init-time instructions (as part of Low Power on Disconnect)
* Conformance to latest filtering spec: don't touch multicast filter (ATLDRV-1488)
* Enable EEE for Antigua (ATLDRV-1477)
* Fix TX stuck recovery logic (ATLDRV-1478)
* Fixes & improvements for RSS logic for AQC107/AQC113
* Fixes D0->D3 state transition: drain transmit before disable interrupts

## v3.0.14.0
_Date 05.05.2020_
* Filtering infrastructure (ATLDRV-1399)
* Dynamic interrupt resources allocation (ATLDRV-1349)
* Separate trace flag for firmware layer (ATLDRV-1464)
* Enable EEE at 1G link speed for AQC111/Bermuda (ATLDRV-1423)
* Improve RX checksum offload workaround for AQC107 (ATLDRV-1452)
* Fix security checks on AQC107
* Remove auto-generation of MAC address (ATLDRV-1467)
* Tidy up code (ATLDRV-1468)

## v3.0.13.0
_Date 27.03.2020_
* Wake Reason Indications (ATLDRV-1332)
* Provide firmware with the current MAC address (ATLDRV-1392)
* WMI interface (not compatible with 2.x driver) (ATLDRV-1314)
* Cable Diagnostics (ATLDRV-1388)
* Changes for NDISTest compatibility (ATLDRV-1347)
* Minor misc fixes and improvements

## v3.0.12.0
_Date 06.03.2020_
* Wake on ping behavior with ARP offload (ATLDRV-1313)
* Update reset sequence (ATLDRV-1199)
* Cleanup HAL (ATLDRV-1336)

## v3.0.11.0
_Date 18.02.2020_
* Fixes for NDISTest (ATLDRV-1347)
* Rework internal link parameters
* Update CI
* Update non-FF register to `0x1c`

## v3.0.10.0
_Date 05.02.2020_
* Set max frame length according to â€œJumbo Packetâ€ driver setting (ATLDRV-1308)
* Add thermal shutdown support (ATLDRV-1198)
* Add downshift support (ATLDRV-1197)
* Link interrupt support
* Rework internal adapter state transitions

## v3.0.9.0
_Date 17.01.2020_
* Fix setting of packet filters for all multicast
* Fix setting of PFC
* Use standardized INF keywords for speed & duplex (ATLDRV-1292)
* Introduce support for 10Mbps link speed (ANT-133)
* Introduce support for half duplex

## v3.0.8.0: Alpha driver v3.0.8.0 for Antigua/Atlantic
_Date 09.01.2020_
* Basic backward compatibility with Atlantic (ATLDRV-1200)
* Fixes for RSS multi-group
* Reworked interrupts logic
* Other minor fixes for Antigua

## v2.2.3.0
_Date 12.02.2021_
* Fix invalid statistics counter values (ATLDRV-1646)
* Fix Offload LSO test by correcting link indication size (ATLDRV-1657)
* Fix E2eperf test by correcting max link speed (ATLDRV-1656)

## v2.2.2.0
_Date 30.04.2020_
* DASH: Increase timeout for RPC operations (!123)
* Fix potential null pointer dereference

## v2.2.1.0
_Date 20.04.2020_
* Introduce Service Mode (!116)
* Fix crash in FW interrupt handler (ATLDRV-1453)
* Update device description string for Edimax (ATLDRV-1451)

## v2.2.0.0
_Date 07.04.2020_
* DMTF DASH support (along w/Firmware 4.x)
* Change branding in the INF files (ATLDRV-1280)
* Improve fix for incorrect checksum reported to OS for packets with non-zero padding (ATLDRV-1379)
* Fixes for certification on 20H1 (!112)
* Update component ID for MUP

## v2.1.21.0
_Date 07.02.2020_
* Fix incorrect checksum reported to OS for packets with non-zero padding (ATLDRV-1318)

## v2.1.20.0
_Date 10.01.2020_
* Don't use EEE for 1Gbit/s link speed (ATLDRV-1252)
* Enable EEE for specific HWID (ATLDRV-1275)
* Add HWIDs for HP Flatiron (ATLDRV-1279)

## v2.1.19.0
_Date 21.10.2019_
* Improved datapath performance (ATLDRV-840)
* Improved performance and stability in single interrupt mode (ATLDRV-697, ATLDRV-840)
* Fixed `MPE_Ethernet` test sporadic failures (ATLDRV-697)
* Fixed RSC operation on Hyper-V hosts (ATLDRV-1043)
* Added SNR data to Cable Diagnostics (ATLDRV-1047)
* Fixed FCS error packets handling (ATLDRV-1163)

## v2.1.18.0
_Date 23.05.2019_
* Backport bugfixes & improvements from XBOX branch (!74):
  * Incorrect wait conditions in reset sequence
  * Possible arithmetic overflow in `PerformanceCounter` code
  * Prevent crash when querying thermal information on higher IRQLs
* Fix RSC freeze _(stuck)_ situation (ATLDRV-806).
* Fix link event logging (ATLDRV-955).
* Fix applying RSC configuration to hardware (ATLDRV-733).
* Fix PNP timeout at NIC shutdown _(by crash dump from the MS Hardware Dashboard)_ (!77).
* Update default number of RSS queues (ATLDRV-596).
* Avoid indicating SCU _(single coalesced unit aka LRO session)_ with FSC/L4 checksum errors to the OS network stack. (ATLDRV-824).
* Fix incorrect flow control settings for Rx only case (ATLDRV-888).
* Workaround for the HW trait where L3 checksum can be verified incorrectly in some cases (ATLDRV-913). 

## v2.1.17.0
_Date 29.01.2019_
* Fix checksum offload works incorrectly with padding (ATLDRV-773).
* Ability to configure thermal shutdown via registry (ATLDRV-533, !59).
* Set valid file properties for property page (ATLDRV-740).
* Disable RSC by default for Gigabyte (ATLDRV-779).
* Implement PHY kickstart for flashless (ATLDRV-772). It is currently disabled by default.

## v2.1.16.0
_Date 10.12.2018_
* Fix random disconnects and data path stuck on AQC111 _(by forcibly disabling PTP block)_. (ATLDRV-737)

## v2.1.15.0
_Date 04.12.2018_
* Fix Device Manager lock up when changing link speed. (ATLDRV-706)
* Fix system crash when running cable diagnostics. (!54)
* Add a missing lock acquire. (related to ATLDRV-714) (!55)

## v2.1.14.0
_Date 16.11.2018_
* Work on one MSI message. (ATLDRV-634, ATLDRV-624)
* Fix for broken legacy interrupt handler. (ATLDRV-618)
* Fix for transmit path deadlock in some rare cases. (ATLDRV-714)

## v2.1.12.0
_Date 19.10.2018_
* Change device description string for QNAP. (ATLDRV-670)
* Modify _"Link Speed"_ setting for ASUS XG-C100F. (ATLDRV-678)
* Resolve warnings when compiling with warning level 4 (`/W4`) option. (ATLDRV-613)
* Fix for transmit path rundown during the test _"DF PnP Surprise Remove"_.
* Remove flash update functionality.

## v2.1.10.0
_Date 27.09.2018_
* Service name changed to match the driver name. (ATLDRV-590)
* Fix for receive path stuck under heavy load. (ATLDRV-628)
* Fix for statistics not reported correctly via WMI (`MSFT_NetAdapterStatisticsSettingData` class).
* Fix for flow control settings not configured correctly in some cases. (!41)
* Fix for "Wake from Power Off" feature works incorrectly if fastboot is enabled (ATLDRV-198).

## v2.1.009.0
_Date 03.08.2018_
* Fix for the PHY temperature reported via WMI is always zero. (ATLDRV-539)
* Fix for parameter in the INF-file related to the strict speed policy (Annar).

## v2.1.008.0
_Date 04.07.2018_
* Fix error handling on resource allocations

## v2.1.007.0
_Date 03.07.2018_
* Added Tx stuck Firmware interrupt handler that triggers Tx path reset sequence in both H/W and S/W.  
This is a workaround for Felicity 1G SGMII PAUSE problem. (!26)
* Strict speed policy - only chosen speed is advertised.
Policy can be changed through either INF-file or registry.
Loose speed policy left only for Annar. (!27)
* Perform NIC reset when PHY global fault is detected on Felicity. (!28)
* Take control over eFUSE before reading. (!29) (#3092)
* New Tx data path w/SGDMA. (!30)

## v2.1.006.0
_Date 26.05.2018_
* Reallocate stale NBLs instead of using work item after suspend resume
* Major code refactoring

## v2.1.005
_Date 17.04.2018_
* Fix for mailbox ready wait loop on B1 hardware (#2575)
* Fix for incorrect system log entry (security check failure) if a device surprisingly removed during a security check
* Fix for incorrect link speed being reported after cable unplug in PowerShell (#2666)
* Fix for reset sequence incompatibility with firmware 1.x with "dirty wake" feature
* Fixes related to power management and power state transitions (#2242)

## v2.1.004
_Date 15.02.2018_
* INF-file co-installer section fix.

## v2.1.003
_Date 14.02.2018_
* Reset sequence fix: safely reset the SPI interface.

## v2.1.002
_Date 09.02.2018_
* Settings from _"Power Management"_ tab take precedence over driver WoL settings from _"Advanced"_ tab.
* Power state transitions refactoring.
* Configuration of thermal shutdown (if supported by F/W). Temperature thresholds are: shutdown at 108C, warning at 100C, back to normal at 80C.
* Added messages in system event log if temperature raises above warning threshold and when returns back to normal after thermal warning.
* Added property page on Windows 7, 8, 8.1
* Reset SPI interface explicitly during RBL reset sequence (reset sequence fix)
* Trace improvements in case of RBL failure
* Embedded F/W image for host boot updated to **v2.9.71**
* Fix: BSOD if TB removed during sleep

## v2.1.001
_Date 25.12.2017_
* Use bit in uP control register for 'Reset Guard' istead scratchpad register `0x300`.
* Detect global H/W fault and report it in system event log. Unique event message for thermal shutdown fault.
* Fix: broken EEE in driver on 1.x F/W
    
## v2.1.000
_Date 22.12.2017_
* F/W 1.x support
* B0 HWIDs added to INF-file
* Firmware (flash) update support (F/W 1.x only)
* User-friendly messages in system event log
* New link-up behavior: allow all speeds that less or equal currently selected speed
* PHY log control (enable/disable) via WMI.
* Logging support PowerShell scripts (for collecting and separation). Logs are collected in binary format
* 'Reset Guard' for unexpected MAC reset detection (the MAC scratchpad register `0x300` is used)
* Use F/W 2.x/3.x link drop capability for shutting down link during driver unload or network stack state transitions
* Fix: MRRS (#2307)
* Fix: PM_PowerStateTransition test fails
* Other minor improvements 

## v2.0.026
_Date 16.11.2017_
* Update reset sequence

## v2.0.025
_Date 16.11.2017_
* Improve security checks: chip revision check.
* Fixed: reading F/W logs

## v2.0.024
_Date 14.11.2017_
* Raw F/W logs (via WMI)
* Host boot only for Annar ID
* Embedded F/W image for host boot updated to **v2.9.54**

## v2.0.023
_Date 03.11.2017_
* Minor INF-file changes for WHQL (LSOv1).

## v2.0.022
_Date 02.11.2017_
* Fix: remove a duplicate key from INF strings section

## v2.0.021
_Date 31.10.2017_
* Driver rename to `aqnic`.

## v2.0.020
_Date 27.10.2017_
* Fixed: driver fails to start on some secure HWIDs
* Trace improvements during driver initialization

## v2.0.019
_Date 25.10.2017_
* Fixed wake on pattern from shutdown
* Rollback reset sequence fix for Felicity (issue with reset #2110)

## v2.0.018
_Date 23.10.2017_
* Implemented security checks for secure chips (#2118)
* Improved reset sequence for Felicity
* Boot from host (flashless) is disabled

## v2.0.016
_Date 02.10.2017_
* F/W 3.x ready
* Fix: RX buffer allocation (#1852)
* Feature: downshift
* Feature: wake on ping
* Feature: DSP-based cable length (via WMI)
* Feature: thermal information: PHY and MAC temperature (via WMI)
* Separated INF-file for Apple
* INF-file refactoring

Following device IDs are supported _(based on Alexey A. mail)_:  
`Part name VID   DID   SVID  SSID  Lane width  Adapter name
AQC107    1D6A  07B1  106B  0187  4           TBD
AQC107    1D6A  07B1  1D6A  0001  4           Aquantia AQtion 10Gbit Network adapter
AQC108    1D6A  08B1  1D6A  0001  1           Aquantia AQtion 5Gbit Network adapter
AQC109    1D6A  09B1  1D6A  0001  1           Aquantia AQtion 2.5Gbit Network adapter
AQC111    1D6A  11B1  1D6A  0001  4           (?)	Aquantia AQtion 5Gbit Network adapter
AQC112    1D6A  12B1  1D6A  0001  4           (?)	Aquantia AQtion 2.5Gbit Network adapter
AQC100    1D6A  00B1  1D6A  0001  4           TBD
AQC100    1D6A  00B1  1D6A  0004  1           TBD
AQC107S   1D6A  87B1  1D6A  0001  4           Aquantia AQtion 10Gbit Network adapter
AQC108S   1D6A  88B1  1D6A  0001  1           Aquantia AQtion 5Gbit Network adapter
AQC109S   1D6A  89B1  1D6A  0001  1           Aquantia AQtion 2.5Gbit Network adapter
AQC111S   1D6A  91B1  1D6A  0001  4           (?)	Aquantia AQtion 5Gbit Network adapter
AQC112S   1D6A  92B1  1D6A  0001  4           (?)	Aquantia AQtion 2.5Gbit Network adapter
AQC100S   1D6A  80B1  1D6A  0001  4           TBD
AQC100S   1D6A  80B1  1D6A  0004  1           TBD`

### Useful PowerShell commands
* Firmware version  
`Get-WmiObject -Namespace root\wmi -Class Aq_FirmwareVersion`
* DSP-based cable length and thermal information.  
**Note:** cable length value `0xffffffff` means that DSP-based cable length feature is not supported.  
`Get-WmiObject -Namespace root\wmi -Class Aq_DiagnosticsData`

## v2.0.015
_Date 20.09.2017_
* Downgrade embedded F/W image to **v2.8.37** _(stable version)_

## v2.0.014
_Date 20.09.2017_
* Embedded F/W image for flashless updated to **v2.8.39**
* Read MAC address from ACPI
* Fixed double F/W reset during driver initialize
* Fixes for passing WHQL tests

## v2.0._[below 014]_
_Date ???_
* Major driver version was changed from 2 to 3 _(according to software design by Alexey A.)._
* Flashless support.
* WMI support: FW version and diagnostics information.
* Don't perform global software reset during `MiniportRestart`.
* Fixes for passing WHQL tests.