diff options
author | Luiz Souza <luiz@netgate.com> | 2018-02-23 19:44:15 -0300 |
---|---|---|
committer | Luiz Souza <luiz@netgate.com> | 2018-02-23 19:44:15 -0300 |
commit | c5c900c27bc09cad86e14c922ca133304c20b700 (patch) | |
tree | a41758bae880b47a39a492be96ff74e2bca51165 /sys | |
parent | 6188580d0b1b234f9250f22a4f7100379baf3ac4 (diff) | |
download | FreeBSD-src-c5c900c27bc09cad86e14c922ca133304c20b700.zip FreeBSD-src-c5c900c27bc09cad86e14c922ca133304c20b700.tar.gz |
Revert "Revert "MFC r323822 (by cem):""
This reverts commit faf16174043b793fa12aaaf6f113a31cb1ae7968.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/x86/include/specialreg.h | 7 | ||||
-rw-r--r-- | sys/x86/include/x86_var.h | 1 | ||||
-rw-r--r-- | sys/x86/x86/identcpu.c | 12 |
3 files changed, 20 insertions, 0 deletions
diff --git a/sys/x86/include/specialreg.h b/sys/x86/include/specialreg.h index 94cadd3..77f01cd 100644 --- a/sys/x86/include/specialreg.h +++ b/sys/x86/include/specialreg.h @@ -323,6 +323,13 @@ #define AMDPM_CPB 0x00000200 /* + * AMD extended function 8000_0008h ebx info (amd_extended_feature_extensions) + */ +#define AMDFEID_CLZERO 0x00000001 +#define AMDFEID_IRPERF 0x00000002 +#define AMDFEID_XSAVEERPTR 0x00000004 + +/* * AMD extended function 8000_0008h ecx info */ #define AMDID_CMP_CORES 0x000000ff diff --git a/sys/x86/include/x86_var.h b/sys/x86/include/x86_var.h index ffdf2f0..73a24c7 100644 --- a/sys/x86/include/x86_var.h +++ b/sys/x86/include/x86_var.h @@ -45,6 +45,7 @@ extern u_int cpu_feature2; extern u_int amd_feature; extern u_int amd_feature2; extern u_int amd_pminfo; +extern u_int amd_extended_feature_extensions; extern u_int via_feature_rng; extern u_int via_feature_xcrypt; extern u_int cpu_clflush_line_size; diff --git a/sys/x86/x86/identcpu.c b/sys/x86/x86/identcpu.c index dd2863b..d2fc82b 100644 --- a/sys/x86/x86/identcpu.c +++ b/sys/x86/x86/identcpu.c @@ -92,6 +92,7 @@ u_int cpu_feature2; /* Feature flags */ u_int amd_feature; /* AMD feature flags */ u_int amd_feature2; /* AMD feature flags */ u_int amd_pminfo; /* AMD advanced power management info */ +u_int amd_extended_feature_extensions; u_int via_feature_rng; /* VIA RNG features */ u_int via_feature_xcrypt; /* VIA ACE features */ u_int cpu_high; /* Highest arg to CPUID */ @@ -992,6 +993,16 @@ printcpuinfo(void) } } + if (amd_extended_feature_extensions != 0) { + printf("\n " + "AMD Extended Feature Extensions ID EBX=" + "0x%b", amd_extended_feature_extensions, + "\020" + "\001CLZERO" + "\002IRPerf" + "\003XSaveErPtr"); + } + if (via_feature_rng != 0 || via_feature_xcrypt != 0) print_via_padlock_info(); @@ -1471,6 +1482,7 @@ finishidentcpu(void) if (cpu_exthigh >= 0x80000008) { do_cpuid(0x80000008, regs); cpu_maxphyaddr = regs[0] & 0xff; + amd_extended_feature_extensions = regs[1]; cpu_procinfo2 = regs[2]; } else { cpu_maxphyaddr = (cpu_feature & CPUID_PAE) != 0 ? 36 : 32; |