Module Name: src Committed By: martin Date: Thu Jun 22 08:14:35 UTC 2023
Modified Files: src/sys/dev/pci [netbsd-10]: if_wm.c if_wmreg.h if_wmvar.h Log Message: Pull up following revision(s) (requested by msaitoh in ticket #213): sys/dev/pci/if_wm.c: revision 1.770 sys/dev/pci/if_wm.c: revision 1.771 sys/dev/pci/if_wm.c: revision 1.772 sys/dev/pci/if_wm.c: revision 1.773 sys/dev/pci/if_wm.c: revision 1.774 sys/dev/pci/if_wm.c: revision 1.775 sys/dev/pci/if_wm.c: revision 1.776 sys/dev/pci/if_wmreg.h: revision 1.129 sys/dev/pci/if_wm.c: revision 1.777 sys/dev/pci/if_wm.c: revision 1.778 sys/dev/pci/if_wmvar.h: revision 1.49 sys/dev/pci/if_wm.c: revision 1.779 sys/dev/pci/if_wm.c: revision 1.768 sys/dev/pci/if_wm.c: revision 1.769 sys/dev/pci/if_wmreg.h: revision 1.130 sys/dev/pci/if_wm.c: revision 1.780 sys/dev/pci/if_wm.c: revision 1.781 Count some 64bit counters correctly. - Fix calculation of GORC, GOTC, TOR and TOT counters correctly. - Found by knakahara. Add note for the TORL register. The TOR register includes error, flow control and broadcast rejected. Sort lines. No functional change. Rearrange the order of the registers so that they are roughly in ascending order. Sort lines. No functional change. Reorder evcnt_attach_dynamic(), WM_EVCNT_ADD() and evcnt_detach() to match. IC{TX,RX}*C registers are for older than 82575. Fix a bug that the transmit underrun counter is incorrectly counted. The transmit underrun bit in the transmit status filed is only for 82544 (and older?), so don't use the counter for newer chips. The bit is reserved for newer chips, but the bit sometimes set on 82575 at least. Don't add "Count" for event counter's description. Some statistics registers were replaced with new counters. - 0x403c was CEXTERR(Carrier Extension Error). 82575 and newer except 80003, ICHs and PCHs have HTDPMC(Host Tx Discarded Packets by MAC). I don't really know for 82575. The 82575 datasheet say nothing about it. - The following two are changed for circuit breaker. Only 82576's datasheet describes abut it, so the registers might be only for 82576. Use those registers for 82575 and newer except 80003, ICHs and PCHs just in case. - 0x40fc was TSCTFC(TCP Segmentation Context Tx Fail). It was replaced by the CBRMPC(Circuit Breaker Rx Manageability Packet) register. - 0x4124 was ICRXOC(Interrupt Cause Receiver Overrun). It was replaced by the HTCBDPC(Host Tx Circuit Breaker Dropped Packet) register. - From 0x4104 to 0x4124: - For 0x4124, 82575's datasheet says it's not changed(ICRXOC). I don't know if it's correct. We use new HTCBDPC register for 82575. - 82576 and newer changed the meaning. - I don't know for 80003, ICHs and PCHs. Don't count those registers. At least, those registers in PCH2 and PCH_CNP are all zero. Add some new event counters. Add the following counters for 82575 and newer except 80003, ICHs and PCHs: - Only 82576 document describes about the circuit breaker, so the following two might be only for 82575: - Circuit Breaker TX Manageability Packet - Circuit Breaker RX Dropped Packet - 82575's document doesn't describe the following two, but we can see the same value as GO{T,R}C have: - Host Good Octets RX - Host Good Octets TX - 82575's document doesn't describe the LENERRS (Length Errors) counter. I don't know if it has. - Perhaps Non-SerDes/SGMII devices don't have SCVPC (SerDes/SGMII Code Violation Packet) register. We don't care if it's SerDes/SGMII or not for now. - HRMPC (Header Redirection Missed Packet) appears only once in 8257[56]'s datasheet. FreeBSD's igb counts it, so we do, too. - Count the following two for I350 and newer. I don't know if PCHs have: - EEE TX LPI - EEE RX LPI Move statistics updating code from wm_tick() to new wm_update_stats(). - To reuse. - No functional change. Add SOICZIFDATA (ifconfig -z) support for evcnt(9). First update the statistics data, then clear the event counters, and finally copy and clear if_data via ether_ioctl(). Fix prc511's comment and description. Use WM_IS_ICHPCH(). No functional change. Fix typo. s/ictxact/ictxatc/. No functional change. To generate a diff of this commit: cvs rdiff -u -r1.767 -r1.767.2.1 src/sys/dev/pci/if_wm.c cvs rdiff -u -r1.128 -r1.128.2.1 src/sys/dev/pci/if_wmreg.h cvs rdiff -u -r1.48 -r1.48.4.1 src/sys/dev/pci/if_wmvar.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.