soc/amd/picasso: Halt if workbuf is absent after psp_verstage

Check for the workbuf in bootblock if psp_verstage is being used.

BUG=b:158124527
TEST=Build & boot Trembyle with psp_verstage

Signed-off-by: Martin Roth <martin@coreboot.org>
Change-Id: I0ec8d2c953bce4c44cde5102d2765e0ab9b5875e
Reviewed-on: https://review.coreboot.org/c/coreboot/+/42810
Reviewed-by: Raul Rangel <rrangel@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/src/soc/amd/picasso/bootblock/bootblock.c b/src/soc/amd/picasso/bootblock/bootblock.c
index a3935cc..556fbad 100644
--- a/src/soc/amd/picasso/bootblock/bootblock.c
+++ b/src/soc/amd/picasso/bootblock/bootblock.c
@@ -13,6 +13,12 @@
 #include <soc/i2c.h>
 #include <amdblocks/amd_pci_mmconf.h>
 #include <acpi/acpi.h>
+#include <security/vboot/symbols.h>
+
+/* vboot includes directory may not be in include path if vboot is not enabled */
+#if CONFIG(VBOOT_STARTS_BEFORE_BOOTBLOCK)
+#include <2struct.h>
+#endif
 
 asmlinkage void bootblock_resume_entry(void);
 
@@ -123,5 +129,15 @@
 	u32 val = cpuid_eax(1);
 	printk(BIOS_DEBUG, "Family_Model: %08x\n", val);
 
+#if CONFIG(VBOOT_STARTS_BEFORE_BOOTBLOCK)
+	if (*(uint32_t *)_vboot2_work != VB2_SHARED_DATA_MAGIC) {
+		printk(BIOS_ERR, "ERROR: VBOOT workbuf not valid.\n");
+
+		printk(BIOS_DEBUG, "Signature: %#08x\n", *(uint32_t *)_vboot2_work);
+
+		die("Halting.\n");
+	}
+#endif
+
 	fch_early_init();
 }