From 4a3956d7cc07056fa8795d89972e288dfc270db7 Mon Sep 17 00:00:00 2001 From: Patrick Georgi Date: Thu, 3 May 2018 19:15:13 +0200 Subject: 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 Reviewed-on: https://review.coreboot.org/26039 Reviewed-by: Furquan Shaikh Tested-by: build bot (Jenkins) --- src/soc/intel/common/vbt.c | 43 +------------------------------------------ src/soc/intel/common/vbt.h | 13 ------------- 2 files changed, 1 insertion(+), 55 deletions(-) (limited to 'src/soc/intel') 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 #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 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 @@ -19,19 +19,6 @@ #include #include -/* - * 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 -- cgit v1.2.3