Message ID | 20240628070216.92609-79-philmd@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | hw/sd/sdcard: Add eMMC support | expand |
On 6/28/24 9:01 AM, Philippe Mathieu-Daudé wrote: > All read/write on DAT lines are explicitly handled. > Reaching this point would be a programming error: > replace by an assertion. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Cédric Le Goater <clg@redhat.com> Thanks, C. > --- > hw/sd/sd.c | 9 ++++----- > 1 file changed, 4 insertions(+), 5 deletions(-) > > diff --git a/hw/sd/sd.c b/hw/sd/sd.c > index 0a7b422b2c..64621d4340 100644 > --- a/hw/sd/sd.c > +++ b/hw/sd/sd.c > @@ -1951,7 +1951,6 @@ int sd_do_command(SDState *sd, SDRequest *req, > /* Valid command, we can update the 'state before command' bits. > * (Do this now so they appear in r1 responses.) > */ > - sd->current_cmd = req->cmd; > sd->card_status = FIELD_DP32(sd->card_status, CSR, > CURRENT_STATE, last_state); > } > @@ -2016,6 +2015,8 @@ send_response: > qemu_hexdump(stderr, "Response", response, rsplen); > #endif > > + sd->current_cmd = rtype == sd_illegal ? 0 : req->cmd; > + > return rsplen; > } > > @@ -2171,8 +2172,7 @@ void sd_write_byte(SDState *sd, uint8_t value) > break; > > default: > - qemu_log_mask(LOG_GUEST_ERROR, "%s: unknown command\n", __func__); > - break; > + g_assert_not_reached(); > } > } > > @@ -2238,8 +2238,7 @@ uint8_t sd_read_byte(SDState *sd) > break; > > default: > - qemu_log_mask(LOG_GUEST_ERROR, "%s: unknown command\n", __func__); > - return 0x00; > + g_assert_not_reached(); > } > > return ret;
diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 0a7b422b2c..64621d4340 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -1951,7 +1951,6 @@ int sd_do_command(SDState *sd, SDRequest *req, /* Valid command, we can update the 'state before command' bits. * (Do this now so they appear in r1 responses.) */ - sd->current_cmd = req->cmd; sd->card_status = FIELD_DP32(sd->card_status, CSR, CURRENT_STATE, last_state); } @@ -2016,6 +2015,8 @@ send_response: qemu_hexdump(stderr, "Response", response, rsplen); #endif + sd->current_cmd = rtype == sd_illegal ? 0 : req->cmd; + return rsplen; } @@ -2171,8 +2172,7 @@ void sd_write_byte(SDState *sd, uint8_t value) break; default: - qemu_log_mask(LOG_GUEST_ERROR, "%s: unknown command\n", __func__); - break; + g_assert_not_reached(); } } @@ -2238,8 +2238,7 @@ uint8_t sd_read_byte(SDState *sd) break; default: - qemu_log_mask(LOG_GUEST_ERROR, "%s: unknown command\n", __func__); - return 0x00; + g_assert_not_reached(); } return ret;
All read/write on DAT lines are explicitly handled. Reaching this point would be a programming error: replace by an assertion. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- hw/sd/sd.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-)