加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

openwrt flash layout

发布时间:2020-12-15 20:02:53 所属栏目:百科 来源:网络整理
导读:openwrt典型的有两种布局方式,一种是KR(kernel在前,rootfs在后),另一种是RK(rootfs在前,kernel在后)。 AP1_mtdlayout_8M=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,6336k(rootfs),1408k(kernel),64k(mib0),64k(art),7744k@0x50000(firmware
openwrt典型的有两种布局方式,一种是KR(kernel在前,rootfs在后),另一种是RK(rootfs在前,kernel在后)。

AP1_mtdlayout_8M=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,6336k(rootfs),1408k(kernel),64k(mib0),64k(art),7744k@0x50000(firmware)
AP2_mtdlayout_16M=mtdparts=spi0.0:128k(u-boot)ro,14784k(rootfs),64k(art)ro,16192k@0x20000(firmware)

布局:
例:
AP2,它的启动地址是9f020000,其实就是从flash的128k的位置加载kernel,这种就是需要使用KR的固件布局。前128k是uboot。
AP1,它的启动地址是在flash的中间位置0x9f680000,这样就需要使用RK的布局。320K uboot,6336K rootfs。
启动地址始终需要读取到kernel的头部,才能正常启动。

firmware:
firmware=kernel+rootfs
AP1,6336K(rootfs)+1408K(kernel)=7744K(firmware)
AP2,1408K(kernel)+14784K(rootfs) = 16192K(firmware)

地址推算:
AP1:
uboot??? 9F000000--9F050000
rootfs??? 9F050000--9F680000
kernel?? 9F680000--9F7E0000
mib0???? 9F7E0000--9F7F0000
art????????? 9F7F0000--9F800000

AP1??????
uboot??? 9F000000--9F020000
kernel?? 9F020000--9F180000
rootfs??? 9F180000--9FFF0000
art????????? 9FFF0000--A0000000

可以从uboot和原固件的启动信息来确定FLASH布局
FLASH采用什么布局都无所谓,最根本只需要确定uboot从哪个地方去加载kernel,只要这个确定了,那固件要怎么布局也就基本确定了 可以修改,printenv里的bootm的启动地址修改后,就可以任意使用自己想用的布局了。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读