Device Tree/en

Материал из Wiren Board
Версия от 10:25, 6 сентября 2022; FuzzyBot (обсуждение | вклад) (Обновление для соответствия новой версии исходной страницы.)

Другие языки:

Device Tree are files describing the hardware configuration. They are used in Linux and therefore in the Wiren Board controllers firmware. Modification of Device Tree-files may be required when re-assigning 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!