summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/soc/intel/common/vbt.c7
-rw-r--r--src/soc/intel/common/vbt.h7
2 files changed, 10 insertions, 4 deletions
diff --git a/src/soc/intel/common/vbt.c b/src/soc/intel/common/vbt.c
index 9e3cb3516b..50d3951179 100644
--- a/src/soc/intel/common/vbt.c
+++ b/src/soc/intel/common/vbt.c
@@ -33,7 +33,7 @@ const char *mainboard_vbt_filename(void)
static char vbt_data[8 * KiB];
static int vbt_data_used;
-void *locate_vbt(void)
+void *locate_vbt(size_t *vbt_size)
{
uint32_t vbtsig = 0;
@@ -48,6 +48,9 @@ void *locate_vbt(void)
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");
@@ -72,5 +75,5 @@ void *vbt_get(void)
return NULL;
if (!display_init_required())
return NULL;
- return locate_vbt();
+ return locate_vbt(NULL);
}
diff --git a/src/soc/intel/common/vbt.h b/src/soc/intel/common/vbt.h
index 615af4b29c..1bc536e430 100644
--- a/src/soc/intel/common/vbt.h
+++ b/src/soc/intel/common/vbt.h
@@ -27,8 +27,11 @@
*/
const char *mainboard_vbt_filename(void);
-/* locate vbt.bin file. Returns a pointer to its content. */
-void *locate_vbt(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