On Thu, Jan 14, 2010 at 09:48:56PM +0100, Floris Bos wrote: > On Thursday 14 January 2010 09:11:44 pm Pyun YongHyeon wrote: > > On Thu, Jan 14, 2010 at 09:08:02PM +0100, Floris Bos wrote: > > > On Thursday 14 January 2010 06:56:03 pm Pyun YongHyeon wrote: > > > > On Thu, Jan 14, 2010 at 04:33:19AM +0100, Floris Bos wrote: > > > > > Hi, > > > > > > > > > > On Thursday 14 January 2010 03:54:52 am Pyun YongHyeon wrote: > > > > > > > == > > > > > > > bge0: <HP NC107i PCIe Gigabit Server Adapter, ASIC rev. > > > > > > > 0x5784100> mem 0xdf900000-0xdf90ffff irq 16 at device 0.0 on pci32 > > > > > > > == > > > > > > > > > > > > > > After boot, the network works for about 5 seconds, barely enough > > > > > > > time to get an IP by DHCP, and sent a ping or 2. > > > > > > > Then network connectivity goes down, and after some time there > > > > > > > is a "bge0: watchdog timeout -- resetting" message. > > > > > > > > > > > > > > Then network works again for 5 seconds, and goes down again. All > > > > > > > the time, repeatedly. > > > > > > > > > > > > > > The system works fine under Ubuntu. So I assume the hardware is > > > > > > > ok. > > > > > > > > > > > > > > > > > > > I'm not sure but it looks like you have a BCM5784 controller. What > > > > > > is > > > > > > the output of "devinfo -rv | grep phy"? > > > > > > > > > > == > > > > > ukphy0 pnpinfo oui=0x50ef model=0x3a rev=0x4 at phyno=1 > > > > > ukphy1 pnpinfo oui=0x50ef model=0x3a rev=0x4 at phyno=1 > > > > > == > > > > > > > > Support for the PHY was added in r202269. > > > > Please try again after applying the change. Or you can download > > > > sys/dev/mii/miidevs and sys/dev/mii/brgphy.c from HEAD and rebuild > > > > kernel. > > > > > > Fetched the latest source using CVS on another computer, and transferred > > > it to the system concerned by USB stick. > > > Rebuild the kernel, but the problem is still there. > > > > > Would you show me full dmesg output including "watchodg timeout" > > messages? > > === > Copyright (c) 1992-2010 The FreeBSD Project. > Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 > The Regents of the University of California. All rights reserved.
[...] > bge0: <HP NC107i PCIe Gigabit Server Adapter, ASIC rev. 0x5784100> mem > 0xdf900000-0xdf90ffff irq 16 at device 0.0 on pci32 > miibus0: <MII bus> on bge0 > brgphy0: <BCM5784 10/100/1000baseTX PHY> PHY 1 on miibus0 > brgphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, > 1000baseT-FDX, auto > bge0: Ethernet address: f4:ce:46:0f:2a:2c > bge0: [FILTER] > pcib4: <ACPI PCI-PCI bridge> irq 16 at device 28.5 on pci0 > pci34: <ACPI PCI bus> on pcib4 > bge1: <HP NC107i PCIe Gigabit Server Adapter, ASIC rev. 0x5784100> mem > 0xdfa00000-0xdfa0ffff irq 17 at device 0.0 on pci34 > miibus1: <MII bus> on bge1 > brgphy1: <BCM5784 10/100/1000baseTX PHY> PHY 1 on miibus1 > brgphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, > 1000baseT-FDX, auto > bge1: Ethernet address: f4:ce:46:0f:2a:2d > bge1: [FILTER] [...] Would you give attached patch try? I don't know whether it help or not though. I couldn't find any related information for possible clue of the issue in publicly available datasheet.
Index: sys/dev/bge/if_bgereg.h =================================================================== --- sys/dev/bge/if_bgereg.h (revision 202295) +++ sys/dev/bge/if_bgereg.h (working copy) @@ -2615,6 +2615,7 @@ #define BGE_FLAG_5755_PLUS 0x00010000 #define BGE_FLAG_40BIT_BUG 0x00020000 #define BGE_FLAG_4G_BNDRY_BUG 0x00040000 +#define BGE_FLAG_CLKREQ_BUG 0x00080000 #define BGE_FLAG_RX_ALIGNBUG 0x00100000 #define BGE_FLAG_NO_3LED 0x00200000 #define BGE_FLAG_ADC_BUG 0x00400000 Index: sys/dev/bge/if_bge.c =================================================================== --- sys/dev/bge/if_bge.c (revision 202295) +++ sys/dev/bge/if_bge.c (working copy) @@ -898,9 +898,22 @@ { struct bge_softc *sc; struct mii_data *mii; + uint16_t link; + sc = device_get_softc(dev); mii = device_get_softc(sc->bge_miibus); + if ((sc->bge_flags & BGE_FLAG_CLKREQ_BUG) != 0) { + link = pci_read_config(dev, + sc->bge_expcap + PCIR_EXPRESS_LINK_CTL, 2); + if (IFM_SUBTYPE(mii->mii_media_active) == IFM_10_T || + IFM_SUBTYPE(mii->mii_media_active) == IFM_100_TX) + link &= ~0x0100; + else + link |= 0x0100; + pci_write_config(dev, + sc->bge_expcap + PCIR_EXPRESS_LINK_CTL, link, 2); + } BGE_CLRBIT(sc, BGE_MAC_MODE, BGE_MACMODE_PORTMODE); if (IFM_SUBTYPE(mii->mii_media_active) == IFM_1000_T || IFM_SUBTYPE(mii->mii_media_active) == IFM_1000_SX) @@ -2520,6 +2533,7 @@ struct ifnet *ifp; struct bge_softc *sc; uint32_t hwcfg = 0, misccfg; + uint16_t link; u_char eaddr[ETHER_ADDR_LEN]; int error, msicount, reg, rid, trys; @@ -2672,6 +2686,18 @@ */ sc->bge_flags |= BGE_FLAG_PCIE; sc->bge_expcap = reg; + link = pci_read_config(dev, reg + PCIR_EXPRESS_LINK_CTL, 2); + /* Check for CLKREQ. */ + if (link & 0x0100) { +#if 1 + device_printf(sc->bge_dev, "CLKREQ set!\n"); +#endif + if (sc->bge_asicrev == BGE_ASICREV_BCM5761 || + sc->bge_asicrev == BGE_ASICREV_BCM5784 || + sc->bge_chipid == BGE_CHIPID_BCM57780_A0 || + sc->bge_chipid == BGE_CHIPID_BCM57780_A1) + sc->bge_flags |= BGE_FLAG_CLKREQ_BUG; + } bge_set_max_readrq(sc); } else { /*
_______________________________________________ freebsd-net@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"