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.75.1662599801888023192 for ; Wed, 07 Sep 2022 18:16:42 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=O2cgmKRM; spf=permerror, err=too many SPF records (domain: intel.com, ip: 192.55.52.43, mailfrom: hao.a.wu@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1662599801; x=1694135801; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=LmiEFBWGgDJPtFBnaKmChLY/7VrOjgZ0jNBVhanrq1w=; b=O2cgmKRM5ZO+3gAlHsLTOKyYDyICLPJqSB+194/vyLM8yOPxJm1zZlCr VEEE+Pf8yT7BEIxPcSyo+KvqdLzftSMraZdQ4hSkkWqQt6bYa19Xm0mjc mcbjyB8eWt7HafZX4i/7wE8yZa2aLQyNkdhSWPc5jvm/gMVY5ES9rrmTY NmyA/+piy2ZJjsKu47nKlfmoeWX20XFPSRbwxZnkfajMKIb01z7ycKVW9 UskQ1mDxOzOcLG6YmJBso9z84u9dsh99t/qb+91EPN+8G9SYsl14CStFO mG9iDMfq07MdyGvjhc3cGgSEhqNk0eeXMuDoh3btidmLpvIIv1QcK1Lb1 Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10463"; a="383329693" X-IronPort-AV: E=Sophos;i="5.93,298,1654585200"; d="scan'208,217";a="383329693" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Sep 2022 18:16:41 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,298,1654585200"; d="scan'208,217";a="683034744" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by fmsmga004.fm.intel.com with ESMTP; 07 Sep 2022 18:16:41 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Wed, 7 Sep 2022 18:16:40 -0700 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) 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.2375.31; Wed, 7 Sep 2022 18:16:40 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Wed, 7 Sep 2022 18:16:40 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.107) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Wed, 7 Sep 2022 18:16:39 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jJ65kvbabgJQRyG6EWWonVh4ueQohAoT1jh6OzjN69c7t4Id9koKkVcXJkcsfRWd/X4mPnHd1A85VH0K/fNkhBYZTWSDHJwQZJ6fMdQIJoALaBmtxWW6a1ByqTRSrS4+3jAGxA3y3ggbX8GL6UJFVgpd+bara529Qq6ottPlzodSApnleDQlV78aRXAJ7Vndo3Hy6Ej8ERebuCWfGZrZTz1kRCNVUSBboj/4HnvdzLuyKlHG6qrZl9HjzrhMu/PmY2mPaxdOK0Fi0TS4QQCPG7zgjYzUmOprzS0Be1akgjJYUr36zbriYVNVY/G+DkBfiI92++OPjwGHvolrDp9smw== 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=XZZ8FqoY1tRDhxU3gswHF9pKBLyERJoy3R5bS+Kdssw=; b=SRBSfTUtK15dG9hOrh2BcPxJ+Ngp9/HSI8o6+DSEQPXB5yeFV5+7hzeYEkfZi+5hNzv/Ad41xeqW1USbtSGAYqhYtB8U5Wxi26MOx4JGYWblGvtvEsRR7tFPtKGDMuThJv6B4bRzmbR4D0fzL9EYkeHC/ipm2HLmeZVflN+bxbSZ+9vgxCfsfM67YE6+yzMQZxpZ8jhixQpUVbsDMAcSVjy7F0PBPCSgxKwE0w7ugtF6LENBKrA+ejVPAT6IpRy5QY9SHZOOd0VM+9NFrkpxQIZtT4TLeY3/pbywt0xF8zwoQ8g2MqBfFWuDobyM5eSBOxBK1i6NFx6u9bLHH6Ckjg== 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 DM6PR11MB4025.namprd11.prod.outlook.com (2603:10b6:5:197::31) by MWHPR11MB1823.namprd11.prod.outlook.com (2603:10b6:300:10e::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5588.15; Thu, 8 Sep 2022 01:16:24 +0000 Received: from DM6PR11MB4025.namprd11.prod.outlook.com ([fe80::6144:b5e3:5217:f60e]) by DM6PR11MB4025.namprd11.prod.outlook.com ([fe80::6144:b5e3:5217:f60e%5]) with mapi id 15.20.5612.014; Thu, 8 Sep 2022 01:16:23 +0000 From: "Wu, Hao A" To: "devel@edk2.groups.io" , "Anbazhagan, Baraneedharan" CC: "Gao, Liming" , "Ni, Ray" Subject: Re: MdeModulePkg: Use configurable PCD for AHCI command retries Thread-Topic: MdeModulePkg: Use configurable PCD for AHCI command retries Thread-Index: AdjC1bnQg3WorTfySbipk/mtO9c6LAASkAHg Date: Thu, 8 Sep 2022 01:16:23 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 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: DM6PR11MB4025:EE_|MWHPR11MB1823:EE_ x-ms-office365-filtering-correlation-id: d118b1ac-8fc0-47db-ee67-08da9137bef2 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Lf08DA7IkI+4WAV8LopJvS/L6tt82IItevR12B2Wkqg44eZjmUOerMvDTqf3yvjmvmKe3DQ1wFODBYkdjKBhlz3UHL516DL8etef1w9AdGkJk8bm6MNJRyFfJQgT0C189qplnCq5f8UmRajh7Wz6qIHQuCUm9uW8riPMg6nbWDDqzylGqkj9cub0y7PHdIji12OsPlO/yaxx6gYKsbDi04YTKF5O1Bzp8gPE3ag6UGbkjDuUrEgNxevJdwXkXhsR0ZoxiKCg+/LOe9zrqd/3hgIs9oljebo+f7trutpG8MADYmcXCzi3+JgSHpPN5gDdswfxQtANo+u8L7MjUnCeciEbrgB9jqBBhHyf8E89pILFH1eYe3cTKHr98WH4znsp+LC232KXyw8XIWq/YzRVuKeIwsp15HemDLwdErK21DVnHyMnzc1tLDANkDhxZAYBvV89jr0OMlCBz4xckjhOunPepYi57YQwJaI8vCMg5uQYHfEBdLf0IqoKHS+mVP84wI4sSO9T1O3u0aFVd303SZcUEBH5LlnQrv9OK4GMDiM8r5aTqq9TAvYly8gAYqLVJhLeeAsBubEBaW/gUxwez4w6MOnI8Umw9E+ZOrXxHcubiYgeYbekRWlvI4YBFdkpTxH7bYEU1ogZ0KIH3NlLDrCalLzruLJRR2QsMbuBr5EddqzpChBEeDuhopMamKKq1LU9iYpyBbmg8zIf/uLa+MeNyY9AkTafEx2U36H1Wz+katXk8Jw8/e6/L/ei5BS5R9XNsrQNnZFiQbLK7CbBKigFmNuOjkR80lBiwA2nj+Lou1BqLW92DmPqgS3K0StK6+HWx/h4/l7ntjb0OvkvFQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB4025.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(346002)(39860400002)(396003)(366004)(376002)(136003)(107886003)(186003)(41300700001)(76236004)(8936002)(52536014)(55016003)(53546011)(86362001)(2906002)(7696005)(478600001)(966005)(26005)(6506007)(71200400001)(9686003)(33656002)(82960400001)(38070700005)(83380400001)(166002)(38100700002)(316002)(110136005)(8676002)(64756008)(5660300002)(4326008)(66556008)(54906003)(66446008)(66476007)(76116006)(66946007)(122000001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?fADwcJ1muNhrZzUilVFoPoJj+91EDcxA1Pj7Ue4537CjV2dJCSsmlqRytCZO?= =?us-ascii?Q?NqPBFUnHfc3M99e38qSXKxOECD2dyZGZD75CyuUYK/uqd8ger5moqUH/OwR2?= =?us-ascii?Q?kTvK2+710L+K/z3lqsf+DHvRDdyyxVRSSY+xQZJZzjo7bZPuUVC9w8OYuhiQ?= =?us-ascii?Q?4rI3rsG4WR9UQPYtMsQRX65Gdn56tcH201I/TpIFjIxt1NN2RwfS/xjUGM+C?= =?us-ascii?Q?hHVDsQ0G6WXILh8IqcgUdgzrKV2s22oX3+s4MkyUnxLPN0FjYJrxaUsa/eGO?= =?us-ascii?Q?3lisZS1tlVHKqD6GsnYhY9F3xytOIfirOhiHfHsT+HsuQWo+mQByiLEFqSS0?= =?us-ascii?Q?SlSSCrShnjl+px2OXiP7y93aUy7/c89nVx3yiUpCFpgxzgg+enBdgRh4KsK6?= =?us-ascii?Q?C6VIkZRYp6vcK8IGQg1uM9TuJlX5W2pfueE8mkQxFRPWk9ybHvrEOzUGczEg?= =?us-ascii?Q?9yr+HU08e4Ezv8K/0k3ctpzlLvFSAb7sFA0rLVjbb0bot6WaP0mn+GBYvlJP?= =?us-ascii?Q?xyp6VXpOGBjUptKtUwlerS5/gNvAzqDH32SWeAtZZOeIS7/oSHxRN3JnySBa?= =?us-ascii?Q?8u7byh6ygzixZs2O4K5zfD+fQbw1AjkZHL/Be75YwhUnocl9I4yGdBDDTgNi?= =?us-ascii?Q?cqc9UJ9o3YRP7JVykcn2M+NZJmKEHLRg320dZn8MAgf8BmelEFGpIAoRvauf?= =?us-ascii?Q?1Nwnfuu6ISid+t3C8m0cn3TFEj9FK/Q8RD9GIciUSf8/MhBhFYWGWoFN5Ifu?= =?us-ascii?Q?aJ645NWXdkwE+nJZEYQjH/QjbgfPHRbQs7jcLjRUt6QlVrrj5rqfjAB4YtBU?= =?us-ascii?Q?QOeRSn/C4/Ihh16qGe1sy25bHO7kbmUUI0PUXIv1iANZFoiri6ASu0KM1BG6?= =?us-ascii?Q?mdkG1j7I7KvBqTwuBd8DC5rzjVdvvmUcrA3qXjG8uAdnLTp4ExLUaHi/qnJZ?= =?us-ascii?Q?GCuqZhpQkYse67/fxG2oHiyop6ew7VYNDfcv0OLOVvM6bk5bWUUSGEC0Iy2r?= =?us-ascii?Q?zS0Q3yOTDMqWMogAClHHfeqL216wRqVWv3RqejO8C2nBtlN0bjQrX7Gt4P6B?= =?us-ascii?Q?epOA1f/QQVor9m5SL7jhrltFp3WYShdVeearGIqfL4jNTYbR2cW7TjEFJ20T?= =?us-ascii?Q?Jt6XuDhKE0ICQ4PW6skhoDd5ydbtU+L6C5ne4yHvjV/au3dQ2uOpYlGtLKCy?= =?us-ascii?Q?gq7i5lsoX76yd+X8NUVihiXIJJN7P3jXlGc8Wt6tFKJC0Sh98vu0d5Ai5ds4?= =?us-ascii?Q?hRjwm45SsWITDguAiBb56ofv3+zRYA0P68y2y7nB9cLpjMPsD5MlOuTBxRfM?= =?us-ascii?Q?d6lKrharFVo/t3QLU80r5SPxooRIX50pHshQNAI4YDgP91swQ7Q78tCi+1za?= =?us-ascii?Q?SKUNDwWKkqAMxEm/MLTsOf66vXJ4CpW6Wgc3i2Y5kGBITJzNmIsQhqJZ8idp?= =?us-ascii?Q?NWK8mJjTwzbH2pen2g+QbtN4+CkmZwvDMlq9lWOgfv9+KrNQVx8TYM9EiXFf?= =?us-ascii?Q?jAcqMLbj0YO79uIAbfo+8gAsDRSyJsKi5tEJaSxr1J8diW+1xMfMCKZJAP3B?= =?us-ascii?Q?48zjDu7TPpeoSCi1Y4i0Xbn2o8MXFyJ5z+os4wJd?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4025.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d118b1ac-8fc0-47db-ee67-08da9137bef2 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Sep 2022 01:16:23.8698 (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: f9OaduhNnatjz0V1R1NmCENfn0bKN/VivI5+OL5N9NxHcRr6M5omWjdWMRhoKfvszuNBBKcebbWalD5MfSNAXg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR11MB1823 Return-Path: hao.a.wu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: multipart/alternative; boundary="_000_DM6PR11MB4025F7FD556D72B22F686248CA409DM6PR11MB4025namp_" --_000_DM6PR11MB4025F7FD556D72B22F686248CA409DM6PR11MB4025namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Thanks for the patch. Could you help to: 1. Add the information of this new PCD in MdeModulePkg.uni 2. Keep the macro AHCI_COMMAND_RETRIES in AhciMode.h and update its definit= ion to: #define AHCI_COMMAND_RETRIES PcdGet32 (PcdAhciCommandRetryCount) Best Regards, Hao Wu From: devel@edk2.groups.io On Behalf Of Anbazhagan, = Baraneedharan via groups.io Sent: Thursday, September 8, 2022 12:44 AM To: devel@edk2.groups.io Cc: Gao, Liming ; Wu, Hao A ;= Ni, Ray Subject: [edk2-devel] MdeModulePkg: Use configurable PCD for AHCI command r= etries https://bugzilla.tianocore.org/show_bug.cgi?id=3D4011 AHCI commands are retried internally which prevents platform feature like drive password to process correctly entered password on subsequent attempts. PCD allows the platform to determine the number of retries. Signed-off-by: Baraneedharan Anbazhagan anbazhagan@hp.com --- MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode.c | 6 +++--- MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode.h | 2 -- MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf | 3 ++- MdeModulePkg/MdeModulePkg.dec | 4 ++++ 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode.c b/MdeModulePk= g/Bus/Ata/AtaAtapiPassThru/AhciMode.c index a240be940d..bf8105d4e7 100644 --- a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode.c +++ b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode.c @@ -983,7 +983,7 @@ AhciPioTransfer ( CmdList.AhciCmdCfl =3D EFI_AHCI_FIS_REGISTER_H2D_LENGTH / 4; CmdList.AhciCmdW =3D Read ? 0 : 1; - for (Retry =3D 0; Retry < AHCI_COMMAND_RETRIES; Retry++) { + for (Retry =3D 0; Retry < PcdGet32 (PcdAhciCommandRetryCount); Retry++) = { AhciBuildCommand ( PciIo, AhciRegisters, @@ -1190,7 +1190,7 @@ AhciDmaTransfer ( } gBS->RestoreTPL (OldTpl); - for (Retry =3D 0; Retry < AHCI_COMMAND_RETRIES; Retry++) { + for (Retry =3D 0; Retry < PcdGet32 (PcdAhciCommandRetryCount); Retry++= ) { AhciBuildCommand ( PciIo, AhciRegisters, @@ -1385,7 +1385,7 @@ AhciNonDataTransfer ( CmdList.AhciCmdCfl =3D EFI_AHCI_FIS_REGISTER_H2D_LENGTH / 4; - for (Retry =3D 0; Retry < AHCI_COMMAND_RETRIES; Retry++) { + for (Retry =3D 0; Retry < PcdGet32 (PcdAhciCommandRetryCount); Retry++) = { AhciBuildCommand ( PciIo, AhciRegisters, diff --git a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode.h b/MdeModulePk= g/Bus/Ata/AtaAtapiPassThru/AhciMode.h index 7802ebd200..66256bf718 100644 --- a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode.h +++ b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode.h @@ -193,8 +193,6 @@ typedef union { #define AHCI_PORT_DEVSLP_DITO_MASK 0x01FF8000 #define AHCI_PORT_DEVSLP_DM_MASK 0x1E000000 -#define AHCI_COMMAND_RETRIES 5 - #pragma pack(1) // // Command List structure includes total 32 entries. diff --git a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf b/M= deModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf index a3e42a9ab4..78caa3c458 100644 --- a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf +++ b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf @@ -65,7 +65,8 @@ gEdkiiAtaAtapiPolicyProtocolGuid ## CONSUMES [Pcd] - gEfiMdeModulePkgTokenSpaceGuid.PcdAtaSmartEnable ## SOMETIMES_CONSUMES + gEfiMdeModulePkgTokenSpaceGuid.PcdAtaSmartEnable ## SOMETIMES_C= ONSUMES + gEfiMdeModulePkgTokenSpaceGuid.PcdAhciCommandRetryCount ## SOMETIMES_C= ONSUMES # [Event] # EVENT_TYPE_PERIODIC_TIMER ## SOMETIMES_CONSUMES diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec index 7d98910832..58e6ab0048 100644 --- a/MdeModulePkg/MdeModulePkg.dec +++ b/MdeModulePkg/MdeModulePkg.dec @@ -1574,6 +1574,10 @@ # @Prompt SD/MMC Host Controller Operations Timeout (us). gEfiMdeModulePkgTokenSpaceGuid.PcdSdMmcGenericTimeoutValue|1000000|UINT3= 2|0x00000031 + ## The Retry Count of AHCI command if there is a failure + # @Prompt The value of Retry Count, Default value is 5. + gEfiMdeModulePkgTokenSpaceGuid.PcdAhciCommandRetryCount|5|UINT32|0x00000= 032 + [PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx] ## This PCD defines the Console output row. The default value is 25 acco= rding to UEFI spec. # This PCD could be set to 0 then console output would be at max column= and max row. -- 2.36.1.windows.1 --_000_DM6PR11MB4025F7FD556D72B22F686248CA409DM6PR11MB4025namp_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Thanks for the patch.

 

Could you help to:

1. Add the information of this new PCD in MdeModuleP= kg.uni

2. Keep the macro AHCI_COMMAND_RETRIES in AhciMode.h= and update its definition to:

#define AHCI_COMMAND_RETRIES  PcdGet32 (PcdAhci= CommandRetryCount)

 

Best Regards,

Hao Wu

 

From: devel@edk2.groups.io <devel@edk2.gro= ups.io> On Behalf Of Anbazhagan, Baraneedharan via groups.io
Sent: Thursday, September 8, 2022 12:44 AM
To: devel@edk2.groups.io
Cc: Gao, Liming <gaoliming@byosoft.com.cn>; Wu, Hao A <hao.= a.wu@intel.com>; Ni, Ray <ray.ni@intel.com>
Subject: [edk2-devel] MdeModulePkg: Use configurable PCD for AHCI co= mmand retries

 

https://bugzilla.tianocore.org/show_bug.cgi?id=3D4011

 

AHCI commands are retried internally which prevents = platform feature

like drive password to process correctly entered pas= sword on subsequent

attempts. PCD allows the platform to determine the n= umber of retries.

 

Signed-off-by: Baraneedharan Anbazhagan anbazhagan@hp.com

---

MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode.c&nbs= p;          | 6 +++---

MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode.h&nbs= p;          | 2 --<= /p>

MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassTh= ru.inf | 3 ++-

MdeModulePkg/MdeModulePkg.dec    = ;            &n= bsp;            = ; | 4 ++++

4 files changed, 9 insertions(+), 6 deletions(-)

 

diff --git a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/A= hciMode.c b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode.c

index a240be940d..bf8105d4e7 100644

--- a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode= .c

+++ b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode= .c

@@ -983,7 +983,7 @@ AhciPioTransfer (

   CmdList.AhciCmdCfl =3D EFI_AHCI_FIS_REG= ISTER_H2D_LENGTH / 4;

   CmdList.AhciCmdW   =3D Read ?= 0 : 1;

 

-  for (Retry =3D 0; Retry < AHCI_COMMAND_RE= TRIES; Retry++) {

+  for (Retry =3D 0; Retry < PcdGet32 (PcdAh= ciCommandRetryCount); Retry++) {

     AhciBuildCommand (

       PciIo,

       AhciRegisters,<= o:p>

@@ -1190,7 +1190,7 @@ AhciDmaTransfer (

     }

 

     gBS->RestoreTPL (Ol= dTpl);

-    for (Retry =3D 0; Retry < AHC= I_COMMAND_RETRIES; Retry++) {

+    for (Retry =3D 0; Retry < Pcd= Get32 (PcdAhciCommandRetryCount); Retry++) {

       AhciBuildComman= d (

         Pci= Io,

         Ahc= iRegisters,

@@ -1385,7 +1385,7 @@ AhciNonDataTransfer (

 

   CmdList.AhciCmdCfl =3D EFI_AHCI_FI= S_REGISTER_H2D_LENGTH / 4;

 

-  for (Retry =3D 0; Retry < AHCI_COMMAND_RE= TRIES; Retry++) {

+  for (Retry =3D 0; Retry < PcdGet32 (PcdAh= ciCommandRetryCount); Retry++) {

     AhciBuildCommand (

       PciIo,

       AhciRegisters,<= o:p>

diff --git a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/A= hciMode.h b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode.h

index 7802ebd200..66256bf718 100644

--- a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode= .h

+++ b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode= .h

@@ -193,8 +193,6 @@ typedef union {

#define   AHCI_PORT_DEVSLP_DITO_MASK =      0x01FF8000

#define   AHCI_PORT_DEVSLP_DM_MASK &n= bsp;      0x1E000000

 

-#define AHCI_COMMAND_RETRIES  5

-

#pragma pack(1)

//

// Command List structure includes total 32 entries.=

diff --git a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/A= taAtapiPassThru.inf b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThr= u.inf

index a3e42a9ab4..78caa3c458 100644

--- a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapi= PassThru.inf

+++ b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapi= PassThru.inf

@@ -65,7 +65,8 @@

   gEdkiiAtaAtapiPolicyProtocolGuid &= nbsp;            ## = CONSUMES

 

 [Pcd]

-  gEfiMdeModulePkgTokenSpaceGuid.PcdAtaSmartEn= able   ## SOMETIMES_CONSUMES

+  gEfiMdeModulePkgTokenSpaceGuid.PcdAtaSmartEn= able          ## SOMETIMES_CON= SUMES

+  gEfiMdeModulePkgTokenSpaceGuid.PcdAhciComman= dRetryCount   ## SOMETIMES_CONSUMES

 

 # [Event]

# EVENT_TYPE_PERIODIC_TIMER ## SOMETIMES_CONSUMES

diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModu= lePkg/MdeModulePkg.dec

index 7d98910832..58e6ab0048 100644

--- a/MdeModulePkg/MdeModulePkg.dec

+++ b/MdeModulePkg/MdeModulePkg.dec

@@ -1574,6 +1574,10 @@

   # @Prompt SD/MMC Host Controller Operat= ions Timeout (us).

   gEfiMdeModulePkgTokenSpaceGuid.PcdSdMmc= GenericTimeoutValue|1000000|UINT32|0x00000031

 

+  ## The Retry Count of AHCI command if there = is a failure

+  # @Prompt The value of Retry Count,  De= fault value is 5.

+  gEfiMdeModulePkgTokenSpaceGuid.PcdAhciComman= dRetryCount|5|UINT32|0x00000032

+

[PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx]<= o:p>

   ## This PCD defines the Console output = row. The default value is 25 according to UEFI spec.

   #  This PCD could be set to 0 then= console output would be at max column and max row.

--

2.36.1.windows.1

 

--_000_DM6PR11MB4025F7FD556D72B22F686248CA409DM6PR11MB4025namp_--