aspeed: Change type of eMMC device

The QEMU device model representing the eMMC device of the machine is
currently created with type SD_CARD. Change the type to EMMC now that
it is available.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Andrew Jeffery <andrew@codeconstruct.com.au>
Tested-by: Andrew Jeffery <andrew@codeconstruct.com.au>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org>
This commit is contained in:
Cédric Le Goater 2024-07-17 08:30:15 +02:00 committed by Cédric Le Goater
parent 13951ccfcd
commit dddfc771e0

View file

@ -327,14 +327,14 @@ 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; DeviceState *card;
if (!dinfo) { if (!dinfo) {
return; return;
} }
card = qdev_new(TYPE_SD_CARD); card = qdev_new(emmc ? TYPE_EMMC : TYPE_SD_CARD);
qdev_prop_set_drive_err(card, "drive", blk_by_legacy_dinfo(dinfo), qdev_prop_set_drive_err(card, "drive", blk_by_legacy_dinfo(dinfo),
&error_fatal); &error_fatal);
qdev_realize_and_unref(card, qdev_realize_and_unref(card,
@ -436,12 +436,13 @@ static void aspeed_machine_init(MachineState *machine)
for (i = 0; i < bmc->soc->sdhci.num_slots; i++) { for (i = 0; i < bmc->soc->sdhci.num_slots; i++) {
sdhci_attach_drive(&bmc->soc->sdhci.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) { if (bmc->soc->emmc.num_slots) {
sdhci_attach_drive(&bmc->soc->emmc.slots[0], 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) { if (!bmc->mmio_exec) {