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的启动地址修改后,就可以任意使用自己想用的布局了。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |