Thread (58 messages) 58 messages, 14 authors, 2013-08-01

Defining schemas for Device Tree

From: Stephen Warren <hidden>
Date: 2013-07-30 17:49:26

On 07/30/2013 11:45 AM, jonsmirl at gmail.com wrote:
On Tue, Jul 30, 2013 at 1:34 PM, Stephen Warren [off-list ref] wrote:
quoted
On 07/30/2013 11:29 AM, jonsmirl at gmail.com wrote:
quoted
On Tue, Jul 30, 2013 at 1:19 PM, Stephen Warren [off-list ref] wrote:
quoted
On 07/30/2013 07:14 AM, jonsmirl at gmail.com wrote:
quoted
On Tue, Jul 30, 2013 at 6:25 AM, Mark Brown [off-list ref] wrote:
quoted
On Mon, Jul 29, 2013 at 08:30:29PM -0400, jonsmirl at gmail.com wrote:
quoted
This...
tx-dma-channel = <&pdma0 7>; /* preliminary */
rx-dma-channel = <&pdma0 6>; /* preliminary */
quoted
Probably should be
dmas = <&pdma0 7>,<&pdma0 6>;
dma-names = "tx", "rx";
It should be - the latter is the generic DMA binding.  There's a lot of
bindings in the kernel that predate that but people are currently
working to transfer over, this is one of the examples of instability
that everyone is talking about.
Is something similar to this possible in device tree syntax?
dmas =  <"tx" &pdma0 7>,  <"rx"  &pdma0 6>;
I /think/ you can physically write that in *.dts, or something very
similar; with the strings outside the <>:

dmas = "tx", <&pdma0 7>, "rx", <&pdma0 6>;

However, there's been strong push-back (i.e. doing that has not been
allowed at all) on attempting to mix variable-length strings and
fixed-length/alignment integer cells in the same property. This is
primarily because you then can't ensure that the integer cell data is
aligned in the DTB (dtc and/or the DTB format spec does/requires/allows
The PowerPC FDT doc says that strings are indirected into a string
table. So they aren't variable length in the data structures.
Do you have a link to the document; I'm not sure which one you mean.
I was wondering how dmas = "tx", "rx" was implemented. It is two
pointers into the indirect block. So this should work, there is no
variable length data to worry about in the structure.
If you look at of_property_read_string_index() in drivers/of/base.c,
you'll see that it expects the strings to just be packed together inline.

What you say may be correct for node and property names, just not
property values.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help