====== Aquantia NIC Notes ====== ===== Controllers ===== * [[https://www.marvell.com/content/dam/marvell/en/public-collateral/ethernet-adaptersandcontrollers/marvell-ethernet-controllers-aqtion-aqc100-product-brief.pdf|AQtion AQC100(S)]]: 10G MAC with PCIe Gen3, typically used with SFP+ NICs * [[https://www.marvell.com/content/dam/marvell/en/public-collateral/ethernet-adaptersandcontrollers/marvell-ethernet-controllers-aqc107-108-product-brief.pdf|AQtion AQC107/AQC108]]: Multi-gig MAC + Ethernet PHY with PCIe Gen3, for RJ45 Ethernet NICs * AQC107: 10G * AQC108: 5G * [[https://www.marvell.com/content/dam/marvell/en/public-collateral/ethernet-adaptersandcontrollers/marvell-fastLinq-edge-aqc113-aqc113c-aqc113cs-aqc114cs-aqc115c-aqc116c-product-brief.pdf|AQtion AQC113/AQC114/AQC114CS/AQC115C]]: Multi-gig MAC + Ethernet PHY with PCIe Gen4, for RJ45 Ethernet NICs * AQC113: 10G * AQC114/AQC114CS: 5G; AQC114CS might be the same as the AQC114, except with a smaller package * AQC115C: 2.5G ===== Products ===== ==== SFP+ ==== * PCIe cards * [[https://www.trendnet.com/products/10g-sfp-pcie-adapter/10-gigabit-pcie-sfp-network-adapter-TEG-10GECSFP-v3|TEG-10GECSFP (Version v3.0R)]] (**recommended**) - AQC100. Note that earlier versions use a discontinued Tehuti Networks chip * Thunderbolt * [[https://www.qnap.com/en/product/qna-t310g1s|QNAP QNA-T310G1S]] (**recommended**) - AQC100, JHL6240 PCIe Gen3 x2 TB3 controller. Compact size, fanless * [[https://www.sonnettech.com/product/solo10g-sfp-tb3/overview.html|Sonnet Solo10G SFP+]] - AQC100, JHL6340 PCIe Gen3 x4 TB3 controller. Fanless, has (easily replaceable) captive cable, quite a bit of wasted internal space. Extra two lanes on TB3 controller not useful, and controller has 0.5W higher TDP than the JHL6240. Works fine. ==== 10GBase-T RJ45 ==== * PCIe cards * Thunderbolt * [[https://www.sonnettech.com/product/solo10g-tb3/overview.html|Sonnet Solo10G]] (**recommended**) - AQC107, JHL6340 PCIe Gen3 x4 TB3 controller. Fanless, has (easily replaceable) captive cable. Slightly shorter than Solo10G SFP+ (see above). * [[https://www.qnap.com/en-as/product/qna-t310g1t|QNAP QNA-T310G1T]] - AQC107, JHL6240 PCIe Gen3 x2 TB3 controller. **Has an internal fan**. Compact size; form factor similar to QNA-T310G1S (see above). ==== 5GBase-T RJ45 ==== * PCIe cards ==== 2.5GBase-T RJ45 ==== Why not just use something like an Intel i225? ===== Utilities ===== * {{.:atlflashupdate-1.8.0_aqc107-fw-3.1.109.tgz|atlflashupdate (Linux)}}(( from [[https://pmeerw.net/blog/configuration/aqc107.html|Flashing a 10 GBit NIC: Aquantia AQC107]] )) * Extract and copy the ''atlflashupdate'' binary to the Windows firmware package and execute there * [[https://web.archive.org/web/20240601145620/https://dl.dell.com/FOLDER05356685M/5/AQN_FW_3.1.56_ZPE.exe|aqcdiag]](( from [[https://www.dell.com/support/home/en-sg/drivers/driversdetails?driverid=wj8f8]] )) - self-tests, flash backup/restore, device info, etc * It's a bit old, so the Python 2.7 build in the Linux version links old libraries and references old kernel header files. * On Ubuntu 22.04, using ''DIAG_2.10_Ubuntu_x86_64.zip'', stringpatching ''lib/_ctypes.x86_64-linux-gnu.so'' to use ''libffi.so.7'' instead of ''libffi.so.6'', and ''lib/readline.x86_64-linux-gnu.so'' to use ''libreadline.so.8'' instead of ''libreadline.so.6'' seems to work fine. * Alternatively, you can rebuild Python 2.7 with ''--with-shared'', and substitute the existing Python libraries (''libpython2.7.so.1.0'', and ''lib/'') with the newly-built ones. * Replace ''#include '' with ''#include '' in ''diag_driver_linux/diag_driver.c'' for newer kernel versions too. * Or you can use [[https://web.archive.org/web/https://znx.cc/aqcdiag_2.10_linux_py2718.txz|this patched archive]]((from [[https://znx.cc/aqcdiag_2.10_linux_py2718.txz]], SHA256 ''48e76196c295557b85333b352785f075c49c4a826a6b5db41766d93c6bf0e21a'')): build the kernel driver in ''driver/diag_driver_linux'' with ''make'', then run ''./DIAG -s'' (to automatically unload/load kernel modules) in ''diag/''. * To backup/restore flash: use menu item ''3) Flash'' -> ''3) Save Flash Contents To File'' (read) or ''2) Update Flash Image'' (write). * ''./DIAG -s --password \!h:ahT8uW6'' also exposes secret menus that let you read/write registers, update PCIe device ID/subsystem IDs, change MAC addresses, wipe your flash (!), etc ===== Firmware ===== * AQC100/AQC10x/AQC11x: [[https://www.marvell.com/support/downloads.html|Marvell Drivers]] -> Marvell Public Drivers -> Windows -> AQC107