aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdrian Hunter <adrian.hunter@intel.com>2016-06-10 11:28:59 +0300
committerChris Ball <chris@printf.net>2016-06-23 16:28:08 -0400
commita3d3331e6854a4607133bed152988d51250107ca (patch)
treec38fa494b12241983287d8c4fed1257bdd8957ca
parent0ca049f25191c32323ba25a3cfd542b9fdefb473 (diff)
downloadmmc-utils-a3d3331e6854a4607133bed152988d51250107ca.tar.gz
mmc-utils: Add Command Queue fields to Extended CSD
Display Command Queue information when printing Extended CSD Example: # mmc extcsd read /dev/mmcblk0 | grep CMDQ Command Queue Support [CMDQ_SUPPORT]: 0x01 Command Queue Depth [CMDQ_DEPTH]: 16 Command Enabled [CMDQ_MODE_EN]: 0x01 Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org> Signed-off-by: Chris Ball <chris@printf.net>
-rw-r--r--mmc.h3
-rw-r--r--mmc_cmds.c9
2 files changed, 12 insertions, 0 deletions
diff --git a/mmc.h b/mmc.h
index 8c77fd5..a3d732c 100644
--- a/mmc.h
+++ b/mmc.h
@@ -55,6 +55,8 @@
#define EXT_CSD_FFU_ARG_2 489 /* RO */
#define EXT_CSD_FFU_ARG_1 488 /* RO */
#define EXT_CSD_FFU_ARG_0 487 /* RO */
+#define EXT_CSD_CMDQ_DEPTH 307 /* RO */
+#define EXT_CSD_CMDQ_SUPPORT 308 /* RO */
#define EXT_CSD_NUM_OF_FW_SEC_PROG_3 305 /* RO */
#define EXT_CSD_NUM_OF_FW_SEC_PROG_2 304 /* RO */
#define EXT_CSD_NUM_OF_FW_SEC_PROG_1 303 /* RO */
@@ -119,6 +121,7 @@
#define EXT_CSD_MODE_CONFIG 30
#define EXT_CSD_MODE_OPERATION_CODES 29 /* W */
#define EXT_CSD_FFU_STATUS 26 /* R */
+#define EXT_CSD_CMDQ_MODE_EN 15 /* R/W */
/*
* WR_REL_PARAM field definitions
diff --git a/mmc_cmds.c b/mmc_cmds.c
index 3627610..295d505 100644
--- a/mmc_cmds.c
+++ b/mmc_cmds.c
@@ -1723,6 +1723,15 @@ int do_read_extcsd(int nargs, char **argv)
printf("eMMC Firmware Version: %s\n",
(char*)&ext_csd[EXT_CSD_FIRMWARE_VERSION]);
}
+
+ if (ext_csd_rev >= 8) {
+ printf("Command Queue Support [CMDQ_SUPPORT]: 0x%02x\n",
+ ext_csd[EXT_CSD_CMDQ_SUPPORT]);
+ printf("Command Queue Depth [CMDQ_DEPTH]: %u\n",
+ (ext_csd[EXT_CSD_CMDQ_DEPTH] & 0x1f) + 1);
+ printf("Command Enabled [CMDQ_MODE_EN]: 0x%02x\n",
+ ext_csd[EXT_CSD_CMDQ_MODE_EN]);
+ }
out_free:
return ret;
}