bootcmd_SD=mmc dev 1 0; mmc read ${loadaddr} 0x800 0x2000;mmc read ${rd_loadaddr} 0x3000 0x1200:设置启动设备及kernel和ramdisk加载。
<mmc dev 1 0>:设置当前设备为1(在我的系统中1表示mmc,0表示SD)以及分区为0。<mmc read ${loadaddr} 0x800 0x2000>:表示将当前设备中从第0x800个block开始的0x2000个block中的内容读取到内存中的${loadaddr}处。一般每个block大小为512K,因此,这里实际上是将当前设备的第0分区中从1M字节处开始的4M字节数据读取到内存中。(在我的系统中,这里读取的是kernel数据)
<mmc read ${rd_loadaddr} 0x3000 0x1200>:与上面的基本相同。(在我的系统中这里读取的是ramdisk数据)
bootcmd=run bootcmd_SD; bootm ${loadaddr} ${rd_loadaddr}:设置启动命令。
<run bootcmd_SD>:执行bootcmd_SD将kernel和ramdisk读入内存。
<bootm ${loadaddr} ${rd_loadaddr}>:然后执行bootm命令启动kernel和ramdisk。
附上UBoot中的mmc命令说明:
Usage:
mmc read addr blk# cnt ——从存储设备中第blk#个block起的cnt个block的内容读取数据到内存addr处。
mmc write addr blk# cnt ——将内存addr中的内容写入存储设备中第blk#个block起的cnt个block内。
mmc erase blk# cnt ——将存储设备中第blk#个block起的cnt个block中的内容擦除。
mmc rescan ——从新扫描存储设备。
mmc part - lists available partition on currentmmc device ——列出当前mmc设备中有效的分区。
mmc dev [dev] [part] - show or set current mmcdevice [partition] ——显示或设置当前的mmc设备以及分区。
mmc bootpart [dev] [part] - show or set bootpartition ——显示或设置启动分区。
mmc list - lists available devices ——列出当前有效的设备。