diff options
| author | Frank Wunderlich <[email protected]> | 2026-02-04 19:40:42 +0100 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2026-02-07 11:51:33 -0600 |
| commit | e202eca183b0f1d6747b934482dc6249abdd742b (patch) | |
| tree | c4369e3a05c594dae1ae1feeb04e2faa3d82047c /cmd | |
| parent | 6b2d05748cf3cd6ba417a96c00602b0122e10af6 (diff) | |
cmd: mem: add command for getting ram size for use in scripts
Add a command for getting detected ram size with possibility to
assign it to an environment variable.
example usage:
BPI-R4> memsize
4096 MiB
BPI-R4> memsize memsz
BPI-R4> printenv memsz
memsz=4096
BPI-R4>
board with 8GB ram:
BPI-R4> memsize
8192 MiB
BPI-R4> memsize memsz
BPI-R4> printenv memsz
memsz=8192
BPI-R4>
Signed-off-by: Frank Wunderlich <[email protected]>
Diffstat (limited to 'cmd')
| -rw-r--r-- | cmd/Kconfig | 7 | ||||
| -rw-r--r-- | cmd/meminfo.c | 25 |
2 files changed, 32 insertions, 0 deletions
diff --git a/cmd/Kconfig b/cmd/Kconfig index 595ac49da41..f12fcf6631e 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -940,6 +940,13 @@ config CMD_MEMINFO_MAP See doc/usage/cmd/meminfo.rst for more information. +config CMD_MEMSIZE + bool "memsize" + depends on CMD_MEMINFO + help + Get RAM via command for use in scripts. Print or assign decimal value + in MiB to environment variable. + config CMD_MEMORY bool "md, mm, nm, mw, cp, cmp, base, loop" default y diff --git a/cmd/meminfo.c b/cmd/meminfo.c index aa3b5bafe17..e7db9d065f5 100644 --- a/cmd/meminfo.c +++ b/cmd/meminfo.c @@ -8,10 +8,12 @@ #include <bootstage.h> #include <command.h> #include <display_options.h> +#include <env.h> #include <lmb.h> #include <malloc.h> #include <mapmem.h> #include <asm/global_data.h> +#include <linux/sizes.h> DECLARE_GLOBAL_DATA_PTR; @@ -98,8 +100,31 @@ static int do_meminfo(struct cmd_tbl *cmdtp, int flag, int argc, return 0; } +#ifdef CONFIG_CMD_MEMSIZE +static int do_mem_size(struct cmd_tbl *cmdtp, int flag, int argc, + char *const argv[]) +{ + u64 memsize = gd->ram_size / SZ_1M; + + if (argc > 1) + return env_set_ulong(argv[1], memsize); + else + printf("%lld MiB\n", memsize); + + return 0; +} +#endif /* CONFIG_CMD_MEMSIZE */ + U_BOOT_CMD( meminfo, 1, 1, do_meminfo, "display memory information", "" ); + +#ifdef CONFIG_CMD_MEMSIZE +U_BOOT_CMD( + memsize, 2, 1, do_mem_size, + "get detected ram size in MiB, optional set env variable with value", + "[envvar]" +); +#endif /* CONFIG_CMD_MEMSIZE */ |
