On 5/31/22 21:07, Philippe Mathieu-Daudé wrote:
On 31/5/22 11:19, Cédric Le Goater wrote:
On 5/30/22 21:37, Philippe Mathieu-Daudé wrote:
From: Philippe Mathieu-Daudé <f4...@amsat.org>
Rebase/respin of Cédric RFC:
https://lore.kernel.org/qemu-devel/20220318132824.1134400-1-...@kaod.org/
(sorry it took me so long guys...)
Pushed at https://gitlab.com/philmd/qemu/-/commits/emmc-v2
I plan to queue patches 1-12 via sdmmc-next later this week.
Cédric, if you are happy with this series, it should be easy to rebase
your other patches on top and address the comments I left on the RFC :)
I pushed an update on :
https://github.com/legoater/qemu/commits/aspeed-7.1
Here is an image :
https://www.kaod.org/qemu/aspeed/mmc-p10bmc.qcow2
run with :
qemu-system-arm -M rainier-bmc -net nic -net user -drive
file=./mmc-p10bmc.qcow2,format=qcow2,if=sd,id=sd0,index=2 -nographic
-nodefaults -snapshot -serial mon:stdio
Useful, thanks.
I see in hw/arm/aspeed_ast2600.c:
/* Init sd card slot class here so that they're under the correct parent */
for (i = 0; i < ASPEED_SDHCI_NUM_SLOTS; ++i) {
object_initialize_child(obj, "sd-controller.sdhci[*]",
&s->sdhci.slots[i], TYPE_SYSBUS_SDHCI);
}
object_initialize_child(obj, "emmc-controller.sdhci", &s->emmc.slots[0],
TYPE_SYSBUS_SDHCI);
/* eMMC Boot Controller stub */
create_unimplemented_device("aspeed.emmc-boot-controller",
sc->memmap[ASPEED_DEV_EMMC_BC],
0x1000);
/* eMMC */
if (!sysbus_realize(SYS_BUS_DEVICE(&s->emmc), errp)) {
return;
}
sysbus_mmio_map(SYS_BUS_DEVICE(&s->emmc), 0, sc->memmap[ASPEED_DEV_EMMC]);
sysbus_connect_irq(SYS_BUS_DEVICE(&s->emmc), 0,
aspeed_soc_get_irq(s, ASPEED_DEV_EMMC));
Where is 'emmc-controller.sdhci' realized?
the slots are realized in aspeed_sdhci_realize(). It's not very
symmetric and the names are confusing.
I think that one of the problems is that the instance_init routine
of TYPE_ASPEED_SDHCI object doesn't know on how much slots
object_initialize_child() should be called since it depends on
its flavor : SD/eMMC.
In aspeed_sdhci_realize() you set sd-spec-version" = 2, is that OK
with eMMC?
ah yes. it boots anyhow.
What expects the real hw?
ast2400 ast2500 ast2600
SDHC card v2.0/v3.0 v2.0/v3.0 v2.0/v3.0
SDIO Host v2.0 v2.0 v2.0
SD slots 2 2 2
eMMC x v4.51 v5.1
eMMC slots x 1 1
on the ast2500, the SDIO and eMMC logics are combined in one controller
but since it is not used, QEMU does not model the eMMC part.
Thanks,
C.