|
|
|
@ -261,7 +261,6 @@ static const char *sd_acmd_name(SDState *sd, uint8_t cmd) |
|
|
|
[14] = "DPS_spec", [15] = "DPS_spec", |
|
|
|
[16] = "DPS_spec", |
|
|
|
[18] = "SECU_spec", |
|
|
|
[23] = "SET_WR_BLK_ERASE_COUNT", |
|
|
|
[42] = "SET_CLR_CARD_DETECT", |
|
|
|
[51] = "SEND_SCR", |
|
|
|
[52] = "SECU_spec", [53] = "SECU_spec", |
|
|
|
@ -1677,6 +1676,15 @@ static sd_rsp_type_t sd_acmd_SEND_NUM_WR_BLOCKS(SDState *sd, SDRequest req) |
|
|
|
&sd->blk_written, sizeof(sd->blk_written)); |
|
|
|
} |
|
|
|
|
|
|
|
/* ACMD23 */ |
|
|
|
static sd_rsp_type_t sd_acmd_SET_WR_BLK_ERASE_COUNT(SDState *sd, SDRequest req) |
|
|
|
{ |
|
|
|
if (sd->state != sd_transfer_state) { |
|
|
|
return sd_invalid_state_for_cmd(sd, req); |
|
|
|
} |
|
|
|
return sd_r1; |
|
|
|
} |
|
|
|
|
|
|
|
static sd_rsp_type_t sd_normal_command(SDState *sd, SDRequest req) |
|
|
|
{ |
|
|
|
uint64_t addr; |
|
|
|
@ -1801,16 +1809,6 @@ static sd_rsp_type_t sd_app_command(SDState *sd, |
|
|
|
} |
|
|
|
|
|
|
|
switch (req.cmd) { |
|
|
|
case 23: /* ACMD23: SET_WR_BLK_ERASE_COUNT */ |
|
|
|
switch (sd->state) { |
|
|
|
case sd_transfer_state: |
|
|
|
return sd_r1; |
|
|
|
|
|
|
|
default: |
|
|
|
break; |
|
|
|
} |
|
|
|
break; |
|
|
|
|
|
|
|
case 41: /* ACMD41: SD_APP_OP_COND */ |
|
|
|
if (sd->state != sd_idle_state) { |
|
|
|
break; |
|
|
|
@ -2326,6 +2324,7 @@ static const SDProto sd_proto_spi = { |
|
|
|
.acmd = { |
|
|
|
[13] = {8, sd_spi, "SD_STATUS", sd_acmd_SD_STATUS}, |
|
|
|
[22] = {8, sd_spi, "SEND_NUM_WR_BLOCKS", sd_acmd_SEND_NUM_WR_BLOCKS}, |
|
|
|
[23] = {8, sd_spi, "SET_WR_BLK_ERASE_COUNT", sd_acmd_SET_WR_BLK_ERASE_COUNT}, |
|
|
|
[41] = {8, sd_spi, "SEND_OP_COND", spi_cmd_SEND_OP_COND}, |
|
|
|
}, |
|
|
|
}; |
|
|
|
@ -2384,6 +2383,7 @@ static const SDProto sd_proto_sd = { |
|
|
|
[6] = {8, sd_ac, "SET_BUS_WIDTH", sd_acmd_SET_BUS_WIDTH}, |
|
|
|
[13] = {8, sd_adtc, "SD_STATUS", sd_acmd_SD_STATUS}, |
|
|
|
[22] = {8, sd_adtc, "SEND_NUM_WR_BLOCKS", sd_acmd_SEND_NUM_WR_BLOCKS}, |
|
|
|
[23] = {8, sd_ac, "SET_WR_BLK_ERASE_COUNT", sd_acmd_SET_WR_BLK_ERASE_COUNT}, |
|
|
|
}, |
|
|
|
}; |
|
|
|
|
|
|
|
|