summaryrefslogtreecommitdiff
path: root/src/soc
diff options
context:
space:
mode:
authorPatrick Georgi <pgeorgi@google.com>2018-05-03 19:15:13 +0200
committerPatrick Georgi <pgeorgi@google.com>2018-05-09 13:48:07 +0000
commit4a3956d7cc07056fa8795d89972e288dfc270db7 (patch)
tree11674b5a7434411eb88d9210f8b1a4a591a01baa /src/soc
parent60ad1a71325eb9a97a88f1853d876c8fc02f3f77 (diff)
downloadcoreboot-4a3956d7cc07056fa8795d89972e288dfc270db7.tar.xz
drivers/intel/gma, soc/intel/common: improve cooperation
Instead of both featuring their own VBT loaders, use a single one. It's the compression-enabled one from soc/intel/common, but moved to drivers/intel/gma. The rationale (besides making all the Kconfig fluff easier) is that drivers/intel/gma is used in some capacity on all platforms that load a VBT, while soc/intel/common's VBT code is for use with FSP. BUG=b:79365806 TEST=GOOGLE_FALCO and GOOGLE_CHELL both build, exercising both affected code paths. Change-Id: I8d149c8b480e457a4f3e947f46d49ab45c65ccdc Signed-off-by: Patrick Georgi <pgeorgi@google.com> Reviewed-on: https://review.coreboot.org/26039 Reviewed-by: Furquan Shaikh <furquan@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/soc')
-rw-r--r--src/soc/intel/common/vbt.c43
-rw-r--r--src/soc/intel/common/vbt.h13
2 files changed, 1 insertions, 55 deletions
diff --git a/src/soc/intel/common/vbt.c b/src/soc/intel/common/vbt.c
index 50d3951179..ab52dc8d04 100644
--- a/src/soc/intel/common/vbt.c
+++ b/src/soc/intel/common/vbt.c
@@ -21,48 +21,7 @@
#include <bootstate.h>
#include "vbt.h"
-
-#define VBT_SIGNATURE 0x54425624
-
-__weak
-const char *mainboard_vbt_filename(void)
-{
- return "vbt.bin";
-}
-
-static char vbt_data[8 * KiB];
-static int vbt_data_used;
-
-void *locate_vbt(size_t *vbt_size)
-{
- uint32_t vbtsig = 0;
-
- if (vbt_data_used == 1)
- return (void *)vbt_data;
-
- const char *filename = mainboard_vbt_filename();
-
- size_t file_size = cbfs_boot_load_file(filename,
- vbt_data, sizeof(vbt_data), CBFS_TYPE_RAW);
-
- if (file_size == 0)
- return NULL;
-
- if (vbt_size)
- *vbt_size = file_size;
-
- memcpy(&vbtsig, vbt_data, sizeof(vbtsig));
- if (vbtsig != VBT_SIGNATURE) {
- printk(BIOS_ERR, "Missing/invalid signature in VBT data file!\n");
- return NULL;
- }
-
- printk(BIOS_INFO, "Found a VBT of %zu bytes after decompression\n",
- file_size);
- vbt_data_used = 1;
-
- return (void *)vbt_data;
-}
+#include <drivers/intel/gma/opregion.h>
void *vbt_get(void)
{
diff --git a/src/soc/intel/common/vbt.h b/src/soc/intel/common/vbt.h
index 1bc536e430..e5a17fb75a 100644
--- a/src/soc/intel/common/vbt.h
+++ b/src/soc/intel/common/vbt.h
@@ -20,19 +20,6 @@
#include <types.h>
/*
- * Returns the CBFS filename of the VBT blob.
- *
- * The default implementation returns "vbt.bin", but other implementations can
- * override this.
- */
-const char *mainboard_vbt_filename(void);
-
-/*
- * locate vbt.bin file. Returns a pointer to its content.
- * If vbt_size is non-NULL, also return the vbt's size.
- */
-void *locate_vbt(size_t *vbt_size);
-/*
* Returns VBT pointer and mapping after checking prerequisites for Pre OS
* Graphics initialization
*/