mirror of
https://github.com/torvalds/linux.git
synced 2026-05-30 01:53:29 +02:00
x86/microcode: Add microcode= cmdline parsing
Add a "microcode=" command line argument after which all options can be passed in a comma-separated list. Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: Sohil Mehta <sohil.mehta@intel.com> Reviewed-by: Chang S. Bae <chang.seok.bae@intel.com> Link: https://lore.kernel.org/20250820135043.19048-2-bp@kernel.org
This commit is contained in:
parent
855042367e
commit
632ff61706
|
|
@ -3767,8 +3767,12 @@
|
|||
|
||||
mga= [HW,DRM]
|
||||
|
||||
microcode.force_minrev= [X86]
|
||||
Format: <bool>
|
||||
microcode= [X86] Control the behavior of the microcode loader.
|
||||
Available options, comma separated:
|
||||
|
||||
dis_ucode_ldr: disable the microcode loader
|
||||
|
||||
force_minrev:
|
||||
Enable or disable the microcode minimal revision
|
||||
enforcement for the runtime microcode loader.
|
||||
|
||||
|
|
|
|||
|
|
@ -1340,7 +1340,7 @@ config MICROCODE_LATE_LOADING
|
|||
use this at your own risk. Late loading taints the kernel unless the
|
||||
microcode header indicates that it is safe for late loading via the
|
||||
minimal revision check. This minimal revision check can be enforced on
|
||||
the kernel command line with "microcode.minrev=Y".
|
||||
the kernel command line with "microcode=force_minrev".
|
||||
|
||||
config MICROCODE_LATE_FORCE_MINREV
|
||||
bool "Enforce late microcode loading minimal revision check"
|
||||
|
|
@ -1356,7 +1356,7 @@ config MICROCODE_LATE_FORCE_MINREV
|
|||
revision check fails.
|
||||
|
||||
This minimal revision check can also be controlled via the
|
||||
"microcode.minrev" parameter on the kernel command line.
|
||||
"microcode=force_minrev" parameter on the kernel command line.
|
||||
|
||||
If unsure say Y.
|
||||
|
||||
|
|
|
|||
|
|
@ -43,10 +43,9 @@
|
|||
#include "internal.h"
|
||||
|
||||
static struct microcode_ops *microcode_ops;
|
||||
static bool dis_ucode_ldr = false;
|
||||
static bool dis_ucode_ldr;
|
||||
|
||||
bool force_minrev = IS_ENABLED(CONFIG_MICROCODE_LATE_FORCE_MINREV);
|
||||
module_param(force_minrev, bool, S_IRUSR | S_IWUSR);
|
||||
|
||||
/*
|
||||
* Synchronization.
|
||||
|
|
@ -126,13 +125,32 @@ bool __init microcode_loader_disabled(void)
|
|||
return dis_ucode_ldr;
|
||||
}
|
||||
|
||||
static void early_parse_cmdline(void)
|
||||
{
|
||||
char cmd_buf[64] = {};
|
||||
char *s, *p = cmd_buf;
|
||||
|
||||
if (cmdline_find_option(boot_command_line, "microcode", cmd_buf, sizeof(cmd_buf)) > 0) {
|
||||
while ((s = strsep(&p, ","))) {
|
||||
if (!strcmp("force_minrev", s))
|
||||
force_minrev = true;
|
||||
|
||||
if (!strcmp(s, "dis_ucode_ldr"))
|
||||
dis_ucode_ldr = true;
|
||||
}
|
||||
}
|
||||
|
||||
/* old, compat option */
|
||||
if (cmdline_find_option_bool(boot_command_line, "dis_ucode_ldr") > 0)
|
||||
dis_ucode_ldr = true;
|
||||
}
|
||||
|
||||
void __init load_ucode_bsp(void)
|
||||
{
|
||||
unsigned int cpuid_1_eax;
|
||||
bool intel = true;
|
||||
|
||||
if (cmdline_find_option_bool(boot_command_line, "dis_ucode_ldr") > 0)
|
||||
dis_ucode_ldr = true;
|
||||
early_parse_cmdline();
|
||||
|
||||
if (microcode_loader_disabled())
|
||||
return;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user