Otherwise Xen dom0 does not display "Secure boot enabled" message if it runs
on secure boot enabled platform. This happens because boot_params.secure_boot
is initialized too late. However, despite lack of message all features depending
on UEFI secure boot are enabled properly.
Orabug:
27258204
Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
/* Allocate bigger log buffer */
setup_log_buf(1);
-#ifdef CONFIG_EFI_SECURE_BOOT_SECURELEVEL
- if (boot_params.secure_boot) {
- set_bit(EFI_SECURE_BOOT, &efi.flags);
- set_securelevel(1);
- pr_info("Secure boot enabled\n");
- }
-#endif
-
reserve_initrd();
#if defined(CONFIG_ACPI) && defined(CONFIG_BLK_DEV_INITRD)
if (boot_params.secure_boot)
return 1;
+ if (!efi_enabled(EFI_RUNTIME_SERVICES))
+ return 0;
+
status = efi.get_variable((efi_char16_t*)sb_var,
&var_guid, NULL, &datasize, &sb);
boot_params.secure_boot = 1;
#ifdef CONFIG_EFI_SECURE_BOOT_SECURELEVEL
+ set_bit(EFI_SECURE_BOOT, &efi.flags);
set_securelevel(1);
+ pr_info("Secure boot enabled\n");
#endif
}
#ifdef CONFIG_X86
if (efi_enabled(EFI_RUNTIME_SERVICES))
efi_enter_virtual_mode();
- if (efi_enabled(EFI_RUNTIME_SERVICES))
- efi_secure_boot_init();
+ efi_secure_boot_init();
#endif
#ifdef CONFIG_X86_ESPFIX64
/* Should be run before the first non-init thread is created */