Device Tree/en

Материал из Wiren Board
Это утверждённая версия страницы. Она же — наиболее свежая версия.
Другие языки:

Device Tree - hardware configuration description files. They are used by Linux and hence the Wiren Board. Modification of Device Tree files may be required when reassigning ports, connecting some UEXT devices, when connecting 1-wire sensors, etc.

Read more about Device Tree: https://en.wikipedia.org/wiki/Device_tree , http://elinux.org/Device_Tree

Device Tree for Wiren Board is located in the imx23-wirenboard28.dts

file. It also uses the processor description file imx23.dtsi

Device Tree files are written in .dts text format, which is compiled into dtb binary format

Loading

n the standard image of the Wiren Board, the U-Boot loader reads the dtb file of the Device Tree description and passes it to the kernel. The dtb file name is specified in the/boot/uEnv.txt :

#These are the default settings for some useful u-boot variables:
fdt_file=/boot/dtbs/imx23-wirenboard28.dtb

The dtb file is located in /boot/dtbs/imx23-wirenboard28.dtb (for Wiren Board rev. 2.8), at /boot/dtbs/imx23-wirenboard32.dtb (for Wiren Board Smart Home rev. 3.5)

Reassembly

To make changes to Device Tree, you need to download Device Tree in text format, compile the imx23-wirenboard28 file.dts and record the result (imx23-wirenboard28.dtb) to /boot/dtbs/

Another way is to build the kernel:Сборка ядра

Download

Here[1] you must download imx23-wirenboardXX.dts file, corresponding the device version, and dependencies. The dependencies on this file are imx23.dtsi, skeleton.dtsi.

Main DTS file:

imx23-wirenboard32.dts for Wiren Board Smart Home rev. 3.5

imx23-wirenboard28.dts for Wiren Board rev. 2.8

$ mkdir dts
$ cd dts

$ #export WB_BRANCH=v3.12-rc3-imxv5-x0.3  # for kernel 3.12
$ export WB_BRANCH=v3.13-imxv5-x0.1

$ wget https://raw.github.com/contactless/linux/$WB_BRANCH/arch/arm/boot/dts/mxs-pinfunc.h

$ wget https://raw.github.com/contactless/linux/$WB_BRANCH/arch/arm/boot/dts/imx23-wirenboard28.dts

2013-11-17 04:24:28 (37.9 MB/s) - «imx23-wirenboard28.dts» is saved [5255/5255]

$ wget https://raw.github.com/contactless/linux/$WB_BRANCH/arch/arm/boot/dts/imx23.dtsi

2013-11-17 04:24:33 (272 KB/s) - «imx23.dtsi» is saved [13052/13052]

$ wget https://raw.github.com/contactless/linux/$WB_BRANCH/arch/arm/boot/dts/skeleton.dtsi

$ wget https://raw.github.com/contactless/linux/$WB_BRANCH/arch/arm/boot/dts/imx23-pinfunc.h

$ ls 
imx23.dtsi       imx23-wirenboard28.dts  skeleton.dtsi
imx23-pinfunc.h  mxs-pinfunc.h

Compiler

The Device Tree compiler in Ubuntu and Debian is in the device-tree-compiler package. Install it:

$ sudo apt-get install device-tree-compiler

gcc is also required

$ sudo apt-get install gcc

Compilation

$ gcc -E -Wp,-MD,imx23-wirenboard28.dtb.d.pre.tmp -nostdinc -I. -undef -D__DTS__ -x assembler-with-cpp -o .imx23-wirenboard28.dtb.dts.tmp  imx23-wirenboard28.dts

$ cat .imx23-wirenboard28.dtb.dts.tmp | grep -v "^#" | dtc -I dts -O dtb -o imx23-wirenboard28.dtb
DTC: dts->dtb  on file "-"

Installation

The compiled file must be written to /boot/dtsb. Be sure to make a backup of the existing / boot/dtsb file!