Subject: RE: asix, setting MAC broken in v3.2. Bisected to "NET: fix phy init for AX88772 USB ethernet".

From: "ASIX Allan Email [office]" <[email-masked]>
Date: Tue, 10 Jan 2012 09:53:32 +0800

Dear Jussi and Grant,

As I know, the manually changed MAC address function should be handled by the "asix_set_mac_address()" routine but not need to enable the promiscuous mode. If you enabled the driver promiscuous mode, the asix.c driver will receive all Ethernet packets without checking the DA field of the received packets. I suppose this should not be a good solution to solve this issue for normal operation cases. 

I will try to reproduce your issue in our site and look into why the "asix_set_mac_address()" routine doesn't work as expected? If I got any results, I will let you know ASAP. Thanks a lot.  

---
Best regards,
Allan Chou
Technical Support Division
ASIX Electronics Corporation
TEL: 886-3-5799500 ext.228
FAX: 886-3-5799558
E-mail: [email-masked] 
http://www.asix.com.tw/ 

-----Original Message-----
From: [email-masked] [mailto:[email-masked]] On Behalf Of Grant Grundler
Sent: Tuesday, January 10, 2012 9:38 AM
To: Jussi Kivilinna
Cc: [email-masked]; Freddy Xin; Olof Johansson; David S. Miller; David Hollis; Allan Chou
Subject: Re: asix, setting MAC broken in v3.2. Bisected to "NET: fix phy init for AX88772 USB ethernet".

On Mon, Jan 9, 2012 at 9:21 AM, Grant Grundler <[email-masked]> wrote:
...
>> Patch attached.
>
> I'll try the patch here to confirm. Thanks!

Jussi,
I can confirm you patch doesn't break my basic use case:
  Acked-By: Grant Grundler <[email-masked]>

localhost ~ # ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:00:00:00:08:b3
          inet addr:XX.XX.XX.1  Bcast:XX.XX.XX.255  Mask:255.255.252.0
...
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:500 errors:0 dropped:19 overruns:0 frame:0
          TX packets:320 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:110020 (107.4 KiB)  TX bytes:43569 (42.5 KiB)

localhost ~ # dmesg | fgrep eth0
[    2.049163] asix 1-4:1.0: eth0: register 'asix' at
usb-0000:00:1d.7-4, ASIX AX88772 USB 2.0 Ethernet, 00:00:00:00:08:b3
[    3.693169] ADDRCONF(NETDEV_UP): eth0: link is not ready
[    5.515078] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[    5.518469] asix 1-4:1.0: eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1
localhost ~ #

-----Original Message-----
From: [email-masked] [mailto:[email-masked]] On Behalf Of Grant Grundler
Sent: Tuesday, January 10, 2012 1:22 AM
To: Jussi Kivilinna
Cc: [email-masked]; Freddy Xin; Olof Johansson; David S. Miller; David Hollis; Allan Chou
Subject: Re: asix, setting MAC broken in v3.2. Bisected to "NET: fix phy init for AX88772 USB ethernet".

On Sun, Jan 8, 2012 at 7:18 AM, Jussi Kivilinna
<[email-masked]> wrote:
...
> It's Wii Ethernet adapter,
> Bus 001 Device 008: ID 0b95:7720 ASIX Electronics Corp. AX88772

...
> Both attached.

[lsusb/dmesg  output]  Thanks!

...
> I found out that setting MAC in ax88722_reset() solves the issue for me.
> Maybe changes to init/reset sequence causes hardware to be reseted after
> set_mac_address call and revert to default MAC?

That's exactly what I was thinking too over the weekend.

> Patch attached.

I'll try the patch here to confirm. Thanks!

cheers,
grant

-----Original Message-----
From: Jussi Kivilinna [mailto:[email-masked]] 
Sent: Monday, January 09, 2012 6:53 PM
To: allan
Cc: 'Grant Grundler'; [email-masked]; 'Freddy Xin'; 'Olof Johansson'; 'David S. Miller'; 'David Hollis'
Subject: RE: asix, setting MAC broken in v3.2. Bisected to "NET: fix phy init for AX88772 USB ethernet".

Hello,

