aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/lib
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2020-05-10 14:16:56 -0600
committerTom Rini <trini@konsulko.com>2020-06-25 13:24:12 -0400
commit59b0d7d839f135bc44d3459784337a657149f8b3 (patch)
treec65f4183a47f4345aa1eb3c7e4e2f8010d5e7fe9 /arch/arm/lib
parent655f17ff7d8631ca9344a4bff5918243e5bfed37 (diff)
downloadu-boot-59b0d7d839f135bc44d3459784337a657149f8b3.zip
u-boot-59b0d7d839f135bc44d3459784337a657149f8b3.tar.gz
u-boot-59b0d7d839f135bc44d3459784337a657149f8b3.tar.bz2
bdinfo: arm: Move ARM-specific info into its own file
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@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Diffstat (limited to 'arch/arm/lib')
-rw-r--r--arch/arm/lib/Makefile1
-rw-r--r--arch/arm/lib/bdinfo.c51
2 files changed, 52 insertions, 0 deletions
diff --git a/arch/arm/lib/Makefile b/arch/arm/lib/Makefile
index b839aa7..27b12e7 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 0000000..81c9291
--- /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@denx.de.
+ */
+
+#include <common.h>
+#include <init.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+void arch_print_bdinfo(void)
+{
+ bd_t *bd = gd->bd;
+
+ bdinfo_print_num("arch_number", bd->bi_arch_number);
+#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", bd->bi_arm_freq);
+ printf("DSP frequency = %ld MHz\n", bd->bi_dsp_freq);
+ printf("DDR frequency = %ld MHz\n", 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
+}