Jones: UEFI spec defines this table format. And, for the a capsule with CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE flag, the firmware should install this system table for it. So, I don't agree this change.
UEFI spec 7.5.3 Update Capsule: A capsule which has the CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE Flag must have CAPSULE_FLAGS_PERSIST_ACROSS_RESET set in its header as well. Firmware that processes a capsule that has the CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE Flag set in its header will coalesce the contents of the capsule from the ScatterGatherList into a contiguous buffer and must then place a pointer to this coalesced capsule in the EFI System Table after the system has been reset. Agents searching for this capsule will look in the EFI_CONFIGURATION_TABLE and search for the capsule's GUID and associated pointer to retrieve the data after the reset. The EFI System Table entry must use the GUID from the CapsuleGuid field of the EFI_CAPSULE_HEADER. The EFI System Table entry must point to an array of capsules that contain the same CapsuleGuid value. The array must be prefixed by a UINT32 that represents the size of the array of capsules. Thanks Liming -----Original Message----- From: Peter Jones [mailto:pjo...@redhat.com] Sent: Saturday, April 11, 2015 3:02 AM To: edk2-devel@lists.sourceforge.net Subject: [edk2] [PATCH 04/11] MdePkg: Remove EFI_CAPSULE_TABLE definition from UefiSpec.h EFI_CAPSULE_TABLE is an implementation detail, and it shouldn't be defined in UefISpec.h. Additionally it currently has no consumers in this source tree. Remove it. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Peter Jones <pjo...@redhat.com> --- MdePkg/Include/Uefi/UefiSpec.h | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/MdePkg/Include/Uefi/UefiSpec.h b/MdePkg/Include/Uefi/UefiSpec.h index 64105c2..d157532 100644 --- a/MdePkg/Include/Uefi/UefiSpec.h +++ b/MdePkg/Include/Uefi/UefiSpec.h @@ -1628,22 +1628,6 @@ typedef struct { UINT32 CapsuleImageSize; } EFI_CAPSULE_HEADER; -/// -/// The EFI System Table entry must point to an array of capsules -/// that contain the same CapsuleGuid value. The array must be -/// prefixed by a UINT32 that represents the size of the array of capsules. -/// -typedef struct { - /// - /// the size of the array of capsules. - /// - UINT32 CapsuleArrayNumber; - /// - /// Point to an array of capsules that contain the same CapsuleGuid value. - /// - VOID* CapsulePtr[1]; -} EFI_CAPSULE_TABLE; - #define CAPSULE_FLAGS_PERSIST_ACROSS_RESET 0x00010000 #define CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE 0x00020000 #define CAPSULE_FLAGS_INITIATE_RESET 0x00040000 -- 2.3.5 ------------------------------------------------------------------------------ BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT Develop your own process in accordance with the BPMN 2 standard Learn Process modeling best practices with Bonita BPM through live exercises http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_ source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel ------------------------------------------------------------------------------ BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT Develop your own process in accordance with the BPMN 2 standard Learn Process modeling best practices with Bonita BPM through live exercises http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_ source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel