|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [XEN PATCH V1] x86/ucode: optional amd/intel ucode build & load
Introduce configuration variables to make it possible to selectively turn
on/off CPU microcode management code in the build for AMD and Intel CPUs.
This is to allow build configuration for a specific CPU, not compile and
load what will not be used anyway.
Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@xxxxxxxx>
---
xen/arch/x86/Kconfig | 12 ++++++++++++
xen/arch/x86/cpu/microcode/Makefile | 4 ++--
xen/arch/x86/cpu/microcode/core.c | 5 ++++-
3 files changed, 18 insertions(+), 3 deletions(-)
diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index d6f3128588..1ee5ae793d 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -350,6 +350,18 @@ config REQUIRE_NX
was unavailable. However, if enabled, Xen will no longer boot on
any CPU which is lacking NX support.
+config MICROCODE_INTEL
+ bool "Build with Intel CPU ucode support" if EXPERT
+ default y
+ help
+ Support microcode management for Intel processors. If unsure, say Y.
+
+config MICROCODE_AMD
+ bool "Build with AMD CPU ucode support" if EXPERT
+ default y
+ help
+ Support microcode management for AMD K10 family of processors
+ and later. If unsure, say Y.
endmenu
source "common/Kconfig"
diff --git a/xen/arch/x86/cpu/microcode/Makefile
b/xen/arch/x86/cpu/microcode/Makefile
index aae235245b..abd0afe8c5 100644
--- a/xen/arch/x86/cpu/microcode/Makefile
+++ b/xen/arch/x86/cpu/microcode/Makefile
@@ -1,3 +1,3 @@
-obj-y += amd.o
obj-y += core.o
-obj-y += intel.o
+obj-$(CONFIG_MICROCODE_AMD) += amd.o
+obj-$(CONFIG_MICROCODE_INTEL) += intel.o
diff --git a/xen/arch/x86/cpu/microcode/core.c
b/xen/arch/x86/cpu/microcode/core.c
index 1c9f66ea8a..b7c108f68b 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -865,6 +865,7 @@ int __init early_microcode_init(unsigned long *module_map,
switch ( c->x86_vendor )
{
+#ifdef CONFIG_MICROCODE_AMD
case X86_VENDOR_AMD:
if ( c->x86 >= 0x10 )
{
@@ -872,11 +873,13 @@ int __init early_microcode_init(unsigned long *module_map,
can_load = true;
}
break;
-
+#endif
+#ifdef CONFIG_MICROCODE_INTEL
case X86_VENDOR_INTEL:
ucode_ops = intel_ucode_ops;
can_load = intel_can_load_microcode();
break;
+#endif
}
if ( !ucode_ops.apply_microcode )
--
2.25.1
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |