diff options
author | Andrey Petrov <andrey.petrov@intel.com> | 2016-06-22 19:32:51 -0700 |
---|---|---|
committer | Martin Roth <martinroth@google.com> | 2016-06-24 20:39:32 +0200 |
commit | 1973c39c82ae3c7124e603d92248e34dabfb0a61 (patch) | |
tree | d79c00a37e1b3934dc0dcd7ed5d7f91ee1fb7a4f /src/soc/intel | |
parent | 901e43c90473e4acf950204abd55f0eb99bfee5b (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')
-rw-r--r-- | src/soc/intel/apollolake/chip.c | 8 |
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); |