diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/soc/amd/common/block/graphics/graphics.c | 6 |
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 cc52053104..d8f3e1fd86 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); |