Commit Graph

53 Commits

Author SHA1 Message Date
niruiyu 255a3f33bd Fix AutoUpdateLangVariable() logic to handle the case PlatformLang/Lang is set before PlatformLangCodes/LangCodes.
Pre-allocate pool for runtime phase.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11075 6f19259b-4bc3-4df7-8a09-765794883524
2010-11-18 01:40:22 +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
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
erictian 8e38f18ef7 variable driver doesn't support EFI_AUTHENTICATED_WRITE_ACCESS. we use:
1. EFI_INVALID_PARAMETER as a return value of SetVariable() to indicate it does not support this feature.
2. EFI_NOT_FOUND will be a return value of QueryVariableInfo() to indicate it does not support this feature.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10281 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-18 08:58:48 +00:00
mdkinney 188e4e8444 Remove unnecessary use of FixedPcdxxx() functions and [FixedPcd] INF sections. These should only be used for PCDs that are used to pre-init global variables, pre-init global structures, or size arrays.
Do some minor clean ups to INF files
 


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9868 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-29 23:39:48 +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
eric_tian 18207db786 add DataSize check to avoid PlatformLang/Lang variable is auto-mapped when try to delete these variables.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9746 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-14 07:16:22 +00:00
eric_tian 48a0e6bfbd add error handling for input parameter.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9583 6f19259b-4bc3-4df7-8a09-765794883524
2009-12-22 07:16:55 +00:00
eric_tian 9948c0b018 if PcdHwErrStorageSize is zero, it means HwErr variable store doesn't exist in Variable Region.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9252 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-10 06:51:55 +00:00
eric_tian 48cd992ac7 add assertion to ensure HwErr type variable range is less than or equal to VariableStore range.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9199 6f19259b-4bc3-4df7-8a09-765794883524
2009-08-26 02:59:28 +00:00
eric_tian bcd7070d86 fix the issue of Inadequate Memory Allocation in Variable Services
In UpdateVariableInfo(), the code incorrectly allocate a small memory, whose size equate with the number of Unicode name. 
Should change it to be equal to the byte length of this Unicode name.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8457 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-03 08:48:09 +00:00
qhuang8 a1373617d6 Fix a bug that L"PlatformLang" must be a null-terminated ASCII string according to UEFI spec.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8232 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-04 05:55:56 +00:00
gikidy 0254efc01e Replace references to RFC 3066 with RFC 4646.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8212 6f19259b-4bc3-4df7-8a09-765794883524
2009-04-30 05:32:11 +00:00
qhuang8 bd397350b4 Fix bug in variable driver about the incorrect usage for GetBestLanguage(), which expects the NULL to be the last var arg
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8195 6f19259b-4bc3-4df7-8a09-765794883524
2009-04-28 03:32:24 +00:00
eric_tian 72399daee4 update platformlangcodes and langcodes to adapt new language convert algorithm.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8184 6f19259b-4bc3-4df7-8a09-765794883524
2009-04-27 07:06:01 +00:00
eric_tian 2fcdca1d73 1. The original code has a bug on calculate the size of SCRATCH_SIZE. It should be maximum value between PcdMaxVariableSize and PcdMaxHardwareErrorVariableSize.
2. Boot time variable reclaim issue is caused by incorrect flash layout. Platform integrator should ensure that the size of variable region must less than FTW spare space size.
3. Per UEFI Specification, variables of attribute HARDWARE_ERROR_RECORD are guaranteed to have its own storage space size.original implementation doesn’t meet this requirement 

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8029 6f19259b-4bc3-4df7-8a09-765794883524
2009-04-07 06:42:12 +00:00
eric_tian 6f90dfbc0d update the QueryVariableInfo interface to first determine if the pointer checked is pointing to a memory address inside Variable area.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7969 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-27 05:05:48 +00:00
eric_tian 533020ef80 close notify event to avoid variable architectural protocol to be installed twice or more.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7904 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-19 03:13:08 +00:00
eric_tian 7974918212 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.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7890 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-16 09:57:10 +00:00
lgao4 f0480ecf80 Fix K8 check error.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7849 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-10 08:40:29 +00:00
lgao4 e51d07a670 remove unused local variable FvbHandle
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7839 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-10 00:56:48 +00:00
eric_tian 8a9e0b7274 1. retire the FvbServiceLib. Directly locating FVB protocol to access interfaces.
2. modify the method of getting right FVB protocol interface. move the notification event of FVB installation into variable driver. and also move ExitBootService event into variable driver.
3. use EFI_FVB2_WRITE_STATUS flag to distinct whether the FVB protocol supports writing operation or not.Currently, DxeCore installs FVB which has ~EFI_FVB2_WRITE_STATUS(that is, disable write) attrbiute. FvbRuntimeDxe driver should provide a full FVB protocol, which returns EFI_FVB2_WRITE_STATUS attribute to signify itself provide writable FVB protocol. So other modules which need write data by FVB protocol can locate it correctly.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7835 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-09 06:39:13 +00:00
eric_tian 5bb820af59 1. add missing free operation in conditional branch.
2. when variable store header is invalid status, we will return EFI_VOLUME_CORRUPTED to let code assert, which is helpful to find root cause quickly.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7804 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-05 02:59:11 +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
vanjeff 892b7f90c5 add NULL pointer check.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7506 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-12 01:55:32 +00:00
qhuang8 8ed62a3035 Fix minor build issue.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7465 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-06 07:42:00 +00:00
eric_tian c24b392c30 fix ecc warning
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7456 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-06 05:37:46 +00:00
jji4 01a5c99447 use the GUIDed versions of events listed below: EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE and EVT_SIGNAL_EXIT_BOOT_SERVICES
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7420 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-03 11:09:53 +00:00
qwang12 fd0fd8918e Remove the accidental check in of test code.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7392 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-02 07:27:44 +00:00
qwang12 bc166db311 Add in ASSERT to check out-of-bound and possible dereference of NULL pointers.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7391 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-02 07:18:59 +00:00
jji4 e6c4ef1336 Source level security checked
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7297 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-16 08:14:39 +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
eric_tian 45f6c85bb1 code scrub on VariableRuntime Dxe driver
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7017 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-12 09:48:24 +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 aa79b0b379 Global variables have been moved backward ahead of functions.
Only a few cases were left due to its module structure.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6816 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-03 08:52:39 +00:00
qwang12 49e7092714 Add in local variable to ensure that "operands are evaluated in specified order".
Otherwise, Intel ICC report "operands are evaluated in unspecified order" build error.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6231 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-26 07:32:20 +00:00
mdkinney 5ead4a07a8 If there are variables in the VAR_ADDED state that are identical to the variable being updated during reclaim, then only keep the variable being updated and delete variables in the VAR_ADDED state.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6104 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-11 23:44:40 +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
yshang1 814bae5269 [Description]:
The patch enhanced variable services to support:
1) If adding variable does not execute completely, the state is in_deleted, the next time find variable should have to retrieve the in_deleted variable.
2) when Reclaiming the variable storage, the 1) variable should be considered.

