]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Include/Guid/CapsuleVendor.h
MdeModulePkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / MdeModulePkg / Include / Guid / CapsuleVendor.h
index 5f7438dc4674dc7df1c4b517d7799f06c431886d..aaa4369af6ed21f59282d166464f20ae8ca40a80 100644 (file)
@@ -1,16 +1,16 @@
 /** @file\r
+  This file defines:\r
+  * the capsule vendor GUID for capsule variables and the HOB.\r
+  * the capsule variable name.\r
+  * the capsule GUID HOB data structure.\r
+  The capsule HOB and variable can be used to store the capsule image start address and length.\r
+  They are used by EDKII implementation of capsule update across a system reset.\r
 \r
-  This file defines capsule update guid, capsule variable name and \r
-  capsule guid hob data strucutre, which are required by capsule update feature.\r
+  @par Note: EDKII implementation of capsule updating has discarded this capsule GUID HOB data\r
+             structure and used one UEFI Capsule HOB (defined in PI Specification 1.2) instead.\r
 \r
-Copyright (c) 2006 - 2008, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution.  The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
 \r
@@ -18,26 +18,42 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #define __EFI_CAPSULE_VENDOR_GUID_H__\r
 \r
 ///\r
-/// This guid is used as a variable GUID (depending on implementation)\r
-/// for the capsule variable if the capsule pointer is passes through reset\r
-/// via a variable.\r
+/// This guid is used as a variable GUID for the capsule variable\r
+/// if the capsule pointer is passed through reset via a variable.\r
+///\r
+/// This guid is also used as a hob GUID for the capsule data\r
+/// when the capsule pointer is passed from PEI phase to DXE phase.\r
 ///\r
 #define EFI_CAPSULE_VENDOR_GUID  \\r
   { 0x711C703F, 0xC285, 0x4B10, { 0xA3, 0xB0, 0x36, 0xEC, 0xBD, 0x3C, 0x8B, 0xE2 } }\r
 \r
 ///\r
-/// Name of capsule variable\r
-/// \r
+/// Name of capsule variable.\r
+///\r
 #define EFI_CAPSULE_VARIABLE_NAME L"CapsuleUpdateData"\r
 \r
-extern EFI_GUID gEfiCapsuleVendorGuid;\r
-\r
 ///\r
-/// Data structure of capsule guid hob entry\r
+/// The data structure of the capsule guid hob entry.\r
+/// Note: EDKII implementation has discarded this structure and used\r
+///       UEFI_CAPSULE_HOB instead.\r
 ///\r
 typedef struct {\r
-  EFI_PHYSICAL_ADDRESS BaseAddress;  /// Capsule data start address\r
-  UINT32 Length;                     /// Length of capsule data.\r
+  EFI_PHYSICAL_ADDRESS BaseAddress;  ///< Capsule data start address.\r
+  UINT32 Length;                     ///< Length of capsule data.\r
 } CAPSULE_HOB_INFO;\r
 \r
+//\r
+// The variable describes the long mode buffer used by IA32 Capsule PEIM\r
+// to call X64 CapsuleCoalesce code to handle >4GB capsule blocks.\r
+//\r
+#define EFI_CAPSULE_LONG_MODE_BUFFER_NAME L"CapsuleLongModeBuffer"\r
+\r
+typedef struct {\r
+  EFI_PHYSICAL_ADDRESS   PageTableAddress;\r
+  EFI_PHYSICAL_ADDRESS   StackBaseAddress;\r
+  UINT64                 StackSize;\r
+} EFI_CAPSULE_LONG_MODE_BUFFER;\r
+\r
+extern EFI_GUID gEfiCapsuleVendorGuid;\r
+\r
 #endif // #ifndef _EFI_CAPSULE_VENDOR_GUID_H_\r