[Skiboot] [PATCH v2 4/4] ipmi/wdt: Add ipmi watchdog timer support

Joel Stanley joel at jms.id.au
Thu Feb 5 16:19:43 AEDT 2015


On Wed, Feb 4, 2015 at 3:37 PM, Alistair Popple <alistair at popple.id.au> wrote:
> 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.

Looks good. A question below about clearing the message flags.

> 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 at popple.id.au>

Reviewed-by: Joel Stanley <joel at jms.id.au>


> index 99c2fd9..6489b7a 100644
> --- a/core/ipmi.c
> +++ b/core/ipmi.c
> @@ -153,6 +153,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();

I see that this will send a IPMI_SET_WDT to the BMC. Do you also need
to clear the flag?

> +
>         /* 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) {


More information about the Skiboot mailing list