/** @file\r
QEMU Video Controller Driver\r
\r
- Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2006 - 2016, 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
#include <Library/BaseMemoryLib.h>\r
#include <Library/DevicePathLib.h>\r
#include <Library/TimerLib.h>\r
+#include <Library/FrameBufferBltLib.h>\r
\r
#include <IndustryStandard/Pci.h>\r
+#include <IndustryStandard/Acpi.h>\r
\r
//\r
// QEMU Video PCI Configuration Header values\r
// QEMU Vide Graphical Mode Data\r
//\r
typedef struct {\r
- UINT32 ModeNumber;\r
+ UINT32 InternalModeIndex; // points into card-specific mode table\r
UINT32 HorizontalResolution;\r
UINT32 VerticalResolution;\r
UINT32 ColorDepth;\r
- UINT32 RefreshRate;\r
} QEMU_VIDEO_MODE_DATA;\r
\r
#define PIXEL_RED_SHIFT 0\r
} QEMU_VIDEO_VARIANT;\r
\r
typedef struct {\r
+ UINT8 SubClass;\r
UINT16 VendorId;\r
UINT16 DeviceId;\r
QEMU_VIDEO_VARIANT Variant;\r
UINT64 OriginalPciAttributes;\r
EFI_GRAPHICS_OUTPUT_PROTOCOL GraphicsOutput;\r
EFI_DEVICE_PATH_PROTOCOL *GopDevicePath;\r
- UINTN CurrentMode;\r
+\r
+ //\r
+ // The next two fields match the client-visible\r
+ // EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE.MaxMode field.\r
+ //\r
UINTN MaxMode;\r
QEMU_VIDEO_MODE_DATA *ModeData;\r
- UINT8 *LineBuffer;\r
- BOOLEAN HardwareNeedsStarting;\r
+\r
QEMU_VIDEO_VARIANT Variant;\r
+ FRAME_BUFFER_CONFIGURE *FrameBufferBltConfigure;\r
+ UINTN FrameBufferBltConfigureSize;\r
} QEMU_VIDEO_PRIVATE_DATA;\r
\r
///\r
-/// Video Mode structure\r
+/// Card-specific Video Mode structures\r
///\r
typedef struct {\r
UINT32 Width;\r
UINT32 Height;\r
UINT32 ColorDepth;\r
- UINT32 RefreshRate;\r
UINT8 *CrtcSettings;\r
UINT16 *SeqSettings;\r
UINT8 MiscSetting;\r
\r
EFI_STATUS\r
QemuVideoBochsModeSetup (\r
- QEMU_VIDEO_PRIVATE_DATA *Private\r
+ QEMU_VIDEO_PRIVATE_DATA *Private,\r
+ BOOLEAN IsQxl\r
);\r
\r
+VOID\r
+InstallVbeShim (\r
+ IN CONST CHAR16 *CardName,\r
+ IN EFI_PHYSICAL_ADDRESS FrameBufferBase\r
+ );\r
#endif\r