[Impaction]:
This is backward-compatible update.

[Reference Info]:
9552, 8632

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4916 6f19259b-4bc3-4df7-8a09-765794883524
2008-03-19 07:09:03 +00:00
lgao4 7800593dca Reclaim occurs as late as possible before OS boot for keep enough space used by OS
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4574 6f19259b-4bc3-4df7-8a09-765794883524
2008-01-17 09:59:51 +00:00
yshang1 77aa51cd89 Fix bug that failed to reclaim the variable.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4556 6f19259b-4bc3-4df7-8a09-765794883524
2008-01-15 13:02:26 +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
yshang1 fdb7765f2d 1) Fix the bug that Variable Cache Search does not be protected by lock during boot time. It potentially results in the info from GetVariable() is not correct.
2) Check the integrity of Variable header. In original implementation, if not whole header is correct, then the variable will be treat as invalid. typically, if the NameSize has been programed but the DataSize not, then the variable storage would failed to set new variable.
3) Change the Variable Header Alignment from 1 to 4 bytes on x86. It avoids the DataSize or NameSize cross two blocks. For example, in original implementation, if the NameSize crosses two block, when the FLASH manipulation is interrupted after programed HSB of NameSize and prior to program LSB of NameSize on next block, then the invalid variable header will result in the Variable Storgae broken.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4538 6f19259b-4bc3-4df7-8a09-765794883524
2008-01-09 10:10:16 +00:00
qhuang8 aa09397b3c Fix a bug in variable driver cache mechanism:
It should return EFI_SUCCESS and update the output buffer size if the input buffer is larger than actual variable contents.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4182 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-19 08:49:20 +00:00
qwang12 36873a6195 Fix a bug. FindVariable now search volatile variable first (previously NV variable first) for performance reason. Therefore, RuntimeServiceGetNextVariableName is updated based on this change.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4056 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-09 05:42:37 +00:00
AJFISH fd51bf702f Fix a bug with changing the NVRAM properties of a Variable
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4030 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-06 17:02:23 +00:00
AJFISH 052ad7e191 Update comments in Variable driver and removed references to FLASH Map Hob in INF files
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4019 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-05 14:40:23 +00:00
AJFISH 33a5a666a4 Add Profiling support for Variable store and added a specialized caching algorithm
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4015 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-04 21:01:21 +00:00