public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH v2 0/3] Support EFI_PEI_CORE_FV_LOCATION_PPI
@ 2019-02-13  9:46 Chasel, Chiu
  2019-02-13  9:46 ` [PATCH v2 1/3] MdePkg: " Chasel, Chiu
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Chasel, Chiu @ 2019-02-13  9:46 UTC (permalink / raw)
  To: edk2-devel
  Cc: Michael D Kinney, Liming Gao, Jian J Wang, Hao Wu, Ray Ni,
	Star Zeng, Eric Dong, Laszlo Ersek

PI spec 1.7 section 6.3.9 has defined a PPI to support the scenario
that PEI Foundation not in BFV. EFI_PEI_CORE_FV_LOCATION_PPI reports
the FV which contains PEI Foundation and should be passed by SEC as
part of PPI list. Otherwise PEI Foundation shall assume that it
resides in BFV.

Patch1: Add EFI_PEI_CORE_FV_LOCATION_PPI definition.
Patch2: Support PeiCore not in BFV scenario when shadowing.
Patch3: SecCore to find PeiCore from either non-BFV or BFV.

Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Hao Wu <hao.a.wu@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>

Chasel, Chiu (3):
  MdePkg: Support EFI_PEI_CORE_FV_LOCATION_PPI
  MdeModulePkg/PeiMain: Support EFI_PEI_CORE_FV_LOCATION_PPI
  UefiCpuPkg/SecCore: Support EFI_PEI_CORE_FV_LOCATION_PPI

 MdeModulePkg/Core/Pei/PeiMain/PeiMain.c | 58 +++++++++++++++++++++++++++++++++++++++++++++-------------
 UefiCpuPkg/SecCore/SecMain.c            | 35 +++++++++++++++++++++++++++++------
 MdeModulePkg/Core/Pei/PeiMain.h         |  3 ++-
 MdeModulePkg/Core/Pei/PeiMain.inf       |  3 ++-
 MdePkg/Include/Ppi/PeiCoreFvLocation.h  | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 MdePkg/MdePkg.dec                       | 11 +++++++++--
 UefiCpuPkg/SecCore/SecCore.inf          |  3 ++-
 UefiCpuPkg/SecCore/SecMain.h            |  3 ++-
 8 files changed, 144 insertions(+), 25 deletions(-)
 create mode 100644 MdePkg/Include/Ppi/PeiCoreFvLocation.h

-- 
2.13.3.windows.1



^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2 1/3] MdePkg: Support EFI_PEI_CORE_FV_LOCATION_PPI
  2019-02-13  9:46 [PATCH v2 0/3] Support EFI_PEI_CORE_FV_LOCATION_PPI Chasel, Chiu
@ 2019-02-13  9:46 ` Chasel, Chiu
  2019-02-13  9:50   ` Zeng, Star
  2019-02-13  9:46 ` [PATCH v2 2/3] MdeModulePkg/PeiMain: " Chasel, Chiu
  2019-02-13  9:46 ` [PATCH v2 3/3] UefiCpuPkg/SecCore: " Chasel, Chiu
  2 siblings, 1 reply; 10+ messages in thread
From: Chasel, Chiu @ 2019-02-13  9:46 UTC (permalink / raw)
  To: edk2-devel; +Cc: Michael D Kinney, Liming Gao, Chasel Chiu

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1524

Add EFI_PEI_CORE_FV_LOCATION_PPI definition basing on
PI spec 1.7, Section 6.3.9.
This PPI can support the secnario that PEI Foundation
not in BFV.

Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Chasel Chiu <chasel.chiu@intel.com>
---
 MdePkg/Include/Ppi/PeiCoreFvLocation.h | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 MdePkg/MdePkg.dec                      | 11 +++++++++--
 2 files changed, 62 insertions(+), 2 deletions(-)

diff --git a/MdePkg/Include/Ppi/PeiCoreFvLocation.h b/MdePkg/Include/Ppi/PeiCoreFvLocation.h
new file mode 100644
index 0000000000..c7bbbfb265
--- /dev/null
+++ b/MdePkg/Include/Ppi/PeiCoreFvLocation.h
@@ -0,0 +1,53 @@
+/** @file
+  Header file for Pei Core FV Location PPI.
+
+  This PPI contains a pointer to the firmware volume which contains the PEI Foundation.
+  If the PEI Foundation does not reside in the BFV, then SEC must pass this PPI as a part
+  of the PPI list provided to the PEI Foundation Entry Point, otherwise the PEI Foundation
+  shall assume that it resides within the BFV.
+
+  Copyright (c) 2019, 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.
+
+  @par Revision Reference:
+  This PPI is defined in UEFI Platform Initialization Specification 1.7 Volume 1:
+  Standards
+
+**/
+
+
+#ifndef _EFI_PEI_CORE_FV_LOCATION_H_
+#define _EFI_PEI_CORE_FV_LOCATION_H_
+
+///
+/// Global ID for EFI_PEI_CORE_FV_LOCATION_PPI
+///
+#define EFI_PEI_CORE_FV_LOCATION_GUID \
+  { \
+    0x52888eae, 0x5b10, 0x47d0, {0xa8, 0x7f, 0xb8, 0x22, 0xab, 0xa0, 0xca, 0xf4 } \
+  }
+
+///
+/// Forward declaration for EFI_PEI_CORE_FV_LOCATION_PPI
+///
+typedef struct _EFI_PEI_CORE_FV_LOCATION_PPI EFI_PEI_CORE_FV_LOCATION_PPI;
+
+///
+/// This PPI provides location of EFI PeiCoreFv.
+///
+struct _EFI_PEI_CORE_FV_LOCATION_PPI {
+  ///
+  /// Pointer to the first byte of the firmware volume which contains the PEI Foundation.
+  ///
+  VOID    *PeiCoreFvLocation;
+};
+
+extern EFI_GUID gEfiPeiCoreFvLocationPpiGuid;
+
+#endif // _EFI_PEI_CORE_FV_LOCATION_H_
diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec
index a485408310..c859b4a511 100644
--- a/MdePkg/MdePkg.dec
+++ b/MdePkg/MdePkg.dec
@@ -2,9 +2,9 @@
 # This Package provides all definitions, library classes and libraries instances.
 #
 # It also provides the definitions(including PPIs/PROTOCOLs/GUIDs) of
-# EFI1.10/UEFI2.7/PI1.6 and some Industry Standards.
+# EFI1.10/UEFI2.7/PI1.7 and some Industry Standards.
 #
-# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2019, Intel Corporation. All rights reserved.<BR>
 # Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
 # (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>
 #
@@ -929,6 +929,13 @@
   ## Include/Ppi/SecHobData.h
   gEfiSecHobDataPpiGuid = { 0x3ebdaf20, 0x6667, 0x40d8, {0xb4, 0xee, 0xf5, 0x99, 0x9a, 0xc1, 0xb7, 0x1f } }
 
+  #
+  # PPIs defined in PI 1.7.
+  #
+
+  ## Include/Ppi/PeiCoreFvLocation.h
+  gEfiPeiCoreFvLocationPpiGuid   = { 0x52888eae, 0x5b10, 0x47d0, { 0xa8, 0x7f, 0xb8, 0x22, 0xab, 0xa0, 0xca, 0xf4 }}
+
 [Protocols]
   ## Include/Protocol/Pcd.h
   gPcdProtocolGuid               = { 0x11B34006, 0xD85B, 0x4D0A, { 0xA2, 0x90, 0xD5, 0xA5, 0x71, 0x31, 0x0E, 0xF7 }}
-- 
2.13.3.windows.1



^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 2/3] MdeModulePkg/PeiMain: Support EFI_PEI_CORE_FV_LOCATION_PPI
  2019-02-13  9:46 [PATCH v2 0/3] Support EFI_PEI_CORE_FV_LOCATION_PPI Chasel, Chiu
  2019-02-13  9:46 ` [PATCH v2 1/3] MdePkg: " Chasel, Chiu
@ 2019-02-13  9:46 ` Chasel, Chiu
  2019-02-13  9:50   ` Zeng, Star
  2019-02-13 10:01   ` Wang, Jian J
  2019-02-13  9:46 ` [PATCH v2 3/3] UefiCpuPkg/SecCore: " Chasel, Chiu
  2 siblings, 2 replies; 10+ messages in thread
