Questions tagged [device-tree]

The Device Tree is a data structure for describing hardware. Rather than hard coding every detail of a device into an operating system, many aspects of the hardware can be described in a data structure that is passed to the operating system at boot time. The device tree is used both by Open Firmware, and in the standalone Flattened Device Tree (FDT) form.

Device Trees are related to open firmware. It is often abbreviated as DT. They are a mechanism to pass hardware parameters to an OS from a boot loader. Device Trees are common on embedded PowerPC CPUs and more recently ARM CPUs. There is a lot of effort in the Linux kernel to support and use Device trees.

The main benefit is that one kernel binary may support many systems, even ones not conceived when the binary was built.

The device tree supports variable length data with keys, much like XML. Also, by itself, it does not define what the keys mean beyond a few standard details like an address, etc. For instance, it doesn't describe how a video controller entry should look. It is fairly detailed on CPU, memory and bus topologies.

References

Related Tags

  • - older PC BIOS standard, competing with DT/Open Firmware
  • -new PC BIOS standard, competing with DT/Open Firmware
  • - an embedded boot loader which functions as a BIOS on many embedded systems. u-boot supports passing devices trees to an OS.
630 questions
8
votes
1 answer

API to read the device tree from userspace

Is there an API to read the Open-Firmware device tree from userspace? For example, reading /sys/firmware/fdt (flattened device tree)? If not, is the file format published so a userspace application can read entries from the fdt?
Stéphane
  • 19,459
  • 24
  • 95
  • 136
8
votes
2 answers

In linux, what is difference between Open firmware device tree and flattened device tree

In linux, what is difference between Open firmware device tree and flattened device tree. How to identify the linux kernel is using which Device tree OF DT or FDT.
Spyder
  • 894
  • 2
  • 14
  • 18
8
votes
1 answer

what is the use of Flattened device tree - Linux Kernel

I am going through the Uboot & kernel startup process. What exactly is the use of the FDT (Flat device tree) ? Many link i have read they state that uboot pass the board & SOC configuration information to Kernel in the form of…
Katoch
  • 2,709
  • 9
  • 51
  • 84
7
votes
2 answers

Passing Bootargs via Chosen node in Device Tree not working for Beaglebone Black

As per my understanding chosen node is used to send boot arguments to the kernel. The following is the chosen node of the existing device code (am335x-bone-common.dtsi). chosen { stdout-path = &uart0; }; So, I have modified chosen node to pass…
7
votes
1 answer

tcpdump error message "That device doesn't support monitor mode"

Running Linux on a Xilinx ZCU102 development board. When using a 1000BASE-X & Tri-Mode Ethernet Mac. I can send pings out of the Ethernet port, but when I run tcpdump to try and show that packets are coming into the system... I get a strange error…
CraigDavid
  • 1,046
  • 1
  • 12
  • 26
7
votes
1 answer

Modifying the device tree for the Beaglebone Black

I have used Yocto to create a small linux image for the Beaglebone Black. I think I have most everything working like I want it, except I need access to UARTs 2 and 4. When I was using the standard Debian image, I did this with device tree…
Dave
  • 1,326
  • 2
  • 11
  • 22
7
votes
1 answer

How to add device tree blob to Linux x86 kernel boot?

My custom development board is based on x86 and one of the electronic component which is connected to it (through SPI mainly) cannot be controlled easily without using the vendor kernel driver (and the vendor won't help if I don't use it). This…
Tey'
  • 961
  • 12
  • 23
7
votes
3 answers

Embedded Linux device tree parser in python?

I am looking to create a utility that validates Embedded (PPC or ARM) Linux *.dts (device tree source) or *.dtb (binary) files against an XML configuration file from another tool. So, I need to parse the dts or dtb files. I would really like to do…
jbrogdon
  • 671
  • 1
  • 7
  • 15
7
votes
2 answers

How can I edit a pinmux for BeagleBone Black on linux kernel 3.17?

I can take a peek at /sys/kernel/debug/pinctrl/44e10800.pinmux/pins and see the pin I am interested in: pin 38 (44e10898.0) 00000037 pinctrl-single This corresponds to GPIO[2]4, or P8.10. I'm using Fedora 21, with kernel 3.17.7-300.fc21.armv7hl. I…
ToBeReplaced
  • 3,334
  • 2
  • 26
  • 42
7
votes
3 answers

Linux: boot arguments with U-Boot and Flat Image Tree (FIT)

I am trying to get my own build of U-Boot to boot Linux on a Jetson TK1 board. As we are pushing for verified boot I am using the Flat Image Tree (unifying kernel image, device tree blob, ...) to describe my system. U-Boot can load the ITB file and…
LostBoy
  • 948
  • 2
  • 9
  • 21
6
votes
1 answer

Yocto Kirkstone Beaglebone Black add custom devicetree

When I build a core-image using Yocto Kirkstone for machine beaglebone-yocto, I get a file /boot/extlinux/extlinux.conf. This file looks like: default Yocto label Yocto kernel /zImage fdtdir / append root=PARTUUID=f8fbccd5-02 rootwait…
Katu
  • 1,296
  • 1
  • 24
  • 38
6
votes
3 answers

What is the meaning of a phandle when used as device tree node name?

This code snippet comes from the device tree for the RIoTBoard (/arch/arm/boot/dts/imx6dl-riotboard.dts) &hdmi { ddc-i2c-bus = <&i2c2>; status = "okay"; }; I have gone through the device tree documentation both on devicetree.org…
Irr
  • 656
  • 1
  • 9
  • 19
6
votes
2 answers

How do I embed a device tree blob, (dtb), in a linux kernel?

There should be a standard, board and architecture independent way to do this just like there is with initfamfs, no? I'm using powerpc and linux-3.10, if it matters. If there are better facilities later, I'd be interested to hear about them. And if…
K Richard Pixley
  • 617
  • 1
  • 6
  • 10
6
votes
1 answer

How linux kernel get data from the Device tree?

I am a beginner to the Linux Kernel. In my knowledge, in the older versions of the Kernel there was a board specific file, in which all the devices were registered (by using some API s like platform_get_register, etc). And in newer versions of the…
Vineesh Vijayan
  • 313
  • 1
  • 5
  • 13
6
votes
1 answer

Difference between spi_driver.id_table and spi_driver.driver.of_match_table

I'm currently trying to understand how linux drivers work. As far as I know, A driver's probe/init function is called when the kernel parses the corresponding .compatible string in the device tree. However, in the arizona-spi driver it looks like…
JohnnyVang
  • 113
  • 2
  • 8
1 2
3
41 42