Device Tree on ARM status report - Mar 20

Grant Likely grant.likely at secretlab.ca
Sat Mar 26 18:38:29 EST 2011


For those of you working on bringing up arm device tree support
against the Linaro u-boot * kernel trees, I've just pushed out a
couple of branches that work on Panda board.  It's not complete yet
because there are some bugs I found in both the kernel and in u-boot,
but it should be useful to base off of when working on the other
platforms:

U-boot tree based on u-boot-linaro-stable:
git://git.secretlab.ca/git/u-boot devicetree/linaro-stable

Kernet tree based on linux-linaro-2.6.38
git://git.secretlab.ca/git/linux-2.6 devicetree/arm-linaro-2.6.38

I'll post the patches that I've got in those branches after I clean
them up.  Probably Monday.

g.

On Mon, Mar 21, 2011 at 3:25 AM, Grant Likely <grant.likely at secretlab.ca> wrote:
> I had great hopes of doing these status reports once a week; but it
> turns out to take more effort to get together that I estimated.
> Here's the status of ARM device tree support as of today.  As always,
> let me know if you have any corrections or additional information.
>
> 1 - Latest news
> ---------------
> - The last vestiges of of_platform_bus_type are gone from Linus' tree
> as of the 2.6.39 merge window.  Everything should be using
> platform_device now.
> - devicetree/arm on git://git.secretlab.ca/git/linux-2.6 has
> everything needed to turn on basic device tree support for any
> platform.
>  - Support has been added for Versatile and Tegra in devicetree/arm
>  - Support for Samsung s5pv310 and Freescale mx5 are in devicetree/test
> - Similarly, u-boot needs to have the CONFIG_OF_LIBFDT and
> CONFIG_SYS_BOOTMAPSZ defined to turn on device tree support.
>  - I've also got patches that eliminate the need for
> CONFIG_SYS_BOOTMAPSZ which I'll post shortly, but they're not quite
> working yet.
>  - I've also got a trivial patch that should enabled CONFIG_OF_LIBFDT
> on a large set of boards, but it has had pretty much zero testing.
> :-)
> - Jason Hui has been making awesome progress on mx5, and some of their
> patches are in devicetree/test.  Hopefully to move over to
> devicetree/arm soon.
> - Shawn Guo has also been making good progress on adding the clock
> bindings to the mx5 support.  There are still questions up in the air
> about the best way to handle clocks though.  While all the clocks
> /can/ be converted to device tree data, there is also value in sharing
> clock initialization data between DT and non-DT board support.  The
> of_platform_device_prepare() work mentioned below will help with that.
>  It will also be easier to work on the clock support when the common
> struct clk patch series from Jeremy gets merged.  Until then there
> ends up being a lot of duplication of code.
> - Lennert has a series of virq patches for ARM patches completed.  He
> is currently working on cleaning them up to get them posted.
> - Patches posted for of_platform_prepare() which makes it easier for
> static platform_device registrations to co-exist with device tree
> data.  Patches are currently in devicetree/test, and will move to
> devicetree/arm shortly.
> - Basic DT support has been merged into Nicolas' Linaro kernel tree.
> - DT is also working on Versatile Express, OMAP, and the new Xilinx
> platform, but I don't have patches for either of those platforms in my
> tree.
> - Rob Herring's work on the early dtb mmu maping is mainlined and
> makes it much nicer to work with dtbs.
>
> Next steps:
> --------------
> At this point I'm putting on my Linaro hat.  Feel free to tune out
> past this point if you're not interested how DT support will
> materialize in the next release.
>
> There are a number of very specific tasks that need to be completed
> for the 11.05 release.  The goal is to have basic device tree support
> turned on and working on all of the platforms supported in the
> release.  There isn't a lot of time to get this pulled together, but
> all the infrastructure is in places, so most of the work is turning on
> the configuration options and testing the platforms.
>
> For each board, I need an engineer to do the following:
>
> 1) Enable CONFIG_OF_LIBFDT and CONFIG_SYS_BOOTMAPSZ against the Linaro
> u-boot tree.
> 2) Enable CONFIG_OF and CONFIG_PROC_DEVICETREE in the kernel
> 3) Add something like the following to the *existing* machine
> definition.  For initial basic support, you don't need to create a
> separate <soc>-dt.c board support file yet.
>
> +static const char *omap4_panda_dt_match[] __initdata = {
> +       "ti,omap4-panda",
> +       NULL
> +};
> +
>  MACHINE_START(OMAP4_PANDA, "OMAP4 Panda board")
> [...]
> +       .dt_compat      = omap4_panda_dt_match,
>  MACHINE_END
>
>    The string in the match table should be in the form "<vendor>,<board-name>"
>
> 4) Add a template .dts file for the board in
> arch/arm/boot/dts/<board>.dts.  The following should be sufficient:
>
> /dts-v1/;
>
> / {
>        model = "TI OMAP4 PandaBoard";
>        compatible = "ti,omap4-panda";
>        #address-cells = <1>;
>        #size-cells = <1>;
>
>        aliases {
>        };
>
>        memory {
>                device_type = "memory";
>                reg = <0x80000000 0x08000000>;
>        };
>
>        chosen {
>        };
> };
> 5) test it  :-)
> 6) send patches to me for inclusion in the Linaro U-Boot and Kernel
> trees.  I'll collect them to start and ask John and Nicolas to pull
> them into their trees when they're ready.
>
> This is enough for very basic device tree support and I expect it will
> only take a day or so of effort to get completed.  It won't be
> particularly useful, but it ensures that the infrastructure is enabled
> and working.
>
> Bonus points if you're also able to provide patches that add
> of_platform_device_probe() and of_platform_bus_populate() calls to the
> board support so that device nodes get attached to the devices and can
> be used for attaching things like gpios, spi devices, and i2c devices.
>  This is a nice to have for 11.05, but it isn't a requirement to have
> it working on all boards.
>
> Here is the list of hwpacks that should be supported to the best of my
> knowledge.  Please reply with the hwpacks you can take responsibility
> for:
>
> efikamx
> igep
> imx51
> omap3-x11-base
> omap3
> overo
> panda
> s5pv310
> vexpress
>
> There are also some specific cross-platform tasks that need some love.
>  Let me know if you can take responsibility for any of these items.
> - Eliminate CONFIG_SYS_BOOTMAPSZ dependency from U-Boot.  I've got a
> patch series that does this, but it is untested.  I'll post the series
> tomorrow.
> - Add packaging of .dtb files into linux-image-linaro-* packages.
> Loic and I discussed putting them under /lib/dtb/`uname -r`/, but
> thinking about it more, it might make more sense to share the modules
> directory and use /lib/modules/`uname -r`/dtbs.  The dtc tool needed
> to build the .dtbs is included with the kernel tree.
> - Add relevant dtb files to boot partition in linaro-image tools
> - Add boot script which passes dtb as 3rd argument to 'bootm'
>
> For purposes of tracking, I'll register bugs for the above items in
> the Linaro bug tracker tomorrow.
>
> Cheers,
> g.
>
> --
> Grant Likely, B.Sc., P.Eng.
> Secret Lab Technologies Ltd.
>



-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.


More information about the devicetree-discuss mailing list