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

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(-)
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

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

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

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

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!
participants (5)
-
Heiko Schocher
-
Heinrich Schuchardt
-
Simon Glass
-
Stefan Roese
-
Tom Rini