[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 04/22] sd: emmc: update OCR fields for eMMC
From: |
Cédric Le Goater |
Subject: |
Re: [PATCH v2 04/22] sd: emmc: update OCR fields for eMMC |
Date: |
Mon, 22 Feb 2021 10:51:54 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0 |
On 2/22/21 9:20 AM, Sai Pavan Boddu wrote:
> From: Vincent Palatin <vpalatin@chromium.org>
>
> eMMC OCR register doesn't has UHS-II field and voltage fields are
> different.
Can a patch be "From" a person without a "Signed-off-by" of the same
person ?
C.
> Signed-off-by: Sai Pavan Boddu <sai.pavan.boddu@xilinx.com>
>
> ---
> hw/sd/sd.c | 27 ++++++++++++++++++++++++---
> 1 file changed, 24 insertions(+), 3 deletions(-)
>
> diff --git a/hw/sd/sd.c b/hw/sd/sd.c
> index 42ee49c..430bea5 100644
> --- a/hw/sd/sd.c
> +++ b/hw/sd/sd.c
> @@ -283,6 +283,15 @@ FIELD(OCR, UHS_II_CARD, 29, 1) /* Only
> UHS-II */
> FIELD(OCR, CARD_CAPACITY, 30, 1) /* 0:SDSC, 1:SDHC/SDXC */
> FIELD(OCR, CARD_POWER_UP, 31, 1)
>
> +/*
> + * eMMC OCR register
> + */
> +FIELD(EMMC_OCR, VDD_WINDOW_0, 7, 1)
> +FIELD(EMMC_OCR, VDD_WINDOW_1, 8, 7)
> +FIELD(EMMC_OCR, VDD_WINDOW_2, 15, 9)
> +FIELD(EMMC_OCR, ACCESS_MODE, 29, 2)
> +FIELD(EMMC_OCR, POWER_UP, 31, 1)
> +
> #define ACMD41_ENQUIRY_MASK 0x00ffffff
> #define ACMD41_R3_MASK (R_OCR_VDD_VOLTAGE_WIN_HI_MASK \
> | R_OCR_ACCEPT_SWITCH_1V8_MASK \
> @@ -292,8 +301,16 @@ FIELD(OCR, CARD_POWER_UP, 31, 1)
>
> static void sd_set_ocr(SDState *sd)
> {
> - /* All voltages OK */
> - sd->ocr = R_OCR_VDD_VOLTAGE_WIN_HI_MASK;
> + if (sd->emmc) {
> + /*
> + * Dual Voltage eMMC card
> + */
> + sd->ocr = R_EMMC_OCR_VDD_WINDOW_0_MASK |
> + R_EMMC_OCR_VDD_WINDOW_2_MASK;
> + } else {
> + /* All voltages OK */
> + sd->ocr = R_OCR_VDD_VOLTAGE_WIN_HI_MASK;
> + }
> }
>
> static void sd_ocr_powerup(void *opaque)
> @@ -521,7 +538,11 @@ static void sd_response_r1_make(SDState *sd, uint8_t
> *response)
>
> static void sd_response_r3_make(SDState *sd, uint8_t *response)
> {
> - stl_be_p(response, sd->ocr & ACMD41_R3_MASK);
> + if (sd->emmc) {
> + stl_be_p(response, sd->ocr);
> + } else {
> + stl_be_p(response, sd->ocr & ACMD41_R3_MASK);
> + }
> }
>
> static void sd_response_r6_make(SDState *sd, uint8_t *response)
>
- [PATCH v2 00/22] eMMC support, Sai Pavan Boddu, 2021/02/22
- [PATCH v2 13/22] sd: emmc: Make ACMD41 illegal for mmc, Sai Pavan Boddu, 2021/02/22
- [PATCH v2 07/22] sd: sdmmc-internal: Add command string for SEND_OP_CMD, Sai Pavan Boddu, 2021/02/22
- [PATCH v2 09/22] sd: emmc: Update CMD1 definition for eMMC, Sai Pavan Boddu, 2021/02/22
- [PATCH v2 03/22] sd: emmc: Add support for eMMC cards, Sai Pavan Boddu, 2021/02/22
- [PATCH v2 18/22] sd: emmc: Subtract bootarea size from blk, Sai Pavan Boddu, 2021/02/22
- [PATCH v2 01/22] block: add eMMC block device type, Sai Pavan Boddu, 2021/02/22