]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/MdeModulePkg.dec
MdeModulePkg Variable: Implement variable quota management.
[mirror_edk2.git] / MdeModulePkg / MdeModulePkg.dec
index 2e7e461c0f69f6fb02920f5b9d319ac265be5306..a4cec63a8abb8344e81eb58f1623c63b45fa2372 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
   ## 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