aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomasz Maciej Nowak <tomek_n@o2.pl>2018-11-20 17:20:43 +0100
committerJohn Crispin <john@phrozen.org>2018-11-26 12:05:44 +0100
commit546fced2a23557e95dd34246744c3aa6cad92fe6 (patch)
treeb74e0145b0ae6db0f770da2acae64eb6d2a34143
parentad83fde30de5d154bf723d0fd07f945a8cdb6510 (diff)
downloadupstream-546fced2a23557e95dd34246744c3aa6cad92fe6.tar.gz
upstream-546fced2a23557e95dd34246744c3aa6cad92fe6.tar.bz2
upstream-546fced2a23557e95dd34246744c3aa6cad92fe6.zip
x86: add intel microcode entries to grub config
Create initrd enries for x86 images, that'll load intel microcode as early as possible. To achieve that the test module for grub is enabled which provides shell-like conditionals. Also restrict the late load of microcode to AMD processors. Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
-rw-r--r--target/linux/x86/base-files/lib/preinit/02_load_x86_ucode6
-rw-r--r--target/linux/x86/image/Makefile4
-rw-r--r--target/linux/x86/image/grub-iso.cfg3
-rw-r--r--target/linux/x86/image/grub.cfg3
4 files changed, 12 insertions, 4 deletions
diff --git a/target/linux/x86/base-files/lib/preinit/02_load_x86_ucode b/target/linux/x86/base-files/lib/preinit/02_load_x86_ucode
index fb309c75c1..d3a23e24b2 100644
--- a/target/linux/x86/base-files/lib/preinit/02_load_x86_ucode
+++ b/target/linux/x86/base-files/lib/preinit/02_load_x86_ucode
@@ -2,8 +2,10 @@
# Copyright (C) 2018 OpenWrt.org
do_load_x86_ucode() {
- if [ -e "/sys/devices/system/cpu/microcode/reload" ]; then
- echo 1 > /sys/devices/system/cpu/microcode/reload
+ if grep -q AuthenticAMD /proc/cpuinfo; then
+ if [ -e "/sys/devices/system/cpu/microcode/reload" ]; then
+ echo 1 > /sys/devices/system/cpu/microcode/reload
+ fi
fi
}
diff --git a/target/linux/x86/image/Makefile b/target/linux/x86/image/Makefile
index dbf8a8594b..f8c3700d32 100644
--- a/target/linux/x86/image/Makefile
+++ b/target/linux/x86/image/Makefile
@@ -9,8 +9,8 @@ include $(INCLUDE_DIR)/image.mk
export PATH=$(TARGET_PATH):/sbin
-GRUB2_MODULES = biosdisk boot chain configfile ext2 linux ls part_msdos reboot serial vga
-GRUB2_MODULES_ISO = biosdisk boot chain configfile iso9660 linux ls part_msdos reboot serial vga
+GRUB2_MODULES = biosdisk boot chain configfile ext2 linux ls part_msdos reboot serial test vga
+GRUB2_MODULES_ISO = biosdisk boot chain configfile iso9660 linux ls part_msdos reboot serial test vga
GRUB_TERMINALS =
GRUB_SERIAL_CONFIG =
GRUB_TERMINAL_CONFIG =
diff --git a/target/linux/x86/image/grub-iso.cfg b/target/linux/x86/image/grub-iso.cfg
index 9c59bdf6d4..5d128aa3aa 100644
--- a/target/linux/x86/image/grub-iso.cfg
+++ b/target/linux/x86/image/grub-iso.cfg
@@ -7,4 +7,7 @@ set root='(cd)'
menuentry "@TITLE@" {
linux /boot/vmlinuz @CMDLINE@ noinitrd
+ if [ -s /boot/intel-ucode.img ]; then
+ initrd /boot/intel-ucode.img
+ fi
}
diff --git a/target/linux/x86/image/grub.cfg b/target/linux/x86/image/grub.cfg
index dedfa0a636..a665686863 100644
--- a/target/linux/x86/image/grub.cfg
+++ b/target/linux/x86/image/grub.cfg
@@ -7,6 +7,9 @@ set root='(@ROOT@)'
menuentry "@TITLE@" {
linux /boot/vmlinuz @CMDLINE@ noinitrd
+ if [ -s /boot/intel-ucode.img ]; then
+ initrd /boot/intel-ucode.img
+ fi
}
menuentry "@TITLE@ (failsafe)" {
linux /boot/vmlinuz failsafe=true @CMDLINE@ noinitrd