/** @file\r
Graphics Output Protocol functions for the QEMU video controller.\r
\r
- Copyright (c) 2007 - 2017, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>\r
\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
+ SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
\r
\r
Private->PciIo->GetBarAttributes (\r
Private->PciIo,\r
- 0,\r
+ Private->FrameBufferVramBarIndex,\r
NULL,\r
(VOID**) &FrameBufDesc\r
);\r
Mode->FrameBufferBase = FrameBufDesc->AddrRangeMin;\r
Mode->FrameBufferSize = Info->HorizontalResolution * Info->VerticalResolution;\r
Mode->FrameBufferSize = Mode->FrameBufferSize * ((ModeData->ColorDepth + 7) / 8);\r
+ Mode->FrameBufferSize = EFI_PAGES_TO_SIZE (\r
+ EFI_SIZE_TO_PAGES (Mode->FrameBufferSize)\r
+ );\r
DEBUG ((EFI_D_INFO, "FrameBufferBase: 0x%Lx, FrameBufferSize: 0x%Lx\n",\r
Mode->FrameBufferBase, (UINT64)Mode->FrameBufferSize));\r
\r
return EFI_SUCCESS;\r
}\r
\r
-\r
//\r
// Graphics Output Protocol Member Functions\r
//\r
\r
--*/\r
{\r
- QEMU_VIDEO_PRIVATE_DATA *Private;\r
- QEMU_VIDEO_MODE_DATA *ModeData;\r
- RETURN_STATUS Status;\r
+ QEMU_VIDEO_PRIVATE_DATA *Private;\r
+ QEMU_VIDEO_MODE_DATA *ModeData;\r
+ RETURN_STATUS Status;\r
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL Black;\r
\r
Private = QEMU_VIDEO_PRIVATE_DATA_FROM_GRAPHICS_OUTPUT_THIS (This);\r
\r
}\r
ASSERT (Status == RETURN_SUCCESS);\r
\r
+ //\r
+ // Per UEFI Spec, need to clear the visible portions of the output display to black.\r
+ //\r
+ ZeroMem (&Black, sizeof (Black));\r
+ Status = FrameBufferBlt (\r
+ Private->FrameBufferBltConfigure,\r
+ &Black,\r
+ EfiBltVideoFill,\r
+ 0, 0,\r
+ 0, 0,\r
+ This->Mode->Info->HorizontalResolution, This->Mode->Info->VerticalResolution,\r
+ 0\r
+ );\r
+ ASSERT_RETURN_ERROR (Status);\r
+\r
return EFI_SUCCESS;\r
}\r
\r
\r
default:\r
Status = EFI_INVALID_PARAMETER;\r
- ASSERT (FALSE);\r
+ break;\r
}\r
\r
gBS->RestoreTPL (OriginalTPL);\r