On 11/20/18 5:20 PM, Tomasz Maciej Nowak wrote:
> 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 <tome...@o2.pl>
> ---
>  target/linux/x86/base-files/lib/preinit/02_load_x86_ucode | 6 ++++--
>  target/linux/x86/image/Makefile                           | 4 ++--
>  target/linux/x86/image/grub-iso.cfg                       | 3 +++
>  target/linux/x86/image/grub.cfg                           | 3 +++
>  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

Are we sure that the early loading always works on Intel systems?
What happens when we try to load the microcode here again?

>       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

Is test needed to support "if"?

>  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
> 


Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to