uboot-mediatek: migrate memsize cmd to the upstream implementation

The upstream repository accepted a newer patch revision[1].

[1] https://github.com/u-boot/u-boot/commit/e202eca183b0f1d6747b934482dc6249abdd742b
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
This commit is contained in:
Shiji Yang
2026-06-09 20:12:56 +08:00
committed by Daniel Golle
parent e96713670c
commit b2501d1f16
2 changed files with 16 additions and 129 deletions
@@ -1,6 +1,6 @@
--- /dev/null
+++ b/configs/mt7988a_bananapi_bpi-r4-emmc_defconfig
@@ -0,0 +1,144 @@
@@ -0,0 +1,145 @@
+CONFIG_ARM=y
+CONFIG_ARM_SMCCC=y
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y
@@ -44,6 +44,8 @@
+CONFIG_CMD_ASKENV=y
+CONFIG_CMD_ERASEENV=y
+CONFIG_CMD_ENV_FLAGS=y
+CONFIG_CMD_MEMINFO=y
+CONFIG_CMD_MEMSIZE=y
+CONFIG_CMD_RNG=y
+CONFIG_CMD_STRINGS=y
+CONFIG_CMD_DM=y
@@ -77,7 +79,6 @@
+CONFIG_CMD_FS_UUID=y
+CONFIG_CMD_UBI=y
+CONFIG_CMD_UBI_RENAME=y
+CONFIG_CMD_MEMSIZE=y
+CONFIG_OF_EMBED=y
+CONFIG_ENV_OVERWRITE=y
+CONFIG_ENV_IS_IN_MMC=y
@@ -293,7 +294,7 @@
+CONFIG_HEXDUMP=y
--- /dev/null
+++ b/configs/mt7988a_bananapi_bpi-r4-snand_defconfig
@@ -0,0 +1,144 @@
@@ -0,0 +1,145 @@
+CONFIG_ARM=y
+CONFIG_ARM_SMCCC=y
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y
@@ -334,6 +335,8 @@
+CONFIG_CMD_ASKENV=y
+CONFIG_CMD_ERASEENV=y
+CONFIG_CMD_ENV_FLAGS=y
+CONFIG_CMD_MEMINFO=y
+CONFIG_CMD_MEMSIZE=y
+CONFIG_CMD_RNG=y
+CONFIG_CMD_STRINGS=y
+CONFIG_CMD_DM=y
@@ -367,7 +370,6 @@
+CONFIG_CMD_FS_UUID=y
+CONFIG_CMD_UBI=y
+CONFIG_CMD_UBI_RENAME=y
+CONFIG_CMD_MEMSIZE=y
+CONFIG_OF_EMBED=y
+CONFIG_ENV_OVERWRITE=y
+CONFIG_ENV_IS_IN_UBI=y
@@ -575,7 +577,7 @@
+emmc_write_recovery=part start mmc 0 $part_recovery part_addr && part size mmc 0 $part_recovery part_size && run mmc_write_vol
+_init_env=setenv _init_env ; run ubi_create_env ; saveenv ; saveenv
+_firstboot=setenv _firstboot ; run _select_bl2 ; run _switch_to_menu ; run _init_env ; run boot_first
+_select_bl2=setenv _select_bl2 ; msize g ramsize; if test ${ramsize} = 8; then setenv bootfile_bl2 openwrt-mediatek-filogic-bananapi_bpi-r4-snand-preloader-8g.bin;fi
+_select_bl2=setenv _select_bl2 ; memsize ramsize; if test ${ramsize} = 8192; then setenv bootfile_bl2 openwrt-mediatek-filogic-bananapi_bpi-r4-snand-preloader-8g.bin;fi
+_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title
+_bootmenu_update_title=setenv _bootmenu_update_title ; setenv bootmenu_title "$bootmenu_title $ver"
--- /dev/null
@@ -636,7 +638,7 @@
+emmc_write_recovery=part start mmc 0 $part_recovery part_addr && part size mmc 0 $part_recovery part_size && run mmc_write_vol
+_init_env=setenv _init_env ; setenv _create_env ; saveenv ; saveenv
+_firstboot=setenv _firstboot ; run _select_bl2 ; run _switch_to_menu ; run _init_env ; run boot_first
+_select_bl2=setenv _select_bl2 ; msize g ramsize; if test ${ramsize} = 8; then setenv bootfile_bl2 openwrt-mediatek-filogic-bananapi_bpi-r4-emmc-preloader-8g.bin;fi
+_select_bl2=setenv _select_bl2 ; memsize ramsize; if test ${ramsize} = 8192; then setenv bootfile_bl2 openwrt-mediatek-filogic-bananapi_bpi-r4-emmc-preloader-8g.bin;fi
+_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title
+_bootmenu_update_title=setenv _bootmenu_update_title ; setenv bootmenu_title "$bootmenu_title $ver"
--- /dev/null
@@ -889,7 +891,7 @@
+};
--- /dev/null
+++ b/configs/mt7988a_bananapi_bpi-r4-poe-emmc_defconfig
@@ -0,0 +1,144 @@
@@ -0,0 +1,145 @@
+CONFIG_ARM=y
+CONFIG_ARM_SMCCC=y
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y
@@ -933,6 +935,8 @@
+CONFIG_CMD_ASKENV=y
+CONFIG_CMD_ERASEENV=y
+CONFIG_CMD_ENV_FLAGS=y
+CONFIG_CMD_MEMINFO=y
+CONFIG_CMD_MEMSIZE=y
+CONFIG_CMD_RNG=y
+CONFIG_CMD_STRINGS=y
+CONFIG_CMD_DM=y
@@ -966,7 +970,6 @@
+CONFIG_CMD_FS_UUID=y
+CONFIG_CMD_UBI=y
+CONFIG_CMD_UBI_RENAME=y
+CONFIG_CMD_MEMSIZE=y
+CONFIG_OF_EMBED=y
+CONFIG_ENV_OVERWRITE=y
+CONFIG_ENV_IS_IN_MMC=y
@@ -1182,7 +1185,7 @@
+CONFIG_HEXDUMP=y
--- /dev/null
+++ b/configs/mt7988a_bananapi_bpi-r4-poe-snand_defconfig
@@ -0,0 +1,144 @@
@@ -0,0 +1,145 @@
+CONFIG_ARM=y
+CONFIG_ARM_SMCCC=y
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y
@@ -1223,6 +1226,8 @@
+CONFIG_CMD_ASKENV=y
+CONFIG_CMD_ERASEENV=y
+CONFIG_CMD_ENV_FLAGS=y
+CONFIG_CMD_MEMINFO=y
+CONFIG_CMD_MEMSIZE=y
+CONFIG_CMD_RNG=y
+CONFIG_CMD_STRINGS=y
+CONFIG_CMD_DM=y
@@ -1256,7 +1261,6 @@
+CONFIG_CMD_FS_UUID=y
+CONFIG_CMD_UBI=y
+CONFIG_CMD_UBI_RENAME=y
+CONFIG_CMD_MEMSIZE=y
+CONFIG_OF_EMBED=y
+CONFIG_ENV_OVERWRITE=y
+CONFIG_ENV_IS_IN_UBI=y
@@ -1385,7 +1389,7 @@
+emmc_write_recovery=part start mmc 0 $part_recovery part_addr && part size mmc 0 $part_recovery part_size && run mmc_write_vol
+_init_env=setenv _init_env ; setenv _create_env ; saveenv ; saveenv
+_firstboot=setenv _firstboot ; run _select_bl2 ; run _switch_to_menu ; run _init_env ; run boot_first
+_select_bl2=setenv _select_bl2 ; msize g ramsize ; if test ${ramsize} = 8 ; then setenv bootfile_bl2 openwrt-mediatek-filogic-bananapi_bpi-r4-poe-emmc-preloader-8g.bin ; fi
+_select_bl2=setenv _select_bl2 ; memsize ramsize ; if test ${ramsize} = 8192 ; then setenv bootfile_bl2 openwrt-mediatek-filogic-bananapi_bpi-r4-poe-emmc-preloader-8g.bin ; fi
+_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title
+_bootmenu_update_title=setenv _bootmenu_update_title ; setenv bootmenu_title "$bootmenu_title $ver"
--- /dev/null
@@ -1525,6 +1529,6 @@
+emmc_write_recovery=part start mmc 0 $part_recovery part_addr && part size mmc 0 $part_recovery part_size && run mmc_write_vol
+_init_env=setenv _init_env ; run ubi_create_env ; saveenv ; saveenv
+_firstboot=setenv _firstboot ; run _select_bl2 ; run _switch_to_menu ; run _init_env ; run boot_first
+_select_bl2=setenv _select_bl2 ; msize g ramsize; if test ${ramsize} = 8; then setenv bootfile_bl2 openwrt-mediatek-filogic-bananapi_bpi-r4-poe-snand-preloader-8g.bin ; fi
+_select_bl2=setenv _select_bl2 ; memsize ramsize; if test ${ramsize} = 8192; then setenv bootfile_bl2 openwrt-mediatek-filogic-bananapi_bpi-r4-poe-snand-preloader-8g.bin ; fi
+_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title
+_bootmenu_update_title=setenv _bootmenu_update_title ; setenv bootmenu_title "$bootmenu_title $ver"
@@ -1,117 +0,0 @@
From 83c596f12349fdc77fa76e1d017b4fc8882744ef Mon Sep 17 00:00:00 2001
From: Frank Wunderlich <frank-w@public-files.de>
Date: Sat, 17 Jan 2026 12:38:40 +0100
To: Tom Rini <trini@konsulko.com>
Cc: u-boot@lists.denx.de,
Daniel Golle <daniel@makrotopia.org>
Subject: [PATCH v4] cmd: mem: add function for getting ram size for use in
scripts
Add a command for getting detected ram size with possibility to write
to environment variable.
example usage:
BPI-R4> msize
4294967296
BPI-R4> msize m
4096m
BPI-R4> msize g
4g
BPI-R4> msize g ramsize
BPI-R4> printenv ramsize
ramsize=4
BPI-R4>
board with 8GB ram:
BPI-R4> msize
8589934592
BPI-R4> msize m
8192m
BPI-R4> msize g
8g
BPI-R4> msize g ramsize
BPI-R4> printenv ramsize
ramsize=8
BPI-R4>
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
---
v4: drop rounding to full MB/GB as it leads to wrong display
v3: add missing ifdefs
v2: add Kconfig entry
---
cmd/Kconfig | 5 +++++
cmd/mem.c | 32 ++++++++++++++++++++++++++++++++
2 files changed, 37 insertions(+)
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -1003,6 +1003,11 @@ config CMD_RANDOM
help
random - fill memory with random data
+config CMD_MEMSIZE
+ bool "memsize"
+ help
+ Get RAM via command for use in scripts.
+
config CMD_MEMTEST
bool "memtest"
help
--- a/cmd/mem.c
+++ b/cmd/mem.c
@@ -33,6 +33,7 @@
#include <linux/compiler.h>
#include <linux/ctype.h>
#include <linux/delay.h>
+#include <linux/sizes.h>
DECLARE_GLOBAL_DATA_PTR;
@@ -711,6 +712,29 @@ static int do_mem_loopw(struct cmd_tbl *
}
#endif /* CONFIG_LOOPW */
+#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;
+
+ if (argc > 1) {
+ if (!strcmp(argv[1], "m"))
+ memsize = memsize / SZ_1M;
+ else if (!strcmp(argv[1], "g"))
+ memsize = memsize / SZ_1G;
+ if (argc > 2)
+ env_set_ulong(argv[2], memsize);
+ else
+ printf("%lld%s\n", memsize, argv[1]);
+ } else {
+ printf("%lld\n", memsize);
+ }
+
+ return 0;
+}
+#endif /* CONFIG_CMD_MEMSIZE */
+
#ifdef CONFIG_CMD_MEMTEST
static ulong mem_test_alt(volatile ulong *buf, ulong start_addr, ulong end_addr,
volatile ulong *dummy)
@@ -1404,6 +1428,14 @@ U_BOOT_CMD(
);
#endif /* CONFIG_LOOPW */
+#ifdef CONFIG_CMD_MEMSIZE
+U_BOOT_CMD(
+ msize, 3, 1, do_mem_size,
+ "get detected ram size, optional set env variable with value",
+ "[m, g] [envvar]"
+);
+#endif /* CONFIG_CMD_MEMSIZE */
+
#ifdef CONFIG_CMD_MEMTEST
U_BOOT_CMD(
mtest, 5, 1, do_mem_mtest,