On 18 February 2016 at 22:11, Shivamurthy Shastri <
[email protected]> wrote:

> Adding Ruiyu Ni
>
> --
>
> Thanks and Regards,
>
> Shivamurthy Shastri,
>
> M: +919742508553, IRC: shivamurthy,
> *Linaro.org* |Open Source Software for ARM SOCs
>
>
> On 18 February 2016 at 16:50, Shivamurthy Shastri <
> [email protected]> wrote:
>
>> Hi All,
>>
>> Please let me know your opinion about this patch.
>>
>> --
>>
>> Thanks and Regards,
>>
>> Shivamurthy Shastri,
>>
>> M: +919742508553, IRC: shiva_murthy,
>> *Linaro.org* |Open Source Software for ARM SOCs
>>
>>
>> ---------- Forwarded message ----------
>> From: Shivamurthy Shastri <[email protected]>
>> Date: 10 February 2016 at 19:40
>> Subject: [edk2] [PATCH] Ax88772b: support for multiple dongles and chips
>> To: [email protected]
>> Cc: [email protected], Shivamurthy Shastri <
>> [email protected]>
>>
>>
>> Driver code is modified to support multiple ethernet dongles, which uses
>> similar ASIX chips. Also, it can be used for multiple ASIX chips with
>> similar register map.
>>
>> Enabled support for Apple Ethernet Adapter
>>
>> Contributed-under: TianoCore Contribution Agreement 1.0
>> Signed-off-by: Shivamurthy Shastri <[email protected]>
>> ---
>>  .../Bus/Usb/UsbNetworking/Ax88772b/Ax88772.h       | 13 ++++++++-
>>  .../Bus/Usb/UsbNetworking/Ax88772b/DriverBinding.c | 33
>> +++++++++++++---------
>>  2 files changed, 32 insertions(+), 14 deletions(-)
>>
>> diff --git a/OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772b/Ax88772.h
>> b/OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772b/Ax88772.h
>> index ab75ec2..816f2b2 100644
>> --- a/OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772b/Ax88772.h
>> +++ b/OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772b/Ax88772.h
>> @@ -297,12 +297,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 3b73040..6a10cbf 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;
>>      }
>>
>>      //
>> --
>> 1.9.1
>>
>>
>>
> ​Hi Ruiyu Ni,

Please look into the patch.

Thanks,
Shiva​
​
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to