2011-02-06 04:43:20

by Grant Likely

[permalink] [raw]
Subject: Device Tree on ARM status report

Hi all,

With several more engineers working on ARM device tree support, I'm
going to start collecting the status of all the work that is going on
(and I know about) and posting it in a regular status report,
hopefully weekly, for the next few months until the all of the major
features are implemented and working on several arm platforms. I'll
try to use roughly the following format:

1) latest news and status updates
2) list of tasks with current state and who is responsible for them in
the same format as Launchpad blueprint whiteboards[1]. (In fact, I'll
probably move much, if not all, of this into Launchpad anyway, in
which case these emails will be a summary of all the blueprints. not
all of us work with Linaro, but it is a useful method for tracking
progress).
3) List of active engineers

[1] https://wiki.linaro.org/Process/Blueprints

Please read through and reply with comments/corrections. Feel free to
add or remove tasks from the list I've given below.

Thanks,
g.


1 - Latest news
---------------
- devicetree/arm on git://git.secretlab.ca/git/linux-2.6 has
everything needed to turn on basic device tree support for any
platform.
- Similarly, u-boot just needs to have the CONFIG_OF_LIBFDT defined to
turn on device tree support.
- IRQ handling is still a problem and only one interrupt controller
can be supported at the moment, but Lennert is working on a solution.
- I've posted a patch that will allow dt and non-dt device
registration to co-exist peacefully by snooping platform device
registrations. I could use some feedback and testing.
- hopefully the basic dt support can be merged into Nicolas' tree this
week if I get a cleaned up branch pushed out for him quickly.

2 - Task status
---------------
Core infrastructure:
[glikely] basic infrastructure to enable dt: DONE
[r-herring] Allow dtb to be located anywhere in RAM: DONE
[bones] Debug dtb corruption during init: INPROGRESS
[glikely] OF clock bindings: INPROGRESS
[glikely] Correctly handle dtb reserved memory sections: TODO
[glikely] merge basic dt support into nico's tree: TODO
[buytenh] virtual irq infrastructure: INPROGRESS
Remove u-boot restriction of first 16k for dtb: TODO
add processing of dtb reserved regions: TODO
verify dt gpio infrastructure works: TODO
[glikely] Remove early validation of machine type number: INPROGRESS

imx51 tasks
enable dtb support in u-boot: TODO
enable basic kernel dtb support: TODO
enable registration of devices form dt: TODO
... add more details here, specific devices, etc...

OMAP tasks
[buytenh] enable dtb support in u-boot: DONE
[buytenh] enable basic kernel dtb support on OMAP3: INPROGRESS
enable basic kernel dtb support on OMAP4: TODO
[buytenh] enable registration of devices form dt: TODO
... add more details here, specific devices, etc...

qemu support tasks:
Cleanup and mainline arm dtb support patches: TODO
configure qemu emulation from dtb (like microblaze): TODO
... add more details here, specific devices, etc...

Samsung S5PV310 tasks:
[thomas-ab] enable dtb support in u-boot: DONE?
[thomas-ab] enable basic kernel dtb support on S5PV310: DONE?
[thomas-ab] make gpio driver dt-aware: TODO
[thomas-ab] Register devices from dt: INPROGRESS
... add more details here, specific devices, etc...

Tegra tasks:
[glikely] enable dtb support in u-boot: DONE
[glikely] enable basic kernel dtb support on Harmony board: DONE
[glikely] probe irq controllers from device tree: TODO
[glikely] make gpio controller driver dt aware: TODO
[glikely] register devices from dt: INPROGRESS
... add more details here, specific devices, etc...

Versatile tasks:
enable dtb support in u-boot: TODO
[jk-ozlabs] enable basic kernel dtb support on versatile: DONE
[jk-ozlabs] probe clocks from dt: DONE
[jk-ozlabs] register devices from dt: DONE
decode irqs from dt: TODO

Versatile express tasks:
[lorenzo-pieralisi] enable dtb support in u-boot: DONE?
[lorenzo-pieralisi] enable basic kernel dtb support on versatile express: DONE
[lorenzo-pieralisi] probe clocks from dt: DONE?
[lorenzo-pieralisi] probe irq controllers from device tree: TODO
[lorenzo-pieralisi] register devices from dt: DONE?
... add more details here, specific devices, etc...

