diff options
author | Philippe Mathieu-Daudé <f4bug@amsat.org> | 2022-05-30 18:56:06 +0200 |
---|---|---|
committer | Cédric Le Goater <clg@kaod.org> | 2023-09-01 11:40:04 +0200 |
commit | 94ef3041d21a00bb2d57c987c87c6eeb8812c488 (patch) | |
tree | 0dde85a6d11055faec15c79a2bd9ec42863731fd /hw/sd | |
parent | 132011396f167fbf2199ad880163fe51fd40bd5d (diff) | |
download | qemu-94ef3041d21a00bb2d57c987c87c6eeb8812c488.zip qemu-94ef3041d21a00bb2d57c987c87c6eeb8812c488.tar.gz qemu-94ef3041d21a00bb2d57c987c87c6eeb8812c488.tar.bz2 |
hw/sd: When card is in wrong state, log which spec version is used
Add the sd_version_str() helper.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Diffstat (limited to 'hw/sd')
-rw-r--r-- | hw/sd/sd.c | 18 |
1 files changed, 16 insertions, 2 deletions
@@ -145,6 +145,19 @@ struct SDState { static void sd_realize(DeviceState *dev, Error **errp); +static const char *sd_version_str(enum SDPhySpecificationVersion version) +{ + static const char *sdphy_version[] = { + [SD_PHY_SPECv1_10_VERS] = "v1.10", + [SD_PHY_SPECv2_00_VERS] = "v2.00", + [SD_PHY_SPECv3_01_VERS] = "v3.01", + }; + if (version >= ARRAY_SIZE(sdphy_version)) { + return "unsupported version"; + } + return sdphy_version[version]; +} + static const char *sd_state_name(enum SDCardStates state) { static const char *state_name[] = { @@ -968,8 +981,9 @@ static bool address_in_range(SDState *sd, const char *desc, static sd_rsp_type_t sd_invalid_state_for_cmd(SDState *sd, SDRequest req) { - qemu_log_mask(LOG_GUEST_ERROR, "SD: CMD%i in a wrong state: %s\n", - req.cmd, sd_state_name(sd->state)); + qemu_log_mask(LOG_GUEST_ERROR, "SD: CMD%i in a wrong state: %s (spec %s)\n", + req.cmd, sd_state_name(sd->state), + sd_version_str(sd->spec_version)); return sd_illegal; } |