龙芯内存大小配置

用过龙芯的小朋友应该都知道,以前的cpu,调试完Pmon下s1和内存参数之后,内核几乎不用改,一下子就可以跑通,为什么现在2k下既要配置pmon,也要配置什么dts, wf! 美其名曰:遵守大内核规范,要理解这个问题,首先还得看一下源码中的处理,以2h和2k为例分别解析:
2h比较老,骨灰级玩家无需解释,以前帮客户适配板卡,pmon下搞一搞s1和参数,嗖一下,内核不用怎么配,就正常启动,压力测试也能过,内存大小也能自动适配,原因是内核里解析了pmon传递的boot_param结构体中的emap成员,该成员里有内存的分段和大小信息,调用关系如下:

	prom_init(在arch/mips/loongson2/loongson2hsoc/init.c文件中)
		->prom_env_parse(arch/mips/loongson2/loongson2hsoc/env文件中)解析pmon传递过来的emap
	
			->prom_memory_init(arch/mips/loongson2/loongson2hsoc/mem.c)把分区,内存大小传递到内核结构体boot_mem_map中,完成内存配置的交接;

2k上呢,没有什么boot_param,有也没有用,问了也是人家就是这么设计的,需要多一步配置dts,原因上一句已经解释了,代码中调用过程如下:

	early_init_dt_scan_memory_arch(arch/mips/kernel/prom.c)
		->early_init_dt_scan_memory(drivers/of/fdt.c)
			->early_init_dt_add_memory_arch(arch/mips/kernel/prom.c)

不要问上面的代码干嘛的,我也不知道,呜呜呜!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

打工人1379号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值