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