]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/MdeModulePkg.dec
MdeModulePkg Variable: Introduce PcdReclaimVariableSpaceAtEndOfDxe
[mirror_edk2.git] / MdeModulePkg / MdeModulePkg.dec
index c58f424ff4b66f0ab033bf5b11b52d6402219e3f..dc795776887bface215cea9dc45dbdb70c837ce2 100644 (file)
@@ -3,7 +3,7 @@
 # It also provides the definitions(including PPIs/PROTOCOLs/GUIDs and library classes)\r
 # and libraries instances, which are used for those modules.\r
 #\r
-# Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2007 - 2015, Intel Corporation. All rights reserved.<BR>\r
 # This program and the accompanying materials are licensed and made available under \r
 # the terms and conditions of the BSD License that accompanies this distribution.  \r
 # The full text of the license may be found at\r
   #\r
   CustomizedDisplayLib|Include/Library/CustomizedDisplayLib.h\r
 \r
+  ## @libraryclass   Provides sorting functions\r
+  SortLib|Include/Library/SortLib.h\r
+\r
 [Guids]\r
   ## MdeModule package token space guid\r
   # Include/Guid/MdeModulePkgTokenSpace.h\r
   ## Include/Guid/MemoryProfile.h\r
   gEdkiiMemoryProfileGuid              = { 0x821c9a09, 0x541a, 0x40f6, { 0x9f, 0x43, 0xa, 0xd1, 0x93, 0xa1, 0x2c, 0xfe }}\r
 \r
+  ## Include/Protocol/VarErrorFlag.h\r
+  gEdkiiVarErrorFlagGuid               = { 0x4b37fe8, 0xf6ae, 0x480b, { 0xbd, 0xd5, 0x37, 0xd9, 0x8c, 0x5e, 0x89, 0xaa } }\r
+\r
 [Ppis]\r
   ## Include/Ppi/AtaController.h\r
   gPeiAtaControllerPpiGuid       = { 0xa45e60d1, 0xc719, 0x44aa, { 0xb0, 0x7a, 0xaa, 0x77, 0x7f, 0x85, 0x90, 0x6d }}\r
   #  Include/Protocol/VariableLock.h\r
   gEdkiiVariableLockProtocolGuid = { 0xcd3d0a05, 0x9e24, 0x437c, { 0xa8, 0x91, 0x1e, 0xe0, 0x53, 0xdb, 0x76, 0x38 }}\r
 \r
+  ## Include/Protocol/VarCheck.h\r
+  gEdkiiVarCheckProtocolGuid     = { 0xaf23b340, 0x97b4, 0x4685, { 0x8d, 0x4f, 0xa3, 0xf2, 0x81, 0x69, 0xb2, 0x1d } }\r
+\r
+  ## Include/Protocol/SmmVarCheck.h\r
+  gEdkiiSmmVarCheckProtocolGuid  = { 0xb0d8f3c1, 0xb7de, 0x4c11, { 0xbc, 0x89, 0x2f, 0xb5, 0x62, 0xc8, 0xc4, 0x11 } }\r
+\r
   ## This protocol is similar with DXE FVB protocol and used in the UEFI SMM evvironment.\r
   #  Include/Protocol/SmmFirmwareVolumeBlock.h\r
   gEfiSmmFirmwareVolumeBlockProtocolGuid = { 0xd326d041, 0xbd31, 0x4c01, { 0xb5, 0xa8, 0x62, 0x8b, 0xe8, 0x7f, 0x6, 0x53 }}\r
   # @Prompt Maximum HwErr variable size.\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdMaxHardwareErrorVariableSize|0x8000|UINT32|0x30000004\r
 \r
-  ## The size of reserved HwErr variable space. Note that this value must be less than or equal to PcdFlashNvStorageVariableSize.\r
+  ## The size of reserved HwErr variable space. Note that this value must be less than (PcdFlashNvStorageVariableSize - EFI_FIRMWARE_VOLUME_HEADER.HeaderLength - sizeof (VARIABLE_STORE_HEADER)).\r
   # In EdkII implementation, HwErr type variable is stored with common non-volatile variables in the same NV region.\r
