Module Name: src Committed By: martin Date: Thu Oct 3 12:00:57 UTC 2024
Modified Files: src/sys/arch/x86/include [netbsd-10]: specialreg.h src/sys/arch/x86/x86 [netbsd-10]: errata.c src/usr.sbin/cpuctl/arch [netbsd-10]: i386.c Log Message: Pull up following revision(s) (requested by rin in ticket #919): sys/arch/x86/x86/errata.c: revision 1.28 sys/arch/x86/x86/errata.c: revision 1.29 sys/arch/x86/include/specialreg.h: revision 1.209 usr.sbin/cpuctl/arch/i386.c: revision 1.144 sys/arch/x86/x86/errata.c: revision 1.30 sys/arch/x86/x86/errata.c: revision 1.33 sys/arch/x86/x86/errata.c: revision 1.34 sys/arch/x86/x86/errata.c: revision 1.35 sys/arch/x86/include/specialreg.h: revision 1.210 sys/arch/x86/include/specialreg.h: revision 1.211 x86/errata.c: Link to original AMD errata guide. This one is no longer updated; need to link to newer ones for individual families too. That's where all the cryptic nomenclature comes from here. x86/errata.c: Say what revision we're searching for. x86/errata.c: Only say the errata revision search for cpu0. x86: make the CPUID list for errata be far less confusing the 0x80000001 CPUID result needs some parsing to match against actual family/model/stepping values. 4-bit 'family' values of 15 or 6 change how to parse the 4-bit extended model and 8-bit extended family value - for family 6 or 15, the extended model bits (4) are concatenated with the base 4-bits to create an 8-bit value, and for family 15, the family value is addition of the family value and the 8-bit extended-family value, giving a range of 0 to 15 + 0xff aka 270. use a CPUREV(family, model, stepping) macro that builds the relevant bit-representation of a CPUID, making it far easier to understand what each entry means, and to add new ones too. i have confirmed that the emitted cpurevs[] array has the same values before/after this change, ie, NFCI or observed. x86: add names for errata that don't have actual numbers zenbleed is reported as "erratum 65535" currently, this adds a name for it, and enables the name for any others as well. pull logging into a function with a tag message. x86: handle AMD errata 1474: A CPU core may hang after about 1044 days from the new comment: * This requires disabling CC6 power level, which can be a performance * issue since it stops full turbo in some implementations (eg, half the * cores must be in CC6 to achieve the highest boost level.) Set a timer * to fire in 1000 days -- except NetBSD timers end up having a signed * 32-bit hz-based value, which rolls over in under 25 days with HZ=1000, * and doing xcall(9) or kthread(9) from a callout is not allowed anyway, * so just have a kthread wait 1 day for 1000 times. documented in: https://www.amd.com/content/dam/amd/en/documents/processor-tech-docs/revision-guides/56323-PUB_1_01.pdf add MSR stuff for AMD errata 1474. cpuctl: fix i386 bit descriptions for CPUID_SEF_FLAGS1 warning: non-printing character '\31' in description 'BUS_LOCK_DETECT""b\31' [363] s/RPMQUERY/RMPQUERY/ To generate a diff of this commit: cvs rdiff -u -r1.198.2.5 -r1.198.2.6 src/sys/arch/x86/include/specialreg.h cvs rdiff -u -r1.27.4.2 -r1.27.4.3 src/sys/arch/x86/x86/errata.c cvs rdiff -u -r1.133.2.3 -r1.133.2.4 src/usr.sbin/cpuctl/arch/i386.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.