From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga05.intel.com (mga05.intel.com []) by mx.groups.io with SMTP id smtpd.web11.17938.1574147512882678979 for ; Mon, 18 Nov 2019 23:11:53 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=fail (domain: intel.com, ip: , mailfrom: michael.a.kubacki@intel.com) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Nov 2019 23:11:48 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,322,1569308400"; d="scan'208";a="218155749" Received: from makuback-desk1.amr.corp.intel.com ([10.7.159.162]) by orsmga002.jf.intel.com with ESMTP; 18 Nov 2019 23:11:48 -0800 From: "Kubacki, Michael A" To: devel@edk2.groups.io Cc: Dandan Bi , Liming Gao , Jian J Wang , Hao A Wu Subject: [PATCH V3 1/2] MdeModulePkg PeiCore: Improve PeiInstallPeiMemory() description Date: Mon, 18 Nov 2019 23:11:40 -0800 Message-Id: <20191119071141.17192-2-michael.a.kubacki@intel.com> X-Mailer: git-send-email 2.16.2.windows.1 In-Reply-To: <20191119071141.17192-1-michael.a.kubacki@intel.com> References: <20191119071141.17192-1-michael.a.kubacki@intel.com> Updates the function description for PeiInstallPeiMemory () to be more helpful. The description is based on that given in the PI Specification Version 1.7. Cc: Dandan Bi Cc: Liming Gao Cc: Jian J Wang Cc: Hao A Wu Signed-off-by: Michael Kubacki Reviewed-by: Jian J Wang --- Notes: V3 Changes: 1. Remove the change to PiPeiCis.h as it is moved to a separate patch. V2 Changes: 1. Updated the status code return values to those defined in the function description in the PI specification, Vol 1 v1.7. 2. Updated the EFI_PEI_INSTALL_PEI_MEMORY function description in PiPeiCis.h. MdeModulePkg/Core/Pei/PeiMain.h | 28 ++++++++++++++---- MdeModulePkg/Core/Pei/Memory/MemoryServices.c | 30 ++++++++++++++------ 2 files changed, 43 insertions(+), 15 deletions(-) diff --git a/MdeModulePkg/Core/Pei/PeiMain.h b/MdeModulePkg/Core/Pei/PeiMain.h index f2aa97c664..0d3d62dbbe 100644 --- a/MdeModulePkg/Core/Pei/PeiMain.h +++ b/MdeModulePkg/Core/Pei/PeiMain.h @@ -898,15 +898,31 @@ InitializeMemoryServices ( ); /** + Registers the found memory configuration with the PEI Foundation. - Install the permanent memory is now available. - Creates HOB (PHIT and Stack). + This service enables PEIMs to register the permanent memory configuration that has been initialized + with the PEI Foundation. The result of this call-set is the creation of the appropriate Hand-Off Block + (HOB) describing the physical memory. - @param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. - @param MemoryBegin Start of memory address. - @param MemoryLength Length of memory. + The usage model is that the PEIM that discovers the permanent memory shall invoke this service. + This routine will store discovered memory information in the PeiCore's private data, and set the + SwitchStackSignal flag. After the PEIM who discovered memory is dispatched, the PeiDispatcher will + migrate temporary memory to permanent memory. - @return EFI_SUCCESS Always success. + The memory reported is a single contiguous run. It should be enough to allocate a PEI stack and + some HOB list. The full memory map will be reported using the appropriate memory HOBs. The + PEI Foundation will follow up with an installation of EFI_PEI_PERMANENT_MEMORY_INSTALLED_PPI. + + Any invocations of this service after the first invocation which returns EFI_SUCCESS will be ignored. + + @param[in] PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. + @param[in] MemoryBegin Start of memory address. + @param[in] MemoryLength Length of memory. + + @retval EFI_SUCCESS The region was successfully installed in a HOB or this service was successfully + invoked earlier and no HOB modification will occur. + @retval EFI_INVALID_PARAMETER MemoryBegin and MemoryLength are illegal for this system. + @retval EFI_OUT_OF_RESOURCES There is no additional space for HOB creation. **/ EFI_STATUS diff --git a/MdeModulePkg/Core/Pei/Memory/MemoryServices.c b/MdeModulePkg/Core/Pei/Memory/MemoryServices.c index 706837890f..679ac20493 100644 --- a/MdeModulePkg/Core/Pei/Memory/MemoryServices.c +++ b/MdeModulePkg/Core/Pei/Memory/MemoryServices.c @@ -1,7 +1,7 @@ /** @file EFI PEI Core memory services -Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
+Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ @@ -55,19 +55,31 @@ InitializeMemoryServices ( } /** + Registers the found memory configuration with the PEI Foundation. - This function registers the found memory configuration with the PEI Foundation. + This service enables PEIMs to register the permanent memory configuration that has been initialized + with the PEI Foundation. The result of this call-set is the creation of the appropriate Hand-Off Block + (HOB) describing the physical memory. The usage model is that the PEIM that discovers the permanent memory shall invoke this service. - This routine will hold discoveried memory information into PeiCore's private data, - and set SwitchStackSignal flag. After PEIM who discovery memory is dispatched, - PeiDispatcher will migrate temporary memory to permenement memory. + This routine will store discovered memory information in the PeiCore's private data, and set the + SwitchStackSignal flag. After the PEIM who discovered memory is dispatched, the PeiDispatcher will + migrate temporary memory to permanent memory. - @param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. - @param MemoryBegin Start of memory address. - @param MemoryLength Length of memory. + The memory reported is a single contiguous run. It should be enough to allocate a PEI stack and + some HOB list. The full memory map will be reported using the appropriate memory HOBs. The + PEI Foundation will follow up with an installation of EFI_PEI_PERMANENT_MEMORY_INSTALLED_PPI. - @return EFI_SUCCESS Always success. + Any invocations of this service after the first invocation which returns EFI_SUCCESS will be ignored. + + @param[in] PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. + @param[in] MemoryBegin Start of memory address. + @param[in] MemoryLength Length of memory. + + @retval EFI_SUCCESS The region was successfully installed in a HOB or this service was successfully + invoked earlier and no HOB modification will occur. + @retval EFI_INVALID_PARAMETER MemoryBegin and MemoryLength are illegal for this system. + @retval EFI_OUT_OF_RESOURCES There is no additional space for HOB creation. **/ EFI_STATUS -- 2.16.2.windows.1