[PATCH v6 0/2] Add capsule-pstore backend support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Change Log v5->v6:
  Part1: No changes.
  Part2: Update capsule-pstore.c file header.
         Move the variable 'efi_capsule_pstore_info' backward (for removing some function declarations).


History:
  The v5 was sent about two years ago [1]. At that time there was a concern about the EFI system table
  entry 'CapsulePtr' as below: whether it was an array of capsules or an array of pointers to capsules.

      typedef struct { UINT32 CapsuleArrayNumber; VOID* CapsulePtr[1]; } EFI_CAPSULE_TABLE;

  The latest UEFI specification v2.8 [2] has a clarification in P268 for 'CapsulePtr'  as below:

      "CapsulePtr A pointer to an array of capsules that contain the same CapsuleGuid value.
       Each CapsulePtr points to an instance of an EFI_CAPSULE_HEADER, with the capsule data
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
       concatenated on its end."
       ^^^^^^^^^^^^^^^^^^^^^^^

  According to the highlighted description above, the 'CapsulePtr' should be an array of pointers to capsules.
  The capsule-pstore driver and the tested BIOS also use the 'CapsulePtr' as an array of pointers to capsules.


Test:
  The v6 is well-tested on an Intel Kaby Lake client platform + BIOS(10/24/2016) and an Intel Ice Lake
  client platform + BIOS(09/12/2019).

Reference:
  [1] https://lore.kernel.org/linux-efi/?q=capsule-pstore
  [2] https://uefi.org/sites/default/files/resources/UEFI_Spec_2_8_A_Feb14.pdf 

Qiuxu Zhuo (2):
  efi: Add 'nr_config_table' variable in efi structure
  eif/capsule-pstore: Add capsule pstore backend

 arch/x86/platform/efi/efi.c           |   1 +
 drivers/firmware/efi/Kconfig          |  21 +
 drivers/firmware/efi/Makefile         |   1 +
 drivers/firmware/efi/arm-init.c       |   4 +-
 drivers/firmware/efi/capsule-pstore.c | 692 ++++++++++++++++++++++++++
 drivers/firmware/efi/efi.c            |   1 +
 include/linux/efi.h                   |   1 +
 7 files changed, 720 insertions(+), 1 deletion(-)
 create mode 100644 drivers/firmware/efi/capsule-pstore.c

-- 
2.17.1




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux