如何从uboot中推算路由器flash烧写地址

如何从uboot中推算路由器flash烧写地址

首先从uboot中得到flash分区的基地址
一、找到uboot编译生成的bootstrap.map或者u-boot.map文件,找到下面这句,
.text           0x000000009f000000     0x3520
其中 0x9f000000 就是flash分区的基地址;
二、查看uboot的源代码,例如qca9531芯片,其flash分区的基地址就定义在下面这个头文件中;
u-boot\include\configs\board953x.h
/* NOR Flash start address */
#define CFG_FLASH_BASE 0x9f000000

查看路由器flash分区信息
~ # cat /proc/mtd 
dev:    size   erasesize  name
mtd0: 00040000 00010000 "u-boot"
mtd1: 00010000 00010000 "u-boot-env"
mtd2: 00630000 00010000 "rootfs"
mtd3: 00160000 00010000 "uImage"
mtd4: 00010000 00010000 "mib0"
mtd5: 00010000 00010000 "ART"

~ # cat /proc/partitions 
major minor  #blocks  name
  31        0        256 mtdblock0
  31        1         64 mtdblock1
  31        2       6336 mtdblock2
  31        3       1408 mtdblock3
  31        4         64 mtdblock4
  31        5         64 mtdblock5

开始计算各自模块的flash地址及烧写命令
烧写uboot:
tftp 0x80060000 u-boot.bin
erase 0x9f000000 +0x40000
cp.b 0x80060000 0x9f000000 0x40000

烧写jffs2
tftp 0x80060000 ap143-jffs2
erase 0x9f050000 +0x630000
cp.b 0x80060000 0x9f050000 0x630000

烧写vmlinux
tftp 0x80060000 vmlinux.lzma.uImage
erase 0x9f680000 +0x160000
cp.b 0x80060000 0x9f680000 0x160000

烧写art:
tftp 0x80060000 art.bin
erase 0x9f7f0000 +0x10000
cp.b 0x80060000 0x9f7f0000 0x10000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值