From: Chasel, Chiu @ 2019-02-13  9:46 UTC (permalink / raw)
  To: edk2-devel
  Cc: Jian J Wang, Hao Wu, Ray Ni, Star Zeng, Liming Gao, Chasel Chiu

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1524

When shadowing PeiCore the EFI_PEI_CORE_FV_LOCATION_PPI
should be checked to see if PeiCore not in BFV, otherwise
just shadowing PeiCore from BFV.

Test: Verified on internal platform and booting successfully.

Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Hao Wu <hao.a.wu@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Chasel Chiu <chasel.chiu@intel.com>
---
 MdeModulePkg/Core/Pei/PeiMain/PeiMain.c | 58 +++++++++++++++++++++++++++++++++++++++++++++-------------
 MdeModulePkg/Core/Pei/PeiMain.h         |  3 ++-
 MdeModulePkg/Core/Pei/PeiMain.inf       |  3 ++-
 3 files changed, 49 insertions(+), 15 deletions(-)

diff --git a/MdeModulePkg/Core/Pei/PeiMain/PeiMain.c b/MdeModulePkg/Core/Pei/PeiMain/PeiMain.c
index 4da80a8222..ba0f2b7b69 100644
--- a/MdeModulePkg/Core/Pei/PeiMain/PeiMain.c
+++ b/MdeModulePkg/Core/Pei/PeiMain/PeiMain.c
@@ -1,7 +1,7 @@
 /** @file
   Pei Core Main Entry Point
 
-Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2006 - 2019, 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
@@ -80,23 +80,55 @@ ShadowPeiCore (
   IN PEI_CORE_INSTANCE  *PrivateData
   )
 {
-  EFI_PEI_FILE_HANDLE  PeiCoreFileHandle;
-  EFI_PHYSICAL_ADDRESS EntryPoint;
-  EFI_STATUS           Status;
-  UINT32               AuthenticationState;
+  EFI_PEI_FILE_HANDLE          PeiCoreFileHandle;
+  EFI_PHYSICAL_ADDRESS         EntryPoint;
+  EFI_STATUS                   Status;
+  UINT32                       AuthenticationState;
+  UINTN                        Index;
+  EFI_PEI_CORE_FV_LOCATION_PPI *PeiCoreFvLocationPpi;
 
   PeiCoreFileHandle = NULL;
 
   //
-  // Find the PEI Core in the BFV
+  // Find the PEI Core either from EFI_PEI_CORE_FV_LOCATION_PPI indicated FV or BFV
   //
-  Status = PrivateData->Fv[0].FvPpi->FindFileByType (
-                                       PrivateData->Fv[0].FvPpi,
-                                       EFI_FV_FILETYPE_PEI_CORE,
-                                       PrivateData->Fv[0].FvHandle,
-                                       &PeiCoreFileHandle
-                                       );
-  ASSERT_EFI_ERROR (Status);
+  Status = PeiServicesLocatePpi (
+             &gEfiPeiCoreFvLocationPpiGuid,
+             0,
+             NULL,
+             (VOID **) &PeiCoreFvLocationPpi
+             );
+  if (!EFI_ERROR (Status) && (PeiCoreFvLocationPpi->PeiCoreFvLocation != NULL)) {
+    //
+    // If PeiCoreFvLocation present, the PEI Core should be found from indicated FV.
+    //
+    for (Index = 0; Index < PrivateData->FvCount; Index ++) {
+      if (PrivateData->Fv[Index].FvHandle != PeiCoreFvLocationPpi->PeiCoreFvLocation) {
+        continue;
+      }
+      Status = PrivateData->Fv[Index].FvPpi->FindFileByType (
+                                               PrivateData->Fv[Index].FvPpi,
+                                               EFI_FV_FILETYPE_PEI_CORE,
+                                               PrivateData->Fv[Index].FvHandle,
+                                               &PeiCoreFileHandle
+                                               );
+      if (!EFI_ERROR (Status)) {
+        break;
+      }
+    }
+    ASSERT (Index < PrivateData->FvCount);
+  } else {
+    //
+    // Find PEI Core from BFV
+    //
+    Status = PrivateData->Fv[0].FvPpi->FindFileByType (
+                                         PrivateData->Fv[0].FvPpi,
+                                         EFI_FV_FILETYPE_PEI_CORE,
+                                         PrivateData->Fv[0].FvHandle,
+                                         &PeiCoreFileHandle
+                                         );
+    ASSERT_EFI_ERROR (Status);
+  }
 
   //
   // Shadow PEI Core into memory so it will run faster
diff --git a/MdeModulePkg/Core/Pei/PeiMain.h b/MdeModulePkg/Core/Pei/PeiMain.h
index 322e7cd845..38542ab072 100644
--- a/MdeModulePkg/Core/Pei/PeiMain.h
+++ b/MdeModulePkg/Core/Pei/PeiMain.h
@@ -1,7 +1,7 @@
 /** @file
   Definition of Pei Core Structures and Services
 
-Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2006 - 2019, 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
@@ -49,6 +49,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #include <Guid/FirmwareFileSystem2.h>
 #include <Guid/FirmwareFileSystem3.h>
 #include <Guid/AprioriFileName.h>
+#include <Ppi/PeiCoreFvLocation.h>
 
 ///
 /// It is an FFS type extension used for PeiFindFileEx. It indicates current
diff --git a/MdeModulePkg/Core/Pei/PeiMain.inf b/MdeModulePkg/Core/Pei/PeiMain.inf
index 140c4444b1..5bab2aab8c 100644
--- a/MdeModulePkg/Core/Pei/PeiMain.inf
+++ b/MdeModulePkg/Core/Pei/PeiMain.inf
@@ -6,7 +6,7 @@
 # 2) Dispatch PEIM from discovered FV.
 # 3) Handoff control to DxeIpl to load DXE core and enter DXE phase.
 #
-# Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2006 - 2019, 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
@@ -102,6 +102,7 @@
   gEfiTemporaryRamDonePpiGuid                   ## SOMETIMES_CONSUMES
   gEfiPeiReset2PpiGuid                          ## SOMETIMES_CONSUMES
   gEfiSecHobDataPpiGuid                         ## SOMETIMES_CONSUMES
+  gEfiPeiCoreFvLocationPpiGuid                  ## SOMETIMES_CONSUMES
 
 [Pcd]
   gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPeiStackSize                  ## CONSUMES
-- 
2.13.3.windows.1



^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 3/3] UefiCpuPkg/SecCore: Support EFI_PEI_CORE_FV_LOCATION_PPI
  2019-02-13  9:46 [PATCH v2 0/3] Support EFI_PEI_CORE_FV_LOCATION_PPI Chasel, Chiu
  2019-02-13  9:46 ` [PATCH v2 1/3] MdePkg: " Chasel, Chiu
  2019-02-13  9:46 ` [PATCH v2 2/3] MdeModulePkg/PeiMain: " Chasel, Chiu
@ 2019-02-13  9:46 ` Chasel, Chiu
  2019-02-14  8:25   ` Ni, Ray
  2 siblings, 1 reply; 10+ messages in thread
From: Chasel, Chiu @ 2019-02-13  9:46 UTC (permalink / raw)
  To: edk2-devel; +Cc: Eric Dong, Ray Ni, Laszlo Ersek, Chasel Chiu

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1524

EFI_PEI_CORE_FV_LOCATION_PPI may be passed by platform
when PeiCore not in BFV so SecCore has to search PeiCore
either from the FV location provided by
EFI_PEI_CORE_FV_LOCATION_PPI or from BFV.

Test: Verified on internal platform and booting successfully.

Cc: Eric Dong <eric.dong@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Chasel Chiu <chasel.chiu@intel.com>
---
 UefiCpuPkg/SecCore/SecMain.c   | 35 +++++++++++++++++++++++++++++------
 UefiCpuPkg/SecCore/SecCore.inf |  3 ++-
 UefiCpuPkg/SecCore/SecMain.h   |  3 ++-
 3 files changed, 33 insertions(+), 8 deletions(-)

diff --git a/UefiCpuPkg/SecCore/SecMain.c b/UefiCpuPkg/SecCore/SecMain.c
index b24e190617..b99072599d 100644
--- a/UefiCpuPkg/SecCore/SecMain.c
+++ b/UefiCpuPkg/SecCore/SecMain.c
@@ -1,7 +1,7 @@
 /** @file
   C functions in SEC
 
-  Copyright (c) 2008 - 2018, Intel Corporation. All rights reserved.<BR>
+  Copyright (c) 2008 - 2019, 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
@@ -228,26 +228,49 @@ SecStartupPhase2(
 {
   EFI_SEC_PEI_HAND_OFF        *SecCoreData;
   EFI_PEI_PPI_DESCRIPTOR      *PpiList;
+  EFI_PEI_PPI_DESCRIPTOR      *PpiListTmp;
   UINT32                      Index;
   EFI_PEI_PPI_DESCRIPTOR      *AllSecPpiList;
   EFI_PEI_CORE_ENTRY_POINT    PeiCoreEntryPoint;
 
+  PeiCoreEntryPoint = NULL;
   SecCoreData   = (EFI_SEC_PEI_HAND_OFF *) Context;
   AllSecPpiList = (EFI_PEI_PPI_DESCRIPTOR *) SecCoreData->PeiTemporaryRamBase;
+
   //
   // Find Pei Core entry point. It will report SEC and Pei Core debug information if remote debug
   // is enabled.
   //
-  FindAndReportEntryPoints ((EFI_FIRMWARE_VOLUME_HEADER *) SecCoreData->BootFirmwareVolumeBase, &PeiCoreEntryPoint);
-  if (PeiCoreEntryPoint == NULL)
-  {
-    CpuDeadLoop ();
+  PpiList = SecPlatformMain (SecCoreData);
+  PpiListTmp = PpiList;
+  for (;;) {
+    if (CompareGuid (PpiListTmp->Guid, &gEfiPeiCoreFvLocationPpiGuid) && (((EFI_PEI_CORE_FV_LOCATION_PPI *) PpiListTmp->Ppi)->PeiCoreFvLocation != 0)) {
+      FindAndReportEntryPoints ((EFI_FIRMWARE_VOLUME_HEADER *) ((EFI_PEI_CORE_FV_LOCATION_PPI *) PpiListTmp->Ppi)->PeiCoreFvLocation, &PeiCoreEntryPoint);
+      if (PeiCoreEntryPoint != NULL) {
+        break;
+      }
+    }
+    if ((PpiListTmp->Flags & EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST) == EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST) {
+      //
+      // Continue until the end of the PPI List.
+      //
+      break;
+    }
+    PpiListTmp++;
+  }
+  //
+  // If EFI_PEI_CORE_FV_LOCATION_PPI not found or no PeiCore found by the pointer in provided PPI, try to locate PeiCore from BFV.
+  //
+  if (PeiCoreEntryPoint == NULL) {
+    FindAndReportEntryPoints ((EFI_FIRMWARE_VOLUME_HEADER *) SecCoreData->BootFirmwareVolumeBase, &PeiCoreEntryPoint);
+    if (PeiCoreEntryPoint == NULL) {
+      CpuDeadLoop ();
+    }
   }
 
   //
   // Perform platform specific initialization before entering PeiCore.
   //
-  PpiList = SecPlatformMain (SecCoreData);
   if (PpiList != NULL) {
     //
     // Remove the terminal flag from the terminal PPI
diff --git a/UefiCpuPkg/SecCore/SecCore.inf b/UefiCpuPkg/SecCore/SecCore.inf
index 442f663911..fc1485b5cb 100644
--- a/UefiCpuPkg/SecCore/SecCore.inf
+++ b/UefiCpuPkg/SecCore/SecCore.inf
@@ -7,7 +7,7 @@
 #  protected mode, setup flat memory model, enable temporary memory and
 #  call into SecStartup().
 #
-#  Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+#  Copyright (c) 2006 - 2019, 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
@@ -73,6 +73,7 @@
   ## NOTIFY
   ## SOMETIMES_CONSUMES
   gPeiSecPerformancePpiGuid
+  gEfiPeiCoreFvLocationPpiGuid
 
 [Guids]
   ## SOMETIMES_PRODUCES   ## HOB
diff --git a/UefiCpuPkg/SecCore/SecMain.h b/UefiCpuPkg/SecCore/SecMain.h
index 83244af119..80045d34f4 100644
--- a/UefiCpuPkg/SecCore/SecMain.h
+++ b/UefiCpuPkg/SecCore/SecMain.h
@@ -1,7 +1,7 @@
 /** @file
   Master header file for SecCore.
 
-  Copyright (c) 2008 - 2018, Intel Corporation. All rights reserved.<BR>
+  Copyright (c) 2008 - 2019, 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
@@ -20,6 +20,7 @@
 #include <Ppi/SecPlatformInformation2.h>
 #include <Ppi/TemporaryRamDone.h>
 #include <Ppi/SecPerformance.h>
+#include <Ppi/PeiCoreFvLocation.h>
 
 #include <Guid/FirmwarePerformance.h>
 
-- 
2.13.3.windows.1



^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 1/3] MdePkg: Support EFI_PEI_CORE_FV_LOCATION_PPI
  2019-02-13  9:46 ` [PATCH v2 1/3] MdePkg: " Chasel, Chiu
@ 2019-02-13  9:50   ` Zeng, Star
  2019-02-13 23:55     ` Gao, Liming
  0 siblings, 1 reply; 10+ messages in thread
From: Zeng, Star @ 2019-02-13  9:50 UTC (permalink / raw)
  To: Chiu, Chasel, edk2-devel@lists.01.org
  Cc: Kinney, Michael D, Gao, Liming, Zeng, Star

Reviewed-by: Star Zeng <star.zeng@intel.com>

-----Original Message-----
From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Chasel, Chiu
Sent: Wednesday, February 13, 2019 5:47 PM
To: edk2-devel@lists.01.org
Cc: Kinney, Michael D <michael.d.kinney@intel.com>; Gao, Liming <liming.gao@intel.com>
Subject: [edk2] [PATCH v2 1/3] MdePkg: Support EFI_PEI_CORE_FV_LOCATION_PPI

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1524

Add EFI_PEI_CORE_FV_LOCATION_PPI definition basing on PI spec 1.7, Section 6.3.9.
This PPI can support the secnario that PEI Foundation not in BFV.

Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Chasel Chiu <chasel.chiu@intel.com>
---
 MdePkg/Include/Ppi/PeiCoreFvLocation.h | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 MdePkg/MdePkg.dec                      | 11 +++++++++--
 2 files changed, 62 insertions(+), 2 deletions(-)

diff --git a/MdePkg/Include/Ppi/PeiCoreFvLocation.h b/MdePkg/Include/Ppi/PeiCoreFvLocation.h
new file mode 100644
index 0000000000..c7bbbfb265
--- /dev/null
+++ b/MdePkg/Include/Ppi/PeiCoreFvLocation.h
@@ -0,0 +1,53 @@
+/** @file
+  Header file for Pei Core FV Location PPI.
+
+  This PPI contains a pointer to the firmware volume which contains the PEI Foundation.
+  If the PEI Foundation does not reside in the BFV, then SEC must pass 
+ this PPI as a part  of the PPI list provided to the PEI Foundation 
+ Entry Point, otherwise the PEI Foundation  shall assume that it resides within the BFV.
+
+  Copyright (c) 2019, 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.
+
+  @par Revision Reference:
+  This PPI is defined in UEFI Platform Initialization Specification 1.7 Volume 1:
+  Standards
+
+**/
+
+
+#ifndef _EFI_PEI_CORE_FV_LOCATION_H_
+#define _EFI_PEI_CORE_FV_LOCATION_H_
+
+///
+/// Global ID for EFI_PEI_CORE_FV_LOCATION_PPI /// #define 
+EFI_PEI_CORE_FV_LOCATION_GUID \
+  { \
+    0x52888eae, 0x5b10, 0x47d0, {0xa8, 0x7f, 0xb8, 0x22, 0xab, 0xa0, 
+0xca, 0xf4 } \
+  }
+
+///
+/// Forward declaration for EFI_PEI_CORE_FV_LOCATION_PPI /// typedef 
+struct _EFI_PEI_CORE_FV_LOCATION_PPI EFI_PEI_CORE_FV_LOCATION_PPI;
+
+///
+/// This PPI provides location of EFI PeiCoreFv.
+///
+struct _EFI_PEI_CORE_FV_LOCATION_PPI {
+  ///
+  /// Pointer to the first byte of the firmware volume which contains the PEI Foundation.
+  ///
+  VOID    *PeiCoreFvLocation;
+};
+
+extern EFI_GUID gEfiPeiCoreFvLocationPpiGuid;
+
+#endif // _EFI_PEI_CORE_FV_LOCATION_H_
diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec index a485408310..c859b4a511 100644
--- a/MdePkg/MdePkg.dec
+++ b/MdePkg/MdePkg.dec
@@ -2,9 +2,9 @@
 # This Package provides all definitions, library classes and libraries instances.
 #
 # It also provides the definitions(including PPIs/PROTOCOLs/GUIDs) of -# EFI1.10/UEFI2.7/PI1.6 and some Industry Standards.
