[ ... ]
Do you mind splitting as:
- Add TYPE_EMMC, emmc_class_init and sd_proto_emmc[] with
already existing handlers (1 patch)
- Add new handlers, from smaller to sd_emmc_set_csd(),
and finally mmc_set_ext_csd() with the EXT_CSD definitions
(various patches).
Sure, I will reorganize the patchset. It will ease the review.
Otherwise LGTM!
What is your test suite?
Not simple.
Get the latest FW images for the rainier platform from :
https://jenkins.openbmc.org/view/latest/job/latest-master/label=docker-builder,target=p10bmc/lastSuccessfulBuild/artifact/openbmc/build/tmp/deploy/images/p10bmc/
and build a bootable eMMC with such a sequence :
dd of=$mmc if=/dev/zero bs=1M count=128
dd of=$mmc if=${fw_dir}/u-boot-spl.bin conv=notrunc
dd of=$mmc if=${fw_dir}/u-boot.bin conv=notrunc bs=1K seek=64
dd of=$mmc if=${fw_dir}/u-boot-env.bin conv=notrunc bs=1K seek=$((896 + 64))
xzdec $wicxz | dd status=progress of=$mmc conv=notrunc bs=1M seek=2
truncate --size 16G $mmc
We could have a smaller image with a buildroot rootfs.
Then, boot with:
qemu-system-arm -M rainier-bmc -net nic,netdev=net0 -netdev user \
-drive file=$mmc.qcow2,format=qcow2,if=sd,id=sd0,index=2
The Aspeed machines (AST2600) can boot from flash or eMMC and the above
command line does the trick. It is not optimal.
Thanks,
C.