All of lore.kernel.org
 help / color / mirror / Atom feed
From: swarren@wwwdotorg.org (Stephen Warren)
To: linux-arm-kernel@lists.infradead.org
Subject: Defining schemas for Device Tree
Date: Tue, 30 Jul 2013 16:26:15 -0600	[thread overview]
Message-ID: <51F83D87.2010707@wwwdotorg.org> (raw)
In-Reply-To: <3852729.INDSeEDz7b@thinkpad>

On 07/30/2013 04:16 PM, Tomasz Figa wrote:
> On Monday 29 of July 2013 02:21:52 Tomasz Figa wrote:
>> Hi,
>>
>> As promised I am starting a discussion about Device Tree schema. Let's
>> first shortly introduce the problem.
>>
>> Device Tree is a text-based data structure used to describe hardware. Its
>> main point is separation from kernel code, which has a lot of benefits,
>> but, at the moment, also a huge drawback - there is no verification of
>> device tree sources against defined bindings. All the dtc compiler does
>> currently are syntax checks - no semantic analysis is performed (except
>> some really basic things). What this means is that anybody can put
>> anything in their device tree and end up with the dts compiling fine only
>> to find out that something is wrong at boot time.
>>
>> Currently, device tree bindings are described in plain text documentation
>> files, which can not be considered a formal way of binding description.
>> While such documentation provides information for developers/users that
>> need to work with particular bindings, it can not be easily used as input
>> for validation of device tree sources. This means that we need to define a
>> more formal way of binding description, in other words - Device Tree
>> schema.
>>
>> To find a solution for this problem, we must first answer several
>> questions to determine a set of requirements we have to meet.
>>
>> a) What is a device tree binding?
>>
>> For our purposes, I will define a binding as internal format of some
>> device tree node, which can be matched using of_find_matching_node(). In
>> other words, key for a binding would be node name and/or value of
>> compatible property and/or node type. Value for a binding would be a list
>> of properties with their formats and/or subnodes with their bindings.
> 
> Now as I think of it, there is one more thing that needs to be considered. Do 
> we want the schemas to strictly specify available set of properties, warning 
> about any unrecognized ones or just enforce checking of recognized properties 
> (including presence of required ones)? Or maybe both, depending on some 
> keyword or whatever?

I think one of the use-cases that having schema validation was asked to
cover was the case of a typo in a property name leading to that property
having no effect. This could only be caught by the validation tool if it
warned (or worse) about unknown properties.

  reply	other threads:[~2013-07-30 22:26 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-29  0:21 Defining schemas for Device Tree Tomasz Figa
2013-07-29  1:30 ` jonsmirl at gmail.com
2013-07-29  8:27   ` David Woodhouse
2013-07-29  8:40   ` Tomasz Figa
2013-07-29 15:01 ` Jason Cooper
2013-07-29 16:49   ` Dave Martin
2013-07-29 17:11     ` Jason Gunthorpe
2013-07-29 17:23     ` [Ksummit-2013-discuss] " Jason Cooper
2013-07-29 17:23       ` Jason Cooper
2013-07-29 17:29       ` Jason Gunthorpe
2013-07-29 17:29         ` Jason Gunthorpe
2013-07-29 19:48       ` Mark Brown
2013-07-29 19:48         ` Mark Brown
2013-07-29 22:29       ` David Gibson
2013-07-29 22:29         ` David Gibson
2013-07-29 22:48         ` Jason Cooper
2013-07-29 22:48           ` Jason Cooper
2013-07-29 23:45           ` David Gibson
2013-07-29 23:45             ` David Gibson
2013-07-30 12:12             ` Jason Cooper
2013-07-30 12:12               ` Jason Cooper
2013-07-30  0:41       ` David Lang
2013-07-30  0:41         ` David Lang
2013-07-30  0:49         ` jonsmirl at gmail.com
2013-07-30  0:49           ` jonsmirl
2013-07-30  1:50       ` David Gibson
2013-07-30  1:50         ` David Gibson
2013-07-30 12:17         ` Jason Cooper
2013-07-30 12:17           ` Jason Cooper
2013-07-29 18:15 ` Jason Gunthorpe
2013-07-29 22:26   ` Tomasz Figa
2013-07-29 21:47 ` Stephen Warren
2013-07-29 22:20   ` Tomasz Figa
2013-07-30  0:02     ` Stephen Warren
2013-07-29 22:23   ` jonsmirl at gmail.com
2013-07-29 22:45     ` Tomasz Figa
2013-07-30  0:30       ` jonsmirl at gmail.com
2013-07-30 10:25         ` Mark Brown
2013-07-30 13:14           ` jonsmirl at gmail.com
2013-07-30 17:19             ` Stephen Warren
2013-07-30 17:29               ` jonsmirl at gmail.com
2013-07-30 17:34                 ` Stephen Warren
2013-07-30 17:45                   ` jonsmirl at gmail.com
2013-07-30 17:49                     ` Stephen Warren
2013-07-30 18:03                       ` jonsmirl at gmail.com
2013-07-30 18:04                         ` jonsmirl at gmail.com
2013-07-30 18:25                           ` Stephen Warren
2013-07-30 18:28                             ` jonsmirl at gmail.com
2013-07-31  7:01                               ` Tony Lindgren
2013-08-01 20:04                               ` Matt Sealey
2013-07-30 18:26                           ` jonsmirl at gmail.com
2013-07-30 20:57                 ` Mark Brown
2013-07-30 22:19                   ` jonsmirl at gmail.com
2013-07-30 23:03                     ` Mark Brown
2013-07-30 23:23                       ` jonsmirl at gmail.com
2013-07-31 11:34                         ` Mark Brown
2013-07-31 12:01                           ` jonsmirl at gmail.com
2013-07-31 12:21                             ` Tomasz Figa
2013-07-31 16:29                               ` [Ksummit-2013-discuss] " Thomas Petazzoni
2013-07-31 16:29                                 ` Thomas Petazzoni
2013-07-31 16:41                               ` Sascha Hauer
2013-07-31 16:59                           ` Dave Martin
2013-07-31 18:59                             ` Mark Brown
2013-08-01 14:29                               ` Dave Martin
2013-07-31 19:57                         ` Stephen Warren
2013-07-31 20:47                         ` Stephen Warren
2013-07-31 23:04                           ` Tomasz Figa
2013-07-30 22:16 ` Tomasz Figa
2013-07-30 22:26   ` Stephen Warren [this message]
2013-07-30 22:27   ` jonsmirl at gmail.com

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=51F83D87.2010707@wwwdotorg.org \
    --to=swarren@wwwdotorg.org \
    --cc=linux-arm-kernel@lists.infradead.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.