summaryrefslogtreecommitdiff
path: root/OptionRomPkg/Bus
diff options
context:
space:
mode:
Diffstat (limited to 'OptionRomPkg/Bus')
-rw-r--r--OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772b/Ax88772.h17
-rw-r--r--OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772b/DriverBinding.c33
2 files changed, 34 insertions, 16 deletions
diff --git a/OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772b/Ax88772.h b/OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772b/Ax88772.h
index 420a6a7e2..e2df6deac 100644
--- a/OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772b/Ax88772.h
+++ b/OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772b/Ax88772.h
@@ -142,8 +142,8 @@
#define DEV_SIGNATURE SIGNATURE_32 ('A','X','8','8') ///< Signature of data structures in memory
-#define VENDOR_ID 0x05AC ///< Vendor ID for Asix
-#define PRODUCT_ID 0x1402 ///< Product ID for the AX88772 USB 10/100 Ethernet controller
+#define VENDOR_ID 0x0B95 ///< Vendor ID for Asix
+#define PRODUCT_ID 0x772B ///< Product ID for the AX88772 USB 10/100 Ethernet controller
#define RESET_MSEC 1000 ///< Reset duration
#define PHY_RESET_MSEC 500 ///< PHY reset duration
@@ -298,12 +298,23 @@
#define AN_10_HDX 0x0020 ///< 1 = 10BASE-T support
#define AN_CSMA_CD 0x0001 ///< 1 = IEEE 802.3 CSMA/CD support
-
+/* asix_flags defines */
+#define FLAG_NONE 0
+#define FLAG_TYPE_AX88172 (1U << 0)
+#define FLAG_TYPE_AX88772 (1U << 1)
+#define FLAG_TYPE_AX88772B (1U << 2)
+#define FLAG_EEPROM_MAC (1U << 3) /* initial mac address in eeprom */
//------------------------------------------------------------------------------
// Data Types
//------------------------------------------------------------------------------
+struct ASIX_DONGLE {
+ UINT16 VendorId;
+ UINT16 ProductId;
+ INT32 Flags;
+};
+
/**
Ethernet header layout
diff --git a/OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772b/DriverBinding.c b/OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772b/DriverBinding.c
index 3b7304047..90366cf4f 100644
--- a/OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772b/DriverBinding.c
+++ b/OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772b/DriverBinding.c
@@ -14,6 +14,13 @@
#include "Ax88772.h"
+struct ASIX_DONGLE ASIX_DONGLES[] = {
+ { 0x05AC, 0x1402, FLAG_TYPE_AX88772 }, /* Apple USB Ethernet Adapter */
+ /* ASIX 88772B */
+ { 0x0B95, 0x772B, FLAG_TYPE_AX88772B | FLAG_EEPROM_MAC },
+ { 0x0000, 0x0000, FLAG_NONE } /* END - Do not remove */
+};
+
/**
Verify the controller type
@@ -36,6 +43,8 @@ DriverSupported (
EFI_USB_DEVICE_DESCRIPTOR Device;
EFI_USB_IO_PROTOCOL * pUsbIo;
EFI_STATUS Status;
+ UINT32 i;
+
//
// Connect to the USB stack
//
@@ -60,19 +69,17 @@ DriverSupported (
else {
//
// Validate the adapter
- //
- if ( VENDOR_ID == Device.IdVendor ) {
-
- if (PRODUCT_ID == Device.IdProduct) {
- DEBUG ((EFI_D_INFO, "Found the AX88772B\r\n"));
- }
- else {
- Status = EFI_UNSUPPORTED;
- }
- }
- else {
- Status = EFI_UNSUPPORTED;
- }
+ //
+ for (i = 0; ASIX_DONGLES[i].VendorId != 0; i++) {
+ if (ASIX_DONGLES[i].VendorId == Device.IdVendor &&
+ ASIX_DONGLES[i].ProductId == Device.IdProduct) {
+ DEBUG ((EFI_D_INFO, "Found the AX88772B\r\n"));
+ break;
+ }
+ }
+
+ if (ASIX_DONGLES[i].VendorId == 0)
+ Status = EFI_UNSUPPORTED;
}
//