Problem Ethernet Initialization MPC5200 + LXT971A
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.
Quoted 11 lines · 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).
Quoted 5 lines
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?
Quoted 6 lines
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.
Quoted 6 lines
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.
Quoted 2 lines
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
Quoted 10 lines
Any ideas?
Many Thanks,
Stefan.
_______________________________________________
Linuxppc-dev mailing list
[email protected]
https://lists.ozlabs.org/listinfo/linuxppc-dev
Hi Tiejun
Quoted 9 lines · tiejun.chen
Quoted 2 lines · Stefan Strobl
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_initin 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.