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

David Mandala
Jamie Bennett
Jamie Bennett
Series goal:
Accepted for lucid
Milestone target:
milestone icon ubuntu-10.04
Started by
Jamie Bennett
Completed by
Jamie Bennett

Related branches



[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.

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