Merge tag 'efi-2020-07-rc6' of https://gitlab.denx.de/u-boot/custodians/u-boot-efi
[oweals/u-boot.git] / cmd / bdinfo.c
index 27ffcd55bcec3a3f0ae2c01fb6bddbd7ea5c5d52..dba552b03fbd765ba766830985b246c3a1a19222 100644 (file)
@@ -1,8 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0+
 /*
  * (C) Copyright 2003
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
- *
- * SPDX-License-Identifier:    GPL-2.0+
  */
 
 /*
  */
 #include <common.h>
 #include <command.h>
+#include <env.h>
+#include <net.h>
+#include <vsprintf.h>
+#include <asm/cache.h>
 #include <linux/compiler.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
+__maybe_unused void print_cpu_word_size(void)
+{
+       printf("%-12s= %u-bit\n", "Build", (uint)sizeof(void *) * 8);
+}
+
 __maybe_unused
 static void print_num(const char *name, ulong value)
 {
-       printf("%-12s= 0x%08lX\n", name, value);
+       printf("%-12s= 0x%0*lx\n", name, 2 * (int)sizeof(value), value);
 }
 
 __maybe_unused
@@ -169,7 +177,7 @@ void __weak board_detail(void)
        /* Please define board_detail() for your platform */
 }
 
-int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+int do_bdinfo(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
 {
        bd_t *bd = gd->bd;
 
@@ -180,7 +188,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
        print_bi_flash(bd);
        print_num("sramstart",          bd->bi_sramstart);
        print_num("sramsize",           bd->bi_sramsize);
-#if    defined(CONFIG_8xx) || defined(CONFIG_E500)
+#if    defined(CONFIG_MPC8xx) || defined(CONFIG_E500)
        print_num("immr_base",          bd->bi_immr_base);
 #endif
        print_num("bootflags",          bd->bi_bootflags);
@@ -207,12 +215,14 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
        print_baudrate();
        print_num("relocaddr", gd->relocaddr);
        board_detail();
+       print_cpu_word_size();
+
        return 0;
 }
 
 #elif defined(CONFIG_NIOS2)
 
-int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+int do_bdinfo(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
 {
        bd_t *bd = gd->bd;
 
@@ -226,13 +236,14 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 
        print_eth_ip_addr();
        print_baudrate();
+       print_cpu_word_size();
 
        return 0;
 }
 
 #elif defined(CONFIG_MICROBLAZE)
 
-int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+int do_bdinfo(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
 {
        bd_t *bd = gd->bd;
 
@@ -251,13 +262,14 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
        print_num("fdt_blob", (ulong)gd->fdt_blob);
        print_num("new_fdt", (ulong)gd->new_fdt);
        print_num("fdt_size", (ulong)gd->fdt_size);
+       print_cpu_word_size();
 
        return 0;
 }
 
 #elif defined(CONFIG_M68K)
 
-int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+int do_bdinfo(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
 {
        bd_t *bd = gd->bd;
 
@@ -282,25 +294,27 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 #endif
        print_eth_ip_addr();
        print_baudrate();
+       print_cpu_word_size();
 
        return 0;
 }
 
 #elif defined(CONFIG_MIPS)
 
-int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+int do_bdinfo(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
 {
        print_std_bdinfo(gd->bd);
        print_num("relocaddr", gd->relocaddr);
        print_num("reloc off", gd->reloc_off);
+       print_cpu_word_size();
 
        return 0;
 }
 
 #elif defined(CONFIG_ARM)
 
-static int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc,
-                       char * const argv[])
+static int do_bdinfo(struct cmd_tbl *cmdtp, int flag, int argc,
+                    char *const argv[])
 {
        bd_t *bd = gd->bd;
 
@@ -322,14 +336,14 @@ static int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc,
        print_eths();
 #endif
        print_baudrate();
-#if !(defined(CONFIG_SYS_ICACHE_OFF) && defined(CONFIG_SYS_DCACHE_OFF))
+#if !(CONFIG_IS_ENABLED(SYS_ICACHE_OFF) && CONFIG_IS_ENABLED(SYS_DCACHE_OFF))
        print_num("TLB addr", gd->arch.tlb_addr);
 #endif
        print_num("relocaddr", gd->relocaddr);
        print_num("reloc off", gd->reloc_off);
        print_num("irq_sp", gd->irq_sp);        /* irq stack pointer */
        print_num("sp start ", gd->start_addr_sp);
-#if defined(CONFIG_LCD) || defined(CONFIG_VIDEO)
+#if defined(CONFIG_LCD) || defined(CONFIG_VIDEO) || defined(CONFIG_DM_VIDEO)
        print_num("FB base  ", gd->fb_base);
 #endif
        /*
@@ -347,16 +361,20 @@ static int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc,
 #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)
+       print_num("multi_dtb_fit", (ulong)gd->multi_dtb_fit);
 #endif
        if (gd->fdt_blob)
-               printf("fdt_blob = %p\n", gd->fdt_blob);
+               print_num("fdt_blob", (ulong)gd->fdt_blob);
+       print_cpu_word_size();
 
        return 0;
 }
 
 #elif defined(CONFIG_SH)
 
-int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+int do_bdinfo(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
 {
        bd_t *bd = gd->bd;
 
@@ -364,12 +382,14 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
        print_bi_flash(bd);
        print_eth_ip_addr();
        print_baudrate();
+       print_cpu_word_size();
+
        return 0;
 }
 
 #elif defined(CONFIG_X86)
 
-int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+int do_bdinfo(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
 {
        bd_t *bd = gd->bd;
 
@@ -377,18 +397,21 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 
        print_bi_dram(bd);
 
+       print_num("relocaddr", gd->relocaddr);
+       print_num("reloc off", gd->reloc_off);
 #if defined(CONFIG_CMD_NET)
        print_eth_ip_addr();
        print_mhz("ethspeed",       bd->bi_ethspeed);
 #endif
        print_baudrate();
+       print_cpu_word_size();
 
        return 0;
 }
 
 #elif defined(CONFIG_SANDBOX)
 
-int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+int do_bdinfo(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
 {
        bd_t *bd = gd->bd;
 
@@ -399,12 +422,14 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 #if defined(CONFIG_LCD) || defined(CONFIG_VIDEO)
        print_num("FB base  ", gd->fb_base);
 #endif
+       print_cpu_word_size();
+
        return 0;
 }
 
 #elif defined(CONFIG_NDS32)
 
-int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+int do_bdinfo(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
 {
        bd_t *bd = gd->bd;
 
@@ -413,26 +438,45 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
        print_bi_dram(bd);
        print_eth_ip_addr();
        print_baudrate();
+       print_cpu_word_size();
+
+       return 0;
+}
+
+#elif defined(CONFIG_RISCV)
+
+int do_bdinfo(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
+{
+       bd_t *bd = gd->bd;
+
+       print_bi_boot_params(bd);
+       print_bi_dram(bd);
+       print_num("relocaddr", gd->relocaddr);
+       print_num("reloc off", gd->reloc_off);
+       print_eth_ip_addr();
+       print_baudrate();
+       print_cpu_word_size();
 
        return 0;
 }
 
 #elif defined(CONFIG_ARC)
 
-int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+int do_bdinfo(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
 {
        bd_t *bd = gd->bd;
 
        print_bi_mem(bd);
        print_eth_ip_addr();
        print_baudrate();
+       print_cpu_word_size();
 
        return 0;
 }
 
 #elif defined(CONFIG_XTENSA)
 
-int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+int do_bdinfo(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
 {
        print_std_bdinfo(gd->bd);
        return 0;