vc/amd,soc/amd/mendocino: Add SVC_CMD_GET_PREV_BOOT_STATUS
commit7b49d1b19840773841311b15076cc4909bc2b845
authorKarthikeyan Ramasubramanian <kramasub@google.com>
Mon, 5 Dec 2022 21:49:38 +0000 (5 14:49 -0700)
committerFelix Held <felix-coreboot@felixheld.de>
Wed, 21 Dec 2022 13:36:25 +0000 (21 13:36 +0000)
tree82793c48f198e51ac991e6a63133d1d9263453b6
parenta0ff8744892e61b1e778f0bc0912bb1d6826c6d2
vc/amd,soc/amd/mendocino: Add SVC_CMD_GET_PREV_BOOT_STATUS

Add an SVC command to get the previous boot status. If there is any
pre-x86 boot failure in the previous boot cycle, PSP stores it in warm
reset persistent register and triggers a warm reset. PSP verstage on the
subsequent boot gets the previous boot status and reports any failure to
the vboot before a FW slot is selected.

BUG=b:242825052
TEST=Build Skyrim BIOS image and boot to OS in Skyrim. Trigger a failure
scenario by corrupting certain firmware blobs and observe that PSP
reports the failure boot status. On a normal boot, observed that PSP
reports successful boot.

Change-Id: I440deee560b72c80491bfdd7fda38a1c3a4299e5
Signed-off-by: Karthikeyan Ramasubramanian <kramasub@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/70381
Reviewed-by: Raul Rangel <rrangel@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
src/soc/amd/mendocino/psp_verstage/svc.c
src/soc/amd/mendocino/psp_verstage/svc.h
src/vendorcode/amd/fsp/cezanne/include/bl_uapp/bl_syscall_public.h
src/vendorcode/amd/fsp/mendocino/include/bl_uapp/bl_syscall_public.h
src/vendorcode/amd/fsp/picasso/include/bl_uapp/bl_syscall_public.h