阡陌 发表于 2024-2-16 11:57:49

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]
查看完整版本: u-boot 通过 tftp 下载uImage