Xilinx arm tasks:
[john linn] enable dtb support in u-boot: TODO?
[john linn] enable basic kernel dtb support on xilinx arm devboard: DONE
[john linn] probe irq controllers from device tree: TODO
[john linn] register devices from dt: INPROGRESS?
... add more details here, specific devices, etc...

A15 tasks:
nothing yet

As far as I know, Rob's dtb anywhere patch is pending mainline, but
I'll carry it in devicetree/arm until it is merged. Same for the
patch that eliminates early vetting of the machine type number.

Active engineering list:
Thomas Abraham [thomas-ab] Samsung
Lennert Buytenhek [no launchpad id] core infrastructure and OMAP
Andy Green [] OMAP
Shawn Guo [] imx51
Rob Herring [r-herring] clock bindings, boot code
Jason Hui [] imx51
Jeremy Kerr [jk-ozlabs] clock bindings, imx51, versatile
John Linn [no launchpad id] Xilinx ARM dev board
Grant Likely [glikely] core infrastructure, tegra, versatile
Lorenzo Pieralisi [lorenzo-pieralisi] versatile express


2011-02-06 13:36:26

by Thomas Abraham

[permalink] [raw]
Subject: Re: Device Tree on ARM status report

On 6 February 2011 10:12, Grant Likely <[email protected]> wrote:
> Hi all,
>
> With several more engineers working on ARM device tree support, I'm
> going to start collecting the status of all the work that is going on
> (and I know about) and posting it in a regular status report,
> hopefully weekly, for the next few months until the all of the major
> features are implemented and working on several arm platforms. ?I'll
> try to use roughly the following format:

<snip>

> Samsung S5PV310 tasks:
> [thomas-ab] enable dtb support in u-boot: DONE?

The dtb support in u-boot has been enabled but that has been done in
my copy of u-boot. The linaro u-boot does not include support for
s5pv310 yet.

> [thomas-ab] enable basic kernel dtb support on S5PV310: DONE?

Done and tested.

> [thomas-ab] make gpio driver dt-aware: TODO

Will do this as next task.

> [thomas-ab] Register devices from dt: INPROGRESS
> ... add more details here, specific devices, etc...

The watchdog timer driver was modified to be probed from device tree
and it is working fine (will work for both dt and non-dt versions).
Other work items that will be taken up next are

- Retrieve the default UART register values from the device tree
during UART initialization.
- Add SDHCI_OF support for SDHCI s3c driver, required to support DT
enabled sdhci driver for s5pv310
- Initialize timer and GIC from dt.
- Support dt for gpio, i2c, spi, uart, srom controller.

Thanks,
Thomas.

<snip>

2011-02-07 08:46:20

by Amit Kucheria

[permalink] [raw]
Subject: Re: Device Tree on ARM status report

On 11 Feb 05, Grant Likely wrote:
> Hi all,
>
> With several more engineers working on ARM device tree support, I'm
> going to start collecting the status of all the work that is going on
> (and I know about) and posting it in a regular status report,
> hopefully weekly, for the next few months until the all of the major
> features are implemented and working on several arm platforms. I'll
> try to use roughly the following format:
>
> 1) latest news and status updates
> 2) list of tasks with current state and who is responsible for them in
> the same format as Launchpad blueprint whiteboards[1]. (In fact, I'll
> probably move much, if not all, of this into Launchpad anyway, in
> which case these emails will be a summary of all the blueprints. not
> all of us work with Linaro, but it is a useful method for tracking
> progress).
> 3) List of active engineers
>
> [1] https://wiki.linaro.org/Process/Blueprints
>
> Please read through and reply with comments/corrections. Feel free to
> add or remove tasks from the list I've given below.
>
> Thanks,
> g.
>
>
> 1 - Latest news
> ---------------
> - devicetree/arm on git://git.secretlab.ca/git/linux-2.6 has
> everything needed to turn on basic device tree support for any
> platform.
> - Similarly, u-boot just needs to have the CONFIG_OF_LIBFDT defined to
> turn on device tree support.
> - IRQ handling is still a problem and only one interrupt controller
> can be supported at the moment, but Lennert is working on a solution.
> - I've posted a patch that will allow dt and non-dt device
> registration to co-exist peacefully by snooping platform device
> registrations. I could use some feedback and testing.
> - hopefully the basic dt support can be merged into Nicolas' tree this
> week if I get a cleaned up branch pushed out for him quickly.
>
> 2 - Task status
> ---------------
> Core infrastructure:
> [glikely] basic infrastructure to enable dt: DONE
> [r-herring] Allow dtb to be located anywhere in RAM: DONE
> [bones] Debug dtb corruption during init: INPROGRESS
> [glikely] OF clock bindings: INPROGRESS

