From: Subhash Jadavani <subhashj@codeaurora.org>
To: Saugata Das <saugata.das@stericsson.com>
Cc: linux-mmc@vger.kernel.org, patches@linaro.org, saugata.das@linaro.org
Subject: Re: [RFC 2/2] [MMC-4.5] [MMC UTIL] Disable emulation
Date: Mon, 14 May 2012 16:20:51 +0530 [thread overview]
Message-ID: <4FB0E38B.2060301@codeaurora.org> (raw)
In-Reply-To: <1336574901-26579-2-git-send-email-saugata.das@stericsson.com>
On 5/9/2012 8:18 PM, Saugata Das wrote:
> From: Saugata Das<saugata.das@linaro.org>
>
> In this patch, we add utility to disable emulation mode in the eMMC-4.5.
> This is done to increase the data sector size to 4KB.
>
> Signed-off-by: Saugata Das<saugata.das@linaro.org>
> ---
> mmc.c | 6 ++++++
> mmc.h | 2 ++
> mmc_cmds.c | 42 ++++++++++++++++++++++++++++++++++++++++++
> mmc_cmds.h | 1 +
> 4 files changed, 51 insertions(+), 0 deletions(-)
>
> diff --git a/mmc.c b/mmc.c
> index c27fc24..43b95aa 100644
> --- a/mmc.c
> +++ b/mmc.c
> @@ -65,6 +65,12 @@ static struct Command commands[] = {
> "Set the eMMC writeprotect status of<device>.",
> NULL
> },
> + { do_disable_emulation, -1,
> + "disable emulation", "<device>\n"
> + "Set the eMMC data sector size to 4KB by disabling emulation<device>.",
> + NULL
> + },
> +
> { 0, 0, 0, 0 }
> };
>
> diff --git a/mmc.h b/mmc.h
> index 3af36f1..a2050fa 100644
> --- a/mmc.h
> +++ b/mmc.h
> @@ -35,6 +35,8 @@
> #define EXT_CSD_PART_SWITCH_TIME 199
> #define EXT_CSD_BOOT_CFG 179
> #define EXT_CSD_BOOT_WP 173
> +#define EXT_CSD_NATIVE_SECTOR_SIZE 63 /* R */
> +#define EXT_CSD_NATIVE_SECTOR 62 /* R/W */
>
> /*
> * EXT_CSD field definitions
> diff --git a/mmc_cmds.c b/mmc_cmds.c
> index 4562cef..2713ccd 100644
> --- a/mmc_cmds.c
> +++ b/mmc_cmds.c
> @@ -168,6 +168,48 @@ int do_writeprotect_set(int nargs, char **argv)
> return ret;
> }
>
> +
> +int do_disable_emulation(int nargs, char **argv)
> +{
> + __u8 ext_csd[512], native_sector_size;
> + int fd, ret;
> + char *device;
> +
> + CHECK(nargs != 2, "Usage: mmc</path/to/mmcblkX>\n", exit(1));
> +
> + device = argv[1];
> +
> + fd = open(device, O_RDWR);
> + if (fd< 0) {
> + perror("open");
> + exit(1);
> + }
> +
> + ret = read_extcsd(fd, ext_csd);
> + if (ret) {
> + fprintf(stderr, "Could not read EXT_CSD from %s\n", device);
> + exit(1);
> + }
> +
> + native_sector_size = ext_csd[EXT_CSD_NATIVE_SECTOR_SIZE];
> +
> + if (native_sector_size) {
Before setting the use_native_sector field, can you also check if
NATIVE_SECTOR_SIZE and DATA_SECTOR_SIZE fields are different. If they
are same then there is no need to set the USE_NATIVE_SECTOR size field.
> + ret = write_extcsd_value(fd, EXT_CSD_NATIVE_SECTOR, 1);
> +
> + if (ret) {
> + fprintf(stderr, "Could not write 0x%02x to "
> + "EXT_CSD[%d] in %s\n",
> + 1, EXT_CSD_BOOT_WP, device);
> + exit(1);
> + }
> + } else {
> + printf("MMC does not support 4KB native sector\n");
> + }
> +
> + return ret;
> +}
> +
> +
> int do_read_extcsd(int nargs, char **argv)
> {
> __u8 ext_csd[512], ext_csd_rev, reg;
> diff --git a/mmc_cmds.h b/mmc_cmds.h
> index 66e9acb..dd107d5 100644
> --- a/mmc_cmds.h
> +++ b/mmc_cmds.h
> @@ -19,3 +19,4 @@ int do_read_extcsd(int nargs, char **argv);
> int do_write_extcsd(int nargs, char **argv);
> int do_writeprotect_get(int nargs, char **argv);
> int do_writeprotect_set(int nargs, char **argv);
> +int do_disable_emulation(int nargs, char **argv);
next prev parent reply other threads:[~2012-05-14 10:50 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-09 14:48 [RFC 1/2] [MMC-4.5] Disable emulation Saugata Das
2012-05-09 14:48 ` [RFC 2/2] [MMC-4.5] [MMC UTIL] " Saugata Das
2012-05-14 10:39 ` Subhash Jadavani
2012-05-14 15:25 ` Saugata Das
2012-05-14 10:50 ` Subhash Jadavani [this message]
2012-05-14 15:09 ` Saugata Das
2012-05-14 10:25 ` [RFC 1/2] [MMC-4.5] " Subhash Jadavani
2012-05-14 14:51 ` Saugata Das
2012-05-15 6:40 ` Subhash Jadavani
2012-05-15 9:41 ` Luca Porzio (lporzio)
2012-05-15 10:17 ` S, Venkatraman
2012-05-15 14:55 ` Saugata Das
2012-05-15 14:49 ` Saugata Das
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4FB0E38B.2060301@codeaurora.org \
--to=subhashj@codeaurora.org \
--cc=linux-mmc@vger.kernel.org \
--cc=patches@linaro.org \
--cc=saugata.das@linaro.org \
--cc=saugata.das@stericsson.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.