linux/drivers/firmware/efi
Matt Fleming 5a17dae422 efi: Add efi= parameter parsing to the EFI boot stub
We need a way to customize the behaviour of the EFI boot stub, in
particular, we need a way to disable the "chunking" workaround, used
when reading files from the EFI System Partition.

One of my machines doesn't cope well when reading files in 1MB chunks to
a buffer above the 4GB mark - it appears that the "chunking" bug
workaround triggers another firmware bug. This was only discovered with
commit 4bf7111f50 ("x86/efi: Support initrd loaded above 4G"), and
that commit is perfectly valid. The symptom I observed was a corrupt
initrd rather than any kind of crash.

efi= is now used to specify EFI parameters in two very different
execution environments, the EFI boot stub and during kernel boot.

There is also a slight performance optimization by enabling efi=nochunk,
but that's offset by the fact that you're more likely to run into
firmware issues, at least on x86. This is the rationale behind leaving
the workaround enabled by default.

Also provide some documentation for EFI_READ_CHUNK_SIZE and why we're
using the current value of 1MB.

Tested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Roy Franz <roy.franz@linaro.org>
Cc: Maarten Lankhorst <m.b.lankhorst@gmail.com>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Cc: Borislav Petkov <bp@suse.de>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-10-03 18:40:57 +01:00
..
libstub efi: Add efi= parameter parsing to the EFI boot stub 2014-10-03 18:40:57 +01:00
cper.c ACPI and power management updates for 3.17-rc1 2014-08-06 20:34:19 -07:00
efi-pstore.c efi-pstore: Fix an overflow on 32-bit builds 2014-06-27 07:30:32 +01:00
efi.c Merge branch 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-08-04 17:13:50 -07:00
efivars.c efi: Autoload efivars 2014-07-18 21:24:01 +01:00
Kconfig efi: efistub: Convert into static library 2014-07-18 21:22:19 +01:00
Makefile efi/reboot: Add generic wrapper around EfiResetSystem() 2014-07-18 21:23:51 +01:00
reboot.c x86/reboot: Add EFI reboot quirk for ACPI Hardware Reduced flag 2014-07-18 21:23:52 +01:00
runtime-map.c kexec: support kexec/kdump on EFI systems 2014-08-08 15:57:33 -07:00
runtime-wrappers.c efi: Implement mandatory locking for UEFI Runtime Services 2014-10-03 18:40:57 +01:00
vars.c efivars: Stop passing a struct argument to efivar_validate() 2014-04-17 13:53:43 +01:00