Yes, that is exactly what I have for interface initialization. System  
is running Debian Squeeze, with following entry in  
/etc/network/interfaces:

  # wan1 is asix device
  auto wan1
  iface wan1 inet dhcp
          pre-up /etc/network/change-mac-addr-to.sh wan1 00:02:xx:xx:xx:xx

and change-mac-addr-to.sh is:

  #!/bin/sh

  # check if mac address already set
  if [ "$(ifconfig "$1" | grep HWaddr | grep "$2")" = "" ]; then
          # set new mac
          ifconfig "$1" down
          ifconfig "$1" hw ether "$2"
          ifconfig "$1" up

          echo Changed MAC-address for interface $1 to $2
  fi

  exit 0

This works with kernel v3.1, but not with v3.2. Not working means: 1.  
DHCP does not work on wan1/asix, does not receive answer from DHCP  
server. 2. PPPoE connection doesn't initialize over wan1/asix. (DHCP  
is for ISP private/local network and Internet connection is through  
PPPoE).

With v3.2 I found out that enabling promisc for wan1 interface  
(ifconfig wan1 promisc 1) allows DHCP and PPPoE to make connection and  
to work.

Also the patch attached in previous message (patch is for kernel v3.2)  
fixes the problem (for me).

-Jussi

Quoting allan <[email-masked]>:

> Dear Jussi,
>
> Please help to double check if the following information is helpful  
> to solve your issue or not? If no, please deliver us your test
asix.c
> driver file and detailed test procedures for further investigation.  
> Thanks a lot.
>
> ==============
> Actually, if you just want to manually set the MAC address of your  
> AX88772B/AX88772A/AX88178 devices for engineering testing, you can  
> refer to below procedures to temporary change the MAC address of
your
> AX88772B/AX88772A/AX88178 device on Linux platform through the  
> “ax8817x_set_mac_addr()” routine of AX88772B/AX88772A/AX88178
Linux
> driver source code.
>
> How to change MAC address in Linux
>
http://linuxhelp.blogspot.com/2005/09/how-to-change-mac-address-of-your.html
>
> # ifconfig eth0 down
> # ifconfig eth0 hw ether 00:80:48:BA:d1:30
> # ifconfig eth0 up
>
>
> ---
> Best regards,
> Allan Chou
> Technical Support Division
> ASIX Electronics Corporation
> TEL: 886-3-5799500 ext.228
> FAX: 886-3-5799558
> E-mail: [email-masked]
> http://www.asix.com.tw/
>
> -----Original Message-----
> From: Jussi Kivilinna [mailto:[email-masked]]
> Sent: Sunday, January 08, 2012 11:18 PM
> To: Grant Grundler
> Cc: [email-masked]; Freddy Xin; Olof Johansson; David S.  
> Miller; David Hollis; Allan Chou
> Subject: Re: asix, setting MAC broken in v3.2. Bisected to "NET: fix

> phy init for AX88772 USB ethernet".
>
> Quoting Grant Grundler <[email-masked]>:
>
>> On Fri, Jan 6, 2012 at 3:10 AM, Jussi Kivilinna
>> <[email-masked]> wrote:
>>> Hello,
>>>
>>> I have asix adapter plugged to mini-server
>>
>> Which Asix adapter do you have? (Vendor/model)
>
> It's Wii Ethernet adapter,
> Bus 001 Device 008: ID 0b95:7720 ASIX Electronics Corp. AX88772
>
>>
>> Can you please provide:
>> 1) dmesg output from asix driver
>> 2) lsusb output for the device
>
> Both attached.
>
>>> and have to change MAC address
>>> before DHCP because of ISP. This worked fine, until v3.2. Now I
have to set
>>> interface in promisc mode to have custom MAC working.
>>
>> Sorry - I didn't test this but I also would not expect this to
break
>> with the changes in 3.2.
>>
>> I'll see if Freddy or Allan (ASIX) need my help with this.
>
> I found out that setting MAC in ax88722_reset() solves the issue for
> me. Maybe changes to init/reset sequence causes hardware to be
reseted
> after set_mac_address call and revert to default MAC?
>
> Patch attached.
>
> -Jussi
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to [email-masked]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
>