mirror of https://github.com/acidanthera/audk.git
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:
parent
08bec91eba
commit
9753360756
|
@ -5,7 +5,7 @@
|
||||||
# finds whether there is Recovery data in the device. If it finds recovery
|
# finds whether there is Recovery data in the device. If it finds recovery
|
||||||
# data, it will install Device Recovery Module PPI.
|
# data, it will install Device Recovery Module PPI.
|
||||||
#
|
#
|
||||||
# Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
|
# Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
|
||||||
#
|
#
|
||||||
# This program and the accompanying materials
|
# This program and the accompanying materials
|
||||||
# are licensed and made available under the terms and conditions
|
# are licensed and made available under the terms and conditions
|
||||||
|
@ -68,6 +68,9 @@
|
||||||
[FeaturePcd]
|
[FeaturePcd]
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport ## CONSUMES
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport ## CONSUMES
|
||||||
|
|
||||||
|
[Pcd]
|
||||||
|
gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryFileName ## CONSUMES
|
||||||
|
|
||||||
[Depex]
|
[Depex]
|
||||||
gEfiPeiMemoryDiscoveredPpiGuid AND gEfiPeiBootInRecoveryModePpiGuid
|
gEfiPeiMemoryDiscoveredPpiGuid AND gEfiPeiBootInRecoveryModePpiGuid
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
#include "PeiCdExpress.h"
|
#include "PeiCdExpress.h"
|
||||||
|
|
||||||
PEI_CD_EXPRESS_PRIVATE_DATA *mPrivateData = NULL;
|
PEI_CD_EXPRESS_PRIVATE_DATA *mPrivateData = NULL;
|
||||||
|
CHAR8 *mRecoveryFileName;
|
||||||
|
UINTN mRecoveryFileNameSize;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Installs the Device Recovery Module PPI, Initialize BlockIo Ppi
|
Installs the Device Recovery Module PPI, Initialize BlockIo Ppi
|
||||||
|
@ -48,6 +50,16 @@ CdExpressPeimEntry (
|
||||||
return EFI_OUT_OF_RESOURCES;
|
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)
|
// 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;
|
Buffer += FileRecord->Length;
|
||||||
continue;
|
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;
|
Buffer += FileRecord->Length;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/** @file
|
/** @file
|
||||||
Header file for CD recovery PEIM
|
Header file for CD recovery PEIM
|
||||||
|
|
||||||
Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
|
||||||
|
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions
|
are licensed and made available under the terms and conditions
|
||||||
|
@ -42,11 +42,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
#define PEI_CD_BLOCK_SIZE 0x800
|
#define PEI_CD_BLOCK_SIZE 0x800
|
||||||
#define PEI_MEMMORY_PAGE_SIZE 0x1000
|
#define PEI_MEMMORY_PAGE_SIZE 0x1000
|
||||||
|
|
||||||
//
|
|
||||||
// Recovery file name (in root directory)
|
|
||||||
//
|
|
||||||
#define PEI_RECOVERY_FILE_NAME "FVMAIN.FV"
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Following are defined according to ISO-9660 specification
|
// Following are defined according to ISO-9660 specification
|
||||||
//
|
//
|
||||||
|
|
Loading…
Reference in New Issue