u-boot 通过 tftp 下载uImage
使用 tftp 下载镜像文件
```
setenv serverip 172.16.9.52
saveenv # 保存
tftp 0x80800000 uImage # 从服务器下载 uImage 放在 RAM 的 0x80800000 地址(不写地址默认是 0x80200000)
bootm 0x80800000 # 从该地址加载内核镜像启动 Linux 系统(掉电后镜像会丢失)
```
怎样掉电不丢失呢,直接写 flash,替换原有镜像。
查看 nand flash 分区:
```
mtdparts
device nand0 <omap2-nand.0>, # parts = 8
#: name size offset mask_flags
0: SPL 0x00020000 0x00000000 0
1: SPL.backup1 0x00020000 0x00020000 0
2: SPL.backup2 0x00020000 0x00040000 0
3: SPL.backup3 0x00020000 0x00060000 0
4: u-boot 0x001e0000 0x00080000 0
5: u-boot-env 0x00020000 0x00260000 0
6: kernel 0x00500000 0x00280000 0
7: rootfs 0x07880000 0x00780000 0
active partition: nand0,0 - (SPL) 0x00020000 @ 0x00000000
defaults:
mtdids: nand0=omap2-nand.0
mtdparts: mtdparts=omap2-nand.0:128k(SPL),128k(SPL.backup1),128k(SPL.backup2),128k(SPL.backup3),1920k(u-boot),128k(u-boot-env),5m(kernel),-(rootfs)
```
擦除原镜像:
```
nand erase 0x00280000 0x00500000
```
将内存中的镜像文件写入 nand flash:
```
nand write 0x80800000 0x00280000 ${filesize}
```
U-Boot 中的环境命令可以使用 $(filesize) 来确定刚下载(传输)得到的文件大小,printenv filesize 可查看其值。
页:
[1]