Commit Graph

52 Commits

Author SHA1 Message Date
lzeng14 932e0f6628 Variables with state VAR_ADDED&VAR_IN_DELETED_TRANSITION should be 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
2013-01-25 06:17:43 +00:00
oliviermartin d65502601e MdeModulePkg/Variable: Check if there is a NV Variable Storage header prior 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-12-12 19:00:59 +00:00
niruiyu 4efa9e594a Fix a typo in the comments
Signed-off-by: niruiyu

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12689 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-14 02:41:04 +00:00
niruiyu de2a15eebb Fix the clang compilation failure to handle all the values in a case 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-14 07:46:15 +00:00
niruiyu 0f7aff7249 Change Variable driver (Pei/RuntimeDxe) to support the default variable data 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-10-14 05:19:39 +00:00
sfu5 9725730b65 Remove duplicated definitions EFI_VARIABLE_INDEX_TABLE_GUID in variable PEI 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-06-07 04:49:10 +00:00
erictian 4249fa760f judge recovery mode at ReadOnlyVariable2Ppi interface. if yes, then return EFI_NOT_FOUND
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11397 6f19259b-4bc3-4df7-8a09-765794883524
2011-03-14 09:57:55 +00:00
erictian 27ee669c69 if it's in recovery mode, variable region is unreliable, so the ReadOnlyVariable2Ppi should return EFI_NOT_FOUND
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11387 6f19259b-4bc3-4df7-8a09-765794883524
2011-03-14 05:53:05 +00:00
andrewfish 92a4f6f3c7 Add 64-bit versions of FLASH Base addressess as it is legal to have them >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-07-22 21:18:25 +00:00
erictian 2ad29d0fe4 fix a bug that FindVariable() may set GoneThrough flag wrongly when a >64K variable exists.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10524 6f19259b-4bc3-4df7-8a09-765794883524
2010-05-20 09:12:12 +00:00
hhtian e5eed7d364 Update the copyright notice format
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10418 6f19259b-4bc3-4df7-8a09-765794883524
2010-04-24 09:33:45 +00:00
xli24 f7dab9fa6d Refine parameter description according to PI 1.2 errata A.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10109 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-26 08:56:29 +00:00
lgao4 6bfbb5f0e0 1. Correct File header to ## @file
2. Remove unnecessary .common] postfix on section.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10052 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-24 00:21:16 +00:00
rsun3 aa75dfeccd Fix some coding style issues in MdeModulePkg.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9774 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-15 08:03:23 +00:00
xli24 255f993d70 Fix parameter name in function header.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9439 6f19259b-4bc3-4df7-8a09-765794883524
2009-11-17 15:12:11 +00:00
xli24 5a9403b8f3 Following 3 updates are for spec update published in PI 1.2.
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-11-17 15:00:28 +00:00
eric_tian f2a064736d add assertion to pass K8 check.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8679 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-29 09:09:59 +00:00
eric_tian 841014ba97 refine VariablePei driver to unify the algorithm of access 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-06-23 08:30:04 +00:00
eric_tian fba0ee1f4c Fix tracker 202216:linux runtime test issue.
[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-03-19 08:50:41 +00:00
eric_tian 3709c4cd5b 1. delete Include/Guid/VariableInfo.h
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-27 05:35:08 +00:00
qhuang8 96a5ac5b0d Adjust code to fix potential array out-bound issues.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7502 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-11 07:05:43 +00:00
eric_tian 6041576eb2 The caller of FindVariable() function ensure VariableName != NULL && 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-02-02 03:13:35 +00:00
jji4 b77d0076f9 Coding style checked
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7281 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-15 03:30:05 +00:00
lgao4 e561879137 Add INF extension Information
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7228 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-09 06:26:42 +00:00
jji4 964b4ecf36 INF extension reviewed
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7220 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-09 02:37:08 +00:00
jji4 e95e4b4918 INF extension reviewed
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7208 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-08 07:46:00 +00:00
eric_tian 721dfef39e As variable area is not reliable in recovery path, then we should not 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
2009-01-05 05:50:22 +00:00
jji4 2d4117c049 Typo corrected
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7152 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-30 07:06:28 +00:00
eric_tian 3d3aafc4df remedy the ppi comment. This module is always used to produced gEfiPeiReadOnlyVariable2PpiGuid but not consumes it
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7086 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-22 06:22:36 +00:00
eric_tian 7c80e839f7 code scrub on VariableRuntime Dxe driver
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7016 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-12 09:27:17 +00:00
jji4 02c57dede0 INF head checked
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6995 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-11 07:54:52 +00:00
gikidy cfc8865f17 Remove some useless EDK_RELEASE_VERSION, EFI_SPECIFICATION_VERSION ,and review VALID_ARCHITECTURES in inf files with DSC file.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6818 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-03 09:08:05 +00:00
jji4 dfc005c30f Code Scrub:
/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-13 01:47:14 +00:00
jji4 33479ddfd7 Code Scrub:
MdeModulePkg\Universal\Variable\Pei


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6475 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-12 10:30:50 +00:00
qhuang8 23837df25b Use #include "XXX.h" for module internal header files.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6342 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-31 04:42:07 +00:00
jji4 fe1e36e550 Patch to remove STATIC modifier. This is on longer recommended by EFI 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-30 06:05:06 +00:00
qwang12 284c8400e8 Base on PI spec, GetPeiServicesTablePointer is updated to return CONST 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-10-17 08:42:33 +00:00
lgao4 e872988180 remove the unused msa files in MdeModulePkg.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5726 6f19259b-4bc3-4df7-8a09-765794883524
2008-08-25 05:03:29 +00:00
lgao4 504214c487 Add comments and DoxyGen format for these files.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5028 6f19259b-4bc3-4df7-8a09-765794883524
2008-04-09 07:07:50 +00:00
eric_tian 01f352a7ca [Description]
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-03-18 06:46:10 +00:00
gtian 39aea48d30 Add the check- in missed file
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4675 6f19259b-4bc3-4df7-8a09-765794883524
2008-02-04 19:52:06 +00:00
yshang1 130e25699a 1) Replace MACRO with C functions.
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-14 06:35:23 +00:00
yshang1 ab5f0d6d12 Change C functions, xxxSizeOfVariable(), to MACRO, which can avoid the ICC 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-11 03:16:46 +00:00
yshang1 9cad030bc1 Align the header of variable from 1 to 4, which can avoid the size of 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
2008-01-10 04:26:13 +00:00
klu2 d073838628 Remove 'Framework' word in comments
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4403 6f19259b-4bc3-4df7-8a09-765794883524
2007-12-20 03:15:02 +00:00
gtian 518d395c3b define the variable related to PCD for supporting big variable (>32K) easily.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4268 6f19259b-4bc3-4df7-8a09-765794883524
2007-11-05 16:11:50 +00:00
qwang12 0c2b5da80e Merge the PI enabling works from the branch
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-09-04 06:12:48 +00:00
qhuang8 b3af5df67b Update all INF, DEC and DSC file to confirm to newest INF spec 0.44, DEC spec 0.41, DSC spec 0.40.
Mainly PCD syntax update.
Check in new build.exe and GenFds.exe
Check in PcdSyntaxUpdate.exe tool. 

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3744 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-30 09:11:54 +00:00
klu2 1e8bf44180 Correct wrong Library class's name
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3536 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-03 02:41:36 +00:00
yshang1 3cfb790c94 Retire the "Include/Common" of MdeModulePkg.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3425 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-24 10:52:02 +00:00