关于mtk

阅读: 评论:0

关于mtk

关于mtk

先说结论

MTK SDK 不使用 OpenWRT 官方的 dts 定义 ROM 布局,网卡布局。
正式宣告这套源码不支持dts模式
如果要折腾相关驱动,直接改内核文件,把关联的宏打开,menuconfig打不开,手动打开
它,这套源码很多地方耦合性差,所以需要细心一点把牵连的宏都开了。
最后因为是openwrt编译框架,所以改动的地方需要学习补丁制作的方法,把修改之处做成补丁。
补丁的制作方式 检索 “ quilt 工具”

调试过程

第一次开发openwrt,
从供应商拿到这个版本的sdk准备开发openwrt,
在折腾外部时钟的发现mtk一些坑
直接拿最新的openwrt源码什么编译问题都没有,
就是测试出来的wifi不稳定
于是不断的研究mtk这套源码,为啥wifi这么稳定,怎么移植到新的源码上。

下面是mtk-sdk的wifi效果

开源openwrt21的wifi效果

1.DTS功能

编译后发现dts文件怎么样都是不加载的,所以即便怎么修改都是没意义的.

1.1发现dts文件加载不了

经过删除和修改文件的方式,发现固件的结果和dts不关连。

1.2一个board加载dts文件的理论位置

1.3DTS加载的相关宏设置

后面发现DTS功能应该是 DTB DTC DEVICETREE DTS OF 。。。 等这几个宏没打开
在make menuconfig里面尝试打开dtb
发现找不到user_devicetree 这类的宏在什么地方打开

1.4config的配置文件的用途

经过仔细对比,大概率是在板子定义的 config3.10里面,它会在下载源码后,把这块配置加载到内核配置里面
但每次编译器会把最新config更新到这个文件里,所以如果要加载你想要的config配置,需要在编译器先把源码清掉。不然会被源码的配置反写到这里。

尝试将别的config3.10带有启动的这个宏配置文件进行加载,还是不生效

1.5通过编译日志发现dts文件加载被默认屏蔽掉

后面找到 被手动屏蔽掉的地方

打开还是不行

1.6dtc工具没有被编译

因为相关的宏没法打开,导致dtc工具没有被makefile 加载编译
直接找到dtc的mk文件强制打开它

1.7 DTB marker not found! DTB的标签没找到

这玩意来自于

1.8 关于OWRTDT补丁

网上找到一个补丁0103-MIPS-OWRTDT.patch
里面有描述这个dtb标志位怎么添加,可是这个补丁打不上,原因是内核版本不一致。
0103-MIPS-OWRTDT.patch

From c174d2250e402399ad7dbdd57d51883d8804bba0 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt>
Date: Mon, 15 Jul 2013 00:40:37 +0200
Subject: [PATCH 31/33] owrt: MIPS: add OWRTDTB secionSigned-off-by: John Crispin <blogic@openwrt>
---arch/mips/kernel/head.S   |    3 +++arch/mips/ralink/Makefile |    2 +-arch/mips/ralink/of.c     |    4 +++-3 files changed, 7 insertions(+), 2 deletions(-)--- a/arch/mips/kernel/head.S
+++ b/arch/mips/kernel/head.S
@@ -86,6 +86,9 @@ EXPORT(__image_cmdline).fill	0x400#endif /* CONFIG_IMAGE_CMDLINE_HACK */+	.ascii  "OWRTDTB:"
+	EXPORT(__image_dtb)
+	.fill   0x4000__REFNESTED(kernel_entry, 16, sp)			# kernel entry point
--- a/arch/mips/ralink/of.c
+++ b/arch/mips/ralink/of.c
@@ -66,6 +66,8 @@ static int __init early_init_dt_find_memreturn 0;}+extern struct boot_param_header __image_dtb;
+void __init plat_mem_setup(void){set_io_port_base(KSEG1);
@@ -74,7 +76,7 @@ void __init plat_mem_setup(void)* Load the builtin devicetree. This causes the chosen node to be* parsed resulting in our memory appearing*/
-	__dt_setup_arch(__dtb_start);
+	__dt_setup_arch(&__image_dtb);strlcpy(arcs_cmdline, boot_command_line, COMMAND_LINE_SIZE);

于是尝试对他进行手动修改

编译通过了,很开心,但内核没起来,但至少DTS文件是加载进去了

尝试把剩下的补丁也手动进去测试一下,
发现不行,后面的补丁都没打,因为从源码是上就没这个文件,所以可以认定这套源码本身不支持dts,
而且不是官方把一套支持dts 的源码改成他们的结构,而是这芯片的ralink源码本身就不支持这种操作。

1.9结论

参考.html
参考

MTK SDK 不使用 OpenWRT 官方的 dts 定义 ROM 布局,网卡布局。
正式宣告这套源码不支持dts模式
吐了 妈的

现在还剩下:
1.找mtk更新支持dts的额源码
2.给这套源码换内核版本,找一个差不多的但是支持dts的
3.将wifi驱动移植到最新的代码

本文发布于:2024-01-30 14:35:58,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170659656020704.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:mtk
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23