[PATCH 30/36] bdinfo: arm: Move ARM-specific info into its own file

Daniel Schwierzeck daniel.schwierzeck at gmail.com
Wed May 6 18:10:23 CEST 2020



Am 05.05.20 um 01:17 schrieb Simon Glass:
> We don't really want to have ARM-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/arm/lib/Makefile |  1 +
>  arch/arm/lib/bdinfo.c | 51 +++++++++++++++++++++++++++++++++++++++++++
>  cmd/bdinfo.c          | 44 +++++--------------------------------
>  include/init.h        |  3 +++
>  4 files changed, 61 insertions(+), 38 deletions(-)
>  create mode 100644 arch/arm/lib/bdinfo.c
> 
> diff --git a/arch/arm/lib/Makefile b/arch/arm/lib/Makefile
> index b839aa7a50..27b12e7f2b 100644
> --- a/arch/arm/lib/Makefile
> +++ b/arch/arm/lib/Makefile
> @@ -43,6 +43,7 @@ obj-$(CONFIG_$(SPL_TPL_)USE_ARCH_MEMSET) += memset.o
>  obj-$(CONFIG_$(SPL_TPL_)USE_ARCH_MEMCPY) += memcpy.o
>  obj-$(CONFIG_SEMIHOSTING) += semihosting.o
>  
> +obj-y	+= bdinfo.o
>  obj-y	+= sections.o
>  obj-y	+= stack.o
>  ifdef CONFIG_CPU_V7M
> diff --git a/arch/arm/lib/bdinfo.c b/arch/arm/lib/bdinfo.c
> new file mode 100644
> index 0000000000..ce8edd0313
> --- /dev/null
> +++ b/arch/arm/lib/bdinfo.c
> @@ -0,0 +1,51 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * ARM-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 arch_print_bdinfo(void)
> +{
> +#ifdef CONFIG_SYS_MEM_RESERVE_SECURE
> +	if (gd->arch.secure_ram & MEM_RESERVE_SECURE_SECURED) {
> +		bdinfo_print_num("Secure ram",
> +				 gd->arch.secure_ram &
> +				 MEM_RESERVE_SECURE_ADDR_MASK);
> +	}
> +#endif
> +#ifdef CONFIG_RESV_RAM
> +	if (gd->arch.resv_ram)
> +		bdinfo_print_num("Reserved ram", gd->arch.resv_ram);
> +#endif
> +#if !(CONFIG_IS_ENABLED(SYS_ICACHE_OFF) && CONFIG_IS_ENABLED(SYS_DCACHE_OFF))
> +	bdinfo_print_num("TLB addr", gd->arch.tlb_addr);
> +#endif
> +	bdinfo_print_num("irq_sp", gd->irq_sp);	/* irq stack pointer */
> +	bdinfo_print_num("sp start ", gd->start_addr_sp);
> +	/*
> +	 * TODO: Currently only support for davinci SOC's is added.
> +	 * Remove this check once all the board implement this.
> +	 */
> +#ifdef CONFIG_CLOCKS
> +	printf("ARM frequency = %ld MHz\n", gd->bd->bi_arm_freq);
> +	printf("DSP frequency = %ld MHz\n", gd->bd->bi_dsp_freq);
> +	printf("DDR frequency = %ld MHz\n", gd->bd->bi_ddr_freq);
> +#endif
> +#ifdef CONFIG_BOARD_TYPES
> +	printf("Board Type  = %ld\n", gd->board_type);
> +#endif



> +#if CONFIG_VAL(SYS_MALLOC_F_LEN)
> +	printf("Early malloc usage: %lx / %x\n", gd->malloc_ptr,
> +	       CONFIG_VAL(SYS_MALLOC_F_LEN));
> +#endif
> +#if CONFIG_IS_ENABLED(MULTI_DTB_FIT)
> +	bdinfo_print_num("multi_dtb_fit", (ulong)gd->multi_dtb_fit);
> +#endif
> +}

that part is not really ARM specific. Maybe it's useful in the generic
function?

-- 
- Daniel


More information about the U-Boot mailing list