From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from g9t5008.houston.hpe.com (g9t5008.houston.hpe.com [15.241.48.72]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 8A8EB1A1F46 for ; Thu, 22 Sep 2016 13:16:22 -0700 (PDT) Received: from SHAHTA6.americas.hpqcorp.net (shahta6.americas.hpqcorp.net [16.100.127.81]) by g9t5008.houston.hpe.com (Postfix) with ESMTP id B480362; Thu, 22 Sep 2016 20:16:21 +0000 (UTC) From: Tapan Shah To: edk2-devel@lists.01.org Cc: jaben.carsey@intel.com, Tapan Shah Date: Thu, 22 Sep 2016 15:16:18 -0500 Message-Id: <1474575378-13968-1-git-send-email-tapandshah@hpe.com> X-Mailer: git-send-email 1.9.5.msysgit.0 Subject: [PATCH] ShellPkg: Add Persistent Memory support in 'memmap' command X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Sep 2016 20:16:22 -0000 As per ECR 1416, latest UEFI Shell 2.2 Specification has added Persistent Memory support in 'memmap' command. --- ShellPkg/Library/UefiShellDebug1CommandsLib/MemMap.c | 13 ++++++++++--- .../UefiShellDebug1CommandsLib.uni | 3 ++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/MemMap.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/MemMap.c index 81c561f..a4eb1be 100644 --- a/ShellPkg/Library/UefiShellDebug1CommandsLib/MemMap.c +++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/MemMap.c @@ -1,6 +1,7 @@ /** @file Main file for Mode shell Debug1 function. + (C) Copyright 2016 Hewlett Packard Enterprise Development LP
(C) Copyright 2013-2015 Hewlett-Packard Development Company, L.P.
Copyright (c) 2010 - 2015, Intel Corporation. All rights reserved.
This program and the accompanying materials @@ -100,6 +101,8 @@ ShellCommandRunMemMap ( UINT64 UnusableMemoryPagesSize; UINT64 PalCodePages; UINT64 PalCodePagesSize; + UINT64 PersistentPages; + UINT64 PersistentPagesSize; BOOLEAN Sfo; AcpiReclaimPages = 0; @@ -117,6 +120,7 @@ ShellCommandRunMemMap ( MmioPortPages = 0; UnusableMemoryPages = 0; PalCodePages = 0; + PersistentPages = 0; Size = 0; Buffer = NULL; ShellStatus = SHELL_SUCCESS; @@ -210,8 +214,8 @@ ShellCommandRunMemMap ( break; case EfiPersistentMemory: 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); - AvailPages += ((EFI_MEMORY_DESCRIPTOR*)Walker)->NumberOfPages; - TotalPages += ((EFI_MEMORY_DESCRIPTOR*)Walker)->NumberOfPages; + PersistentPages += ((EFI_MEMORY_DESCRIPTOR*)Walker)->NumberOfPages; + TotalPages += ((EFI_MEMORY_DESCRIPTOR*)Walker)->NumberOfPages; break; case EfiUnusableMemory: 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); @@ -261,6 +265,7 @@ ShellCommandRunMemMap ( MmioSpacePagesSize = MultU64x64(SIZE_4KB,MmioSpacePages); MmioPortPagesSize = MultU64x64(SIZE_4KB,MmioPortPages); PalCodePagesSize = MultU64x64(SIZE_4KB,PalCodePages); + PersistentPagesSize = MultU64x64(SIZE_4KB,PersistentPages); UnusableMemoryPagesSize = MultU64x64(SIZE_4KB,UnusableMemoryPages); if (!Sfo) { ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MEMMAP_LIST_SUMM), gShellDebug1HiiHandle, @@ -277,6 +282,7 @@ ShellCommandRunMemMap ( MmioPortPages, MmioPortPagesSize, PalCodePages, PalCodePagesSize, AvailPages, AvailPagesSize, + PersistentPages, PersistentPagesSize, DivU64x32(MultU64x64(SIZE_4KB,TotalPages), SIZE_1MB), TotalPagesSize ); } else { @@ -295,7 +301,8 @@ ShellCommandRunMemMap ( UnusableMemoryPagesSize, AcpiReclaimPagesSize, AcpiNvsPagesSize, - PalCodePagesSize + PalCodePagesSize, + PersistentPagesSize ); } } diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.uni b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.uni index c6c7ba9..52c2af0 100644 --- a/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.uni +++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.uni @@ -116,10 +116,11 @@ " MMIO_Port : %,14ld Pages (%,ld Bytes)\r\n" " PalCode : %,14ld Pages (%,ld Bytes)\r\n" " Available : %,14ld Pages (%,ld Bytes)\r\n" + " Persistent: %,14ld Pages (%,ld Bytes)\r\n" " -------------- \r\n" "Total Memory: %,14ld MB (%,ld Bytes)\r\n" #string STR_MEMMAP_LIST_ITEM_SFO #language en-US "MemoryMap,"%s","%LX","%LX","%LX","%LX"\r\n" -#string STR_MEMMAP_LIST_SUMM_SFO #language en-US "MemoryMapSummary,"%Ld","%Ld","%Ld","%Ld","%Ld","%Ld","%Ld","%Ld","%Ld","%Ld","%Ld","%Ld","%Ld","%Ld","%Ld"\r\n" +#string STR_MEMMAP_LIST_SUMM_SFO #language en-US "MemoryMapSummary,"%Ld","%Ld","%Ld","%Ld","%Ld","%Ld","%Ld","%Ld","%Ld","%Ld","%Ld","%Ld","%Ld","%Ld","%Ld","%Ld"\r\n" #string STR_EFI_COMPRESS_FAIL #language en-US "Unable to compress: %r.\r\n" #string STR_EFI_DECOMPRESS_FAIL #language en-US "Unable to decompress: %r.\r\n" -- 1.9.5.msysgit.0