A Tutorial on the Device Tree (Zynq) -- Part II 设备树结构 Zynq的设备树如下: /dts-v1/; / { #address-cells = <1>; #size-cells = <1>; compatible = "xlnx,zynq-zed"; interrupt-parent = <&gic>; model = "Xillinux for Zedboard"; al…
A Tutorial on the Device Tree (Zynq) -- Part V Application-specific data 之前提过,设备树中是一些特殊信息,这样一个驱动可以管理数片类似的硬件.例如,一个LCD显示驱动,分辨率信息和物理尺寸可能出现在设备树中.串口信息要告诉驱动当前的时钟频率. 最简单的,最常用的形式,这个信息由一条赋值语句组成: xlnx,slv-awidth = <0x20>; "xlnx"前缀可以防止命名冲突.名字可以任意取,但最…
A Tutorial on the Device Tree (Zynq) -- Part III 定义外设 可能你读本文是为了给你的设备写一个Linux驱动,在这方面要推荐著名的<Linux Device Driver>.但是在写一个设备驱动之前,允许我分享写Linux驱动的第一诫:永远不要为Linux写设备驱动. 更好的办法是找一个维护状态良好的类似功能的设备驱动,然后修改它.这不仅仅意味着更容易,更可能帮我们避免我们一些未意识到的问题.从其他驱动移植过来可以让这份驱动更容易被理解,可移植,…
A Tutorial on the Device Tree (Zynq) -- Part I 此教程的目的 本教程是针对Xilinx' Zynq-7000 EPP设备(一个集成了FPGA的ARM Cotex-A9)写的,但其中的概念适用于所有使用了设备树的Linux内核.本文使用Xillinux发行版为例,该发行版运行于Zedboard硬件上. 设备树有什么好处 设想一下:bootloader刚刚将Linux内核复制到内存中,然后跳到内核的入口点,,[1],,.此时内核就像运行在处理器上的一个裸…
获取资源信息 内核模块驱动加载之后,就开始把硬件资源管理起来,如读写寄存器.接收中断. 来看看设备树里的一条: xillybus_0: xillybus@50000000 { compatible = "xlnx,xillybus-1.00.a"; reg = < 0x50000000 0x1000 >; interrupts = < 0 59 1 >; interrupt-parent = <&gic>; xlnx,max-burst-le…
转自:http://blog.chinaunix.net/uid-20522771-id-3457184.html 原文链接:http://devicetree.org/Device_Tree_Usage#How_Interrupts_Work   Device Tree Usage 设备树使用手册 This page walks through how to write a device tree for a new machine. It is intended to provide an…
转自:http://www.wowotech.net/linux_kenrel/dt_basic_concept.html 一.前言 一些背景知识(例如:为何要引入Device Tree,这个机制是用来解决什么问题的)请参考引入Device Tree的原因,本文主要是介绍Device Tree的基础概念. 简单的说,如果要使用Device Tree,首先用户要了解自己的硬件配置和系统运行参数,并把这些信息组织成Device Tree source file.通过DTC(Device Tree C…
http://elinux.org/Device_Tree_Usage Device Tree Usage     Top Device Tree page This page walks through how to write a device tree for a new machine. It is intended to provide an overview of device tree concepts and how they are used to describe a mac…
原文网址:http://www.wowotech.net/linux_kenrel/dt_basic_concept.html 一.前言 一些背景知识(例如:为何要引入Device Tree,这个机制是用来解决什么问题的)请参考引入Device Tree的原因,本文主要是介绍Device Tree的基础概念. 简单的说,如果要使用Device Tree,首先用户要了解自己的硬件配置和系统运行参数,并把这些信息组织成Device Tree source file.通过DTC(Device Tree…
Basic Data Format The device tree is a simple tree structure of nodes and properties. Properties are key-value pairs, and node may contain both properties and child nodes. For example, the following is a simple tree in the .dts format: / { node1 { a-…
英语原文地址: htttp://devicetree.org/Device_Tree_Usage 本文介绍如何为新的机器或板卡编写设备树(Device Tree), 它旨在概要性的介绍设备树概念,以及如何使用它们来描述机器或者板卡. 有关设备树数据格式的完整技术描述,请参阅ePAPR v1.1规范. ePAPR技术规范比本文所介绍的基础主题更加详细,所以请参阅它了解本页未涉及的更高级用法. ePAPR目前正在用Devicetree规范文档的新名称进行更新.   1 基础数据结构 设备树(Devi…
问题来源: 野火 iMX 6ULL 开发板资料. https://tutorial.linux.doc.embedfire.com/zh_CN/latest/linux_basis/fire-config_brief.html 5.3. fire-config机制 一般而言,fire-config旨在提供一些常见的系统功能配置服务,在进行配置过程中, 这可能会导致/boot/uEnv.txt或者是其他各种标准的linux配置文件被自动更改了, 某些选项需要重启才能生效,如果您修改了其中一个,fi…
来之\kernel\Documentation\devicetree\usage-model.txt Linux and the Device Tree -------------------------The Linux usage model for device tree data Author: Grant Likely <grant.likely@secretlab.ca> This article describes how Linux uses the device tree.…
在我个人的理解,device tree就是描述硬件设备的,目前有什么配置,把这些配置信息告诉linux内核,让内核去识别,增强了内核的通用性,不用因为平台不同而每次都要编译新内核了. 配置device tree需要一个文件,后缀为.dts,也就是device tree source,这个dts文件的格式很容易看懂,但是写完这个文件还需要使用一个device tree compiler将其转换为内核能够识别的文件格式. 推荐一篇相关的文章,写的比较好,能够让人明白为什么要选用dt,以及在使用dt之…
转自:http://www.wowotech.net/linux_kenrel/dt-code-analysis.html Device Tree(三):代码分析 作者:linuxer 发布于:2014-6-6 16:03 分类:统一设备模型 一.前言 Device Tree总共有三篇,分别是: 1.为何要引入Device Tree,这个机制是用来解决什么问题的?(请参考引入Device Tree的原因) 2.Device Tree的基础概念(请参考DT基础概念) 3.ARM linux中和De…
http://blog.csdn.net/21cnbao/article/details/8457546 宋宝华 Barry Song <21cnbao@gmail.com> 1.    ARM Device Tree起源 Linus Torvalds在2011年3月17日的ARM Linux邮件列表宣称“this whole ARM thing is a f*cking pain in the ass”,引发ARM Linux社区的地震,随后ARM社区进行了一系列的重大修正.在过去的ARM…
1. ARM Device Tree起源 Linus Torvalds在2011年3月17日的ARM Linux邮件列表宣称“this whole ARM thing is a f*cking pain in the ass”,引发ARM Linux社区的地震,随后ARM社区进行了一系列的重大修正.在过去的ARM Linux中,arch/arm/plat-xxx和arch/arm/mach-xxx中充斥着大量的垃圾代码,相当多数的代码只是在描述板级细节,而 这些板级细节对于内核来讲,不过是垃圾,…
一.前言 Device Tree总共有三篇,分别是: 1.为何要引入Device Tree,这个机制是用来解决什么问题的?(请参考引入Device Tree的原因) 2.Device Tree的基础概念(请参考DT基础概念) 3.ARM linux中和Device Tree相关的代码分析(这是本文的主题) 本文主要内容是:以Device Tree相关的数据流分析为索引,对ARM linux kernel的代码进行解析.主要的数据流包括: 1.初始化流程.也就是扫描dtb并将其转换成Device…
一.前言 作为一个多年耕耘在linux 2.6.23内核的开发者,各个不同项目中各种不同周边外设驱动的开发以及各种琐碎的.扯皮的俗务占据了大部分的时间.当有机会下载3.14的内核并准备学习的时候,突然发现linux kernel对于我似乎变得非常的陌生了,各种新的机制,各种framework.各种新的概念让我感到阅读内核代码变得举步维艰. 还好,剖析内核的热情还在,剩下的就交给时间的.首先进入视线的是Device Tree机制,这是和porting内核非常相关的机制,如果想让将我们的硬件平台迁移…
转自:http://blog.csdn.net/machiner1/article/details/47805069 ------------------Based on linux 3.10.24 source code 参考/documentation/devicetree/Booting-without-of.txt文档 目录 1. 设备树(Device  Tree)基本概念及作用 2. 设备树的组成和使用 2.1. DTS和DTSI 2.2. DTC 2.3. DTB 2.4. Boot…
转自:http://blog.csdn.net/airk000/article/details/21345159 目录: 1. 作用 2. 基本数据格式 3. 一些基本概念 4. 工作方式 a. 地址 b. 中断 c. 其他 5. 进阶例子 Device Tree常用方法解析 Device Tree在Linux内核驱动中的使用源于2011年3月17日Linus Torvalds在ARM Linux邮件列表中的一封邮件,他宣称“this whole ARM thing is a f*cking p…
1.    ARM Device Tree起源 http://blog.csdn.net/21cnbao/article/details/8457546 Linus Torvalds在2011年3月17日的ARM Linux邮件列表宣称“this whole ARM thing is a f*cking pain in the ass”,引发ARM Linux社区的地震,随后ARM社区进行了一系列的重大修正.在过去的ARM Linux中,arch/arm/plat-xxx和arch/arm/ma…
第一.DTS简介     在嵌入式设备上,可能有不同的主板---它们之间差异表现在主板资源不尽相同,比如I2C.SPI.GPIO等接口定义有差别,或者是Timer不同,等等.于是这就产生了BSP的一个说法.所谓BSP,即是是板级支持包,英文全名为:Board Support Package.是介于主板硬件和操纵系统之间的一层.每一个主板,都有自己对应的BSP文件.在kernel/arch/arm/mach-* 目录下,放置着不同主板的BSP文件,比如展讯的某一个项目的BSP文件为: kernel…
只要你想用BBB做哪怕一丁点涉及到硬件的东西,你就不可避免地要用到cape和device tree的知识.所以尽管它们看起来很陌生而且有点复杂,但还是得学.其实用起来不难的.下面我只讲使用时必须会的内容,不深究其工作原理.文中基本没有废话,请仔细阅读每个字,勿遗漏细节. 我们已经知道beagleboard官网上有一些官方的硬件外设,比如lcd显示屏之类的,他们管这些外设叫做cape.其实应该说只要是修改了芯片引脚功能,或占用了空闲的引脚的东西,都可以叫做cape.比如之前我们提到的开启某些引脚的…
Device Tree常用方法解析 Device Tree在Linux内核驱动中的使用源于2011年3月17日Linus Torvalds在ARM Linux邮件列表中的一封邮件,他宣称“this whole ARM thing is a f*cking pain in the ass”,并提倡学习PowerPC等其他架构已经成熟使用的Device Tree技术.自此,Device Tree正式进入ARM社区的视野中. 1. 作用 Device Tree是一种用来描述硬件的数据结构,类似板级描述…
本文以At91rm9200平台为例,从源码实现的角度来分析驱动加载时,Device tree的属性是如何取得的.一:系统级初始化DT_MACHINE_START 主要是定义"struct machine_desc"的类型,放在 section(".arch.info.init"),是初始化数据,Kernel 起来之后将被丢弃.#define DT_MACHINE_START(_name, _namestr) \static const struct machine_…
原文网址:http://www.cnblogs.com/biglucky/p/4057488.html 本文以At91rm9200平台为例,从源码实现的角度来分析驱动加载时,Device tree的属性是如何取得的.一:系统级初始化DT_MACHINE_START 主要是定义"struct machine_desc"的类型,放在 section(".arch.info.init"),是初始化数据,Kernel 起来之后将被丢弃.#define DT_MACHINE_…
原文网址:https://techfantastic.wordpress.com/2013/11/15/beaglebone-black-device-tree-overlay/ 经过一晚上的Google,终于大致明白device tree是怎么用的了,这里简单梳理一下思路. 一.简介===============================================================device tree是ARM linux 3.7开始使用的系统控制硬件资源的方式,这里…
原文网址:http://www.wowotech.net/linux_kenrel/dt-code-analysis.html 一.前言 Device Tree总共有三篇,分别是: 1.为何要引入Device Tree,这个机制是用来解决什么问题的?(请参考引入Device Tree的原因) 2.Device Tree的基础概念(请参考DT基础概念) 3.ARM linux中和Device Tree相关的代码分析(这是本文的主题) 本文主要内容是:以Device Tree相关的数据流分析为索引,…
原文网址:http://blog.csdn.net/21cnbao/article/details/8457546 1.    ARM Device Tree起源 Linus Torvalds在2011年3月17日的ARM Linux邮件列表宣称“this whole ARM thing is a f*cking pain in the ass”,引发ARM Linux社区的地震,随后ARM社区进行了一系列的重大修正.在过去的ARM Linux中,arch/arm/plat-xxx和arch/a…