Re: [RFC] Introducing yamldt, a yaml to dtb compiler

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



On Thu, Jul 27, 2017 at 06:00:00PM -0500, Rob Herring wrote:
> On Thu, Jul 27, 2017 at 4:46 PM, Pantelis Antoniou
> <pantelis.antoniou@xxxxxxxxxxxx> wrote:
> > Hi Frank,
> >
> > On Thu, 2017-07-27 at 13:22 -0700, Frank Rowand wrote:
> >> Hi Pantelis,
> >>
> >> Keep in mind one of the reasons Linus says he is very direct is to
> >> avoid leading a developer on, so that they don't waste a lot of time
> >> trying to resolve the maintainer's issues instead of realizing that
> >> the maintainer is saying "no". Please read my current answer as being
> >> "no, not likely to ever be accepted", not "no, not in the current form".
> >>
> >> My first reaction is: no, this is not a good idea for the Linux kernel.
> >>
> >
> > This has nothing to do with the kernel. It spits out valid DTBs that the
> > kernel (or anything else) may use.
> 
> Let me rephrase Frank's statement: this is not a good idea for the
> main repository of dts files.
> 
> But sure, DTS is already not the only source of DTBs. It comes from
> firmware on Power systems.

Yes, but unless they're generated from something other than a (at the
time) normal DTS, that's not a good example, IMHO.


> If you want to create and maintain your own
> source format, then that is perfectly fine. But based on the current
> understanding, I'm not seeing a reason we'd convert DTS files to YAML.

Can I propose one?  To borrow a phrase, Validation, Validation,
Validation.  Let me point to fe496e23b748 in the kernel for a moment.  I
found that as part of helping a new engineer come up to speed on doing
device tree work.  What I found was a case where:
- The binding doc gives one value for compatible as the required value.
- The code accepts only a single, different value.
- A few in-kernel dts files have different still values.

If the common dts source file was in yaml, binding docs would be written
so that we could use them as validation and hey, the above wouldn't ever
have happened.  And I'm sure this is not the only example that's in-tree
right now.  These kind of problems create an artificially high barrier
to entry in a rather important area of the kernel (you can't trust the
docs, you have to check around the code too, and of course the code
might have moved since the docs were written).

> Maybe you're not proposing that now, but if that is not the end goal I
> don't see the point of a new format. If YAML solves a bunch of
> problems, then of course we'd want to convert DTS files at some point.

To borrow that same phrase again, Tooling, Tooling, Tooling.  The
current dts format is a niche format.  That's great, our community
is basically responsible for all tooling, we can do what we want.
That's also awful, we're the only people that care about tooling and we
all have lots of other itches to scratch.  There are so so so many
editors that just know YAML and will work it into the rest of the
development environment someone is using.  None of that exists for our
dts format.  Who cares about that?  Engineers that aren't primarily
writing dts files.  I'm pretty sure every engineer that's written /
extended a dts file has made an "invisible" mistake that would have been
caught with a different source format that had validation already.

And we've been talking about validation for ages now.  We'll probably
still be talking about it for ages more (as it's hard
thanked-at-conferences-and-such work!), until it reaches the point where
anyone can pick up a current binding and re-format it into yaml for
validation.

-- 
Tom

Attachment: signature.asc
Description: Digital signature


[Index of Archives]     [Device Tree]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux