如何在 U-Boot 中使用 MMC 加速写入?

How to speed up write using MMC in U-Boot?

我正在尝试使用 U-Boot 将一个大 (2 GiB) 图像从网络复制到 SD 卡。这个图像是一个文件系统;因此我使用的是 mmc 子系统。

我创建了这个图像的许多块,每个块 64 MiB,所以过程是这样的:

  1. 使用 TFTP 下载下一个块
  2. 使用mmc将子块写入sd卡
  3. 转到 1

问题是写入sd卡真的很慢。一块 4 MiB 需要几分钟。我试过不同的尺寸,结果都是一样的——很慢。

我正在使用 Raspberry Pi 2 和三星微型 SD 卡 (class 10)。

我写的命令是这样的:

mmc write 0x1600000 0xFF000 0x02

对我来说,这意味着,从内存地址0x1600000中读取0x02512 bytes并将它们从块0xFF000开始写入SD卡

我是不是用错了命令?有没有办法加快这个过程?的 U-Boot 驱动程序很慢?

注:昨天晚上复制了一个1.3GiB的镜像。花了16个小时。

编辑: Git 存储库 git://git.denx.de/u-boot.git

提交 ae765f3a8243faa39d4a32ba2baede638e40c768

编译: make rpi_2_defconfig make all

在撰写本文时,当前版本的 U-Boot (v2016.03) 在 RPi 2 上禁用了 dcache。所以实际上速度很慢。目前还有一些补丁正在审查中,这些补丁将启用 dcache 并加快速度。由于 LCD 的问题,预计这些补丁至少会有一个版本,但欢迎和鼓励更多的测试人员。您可以在此处获取当前系列 (v2):
https://patchwork.ozlabs.org/project/uboot/list/?submitter=1212&state=7&q=v2&delegate=3651
并注意 0/5 补丁修复了 LCD 问题,因此我希望提交干净的 v3。

我希望这些更改能够合并到 v2016.05 版本中。