Message ID | 20220530193816.45841-4-philippe.mathieu.daude@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | hw/sd: Rework models for eMMC support | expand |
On 5/30/22 21:37, Philippe Mathieu-Daudé wrote: > From: Philippe Mathieu-Daudé <f4bug@amsat.org> > > Add the sd_version_str() helper. > > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Cédric Le Goater <clg@kaod.org> > --- > hw/sd/sd.c | 18 ++++++++++++++++-- > 1 file changed, 16 insertions(+), 2 deletions(-) > > diff --git a/hw/sd/sd.c b/hw/sd/sd.c > index b0e7a7e6d0..b3e61b9f84 100644 > --- a/hw/sd/sd.c > +++ b/hw/sd/sd.c > @@ -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; > }
diff --git a/hw/sd/sd.c b/hw/sd/sd.c index b0e7a7e6d0..b3e61b9f84 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -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; }