* [PATCH V3 1/3] MdeModulePkg/dec: Add PcdRecoveryFileName PCD.
2016-10-11 1:04 [PATCH V3 0/3] Add PcdRecoveryFileName PCD Jiewen Yao
@ 2016-10-11 1:04 ` Jiewen Yao
2016-10-11 1:04 ` [PATCH V3 2/3] MdeModulePkg/CdExpressPei: Use " Jiewen Yao
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Jiewen Yao @ 2016-10-11 1:04 UTC (permalink / raw)
To: edk2-devel; +Cc: Feng Tian, Star Zeng, Liming Gao, Eric Dong, Ruiyu Ni
This PCD is used to indicated the recovery file name.
The previous name - FvMain.Fv is hardcoded in FatPei and CdExpressPei.
It does not make sense to force the name.
Now a platform may use any recovery file name.
Tested-by: Michael D Kinney <michael.d.kinney@intel.com>
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>
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>
---
MdeModulePkg/MdeModulePkg.dec | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec
index a38af94..e13e97c 100644
--- a/MdeModulePkg/MdeModulePkg.dec
+++ b/MdeModulePkg/MdeModulePkg.dec
@@ -1645,6 +1645,12 @@
# @Prompt Enable fast PS2 detection
gEfiMdeModulePkgTokenSpaceGuid.PcdFastPS2Detection|FALSE|BOOLEAN|0x30001044
+ ## This is recover file name in PEI phase.
+ # The file must be in the root directory.
+ # The file name must be the 8.3 format.
+ # The PCD data must be in UNICODE format.
+ gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryFileName|L"FVMAIN.FV"|VOID*|0x30001045
+
[PcdsPatchableInModule]
## Specify memory size with page number for PEI code when
# Loading Module at Fixed Address feature is enabled.
--
2.7.4.windows.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH V3 2/3] MdeModulePkg/CdExpressPei: Use PcdRecoveryFileName PCD.
2016-10-11 1:04 [PATCH V3 0/3] Add PcdRecoveryFileName PCD Jiewen Yao
2016-10-11 1:04 ` [PATCH V3 1/3] MdeModulePkg/dec: " Jiewen Yao
@ 2016-10-11 1:04 ` Jiewen Yao
2016-10-11 1:04 ` [PATCH V3 3/3] FatPkg/FatPei: " Jiewen Yao
2016-10-11 18:46 ` [PATCH V3 0/3] Add " Kinney, Michael D
3 siblings, 0 replies; 5+ messages in thread
From: Jiewen Yao @ 2016-10-11 1:04 UTC (permalink / raw)
To: edk2-devel
Cc: Feng Tian, Star Zeng, Liming Gao, Eric Dong, Ruiyu Ni,
Michael D Kinney
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>
---
MdeModulePkg/Universal/Disk/CdExpressPei/CdExpressPei.inf | 5 ++++-
MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.c | 16 ++++++++++++++--
MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.h | 7 +------
3 files changed, 19 insertions(+), 9 deletions(-)
diff --git a/MdeModulePkg/Universal/Disk/CdExpressPei/CdExpressPei.inf b/MdeModulePkg/Universal/Disk/CdExpressPei/CdExpressPei.inf
index e9d45e5..facad47 100644
--- a/MdeModulePkg/Universal/Disk/CdExpressPei/CdExpressPei.inf
+++ b/MdeModulePkg/Universal/Disk/CdExpressPei/CdExpressPei.inf
@@ -5,7 +5,7 @@
# finds whether there is Recovery data in the device. If it finds recovery
# 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
# are licensed and made available under the terms and conditions
@@ -68,6 +68,9 @@
[FeaturePcd]
gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport ## CONSUMES
+[Pcd]
+ gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryFileName ## CONSUMES
+
[Depex]
gEfiPeiMemoryDiscoveredPpiGuid AND gEfiPeiBootInRecoveryModePpiGuid
diff --git a/MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.c b/MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.c
index 371ab73..d3cbfaa 100644
--- a/MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.c
+++ b/MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.c
@@ -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;
}
diff --git a/MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.h b/MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.h
index 91f34dc..1c8843c 100644
--- a/MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.h
+++ b/MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.h
@@ -1,7 +1,7 @@
/** @file
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
are licensed and made available under the terms and conditions
@@ -43,11 +43,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#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
//
#define PEI_CD_STANDARD_ID "CD001"
--
2.7.4.windows.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH V3 3/3] FatPkg/FatPei: Use PcdRecoveryFileName PCD.
2016-10-11 1:04 [PATCH V3 0/3] Add PcdRecoveryFileName PCD Jiewen Yao
2016-10-11 1:04 ` [PATCH V3 1/3] MdeModulePkg/dec: " Jiewen Yao
2016-10-11 1:04 ` [PATCH V3 2/3] MdeModulePkg/CdExpressPei: Use " Jiewen Yao
@ 2016-10-11 1:04 ` Jiewen Yao
2016-10-11 18:46 ` [PATCH V3 0/3] Add " Kinney, Michael D
3 siblings, 0 replies; 5+ messages in thread
From: Jiewen Yao @ 2016-10-11 1:04 UTC (permalink / raw)
To: edk2-devel
Cc: Ruiyu Ni, Feng Tian, Star Zeng, Liming Gao, Eric Dong,
Michael D Kinney
This PCD is used to indicated the recovery file name.
The previous name - FvMain.Fv is hardcoded in FatPei.
It does not make sense to force the name.
Now a platform may use any recovery file name.
Tested-by: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
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: 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>
---
FatPkg/FatPei/FatLiteApi.c | 8 ++++----
FatPkg/FatPei/FatLitePeim.h | 4 +---
FatPkg/FatPei/FatPei.inf | 5 ++++-
3 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/FatPkg/FatPei/FatLiteApi.c b/FatPkg/FatPei/FatLiteApi.c
index d96774e..e302657 100644
--- a/FatPkg/FatPei/FatLiteApi.c
+++ b/FatPkg/FatPei/FatLiteApi.c
@@ -1,7 +1,7 @@
/** @file
FAT recovery PEIM entry point, Ppi Functions and FAT Api functions.
-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 are licensed and made available
under the terms and conditions of the BSD License which accompanies this
@@ -370,7 +370,7 @@ GetNumberRecoveryCapsules (
//
RecoveryCapsuleCount = 0;
for (Index = 0; Index < PrivateData->VolumeCount; Index++) {
- Status = FindRecoveryFile (PrivateData, Index, PEI_FAT_RECOVERY_CAPSULE_WITHOUT_NT_EMULATOR, &Handle);
+ Status = FindRecoveryFile (PrivateData, Index, (CHAR16 *)PcdGetPtr(PcdRecoveryFileName), &Handle);
if (EFI_ERROR (Status)) {
continue;
}
@@ -452,7 +452,7 @@ GetRecoveryCapsuleInfo (
//
RecoveryCapsuleCount = 0;
for (Index = 0; Index < PrivateData->VolumeCount; Index++) {
- Status = FindRecoveryFile (PrivateData, Index, PEI_FAT_RECOVERY_CAPSULE_WITHOUT_NT_EMULATOR, &Handle);
+ Status = FindRecoveryFile (PrivateData, Index, (CHAR16 *)PcdGetPtr(PcdRecoveryFileName), &Handle);
if (EFI_ERROR (Status)) {
continue;
@@ -576,7 +576,7 @@ LoadRecoveryCapsule (
//
RecoveryCapsuleCount = 0;
for (Index = 0; Index < PrivateData->VolumeCount; Index++) {
- Status = FindRecoveryFile (PrivateData, Index, PEI_FAT_RECOVERY_CAPSULE_WITHOUT_NT_EMULATOR, &Handle);
+ Status = FindRecoveryFile (PrivateData, Index, (CHAR16 *)PcdGetPtr(PcdRecoveryFileName), &Handle);
if (EFI_ERROR (Status)) {
continue;
}
diff --git a/FatPkg/FatPei/FatLitePeim.h b/FatPkg/FatPei/FatLitePeim.h
index e838390..d343d88 100644
--- a/FatPkg/FatPei/FatLitePeim.h
+++ b/FatPkg/FatPei/FatLitePeim.h
@@ -1,7 +1,7 @@
/** @file
Data structures for FAT 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 are licensed and made available
under the terms and conditions of the BSD License which accompanies this
@@ -37,8 +37,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
//
// Definitions
//
-#define PEI_FAT_RECOVERY_CAPSULE_WITH_NT_EMULATOR L"fv0001.fv"
-#define PEI_FAT_RECOVERY_CAPSULE_WITHOUT_NT_EMULATOR L"fvmain.fv"
#define PEI_FAT_CACHE_SIZE 4
#define PEI_FAT_MAX_BLOCK_SIZE 8192
diff --git a/FatPkg/FatPei/FatPei.inf b/FatPkg/FatPei/FatPei.inf
index 0304b00..1409e28 100644
--- a/FatPkg/FatPei/FatPei.inf
+++ b/FatPkg/FatPei/FatPei.inf
@@ -1,7 +1,7 @@
## @file
# Lite Fat driver only used in Pei Phase.
#
-# 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 are licensed and made available
# under the terms and conditions of the BSD License which accompanies this
@@ -69,6 +69,9 @@
[FeaturePcd]
gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport ## CONSUMES
+[Pcd]
+ gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryFileName ## CONSUMES
+
[Depex]
gEfiPeiMemoryDiscoveredPpiGuid AND gEfiPeiBootInRecoveryModePpiGuid
--
2.7.4.windows.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH V3 0/3] Add PcdRecoveryFileName PCD.
2016-10-11 1:04 [PATCH V3 0/3] Add PcdRecoveryFileName PCD Jiewen Yao
` (2 preceding siblings ...)
2016-10-11 1:04 ` [PATCH V3 3/3] FatPkg/FatPei: " Jiewen Yao
@ 2016-10-11 18:46 ` Kinney, Michael D
3 siblings, 0 replies; 5+ messages in thread
From: Kinney, Michael D @ 2016-10-11 18:46 UTC (permalink / raw)
To: Yao, Jiewen, edk2-devel@lists.01.org, Kinney, Michael D
Cc: Ni, Ruiyu, Tian, Feng, Gao, Liming, Zeng, Star, Dong, Eric
Jiewen,
This update looks good. The series of 3 patches
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>
Mike
> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Jiewen Yao
> Sent: Monday, October 10, 2016 6:04 PM
> To: edk2-devel@lists.01.org
> Cc: Ni, Ruiyu <ruiyu.ni@intel.com>; Tian, Feng <feng.tian@intel.com>; Gao, Liming
> <liming.gao@intel.com>; Zeng, Star <star.zeng@intel.com>; Dong, Eric
> <eric.dong@intel.com>
> Subject: [edk2] [PATCH V3 0/3] Add PcdRecoveryFileName PCD.
>
> The V3 version fixes PcdGetPtr() type cast issue in FatPei.
>
> =========================
> The V2 version moves PCD to [PcdsFixedAtBuild,
> PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx]
>
> =========================
> This PCD is used to indicated the recovery file name.
> The previous name - FvMain.Fv is hardcoded in FatPei and CdExpressPei.
> It does not make sense to force the name.
>
> Now a platform may use any recovery file name.
>
>
> Tested-by: Michael D Kinney <michael.d.kinney@intel.com>
>
> 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>
> 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>
>
>
> Jiewen Yao (3):
> MdeModulePkg/dec: Add PcdRecoveryFileName PCD.
> MdeModulePkg/CdExpressPei: Use PcdRecoveryFileName PCD.
> FatPkg/FatPei: Use PcdRecoveryFileName PCD.
>
> FatPkg/FatPei/FatLiteApi.c | 8 ++++----
> FatPkg/FatPei/FatLitePeim.h | 4 +---
> FatPkg/FatPei/FatPei.inf | 5 ++++-
> MdeModulePkg/MdeModulePkg.dec | 6 ++++++
> MdeModulePkg/Universal/Disk/CdExpressPei/CdExpressPei.inf | 5 ++++-
> MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.c | 16 ++++++++++++++--
> MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.h | 7 +------
> 7 files changed, 34 insertions(+), 17 deletions(-)
>
> --
> 2.7.4.windows.1
>
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
^ permalink raw reply [flat|nested] 5+ messages in thread