commit: f1ad7c2096dd405915a6cf21af4b8e58f4e41b3d Author: Thomas Deutschmann <whissi <AT> gentoo <DOT> org> AuthorDate: Tue Mar 26 03:52:54 2019 +0000 Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org> CommitDate: Tue Mar 26 08:03:52 2019 +0000 URL: https://gitweb.gentoo.org/proj/genkernel.git/commit/?id=f1ad7c20
config_kernel(): rewrite --microcode handling Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org> gen_configkernel.sh | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/gen_configkernel.sh b/gen_configkernel.sh index 8d96838..a5266e4 100755 --- a/gen_configkernel.sh +++ b/gen_configkernel.sh @@ -529,17 +529,24 @@ config_kernel() { kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_DEV_VIRTIO" "${newvirtio_setting}" fi - # Microcode setting, intended for early microcode loading - # needs to be compiled in. - kconfig_microcode_intel=(CONFIG_MICROCODE_INTEL CONFIG_MICROCODE_INTEL_EARLY) - kconfig_microcode_amd=(CONFIG_MICROCODE_AMD CONFIG_MICROCODE_AMD_EARLY) + # Microcode setting, intended for early microcode loading, if --microcode if [[ -n "${MICROCODE}" ]] then - kconfigs=(CONFIG_MICROCODE CONFIG_MICROCODE_OLD_INTERFACE CONFIG_MICROCODE_EARLY) + print_info 1 "$(getIndent 1)>> Ensure that required kernel options for early microcode loading support are set..." + kconfig_microcode_intel=(CONFIG_MICROCODE_INTEL CONFIG_MICROCODE_INTEL_EARLY) + + kconfig_microcode_amd=(CONFIG_MICROCODE_AMD) + [ $(($KV_MAJOR * 1000 + ${KV_MINOR})) -le 4003 ] && kconfig_microcode_amd+=(CONFIG_MICROCODE_AMD_EARLY) + + kconfigs=(CONFIG_MICROCODE CONFIG_MICROCODE_OLD_INTERFACE) + [ $(($KV_MAJOR * 1000 + ${KV_MINOR})) -le 4003 ] && kconfigs+=(CONFIG_MICROCODE_EARLY) + [[ "$MICROCODE" == all ]] && kconfigs+=( ${kconfig_microcode_amd[@]} ${kconfig_microcode_intel[@]} ) [[ "$MICROCODE" == amd ]] && kconfigs+=( ${kconfig_microcode_amd[@]} ) [[ "$MICROCODE" == intel ]] && kconfigs+=( ${kconfig_microcode_intel[@]} ) - for k in "${kconfigs[@]}" ; do + + for k in "${kconfigs[@]}" + do cfg=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "$k") case "$cfg" in y) ;; # Do nothing