# Aquantia(R) AQtion Network Adapter Windows Driver - aqnic

## v2.2.1.0
_Date 20.04.2020_
* Introduce Service Mode
* Fix crash in FW interrupt handler
* Update device description string for Edimax

## v2.2.0.0
_Date 07.04.2020_
* DMTF DASH support (along w/Firmware 4.x)
* Change branding in the INF files 
* Improve fix for incorrect checksum reported to OS for packets with non-zero padding
* Fixes for certification on 20H1
* 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

## v2.1.20.0
_Date 10.01.2020_
* Don't use EEE for 1Gbit/s link speed 
* Enable EEE for specific HWID 
* Add HWIDs for HP

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

## v2.1.18.0
_Date 23.05.2019_
* Backport bugfixes & improvements from XBOX branch
  * 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
* Fix link event logging.
* Fix applying RSC configuration to hardware
* Fix PNP timeout at NIC shutdown _(by crash dump from the MS Hardware Dashboard)
* Update default number of RSS queues.
* Avoid indicating SCU _(single coalesced unit aka LRO session)_ with FSC/L4 checksum errors to the OS network stack.
* 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. 

## v2.1.17.0
_Date 29.01.2019_
* Fix checksum offload works incorrectly with padding.
* Ability to configure thermal shutdown via registry.
* Set valid file properties for property page.
* Disable RSC by default for Gigabyte.
* Implement PHY kickstart for flashless. 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).

## v2.1.15.0
_Date 04.12.2018_
* Fix Device Manager lock up when changing link speed.
* Fix system crash when running cable diagnostics.
* Add a missing lock acquire. 

## v2.1.14.0
_Date 16.11.2018_
* Work on one MSI message
* Fix for broken legacy interrupt handler.
* Fix for transmit path deadlock in some rare cases.

## v2.1.12.0
_Date 19.10.2018_
* Change device description string for QNAP.
* Modify _"Link Speed"_ setting for ASUS XG-C100F.
* Resolve warnings when compiling with warning level 4 (`/W4`) option.
* 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.
* Fix for receive path stuck under heavy load. 
* Fix for statistics not reported correctly via WMI (`MSFT_NetAdapterStatisticsSettingData` class).
* Fix for flow control settings not configured correctly in some cases.
* Fix for "Wake from Power Off" feature works incorrectly if fastboot is enabled.

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

## 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.
* 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.
* Perform NIC reset when PHY global fault is detected on Felicity.
* Take control over eFUSE before reading.
* New Tx data path w/SGDMA.

## 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.
* Fix for reset sequence incompatibility with firmware 1.x with "dirty wake" feature
* Fixes related to power management and power state transitions

## 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.
* 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 AQC100

## v2.0.018
_Date 23.10.2017_
* Implemented security checks for secure chips
* 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
* 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:  
`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**

## 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.
* Flashless support.
* WMI support: FW version and diagnostics information.
* Don't perform global software reset during `MiniportRestart`.
* Fixes for passing WHQL tests.
