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.

Reply via email to