Prior to Linux3.1, board-level information is generally stored in the/arch/arm/mach-** directory for devices on a typical arm platform.
The files for the device tree are stored in the/arch/arm/boot/dts/***.dts directory
The purpose of the device tree introduction:
Avoid the duplication of individual vendor code, accelerating the development of the Linux kernel BSP. Compiling a mirror can support multiple different devices, just need to compile the corresponding device tree and package it.
Device tree: is a data structure (binary file) that describes the hardware information of the board and loads the different (corresponding kernels) via LK (bootloader).
Content: DTS source file----DTC compilation generates---DTB file---can be loaded into the kernel by giving LK a boot.
Source file: Contains information CPU, bus, serial port, physical memory, GPIO, controller information and so on (similar to our previous board level information mach--xx);
Based on the Open firmware derivative!
Lk-----Boot The kernel to this file (structure syntax parsing), when the kernel up, some corresponding devices, you can get the corresponding board-level hardware information.
"Linux-device Tree" device tree