summaryrefslogtreecommitdiff
path: root/MdeModulePkg/Universal/Variable/Pei/Variable.c
AgeCommit message (Collapse)Author
2016-12-26MdeModulePkg: Move to new locationGuo Mang
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Guo Mang <mang.guo@intel.com>
2015-07-01MdeModulePkg VariablePei: Merge from VariablePei in SecurityPkgStar Zeng
What to do: 1. Merge from VariablePei in SecurityPkg to VariablePei in MdeModulePkg. Why to do: 1. Remove code duplication and reduce maintenance effort. The code logic of VariablePei in SecurityPkg is same with VariablePei in MdeModulePkg. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17756 6f19259b-4bc3-4df7-8a09-765794883524
2014-11-19MdeModulePkg/SecurityPkg VariablePei: Fix VS2013 build failure.Star Zeng
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16406 6f19259b-4bc3-4df7-8a09-765794883524
2014-10-31MdeModulePkg/SecurityPkg Variable: Add boundary check for while ↵Star Zeng
(IsValidVariableHeader (Variable)). Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16280 6f19259b-4bc3-4df7-8a09-765794883524
2013-07-03MdeModulePkg: Variable drivers robustly handle crashes during Reclaim().Star Zeng
PEI variable implementation checks only the variable header signature for validity. This does not seem robust if system crash occurred during previous Reclaim() operation. If the crash occurred while FTW was rewriting the variable FV, the signature could be valid even though the rest of the FV isn't valid. Solution: Add a FaultTolerantWritePei driver to check and provide the FTW last write status, then PEI variable and early phase(before FTW protocol ready) of DXE variable can check the status and determine if all or partial variable data has been backed up in spare block, and then use the backed up data. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14454 6f19259b-4bc3-4df7-8a09-765794883524
2013-01-25Variables with state VAR_ADDED&VAR_IN_DELETED_TRANSITION should be ↵lzeng14
considered as valid variables if there is no duplicated ones with VAR_ADDED state. Signed-off-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14085 6f19259b-4bc3-4df7-8a09-765794883524
2011-12-12MdeModulePkg/Variable: Check if there is a NV Variable Storage header prior ↵oliviermartin
to use its attributes The Variable PEI and RuntimeDxe drivers were using the attribute 'HeaderLength' of EFI_FIRMWARE_VOLUME_HEADER without checking if a Firmware Volume Header was existing at the base address. In case the Firmware Volume Header does not exist or is corrupted, the attribute 'HeaderLength' is a non valid value that can lead to a non valid physical address when accessing produces an access error. Signed-off-by: oliviermartin Reviewed-by: niruiyu git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12836 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-14Fix a typo in the commentsniruiyu
Signed-off-by: niruiyu git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12689 6f19259b-4bc3-4df7-8a09-765794883524
2011-10-14Fix the clang compilation failure to handle all the values in a case ↵niruiyu
statement for enum type value. Signed-off-by: Andrew Fish Reviewed-by: niruiyu git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12539 6f19259b-4bc3-4df7-8a09-765794883524
2011-10-14Change Variable driver (Pei/RuntimeDxe) to support the default variable data ↵niruiyu
stored in HOB. Signed-off-by: niruiyu Reviewed-by: erictian git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12538 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-07Remove duplicated definitions EFI_VARIABLE_INDEX_TABLE_GUID in variable PEI ↵sfu5
drivers. Reviewed-by: lgao4, gdong1 Signed-off-by: sfu5 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11755 6f19259b-4bc3-4df7-8a09-765794883524
2011-03-14judge recovery mode at ReadOnlyVariable2Ppi interface. if yes, then return ↵erictian
EFI_NOT_FOUND git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11397 6f19259b-4bc3-4df7-8a09-765794883524
2011-03-14if it's in recovery mode, variable region is unreliable, so the ↵erictian
ReadOnlyVariable2Ppi should return EFI_NOT_FOUND git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11387 6f19259b-4bc3-4df7-8a09-765794883524
2010-07-22Add 64-bit versions of FLASH Base addressess as it is legal to have them ↵andrewfish
>4G. For backward compatability if the new 64-bit base addresses are zero use the old 32-bit base addressess. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10684 6f19259b-4bc3-4df7-8a09-765794883524
2010-05-20fix a bug that FindVariable() may set GoneThrough flag wrongly when a >64K ↵erictian
variable exists. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10524 6f19259b-4bc3-4df7-8a09-765794883524
2010-04-24Update the copyright notice formathhtian
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10418 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-26Refine parameter description according to PI 1.2 errata A.xli24
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10109 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-15Fix some coding style issues in MdeModulePkg.rsun3
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9774 6f19259b-4bc3-4df7-8a09-765794883524
2009-11-17Fix parameter name in function header.xli24
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9439 6f19259b-4bc3-4df7-8a09-765794883524
2009-11-17Following 3 updates are for spec update published in PI 1.2.xli24
1. Rename EFI_PEI_NEXT_VARIABLE_NAME2 to EFI_PEI_GET_NEXT_VARIABLE_NAME2, as PI 1.2 specifies. 2. Add return status description for PEI Service FfsGetVolumeInfo. 3. Update parameter description for EFI_PEI_READ_ONLY_VARIABLE2_PPI.NextVariableName(). git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9438 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-29add assertion to pass K8 check.eric_tian
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8679 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-23refine VariablePei driver to unify the algorithm of access ↵eric_tian
VariableIndexTable among various archs. 1. record the distance of two neighboring VAR_ADDED type variables rather than the offset of each variable. As the field recording this info is UINT16 width, the latter causes in IA32/X64 platform, it can only cache those variables from offset 0 to offset 2^16; in IPF platform, from offset 0 to offset 2^18(extend the scope by left-shift the offset two bits). when taking the former algorithm, the max range of caching variable is from offset 0 to offset 122*(2^16) git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8625 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-19Fix tracker 202216:linux runtime test issue.eric_tian
[Root Cause] The root cause is that in FindVariable function, original code logic will traverse all variable stored in variable volatile/non-volatile area. If the non-variable area is full and Linux sets a new variable, the caller of GetNextVariablePtr will get the address of next memory block, but this block doesn't be reserved as RUNTIME attribute. Therefore its corresponding page translation table doesn't exist and causes linux kernel panic. Note that, Variable Pei driver has not such issue as the flash area is accessed in pre-os environment.All page table entries are filled. The access to next memory block will not cause such issue. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7910 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-271. delete Include/Guid/VariableInfo.heric_tian
2. move VariableFormat.h into GUID directory and change the “Signature” field of the VARIABLE_STORE_HEADER to gEfiVariableGuid value. 3. merging VARIABLE_INFO_ENTRY structure into the new Include/Guid/VariableFormat.h 4. change gEfiVariableInfoGuid into gEfiVariableGuid. 5. modify FDF files to use new guid value instead of the original signature. 6. all code related to signature is changed to use guid value. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7728 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-11Adjust code to fix potential array out-bound issues.qhuang8
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7502 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-02The caller of FindVariable() function ensure VariableName != NULL && ↵eric_tian
VendorGuid != NULL. In the internal of this function, we only need to ensure that (VariableName[0] != 0 && VenderGuid != NULL) is true. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7389 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-15Coding style checkedjji4
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7281 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-05As variable area is not reliable in recovery path, then we should not ↵eric_tian
produce ReadonlyVariable2 ppi at the point. This way causes other Pei module wanted to access to variable will fail git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7183 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-12code scrub on VariableRuntime Dxe drivereric_tian
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7016 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-11INF head checkedjji4
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6995 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-13Code Scrub:jji4
/MdeModulePkg/Universal/Variable/Pei/Variable.c re-scrubbed git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6477 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-12Code Scrub:jji4
MdeModulePkg\Universal\Variable\Pei git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6475 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-30Patch to remove STATIC modifier. This is on longer recommended by EFI ↵jji4
Framework coding style. All duplicated symbols has been renamed accordingly. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6296 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-17Base on PI spec, GetPeiServicesTablePointer is updated to return CONST ↵qwang12
EFI_PEI_SERVICES**. This is a incompatible changes. All file that reference this must be updated. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6127 6f19259b-4bc3-4df7-8a09-765794883524
2008-04-09Add comments and DoxyGen format for these files.lgao4
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5028 6f19259b-4bc3-4df7-8a09-765794883524
2008-03-18[Description]eric_tian
PeiGetVariable() and PeiGetNextVariableName() do not check NULL pointer access, not follow spec [Impaction] modify the Variable.c file in MdeModulePkg/Universal/Variable/Pei [Reference Info] PeiGetVariable() and PeiGetVariableName() do not follow spec git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4899 6f19259b-4bc3-4df7-8a09-765794883524
2008-02-04Add the check- in missed filegtian
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4675 6f19259b-4bc3-4df7-8a09-765794883524
2008-01-141) Replace MACRO with C functions.yshang1
2) Add HEADER_VALID_ONLY state of variable, which represents only the header is valid and the data/name is stale. This may be caused by incomplete data updating. Adding the state helps to check whether the header is valid. If variable header is valid, then we must skip the data of variable with the valid size. If the header is invalid, we should only skip the header of variable. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4555 6f19259b-4bc3-4df7-8a09-765794883524
2008-01-11Change C functions, xxxSizeOfVariable(), to MACRO, which can avoid the ICC ↵yshang1
compile error "Unspecific evaluated order". git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4552 6f19259b-4bc3-4df7-8a09-765794883524
2008-01-10Align the header of variable from 1 to 4, which can avoid the size of ↵yshang1
variable content corrupt if the critical data cross two flash block. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4543 6f19259b-4bc3-4df7-8a09-765794883524
2007-12-20Remove 'Framework' word in commentsklu2
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4403 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-04Merge the PI enabling works from the branchqwang12
First round of PI enabling work: 1) PiPeiCis changes (CONST, EFI_PEI_FILE_HANDLE.. etc) 2) Make use of FirmwareVolume 2 protocol. 3) Verified for Nt32Pkg and real platform for S3. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3773 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-19Move VariablePei/VariableDxe/EmuVarible to /Variable folder of MdeModulePkg.yshang1
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3370 6f19259b-4bc3-4df7-8a09-765794883524