对于dts的理解和分析
来源:互联网 发布:虚拟机怎么设置网络 编辑:程序博客网 时间:2024/05/15 19:12
DTS是Linux下对于设备资源的一种描述方式,相对于之前platform的描述方式,可以大大节省Linux内核代码,主要是驱动描述方面。
DTS文件将被编译成DTB文件,与编译生成的kernel文件打包在一起,一般放在头部。
kernel在加载时,会将dtb文件导入到内存,驱动代码使用标准的API访问dtb资源并加载驱动。
以下是openwrt中对于dtb的分析:
1. dtb相关patch : 0103-OWRTDTB.patch
head.s 加入16KB的dtb空间
--- a/arch/mips/kernel/head.S+++ b/arch/mips/kernel/head.S@@ -86,6 +86,9 @@ EXPORT(__image_cmdline) .fill0x400 #endif /* CONFIG_IMAGE_CMDLINE_HACK */ +.ascii "OWRTDTB:"+EXPORT(__image_dtb)+.fill 0x4000 __REF
2. 打包
tools/patch-image/src/patch-dtb.c,执行命令为: patch-dtb vmlinux-xxx xxx.dtb
将dtb文件拷贝到vmlinux前16KB空间
3. 启动加载
--- a/arch/mips/ralink/of.c+++ b/arch/mips/ralink/of.c@@ -66,6 +66,8 @@ static int __init early_init_dt_find_mem return 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);
阅读全文
1 0
- 对于dts的理解和分析
- 对于缓存的理解和分析。
- DTS和PTS的分析
- dts和dtsi分析
- 对于沙漠问题的分析与理解
- DTS和PTS的分析(FFMPEG、HLS相关)
- IMX的DTS实例分析
- 对于关键字Ref和Out的理解
- 对于关键字Ref和Out的理解
- 对于new和override的理解
- 对于数组和指针的理解
- 对于Retain和Assign属性的理解
- 对于Retain和Assign属性的理解
- 对于Intent和IntentFilter的理解记录
- 自己对于BOF和EOF的理解
- 对于this和$(this)的理解
- 对于this和$(this)的个人理解
- 对于retain和assign属性的理解
- Linux awk命令详解
- 个人学习之提取app以及Assets.car包中的素材
- 0MQ -- zmq_poll() async I/O
- iOS11 新特性-Core ML (二)手把手教你生成 Core ML 模型
- Java正则表达式匹配
- 对于dts的理解和分析
- Linux-鸟菜-6-文件搜索
- Android.mk JNI 调用第三方库
- eclipse spring gradle 插件并导入spring gradle项目
- Java内存模型小析之重排序(三)
- 增删改触发器语句
- 对connect函数的简单理解
- linux网络编程之Socket编程原理
- C++primer学习笔记----面向对象程序设计(2)