public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH 0/4] ArmVirtPkg: implement basic capsule support
@ 2017-03-02 16:15 Ard Biesheuvel
  2017-03-02 16:15 ` [PATCH 1/4] ArmVirtPkg/ArmVirtPlatformLib: base boot mode on capsule presence Ard Biesheuvel
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: Ard Biesheuvel @ 2017-03-02 16:15 UTC (permalink / raw)
  To: edk2-devel, lersek, leif.lindholm; +Cc: jiewen.yao, Ard Biesheuvel

This wires up the existing basic support for capsules left in memory by
the OS across a warm reset. This involves wiring up the PEI phase modules
to preserve the capsule images before releasing the memory for normal
consumption, and some tweaks to the boot mode and BDS platform routines.

As proposed, this allows capsules to be used as a pstore backend, which
keeps the pstore payload in memory rather than in EFI variables. For
example, something like this is supported when the prerequisite Linux
patches have been merged (which are currently under review)

- modprobe capsule-pstore
- echo 1 > /sys/module/kernel/parameters/panic
- echo c > /proc/sysrq-trigger
- system reboot...
- ls -l /sys/fs/pstore/
  -r--r--r-- 1 root root 4386 Feb 12 00:31 console-efi-capsule-0
  -r--r--r-- 1 root root 9065 Feb 12 00:29 dmesg-efi-capsule-6250071391647825921
  -r--r--r-- 1 root root 9073 Feb 12 00:29 dmesg-efi-capsule-6250071391647825922
  -r--r--r-- 1 root root 9096 Feb 12 00:29 dmesg-efi-capsule-6250071391647825923
  -r--r--r-- 1 root root 9073 Feb 12 00:29 dmesg-efi-capsule-6250071391647825924
  -r--r--r-- 1 root root 9048 Feb 12 00:29 dmesg-efi-capsule-6250071391647825925

Updating the firmware image in NOR flash in this way should be feasible as
well, but this is something that builds on top of this basic capsule support,
and involves ESRT and FMP, which have far too few vowels for me to explain
what they entail.  

Ard Biesheuvel (4):
  ArmVirtPkg/ArmVirtPlatformLib: base boot mode on capsule presence
  ArmVirtPkg/ArmVirtMemoryInitPeiLib: check for capsules before memory
    init
  ArmVirtPkg/PlatformBootManagerLib: process pending capsules
  ArmVirtPkg/ArmVirtQemu: enable basic capsule support

 ArmVirtPkg/ArmVirtQemu.dsc                                             |  7 ++-
 ArmVirtPkg/ArmVirtQemu.fdf                                             |  2 +
 ArmVirtPkg/Library/ArmVirtMemoryInitPeiLib/ArmVirtMemoryInitPeiLib.c   | 60 +++++++++++++++++++-
 ArmVirtPkg/Library/ArmVirtMemoryInitPeiLib/ArmVirtMemoryInitPeiLib.inf |  9 ++-
 ArmVirtPkg/Library/ArmVirtPlatformLib/ArmVirtPlatformLib.inf           |  5 +-
 ArmVirtPkg/Library/ArmVirtPlatformLib/Virt.c                           |  4 ++
 ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBm.c                 | 17 ++++++
 ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf   |  2 +
 8 files changed, 101 insertions(+), 5 deletions(-)

-- 
2.7.4



^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2017-03-02 18:56 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-03-02 16:15 [PATCH 0/4] ArmVirtPkg: implement basic capsule support Ard Biesheuvel
2017-03-02 16:15 ` [PATCH 1/4] ArmVirtPkg/ArmVirtPlatformLib: base boot mode on capsule presence Ard Biesheuvel
2017-03-02 16:15 ` [PATCH 2/4] ArmVirtPkg/ArmVirtMemoryInitPeiLib: check for capsules before memory init Ard Biesheuvel
2017-03-02 16:15 ` [PATCH 3/4] ArmVirtPkg/PlatformBootManagerLib: process pending capsules Ard Biesheuvel
2017-03-02 16:15 ` [PATCH 4/4] ArmVirtPkg/ArmVirtQemu: enable basic capsule support Ard Biesheuvel
2017-03-02 17:09 ` [PATCH 0/4] ArmVirtPkg: implement " Laszlo Ersek
2017-03-02 17:22   ` Ard Biesheuvel
2017-03-02 18:56     ` Laszlo Ersek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox