From owner-freebsd-stable@FreeBSD.ORG Fri Mar 28 06:53:52 2008 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 765B11065670 for ; Fri, 28 Mar 2008 06:53:52 +0000 (UTC) (envelope-from pyunyh@gmail.com) Received: from fg-out-1718.google.com (fg-out-1718.google.com [72.14.220.156]) by mx1.freebsd.org (Postfix) with ESMTP id E7E1B8FC1C for ; Fri, 28 Mar 2008 06:53:51 +0000 (UTC) (envelope-from pyunyh@gmail.com) Received: by fg-out-1718.google.com with SMTP id 16so101052fgg.35 for ; Thu, 27 Mar 2008 23:53:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:received:received:date:from:to:cc:subject:message-id:reply-to:references:mime-version:content-type:content-disposition:in-reply-to:user-agent; bh=Js0mhPLsNh+pGvIV8oEQmc5+b32EFrSM5aUB/UdMhfE=; b=jviW3YeeLzxY5VNPejloXeLewU0fkZ/0HmeVfX70UTZc3orcTssUw4mTJQIr5IXyLtMe5Um5gBBT9A1d5iZJK9V9LL5qCn9Ryu567q7uve82HWFZaCOJ3BMstJsZv029E1m6hdAaHCZuEfuc4mGn082432F/MKw1w070R0YWS90= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=date:from:to:cc:subject:message-id:reply-to:references:mime-version:content-type:content-disposition:in-reply-to:user-agent; b=ah4ZDQ0Y+lTJpvuJJ86zWsShoVQt9GRFepkHw0n+E546KzDzY5kBqwy1y6eMb7Jb/tNJMrHekH+ClLDGVRWw6SK3/OIzRUVsELvfidiZ7x2A4amVMyIiKJgEtWd7Kd3D59wx/az2qX+wArYOEd/ZZvYfDXRoMJkyJpQTeMJPIJI= Received: by 10.86.89.4 with SMTP id m4mr1552522fgb.12.1206687230969; Thu, 27 Mar 2008 23:53:50 -0700 (PDT) Received: from michelle.cdnetworks.co.kr ( [211.53.35.84]) by mx.google.com with ESMTPS id 3sm1705542fge.7.2008.03.27.23.53.47 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 27 Mar 2008 23:53:49 -0700 (PDT) Received: from michelle.cdnetworks.co.kr (localhost.cdnetworks.co.kr [127.0.0.1]) by michelle.cdnetworks.co.kr (8.13.5/8.13.5) with ESMTP id m2S6rhCc099521 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 28 Mar 2008 15:53:43 +0900 (KST) (envelope-from pyunyh@gmail.com) Received: (from yongari@localhost) by michelle.cdnetworks.co.kr (8.13.5/8.13.5/Submit) id m2S6rgMZ099520; Fri, 28 Mar 2008 15:53:42 +0900 (KST) (envelope-from pyunyh@gmail.com) Date: Fri, 28 Mar 2008 15:53:42 +0900 From: Pyun YongHyeon To: Danny Braniss Message-ID: <20080328065342.GG98450@cdnetworks.co.kr> References: <20080327114712.GB95274@cdnetworks.co.kr> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="OXfL5xGRrasGEqWY" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.1i Cc: freebsd-stable@freebsd.org Subject: Re: Marvell Technology Group Ltd. Yukon EC Ultra X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: pyunyh@gmail.com List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Mar 2008 06:53:52 -0000 --OXfL5xGRrasGEqWY Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Thu, Mar 27, 2008 at 01:52:41PM +0200, Danny Braniss wrote: > > On Thu, Mar 27, 2008 at 01:32:46PM +0200, Danny Braniss wrote: > > > > On Thu, Mar 27, 2008 at 12:57:31PM +0200, Danny Braniss wrote: > > > > > Hi, > > > > > Under load, the msk has problems, with hw.msk.legacy_intr=1 and 0. > > > > > with = 1, i get > > > > > TCP segementation error > > > > > watchdog timeout > > > > > with = 0, > > > > > Tx MAC parity error > > > > > watchdog timeout > > > > > > > > > > > > > Would you show me verbosed boot messages related with msk(4)/e1000phy(4)? > > > > > > > mskc0: port 0xc800-0xc8ff mem > > > 0xfeafc000-0xfeafffff irq 17 at device 0.0 on pci1 > > > mskc0: Reserved 0x4000 bytes for rid 0x10 type 3 at 0xfeafc000 > > > mskc0: MSI count : 1 > > > mskc0: attempting to allocate 1 MSI vectors (1 supported) > > > msi: routing MSI IRQ 256 to vector 52 > > > mskc0: using IRQ 256 for MSI > > > mskc0: RAM buffer size : 128KB ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Hmm, I don't think EC Ultra have that much of RAM buffer. > > > mskc0: Port 0 : Rx Queue 85KB(0x00000000:0x000153ff) > > > mskc0: Port 0 : Tx Queue 43KB(0x00015400:0x0001ffff) > > > msk0: on mskc0 > > > msk0: bpf attached > > > msk0: Ethernet address: 00:1e:8c:6d:5c:fe > > > miibus0: on msk0 > > > e1000phy0: PHY 0 on miibus0 > > > e1000phy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseTX-FDX, > > > auto > > > mskc0: [MPSAFE] > > > mskc0: [FILTER] > > > > > > is this enough? > > > > Yes, it seems that 88E8056/88E1149 PHY has several issues. I recall > > that there had been several reports for this issue. Since nfe(4) > > with 88E1149 also have some stability issues, e1000phy(4) has lack > > of required code for 88E1149 PHY. Up to date, I couldn't find a > > clue, sorry. I'll let you know if I have a code to give it spin. > > great and thanks, > Please try attached patch and let me know how it goes. -- Regards, Pyun YongHyeon --OXfL5xGRrasGEqWY Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="msk.ec-ultra.patch8" --- sys/dev/msk/if_msk.c.orig 2008-03-27 13:43:51.000000000 +0900 +++ sys/dev/msk/if_msk.c 2008-03-28 15:17:44.000000000 +0900 @@ -1041,14 +1041,15 @@ { int next; int i; - uint8_t val; /* Get adapter SRAM size. */ - val = CSR_READ_1(sc, B2_E_0); - sc->msk_ramsize = (val == 0) ? 128 : val * 4; + sc->msk_ramsize = CSR_READ_1(sc, B2_E_0) * 4; if (bootverbose) device_printf(sc->msk_dev, "RAM buffer size : %dKB\n", sc->msk_ramsize); + + if (sc->msk_ramsize == 0) + return (0); /* * Give receiver 2/3 of memory and round down to the multiple * of 1024. Tx/Rx RAM buffer size of Yukon II shoud be multiple @@ -1116,8 +1117,6 @@ } else if (sc->msk_hw_id == CHIP_ID_YUKON_EC_U) { uint32_t our; - CSR_WRITE_2(sc, B0_CTST, Y2_HW_WOL_ON); - /* Enable all clocks. */ pci_write_config(sc->msk_dev, PCI_OUR_REG_3, 0, 4); our = pci_read_config(sc->msk_dev, PCI_OUR_REG_4, 4); @@ -1125,8 +1124,14 @@ PCI_ASPM_INT_FIFO_EMPTY|PCI_ASPM_CLKRUN_REQUEST); /* Set all bits to 0 except bits 15..12. */ pci_write_config(sc->msk_dev, PCI_OUR_REG_4, our, 4); - /* Set to default value. */ - pci_write_config(sc->msk_dev, PCI_OUR_REG_5, 0, 4); + /* Clear all bits to 0 except bits 28 & 27. */ + our = pci_read_config(sc->msk_dev, PCI_OUR_REG_5, 4); + our &= ~(3 << 27); + pci_write_config(sc->msk_dev, PCI_OUR_REG_5, our, 4); + /* Workaround for status LE race. */ + val = CSR_READ_4(sc, B2_GP_IO); + val |= 1 << 13; + CSR_WRITE_4(sc, B2_GP_IO, val); } /* Release PHY from PowerDown/COMA mode. */ pci_write_config(sc->msk_dev, PCI_OUR_REG_1, val, 4); @@ -3677,21 +3682,28 @@ /* Configure hardware VLAN tag insertion/stripping. */ msk_setvlan(sc_if, ifp); - if (sc->msk_hw_id == CHIP_ID_YUKON_EC_U) { - /* Set Rx Pause threshould. */ + if (sc->msk_ramsize == 0) { + /* Set Rx Pause threshold. */ CSR_WRITE_1(sc, MR_ADDR(sc_if->msk_port, RX_GMF_LP_THR), MSK_ECU_LLPP); CSR_WRITE_1(sc, MR_ADDR(sc_if->msk_port, RX_GMF_UP_THR), MSK_ECU_ULPP); if (sc_if->msk_framesize > MSK_MAX_FRAMELEN) { - /* - * Set Tx GMAC FIFO Almost Empty Threshold. - */ - CSR_WRITE_4(sc, MR_ADDR(sc_if->msk_port, TX_GMF_AE_THR), - MSK_ECU_JUMBO_WM << 16 | MSK_ECU_AE_THR); - /* Disable Store & Forward mode for Tx. */ - CSR_WRITE_4(sc, MR_ADDR(sc_if->msk_port, TX_GMF_CTRL_T), - TX_JUMBO_ENA | TX_STFW_DIS); + if (sc->msk_hw_id == CHIP_ID_YUKON_EC_U) { + /* + * Set Tx GMAC FIFO Almost Empty Threshold. + */ + CSR_WRITE_4(sc, + MR_ADDR(sc_if->msk_port,TX_GMF_AE_THR), + MSK_ECU_JUMBO_WM << 16 | MSK_ECU_AE_THR); + /* Disable Store & Forward mode for Tx. */ + CSR_WRITE_4(sc, + MR_ADDR(sc_if->msk_port, TX_GMF_CTRL_T), + TX_JUMBO_ENA | TX_STFW_DIS); + } else + CSR_WRITE_4(sc, + MR_ADDR(sc_if->msk_port, TX_GMF_CTRL_T), + TX_JUMBO_ENA | TX_STFW_ENA); } else { /* Enable Store & Forward mode for Tx. */ CSR_WRITE_4(sc, MR_ADDR(sc_if->msk_port, TX_GMF_CTRL_T), @@ -3790,6 +3802,8 @@ int ltpp, utpp; sc = sc_if->msk_softc; + if (sc->msk_ramsize == 0) + return; /* Setup Rx Queue. */ CSR_WRITE_1(sc, RB_ADDR(sc_if->msk_rxq, RB_CTRL), RB_RST_CLR); --OXfL5xGRrasGEqWY--