dtc: RFC: Fix some lexical problems with references

Josh Boyer jwboyer at linux.vnet.ibm.com
Thu Dec 6 09:44:08 EST 2007


On Wed, 5 Dec 2007 16:34:09 -0600
Josh Boyer <jwboyer at linux.vnet.ibm.com> wrote:

> On Thu, 22 Nov 2007 17:10:07 +1100
> David Gibson <david at gibson.dropbear.id.au> wrote:
> 
> > The recent change to the lexer to only recognize property and node
> > names in the appropriate context removed a number of lexical warts in
> > our language that would have gotten ugly as we add expression support
> > and so forth.
> > 
> > But there's one nasty one remaining: references can contain a full
> > path, including the various problematic node name characters (',', '+'
> > and '-', for example).  This would cause trouble with expressions, and
> > it also causes trouble with the patch I'm working on to allow
> > expanding references to paths rather than phandles.  This patch
> > therefore reworks the lexer to mitigate these problems.
> > 
> > 	- References to labels cause no problems.  These are now
> > recognized separately from references to full paths.  No syntax change
> > here.
> > 
> > 	- References to full paths, including problematic characters
> > are allowed by "quoting" the path with braces
> > e.g. &{/pci at 10000/somedevice at 3,8000}.  The braces protect any internal
> > problematic characters from being confused with operators or whatever.
> > 
> > 	- For compatibility with existing dts files, in v0 dts files
> > we allow bare references to paths as before &/foo/bar/whatever - but
> > *only* if the path contains no troublesome characters.  Specifically
> > only [a-zA-Z0-9_@/] are allowed.
> > 
> > This is an incompatible change to the dts-v1 format, but since AFAIK
> > no-one has yet switched to dts-v1 files, I think we can get away with
> > it.  Better to make the transition when people to convert to v1, and
> > get rid of the problematic old syntax.
> > 
> > Strictly speaking, it's also an incompatible change to the v0 format,
> > since some path references that were allowed before are no longer
> > allowed.  I suspect no-one has been using the no-longer-supported
> > forms (certainly none of the kernel dts files will cause trouble).  We
> > might need to think about this harder, though.
> > 
> > Signed-off-by: David Gibson <david at gibson.dropbear.id.au>
> 
> So this breaks some of the in-kernel DTS files.  Example, bamboo.dts on
> line 19 produces:
> 
> bamboo.dts: 19 syntax error
> FATAL ERROR: Couldn't read input tree
> 
> I tried quoting the path with {} but that didn't seem to work.

Nevermind, the quoting worked.

josh



More information about the Linuxppc-dev mailing list