我已经使用以下步骤从u-boot上刷了我的主板上的nand。
从sdcard加载内核到RAM
#mmc read $ {loadaddr} 0x800 0x1800
使用nand erase命令擦除nand flash。
#nand erase offset size
将内核从RAM复制到nand。
#nand写入$ {loadaddr}偏移量
我想在内核中执行相同的步骤,你能指导我如何将数据从sdcard复制到内核中的RAM(寻找u-boot的替代命令" mmc read")。我正在使用基于IMX53的自定义板。
答案 0 :(得分:2)
建议不要这样做,因为它可能会阻塞内核,建议在uboot本身执行此操作,或者您应该以与锁定和同步相关的正确方式编写代码。
为此,你可以使用nand& amp;创建一个函数。 mmc驱动功能。 NAND读/写MMC读/写可以分别调用它们各自的读写Using NAND funtions from kernel和MMC Kernel API reference。
然后在文件/init/main.c
内调用您的函数并运行__init start_kernel(void)
here。
你的功能你最后可以在同一个文件中声明。
答案 1 :(得分:0)
我可以用dd命令。
#dd if=/dev/mmcblk0 of=/dev/mtd1 bs=1M skip=1 count=3