Device Tree on ARM status and planning

Registered by Grant Likely on 2011-04-25

Overview of the current state of device tree support on ARM, and planning for development over the next cycle.

Blueprint information

Status:
Not started
Approver:
Paul McKenney
Priority:
Medium
Drafter:
None
Direction:
Needs approval
Assignee:
Grant Likely
Definition:
New
Series goal:
Accepted for 11.11
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

Status (as of UDS-O in May, 2011):
- Basic device tree infrastructure is basically complete and ready to be merged (update: as of May 29, has been merged into mainline).
- Interrupt remapping has been implemented, but needs heavy rework (update: as of May 20, a 2nd version has been circulated for review[1])
- Clock binding still requires work, and depends in large part to the common struct clk work

Planning:
- Focus for 11.11 will be on device tree board support (as opposed to SoC support). This means describing on-board devices in the device tree, but leaving SoC integrated devices alone for the time being so that multiple boards use the same SoC can share the same machine_desc.[2]
- Migrating on-SoC devices to device tree registration will be prototyped in the 11.11 cycle, but no firm decisions shall be made until the board support work is completed. Probably at the next UDS.[3]
- IRQ mapping and clock binding work needs to be completed ASAP [4][5]
- There needs to be a measure of independence between the device tree data files and the kernel proper for several reasons.
  - Russell is concerned about churn on the dts files.
  - It is hoped that other OSes will adopt the bindings currently being defined, but it may be hard for them to do that if bindings are only located in the kernel tree. FreeBSD was mentioned as an example.
  - It is hoped that having some separation will put some 'back pressure' on the binding creation process so that engineers spend some time thinking about the design of their bindings, and how changing them will affect existing systems.

[1] http://<email address hidden>/msg04612.html
[2] https://blueprints.launchpad.net/linaro/+spec/tr-kernel-dt-board-desc-n-implementation/
[3] https://blueprints.launchpad.net/linaro/+spec/tr-kernel-demo-complete-dt/
[4] https://blueprints.launchpad.net/linaro/+spec/tr-kernel-complete-virg-bindings/
[5] https://blueprints.launchpad.net/linaro/+spec/tr-kernel-complete-clock-bindings

(?)

Work Items

Work items for 11.06:
[glikely] Document Linux conceptual model for using device tree data: DONE

Work items for 11.11:
[glikely] Write "how-to" documentation for migrating platforms to use the device tree: INPROGRESS
[glikely] Move device tree documentation and .dts files into a separate git tree: TODO

Dependency tree

* Blueprints in grey have been implemented.