Skip to contentSkip to conversation

How to force the 1000M network interface work in 100M mode?(AMCC 440GX, board based on ocotea)

DISCUSSION Lonsn 2 participants 2 messages Feb 13, 2007

lore
Share & tools
lore

Lonsn

author
#0 lore raw

Hi, all:
We have design a new board based on AMCC ocotea board. The linux kernel version we use is 2.6.18 from kernel.org. The network interface is the same as ocotea(eth0 and eth1 work in SMII mode, eth2 and eth3 work in RGMII mode).The 1000Mbit ehernet physical transceiver chip is also CIS8201(VSC8201). These pins(ANEG_DIS,FRC_DPLX,MODE10,MODE100,MODE1000) of CIS8201 are set as 01111. Maybe because of the signal integrity problem of the gigabit clock&data,eth3 doesn't work in 1000M mode(eth2 is ok). If we connect eth3 with a host which has 100M ethernet, then eth3 works in 100M mode well. If we connect eth3 with a host which has 1000M ethernet interface,
then eth3 can recognize the link is 1000Mbit, but ping is not ok.
So we want to force the eth3 work in 100M mode even eth3 is connected with a 1000M host.(we think the hardware is ok when eth3 works in 100M mode).
We have used ethtool in the board and in the host to force the eth3 work in 100M mode, but failed. Maybe we can't change this setting in userspace? or we should changed the IBM_EMAC driver?
Any suggestions?

Thanks.

Lonsn
HDIC

#1 lore raw
Quoted 11 lines · Lonsn

Hi, all:
We have design a new board based on AMCC ocotea board. The linux kernel version we use is 2.6.18 from kernel.org. The network interface is the same as ocotea(eth0 and eth1 work in SMII mode, eth2 and eth3 work in RGMII mode).The 1000Mbit ehernet physical transceiver chip is also CIS8201(VSC8201). These pins(ANEG_DIS,FRC_DPLX,MODE10,MODE100,MODE1000) of CIS8201 are set as 01111.
Maybe because of the signal integrity problem of the gigabit clock&data,eth3 doesn't work in 1000M mode(eth2 is ok). If we connect eth3 with a host which has 100M ethernet, then eth3 works in 100M mode well. If we connect eth3 with a host which has 1000M ethernet interface,

Quoted 8 lines

then eth3 can recognize the link is 1000Mbit, but ping is not ok.
So we want to force the eth3 work in 100M mode even eth3 is connected with a 1000M host.(we think the hardware is ok when eth3 works in 100M mode).
We have used ethtool in the board and in the host to force the eth3 work in 100M mode, but failed. Maybe we can't change this setting in userspace? or we should changed the IBM_EMAC driver?
Any suggestions?

Use ethtool to limit advertised auto-negotiation mode or force 100 on _both_ ends of the link. Probably, when you forced 100, you did it only on 440GX side, that's why it failed. Personally, I prefer "forcing" link speed by tweaking advertised modes, this way you have to do this only on one side of the link.

Signature · 1 line
Eugene