]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/MdeModulePkg.dec
MdeModulePkg Variable: Introduce PcdReclaimVariableSpaceAtEndOfDxe
[mirror_edk2.git] / MdeModulePkg / MdeModulePkg.dec
index 9ea8abe3b9159364c06ae52f272e5f17ca3672d7..dc795776887bface215cea9dc45dbdb70c837ce2 100644 (file)
   ## 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
   # @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