aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--target/linux/x86/base-files/lib/preinit/02_load_x86_ucode12
-rw-r--r--target/linux/x86/image/grub-iso.cfg9
-rw-r--r--target/linux/x86/image/grub.cfg9
3 files changed, 16 insertions, 14 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
new file mode 100644
index 0000000000..d3a23e24b2
--- /dev/null
+++ b/target/linux/x86/base-files/lib/preinit/02_load_x86_ucode
@@ -0,0 +1,12 @@
+#!/bin/sh
+# Copyright (C) 2018 OpenWrt.org
+
+do_load_x86_ucode() {
+ 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
+}
+
+boot_hook_add preinit_main do_load_x86_ucode
diff --git a/target/linux/x86/image/grub-iso.cfg b/target/linux/x86/image/grub-iso.cfg
index c624cbe0ee..5d128aa3aa 100644
--- a/target/linux/x86/image/grub-iso.cfg
+++ b/target/linux/x86/image/grub-iso.cfg
@@ -7,12 +7,7 @@ set root='(cd)'
menuentry "@TITLE@" {
linux /boot/vmlinuz @CMDLINE@ noinitrd
- set amd="/boot/amd-ucode.img"
- set intel="/boot/intel-ucode.img"
- if [ -s "$amd" ]; then
- initrd $amd $intel
- fi
- if [ -s "$intel" ]; then
- initrd $intel $amd
+ 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 21d719261b..a665686863 100644
--- a/target/linux/x86/image/grub.cfg
+++ b/target/linux/x86/image/grub.cfg
@@ -7,13 +7,8 @@ set root='(@ROOT@)'
menuentry "@TITLE@" {
linux /boot/vmlinuz @CMDLINE@ noinitrd
- set amd="/boot/amd-ucode.img"
- set intel="/boot/intel-ucode.img"
- if [ -s "$amd" ]; then
- initrd $amd $intel
- fi
- if [ -s "$intel" ]; then
- initrd $intel $amd
+ if [ -s /boot/intel-ucode.img ]; then
+ initrd /boot/intel-ucode.img
fi
}
menuentry "@TITLE@ (failsafe)" {