+++ /dev/null
-/**@file\r
-\r
-Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>\r
-(C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>\r
-SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-Module Name:\r
-\r
- FlashMap.c\r
- \r
-Abstract:\r
-\r
- PEIM to build GUIDed HOBs for platform specific flash map\r
-\r
-**/\r
-\r
-//\r
-// The package level header files this module uses\r
-//\r
-#include <PiPei.h>\r
-\r
-#include <WinNtPeim.h>\r
-//\r
-// The protocols, PPI and GUID defintions for this module\r
-//\r
-#include <Ppi/NtFwh.h>\r
-\r
-#include <Library/DebugLib.h>\r
-#include <Library/PcdLib.h>\r
-#include <Library/PeiServicesLib.h>\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PeimInitializeFlashMap (\r
- IN EFI_FFS_FILE_HEADER *FfsHeader,\r
- IN EFI_PEI_SERVICES **PeiServices\r
- )\r
-/*++\r
-\r
-Routine Description:\r
- Build GUIDed HOBs for platform specific flash map\r
- \r
-Arguments:\r
- FfsHeader - A pointer to the EFI_FFS_FILE_HEADER structure.\r
- PeiServices - General purpose services available to every PEIM.\r
- \r
-Returns:\r
- EFI_STATUS\r
-\r
---*/\r
-// TODO: EFI_SUCCESS - add return value to function comment\r
-{\r
- EFI_STATUS Status;\r
- NT_FWH_PPI *NtFwhPpi;\r
- EFI_PHYSICAL_ADDRESS FdBase;\r
- UINT64 FdSize;\r
- EFI_PEI_PPI_DESCRIPTOR *PpiDescriptor;\r
-\r
- DEBUG ((EFI_D_ERROR, "NT 32 Flash Map PEIM Loaded\n"));\r
-\r
- //\r
- // Get the Fwh Information PPI\r
- //\r
- Status = PeiServicesLocatePpi (\r
- &gNtFwhPpiGuid, // GUID\r
- 0, // INSTANCE\r
- &PpiDescriptor, // EFI_PEI_PPI_DESCRIPTOR\r
- (VOID**)&NtFwhPpi // PPI\r
- );\r
- ASSERT_EFI_ERROR (Status);\r
-\r
- //\r
- // Assume that FD0 contains the Flash map.\r
- //\r
- Status = NtFwhPpi->NtFwh (0, &FdBase, &FdSize);\r
- if (EFI_ERROR (Status)) {\r
- return Status;\r
- }\r
-\r
- //\r
- // Relocate the base of FV region \r
- // \r
- if (FdBase >= BASE_4GB) {\r
- PcdSet64 (PcdFlashNvStorageVariableBase64, PcdGet32 (PcdWinNtFlashNvStorageVariableBase) + (UINT64) FdBase);\r
- PcdSet64 (PcdFlashNvStorageFtwWorkingBase64, PcdGet32 (PcdWinNtFlashNvStorageFtwWorkingBase) + (UINT64) FdBase);\r
- PcdSet64 (PcdFlashNvStorageFtwSpareBase64, PcdGet32 (PcdWinNtFlashNvStorageFtwSpareBase) + (UINT64) FdBase);\r
- } else {\r
- PcdSet32 (PcdFlashNvStorageVariableBase, PcdGet32 (PcdWinNtFlashNvStorageVariableBase) + (UINT32) FdBase);\r
- PcdSet32 (PcdFlashNvStorageFtwWorkingBase, PcdGet32 (PcdWinNtFlashNvStorageFtwWorkingBase) + (UINT32) FdBase);\r
- PcdSet32 (PcdFlashNvStorageFtwSpareBase, PcdGet32 (PcdWinNtFlashNvStorageFtwSpareBase) + (UINT32) FdBase);\r
- }\r
-\r
- return EFI_SUCCESS;\r
-}\r
-\r