[coreboot-gerrit] Patch set updated for coreboot: drivers/intel/fsp2_0: Load and pass Video Bios Table to FSP

Alexandru Gagniuc (mr.nuke.me@gmail.com) gerrit at coreboot.org
Mon Jan 25 18:04:09 CET 2016


Alexandru Gagniuc (mr.nuke.me at gmail.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/13384

-gerrit

commit dd63f57cd74c8419bfaee48d54f9a7a1cefb39e8
Author: Alexandru Gagniuc <alexandrux.gagniuc at intel.com>
Date:   Tue Dec 15 14:55:01 2015 -0800

    drivers/intel/fsp2_0: Load and pass Video Bios Table to FSP
    
    The Video Bios Table is needed by FSP to initialize the display.
    
    Change-Id: Ieae32811d371c10b8c81a5eabe12ee2cb2b2b2f8
    Signed-off-by: Alexandru Gagniuc <alexandrux.gagniuc at intel.com>
---
 src/drivers/intel/fsp2_0/Kconfig        | 13 +++++++++++++
 src/drivers/intel/fsp2_0/Makefile.inc   |  4 ++++
 src/drivers/intel/fsp2_0/silicon_init.c | 14 ++++++++++++++
 3 files changed, 31 insertions(+)

diff --git a/src/drivers/intel/fsp2_0/Kconfig b/src/drivers/intel/fsp2_0/Kconfig
index 3c81eb9..b367b78 100644
--- a/src/drivers/intel/fsp2_0/Kconfig
+++ b/src/drivers/intel/fsp2_0/Kconfig
@@ -26,6 +26,19 @@ config FSP_S_FILE
 	  The path and filename of the Intel FSP-S binary for this platform.
 
 
+config ADD_VBT_DATA_FILE
+	bool "Add a Video Bios Table (VBT) binary to CBFS"
+	help
+	  Add a VBT file data file to CBFS. The VBT describes the integrated
+	  GPU and connections, and is needed by FSP in order to initialize the
+	  display.
+
+config VBT_FILE
+	string "VBT binary path and filename"
+	depends on ADD_VBT_DATA_FILE
+	help
+	  The path and filename of the VBT binary for this platform.
+
 config FIT_CAR_ADDR
 	hex
 	default 0xfef27c00
diff --git a/src/drivers/intel/fsp2_0/Makefile.inc b/src/drivers/intel/fsp2_0/Makefile.inc
index ffb3c4c..d210c21 100644
--- a/src/drivers/intel/fsp2_0/Makefile.inc
+++ b/src/drivers/intel/fsp2_0/Makefile.inc
@@ -17,3 +17,7 @@ blobs/fsp-m.bin-type := raw
 cbfs-files-$(CONFIG_ADD_FSP_BINARIES) += blobs/fsp-s.bin
 blobs/fsp-s.bin-file := $(call strip_quotes,$(CONFIG_FSP_S_FILE))
 blobs/fsp-s.bin-type := raw
+
+cbfs-files-$(CONFIG_ADD_VBT_DATA_FILE) += vbt.bin
+vbt.bin-file := $(call strip_quotes,$(CONFIG_VBT_FILE))
+vbt.bin-type := raw
diff --git a/src/drivers/intel/fsp2_0/silicon_init.c b/src/drivers/intel/fsp2_0/silicon_init.c
index 575c2eb..8730845 100644
--- a/src/drivers/intel/fsp2_0/silicon_init.c
+++ b/src/drivers/intel/fsp2_0/silicon_init.c
@@ -11,6 +11,7 @@
  */
 
 #include <arch/cpu.h>
+#include <cbfs.h>
 #include <console/console.h>
 #include <fsp/api.h>
 #include <fsp/util.h>
@@ -21,6 +22,17 @@ typedef asmlinkage enum fsp_status (*fsp_silicon_init_fn)
 
 extern struct fsp_header *fsps_hdr;
 
+static uintptr_t load_vbt(void)
+{
+	void *vbt;
+
+	vbt = cbfs_boot_map_with_leak("vbt.bin", CBFS_TYPE_RAW, NULL);
+	if (!vbt)
+		printk(BIOS_NOTICE, "Could not locate a VBT file in CBFS\n");
+
+	return (uintptr_t)vbt;
+}
+
 static enum fsp_status do_silicon_init(struct fsp_header *hdr)
 {
 	struct SILICON_INIT_UPD silicon_upd, *upd_region;
@@ -34,6 +46,8 @@ static enum fsp_status do_silicon_init(struct fsp_header *hdr)
 
 	silicon_init = (void *)(hdr->image_base + hdr->silicon_init_entry_offset);
 
+	/* Load VBT first, in case platform callback wishes to patch it */
+	silicon_upd.GraphicsConfigPtr = load_vbt();
 	/* give a chance to populate entries */
 	platform_fsp_silicon_init_params_cb(&silicon_upd);
 



More information about the coreboot-gerrit mailing list