From: Jaehoon Chung <jh80.chung@samsung.com>
To: Jaehoon Chung <jh80.chung@samsung.com>
Cc: linux-mmc <linux-mmc@vger.kernel.org>,
Chris Ball <cjb@laptop.org>,
Kyungmin Park <kyungmin.park@samsung.com>,
Maya Erez <merez@codeaurora.org>,
"svenkatr@ti.com" <svenkatr@ti.com>,
Saugata Das <saugata.das@linaro.org>,
Adrian Hunter <adrian.hunter@intel.com>,
Ulf Hansson <ulf.hansson@stericsson.com>,
Per FORLIN <per.forlin@stericsson.com>,
Hanumath Prasad <hanumath.prasad@stericsson.com>,
Sebastian Rasmussen <sebras@gmail.com>,
"Dong, Chuanxiao" <chuanxiao.dong@intel.com>
Subject: Re: [RESEND PATCH] mmc-util: add the method to enable the bkops
Date: Fri, 31 Aug 2012 17:04:56 +0900 [thread overview]
Message-ID: <50407028.5070608@samsung.com> (raw)
In-Reply-To: <500823C9.1040204@samsung.com>
Dear Chris,
Could you merge the this at mmc-utils?
If you have any other opinion, plz let me know.
Best Regards,
Jaehoon Chung
On 07/20/2012 12:12 AM, Jaehoon Chung wrote:
> This patch added the method to enable the bkops.
> In ext_csd register, BKOPS_EN bit is one-time programable.
> So if you want to use the bkops, use the this command.
>
> <usage>
> #mmc bkops enable /dev/mmcblk0
>
> Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> Reviewd-by: Venkatraman S <svenkatr@ti.com>
> ---
> mmc.c | 5 +++++
> mmc.h | 7 +++++++
> mmc_cmds.c | 39 +++++++++++++++++++++++++++++++++++++++
> mmc_cmds.h | 1 +
> 4 files changed, 52 insertions(+), 0 deletions(-)
>
> diff --git a/mmc.c b/mmc.c
> index 379d667..d5ef2bb 100644
> --- a/mmc.c
> +++ b/mmc.c
> @@ -75,6 +75,11 @@ static struct Command commands[] = {
> "Enable the boot partition for the <device>.\nTo receive acknowledgment of boot from the card set <send_ack>\nto 1, else set it to 0.",
> NULL
> },
> + { do_write_bkops_en, -1,
> + "bkops enable", "<device>\n"
> + "Enable the eMMC BKOPS feature on <device>.",
> + NULL
> + },
> { 0, 0, 0, 0 }
> };
>
> diff --git a/mmc.h b/mmc.h
> index 0a521a8..3d77b38 100644
> --- a/mmc.h
> +++ b/mmc.h
> @@ -31,12 +31,14 @@
> */
> #define EXT_CSD_S_CMD_SET 504
> #define EXT_CSD_HPI_FEATURE 503
> +#define EXT_CSD_BKOPS_SUPPORT 502 /* RO */
> #define EXT_CSD_BOOT_INFO 228 /* R/W */
> #define EXT_CSD_PART_SWITCH_TIME 199
> #define EXT_CSD_BOOT_CFG 179
> #define EXT_CSD_PART_CONFIG 179
> #define EXT_CSD_BOOT_WP 173
> #define EXT_CSD_WR_REL_PARAM 166
> +#define EXT_CSD_BKOPS_EN 163 /* R/W */
> #define EXT_CSD_NATIVE_SECTOR_SIZE 63 /* R */
> #define EXT_CSD_USE_NATIVE_SECTOR 62 /* R/W */
> #define EXT_CSD_DATA_SECTOR_SIZE 61 /* R */
> @@ -48,6 +50,11 @@
> #define EN_REL_WR (1<<2)
>
> /*
> + * BKOPS_EN field definition
> + */
> +#define BKOPS_ENABLE (1<<0)
> +
> +/*
> * EXT_CSD field definitions
> */
> #define EXT_CSD_HPI_SUPP (1<<0)
> diff --git a/mmc_cmds.c b/mmc_cmds.c
> index 90619db..4c935e0 100644
> --- a/mmc_cmds.c
> +++ b/mmc_cmds.c
> @@ -280,6 +280,45 @@ int do_write_boot_en(int nargs, char **argv)
> return ret;
> }
>
> +int do_write_bkops_en(int nargs, char **argv)
> +{
> + __u8 ext_csd[512], value = 0;
> + int fd, ret;
> + char *device;
> +
> + CHECK(nargs != 2, "Usage: mmc bkops enable </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);
> + }
> +
> + if (!(ext_csd[EXT_CSD_BKOPS_SUPPORT] & 0x1)) {
> + fprintf(stderr, "%s dosen't support BKOPS\n", device);
> + exit(1);
> + }
> +
> + ret = write_extcsd_value(fd, EXT_CSD_BKOPS_EN, BKOPS_ENABLE);
> + if (ret) {
> + fprintf(stderr, "Could not write 0x%02x to "
> + "EXT_CSD[%d] in %s\n",
> + value, EXT_CSD_BKOPS_EN, device);
> + exit(1);
> + }
> +
> + 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 2eb1df5..1dd4324 100644
> --- a/mmc_cmds.h
> +++ b/mmc_cmds.h
> @@ -21,3 +21,4 @@ int do_writeprotect_get(int nargs, char **argv);
> int do_writeprotect_set(int nargs, char **argv);
> int do_disable_512B_emulation(int nargs, char **argv);
> int do_write_boot_en(int nargs, char **argv);
> +int do_write_bkops_en(int nargs, char **argv);
>
next prev parent reply other threads:[~2012-08-31 8:05 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-19 15:12 [RESEND PATCH] mmc-util: add the method to enable the bkops Jaehoon Chung
2012-08-31 8:04 ` Jaehoon Chung [this message]
2012-08-31 9:41 ` Chris Ball
2012-09-03 5:23 ` Jaehoon Chung
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=50407028.5070608@samsung.com \
--to=jh80.chung@samsung.com \
--cc=adrian.hunter@intel.com \
--cc=chuanxiao.dong@intel.com \
--cc=cjb@laptop.org \
--cc=hanumath.prasad@stericsson.com \
--cc=kyungmin.park@samsung.com \
--cc=linux-mmc@vger.kernel.org \
--cc=merez@codeaurora.org \
--cc=per.forlin@stericsson.com \
--cc=saugata.das@linaro.org \
--cc=sebras@gmail.com \
--cc=svenkatr@ti.com \
--cc=ulf.hansson@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.