Loading hw/sd/sd.c +26 −3 Original line number Diff line number Diff line Loading @@ -1386,9 +1386,11 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, /* Application specific commands (Class 8) */ case 55: /* CMD55: APP_CMD */ if (sd->rca != rca) if (!sd->spi) { if (sd->rca != rca) { return sd_r0; } } sd->expecting_acmd = true; sd->card_status |= APP_CMD; return sd_r1; Loading @@ -1408,6 +1410,18 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, } break; case 58: /* CMD58: READ_OCR (SPI) */ if (!sd->spi) { goto bad_cmd; } return sd_r3; case 59: /* CMD59: CRC_ON_OFF (SPI) */ if (!sd->spi) { goto bad_cmd; } goto unimplemented_spi_cmd; default: bad_cmd: qemu_log_mask(LOG_GUEST_ERROR, "SD: Unknown CMD%i\n", req.cmd); Loading @@ -1431,6 +1445,9 @@ static sd_rsp_type_t sd_app_command(SDState *sd, sd->card_status |= APP_CMD; switch (req.cmd) { case 6: /* ACMD6: SET_BUS_WIDTH */ if (sd->spi) { goto unimplemented_spi_cmd; } switch (sd->state) { case sd_transfer_state: sd->sd_status[0] &= 0x3f; Loading Loading @@ -1565,6 +1582,12 @@ static sd_rsp_type_t sd_app_command(SDState *sd, default: /* Fall back to standard commands. */ return sd_normal_command(sd, req); unimplemented_spi_cmd: /* Commands that are recognised but not yet implemented in SPI mode. */ qemu_log_mask(LOG_UNIMP, "SD: CMD%i not implemented in SPI mode\n", req.cmd); return sd_illegal; } qemu_log_mask(LOG_GUEST_ERROR, "SD: ACMD%i in a wrong state\n", req.cmd); Loading Loading
hw/sd/sd.c +26 −3 Original line number Diff line number Diff line Loading @@ -1386,9 +1386,11 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, /* Application specific commands (Class 8) */ case 55: /* CMD55: APP_CMD */ if (sd->rca != rca) if (!sd->spi) { if (sd->rca != rca) { return sd_r0; } } sd->expecting_acmd = true; sd->card_status |= APP_CMD; return sd_r1; Loading @@ -1408,6 +1410,18 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, } break; case 58: /* CMD58: READ_OCR (SPI) */ if (!sd->spi) { goto bad_cmd; } return sd_r3; case 59: /* CMD59: CRC_ON_OFF (SPI) */ if (!sd->spi) { goto bad_cmd; } goto unimplemented_spi_cmd; default: bad_cmd: qemu_log_mask(LOG_GUEST_ERROR, "SD: Unknown CMD%i\n", req.cmd); Loading @@ -1431,6 +1445,9 @@ static sd_rsp_type_t sd_app_command(SDState *sd, sd->card_status |= APP_CMD; switch (req.cmd) { case 6: /* ACMD6: SET_BUS_WIDTH */ if (sd->spi) { goto unimplemented_spi_cmd; } switch (sd->state) { case sd_transfer_state: sd->sd_status[0] &= 0x3f; Loading Loading @@ -1565,6 +1582,12 @@ static sd_rsp_type_t sd_app_command(SDState *sd, default: /* Fall back to standard commands. */ return sd_normal_command(sd, req); unimplemented_spi_cmd: /* Commands that are recognised but not yet implemented in SPI mode. */ qemu_log_mask(LOG_UNIMP, "SD: CMD%i not implemented in SPI mode\n", req.cmd); return sd_illegal; } qemu_log_mask(LOG_GUEST_ERROR, "SD: ACMD%i in a wrong state\n", req.cmd); Loading