Message ID | 20200504231732.98778-23-sjg@chromium.org |
---|---|
State | Superseded |
Headers | show |
Series | Tidy up the 'bd' command. | expand |
On Tue, May 5, 2020 at 7:19 AM Simon Glass <sjg at chromium.org> 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> > --- > > 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 > Reviewed-by: Bin Meng <bmeng.cn at gmail.com>
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
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);
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> --- 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