mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-02 09:46:37 +03:00
Merge patch series "Add command for getting ramsize in scripts"
Frank Wunderlich <frank-w@public-files.de> says: Add command for getting ramsize in scripts Link: https://lore.kernel.org/r/20260204184045.111808-1-linux@fw-web.de
This commit is contained in:
@@ -940,6 +940,14 @@ config CMD_MEMINFO_MAP
|
||||
|
||||
See doc/usage/cmd/meminfo.rst for more information.
|
||||
|
||||
config CMD_MEMSIZE
|
||||
bool "memsize"
|
||||
default y if SANDBOX
|
||||
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
|
||||
|
||||
@@ -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 */
|
||||
|
||||
43
doc/usage/cmd/memsize.rst
Normal file
43
doc/usage/cmd/memsize.rst
Normal file
@@ -0,0 +1,43 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0+:
|
||||
|
||||
.. index::
|
||||
single: memsize (command)
|
||||
|
||||
memsize command
|
||||
===============
|
||||
|
||||
Synopsis
|
||||
--------
|
||||
|
||||
::
|
||||
|
||||
memsize [name]
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
The memsize command shows the amount of RAM in MiB in decimal notation.
|
||||
Optionally same value can be assigned to an environment variable.
|
||||
|
||||
Examples
|
||||
--------
|
||||
|
||||
This first example shows printing of ram size:
|
||||
|
||||
::
|
||||
|
||||
=> memsize
|
||||
8192 MiB
|
||||
|
||||
This second example shows assign ram size to environment variable:
|
||||
|
||||
::
|
||||
|
||||
=> memsize memsz
|
||||
=> printenv memsz
|
||||
memsz=8192
|
||||
|
||||
Return value
|
||||
------------
|
||||
|
||||
The return value is always 0 except error happens on setting environment variable.
|
||||
@@ -7,6 +7,7 @@
|
||||
*/
|
||||
|
||||
#include <dm/test.h>
|
||||
#include <env.h>
|
||||
#include <test/cmd.h>
|
||||
#include <test/ut.h>
|
||||
|
||||
@@ -49,4 +50,23 @@ static int cmd_test_meminfo(struct unit_test_state *uts)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
CMD_TEST(cmd_test_meminfo, UTF_CONSOLE);
|
||||
|
||||
/* Test 'memsize' command */
|
||||
#ifdef CONFIG_CMD_MEMSIZE
|
||||
static int cmd_test_memsize(struct unit_test_state *uts)
|
||||
{
|
||||
ut_assertok(run_command("memsize", 0));
|
||||
ut_assert_nextline("256 MiB");
|
||||
ut_assert_console_end();
|
||||
|
||||
ut_assertok(run_command("memsize memsz", 0));
|
||||
ut_asserteq_str("256", env_get("memsz"));
|
||||
ut_assert_console_end();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
CMD_TEST(cmd_test_memsize, UTF_CONSOLE);
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user