[PATCH 0/5] EFI capsule pstore support

From: Matt Fleming
Date: Wed Oct 16 2013 - 09:51:18 EST


From: Matt Fleming <matt.fleming@xxxxxxxxx>

The UEFI spec describes a capsule mechanism that allows data blobs to be
handed to the firmware at runtime. If the firmware doesn't recognise the
guid of the capsule and if certain flags are set in the capsule header,
the firmware will preserve the memory region containing the capsule
across a reboot. We can utilise this feature to perform crash dumps and
function tracing to aid in crash analysis.

The capsule buffers containing pstore data can be much larger than is
possible with the EFI variable pstore backend, which makes it
particularly attractive for function tracing. Futhermore, because the
memory regions containing the capsule data are registered with the
firmware prior to the crash (as opposed to efi-pstore.c which invokes
variable services from the crash handler) it's more useful for debugging
hard hangs.

Matt Fleming (5):
pstore/ftrace: Don't increment initial data offset
efi: Introduce a Runtime Services lock
efi: Add common efi_reboot() implementation
efi: Move efi_status_to_err() to efi.h
efi: Capsule update support and pstore backend

arch/ia64/kernel/efi.c | 33 +-
arch/ia64/kernel/process.c | 2 +-
arch/x86/kernel/reboot.c | 21 +-
arch/x86/platform/efi/efi.c | 108 +++++-
drivers/firmware/efi/Kconfig | 19 +
drivers/firmware/efi/Makefile | 3 +-
drivers/firmware/efi/capsule.c | 802 +++++++++++++++++++++++++++++++++++++++++
drivers/firmware/efi/efi.c | 12 +
drivers/firmware/efi/reboot.c | 37 ++
drivers/firmware/efi/vars.c | 52 +--
fs/pstore/inode.c | 1 -
include/linux/efi.h | 54 +++
12 files changed, 1072 insertions(+), 72 deletions(-)
create mode 100644 drivers/firmware/efi/capsule.c
create mode 100644 drivers/firmware/efi/reboot.c

--
1.8.1.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/