From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mx.groups.io with SMTP id smtpd.web09.4366.1648711848755192056 for ; Thu, 31 Mar 2022 00:30:50 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=i4ZKsb8R; spf=pass (domain: intel.com, ip: 192.55.52.120, mailfrom: lin.z.chen@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1648711850; x=1680247850; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=LyNFUgPvJw3I6G8acNdMts8fFzzZ0oe0TZ+SbXolcoM=; b=i4ZKsb8R0sf64TbPubjFHn75MTevjJx3hiCJ0kreu38yQasxLMfgHajm vMUJZ44RLEIt+HWimL5i4GHDnPMEn33Dwzi5KitP7szPUYvEpHSlkTwtQ CaEPh3o+QOZYjPv607KbGmrLzmJhJPhoggN/6E4XpAy1URDP7Z3+Y5KI8 rQyrKTycTNi+y0/nLXFLsTsELnxV9zXm4Ta4DYFd6yGCkRg9J0n9NkjGs guIZAV1XcfW5xue1TvSNGGkK2Tt8J3ZlrY3u+9klbZOwTuV4VQSW+Ahig 6iaetJWlr84zG4SCSBbHt6g6ZG5eh3DfDnFpO8C+TtLGmjyxBSV9ejuYs Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10302"; a="258574048" X-IronPort-AV: E=Sophos;i="5.90,224,1643702400"; d="scan'208";a="258574048" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Mar 2022 00:28:57 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,224,1643702400"; d="scan'208";a="522226148" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga006.jf.intel.com with ESMTP; 31 Mar 2022 00:28:57 -0700 Received: from orsmsx606.amr.corp.intel.com (10.22.229.19) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Thu, 31 Mar 2022 00:28:56 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Thu, 31 Mar 2022 00:28:56 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.172) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Thu, 31 Mar 2022 00:28:56 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YBXm2u0/ejotenVSHJP675kz7NAxIAvpCbe2fuH6zfd+cF5lo/QpaRd2El2HmDv+FiQryykI2BBqCc4BGNRpRN5FGKU83Pl1p0CVwPxGiOqBs5JUKkdT8aSwqkTgyWZPyM95f+dE2/7QCQfRlKbq9NZzAAO2/rkVY1Qm66JTrY+hJmgXn36QLshcQSWizuoLjC3oPbWuxdVcm7pRqFpfIFsQDx6xPbEBoplx0gI9Ngk8LHOV1gG8j8q7fS7ByKweajHdG8X+vgyn5+dMCjFul+SjcJg4YMJONIo6JAIqYCRirm5qtuTobn686TCUvOj2/QYZeW2Kn5qWV2Pbowi3og== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=RgKfQ/NsURUcIUvETHEywF51+xDQ4OLf5KRp3asx6NE=; b=Vn6WLVV680oVvTmX/HmmJRz/4rF1yj4LZsp/A8Dloxmet9w7RTycoVAYO42qBC5IDrxGLVayn102w6De4OFgJJ3dKJDntrxea/C8N229zp5nGvcZy4PRSAh4L7gZjp16tWRFeXNypEWuOa1oSqFXh0OxI+NhzJB3SOxCZs92trP3/MQ2onC/Rfcq7zmLF4DxyF8gwrtShT4XvhsIAliptamM0gVF7C6h4AwVpad37dXVEkTnAisbCiiYZSnlUo4IhCvSmGuyVxH1YC3ARQeoxymI3iV/vgvv86Qp/ddNqbIKy2dfW95UMppGanELYm4Tjxw8f/Z27cFzmWyJcDWb3w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from DM6PR11MB2668.namprd11.prod.outlook.com (2603:10b6:5:c7::14) by DM5PR11MB1529.namprd11.prod.outlook.com (2603:10b6:4:b::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.21; Thu, 31 Mar 2022 07:28:54 +0000 Received: from DM6PR11MB2668.namprd11.prod.outlook.com ([fe80::a844:816b:7f99:c60e]) by DM6PR11MB2668.namprd11.prod.outlook.com ([fe80::a844:816b:7f99:c60e%4]) with mapi id 15.20.5123.021; Thu, 31 Mar 2022 07:28:54 +0000 From: "Chen Lin Z" To: "Wang, Jian J" , "Gao, Liming" , "Bi, Dandan" , "Dong, Eric" , "devel@edk2.groups.io" CC: "Li, Zhuangzhi" , "Zhang, Di" Subject: Re: [PATCH] Fix Setup numeric default value incorrect issue Thread-Topic: [PATCH] Fix Setup numeric default value incorrect issue Thread-Index: AQHYQqd8CQ/yUiH0WkGpctNyU7pld6zZHFlA Date: Thu, 31 Mar 2022 07:28:54 +0000 Message-ID: References: <949b224dbfc992759531166b24c2e0af8c10e0f0.1648473720.git.lin.z.chen@intel.com> In-Reply-To: <949b224dbfc992759531166b24c2e0af8c10e0f0.1648473720.git.lin.z.chen@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.6.401.20 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 3275f324-9b7c-4342-d955-08da12e81c4d x-ms-traffictypediagnostic: DM5PR11MB1529:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: F3h6eLv0fM+n3hdCDYfAh956tOhahxMr3wCSBbtz6ty8WPOHInAKMV1aofK5/ITNUDVblLq7InOSWMh+V2CQ2/2hn3NtvOTjQv7e9N4WXu9ieDoFlKAFI7nRmCP2qmg9lGo52VBacpqtRkTEVU60ftCgUHfq9HC9pPfrdFRx0DmXLPeQKbXk8RfHCugWnELm5e1kfZRkLULxU0pd+woosx/8CdAnDAGM/dFZddwkQ/SLJfv6VR2+YU+J/gQBMSRsO04VSOG79M9MwGvNeXiWey/kUT/pbFbm+EArkn66TBdAi7lnrMrt9hUX/PjJHsDq2gYJUOmsnykcPCzkJnoZGWk4++l/6dCZfYoz8oa95vRHVjWuwTGQO38/itNx+GDHMN5ykB5G2YgxwbBu3V79hLzmz9yT03AN9JeW19+SVZbU7VzCo8oltUa50fVuQvOVqhGipbPZ00JBrUVEwt8dWoySB2e3XuE9CKtPrBeMp72MtlpoQAlap19ZXH9ujEl9rtlMsfbufrBTfmYFpgRV1KlVLq+ZKQfGjkb9GJ/ZpnrixWCIeBT4DGA0OoyDb4qGoZ5KZY3jY73ewBRZJJkcOxj+ljxDmOgZTp0y7GQSqokhz5thOMtX03F2x7sBguTzwMntmUfAxYReqDHX1+Mbb004baL/CcGJ14BaCB1JUydqRXcDhp2/uc+yGMHZPJW5T3ZB/sMCwxu3OhfTFTR5hw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB2668.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(38100700002)(54906003)(122000001)(316002)(110136005)(5660300002)(86362001)(52536014)(66946007)(8676002)(38070700005)(82960400001)(4326008)(66476007)(66446008)(64756008)(8936002)(66556008)(76116006)(71200400001)(186003)(26005)(83380400001)(33656002)(508600001)(53546011)(9686003)(7696005)(6506007)(107886003)(55016003)(2906002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?QpQxaSWMMXOefaBfIO9N01xTiHF36ri/1PU2ZcE+XNui5g60dWwAAxJplqGn?= =?us-ascii?Q?IdBIafr7X8Fs1acXI8wnvt5bU0Y30m22uKXGAp1ajQbHPiU9HHC5c9eJ18kb?= =?us-ascii?Q?3z/xGuDFZhb4msPZwbegNHCrjpuEmpp4QIwsO5YqzA7bKT7munBHti9VzcVU?= =?us-ascii?Q?2zd3u0HrTFqW1eWMiO2OEbWYkkW+kuJko+lJ32tf//Zg1gcwy/oRlqpA+m7t?= =?us-ascii?Q?orXIET7m/cMccVAgCikuHH43yYq95Ty/PC20lmdy4z23ERopF9ovTO6GO13V?= =?us-ascii?Q?RM/yo85WmGTVutGcQ4VizzhOy2yj/MPWxkrDWoAL7d7nIvTGkTBIeTbIfwiF?= =?us-ascii?Q?vygwJu6b+QyVRUY3xZ6Z4yD8OKb4uNIPRIdhZ6ig5C7Z4DElajebXVxgZI9S?= =?us-ascii?Q?vxWAkuirMAxKvNO/J25Ns481S0d4vzrAJ2FHVCKDTNQ8BrX+P3zDICKsaPoS?= =?us-ascii?Q?Jx49ZJki2hnaiTts63C0F4HiM1jqPR3W9Ceetf/t4Z+oZRi8jFDJgCMSRAI+?= =?us-ascii?Q?GdOT7RJ27KV5dqm0hjiArlTTZ5oNCii86CdvFSzhALWP5n59AkWBG4eGbVgJ?= =?us-ascii?Q?plHAthJmA7yOJM7uCPjTMbpEHVWRIxqySKQ+vs6nplgP7B1NtSctwBccrVGY?= =?us-ascii?Q?uhoxdpyZJo/KvG+3NmqX9TErES1SBpr6Sd69AK6ac1hxICPc+9b5HJTIVR18?= =?us-ascii?Q?6FKDFYbpeE6R4Yt5CMdlEf0CjN+oeL7LNHMlxGv4OEf+vuyPoAcjaZXmzHt2?= =?us-ascii?Q?PfyHTauueVvSs9H6FiwMZ2LezerBRmMIb5vXzyBsxhvbYYG5K0qL9MOaGbzS?= =?us-ascii?Q?HsRJUkKXlOWZyRzT30ed96+hrV+1MuaWutm6T4xS7wp9680KcTGVrb+nkrBQ?= =?us-ascii?Q?X8VMz48gmJkx/BwHbzGcfKOjHNDJ9CjVhYl4SqRpHmSrnQ+QjD1WryB3KPaF?= =?us-ascii?Q?vEfWVQ9K5rnJ1CKGs2uz//oTvkOoWps7KdCeGmn2+YBfdfCxoy9EZrYVe51q?= =?us-ascii?Q?86MP3cF3yIl1P65EJz+QnqvF4zGTsFQQZK2jbubwjUT1bfw4buluBCDklN52?= =?us-ascii?Q?8JfvOTbCXj4JBR/uLImqVpS/LZ86YERohF6dTghj9rSc8F7vK0AgO+LabGvl?= =?us-ascii?Q?lKmV+G5jnx/+6gSHgAxG8zDfyZL0m3VwgwEYZxvy+9ruHDxbMPI6YyRNSk7G?= =?us-ascii?Q?PFCbRdcltOZi4kUGgFpc16LPqRzbQoS+JRk2F0lYfooceqy1WX48mFgrHge5?= =?us-ascii?Q?2eDyfpyijxLot8C2Jx5JGapZf8x0Jadb7mDPiBOROO3cAUJgvnrDlmNR5dqm?= =?us-ascii?Q?2M5AvqmbVlupicEKm0vOhQSOLww8lh7+ED0hKCUlHH7069DVKPEFvbhEIgYt?= =?us-ascii?Q?CHOAXvpIYtBIZb8+JpbwSm+y/RR7hKikwTs38mW0WQ1X7cIy0UOs/Zk/AOxF?= =?us-ascii?Q?2d7cCZ3PJpr2bXGUda19fD9UcLd/mpLDr0k4rBgc/EH3l3MpHOFpztNHuh0O?= =?us-ascii?Q?2ZalQ/NUgBlrvBSK86SL/3EWbL8TJ6N02Z2HkhdWf1U4QaJrwEfwVOqttkV2?= =?us-ascii?Q?jDU6aqZKd3F8cNezKgCWOenbybnXBSIJHA0ZYSb5ZTGQWozNedIPJg8+jtZF?= =?us-ascii?Q?QMEIXZNIjGMupuap+keaUhZryXtrJuBy7jfYTgmCoxgqrLpyw+KMwiE+HOUE?= =?us-ascii?Q?86mkfcmmZoeW8vBaJeOEESpouAobiX2kKU3Ujlvy9+ug4O2TP568Km34/3gA?= =?us-ascii?Q?g3V5EiboDA=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB2668.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3275f324-9b7c-4342-d955-08da12e81c4d X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2022 07:28:54.1360 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: AFY7esZGJeg5AvR4frVT7g/jP8mJJVgCaIC3zxROuy4socI/DDOB5aVo1OjDuhsOCx7Tl78+UobxyPmrloMfUA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR11MB1529 Return-Path: lin.z.chen@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi All, Any comments about patch ? Thanks, Lin -----Original Message----- From: Chen, Lin Z =20 Sent: Monday, March 28, 2022 9:27 PM To: Wang, Jian J ; Gao, Liming ; Bi, Dandan ; Dong, Eric ; = devel@edk2.groups.io Cc: Li, Zhuangzhi ; Zhang, Di ;= Chen, Lin Z Subject: [PATCH] Fix Setup numeric default value incorrect issue When default/manufacturing flag get removed from numeric varid, it can't ge= t default value from StructurePcd in 'UpdateDefaultSettingInFormPackage' function since there is no EFI_IFR_DEFAULT_OP opcode in IFR file. Add a cha= nce 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 Signed-off-by: Dandan Bi --- .../Universal/HiiDatabaseDxe/ConfigRouting.c | 14 +++++++++++ .../Universal/HiiDatabaseDxe/HiiDatabase.h | 23 +++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c b/MdeMod= ulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c index 2f792d2965..8bfa0f4bf1 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 *If= rOpHdr; 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 F= irstOneOfOption;@@ -2303,6 +2305,14 @@ ParseIfrData ( } AsciiStrToUnicodeStrS ((CHAR8 *)IfrEfiVarStore->Name, V= arStoreName, NameSize);+ IfrEfiVarStoreTmp =3D AllocatePool (IfrEfiV= arStore->Header.Length + AsciiStrSize ((CHAR8 *)IfrEfiVarStore->Name));+ = if (IfrEfiVarStoreTmp =3D=3D NULL) {+ Status =3D EFI_OUT_OF_R= ESOURCES;+ goto Done;+ }++ CopyMem (IfrEfiVarStoreTm= p, IfrEfiVarStore, IfrEfiVarStore->Header.Length);+ AsciiStrToUnicod= eStrS ((CHAR8 *)IfrEfiVarStore->Name, (CHAR16 *)&(IfrEfiVarStoreTmp->Name[0= ]), AsciiStrSize ((CHAR8 *)IfrEfiVarStore->Name) * sizeof (CHAR16)); = if (IsThisVarstore (&IfrEfiVarStore->Guid, VarStoreName, ConfigHdr)) { = //@@ -2502,9 +2512,13 @@ ParseIfrData ( // // Set default value base on the DefaultId list get= from IFR data. //+ NvDefaultStoreSize =3D PcdGetSize (P= cdNvStoreDefaultValueBuffer); for (LinkData =3D DefaultIdArray->E= ntry.ForwardLink; LinkData !=3D &DefaultIdArray->Entry; LinkData =3D LinkDa= ta->ForwardLink) { DefaultDataPtr =3D BASE_CR (LinkData,= IFR_DEFAULT_DATA, Entry); DefaultData.DefaultId =3D DefaultDat= aPtr->DefaultId;+ if (NvDefaultStoreSize > sizeof (PCD_NV_STORE_= DEFAULT_BUFFER_HEADER)) {+ FindQuestionDefaultSetting (Default= Data.DefaultId, IfrEfiVarStoreTmp, &(IfrOneOf->Question), &DefaultData.Valu= e, VarWidth, QuestionReferBitField);+ } InsertDefaul= tValue (BlockData, &DefaultData); } }diff --git a/MdeModu= lePkg/Universal/HiiDatabaseDxe/HiiDatabase.h b/MdeModulePkg/Universal/HiiDa= tabaseDxe/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 defa= ult value from PcdNvStoreDefaultValueBuffer++ @param DefaultId De= fault 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 Q= uestion is stored in Bit field.++ @retval EFI_SUCCESS Question defau= lt value is found.+ @retval EFI_NOT_FOUND Question default value is no= t found.+**/+EFI_STATUS+FindQuestionDefaultSetting (+ IN UINT16 = DefaultId,+ IN EFI_IFR_VARSTORE_EFI *EfiVarStore,+ IN EFI_= IFR_QUESTION_HEADER *IfrQuestionHdr,+ OUT VOID *Value= Buffer,+ IN UINTN Width,+ IN BOOLEAN = BitFieldQuestion+ );+ // // Global variables //--=20 2.25.1