The PeiGraphicsPpi is the main interface exposed by the Graphics PEIM to
be used by the other firmware modules.
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

Reply via email to