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
0
votes
0 answers

Beaglebone Black: Interaction between Device Tree and Kernel Module

I am currently developing a SPI Kernel Module for my Beaglebone Black (Debian Wheezy 2015-11-12, Kernel version 3.8.13-bone79). My kernel module can access (request_mem_region() => ioremap()) registers from the AM3358 processor (read/write) to…
0
votes
1 answer

Device Tree for SPI0 not loading during Beaglebone Black Boots up

I am presently using Debian GNU/Linux 7.9 (wheezy) [Kernel version 3.8.13-bone70] on the BBB. Everything works fine until I reboot the BBB. Before rebooting, I do the following to verify If the SPI0 is…
PsychedGuy
  • 187
  • 3
  • 11
0
votes
1 answer

How to configure the multiplexer select of the ADC ad7266 in the device tree?

I am using a Freescale i.mx28 board. There is a ad7266 that communicate with the cpu over SPI. The ad7266 has a multiplexer that works with three GPIOs. (A0, A1, A2). In the past I configure this GPIOs directly in the driver. Now I want to use a…
eddi
  • 41
  • 5
0
votes
1 answer

Are DMA transfers supported with the davinci-spi device driver that is configured using devicetree?

I am trying to use DMA to program an FPGA connected to an OMAP-L138's SPI bus, but without success. Currently, I am using the stock davinci-spi driver (drivers/spi/spi-davinci.c)that comes with linux 3.19. FPGA configuration is successful (without…
0
votes
1 answer

Embedded Linux: Move Pin configuration from Kernel files to DTS file

I am working on ARM platform ,I am trying to move pin configurations in kernel files to board/SOC specific DTS|DTSI files.. can somebody in light me , how can I achieve this... or any link where ican get some help ?
0
votes
1 answer

adding a serial port vivado/ISE microzed board-Xilinx

I am running xillinux on my microzed board. I need to define a new serial port on the board using vivado. I was able to add this to the IP core and the device is ready. But,how do I make this port visible on ubuntu (xillinux) like ttyPS0. DO I need…
bobbydf
  • 183
  • 1
  • 4
  • 13
0
votes
1 answer

UART4 with Pandaboard and Arch Linux

I'm trying to use UART4 in my Pandaboard with Arch Linux. I'm using the latest kernel (4.2.0-2-ARCH) so I can't configure MUX in the old way using omap_mux, I have to do it using Device Tree Overlay. This is new to me so it's hard, I've never done…
Andres
  • 6,080
  • 13
  • 60
  • 110
0
votes
1 answer

Access GPIO3 pins via PRU on Beaglebone Black

I am trying to port a Sample-Project from Beaglebone Black PRU code for HC-SR04 sonar, which works totally fine to other GPIO pins. I need to setup multiple sonars on my BBB. So I deciced to use for example pin P9_31 and P9_25. I adapted the dts-…
x'mpl'
  • 113
  • 13
0
votes
1 answer

How to "bind" SDIO1 with Wi-Fi LInux?

I have an SDIO based Wi-Fi module and I play to use it on Zynq Petalinux. So the device tree has SDIO1 interface, and plus it has fixedregulator. But I couldn't figure out how to let Linux use this SDIO1 interface for the Wi-Fi. I remember I have…
Splash
  • 1,288
  • 2
  • 18
  • 36
0
votes
1 answer

Beaglebone black edit default am335x-boneblack.dts device tree

I need to modify the default configuration of pinmuxing on the BBB. To do so i'm trying to modify the am335x-boneblack.dts before recompiling the kernel. But that file is very awkward. I've only found information about overlay, but i need this to be…
0
votes
1 answer

Support for Serial 64MB SPI Flash, and OpenWRT on MIPS

I have some divice this is a prototye. In device was used MCU MT7620a. On board I have 32 MB RAM, and 64MB SPI Flash. I whant to install OpenWRT on this device, but I have problem with correct driver to this SPI flash, because driver m25p80 usually…
Mbded
  • 1,754
  • 4
  • 23
  • 43
0
votes
1 answer

BBB [debian] How to execute LSBInitscript AFTER loading device tree overlay?

My program runs on BBB (debian) and depends on device tree overlay (SPI). Overlay compiled and added to /etc/default/capemgr: CAPE=BB-DSPI1. LSB-script that executes my prog added to the system with update-rc.d, Required-Start parameter is…
0
votes
1 answer

I2C Symbolic Link

In linux you are able to use the ln command to link files/folders together to create symbolic files/folders. Is there a way to do the same thing but with i2c master addresses. Ex: i2c-this -> i2c-06 So that when my code calls on "i2c-this", the…
Alexander Wen
  • 33
  • 1
  • 7
0
votes
1 answer

Device tree and GPIO

I'm trying to interface a GPIO controller in a kernel driver and I'm not sure if I'm doing everything right. This is my device tree code: gpio_screen1:gpio1@20 { compatible = "nxp,pca9535"; gpio-controller; …
Jamiro14
  • 203
  • 4
  • 12
0
votes
1 answer

Length parameter in struct property (include/linux/of.h)

How is length parameter calculated from a device tree property, i,e. what is the meaning of property length and how its calculated from a device tree. struct property { char *name; int length; void *value; struct property…
valmiki
  • 701
  • 9
  • 24