Add device-tree support to ARM

Registered by Jamie Bennett

Device tree's are a mechanism to pass hardware configuration data to the operating system. Currently ARM Linux uses the mach-type method to figure out device details but this is cumbersome for the ever-increasing number of board variants and it doesn't hold data about attached peripherals. Using device trees could simplify board ports and reduce platform specific code.

Blueprint information

Status:
Complete
Approver:
David Mandala
Priority:
High
Drafter:
Jamie Bennett
Direction:
Approved
Assignee:
Jamie Bennett
Definition:
Approved
Series goal:
Accepted for lucid
Implementation:
Implemented
Milestone target:
milestone icon ubuntu-10.04
Started by
Jamie Bennett
Completed by
Jamie Bennett

Related branches

Sprints

Whiteboard

[JamieBennett 10-05-25] As this was a tracking blueprint and the work that needed to get done did happen, I'm marking this as implemented.

[JamieBennett 10-03-19] Actual implementation has been deferred but tracking the progress of this is very much part of this cycle.

[JamieBennett 10-02-02] Although there is good progress with device tree's on ARM, this won't be ready for Lucid. Postponing for Lucid+1 but leaving open the monitoring work item for the moment.

[asac 02-12-09]: fixed work itesm syntax; approved as all we can do for now is done. more once we see progress on grants git tree ...
[asac 10-02-10]: this spec is postponed to lucid+1; moving TODO work itesm to "later" block and marking them POSTPONED for lucid work items
[asac] removing items from later milestone. the work item tracker doesnt get it right. POSTPONE means later.

Status:
Postponed to lucid+1; waiting on initial implementation from Grant Likely/Jeremy Kerr

Work items:
Weekly monitoring of Grants git tree and report progress (until delivery DATE): POSTPONED
Add device tree to one of our supported architectures based on Grant Likelys work: POSTPONED
Merge work to a seperate ubuntu device tree branch: POSTPONED
Add support for device tree to image building: POSTPONED
Test device tree enabled kernel on one of our supported architectures: POSTPONED

Work Items ubuntu-10.04:
[jk-ozlabs] Add atag type for device tree pointer: DONE
[jk-ozlabs] Add dtb blob & atags support to bootloader/qemu: POSTPONED
[jk-ozlabs] Establish early C runtime environment in real mode to call early_setup(): POSTPONED
[jk-ozlabs] Establish requirements of early mdesc usage: DONE
[jk-ozlabs] Populate early_setup() to parse enough DT for a dynamic mdesc: POSTPONED
[jk-ozlabs] Parse DT pointer from atags: DONE
[jk-ozlabs] Little-endian support for drivers/of/: DONE
[jk-ozlabs] Provide memory and initrd parsing for early dt: DONE
[jk-ozlabs] Add machine probe infrastructure: DONE
[jk-ozlabs] Add machine probe support for versatile platform: DONE
[jk-ozlabs] Add DT infrastructure to later boot: POSTPONED
[jk-ozlabs] Add 'dtb wrapper' support to ARM kernel: POSTPONED
[jk-ozlabs] Add DT discovery support for drivers on platforms we'd like to DT-ise: POSTPONED

(?)

Work Items