Jiewen,

I recommend SmmCpuFeaturesAllocatePageTableMemory () function header comment 
block be updated clarify that the API can be called more once to allocate 
memory for page tables.  With that comment change:

Reviewed-by: Michael Kinney <michael.d.kin...@intel.com>

Mike

> -----Original Message-----
> From: Yao, Jiewen
> Sent: Tuesday, November 24, 2015 5:05 PM
> To: edk2-de...@ml01.01.org
> Cc: Yao, Jiewen <jiewen....@intel.com>; Fan, Jeff <jeff....@intel.com>; 
> Kinney, Michael D <michael.d.kin...@intel.com>
> Subject: [patch 1/3] UefiCpuPkg/PiSmmCpu: Add 2 APIs in SmmCpuFeaturesLib.
> 
> SmmCpuFeaturesCompleteSmmReadyToLock() is a hook point to allow
> CPU specific code to do more registers setting after
> the gEfiSmmReadyToLockProtocolGuid notification is completely processed.
> 
> SmmCpuFeaturesAllocatePageTableMemory() is an API to allow
> CPU to allocate a specific region for storing page tables.
> 
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: "Yao, Jiewen" <jiewen....@intel.com>
> Cc: "Fan, Jeff" <jeff....@intel.com>
> Cc: "Kinney, Michael D" <michael.d.kin...@intel.com>
> ---
>  UefiCpuPkg/Include/Library/SmmCpuFeaturesLib.h | 33 
> ++++++++++++++++++++++++++
>  1 file changed, 33 insertions(+)
> 
> diff --git a/UefiCpuPkg/Include/Library/SmmCpuFeaturesLib.h 
> b/UefiCpuPkg/Include/Library/SmmCpuFeaturesLib.h
> index d1c7a8a..dba78f0 100644
> --- a/UefiCpuPkg/Include/Library/SmmCpuFeaturesLib.h
> +++ b/UefiCpuPkg/Include/Library/SmmCpuFeaturesLib.h
> @@ -363,4 +363,37 @@ SmmCpuFeaturesWriteSaveStateRegister (
>    IN CONST VOID                   *Buffer
>    );
> 
> +/**
> +  This function is hook point called after the gEfiSmmReadyToLockProtocolGuid
> +  notification is completely processed.
> +**/
> +VOID
> +EFIAPI
> +SmmCpuFeaturesCompleteSmmReadyToLock (
> +  VOID
> +  );
> +
> +/**
> +  This API provides a method for a CPU to allocate a specific region for 
> storing page tables.
> +
> +  Allocates the number of 4KB pages of type EfiRuntimeServicesData and 
> returns a pointer to the
> +  allocated buffer.  The buffer returned is aligned on a 4KB boundary.  If 
> Pages is 0, then NULL
> +  is returned.  If there is not enough memory remaining to satisfy the 
> request, then NULL is
> +  returned.
> +
> +  This function can also return NULL if there is no preference on where the 
> page tables are allocated in SMRAM.
> +
> +  @param  Pages                 The number of 4 KB pages to allocate.
> +
> +  @return A pointer to the allocated buffer for page tables.
> +  @retval NULL      Fail to allocate a specific region for storing page 
> tables,
> +                    Or there is no preference on where the page tables are 
> allocated in SMRAM.
> +
> +**/
> +VOID *
> +EFIAPI
> +SmmCpuFeaturesAllocatePageTableMemory (
> +  IN UINTN           Pages
> +  );
> +
>  #endif
> --
> 1.9.5.msysgit.0

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to