msm: subsystem_restart: Add support for error services ready indication
Most subsystems are capable of monitoring and reporting their own errors.
But things could go wrong during their boot up before they enable this
capability. To detect this error condition, subsystems will now send a new
"error services ready" indication to the application processor when they
are ready to monitor their own errors. When the "error services ready"
indication is expected from a subsystem, but doesn't come within a
reasonable time, it should be treated as an error.
There are multiple ways to handle this error: 1) Treat the timeout as a SSR
request after the subsystem has booted up. 2) Treat the reception of the
indication as a "boot complete" requirement.
Option (1) will mean that flashing an older image or one that doesn't have
support for this new indication by accident will trigger back-to-back
restarts of the subsystem. After the SSR count/time limit is hit, it will
trigger an entire system reset. Once the system reset is complete, it will
be back to a series of back-to-back restarts of the sybsystem. This results
in continuous resets of the system, making it hard to recover the device
from this invalid configuration.
Option (2) will mean that flashing an incorrect image just results in
failure of boot up of the subsystem. Repeated attempts will only result in
successive boot failures, but will not trigger a subsystem restart or hit
any limits that will trigger a system reset. Recovering from this invalid
configuration should be easier since the system is still stable and allows
manual reflashing of the proper subsystem images. This option also means
that failure to get this indication during a subsystem restart is treated
as a boot failure during SSR. Since the current SSR framework treats boot
failures during SSR as an unrecoverable error and restarts the whole
system, a properly configured system is never left in a state with a
dysfunctional subsystem.
For this reason, option (2), treating the timely reception of the error
services ready indication as a successful boot up requirement is the
implementation chosen by this patch.
Change-Id: Ibe7ea522babfe826e40a950ef3ea4577a463a313
Signed-off-by:
Seemanta Dutta <seemanta@codeaurora.org>
Loading
Please register or sign in to comment