diff options
-rw-r--r-- | Documentation/kernel-parameters.txt | 3 | ||||
-rw-r--r-- | Documentation/x86/x86_64/uefi.txt | 4 | ||||
-rw-r--r-- | arch/x86/kernel/efi.c | 16 |
3 files changed, 21 insertions, 2 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index da13d6d1b2b0..795c487af8e4 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -2150,6 +2150,9 @@ and is between 256 and 4096 characters. It is defined in the file | |||
2150 | usbhid.mousepoll= | 2150 | usbhid.mousepoll= |
2151 | [USBHID] The interval which mice are to be polled at. | 2151 | [USBHID] The interval which mice are to be polled at. |
2152 | 2152 | ||
2153 | add_efi_memmap [EFI; x86-32,X86-64] Include EFI memory map in | ||
2154 | kernel's map of available physical RAM. | ||
2155 | |||
2153 | vdso= [X86-32,SH,x86-64] | 2156 | vdso= [X86-32,SH,x86-64] |
2154 | vdso=2: enable compat VDSO (default with COMPAT_VDSO) | 2157 | vdso=2: enable compat VDSO (default with COMPAT_VDSO) |
2155 | vdso=1: enable VDSO (default) | 2158 | vdso=1: enable VDSO (default) |
diff --git a/Documentation/x86/x86_64/uefi.txt b/Documentation/x86/x86_64/uefi.txt index 7d77120a5184..a5e2b4fdb170 100644 --- a/Documentation/x86/x86_64/uefi.txt +++ b/Documentation/x86/x86_64/uefi.txt | |||
@@ -36,3 +36,7 @@ Mechanics: | |||
36 | services. | 36 | services. |
37 | noefi turn off all EFI runtime services | 37 | noefi turn off all EFI runtime services |
38 | reboot_type=k turn off EFI reboot runtime service | 38 | reboot_type=k turn off EFI reboot runtime service |
39 | - If the EFI memory map has additional entries not in the E820 map, | ||
40 | you can include those entries in the kernels memory map of available | ||
41 | physical RAM by using the following kernel command line parameter. | ||
42 | add_efi_memmap include EFI memory map of available physical RAM | ||
diff --git a/arch/x86/kernel/efi.c b/arch/x86/kernel/efi.c index a03ca36a302c..94382faeadb6 100644 --- a/arch/x86/kernel/efi.c +++ b/arch/x86/kernel/efi.c | |||
@@ -64,6 +64,17 @@ static int __init setup_noefi(char *arg) | |||
64 | } | 64 | } |
65 | early_param("noefi", setup_noefi); | 65 | early_param("noefi", setup_noefi); |
66 | 66 | ||
67 | int add_efi_memmap; | ||
68 | EXPORT_SYMBOL(add_efi_memmap); | ||
69 | |||
70 | static int __init setup_add_efi_memmap(char *arg) | ||
71 | { | ||
72 | add_efi_memmap = 1; | ||
73 | return 0; | ||
74 | } | ||
75 | early_param("add_efi_memmap", setup_add_efi_memmap); | ||
76 | |||
77 | |||
67 | static efi_status_t virt_efi_get_time(efi_time_t *tm, efi_time_cap_t *tc) | 78 | static efi_status_t virt_efi_get_time(efi_time_t *tm, efi_time_cap_t *tc) |
68 | { | 79 | { |
69 | return efi_call_virt2(get_time, tm, tc); | 80 | return efi_call_virt2(get_time, tm, tc); |
@@ -219,7 +230,7 @@ unsigned long efi_get_time(void) | |||
219 | * (zeropage) memory map. | 230 | * (zeropage) memory map. |
220 | */ | 231 | */ |
221 | 232 | ||
222 | static void __init add_efi_memmap(void) | 233 | static void __init do_add_efi_memmap(void) |
223 | { | 234 | { |
224 | void *p; | 235 | void *p; |
225 | 236 | ||
@@ -406,7 +417,8 @@ void __init efi_init(void) | |||
406 | if (memmap.desc_size != sizeof(efi_memory_desc_t)) | 417 | if (memmap.desc_size != sizeof(efi_memory_desc_t)) |
407 | printk(KERN_WARNING "Kernel-defined memdesc" | 418 | printk(KERN_WARNING "Kernel-defined memdesc" |
408 | "doesn't match the one from EFI!\n"); | 419 | "doesn't match the one from EFI!\n"); |
409 | add_efi_memmap(); | 420 | if (add_efi_memmap) |
421 | do_add_efi_memmap(); | ||
410 | 422 | ||
411 | /* Setup for EFI runtime service */ | 423 | /* Setup for EFI runtime service */ |
412 | reboot_type = BOOT_EFI; | 424 | reboot_type = BOOT_EFI; |