From nobody Sat Aug 29 02:31:31 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4hWzll4gHrz6q4x6 for ; Sat, 29 Aug 2026 02:31:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (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 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "YR2" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hWzll3ySNz3sZm for ; Sat, 29 Aug 2026 02:31:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1787970691; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eyy0/oll6XlMZRpNgG95h7SDZB/BN1Dofe8XDMjv5e8=; b=eAhQC302Pud1xXvQathH7kupaIoODNoBO+zsz++EOn6FEuX7XLhi4pFenHABBulYlGvvIM FKEsHBnCFNNH7dzzYKEBiAhM602Sd0r3+lVwRrhoNGUdm7jzAWoFkw8tIDzqcI0WuI7+CJ VYqydPA0Juu4xCAr00oCqTUFCO4k5qNWvyjHla79KzyuK/EO2YyBFmiv4R1yJuvm013xX3 YoQPMFwXojY9s7Mz1OxXugi6oJxQgLx0u971M3gvfrTwdb4+3Jg0I7b1Quxa4z8a/KgLvv ffJhhhQ/XZAsQ57aMm6Pdvh6DCJqonzxd4BbsYP7Wyk8zx2G1O2xSoTVe2IVkQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1787970691; a=rsa-sha256; cv=none; b=SCDSx+5sU48xBolYrp2lcZkLblVHYmbLMemv1vy5p8v4CSZ4PNSqytH/jjON1LZHA5riQu HlpXFy/DqHj6E8UusCPtPuEzGQF/bYohW/PBrheDk+A/MtwE1z/mrYaYaLpvuzPdacXeke VGeZ8GFvIh/DNqOdH1Z34FAOnbfgIhZkzzHovMx1fMVwg3zp/6pdN1m7LiN1YCZmDWw0IG n3Hszi3ZS77i5k7bSprQyU4lqcZEkhmuBfuGLmDAcpSL2Fw+0yxKr2tgCb6qMUD5TmZPXq SlfiqxQES8iObxyZuUSg6do7p++w3U54FEGj9TeJddY8IGU96GoNrHWr+JmIzw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1787970691; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eyy0/oll6XlMZRpNgG95h7SDZB/BN1Dofe8XDMjv5e8=; b=P2EBp9tMDHh1OP1b3rr7lBIayiOKmrGIPIwNtiqyxgSy+1oozJGul9x6OVlWhxfud8aduE KxZxSL8VG/ek7yQyaIiO2JjN8g0CS1kzwveEucr/SLjobcTRfhjVP48GRINQHvPnHhXh6x jHwebt4kT0x7WPsS5zQ21TPrUhPTl0o2lNrlLMcWxPELYuatkEVf8Ws+W+FvRhQYdhe/5C /sKk1Jo/w5tLfOYXyRrZ+R92NsjoWjJSYCqvAJ5XozfltZGa+oHhZidRw6un3XK39r+GqH IL6Mm0huX9gnKRHXPRM+J67PaTWhoEgDu5S25vi6wkpv4gbM7uF2ze5aPQZq9Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hWzll2l9tz6NK for ; Sat, 29 Aug 2026 02:31:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3a9b6 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 29 Aug 2026 02:31:31 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kevin Bowling Subject: git: 2f095faebb19 - main - e1000: Report corrected LAN management FIFO ECC errors List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2f095faebb195735879d9caad164ce807d85ddf7 Auto-Submitted: auto-generated Date: Sat, 29 Aug 2026 02:31:31 +0000 Message-Id: <6a924483.3a9b6.537502f3@gitrepo.freebsd.org> The branch main has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=2f095faebb195735879d9caad164ce807d85ddf7 commit 2f095faebb195735879d9caad164ce807d85ddf7 Author: Kevin Bowling AuthorDate: 2026-08-28 12:58:37 +0000 Commit: Kevin Bowling CommitDate: 2026-08-29 02:31:22 +0000 e1000: Report corrected LAN management FIFO ECC errors I350 and I354 report a corrected ECC error in the LAN transmit management FIFO through LANPERRSTS bit 16. Unlike the parity status in the same register, this condition neither interrupts nor stops traffic. Poll the latch with the other corrected error status, increment a dedicated counter, and clear only its RW1C bit. Expose it as dev.igb.N.memory_errors.corrected_lan_mng_fifo. Fatal error handling returns before the periodic statistics sweep and may reset the device. Drain all I350 and I354 corrected-error status in the admin task before recovery so the reset does not discard pending indications. This follows section 6.21.16 of the Intel Atom Processor C2000 Product Family Integrated GbE Controller Programmer's Reference Manual, document 537426 revision 1.5. MFC after: 2 weeks Sponsored by: BBOX.io --- sys/dev/e1000/e1000_defines.h | 1 + sys/dev/e1000/if_em.c | 14 +++++++++++++- sys/dev/e1000/if_em.h | 1 + 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/sys/dev/e1000/e1000_defines.h b/sys/dev/e1000/e1000_defines.h index 21f54e15b9a7..18b311138032 100644 --- a/sys/dev/e1000/e1000_defines.h +++ b/sys/dev/e1000/e1000_defines.h @@ -591,6 +591,7 @@ #define E1000_PBECCSTS_I350_I354_CORR_MASK 0x14000000 #define E1000_LANPERRSTS_RETX_BUF 0x00000200 +#define E1000_LANPERRSTS_MNG_FIFO_CORR 0x00010000 #define E1000_LANPERRSTS_I350_I354_NO_RESET_MASK 0x00008400 #define E1000_LANPERRSTS_I350_I354_RESET_MASK 0x00007BFE #define E1000_LANPERRSTS_I350_I354_FATAL_MASK 0x0000FFFE diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c index de1b513f1040..649f57762919 100644 --- a/sys/dev/e1000/if_em.c +++ b/sys/dev/e1000/if_em.c @@ -2614,6 +2614,12 @@ em_update_i350_i354_ecc_stats(struct e1000_softc *sc) sc->corrected_error_dma_count += bitcount32(status); E1000_WRITE_REG(hw, E1000_DDECCS, status); } + status = E1000_READ_REG(hw, E1000_LANPERRSTS) & + E1000_LANPERRSTS_MNG_FIFO_CORR; + if (status != 0) { + sc->corrected_error_lan_mng_fifo_count++; + E1000_WRITE_REG(hw, E1000_LANPERRSTS, status); + } pbeccsts = E1000_READ_REG(hw, E1000_RPBECCSTS); status = pbeccsts & E1000_PBECCSTS_I350_I354_CORR_MASK; @@ -2799,7 +2805,8 @@ em_handle_fatal_error_admin(struct e1000_softc *sc) E1000_READ_REG(&sc->hw, E1000_RPBECCSTS), E1000_READ_REG(&sc->hw, E1000_TPBECCSTS), pcieecc); - } + } else if (em_has_i350_i354_memory_errors(&sc->hw)) + em_update_i350_i354_ecc_stats(sc); if (peind & E1000_PEIND_LANPORT_PARITY_FATAL) sc->fatal_error_lan_count++; if (peind & E1000_PEIND_MNG_PARITY_FATAL) @@ -7179,6 +7186,11 @@ em_add_hw_stats(struct e1000_softc *sc) "corrected_packet_buffer", CTLFLAG_RD, &sc->corrected_error_packet_buffer_count, "Corrected packet-buffer memory indications"); + SYSCTL_ADD_UQUAD(ctx, memerr_list, OID_AUTO, + "corrected_lan_mng_fifo", CTLFLAG_RD, + &sc->corrected_error_lan_mng_fifo_count, + "Corrected LAN management transmit-FIFO ECC " + "indications"); SYSCTL_ADD_UQUAD(ctx, memerr_list, OID_AUTO, "corrected_pcie_tx_data", CTLFLAG_RD, &sc->corrected_error_pcie_tx_data_count, diff --git a/sys/dev/e1000/if_em.h b/sys/dev/e1000/if_em.h index d4d2b3db9457..5e72be998078 100644 --- a/sys/dev/e1000/if_em.h +++ b/sys/dev/e1000/if_em.h @@ -646,6 +646,7 @@ struct e1000_softc { u64 corrected_error_pcie_retry_count; u64 corrected_error_pcie_other_count; u64 corrected_error_packet_buffer_count; + u64 corrected_error_lan_mng_fifo_count; u64 uncorrected_error_packet_buffer_count; u64 uncorrected_error_dma_count; u64 uncorrected_error_pcie_count;