Re: [PATCH 9/9] x86: OLPC: add OLPC device-tree support

Andres Salomon
2010-08-30T18:28:08Z

On Mon, 30 Aug 2010 12:14:57 -0600
Grant Likely <grant.likely@secretlab.ca> wrote:

> On Sun, Aug 29, 2010 at 10:07 PM, Andres Salomon
> <dilinger@queued.net> wrote:
> >
> > Make use of PROC_DEVICETREE to export the tree, and sparc's
> > PROMTREE code to call into OLPC's Open Firmware to build the tree.
> >
> > This also adds an init hook to proc_device_tree_init so that we can
> > ensure the device tree has been built prior to the proc_root_init
> > stuff attempting to populate /proc/device-tree.
>
> I'm not clear as to why this is needed. I would expect OLPC platform
> setup code would take care of extracting the device tree well before
> the kernel gets to setting up the representation in /proc/device-tree.
>
> g.
>

For simplicity; the OLPC platform setup code runs very early during
boot. I preferred to keep that as minimal as possible, and defer
device tree allocation until the x86 mm code has finished initializing
(this skipping all the fun bootmem/etc work that'll be happening for
x86 soon).

Of course, once it's done initializing, one can either hardcode an
olpc_init_devtree call at the end of x86's setup_arch, or we can add a
generic hook for late devtree initialization right before proc
populates /proc/device-tree. I chose the latter, but it could easily
be changed to the former if folks feel strongly about it.

I would've normally just used an initcall for it, but the proc_devtree
code runs prior to any of the initcall hooks.