Devicetree
 help / color / mirror / Atom feed
From: Andres Salomon <dilinger@queued.net>
To: Grant Likely <grant.likely@secretlab.ca>
Cc: devicetree-discuss@lists.ozlabs.org, sparclinux@vger.kernel.org,
	x86@kernel.org, tglx@linutronix.de, mingo@redhat.com,
	hpa@zytor.com, cjb@laptop.org, Mitch Bradley <wmb@laptop.org>,
	pgf@laptop.org, linux-kernel@vger.kernel.org,
	davem@davemloft.net
Subject: Re: [PATCH 2/4] sparc: break out some prom device-tree building code  out into drivers/of
Date: Tue, 6 Jul 2010 14:54:46 -0700	[thread overview]
Message-ID: <20100706145446.5e8540aa@Nokia-N900-42-11> (raw)
In-Reply-To: <AANLkTikDdAuDOxBVgV_QDY-YZOOZCyl1O5aYzDXCjW10@mail.gmail.com>

On Tue, 6 Jul 2010 03:21:21 -0600
Grant Likely <grant.likely@secretlab.ca> wrote:

> On Mon, Jun 28, 2010 at 8:00 PM, Andres Salomon <dilinger@queued.net>
> wrote:
> >
> > Stick code into drivers/of/pdt.c (Prom Device Tree) that other
> > architectures with OpenFirmware resident in memory can make use of.
> >
> > Signed-off-by: Andres Salomon <dilinger@queued.net>
> 
> Some more comments below...
> 

Thanks for the review!



> >  arch/sparc/Kconfig              |    1 +
> >  arch/sparc/include/asm/prom.h   |   15 +++-
> >  arch/sparc/kernel/prom.h        |   14 ---
> >  arch/sparc/kernel/prom_common.c |  173
> > +------------------------------ drivers/of/Kconfig              |
> >  4 + drivers/of/Makefile             |    1 +
> >  drivers/of/pdt.c                |  225
> > +++++++++++++++++++++++++++++++++++++++ include/linux/of_pdt.h
> >      |   37 +++++++ 8 files changed, 282 insertions(+), 188
> > deletions(-) create mode 100644 drivers/of/pdt.c
> >  create mode 100644 include/linux/of_pdt.h
> >
> > diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
> > index 6f1470b..b4cb63b 100644
> > --- a/arch/sparc/Kconfig
> > +++ b/arch/sparc/Kconfig
> > @@ -150,6 +150,7 @@ config ARCH_NO_VIRT_TO_BUS
> >
> >  config OF
> >        def_bool y
> > +       select OF_PROMTREE
> >
> >  config ARCH_SUPPORTS_DEBUG_PAGEALLOC
> >        def_bool y if SPARC64
> > diff --git a/arch/sparc/include/asm/prom.h
> > b/arch/sparc/include/asm/prom.h index f845828..0834c2a 100644
> > --- a/arch/sparc/include/asm/prom.h
> > +++ b/arch/sparc/include/asm/prom.h
> > @@ -18,6 +18,7 @@
> >  * 2 of the License, or (at your option) any later version.
> >  */
> >  #include <linux/types.h>
> > +#include <linux/of_pdt.h>
> >  #include <linux/proc_fs.h>
> >  #include <linux/mutex.h>
> >  #include <asm/atomic.h>
> > @@ -65,8 +66,18 @@ extern struct device_node *of_console_device;
> >  extern char *of_console_path;
> >  extern char *of_console_options;
> >
> > -extern void (*prom_build_more)(struct device_node *dp, struct
> > device_node ***nextp); -extern char *build_full_name(struct
> > device_node *dp); +/* stuff used by of/pdt */
> > +extern void * prom_early_alloc(unsigned long size);
> > +extern void irq_trans_init(struct device_node *dp);
> > +extern char *build_path_component(struct device_node *dp);
> > +
> > +extern char *prom_firstprop(int node, char *buffer);
> > +extern char *prom_nextprop(int node, const char *oprop, char
> > *buffer); +extern int prom_getproplen(int node, const char *prop);
> > +extern int prom_getproperty(int node, const char *prop,
> > +                           char *buffer, int bufsize);
> > +extern int prom_getchild(int node);
> > +extern int prom_getsibling(int node);
> 
> These become the API required by of/pdt.  They should be defined in a
> arch-independent header file.  Something like include/linux/of_pdt.h
> 
> Right now only OLPC will be using this, so static function definitions
> are just fine.  However, if there is ever more than one method for
> talking to OFW, then these hooks will need to be converted into an ops
> structure so the right one can be passed in at runtime.
> 

Note that sparc and OLPC actually use slightly different function
signatures; OLPC uses phandles for nodes, while sparc uses ints.  Not a
huge difference, but enough that I didn't want to mess w/ a generic
version of it early in the process.  I agree that op structs would be
nicer, and will probably move towards that. 

[...]

> > diff --git a/include/linux/of_pdt.h b/include/linux/of_pdt.h
> > new file mode 100644
> > index 0000000..f62616e
> > --- /dev/null
> > +++ b/include/linux/of_pdt.h
> > @@ -0,0 +1,37 @@
> > +#include <linux/of.h>  /* linux/of.h gets to determine #include
> > ordering */
> 
> Do you really need this #include in this way?  Can it be moved inside
> the #ifndef OF_PDT block below?
> 

Not sure, will try out different variants and see what breaks.

[...]

> Another general comment, I'm still not thrilled with this code having
> its own independent method for building the tree, but I doubt the
> existing add/remove nodes and properties code is usable early enough
> to be suitable for sparc.  How early do you extract the device tree on
> OLPC?  How are you going to use the data?

