aboutsummaryrefslogtreecommitdiff
path: root/src/drivers/intel/fsp1_1/ramstage.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers/intel/fsp1_1/ramstage.c')
-rw-r--r--src/drivers/intel/fsp1_1/ramstage.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/drivers/intel/fsp1_1/ramstage.c b/src/drivers/intel/fsp1_1/ramstage.c
index cd4a1e665e..eb226dbb65 100644
--- a/src/drivers/intel/fsp1_1/ramstage.c
+++ b/src/drivers/intel/fsp1_1/ramstage.c
@@ -5,6 +5,7 @@
#include <console/console.h>
#include <fsp/ramstage.h>
#include <fsp/util.h>
+#include <framebuffer_info.h>
#include <lib.h>
#include <stage_cache.h>
#include <string.h>
@@ -116,6 +117,28 @@ void fsp_run_silicon_init(FSP_INFO_HEADER *fsp_info_header, int is_s3_wakeup)
gfx_set_init_done(1);
#endif
+ if (CONFIG(RUN_FSP_GOP)) {
+ const EFI_GUID vbt_guid = EFI_PEI_GRAPHICS_INFO_HOB_GUID;
+ u32 *vbt_hob;
+
+ void *hob_list_ptr = get_hob_list();
+ vbt_hob = get_next_guid_hob(&vbt_guid, hob_list_ptr);
+ if (vbt_hob == NULL) {
+ printk(BIOS_ERR, "FSP_ERR: Graphics Data HOB is not present\n");
+ } else {
+ EFI_PEI_GRAPHICS_INFO_HOB *gop;
+
+ printk(BIOS_DEBUG, "FSP_DEBUG: Graphics Data HOB present\n");
+ gop = GET_GUID_HOB_DATA(vbt_hob);
+
+ fb_add_framebuffer_info(gop->FrameBufferBase,
+ gop->GraphicsMode.HorizontalResolution,
+ gop->GraphicsMode.VerticalResolution,
+ gop->GraphicsMode.PixelsPerScanLine * 4,
+ 32);
+ }
+ }
+
display_hob_info(fsp_info_header);
soc_after_silicon_init();
}