Anyone using BOOTP with latest current (Book-E)?

Pyun YongHyeon pyunyh at gmail.com
Tue Mar 23 23:27:41 UTC 2010


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?


More information about the freebsd-ppc mailing list