From patchwork Tue Oct 6 14:08:35 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Gmeiner X-Patchwork-Id: 1377459 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=ZnBD+G9h; dkim-atps=neutral Received: from phobos.denx.de (unknown [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4C5K8C1ch7z9sTm for ; Wed, 7 Oct 2020 01:08:57 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id CFC2A823E1; Tue, 6 Oct 2020 16:08:44 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="ZnBD+G9h"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 79982823E2; Tue, 6 Oct 2020 16:08:43 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-wr1-x442.google.com (mail-wr1-x442.google.com [IPv6:2a00:1450:4864:20::442]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id CFB1D823E0 for ; Tue, 6 Oct 2020 16:08:40 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=christian.gmeiner@gmail.com Received: by mail-wr1-x442.google.com with SMTP id e18so7730210wrw.9 for ; Tue, 06 Oct 2020 07:08:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=Gl4dqeg98fgRqhcXT4pyRGsdUyfnnK1H7LMn+zomAZQ=; b=ZnBD+G9h13cDjL2nppUIDC7A0cG+q0ZGBS3Ur3nzCVvGwRsbdJops6lEWGUhzWuO5R P0YTTvcTFFTHhpkqcPu6MvHtqmfUgq3OEAuWayHO1dQL14UmwgQ8H1RsPBC+ULF3VVPV iZ70o3APW2jTeqlz6UZlDhJgrBo+z/xmB74iosc2j53/2rvOQnkynUU9uObOvCK5CVHs udGT43/3SE8KntTkSaJ5dOP2MD6y8bj6RZ8HsOlCLzRfmvVRF4vKW1T//ohHRUDWt54b SH6Gp/+fyLtocYF7KGmrcSxgdYbEVkUPUMp8QOYT0oXn3eJMgzKc51lTLcvs2DYAhvgS DviQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=Gl4dqeg98fgRqhcXT4pyRGsdUyfnnK1H7LMn+zomAZQ=; b=ODrg0S00dX3tdz+VXgRUgLitnHWIyHt83XLeleHy25tSIZXLgUaziN3BfW+j92unG5 gCrPe5dN6z7wvG3B13cVkCOnFy1NgtbxxToI8y9EWyVPhcw1IO7oxr17vBNLDTe1PCrB dVM+f1K2mnB0K6IBnB28eQ+DjhARGTE3daVcKkvGbD/tEsmZjNrz4mASieKl5wcVygd+ uddbORucw76fRuGx3hLQtu4j6YlUzRrhg1j8IR5A2d8VyMOavrXAY6SxvIkWYljtGEy0 RxL5vTBHOjv3Jmpnp/3r4HRdE6vIyeKXE9tYv+g006D19I5a91Ra+OMlm9SQIotppkL9 jpYQ== X-Gm-Message-State: AOAM533N3Qe7QM3VZ0SG/a0F+/iejThFFnty74DjUDx67wEU6uYTmKVo EO8iNBr8Ph27vVW3kcdfgrgCjfu6w+mrvw== X-Google-Smtp-Source: ABdhPJwc8+Ow69cI24UCHPDaMDZ0gnfR6nUT245Oarul3eP2LuvitlCnOI3trVqCIqj3zECRLjaRSw== X-Received: by 2002:adf:f747:: with SMTP id z7mr5271547wrp.168.1601993320100; Tue, 06 Oct 2020 07:08:40 -0700 (PDT) Received: from chgm-pc-linux.bachmann.at ([185.67.228.2]) by smtp.gmail.com with ESMTPSA id h1sm4576062wrx.33.2020.10.06.07.08.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Oct 2020 07:08:39 -0700 (PDT) From: Christian Gmeiner To: u-boot@lists.denx.de Cc: joe.hershberger@ni.com, trini@konsulko.com, Christian Gmeiner Subject: [PATCH v2] net: e1000: add defaults for i210 TX/RX PBSIZE Date: Tue, 6 Oct 2020 16:08:35 +0200 Message-Id: <20201006140835.53964-1-christian.gmeiner@gmail.com> X-Mailer: git-send-email 2.28.0 MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de X-Virus-Status: Clean Set the defaults on probe for the packet buffer size registers for the i210. The TX/RX PBSIZE register of the i210 resets to its default value only at power-on - see Intel Ethernet Controller I210 Datasheet rev 3.5 chapter 8.3 'Internal Packet Buffer Size Registers'. If something (another driver, another OS, etc.) modifies this register from its default value, the e1000 driver doesn't function correctly. It detects a hang of the transmitter and continuously resets the adapter. Here we set this value to its default when resetting the i210 to resolve this issue. Signed-off-by: Christian Gmeiner --- v1 -> v2: fix compiler errors https://travis-ci.org/github/austriancoder/u-boot/builds/732232965 --- drivers/net/e1000.c | 5 +++++ drivers/net/e1000.h | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c index 49be766702..8e6c755f64 100644 --- a/drivers/net/e1000.c +++ b/drivers/net/e1000.c @@ -1644,6 +1644,11 @@ e1000_reset_hw(struct e1000_hw *hw) E1000_WRITE_REG(hw, TCTL, E1000_TCTL_PSP); E1000_WRITE_FLUSH(hw); + if (hw->mac_type == e1000_igb) { + E1000_WRITE_REG(hw, RXPBS, I210_RXPBSIZE_DEFAULT); + E1000_WRITE_REG(hw, TXPBS, I210_TXPBSIZE_DEFAULT); + } + /* The tbi_compatibility_on Flag must be cleared when Rctl is cleared. */ hw->tbi_compatibility_on = false; diff --git a/drivers/net/e1000.h b/drivers/net/e1000.h index 19ed4777d9..072851ba31 100644 --- a/drivers/net/e1000.h +++ b/drivers/net/e1000.h @@ -735,6 +735,7 @@ struct e1000_ffvt_entry { #define E1000_ERT 0x02008 /* Early Rx Threshold - RW */ #define E1000_FCRTL 0x02160 /* Flow Control Receive Threshold Low - RW */ #define E1000_FCRTH 0x02168 /* Flow Control Receive Threshold High - RW */ +#define E1000_RXPBS 0x02404 /* Rx Packet Buffer Size - RW */ #define E1000_RDBAL 0x02800 /* RX Descriptor Base Address Low - RW */ #define E1000_RDBAH 0x02804 /* RX Descriptor Base Address High - RW */ #define E1000_RDLEN 0x02808 /* RX Descriptor Length - RW */ @@ -745,6 +746,7 @@ struct e1000_ffvt_entry { #define E1000_RADV 0x0282C /* RX Interrupt Absolute Delay Timer - RW */ #define E1000_RSRPD 0x02C00 /* RX Small Packet Detect - RW */ #define E1000_TXDMAC 0x03000 /* TX DMA Control - RW */ +#define E1000_TXPBS 0x03404 /* Tx Packet Buffer Size - RW */ #define E1000_TDFH 0x03410 /* TX Data FIFO Head - RW */ #define E1000_TDFT 0x03418 /* TX Data FIFO Tail - RW */ #define E1000_TDFHS 0x03420 /* TX Data FIFO Head Saved - RW */ @@ -2589,4 +2591,8 @@ struct e1000_hw { #define E1000_CTRL_EXT_INT_TIMER_CLR 0x20000000 /* Clear Interrupt timers after IMS clear */ + +#define I210_RXPBSIZE_DEFAULT 0x000000A2 /* RXPBSIZE default */ +#define I210_TXPBSIZE_DEFAULT 0x04000014 /* TXPBSIZE default */ + #endif /* _E1000_HW_H_ */