From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mx.groups.io with SMTP id smtpd.web11.4812.1684921492758925421 for ; Wed, 24 May 2023 02:44:52 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=CZ1c8DIZ; spf=pass (domain: intel.com, ip: 192.55.52.43, mailfrom: ray.ni@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1684921492; x=1716457492; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=8D6jog0V9xZ7RxPNpH7jDUVx3r4uRRxy0ZukBmK5ZWA=; b=CZ1c8DIZ3PZleleeChuXoBQaHR2hDNJFCIFZgzvUCvdrgwpIabdbTRaU mj1huixMnTQDDzoqovshlxrUUyUSlTQbkzDP1RI9TTyq/ZZHIDkSRbs4P TEK0EAgSVYW5ufi5N7k2XUF1uepAN54YhOufh/Z1gxaUhzdTmH5foLO2D AQ37c1cJ+tIdD/znCdW1G861bFWAgJs7XST2AJ4qSCC12UjZIaFhK1Q2a yZFQ11HhaTfUiY7TPKNtz3ABn2X3Ilf42QcmAlMNkVMGmdkuPi41I/h8L wuYwgBfogxRzNKlYpjn0ENFBDNA1piQWekRs5MYuEmPH4Y3PZMiYPDdUw Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10719"; a="439871060" X-IronPort-AV: E=Sophos;i="6.00,188,1681196400"; d="scan'208";a="439871060" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 May 2023 02:44:47 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10719"; a="707452224" X-IronPort-AV: E=Sophos;i="6.00,188,1681196400"; d="scan'208";a="707452224" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga007.fm.intel.com with ESMTP; 24 May 2023 02:44:47 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) 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.2507.23; Wed, 24 May 2023 02:44:46 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX611.amr.corp.intel.com (10.22.229.24) 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:44:46 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx610.amr.corp.intel.com (10.22.229.23) 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:44:46 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.170) 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.2507.23; Wed, 24 May 2023 02:44:46 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=k4VtJQ6QhI7JARtu5wfKzfFnwN8pm7LDELJGsNMAGb3tP4tFbvVP35rLFguOkdFPAxAb+GLsXrkyeisaWgS4Bpo/GcKGg3u/RP+1QhPK2ROxuBp9w9xCvUoBTo3JR8KGyMc6Ch05AY59dltYvFRV5ATktzKScfrxwS3yiIAj45UJOPN93xose/DbaQYuZYrNAUocXA7sa3xXJUGt0wncTeAQGSECt2qdndbpr/nDYfyYBOS5Ne/wB0LCNj+Lxa/M8lM3CN0uiCEMlLGNIE/danYLW4jm3ZJCyki/J3ngPgH8CZF8t9ROoivCFJTTJd8HSPsK8wNlr7AXa+y4DUX1Qg== 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=lktrcPqD3apcikQOGrE1qp2iF3FJuxyCbJNhBs4onpg=; b=Uytvslhvw8TMtkhZKRnXZRBYDfApmF9oSsLMv3bcsE/0wOEui1dWpibXTwnuK/6XEUquumDyejSIiD9p498oFMdgbHp69OYLRxgfsuZ7Sk9llGakI56K2DYVSpbkolVV29NkLByqOCrYYwD63PscVZW5K4Rvp9eL1G9Jm+6FZLnBK8zr6vumWPBci4m9CQloM6c6861oh6Y+xkJl29YjvXGkCYdQ1QLYuyYZRkyHPH7Bf3gT8fFqLPSPqjAeXd3Fi4RQPEFNaM6jVi3vzKbeqQk8d0w5xuNybfXCKeie2MKVLVxtXUGeTTIFGiCfOd0xJ9/ZYqik7V0oe+oH/VIMBg== 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 MN6PR11MB8244.namprd11.prod.outlook.com (2603:10b6:208:470::14) by SJ2PR11MB8348.namprd11.prod.outlook.com (2603:10b6:a03:53a::16) 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:44:44 +0000 Received: from MN6PR11MB8244.namprd11.prod.outlook.com ([fe80::892b:b8e6:bab7:635d]) by MN6PR11MB8244.namprd11.prod.outlook.com ([fe80::892b:b8e6:bab7:635d%5]) with mapi id 15.20.6411.028; Wed, 24 May 2023 09:44:44 +0000 From: "Ni, Ray" To: "Guo, Gua" , "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: AQHZjhu6ytUiKc54R0iBBN5ftAg+Xq9pLHUw Date: Wed, 24 May 2023 09:44:43 +0000 Message-ID: References: <20230524084239.1223-1-gua.guo@intel.com> <20230524084239.1223-2-gua.guo@intel.com> In-Reply-To: <20230524084239.1223-2-gua.guo@intel.com> 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: MN6PR11MB8244:EE_|SJ2PR11MB8348:EE_ x-ms-office365-filtering-correlation-id: e26052ac-2337-4602-ab68-08db5c3b8073 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: EG6DLXk/2iXZupsO75mF7mwvF3eUDa42BZj8euLjxr2yBqd+6+v0PvrLrr2Rj1cMYijl2uoQUIxyUkgcpdLWLfrORPE2imDCmnAHeMtBQfwBnC/S8UlGcQCOP4+11E0fK3LXl1rFYML1npaTcEOMg/vcJgObsQPTNlTKOEIYUtgVa9vRyK4SuZufIkv2wwocGG45gMkzUKGQdoF+sbYacRGiJWQ/Y/QphYSq7wbplQxclB9fNdz/YJ1kVzQDzK4fGH3SqNxz2tC5R69nQYA6KxCvDgaPU52gaiwaPKSfR7YwiYefREC+nOiBEymyDZxp5/tGjT6k/gCXSBJyfyVvJ97F9oVKAf82XunYNxuqa1g14b7J5+vQ3uTHnfNb5zVm8oa4KcQ/xCjsNCAweF9wUf3YA88NNHVa5y/ak2B+wM8daTEFJPI1pVEgyvN7pIx/19jsqMAXNvRJ8k6YnnY7QKaeIpfOsYNoAxV8fYnHvcmMos2tCXFA9fCRK3CfqITK4pMgA2Rh+SKBBWVMxnBISjrkkX/FAxcmxaof9Asuu7oyymU9ADgJaQYHYvW0cFhgAaV6VgeHD2U8QaI3sGhMKd0Ek+h2+JzcSAaFCNwavNF8j6aOYvPVKjCr9g/kwgdm x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN6PR11MB8244.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(6029001)(39860400002)(346002)(396003)(366004)(376002)(136003)(451199021)(8936002)(8676002)(5660300002)(52536014)(186003)(83380400001)(107886003)(6506007)(26005)(9686003)(53546011)(86362001)(122000001)(38100700002)(82960400001)(38070700005)(41300700001)(7696005)(71200400001)(66946007)(33656002)(55016003)(66446008)(66556008)(64756008)(66476007)(76116006)(4326008)(316002)(478600001)(110136005)(2906002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?x1t8lMsZ05E+h4wwbGfiuuItjkU50L4Jj4x37IY0hPa6DteCRHjRs3uNR3JA?= =?us-ascii?Q?mXvNdaqCxxmJkTMwcbnXmGd5c1KN2gBa7f2w/AzjQE2Nc3LBq7mMMvhyWZUi?= =?us-ascii?Q?W5Mr51YMYOdP81kZZG0t6ckMOnVzop2MDuL7ZbuhF1c1SYez+fyqwjVyqfjU?= =?us-ascii?Q?diYNYRhuXaDzI+Ik3HzsUM21EHnjUlrVU2qvWfbBKyCh/tMRSTBMZyiC8lgO?= =?us-ascii?Q?KM8/ieHvu1dgl0DW1Yz7vh20SeXDTZ+QtWMKBKdxSPksGbe7n4Rzd2own4cA?= =?us-ascii?Q?qWzHHbJeiNsCoIMT2fxl3sTeTf97P8WHv8XtkaR7+WUzsfDqTU6DBxGenUy4?= =?us-ascii?Q?FwXEnSHl/dQmT+o0dpgUssQOJTev3tSApRUsMsQFN+T/REexmv1nQTbDb5e1?= =?us-ascii?Q?cJiJ1V4WTrZYzPq1taPMDbfyuVOd9/+5H7dEkKz/4MojxMa60GXqd3iDjSVR?= =?us-ascii?Q?6zu0oCC1Z/WteM/z2FYvDutBrRvghWH1bBdqhTWxQjO1YpNnQXc/jx6rznrK?= =?us-ascii?Q?HcKjD/aWwuJDQ42kFWzKkx9WZQ8Ax2cIoQo8STyacJtxjfLRvdcivDcLq8ZI?= =?us-ascii?Q?oaAbiLKrj72Xn0iQtEbrVTWX2S0+Cp6UKCNUdNDYwX0Y5Z2elGmvwfbyJ1/0?= =?us-ascii?Q?PBZSs1fhrM8KJJjd2U/yceMjlffx33V0aHYPBCQXjAdvDl7r/2ykM+EDyqqB?= =?us-ascii?Q?2uQ1uC1Ecy3K2P4auGtlOWupBUttU4BM5ezcu+rRYIXimHX1WL8e1Ol1b+0c?= =?us-ascii?Q?olVdej5B4dX11yAbCeG8RMaiYeL0Pug9fmVFtUKQT0Yq7pUYdGOXccNjtiox?= =?us-ascii?Q?GEz1QRaFnJ+oIKixz/5ez4ts6RVqB4SjYqdaUynlfd3Po/6fqeJagKSKms9I?= =?us-ascii?Q?WwRvIkzJ9tMQgZ+WcGetzcjwzkigirNpJE0uNXjSugQtv2+xQzm2cB/aV4Wu?= =?us-ascii?Q?OXwkEfb/ExAJfPM25rpBtzCu7HpzvvjeBZoe1dJiNsb1Sy9p1K24xFcuKT4J?= =?us-ascii?Q?3dwnh5Ah/IRF8bOlt000IXBhr4yCtz0reLDzghkUQtwpgUapdAmouRCj91ZJ?= =?us-ascii?Q?owEmDanONToRC3Nzc3Fn0CMgISZdo4P7Npk5BI2Didw+lYyBqMSF6uuEo+vG?= =?us-ascii?Q?DnVdNXHMojup7U/WCNfp/AXcQFnDCF76XBH6d3AXsI1oAd0UZUqG+ul+aJbb?= =?us-ascii?Q?esuTk8Jq6UhaycgTo6BikAG6Fu2szriD235FA+N4pcpR0ijM8XNviCGU110Y?= =?us-ascii?Q?40Z5qteqqqFUQZCEaNsUAYZfHl/f04HsgYNyMw+Uo83Cn85odsOP7wVAYlux?= =?us-ascii?Q?1O/smhxWi6jSV905iiunHxoGY7L3VKP2eyWEFtAAKDSFgoDrvs1APLJFJQgS?= =?us-ascii?Q?L9Xi2DCgfmfqevKOGyAmaXfLmSHFRSeNwTWObVRVhLqPNUXb7c7wPI5n8cLK?= =?us-ascii?Q?rVkGd9nXgvOMcFCPSvALyoJBq+lu3lmtxAZjxQQ9KTmKe53u5tCZNBRCtaqp?= =?us-ascii?Q?uDIgJ15+BMQp8wjri1oUeU5EMowEv0ezu+Zzpwl1A0amo/mav4HfOjAxAVP3?= =?us-ascii?Q?R5WTVYjVlqQLziaMlsM=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN6PR11MB8244.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e26052ac-2337-4602-ab68-08db5c3b8073 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 May 2023 09:44:43.0692 (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: TUyBo8xxZOi2q9p373PK7BDPehWiGn+bnL+cpz5sOdZJaSsZgR4fmpyWt2ppKDacPUj7GtyK7txXZcIho7KHbQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR11MB8348 Return-Path: ray.ni@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable 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, > Michael D > Subject: [PATCH v4 1/1] PcAtChipsetPkg: RTC Runtime unable to get correct= IO > port by PCD >=20 > From: Gua Guo >=20 > RTC runtime is unable to get dynamic PCD value after booting to > OS 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 > 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