aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Young <dyoung@redhat.com>2014-08-14 05:15:28 -0400
committerMatt Fleming <matt.fleming@intel.com>2014-10-03 13:40:59 -0400
commit5ae3683c380e78aebc60d710617ba2c0dccc9e84 (patch)
tree27bbb57319052f020bd06f11dcfdd1d61538bfab
parent6ccc72b87b83ece31c2a75bbe07f440b0378f7a9 (diff)
efi: Add kernel param efi=noruntime
noefi kernel param means actually disabling efi runtime, Per suggestion from Leif Lindholm efi=noruntime should be better. But since noefi is already used in X86 thus just adding another param efi=noruntime for same purpose. Signed-off-by: Dave Young <dyoung@redhat.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
-rw-r--r--Documentation/kernel-parameters.txt3
-rw-r--r--arch/x86/platform/efi/efi.c4
-rw-r--r--drivers/firmware/efi/efi.c9
3 files changed, 13 insertions, 3 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 08df275eee2b..d0e431611a04 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -992,13 +992,14 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
992 Format: {"off" | "on" | "skip[mbr]"} 992 Format: {"off" | "on" | "skip[mbr]"}
993 993
994 efi= [EFI] 994 efi= [EFI]
995 Format: { "old_map", "nochunk" } 995 Format: { "old_map", "nochunk", "noruntime" }
996 old_map [X86-64]: switch to the old ioremap-based EFI 996 old_map [X86-64]: switch to the old ioremap-based EFI
997 runtime services mapping. 32-bit still uses this one by 997 runtime services mapping. 32-bit still uses this one by
998 default. 998 default.
999 nochunk: disable reading files in "chunks" in the EFI 999 nochunk: disable reading files in "chunks" in the EFI
1000 boot stub, as chunking can cause problems with some 1000 boot stub, as chunking can cause problems with some
1001 firmware implementations. 1001 firmware implementations.
1002 noruntime : disable EFI runtime services support
1002 1003
1003 efi_no_storage_paranoia [EFI; X86] 1004 efi_no_storage_paranoia [EFI; X86]
1004 Using this parameter you can use more than 50% of 1005 Using this parameter you can use more than 50% of
diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c
index c73a7df5d37f..00f4cc566adb 100644
--- a/arch/x86/platform/efi/efi.c
+++ b/arch/x86/platform/efi/efi.c
@@ -930,11 +930,11 @@ u64 efi_mem_attributes(unsigned long phys_addr)
930 return 0; 930 return 0;
931} 931}
932 932
933static int __init parse_efi_cmdline(char *str) 933static int __init arch_parse_efi_cmdline(char *str)
934{ 934{
935 if (parse_option_str(str, "old_map")) 935 if (parse_option_str(str, "old_map"))
936 set_bit(EFI_OLD_MEMMAP, &efi.flags); 936 set_bit(EFI_OLD_MEMMAP, &efi.flags);
937 937
938 return 0; 938 return 0;
939} 939}
940early_param("efi", parse_efi_cmdline); 940early_param("efi", arch_parse_efi_cmdline);
diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c
index c8f01a73edb5..cebfa36a27ae 100644
--- a/drivers/firmware/efi/efi.c
+++ b/drivers/firmware/efi/efi.c
@@ -54,6 +54,15 @@ bool efi_runtime_disabled(void)
54 return disable_runtime; 54 return disable_runtime;
55} 55}
56 56
57static int __init parse_efi_cmdline(char *str)
58{
59 if (parse_option_str(str, "noruntime"))
60 disable_runtime = true;
61
62 return 0;
63}
64early_param("efi", parse_efi_cmdline);
65
57static struct kobject *efi_kobj; 66static struct kobject *efi_kobj;
58static struct kobject *efivars_kobj; 67static struct kobject *efivars_kobj;
59 68