Skip to contentSkip to conversation

Problem Ethernet Initialization MPC5200 + LXT971A

DISCUSSION Stefan Strobl 2 participants 3 messages Nov 5, 2010 – Nov 8, 2010

lore
Share & tools
lore
#0 lore raw

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.

#1 lore raw
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

#2 lore raw

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_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.