aboutsummaryrefslogtreecommitdiff
path: root/src/soc/intel/apollolake/chip.c
diff options
context:
space:
mode:
authorAndrey Petrov <andrey.petrov@intel.com>2016-06-22 19:32:51 -0700
committerMartin Roth <martinroth@google.com>2016-06-24 20:39:32 +0200
commit1973c39c82ae3c7124e603d92248e34dabfb0a61 (patch)
treed79c00a37e1b3934dc0dcd7ed5d7f91ee1fb7a4f /src/soc/intel/apollolake/chip.c
parent901e43c90473e4acf950204abd55f0eb99bfee5b (diff)
soc/intel/apollolake: Add handling of global reset in FspNotify stage
Call basic FSP reset handling in FspNotify stage. Handling of reset requests for other stages need to be implemented as well. BUG=chrome-os-partner:54149 BRANCH=none TEST=with FSP that returns reset codes, do cold boot, check that reboot sequence occurs properly. Change-Id: I55542aa37e60edb17ca24ac358b61df72679b83e Signed-off-by: Andrey Petrov <andrey.petrov@intel.com> Reviewed-on: https://review.coreboot.org/15280 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Diffstat (limited to 'src/soc/intel/apollolake/chip.c')
-rw-r--r--src/soc/intel/apollolake/chip.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/soc/intel/apollolake/chip.c b/src/soc/intel/apollolake/chip.c
index ddb1374ddf..b5592e7453 100644
--- a/src/soc/intel/apollolake/chip.c
+++ b/src/soc/intel/apollolake/chip.c
@@ -160,9 +160,13 @@ static void fsp_notify_dummy(void *arg)
{
enum fsp_notify_phase ph = (enum fsp_notify_phase) arg;
+ enum fsp_status ret;
- if (fsp_notify(ph) != FSP_SUCCESS)
- printk(BIOS_CRIT, "FspNotify failed!\n");
+ if ((ret = fsp_notify(ph)) != FSP_SUCCESS) {
+ printk(BIOS_CRIT, "FspNotify failed, ret = %x!\n", ret);
+ if (fsp_reset_requested(ret))
+ fsp_handle_reset(ret);
+ }
/* Call END_OF_FIRMWARE Notify after READY_TO_BOOT Notify */
if (ph == READY_TO_BOOT)
fsp_notify_dummy((void *)END_OF_FIRMWARE);