]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ShellPkg/Library/UefiShellDebug1CommandsLib/MemMap.c
ShellPkg: Add Persistent Memory support in 'memmap' command
[mirror_edk2.git] / ShellPkg / Library / UefiShellDebug1CommandsLib / MemMap.c
index 81c561f680c4d31c578a2896e39e360e1d3fbedf..a4eb1be27e54b576028b02b47cb18f771bb2fbb1 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
   Main file for Mode shell Debug1 function.\r
 \r
+  (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>\r
   (C) Copyright 2013-2015 Hewlett-Packard Development Company, L.P.<BR>\r
   Copyright (c) 2010 - 2015, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
@@ -100,6 +101,8 @@ ShellCommandRunMemMap (
   UINT64              UnusableMemoryPagesSize;\r
   UINT64              PalCodePages;\r
   UINT64              PalCodePagesSize;\r
+  UINT64              PersistentPages;\r
+  UINT64              PersistentPagesSize;\r
   BOOLEAN             Sfo;\r
 \r
   AcpiReclaimPages    = 0;\r
@@ -117,6 +120,7 @@ ShellCommandRunMemMap (
   MmioPortPages       = 0;\r
   UnusableMemoryPages = 0;\r
   PalCodePages        = 0;\r
+  PersistentPages     = 0;\r
   Size                = 0;\r
   Buffer              = NULL;\r
   ShellStatus         = SHELL_SUCCESS;\r
@@ -210,8 +214,8 @@ ShellCommandRunMemMap (
               break;\r
             case EfiPersistentMemory:\r
               ShellPrintHiiEx(-1, -1, NULL, (EFI_STRING_ID)(!Sfo?STRING_TOKEN (STR_MEMMAP_LIST_ITEM):STRING_TOKEN (STR_MEMMAP_LIST_ITEM_SFO)), gShellDebug1HiiHandle, NameEfiPersistentMemory, ((EFI_MEMORY_DESCRIPTOR*)Walker)->PhysicalStart, ((EFI_MEMORY_DESCRIPTOR*)Walker)->PhysicalStart+MultU64x64(SIZE_4KB,((EFI_MEMORY_DESCRIPTOR*)Walker)->NumberOfPages)-1, ((EFI_MEMORY_DESCRIPTOR*)Walker)->NumberOfPages, ((EFI_MEMORY_DESCRIPTOR*)Walker)->Attribute);\r
-              AvailPages += ((EFI_MEMORY_DESCRIPTOR*)Walker)->NumberOfPages;\r
-              TotalPages += ((EFI_MEMORY_DESCRIPTOR*)Walker)->NumberOfPages;\r
+              PersistentPages += ((EFI_MEMORY_DESCRIPTOR*)Walker)->NumberOfPages;\r
+              TotalPages      += ((EFI_MEMORY_DESCRIPTOR*)Walker)->NumberOfPages;\r
               break;\r
             case EfiUnusableMemory:\r
               ShellPrintHiiEx(-1, -1, NULL, (EFI_STRING_ID)(!Sfo?STRING_TOKEN (STR_MEMMAP_LIST_ITEM):STRING_TOKEN (STR_MEMMAP_LIST_ITEM_SFO)), gShellDebug1HiiHandle, !Sfo?NameEfiUnusableMemoryShort:NameEfiUnusableMemory, ((EFI_MEMORY_DESCRIPTOR*)Walker)->PhysicalStart, ((EFI_MEMORY_DESCRIPTOR*)Walker)->PhysicalStart+MultU64x64(SIZE_4KB,((EFI_MEMORY_DESCRIPTOR*)Walker)->NumberOfPages)-1, ((EFI_MEMORY_DESCRIPTOR*)Walker)->NumberOfPages, ((EFI_MEMORY_DESCRIPTOR*)Walker)->Attribute);\r
@@ -261,6 +265,7 @@ ShellCommandRunMemMap (
         MmioSpacePagesSize      = MultU64x64(SIZE_4KB,MmioSpacePages);\r
         MmioPortPagesSize       = MultU64x64(SIZE_4KB,MmioPortPages);\r
         PalCodePagesSize        = MultU64x64(SIZE_4KB,PalCodePages);\r
+        PersistentPagesSize     = MultU64x64(SIZE_4KB,PersistentPages);\r
         UnusableMemoryPagesSize = MultU64x64(SIZE_4KB,UnusableMemoryPages);\r
         if (!Sfo) {\r
           ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MEMMAP_LIST_SUMM), gShellDebug1HiiHandle,\r
@@ -277,6 +282,7 @@ ShellCommandRunMemMap (
             MmioPortPages, MmioPortPagesSize,\r
             PalCodePages, PalCodePagesSize,\r
             AvailPages, AvailPagesSize,\r
+            PersistentPages, PersistentPagesSize,\r
             DivU64x32(MultU64x64(SIZE_4KB,TotalPages), SIZE_1MB), TotalPagesSize\r
            );\r
         } else {\r
@@ -295,7 +301,8 @@ ShellCommandRunMemMap (
             UnusableMemoryPagesSize,\r
             AcpiReclaimPagesSize,\r
             AcpiNvsPagesSize,\r
-            PalCodePagesSize\r
+            PalCodePagesSize,\r
+            PersistentPagesSize\r
            );\r
         }\r
       }\r