Message ID | 20240426001419.1210364-1-tharvey@gateworks.com |
---|---|
State | Changes Requested |
Delegated to: | Fabio Estevam |
Headers | show |
Series | cmd: mmc: allow use of hardware parittion names for mmc partconf | expand |
Hi Tim, On Thu, Apr 25, 2024 at 9:14 PM Tim Harvey <tharvey@gateworks.com> wrote: > > eMMC devices have hardware partitions such as user, boot0, and boot1. > Allow these names to be displayed when reading the mmc PARTITION_CONFIG > field via 'mmc partconf'. Additionally allow a name to be specified when > setting the PARTITION_CONFIG. > > Before: > u-boot=> mmc partconf 2 1 1 0 && mmc partconf 2 > EXT_CSD[179], PARTITION_CONFIG: > BOOT_ACK: 0x1 > BOOT_PARTITION_ENABLE: 0x2 > PARTITION_ACCESS: 0x0 > > After: > u-boot=> mmc partconf 2 1 1 0 && mmc partconf 2 > EXT_CSD[179], PARTITION_CONFIG: > BOOT_ACK: 0x1 > BOOT_PARTITION_ENABLE: 0x1 (boot0) > PARTITION_ACCESS: 0x0 > u-boot=> mmc partconf 2 1 boot1 0 && mmc partconf 2 > EXT_CSD[179], PARTITION_CONFIG: > BOOT_ACK: 0x1 > BOOT_PARTITION_ENABLE: 0x2 (boot1) > PARTITION_ACCESS: 0x0 This is a nice improvement: Reviewed-by: Fabio Estevam <festevam@gmail.com>
On Thu, Apr 25, 2024 at 10:35 PM Fabio Estevam <festevam@gmail.com> wrote: > This is a nice improvement: > > Reviewed-by: Fabio Estevam <festevam@gmail.com> There is a typo in the Subject: "partition"
On 4/26/24 2:14 AM, Tim Harvey wrote: > eMMC devices have hardware partitions such as user, boot0, and boot1. > Allow these names to be displayed when reading the mmc PARTITION_CONFIG > field via 'mmc partconf'. Additionally allow a name to be specified when > setting the PARTITION_CONFIG. > > Before: > u-boot=> mmc partconf 2 1 1 0 && mmc partconf 2 > EXT_CSD[179], PARTITION_CONFIG: > BOOT_ACK: 0x1 > BOOT_PARTITION_ENABLE: 0x2 > PARTITION_ACCESS: 0x0 > > After: > u-boot=> mmc partconf 2 1 1 0 && mmc partconf 2 > EXT_CSD[179], PARTITION_CONFIG: > BOOT_ACK: 0x1 > BOOT_PARTITION_ENABLE: 0x1 (boot0) > PARTITION_ACCESS: 0x0 > u-boot=> mmc partconf 2 1 boot1 0 && mmc partconf 2 > EXT_CSD[179], PARTITION_CONFIG: > BOOT_ACK: 0x1 > BOOT_PARTITION_ENABLE: 0x2 (boot1) > PARTITION_ACCESS: 0x0 > > Signed-off-by: Tim Harvey <tharvey@gateworks.com> > --- > cmd/mmc.c | 25 ++++++++++++++++++++++--- > 1 file changed, 22 insertions(+), 3 deletions(-) > > diff --git a/cmd/mmc.c b/cmd/mmc.c > index 2d5430a53079..26692a8e349b 100644 > --- a/cmd/mmc.c > +++ b/cmd/mmc.c > @@ -14,6 +14,18 @@ > #include <part.h> > #include <sparse_format.h> > #include <image-sparse.h> > +#include <linux/ctype.h> > + > +static const char *mmc_partnames[] = { > + "user", > + "boot0", > + "boot1", > + "", Shouldn't these be 'gp' partitions here ? [...]
On Thu, Apr 25, 2024 at 6:37 PM Fabio Estevam <festevam@gmail.com> wrote: > > On Thu, Apr 25, 2024 at 10:35 PM Fabio Estevam <festevam@gmail.com> wrote: > > > This is a nice improvement: > > > > Reviewed-by: Fabio Estevam <festevam@gmail.com> > > There is a typo in the Subject: "partition" Hi Fabio, Thanks - I will fix this in v2. Best Regards, Tim
On Thu, Apr 25, 2024 at 9:07 PM Marek Vasut <marex@denx.de> wrote: > > On 4/26/24 2:14 AM, Tim Harvey wrote: > > eMMC devices have hardware partitions such as user, boot0, and boot1. > > Allow these names to be displayed when reading the mmc PARTITION_CONFIG > > field via 'mmc partconf'. Additionally allow a name to be specified when > > setting the PARTITION_CONFIG. > > > > Before: > > u-boot=> mmc partconf 2 1 1 0 && mmc partconf 2 > > EXT_CSD[179], PARTITION_CONFIG: > > BOOT_ACK: 0x1 > > BOOT_PARTITION_ENABLE: 0x2 > > PARTITION_ACCESS: 0x0 > > > > After: > > u-boot=> mmc partconf 2 1 1 0 && mmc partconf 2 > > EXT_CSD[179], PARTITION_CONFIG: > > BOOT_ACK: 0x1 > > BOOT_PARTITION_ENABLE: 0x1 (boot0) > > PARTITION_ACCESS: 0x0 > > u-boot=> mmc partconf 2 1 boot1 0 && mmc partconf 2 > > EXT_CSD[179], PARTITION_CONFIG: > > BOOT_ACK: 0x1 > > BOOT_PARTITION_ENABLE: 0x2 (boot1) > > PARTITION_ACCESS: 0x0 > > > > Signed-off-by: Tim Harvey <tharvey@gateworks.com> > > --- > > cmd/mmc.c | 25 ++++++++++++++++++++++--- > > 1 file changed, 22 insertions(+), 3 deletions(-) > > > > diff --git a/cmd/mmc.c b/cmd/mmc.c > > index 2d5430a53079..26692a8e349b 100644 > > --- a/cmd/mmc.c > > +++ b/cmd/mmc.c > > @@ -14,6 +14,18 @@ > > #include <part.h> > > #include <sparse_format.h> > > #include <image-sparse.h> > > +#include <linux/ctype.h> > > + > > +static const char *mmc_partnames[] = { > > + "user", > > + "boot0", > > + "boot1", > > + "", > > Shouldn't these be 'gp' partitions here ? > He Marek, Do you mean that 3-6 should be named 'gp1', 'gp2' etc? I couldn't find if those values were possible or have meaning. Best Regards, Tim
On 4/26/24 5:14 PM, Tim Harvey wrote: > On Thu, Apr 25, 2024 at 9:07 PM Marek Vasut <marex@denx.de> wrote: >> >> On 4/26/24 2:14 AM, Tim Harvey wrote: >>> eMMC devices have hardware partitions such as user, boot0, and boot1. >>> Allow these names to be displayed when reading the mmc PARTITION_CONFIG >>> field via 'mmc partconf'. Additionally allow a name to be specified when >>> setting the PARTITION_CONFIG. >>> >>> Before: >>> u-boot=> mmc partconf 2 1 1 0 && mmc partconf 2 >>> EXT_CSD[179], PARTITION_CONFIG: >>> BOOT_ACK: 0x1 >>> BOOT_PARTITION_ENABLE: 0x2 >>> PARTITION_ACCESS: 0x0 >>> >>> After: >>> u-boot=> mmc partconf 2 1 1 0 && mmc partconf 2 >>> EXT_CSD[179], PARTITION_CONFIG: >>> BOOT_ACK: 0x1 >>> BOOT_PARTITION_ENABLE: 0x1 (boot0) >>> PARTITION_ACCESS: 0x0 >>> u-boot=> mmc partconf 2 1 boot1 0 && mmc partconf 2 >>> EXT_CSD[179], PARTITION_CONFIG: >>> BOOT_ACK: 0x1 >>> BOOT_PARTITION_ENABLE: 0x2 (boot1) >>> PARTITION_ACCESS: 0x0 >>> >>> Signed-off-by: Tim Harvey <tharvey@gateworks.com> >>> --- >>> cmd/mmc.c | 25 ++++++++++++++++++++++--- >>> 1 file changed, 22 insertions(+), 3 deletions(-) >>> >>> diff --git a/cmd/mmc.c b/cmd/mmc.c >>> index 2d5430a53079..26692a8e349b 100644 >>> --- a/cmd/mmc.c >>> +++ b/cmd/mmc.c >>> @@ -14,6 +14,18 @@ >>> #include <part.h> >>> #include <sparse_format.h> >>> #include <image-sparse.h> >>> +#include <linux/ctype.h> >>> + >>> +static const char *mmc_partnames[] = { >>> + "user", >>> + "boot0", >>> + "boot1", >>> + "", >> >> Shouldn't these be 'gp' partitions here ? >> > > He Marek, > > Do you mean that 3-6 should be named 'gp1', 'gp2' etc? I couldn't find > if those values were possible or have meaning. Yes, General Purpose eMMC hardware partitions.
diff --git a/cmd/mmc.c b/cmd/mmc.c index 2d5430a53079..26692a8e349b 100644 --- a/cmd/mmc.c +++ b/cmd/mmc.c @@ -14,6 +14,18 @@ #include <part.h> #include <sparse_format.h> #include <image-sparse.h> +#include <linux/ctype.h> + +static const char *mmc_partnames[] = { + "user", + "boot0", + "boot1", + "", + "", + "", + "", + "user", +}; static int curr_device = -1; @@ -918,8 +930,8 @@ static int mmc_partconf_print(struct mmc *mmc, const char *varname) printf("EXT_CSD[179], PARTITION_CONFIG:\n" "BOOT_ACK: 0x%x\n" - "BOOT_PARTITION_ENABLE: 0x%x\n" - "PARTITION_ACCESS: 0x%x\n", ack, part, access); + "BOOT_PARTITION_ENABLE: 0x%x (%s)\n" + "PARTITION_ACCESS: 0x%x\n", ack, part, mmc_partnames[part], access); return CMD_RET_SUCCESS; } @@ -949,7 +961,14 @@ static int do_mmc_partconf(struct cmd_tbl *cmdtp, int flag, return mmc_partconf_print(mmc, cmd_arg2(argc, argv)); ack = dectoul(argv[2], NULL); - part_num = dectoul(argv[3], NULL); + if (!isdigit(*argv[3])) { + for (part_num = 0; part_num < ARRAY_SIZE(mmc_partnames); part_num++) { + if (!strcmp(argv[3], mmc_partnames[part_num])) + break; + } + } else { + part_num = dectoul(argv[3], NULL); + } access = dectoul(argv[4], NULL); /* acknowledge to be sent during boot operation */
eMMC devices have hardware partitions such as user, boot0, and boot1. Allow these names to be displayed when reading the mmc PARTITION_CONFIG field via 'mmc partconf'. Additionally allow a name to be specified when setting the PARTITION_CONFIG. Before: u-boot=> mmc partconf 2 1 1 0 && mmc partconf 2 EXT_CSD[179], PARTITION_CONFIG: BOOT_ACK: 0x1 BOOT_PARTITION_ENABLE: 0x2 PARTITION_ACCESS: 0x0 After: u-boot=> mmc partconf 2 1 1 0 && mmc partconf 2 EXT_CSD[179], PARTITION_CONFIG: BOOT_ACK: 0x1 BOOT_PARTITION_ENABLE: 0x1 (boot0) PARTITION_ACCESS: 0x0 u-boot=> mmc partconf 2 1 boot1 0 && mmc partconf 2 EXT_CSD[179], PARTITION_CONFIG: BOOT_ACK: 0x1 BOOT_PARTITION_ENABLE: 0x2 (boot1) PARTITION_ACCESS: 0x0 Signed-off-by: Tim Harvey <tharvey@gateworks.com> --- cmd/mmc.c | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-)