X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=EdkNt32Pkg%2FPei%2FFlashMap%2FFlashMap.c;fp=EdkNt32Pkg%2FPei%2FFlashMap%2FFlashMap.c;h=af8e13c9ff394a817eba9fac2d6edb84a058c30b;hp=54dc137a765cac4200b84db1dcc0db800a70113c;hb=202c5d55e5a5a1f065038cda8316ad36293aa6bb;hpb=382aab1c37276a1274e62469301ee27374cbd047 diff --git a/EdkNt32Pkg/Pei/FlashMap/FlashMap.c b/EdkNt32Pkg/Pei/FlashMap/FlashMap.c index 54dc137a76..af8e13c9ff 100644 --- a/EdkNt32Pkg/Pei/FlashMap/FlashMap.c +++ b/EdkNt32Pkg/Pei/FlashMap/FlashMap.c @@ -176,6 +176,25 @@ Returns: FlashHobData.SubAreaData.Base = FdBase + (EFI_PHYSICAL_ADDRESS) (UINTN) mFlashAreaData[Index].Base; FlashHobData.SubAreaData.Length = (EFI_PHYSICAL_ADDRESS) (UINTN) mFlashAreaData[Index].Length; + // + // We also update a PCD entry so that any driver that depend on + // PCD entry will get the information. + // + if (FlashHobData.AreaType == EFI_FLASH_AREA_EFI_VARIABLES) { + PcdSet32 (PcdFlashNvStorageVariableBase, (UINT32) FlashHobData.SubAreaData.Base); + PcdSet32 (PcdFlashNvStorageVariableSize, (UINT32) FlashHobData.SubAreaData.Length); + } + + if (FlashHobData.AreaType == EFI_FLASH_AREA_FTW_STATE) { + PcdSet32 (PcdFlashNvStorageFtwWorkingBase, (UINT32) FlashHobData.SubAreaData.Base); + PcdSet32 (PcdFlashNvStorageFtwWorkingSize, (UINT32) FlashHobData.SubAreaData.Length); + } + + if (FlashHobData.AreaType == EFI_FLASH_AREA_FTW_BACKUP) { + PcdSet32 (PcdFlashNvStorageFtwSpareBase, (UINT32) FlashHobData.SubAreaData.Base); + PcdSet32 (PcdFlashNvStorageFtwSpareSize, (UINT32) FlashHobData.SubAreaData.Length); + } + switch (FlashHobData.AreaType) { case EFI_FLASH_AREA_RECOVERY_BIOS: case EFI_FLASH_AREA_MAIN_BIOS: @@ -202,12 +221,6 @@ Returns: &gEfiFirmwareVolumeBlockProtocolGuid, sizeof (EFI_GUID) ); - - // - // We also update a PCD entry so that any driver that depend on - // PCD entry PcdFlashNvStorageVariableBase will get the information. - // - PcdSet32 (PcdFlashNvStorageVariableBase, (UINT32) FlashHobData.SubAreaData.Base); break; default: