Dear Kyle Moffett,

In message <1299519462-25320-2-git-send-email-kyle.d.moff...@boeing.com> you 
wrote:
> In preparation for making system restart use a generic set of hooks for
> boards and architectures, we define some wrappers and weak stubs.
> 
> The new wrapper functions are:
>   system_restart()     -  Normal system reboot (IE: user request)
>   emergency_restart()  -  Critical error response (IE: panic(), etc)

What is the difference between these two - and why do we need
different functions at all?

A reset is a reset is a reset, isn't it?

...
> +/*
> + * This MUST be called from normal interrupts-on context.  If it requires
> + * extended interaction with external hardware it SHOULD react to Ctrl-C.

??? Why such complicated restrictions for a simple command that is
just supposed to reset the board?

> + * If this function fails to guarantee a clean reboot or receives a Ctrl-C
> + * keystroke it SHOULD return with an error (-1).

A "reset" is supposed to take place immediately, and unconditionally.
If you need delays and ^C handling and other bells and whistles,
please add these to your own code, but not here.

> +int system_restart(void)
> +{
> +     int err;
> +
> +     /*
> +      * Print a nice message and wait a bit to make sure it goes out the
> +      * console properly.
> +      */
> +     printf ("Restarting...\n");
> +     udelay(50000);
> +
> +     /* First let the board code try to reboot */
> +     err = __board_restart();
> +     if (err)
> +             goto failed;
> +
> +     /* Now call into the architecture-specific code */
> +     err = __arch_restart();
> +     if (err)
> +             goto failed;
> +
> +     /* Fallback to the old do_reset() until everything is converted. */
> +     err = do_reset(NULL, 0, 0, NULL);
> +
> +failed:
> +     printf("*** SYSTEM RESTART FAILED ***\n");
> +     return err;
> +}

You are making a simple thing pretty much complicated.  This adds lots
of code and I cannot see any benefits.

My initial feeling is a plain NAK, for this and the rest of the patch
series.  Why would we want all this?

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de
They're usually so busy thinking about what  happens  next  that  the
only  time they ever find out what is happening now is when they come
to look back on it.                 - Terry Pratchett, _Wyrd Sisters_
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to