qcom dts知识
[ARM Linux 驱动开发] linux 设备树
of_parse_phandle_with_args函数详解
结合设备信息集合,探究设备和驱动是如何绑定的
reg 寄存器
Devicetree specification
反汇编
dtc -I dtb -O dts -o out.dts …/…/arch/arm/boot/dts/qcom/msm8909-1gb-qrd-skue.dtb
dtc -I dtb -O dts -o out.dts …/…/arch/arm/boot/dts/qcom/msm8909-1gb-mtp.dtb
dts:
node_name@address{
}
两个节点名字可以一样,但是里面的 address不能一样
节点上的地址address只是设备节点本身的地址,并不是cpu的可用地址,即
非根节点上的子节点的address使用的不是cpu的地址域,为了得到一个内存映射地址,设备树必须要指定一个域转换另外一个域的方法,这里用range
range是地址转换的列表,i2c总线下的设备里,缺少range属性,表示此设备不能被此设备的父设备的其他设备访问
根节点始终描述的是 cpu的地址空间
根节点下的子节点已经使用的是 cpu的地址域,所以不需要任何直接映射
#address-cells=<2>;
#size-cells=<1>;
ethernet@0.0{
reg=<0,0,0x100000>
地址有两个cell,其中一个是片选,另一个是片选基地址,即编移是,第三个是大小
}
必须要了解的知识:
在启动过程中传参:
R0:cp#15 control register
R1 :machine ID
R2:atags or pointer-->传到内核_fdt_pointer(lk加载dtb到内存的物理地址)
R3:process ID即进程ID
pbl->sbl1->lk->kernel-ramdisk
kernel中:
start_kernel->set_arch->setup_machine_fdt->
early_init_dt_verify->fdt_check_header检测DTB头部
编译kernel
make kernel
或
make -C kernel/msm-3.18 O=…/…/out/target/product/msm8909/obj/kernel/msm-3.18 ARCH=arm CROSS_COMPILE=arm-none-gnueabi-
make -C kernel/msm-3.18 O=../../out/target/product/msm8953_64/obj/kernel/msm-3.18 ARCH=arm64 CROSS_COMPILE=aarch64-linux-android- KCFLAGS=-mno-android
dtb存储结构
其存储的类型为:
头部header
设备树结构块
字符串-设备节点属性键值对
struct fdt_header {uint32_t magic; /* magic word FDT_MAGIC */uint32_t totalsize; /* total size of DT block */uint32_t off_dt_struct; /* offset to structure */uint32_t off_dt_strings; /* offset to strings */uint32_t off_mem_rsvmap; /* offset to memory reserve map */uint32_t version; /* format version */uint32_t last_comp_version; /* last compatible version *//* version 2 fields below */uint32_t boot_cpuid_phys; /* Which physical CPU id we'rebooting on *//* version 3 fields below */uint32_t size_dt_strings; /* size of the strings block *//* version 17 fields below */uint32_t size_dt_struct; /* size of the structure block */
}
dts 包含关系
查找dtb.dts.tmp 结尾的文件
有时发送打开i2c总是打不开,不能生成dtb在文件系统对应的节点
DTBO简介
原来在设置叠加层中关掉了
发现启动卡中有了对应的文件,应该是没有去掉或修改才不生效,解决办法,删除对应的dtbo,或修改对应dtbo源文件再替换
对比生效
205000生成
=>
![](/assets/blank.gif)
也可以通过查status状态,来判断实际运行是关闭还是打开(反编译查看dtb查不出来当前是打开还是关闭,因为是运行时被修改了),再搜索是哪里个可疑的文件覆盖了
qcom dts知识相关推荐
- 开放下载!《DTS控制台入门一本通》
简介:零基础快速入门DTS,一书在手,自学无忧,云运维工程师不可错过的匠心之作 本书图文结合,内容通俗易懂,逐层深入,重点内容详细剖析.通过作者透彻而睿智的描述,使读者在阅读本书时可以更加快速的了解到 ...
- Android 驱动(10)----设备树(二)linux内核顶层am335x-evm.dts
设备树(二)linux内核顶层am335x-evm.dts 摘自:http://blog.csdn.net/xiaojiezuo123/article/details/49890507 了解基本的dt ...
- qcom camera eeprom actuator pdaf bring up
这个是是对qcom camera bring up的补充:https://blog.csdn.net/wing12345678910/article/details/79261931 添加了eepro ...
- DTS入门知识(转载)
一.dts产生原因........................................................................................... ...
- 高通平台8953 Linux DTS(Device Tree Source)设备树详解之一(背景基础知识篇)
本系列导航: 高通平台8953 Linux DTS(Device Tree Source)设备树详解之一(背景基础知识篇) 高通平台8953 Linux DTS(Device Tree Source ...
- android dts的作用,DTS相关知识
一.DTS 学习 1. kernel/arch/arm/boot/dts 目录下包含所有的dts. a. board , msm8226.dtsi b. pmic, msm-pm8226.dtsi 2 ...
- Android 驱动(12)---Linux DTS(Device Tree Source)设备树详解
Linux DTS(Device Tree Source)设备树详解 Linux DTS(Device Tree Source)设备树详解之一(背景基础知识篇) Linux DTS(Device Tr ...
- 高通平台msm8953 Linux DTS(Device Tree Source)设备树详解之二(DTS设备树匹配过程)
本系列导航: 高通平台8953 Linux DTS(Device Tree Source)设备树详解之一(背景基础知识篇) 高通平台8953 Linux DTS(Device Tree Source ...
- DTS文件详解,DTS文件解析
一.什么是DTS?为什么要引入DTS? DTS即Device Tree Source 设备树源码, Device Tree是一种描述硬件的数据结构,它起源于 OpenFirmware (OF). 在L ...
最新文章
- HOGDescriptor 描述类
- 笔记 | PyTorch张量Tensor的一些必备操作
- Github学习系列之Github是什么?
- Python入门100题 | 第079题
- 以下关于java中布局管理说法错误的是_对于 Java 中的布局管理器,以下说法中错误的是( )。_2019复习答案_学小易找答案...
- Tcp连接arp协议详解
- php nginx日志分析,如何通过NGINX的log日志来分析网站的访问情况,试试这些命令...
- win10 update 关闭计算机,Win10关闭Windows Update服务的方法
- python更改文件路径 unable_python 安装无效:无法打开/usr/lib/python2. 7/config/Makefile ( 没有此类文件或者目录)...
- Ubuntu下利用QSS、WPS破解wpa/wpa2加密
- AppFabric 使用
- Unity 日志管理系统
- 网安学习(二十五)HTTP协议、HTTS、邮件协议
- python_split()函数使用方法
- make install - make uninstall - make clean 命令介绍
- CISSP考试指南笔记:1.1安全目标
- 二维火:智能餐饮云端互联是如何实现的?
- Citrix XenCenter 基本命令
- 学术界为啥不爱投中文期刊?
- Anaconda 的安装教程(图文)