[PATCH 31/36] bdinfo: ppc: Move PPC-specific info into its own file

Stefan Roese sr at denx.de
Wed May 6 17:10:15 CEST 2020


On 05.05.20 01:17, Simon Glass wrote:
> We don't really want to have PPC-specific code in a generic file. Create
> a new arch-specific function to hold it, and move it into that.
> 
> Make the function weak so that any arch can implement it.
> 
> Signed-off-by: Simon Glass <sjg at chromium.org>

Reviewed-by: Stefan Roese <sr at denx.de>

Thanks,
Stefan

> ---
> 
>   arch/powerpc/lib/Makefile |  2 ++
>   arch/powerpc/lib/bdinfo.c | 41 +++++++++++++++++++++++++++++++++++++++
>   cmd/bdinfo.c              | 27 --------------------------
>   3 files changed, 43 insertions(+), 27 deletions(-)
>   create mode 100644 arch/powerpc/lib/bdinfo.c
> 
> diff --git a/arch/powerpc/lib/Makefile b/arch/powerpc/lib/Makefile
> index 01c9dd51be..f61809ab05 100644
> --- a/arch/powerpc/lib/Makefile
> +++ b/arch/powerpc/lib/Makefile
> @@ -15,6 +15,8 @@ MINIMAL=y
>   endif
>   endif
>   
> +obj-y	+= bdinfo.o
> +
>   ifdef MINIMAL
>   obj-y += cache.o time.o
>   ifndef CONFIG_TIMER
> diff --git a/arch/powerpc/lib/bdinfo.c b/arch/powerpc/lib/bdinfo.c
> new file mode 100644
> index 0000000000..da09bb276f
> --- /dev/null
> +++ b/arch/powerpc/lib/bdinfo.c
> @@ -0,0 +1,41 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * PPC-specific information for the 'bd' command
> + *
> + * (C) Copyright 2003
> + * Wolfgang Denk, DENX Software Engineering, wd at denx.de.
> + */
> +
> +#include <common.h>
> +#include <init.h>
> +
> +DECLARE_GLOBAL_DATA_PTR;
> +
> +void __weak board_detail(void)
> +{
> +	/* Please define board_detail() for your PPC platform */
> +}
> +
> +void arch_print_bdinfo(void)
> +{
> +	bd_t *bd = gd->bd;
> +
> +#if defined(CONFIG_MPC8xx) || defined(CONFIG_E500)
> +	bdinfo_print_num("immr_base", bd->bi_immr_base);
> +#endif
> +	bdinfo_print_num("bootflags", bd->bi_bootflags);
> +	bdinfo_print_mhz("intfreq", bd->bi_intfreq);
> +#ifdef CONFIG_ENABLE_36BIT_PHYS
> +	if (IS_ENABLED(CONFIG_PHYS_64BIT))
> +		puts("addressing  = 36-bit\n");
> +	else
> +		puts("addressing  = 32-bit\n");
> +#endif
> +	board_detail();
> +#if defined(CONFIG_CPM2)
> +	bdinfo_print_mhz("cpmfreq", bd->bi_cpmfreq);
> +	bdinfo_print_mhz("vco", bd->bi_vco);
> +	bdinfo_print_mhz("sccfreq", bd->bi_sccfreq);
> +	bdinfo_print_mhz("brgfreq", bd->bi_brgfreq);
> +#endif
> +}
> diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c
> index 55a9244aef..570022052c 100644
> --- a/cmd/bdinfo.c
> +++ b/cmd/bdinfo.c
> @@ -60,11 +60,6 @@ static void print_bi_dram(const bd_t *bd)
>   #endif
>   }
>   
> -void __weak board_detail(void)
> -{
> -	/* Please define board_detail() for your PPC platform */
> -}
> -
>   __weak void arch_print_bdinfo(void)
>   {
>   }
> @@ -103,28 +98,6 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
>   
>   	arch_print_bdinfo();
>   
> -	/* This section is used only by ppc */
> -#if defined(CONFIG_MPC8xx) || defined(CONFIG_E500)
> -	bdinfo_print_num("immr_base", bd->bi_immr_base);
> -#endif
> -	if (IS_ENABLED(CONFIG_PPC)) {
> -		bdinfo_print_num("bootflags", bd->bi_bootflags);
> -		bdinfo_print_mhz("intfreq", bd->bi_intfreq);
> -#ifdef CONFIG_ENABLE_36BIT_PHYS
> -		if (IS_ENABLED(CONFIG_PHYS_64BIT))
> -			puts("addressing  = 36-bit\n");
> -		else
> -			puts("addressing  = 32-bit\n");
> -#endif
> -		board_detail();
> -	}
> -#if defined(CONFIG_CPM2)
> -	bdinfo_print_mhz("cpmfreq", bd->bi_cpmfreq);
> -	bdinfo_print_mhz("vco", bd->bi_vco);
> -	bdinfo_print_mhz("sccfreq", bd->bi_sccfreq);
> -	bdinfo_print_mhz("brgfreq", bd->bi_brgfreq);
> -#endif
> -
>   	/* This is used by m68k and ppc */
>   #if defined(CONFIG_SYS_INIT_RAM_ADDR)
>   	bdinfo_print_num("sramstart", (ulong)bd->bi_sramstart);
> 


Viele Grüße,
Stefan

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr at denx.de


More information about the U-Boot mailing list