Skip to content

Commit

Permalink
MdeModulePkg: Use configurable PCD for AHCI command retries
Browse files Browse the repository at this point in the history
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4011

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 <[email protected]>
Reviewed-by: Hao A Wu <[email protected]>
  • Loading branch information
baranee authored and mergify[bot] committed Sep 13, 2022
1 parent 970e262 commit db7afae
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 2 deletions.
2 changes: 1 addition & 1 deletion MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode.h
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ typedef union {
#define AHCI_PORT_DEVSLP_DITO_MASK 0x01FF8000
#define AHCI_PORT_DEVSLP_DM_MASK 0x1E000000

#define AHCI_COMMAND_RETRIES 5
#define AHCI_COMMAND_RETRIES (PcdGet32 (PcdAhciCommandRetryCount))

#pragma pack(1)
//
Expand Down
3 changes: 2 additions & 1 deletion MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@
gEdkiiAtaAtapiPolicyProtocolGuid ## CONSUMES

[Pcd]
gEfiMdeModulePkgTokenSpaceGuid.PcdAtaSmartEnable ## SOMETIMES_CONSUMES
gEfiMdeModulePkgTokenSpaceGuid.PcdAtaSmartEnable ## SOMETIMES_CONSUMES
gEfiMdeModulePkgTokenSpaceGuid.PcdAhciCommandRetryCount ## SOMETIMES_CONSUMES

# [Event]
# EVENT_TYPE_PERIODIC_TIMER ## SOMETIMES_CONSUMES
Expand Down
4 changes: 4 additions & 0 deletions MdeModulePkg/MdeModulePkg.dec
Original file line number Diff line number Diff line change
Expand Up @@ -1574,6 +1574,10 @@
# @Prompt SD/MMC Host Controller Operations Timeout (us).
gEfiMdeModulePkgTokenSpaceGuid.PcdSdMmcGenericTimeoutValue|1000000|UINT32|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|0x00000032

[PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx]
## 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.
Expand Down
4 changes: 4 additions & 0 deletions MdeModulePkg/MdeModulePkg.uni
Original file line number Diff line number Diff line change
Expand Up @@ -1166,6 +1166,10 @@
"in the DXE phase. Minimum value is 1. Sections nested more deeply are<BR>"
"rejected."

#string STR_gEfiMdeModulePkgTokenSpaceGuid_PcdAhciCommandRetryCount_PROMPT #language en-US "Retry Count of AHCI command if there is a failure"

#string STR_gEfiMdeModulePkgTokenSpaceGuid_PcdAhciCommandRetryCount_HELP #language en-US "This value is used to configure number of retries on AHCI commands, if there is a failure."

#string STR_gEfiMdeModulePkgTokenSpaceGuid_PcdCapsuleInRamSupport_PROMPT #language en-US "Enable Capsule In Ram support"

#string STR_gEfiMdeModulePkgTokenSpaceGuid_PcdCapsuleInRamSupport_HELP #language en-US "Capsule In Ram is to use memory to deliver the capsules that will be processed after system reset.<BR><BR>"
Expand Down

0 comments on commit db7afae

Please sign in to comment.