From patchwork Mon May 4 23:16:57 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245064 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:16:57 -0600 Subject: [PATCH 01/36] bdinfo: nds32: Use generic bd_info In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504171638.1.I7b34db96c419d4d9692f4e1228df2a2d69b5c0b4@changeid> At present nds32 still uses its own private bd_info struct. Move it over to use the generic one like other archs. Signed-off-by: Simon Glass Reviewed-by: Rick Chen Reviewed-by: Bin Meng --- arch/nds32/include/asm/u-boot.h | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/arch/nds32/include/asm/u-boot.h b/arch/nds32/include/asm/u-boot.h index 8c949e7fb7..7b6e905f2a 100644 --- a/arch/nds32/include/asm/u-boot.h +++ b/arch/nds32/include/asm/u-boot.h @@ -19,26 +19,10 @@ #ifndef _U_BOOT_H_ #define _U_BOOT_H_ 1 +/* Use the generic board which requires a unified bd_info */ +#include #include - -typedef struct bd_info { - unsigned long bi_arch_number; /* unique id for this board */ - unsigned long bi_boot_params; /* where this board expects params */ - unsigned long bi_memstart; /* start of DRAM memory */ - unsigned long bi_memsize; /* size of DRAM memory in bytes */ - unsigned long bi_flashstart; /* start of FLASH memory */ - unsigned long bi_flashsize; /* size of FLASH memory */ - unsigned long bi_flashoffset; /* reserved area for startup monitor */ - unsigned char bi_enetaddr[6]; - - struct /* RAM configuration */ - { - unsigned long start; - unsigned long size; - } bi_dram[CONFIG_NR_DRAM_BANKS]; -} bd_t; - /* For image.h:image_check_target_arch() */ #define IH_ARCH_DEFAULT IH_ARCH_NDS32 From patchwork Mon May 4 23:16:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245065 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:16:58 -0600 Subject: [PATCH 02/36] bdinfo: riscv: Use generic bd_info In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504171638.2.I7b34db96c419d4d9692f4e1228df2a2d69b5c0b4@changeid> At present riscv still uses its own private bd_info struct. Move it over to use the generic one like other archs. Signed-off-by: Simon Glass Reviewed-by: Rick Chen Reviewed-by: Bin Meng --- arch/riscv/include/asm/u-boot.h | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/arch/riscv/include/asm/u-boot.h b/arch/riscv/include/asm/u-boot.h index 5ba8e77812..d5e1d5f323 100644 --- a/arch/riscv/include/asm/u-boot.h +++ b/arch/riscv/include/asm/u-boot.h @@ -18,25 +18,10 @@ #ifndef _U_BOOT_H_ #define _U_BOOT_H_ 1 +/* Use the generic board which requires a unified bd_info */ +#include #include - -typedef struct bd_info { - unsigned long bi_boot_params; /* where this board expects params */ - unsigned long bi_memstart; /* start of DRAM memory */ - unsigned long bi_memsize; /* size of DRAM memory in bytes */ - unsigned long bi_flashstart; /* start of FLASH memory */ - unsigned long bi_flashsize; /* size of FLASH memory */ - unsigned long bi_flashoffset; /* reserved area for startup monitor */ - unsigned char bi_enetaddr[6]; - - struct /* RAM configuration */ - { - unsigned long start; - unsigned long size; - } bi_dram[CONFIG_NR_DRAM_BANKS]; -} bd_t; - /* For image.h:image_check_target_arch() */ #define IH_ARCH_DEFAULT IH_ARCH_RISCV From patchwork Mon May 4 23:16:59 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245068 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:16:59 -0600 Subject: [PATCH 03/36] bdinfo: m68k: Drop bd_info->bi_ipbfreq In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504171638.3.I67233302b9b68fd34aed68cc8e14101ce640a6fb@changeid> This field is not used anymore. Drop it. Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- include/asm-generic/u-boot.h | 1 - 1 file changed, 1 deletion(-) diff --git a/include/asm-generic/u-boot.h b/include/asm-generic/u-boot.h index cc94d39069..be0014c3b3 100644 --- a/include/asm-generic/u-boot.h +++ b/include/asm-generic/u-boot.h @@ -60,7 +60,6 @@ typedef struct bd_info { unsigned long bi_vco; /* VCO Out from PLL, in MHz */ #endif #if defined(CONFIG_M68K) - unsigned long bi_ipbfreq; /* IPB Bus Freq, in MHz */ unsigned long bi_pcifreq; /* PCI Bus Freq, in MHz */ #endif #if defined(CONFIG_EXTRA_CLOCK) From patchwork Mon May 4 23:17:00 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245067 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:17:00 -0600 Subject: [PATCH 04/36] bdinfo: xtensa: Create a generic do_bdinfo for xtensa In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504171638.4.I6b06858189c2b3de54feeaab0166c56f33140318@changeid> This arch uses only the generic function. It would be nice if all the archs did the same. As a first step, create a new generic function for the 'bd' command and make xtensa use it. Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- cmd/bdinfo.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index 9edcf8d74e..9247180a29 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -474,14 +474,20 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) #elif defined(CONFIG_XTENSA) -int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) +#define USE_GENERIC + +#else + #error "a case for this architecture does not exist!" +#endif + +/* Temporary check for archs that use generic bdinfo. Eventually all will */ +#ifdef USE_GENERIC +int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) { print_std_bdinfo(gd->bd); + return 0; } - -#else - #error "a case for this architecture does not exist!" #endif /* -------------------------------------------------------------------- */ From patchwork Mon May 4 23:17:01 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245066 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:17:01 -0600 Subject: [PATCH 05/36] bdinfo: mips: Use the generic bd command In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504171638.5.I5c19e9c00f5168dc3f465b066ad4fc864a9cf0de@changeid> MIPS currently has a few extra things which are generally useful. Add them to the generic function and move MIPS over to use it. Signed-off-by: Simon Glass Reviewed-by: Bin Meng Reviewed-by: Daniel Schwierzeck --- cmd/bdinfo.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index 9247180a29..6ccbd2f50f 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -299,15 +299,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) #elif defined(CONFIG_MIPS) -int do_bdinfo(cmd_tbl_t *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; -} +#define USE_GENERIC #elif defined(CONFIG_ARM) @@ -485,6 +477,9 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) int do_bdinfo(cmd_tbl_t *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; } From patchwork Mon May 4 23:17:02 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245069 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:17:02 -0600 Subject: [PATCH 06/36] bdinfo: nios2: Use the generic bd command In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504171638.6.I5c19e9c00f5168dc3f465b066ad4fc864a9cf0de@changeid> Nios2 currently has some code to output SRAM information which is behind an #ifdef. No nios2 boards define this option, so the code can be removed. Move Nios2 over to use the generic function. Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- cmd/bdinfo.c | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index 6ccbd2f50f..405a915861 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -220,24 +220,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) #elif defined(CONFIG_NIOS2) -int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) -{ - bd_t *bd = gd->bd; - - print_bi_dram(bd); - print_bi_flash(bd); - -#if defined(CONFIG_SYS_SRAM_BASE) - print_num ("sram start", (ulong)bd->bi_sramstart); - print_num ("sram size", (ulong)bd->bi_sramsize); -#endif - - print_eth_ip_addr(); - print_baudrate(); - print_cpu_word_size(); - - return 0; -} +#define USE_GENERIC #elif defined(CONFIG_MICROBLAZE) From patchwork Mon May 4 23:17:03 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245070 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:17:03 -0600 Subject: [PATCH 07/36] bdinfo: microblaze: Use the generic bd command In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504171638.7.Ic4c05106579f39e7418db0a149582bc992327326@changeid> Microblaze prints out ethernet and FDT information. This is useful to most archs, so move it into the generic code and move microblaze over to use it. Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- cmd/bdinfo.c | 30 +++++++----------------------- 1 file changed, 7 insertions(+), 23 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index 405a915861..dc5a09f8ce 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -224,29 +224,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) #elif defined(CONFIG_MICROBLAZE) -int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) -{ - bd_t *bd = gd->bd; - - print_bi_dram(bd); - print_bi_flash(bd); -#if defined(CONFIG_SYS_SRAM_BASE) - print_num("sram start ", (ulong)bd->bi_sramstart); - print_num("sram size ", (ulong)bd->bi_sramsize); -#endif -#if defined(CONFIG_CMD_NET) && !defined(CONFIG_DM_ETH) - print_eths(); -#endif - print_baudrate(); - print_num("relocaddr", gd->relocaddr); - print_num("reloc off", gd->reloc_off); - 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; -} +#define USE_GENERIC #elif defined(CONFIG_M68K) @@ -463,6 +441,12 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) print_num("relocaddr", gd->relocaddr); print_num("reloc off", gd->reloc_off); print_cpu_word_size(); +#if defined(CONFIG_CMD_NET) && !defined(CONFIG_DM_ETH) + print_eths(); +#endif + print_num("fdt_blob", (ulong)gd->fdt_blob); + print_num("new_fdt", (ulong)gd->new_fdt); + print_num("fdt_size", (ulong)gd->fdt_size); return 0; } From patchwork Mon May 4 23:17:04 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245071 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:17:04 -0600 Subject: [PATCH 08/36] bdinfo: sh: Use the generic bd command In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504171638.8.I698c64ccb57222a2332d05d5abea386153ec28ed@changeid> This arch has no code that is not already in the generic function. Drop the arch-specific function and change sh over to use the generic one. Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- cmd/bdinfo.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index dc5a09f8ce..0b9ac21848 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -325,18 +325,7 @@ static int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, #elif defined(CONFIG_SH) -int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) -{ - bd_t *bd = gd->bd; - - print_bi_mem(bd); - print_bi_flash(bd); - print_eth_ip_addr(); - print_baudrate(); - print_cpu_word_size(); - - return 0; -} +#define USE_GENERIC #elif defined(CONFIG_X86) From patchwork Mon May 4 23:17:05 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245072 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:17:05 -0600 Subject: [PATCH 09/36] bdinfo: x86: Use the generic bd command In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504171638.9.Ib8756a4661f954fd16fa53af900524e54b228fde@changeid> This arch shows 'ethspeed' info but only the freescale drivers use it, so it can be dropped. It also calls print_bi_dram() which is safe to call from any arch since it has an #ifdef inside it. Add this to the generic do_bdinfo() and move x86 over to use it. Put it first since pytests rely on seeing it before memstart in find_ram_base(). Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- cmd/bdinfo.c | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index 0b9ac21848..0b903d234e 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -329,25 +329,7 @@ static int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, #elif defined(CONFIG_X86) -int do_bdinfo(cmd_tbl_t *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); -#if defined(CONFIG_CMD_NET) - print_eth_ip_addr(); - print_mhz("ethspeed", bd->bi_ethspeed); -#endif - print_baudrate(); - print_cpu_word_size(); - - return 0; -} +#define USE_GENERIC #elif defined(CONFIG_SANDBOX) @@ -426,6 +408,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) #ifdef USE_GENERIC int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) { + print_bi_dram(gd->bd); print_std_bdinfo(gd->bd); print_num("relocaddr", gd->relocaddr); print_num("reloc off", gd->reloc_off); From patchwork Mon May 4 23:17:06 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245073 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:17:06 -0600 Subject: [PATCH 10/36] bdinfo: sandbox: Use the generic bd command In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504231732.98778-2-sjg@chromium.org> Sandbox has a printout of 'FB base' but this code is not used since sandbox uses driver model for everything. Move sandbox over to use the generic do_bdinfo(). Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- cmd/bdinfo.c | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index 0b903d234e..dce24b43fa 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -333,21 +333,7 @@ static int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, #elif defined(CONFIG_SANDBOX) -int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) -{ - bd_t *bd = gd->bd; - - print_bi_boot_params(bd); - print_bi_dram(bd); - print_eth_ip_addr(); - -#if defined(CONFIG_LCD) || defined(CONFIG_VIDEO) - print_num("FB base ", gd->fb_base); -#endif - print_cpu_word_size(); - - return 0; -} +#define USE_GENERIC #elif defined(CONFIG_NDS32) From patchwork Mon May 4 23:17:07 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245074 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:17:07 -0600 Subject: [PATCH 11/36] bdinfo: nds32: Use the generic bd command In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504231732.98778-3-sjg@chromium.org> This arch has none of its own info to show. Move it over to use the generic do_bdinfo(). Signed-off-by: Simon Glass Reviewed-by: Rick Chen Reviewed-by: Bin Meng --- cmd/bdinfo.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index dce24b43fa..6a2bbfb348 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -337,19 +337,7 @@ static int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, #elif defined(CONFIG_NDS32) -int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) -{ - bd_t *bd = gd->bd; - - print_num("arch_number", bd->bi_arch_number); - print_bi_boot_params(bd); - print_bi_dram(bd); - print_eth_ip_addr(); - print_baudrate(); - print_cpu_word_size(); - - return 0; -} +#define USE_GENERIC #elif defined(CONFIG_RISCV) From patchwork Mon May 4 23:17:08 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245075 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:17:08 -0600 Subject: [PATCH 12/36] bdinfo: riscv: Use the generic bd command In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504231732.98778-4-sjg@chromium.org> This arch has none of its own info to show. Move it over to use the generic do_bdinfo(). Signed-off-by: Simon Glass Reviewed-by: Rick Chen Reviewed-by: Bin Meng --- cmd/bdinfo.c | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index 6a2bbfb348..0e96dd619c 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -341,20 +341,7 @@ static int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, #elif defined(CONFIG_RISCV) -int do_bdinfo(cmd_tbl_t *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; -} +#define USE_GENERIC #elif defined(CONFIG_ARC) From patchwork Mon May 4 23:17:09 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245076 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:17:09 -0600 Subject: [PATCH 13/36] bdinfo: arm: Use the generic bd command In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504231732.98778-5-sjg@chromium.org> Unfortunately ARM has a lot of special stuff. Move it into the generic function for now, so we can have it all in one place. Add in the frame-buffer printout, since it supports driver model too. Signed-off-by: Simon Glass --- cmd/bdinfo.c | 250 +++++++++++++++++++++------------------------------ 1 file changed, 104 insertions(+), 146 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index 0e96dd619c..f07f92463c 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -170,53 +170,8 @@ static inline void __maybe_unused print_std_bdinfo(const bd_t *bd) } #if defined(CONFIG_PPC) -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[]) -{ - bd_t *bd = gd->bd; - -#ifdef DEBUG - print_num("bd address", (ulong)bd); -#endif - print_bi_mem(bd); - print_bi_flash(bd); - print_num("sramstart", bd->bi_sramstart); - print_num("sramsize", bd->bi_sramsize); -#if defined(CONFIG_MPC8xx) || defined(CONFIG_E500) - print_num("immr_base", bd->bi_immr_base); -#endif - print_num("bootflags", bd->bi_bootflags); -#if defined(CONFIG_CPM2) - print_mhz("vco", bd->bi_vco); - print_mhz("sccfreq", bd->bi_sccfreq); - print_mhz("brgfreq", bd->bi_brgfreq); -#endif - print_mhz("intfreq", bd->bi_intfreq); -#if defined(CONFIG_CPM2) - print_mhz("cpmfreq", bd->bi_cpmfreq); -#endif - print_mhz("busfreq", bd->bi_busfreq); - -#ifdef CONFIG_ENABLE_36BIT_PHYS -#ifdef CONFIG_PHYS_64BIT - puts("addressing = 36-bit\n"); -#else - puts("addressing = 32-bit\n"); -#endif -#endif - - print_eth_ip_addr(); - print_baudrate(); - print_num("relocaddr", gd->relocaddr); - board_detail(); - print_cpu_word_size(); - return 0; -} +#define USE_GENERIC #elif defined(CONFIG_NIOS2) @@ -228,35 +183,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) #elif defined(CONFIG_M68K) -int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) -{ - bd_t *bd = gd->bd; - - print_bi_mem(bd); - print_bi_flash(bd); -#if defined(CONFIG_SYS_INIT_RAM_ADDR) - print_num("sramstart", (ulong)bd->bi_sramstart); - print_num("sramsize", (ulong)bd->bi_sramsize); -#endif -#if defined(CONFIG_SYS_MBAR) - print_num("mbar", bd->bi_mbar_base); -#endif - print_mhz("cpufreq", bd->bi_intfreq); - print_mhz("busfreq", bd->bi_busfreq); -#ifdef CONFIG_PCI - print_mhz("pcifreq", bd->bi_pcifreq); -#endif -#ifdef CONFIG_EXTRA_CLOCK - print_mhz("flbfreq", bd->bi_flbfreq); - print_mhz("inpfreq", bd->bi_inpfreq); - print_mhz("vcofreq", bd->bi_vcofreq); -#endif - print_eth_ip_addr(); - print_baudrate(); - print_cpu_word_size(); - - return 0; -} +#define USE_GENERIC #elif defined(CONFIG_MIPS) @@ -264,64 +191,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) #elif defined(CONFIG_ARM) -static int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, - char * const argv[]) -{ - bd_t *bd = gd->bd; - - print_num("arch_number", bd->bi_arch_number); - print_bi_boot_params(bd); - print_bi_dram(bd); - -#ifdef CONFIG_SYS_MEM_RESERVE_SECURE - if (gd->arch.secure_ram & MEM_RESERVE_SECURE_SECURED) { - print_num("Secure ram", - gd->arch.secure_ram & MEM_RESERVE_SECURE_ADDR_MASK); - } -#endif -#ifdef CONFIG_RESV_RAM - if (gd->arch.resv_ram) - print_num("Reserved ram", gd->arch.resv_ram); -#endif -#if defined(CONFIG_CMD_NET) && !defined(CONFIG_DM_ETH) - print_eths(); -#endif - print_baudrate(); -#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) || defined(CONFIG_DM_VIDEO) - print_num("FB base ", gd->fb_base); -#endif - /* - * 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) - print_num("multi_dtb_fit", (ulong)gd->multi_dtb_fit); -#endif - if (gd->fdt_blob) - print_num("fdt_blob", (ulong)gd->fdt_blob); - print_cpu_word_size(); - - return 0; -} +#define USE_GENERIC #elif defined(CONFIG_SH) @@ -345,17 +215,7 @@ static int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, #elif defined(CONFIG_ARC) -int do_bdinfo(cmd_tbl_t *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; -} +#define USE_GENERIC #elif defined(CONFIG_XTENSA) @@ -367,10 +227,22 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) /* Temporary check for archs that use generic bdinfo. Eventually all will */ #ifdef USE_GENERIC +void __weak board_detail(void) +{ + /* Please define board_detail() for your PPC platform */ +} + int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) { - print_bi_dram(gd->bd); - print_std_bdinfo(gd->bd); + bd_t *bd = gd->bd; + +#ifdef DEBUG + print_num("bd address", (ulong)bd); +#endif + if (IS_ENABLED(CONFIG_ARM)) + print_num("arch_number", bd->bi_arch_number); + print_bi_dram(bd); + print_std_bdinfo(bd); print_num("relocaddr", gd->relocaddr); print_num("reloc off", gd->reloc_off); print_cpu_word_size(); @@ -380,6 +252,92 @@ 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); +#if defined(CONFIG_LCD) || defined(CONFIG_VIDEO) || defined(CONFIG_DM_VIDEO) + print_num("FB base ", gd->fb_base); +#endif + + /* This section is used only by ARM */ +#ifdef CONFIG_ARM +#ifdef CONFIG_SYS_MEM_RESERVE_SECURE + if (gd->arch.secure_ram & MEM_RESERVE_SECURE_SECURED) { + print_num("Secure ram", + gd->arch.secure_ram & MEM_RESERVE_SECURE_ADDR_MASK); + } +#endif +#ifdef CONFIG_RESV_RAM + if (gd->arch.resv_ram) + print_num("Reserved ram", gd->arch.resv_ram); +#endif +#if !(CONFIG_IS_ENABLED(SYS_ICACHE_OFF) && CONFIG_IS_ENABLED(SYS_DCACHE_OFF)) + print_num("TLB addr", gd->arch.tlb_addr); +#endif + print_num("irq_sp", gd->irq_sp); /* irq stack pointer */ + 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) + print_num("multi_dtb_fit", (ulong)gd->multi_dtb_fit); +#endif +#endif /* CONFIG_ARM */ + + /* This section is used only by ppc */ +#if defined(CONFIG_MPC8xx) || defined(CONFIG_E500) + print_num("immr_base", bd->bi_immr_base); +#endif + if (IS_ENABLED(CONFIG_PPC)) { + print_num("bootflags", bd->bi_bootflags); + 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) + print_mhz("cpmfreq", bd->bi_cpmfreq); + print_mhz("vco", bd->bi_vco); + print_mhz("sccfreq", bd->bi_sccfreq); + print_mhz("brgfreq", bd->bi_brgfreq); +#endif + + /* This is used by m68k and ppc */ +#if defined(CONFIG_SYS_INIT_RAM_ADDR) + print_num("sramstart", (ulong)bd->bi_sramstart); + print_num("sramsize", (ulong)bd->bi_sramsize); +#endif + if (IS_ENABLED(CONFIG_PPC) || IS_ENABLED(CONFIG_M68K)) + print_mhz("busfreq", bd->bi_busfreq); + + /* The rest are used only by m68k */ +#ifdef CONFIG_M68K +#if defined(CONFIG_SYS_MBAR) + print_num("mbar", bd->bi_mbar_base); +#endif + print_mhz("cpufreq", bd->bi_intfreq); + if (IS_ENABLED(CONFIG_PCI)) + print_mhz("pcifreq", bd->bi_pcifreq); +#ifdef CONFIG_EXTRA_CLOCK + print_mhz("flbfreq", bd->bi_flbfreq); + print_mhz("inpfreq", bd->bi_inpfreq); + print_mhz("vcofreq", bd->bi_vcofreq); +#endif +#endif return 0; } From patchwork Mon May 4 23:17:10 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245077 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:17:10 -0600 Subject: [PATCH 14/36] bdinfo: Drop the option to not use the generic 'bd' command In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504231732.98778-6-sjg@chromium.org> Now that all architectures are using the generic do_bdinfo(), drop the option to not use it. When new architectures are added, they will get at least some useful information from the generic implementation. Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- cmd/bdinfo.c | 59 ---------------------------------------------------- 1 file changed, 59 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index f07f92463c..13b4f2ebba 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -169,64 +169,6 @@ static inline void __maybe_unused print_std_bdinfo(const bd_t *bd) print_baudrate(); } -#if defined(CONFIG_PPC) - -#define USE_GENERIC - -#elif defined(CONFIG_NIOS2) - -#define USE_GENERIC - -#elif defined(CONFIG_MICROBLAZE) - -#define USE_GENERIC - -#elif defined(CONFIG_M68K) - -#define USE_GENERIC - -#elif defined(CONFIG_MIPS) - -#define USE_GENERIC - -#elif defined(CONFIG_ARM) - -#define USE_GENERIC - -#elif defined(CONFIG_SH) - -#define USE_GENERIC - -#elif defined(CONFIG_X86) - -#define USE_GENERIC - -#elif defined(CONFIG_SANDBOX) - -#define USE_GENERIC - -#elif defined(CONFIG_NDS32) - -#define USE_GENERIC - -#elif defined(CONFIG_RISCV) - -#define USE_GENERIC - -#elif defined(CONFIG_ARC) - -#define USE_GENERIC - -#elif defined(CONFIG_XTENSA) - -#define USE_GENERIC - -#else - #error "a case for this architecture does not exist!" -#endif - -/* Temporary check for archs that use generic bdinfo. Eventually all will */ -#ifdef USE_GENERIC void __weak board_detail(void) { /* Please define board_detail() for your PPC platform */ @@ -341,7 +283,6 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) return 0; } -#endif /* -------------------------------------------------------------------- */ From patchwork Mon May 4 23:17:11 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245078 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:17:11 -0600 Subject: [PATCH 15/36] bdinfo: Drop unused __maybe_unused In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504231732.98778-7-sjg@chromium.org> Some of these are not needed now. Drop them to avoid cluttering the code. Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- cmd/bdinfo.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index 13b4f2ebba..204d4c5db1 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -15,12 +15,11 @@ DECLARE_GLOBAL_DATA_PTR; -__maybe_unused void print_cpu_word_size(void) +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%0*lx\n", name, 2 * (int)sizeof(value), value); @@ -67,7 +66,6 @@ static void print_lnum(const char *name, unsigned long long value) printf("%-12s= 0x%.8llX\n", name, value); } -__maybe_unused static void print_mhz(const char *name, unsigned long hz) { char buf[32]; @@ -160,7 +158,7 @@ static inline void print_baudrate(void) #endif } -static inline void __maybe_unused print_std_bdinfo(const bd_t *bd) +static inline void print_std_bdinfo(const bd_t *bd) { print_bi_boot_params(bd); print_bi_mem(bd); From patchwork Mon May 4 23:17:12 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245079 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:17:12 -0600 Subject: [PATCH 16/36] bdinfo: microblaze: sh: nios2: Drop arch-specific flash info In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504231732.98778-8-sjg@chromium.org> The differences these architectures have are minor and not worth the extra code. Use the generic version always. Tidy up the code style by removing unnecessary tabs. Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- cmd/bdinfo.c | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index 204d4c5db1..3d16f4cc1a 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -110,20 +110,9 @@ static inline void print_bi_dram(const bd_t *bd) static inline void print_bi_flash(const bd_t *bd) { -#if defined(CONFIG_MICROBLAZE) || defined(CONFIG_SH) - print_num("flash start ", (ulong)bd->bi_flashstart); - print_num("flash size ", (ulong)bd->bi_flashsize); - print_num("flash offset ", (ulong)bd->bi_flashoffset); - -#elif defined(CONFIG_NIOS2) - print_num("flash start", (ulong)bd->bi_flashstart); - print_num("flash size", (ulong)bd->bi_flashsize); - print_num("flash offset", (ulong)bd->bi_flashoffset); -#else - print_num("flashstart", (ulong)bd->bi_flashstart); - print_num("flashsize", (ulong)bd->bi_flashsize); - print_num("flashoffset", (ulong)bd->bi_flashoffset); -#endif + print_num("flashstart", (ulong)bd->bi_flashstart); + print_num("flashsize", (ulong)bd->bi_flashsize); + print_num("flashoffset", (ulong)bd->bi_flashoffset); } static inline void print_eth_ip_addr(void) From patchwork Mon May 4 23:17:13 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245080 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:17:13 -0600 Subject: [PATCH 17/36] bdinfo: Drop unnecessary inline on functions In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504231732.98778-9-sjg@chromium.org> This serves no purpose since the compiler will inline the functions automatically. Drop use of inline in this file. Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- cmd/bdinfo.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index 3d16f4cc1a..6e5b3d997d 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -60,7 +60,6 @@ static void print_eths(void) } #endif -__maybe_unused static void print_lnum(const char *name, unsigned long long value) { printf("%-12s= 0x%.8llX\n", name, value); @@ -74,12 +73,12 @@ static void print_mhz(const char *name, unsigned long hz) } -static inline void print_bi_boot_params(const bd_t *bd) +static void print_bi_boot_params(const bd_t *bd) { print_num("boot_params", (ulong)bd->bi_boot_params); } -static inline void print_bi_mem(const bd_t *bd) +static void print_bi_mem(const bd_t *bd) { #if defined(CONFIG_SH) print_num("mem start ", (ulong)bd->bi_memstart); @@ -93,7 +92,7 @@ static inline void print_bi_mem(const bd_t *bd) #endif } -static inline void print_bi_dram(const bd_t *bd) +static void print_bi_dram(const bd_t *bd) { #ifdef CONFIG_NR_DRAM_BANKS int i; @@ -108,14 +107,14 @@ static inline void print_bi_dram(const bd_t *bd) #endif } -static inline void print_bi_flash(const bd_t *bd) +static void print_bi_flash(const bd_t *bd) { print_num("flashstart", (ulong)bd->bi_flashstart); print_num("flashsize", (ulong)bd->bi_flashsize); print_num("flashoffset", (ulong)bd->bi_flashoffset); } -static inline void print_eth_ip_addr(void) +static void print_eth_ip_addr(void) { #if defined(CONFIG_CMD_NET) print_eth(0); @@ -138,7 +137,7 @@ static inline void print_eth_ip_addr(void) #endif } -static inline void print_baudrate(void) +static void print_baudrate(void) { #if defined(CONFIG_PPC) printf("baudrate = %6u bps\n", gd->baudrate); @@ -147,7 +146,7 @@ static inline void print_baudrate(void) #endif } -static inline void print_std_bdinfo(const bd_t *bd) +static void print_std_bdinfo(const bd_t *bd) { print_bi_boot_params(bd); print_bi_mem(bd); From patchwork Mon May 4 23:17:14 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245081 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:17:14 -0600 Subject: [PATCH 18/36] bdinfo: Drop print_std_bdinfo() In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504231732.98778-10-sjg@chromium.org> Everything in this function is standard now so it serves no purpose. Move it into the generic do_bdinfo() function. Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- cmd/bdinfo.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index 6e5b3d997d..4e08d9e40a 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -146,15 +146,6 @@ static void print_baudrate(void) #endif } -static void print_std_bdinfo(const bd_t *bd) -{ - print_bi_boot_params(bd); - print_bi_mem(bd); - print_bi_flash(bd); - print_eth_ip_addr(); - print_baudrate(); -} - void __weak board_detail(void) { /* Please define board_detail() for your PPC platform */ @@ -169,7 +160,12 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) #endif if (IS_ENABLED(CONFIG_ARM)) print_num("arch_number", bd->bi_arch_number); + print_bi_boot_params(bd); print_bi_dram(bd); + print_bi_mem(bd); + print_bi_flash(bd); + print_eth_ip_addr(); + print_baudrate(); print_std_bdinfo(bd); print_num("relocaddr", gd->relocaddr); print_num("reloc off", gd->reloc_off); From patchwork Mon May 4 23:17:15 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245082 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:17:15 -0600 Subject: [PATCH 19/36] bdinfo: ppc: Drop arch-specific print_baudrate() In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504231732.98778-11-sjg@chromium.org> This function outputs the same basic info. Since the baud rate is commonly 115200 these is often no difference. Drop the arch-specific code and inline it to avoid a one-line function. Signed-off-by: Simon Glass Reviewed-by: Bin Meng Reviewed-by: Stefan Roese --- cmd/bdinfo.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index 4e08d9e40a..62eea010c5 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -137,15 +137,6 @@ static void print_eth_ip_addr(void) #endif } -static void print_baudrate(void) -{ -#if defined(CONFIG_PPC) - printf("baudrate = %6u bps\n", gd->baudrate); -#else - printf("baudrate = %u bps\n", gd->baudrate); -#endif -} - void __weak board_detail(void) { /* Please define board_detail() for your PPC platform */ @@ -165,8 +156,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) print_bi_mem(bd); print_bi_flash(bd); print_eth_ip_addr(); - print_baudrate(); - print_std_bdinfo(bd); + printf("baudrate = %u bps\n", gd->baudrate); print_num("relocaddr", gd->relocaddr); print_num("reloc off", gd->reloc_off); print_cpu_word_size(); From patchwork Mon May 4 23:17:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245083 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:17:16 -0600 Subject: [PATCH 20/36] bdinfo: sh: arc: Drop arch-specific print_bi_mem() In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504231732.98778-12-sjg@chromium.org> It isn't worth having arch-specific code for such minor output differences. In fact it is better if all archs are consistent. Drop the arch-specific code in print_bi_mem() and inline it to avoid a two-line function. Signed-off-by: Simon Glass Reviewed-by: Bin Meng Acked-by: Alexey Brodkin --- cmd/bdinfo.c | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index 62eea010c5..5ffd86e508 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -78,20 +78,6 @@ static void print_bi_boot_params(const bd_t *bd) print_num("boot_params", (ulong)bd->bi_boot_params); } -static void print_bi_mem(const bd_t *bd) -{ -#if defined(CONFIG_SH) - print_num("mem start ", (ulong)bd->bi_memstart); - print_lnum("mem size ", (u64)bd->bi_memsize); -#elif defined(CONFIG_ARC) - print_num("mem start", (ulong)bd->bi_memstart); - print_lnum("mem size", (u64)bd->bi_memsize); -#else - print_num("memstart", (ulong)bd->bi_memstart); - print_lnum("memsize", (u64)bd->bi_memsize); -#endif -} - static void print_bi_dram(const bd_t *bd) { #ifdef CONFIG_NR_DRAM_BANKS @@ -153,7 +139,8 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) print_num("arch_number", bd->bi_arch_number); print_bi_boot_params(bd); print_bi_dram(bd); - print_bi_mem(bd); + print_num("memstart", (ulong)bd->bi_memstart); + print_lnum("memsize", (u64)bd->bi_memsize); print_bi_flash(bd); print_eth_ip_addr(); printf("baudrate = %u bps\n", gd->baudrate); From patchwork Mon May 4 23:17:17 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245085 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:17:17 -0600 Subject: [PATCH 21/36] bdinfo: Drop print_bi_boot_params() In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504231732.98778-13-sjg@chromium.org> This function only has one line of code in it so inline it. Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- cmd/bdinfo.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index 5ffd86e508..b65eec332d 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -72,12 +72,6 @@ static void print_mhz(const char *name, unsigned long hz) printf("%-12s= %6s MHz\n", name, strmhz(buf, hz)); } - -static void print_bi_boot_params(const bd_t *bd) -{ - print_num("boot_params", (ulong)bd->bi_boot_params); -} - static void print_bi_dram(const bd_t *bd) { #ifdef CONFIG_NR_DRAM_BANKS @@ -137,7 +131,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) #endif if (IS_ENABLED(CONFIG_ARM)) print_num("arch_number", bd->bi_arch_number); - print_bi_boot_params(bd); + print_num("boot_params", (ulong)bd->bi_boot_params); print_bi_dram(bd); print_num("memstart", (ulong)bd->bi_memstart); print_lnum("memsize", (u64)bd->bi_memsize); From patchwork Mon May 4 23:17:18 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245084 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:17:18 -0600 Subject: [PATCH 22/36] bdinfo: Drop print_bi_flash() In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504231732.98778-14-sjg@chromium.org> This function only has three lines of code in it so inline it. Signed-off-by: Simon Glass --- cmd/bdinfo.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index b65eec332d..f22dc7a129 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -87,13 +87,6 @@ static void print_bi_dram(const bd_t *bd) #endif } -static void print_bi_flash(const bd_t *bd) -{ - print_num("flashstart", (ulong)bd->bi_flashstart); - print_num("flashsize", (ulong)bd->bi_flashsize); - print_num("flashoffset", (ulong)bd->bi_flashoffset); -} - static void print_eth_ip_addr(void) { #if defined(CONFIG_CMD_NET) @@ -135,7 +128,9 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) print_bi_dram(bd); print_num("memstart", (ulong)bd->bi_memstart); print_lnum("memsize", (u64)bd->bi_memsize); - print_bi_flash(bd); + print_num("flashstart", (ulong)bd->bi_flashstart); + print_num("flashsize", (ulong)bd->bi_flashsize); + print_num("flashoffset", (ulong)bd->bi_flashoffset); print_eth_ip_addr(); printf("baudrate = %u bps\n", gd->baudrate); print_num("relocaddr", gd->relocaddr); From patchwork Mon May 4 23:17:19 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245086 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:17:19 -0600 Subject: [PATCH 23/36] bdinfo: Drop print_cpu_word_size() In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504231732.98778-15-sjg@chromium.org> This function only has one line of code in it so inline it. Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- cmd/bdinfo.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index f22dc7a129..d0afef5b5e 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -15,11 +15,6 @@ DECLARE_GLOBAL_DATA_PTR; -void print_cpu_word_size(void) -{ - printf("%-12s= %u-bit\n", "Build", (uint)sizeof(void *) * 8); -} - static void print_num(const char *name, ulong value) { printf("%-12s= 0x%0*lx\n", name, 2 * (int)sizeof(value), value); @@ -135,7 +130,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) printf("baudrate = %u bps\n", gd->baudrate); print_num("relocaddr", gd->relocaddr); print_num("reloc off", gd->reloc_off); - print_cpu_word_size(); + printf("%-12s= %u-bit\n", "Build", (uint)sizeof(void *) * 8); #if defined(CONFIG_CMD_NET) && !defined(CONFIG_DM_ETH) print_eths(); #endif From patchwork Mon May 4 23:17:20 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245087 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:17:20 -0600 Subject: [PATCH 24/36] bdinfo: net: ppc: Drop bi_enet1addr and other similar info In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504231732.98778-16-sjg@chromium.org> These values were 'old' in 2013 so it should be safe to remove them. They are never set in U-Boot anyway, so the values will always be zero. Signed-off-by: Simon Glass Reviewed-by: Bin Meng Reviewed-by: Stefan Roese --- common/board_r.c | 16 +--------------- include/asm-generic/u-boot.h | 17 ----------------- 2 files changed, 1 insertion(+), 32 deletions(-) diff --git a/common/board_r.c b/common/board_r.c index d9015cd057..4876afba6b 100644 --- a/common/board_r.c +++ b/common/board_r.c @@ -525,21 +525,7 @@ static int initr_ethaddr(void) /* kept around for legacy kernels only ... ignore the next section */ eth_env_get_enetaddr("ethaddr", bd->bi_enetaddr); -#ifdef CONFIG_HAS_ETH1 - eth_env_get_enetaddr("eth1addr", bd->bi_enet1addr); -#endif -#ifdef CONFIG_HAS_ETH2 - eth_env_get_enetaddr("eth2addr", bd->bi_enet2addr); -#endif -#ifdef CONFIG_HAS_ETH3 - eth_env_get_enetaddr("eth3addr", bd->bi_enet3addr); -#endif -#ifdef CONFIG_HAS_ETH4 - eth_env_get_enetaddr("eth4addr", bd->bi_enet4addr); -#endif -#ifdef CONFIG_HAS_ETH5 - eth_env_get_enetaddr("eth5addr", bd->bi_enet5addr); -#endif + return 0; } #endif /* CONFIG_CMD_NET */ diff --git a/include/asm-generic/u-boot.h b/include/asm-generic/u-boot.h index be0014c3b3..0ec4522653 100644 --- a/include/asm-generic/u-boot.h +++ b/include/asm-generic/u-boot.h @@ -67,23 +67,6 @@ typedef struct bd_info { unsigned long bi_vcofreq; /* vco Freq in MHz */ unsigned long bi_flbfreq; /* Flexbus Freq in MHz */ #endif - -#ifdef CONFIG_HAS_ETH1 - unsigned char bi_enet1addr[6]; /* OLD: see README.enetaddr */ -#endif -#ifdef CONFIG_HAS_ETH2 - unsigned char bi_enet2addr[6]; /* OLD: see README.enetaddr */ -#endif -#ifdef CONFIG_HAS_ETH3 - unsigned char bi_enet3addr[6]; /* OLD: see README.enetaddr */ -#endif -#ifdef CONFIG_HAS_ETH4 - unsigned char bi_enet4addr[6]; /* OLD: see README.enetaddr */ -#endif -#ifdef CONFIG_HAS_ETH5 - unsigned char bi_enet5addr[6]; /* OLD: see README.enetaddr */ -#endif - ulong bi_arch_number; /* unique id for this board */ ulong bi_boot_params; /* where this board expects params */ #ifdef CONFIG_NR_DRAM_BANKS From patchwork Mon May 4 23:17:21 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245088 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:17:21 -0600 Subject: [PATCH 25/36] bdinfo: net: ppc: Drop prints for CONFIG_HAS_ETHn In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504231732.98778-17-sjg@chromium.org> These config options have not been migrated to Kconfig. This should be handled using driver model, iterating over the available Ethernet devices. For now, remove the code. Signed-off-by: Simon Glass Reviewed-by: Bin Meng Reviewed-by: Stefan Roese --- cmd/bdinfo.c | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index d0afef5b5e..6fa8b32389 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -86,21 +86,6 @@ static void print_eth_ip_addr(void) { #if defined(CONFIG_CMD_NET) print_eth(0); -#if defined(CONFIG_HAS_ETH1) - print_eth(1); -#endif -#if defined(CONFIG_HAS_ETH2) - print_eth(2); -#endif -#if defined(CONFIG_HAS_ETH3) - print_eth(3); -#endif -#if defined(CONFIG_HAS_ETH4) - print_eth(4); -#endif -#if defined(CONFIG_HAS_ETH5) - print_eth(5); -#endif printf("IP addr = %s\n", env_get("ipaddr")); #endif } From patchwork Mon May 4 23:17:22 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245089 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:17:22 -0600 Subject: [PATCH 26/36] bdinfo: net: Drop legacy ethernet bdinfo In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504231732.98778-18-sjg@chromium.org> This code pre-dates driver model and the migration date is nearly upon us. Pare the print_eths() function down and enable it for driver model, since it works correctly. The IP address is already printed in print_eth_ip_addr() so we can remove that. Signed-off-by: Simon Glass --- cmd/bdinfo.c | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index 6fa8b32389..ba69575fc2 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -34,26 +34,10 @@ static void print_eth(int idx) printf("%-12s= %s\n", name, val); } -#ifndef CONFIG_DM_ETH -__maybe_unused static void print_eths(void) { - struct eth_device *dev; - int i = 0; - - do { - dev = eth_get_dev_by_index(i); - if (dev) { - printf("eth%dname = %s\n", i, dev->name); - print_eth(i); - i++; - } - } while (dev); - printf("current eth = %s\n", eth_get_name()); - printf("ip_addr = %s\n", env_get("ipaddr")); } -#endif static void print_lnum(const char *name, unsigned long long value) { @@ -116,9 +100,8 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) print_num("relocaddr", gd->relocaddr); print_num("reloc off", gd->reloc_off); printf("%-12s= %u-bit\n", "Build", (uint)sizeof(void *) * 8); -#if defined(CONFIG_CMD_NET) && !defined(CONFIG_DM_ETH) - print_eths(); -#endif + if (IS_ENABLED(CONFIG_CMD_NET)) + print_eths(); print_num("fdt_blob", (ulong)gd->fdt_blob); print_num("new_fdt", (ulong)gd->new_fdt); print_num("fdt_size", (ulong)gd->fdt_size); From patchwork Mon May 4 23:17:23 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245090 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:17:23 -0600 Subject: [PATCH 27/36] bdinfo: net: Inline print_eths() In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504231732.98778-19-sjg@chromium.org> This function has only one line of code so inline it. Signed-off-by: Simon Glass --- cmd/bdinfo.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index ba69575fc2..e6237daf93 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -34,11 +34,6 @@ static void print_eth(int idx) printf("%-12s= %s\n", name, val); } -static void print_eths(void) -{ - printf("current eth = %s\n", eth_get_name()); -} - static void print_lnum(const char *name, unsigned long long value) { printf("%-12s= 0x%.8llX\n", name, value); @@ -101,7 +96,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) print_num("reloc off", gd->reloc_off); printf("%-12s= %u-bit\n", "Build", (uint)sizeof(void *) * 8); if (IS_ENABLED(CONFIG_CMD_NET)) - print_eths(); + printf("current eth = %s\n", eth_get_name()); print_num("fdt_blob", (ulong)gd->fdt_blob); print_num("new_fdt", (ulong)gd->new_fdt); print_num("fdt_size", (ulong)gd->fdt_size); From patchwork Mon May 4 23:17:24 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245091 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:17:24 -0600 Subject: [PATCH 28/36] bdinfo: net: Inline print_eth_ip_addr() In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504231732.98778-20-sjg@chromium.org> This function only has two lines of code now, so inline it. Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- cmd/bdinfo.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index e6237daf93..e30d530411 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -20,7 +20,6 @@ static void print_num(const char *name, ulong value) printf("%-12s= 0x%0*lx\n", name, 2 * (int)sizeof(value), value); } -__maybe_unused static void print_eth(int idx) { char name[10], *val; @@ -61,14 +60,6 @@ static void print_bi_dram(const bd_t *bd) #endif } -static void print_eth_ip_addr(void) -{ -#if defined(CONFIG_CMD_NET) - print_eth(0); - printf("IP addr = %s\n", env_get("ipaddr")); -#endif -} - void __weak board_detail(void) { /* Please define board_detail() for your PPC platform */ @@ -90,13 +81,15 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) print_num("flashstart", (ulong)bd->bi_flashstart); print_num("flashsize", (ulong)bd->bi_flashsize); print_num("flashoffset", (ulong)bd->bi_flashoffset); - print_eth_ip_addr(); printf("baudrate = %u bps\n", gd->baudrate); print_num("relocaddr", gd->relocaddr); print_num("reloc off", gd->reloc_off); printf("%-12s= %u-bit\n", "Build", (uint)sizeof(void *) * 8); - if (IS_ENABLED(CONFIG_CMD_NET)) + if (IS_ENABLED(CONFIG_CMD_NET)) { printf("current eth = %s\n", eth_get_name()); + print_eth(0); + printf("IP addr = %s\n", env_get("ipaddr")); + } print_num("fdt_blob", (ulong)gd->fdt_blob); print_num("new_fdt", (ulong)gd->new_fdt); print_num("fdt_size", (ulong)gd->fdt_size); From patchwork Mon May 4 23:17:25 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245092 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:17:25 -0600 Subject: [PATCH 29/36] bdinfo: Export some basic printing functions In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504231732.98778-21-sjg@chromium.org> At present the functions to print a number and a frequency are static. We want to move some of the code in here to an arch-specific file. For consistency that code should use these same functions. So export them with an appropriate name. Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- cmd/bdinfo.c | 78 +++++++++++++++++++++++++------------------------- include/init.h | 6 ++++ 2 files changed, 45 insertions(+), 39 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index e30d530411..c6096a5fd3 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -15,7 +15,7 @@ DECLARE_GLOBAL_DATA_PTR; -static void print_num(const char *name, ulong value) +void bdinfo_print_num(const char *name, ulong value) { printf("%-12s= 0x%0*lx\n", name, 2 * (int)sizeof(value), value); } @@ -38,7 +38,7 @@ static void print_lnum(const char *name, unsigned long long value) printf("%-12s= 0x%.8llX\n", name, value); } -static void print_mhz(const char *name, unsigned long hz) +void bdinfo_print_mhz(const char *name, unsigned long hz) { char buf[32]; @@ -52,9 +52,9 @@ static void print_bi_dram(const bd_t *bd) for (i = 0; i < CONFIG_NR_DRAM_BANKS; ++i) { if (bd->bi_dram[i].size) { - print_num("DRAM bank", i); - print_num("-> start", bd->bi_dram[i].start); - print_num("-> size", bd->bi_dram[i].size); + bdinfo_print_num("DRAM bank", i); + bdinfo_print_num("-> start", bd->bi_dram[i].start); + bdinfo_print_num("-> size", bd->bi_dram[i].size); } } #endif @@ -70,50 +70,50 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) bd_t *bd = gd->bd; #ifdef DEBUG - print_num("bd address", (ulong)bd); + bdinfo_print_num("bd address", (ulong)bd); #endif if (IS_ENABLED(CONFIG_ARM)) - print_num("arch_number", bd->bi_arch_number); - print_num("boot_params", (ulong)bd->bi_boot_params); + bdinfo_print_num("arch_number", bd->bi_arch_number); + bdinfo_print_num("boot_params", (ulong)bd->bi_boot_params); print_bi_dram(bd); - print_num("memstart", (ulong)bd->bi_memstart); + bdinfo_print_num("memstart", (ulong)bd->bi_memstart); print_lnum("memsize", (u64)bd->bi_memsize); - print_num("flashstart", (ulong)bd->bi_flashstart); - print_num("flashsize", (ulong)bd->bi_flashsize); - print_num("flashoffset", (ulong)bd->bi_flashoffset); + bdinfo_print_num("flashstart", (ulong)bd->bi_flashstart); + bdinfo_print_num("flashsize", (ulong)bd->bi_flashsize); + bdinfo_print_num("flashoffset", (ulong)bd->bi_flashoffset); printf("baudrate = %u bps\n", gd->baudrate); - print_num("relocaddr", gd->relocaddr); - print_num("reloc off", gd->reloc_off); + bdinfo_print_num("relocaddr", gd->relocaddr); + bdinfo_print_num("reloc off", gd->reloc_off); printf("%-12s= %u-bit\n", "Build", (uint)sizeof(void *) * 8); if (IS_ENABLED(CONFIG_CMD_NET)) { printf("current eth = %s\n", eth_get_name()); print_eth(0); printf("IP addr = %s\n", env_get("ipaddr")); } - print_num("fdt_blob", (ulong)gd->fdt_blob); - print_num("new_fdt", (ulong)gd->new_fdt); - print_num("fdt_size", (ulong)gd->fdt_size); + bdinfo_print_num("fdt_blob", (ulong)gd->fdt_blob); + bdinfo_print_num("new_fdt", (ulong)gd->new_fdt); + bdinfo_print_num("fdt_size", (ulong)gd->fdt_size); #if defined(CONFIG_LCD) || defined(CONFIG_VIDEO) || defined(CONFIG_DM_VIDEO) - print_num("FB base ", gd->fb_base); + bdinfo_print_num("FB base ", gd->fb_base); #endif /* This section is used only by ARM */ #ifdef CONFIG_ARM #ifdef CONFIG_SYS_MEM_RESERVE_SECURE if (gd->arch.secure_ram & MEM_RESERVE_SECURE_SECURED) { - print_num("Secure ram", + bdinfo_print_num("Secure ram", gd->arch.secure_ram & MEM_RESERVE_SECURE_ADDR_MASK); } #endif #ifdef CONFIG_RESV_RAM if (gd->arch.resv_ram) - print_num("Reserved ram", 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)) - print_num("TLB addr", gd->arch.tlb_addr); + bdinfo_print_num("TLB addr", gd->arch.tlb_addr); #endif - print_num("irq_sp", gd->irq_sp); /* irq stack pointer */ - print_num("sp start ", gd->start_addr_sp); + 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. @@ -131,17 +131,17 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) CONFIG_VAL(SYS_MALLOC_F_LEN)); #endif #if CONFIG_IS_ENABLED(MULTI_DTB_FIT) - print_num("multi_dtb_fit", (ulong)gd->multi_dtb_fit); + bdinfo_print_num("multi_dtb_fit", (ulong)gd->multi_dtb_fit); #endif #endif /* CONFIG_ARM */ /* This section is used only by ppc */ #if defined(CONFIG_MPC8xx) || defined(CONFIG_E500) - print_num("immr_base", bd->bi_immr_base); + bdinfo_print_num("immr_base", bd->bi_immr_base); #endif if (IS_ENABLED(CONFIG_PPC)) { - print_num("bootflags", bd->bi_bootflags); - print_mhz("intfreq", bd->bi_intfreq); + 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"); @@ -151,32 +151,32 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) board_detail(); } #if defined(CONFIG_CPM2) - print_mhz("cpmfreq", bd->bi_cpmfreq); - print_mhz("vco", bd->bi_vco); - print_mhz("sccfreq", bd->bi_sccfreq); - print_mhz("brgfreq", bd->bi_brgfreq); + 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) - print_num("sramstart", (ulong)bd->bi_sramstart); - print_num("sramsize", (ulong)bd->bi_sramsize); + bdinfo_print_num("sramstart", (ulong)bd->bi_sramstart); + bdinfo_print_num("sramsize", (ulong)bd->bi_sramsize); #endif if (IS_ENABLED(CONFIG_PPC) || IS_ENABLED(CONFIG_M68K)) - print_mhz("busfreq", bd->bi_busfreq); + bdinfo_print_mhz("busfreq", bd->bi_busfreq); /* The rest are used only by m68k */ #ifdef CONFIG_M68K #if defined(CONFIG_SYS_MBAR) print_num("mbar", bd->bi_mbar_base); #endif - print_mhz("cpufreq", bd->bi_intfreq); + bdinfo_print_mhz("cpufreq", bd->bi_intfreq); if (IS_ENABLED(CONFIG_PCI)) - print_mhz("pcifreq", bd->bi_pcifreq); + bdinfo_print_mhz("pcifreq", bd->bi_pcifreq); #ifdef CONFIG_EXTRA_CLOCK - print_mhz("flbfreq", bd->bi_flbfreq); - print_mhz("inpfreq", bd->bi_inpfreq); - print_mhz("vcofreq", bd->bi_vcofreq); + bdinfo_print_mhz("flbfreq", bd->bi_flbfreq); + bdinfo_print_mhz("inpfreq", bd->bi_inpfreq); + bdinfo_print_mhz("vcofreq", bd->bi_vcofreq); #endif #endif diff --git a/include/init.h b/include/init.h index b5a167b6ed..af4deed566 100644 --- a/include/init.h +++ b/include/init.h @@ -261,6 +261,12 @@ void relocate_code(ulong start_addr_sp, struct global_data *new_gd, __attribute__ ((noreturn)); #endif +/* Print a numeric value (for use in arch_print_bdinfo()) */ +void bdinfo_print_num(const char *name, ulong value); + +/* Print a clock speed in MHz */ +void bdinfo_print_mhz(const char *name, unsigned long hz); + #endif /* __ASSEMBLY__ */ /* Put only stuff here that the assembler can digest */ From patchwork Mon May 4 23:17:26 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245093 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:17:26 -0600 Subject: [PATCH 30/36] bdinfo: arm: Move ARM-specific info into its own file In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504231732.98778-22-sjg@chromium.org> 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 Reviewed-by: Bin Meng --- 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 +#include + +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 +} diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index c6096a5fd3..55a9244aef 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -65,6 +65,10 @@ void __weak board_detail(void) /* Please define board_detail() for your PPC platform */ } +__weak void arch_print_bdinfo(void) +{ +} + int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) { bd_t *bd = gd->bd; @@ -97,43 +101,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) bdinfo_print_num("FB base ", gd->fb_base); #endif - /* This section is used only by ARM */ -#ifdef CONFIG_ARM -#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 -#endif /* CONFIG_ARM */ + arch_print_bdinfo(); /* This section is used only by ppc */ #if defined(CONFIG_MPC8xx) || defined(CONFIG_E500) @@ -168,7 +136,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) /* The rest are used only by m68k */ #ifdef CONFIG_M68K #if defined(CONFIG_SYS_MBAR) - print_num("mbar", bd->bi_mbar_base); + bdinfo_print_num("mbar", bd->bi_mbar_base); #endif bdinfo_print_mhz("cpufreq", bd->bi_intfreq); if (IS_ENABLED(CONFIG_PCI)) diff --git a/include/init.h b/include/init.h index af4deed566..e727031514 100644 --- a/include/init.h +++ b/include/init.h @@ -267,6 +267,9 @@ void bdinfo_print_num(const char *name, ulong value); /* Print a clock speed in MHz */ void bdinfo_print_mhz(const char *name, unsigned long hz); +/* Show arch-specific information for the 'bd' command */ +void arch_print_bdinfo(void); + #endif /* __ASSEMBLY__ */ /* Put only stuff here that the assembler can digest */ From patchwork Mon May 4 23:17:27 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245094 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:17:27 -0600 Subject: [PATCH 31/36] bdinfo: ppc: Move PPC-specific info into its own file In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504231732.98778-23-sjg@chromium.org> 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 Reviewed-by: Bin Meng Reviewed-by: Stefan Roese --- 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 +#include + +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); From patchwork Mon May 4 23:17:28 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245095 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:17:28 -0600 Subject: [PATCH 32/36] bdinfo: m68k: Move m68k-specific info into its own file In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504231732.98778-24-sjg@chromium.org> We don't really want to have m68k-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 Reviewed-by: Bin Meng Tested-by: Angelo Dureghello --- arch/m68k/lib/Makefile | 1 + arch/m68k/lib/bdinfo.c | 29 +++++++++++++++++++++++++++++ cmd/bdinfo.c | 15 --------------- 3 files changed, 30 insertions(+), 15 deletions(-) create mode 100644 arch/m68k/lib/bdinfo.c diff --git a/arch/m68k/lib/Makefile b/arch/m68k/lib/Makefile index a040f40eb8..b66d66afd2 100644 --- a/arch/m68k/lib/Makefile +++ b/arch/m68k/lib/Makefile @@ -7,6 +7,7 @@ ## if the user asked for it lib-$(CONFIG_USE_PRIVATE_LIBGCC) += lshrdi3.o muldi3.o ashldi3.o +obj-y += bdinfo.o obj-$(CONFIG_CMD_BOOTM) += bootm.o obj-y += cache.o obj-y += interrupts.o diff --git a/arch/m68k/lib/bdinfo.c b/arch/m68k/lib/bdinfo.c new file mode 100644 index 0000000000..09a1abfc21 --- /dev/null +++ b/arch/m68k/lib/bdinfo.c @@ -0,0 +1,29 @@ +// 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 +#include + +DECLARE_GLOBAL_DATA_PTR; + +void arch_print_bdinfo(void) +{ + bd_t *bd = gd->bd; + +#if defined(CONFIG_SYS_MBAR) + bdinfo_print_num("mbar", bd->bi_mbar_base); +#endif + bdinfo_print_mhz("cpufreq", bd->bi_intfreq); + if (IS_ENABLED(CONFIG_PCI)) + bdinfo_print_mhz("pcifreq", bd->bi_pcifreq); +#ifdef CONFIG_EXTRA_CLOCK + bdinfo_print_mhz("flbfreq", bd->bi_flbfreq); + bdinfo_print_mhz("inpfreq", bd->bi_inpfreq); + bdinfo_print_mhz("vcofreq", bd->bi_vcofreq); +#endif +} diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index 570022052c..f0afdb153f 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -106,21 +106,6 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) if (IS_ENABLED(CONFIG_PPC) || IS_ENABLED(CONFIG_M68K)) bdinfo_print_mhz("busfreq", bd->bi_busfreq); - /* The rest are used only by m68k */ -#ifdef CONFIG_M68K -#if defined(CONFIG_SYS_MBAR) - bdinfo_print_num("mbar", bd->bi_mbar_base); -#endif - bdinfo_print_mhz("cpufreq", bd->bi_intfreq); - if (IS_ENABLED(CONFIG_PCI)) - bdinfo_print_mhz("pcifreq", bd->bi_pcifreq); -#ifdef CONFIG_EXTRA_CLOCK - bdinfo_print_mhz("flbfreq", bd->bi_flbfreq); - bdinfo_print_mhz("inpfreq", bd->bi_inpfreq); - bdinfo_print_mhz("vcofreq", bd->bi_vcofreq); -#endif -#endif - return 0; } From patchwork Mon May 4 23:17:29 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245096 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:17:29 -0600 Subject: [PATCH 33/36] bdinfo: m68k: ppc: Move arch-specific code from bdinfo In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504231732.98778-25-sjg@chromium.org> We don't have an easy way to share these three lines of code with two architectures. We also want to make it clear that this code is actually arch-specific. So just duplicate it in each arch-specific file. Signed-off-by: Simon Glass Reviewed-by: Bin Meng Reviewed-by: Stefan Roese --- arch/m68k/lib/bdinfo.c | 5 +++++ arch/powerpc/lib/bdinfo.c | 5 +++++ cmd/bdinfo.c | 8 -------- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/arch/m68k/lib/bdinfo.c b/arch/m68k/lib/bdinfo.c index 09a1abfc21..971c47c306 100644 --- a/arch/m68k/lib/bdinfo.c +++ b/arch/m68k/lib/bdinfo.c @@ -15,6 +15,11 @@ void arch_print_bdinfo(void) { bd_t *bd = gd->bd; +#if defined(CONFIG_SYS_INIT_RAM_ADDR) + bdinfo_print_num("sramstart", (ulong)bd->bi_sramstart); + bdinfo_print_num("sramsize", (ulong)bd->bi_sramsize); +#endif + bdinfo_print_mhz("busfreq", bd->bi_busfreq); #if defined(CONFIG_SYS_MBAR) bdinfo_print_num("mbar", bd->bi_mbar_base); #endif diff --git a/arch/powerpc/lib/bdinfo.c b/arch/powerpc/lib/bdinfo.c index da09bb276f..d8c64155f0 100644 --- a/arch/powerpc/lib/bdinfo.c +++ b/arch/powerpc/lib/bdinfo.c @@ -20,6 +20,11 @@ void arch_print_bdinfo(void) { bd_t *bd = gd->bd; +#if defined(CONFIG_SYS_INIT_RAM_ADDR) + bdinfo_print_num("sramstart", (ulong)bd->bi_sramstart); + bdinfo_print_num("sramsize", (ulong)bd->bi_sramsize); +#endif + bdinfo_print_mhz("busfreq", bd->bi_busfreq); #if defined(CONFIG_MPC8xx) || defined(CONFIG_E500) bdinfo_print_num("immr_base", bd->bi_immr_base); #endif diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index f0afdb153f..aea7cf904a 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -98,14 +98,6 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) arch_print_bdinfo(); - /* This is used by m68k and ppc */ -#if defined(CONFIG_SYS_INIT_RAM_ADDR) - bdinfo_print_num("sramstart", (ulong)bd->bi_sramstart); - bdinfo_print_num("sramsize", (ulong)bd->bi_sramsize); -#endif - if (IS_ENABLED(CONFIG_PPC) || IS_ENABLED(CONFIG_M68K)) - bdinfo_print_mhz("busfreq", bd->bi_busfreq); - return 0; } From patchwork Mon May 4 23:17:30 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245097 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:17:30 -0600 Subject: [PATCH 34/36] bdinfo: Update the file comments In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504231732.98778-26-sjg@chromium.org> Update the comment at the top of the file to indicate what this file does. Also drop the line at the bottom and an unnecessary header include. Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- cmd/bdinfo.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index aea7cf904a..8c498d4290 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -1,17 +1,15 @@ // SPDX-License-Identifier: GPL-2.0+ /* + * Implements the 'bd' command to show board information + * * (C) Copyright 2003 * Wolfgang Denk, DENX Software Engineering, wd at denx.de. */ -/* - * Boot support - */ #include #include #include #include -#include DECLARE_GLOBAL_DATA_PTR; @@ -101,8 +99,6 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) return 0; } -/* -------------------------------------------------------------------- */ - U_BOOT_CMD( bdinfo, 1, 1, do_bdinfo, "print Board Info structure", From patchwork Mon May 4 23:17:31 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245098 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:17:31 -0600 Subject: [PATCH 35/36] bdinfo: dm: Update fb_base when using driver model In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504231732.98778-27-sjg@chromium.org> Update this value with the address of a video device so that it shows with the 'bd' command. It would be better to obtain the address from the uclass by looking in struct video_uc_platdata for each device. We can move over to that once DM_VIDEO migration is complete. Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- drivers/video/video-uclass.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c index 3d658e61d7..e7229cefaf 100644 --- a/drivers/video/video-uclass.c +++ b/drivers/video/video-uclass.c @@ -82,6 +82,7 @@ int video_reserve(ulong *addrp) __func__, size, *addrp, dev->name); } gd->video_bottom = *addrp; + gd->fb_base = *addrp; debug("Video frame buffers from %lx to %lx\n", gd->video_bottom, gd->video_top); From patchwork Mon May 4 23:17:32 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245099 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Mon, 4 May 2020 17:17:32 -0600 Subject: [PATCH 36/36] bdinfo: x86: vesa: Update fb_base to the correct value In-Reply-To: <20200504231732.98778-1-sjg@chromium.org> References: <20200504231732.98778-1-sjg@chromium.org> Message-ID: <20200504231732.98778-28-sjg@chromium.org> Set this value in global_data so that it is reported correctly on x86 boards. In fact, space is allocated for the frame buffer even though it is not used. The FSP picks the address itself, which is why the current value is wrong. Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- arch/x86/lib/fsp/fsp_graphics.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/arch/x86/lib/fsp/fsp_graphics.c b/arch/x86/lib/fsp/fsp_graphics.c index 98b762209f..46fb907dc3 100644 --- a/arch/x86/lib/fsp/fsp_graphics.c +++ b/arch/x86/lib/fsp/fsp_graphics.c @@ -96,6 +96,7 @@ static int fsp_video_probe(struct udevice *dev) * For IGD, it seems to be always on BAR2. */ vesa->phys_base_ptr = dm_pci_read_bar32(dev, 2); + gd->fb_base = vesa->phys_base_ptr; ret = vbe_setup_video_priv(vesa, uc_priv, plat); if (ret) @@ -104,8 +105,8 @@ static int fsp_video_probe(struct udevice *dev) mtrr_add_request(MTRR_TYPE_WRCOMB, vesa->phys_base_ptr, 256 << 20); mtrr_commit(true); - printf("%dx%dx%d\n", uc_priv->xsize, uc_priv->ysize, - vesa->bits_per_pixel); + printf("%dx%dx%d @ %x\n", uc_priv->xsize, uc_priv->ysize, + vesa->bits_per_pixel, vesa->phys_base_ptr); return 0;