+# EFI1.10/UEFI2.7/PI1.7 and some Industry Standards.
 #
-# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2019, Intel Corporation. All rights 
+reserved.<BR>
 # Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>  # (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>  # @@ -929,6 +929,13 @@
   ## Include/Ppi/SecHobData.h
   gEfiSecHobDataPpiGuid = { 0x3ebdaf20, 0x6667, 0x40d8, {0xb4, 0xee, 0xf5, 0x99, 0x9a, 0xc1, 0xb7, 0x1f } }
 
+  #
+  # PPIs defined in PI 1.7.
+  #
+
+  ## Include/Ppi/PeiCoreFvLocation.h
+  gEfiPeiCoreFvLocationPpiGuid   = { 0x52888eae, 0x5b10, 0x47d0, { 0xa8, 0x7f, 0xb8, 0x22, 0xab, 0xa0, 0xca, 0xf4 }}
+
 [Protocols]
   ## Include/Protocol/Pcd.h
   gPcdProtocolGuid               = { 0x11B34006, 0xD85B, 0x4D0A, { 0xA2, 0x90, 0xD5, 0xA5, 0x71, 0x31, 0x0E, 0xF7 }}
--
2.13.3.windows.1

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


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 2/3] MdeModulePkg/PeiMain: Support EFI_PEI_CORE_FV_LOCATION_PPI
  2019-02-13  9:46 ` [PATCH v2 2/3] MdeModulePkg/PeiMain: " Chasel, Chiu
@ 2019-02-13  9:50   ` Zeng, Star
  2019-02-13 10:01   ` Wang, Jian J
  1 sibling, 0 replies; 10+ messages in thread
From: Zeng, Star @ 2019-02-13  9:50 UTC (permalink / raw)
  To: Chiu, Chasel, edk2-devel@lists.01.org
  Cc: Wang, Jian J, Wu, Hao A, Ni, Ray, Gao, Liming, Zeng,  Star

Reviewed-by: Star Zeng <star.zeng@intel.com>

-----Original Message-----
From: Chiu, Chasel 
Sent: Wednesday, February 13, 2019 5:47 PM
To: edk2-devel@lists.01.org
Cc: Wang, Jian J <jian.j.wang@intel.com>; Wu, Hao A <hao.a.wu@intel.com>; Ni, Ray <ray.ni@intel.com>; Zeng, Star <star.zeng@intel.com>; Gao, Liming <liming.gao@intel.com>; Chiu, Chasel <chasel.chiu@intel.com>
Subject: [PATCH v2 2/3] MdeModulePkg/PeiMain: Support EFI_PEI_CORE_FV_LOCATION_PPI

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1524

When shadowing PeiCore the EFI_PEI_CORE_FV_LOCATION_PPI should be checked to see if PeiCore not in BFV, otherwise just shadowing PeiCore from BFV.

Test: Verified on internal platform and booting successfully.

Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Hao Wu <hao.a.wu@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Chasel Chiu <chasel.chiu@intel.com>
---
 MdeModulePkg/Core/Pei/PeiMain/PeiMain.c | 58 +++++++++++++++++++++++++++++++++++++++++++++-------------
 MdeModulePkg/Core/Pei/PeiMain.h         |  3 ++-
 MdeModulePkg/Core/Pei/PeiMain.inf       |  3 ++-
 3 files changed, 49 insertions(+), 15 deletions(-)

diff --git a/MdeModulePkg/Core/Pei/PeiMain/PeiMain.c b/MdeModulePkg/Core/Pei/PeiMain/PeiMain.c
index 4da80a8222..ba0f2b7b69 100644
--- a/MdeModulePkg/Core/Pei/PeiMain/PeiMain.c
+++ b/MdeModulePkg/Core/Pei/PeiMain/PeiMain.c
@@ -1,7 +1,7 @@
 /** @file
   Pei Core Main Entry Point
 
-Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2006 - 2019, 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 @@ -80,23 +80,55 @@ ShadowPeiCore (
   IN PEI_CORE_INSTANCE  *PrivateData
   )
 {
-  EFI_PEI_FILE_HANDLE  PeiCoreFileHandle;
-  EFI_PHYSICAL_ADDRESS EntryPoint;
-  EFI_STATUS           Status;
-  UINT32               AuthenticationState;
+  EFI_PEI_FILE_HANDLE          PeiCoreFileHandle;
+  EFI_PHYSICAL_ADDRESS         EntryPoint;
+  EFI_STATUS                   Status;
+  UINT32                       AuthenticationState;
+  UINTN                        Index;
+  EFI_PEI_CORE_FV_LOCATION_PPI *PeiCoreFvLocationPpi;
 
   PeiCoreFileHandle = NULL;
 
   //
-  // Find the PEI Core in the BFV
+  // Find the PEI Core either from EFI_PEI_CORE_FV_LOCATION_PPI 
+ indicated FV or BFV
   //
-  Status = PrivateData->Fv[0].FvPpi->FindFileByType (
-                                       PrivateData->Fv[0].FvPpi,
-                                       EFI_FV_FILETYPE_PEI_CORE,
-                                       PrivateData->Fv[0].FvHandle,
-                                       &PeiCoreFileHandle
-                                       );
-  ASSERT_EFI_ERROR (Status);
+  Status = PeiServicesLocatePpi (
+             &gEfiPeiCoreFvLocationPpiGuid,
+             0,
+             NULL,
+             (VOID **) &PeiCoreFvLocationPpi
+             );
+  if (!EFI_ERROR (Status) && (PeiCoreFvLocationPpi->PeiCoreFvLocation != NULL)) {
+    //
+    // If PeiCoreFvLocation present, the PEI Core should be found from indicated FV.
+    //
+    for (Index = 0; Index < PrivateData->FvCount; Index ++) {
+      if (PrivateData->Fv[Index].FvHandle != PeiCoreFvLocationPpi->PeiCoreFvLocation) {
+        continue;
+      }
+      Status = PrivateData->Fv[Index].FvPpi->FindFileByType (
+                                               PrivateData->Fv[Index].FvPpi,
+                                               EFI_FV_FILETYPE_PEI_CORE,
+                                               PrivateData->Fv[Index].FvHandle,
+                                               &PeiCoreFileHandle
+                                               );
+      if (!EFI_ERROR (Status)) {
+        break;
+      }
+    }
+    ASSERT (Index < PrivateData->FvCount);  } else {
+    //
+    // Find PEI Core from BFV
+    //
+    Status = PrivateData->Fv[0].FvPpi->FindFileByType (
+                                         PrivateData->Fv[0].FvPpi,
+                                         EFI_FV_FILETYPE_PEI_CORE,
+                                         PrivateData->Fv[0].FvHandle,
+                                         &PeiCoreFileHandle
+                                         );
+    ASSERT_EFI_ERROR (Status);
+  }
 
   //
   // Shadow PEI Core into memory so it will run faster diff --git a/MdeModulePkg/Core/Pei/PeiMain.h b/MdeModulePkg/Core/Pei/PeiMain.h index 322e7cd845..38542ab072 100644
--- a/MdeModulePkg/Core/Pei/PeiMain.h
+++ b/MdeModulePkg/Core/Pei/PeiMain.h
@@ -1,7 +1,7 @@
 /** @file
   Definition of Pei Core Structures and Services
 
-Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2006 - 2019, 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 @@ -49,6 +49,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #include <Guid/FirmwareFileSystem2.h>
 #include <Guid/FirmwareFileSystem3.h>
 #include <Guid/AprioriFileName.h>
+#include <Ppi/PeiCoreFvLocation.h>
 
 ///
 /// It is an FFS type extension used for PeiFindFileEx. It indicates current diff --git a/MdeModulePkg/Core/Pei/PeiMain.inf b/MdeModulePkg/Core/Pei/PeiMain.inf
index 140c4444b1..5bab2aab8c 100644
--- a/MdeModulePkg/Core/Pei/PeiMain.inf
+++ b/MdeModulePkg/Core/Pei/PeiMain.inf
@@ -6,7 +6,7 @@
 # 2) Dispatch PEIM from discovered FV.
 # 3) Handoff control to DxeIpl to load DXE core and enter DXE phase.
 #
-# Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2006 - 2019, 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 @@ -102,6 +102,7 @@
   gEfiTemporaryRamDonePpiGuid                   ## SOMETIMES_CONSUMES
   gEfiPeiReset2PpiGuid                          ## SOMETIMES_CONSUMES
   gEfiSecHobDataPpiGuid                         ## SOMETIMES_CONSUMES
+  gEfiPeiCoreFvLocationPpiGuid                  ## SOMETIMES_CONSUMES
 
 [Pcd]
   gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPeiStackSize                  ## CONSUMES
--
2.13.3.windows.1



^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 2/3] MdeModulePkg/PeiMain: Support EFI_PEI_CORE_FV_LOCATION_PPI
  2019-02-13  9:46 ` [PATCH v2 2/3] MdeModulePkg/PeiMain: " Chasel, Chiu
  2019-02-13  9:50   ` Zeng, Star
@ 2019-02-13 10:01   ` Wang, Jian J
  1 sibling, 0 replies; 10+ messages in thread
