From 5289ad177d4f2d587a47185e0567b9d7e579e4e8 Mon Sep 17 00:00:00 2001 From: Jason1 Lin Date: Sat, 27 Jul 2024 18:11:35 +0800 Subject: MdeModulePkg/UfsBlockIoPei: Migrate UFS Initial Completion Timeout to PCD - Remove the hardcoded definition (UFS_INIT_COMPLETION_TIMEOUT) - Migrate the UFS initial completion timeout into PCD value Signed-off-by: Jason1 Lin --- MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsBlockIoPei.c | 5 +---- MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsBlockIoPei.h | 4 ++-- MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsBlockIoPei.inf | 5 ++++- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsBlockIoPei.c b/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsBlockIoPei.c index 4dbd033d41..e04a93da6a 100644 --- a/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsBlockIoPei.c +++ b/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsBlockIoPei.c @@ -1036,6 +1036,7 @@ UfsFinishDeviceInitialization ( UINT32 Timeout; DeviceInitStatus = 0xFF; + Timeout = PcdGet32 (PcdUfsInitialCompletionTimeout); // // The host enables the device initialization completion by setting fDeviceInit flag. @@ -1045,10 +1046,6 @@ UfsFinishDeviceInitialization ( return Status; } - // - // There are cards that can take upto 600ms to clear fDeviceInit flag. - // - Timeout = UFS_INIT_COMPLETION_TIMEOUT; do { Status = UfsReadFlag (Private, UfsFlagDevInit, &DeviceInitStatus); if (EFI_ERROR (Status)) { diff --git a/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsBlockIoPei.h b/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsBlockIoPei.h index 489b6c34ec..869332fbe3 100644 --- a/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsBlockIoPei.h +++ b/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsBlockIoPei.h @@ -22,6 +22,7 @@ #include #include #include +#include #include #include @@ -31,8 +32,7 @@ #define UFS_PEIM_HC_SIG SIGNATURE_32 ('U', 'F', 'S', 'H') -#define UFS_PEIM_MAX_LUNS 8 -#define UFS_INIT_COMPLETION_TIMEOUT 600000 +#define UFS_PEIM_MAX_LUNS 8 typedef struct { UINT8 Lun[UFS_PEIM_MAX_LUNS]; diff --git a/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsBlockIoPei.inf b/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsBlockIoPei.inf index 6e1cbfde12..5da906e24d 100644 --- a/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsBlockIoPei.inf +++ b/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsBlockIoPei.inf @@ -41,6 +41,7 @@ IoLib TimerLib BaseMemoryLib + PcdLib PeimEntryPoint PeiServicesLib DebugLib @@ -52,9 +53,11 @@ gEdkiiIoMmuPpiGuid ## CONSUMES gEfiEndOfPeiSignalPpiGuid ## CONSUMES +[Pcd] + gEfiMdeModulePkgTokenSpaceGuid.PcdUfsInitialCompletionTimeout ## CONSUMES + [Depex] gEfiPeiMemoryDiscoveredPpiGuid AND gEdkiiPeiUfsHostControllerPpiGuid [UserExtensions.TianoCore."ExtraFiles"] UfsBlockIoPeiExtra.uni - -- cgit