Improve "extcsd read" output of the registers.
Right-shift by 3 of EXT_CSD_BOOT_CFG_EN bits.
Expand the EXT_CSD_BOOT_CFG_ACC bit mask to 0x7.
Add case 3 RPMB partition.

Signed-off-by: Mario Schuknecht <[email protected]>
---
 mmc.h      |    2 +-
 mmc_cmds.c |    7 +++++--
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/mmc.h b/mmc.h
index c863751..a01c079 100644
--- a/mmc.h
+++ b/mmc.h
@@ -70,7 +70,7 @@
 #define EXT_CSD_BOOT_INFO_ALT          (1<<0)
 #define EXT_CSD_BOOT_CFG_ACK           (1<<6)
 #define EXT_CSD_BOOT_CFG_EN            (0x38)
-#define EXT_CSD_BOOT_CFG_ACC           (0x03)
+#define EXT_CSD_BOOT_CFG_ACC           (0x07)
 #define EXT_CSD_RST_N_EN_MASK          (0x03)
 #define EXT_CSD_HW_RESET_EN            (0x01)
 #define EXT_CSD_HW_RESET_DIS           (0x02)
diff --git a/mmc_cmds.c b/mmc_cmds.c
index b407f65..96a1cb5 100644
--- a/mmc_cmds.c
+++ b/mmc_cmds.c
@@ -613,7 +613,7 @@ int do_read_extcsd(int nargs, char **argv)
                ext_csd[181]);
        reg = ext_csd[EXT_CSD_BOOT_CFG];
        printf("Boot configuration bytes [PARTITION_CONFIG: 0x%02x]\n", reg);
-       switch (reg & EXT_CSD_BOOT_CFG_EN) {
+       switch ((reg & EXT_CSD_BOOT_CFG_EN)>>3) {
        case 0x0:
                printf(" Not boot enable\n");
                break;
@@ -637,8 +637,11 @@ int do_read_extcsd(int nargs, char **argv)
        case 0x2:
                printf(" R/W Boot Partition 2\n");
                break;
+       case 0x3:
+               printf(" R/W Replay Protected Memory Block (RPMB)\n");
+               break;
        default:
-               printf(" Access to General Purpuse partition %d\n",
+               printf(" Access to General Purpose partition %d\n",
                        (reg & EXT_CSD_BOOT_CFG_ACC) - 3);
                break;
        }
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to