openwrt1907 mt7621配置DDR自适应

一、问题描述

通过DTS文件配置DDR大小,发现在DTS中配置DDR为256Mb编译出来的固件,在DDR为128Mb的硬件中固件启动之后会造成mem报错,导致系统重启。

二、解决方法

通过查看linux kernel中arch/mips/ralink/of.c文件的plat_mem_setup()函数,发现如果DTS文件中没有配置DDR大小,系统则会自动识别DDR大小

所以在DTS中将mem的配置节点删除,重新编译固件,固件就可以实现DDR自适应

三、使用uboot bootargs传参

openwrt1907默认关闭了uboot传参,并给kernel cmdline设了一个固定值,make kernel_menuconfig选上MIPS_CMDLINE_FROM_BOOTLOADER

再通过修改arch/mips/ralink/of.c文件将strlcpy(arcs_cmdline, boot_command_line, COMMAND_LINE_SIZE)屏蔽,这样kernel就会默认从uboot的bootargs中获取参数,重新编译固件

uboot在bootargs中设置mem=128m(这里只设置mem,还有其他参数根据实际情况设置)

kernel启动日志:

这样也可以解决DDR大小识别错误问题

发表评论

邮箱地址不会被公开。 必填项已用*标注