summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xCorebootModulePkg/CbSupportDxe/CbSupportDxe.c16
-rw-r--r--CorebootModulePkg/CbSupportDxe/CbSupportDxe.h1
-rw-r--r--CorebootModulePkg/CbSupportDxe/CbSupportDxe.inf9
3 files changed, 25 insertions, 1 deletions
diff --git a/CorebootModulePkg/CbSupportDxe/CbSupportDxe.c b/CorebootModulePkg/CbSupportDxe/CbSupportDxe.c
index d81b7c23b7..7671304753 100755
--- a/CorebootModulePkg/CbSupportDxe/CbSupportDxe.c
+++ b/CorebootModulePkg/CbSupportDxe/CbSupportDxe.c
@@ -134,6 +134,7 @@ CbDxeEntryPoint (
EFI_HOB_GUID_TYPE *GuidHob;
SYSTEM_TABLE_INFO *pSystemTableInfo;
ACPI_BOARD_INFO *pAcpiBoardInfo;
+ FRAME_BUFFER_INFO *FbInfo;
Status = EFI_SUCCESS;
//
@@ -184,6 +185,21 @@ CbDxeEntryPoint (
DEBUG ((EFI_D_ERROR, "PmCtrlReg at 0x%lx\n", (UINT64)mPmCtrlReg));
//
+ // Find the frame buffer information and update PCDs
+ //
+ GuidHob = GetFirstGuidHob (&gUefiFrameBufferInfoGuid);
+ ASSERT (GuidHob != NULL);
+ FbInfo = (FRAME_BUFFER_INFO *)GET_GUID_HOB_DATA (GuidHob);
+ Status = PcdSet32S (PcdVideoHorizontalResolution, FbInfo->HorizontalResolution);
+ ASSERT_EFI_ERROR (Status);
+ Status = PcdSet32S (PcdVideoVerticalResolution, FbInfo->VerticalResolution);
+ ASSERT_EFI_ERROR (Status);
+ Status = PcdSet32S (PcdSetupVideoHorizontalResolution, FbInfo->HorizontalResolution);
+ ASSERT_EFI_ERROR (Status);
+ Status = PcdSet32S (PcdSetupVideoVerticalResolution, FbInfo->VerticalResolution);
+ ASSERT_EFI_ERROR (Status);
+
+ //
// Register callback on the ready to boot event
// in order to enable SCI
//
diff --git a/CorebootModulePkg/CbSupportDxe/CbSupportDxe.h b/CorebootModulePkg/CbSupportDxe/CbSupportDxe.h
index bace2728e6..4c59ed94d7 100644
--- a/CorebootModulePkg/CbSupportDxe/CbSupportDxe.h
+++ b/CorebootModulePkg/CbSupportDxe/CbSupportDxe.h
@@ -29,6 +29,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#include <Guid/SmBios.h>
#include <Guid/SystemTableInfoGuid.h>
#include <Guid/AcpiBoardInfoGuid.h>
+#include <Guid/FrameBufferInfoGuid.h>
#include <IndustryStandard/Acpi.h>
diff --git a/CorebootModulePkg/CbSupportDxe/CbSupportDxe.inf b/CorebootModulePkg/CbSupportDxe/CbSupportDxe.inf
index c92db8ded4..99245183ea 100644
--- a/CorebootModulePkg/CbSupportDxe/CbSupportDxe.inf
+++ b/CorebootModulePkg/CbSupportDxe/CbSupportDxe.inf
@@ -49,11 +49,18 @@
IoLib
HobLib
-[Guids]
+[Guids]
gEfiAcpiTableGuid
gEfiSmbiosTableGuid
gUefiSystemTableInfoGuid
gUefiAcpiBoardInfoGuid
+ gUefiFrameBufferInfoGuid
+
+[Pcd]
+ gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution
+ gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution
+ gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoHorizontalResolution
+ gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoVerticalResolution
[Depex]
TRUE