Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 11 Feb 2007 18:56:55 +0100
From:      "Slawek Zak" <slawek.zak@gmail.com>
To:        freebsd-net@freebsd.org, freebsd-current@freebsd.org
Subject:   Re: Forcing 1000FD for bce
Message-ID:  <787bbe1c0702110956j5c247638v711b45d87040b48b@mail.gmail.com>
In-Reply-To: <787bbe1c0701310827o9b84b33q1322007bf68f4f8a@mail.gmail.com>
References:  <787bbe1c0701310827o9b84b33q1322007bf68f4f8a@mail.gmail.com>

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

[-- Attachment #1 --]
On 1/31/07, Slawek Zak <slawek.zak@gmail.com> wrote:
> I have a question for someone familiar with this driver. I must
> enforce Gb/Full-duplex before the end of boot. I have IBM BladeCenter
> chassis which internally uses Nortel 2-3 switches which in turn do not
> allow for autonegotiation of internal interfaces.
>
> I want to run a diskless configuration so changing the bits with
> ifconfig is not an option. Tweaking settings in PXE boot agent doesn't
> help - the link preference is not preserved after kernel starts
> booting.

I've implemented a half-baked solution just to make the darn thing
work. Assuming you have gentbi PHY (check the dmesg), the following
patch removes auto negotiation and half-duplex handling for SX
interface, thus leaving 1000FD only. Tested on IBM LS21 blades. Enjoy.

/S
-- 
Sławek Żak / UNIX Systems Administrator

[-- Attachment #2 --]
*** sys/dev/mii/gentbi.c.orig   Fri Jan 26 18:06:02 2007
--- sys/dev/mii/gentbi.c        Sun Feb 11 18:51:29 2007
***************
*** 193,201 ****
         * in "auto".
         */
        sc->mii_capabilities =
!           PHY_READ(sc, MII_BMSR) & ma->mii_capmask & ~BMSR_MEDIAMASK;
        if (sc->mii_capabilities & BMSR_EXTSTAT)
!               sc->mii_extcapabilities = PHY_READ(sc, MII_EXTSR);

        device_printf(dev, " ");
        mii_phy_add_media(sc);
--- 193,201 ----
         * in "auto".
         */
        sc->mii_capabilities =
!           PHY_READ(sc, MII_BMSR) & ma->mii_capmask & ~BMSR_MEDIAMASK & ~BMSR_ANEG;
        if (sc->mii_capabilities & BMSR_EXTSTAT)
!               sc->mii_extcapabilities = EXTSR_1000XFDX;

        device_printf(dev, " ");
        mii_phy_add_media(sc);


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