Device Tree/en: различия между версиями
(нет различий)
|
Текущая версия на 10:26, 6 сентября 2022
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!