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