clear wakeup enable bit upon resuming from suspend
authorAchin Gupta <achin.gupta@arm.com>
Tue, 12 Nov 2013 16:40:00 +0000 (16:40 +0000)
committerDan Handley <dan.handley@arm.com>
Thu, 5 Dec 2013 12:28:50 +0000 (12:28 +0000)
commitb127cdb879aed2ced388af3cd9481e80c68f3e8c
treeceb879d87b15ea26d705d87f3a4fdf06e00cb6e5
parent4a826ddad8ea0fc5ce09709f534efb72cc33611c
clear wakeup enable bit upon resuming from suspend

The FVP specific code that gets called after a cpu has been physically
powered on after having been turned off or suspended earlier does not
clear the PWRC.PWKUPR.WEN bit. Not doing so causes problems if: a cpu
is suspended, woken from suspend, powered down through a cpu_off call
& receives a spurious interrupt. Since the WEN bit is not cleared
after the cpu woke up from suspend, the spurious wakeup will power the
cpu on. Since the cpu_off call clears the jump address in the mailbox
this spurious wakeup will cause the cpu to crash.

This patch fixes this issue by clearing the WEN bit whenever a cpu is
powered up.

Change-Id: Ic91f5dffe1ed01d76bc7fc807acf0ecd3e38ce5b
docs/change-log.md
drivers/power/fvp_pwrc.c
drivers/power/fvp_pwrc.h
plat/fvp/fvp_pm.c