For the subject, what about this? MdePkg: Add PI 1.4 Graphics HOB and PPI header files
In the PPI header file, I wondered about including a DXE phase Protocol include file, but I guess it has been done previously. MdeModulePkg/Include/Ppi/Usb2HostController.h:#include <Protocol/Usb2HostController.h> MdeModulePkg/Include/Ppi/UsbHostController.h:#include <Protocol/Usb2HostController.h> MdeModulePkg/Include/Ppi/UsbIo.h:#include <Protocol/Usb2HostController.h> On 2015-04-26 19:54:26, Hao Wu wrote: > The PeiGraphicsPpi is the main interface exposed by the Graphics PEIM to > be used by the other firmware modules. It seems like a blank line should have been added here to separate the paragraphs. I tried to download the PI 1.4 spec from uefi.org, but the website link gives a 404 web error. But, the change looks reasonable, and I assume it matches the spec, so: Reviewed-by: Jordan Justen <[email protected]> > When graphics capability is included in PEI, it produces a > EFI_PEI_GRAPHICS_INFO_HOB which provides information about the graphics > mode and the framebuffer. > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Hao Wu <[email protected]> > Reviewed-by: Liming Gao <[email protected]> > --- > MdePkg/Include/Guid/GraphicsInfoHob.h | 36 +++++++++++++++ > MdePkg/Include/Ppi/Graphics.h | 85 > +++++++++++++++++++++++++++++++++++ > MdePkg/MdePkg.dec | 13 ++++++ > 3 files changed, 134 insertions(+) > create mode 100644 MdePkg/Include/Guid/GraphicsInfoHob.h > create mode 100644 MdePkg/Include/Ppi/Graphics.h > > diff --git a/MdePkg/Include/Guid/GraphicsInfoHob.h > b/MdePkg/Include/Guid/GraphicsInfoHob.h > new file mode 100644 > index 0000000..3bcead0 > --- /dev/null > +++ b/MdePkg/Include/Guid/GraphicsInfoHob.h > @@ -0,0 +1,36 @@ > +/** @file > + Hob guid for Information about the graphics mode. > + > + Copyright (c) 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. > + > + @par Revision Reference: > + This HOB is introduced in in PI Version 1.4. > + > +**/ > + > +#ifndef _GRAPHICS_INFO_HOB_GUID_H_ > +#define _GRAPHICS_INFO_HOB_GUID_H_ > + > +#include <Protocol/GraphicsOutput.h> > + > +#define EFI_PEI_GRAPHICS_INFO_HOB_GUID \ > + { \ > + 0x39f62cce, 0x6825, 0x4669, { 0xbb, 0x56, 0x54, 0x1a, 0xba, 0x75, 0x3a, > 0x07 } \ > + } > + > +typedef struct { > + EFI_PHYSICAL_ADDRESS FrameBufferBase; > + UINT32 FrameBufferSize; > + EFI_GRAPHICS_OUTPUT_MODE_INFORMATION GraphicsMode; > +} EFI_PEI_GRAPHICS_INFO_HOB; > + > +extern EFI_GUID gEfiGraphicsInfoHobGuid; > + > +#endif > diff --git a/MdePkg/Include/Ppi/Graphics.h b/MdePkg/Include/Ppi/Graphics.h > new file mode 100644 > index 0000000..5181892 > --- /dev/null > +++ b/MdePkg/Include/Ppi/Graphics.h > @@ -0,0 +1,85 @@ > +/** @file > + This file declares Graphics PPI. > + This PPI is the main interface exposed by the Graphics PEIM to be used by > the > + other firmware modules. > + > + Copyright (c) 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. > + > + @par Revision Reference: > + This PPI is introduced in PI Version 1.4. > + > +**/ > + > +#ifndef __PEI_GRAPHICS_PPI_H__ > +#define __PEI_GRAPHICS_PPI_H__ > + > +#include <Protocol/GraphicsOutput.h> > + > +#define EFI_PEI_GRAPHICS_PPI_GUID \ > + { \ > + 0x6ecd1463, 0x4a4a, 0x461b, { 0xaf, 0x5f, 0x5a, 0x33, 0xe3, 0xb2, 0x16, > 0x2b } \ > + } > + > +typedef struct _EFI_PEI_GRAPHICS_PPI EFI_PEI_GRAPHICS_PPI; > + > +/** > + The GraphicsPpiInit initializes the graphics subsystem in phases. > + > + @param[in] GraphicsPolicyPtr GraphicsPolicyPtr points to a > configuration data > + block of policy settings required by > Graphics PEIM. > + > + @retval EFI_SUCCESS The invocation was successful. > + @retval EFI_INVALID_PARAMETER The phase parameter is not valid. > + @retval EFI_NOT_ABORTED The stages was not called in the proper > order. > + @retval EFI_NOT_FOUND The PeiGraphicsPlatformPolicyPpi is not > located. > + @retval EFI_DEVICE_ERROR The initialization failed due to device > error. > + @retval EFI_NOT_READY The previous init stage is still in > progress and not > + ready for the current initialization phase > yet. The > + platform code should call this again > sometime later. > +**/ > +typedef > +EFI_STATUS > +(EFIAPI *EFI_PEI_GRAPHICS_INIT) ( > + IN VOID *GraphicsPolicyPtr > + ); > + > +/** > + The GraphicsPpiGetMode returns the mode information supported by the > Graphics PEI > + Module. > + > + @param[in, out] Mode Pointer to > EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE data. > + > + @retval EFI_SUCCESS Valid mode information was returned. > + @retval EFI_INVALID_PARAMETER The Mode parameter is not valid. > + @retval EFI_DEVICE_ERROR A hardware error occurred trying to > retrieve the video > + mode. > + @retval EFI_NOT_READY The Graphics Initialization is not > competed and Mode > + information is not yet available.The > platform code > + should call this again after the Graphics > + initialization is done. > +**/ > +typedef > +EFI_STATUS > +(EFIAPI *EFI_PEI_GRAPHICS_GET_MODE) ( > + IN OUT EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE *Mode > + ); > + > +/// > +/// This PPI is the main interface exposed by the Graphics PEIM to be used > by the other > +/// firmware modules. > +/// > +struct _EFI_PEI_GRAPHICS_PPI { > + EFI_PEI_GRAPHICS_INIT GraphicsPpiInit; > + EFI_PEI_GRAPHICS_GET_MODE GraphicsPpiGetMode; > +}; > + > +extern EFI_GUID gEfiPeiGraphicsPpiGuid; > + > +#endif > diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec > index 494dfba..b0ecdfe 100644 > --- a/MdePkg/MdePkg.dec > +++ b/MdePkg/MdePkg.dec > @@ -645,6 +645,12 @@ > ## Guid for EFI_DISK_INFO_PROTOCOL.Interface to specify Nvme interface. > ## Include/Protocol/DiskInfo.h > gEfiDiskInfoNvmeInterfaceGuid = { 0x3ab14680, 0x5d3f, 0x4a4d, { 0xbc, > 0xdc, 0xcc, 0x38, 0x0, 0x18, 0xc7, 0xf7 }} > + > + # > + # GUID defined in PI1.4 > + # > + ## Include/Guid/GraphicsInfoHob.h > + gEfiGraphicsInfoHobGuid = { 0x39f62cce, 0x6825, 0x4669, { 0xbb, > 0x56, 0x54, 0x1a, 0xba, 0x75, 0x3a, 0x07 }} > > [Guids.IA32, Guids.X64] > ## Include/Guid/Cper.h > @@ -768,6 +774,13 @@ > ## Include/Ppi/FirmwareVolumeInfo2.h > gEfiPeiFirmwareVolumeInfo2PpiGuid = { 0xea7ca24b, 0xded5, 0x4dad, { 0xa3, > 0x89, 0xbf, 0x82, 0x7e, 0x8f, 0x9b, 0x38 } } > > + # > + # PPIs defined in PI 1.4. > + # > + > + ## Include/Ppi/Graphics.h > + gEfiPeiGraphicsPpiGuid = { 0x6ecd1463, 0x4a4a, 0x461b, { 0xaf, > 0x5f, 0x5a, 0x33, 0xe3, 0xb2, 0x16, 0x2b } } > + > > > [Protocols] > -- > 1.9.5.msysgit.0 > > > > ------------------------------------------------------------------------------ > One dashboard for servers and applications across Physical-Virtual-Cloud > Widest out-of-the-box monitoring support with 50+ applications > Performance metrics, stats and reports that give you Actionable Insights > Deep dive visibility with transaction tracing using APM Insight. > http://ad.doubleclick.net/ddm/clk/290420510;117567292;y > _______________________________________________ > edk2-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/edk2-devel ------------------------------------------------------------------------------ One dashboard for servers and applications across Physical-Virtual-Cloud Widest out-of-the-box monitoring support with 50+ applications Performance metrics, stats and reports that give you Actionable Insights Deep dive visibility with transaction tracing using APM Insight. http://ad.doubleclick.net/ddm/clk/290420510;117567292;y _______________________________________________ edk2-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/edk2-devel
