diff options
author | Alistair Popple <alistair@popple.id.au> | 2015-02-04 16:07:46 +1100 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2015-02-09 14:24:58 +1100 |
commit | 739e6df1163301a200b604b5eefa00770f9fa44c (patch) | |
tree | d8f05f37ddcd0f5f28e0753f13da9d4c7804be40 /core/ipmi.c | |
parent | e8ffc3caadf6e5ddbcd0910ae239eb1be0fdb381 (diff) | |
download | skiboot-739e6df1163301a200b604b5eefa00770f9fa44c.zip skiboot-739e6df1163301a200b604b5eefa00770f9fa44c.tar.gz skiboot-739e6df1163301a200b604b5eefa00770f9fa44c.tar.bz2 |
ipmi/wdt: Add ipmi watchdog timer support
Add support for an ipmi watchdog timer. During skiboot initialisation
this patch will cause the system to be reset if opal_run_pollers()
isn't called for more than 60 seconds.
Once the payload is started the watchdog timer will be reset and a
pre-timeout interrupt set. The payload should then receive the
interrupt and call into skiboot which will disable the watchdog timer.
Signed-off-by: Alistair Popple <alistair@popple.id.au>
Reviewed-by: Joel Stanley <joel@jms.id.au>
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'core/ipmi.c')
-rw-r--r-- | core/ipmi.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/core/ipmi.c b/core/ipmi.c index e4dfefd..39997f6 100644 --- a/core/ipmi.c +++ b/core/ipmi.c @@ -156,6 +156,12 @@ static void ipmi_get_message_flags_complete(struct ipmi_msg *msg) prlog(PR_DEBUG, "IPMI Get Message Flags: %02x\n", flags); + /* Once we see an interrupt we assume the payload has + * booted. We disable the wdt and let the OS setup its own + * wdt. */ + if (flags & IPMI_MESSAGE_FLAGS_WATCHDOG_PRE_TIMEOUT) + ipmi_wdt_stop(); + /* Message available in the event buffer? Queue a Read Event command * to retrieve it. The flag is cleared by performing a read */ if (flags & IPMI_MESSAGE_FLAGS_EVENT_BUFFER) { |