MdeModulePkg/CdExpressPei: Use PcdRecoveryFileName PCD.

This PCD is used to indicated the recovery file name.
The previous name - FvMain.Fv is hardcoded in CdExpressPei.
It does not make sense to force the name.

Now a platform may use any recovery file name.

Cc: Feng Tian <feng.tian@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiewen Yao <jiewen.yao@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>
This commit is contained in:
Jiewen Yao
2016-10-08 09:55:20 +08:00
parent 08bec91eba
commit 9753360756
3 changed files with 19 additions and 9 deletions

View File

@@ -17,6 +17,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#include "PeiCdExpress.h"
PEI_CD_EXPRESS_PRIVATE_DATA *mPrivateData = NULL;
CHAR8 *mRecoveryFileName;
UINTN mRecoveryFileNameSize;
/**
Installs the Device Recovery Module PPI, Initialize BlockIo Ppi
@@ -48,6 +50,16 @@ CdExpressPeimEntry (
return EFI_OUT_OF_RESOURCES;
}
mRecoveryFileNameSize = PcdGetSize(PcdRecoveryFileName) / sizeof(CHAR16);
mRecoveryFileName = AllocatePool(mRecoveryFileNameSize);
if (mRecoveryFileName == NULL) {
return EFI_OUT_OF_RESOURCES;
}
Status = UnicodeStrToAsciiStrS(PcdGetPtr(PcdRecoveryFileName), mRecoveryFileName, mRecoveryFileNameSize);
if (EFI_ERROR(Status)) {
return Status;
}
//
// Initialize Private Data (to zero, as is required by subsequent operations)
//
@@ -466,12 +478,12 @@ RetrieveCapsuleFileFromRoot (
}
}
if (Index != (sizeof (PEI_RECOVERY_FILE_NAME) - 1)) {
if (Index != mRecoveryFileNameSize - 1) {
Buffer += FileRecord->Length;
continue;
}
if (!StringCmp (FileRecord->FileID, (UINT8 *) PEI_RECOVERY_FILE_NAME, sizeof (PEI_RECOVERY_FILE_NAME) - 1, FALSE)) {
if (!StringCmp (FileRecord->FileID, (UINT8 *)mRecoveryFileName, mRecoveryFileNameSize - 1, FALSE)) {
Buffer += FileRecord->Length;
continue;
}