Subject: Re: networking fails to activate - more info

From: Pieter <[email-masked]>
Date: Wed, 15 Oct 2008 17:03:15 +0200

>> Hi
>>
>> We have a powerpc (8548) based board. running eldk4.1. the board has
>> three ethernet ports using Gainfair ethernet controller v1.2.
>>
>> If the board powers up with any network cable plugged in, that specific
>> network is accessible.
>> if the board powers up without network cables connected and a cable is
>> plugged in, the network does not become active.
>> The kernal makes a log entry stating that the phy is up when the cable
>> is plugged in - but the interface is not pingable
>> Running ifdown and ifup manually does not result in a pingable interface.
>> Neither does running /etc/init.d/network restart
>>
>> can anyone help me pls.
>>     
>
>
> Check the statistics counters to see if you are getting any bad
> packets, or to see if you are getting interrupts.  Several people have
> reported that their PHYs have powerdown issues, though I wouldn't
> expect the PHY to report the link as up, then.  Make sure that your
> dts specifies the correct PHY address for the connected PHY.
>
> What happens if you start up with the PHY connected, bring up the
> interface, and *then* disconnect and reconnect the cable (after a
> delay)?
Hi

I have checked the counters in both ifconfig and with ethtool. both show
TX counts but no RX count and no errors
ethtool reports that the link is detected.
The phy addresses are correct (ethtool and kernel log shows the
exspected addresses)
I have found that the networking scripts are not called (ifup or down)
when a cable is pluged or unplugged. 
I also found that udev is not in my current linux platform - can this
contribute to the problem?

To rule out the phys. I powered on the system with all network cables
plugged in. ping all three to confirm that they work. i then issue a
reset signal (hardware routed) to the phys. when the phys reappear im
still able to ping all three interfaces.

The log file entries for unplugging and connecting the cable are :
(logged by /driver/phy/phy.c )
Oct 15 14:36:56 equus user.info kernel: PHY: 0:00 - Link is
Down                                                       
Oct 15 14:36:59 equus user.info kernel: PHY: 0:00 - Link is Up - 100/Full
what is the sequence of events that should follow?

Another test i tried, powered the system up with no cables plugged in
and  "ONBOOT=no" in ifcgf-eth sctipts. I then manually run the ifup
scripts one by one. then plug in the three network cables. when i ping
the three interfaces and ping targets on the three networks i find that
one interface is pingable, one is not and one returns "ping: sendto:
Network is unreachable"  - these results were reproducible about 25% of
attempts but varied according to order in with cables were plugged in.

I would appreciate any help.
thanks pieter