]> git.proxmox.com Git - mirror_edk2.git/commitdiff
MdePkg: Add PI 1.4 Graphics HOB and PPI header files
authorHao Wu <hao.a.wu@intel.com>
Tue, 28 Apr 2015 07:18:15 +0000 (07:18 +0000)
committerhwu1225 <hwu1225@Edk2>
Tue, 28 Apr 2015 07:18:15 +0000 (07:18 +0000)
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 <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17233 6f19259b-4bc3-4df7-8a09-765794883524

MdePkg/Include/Guid/GraphicsInfoHob.h [new file with mode: 0644]
MdePkg/Include/Ppi/Graphics.h [new file with mode: 0644]
MdePkg/MdePkg.dec

diff --git a/MdePkg/Include/Guid/GraphicsInfoHob.h b/MdePkg/Include/Guid/GraphicsInfoHob.h
new file mode 100644 (file)
index 0000000..3bcead0
--- /dev/null
@@ -0,0 +1,36 @@
+/** @file\r
+  Hob guid for Information about the graphics mode.\r
+\r
+  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>\r
+  This program and the accompanying materials\r
+  are licensed and made available under the terms and conditions of the BSD License\r
+  which accompanies this distribution. The full text of the license may be found at\r
+  http://opensource.org/licenses/bsd-license.php\r
+\r
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+  @par Revision Reference:\r
+  This HOB is introduced in in PI Version 1.4.\r
+\r
+**/\r
+\r
+#ifndef _GRAPHICS_INFO_HOB_GUID_H_\r
+#define _GRAPHICS_INFO_HOB_GUID_H_\r
+\r
+#include <Protocol/GraphicsOutput.h>\r
+\r
+#define EFI_PEI_GRAPHICS_INFO_HOB_GUID \\r
+  { \\r
+    0x39f62cce, 0x6825, 0x4669, { 0xbb, 0x56, 0x54, 0x1a, 0xba, 0x75, 0x3a, 0x07 } \\r
+  }\r
+\r
+typedef struct {\r
+  EFI_PHYSICAL_ADDRESS                  FrameBufferBase;\r
+  UINT32                                FrameBufferSize;\r
+  EFI_GRAPHICS_OUTPUT_MODE_INFORMATION  GraphicsMode;\r
+} EFI_PEI_GRAPHICS_INFO_HOB;\r
+\r
+extern EFI_GUID gEfiGraphicsInfoHobGuid;\r
+\r
+#endif\r
diff --git a/MdePkg/Include/Ppi/Graphics.h b/MdePkg/Include/Ppi/Graphics.h
new file mode 100644 (file)
index 0000000..5181892
--- /dev/null
@@ -0,0 +1,85 @@
+/** @file\r
+  This file declares Graphics PPI.\r
+  This PPI is the main interface exposed by the Graphics PEIM to be used by the\r
+  other firmware modules.\r
+\r
+  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>\r
+  This program and the accompanying materials\r
+  are licensed and made available under the terms and conditions of the BSD License\r
+  which accompanies this distribution. The full text of the license may be found at\r
+  http://opensource.org/licenses/bsd-license.php\r
+\r
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+  @par Revision Reference:\r
+  This PPI is introduced in PI Version 1.4.\r
+\r
+**/\r
+\r
+#ifndef __PEI_GRAPHICS_PPI_H__\r
+#define __PEI_GRAPHICS_PPI_H__\r
+\r
+#include <Protocol/GraphicsOutput.h>\r
+\r
+#define EFI_PEI_GRAPHICS_PPI_GUID \\r
+  { \\r
+    0x6ecd1463, 0x4a4a, 0x461b, { 0xaf, 0x5f, 0x5a, 0x33, 0xe3, 0xb2, 0x16, 0x2b } \\r
+  }\r
+\r
+typedef struct _EFI_PEI_GRAPHICS_PPI EFI_PEI_GRAPHICS_PPI;\r
+\r
+/**\r
+  The GraphicsPpiInit initializes the graphics subsystem in phases.\r
+\r
+  @param[in] GraphicsPolicyPtr    GraphicsPolicyPtr points to a configuration data\r
+                                  block of policy settings required by Graphics PEIM.\r
+\r
+  @retval EFI_SUCCESS             The invocation was successful.\r
+  @retval EFI_INVALID_PARAMETER   The phase parameter is not valid.\r
+  @retval EFI_NOT_ABORTED         The stages was not called in the proper order.\r
+  @retval EFI_NOT_FOUND           The PeiGraphicsPlatformPolicyPpi is not located.\r
+  @retval EFI_DEVICE_ERROR        The initialization failed due to device error.\r
+  @retval EFI_NOT_READY           The previous init stage is still in progress and not\r
+                                  ready for the current initialization phase yet. The\r
+                                  platform code should call this again sometime later.\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_PEI_GRAPHICS_INIT) (\r
+  IN VOID                            *GraphicsPolicyPtr\r
+  );\r
+\r
+/**\r
+  The GraphicsPpiGetMode returns the mode information supported by the Graphics PEI\r
+  Module.\r
+\r
+  @param[in, out] Mode            Pointer to EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE data.\r
+\r
+  @retval EFI_SUCCESS             Valid mode information was returned.\r
+  @retval EFI_INVALID_PARAMETER   The Mode parameter is not valid.\r
+  @retval EFI_DEVICE_ERROR        A hardware error occurred trying to retrieve the video\r
+                                  mode.\r
+  @retval EFI_NOT_READY           The Graphics Initialization is not competed and Mode\r
+                                  information is not yet available.The platform code\r
+                                  should call this again after the Graphics\r
+                                  initialization is done.\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_PEI_GRAPHICS_GET_MODE) (\r
+  IN OUT EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE  *Mode\r
+  );\r
+\r
+///\r
+/// This PPI is the main interface exposed by the Graphics PEIM to be used by the other\r
+/// firmware modules.\r
+///\r
+struct _EFI_PEI_GRAPHICS_PPI {\r
+  EFI_PEI_GRAPHICS_INIT              GraphicsPpiInit;\r
+  EFI_PEI_GRAPHICS_GET_MODE          GraphicsPpiGetMode;\r
+};\r
+\r
+extern EFI_GUID gEfiPeiGraphicsPpiGuid;\r
+\r
+#endif\r
index 494dfba0394b9e5c54a63f4831f21cec23f24126..b0ecdfe578e567fc44e3217ecb6f74c890bd3aa1 100644 (file)
   ## Guid for EFI_DISK_INFO_PROTOCOL.Interface to specify Nvme interface.\r
   ## Include/Protocol/DiskInfo.h\r
   gEfiDiskInfoNvmeInterfaceGuid  = { 0x3ab14680, 0x5d3f, 0x4a4d, { 0xbc, 0xdc, 0xcc, 0x38, 0x0, 0x18, 0xc7, 0xf7 }}\r
+  \r
+  #\r
+  # GUID defined in PI1.4\r
+  #\r
+  ## Include/Guid/GraphicsInfoHob.h\r
+  gEfiGraphicsInfoHobGuid           = { 0x39f62cce, 0x6825, 0x4669, { 0xbb, 0x56, 0x54, 0x1a, 0xba, 0x75, 0x3a, 0x07 }}\r
 \r
 [Guids.IA32, Guids.X64]\r
   ## Include/Guid/Cper.h\r
   ## Include/Ppi/FirmwareVolumeInfo2.h\r
   gEfiPeiFirmwareVolumeInfo2PpiGuid  = { 0xea7ca24b, 0xded5, 0x4dad, { 0xa3, 0x89, 0xbf, 0x82, 0x7e, 0x8f, 0x9b, 0x38 } }\r
 \r
+  #\r
+  # PPIs defined in PI 1.4.\r
+  #\r
+\r
+  ## Include/Ppi/Graphics.h\r
+  gEfiPeiGraphicsPpiGuid             = { 0x6ecd1463, 0x4a4a, 0x461b, { 0xaf, 0x5f, 0x5a, 0x33, 0xe3, 0xb2, 0x16, 0x2b } }\r
+\r
 \r
 \r
 [Protocols]\r