\r
#define DEV_SIGNATURE SIGNATURE_32 ('A','X','8','8') ///< Signature of data structures in memory\r
\r
-#define VENDOR_ID 0x0B95 ///< Vendor ID for Asix\r
-#define PRODUCT_ID 0x772B ///< Product ID for the AX88772 USB 10/100 Ethernet controller\r
-\r
#define RESET_MSEC 1000 ///< Reset duration\r
#define PHY_RESET_MSEC 500 ///< PHY reset duration\r
\r
#define AN_10_HDX 0x0020 ///< 1 = 10BASE-T support\r
#define AN_CSMA_CD 0x0001 ///< 1 = IEEE 802.3 CSMA/CD support\r
\r
-\r
+// asix_flags defines\r
+#define FLAG_NONE 0\r
+#define FLAG_TYPE_AX88172 BIT0\r
+#define FLAG_TYPE_AX88772 BIT1\r
+#define FLAG_TYPE_AX88772B BIT2\r
+#define FLAG_EEPROM_MAC BIT3 // initial mac address in eeprom\r
\r
//------------------------------------------------------------------------------\r
// Data Types\r
//------------------------------------------------------------------------------\r
\r
+typedef struct {\r
+ UINT16 VendorId;\r
+ UINT16 ProductId;\r
+ INT32 Flags;\r
+}ASIX_DONGLE;\r
+\r
/**\r
Ethernet header layout\r
\r
\r
#include "Ax88772.h"\r
\r
+ASIX_DONGLE ASIX_DONGLES[] = {\r
+ { 0x05AC, 0x1402, FLAG_TYPE_AX88772 }, // Apple USB Ethernet Adapter\r
+ // ASIX 88772B\r
+ { 0x0B95, 0x772B, FLAG_TYPE_AX88772B | FLAG_EEPROM_MAC },\r
+ { 0x0000, 0x0000, FLAG_NONE } // END - Do not remove\r
+};\r
+\r
/**\r
Verify the controller type\r
\r
EFI_USB_DEVICE_DESCRIPTOR Device;\r
EFI_USB_IO_PROTOCOL * pUsbIo;\r
EFI_STATUS Status;\r
+ UINT32 Index;\r
+\r
//\r
// Connect to the USB stack\r
//\r
else {\r
//\r
// Validate the adapter\r
- // \r
- if ( VENDOR_ID == Device.IdVendor ) {\r
-\r
- if (PRODUCT_ID == Device.IdProduct) {\r
- DEBUG ((EFI_D_INFO, "Found the AX88772B\r\n"));\r
+ //\r
+ for (Index = 0; ASIX_DONGLES[Index].VendorId != 0; Index++) {\r
+ if (ASIX_DONGLES[Index].VendorId == Device.IdVendor &&\r
+ ASIX_DONGLES[Index].ProductId == Device.IdProduct) {\r
+ DEBUG ((EFI_D_INFO, "Found the AX88772B\r\n"));\r
+ break;\r
}\r
- else {\r
- Status = EFI_UNSUPPORTED;\r
- }\r
}\r
- else {\r
- Status = EFI_UNSUPPORTED;\r
- } \r
+\r
+ if (ASIX_DONGLES[Index].VendorId == 0)\r
+ Status = EFI_UNSUPPORTED;\r
}\r
\r
//\r