RFC: ASIX USB drivers

Samer El-Haj-Mahmoud

EDK2 community,

(and CCing OptionRomPkg maintainers),

ASIX (https://www.asix.com.tw/) has graciously contributed the source code of their latest USB NIC drivers to be up-streamed to TianoCore.

The original contribution (ZIP files) is available here: https://github.com/samerhaj/uefi_drivers/tree/master/UsbNetworking/Asix

I cleaned up the code a bit, and prepared it under this branch on my edk2-platform fork: https://github.com/samerhaj/edk2-platforms/tree/ASIX_USB_Networking

You will find the following new folders under /Drivers/OptionRomPkg/Bus/Usb/UsbNetworking :

- UEFI driver version 2.9.0 for Ax88179 and Ax88178a
- Source provided by ASIX as: https://github.com/samerhaj/uefi_drivers/blob/master/UsbNetworking/Asix/zip/source/AX88179_178a_UEFI_v2.9.0_Source.zip
- Source corresponds to the binary driver available at: https://www.asix.com.tw/products.php?op=pItemdetail&PItemID=131;71;112

- UEFI driver version 2.8.0 for Ax88772c / Ax88772b / Ax88772a
- Source provided by ASIX as: https://github.com/samerhaj/uefi_drivers/blob/master/UsbNetworking/Asix/zip/source/AX88772C_772B_772A_UEFI_v2.8.0_Source.zip
- Source corresponds to the binary driver available at: https://www.asix.com.tw/download.php?sub=driverdetail&PItemID=136

The new Ax88772c driver can effectively replace the existing driver in edk2-platforms/Drivers/OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772b. I compared the code of the new driver with the hisoty of changes to the existing Ax88772b driver (tracing the history back to when OptionRomPkg was under edk2). As far as I can tell, all changes are accounted for in Ax88772c, except the following commits from edk2/OptionRomPkg:

Revision: 45e675f2d0eeda0511b5d6e0ed54f62f94c3826f
OptionRomPkg: Ax88772b: Fixing compilation

Revision: 9a1c4beca0463066660635c2494bb8cf66d4c4bd
OptionRomPkg: Ax88772b: support for multiple dongles and chips

Revision: 4986bbaf1151d1cccc1f2589bd13a86b539676b2
Ax88772: Add logic to separate packet, fix MTU issue. Ax88772b: Fix driver model unload function, fix SCT test failures.

Can folks please take a look at my branch and comment on anything else that might be missing, and on the readiness of this code to get upstreamed to edk2-platform ? I also appreciate any testing on this code, since I only have an AX88772A with IDs ids:

Vendor0x0B95 - ASIX Electronics Corp.
bcdDevice0x0001 - Device# = 00.01
iManufacturer0x01 - ASIX Elec. Corp.
iProduct0x02 - AX88772A


IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.