diff options
Diffstat (limited to 'src/drivers/intel/fsp1_1/vbt.c')
-rw-r--r-- | src/drivers/intel/fsp1_1/vbt.c | 54 |
1 files changed, 12 insertions, 42 deletions
diff --git a/src/drivers/intel/fsp1_1/vbt.c b/src/drivers/intel/fsp1_1/vbt.c index 92a4c91cbf..b73d3a293c 100644 --- a/src/drivers/intel/fsp1_1/vbt.c +++ b/src/drivers/intel/fsp1_1/vbt.c @@ -17,47 +17,10 @@ #include <bootmode.h> #include <cbfs.h> #include <console/console.h> -#include <fsp/gop.h> +#include <drivers/intel/gma/opregion.h> #include <fsp/ramstage.h> #include <fsp/util.h> - -/* Reading VBT table from flash */ -const optionrom_vbt_t *fsp_get_vbt(uint32_t *vbt_len) -{ - size_t vbt_size; - union { - const optionrom_vbt_t *data; - uint32_t *signature; - } vbt; - - /* Locate the vbt file in cbfs */ - vbt.data = cbfs_boot_map_with_leak("vbt.bin", CBFS_TYPE_RAW, &vbt_size); - if (!vbt.data) { - printk(BIOS_INFO, - "FSP_INFO: VBT data file (vbt.bin) not found in CBFS"); - return NULL; - } - - /* Validate the vbt file */ - if (*vbt.signature != VBT_SIGNATURE) { - printk(BIOS_WARNING, - "FSP_WARNING: Invalid signature in VBT data file (vbt.bin)!\n"); - return NULL; - } - *vbt_len = vbt_size; - printk(BIOS_DEBUG, "FSP_INFO: VBT found at %p, 0x%08x bytes\n", - vbt.data, *vbt_len); - -#if IS_ENABLED(CONFIG_DISPLAY_VBT) - /* Display the vbt file contents */ - printk(BIOS_DEBUG, "VBT Data:\n"); - hexdump(vbt.data, *vbt_len); - printk(BIOS_DEBUG, "\n"); -#endif - - /* Return the pointer to the vbt file data */ - return vbt.data; -} +#include <lib.h> /* Locate VBT and pass it to FSP GOP */ void load_vbt(uint8_t s3_resume, SILICON_INIT_UPD *params) @@ -70,11 +33,18 @@ void load_vbt(uint8_t s3_resume, SILICON_INIT_UPD *params) printk(BIOS_DEBUG, "S3 resume do not pass VBT to GOP\n"); } else if (display_init_required()) { /* Get VBT data */ - vbt_data = fsp_get_vbt(&vbt_len); - if (vbt_data != NULL) + vbt_data = locate_vbt(&vbt_len); + if (vbt_data != NULL) { + if (IS_ENABLED(CONFIG_DISPLAY_VBT)) { + /* Display the vbt file contents */ + printk(BIOS_DEBUG, "VBT Data:\n"); + hexdump(vbt_data, vbt_len); + printk(BIOS_DEBUG, "\n"); + } printk(BIOS_DEBUG, "Passing VBT to GOP\n"); - else + } else { printk(BIOS_DEBUG, "VBT not found!\n"); + } } else { printk(BIOS_DEBUG, "Not passing VBT to GOP\n"); } |