All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ricky WU <ricky_wu@realtek.com>
To: Avri Altman <avri.altman@wdc.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	"linux-mmc@vger.kernel.org" <linux-mmc@vger.kernel.org>
Subject: RE: [PATCH v2 03/10] mmc: sd: Add Extension memory addressing
Date: Fri, 9 Aug 2024 09:54:02 +0000	[thread overview]
Message-ID: <94bfdd1ab7bb4e998097bb4575b2a821@realtek.com> (raw)
In-Reply-To: <20240807060309.2403023-4-avri.altman@wdc.com>

> SDUC memory addressing spans beyond 2TB and up to 128TB.  Therefore, 38
> bits are required to access the entire memory space of all sectors.
> Those extra 6 bits are to be carried by CMD22 prior of sending
> read/write/erase commands: CMD17, CMD18, CMD24, CMD25, CMD32, and
> CMD33.
> 
> CMD22 will carry the higher order 6 bits, and must precedes any of the above
> commands even if it targets sector < 2TB.
> 
> No error related to address or length is indicated in CMD22 but rather in the
> read/write command itself.
> 
> Signed-off-by: Avri Altman <avri.altman@wdc.com>
> ---
>  drivers/mmc/core/sd_ops.c | 15 +++++++++++++++
> drivers/mmc/core/sd_ops.h |  1 +
>  include/linux/mmc/sd.h    |  3 +++
>  3 files changed, 19 insertions(+)
> 
> diff --git a/drivers/mmc/core/sd_ops.c b/drivers/mmc/core/sd_ops.c index
> 7f6963dac873..8b69129d7b61 100644
> --- a/drivers/mmc/core/sd_ops.c
> +++ b/drivers/mmc/core/sd_ops.c
> @@ -199,6 +199,21 @@ int mmc_send_app_op_cond(struct mmc_host *host,
> u32 ocr, u32 *rocr)
>         return 0;
>  }
> 
> +int mmc_send_ext_addr(struct mmc_host *host, sector_t addr) {
> +       struct mmc_command cmd = {
> +               .opcode = SD_ADDR_EXT,
> +               .arg = (u32)((addr >> 32) & 0x3F),
> +               .flags = MMC_RSP_R1 | MMC_CMD_AC,
> +       };
> +
> +       if (!mmc_card_is_sduc(host))
> +               return 0;
> +
I think here can be removed, all mmc_send_ext_addr caller are have if-statement to check the card is SDUC

> +       return mmc_wait_for_cmd(host, &cmd, 0); }
> +EXPORT_SYMBOL_GPL(mmc_send_ext_addr);
> +
>  static int __mmc_send_if_cond(struct mmc_host *host, u32 ocr, u8 pcie_bits,
>                               u32 *resp)  { diff --git
> a/drivers/mmc/core/sd_ops.h b/drivers/mmc/core/sd_ops.h index
> 7667fc223b74..462efd43acfa 100644
> --- a/drivers/mmc/core/sd_ops.h
> +++ b/drivers/mmc/core/sd_ops.h
> @@ -21,6 +21,7 @@ int mmc_send_relative_addr(struct mmc_host *host,
> unsigned int *rca);  int mmc_app_send_scr(struct mmc_card *card);  int
> mmc_app_sd_status(struct mmc_card *card, void *ssr);  int
> mmc_app_cmd(struct mmc_host *host, struct mmc_card *card);
> +int mmc_send_ext_addr(struct mmc_host *host, sector_t addr);
> 
>  #endif
> 
> diff --git a/include/linux/mmc/sd.h b/include/linux/mmc/sd.h index
> 865cc0ca8543..af5fc70e09a2 100644
> --- a/include/linux/mmc/sd.h
> +++ b/include/linux/mmc/sd.h
> @@ -15,6 +15,9 @@
>  #define SD_SEND_IF_COND           8   /* bcr  [11:0] See below   R7
> */
>  #define SD_SWITCH_VOLTAGE         11  /* ac
> R1  */
> 
> +/* Class 2 */
> +#define SD_ADDR_EXT             22   /* ac   [5:0]
> R1  */
> +
>    /* class 10 */
>  #define SD_SWITCH                 6   /* adtc [31:0] See below   R1
> */
> 
> --
> 2.25.1


  reply	other threads:[~2024-08-09  9:54 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-07  6:02 [PATCH v2 00/10] Add SDUC Support Avri Altman
2024-08-07  6:03 ` [PATCH v2 01/10] mmc: sd: SDUC Support Recognition Avri Altman
2024-08-09  9:53   ` Ricky WU
2024-08-10  7:58     ` Avri Altman
2024-08-13  5:42       ` Avri Altman
2024-08-07  6:03 ` [PATCH v2 02/10] mmc: sd: Add SD CSD version 3.0 Avri Altman
2024-08-07  6:03 ` [PATCH v2 03/10] mmc: sd: Add Extension memory addressing Avri Altman
2024-08-09  9:54   ` Ricky WU [this message]
2024-08-10  8:11     ` Avri Altman
2024-08-07  6:03 ` [PATCH v2 04/10] mmc: core: Add open-ended Ext " Avri Altman
2024-08-07  6:03 ` [PATCH v2 05/10] mmc: host: Always use manual-cmd23 in SDUC Avri Altman
2024-08-07  6:03 ` [PATCH v2 06/10] mmc: core: Add close-ended Ext memory addressing Avri Altman
2024-08-07  6:03 ` [PATCH v2 07/10] mmc: host: " Avri Altman
2024-08-07  6:03 ` [PATCH v2 08/10] mmc: core: Allow mmc erase to carry large addresses Avri Altman
2024-08-07 20:15   ` kernel test robot
2024-08-07 21:07   ` kernel test robot
2024-08-07  6:03 ` [PATCH v2 09/10] mmc: core: Add Ext memory addressing for erase Avri Altman
2024-08-07  6:03 ` [PATCH v2 10/10] mmc: core: Adjust ACMD22 to SDUC Avri Altman
2024-08-09  6:54 ` [PATCH v2 00/10] Add SDUC Support Ricky WU
2024-08-09  7:37   ` Avri Altman

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=94bfdd1ab7bb4e998097bb4575b2a821@realtek.com \
    --to=ricky_wu@realtek.com \
    --cc=avri.altman@wdc.com \
    --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: 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.