Revision: 18830
          http://sourceforge.net/p/edk2/code/18830
Author:   vanjeff
Date:     2015-11-17 04:55:54 +0000 (Tue, 17 Nov 2015)
Log Message:
-----------
UefiCpuPkg: Add PlatformSecLib

Add PlatformSecLib class and PlatformSecLibNull instance
that is used by the SecCore.  PlatformSecLibNull should
not be used in a platform build.  Instead, it should be
used as a template for implementing a platform specific
instance of the PlatformSecLib library class.

(Sync patch r18635 from main trunk.)

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Kinney <[email protected]>
Reviewed-by: Jeff Fan <[email protected]>

Revision Links:
--------------
    http://sourceforge.net/p/edk2/code/18635

Added Paths:
-----------
    branches/UDK2015/UefiCpuPkg/Include/Library/PlatformSecLib.h
    branches/UDK2015/UefiCpuPkg/Library/PlatformSecLibNull/
    branches/UDK2015/UefiCpuPkg/Library/PlatformSecLibNull/PlatformSecLibNull.c
    
branches/UDK2015/UefiCpuPkg/Library/PlatformSecLibNull/PlatformSecLibNull.inf
    
branches/UDK2015/UefiCpuPkg/Library/PlatformSecLibNull/PlatformSecLibNull.uni

Added: branches/UDK2015/UefiCpuPkg/Include/Library/PlatformSecLib.h
===================================================================
--- branches/UDK2015/UefiCpuPkg/Include/Library/PlatformSecLib.h                
                (rev 0)
+++ branches/UDK2015/UefiCpuPkg/Include/Library/PlatformSecLib.h        
2015-11-17 04:55:54 UTC (rev 18830)
@@ -0,0 +1,70 @@
+/** @file
+This library class defines interface for platform to perform platform
+specific initialization in SEC phase.
+
+Copyright (c) 2013 - 2015, Intel Corporation. All rights reserved.<BR>
+This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD 
License
+which accompanies this distribution.  The full text of the license may be 
found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+
+#ifndef __PLATFORM_SEC_LIB_H__
+#define __PLATFORM_SEC_LIB_H__
+
+/**
+  A developer supplied function to perform platform specific operations.
+
+  It's a developer supplied function to perform any operations appropriate to a
+  given platform. It's invoked just before passing control to PEI core by SEC
+  core. Platform developer may modify the SecCoreData passed to PEI Core.
+  It returns a platform specific PPI list that platform wishes to pass to PEI 
core.
+  The Generic SEC core module will merge this list to join the final list 
passed to
+  PEI core.
+
+  @param  SecCoreData           The same parameter as passing to PEI core. It
+                                could be overridden by this function.
+
+  @return The platform specific PPI list to be passed to PEI core or
+          NULL if there is no need of such platform specific PPI list.
+
+**/
+EFI_PEI_PPI_DESCRIPTOR *
+EFIAPI
+SecPlatformMain (
+  IN OUT   EFI_SEC_PEI_HAND_OFF        *SecCoreData
+  );
+
+/**
+  This interface conveys state information out of the Security (SEC) phase 
into PEI.
+
+  @param  PeiServices               Pointer to the PEI Services Table.
+  @param  StructureSize             Pointer to the variable describing size of 
the input buffer.
+  @param  PlatformInformationRecord Pointer to the 
EFI_SEC_PLATFORM_INFORMATION_RECORD.
+
+  @retval EFI_SUCCESS           The data was successfully returned.
+  @retval EFI_BUFFER_TOO_SMALL  The buffer was too small.
+
+**/
+EFI_STATUS
+EFIAPI
+SecPlatformInformation (
+  IN CONST EFI_PEI_SERVICES                     **PeiServices,
+  IN OUT   UINT64                               *StructureSize,
+     OUT   EFI_SEC_PLATFORM_INFORMATION_RECORD  *PlatformInformationRecord
+  );
+
+/**
+  This interface disables temporary memory in SEC Phase.
+**/
+VOID
+EFIAPI
+SecPlatformDisableTemporaryMemory (
+  VOID
+  );
+
+#endif

Added: 
branches/UDK2015/UefiCpuPkg/Library/PlatformSecLibNull/PlatformSecLibNull.c
===================================================================
--- branches/UDK2015/UefiCpuPkg/Library/PlatformSecLibNull/PlatformSecLibNull.c 
                        (rev 0)
