
Hi Reuben,
On 5/10/21 9:14 AM, Reuben Dowle wrote:
This patch allows uboot scripts make choices about where to boot from based on the active mmc boot partition. This allows having two copies of kernel, filesystems etc, and choosing which to boot from based off of the active bootloader partition.
Signed-off-by: Reuben Dowle reuben.dowle@4rf.com
cmd/mmc.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/cmd/mmc.c b/cmd/mmc.c index a10f137..afa8e7b 100644 --- a/cmd/mmc.c +++ b/cmd/mmc.c @@ -808,7 +808,7 @@ static int do_mmc_boot_resize(struct cmd_tbl *cmdtp, int flag, return CMD_RET_SUCCESS; }
-static int mmc_partconf_print(struct mmc *mmc) +static int mmc_partconf_print(struct mmc *mmc, const char *varname) { u8 ack, access, part;
@@ -821,6 +821,9 @@ static int mmc_partconf_print(struct mmc *mmc) ack = EXT_CSD_EXTRACT_BOOT_ACK(mmc->part_config); part = EXT_CSD_EXTRACT_BOOT_PART(mmc->part_config);
- if(varname)
env_set_hex(varname, part);
- printf("EXT_CSD[179], PARTITION_CONFIG:\n" "BOOT_ACK: 0x%x\n" "BOOT_PARTITION_ENABLE: 0x%x\n"
@@ -836,7 +839,7 @@ static int do_mmc_partconf(struct cmd_tbl *cmdtp, int flag, struct mmc *mmc; u8 ack, part_num, access;
- if (argc != 2 && argc != 5)
if (argc != 2 && argc != 3 && argc != 5) return CMD_RET_USAGE;
dev = simple_strtoul(argv[1], NULL, 10);
@@ -850,8 +853,8 @@ static int do_mmc_partconf(struct cmd_tbl *cmdtp, int flag, return CMD_RET_FAILURE; }
- if (argc == 2)
return mmc_partconf_print(mmc);
if (argc == 2 || argc == 3)
return mmc_partconf_print(mmc, argc == 3 ? argv[2] : NULL);
ack = simple_strtoul(argv[2], NULL, 10); part_num = simple_strtoul(argv[3], NULL, 10);
@@ -1061,8 +1064,11 @@ U_BOOT_CMD( " - Set the BOOT_BUS_WIDTH field of the specified device\n" "mmc bootpart-resize <dev> <boot part size MB> <RPMB part size MB>\n" " - Change sizes of boot and RPMB partitions of specified device\n"
- "mmc partconf <dev> [boot_ack boot_partition partition_access]\n"
- " - Show or change the bits of the PARTITION_CONFIG field of the specified device\n"
- "mmc partconf <dev> [varname]\n"
- " - Show the bits of the PARTITION_CONFIG field of the specified device,\n"
- " optionally storing the boot_partion value into <varname>"
- "mmc partconf <dev> <boot_ack> <boot_partition> <partition_access>\n"
boot_ack / boot_partition / partition_access are optional variable, not mandatory. And it's confused that different variable is used with same command.
I think that it's enough to use "mmc partconf <dev>". Then it's showed which partition is used.
If you have to apply this patch,
It seems that "mmc partconf <dev> [varname] [boot_ack boot_partition partition_access]" is correct way.
Best Regards, Jaehoon Chung
- " - Change the bits of the PARTITION_CONFIG field of the specified device\n" "mmc rst-function <dev> <value>\n" " - Change the RST_n_FUNCTION field of the specified device\n" " WARNING: This is a write-once field and 0 / 1 / 2 are the only valid values.\n"