From: Wang, Jian J @ 2019-02-13 10:01 UTC (permalink / raw)
  To: Chiu, Chasel, edk2-devel@lists.01.org
  Cc: Wu, Hao A, Ni, Ray, Zeng, Star, Gao, Liming


Reviewed-by: Jian J Wang <jian.j.wang@intel.com>

> -----Original Message-----
> From: Chiu, Chasel
> Sent: Wednesday, February 13, 2019 5:47 PM
> To: edk2-devel@lists.01.org
> Cc: Wang, Jian J <jian.j.wang@intel.com>; Wu, Hao A <hao.a.wu@intel.com>;
> Ni, Ray <ray.ni@intel.com>; Zeng, Star <star.zeng@intel.com>; Gao, Liming
> <liming.gao@intel.com>; Chiu, Chasel <chasel.chiu@intel.com>
> Subject: [PATCH v2 2/3] MdeModulePkg/PeiMain: Support
> EFI_PEI_CORE_FV_LOCATION_PPI
> 
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1524
> 
> When shadowing PeiCore the EFI_PEI_CORE_FV_LOCATION_PPI
> should be checked to see if PeiCore not in BFV, otherwise
> just shadowing PeiCore from BFV.
> 
> Test: Verified on internal platform and booting successfully.
> 
> Cc: Jian J Wang <jian.j.wang@intel.com>
> Cc: Hao Wu <hao.a.wu@intel.com>
> Cc: Ray Ni <ray.ni@intel.com>
> Cc: Star Zeng <star.zeng@intel.com>
> Cc: Liming Gao <liming.gao@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Chasel Chiu <chasel.chiu@intel.com>
> ---
>  MdeModulePkg/Core/Pei/PeiMain/PeiMain.c | 58
> +++++++++++++++++++++++++++++++++++++++++++++-------------
>  MdeModulePkg/Core/Pei/PeiMain.h         |  3 ++-
>  MdeModulePkg/Core/Pei/PeiMain.inf       |  3 ++-
>  3 files changed, 49 insertions(+), 15 deletions(-)
> 
> diff --git a/MdeModulePkg/Core/Pei/PeiMain/PeiMain.c
> b/MdeModulePkg/Core/Pei/PeiMain/PeiMain.c
> index 4da80a8222..ba0f2b7b69 100644
> --- a/MdeModulePkg/Core/Pei/PeiMain/PeiMain.c
> +++ b/MdeModulePkg/Core/Pei/PeiMain/PeiMain.c
> @@ -1,7 +1,7 @@
>  /** @file
>    Pei Core Main Entry Point
> 
> -Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
> +Copyright (c) 2006 - 2019, 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
> @@ -80,23 +80,55 @@ ShadowPeiCore (
>    IN PEI_CORE_INSTANCE  *PrivateData
>    )
>  {
> -  EFI_PEI_FILE_HANDLE  PeiCoreFileHandle;
> -  EFI_PHYSICAL_ADDRESS EntryPoint;
> -  EFI_STATUS           Status;
> -  UINT32               AuthenticationState;
> +  EFI_PEI_FILE_HANDLE          PeiCoreFileHandle;
> +  EFI_PHYSICAL_ADDRESS         EntryPoint;
> +  EFI_STATUS                   Status;
> +  UINT32                       AuthenticationState;
> +  UINTN                        Index;
> +  EFI_PEI_CORE_FV_LOCATION_PPI *PeiCoreFvLocationPpi;
> 
>    PeiCoreFileHandle = NULL;
> 
>    //
> -  // Find the PEI Core in the BFV
> +  // Find the PEI Core either from EFI_PEI_CORE_FV_LOCATION_PPI indicated
> FV or BFV
>    //
> -  Status = PrivateData->Fv[0].FvPpi->FindFileByType (
> -                                       PrivateData->Fv[0].FvPpi,
> -                                       EFI_FV_FILETYPE_PEI_CORE,
> -                                       PrivateData->Fv[0].FvHandle,
> -                                       &PeiCoreFileHandle
> -                                       );
> -  ASSERT_EFI_ERROR (Status);
> +  Status = PeiServicesLocatePpi (
> +             &gEfiPeiCoreFvLocationPpiGuid,
> +             0,
> +             NULL,
> +             (VOID **) &PeiCoreFvLocationPpi
> +             );
> +  if (!EFI_ERROR (Status) && (PeiCoreFvLocationPpi->PeiCoreFvLocation !=
> NULL)) {
> +    //
> +    // If PeiCoreFvLocation present, the PEI Core should be found from indicated
> FV.
> +    //
> +    for (Index = 0; Index < PrivateData->FvCount; Index ++) {
> +      if (PrivateData->Fv[Index].FvHandle != PeiCoreFvLocationPpi-
> >PeiCoreFvLocation) {
> +        continue;
> +      }
> +      Status = PrivateData->Fv[Index].FvPpi->FindFileByType (
> +                                               PrivateData->Fv[Index].FvPpi,
> +                                               EFI_FV_FILETYPE_PEI_CORE,
> +                                               PrivateData->Fv[Index].FvHandle,
> +                                               &PeiCoreFileHandle
> +                                               );
> +      if (!EFI_ERROR (Status)) {
> +        break;
> +      }
> +    }
> +    ASSERT (Index < PrivateData->FvCount);
> +  } else {
> +    //
> +    // Find PEI Core from BFV
> +    //
> +    Status = PrivateData->Fv[0].FvPpi->FindFileByType (
> +                                         PrivateData->Fv[0].FvPpi,
> +                                         EFI_FV_FILETYPE_PEI_CORE,
> +                                         PrivateData->Fv[0].FvHandle,
> +                                         &PeiCoreFileHandle
> +                                         );
> +    ASSERT_EFI_ERROR (Status);
> +  }
> 
>    //
>    // Shadow PEI Core into memory so it will run faster
> diff --git a/MdeModulePkg/Core/Pei/PeiMain.h
> b/MdeModulePkg/Core/Pei/PeiMain.h
> index 322e7cd845..38542ab072 100644
> --- a/MdeModulePkg/Core/Pei/PeiMain.h
> +++ b/MdeModulePkg/Core/Pei/PeiMain.h
> @@ -1,7 +1,7 @@
>  /** @file
>    Definition of Pei Core Structures and Services
> 
> -Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
> +Copyright (c) 2006 - 2019, 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
> @@ -49,6 +49,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY
> KIND, EITHER EXPRESS OR IMPLIED.
>  #include <Guid/FirmwareFileSystem2.h>
>  #include <Guid/FirmwareFileSystem3.h>
>  #include <Guid/AprioriFileName.h>
> +#include <Ppi/PeiCoreFvLocation.h>
> 
>  ///
>  /// It is an FFS type extension used for PeiFindFileEx. It indicates current
> diff --git a/MdeModulePkg/Core/Pei/PeiMain.inf
> b/MdeModulePkg/Core/Pei/PeiMain.inf
> index 140c4444b1..5bab2aab8c 100644
> --- a/MdeModulePkg/Core/Pei/PeiMain.inf
> +++ b/MdeModulePkg/Core/Pei/PeiMain.inf
> @@ -6,7 +6,7 @@
>  # 2) Dispatch PEIM from discovered FV.
>  # 3) Handoff control to DxeIpl to load DXE core and enter DXE phase.
>  #
> -# Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
> +# Copyright (c) 2006 - 2019, 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
> @@ -102,6 +102,7 @@
>    gEfiTemporaryRamDonePpiGuid                   ## SOMETIMES_CONSUMES
>    gEfiPeiReset2PpiGuid                          ## SOMETIMES_CONSUMES
>    gEfiSecHobDataPpiGuid                         ## SOMETIMES_CONSUMES
> +  gEfiPeiCoreFvLocationPpiGuid                  ## SOMETIMES_CONSUMES
> 
>  [Pcd]
>    gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPeiStackSize                  ##
> CONSUMES
> --
> 2.13.3.windows.1



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 1/3] MdePkg: Support EFI_PEI_CORE_FV_LOCATION_PPI
  2019-02-13  9:50   ` Zeng, Star
@ 2019-02-13 23:55     ` Gao, Liming
  0 siblings, 0 replies; 10+ messages in thread
From: Gao, Liming @ 2019-02-13 23:55 UTC (permalink / raw)
  To: Zeng, Star, Chiu, Chasel, edk2-devel@lists.01.org; +Cc: Kinney, Michael D

Reviewed-by: Liming Gao <liming.gao@intel.com>

>-----Original Message-----
>From: Zeng, Star
>Sent: Wednesday, February 13, 2019 5:50 PM
>To: Chiu, Chasel <chasel.chiu@intel.com>; edk2-devel@lists.01.org
>Cc: Kinney, Michael D <michael.d.kinney@intel.com>; Gao, Liming
><liming.gao@intel.com>; Zeng, Star <star.zeng@intel.com>
>Subject: RE: [edk2] [PATCH v2 1/3] MdePkg: Support
>EFI_PEI_CORE_FV_LOCATION_PPI
>
>Reviewed-by: Star Zeng <star.zeng@intel.com>
>
>-----Original Message-----
>From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of
>Chasel, Chiu
>Sent: Wednesday, February 13, 2019 5:47 PM
>To: edk2-devel@lists.01.org
>Cc: Kinney, Michael D <michael.d.kinney@intel.com>; Gao, Liming
><liming.gao@intel.com>
>Subject: [edk2] [PATCH v2 1/3] MdePkg: Support
>EFI_PEI_CORE_FV_LOCATION_PPI
>
>REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1524
>
>Add EFI_PEI_CORE_FV_LOCATION_PPI definition basing on PI spec 1.7,
>Section 6.3.9.
>This PPI can support the secnario that PEI Foundation not in BFV.
>
>Cc: Michael D Kinney <michael.d.kinney@intel.com>
>Cc: Liming Gao <liming.gao@intel.com>
>Contributed-under: TianoCore Contribution Agreement 1.1
>Signed-off-by: Chasel Chiu <chasel.chiu@intel.com>
>---
> MdePkg/Include/Ppi/PeiCoreFvLocation.h | 53
>+++++++++++++++++++++++++++++++++++++++++++++++++++++
> MdePkg/MdePkg.dec                      | 11 +++++++++--
> 2 files changed, 62 insertions(+), 2 deletions(-)
>
>diff --git a/MdePkg/Include/Ppi/PeiCoreFvLocation.h
>b/MdePkg/Include/Ppi/PeiCoreFvLocation.h
>new file mode 100644
>index 0000000000..c7bbbfb265
>--- /dev/null
>+++ b/MdePkg/Include/Ppi/PeiCoreFvLocation.h
>@@ -0,0 +1,53 @@
>+/** @file
>+  Header file for Pei Core FV Location PPI.
>+
>+  This PPI contains a pointer to the firmware volume which contains the PEI
>Foundation.
>+  If the PEI Foundation does not reside in the BFV, then SEC must pass
>+ this PPI as a part  of the PPI list provided to the PEI Foundation
>+ Entry Point, otherwise the PEI Foundation  shall assume that it resides within
>the BFV.
>+
>+  Copyright (c) 2019, 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.
>+
>+  @par Revision Reference:
>+  This PPI is defined in UEFI Platform Initialization Specification 1.7 Volume 1:
>+  Standards
>+
>+**/
>+
>+
>+#ifndef _EFI_PEI_CORE_FV_LOCATION_H_
>+#define _EFI_PEI_CORE_FV_LOCATION_H_
>+
>+///
>+/// Global ID for EFI_PEI_CORE_FV_LOCATION_PPI /// #define
>+EFI_PEI_CORE_FV_LOCATION_GUID \
>+  { \
>+    0x52888eae, 0x5b10, 0x47d0, {0xa8, 0x7f, 0xb8, 0x22, 0xab, 0xa0,
>+0xca, 0xf4 } \
>+  }
>+
>+///
>+/// Forward declaration for EFI_PEI_CORE_FV_LOCATION_PPI /// typedef
>+struct _EFI_PEI_CORE_FV_LOCATION_PPI
>EFI_PEI_CORE_FV_LOCATION_PPI;
>+
>+///
>+/// This PPI provides location of EFI PeiCoreFv.
>+///
>+struct _EFI_PEI_CORE_FV_LOCATION_PPI {
>+  ///
>+  /// Pointer to the first byte of the firmware volume which contains the PEI
>Foundation.
>+  ///
>+  VOID    *PeiCoreFvLocation;
>+};
>+
>+extern EFI_GUID gEfiPeiCoreFvLocationPpiGuid;
>+
>+#endif // _EFI_PEI_CORE_FV_LOCATION_H_
>diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec index
>a485408310..c859b4a511 100644
>--- a/MdePkg/MdePkg.dec
>+++ b/MdePkg/MdePkg.dec
>@@ -2,9 +2,9 @@
> # This Package provides all definitions, library classes and libraries instances.
> #
> # It also provides the definitions(including PPIs/PROTOCOLs/GUIDs) of -#
>EFI1.10/UEFI2.7/PI1.6 and some Industry Standards.
>+# EFI1.10/UEFI2.7/PI1.7 and some Industry Standards.
> #
>-# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
>+# Copyright (c) 2007 - 2019, Intel Corporation. All rights
>+reserved.<BR>
> # Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>  # (C)
>Copyright 2016 Hewlett Packard Enterprise Development LP<BR>  # @@ -
>929,6 +929,13 @@
>   ## Include/Ppi/SecHobData.h
>   gEfiSecHobDataPpiGuid = { 0x3ebdaf20, 0x6667, 0x40d8, {0xb4, 0xee, 0xf5,
>0x99, 0x9a, 0xc1, 0xb7, 0x1f } }
>
>+  #
>+  # PPIs defined in PI 1.7.
>+  #
>+
>+  ## Include/Ppi/PeiCoreFvLocation.h
>+  gEfiPeiCoreFvLocationPpiGuid   = { 0x52888eae, 0x5b10, 0x47d0, { 0xa8, 0x7f,
>0xb8, 0x22, 0xab, 0xa0, 0xca, 0xf4 }}
>+
> [Protocols]
>   ## Include/Protocol/Pcd.h
>   gPcdProtocolGuid               = { 0x11B34006, 0xD85B, 0x4D0A, { 0xA2, 0x90, 0xD5,
>0xA5, 0x71, 0x31, 0x0E, 0xF7 }}
>--
>2.13.3.windows.1
>
>_______________________________________________
>edk2-devel mailing list
>edk2-devel@lists.01.org
>https://lists.01.org/mailman/listinfo/edk2-devel


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 3/3] UefiCpuPkg/SecCore: Support EFI_PEI_CORE_FV_LOCATION_PPI
  2019-02-13  9:46 ` [PATCH v2 3/3] UefiCpuPkg/SecCore: " Chasel, Chiu
@ 2019-02-14  8:25   ` Ni, Ray
  2019-02-14 10:31     ` Chiu, Chasel
  0 siblings, 1 reply; 10+ messages in thread
From: Ni, Ray @ 2019-02-14  8:25 UTC (permalink / raw)
  To: Chiu, Chasel, edk2-devel@lists.01.org; +Cc: Dong, Eric, Laszlo Ersek



> -----Original Message-----
> From: Chiu, Chasel <chasel.chiu@intel.com>
> Sent: Wednesday, February 13, 2019 5:47 PM
> To: edk2-devel@lists.01.org
> Cc: Dong, Eric <eric.dong@intel.com>; Ni, Ray <ray.ni@intel.com>; Laszlo
> Ersek <lersek@redhat.com>; Chiu, Chasel <chasel.chiu@intel.com>
> Subject: [PATCH v2 3/3] UefiCpuPkg/SecCore: Support
> EFI_PEI_CORE_FV_LOCATION_PPI
> 
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1524
> 
> EFI_PEI_CORE_FV_LOCATION_PPI may be passed by platform when PeiCore
> not in BFV so SecCore has to search PeiCore either from the FV location
> provided by EFI_PEI_CORE_FV_LOCATION_PPI or from BFV.
> 
> Test: Verified on internal platform and booting successfully.
> 
> Cc: Eric Dong <eric.dong@intel.com>
> Cc: Ray Ni <ray.ni@intel.com>
> Cc: Laszlo Ersek <lersek@redhat.com>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Chasel Chiu <chasel.chiu@intel.com>
> ---
>  UefiCpuPkg/SecCore/SecMain.c   | 35
> +++++++++++++++++++++++++++++------
>  UefiCpuPkg/SecCore/SecCore.inf |  3 ++-
>  UefiCpuPkg/SecCore/SecMain.h   |  3 ++-
>  3 files changed, 33 insertions(+), 8 deletions(-)
> 
> diff --git a/UefiCpuPkg/SecCore/SecMain.c
> b/UefiCpuPkg/SecCore/SecMain.c index b24e190617..b99072599d 100644
> --- a/UefiCpuPkg/SecCore/SecMain.c
> +++ b/UefiCpuPkg/SecCore/SecMain.c
> @@ -1,7 +1,7 @@
>  /** @file
>    C functions in SEC
> 
> -  Copyright (c) 2008 - 2018, Intel Corporation. All rights reserved.<BR>
> +  Copyright (c) 2008 - 2019, 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 @@ -228,26 +228,49 @@ SecStartupPhase2(  {
>    EFI_SEC_PEI_HAND_OFF        *SecCoreData;
>    EFI_PEI_PPI_DESCRIPTOR      *PpiList;
> +  EFI_PEI_PPI_DESCRIPTOR      *PpiListTmp;


1. Maybe this local variable is not needed. We can use PpiList[Index].

>    UINT32                      Index;
>    EFI_PEI_PPI_DESCRIPTOR      *AllSecPpiList;
>    EFI_PEI_CORE_ENTRY_POINT    PeiCoreEntryPoint;
> 
> +  PeiCoreEntryPoint = NULL;
>    SecCoreData   = (EFI_SEC_PEI_HAND_OFF *) Context;
>    AllSecPpiList = (EFI_PEI_PPI_DESCRIPTOR *) SecCoreData-
> >PeiTemporaryRamBase;
> +
>    //
>    // Find Pei Core entry point. It will report SEC and Pei Core debug
> information if remote debug
>    // is enabled.
>    //
> -  FindAndReportEntryPoints ((EFI_FIRMWARE_VOLUME_HEADER *)
> SecCoreData->BootFirmwareVolumeBase, &PeiCoreEntryPoint);
> -  if (PeiCoreEntryPoint == NULL)
> -  {
> -    CpuDeadLoop ();
> +  PpiList = SecPlatformMain (SecCoreData);  PpiListTmp = PpiList;  for
> + (;;) {

2. Similar comments as above. Maybe we can just use PpiList[Index] in the loop.
By the way, original code logic checks PpiList against NULL.
Do we still need to make sure to deference PpiList after checking against NULL?

> +    if (CompareGuid (PpiListTmp->Guid, &gEfiPeiCoreFvLocationPpiGuid) &&
> (((EFI_PEI_CORE_FV_LOCATION_PPI *) PpiListTmp->Ppi)-
> >PeiCoreFvLocation != 0)) {
> +      FindAndReportEntryPoints ((EFI_FIRMWARE_VOLUME_HEADER *)
> ((EFI_PEI_CORE_FV_LOCATION_PPI *) PpiListTmp->Ppi)->PeiCoreFvLocation,
> &PeiCoreEntryPoint);
> +      if (PeiCoreEntryPoint != NULL) {
> +        break;

3. Is it valid that PeiCore cannot be found in the PeiCoreFvLocation?
If no, can we just dead-loop here when PeiCoreEntryPoint is NULL?

> +      }
> +    }
> +    if ((PpiListTmp->Flags & EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST) ==
> EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST) {
> +      //
> +      // Continue until the end of the PPI List.
> +      //
> +      break;
> +    }
> +    PpiListTmp++;
> +  }
> +  //
> +  // If EFI_PEI_CORE_FV_LOCATION_PPI not found or no PeiCore found by
> the pointer in provided PPI, try to locate PeiCore from BFV.
> +  //
> +  if (PeiCoreEntryPoint == NULL) {
> +    FindAndReportEntryPoints ((EFI_FIRMWARE_VOLUME_HEADER *)
> SecCoreData->BootFirmwareVolumeBase, &PeiCoreEntryPoint);
> +    if (PeiCoreEntryPoint == NULL) {
> +      CpuDeadLoop ();
> +    }
>    }
> 
>    //
>    // Perform platform specific initialization before entering PeiCore.
>    //
> -  PpiList = SecPlatformMain (SecCoreData);
>    if (PpiList != NULL) {
>      //
>      // Remove the terminal flag from the terminal PPI diff --git
> a/UefiCpuPkg/SecCore/SecCore.inf b/UefiCpuPkg/SecCore/SecCore.inf
> index 442f663911..fc1485b5cb 100644
> --- a/UefiCpuPkg/SecCore/SecCore.inf
> +++ b/UefiCpuPkg/SecCore/SecCore.inf
> @@ -7,7 +7,7 @@
>  #  protected mode, setup flat memory model, enable temporary memory
> and  #  call into SecStartup().
>  #
> -#  Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
> +#  Copyright (c) 2006 - 2019, 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
> @@ -73,6 +73,7 @@
>    ## NOTIFY
>    ## SOMETIMES_CONSUMES
>    gPeiSecPerformancePpiGuid
> +  gEfiPeiCoreFvLocationPpiGuid
> 
>  [Guids]
>    ## SOMETIMES_PRODUCES   ## HOB
> diff --git a/UefiCpuPkg/SecCore/SecMain.h
> b/UefiCpuPkg/SecCore/SecMain.h index 83244af119..80045d34f4 100644
> --- a/UefiCpuPkg/SecCore/SecMain.h
> +++ b/UefiCpuPkg/SecCore/SecMain.h
> @@ -1,7 +1,7 @@
>  /** @file
>    Master header file for SecCore.
> 
> -  Copyright (c) 2008 - 2018, Intel Corporation. All rights reserved.<BR>
> +  Copyright (c) 2008 - 2019, 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 @@ -20,6 +20,7 @@  #include <Ppi/SecPlatformInformation2.h>
> #include <Ppi/TemporaryRamDone.h>  #include <Ppi/SecPerformance.h>
> +#include <Ppi/PeiCoreFvLocation.h>
> 
>  #include <Guid/FirmwarePerformance.h>
> 
> --
> 2.13.3.windows.1



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 3/3] UefiCpuPkg/SecCore: Support EFI_PEI_CORE_FV_LOCATION_PPI
  2019-02-14  8:25   ` Ni, Ray
