This is an old revision of the document!
Flattened Device Tree
This page is dedicated to the project bringing the flattened device tree (FDT) technology to the FreeBSD. For details contact RafalJaworowski. Work on this project is kindly sponsored by the FreeBSD Foundation.
Abstract
The objective of this project is to provide FreeBSD with the ability to use flattened device trees for description of hardware resources of a computer system and their dependencies, in a platform-neutral and portable way. The primary consumer of this functionality are embedded systems (based on ARM, AVR32, MIPS, PowerPC), but the mechanism can be used in all cases when hardware resources cannot be self-enumerated (as such could be seen as a future replacement for device.hints used in the legacy PC world).
Documentation
Repository
The official project branch in P4.
Work break down
| Description | Status | Comments |
|---|---|---|
| dtc: build on FreeBSD host, integrate with build system, test compile example device tree sources, verify | Complete. Changes for yacc/lex compatiblity merged upstream. | Minor adjustments were required for the dtc to build with yacc (default in FreeBSD base installation) instead of bison. All 1248 cases from the testsuite attached to the dtc package pass. |
| libfdt: integrate with build system | Complete. | |
| loader(8) extensions: device tree blob handling, commands to run-time modify the device tree properties, nodes etc. | Complete. | |
| Handling of embedded device tree blob (statically included in the kernel image, for configurations when loader(8) cannot be run) | Complete. | |
| Implementation of the ofw_bus I/F for the FDT back-end: integrate libfdt library in the kernel, potentially extend the ofw_bus framework | Complete. | |
| Integration of the FDT support layer with newbus infrastructure | Complete. | |
| Device tree handling in machdep | Complete. | |
| Provide device tree sources for selected platforms: compile into blob, test basic parsing, debug. | Complete. | Imported complete MPC8555CDS and MPC8572DS device tree source files, developed from scratch the DTS files for DB-88F6281, DB-88F5281, DB-88F5182, DB-78100 and SheevaPlug |
| Convert drivers attachment code to use OF-like interface (MPC85xx PowerPC, Marvell ARM) | Complete. | |
| Documentation: device bindings, conventions, example sources; wiki, man | Ongoing – this wiki pages are part of this item! |