diff --git a/misc/config_tools/board_inspector/cpuparser/msr.py b/misc/config_tools/board_inspector/cpuparser/msr.py index f6f8f9729..8fff698fa 100644 --- a/misc/config_tools/board_inspector/cpuparser/msr.py +++ b/misc/config_tools/board_inspector/cpuparser/msr.py @@ -13,6 +13,19 @@ class MSR_IA32_MISC_ENABLE(MSR): "fast_string", ] +class MSR_IA32_FEATURE_CONTROL(MSR): + addr = 0x03a + msr_ia32_feature_control_lock = msrfield(1, 0, doc=None) + msr_ia32_feature_control_vmx_no_smx = msrfield(1, 2, doc=None) + + @property + def disable_vmx(self): + return self.msr_ia32_feature_control_lock and not self.msr_ia32_feature_control_vmx_no_smx + + capability_bits = [ + "disable_vmx", + ] + class MSR_IA32_VMX_PROCBASED_CTLS2(MSR): addr = 0x0000048B diff --git a/misc/config_tools/board_inspector/extractors/10-processors.py b/misc/config_tools/board_inspector/extractors/10-processors.py index 150f806da..0aa512bff 100644 --- a/misc/config_tools/board_inspector/extractors/10-processors.py +++ b/misc/config_tools/board_inspector/extractors/10-processors.py @@ -53,9 +53,10 @@ def extract_model(processors_node, cpu_id, family_id, model_id, core_type, nativ if getattr(leaf_data, cap) == 1: add_child(n, "capability", id=cap) - msr_regs = [MSR_IA32_MISC_ENABLE, MSR_IA32_VMX_BASIC, MSR_IA32_VMX_PINBASED_CTLS, - MSR_IA32_VMX_PROCBASED_CTLS, MSR_IA32_VMX_EXIT_CTLS, MSR_IA32_VMX_ENTRY_CTLS, - MSR_IA32_VMX_MISC, MSR_IA32_VMX_PROCBASED_CTLS2, MSR_IA32_VMX_EPT_VPID_CAP] + msr_regs = [MSR_IA32_MISC_ENABLE, MSR_IA32_FEATURE_CONTROL, MSR_IA32_VMX_BASIC, + MSR_IA32_VMX_PINBASED_CTLS, MSR_IA32_VMX_PROCBASED_CTLS, MSR_IA32_VMX_EXIT_CTLS, + MSR_IA32_VMX_ENTRY_CTLS, MSR_IA32_VMX_MISC, MSR_IA32_VMX_PROCBASED_CTLS2, + MSR_IA32_VMX_EPT_VPID_CAP] for msr_reg in msr_regs: msr_data = msr_reg.rdmsr(cpu_id) for cap in msr_data.capability_bits: diff --git a/misc/config_tools/board_inspector/schema/checks/platform_capabilities.xsd b/misc/config_tools/board_inspector/schema/checks/platform_capabilities.xsd index bfb8d322a..ac3142629 100644 --- a/misc/config_tools/board_inspector/schema/checks/platform_capabilities.xsd +++ b/misc/config_tools/board_inspector/schema/checks/platform_capabilities.xsd @@ -3,6 +3,27 @@ xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:acrn="https://projectacrn.org"> + + + Intel Virtualization Technology for Directed I/O (VT-d) feature is not enabled. +ACRN requires this feature to function properly. Please enable it in your BIOS settings. + + + + + + Hyper-Threading (HT) is enabled. While this feature can provide more overall processing power, +hyperthreading can adversely impact predictable real-time performance behavior. + + + + + + Virtual Machine Extensions (VMX) feature is not enabled. +ACRN requires this feature to function properly. Please enable it in BIOS. + + + Virtual Machine Extensions (VMX) feature is not supported on this processor. ACRN requires this feature to function properly.