更新存贮在nandflash 里的nandflash 起动的Uboot
AM3517_EVM # mmc init 『初始化sd 卡』
mmc1 is available
AM3517_EVM # mw.b 0x80000000 0xFF 0x100000 『初始化使用的内存,全部置1』
AM3517_EVM # nand erase 0x80000 0x1C0000 『擦除nandflash 中存放u-boot 区域』
NAND erase: device 0 offset 0x80000, size 0x1c0000
Erasing at 0x220000 -- 100% complete.
AM3517_EVM # fatload mmc1 0 0x80000000 u-boot.bin 『从sd 卡读u-boot 到内存』
reading u-boot.bin
214944 bytes read
AM3517_EVM # nandecc sw 『设定ecc 校验为硬件校验』
SW ECC selected
AM3517_EVM # nand write.i 0x80000000 0x80000 0x1C0000 『存u-boot 到nandflash 指
定位置』
NAND write: device 0 offset 0x80000, size 0x1c0000
1835008 bytes written: OK
AM3517_EVM #
到此为止,更新Uboot完成。
整个过程是
1先初始化SD卡,
2初始化内存区域0x80000000----0x80100000全为1,
3擦除nandflash的区域0x80000-(0x80000+0x1c0000)即0x80000----0x240000,
4将SD中的u-boot.bin读到内存0x80000000处,
5设置nandflash的ecc校验为硬件检测,
6将内存中的u-boot.bin文件(0x80000000----0x801c0000区域)读取到nandflash中(地址为0x80000----0x240000)。
命令基本和更新x-loader时都一样,这里只说最后一个命令:
AM3517_EVM # nand write.i 0x80000000 0x80000 0x1C0000 『存u-boot 到nandflash 指
定位置』
NAND write: device 0 offset 0x80000, size 0x1c0000
1835008 bytes written: OK
这个命令是把内存中的0x80000000----0x801c0000区域写入(复制到)nandflash中0x80000----0x240000区域的。
简洁来看是:
AM3517_EVM # mmc init 『初始化sd 卡』
AM3517_EVM # mw.b 0x80000000 0xFF 0x100000 『初始化使用的内存,全部置1』
AM3517_EVM # nand erase 0x80000 0x1C0000 『擦除nandflash 中存放u-boot 区域』
AM3517_EVM # fatload mmc1 0 0x80000000 u-boot.bin 『从sd 卡读u-boot 到内存』
AM3517_EVM # nandecc sw 『设定ecc 校验为硬件校验』
AM3517_EVM # nand write.i 0x80000000 0x80000 0x1C0000 『存u-boot 到nandflash 指
定位置』