lkml.org 
[lkml]   [2008]   [Mar]   [7]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateFri, 7 Mar 2008 15:00:16 +0900
From"Jeongdo Son" <>
Subject[BUG REPORT] smc911x: Auto negotiation NOT supported
Hi,

I'm trying to port smc911x driver for a custom sh4 board,
and I have a problem with static IP adress allocation.
(It is OK for IP address allocation by DHCP.)
Here is brief information about the board.
CPU : SH7780 by Renesas
Ethernet : LAN9115 by SMSC
Kernel version : 2.6.24 from www.kernel.org
Distribution(Userland): BusyBox-1.2.0

The problem is that only the first ifup after cold boot succeed.
Here is the instruction how to reproduce the symptom.
(smc911x is recognized as eth0 on the board.)
1. boot up the board, and login.
2. ifup eth0  (after doing this, ping works)
3. ifdown eth0
4. ifup eth0 ("Auto negotiation NOT supported" printed, and ping doesn't works)
Please refer to the bottom of this mail.

FYI, in the smc911x.h, I modified some macros like the following.
   #define SMC_USE_SH_DMA    1
   #define SMC_USE_16BIT         0
   #define SMC_USE_32BIT         1

There's no change if I turn off SMC_USE_SH_DMA,
but if I turn on SMC_USE_16BIT instead of SMC_USE_32BIT,
the driver occurs OOPS.

I hope this is a known(fixed) issue.

Thanks in advance.
Jeongdo Son
-----------------------------------------
(none) login: root
login[743]: root login  on `ttySC0'
~ $ ifup eth0
eth0: link down
~ $ eth0: link up, 100Mbps, full-duplex, lpa 0x05E1

~ $ ifconfig
eth0      Link encap:Ethernet  HWaddr 00:60:CB:1B:02:25
         inet addr:192.168.40.35  Bcast:192.168.40.255  Mask:255.255.255.0
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:24 errors:0 dropped:0 overruns:0 frame:0
         TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000
         RX bytes:3272 (3.1 KiB)  TX bytes:0 (0.0 B)
         Interrupt:9 DMA chan:ff

~ $ ping 192.168.40.255
PING 192.168.40.255 (192.168.40.255): 56 data bytes
64 bytes from 192.168.40.1: icmp_seq=0 ttl=64 time=1.1 ms
64 bytes from 192.168.40.1: icmp_seq=1 ttl=64 time=0.3 ms
64 bytes from 192.168.40.1: icmp_seq=2 ttl=64 time=0.4 ms
64 bytes from 192.168.40.1: icmp_seq=3 ttl=64 time=0.3 ms

--- 192.168.40.255 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.3/0.5/1.1 ms
~ $ ifdown eth0
~ $ ifup eth0
Auto negotiation NOT supported
~ $ ifconfig
eth0      Link encap:Ethernet  HWaddr 00:60:CB:1B:02:25
         inet addr:192.168.40.35  Bcast:192.168.40.255  Mask:255.255.255.0
         UP BROADCAST MULTICAST  MTU:1500  Metric:1
         RX packets:65 errors:0 dropped:0 overruns:0 frame:0
         TX packets:13 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000
         RX bytes:7637 (7.4 KiB)  TX bytes:770 (770.0 B)
         Interrupt:9 DMA chan:ff
~ $ ping 192.168.40.255
PING 192.168.40.255 (192.168.40.255): 56 data bytes

--- 192.168.40.255 ping statistics ---
53 packets transmitted, 0 packets received, 100% packet loss
~ $ ethtool eth0
Settings for eth0:
       Supported ports: [ TP MII ]
       Supported link modes:   10baseT/Half 10baseT/Full
                               100baseT/Half 100baseT/Full
       Supports auto-negotiation: Yes
       Advertised link modes:  10baseT/Half 10baseT/Full
                               100baseT/Half 100baseT/Full
       Advertised auto-negotiation: Yes
       Speed: 100Mb/s
       Duplex: Full
       Port: MII
       PHYAD: 1
       Transceiver: internal
       Auto-negotiation: on
       Current message level: 0x00000004 (4)
       Link detected: no
~ $
-----------------------------------------

\
 
 \ /
  Last update: 2008-03-07 07:03    [from the cache]
©2003-2008