summaryrefslogtreecommitdiff
path: root/ReferenceCode/RapidStart/Ppi/PeiGfxPpi/PeiGfxPpi.h
diff options
context:
space:
mode:
Diffstat (limited to 'ReferenceCode/RapidStart/Ppi/PeiGfxPpi/PeiGfxPpi.h')
-rw-r--r--ReferenceCode/RapidStart/Ppi/PeiGfxPpi/PeiGfxPpi.h89
1 files changed, 89 insertions, 0 deletions
diff --git a/ReferenceCode/RapidStart/Ppi/PeiGfxPpi/PeiGfxPpi.h b/ReferenceCode/RapidStart/Ppi/PeiGfxPpi/PeiGfxPpi.h
new file mode 100644
index 0000000..6636e8e
--- /dev/null
+++ b/ReferenceCode/RapidStart/Ppi/PeiGfxPpi/PeiGfxPpi.h
@@ -0,0 +1,89 @@
+/** @file
+ Header file for RapidStart Gfx PPI
+
+@copyright
+ Copyright (c) 2012 Intel Corporation. All rights reserved
+ This software and associated documentation (if any) is furnished
+ under a license and may only be used or copied in accordance
+ with the terms of the license. Except as permitted by such
+ license, no part of this software or documentation may be
+ reproduced, stored in a retrieval system, or transmitted in any
+ form or by any means without the express written consent of
+ Intel Corporation.
+
+ This file contains an 'Intel Peripheral Driver' and uniquely
+ identified as "Intel Mobile Silicon Support Module" and is
+ licensed for Intel Mobile CPUs and chipsets under the terms of your
+ license agreement with Intel or your vendor. This file may
+ be modified by the user, subject to additional terms of the
+ license agreement
+**/
+#ifndef _PEI_GFX_PPI_H_
+#define _PEI_GFX_PPI_H_
+
+#define PEI_GFX_PPI_GUID \
+ { \
+ 0xc4d6994a, 0xaa3d, 0x47c0, 0xae, 0xa, 0xb0, 0xbf, 0xad, 0xba, 0xa6, 0x13 \
+ }
+
+extern EFI_GUID gPeiGfxPpiGuid;
+
+#define DSS_RANGE 0x01 //< Dss Range is 1
+#define GFX_RESTORE_RANGE 0x02 ///< Gfx Memory restore Range is 2
+#define FB_RESTORE_RANGE 250 ///< The Max FB Range is 16
+#define MAX_GFX_MEMORY_RANGES (DSS_RANGE + GFX_RESTORE_RANGE + FB_RESTORE_RANGE)
+
+#pragma pack(1)
+
+typedef struct {
+ UINT64 BaseAddress;
+ UINT64 Size;
+} GFX_MEM_RANGE_ENTRY;
+
+typedef struct {
+ UINT16 NumOfEntry;
+ UINT8 Reserved[2];
+ GFX_MEM_RANGE_ENTRY MemRangeEntry[MAX_GFX_MEMORY_RANGES];
+} GFX_RESTORE_MEM_TABLE;
+
+#pragma pack()
+
+typedef
+EFI_STATUS
+(EFIAPI * PEI_GFX_PPI_GET_DSS_ADDRESS_RANGE) (
+ IN CONST EFI_PEI_SERVICES **PeiServices,
+ OUT GFX_RESTORE_MEM_TABLE **DssAddressRange
+);
+
+typedef
+EFI_STATUS
+(EFIAPI * PEI_GFX_PPI_GET_RESTORE_MEM_TABLE) (
+ IN CONST EFI_PEI_SERVICES **PeiServices,
+ OUT GFX_RESTORE_MEM_TABLE **GfxRestoreMemTable
+);
+
+typedef
+EFI_STATUS
+(EFIAPI * PEI_GFX_PPI_GET_RESTORE_FB_RANGE) (
+ IN CONST EFI_PEI_SERVICES **PeiServices,
+ OUT GFX_RESTORE_MEM_TABLE **FbRestoreMemTable
+);
+
+typedef
+EFI_STATUS
+(EFIAPI * PEI_GFX_PPI_RESTORE_DISPLAY) (
+ IN CONST EFI_PEI_SERVICES **PeiServices
+);
+
+#pragma pack(1)
+
+typedef struct _PEI_GFX_PPI {
+ PEI_GFX_PPI_RESTORE_DISPLAY RestoreDisplay;
+ PEI_GFX_PPI_GET_DSS_ADDRESS_RANGE GetDssAddressRange;
+ PEI_GFX_PPI_GET_RESTORE_MEM_TABLE GetRestoreMemTable;
+ PEI_GFX_PPI_GET_RESTORE_FB_RANGE GetRestoreFbRange;
+} PEI_GFX_PPI;
+
+#pragma pack()
+
+#endif