From: Avi Shchislowski <avi.shchislowski@sandisk.com> To: <ulf.hansson@linaro.org> Cc: <avi.shchislowski@sandisk.com>, <cjb@laptop.org>, <linux-mmc@vger.kernel.org>, <Alex.Lemberg@sandisk.com>, <gwendal@google.com>, Alex Lemberg <alex.lemberg@sandisk.com>, open list <linux-kernel@vger.kernel.org> Subject: [PATCH 1/3] mmc: Support FFU for eMMC v5.0 Date: Mon, 10 Nov 2014 19:13:49 +0200 [thread overview] Message-ID: <1415639632-878-1-git-send-email-avi.shchislowski@sandisk.com> (raw) In-Reply-To: <n> Add eMMC5.0 ffu ext_csd fields Signed-off-by: Avi Shchislowski <avi.shchislowski@sandisk.com> Signed-off-by: Alex Lemberg <alex.lemberg@sandisk.com> diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c index 1eda8dd..3b86ed3 100644 --- a/drivers/mmc/core/mmc.c +++ b/drivers/mmc/core/mmc.c @@ -603,6 +603,15 @@ static int mmc_read_ext_csd(struct mmc_card *card, u8 *ext_csd) card->ext_csd.data_sector_size = 512; } + /* eMMC v5 or later */ + if (card->ext_csd.rev >= 7) { + card->ext_csd.ffu_capable = + ((ext_csd[EXT_CSD_SUPPORTED_MODE] & 0x1) == 0x1) && + ((ext_csd[EXT_CSD_FW_CONFIG] & 0x1) == 0x0); + card->ext_csd.ffu_mode_op = ext_csd[EXT_CSD_FFU_FEATURES]; + } else { + card->ext_csd.ffu_capable = false; + } out: return err; } diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h index d424b9d..dd01efe 100644 --- a/include/linux/mmc/card.h +++ b/include/linux/mmc/card.h @@ -81,6 +81,8 @@ struct mmc_ext_csd { bool hpi_en; /* HPI enablebit */ bool hpi; /* HPI support bit */ unsigned int hpi_cmd; /* cmd used as HPI */ + bool ffu_capable; /* FFU support */ + bool ffu_mode_op; /* FFU mode operation */ bool bkops; /* background support bit */ bool bkops_en; /* background enable bit */ unsigned int data_sector_size; /* 512 bytes or 4KB */ diff --git a/include/linux/mmc/mmc.h b/include/linux/mmc/mmc.h index 64ec963..787787b 100644 --- a/include/linux/mmc/mmc.h +++ b/include/linux/mmc/mmc.h @@ -272,6 +272,9 @@ struct _mmc_csd { * EXT_CSD fields */ +#define EXT_CSD_FFU_STATUS 26 /* R */ +#define EXT_CSD_MODE_OPERATION_CODES 29 /* W */ +#define EXT_CSD_MODE_CONFIG 30 /* R/W */ #define EXT_CSD_FLUSH_CACHE 32 /* W */ #define EXT_CSD_CACHE_CTRL 33 /* R/W */ #define EXT_CSD_POWER_OFF_NOTIFICATION 34 /* R/W */ @@ -290,6 +293,7 @@ struct _mmc_csd { #define EXT_CSD_SANITIZE_START 165 /* W */ #define EXT_CSD_WR_REL_PARAM 166 /* RO */ #define EXT_CSD_RPMB_MULT 168 /* RO */ +#define EXT_CSD_FW_CONFIG 169 /* R/W */ #define EXT_CSD_BOOT_WP 173 /* R/W */ #define EXT_CSD_ERASE_GROUP_DEF 175 /* R/W */ #define EXT_CSD_PART_CONFIG 179 /* R/W */ @@ -326,6 +330,11 @@ struct _mmc_csd { #define EXT_CSD_GENERIC_CMD6_TIME 248 /* RO */ #define EXT_CSD_CACHE_SIZE 249 /* RO, 4 bytes */ #define EXT_CSD_PWR_CL_DDR_200_360 253 /* RO */ +#define EXT_CSD_NUM_OF_FW_SEC_PROG 302 /* RO, 4 bytes */ +#define EXT_CSD_FFU_ARG 487 /* RO, 4 bytes */ +#define EXT_CSD_OPERATION_CODE_TIMEOUT 491 /* RO */ +#define EXT_CSD_FFU_FEATURES 492 /* RO */ +#define EXT_CSD_SUPPORTED_MODE 493 /* RO */ #define EXT_CSD_TAG_UNIT_SIZE 498 /* RO */ #define EXT_CSD_DATA_TAG_SUPPORT 499 /* RO */ #define EXT_CSD_MAX_PACKED_WRITES 500 /* RO */ -- 1.7.9.5
WARNING: multiple messages have this Message-ID (diff)
From: Avi Shchislowski <avi.shchislowski@sandisk.com> To: ulf.hansson@linaro.org Cc: avi.shchislowski@sandisk.com, cjb@laptop.org, linux-mmc@vger.kernel.org, Alex.Lemberg@sandisk.com, gwendal@google.com, Alex Lemberg <alex.lemberg@sandisk.com>, open list <linux-kernel@vger.kernel.org> Subject: [PATCH 1/3] mmc: Support FFU for eMMC v5.0 Date: Mon, 10 Nov 2014 19:13:49 +0200 [thread overview] Message-ID: <1415639632-878-1-git-send-email-avi.shchislowski@sandisk.com> (raw) In-Reply-To: <n> Add eMMC5.0 ffu ext_csd fields Signed-off-by: Avi Shchislowski <avi.shchislowski@sandisk.com> Signed-off-by: Alex Lemberg <alex.lemberg@sandisk.com> diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c index 1eda8dd..3b86ed3 100644 --- a/drivers/mmc/core/mmc.c +++ b/drivers/mmc/core/mmc.c @@ -603,6 +603,15 @@ static int mmc_read_ext_csd(struct mmc_card *card, u8 *ext_csd) card->ext_csd.data_sector_size = 512; } + /* eMMC v5 or later */ + if (card->ext_csd.rev >= 7) { + card->ext_csd.ffu_capable = + ((ext_csd[EXT_CSD_SUPPORTED_MODE] & 0x1) == 0x1) && + ((ext_csd[EXT_CSD_FW_CONFIG] & 0x1) == 0x0); + card->ext_csd.ffu_mode_op = ext_csd[EXT_CSD_FFU_FEATURES]; + } else { + card->ext_csd.ffu_capable = false; + } out: return err; } diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h index d424b9d..dd01efe 100644 --- a/include/linux/mmc/card.h +++ b/include/linux/mmc/card.h @@ -81,6 +81,8 @@ struct mmc_ext_csd { bool hpi_en; /* HPI enablebit */ bool hpi; /* HPI support bit */ unsigned int hpi_cmd; /* cmd used as HPI */ + bool ffu_capable; /* FFU support */ + bool ffu_mode_op; /* FFU mode operation */ bool bkops; /* background support bit */ bool bkops_en; /* background enable bit */ unsigned int data_sector_size; /* 512 bytes or 4KB */ diff --git a/include/linux/mmc/mmc.h b/include/linux/mmc/mmc.h index 64ec963..787787b 100644 --- a/include/linux/mmc/mmc.h +++ b/include/linux/mmc/mmc.h @@ -272,6 +272,9 @@ struct _mmc_csd { * EXT_CSD fields */ +#define EXT_CSD_FFU_STATUS 26 /* R */ +#define EXT_CSD_MODE_OPERATION_CODES 29 /* W */ +#define EXT_CSD_MODE_CONFIG 30 /* R/W */ #define EXT_CSD_FLUSH_CACHE 32 /* W */ #define EXT_CSD_CACHE_CTRL 33 /* R/W */ #define EXT_CSD_POWER_OFF_NOTIFICATION 34 /* R/W */ @@ -290,6 +293,7 @@ struct _mmc_csd { #define EXT_CSD_SANITIZE_START 165 /* W */ #define EXT_CSD_WR_REL_PARAM 166 /* RO */ #define EXT_CSD_RPMB_MULT 168 /* RO */ +#define EXT_CSD_FW_CONFIG 169 /* R/W */ #define EXT_CSD_BOOT_WP 173 /* R/W */ #define EXT_CSD_ERASE_GROUP_DEF 175 /* R/W */ #define EXT_CSD_PART_CONFIG 179 /* R/W */ @@ -326,6 +330,11 @@ struct _mmc_csd { #define EXT_CSD_GENERIC_CMD6_TIME 248 /* RO */ #define EXT_CSD_CACHE_SIZE 249 /* RO, 4 bytes */ #define EXT_CSD_PWR_CL_DDR_200_360 253 /* RO */ +#define EXT_CSD_NUM_OF_FW_SEC_PROG 302 /* RO, 4 bytes */ +#define EXT_CSD_FFU_ARG 487 /* RO, 4 bytes */ +#define EXT_CSD_OPERATION_CODE_TIMEOUT 491 /* RO */ +#define EXT_CSD_FFU_FEATURES 492 /* RO */ +#define EXT_CSD_SUPPORTED_MODE 493 /* RO */ #define EXT_CSD_TAG_UNIT_SIZE 498 /* RO */ #define EXT_CSD_DATA_TAG_SUPPORT 499 /* RO */ #define EXT_CSD_MAX_PACKED_WRITES 500 /* RO */ -- 1.7.9.5
next prev reply other threads:[~2014-11-10 18:48 UTC|newest] Thread overview: 88+ messages / expand[flat|nested] mbox.gz Atom feed top [not found] <n@samsung.com> 2012-08-05 13:08 ` [RFC/PATCH] mmc: core: Add support for idle time BKOPs Maya Erez 2012-08-05 13:08 ` Maya Erez 2012-08-30 7:36 ` Jaehoon Chung 2012-09-04 5:42 ` merez 2012-09-04 5:42 ` merez 2012-10-04 22:28 ` [PATCH v2] mmc: core: Add support for idle time BKOPS Maya Erez 2012-10-04 22:28 ` Maya Erez 2012-10-09 3:52 ` merez 2012-10-09 3:52 ` merez 2012-10-16 7:53 ` Jaehoon Chung 2012-11-07 4:28 ` merez 2012-11-07 4:28 ` merez 2012-11-08 5:26 ` Jaehoon Chung 2012-11-11 9:25 ` Subhash Jadavani 2012-10-18 16:31 ` [PATCH 1/6] mmc: core: sdio_io.c: Fixed lines with > 80 chars Sangho Yi 2012-10-18 16:31 ` [PATCH 2/6] mmc: core: sdio_bus.c: Removed trailing whitespace error Sangho Yi 2012-10-18 16:31 ` [PATCH 3/6] mmc: core: sdio_bus.c: Fixed lines > 80 chars Sangho Yi 2012-10-18 23:54 ` Jaehoon Chung 2012-10-18 16:31 ` [PATCH 4/6] mmc: core: sdio_bus.c: Removed space between func name and () Sangho Yi 2012-10-18 16:31 ` [PATCH 5/6] mmc: core: sdio_bus.c: Fixed a warning for the pr_warning( Sangho Yi 2012-10-18 16:31 ` [PATCH 6/6] mmc: core: sdio_bus.c: Removed unnecessary NULL check routine Sangho Yi 2012-10-18 16:47 ` [PATCH 1/6] mmc: core: sdio_io.c: Fixed lines with > 80 chars Joe Perches 2012-11-01 14:40 ` [PATCH v2] mmc: fix async request mechanism for sequential read scenarios Konstantin Dorfman 2012-11-05 6:20 ` Per Förlin 2012-11-05 7:15 ` Jaehoon Chung 2012-11-12 12:10 ` Konstantin Dorfman 2012-11-08 10:41 ` Jaehoon Chung 2012-11-08 12:51 ` merez 2012-11-09 5:46 ` Jaehoon Chung 2012-11-12 12:49 ` Konstantin Dorfman 2012-11-06 8:40 ` Jaehoon Chung 2012-11-12 12:42 ` Konstantin Dorfman 2012-11-12 16:51 ` [PATCH v3] " Konstantin Dorfman 2012-11-13 13:42 ` Seungwon Jeon 2012-11-15 10:23 ` Seungwon Jeon 2012-11-20 2:05 ` Seungwon Jeon 2012-11-25 11:56 ` [PATCH v3] mmc: core: Add support for idle time BKOPS Maya Erez 2012-11-25 11:56 ` Maya Erez 2012-11-25 12:46 ` merez 2012-11-25 12:46 ` merez 2012-11-28 14:22 ` Chris Ball 2012-11-29 12:40 ` Jaehoon Chung 2012-12-03 9:49 ` merez 2012-12-04 9:52 ` Ulf Hansson 2012-12-04 21:17 ` merez 2012-12-06 10:18 ` Ulf Hansson 2012-12-12 12:32 ` merez 2012-12-13 10:17 ` Ulf Hansson 2012-12-21 8:35 ` Maya Erez 2012-12-21 8:35 ` Maya Erez 2012-12-21 9:56 ` Ulf Hansson 2012-12-21 10:24 ` Jaehoon Chung 2012-12-05 13:38 ` [PATCH v4] mmc: fix async request mechanism for sequential read scenarios Konstantin Dorfman 2012-12-06 5:24 ` Seungwon Jeon 2012-12-06 14:23 ` Konstantin Dorfman 2012-12-10 14:23 ` [RESEND PATCH " Konstantin Dorfman 2012-12-12 9:26 ` Seungwon Jeon 2012-12-17 12:26 ` Seungwon Jeon 2012-12-18 16:00 ` Konstantin Dorfman 2012-12-18 16:19 ` Chris Ball 2012-12-20 7:39 ` Seungwon Jeon 2012-12-26 9:26 ` [PATCH v5] " Konstantin Dorfman 2012-12-28 10:16 ` Seungwon Jeon 2013-01-14 19:31 ` Chris Ball 2013-01-15 12:00 ` Konstantin Dorfman 2013-01-22 10:48 ` [PATCH 1/2] mmc: core: fix permanent sleep of mmcqd during card removal Seungwon Jeon 2013-01-31 11:05 ` Jaehoon Chung 2013-01-31 11:25 ` Seungwon Jeon 2013-02-08 12:07 ` Konstantin Dorfman 2013-02-11 17:00 ` Chris Ball 2013-01-30 6:30 ` Seungwon Jeon 2013-01-31 6:53 ` Subhash Jadavani 2013-02-04 11:43 ` Subhash Jadavani 2013-02-05 5:57 ` Seungwon Jeon 2013-02-05 7:05 ` Jaehoon Chung 2013-02-05 7:32 ` Subhash Jadavani 2013-02-04 19:27 ` Konstantin Dorfman 2013-01-10 20:15 ` [PATCH v5 0/3] Add support for periodic BKOPS Maya Erez 2013-01-11 11:33 ` Jaehoon Chung 2014-11-10 17:13 ` [PATCH 0/3] mmc: Support FFU for eMMC v5.0 Avi Shchislowski 2014-11-11 3:33 ` Jaehoon Chung 2014-11-10 17:13 ` Avi Shchislowski [this message] 2014-11-10 17:13 ` [PATCH 1/3] " Avi Shchislowski 2014-11-11 3:07 ` Jaehoon Chung 2014-11-11 8:44 ` Avi Shchislowski 2014-11-10 17:18 ` [PATCH 2/3] " Avi Shchislowski 2014-11-10 17:18 ` Avi Shchislowski 2014-11-11 3:30 ` 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=1415639632-878-1-git-send-email-avi.shchislowski@sandisk.com \ --to=avi.shchislowski@sandisk.com \ --cc=Alex.Lemberg@sandisk.com \ --cc=cjb@laptop.org \ --cc=gwendal@google.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mmc@vger.kernel.org \ --cc=ulf.hansson@linaro.org \ /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: linkBe 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.