Martin Roth has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/43678 )
Change subject: soc/amd/picasso: Replace vboot_reboot() in psp_verstage ......................................................................
soc/amd/picasso: Replace vboot_reboot() in psp_verstage
The vboot_reboot function calls through board_reset() which flushes the cache before rebooting. On the PSP, because we're running in userspace, this causes the system to hang before it can reboot.
Instead, just call the relevant functions of vboot_reboot() directly.
BUG=b:161554141 TEST=Run board through a bunch of recovery cycles.
Change-Id: I6775b2e049d6cfd9f78f2e07a941f6cc5be254b8 --- M src/soc/amd/picasso/psp_verstage/psp_verstage.c 1 file changed, 4 insertions(+), 1 deletion(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/78/43678/1
diff --git a/src/soc/amd/picasso/psp_verstage/psp_verstage.c b/src/soc/amd/picasso/psp_verstage/psp_verstage.c index bac0548..b349be4 100644 --- a/src/soc/amd/picasso/psp_verstage/psp_verstage.c +++ b/src/soc/amd/picasso/psp_verstage/psp_verstage.c @@ -11,6 +11,7 @@ #include <arch/stages.h> #include <stdarg.h> #include <stdio.h> +#include <reset.h>
#define RUN_PSP_SVC_TESTS 0
@@ -30,7 +31,9 @@ vboot_save_data(ctx);
svc_debug_print("Rebooting into recovery\n"); - vboot_reboot(); + + vboot_platform_prepare_reboot(); + do_board_reset(); }
/*