From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mx.groups.io with SMTP id smtpd.web11.4843.1684921647524237396 for ; Wed, 24 May 2023 02:47:27 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=XO1kiFFE; spf=pass (domain: intel.com, ip: 134.134.136.65, mailfrom: gua.guo@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1684921647; x=1716457647; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=0JlWqDhCdR7gaMu+EW/Pvwus83BIeGYbM51/P4MTD5c=; b=XO1kiFFEmE0hDbZgLG/VhM/d8Ew0+vwujBbYk6WkBicYfJSaK9Ujv1Ru mHcIOnDQv53+tRFNy3oGPnw1WqXwGkpHs12K2zBlhfW7QjhCeuojTe/Ze 9E4v10AJLdA1curQ0oxyq/ZlFs/71bKE0aJECfGpp3swYe3gIjn7H5NOH MMrJ8C4zd35RuRj9Ji54OJxOPsV1f/seCP+kcLMq5ur8iZsa75DSa7YG5 1Gmr+IoGSqCbAuqGwwLT0cYczZxCbTTMdd65iV7eN2WJ1SAcW5dtPIZ4h abXsAO0zTrZhIiDUrTZKyPbTTQxpdhWxxLBFA9/dn3kRcJPakA4QTQb2S g==; X-IronPort-AV: E=McAfee;i="6600,9927,10719"; a="356740187" X-IronPort-AV: E=Sophos;i="6.00,188,1681196400"; d="scan'208";a="356740187" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 May 2023 02:47:26 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10719"; a="794127656" X-IronPort-AV: E=Sophos;i="6.00,188,1681196400"; d="scan'208";a="794127656" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by FMSMGA003.fm.intel.com with ESMTP; 24 May 2023 02:47:26 -0700 Received: from fmsmsx601.amr.corp.intel.com (10.18.126.81) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Wed, 24 May 2023 02:47:26 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Wed, 24 May 2023 02:47:26 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.105) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Wed, 24 May 2023 02:47:24 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lhq6v5Zr1/cCE3C039V6KshpE7c35XyjO36kckZrHVD7EItVw6Ckibzi3Th3VOxlVrrImSbqtFIUGVK96agMnfXBCGX5zWbvC5XZULj0Su3SYGb1GAqjEdxibHvxspb+VxGFm48eC6XJd+2kGCgnf6gEWreWM2AYklidQnAmLNlvDyF3LXaIpNqz/vWNVVWgK8g/zSYcTA/4iRaWXsyRgQF40IaibXplxPxYKciVrcOlcUiO8lQEYEBCd4O9/yXPdzrM8k2BLWsdMVUszy9SZXU3subP7OjYiH2asQ/eodAFv30Njo9hAQbelB1ETSmH6fZeBhiGjWh0CAnurZ738A== 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=URZScCCFdZB41No8DrfM2L6Qrr48W8tGwstOlQH4JAg=; b=dTwAVOAeH6rqUu4qyJOUWXmC/j7fPdPBH5nu/DZZu41G4gtCzR+OO6h4QaldtEzqcvKm8H2x2jg+YHh83kakmrltSD+JubSGHJ80vGpN4SKMhMBYiTWPMNZaWOoHtaPTJnTLwiPddFBtXNkUdoUUK0qs6oEf/EUnD5/f3NJHVpyIX6yWYoeYCTJ0UWB5paEqPcjWjv8DT3f+SeoHz+SFBsdNPgVJgDS+MrkSEhOImyB5TDsXJpkoY26tX0UpPpEn2kDTjSLoMz1nUBqa5wy1FHuinMlYsvxtAj3AynoI3TcF/wMT9KElvZLfo2NIuN+pQvAbWnBglR5B6cc2XIBEdQ== 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 BL1PR11MB5478.namprd11.prod.outlook.com (2603:10b6:208:31d::12) by PH7PR11MB6857.namprd11.prod.outlook.com (2603:10b6:510:1ed::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6411.28; Wed, 24 May 2023 09:47:23 +0000 Received: from BL1PR11MB5478.namprd11.prod.outlook.com ([fe80::f50b:35fe:b26f:ec5d]) by BL1PR11MB5478.namprd11.prod.outlook.com ([fe80::f50b:35fe:b26f:ec5d%6]) with mapi id 15.20.6433.015; Wed, 24 May 2023 09:47:22 +0000 From: "Guo, Gua" To: "Ni, Ray" , "devel@edk2.groups.io" CC: "Kinney, Michael D" Subject: Re: [PATCH v4 1/1] PcAtChipsetPkg: RTC Runtime unable to get correct IO port by PCD Thread-Topic: [PATCH v4 1/1] PcAtChipsetPkg: RTC Runtime unable to get correct IO port by PCD Thread-Index: AQHZjhu6skGLQ4Xk0kGrZ6/wd300ca9pLISAgAAAljA= Date: Wed, 24 May 2023 09:47:22 +0000 Message-ID: References: <20230524084239.1223-1-gua.guo@intel.com> <20230524084239.1223-2-gua.guo@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BL1PR11MB5478:EE_|PH7PR11MB6857:EE_ x-ms-office365-filtering-correlation-id: 9353ca48-6f6d-4cd8-07ae-08db5c3bdfb4 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: BoAEwAps3CFQmSEkw7+shFkdqjnkBxtOMs1yOR4ekU6u8WqYGm/Jh/HVPzdtrb8m+atHgfrsBqj6Gctu3mYka4pBt6CU/AlGXdLRQWu+UB1OlLxK8MCfGuh00Xqhq+mHWtkWfAJQZ8UuIG3H2eKePUvSjo+d4tFnp1r4BHJs5lQ/e7L8weawWBFCQfUkYG+sU/XS4YEVN2Lhdvo/20ic1h4SfEBfbMDvEojXlCjGWK2cFEP2dX72skyB0E5462KWcJQVwVO3HVuQnP+QwXyfc+vQOdgnEEyK9Fp5UcBQRIf9PslJhSi+zCnZ0RdDWsXezcv7dnyOW0OZcdYcgTK4muQ29cj7I0e4CKR7lnDDJ9pxZaPuiYiVbELDrrHdKuzGEEr+5QZmR0tXqVzDv1YrFkQ8f8y0rjoiMOBDYA8lSvyBnrP7aeFZqrpPPOUf/xMUx9FuF+jHhP2p+4Nm84DJfa2vOhq3zb6fpy/4yqqnNLubhB1t7EuzbpSCWWVqRpHWa1uOx6TTuE0+adc+wKCGgbDXQ+XlbWAH6kltFStcBzjudUSZOytu2a/3ZRldneDUlr/alexdRtOgO/66jPhktV8PDmwmPPpsf9yNSaePzD0= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR11MB5478.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(6029001)(376002)(136003)(366004)(39860400002)(346002)(396003)(451199021)(86362001)(966005)(7696005)(41300700001)(478600001)(110136005)(316002)(55016003)(66446008)(64756008)(4326008)(66556008)(66476007)(71200400001)(76116006)(66946007)(52536014)(5660300002)(38070700005)(8676002)(8936002)(38100700002)(107886003)(122000001)(33656002)(9686003)(186003)(53546011)(82960400001)(6506007)(83380400001)(2906002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?0/SVBf5JPCtVP/IHVXMjt+LvX60tr7isKE+WU9hW1AUB3tN822BfwsAGB2wE?= =?us-ascii?Q?TaqWG/8ozAahqxqENB/MO2U7ChNQTfNWuxaPzLZ0/HyBMZTirX9JEpOmbdn0?= =?us-ascii?Q?I98z7vC+WIrA/SfBwPTh7dyiMZbX87qEu8BsidmxPw4tHAEO0e2mHidqJTkA?= =?us-ascii?Q?Ta1OWhSxyHwb2Lv87u5ZmJAlROQwn4lAQ6tJfrHX1lsjl+rIuNl6ZHkFnGm4?= =?us-ascii?Q?YfWkrpER+7sHSK+Vy6+zPS8vsYYQw56UstBdBt/eerrnRELJChnKHVO1kJyU?= =?us-ascii?Q?OCXehwKlqlj7yAngSSNG7cAi7FEe+rNvmc7wY49nQ7VzY7NJ41WWYnmvc09F?= =?us-ascii?Q?kcelwhXbt+anyL0MgD+a33D4cqbJtZsQmXfEN0wGIAr2Zx8T6mIXqXfI3XO1?= =?us-ascii?Q?EBrbiQXb2ruyJKZsqdRElOxlG+yrH4K51UClRZY4YXFdGMcmxgYv2P4wAPQN?= =?us-ascii?Q?ODgGeRCQKGiZTtilqCoiD2gOn3HHTtNl/buhFeUWn8AYEZQhdzKdVisOh9P5?= =?us-ascii?Q?qHMtNfBgObV4+ktw6/PZ6OYvcl6S+noG2gG1XnETCsRYrWOT1EUsLZfBAjFI?= =?us-ascii?Q?4BN8+dPbymAuhn3G1aVzXNjMwTu9kBo2fkh9dovAl3uYLviUkLwJmyhzrYja?= =?us-ascii?Q?Yr7FMD0uN5wLiFaV30/vqKhxr/+7Dt8eTub1idMeo1gLq2Qp77lL9BvoG2Cj?= =?us-ascii?Q?c2jnKuTF9yL6eIt+n1y37CQtyNdZMdw1Hs5beWZIzTfD+5d2vbAEEhpm50Y2?= =?us-ascii?Q?Fx0jGLr3ZyJpKoMHdbMdFw4WLcz/qHk3m4pF35nCqxP50lPzHk7RYzHvAHba?= =?us-ascii?Q?lWd0T8sxpwZNWI6/6/7YbJmbIBs5SWU076yYMgdW4Pj3BBhNhrYV2iLSdohn?= =?us-ascii?Q?zONLiSvVJcXWPMxUbEwLdGxngR0YQajxom6GkrLfismdj5QjdfhAzjEMNJ4+?= =?us-ascii?Q?4zBXUgtpyWMKk1JefuOfTWjrzt0/XfVPGwnRJW4JcVB4kVr9OVM3/tOkvbVp?= =?us-ascii?Q?U+nf1jregTmUbHuFir+JAmLuXzdCknn5xsjWAanFSr+OCZ+i+D6W8FbNHR2s?= =?us-ascii?Q?rIGzkR61FbGWu9Yx8XfpFXCWJ9qSB4eKiXp0/6AU7cXT7eAp1uy6QGvb1cf+?= =?us-ascii?Q?+oa9LbQobCdzqXrYIQgRRaAyGMLVq+JxAWfOffUdc9Ap6vvpZ+gwex2FGgjI?= =?us-ascii?Q?QKu2Mm8pvRIpizmBSr9HKhRzmBvegDciarvZBotdf/yNcTcJRoR6g1YfJkFJ?= =?us-ascii?Q?CjRj2Jiekz+qSg9mDtOJpDoqyb0s808P3Llv/k5jhrJb0PHkbd90t41EP+y8?= =?us-ascii?Q?LB1O3clj/b3K9pLNRUr2xh5/Q8vLQCwRga/cbBWLOMPOA8HYtiQEVRwAd+uQ?= =?us-ascii?Q?zAe6TFKoYBz2kJq9PVlAd4kr6P3xtwCstfXemuDQEQ4VAoariJ5ebU3OJvf5?= =?us-ascii?Q?LaGOazkh1vUaXWg3E87na1KzHZlOB6gielBswedGnWQuSV28u++WDxXTDO57?= =?us-ascii?Q?iZQpWtuYgHXcufEUnL1sTuiq2RjawreXo0Wj1q/EsyXUAOtv8OCWtuQ1Cw?= =?us-ascii?Q?=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL1PR11MB5478.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9353ca48-6f6d-4cd8-07ae-08db5c3bdfb4 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 May 2023 09:47:22.8969 (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: 0k6omApNkOw+0hjA7v4NiCNqdkUFuKRrxxtKYWIJdbMzP5hIpUZ/Dv4dCHHBcjuBjyUX1yyzH1q/5mwBRqFTyw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB6857 Return-Path: gua.guo@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Thanks for quickly review also update reviewed-by info on the PR. https://github.com/tianocore/edk2/pull/4416 -----Original Message----- From: Ni, Ray =20 Sent: Wednesday, May 24, 2023 5:45 PM To: Guo, Gua ; devel@edk2.groups.io Cc: Kinney, Michael D Subject: RE: [PATCH v4 1/1] PcAtChipsetPkg: RTC Runtime unable to get corre= ct IO port by PCD Reviewed-by: Ray Ni > -----Original Message----- > From: Guo, Gua > Sent: Wednesday, May 24, 2023 4:43 PM > To: devel@edk2.groups.io > Cc: Guo, Gua ; Ni, Ray ; Kinney,=20 > Michael D > Subject: [PATCH v4 1/1] PcAtChipsetPkg: RTC Runtime unable to get=20 > correct IO port by PCD >=20 > From: Gua Guo >=20 > RTC runtime is unable to get dynamic PCD value after booting to OS=20 > using runtime services. >=20 > Resolution: Cache the dynamic PCD value in RTC driver entry point >=20 > Cc: Ray Ni > Cc: Michael D Kinney > Signed-off-by: Gua Guo > --- > .../PcatRealTimeClockRuntimeDxe/PcRtc.c | 36 ++++++++++--------- > .../PcatRealTimeClockRuntimeDxe/PcRtcEntry.c | 14 ++++++-- > 2 files changed, 31 insertions(+), 19 deletions(-) >=20 > diff --git a/PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtc.c > b/PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtc.c > index d8b9fa8376..ff1b019ce2 100644 > --- a/PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtc.c > +++ b/PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtc.c > @@ -11,9 +11,11 @@ SPDX-License-Identifier: BSD-2-Clause-Patent >=20 >=20 > #include "PcRtc.h" >=20 >=20 >=20 > -extern UINTN mRtcIndexRegister; >=20 > -extern UINTN mRtcTargetRegister; >=20 > - >=20 > +extern UINTN mRtcIndexRegister; >=20 > +extern UINTN mRtcTargetRegister; >=20 > +extern UINT16 mRtcDefaultYear; >=20 > +extern UINT16 mMinimalValidYear; >=20 > +extern UINT16 mMaximalValidYear; >=20 > // >=20 > // Days of month. >=20 > // >=20 > @@ -72,10 +74,10 @@ IoRtcRead ( > ) >=20 > { >=20 > IoWrite8 ( >=20 > - PcdGet8 (PcdRtcIndexRegister), >=20 > - (UINT8)(Address | (UINT8)(IoRead8 (PcdGet8 (PcdRtcIndexRegister)) & > 0x80)) >=20 > + mRtcIndexRegister, >=20 > + (UINT8)(Address | (UINT8)(IoRead8 (mRtcIndexRegister) & 0x80)) >=20 > ); >=20 > - return IoRead8 (PcdGet8 (PcdRtcTargetRegister)); >=20 > + return IoRead8 (mRtcTargetRegister); >=20 > } >=20 >=20 >=20 > /** >=20 > @@ -94,10 +96,10 @@ IoRtcWrite ( > ) >=20 > { >=20 > IoWrite8 ( >=20 > - PcdGet8 (PcdRtcIndexRegister), >=20 > - (UINT8)(Address | (UINT8)(IoRead8 (PcdGet8 (PcdRtcIndexRegister)) & > 0x80)) >=20 > + mRtcIndexRegister, >=20 > + (UINT8)(Address | (UINT8)(IoRead8 (mRtcIndexRegister) & 0x80)) >=20 > ); >=20 > - IoWrite8 (PcdGet8 (PcdRtcTargetRegister), Data); >=20 > + IoWrite8 (mRtcTargetRegister, Data); >=20 > } >=20 >=20 >=20 > /** >=20 > @@ -317,8 +319,8 @@ PcRtcInit ( > Time.Hour =3D RTC_INIT_HOUR; >=20 > Time.Day =3D RTC_INIT_DAY; >=20 > Time.Month =3D RTC_INIT_MONTH; >=20 > - Time.Year =3D MAX (PcdGet16 (PcdRtcDefaultYear), PcdGet16 > (PcdMinimalValidYear)); >=20 > - Time.Year =3D MIN (Time.Year, PcdGet16 (PcdMaximalValidYear)); >=20 > + Time.Year =3D MAX (mRtcDefaultYear, mMinimalValidYear); >=20 > + Time.Year =3D MIN (Time.Year, mMaximalValidYear); >=20 > Time.Nanosecond =3D 0; >=20 > Time.TimeZone =3D EFI_UNSPECIFIED_TIMEZONE; >=20 > Time.Daylight =3D 0; >=20 > @@ -358,8 +360,8 @@ PcRtcInit ( > Time.Hour =3D RTC_INIT_HOUR; >=20 > Time.Day =3D RTC_INIT_DAY; >=20 > Time.Month =3D RTC_INIT_MONTH; >=20 > - Time.Year =3D MAX (PcdGet16 (PcdRtcDefaultYear), PcdGet16 > (PcdMinimalValidYear)); >=20 > - Time.Year =3D MIN (Time.Year, PcdGet16 (PcdMaximalValidYear)); >=20 > + Time.Year =3D MAX (mRtcDefaultYear, mMinimalValidYear); >=20 > + Time.Year =3D MIN (Time.Year, mMaximalValidYear); >=20 > Time.Nanosecond =3D 0; >=20 > Time.TimeZone =3D Global->SavedTimeZone; >=20 > Time.Daylight =3D Global->Daylight; >=20 > @@ -1031,8 +1033,8 @@ ConvertRtcTimeToEfiTime ( > // Century is 19 if RTC year >=3D 70, >=20 > // Century is 20 otherwise. >=20 > // >=20 > - Century =3D (UINT8)(PcdGet16 (PcdMinimalValidYear) / 100); >=20 > - if (Time->Year < PcdGet16 (PcdMinimalValidYear) % 100) { >=20 > + Century =3D (UINT8)(mMinimalValidYear / 100); >=20 > + if (Time->Year < mMinimalValidYear % 100) { >=20 > Century++; >=20 > } >=20 >=20 >=20 > @@ -1114,8 +1116,8 @@ RtcTimeFieldsValid ( > IN EFI_TIME *Time >=20 > ) >=20 > { >=20 > - if ((Time->Year < PcdGet16 (PcdMinimalValidYear)) || >=20 > - (Time->Year > PcdGet16 (PcdMaximalValidYear)) || >=20 > + if ((Time->Year < mMinimalValidYear) || >=20 > + (Time->Year > mMaximalValidYear) || >=20 > (Time->Month < 1) || >=20 > (Time->Month > 12) || >=20 > (!DayValid (Time)) || >=20 > diff --git a/PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtcEntry.c > b/PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtcEntry.c > index e6e9458d75..b600df4879 100644 > --- a/PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtcEntry.c > +++ b/PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtcEntry.c > @@ -16,8 +16,11 @@ EFI_HANDLE mHandle =3D NULL; >=20 >=20 > STATIC EFI_EVENT mVirtualAddrChangeEvent; >=20 >=20 >=20 > -UINTN mRtcIndexRegister; >=20 > -UINTN mRtcTargetRegister; >=20 > +UINTN mRtcIndexRegister; >=20 > +UINTN mRtcTargetRegister; >=20 > +UINT16 mRtcDefaultYear; >=20 > +UINT16 mMinimalValidYear; >=20 > +UINT16 mMaximalValidYear; >=20 >=20 >=20 > /** >=20 > Returns the current time and date information, and the time-keeping=20 > capabilities >=20 > @@ -164,8 +167,15 @@ InitializePcRtc ( > if (FeaturePcdGet (PcdRtcUseMmio)) { >=20 > mRtcIndexRegister =3D (UINTN)PcdGet64 (PcdRtcIndexRegister64); >=20 > mRtcTargetRegister =3D (UINTN)PcdGet64 (PcdRtcTargetRegister64); >=20 > + } else { >=20 > + mRtcIndexRegister =3D (UINTN)PcdGet8 (PcdRtcIndexRegister); >=20 > + mRtcTargetRegister =3D (UINTN)PcdGet8 (PcdRtcTargetRegister); >=20 > } >=20 >=20 >=20 > + mRtcDefaultYear =3D PcdGet16 (PcdRtcDefaultYear); >=20 > + mMinimalValidYear =3D PcdGet16 (PcdMinimalValidYear); >=20 > + mMaximalValidYear =3D PcdGet16 (PcdMaximalValidYear); >=20 > + >=20 > Status =3D PcRtcInit (&mModuleGlobal); >=20 > ASSERT_EFI_ERROR (Status); >=20 >=20 >=20 > -- > 2.39.2.windows.1