Signed-off-by: Cédric Le Goater <c...@kaod.org> --- hw/arm/aspeed.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c index 505cfd3b5fc4..4f028b704751 100644 --- a/hw/arm/aspeed.c +++ b/hw/arm/aspeed.c @@ -319,14 +319,17 @@ void aspeed_board_init_flashes(AspeedSMCState *s, const char *flashtype, } } -static void sdhci_attach_drive(SDHCIState *sdhci, DriveInfo *dinfo) +static void sdhci_attach_drive(SDHCIState *sdhci, DriveInfo *dinfo, bool emmc) { DeviceState *card; if (!dinfo) { return; } - card = qdev_new(TYPE_SD_CARD); + card = qdev_new(emmc ? TYPE_EMMC : TYPE_SD_CARD); + if (emmc) { + qdev_prop_set_uint8(card, "spec_version", SD_PHY_SPECv3_01_VERS); + } qdev_prop_set_drive_err(card, "drive", blk_by_legacy_dinfo(dinfo), &error_fatal); qdev_realize_and_unref(card, @@ -428,12 +431,13 @@ static void aspeed_machine_init(MachineState *machine) for (i = 0; i < bmc->soc.sdhci.num_slots; i++) { sdhci_attach_drive(&bmc->soc.sdhci.slots[i], - drive_get(IF_SD, 0, i)); + drive_get(IF_SD, 0, i), false); } if (bmc->soc.emmc.num_slots) { sdhci_attach_drive(&bmc->soc.emmc.slots[0], - drive_get(IF_SD, 0, bmc->soc.sdhci.num_slots)); + drive_get(IF_SD, 0, bmc->soc.sdhci.num_slots), + true); } if (!bmc->mmio_exec) { -- 2.41.0