diff mbox series

[1/1] cmd: bdinfo: cleanup phys_addr_t output

Message ID 20200728155633.96301-1-xypron.glpk@gmx.de
State Accepted
Commit 5ce2776ae63326807bc504fcfed24997c2a03bb2
Delegated to: Tom Rini
Headers show
Series [1/1] cmd: bdinfo: cleanup phys_addr_t output | expand

Commit Message

Heinrich Schuchardt July 28, 2020, 3:56 p.m. UTC
We currently print the memory size with at least 8 hexadecimal digits.
This creates a ragged output on 64 bit boards, e.g. on a Kendryte K210:

DRAM bank   = 0x0000000000000002
-> start    = 0x0000000080600000
-> size     = 0x0000000000200000
memstart    = 0x0000000000000000
memsize     = 0x00000000
flashstart  = 0x0000000000000000
flashsize   = 0x0000000000000000
flashoffset = 0x0000000000000000

All other numbers are printed with the number of digits needed for the type
ulong. So use this value as minimum number of digits (precision) for
printing physical addresses.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
---
 cmd/bdinfo.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

--
2.27.0

Comments

Heiko Schocher July 29, 2020, 3:56 a.m. UTC | #1
Hello Heinrich,

Am 28.07.2020 um 17:56 schrieb Heinrich Schuchardt:
> We currently print the memory size with at least 8 hexadecimal digits.
> This creates a ragged output on 64 bit boards, e.g. on a Kendryte K210:
> 
> DRAM bank   = 0x0000000000000002
> -> start    = 0x0000000080600000
> -> size     = 0x0000000000200000
> memstart    = 0x0000000000000000
> memsize     = 0x00000000
> flashstart  = 0x0000000000000000
> flashsize   = 0x0000000000000000
> flashoffset = 0x0000000000000000
> 
> All other numbers are printed with the number of digits needed for the type
> ulong. So use this value as minimum number of digits (precision) for
> printing physical addresses.
> 
> Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
> ---
>   cmd/bdinfo.c | 7 ++++---
>   1 file changed, 4 insertions(+), 3 deletions(-)

Reviewed-by: Heiko Schocher <hs@denx.de>

bye,
Heiko
Stefan Roese July 30, 2020, 8:12 a.m. UTC | #2
On 28.07.20 17:56, Heinrich Schuchardt wrote:
> We currently print the memory size with at least 8 hexadecimal digits.
> This creates a ragged output on 64 bit boards, e.g. on a Kendryte K210:
> 
> DRAM bank   = 0x0000000000000002
> -> start    = 0x0000000080600000
> -> size     = 0x0000000000200000
> memstart    = 0x0000000000000000
> memsize     = 0x00000000
> flashstart  = 0x0000000000000000
> flashsize   = 0x0000000000000000
> flashoffset = 0x0000000000000000
> 
> All other numbers are printed with the number of digits needed for the type
> ulong. So use this value as minimum number of digits (precision) for
> printing physical addresses.
> 
> Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>

Reviewed-by: Stefan Roese <sr@denx.de>

Thanks,
Stefan

