Lin: Here is PR https://github.com/tianocore/edk2/pull/2748. There is the issue in the change. Please check it.
ERROR - /home/vsts/work/1/s/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c ERROR - --->Test Failed: Uncrustify Coding Standard Test NO-TARGET returned 1 Thanks Liming > -----邮件原件----- > 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 gaoliming > 发送时间: 2022年4月7日 13:05 > 收件人: 'Chen Lin Z' <lin.z.c...@intel.com>; jian.j.w...@intel.com; > dandan...@intel.com; eric.d...@intel.com; devel@edk2.groups.io > 抄送: zhuangzhi...@intel.com; di.zh...@intel.com > 主题: [edk2-devel] 回复: [PATCH-V2] Fix Setup numeric default value > incorrect issue > > Reviewed-by: Liming Gao <gaolim...@byosoft.com.cn> > > > -----邮件原件----- > > 发件人: Chen Lin Z <lin.z.c...@intel.com> > > 发送时间: 2022年4月1日 14:09 > > 收件人: jian.j.w...@intel.com; gaolim...@byosoft.com.cn; > > dandan...@intel.com; eric.d...@intel.com; devel@edk2.groups.io > > 抄送: zhuangzhi...@intel.com; di.zh...@intel.com; Chen Lin Z > > <lin.z.c...@intel.com> > > 主题: [PATCH-V2] Fix Setup numeric default value incorrect issue > > > > When default/manufacturing flag get removed from numeric varid, it can't > > get default value from StructurePcd in > 'UpdateDefaultSettingInFormPackage' > > function since there is no EFI_IFR_DEFAULT_OP opcode in IFR file. Add a > > chance to get numeric default value from StructurePcd in the case that > > numeric minimum value will be used as default value. > > > > Signed-off-by: Chen Lin Z <lin.z.c...@intel.com> > > Signed-off-by: Dandan Bi <dandan...@intel.com> > > --- > > .../Universal/HiiDatabaseDxe/ConfigRouting.c | 22 > ++++++++++++++++++ > > .../Universal/HiiDatabaseDxe/HiiDatabase.h | 23 > > +++++++++++++++++++ > > 2 files changed, 45 insertions(+) > > > > diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c > > b/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c > > index 2f792d2965..1c6af853b3 100644 > > --- a/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c > > +++ b/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c > > @@ -2171,6 +2171,7 @@ ParseIfrData ( > > UINTN PackageOffset; > > > > EFI_IFR_VARSTORE *IfrVarStore; > > > > EFI_IFR_VARSTORE_EFI *IfrEfiVarStore; > > > > + EFI_IFR_VARSTORE_EFI *IfrEfiVarStoreTmp; > > > > EFI_IFR_OP_HEADER *IfrOpHdr; > > > > EFI_IFR_ONE_OF *IfrOneOf; > > > > EFI_IFR_REF4 *IfrRef; > > > > @@ -2187,6 +2188,7 @@ ParseIfrData ( > > IFR_BLOCK_DATA *BlockData; > > > > CHAR16 *VarStoreName; > > > > UINTN NameSize; > > > > + UINTN NvDefaultStoreSize; > > > > UINT16 VarWidth; > > > > UINT16 VarDefaultId; > > > > BOOLEAN FirstOneOfOption; > > > > @@ -2212,6 +2214,7 @@ ParseIfrData ( > > SmallestDefaultId = 0xFFFF; > > > > FromOtherDefaultOpcode = FALSE; > > > > QuestionReferBitField = FALSE; > > > > + IfrEfiVarStoreTmp = NULL; > > > > > > > > // > > > > // Go through the form package to parse OpCode one by one. > > > > @@ -2303,6 +2306,17 @@ ParseIfrData ( > > } > > > > > > > > AsciiStrToUnicodeStrS ((CHAR8 *)IfrEfiVarStore->Name, > > VarStoreName, NameSize); > > > > + if (IfrEfiVarStoreTmp != NULL) { > > > > + FreePool (IfrEfiVarStoreTmp); > > > > + } > > > > + IfrEfiVarStoreTmp = AllocatePool (IfrEfiVarStore->Header.Length > + > > AsciiStrSize ((CHAR8 *)IfrEfiVarStore->Name)); > > > > + if (IfrEfiVarStoreTmp == NULL) { > > > > + Status = EFI_OUT_OF_RESOURCES; > > > > + goto Done; > > > > + } > > > > + > > > > + CopyMem (IfrEfiVarStoreTmp, IfrEfiVarStore, > > IfrEfiVarStore->Header.Length); > > > > + AsciiStrToUnicodeStrS ((CHAR8 *)IfrEfiVarStore->Name, (CHAR16 > > *)&(IfrEfiVarStoreTmp->Name[0]), AsciiStrSize ((CHAR8 > > *)IfrEfiVarStore->Name) * sizeof (CHAR16)); > > > > > > > > if (IsThisVarstore (&IfrEfiVarStore->Guid, VarStoreName, > > ConfigHdr)) { > > > > // > > > > @@ -2502,9 +2516,13 @@ ParseIfrData ( > > // > > > > // Set default value base on the DefaultId list get from IFR > data. > > > > // > > > > + NvDefaultStoreSize = PcdGetSize > > (PcdNvStoreDefaultValueBuffer); > > > > for (LinkData = DefaultIdArray->Entry.ForwardLink; > LinkData != > > &DefaultIdArray->Entry; LinkData = LinkData->ForwardLink) { > > > > DefaultDataPtr = BASE_CR (LinkData, > > IFR_DEFAULT_DATA, Entry); > > > > DefaultData.DefaultId = DefaultDataPtr->DefaultId; > > > > + if (NvDefaultStoreSize > sizeof > > (PCD_NV_STORE_DEFAULT_BUFFER_HEADER)) { > > > > + FindQuestionDefaultSetting (DefaultData.DefaultId, > > IfrEfiVarStoreTmp, &(IfrOneOf->Question), &DefaultData.Value, VarWidth, > > QuestionReferBitField); > > > > + } > > > > InsertDefaultValue (BlockData, &DefaultData); > > > > } > > > > } > > > > @@ -3192,6 +3210,10 @@ Done: > > } > > > > } > > > > > > > > + if (IfrEfiVarStoreTmp != NULL) { > > > > + FreePool (IfrEfiVarStoreTmp); > > > > + } > > > > + > > > > return Status; > > > > } > > > > > > > > diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabase.h > > b/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabase.h > > index c4ca6ad6ee..421c293cfc 100644 > > --- a/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabase.h > > +++ b/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabase.h > > @@ -2308,6 +2308,29 @@ HiiGetConfigRespInfo ( > > IN CONST EFI_HII_DATABASE_PROTOCOL *This > > > > ); > > > > > > > > +/** > > > > + Find question default value from PcdNvStoreDefaultValueBuffer > > > > + > > > > + @param DefaultId Default store ID > > > > + @param EfiVarStore Point to EFI VarStore header > > > > + @param IfrQuestionHdr Point to Question header > > > > + @param ValueBuffer Point to Buffer includes the found default > > setting > > > > + @param Width Width of the default value > > > > + @param BitFieldQuestion Whether the Question is stored in Bit field. > > > > + > > > > + @retval EFI_SUCCESS Question default value is found. > > > > + @retval EFI_NOT_FOUND Question default value is not found. > > > > +**/ > > > > +EFI_STATUS > > > > +FindQuestionDefaultSetting ( > > > > + IN UINT16 DefaultId, > > > > + IN EFI_IFR_VARSTORE_EFI *EfiVarStore, > > > > + IN EFI_IFR_QUESTION_HEADER *IfrQuestionHdr, > > > > + OUT VOID *ValueBuffer, > > > > + IN UINTN Width, > > > > + IN BOOLEAN BitFieldQuestion > > > > + ); > > > > + > > > > // > > > > // Global variables > > > > // > > > > -- > > 2.25.1 > > > > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#88565): https://edk2.groups.io/g/devel/message/88565 Mute This Topic: https://groups.io/mt/90326791/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-