-  # so the platform integrator should ensure this value is less than or equal to PcdFlashNvStorageVariableSize.\r
+  # so the platform integrator should ensure this value is less than (PcdFlashNvStorageVariableSize - EFI_FIRMWARE_VOLUME_HEADER.HeaderLength - sizeof (VARIABLE_STORE_HEADER)).\r
   # this value is used to guarantee the space of HwErr type variable and not populated by common variable.\r
   # @Prompt HwErr variable storage size.\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdHwErrStorageSize|0x0000|UINT32|0x30000006\r
 \r
+  ## The size of maximum user NV variable space.<BR><BR>\r
+  # Note that this value must be less than (PcdFlashNvStorageVariableSize - EFI_FIRMWARE_VOLUME_HEADER.HeaderLength - sizeof (VARIABLE_STORE_HEADER) - PcdHwErrStorageSize).<BR>\r
+  # If the value is 0, it means user variable share the same NV storage with system variable,\r
+  # this is designed to keep the compatibility for the platform that does not allocate special region for user variable.<BR>\r
+  # If the value is non-0, the below 4 types of variables will be regarded as System Variable, their property could be got by VarCheck protocol,\r
+  # otherwise the variable will be regarded as user variable.<BR>\r
+  #  1) UEFI defined variables (gEfiGlobalVariableGuid and gEfiImageSecurityDatabaseGuid(auth variable) variables at least).<BR>\r
+  #  2) Variables managed by Variable driver internally.<BR>\r
+  #  3) Variables need to be locked, they MUST be set by VariableLock protocol.<BR>\r
+  #  4) Important during platform boot, their property SHOULD be set by VarCheck protocol.<BR>\r
+  # The PCD is used to guarantee the space of system variable and not populated by user variable.<BR>\r
+  # @Prompt Maximum user NV variable space size.\r
+  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxUserNvVariableSpaceSize|0x00|UINT32|0x00000009\r
+\r
+  ## The size of NV variable space reserved at UEFI boottime.<BR><BR>\r
+  # Note that this value must be less than (PcdFlashNvStorageVariableSize - EFI_FIRMWARE_VOLUME_HEADER.HeaderLength - sizeof (VARIABLE_STORE_HEADER) - PcdHwErrStorageSize).<BR>\r
+  # In EdkII implementation, variable driver can reserved some NV storage region for boottime settings.\r
+  # So at UEFI runtime, the variable service consumer can not exhaust full NV storage region.<BR>\r
+  # Then the common NV variable space size at boottime will be\r
+  #  (PcdFlashNvStorageVariableSize - EFI_FIRMWARE_VOLUME_HEADER.HeaderLength - sizeof (VARIABLE_STORE_HEADER) - PcdHwErrStorageSize),<BR>\r
+  # and the common NV variable space size at runtime will be\r
+  #  (PcdFlashNvStorageVariableSize - EFI_FIRMWARE_VOLUME_HEADER.HeaderLength - sizeof (VARIABLE_STORE_HEADER) - PcdHwErrStorageSize) - PcdBoottimeReservedNvVariableSpaceSize.<BR>\r
+  # @Prompt Boottime reserved NV variable space size.\r
+  gEfiMdeModulePkgTokenSpaceGuid.PcdBoottimeReservedNvVariableSpaceSize|0x00|UINT32|0x30000007\r
+\r
+  ## Reclaim variable space at EndOfDxe.<BR><BR>\r
+  # The value is FALSE as default for compatibility that variable driver tries to reclaim variable space at ReadyToBoot event.<BR>\r
+  # If the value is set to TRUE, variable driver tries to reclaim variable space at EndOfDxe event.<BR>\r
+  # @Prompt Reclaim variable space at EndOfDxe.\r
+  gEfiMdeModulePkgTokenSpaceGuid.PcdReclaimVariableSpaceAtEndOfDxe|FALSE|BOOLEAN|0x30000008\r
+\r
   ## The size of volatile buffer. This buffer is used to store VOLATILE attribute variables.\r
   # @Prompt Variable storage size.\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize|0x10000|UINT32|0x30000005\r
 \r
   ## SMBIOS version.\r
   # @Prompt SMBIOS version.\r
-  gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion|0x0207|UINT16|0x00010055\r
+  gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion|0x0208|UINT16|0x00010055\r
 \r
   ## This PCD specifies the additional pad size in FPDT Basic Boot Performance Table for\r
   #  the extension FPDT boot records received after ReadyToBoot and before ExitBootService.\r