> ---
>   cmd/bdinfo.c | 7 ++++---
>   1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c
> index 8b2c105e77..519f5de146 100644
> --- a/cmd/bdinfo.c
> +++ b/cmd/bdinfo.c
> @@ -33,9 +33,10 @@ static void print_eth(int idx)
>   	printf("%-12s= %s\n", name, val);
>   }
> 
> -static void print_lnum(const char *name, unsigned long long value)
> +static void print_phys_addr(const char *name, phys_addr_t value)
>   {
> -	printf("%-12s= 0x%.8llX\n", name, value);
> +	printf("%-12s= 0x%.*llx\n", name, 2 * (int)sizeof(ulong),
> +	       (unsigned long long)value);
>   }
> 
>   void bdinfo_print_mhz(const char *name, unsigned long hz)
> @@ -74,7 +75,7 @@ int do_bdinfo(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
>   	bdinfo_print_num("boot_params", (ulong)bd->bi_boot_params);
>   	print_bi_dram(bd);
>   	bdinfo_print_num("memstart", (ulong)bd->bi_memstart);
> -	print_lnum("memsize", (u64)bd->bi_memsize);
> +	print_phys_addr("memsize", bd->bi_memsize);
>   	bdinfo_print_num("flashstart", (ulong)bd->bi_flashstart);
>   	bdinfo_print_num("flashsize", (ulong)bd->bi_flashsize);
>   	bdinfo_print_num("flashoffset", (ulong)bd->bi_flashoffset);
> --
> 2.27.0
> 


Viele Grüße,
Stefan
Simon Glass Aug. 4, 2020, 2 a.m. UTC | #3
On Tue, 28 Jul 2020 at 09:56, Heinrich Schuchardt <xypron.glpk@gmx.de> wrote:
>
> We currently print the memory size with at least 8 hexadecimal digits.
> This creates a ragged output on 64 bit boards, e.g. on a Kendryte K210:
>
> DRAM bank   = 0x0000000000000002
> -> start    = 0x0000000080600000
> -> size     = 0x0000000000200000
> memstart    = 0x0000000000000000
> memsize     = 0x00000000
> flashstart  = 0x0000000000000000
> flashsize   = 0x0000000000000000
> flashoffset = 0x0000000000000000
>
> All other numbers are printed with the number of digits needed for the type
> ulong. So use this value as minimum number of digits (precision) for
> printing physical addresses.
>
> Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
> ---
>  cmd/bdinfo.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)

Reviewed-by: Simon Glass <sjg@chromium.org>
Tom Rini Aug. 5, 2020, 8:28 p.m. UTC | #4
On Tue, Jul 28, 2020 at 05:56:33PM +0200, Heinrich Schuchardt wrote:

> We currently print the memory size with at least 8 hexadecimal digits.
> This creates a ragged output on 64 bit boards, e.g. on a Kendryte K210:
> 
> DRAM bank   = 0x0000000000000002
> -> start    = 0x0000000080600000
> -> size     = 0x0000000000200000
> memstart    = 0x0000000000000000
> memsize     = 0x00000000
> flashstart  = 0x0000000000000000
> flashsize   = 0x0000000000000000
> flashoffset = 0x0000000000000000
> 
> All other numbers are printed with the number of digits needed for the type
> ulong. So use this value as minimum number of digits (precision) for
> printing physical addresses.
> 
> Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
> Reviewed-by: Heiko Schocher <hs@denx.de>
> Reviewed-by: Stefan Roese <sr@denx.de>
> Reviewed-by: Simon Glass <sjg@chromium.org>

Applied to u-boot/master, thanks!
diff mbox series

Patch

diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c
index 8b2c105e77..519f5de146 100644
--- a/cmd/bdinfo.c
+++ b/cmd/bdinfo.c
@@ -33,9 +33,10 @@  static void print_eth(int idx)
 	printf("%-12s= %s\n", name, val);
 }

-static void print_lnum(const char *name, unsigned long long value)
+static void print_phys_addr(const char *name, phys_addr_t value)
 {
-	printf("%-12s= 0x%.8llX\n", name, value);
+	printf("%-12s= 0x%.*llx\n", name, 2 * (int)sizeof(ulong),
+	       (unsigned long long)value);
 }

 void bdinfo_print_mhz(const char *name, unsigned long hz)
@@ -74,7 +75,7 @@  int do_bdinfo(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
 	bdinfo_print_num("boot_params", (ulong)bd->bi_boot_params);
 	print_bi_dram(bd);
 	bdinfo_print_num("memstart", (ulong)bd->bi_memstart);
-	print_lnum("memsize", (u64)bd->bi_memsize);
+	print_phys_addr("memsize", bd->bi_memsize);
 	bdinfo_print_num("flashstart", (ulong)bd->bi_flashstart);
 	bdinfo_print_num("flashsize", (ulong)bd->bi_flashsize);
 	bdinfo_print_num("flashoffset", (ulong)bd->bi_flashoffset);