Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
philmd authored and legoater committed Sep 1, 2023
1 parent 1320113 commit 94ef304
Showing 1 changed file with 16 additions and 2 deletions.
18 changes: 16 additions & 2 deletions hw/sd/sd.c
Expand Up @@ -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[] = {
Expand Down Expand Up @@ -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;
}
Expand Down

0 comments on commit 94ef304

Please sign in to comment.