[U-Boot] [PATCH v7 3/4] mpc85xx: Add a board-specific restart hook
Kumar Gala
kumar.gala at freescale.com
Sun Oct 16 17:22:57 CEST 2011
On Mar 28, 2011, at 10:35 AM, Kyle Moffett wrote:
> The HWW-1U-1A board needs to be able to override the "reset" command due
> to hardware design limitations.
>
> Signed-off-by: Kyle Moffett <Kyle.D.Moffett at boeing.com>
> Cc: Andy Fleming <afleming at gmail.com>
> Cc: Kumar Gala <kumar.gala at freescale.com>
>
> --
> Changelog:
> v2: Removed in favor of more involved reset rework
> v6: Resurrected again (the more involved rework was NAKed)
> v7: Fixed remaining checkpatch errors
>
> arch/powerpc/cpu/mpc85xx/cpu.c | 27 ++++++++++++++++++++++-----
> 1 files changed, 22 insertions(+), 5 deletions(-)
What happened to more generic reset cleanup?
>
> diff --git a/arch/powerpc/cpu/mpc85xx/cpu.c b/arch/powerpc/cpu/mpc85xx/cpu.c
> index 49ea6cc..6776468 100644
> --- a/arch/powerpc/cpu/mpc85xx/cpu.c
> +++ b/arch/powerpc/cpu/mpc85xx/cpu.c
> @@ -203,11 +203,17 @@ int checkcpu (void)
>
> /* ------------------------------------------------------------------------- */
>
> -int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
> +/* Board-specific reset stub */
> +__attribute__((__weak__))
> +int __board_restart(void)
> {
> -/* Everything after the first generation of PQ3 parts has RSTCR */
> + return 0;
> +}
> +
> #if defined(CONFIG_MPC8540) || defined(CONFIG_MPC8541) || \
> defined(CONFIG_MPC8555) || defined(CONFIG_MPC8560)
> +int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
> +{
> unsigned long val, msr;
>
This concerns me because it means those cpu's don't support __board_restart(), we should be consistent.
> /*
> @@ -221,14 +227,25 @@ int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
> val = mfspr(DBCR0);
> val |= 0x70000000;
> mtspr(DBCR0,val);
> +}
> #else
> - volatile ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);
> +int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
> +{
> + /* Everything after the first generation of PQ3 parts has RSTCR */
> + ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);
> +
> + /* Allow boards to override the reset */
> + int err = __board_restart();
> + if (err)
> + return err;
> +
> out_be32(&gur->rstcr, 0x2); /* HRESET_REQ */
> udelay(100);
> -#endif
> -
> return 1;
> }
> +#endif
> +
> +
>
>
> /*
> --
> 1.7.2.5
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
More information about the U-Boot
mailing list