[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 15/18] hw/sd: sd: Skip write protect groups check in CMD24/25 for
From: |
Philippe Mathieu-Daudé |
Subject: |
[PULL 15/18] hw/sd: sd: Skip write protect groups check in CMD24/25 for high capacity cards |
Date: |
Sat, 20 Feb 2021 01:13:06 +0100 |
From: Bin Meng <bin.meng@windriver.com>
High capacity cards don't support write protection hence we should
not perform the write protect groups check in CMD24/25 for them.
Signed-off-by: Bin Meng <bin.meng@windriver.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20210216150225.27996-8-bmeng.cn@gmail.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
hw/sd/sd.c | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/hw/sd/sd.c b/hw/sd/sd.c
index 883c04de028..3a515a5365f 100644
--- a/hw/sd/sd.c
+++ b/hw/sd/sd.c
@@ -1268,8 +1268,10 @@ static sd_rsp_type_t sd_normal_command(SDState *sd,
SDRequest req)
sd->data_offset = 0;
sd->blk_written = 0;
- if (sd_wp_addr(sd, sd->data_start)) {
- sd->card_status |= WP_VIOLATION;
+ if (sd->size <= SDSC_MAX_CAPACITY) {
+ if (sd_wp_addr(sd, sd->data_start)) {
+ sd->card_status |= WP_VIOLATION;
+ }
}
if (sd->csd[14] & 0x30) {
sd->card_status |= WP_VIOLATION;
@@ -1821,9 +1823,11 @@ void sd_write_byte(SDState *sd, uint8_t value)
sd->card_status |= ADDRESS_ERROR;
break;
}
- if (sd_wp_addr(sd, sd->data_start)) {
- sd->card_status |= WP_VIOLATION;
- break;
+ if (sd->size <= SDSC_MAX_CAPACITY) {
+ if (sd_wp_addr(sd, sd->data_start)) {
+ sd->card_status |= WP_VIOLATION;
+ break;
+ }
}
}
sd->data[sd->data_offset++] = value;
--
2.26.2
- [PULL 05/18] hw/sd: ssi-sd: Support single block write, (continued)
- [PULL 05/18] hw/sd: ssi-sd: Support single block write, Philippe Mathieu-Daudé, 2021/02/19
- [PULL 06/18] hw/sd: ssi-sd: Support multiple block write, Philippe Mathieu-Daudé, 2021/02/19
- [PULL 07/18] hw/sd: ssi-sd: Fix SEND_IF_COND (CMD8) response, Philippe Mathieu-Daudé, 2021/02/19
- [PULL 08/18] hw/sd: ssi-sd: Fix STOP_TRANSMISSION (CMD12) response, Philippe Mathieu-Daudé, 2021/02/19
- [PULL 09/18] hw/sd: ssi-sd: Handle the rest commands with R1b response type, Philippe Mathieu-Daudé, 2021/02/19
- [PULL 10/18] hw/sd: sd: Fix address check in sd_erase(), Philippe Mathieu-Daudé, 2021/02/19
- [PULL 11/18] hw/sd: sd: Only SDSC cards support CMD28/29/30, Philippe Mathieu-Daudé, 2021/02/19
- [PULL 12/18] hw/sd: sd: Fix CMD30 response type, Philippe Mathieu-Daudé, 2021/02/19
- [PULL 13/18] hw/sd: sd: Move the sd_block_{read, write} and macros ahead, Philippe Mathieu-Daudé, 2021/02/19
- [PULL 14/18] hw/sd: sd: Skip write protect groups check in sd_erase() for high capacity cards, Philippe Mathieu-Daudé, 2021/02/19
- [PULL 15/18] hw/sd: sd: Skip write protect groups check in CMD24/25 for high capacity cards,
Philippe Mathieu-Daudé <=
- [PULL 16/18] hw/sd: sd: Bypass the RCA check for CMD13 in SPI mode, Philippe Mathieu-Daudé, 2021/02/19
- [PULL 17/18] hw/sd: sdhci: Simplify updating s->prnsts in sdhci_sdma_transfer_multi_blocks(), Philippe Mathieu-Daudé, 2021/02/19
- [PULL 18/18] MAINTAINERS: Add Bin Meng as co-maintainer for SD/MMC cards, Philippe Mathieu-Daudé, 2021/02/19
- Re: [PULL 00/18] SD/MMC patches for 2021-02-20, Peter Maydell, 2021/02/21