Not that early; very early code fetches information necessary to call
into the PROM, and ensures that the kernel doesn't clobber OFW's
memory.   After that, we can build the dt at any point during init.
The data is to be exported via proc for userspace to use in
determining hardware (and firmware) info.

--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2010-07-06 21:54 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-29  1:54 [PATCH 0/4] RFC: OLPC/x86 device tree code Andres Salomon
2010-06-29  2:00 ` [PATCH 1/4] x86: OLPC: constify an olpc_ofw() arg Andres Salomon
2010-06-29  2:00 ` [PATCH 2/4] sparc: break out some prom device-tree building code out into drivers/of Andres Salomon
2010-06-29  3:11   ` David Miller
2010-06-29  6:15   ` Stephen Rothwell
2010-06-29  7:50   ` Grant Likely
2010-06-29 15:03     ` Andres Salomon
2010-06-29 21:42       ` Grant Likely
2010-06-29 23:36         ` Andres Salomon
2010-06-30 21:52           ` Grant Likely
     [not found]             ` <AANLkTilme2uAoXjorUEzam9j_xosR8kl70W8PS71d-Th-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-07-06  2:17               ` Andres Salomon
2010-07-06  2:22                 ` David Miller
     [not found]                   ` <20100705.192221.241453945.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2010-07-06  3:24                     ` Andres Salomon
2010-07-06 10:17                       ` Benjamin Herrenschmidt
2010-07-06  3:25                   ` Andres Salomon
2010-07-06  3:25                   ` Andres Salomon
2010-07-06  7:00                   ` Grant Likely
2010-07-06  7:16                     ` David Miller
2010-07-06  8:17                       ` Grant Likely
2010-07-06  8:17                 ` Grant Likely
2010-07-06  2:17             ` Andres Salomon
2010-07-06  2:17             ` Andres Salomon
2010-07-06  9:21   ` Grant Likely
2010-07-06 21:54     ` Andres Salomon [this message]
2010-07-06 22:06       ` Grant Likely
2010-07-07  1:15         ` Andres Salomon
2010-06-29  2:00 ` [PATCH 3/4] proc: unify PROC_DEVICETREE config Andres Salomon
2010-06-29  7:33   ` Grant Likely
2010-06-29  2:00 ` [PATCH 4/4] x86: OLPC: add OLPC device-tree support Andres Salomon
2010-06-29  8:12   ` Grant Likely
     [not found]     ` <AANLkTinUy_FGuN9DiF5KtMCsqYUbByfS6g2Mdw0ATvtQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-06-29  8:33       ` Stephen Rothwell
2010-06-29 14:23       ` Andres Salomon
     [not found]         ` <20100629102339.5e8a30b6-ztAUm9HJea/EueBKFXcDjA@public.gmane.org>
2010-06-30 21:13           ` Grant Likely
     [not found]             ` <AANLkTik7rqaGz7RtsOlhoSZw_-6bhv43YlWETsB17__4-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-06-30 21:32               ` Andres Salomon
2010-08-30  3:51 ` [PATCH 0/9] " Andres Salomon
2010-08-30  3:53   ` [PATCH 1/9] of: move phandle/ihandle into types.h Andres Salomon
2010-08-30  5:06     ` Sam Ravnborg
2010-09-03  8:17       ` Andres Salomon
2010-09-05  6:22         ` Sam Ravnborg
2010-08-30  3:55   ` [PATCH 2/9] sparc: convert various prom_* functions to use phandle Andres Salomon
2010-08-30  3:57   ` [PATCH 3/9] sparc: break out some PROM device-tree building code out into drivers/of Andres Salomon
2010-08-30  3:59   ` [PATCH 4/9] sparc: make drivers/of/pdt.c no longer sparc-only Andres Salomon
2010-08-30  4:00   ` [PATCH 5/9] of: no longer call prom_ functions directly; use an ops structure Andres Salomon
2010-08-30  4:02   ` [PATCH 6/9] of: add of_pdt namespace to pdt code Andres Salomon
2010-08-30  4:04   ` [PATCH 7/9] of: add package-to-path support to pdt Andres Salomon
2010-08-30  4:06   ` [PATCH 8/9] x86: of: irq additions to make drivers/of/* build on x86 Andres Salomon
2010-08-30 15:58     ` Stephen Neuendorffer
     [not found]       ` <c7823e09-3ce8-434f-98f4-6a84a996c942-RaUQJvECHitZbvUCbuG1mrjjLBE8jN/0@public.gmane.org>
2010-08-30 17:31         ` Grant Likely
2010-08-30  4:07   ` [PATCH 9/9] x86: OLPC: add OLPC device-tree support Andres Salomon
2010-08-30 18:14     ` Grant Likely
     [not found]       ` <AANLkTi=EMkZLiAG7-ni8_7K=qtAriv=AfSUZ58661jNY-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-08-30 18:49         ` Andres Salomon
2010-08-31  5:49           ` Grant Likely
2010-08-30 17:58   ` [PATCH 0/9] " Grant Likely

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100706145446.5e8540aa@Nokia-N900-42-11 \
    --to=dilinger@queued.net \
    --cc=cjb@laptop.org \
    --cc=davem@davemloft.net \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=grant.likely@secretlab.ca \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=pgf@laptop.org \
    --cc=sparclinux@vger.kernel.org \
    --cc=tglx@linutronix.de \
    --cc=wmb@laptop.org \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox