diff options
author | li-elvin <li-elvin@6f19259b-4bc3-4df7-8a09-765794883524> | 2011-09-02 11:34:35 +0000 |
---|---|---|
committer | li-elvin <li-elvin@6f19259b-4bc3-4df7-8a09-765794883524> | 2011-09-02 11:34:35 +0000 |
commit | ab7017fe2bf2c1944090d347e7853e087d8641e8 (patch) | |
tree | d7cd1ecb4d6cdf3784a139c33d1d7f1e615674a6 /MdeModulePkg/Include | |
parent | 4ff7e37b4f7e336a8ecb7080b8f48eef4b52d396 (diff) | |
download | edk2-platforms-ab7017fe2bf2c1944090d347e7853e087d8641e8.tar.xz |
Add capsule > 4GB support. When capsule data is put above 4GB, IA32 PEI transfers to long mode to get capsule data.
Signed-off-by: li-elvin
Reviewed-by: lgao4, mdkinney
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12264 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdeModulePkg/Include')
-rw-r--r-- | MdeModulePkg/Include/Guid/CapsuleVendor.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/MdeModulePkg/Include/Guid/CapsuleVendor.h b/MdeModulePkg/Include/Guid/CapsuleVendor.h index 0a1ebd94e6..15ca1055b6 100644 --- a/MdeModulePkg/Include/Guid/CapsuleVendor.h +++ b/MdeModulePkg/Include/Guid/CapsuleVendor.h @@ -9,7 +9,7 @@ @par Note: EDKII implementation of capsule updating has discarded this capsule GUID HOB data
structure and used one UEFI Capsule HOB (defined in PI Specification 1.2) instead.
-Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
The full text of the license may be found at
@@ -48,6 +48,18 @@ typedef struct { UINT32 Length; ///< Length of capsule data.
} CAPSULE_HOB_INFO;
+//
+// The variable describes the long mode buffer used by IA32 Capsule PEIM
+// to call X64 CapsuleCoalesce code to handle >4GB capsule blocks.
+//
+#define EFI_CAPSULE_LONG_MODE_BUFFER_NAME L"CapsuleLongModeBuffer"
+
+typedef struct {
+ EFI_PHYSICAL_ADDRESS PageTableAddress;
+ EFI_PHYSICAL_ADDRESS StackBaseAddress;
+ UINT64 StackSize;
+} EFI_CAPSULE_LONG_MODE_BUFFER;
+
extern EFI_GUID gEfiCapsuleVendorGuid;
#endif // #ifndef _EFI_CAPSULE_VENDOR_GUID_H_
|