Re: [PATCH] cmd: mmc: allow use of hardware parittion names for mmc partconf

2024-04-26 Thread Marek Vasut

On 4/26/24 5:14 PM, Tim Harvey wrote:

On Thu, Apr 25, 2024 at 9:07 PM Marek Vasut  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 
---
   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 
   #include 
   #include 
+#include 
+
+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.


Re: [PATCH] cmd: mmc: allow use of hardware parittion names for mmc partconf

2024-04-26 Thread Tim Harvey
On Thu, Apr 25, 2024 at 9:07 PM Marek Vasut  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 
> > ---
> >   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 
> >   #include 
> >   #include 
> > +#include 
> > +
> > +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


Re: [PATCH] cmd: mmc: allow use of hardware parittion names for mmc partconf

2024-04-26 Thread Tim Harvey
On Thu, Apr 25, 2024 at 6:37 PM Fabio Estevam  wrote:
>
> On Thu, Apr 25, 2024 at 10:35 PM Fabio Estevam  wrote:
>
> > This is a nice improvement:
> >
> > Reviewed-by: Fabio Estevam 
>
> There is a typo in the Subject: "partition"

Hi Fabio,

Thanks - I will fix this in v2.

Best Regards,

Tim


Re: [PATCH] cmd: mmc: allow use of hardware parittion names for mmc partconf

2024-04-25 Thread Marek Vasut

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 
---
  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 
  #include 
  #include 
+#include 
+
+static const char *mmc_partnames[] = {
+   "user",
+   "boot0",
+   "boot1",
+   "",


Shouldn't these be 'gp' partitions here ?

[...]


Re: [PATCH] cmd: mmc: allow use of hardware parittion names for mmc partconf

2024-04-25 Thread Fabio Estevam
On Thu, Apr 25, 2024 at 10:35 PM Fabio Estevam  wrote:

> This is a nice improvement:
>
> Reviewed-by: Fabio Estevam 

There is a typo in the Subject: "partition"


Re: [PATCH] cmd: mmc: allow use of hardware parittion names for mmc partconf

2024-04-25 Thread Fabio Estevam
Hi Tim,

On Thu, Apr 25, 2024 at 9:14 PM 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

This is a nice improvement:

Reviewed-by: Fabio Estevam 


[PATCH] cmd: mmc: allow use of hardware parittion names for mmc partconf

2024-04-25 Thread Tim Harvey
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 
---
 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 
 #include 
 #include 
+#include 
+
+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 */
-- 
2.25.1