匿名
未登录
登录
百问网嵌入式Linux wiki
搜索
查看“Device tree”的源代码
来自百问网嵌入式Linux wiki
名字空间
页面
讨论
更多
更多
页面选项
Read
查看源代码
历史
←
Device tree
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
==Purpose== The objective of this chapter is to give general information about the device tree.<br /> An extract of the '''device tree specification'''<ref name="dt_org">[https://github.com/devicetree-org/devicetree-specification/releases/tag/v0.2 https://github.com/devicetree-org/devicetree-specification/releases/tag/v0.2(latest)] ,Device tree specification</ref> explains it as follows: ''"A device tree is a tree data structure with nodes that describe the devices in a system. Each node has property/value pairs that describe the characteristics of the device being represented. Each node has exactly one parent except for the root node, which has no parent.'' ''...'' ''Rather than hard coding every detail of a device into an operating system, many aspect of the hardware can be described in a data structure that is passed to the operating system at boot time."'' In other words, a device tree describes the hardware that can not be located by probing. For more information, please refer to the device tree specification<ref name="dt_org" /> {{ReviewsComments| W903.5 GeraldB: "A device tree..." -> "In other words, a device tree..."}} {{ReviewsComments| W903.5 GeraldB: "For more information..." -> I propose to remove this since this create a new reference to the specification that is already referd few lines above}} ===Source files=== *'''.dts:''' The device tree source (DTS). This format is a textual representation of a device tree in a form that can be processed by DTC (Device Tree Compiler) into a binary device tree in the form expected by software components: Linux<sup>®</sup> Kernel, U-Boot and TF-A. {{ReviewsComments| W903.5 GeraldB: "DTC" should be introduced (or reference to the paragraph below) since this is the first time it is mentionned}} {{ReviewsComments| W903.5 GeraldB: "This format..." -> this sentence is very (too) long, with three occurences of "device tree" inside. Can you simplify ?}} {{ReviewsComments| W904.1 NicolasLB: Maybe you should replace (here and in all the page where it is not set): * TF-A by [[TF-A overview|TF-A]] * U-Boot SPL by [[U-Boot_overview#SPL:_FSBL_for_basic_boot|U-Boot SPL]] * Linux® Kernel by [[STM32MP15_Linux_kernel_overview|Linux® Kernel]] W805 GeraldB: on the first occurence, yes. But not necessarly on all occurences to avoid too many links that may lose the reader.}} *'''.dtsi:''' Source files that can be included from a DTS file. {{ReviewsComments| W903.5 GeraldB: .h files to be added}} ===Bindings=== The device tree data structures and properties are named '''bindings'''. Those bindings are described in: *The Device tree specification<ref name="dt_org"/> for generic bindings. *The software component documentations: **Linux<sup>®</sup> Kernel: {{CodeSource | Linux kernel | Documentation/devicetree/bindings/ | Linux kernel device tree bindings}} **U-Boot: {{CodeSource | U-Boot | Documentation/devicetree/bindings/ | U-Boot device tree bindings}} **TF-A: {{CodeSource | TF-A | docs/devicetree/bindings/ | TF-A device tree bindings}} ===Build=== <br> [[File: dt.png|thumb|upright=2|right|link=|Device tree build process]] *A tool named DTC (Device Tree Compiler) allows compiling the DTS sources into a binary. *input file: the ''.dts'' file described in section above. *output file: the ''.dtb'' file described in section above. *More information are available in DTC manual<ref>[https://git.kernel.org/pub/scm/utils/dtc/dtc.git/tree/Documentation/manual.txt https://git.kernel.org/pub/scm/utils/dtc/dtc.git/tree/Documentation/manual.txt(master)] ,DTC manual</ref>. {{ReviewsComments| W903.5 GeraldB: the bullet above is useless if you directly put the reference to the DTC manual from the first bullet. Moreover, such a reference is missing above so that would ease the reading.}} *DTC source code is located here<ref name="dtc_source">[https://git.kernel.org/pub/scm/utils/dtc/dtc.git https://git.kernel.org/pub/scm/utils/dtc/dtc.git(master)] ,DTC source code</ref>. DTC tool is also available directly in particular software components: '''Linux Kernel, U-Boot, TF-A ...'''. For those components, the device tree building is directly integrated in the component build process. {{Info|If dts files use some defines, dts files should be preprocessed before being compiled by DTC.}} <br/> ===Tools=== The device tree compiler offers also some tools: *'''fdtdump:''' Print a readable version of a flattened device tree file (dtb) *'''fdtget:''' Read properties from a device tree *'''fdtput:''' Write properties to a device tree *... There are several ways to get those tools: *In the device tree compiler project source code<ref name="dtc_source" /> *Directly in software components: '''Kernel, u-boot, tf-a ...''' *Available in Debian package<ref>[https://packages.debian.org/search?keywords=device-tree-compiler https://packages.debian.org/search?keywords=device-tree-compiler(master)] ,DTC debian package</ref> == STM32 == For STM32MP1, the device tree is used by three software components: [[STM32MP15 Linux kernel overview|Linux<sup>®</sup> kernel]], [[U-Boot overview|U-Boot]] and [[TF-A overview|TF-A]]. The device tree is part of the [[OpenSTLinux distribution]]. It can also be generated by [[STM32CubeMX]] tool. To have more information about the device tree usage on STM32MP1 (how the device tree source files are split, how to find the device tree source files per software components, how is [[STM32CubeMX]] generating the device tree ...) see [[STM32MP15 device tree]] page. ==How to go further== * Device Tree for Dummies<ref>[https://events.linuxfoundation.org/sites/events/files/slides/petazzoni-device-tree-dummies.pdf Device Tree for Dummies], Free Electrons</ref> - Free Electrons * Device Tree Reference<ref>[https://elinux.org/Device_Tree_Reference Device Tree Reference], eLinux.org</ref> - eLinux.org * Device Tree usage<ref>[https://elinux.org/Device_Tree_Usage Device Tree Usage], eLinux.org</ref> - eLinux.org ==References== <references /> <noinclude> [[Category:Platform configuration|1]] {{PublicationRequestId | 10390 | 2019-01-21 | AlainF}} </noinclude>
该页面使用的模板:
模板:CodeSource
(
查看源代码
)
模板:Info
(
查看源代码
)
模板:PublicationRequestId
(
查看源代码
)
模板:ReviewsComments
(
查看源代码
)
模板:STDarkBlue
(
查看源代码
)
返回至
Device tree
。
导航
导航
WIKI首页
官方店铺
资料下载
交流社区
所有页面
所有产品
MPU-Linux开发板
MCU-单片机开发板
Linux开发系列视频
单片机开发系列视频
所有模块配件
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志