Hi Jeremy, I've done some consolidation work between our two trees. Here's the show-branch of what I started with: ! [test-devicetree] arm/boot/hack: set uImage load address to 0x81000000 ! [jk/versatile] arm/versatile: probe devices from device tree -- + [jk/versatile] arm/versatile: probe devices from device tree + [jk/versatile^] arm/versatile: probe via device tree + [jk/versatile~2] drivers/amba: probe via device tree + [jk/versatile~3] drivers/amba: separate periphid probe logic from amba_device_register + [jk/versatile~4] arm/clkdev: lookup clocks from OF clock providers + [jk/versatile~5] arm/icst307: remove icst307_ps_to_vco + [jk/versatile~6] arm/icst307: use common struct clk, unify realview and versatile clocks + [jk/versatile~7] arm/realview: use generic struct clk + [jk/versatile~8] arm/versatile: remove oscoff from clk_versatile + [jk/versatile~9] arm/versatile: use generic struct clk + [jk/versatile~10] of/clk: parse fixed clocks + [jk/versatile~11] of: add clock providers + [jk/versatile~12] Generic support for fixed-rate clocks + [jk/versatile~13] Add a common struct clk + [jk/versatile~14] arm-dt: add devictree node reference to dev_archdata + [jk/versatile~15] arm-dt: unflatten device tree + [jk/versatile~16] arm-dt: parse initrd from device tree + [jk/versatile~17] arm-dt: probe for platforms via the device tree + [jk/versatile~18] arm-dt: reserve bootmem containing flat device tree blob + [jk/versatile~19] arm-dt: parse devtree pointer on boot + [jk/versatile~20] of/flattree: include linux/of.h + [jk/versatile~21] arm-dt: postpone machine detection until setup_arch with CONFIG_OF + [test-devicetree] arm/boot/hack: set uImage load address to 0x81000000 + [test-devicetree^] arm/devicetree: Don't allow CONFIG_DEBUG_LL with device tree + [test-devicetree~2] arm-dt: unflatten device tree + [test-devicetree~3] arm/devicetree: Reserve memory used by dtb blob + [test-devicetree~4] arm/devicetree: Allow .dtb to be carried in the zImage payload ++ [jk/versatile~22] arm-dt: Allow CONFIG_OF on ARM To start, I move some things around and split stuff out in my branch to give you a new base point: [test-devicetree^] Don't allow CONFIG_DEBUG_LL - dropped. - you merged this into jk/versatile~21 [test-devicetree~2] arm-dt: unflatten device tree - Split into new patches: - the of_fdt.h #if defined(CONFIG_OF_FLATTREE) - the extra error checking - You should be able to drop [jk/versatile~15] arm-dt: unflatten device tree [test-devicetree~3] arm/devicetree: Reserve memory used by dtb blob - Almost identical to [jk/versatile~18] arm-dt: reserve bootmem... - Would you consider dropping jk/versatile~18 and replacing it with the diff from test-devicetree~3..jk/versatile~18? I'd like to have the base series of patches that enables fdt support in arm to not change the boot path. I've attached the diff that I think you'll need. [test-devicetree] arm/boot/hack: set uImage load address to 0x81000000 and [test-devicetree~4] arm/devicetree: Allow .dtb to be carried in the zImage payload - moved to the end of my queue because you don't want these in your tree. Also, in your queue, you should be able to: [jk/versatile~20] of/flattree: include linux/of.h - drop; the problem is fixed in next-devicetree [jk/versatile~18] arm-dt: reserve bootmem containing flat device tree blob - replace; as mentioned above [jk/versatile~14] arm-dt: add devictree node reference to dev_archdata - drop; I've picked it up into my tree - Although what I'd really like to do here is move the of_node pointer into the main struct device and eliminate the archdata entirely. I'll see if I get time to work on this. The showbranch now looks like this for me: * [secretlab/test-devicetree] arm/boot/hack: set uImage load address to 0x81000000 ! [jk/versatile] arm/versatile: probe devices from device tree -- * [secretlab/test-devicetree] arm/boot/hack: set uImage load address to 0x81000000 * [secretlab/test-devicetree^] arm/devicetree: Allow .dtb to be carried in the zImage payload * [secretlab/test-devicetree~2] arm/devicetree: Reserve memory used by dtb blob * [secretlab/test-devicetree~3] arm-dt: add devictree node reference to dev_archdata * [secretlab/test-devicetree~4] arm-dt: unflatten device tree * [secretlab/test-devicetree~5] of/flattree: Make unflatten_device_tree() safe to call from any arch * [secretlab/test-devicetree~6] of/flattree: make of_fdt.h safe to unconditionally include. + [jk/versatile] arm/versatile: probe devices from device tree + [jk/versatile^] arm/versatile: probe via device tree + [jk/versatile~2] drivers/amba: probe via device tree + [jk/versatile~3] drivers/amba: separate periphid probe logic from amba_device_register + [jk/versatile~4] arm/clkdev: lookup clocks from OF clock providers + [jk/versatile~5] arm/icst307: remove icst307_ps_to_vco + [jk/versatile~6] arm/icst307: use common struct clk, unify realview and versatile clocks + [jk/versatile~7] arm/realview: use generic struct clk + [jk/versatile~8] arm/versatile: remove oscoff from clk_versatile + [jk/versatile~9] arm/versatile: use generic struct clk + [jk/versatile~10] of/clk: parse fixed clocks + [jk/versatile~11] of: add clock providers + [jk/versatile~12] Generic support for fixed-rate clocks + [jk/versatile~13] Add a common struct clk + [jk/versatile~14] arm-dt: add devictree node reference to dev_archdata + [jk/versatile~15] arm-dt: unflatten device tree + [jk/versatile~16] arm-dt: parse initrd from device tree + [jk/versatile~17] arm-dt: probe for platforms via the device tree + [jk/versatile~18] arm-dt: reserve bootmem containing flat device tree blob + [jk/versatile~19] arm-dt: parse devtree pointer on boot + [jk/versatile~20] of/flattree: include linux/of.h + [jk/versatile~21] arm-dt: postpone machine detection until setup_arch with CONFIG_OF *+ [secretlab/test-devicetree~7] arm-dt: Allow CONFIG_OF on ARM -- Grant Likely, B.Sc., P.Eng. Secret Lab Technologies Ltd.