@ 2019-02-14 10:31     ` Chiu, Chasel
  0 siblings, 0 replies; 10+ messages in thread
From: Chiu, Chasel @ 2019-02-14 10:31 UTC (permalink / raw)
  To: Ni, Ray, edk2-devel@lists.01.org; +Cc: Dong, Eric, Laszlo Ersek



> -----Original Message-----
> From: Ni, Ray
> Sent: Thursday, February 14, 2019 4:25 PM
> To: Chiu, Chasel <chasel.chiu@intel.com>; edk2-devel@lists.01.org
> Cc: Dong, Eric <eric.dong@intel.com>; Laszlo Ersek <lersek@redhat.com>
> Subject: RE: [PATCH v2 3/3] UefiCpuPkg/SecCore: Support
> EFI_PEI_CORE_FV_LOCATION_PPI
> 
> 
> 
> > -----Original Message-----
> > From: Chiu, Chasel <chasel.chiu@intel.com>
> > Sent: Wednesday, February 13, 2019 5:47 PM
> > To: edk2-devel@lists.01.org
> > Cc: Dong, Eric <eric.dong@intel.com>; Ni, Ray <ray.ni@intel.com>;
> > Laszlo Ersek <lersek@redhat.com>; Chiu, Chasel <chasel.chiu@intel.com>
> > Subject: [PATCH v2 3/3] UefiCpuPkg/SecCore: Support
> > EFI_PEI_CORE_FV_LOCATION_PPI
> >
> > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1524
> >
> > EFI_PEI_CORE_FV_LOCATION_PPI may be passed by platform when PeiCore
> > not in BFV so SecCore has to search PeiCore either from the FV
> > location provided by EFI_PEI_CORE_FV_LOCATION_PPI or from BFV.
> >
> > Test: Verified on internal platform and booting successfully.
> >
> > Cc: Eric Dong <eric.dong@intel.com>
> > Cc: Ray Ni <ray.ni@intel.com>
> > Cc: Laszlo Ersek <lersek@redhat.com>
> > Contributed-under: TianoCore Contribution Agreement 1.1
> > Signed-off-by: Chasel Chiu <chasel.chiu@intel.com>
> > ---
> >  UefiCpuPkg/SecCore/SecMain.c   | 35
> > +++++++++++++++++++++++++++++------
> >  UefiCpuPkg/SecCore/SecCore.inf |  3 ++-
> >  UefiCpuPkg/SecCore/SecMain.h   |  3 ++-
> >  3 files changed, 33 insertions(+), 8 deletions(-)
> >
> > diff --git a/UefiCpuPkg/SecCore/SecMain.c
> > b/UefiCpuPkg/SecCore/SecMain.c index b24e190617..b99072599d 100644
> > --- a/UefiCpuPkg/SecCore/SecMain.c
> > +++ b/UefiCpuPkg/SecCore/SecMain.c
> > @@ -1,7 +1,7 @@
> >  /** @file
> >    C functions in SEC
> >
> > -  Copyright (c) 2008 - 2018, Intel Corporation. All rights
> > reserved.<BR>
> > +  Copyright (c) 2008 - 2019, 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 @@ -228,26 +228,49 @@ SecStartupPhase2(  {
> >    EFI_SEC_PEI_HAND_OFF        *SecCoreData;
> >    EFI_PEI_PPI_DESCRIPTOR      *PpiList;
> > +  EFI_PEI_PPI_DESCRIPTOR      *PpiListTmp;
> 
> 
> 1. Maybe this local variable is not needed. We can use PpiList[Index].
Agree! I will correct this.

> 
> >    UINT32                      Index;
> >    EFI_PEI_PPI_DESCRIPTOR      *AllSecPpiList;
> >    EFI_PEI_CORE_ENTRY_POINT    PeiCoreEntryPoint;
> >
> > +  PeiCoreEntryPoint = NULL;
> >    SecCoreData   = (EFI_SEC_PEI_HAND_OFF *) Context;
> >    AllSecPpiList = (EFI_PEI_PPI_DESCRIPTOR *) SecCoreData-
> > >PeiTemporaryRamBase;
> > +
> >    //
> >    // Find Pei Core entry point. It will report SEC and Pei Core debug
> > information if remote debug
> >    // is enabled.
> >    //
> > -  FindAndReportEntryPoints ((EFI_FIRMWARE_VOLUME_HEADER *)
> > SecCoreData->BootFirmwareVolumeBase, &PeiCoreEntryPoint);
> > -  if (PeiCoreEntryPoint == NULL)
> > -  {
> > -    CpuDeadLoop ();
> > +  PpiList = SecPlatformMain (SecCoreData);  PpiListTmp = PpiList;
> > + for
> > + (;;) {
> 
> 2. Similar comments as above. Maybe we can just use PpiList[Index] in the loop.
> By the way, original code logic checks PpiList against NULL.
> Do we still need to make sure to deference PpiList after checking against NULL?
Good catch! I will update.

> 
> > +    if (CompareGuid (PpiListTmp->Guid, &gEfiPeiCoreFvLocationPpiGuid)
> > + &&
> > (((EFI_PEI_CORE_FV_LOCATION_PPI *) PpiListTmp->Ppi)-
> > >PeiCoreFvLocation != 0)) {
> > +      FindAndReportEntryPoints ((EFI_FIRMWARE_VOLUME_HEADER *)
> > ((EFI_PEI_CORE_FV_LOCATION_PPI *) PpiListTmp->Ppi)->PeiCoreFvLocation,
> > &PeiCoreEntryPoint);
> > +      if (PeiCoreEntryPoint != NULL) {
> > +        break;
> 
> 3. Is it valid that PeiCore cannot be found in the PeiCoreFvLocation?
> If no, can we just dead-loop here when PeiCoreEntryPoint is NULL?
Yes. I will add dead-loop.

> 
> > +      }
> > +    }
> > +    if ((PpiListTmp->Flags & EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST)
> > + ==
> > EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST) {
> > +      //
> > +      // Continue until the end of the PPI List.
> > +      //
> > +      break;
> > +    }
> > +    PpiListTmp++;
> > +  }
> > +  //
> > +  // If EFI_PEI_CORE_FV_LOCATION_PPI not found or no PeiCore found by
> > the pointer in provided PPI, try to locate PeiCore from BFV.
> > +  //
> > +  if (PeiCoreEntryPoint == NULL) {
> > +    FindAndReportEntryPoints ((EFI_FIRMWARE_VOLUME_HEADER *)
> > SecCoreData->BootFirmwareVolumeBase, &PeiCoreEntryPoint);
> > +    if (PeiCoreEntryPoint == NULL) {
> > +      CpuDeadLoop ();
> > +    }
> >    }
> >
> >    //
> >    // Perform platform specific initialization before entering PeiCore.
> >    //
> > -  PpiList = SecPlatformMain (SecCoreData);
> >    if (PpiList != NULL) {
> >      //
> >      // Remove the terminal flag from the terminal PPI diff --git
> > a/UefiCpuPkg/SecCore/SecCore.inf b/UefiCpuPkg/SecCore/SecCore.inf
> > index 442f663911..fc1485b5cb 100644
> > --- a/UefiCpuPkg/SecCore/SecCore.inf
> > +++ b/UefiCpuPkg/SecCore/SecCore.inf
> > @@ -7,7 +7,7 @@
> >  #  protected mode, setup flat memory model, enable temporary memory
> > and  #  call into SecStartup().
> >  #
> > -#  Copyright (c) 2006 - 2018, Intel Corporation. All rights
> > reserved.<BR>
> > +#  Copyright (c) 2006 - 2019, 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 @@ -73,6 +73,7 @@
> >    ## NOTIFY
> >    ## SOMETIMES_CONSUMES
> >    gPeiSecPerformancePpiGuid
> > +  gEfiPeiCoreFvLocationPpiGuid
> >
> >  [Guids]
> >    ## SOMETIMES_PRODUCES   ## HOB
> > diff --git a/UefiCpuPkg/SecCore/SecMain.h
> > b/UefiCpuPkg/SecCore/SecMain.h index 83244af119..80045d34f4 100644
> > --- a/UefiCpuPkg/SecCore/SecMain.h
> > +++ b/UefiCpuPkg/SecCore/SecMain.h
> > @@ -1,7 +1,7 @@
> >  /** @file
> >    Master header file for SecCore.
> >
> > -  Copyright (c) 2008 - 2018, Intel Corporation. All rights
> > reserved.<BR>
> > +  Copyright (c) 2008 - 2019, 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 @@ -20,6 +20,7 @@  #include
> > <Ppi/SecPlatformInformation2.h> #include <Ppi/TemporaryRamDone.h>
> > #include <Ppi/SecPerformance.h>
> > +#include <Ppi/PeiCoreFvLocation.h>
> >
> >  #include <Guid/FirmwarePerformance.h>
> >
> > --
> > 2.13.3.windows.1



^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2019-02-14 10:31 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-02-13  9:46 [PATCH v2 0/3] Support EFI_PEI_CORE_FV_LOCATION_PPI Chasel, Chiu
2019-02-13  9:46 ` [PATCH v2 1/3] MdePkg: " Chasel, Chiu
2019-02-13  9:50   ` Zeng, Star
2019-02-13 23:55     ` Gao, Liming
2019-02-13  9:46 ` [PATCH v2 2/3] MdeModulePkg/PeiMain: " Chasel, Chiu
2019-02-13  9:50   ` Zeng, Star
2019-02-13 10:01   ` Wang, Jian J
2019-02-13  9:46 ` [PATCH v2 3/3] UefiCpuPkg/SecCore: " Chasel, Chiu
2019-02-14  8:25   ` Ni, Ray
2019-02-14 10:31     ` Chiu, Chasel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox