From patchwork Sun May 10 20:16: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: 245443 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:24 -0600 Subject: [PATCH v2 01/39] tbs2910: Drop the 'bd' command In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510201702.196031-2-sjg@chromium.org> This board is very close to its limit. Drop this command before the bd refactoring, which increases the size slightly on one toolchain. Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- Changes in v2: - Add a new patch to drop the 'bd' command for tbs2910 configs/tbs2910_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/configs/tbs2910_defconfig b/configs/tbs2910_defconfig index 2ff0e160f7..2b4f062426 100644 --- a/configs/tbs2910_defconfig +++ b/configs/tbs2910_defconfig @@ -18,6 +18,7 @@ CONFIG_BOUNCE_BUFFER=y CONFIG_BOARD_EARLY_INIT_F=y CONFIG_HUSH_PARSER=y CONFIG_SYS_PROMPT="Matrix U-Boot> " +# CONFIG_CMD_BDI is not set CONFIG_CMD_BOOTZ=y # CONFIG_BOOTM_PLAN9 is not set # CONFIG_BOOTM_RTEMS is not set From patchwork Sun May 10 20:16: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: 245444 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:25 -0600 Subject: [PATCH v2 02/39] bdinfo: nds32: Use generic bd_info In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510141257.v2.2.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 --- Changes in v2: None 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 Sun May 10 20:16: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: 245445 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:26 -0600 Subject: [PATCH v2 03/39] bdinfo: riscv: Use generic bd_info In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510141257.v2.3.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 --- Changes in v2: None 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 Sun May 10 20:16: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: 245447 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:27 -0600 Subject: [PATCH v2 04/39] bdinfo: m68k: Drop bd_info->bi_ipbfreq In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510141257.v2.4.I67233302b9b68fd34aed68cc8e14101ce640a6fb@changeid> This field is not used anymore. Drop it. Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- Changes in v2: None 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 Sun May 10 20:16: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: 245446 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:28 -0600 Subject: [PATCH v2 05/39] bdinfo: xtensa: Create a generic do_bdinfo for xtensa In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510141257.v2.5.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 --- Changes in v2: None 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 Sun May 10 20:16: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: 245448 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:29 -0600 Subject: [PATCH v2 06/39] bdinfo: mips: Use the generic bd command In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510141257.v2.6.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 --- Changes in v2: None 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 Sun May 10 20:16: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: 245449 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:30 -0600 Subject: [PATCH v2 07/39] bdinfo: nios2: Use the generic bd command In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510141257.v2.7.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 --- Changes in v2: None 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 Sun May 10 20:16: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: 245450 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:31 -0600 Subject: [PATCH v2 08/39] bdinfo: microblaze: Use the generic bd command In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510141257.v2.8.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. Note that FDT information is shown for all boards, since they should be using device tree by now. Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- Changes in v2: None 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 Sun May 10 20:16: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: 245451 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:32 -0600 Subject: [PATCH v2 09/39] bdinfo: sh: Use the generic bd command In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510141257.v2.9.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 --- Changes in v2: None 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 Sun May 10 20:16:33 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245452 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:33 -0600 Subject: [PATCH v2 10/39] bdinfo: x86: Use the generic bd command In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510141257.v2.10.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 --- Changes in v2: None 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 Sun May 10 20:16:34 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245453 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:34 -0600 Subject: [PATCH v2 11/39] bdinfo: sandbox: Use the generic bd command In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510201702.196031-3-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 --- Changes in v2: None 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 Sun May 10 20:16:35 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245454 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:35 -0600 Subject: [PATCH v2 12/39] bdinfo: nds32: Use the generic bd command In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510201702.196031-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 --- Changes in v2: None 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 Sun May 10 20:16:36 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245455 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:36 -0600 Subject: [PATCH v2 13/39] bdinfo: riscv: Use the generic bd command In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510201702.196031-5-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 --- Changes in v2: None 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 Sun May 10 20:16:37 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245456 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:37 -0600 Subject: [PATCH v2 14/39] bdinfo: powerpc: Use the generic bd command In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510201702.196031-6-sjg@chromium.org> Unfortunately PowerPC has a lot of special stuff. Move it into the generic function for now, so we can have it all in one place. Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- Changes in v2: - Fix up inadvertent merge of PowerPC/ARM/m68k/arc patches cmd/bdinfo.c | 89 ++++++++++++++++++++++++---------------------------- 1 file changed, 41 insertions(+), 48 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index 0e96dd619c..05e4a05b77 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) @@ -367,10 +322,20 @@ 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 + print_bi_dram(bd); + print_std_bdinfo(bd); print_num("relocaddr", gd->relocaddr); print_num("reloc off", gd->reloc_off); print_cpu_word_size(); @@ -381,6 +346,34 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) print_num("new_fdt", (ulong)gd->new_fdt); print_num("fdt_size", (ulong)gd->fdt_size); + /* 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 + print_mhz("busfreq", bd->bi_busfreq); + 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 + +#if defined(CONFIG_SYS_INIT_RAM_ADDR) + print_num("sramstart", (ulong)bd->bi_sramstart); + print_num("sramsize", (ulong)bd->bi_sramsize); +#endif + return 0; } #endif From patchwork Sun May 10 20:16:38 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245457 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:38 -0600 Subject: [PATCH v2 15/39] bdinfo: m68k: Use the generic bd command In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510201702.196031-7-sjg@chromium.org> Unfortunately m68k has a lot of special stuff. Move it into the generic function for now, so we can have it all in one place. Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- Changes in v2: - Fix up inadvertent merge of PowerPC/ARM/m68k/arc patches cmd/bdinfo.c | 49 +++++++++++++++++++------------------------------ 1 file changed, 19 insertions(+), 30 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index 05e4a05b77..646d8807bd 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -183,35 +183,7 @@ static inline void __maybe_unused print_std_bdinfo(const bd_t *bd) #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) @@ -359,7 +331,6 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) else puts("addressing = 32-bit\n"); #endif - print_mhz("busfreq", bd->bi_busfreq); board_detail(); } #if defined(CONFIG_CPM2) @@ -369,9 +340,27 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) 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 Sun May 10 20:16:39 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245458 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:39 -0600 Subject: [PATCH v2 16/39] bdinfo: arm: Use the generic bd command In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510201702.196031-8-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. Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- Changes in v2: - Fix up inadvertent merge of PowerPC/ARM/m68k/arc patches cmd/bdinfo.c | 102 ++++++++++++++++++++++----------------------------- 1 file changed, 44 insertions(+), 58 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index 646d8807bd..9cf3da4725 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -191,64 +191,7 @@ static inline void __maybe_unused print_std_bdinfo(const bd_t *bd) #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) @@ -306,6 +249,8 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) #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); @@ -317,6 +262,47 @@ 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) From patchwork Sun May 10 20:16:40 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245459 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:40 -0600 Subject: [PATCH v2 17/39] bdinfo: arc: Use the generic bd command In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510201702.196031-9-sjg@chromium.org> There is nothing new in the arc 'bd' command beyond what is already there. Switch it over to use the generic code. Signed-off-by: Simon Glass Acked-by: Alexey Brodkin Reviewed-by: Bin Meng --- Changes in v2: - Fix up inadvertent merge of PowerPC/ARM/m68k/arc patches cmd/bdinfo.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index 9cf3da4725..f07f92463c 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -215,17 +215,7 @@ static inline void __maybe_unused print_std_bdinfo(const bd_t *bd) #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) From patchwork Sun May 10 20:16:41 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245460 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:41 -0600 Subject: [PATCH v2 18/39] bdinfo: Drop the option to not use the generic 'bd' command In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510201702.196031-10-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 --- Changes in v2: None 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 Sun May 10 20:16:42 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245461 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:42 -0600 Subject: [PATCH v2 19/39] bdinfo: Drop unused __maybe_unused In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510201702.196031-11-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 --- Changes in v2: - Drop __maybe_unused on print_lnum() too cmd/bdinfo.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index 13b4f2ebba..d41547ec6e 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); @@ -61,13 +60,11 @@ 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); } -__maybe_unused static void print_mhz(const char *name, unsigned long hz) { char buf[32]; @@ -160,7 +157,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 Sun May 10 20:16:43 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245462 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:43 -0600 Subject: [PATCH v2 20/39] bdinfo: microblaze: sh: nios2: Drop arch-specific flash info In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510201702.196031-12-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 --- Changes in v2: None cmd/bdinfo.c | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index d41547ec6e..25397c2e95 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -109,20 +109,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 Sun May 10 20:16:44 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245463 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:44 -0600 Subject: [PATCH v2 21/39] bdinfo: Drop unnecessary inline on functions In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510201702.196031-13-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 --- Changes in v2: - Move __maybe_unused on print_lnum() to the early patch cmd/bdinfo.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index 25397c2e95..6e5b3d997d 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -73,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); @@ -92,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; @@ -107,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); @@ -137,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); @@ -146,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 Sun May 10 20:16:45 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245464 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:45 -0600 Subject: [PATCH v2 22/39] bdinfo: Drop print_std_bdinfo() In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510201702.196031-14-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 --- Changes in v2: None cmd/bdinfo.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index 6e5b3d997d..e8e20f4155 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,8 +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_std_bdinfo(bd); + print_bi_mem(bd); + print_bi_flash(bd); + print_eth_ip_addr(); + print_baudrate(); print_num("relocaddr", gd->relocaddr); print_num("reloc off", gd->reloc_off); print_cpu_word_size(); From patchwork Sun May 10 20:16:46 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245465 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:46 -0600 Subject: [PATCH v2 23/39] bdinfo: ppc: Drop arch-specific print_baudrate() In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510201702.196031-15-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 --- Changes in v2: None cmd/bdinfo.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index e8e20f4155..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,7 +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(); + 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 Sun May 10 20:16:47 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245466 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:47 -0600 Subject: [PATCH v2 24/39] bdinfo: sh: arc: Drop arch-specific print_bi_mem() In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510201702.196031-16-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 --- Changes in v2: None 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 Sun May 10 20:16:48 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245467 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:48 -0600 Subject: [PATCH v2 25/39] bdinfo: Drop print_bi_boot_params() In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510201702.196031-17-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 --- Changes in v2: None 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 Sun May 10 20:16:49 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245468 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:49 -0600 Subject: [PATCH v2 26/39] bdinfo: Drop print_bi_flash() In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510201702.196031-18-sjg@chromium.org> This function only has three lines of code in it so inline it. This helps to put all the code in one place for future partitioning. Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- Changes in v2: - Update commit message with an extra motivation 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 Sun May 10 20:16:50 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245469 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:50 -0600 Subject: [PATCH v2 27/39] bdinfo: Drop print_cpu_word_size() In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510201702.196031-19-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 --- Changes in v2: None 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 Sun May 10 20:16:51 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245470 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:51 -0600 Subject: [PATCH v2 28/39] bdinfo: net: ppc: Drop bi_enet1addr and other similar info In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510201702.196031-20-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 --- Changes in v2: None 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 Sun May 10 20:16:52 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245471 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:52 -0600 Subject: [PATCH v2 29/39] bdinfo: net: ppc: Drop prints for CONFIG_HAS_ETHn In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510201702.196031-21-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 --- Changes in v2: None 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 Sun May 10 20:16:53 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245472 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:53 -0600 Subject: [PATCH v2 30/39] bdinfo: net: Drop legacy ethernet bdinfo In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510201702.196031-22-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. Since this results in a one-line print_eths() function, inline it. Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- Changes in v2: - Squash in the next patch to inline print_eths() cmd/bdinfo.c | 26 ++------------------------ 1 file changed, 2 insertions(+), 24 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index 6fa8b32389..e6237daf93 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -34,27 +34,6 @@ 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) { printf("%-12s= 0x%.8llX\n", name, value); @@ -116,9 +95,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)) + 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 Sun May 10 20:16:54 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245473 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:54 -0600 Subject: [PATCH v2 31/39] bdinfo: net: Inline print_eth_ip_addr() In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510201702.196031-23-sjg@chromium.org> This function only has two lines of code now, so inline it. Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- Changes in v2: None 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 Sun May 10 20:16:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245474 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:55 -0600 Subject: [PATCH v2 32/39] bdinfo: Export some basic printing functions In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510201702.196031-24-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 --- Changes in v2: None 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 Sun May 10 20:16:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 245476 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:56 -0600 Subject: [PATCH v2 33/39] bdinfo: arm: Move ARM-specific info into its own file In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510201702.196031-25-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 --- Changes in v2: - Leave MULTI_DTB_FIT in the generic file as it is not really ARM-specific - Move ARM's bi_arch_number over to ARM-specific code as well arch/arm/lib/Makefile | 1 + arch/arm/lib/bdinfo.c | 51 +++++++++++++++++++++++++++++++++++++++++++ cmd/bdinfo.c | 45 ++++++-------------------------------- include/init.h | 3 +++ 4 files changed, 62 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..81c9291584 --- /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) +{ + 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 +} diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index c6096a5fd3..05e2da098e 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; @@ -72,8 +76,6 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) #ifdef DEBUG bdinfo_print_num("bd address", (ulong)bd); #endif - if (IS_ENABLED(CONFIG_ARM)) - bdinfo_print_num("arch_number", bd->bi_arch_number); bdinfo_print_num("boot_params", (ulong)bd->bi_boot_params); print_bi_dram(bd); bdinfo_print_num("memstart", (ulong)bd->bi_memstart); @@ -96,44 +98,11 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) #if defined(CONFIG_LCD) || defined(CONFIG_VIDEO) || defined(CONFIG_DM_VIDEO) 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 +137,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 Sun May 10 20: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: 245475 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:57 -0600 Subject: [PATCH v2 34/39] bdinfo: ppc: Move PPC-specific info into its own file In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510201702.196031-26-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 --- Changes in v2: None 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 05e2da098e..97748c012e 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) { } @@ -104,28 +99,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 Sun May 10 20: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: 245477 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:58 -0600 Subject: [PATCH v2 35/39] bdinfo: m68k: Move m68k-specific info into its own file In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510201702.196031-27-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 Tested-by: Angelo Dureghello --- Changes in v2: None 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 97748c012e..b31ea66b74 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -107,21 +107,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 Sun May 10 20: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: 245478 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:16:59 -0600 Subject: [PATCH v2 36/39] bdinfo: m68k: ppc: Move arch-specific code from bdinfo In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510201702.196031-28-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 --- Changes in v2: None 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 b31ea66b74..e8c800c30c 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -99,14 +99,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 Sun May 10 20: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: 245479 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:17:00 -0600 Subject: [PATCH v2 37/39] bdinfo: Update the file comments In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510201702.196031-29-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 --- Changes in v2: None cmd/bdinfo.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index e8c800c30c..66d78fd74d 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; @@ -102,8 +100,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 Sun May 10 20: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: 245480 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:17:01 -0600 Subject: [PATCH v2 38/39] bdinfo: dm: Update fb_base when using driver model In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510201702.196031-30-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 --- Changes in v2: None 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 Sun May 10 20: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: 245481 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Sun, 10 May 2020 14:17:02 -0600 Subject: [PATCH v2 39/39] bdinfo: x86: vesa: Update fb_base to the correct value In-Reply-To: <20200510201702.196031-1-sjg@chromium.org> References: <20200510201702.196031-1-sjg@chromium.org> Message-ID: <20200510201702.196031-31-sjg@chromium.org> Set this value in global_data so that it is reported correctly on x86 boards. In fact, U-Boot allocates space for the frame buffer even though it is not used. Then the FSP picks the address itself (e.g. 0xb0000000). So the value set by U-Boot (high in memory with everything else that is relocated), is not actually the correct value. Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- Changes in v2: - Update the commit message to explain the address more 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;