Does this include the common clock framework that Jeremy had been working on?
I see no mention of that explicitly, hence the question.

Regards,
Amit

2011-02-07 11:49:10

by Shawn Guo

[permalink] [raw]
Subject: Re: Device Tree on ARM status report

On Sun, Feb 6, 2011 at 12:42 PM, Grant Likely <[email protected]> wrote:
> Hi all,
>
[...]
>
> imx51 tasks
> enable dtb support in u-boot: TODO
> enable basic kernel dtb support: TODO
> enable registration of devices form dt: TODO
> ... add more details here, specific devices, etc...
>
[...]
> Shawn Guo [] imx51

I'm sorry that I'm a little behind primarily due to China Spring
Festival Holiday and recent mxs works. I will try to catch up ASAP.

--
Regards,
Shawn

2011-02-07 21:29:10

by Grant Likely

[permalink] [raw]
Subject: Re: Device Tree on ARM status report

On Mon, Feb 7, 2011 at 1:46 AM, Amit Kucheria <[email protected]> wrote:
> On 11 Feb 05, Grant Likely wrote:
>> 2 - Task status
>> ---------------
>> Core infrastructure:
>> [glikely] basic infrastructure to enable dt: DONE
>> [r-herring] Allow dtb to be located anywhere in RAM: DONE
>> [bones] Debug dtb corruption during init: INPROGRESS
>> [glikely] OF clock bindings: INPROGRESS
>
> Does this include the common clock framework that Jeremy had been working on?
> I see no mention of that explicitly, hence the question.

No, since the common clk patches are taking some time to get right,
the device tree clock bindings have been decoupled from the common clk
patches so that dt support doesn't get held up. When common clk gets
merged, the dt support will be modified to use it.

g.

2011-02-08 11:51:43

by Lorenzo Pieralisi

[permalink] [raw]
Subject: Re: Device Tree on ARM status report

On Mon, 2011-02-07 at 14:28 -0700, Grant Likely wrote:
> On Mon, Feb 7, 2011 at 1:46 AM, Amit Kucheria <[email protected]> wrote:
> > On 11 Feb 05, Grant Likely wrote:
> >> 2 - Task status
> >> ---------------
> >> Core infrastructure:
> >> [glikely] basic infrastructure to enable dt: DONE
> >> [r-herring] Allow dtb to be located anywhere in RAM: DONE
> >> [bones] Debug dtb corruption during init: INPROGRESS
> >> [glikely] OF clock bindings: INPROGRESS
> >
> > Does this include the common clock framework that Jeremy had been working on?
> > I see no mention of that explicitly, hence the question.
>
> No, since the common clk patches are taking some time to get right,
> the device tree clock bindings have been decoupled from the common clk
> patches so that dt support doesn't get held up. When common clk gets
> merged, the dt support will be modified to use it.
>

Ok Grant, good to know. I did not have time to check how the bindings
changed, but at least for vexpress I was registering and binding clocks
from DT. Here is the vexpress list of tasks updated.

Versatile express tasks:
[lorenzo-pieralisi] enable dtb support in u-boot: DONE within Linaro ?
[lorenzo-pieralisi] enable basic kernel dtb support on versatile
express: DONE
[lorenzo-pieralisi] probe clocks from dt: DONE
[lorenzo-pieralisi] probe irq controllers from device tree: DONE (basic
GIC init - interrupt routing is not there yet)
[lorenzo-pieralisi] register devices from dt:

Currently all vexpress platform devices are registered from the DT code,
but I have to rebase to see if things changed wrt test-devicetree
branch.

They include:

smsc911x (mdio inclusive but pending code to probe irq type)
isp1760
flash physmap
amba-pl011
amba-clcd-pl11x
PMU
mmc-pl18x

The GIC and sp804 timers are also initialized from DT (they need not be
platform devices though).

Please let me know if you need further details.

Lorenzo