-\r
-\r
-#include <FlashLayout.h>\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-GetAreaInfo (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN PEI_FLASH_MAP_PPI *This,\r
- IN EFI_FLASH_AREA_TYPE AreaType,\r
- IN EFI_GUID *AreaTypeGuid,\r
- OUT UINT32 *NumEntries,\r
- OUT EFI_FLASH_SUBAREA_ENTRY **Entries\r
- );\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-MemoryDiscoveredPpiNotifyCallback (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDescriptor,\r
- IN VOID *Ppi\r
- );\r
-\r
-//\r
-// Module globals\r
-//\r
-static PEI_FLASH_MAP_PPI mFlashMapPpi = { GetAreaInfo };\r
-\r
-static EFI_PEI_PPI_DESCRIPTOR mPpiListFlashMap = {\r
- (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),\r
- &gPeiFlashMapPpiGuid,\r
- &mFlashMapPpi\r
-};\r
-\r
-static EFI_FLASH_AREA_DATA mFlashAreaData[] = {\r
- //\r
- // Variable area\r
- //\r
- {\r
- EFI_VARIABLE_STORE_OFFSET,\r
- EFI_VARIABLE_STORE_LENGTH,\r
- EFI_FLASH_AREA_SUBFV | EFI_FLASH_AREA_MEMMAPPED_FV,\r
- EFI_FLASH_AREA_EFI_VARIABLES,\r
- 0, 0, 0,\r
- { 0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }\r
- },\r
- //\r
- // FTW spare (backup) block\r
- //\r
- {\r
- EFI_WINNT_FTW_SPARE_BLOCK_OFFSET,\r
- EFI_WINNT_FTW_SPARE_BLOCK_LENGTH,\r
- EFI_FLASH_AREA_SUBFV | EFI_FLASH_AREA_MEMMAPPED_FV,\r
- EFI_FLASH_AREA_FTW_BACKUP,\r
- 0, 0, 0,\r
- { 0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }\r
- },\r
- //\r
- // FTW private working (state) area\r
- //\r
- {\r
- EFI_FTW_WORKING_OFFSET,\r
- EFI_FTW_WORKING_LENGTH,\r
- EFI_FLASH_AREA_SUBFV | EFI_FLASH_AREA_MEMMAPPED_FV,\r
- EFI_FLASH_AREA_FTW_STATE,\r
- 0, 0, 0,\r
- { 0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }\r
- },\r
- //\r
- // Recovery FV\r
- //\r
- {\r
- EFI_WINNT_FIRMWARE_OFFSET,\r
- EFI_WINNT_FIRMWARE_LENGTH,\r
- EFI_FLASH_AREA_FV | EFI_FLASH_AREA_MEMMAPPED_FV,\r
- EFI_FLASH_AREA_RECOVERY_BIOS,\r
- 0, 0, 0,\r
- { 0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }\r
- },\r
- //\r
- // System Non-Volatile Storage FV\r
- //\r
- {\r
- EFI_WINNT_RUNTIME_UPDATABLE_OFFSET,\r
- EFI_WINNT_RUNTIME_UPDATABLE_LENGTH + EFI_WINNT_FTW_SPARE_BLOCK_LENGTH,\r
- EFI_FLASH_AREA_FV | EFI_FLASH_AREA_MEMMAPPED_FV,\r
- EFI_FLASH_AREA_GUID_DEFINED,\r
- 0, 0, 0,\r
- EFI_SYSTEM_NV_DATA_HOB_GUID\r
- },\r
-};\r
-\r