* [PATCH 0/3] cmd: ufetch improvements
@ 2024-12-05 18:35 J. Neuschäfer via B4 Relay
2024-12-05 18:35 ` [PATCH 1/3] cmd: ufetch: Fix type mismatch on 32-bit J. Neuschäfer via B4 Relay
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: J. Neuschäfer via B4 Relay @ 2024-12-05 18:35 UTC (permalink / raw)
To: Caleb Connolly, Tom Rini; +Cc: u-boot, J. Neuschäfer
Following the recent addition of the "ufetch" command, this patchset
improves it in a few ways.
Signed-off-by: J. Neuschäfer <j.ne@posteo.net>
---
J. Neuschäfer (3):
cmd: ufetch: Fix type mismatch on 32-bit
cmd: Allow building ufetch without CONFIG_BLK
cmd: ufetch: Show CPU architecture under "CPU"
cmd/Kconfig | 1 -
cmd/ufetch.c | 14 +++++++++-----
2 files changed, 9 insertions(+), 6 deletions(-)
---
base-commit: e5c1c2c6d9da79d874015f6d33fa2c7a34899733
change-id: 20241203-ufetch-326e771b26ad
Best regards,
--
J. Neuschäfer <j.ne@posteo.net>
^ permalink raw reply [flat|nested] 10+ messages in thread* [PATCH 1/3] cmd: ufetch: Fix type mismatch on 32-bit 2024-12-05 18:35 [PATCH 0/3] cmd: ufetch improvements J. Neuschäfer via B4 Relay @ 2024-12-05 18:35 ` J. Neuschäfer via B4 Relay 2024-12-09 14:58 ` Caleb Connolly 2024-12-05 18:35 ` [PATCH 2/3] cmd: Allow building ufetch without CONFIG_BLK J. Neuschäfer via B4 Relay 2024-12-05 18:35 ` [PATCH 3/3] cmd: ufetch: Show CPU architecture under "CPU" J. Neuschäfer via B4 Relay 2 siblings, 1 reply; 10+ messages in thread From: J. Neuschäfer via B4 Relay @ 2024-12-05 18:35 UTC (permalink / raw) To: Caleb Connolly, Tom Rini; +Cc: u-boot, J. Neuschäfer From: "J. Neuschäfer" <j.ne@posteo.net> On 32-bit architectures, LAST_LINE (_LAST_LINE - 1UL) is 64 bits long, but size_t (from ARRAY_SIZE(...)) is 32 bits. This results in a warning because the max() macro expects the same type on both sides: cmd/ufetch.c: In function ‘do_ufetch’: include/linux/kernel.h:179:24: warning: comparison of distinct pointer types lacks a cast [-Wcompare-distinct-pointer-types] 179 | (void) (&_max1 == &_max2); \ | ^~ cmd/ufetch.c:92:25: note: in expansion of macro ‘max’ 92 | int num_lines = max(LAST_LINE + 1, ARRAY_SIZE(logo_lines)); | ^~~ Fix this by casting LAST_LINE to size_t. Signed-off-by: J. Neuschäfer <j.ne@posteo.net> --- cmd/ufetch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/ufetch.c b/cmd/ufetch.c index 0b825d7e8c75f3b18933d3e3f77e5f40f2c7b658..5f3ef847b268dc384271fc6774720e5fd2337157 100644 --- a/cmd/ufetch.c +++ b/cmd/ufetch.c @@ -89,7 +89,7 @@ enum output_lines { static int do_ufetch(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { - int num_lines = max(LAST_LINE + 1, ARRAY_SIZE(logo_lines)); + int num_lines = max((size_t)LAST_LINE + 1, ARRAY_SIZE(logo_lines)); const char *model, *compatible; char *ipaddr; int n_cmds, n_cpus = 0, ret, compatlen; -- 2.45.2 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 1/3] cmd: ufetch: Fix type mismatch on 32-bit 2024-12-05 18:35 ` [PATCH 1/3] cmd: ufetch: Fix type mismatch on 32-bit J. Neuschäfer via B4 Relay @ 2024-12-09 14:58 ` Caleb Connolly 0 siblings, 0 replies; 10+ messages in thread From: Caleb Connolly @ 2024-12-09 14:58 UTC (permalink / raw) To: j.ne, Tom Rini; +Cc: u-boot Hi J, Thanks for the patch! On 05/12/2024 19:35, J. Neuschäfer via B4 Relay wrote: > From: "J. Neuschäfer" <j.ne@posteo.net> > > On 32-bit architectures, LAST_LINE (_LAST_LINE - 1UL) is 64 bits long, > but size_t (from ARRAY_SIZE(...)) is 32 bits. This results in a warning > because the max() macro expects the same type on both sides: > > cmd/ufetch.c: In function ‘do_ufetch’: > include/linux/kernel.h:179:24: warning: comparison of distinct pointer types lacks a cast [-Wcompare-distinct-pointer-types] > 179 | (void) (&_max1 == &_max2); \ > | ^~ > cmd/ufetch.c:92:25: note: in expansion of macro ‘max’ > 92 | int num_lines = max(LAST_LINE + 1, ARRAY_SIZE(logo_lines)); > | ^~~ > > Fix this by casting LAST_LINE to size_t. > > Signed-off-by: J. Neuschäfer <j.ne@posteo.net> Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org> > --- > cmd/ufetch.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/cmd/ufetch.c b/cmd/ufetch.c > index 0b825d7e8c75f3b18933d3e3f77e5f40f2c7b658..5f3ef847b268dc384271fc6774720e5fd2337157 100644 > --- a/cmd/ufetch.c > +++ b/cmd/ufetch.c > @@ -89,7 +89,7 @@ enum output_lines { > static int do_ufetch(struct cmd_tbl *cmdtp, int flag, int argc, > char *const argv[]) > { > - int num_lines = max(LAST_LINE + 1, ARRAY_SIZE(logo_lines)); > + int num_lines = max((size_t)LAST_LINE + 1, ARRAY_SIZE(logo_lines)); > const char *model, *compatible; > char *ipaddr; > int n_cmds, n_cpus = 0, ret, compatlen; > -- // Caleb (they/them) ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 2/3] cmd: Allow building ufetch without CONFIG_BLK 2024-12-05 18:35 [PATCH 0/3] cmd: ufetch improvements J. Neuschäfer via B4 Relay 2024-12-05 18:35 ` [PATCH 1/3] cmd: ufetch: Fix type mismatch on 32-bit J. Neuschäfer via B4 Relay @ 2024-12-05 18:35 ` J. Neuschäfer via B4 Relay 2024-12-09 15:04 ` Caleb Connolly 2024-12-05 18:35 ` [PATCH 3/3] cmd: ufetch: Show CPU architecture under "CPU" J. Neuschäfer via B4 Relay 2 siblings, 1 reply; 10+ messages in thread From: J. Neuschäfer via B4 Relay @ 2024-12-05 18:35 UTC (permalink / raw) To: Caleb Connolly, Tom Rini; +Cc: u-boot, J. Neuschäfer From: "J. Neuschäfer" <j.ne@posteo.net> The ufetch command is still quite useful on systems without block device support; remove the CONFIG_BLK dependency and make sure the code compiles/works with and without CONFIG_BLK. Signed-off-by: J. Neuschäfer <j.ne@posteo.net> --- cmd/Kconfig | 1 - cmd/ufetch.c | 10 +++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/cmd/Kconfig b/cmd/Kconfig index 4936a70f3ef16ddb093ceafa12d011ca1b89e95c..547fd2a91f7883e2ae5982897ec93c4483d67852 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -178,7 +178,6 @@ config CMD_CPU config CMD_UFETCH bool "U-Boot fetch" - depends on BLK help Fetch utility for U-Boot (akin to neofetch). Prints information about U-Boot and the board it is running on in a pleasing format. diff --git a/cmd/ufetch.c b/cmd/ufetch.c index 5f3ef847b268dc384271fc6774720e5fd2337157..7aed0b447bda104b837d37c6adcbb21b80237aba 100644 --- a/cmd/ufetch.c +++ b/cmd/ufetch.c @@ -92,11 +92,9 @@ static int do_ufetch(struct cmd_tbl *cmdtp, int flag, int argc, int num_lines = max((size_t)LAST_LINE + 1, ARRAY_SIZE(logo_lines)); const char *model, *compatible; char *ipaddr; - int n_cmds, n_cpus = 0, ret, compatlen; + int n_cmds, n_cpus = 0, compatlen; size_t size; ofnode np; - struct udevice *dev; - struct blk_desc *desc; bool skip_ascii = false; if (argc > 1 && strcmp(argv[1], "-n") == 0) { @@ -200,6 +198,11 @@ static int do_ufetch(struct cmd_tbl *cmdtp, int flag, int argc, break; case STORAGE: default: +#ifdef CONFIG_BLK + struct udevice *dev; + struct blk_desc *desc; + int ret; + ret = uclass_find_device_by_seq(UCLASS_BLK, line - STORAGE, &dev); if (!ret && dev) { desc = dev_get_uclass_plat(dev); @@ -213,6 +216,7 @@ static int do_ufetch(struct cmd_tbl *cmdtp, int flag, int argc, } else if (ret == -ENODEV && (skip_ascii || line > ARRAY_SIZE(logo_lines))) { break; } +#endif printf("\n"); } } -- 2.45.2 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 2/3] cmd: Allow building ufetch without CONFIG_BLK 2024-12-05 18:35 ` [PATCH 2/3] cmd: Allow building ufetch without CONFIG_BLK J. Neuschäfer via B4 Relay @ 2024-12-09 15:04 ` Caleb Connolly 2024-12-09 16:51 ` J. Neuschäfer 0 siblings, 1 reply; 10+ messages in thread From: Caleb Connolly @ 2024-12-09 15:04 UTC (permalink / raw) To: j.ne, Tom Rini; +Cc: u-boot On 05/12/2024 19:35, J. Neuschäfer via B4 Relay wrote: > From: "J. Neuschäfer" <j.ne@posteo.net> > > The ufetch command is still quite useful on systems without block > device support; remove the CONFIG_BLK dependency and make sure the code > compiles/works with and without CONFIG_BLK. > > Signed-off-by: J. Neuschäfer <j.ne@posteo.net> Small nit below, but with that: Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org> > --- > cmd/Kconfig | 1 - > cmd/ufetch.c | 10 +++++++--- > 2 files changed, 7 insertions(+), 4 deletions(-) > > diff --git a/cmd/Kconfig b/cmd/Kconfig > index 4936a70f3ef16ddb093ceafa12d011ca1b89e95c..547fd2a91f7883e2ae5982897ec93c4483d67852 100644 > --- a/cmd/Kconfig > +++ b/cmd/Kconfig > @@ -178,7 +178,6 @@ config CMD_CPU > > config CMD_UFETCH > bool "U-Boot fetch" > - depends on BLK > help > Fetch utility for U-Boot (akin to neofetch). Prints information > about U-Boot and the board it is running on in a pleasing format. > diff --git a/cmd/ufetch.c b/cmd/ufetch.c > index 5f3ef847b268dc384271fc6774720e5fd2337157..7aed0b447bda104b837d37c6adcbb21b80237aba 100644 > --- a/cmd/ufetch.c > +++ b/cmd/ufetch.c > @@ -92,11 +92,9 @@ static int do_ufetch(struct cmd_tbl *cmdtp, int flag, int argc, > int num_lines = max((size_t)LAST_LINE + 1, ARRAY_SIZE(logo_lines)); > const char *model, *compatible; > char *ipaddr; > - int n_cmds, n_cpus = 0, ret, compatlen; > + int n_cmds, n_cpus = 0, compatlen; > size_t size; > ofnode np; > - struct udevice *dev; > - struct blk_desc *desc; > bool skip_ascii = false; > > if (argc > 1 && strcmp(argv[1], "-n") == 0) { > @@ -200,6 +198,11 @@ static int do_ufetch(struct cmd_tbl *cmdtp, int flag, int argc, > break; > case STORAGE: > default: > +#ifdef CONFIG_BLK > + struct udevice *dev; At least without the #ifdef, I see a warning "A label followed by a declaration is a C23 extension". So to be on the safe side please put this section in a block: default: { ... } Kind regards, > + struct blk_desc *desc; > + int ret; > + > ret = uclass_find_device_by_seq(UCLASS_BLK, line - STORAGE, &dev); > if (!ret && dev) { > desc = dev_get_uclass_plat(dev); > @@ -213,6 +216,7 @@ static int do_ufetch(struct cmd_tbl *cmdtp, int flag, int argc, > } else if (ret == -ENODEV && (skip_ascii || line > ARRAY_SIZE(logo_lines))) { > break; > } > +#endif > printf("\n"); > } > } > -- // Caleb (they/them) ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/3] cmd: Allow building ufetch without CONFIG_BLK 2024-12-09 15:04 ` Caleb Connolly @ 2024-12-09 16:51 ` J. Neuschäfer 2024-12-09 16:55 ` Caleb Connolly 0 siblings, 1 reply; 10+ messages in thread From: J. Neuschäfer @ 2024-12-09 16:51 UTC (permalink / raw) To: Caleb Connolly; +Cc: j.ne, Tom Rini, u-boot On Mon, Dec 09, 2024 at 04:04:50PM +0100, Caleb Connolly wrote: > On 05/12/2024 19:35, J. Neuschäfer via B4 Relay wrote: > > From: "J. Neuschäfer" <j.ne@posteo.net> > > > > The ufetch command is still quite useful on systems without block > > device support; remove the CONFIG_BLK dependency and make sure the code > > compiles/works with and without CONFIG_BLK. > > > > Signed-off-by: J. Neuschäfer <j.ne@posteo.net> > > Small nit below, but with that: > > Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org> > > --- [...] > > default: > > +#ifdef CONFIG_BLK > > + struct udevice *dev; > > At least without the #ifdef, I see a warning "A label followed by a > declaration is a C23 extension". Ah, I wondered about this. Apparently I have a compiler that uses C23 as the default, so I didn't see the warning. I'll fix it in the next revision. > So to be on the safe side please put this section in a block: > > default: { An alternative that I prefer because it's a bit less intrusive with regards to indentation, is to use a semicolon: default:; /* code with the same indentation as usual */ /* and no closing brace to remember */ What do you think? -- jn ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/3] cmd: Allow building ufetch without CONFIG_BLK 2024-12-09 16:51 ` J. Neuschäfer @ 2024-12-09 16:55 ` Caleb Connolly 0 siblings, 0 replies; 10+ messages in thread From: Caleb Connolly @ 2024-12-09 16:55 UTC (permalink / raw) To: J. Neuschäfer; +Cc: Tom Rini, u-boot On 09/12/2024 17:51, J. Neuschäfer wrote: > On Mon, Dec 09, 2024 at 04:04:50PM +0100, Caleb Connolly wrote: >> On 05/12/2024 19:35, J. Neuschäfer via B4 Relay wrote: >>> From: "J. Neuschäfer" <j.ne@posteo.net> >>> >>> The ufetch command is still quite useful on systems without block >>> device support; remove the CONFIG_BLK dependency and make sure the code >>> compiles/works with and without CONFIG_BLK. >>> >>> Signed-off-by: J. Neuschäfer <j.ne@posteo.net> >> >> Small nit below, but with that: >> >> Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org> >>> --- > [...] >>> default: >>> +#ifdef CONFIG_BLK >>> + struct udevice *dev; >> >> At least without the #ifdef, I see a warning "A label followed by a >> declaration is a C23 extension". > > Ah, I wondered about this. Apparently I have a compiler that uses C23 as > the default, so I didn't see the warning. I'll fix it in the next revision. > >> So to be on the safe side please put this section in a block: >> >> default: { > > An alternative that I prefer because it's a bit less intrusive with > regards to indentation, is to use a semicolon: > > default:; > /* code with the same indentation as usual */ > /* and no closing brace to remember */ Hmm, haven't seen that one before. fwiw I think you can leave the indentation as-is and just add the brackets. Kind regards, > > What do you think? > > > -- jn -- // Caleb (they/them) ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 3/3] cmd: ufetch: Show CPU architecture under "CPU" 2024-12-05 18:35 [PATCH 0/3] cmd: ufetch improvements J. Neuschäfer via B4 Relay 2024-12-05 18:35 ` [PATCH 1/3] cmd: ufetch: Fix type mismatch on 32-bit J. Neuschäfer via B4 Relay 2024-12-05 18:35 ` [PATCH 2/3] cmd: Allow building ufetch without CONFIG_BLK J. Neuschäfer via B4 Relay @ 2024-12-05 18:35 ` J. Neuschäfer via B4 Relay 2024-12-09 15:09 ` Caleb Connolly 2 siblings, 1 reply; 10+ messages in thread From: J. Neuschäfer via B4 Relay @ 2024-12-05 18:35 UTC (permalink / raw) To: Caleb Connolly, Tom Rini; +Cc: u-boot, J. Neuschäfer From: "J. Neuschäfer" <j.ne@posteo.net> When looking at ufetch output it isn't immediately obvious which CPU architecture the presented board has. This patch therefore adds the CPU architecture string (for example "powerpc") to the "CPU:" line. Signed-off-by: J. Neuschäfer <j.ne@posteo.net> --- cmd/ufetch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/ufetch.c b/cmd/ufetch.c index 7aed0b447bda104b837d37c6adcbb21b80237aba..0ee50bfb606aa2223072c63cd46b3a70ef5449fd 100644 --- a/cmd/ufetch.c +++ b/cmd/ufetch.c @@ -188,7 +188,7 @@ static int do_ufetch(struct cmd_tbl *cmdtp, int flag, int argc, if (ofnode_name_eq(np, "cpu")) n_cpus++; } - printf("CPU:" RESET " %d (1 in use)\n", n_cpus); + printf("CPU: " RESET CONFIG_SYS_ARCH ", %d (1 in use)\n", n_cpus); break; case MEMORY: for (int j = 0; j < CONFIG_NR_DRAM_BANKS && gd->bd->bi_dram[j].size; j++) -- 2.45.2 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 3/3] cmd: ufetch: Show CPU architecture under "CPU" 2024-12-05 18:35 ` [PATCH 3/3] cmd: ufetch: Show CPU architecture under "CPU" J. Neuschäfer via B4 Relay @ 2024-12-09 15:09 ` Caleb Connolly 2024-12-09 16:58 ` J. Neuschäfer 0 siblings, 1 reply; 10+ messages in thread From: Caleb Connolly @ 2024-12-09 15:09 UTC (permalink / raw) To: j.ne, Tom Rini; +Cc: u-boot Thanks for the patch! On 05/12/2024 19:35, J. Neuschäfer via B4 Relay wrote: > From: "J. Neuschäfer" <j.ne@posteo.net> > > When looking at ufetch output it isn't immediately obvious which CPU > architecture the presented board has. This patch therefore adds the CPU > architecture string (for example "powerpc") to the "CPU:" line. It would be nice to have the proper fancy name, but this is an improvement nonetheless. > > Signed-off-by: J. Neuschäfer <j.ne@posteo.net> > --- > cmd/ufetch.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/cmd/ufetch.c b/cmd/ufetch.c > index 7aed0b447bda104b837d37c6adcbb21b80237aba..0ee50bfb606aa2223072c63cd46b3a70ef5449fd 100644 > --- a/cmd/ufetch.c > +++ b/cmd/ufetch.c > @@ -188,7 +188,7 @@ static int do_ufetch(struct cmd_tbl *cmdtp, int flag, int argc, > if (ofnode_name_eq(np, "cpu")) > n_cpus++; > } > - printf("CPU:" RESET " %d (1 in use)\n", n_cpus); > + printf("CPU: " RESET CONFIG_SYS_ARCH ", %d (1 in use)\n", n_cpus); This will read like CPU: arm 4 (1 in use) which is a bit hard to parse at a glance. How about CPU: arm [4 cores] or some other separator between SYS_ARCH and the core count? Kind regards, > break; > case MEMORY: > for (int j = 0; j < CONFIG_NR_DRAM_BANKS && gd->bd->bi_dram[j].size; j++) > -- // Caleb (they/them) ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 3/3] cmd: ufetch: Show CPU architecture under "CPU" 2024-12-09 15:09 ` Caleb Connolly @ 2024-12-09 16:58 ` J. Neuschäfer 0 siblings, 0 replies; 10+ messages in thread From: J. Neuschäfer @ 2024-12-09 16:58 UTC (permalink / raw) To: Caleb Connolly; +Cc: j.ne, Tom Rini, u-boot On Mon, Dec 09, 2024 at 04:09:30PM +0100, Caleb Connolly wrote: > Thanks for the patch! > > On 05/12/2024 19:35, J. Neuschäfer via B4 Relay wrote: > > From: "J. Neuschäfer" <j.ne@posteo.net> > > > > When looking at ufetch output it isn't immediately obvious which CPU > > architecture the presented board has. This patch therefore adds the CPU > > architecture string (for example "powerpc") to the "CPU:" line. > > It would be nice to have the proper fancy name, but this is an > improvement nonetheless. True > > > > Signed-off-by: J. Neuschäfer <j.ne@posteo.net> > > --- [...] > > - printf("CPU:" RESET " %d (1 in use)\n", n_cpus); > > + printf("CPU: " RESET CONFIG_SYS_ARCH ", %d (1 in use)\n", n_cpus); > > This will read like > > CPU: arm 4 (1 in use) > > which is a bit hard to parse at a glance. How about > > CPU: arm [4 cores] > > or some other separator between SYS_ARCH and the core count? Ah yup, good idea. I also struggled with reading this line as it was; "4 cores" or similar makes it clear what the number means. -- jn ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2024-12-09 18:13 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-12-05 18:35 [PATCH 0/3] cmd: ufetch improvements J. Neuschäfer via B4 Relay 2024-12-05 18:35 ` [PATCH 1/3] cmd: ufetch: Fix type mismatch on 32-bit J. Neuschäfer via B4 Relay 2024-12-09 14:58 ` Caleb Connolly 2024-12-05 18:35 ` [PATCH 2/3] cmd: Allow building ufetch without CONFIG_BLK J. Neuschäfer via B4 Relay 2024-12-09 15:04 ` Caleb Connolly 2024-12-09 16:51 ` J. Neuschäfer 2024-12-09 16:55 ` Caleb Connolly 2024-12-05 18:35 ` [PATCH 3/3] cmd: ufetch: Show CPU architecture under "CPU" J. Neuschäfer via B4 Relay 2024-12-09 15:09 ` Caleb Connolly 2024-12-09 16:58 ` J. Neuschäfer
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox