summaryrefslogtreecommitdiff
path: root/MdeModulePkg/Universal/PCD/Pei/Service.c
AgeCommit message (Collapse)AuthorFilesLines
2021-12-07MdeModulePkg: Apply uncrustify changesMichael Kubacki1-210/+210
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the MdeModulePkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
2021-12-07MdeModulePkg: Change OPTIONAL keyword usage styleMichael D Kinney1-2/+2
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3760 Update all use of ', OPTIONAL' to ' OPTIONAL,' for function params. Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael Kubacki <michael.kubacki@microsoft.com> Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
2019-04-09MdeModulePkg: Replace BSD License with BSD+Patent LicenseMichael D Kinney1-7/+1
https://bugzilla.tianocore.org/show_bug.cgi?id=1373 Replace BSD 2-Clause License with BSD+Patent License. This change is based on the following emails: https://lists.01.org/pipermail/edk2-devel/2019-February/036260.html https://lists.01.org/pipermail/edk2-devel/2018-October/030385.html RFCs with detailed process for the license change: V3: https://lists.01.org/pipermail/edk2-devel/2019-March/038116.html V2: https://lists.01.org/pipermail/edk2-devel/2019-March/037669.html V1: https://lists.01.org/pipermail/edk2-devel/2019-March/037500.html Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Hao Wu <hao.a.wu@intel.com> Reviewed-by: Jian J Wang <jian.j.wang@intel.com>
2018-11-27MdeModulePkg PCD: Add DynamicEx PcdVpdBaseAddress64 for non SPI platformLiming Gao1-1/+14
https://bugzilla.tianocore.org/show_bug.cgi?id=1356 Current PcdVpdBaseAddress is 32bit static Pcd. NON SPI platform needs to configure it as Dynamic PCD. Emulator platform (such as NT32) may set its value to 64bit address. To meet with this usage, 64bit DynamicEx PcdVpdBaseAddress64 is introduced. If its value is not zero, it will be used. If its value is zero, static PcdVpdBaseAddress will be used. When NON SPI platform enables VPD PCD, they need to set PcdVpdBaseAddress64. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Liming Gao <liming.gao@intel.com> Cc: Star Zeng <star.zeng@intel.com> Cc: Jian J Wang <jian.j.wang@intel.com> Cc: Dandan Bi <dandan.bi@intel.com>
2018-06-28MdeModulePkg: Clean up source filesLiming Gao1-41/+41
1. Do not use tab characters 2. No trailing white space in one line 3. All files must end with CRLF Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Star Zeng <star.zeng@intel.com>
2017-12-25MdeModulePkg: Update PCD driver to support the optimized PcdDataBaseLiming Gao1-136/+1
https://bugzilla.tianocore.org/show_bug.cgi?id=546 BaseTools will generate the optimized PCD database to save the image size at build time for multiple SKUs. The optimized PCD database layout will be like below, the PCD database will be composed of the full default SKU data (PCD_DATABASE_INIT) and the non-default SKU delta data(PCD_DATABASE_SKU_DELTA). PCD driver will build HOB to store the full default SKU data, and patch HOB data based on non-default SKU delta data for the SKU set by SetSku(), it can save memory resource at boot time. // // PCD database layout: // +---------------------------------+ // | PCD_DATABASE_INIT (DEFAULT SKU) | // +---------------------------------+ // | PCD_DATABASE_SKU_DELTA (SKU A) | // +---------------------------------+ // | PCD_DATABASE_SKU_DELTA (SKU B) | // +---------------------------------+ // | ...... | // +---------------------------------+ // BaseTools, PCD database and driver updates are needed for this proposal. For single SKU (default) case, this proposal is expected to have no impact. For multi-SKU case, PCD database format will be changed. So, PcdDataBase Version is also updated from 6 to 7. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Star Zeng <star.zeng@intel.com>
2017-03-06MdeModulePkg: Refine casting expression result to bigger sizeHao Wu1-2/+2
There are cases that the operands of an expression are all with rank less than UINT64/INT64 and the result of the expression is explicitly cast to UINT64/INT64 to fit the target size. An example will be: UINT32 a,b; // a and b can be any unsigned int type with rank less than UINT64, like // UINT8, UINT16, etc. UINT64 c; c = (UINT64) (a + b); Some static code checkers may warn that the expression result might overflow within the rank of "int" (integer promotions) and the result is then cast to a bigger size. The commit refines codes by the following rules: 1). When the expression is possible to overflow the range of unsigned int/ int: c = (UINT64)a + b; 2). When the expression will not overflow within the rank of "int", remove the explicit type casts: c = a + b; 3). When the expression will be cast to pointer of possible greater size: UINT32 a,b; VOID *c; c = (VOID *)(UINTN)(a + b); --> c = (VOID *)((UINTN)a + b); 4). When one side of a comparison expression contains only operands with rank less than UINT32: UINT8 a; UINT16 b; UINTN c; if ((UINTN)(a + b) > c) {...} --> if (((UINT32)a + b) > c) {...} For rule 4), if we remove the 'UINTN' type cast like: if (a + b > c) {...} The VS compiler will complain with warning C4018 (signed/unsigned mismatch, level 3 warning) due to promoting 'a + b' to type 'int'. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Hao Wu <hao.a.wu@intel.com> Reviewed-by: Feng Tian <feng.tian@intel.com>
2016-09-20MdeModulePkg PCD: Update PCD database structure definition to match BaseToolsStar Zeng1-2/+2
To follow PI1.4a, BaseTools has be updated to fix artificial limitation of SkuId range. This patch is to update PCD database structure definition to match BaseTools. Note: The source code and BaseTools need to be upgraded at the same time, and if they are not upgraded at the same time, build error like below will be triggered to help user identify the problem. "Please make sure the version of PCD PEIM Service and the generated PCD PEI Database match." Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
2015-07-01MdeModulePkg/Universal/PCD: Use safe string functions to refine code.Qiu Shumin1-3/+5
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Qiu Shumin <shumin.qiu@intel.com> Reviewed-by: Star Zeng <star.zeng@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17786 6f19259b-4bc3-4df7-8a09-765794883524
2015-04-14MdeModulePkg Pcd: Check the input SkuId in SetSku()Star Zeng1-1/+8
then GetSku() could return the currently active SkuId. 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@17173 6f19259b-4bc3-4df7-8a09-765794883524
2014-03-21MdeModulePkg PCD: Fix PCD driver to return default data if size mismatch.Star Zeng1-11/+29
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@15357 6f19259b-4bc3-4df7-8a09-765794883524
2013-12-02MdeModulePkg Pcd: Refine the code to avoid error report.Star Zeng1-1/+1
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Star Zeng <star.zeng@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14924 6f19259b-4bc3-4df7-8a09-765794883524
2013-11-21MdeModulePkg Pcd: Refine the code to avoid error report.Star Zeng1-0/+1
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Eric Dong <eric.dong@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14879 6f19259b-4bc3-4df7-8a09-765794883524
2013-11-20MdeModulePkg and Nt32Pkg Pcd: Add the new EFI_GET_PCD_INFO_PROTOCOL and ↵Star Zeng1-4/+0
EFI_GET_PCD_INFO_PPI support for PI 1.2.1 compliance. It has no obviously benefit to reduce size by PcdPcdInfoGeneration, so remove this PCD. And PCD_INFO_GENERATION flag can be used to enable/disable PCD info feature, a sample is added in Nt32Pkg to show how to use this flag. 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@14869 6f19259b-4bc3-4df7-8a09-765794883524
2013-11-20MdePkg and MdeModulePkg Pcd: Add the new EFI_GET_PCD_INFO_PROTOCOL and ↵Star Zeng1-22/+284
EFI_GET_PCD_INFO_PPI support for PI 1.2.1 compliance. 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@14866 6f19259b-4bc3-4df7-8a09-765794883524
2013-11-18MdePkg and MdeModulePkg Pcd: Implement PCD Driver for External PCD Database ↵Bob C Feng1-55/+138
and SKU enable Feature. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Bob C Feng <bob.c.feng@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Star Zeng <star.zeng@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14857 6f19259b-4bc3-4df7-8a09-765794883524
2012-03-06Update string offset and default offset from UINT16 to STRING_HEAD to match ↵lgao41-6/+6
the generated PCD database. Signed-off-by: lgao4 Reviewed-by: jliu66 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13081 6f19259b-4bc3-4df7-8a09-765794883524
2011-12-15Update PcdSetPtr() API to set the output buffer size to the max buffer size ↵lgao41-0/+1
when the input buffer size is larger than the max buffer size. This behavior follows API description. Signed-off-by: lgao4 Reviewed-by: jlin16 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12875 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-28Correctly use GetPtrTypeSize() to get MaxSize. lgao41-1/+1
Signed-off-by: lgao4 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12790 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-28Fix PcdSetPtr() service to use the max buffer size to check whether new ↵lgao41-3/+7
buffer data is filled into. Signed-off-by: lgao4 Reviewed-by: jlin16 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12789 6f19259b-4bc3-4df7-8a09-765794883524
2010-04-24Update the copyright notice formathhtian1-2/+2
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10418 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-181, For Pcd_PPI, UnregistedCallBack should return EFI_INVALID_PARAMETER if ↵klu21-3/+10
Callback function can not be found. 2, PCD_PPI/PROTOCOL should return EFI_INVALID_PARAMETER if size is unmatched git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10276 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-11Support HII VOID* dynamic/dynamicEx type PCD.klu21-1/+7
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9990 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-11Pass the correct TokenNumber into a CallbackOnSet notification function. ↵mdkinney1-1/+1
The value being passed in was off by 1. This would not normally cause an issue because the correct notification function was being called. There is only an issue if the same notification function is being used for multiple tokens, and the notification function needs to use the TokenNumber parameter to determine which token setting caused the callback function to be called. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9980 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-29Remove unnecessary use of FixedPcdxxx() functions and [FixedPcd] INF ↵mdkinney1-6/+6
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-14According to PI 1.2 spec Vol 3 chapter 8 PCD, if the PCD service determined ↵klu21-3/+4
that the size of the data being set was incompatible with a call to this function, PCD_PPI/PROTOCOL's SetXEx interfaces should be return EFI_INVALID_PARAEMTER instead of ASSERT(). git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9753 6f19259b-4bc3-4df7-8a09-765794883524
2009-12-03According to PI specification, if token number can not be found for ↵klu21-6/+10
dynamic-ex type PCD, return EFI_NOT_FOUND but not ASSERT(). git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9511 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-31Fix the bug that PCD driver treat StringTableIndex as UINT8 value but in ↵klu21-1/+1
fact it is UINT16 value. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8412 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-27Fix the bug that build tool and PCD driver can not deal with byte array or ↵klu21-2/+2
ANSIC type value for dynamic PCD. This patch including following change: 1) Build tools: a) StringTable in generated PCD database is changed to UINT8 array but not original UINT16, because it can also stored the ANSIC and byte array. b) The layout of string table in PCD database is changed. To make sure unicode string is in double byte aligned, the item in string table which hold unicode string value will be put ahead than other items. After unicode string item, the HII variable name item is immediate. The byte array item and ANSIC string array item will be put at tail of whole string table. c) Fix bug that build tools does not handle the size of unicode string, byte array and ANSIC string. 2) PCD PEI/DXE driver: The pointer of StringTable is changed to UINT8* but not original UINT16*. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8392 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-25Use single one PcdFrameworkCompatibilitySupport PCD to support framework HII ↵lgao41-8/+3
and FvHob. Remove patchable type Flash related PCD. Simplify single one PcdPeiFullPcdDatabaseEnable to produce full or minimal Pei PCD services. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7678 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-24Use gEfiCallerIdGuid as the private guid for PcdPeim module.lgao41-3/+3
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7653 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-09Add INF extension Informationlgao41-3/+2
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7228 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-24Code clean for Ftw driver, remove the obsolete logic for boot block. Correct ↵lgao41-1/+2
some comments in Pei Pcd driver. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7108 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-11Code Scrub for Pcd, PlatformDriOverride and PlatOverMngr driver.lgao41-4/+1
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6998 6f19259b-4bc3-4df7-8a09-765794883524
2008-07-14Code scrub for PCD PEIM. klu21-45/+141
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5461 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-09Updated modules to not depend on the IntelFrameworkPkg.AJFISH1-11/+7
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3162 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-03Import PCD dxe and PCD pei modules.vanjeff1-0/+733
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2994 6f19259b-4bc3-4df7-8a09-765794883524