From c93c0dc1d56fe78358cddd63c988ba316cf07cde Mon Sep 17 00:00:00 2001 From: "Chasel, Chiu" Date: Tue, 12 Feb 2019 16:42:26 +0800 Subject: [PATCH] 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 Cc: Liming Gao Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Chasel Chiu Reviewed-by: Star Zeng Reviewed-by: Liming Gao Reviewed-by: Ray Ni --- MdePkg/Include/Ppi/PeiCoreFvLocation.h | 48 ++++++++++++++++++++++++++ MdePkg/MdePkg.dec | 11 ++++-- 2 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 MdePkg/Include/Ppi/PeiCoreFvLocation.h diff --git a/MdePkg/Include/Ppi/PeiCoreFvLocation.h b/MdePkg/Include/Ppi/PeiCoreFvLocation.h new file mode 100644 index 0000000000..3bea6819ec --- /dev/null +++ b/MdePkg/Include/Ppi/PeiCoreFvLocation.h @@ -0,0 +1,48 @@ +/** @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.
+ 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 } \ + } + +/// +/// This PPI provides location of EFI PeiCoreFv. +/// +typedef struct { + /// + /// Pointer to the first byte of the firmware volume which contains the PEI Foundation. + /// + VOID *PeiCoreFvLocation; +} EFI_PEI_CORE_FV_LOCATION_PPI; + +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.
+# Copyright (c) 2007 - 2019, Intel Corporation. All rights reserved.
# Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.
# (C) Copyright 2016 Hewlett Packard Enterprise Development LP
# @@ -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.39.2