Two problems I hope to solve:
1. The switch being used has autoneg off and has port set to 100 full duplex. 2. Many times NIC fails to come up properly during PXE boot: r8169: eth0: link down ADDRCONF(NETDEV_UP): eth0: link is not ready
I can't use ethtool to disable autoneg because the nic driver is built into a bzImage. The root fs is currently being mounted via nfs during pxeboot at speed 10, half-duplex. In the past for sk98lin driver I could pass a kernel module parameter sk98lin.ConType=100FD on the kernel boot line.
I looked at the r8169.c and tried to hard code the default to autoneg off but that didn't work.
--- linux-2.6.18-274.12.1.el5.i686/drivers/net/r8169.c +++ disable-autoneg/drivers/net/r8169.c @@ -2814,7 +2814,8 @@ * rtl8169_set_speed_xmii takes good care of the Fast Ethernet * only 8101. Don't panic. */ - rtl8169_set_speed(dev, AUTONEG_ENABLE, SPEED_1000, DUPLEX_FULL); + //rtl8169_set_speed(dev, AUTONEG_ENABLE, SPEED_1000, DUPLEX_FULL); + rtl8169_set_speed(dev, AUTONEG_DISABLE, SPEED_100, DUPLEX_FULL);
if ((RTL_R8(PHYstatus) & TBI_Enable) && netif_msg_link(tp)) printk(KERN_INFO PFX "%s: TBI auto-negotiating\n", dev->name);
Any other ideas?
-Scott