Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 23 Mar 2010 16:03:51 -0700
From:      Pyun YongHyeon <pyunyh@gmail.com>
To:        Marcel Moolenaar <xcllnt@mac.com>
Cc:        powerpc@freebsd.org, embedded@freebsd.org, nwhitehorn@freebsd.org
Subject:   Re: Anyone using BOOTP with latest current (Book-E)?
Message-ID:  <20100323230351.GI1278@michelle.cdnetworks.com>
In-Reply-To: <E210061E-5EE8-42C9-9B20-9788AB6F836B@mac.com>
References:  <B7BAFA66-33DF-4EAB-835D-50BEEF7919D0@mac.com> <4BA8CF0E.50201@freebsd.org> <20100323.094126.787670930724128348.imp@bsdimp.com> <E210061E-5EE8-42C9-9B20-9788AB6F836B@mac.com>

index | next in thread | previous in thread | raw e-mail

On Tue, Mar 23, 2010 at 12:23:18PM -0700, Marcel Moolenaar wrote:
> 
> On Mar 23, 2010, at 8:41 AM, M. Warner Losh wrote:
> > : > 192.168.4.1:/net/powerpc Adjusted interface tsec0
> > : > krpc_call: sosend: 65
> > : > krpc_call: sosend: 65
> > : > panic: nfs_boot: mountd root, error=65
> > : > KDB: enter: panic
> > : > [ thread pid 0 tid 100000 ]
> > : > Stopped at      kdb_enter+0x60: addi    r0, r0, 0x0
> > : > db> bt
> > : > Tracing pid 0 tid 100000 td 0xc0450360
> > : > 0xc2008ae0: at panic+0x13c
> > : > 0xc2008b40: at bootpc_init+0x1910
> > : > 0xc2008c20: at mi_startup+0x11c
> > : > 0xc2008c50: at __start+0x140
> > : >
> > : > BTW: error 65 is EHOSTUNREACH, which I think is caused by a link flag.
> > : >   
> > : This might be a tsec(4) issue, maybe from the recent link-state
> > : reporting changes? I netbooted some Book-S machines over bm(4) and
> > : gem(4) without incident yesterday, so the issue is probably
> > : hardware-specific.
> > 
> > You might try the following hack in route.h:
> > 
> > Index: route.h
> > ===================================================================
> > --- route.h	(revision 205300)
> > +++ route.h	(working copy)
> > @@ -319,8 +319,7 @@
> > 
> > #ifdef _KERNEL
> > 
> > -#define RT_LINK_IS_UP(ifp)	(!((ifp)->if_capabilities & IFCAP_LINKSTATE) \
> > -				 || (ifp)->if_link_state == LINK_STATE_UP)
> > +#define RT_LINK_IS_UP(ifp)	(1)
> > 
> > #define	RT_LOCK_INIT(_rt) \
> > 	mtx_init(&(_rt)->rt_mtx, "rtentry", NULL, MTX_DEF | MTX_DUPOK)
> > 
> 
> Thanks Warner.
> 
> I looked at whether we restart autoneg if the PHY is in autoneg already because
> I've seen at Juniper how that can contribute to excessive link flaps and even
> excessive autoneg completion times (>40 seconds) depending on the switch and
> did this:
> 
> Index: dev/mii/ciphy.c
> ===================================================================
> --- dev/mii/ciphy.c	(revision 205451)
> +++ dev/mii/ciphy.c	(working copy)
> @@ -176,13 +176,11 @@
>  
>  		switch (IFM_SUBTYPE(ife->ifm_media)) {
>  		case IFM_AUTO:
> -#ifdef foo
>  			/*
>  			 * If we're already in auto mode, just return.
>  			 */
>  			if (PHY_READ(sc, CIPHY_MII_BMCR) & CIPHY_BMCR_AUTOEN)
>  				return (0);
> -#endif
>  			(void) mii_phy_auto(sc);
>  			break;
>  		case IFM_1000_T:
> 
> 
> Apparently the author already considered the same and it does resolve the issue.
> Anyone see any concerns with my applying this patch?
> 

I'm not sure but I guess the #ifdef foo block could be completely
nuked. The auto-negotiation timeout is set to 17 seconds for
gigabit link and ciphy(4) will reprogram BMCR if auto-negotiation
was not resolved after that timeout.
I think it's not common to take more than 40 seconds to establish
link. Have you ever tried enabling NEXT PAGE bit of ANAR?


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100323230351.GI1278>