+++ branches/UDK2015/UefiCpuPkg/Library/PlatformSecLibNull/PlatformSecLibNull.c 
2015-11-17 04:55:54 UTC (rev 18830)
@@ -0,0 +1,90 @@
+/** @file
+Null instance of Platform Sec Lib.
+
+Copyright (c) 2013 - 2015, Intel Corporation. All rights reserved.<BR>
+This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD 
License
+which accompanies this distribution.  The full text of the license may be 
found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+
+#include <PiPei.h>
+
+#include <Ppi/SecPlatformInformation.h>
+
+/**
+  A developer supplied function to perform platform specific operations.
+
+  It's a developer supplied function to perform any operations appropriate to a
+  given platform. It's invoked just before passing control to PEI core by SEC
+  core. Platform developer may modify the SecCoreData passed to PEI Core.
+  It returns a platform specific PPI list that platform wishes to pass to PEI 
core.
+  The Generic SEC core module will merge this list to join the final list 
passed to
+  PEI core.
+
+  @param  SecCoreData           The same parameter as passing to PEI core. It
+                                could be overridden by this function.
+
+  @return The platform specific PPI list to be passed to PEI core or
+          NULL if there is no need of such platform specific PPI list.
+
+**/
+EFI_PEI_PPI_DESCRIPTOR *
+EFIAPI
+SecPlatformMain (
+  IN OUT   EFI_SEC_PEI_HAND_OFF        *SecCoreData
+  )
+{
+  return NULL;
+}
+
+/**
+  This interface conveys state information out of the Security (SEC) phase 
into PEI.
+
+  @param  PeiServices               Pointer to the PEI Services Table.
+  @param  StructureSize             Pointer to the variable describing size of 
the input buffer.
+  @param  PlatformInformationRecord Pointer to the 
EFI_SEC_PLATFORM_INFORMATION_RECORD.
+
+  @retval EFI_SUCCESS           The data was successfully returned.
+  @retval EFI_BUFFER_TOO_SMALL  The buffer was too small.
+
+**/
+EFI_STATUS
+EFIAPI
+SecPlatformInformation (
+  IN CONST EFI_PEI_SERVICES                     **PeiServices,
+  IN OUT   UINT64                               *StructureSize,
+     OUT   EFI_SEC_PLATFORM_INFORMATION_RECORD  *PlatformInformationRecord
+  )
+{
+  return EFI_SUCCESS;
+}
+
+/**
+  This interface disables temporary memory in SEC Phase.
+**/
+VOID
+EFIAPI
+SecPlatformDisableTemporaryMemory (
+  VOID
+  )
+{
+}
+
+/**
+  This function provides dummy function so that SecCore can pass build
+  validation. All real platform library instances need to implement the real
+  entry point in assembly.
+**/
+VOID
+EFIAPI
+_ModuleEntryPoint (
+  VOID
+  )
+{
+  return;
+}

Added: 
branches/UDK2015/UefiCpuPkg/Library/PlatformSecLibNull/PlatformSecLibNull.inf
===================================================================
--- 
branches/UDK2015/UefiCpuPkg/Library/PlatformSecLibNull/PlatformSecLibNull.inf   
                            (rev 0)
+++ 
branches/UDK2015/UefiCpuPkg/Library/PlatformSecLibNull/PlatformSecLibNull.inf   
    2015-11-17 04:55:54 UTC (rev 18830)
@@ -0,0 +1,37 @@
+## @file
+#  Library functions for PlatformSecLib.
+#
+#  Null instance of Platform Sec Lib.
+#
+#  Copyright (c) 2013 - 2015, Intel Corporation. All rights reserved.<BR>
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD 
License
+#  which accompanies this distribution.  The full text of the license may be 
found at
+#  http://opensource.org/licenses/bsd-license.php
+#
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR 
IMPLIED.
+#
+##
+
+[Defines]
+  INF_VERSION                    = 0x00010005
+  BASE_NAME                      = PlatformSecLibNull
+  MODULE_UNI_FILE                = PlatformSecLibNull.uni
+  FILE_GUID                      = 6695974D-968C-420b-80B9-7870CD20118F
+  MODULE_TYPE                    = SEC
+  VERSION_STRING                 = 1.0
+  LIBRARY_CLASS                  = PlatformSecLib
+
+#
+# The following information is for reference only and not required by the 
build tools.
+#
+#  VALID_ARCHITECTURES           = IA32 X64
+#
+
+[Sources]
+  PlatformSecLibNull.c
+
+[Packages]
+  MdePkg/MdePkg.dec
+  UefiCpuPkg/UefiCpuPkg.dec

Added: 
branches/UDK2015/UefiCpuPkg/Library/PlatformSecLibNull/PlatformSecLibNull.uni
===================================================================
--- 
branches/UDK2015/UefiCpuPkg/Library/PlatformSecLibNull/PlatformSecLibNull.uni   
                            (rev 0)
+++ 
branches/UDK2015/UefiCpuPkg/Library/PlatformSecLibNull/PlatformSecLibNull.uni   
    2015-11-17 04:55:54 UTC (rev 18830)
@@ -0,0 +1,41 @@
+\xFF\xFE/++++++++++++++++++++\ No newline at end of file


------------------------------------------------------------------------------
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to