aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Deutschmann <whissi@gentoo.org>2019-09-29 17:07:14 +0200
committerThomas Deutschmann <whissi@gentoo.org>2019-09-29 17:34:23 +0200
commitef914100a474196ddb27049fd95ce573ebc4805d (patch)
treee3ad8a007cdc25d10e1ddb9c40be72c2a96cbb5b
parentgenkernel: bump to v4.0.0_beta18 (diff)
downloadgenkernel-ef914100.tar.gz
genkernel-ef914100.tar.bz2
genkernel-ef914100.zip
gen_configkernel.sh: config_kernel(): Update --microcode kernel options handling
- Don't try to set CONFIG_MICROCODE_*EARLY for >= linux-4.4 - Check for CONFIG_MICROCODE_{AMD,INTEL} in sanity check Signed-off-by: Thomas Deutschmann <whissi@gentoo.org>
-rwxr-xr-xgen_configkernel.sh39
1 files changed, 30 insertions, 9 deletions
diff --git a/gen_configkernel.sh b/gen_configkernel.sh
index 2ff983f..5a4b5ce 100755
--- a/gen_configkernel.sh
+++ b/gen_configkernel.sh
@@ -753,20 +753,29 @@ config_kernel() {
then
if isTrue "${KERNEL_SUPPORT_MICROCODE}"
then
+ local -a kconfigs_microcode
+ local -a kconfigs_microcode_amd
+ local -a kconfigs_microcode_intel
+
print_info 2 "$(get_indent 1)>> Ensure that required kernel options for early microcode loading support are set ..."
- kconfig_microcode_intel=(CONFIG_MICROCODE_INTEL CONFIG_MICROCODE_INTEL_EARLY)
+ kconfigs_microcode+=( 'CONFIG_MICROCODE' )
+ kconfigs_microcode+=( 'CONFIG_MICROCODE_OLD_INTERFACE' )
+ [ $(($KV_MAJOR * 1000 + ${KV_MINOR})) -le 4003 ] && kconfigs_microcode+=( 'CONFIG_MICROCODE_EARLY' )
- kconfig_microcode_amd=(CONFIG_MICROCODE_AMD)
- [ $(($KV_MAJOR * 1000 + ${KV_MINOR})) -le 4003 ] && kconfig_microcode_amd+=(CONFIG_MICROCODE_AMD_EARLY)
+ # Intel
+ kconfigs_microcode_intel+=( 'CONFIG_MICROCODE_INTEL' )
+ [ $(($KV_MAJOR * 1000 + ${KV_MINOR})) -le 4003 ] && kconfigs_microcode_intel+=( 'CONFIG_MICROCODE_INTEL_EARLY' )
- kconfigs=(CONFIG_MICROCODE CONFIG_MICROCODE_OLD_INTERFACE)
- [ $(($KV_MAJOR * 1000 + ${KV_MINOR})) -le 4003 ] && kconfigs+=(CONFIG_MICROCODE_EARLY)
+ # AMD
+ kconfigs_microcode_amd=( 'CONFIG_MICROCODE_AMD' )
+ [ $(($KV_MAJOR * 1000 + ${KV_MINOR})) -le 4003 ] && kconfigs_microcode_amd+=( 'CONFIG_MICROCODE_AMD_EARLY' )
- [[ "$MICROCODE" == all ]] && kconfigs+=( ${kconfig_microcode_amd[@]} ${kconfig_microcode_intel[@]} )
- [[ "$MICROCODE" == amd ]] && kconfigs+=( ${kconfig_microcode_amd[@]} )
- [[ "$MICROCODE" == intel ]] && kconfigs+=( ${kconfig_microcode_intel[@]} )
+ [[ "${MICROCODE}" == all ]] && kconfigs_microcode+=( ${kconfigs_microcode_amd[@]} ${kconfigs_microcode_intel[@]} )
+ [[ "${MICROCODE}" == amd ]] && kconfigs_microcode+=( ${kconfigs_microcode_amd[@]} )
+ [[ "${MICROCODE}" == intel ]] && kconfigs_microcode+=( ${kconfigs_microcode_intel[@]} )
- for k in "${kconfigs[@]}"
+ local k
+ for k in "${kconfigs_microcode[@]}"
do
local cfg=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "$k")
case "${cfg}" in
@@ -777,6 +786,18 @@ config_kernel() {
done
required_kernel_options+=( 'CONFIG_MICROCODE' )
+ case "${MICROCODE}" in
+ amd)
+ required_kernel_options+=( 'CONFIG_MICROCODE_AMD' )
+ ;;
+ intel)
+ required_kernel_options+=( 'CONFIG_MICROCODE_INTEL' )
+ ;;
+ all)
+ required_kernel_options+=( 'CONFIG_MICROCODE_AMD' )
+ required_kernel_options+=( 'CONFIG_MICROCODE_INTEL' )
+ ;;
+ esac
else
print_info 1 "$(get_indent 1)>> Ignoring --microcode parameter; Architecture does not support microcode loading ..."
fi