Re: Problem Ethernet Initialization MPC5200 + LXT971A

2010-11-08 Thread tiejun.chen
Stefan Strobl wrote:
 Hi
 
 I'm having a Problem with the Initialization of my Ethernet PHY
 (FEC_MPC5200 + LXT971A Phy). I'm using latest U-Boot and Linux 2.6.37
 from Denx.
 
 Once in Linux I can ping my own IP-Address but not any other device in
 my network. The Link LED is on when connected to the network but when
 pinging some other device nothing is being transmitted (Traffic LED is
 off).
 
 If - before booting - I'm using any network command under U-Boot (which
 is calling eth_init()), the interface works fine after that under Linux
 also!
 In that case the kernel prints the line:
  PHY: f003000:00 - Link is Up - 100/Full

Can you probe PHY successfully when failed?

 
 So I'm not sure whether the Linux driver does not initialize the PHY
 correctly or whether I should be running a command under Linux that
 makes the interface work. I've played around with ifconfig but that
 didn't get me any further.
 
 Under sysfs I can see that the MAC address is assigned correctly but:
 carrier = 0(should be 1)
 duplex = half(should be full)
 operstate = down
 speed = 10(should be 100)
 

Can you use 'ethtool' utility to access/control that? If no please check how you
access PHY by MII bus? I doubts some multiplex PIN should be configured when you
operate PHY.

 To workaround I could make u-boot run eth_init() always but that doesn't
 seem the right approach to this.

Yes. Often we shouldn't depend the bootloader do this when we use NIC. But its
worth tracking eth_init in detail to check what are missed for Linux. I guest
those should be dedicated to the hardware. For example, configuring
multiplex-pin, or reset PHY before the real operation action and so on.

Tiejun

 
 Any ideas?
 
 Many Thanks,
 Stefan.
 ___
 Linuxppc-dev mailing list
 Linuxppc-dev@lists.ozlabs.org
 https://lists.ozlabs.org/listinfo/linuxppc-dev
 

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: Problem Ethernet Initialization MPC5200 + LXT971A

2010-11-08 Thread Stefan Strobl
Hi Tiejun

tiejun.chen wrote:
 Stefan Strobl wrote:
 To workaround I could make u-boot run eth_init() always but that doesn't
 seem the right approach to this.
 
 Yes. Often we shouldn't depend the bootloader do this when we use NIC. But its
 worth tracking eth_init in detail to check what are missed for Linux. I guest
 those should be dedicated to the hardware. For example, configuring
 multiplex-pin, or reset PHY before the real operation action and so on.
 

You're right! It was a wrong Port Multiplex Configuration.

I think it's fair to expect the bootloader to do that bit of setup,
since it's very hardware dependent. All I did was to adapt my
CONFIG_SYS_GPS_PORT_CONFIG in u-boot.

Many thanks
Stefan.
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Problem Ethernet Initialization MPC5200 + LXT971A

2010-11-05 Thread Stefan Strobl

Hi

I'm having a Problem with the Initialization of my Ethernet PHY 
(FEC_MPC5200 + LXT971A Phy). I'm using latest U-Boot and Linux 2.6.37 
from Denx.


Once in Linux I can ping my own IP-Address but not any other device in 
my network. The Link LED is on when connected to the network but when 
pinging some other device nothing is being transmitted (Traffic LED is off).


If - before booting - I'm using any network command under U-Boot (which 
is calling eth_init()), the interface works fine after that under Linux 
also!

In that case the kernel prints the line:
 PHY: f003000:00 - Link is Up - 100/Full

So I'm not sure whether the Linux driver does not initialize the PHY 
correctly or whether I should be running a command under Linux that 
makes the interface work. I've played around with ifconfig but that 
didn't get me any further.


Under sysfs I can see that the MAC address is assigned correctly but:
carrier = 0 (should be 1)
duplex = half   (should be full)
operstate = down
speed = 10  (should be 100)

To workaround I could make u-boot run eth_init() always but that doesn't 
seem the right approach to this.


Any ideas?

Many Thanks,
Stefan.
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev