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>
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
Reference in New Issue
Block a user