hrev54610 adds 2 changesets to branch 'master'
old head: c0de5f6a5fbd231d8891b1f420617330ddba0735
new head: 64331e96ca9d657f8823e5f870721c8f7770da1f
overview:
https://git.haiku-os.org/haiku/log/?qt=range&q=64331e96ca9d+%5Ec0de5f6a5fbd
----------------------------------------------------------------------------
011fd524a103: kernel/x86: dump features 7 ecx
Change-Id: I4c166ceb64c3a472ee2a849beca6ee041ef3af89
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3279
Reviewed-by: Rene Gollent <rene@xxxxxxxxxxx>
64331e96ca9d: kernel/x86: extend CR4 flags
Change-Id: I4861f6cd61d0daeeb2403d07e703b83cd6a00666
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3280
Reviewed-by: Rene Gollent <rene@xxxxxxxxxxx>
[ Jérôme Duval <jerome.duval@xxxxxxxxx> ]
----------------------------------------------------------------------------
2 files changed, 43 insertions(+), 1 deletion(-)
headers/private/kernel/arch/x86/arch_cpu.h | 16 ++++++++++++++-
src/system/kernel/arch/x86/arch_cpu.cpp | 28 ++++++++++++++++++++++++++
############################################################################
Commit: 011fd524a1038a9f4979c62667a8ce913160bb44
URL: https://git.haiku-os.org/haiku/commit/?id=011fd524a103
Author: Jérôme Duval <jerome.duval@xxxxxxxxx>
Date: Sat Sep 26 11:48:52 2020 UTC
kernel/x86: dump features 7 ecx
Change-Id: I4c166ceb64c3a472ee2a849beca6ee041ef3af89
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3279
Reviewed-by: Rene Gollent <rene@xxxxxxxxxxx>
----------------------------------------------------------------------------
diff --git a/src/system/kernel/arch/x86/arch_cpu.cpp
b/src/system/kernel/arch/x86/arch_cpu.cpp
index c4ce6fc6c0..692fd1cc46 100644
--- a/src/system/kernel/arch/x86/arch_cpu.cpp
+++ b/src/system/kernel/arch/x86/arch_cpu.cpp
@@ -584,6 +584,34 @@ dump_feature_string(int currentCPU, cpu_ent* cpu)
strlcat(features, "avx512bw ", sizeof(features));
if (cpu->arch.feature[FEATURE_7_EBX] & IA32_FEATURE_AVX512VI)
strlcat(features, "avx512vi ", sizeof(features));
+ if (cpu->arch.feature[FEATURE_7_ECX] & IA32_FEATURE_AVX512VMBI)
+ strlcat(features, "avx512vmbi ", sizeof(features));
+ if (cpu->arch.feature[FEATURE_7_ECX] & IA32_FEATURE_UMIP)
+ strlcat(features, "umip ", sizeof(features));
+ if (cpu->arch.feature[FEATURE_7_ECX] & IA32_FEATURE_PKU)
+ strlcat(features, "pku ", sizeof(features));
+ if (cpu->arch.feature[FEATURE_7_ECX] & IA32_FEATURE_OSPKE)
+ strlcat(features, "ospke ", sizeof(features));
+ if (cpu->arch.feature[FEATURE_7_ECX] & IA32_FEATURE_AVX512VMBI2)
+ strlcat(features, "avx512vmbi2 ", sizeof(features));
+ if (cpu->arch.feature[FEATURE_7_ECX] & IA32_FEATURE_GFNI)
+ strlcat(features, "gfni ", sizeof(features));
+ if (cpu->arch.feature[FEATURE_7_ECX] & IA32_FEATURE_VAES)
+ strlcat(features, "vaes ", sizeof(features));
+ if (cpu->arch.feature[FEATURE_7_ECX] & IA32_FEATURE_VPCLMULQDQ)
+ strlcat(features, "vpclmulqdq ", sizeof(features));
+ if (cpu->arch.feature[FEATURE_7_ECX] & IA32_FEATURE_AVX512_VNNI)
+ strlcat(features, "avx512vnni ", sizeof(features));
+ if (cpu->arch.feature[FEATURE_7_ECX] & IA32_FEATURE_AVX512_BITALG)
+ strlcat(features, "avx512bitalg ", sizeof(features));
+ if (cpu->arch.feature[FEATURE_7_ECX] & IA32_FEATURE_AVX512_VPOPCNTDQ)
+ strlcat(features, "avx512vpopcntdq ", sizeof(features));
+ if (cpu->arch.feature[FEATURE_7_ECX] & IA32_FEATURE_LA57)
+ strlcat(features, "la57 ", sizeof(features));
+ if (cpu->arch.feature[FEATURE_7_ECX] & IA32_FEATURE_RDPID)
+ strlcat(features, "rdpid ", sizeof(features));
+ if (cpu->arch.feature[FEATURE_7_ECX] & IA32_FEATURE_SGX_LC)
+ strlcat(features, "sgx_lc ", sizeof(features));
if (cpu->arch.feature[FEATURE_7_EDX] & IA32_FEATURE_IBRS)
strlcat(features, "ibrs ", sizeof(features));
if (cpu->arch.feature[FEATURE_7_EDX] & IA32_FEATURE_STIBP)
############################################################################
Revision: hrev54610
Commit: 64331e96ca9d657f8823e5f870721c8f7770da1f
URL: https://git.haiku-os.org/haiku/commit/?id=64331e96ca9d
Author: Jérôme Duval <jerome.duval@xxxxxxxxx>
Date: Sat Sep 26 13:01:14 2020 UTC
kernel/x86: extend CR4 flags
Change-Id: I4861f6cd61d0daeeb2403d07e703b83cd6a00666
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3280
Reviewed-by: Rene Gollent <rene@xxxxxxxxxxx>
----------------------------------------------------------------------------
diff --git a/headers/private/kernel/arch/x86/arch_cpu.h
b/headers/private/kernel/arch/x86/arch_cpu.h
index 3974a995eb..2ba90b0551 100644
--- a/headers/private/kernel/arch/x86/arch_cpu.h
+++ b/headers/private/kernel/arch/x86/arch_cpu.h
@@ -391,15 +391,29 @@
#define CR0_FPU_EMULATION (1UL << 2)
#define CR0_MONITOR_FPU (1UL << 1)
-// cr4 flags
+// Control Register CR4 flags §2.5
+//
https://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-vol-3a-part-1-manual.pdf
+#define IA32_CR4_VME (1UL << 0)
+#define IA32_CR4_PVI (1UL << 1)
+#define IA32_CR4_TSD (1UL << 2)
+#define IA32_CR4_DE (1UL << 3)
+#define IA32_CR4_PSE (1UL << 4)
#define IA32_CR4_PAE (1UL << 5)
#define IA32_CR4_MCE (1UL << 6)
#define IA32_CR4_GLOBAL_PAGES (1UL << 7)
+#define IA32_CR4_PCE (1UL << 8)
#define CR4_OS_FXSR (1UL << 9)
#define CR4_OS_XMM_EXCEPTION (1UL << 10)
+#define IA32_CR4_UMIP (1UL << 11)
+#define IA32_CR4_LA57 (1UL << 12)
+#define IA32_CR4_VMXE (1UL << 13)
+#define IA32_CR4_SMXE (1UL << 14)
+#define IA32_CR4_FSGSBASE (1UL << 16)
+#define IA32_CR4_PCIDE (1UL << 17)
#define IA32_CR4_OSXSAVE (1UL << 18)
#define IA32_CR4_SMEP (1UL << 20)
#define IA32_CR4_SMAP (1UL << 21)
+#define IA32_CR4_PKE (1UL << 22)
// Extended Control Register XCR0 flags §13.3
//
https://software.intel.com/content/dam/develop/public/us/en/documents/253665-sdm-vol-1.pdf