Openwrt-MT7688 修改dts-flash大小

问题就在与启动时,一堆如下打印,最后系统启动失败。
[ 1.130000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00002b70: 0x7173 instead

我回帖遇到相同问题和给出的解决步骤如下:
1、编译使用的默认8M固件配置,编译的固件小于8M,实际使用16M芯片,但工作正常
2、后来增加一些包,导致固件大于8M,于是修改Flash配置。我使用的ralink芯片,首先修改了trunk/target/linux/ramips/image/Makefile,找到对应路由器,
将Default8M改为Default16M。编译通过,烧入之后,就出现了上面这样的问题,有很多这样的打印。
3、开始我以为是驱动不支持,找到内核支持SPI芯片列表,确认对应厂商芯片ID在列表中。
4、后来我想到平时编译其他工程的时候都要对代码进行分段,也就是分区。最后找到trunk/target/linux/ramips/dts/下对应路由器的分区配置文件,修改了匹配16M的分区数据。编译烧入,重启后以上问题消失

所以编译一个支持不同容量的Flash的固件时,要确认3点:
1、trunk/target/linux/ramips/image/Makefile内对应固件的大小。
2、确认驱动支持使用的Flash芯片。
3、确认trunk/target/linux/ramips/dts/对应的dts文件是否匹配。

前两点很好解决,然后有的童鞋就问到底怎么修改dts呢?举例说明如下
在这个问题例子里面,我们可以看到打印信息
[ 0.850000] 0x000000000000-0x000000020000 : "u-boot"
[ 0.870000] 0x000000020000-0x000000030000 : "u-boot-env"
[ 0.880000] 0x000000030000-0x000000040000 : "factory"
[ 0.890000] 0x000000040000-0x000001000000 : "firmware"
[ 0.900000] 0x00000012d491-0x000001000000 : "rootfs"
这一段就是说明了flash内部分段的情况,每一个段存储了不同的内容,不同的固件可能还会有其他的段,看看每一段的意义:
[ 0.850000] 0x000000000000-0x000000020000 : "u-boot" u-boot存放的段,从flash开始的地址到0x20000 = 128K,所以我们看到很多u-boot固件是128K的
[ 0.870000] 0x000000020000-0x000000030000 : "u-boot-env" u-boot的参数,包括内核启动参数,u-boot使用的参数等,例如ip地址,TTL波特率等等
[ 0.880000] 0x000000030000-0x000000040000 : "factory" 厂家参数,实际上无线配置参数就存在这个段,如果这个段的数据丢失,表现为没有无线或信号极弱
[ 0.890000] 0x000000040000-0x000001000000 : "firmware" 一般是linux内核
[ 0.900000] 0x00000012d491-0x000001000000 : "rootfs" op文件系统

知道具体意义,那么看看dts是怎么样的,从op拷贝了一个dts文件,如下openwrt-rt5350-1/target/linux/ramips/dts/MT7620a_MT7610e.dts
/dts-v1/;
/include/ "mt7620a.dtsi"
/ {
compatible = "ralink,mt7620a-eval-board", "ralink,mt7620a-soc";
model = "Ralink MT7620A evaluation board";
palmbus@10000000 {
sysc@0 {
ralink,gpiomux = "i2c", "jtag";
ralink,uartmux = "gpio";
ralink,wdtmux = <1>;
};
gpio0: gpio@600 {
status = "okay";
};
spi@b00 {
status = "okay";
m25p80@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "en25q64";
reg = <0 0>;
linux,modalias = "m25p80", "en25q64";
spi-max-frequency = <1000000>;
partition@0 {
label = "u-boot"; //这里就是u-boot,可以看出从0到0x30000,可以支持192K大小的u-boot固件
reg = <0x0 0x30000>;
read-only;
};
partition@30000 {
label = "u-boot-env"; //u-boot参数,64K
reg = <0x30000 0x10000>;
read-only;
};
factory: partition@40000 {
label = "factory"; //无线参数,64K
reg = <0x40000 0x10000>;
read-only;
};
partition@50000 {
label = "firmware"; //固件剩下的部分全部给op固件,问题多半在这里,下面具体分析一下
reg = <0x50000 0x7b0000>;
};
};
};
};
............后面内容不列出................

对于固件分区:
partition@50000 {
label = "firmware";
reg = <0x50000 0x7b0000>;
};
如果使用8M的Flash, 固件编译成8M,不用修改,也能运行
如果使用16M的Flash, 固件编译成8M,不用修改,也能运行,相当与16M的Flash只使用了前面8M,后面空闲。
但是,如果使用8MFlash,固件编译选择16M,后面长度不够,可能导致问题,那么修改了Makefile还不够,还需要修改这个数据
reg = <0x50000 0x7b0000>; 中的0x7b0000需要再加8M,应该是0xfb0000
实际就是16M-0x50000,前面的被u-boot和参数段使用了。
0x50000也不是固定值,需要匹配使用的u-boot,如果u-boot固件增加很多功能,变成256K,那么相应的需要修改u-boot段
同时后面的段也需要按地址顺序修改,并从新计算固件使用的长度,要求与实际使用的Flash匹配

本帖为回答hj6419的留言而发,快来看看能不能解决你的实际问题吧。转自https://www.right.com.cn/forum/thread-177610-1-1.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343