aboutsummaryrefslogtreecommitdiff
path: root/src/drivers/intel/fsp1_1/vbt.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers/intel/fsp1_1/vbt.c')
-rw-r--r--src/drivers/intel/fsp1_1/vbt.c54
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");
}