aboutsummaryrefslogtreecommitdiff
path: root/lib/bind/dns/code.h
diff options
context:
space:
mode:
authorKevin Bowling <kbowling@FreeBSD.org>2026-08-16 05:48:58 +0000
committerKevin Bowling <kbowling@FreeBSD.org>2026-08-23 03:28:33 +0000
commit5e56a1fb09cd3cc2081978dd6508ff5bc7c59eca (patch)
tree732745e9e6e7fe55c15047f13725e91a397b051e /lib/bind/dns/code.h
parentee81cd1d8f5596a6ab4c8eb29009405572cc162b (diff)
e1000: Recover from 82580 memory errorsHEADmain
82580 reports fatal parity and uncorrectable ECC errors through ICR.FER and its four region PEIND hierarchy. Region specific status registers identify PCIe, DMA transmit, DMA receive, DMA host, and LAN port memories that can leave traffic stopped. Enable the documented DMA, PCIe, packet-buffer, and host-owned LAN parity and ECC checks only after initializing queue and filter tables. Leave the flexible filter parity controls under management firmware ownership. Capture read-clear and RW1C status in the interrupt filter and keep FER masked until the admin task resolves the event. Reset for a host-owned region or an unknown FER source. Leave management-only recovery to firmware. Use CTRL.RST before master disable because fatal 82580 memory errors can stop PCIe traffic. Do not use CTRL.DEV_RST: specification update item 9 declares that bit reserved and says it must always be written as zero. Wait for EEPROM auto read completion; STATUS bit 21 is reserved on 82580, not PF_RST_DONE. Validated on an Intel I340-T2 (82580, revision 1). A one queue port programmed LANPERRCTL as 0x6e00 while a four-queue port programmed 0x7e00, avoiding the RSS checker until RETA is initialized. Both ports programmed PEINDM 0xf, DTPARC 0x1555, DRPARC and DDPARC 0x55, PCIEERRCTL 0x5555, and PCIEECCCTL 0x11. Three down/up cycles left all status and counters clear. A synthetic ICS.FER event on each function caused exactly one unknown source reset without advancing the sibling function counters. Controls were restored, the linked port recovered carrier, and bidirectional traffic after recovery. Enabling flexible filter parity checkers before programming their memories produced genuine LAN region faults with LANPERRSTS bits 0 and 1. Each fault advanced fatal_lan and fatal_resets exactly once, left the sibling function unchanged, and recovered the port proving hardware events will trigger the intended recovery. MFC after: 2 weeks Sponsored by: BBOX.io
Diffstat (limited to 'lib/bind/dns/code.h')
0 files changed, 0 insertions, 0 deletions