summaryrefslogtreecommitdiffstats
path: root/src/soc/amd/common/block/graphics/graphics.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/amd/common/block/graphics/graphics.c')
-rw-r--r--src/soc/amd/common/block/graphics/graphics.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/soc/amd/common/block/graphics/graphics.c b/src/soc/amd/common/block/graphics/graphics.c
index cc5205310411..d8f3e1fd8696 100644
--- a/src/soc/amd/common/block/graphics/graphics.c
+++ b/src/soc/amd/common/block/graphics/graphics.c
@@ -257,11 +257,13 @@ void vbios_load_from_cache(void)
/*
* Return true if VBIOS cache data is valid
*
- * Compare hash of data with hash stored in TPM NVRAM
+ * Compare first 2 bytes of data with known signature
+ * and hash of data with hash stored in TPM NVRAM
*/
bool vbios_cache_is_valid(void)
{
- return vbios_cache_verify_hash(vbios_data, VBIOS_CACHE_FMAP_SIZE) == CB_SUCCESS;
+ bool sig_valid = vbios_data[0] == 0x55 && vbios_data[1] == 0xaa;
+ return sig_valid && vbios_cache_verify_hash(vbios_data, VBIOS_CACHE_FMAP_SIZE) == CB_SUCCESS;
}
BOOT_STATE_INIT_ENTRY(BS_PRE_DEVICE, BS_ON_EXIT, read_vbios_cache_from_fmap, NULL);