|
From: Dave, T. N <tus...@in...> - 2013-04-10 17:47:19
|
>-----Original Message-----
>From: Nicolas Parpandet [mailto:np...@1g...]
>Sent: Wednesday, April 10, 2013 5:29 AM
>To: e10...@li...
>Subject: [E1000-devel] autoneg fiber e1000
>
>
>Hi,
>
>My kernel is 3.2 (same with 2.6.32) ,
>I have a Intel Corporation 82545EM Gigabit Ethernet Controller (fiber LX)
>
>I'm connected to Cogent with fiber, and I have to disable autoneg and set
>1000/Full duplex.
>
>But there is a problem with e100 0 driver :
>
>int e1000_set_spd_dplx(struct e1000_adapter *adapter, u32 spd, u8 dplx) {
>struct e1000_hw *hw = &adapter->hw;
>
>hw->autoneg = 0;
>
>/* Make sure dplx is at most 1 bit and lsb of speed is not set
>* for the switch() below to work */
>if ((spd & 1) || (dplx & ~1))
>goto err_inval;
>
>/* Fiber NICs only allow 1000 gbps Full duplex */ if ((hw->media_type ==
>e1000_media_type_fiber) && spd != SPEED_1000 && dplx != DUPLEX_FULL) goto
>err_inval;
>
>switch (spd + dplx) {
>case SPEED_10 + DUPLEX_HALF:
>hw->forced_speed_duplex = e1000_10_half;
>break;
>case SPEED_10 + DUPLEX_FULL:
>hw->forced_speed_duplex = e1000_10_full;
>break;
>case SPEED_100 + DUPLEX_HALF:
>hw->forced_speed_duplex = e1000_100_half;
>break;
>case SPEED_100 + DUPLEX_FULL:
>hw->forced_speed_duplex = e1000_100_full;
>break;
>case SPEED_1000 + DUPLEX_FULL:
>hw->autoneg = 1;
>hw->autoneg_advertised = ADVERTISE_1000_FULL;
>break;
>case SPEED_1000 + DUPLEX_HALF: /* not supported */
>
>
>As you can see autoneg is forced on, and my link doesn't come up because
>of this.
>The other side is a cisco with nonegociate .
>
>Setting speed and duplex, even with "advertise 0x020" doesn't work, I have
>to disable negociation.
Have you tried 'ethtool -A ethx autoneg off'
-Tushar
|