Re: [PATCH v2 1/2] overlays: auto allocate phandles for nodes in base fdt

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



On Tue, Jan 16, 2018 at 09:32:41AM -0600, Kyle Evans wrote:
> On Tue, Jan 16, 2018 at 7:30 AM, David Gibson
> <david@xxxxxxxxxxxxxxxxxxxxx> wrote:
> > On Fri, Jan 12, 2018 at 09:57:26AM -0600, Kyle Evans wrote:
> >> On Thu, Jan 11, 2018 at 11:33 PM, David Gibson
> >> <david@xxxxxxxxxxxxxxxxxxxxx> wrote:
> >> > On Fri, Jan 05, 2018 at 12:40:13PM -0800, Frank Rowand wrote:
> >> >> On 01/04/18 21:47, Kyle Evans wrote:
> >> >> > On Thu, Jan 4, 2018 at 11:02 PM, Frank Rowand <frowand.list@xxxxxxxxx> wrote:
> >> >> >> On 01/04/18 19:50, Kyle Evans wrote:
> >> >> >>> On Thu, Jan 4, 2018 at 9:14 PM, Frank Rowand <frowand.list@xxxxxxxxx> wrote:
> >> >> >>>> On 01/04/18 18:39, Kyle Evans wrote:
> >> >> >>>>> On Thu, Jan 4, 2018 at 7:55 PM, Frank Rowand <frowand.list@xxxxxxxxx> wrote:
> >> >> >>>>>> On 01/04/18 13:47, Kyle Evans wrote:
> >> >> >>>>>>> On Thu, Jan 4, 2018 at 3:34 PM, Kyle Evans <kevans@xxxxxxxxxxx> wrote:
> >> >> >>>>>>>> On Thu, Jan 4, 2018 at 2:41 PM, Kyle Evans <kevans@xxxxxxxxxxx> wrote:
> >> >> >>>>>>>>> On Thu, Jan 4, 2018 at 2:33 PM, Frank Rowand <frowand.list@xxxxxxxxx> wrote:
> >> >> >>>>>>>>>> [... snip ...]
> >> > [snip]
> >> >> > Your implementation knows what my overlay means otherwise because I
> >> >> > reference a labelled node using &foo, dtc generated a /__fixup__ for
> >> >> > it, your implementation takes that /__fixup__ and does the lookup in
> >> >> > the symbol table. The symbol exists and points to a node, what's the
> >> >> > point of rejecting it there?>
> >> >> > It seems unreasonable to me, because you cannot always control the
> >> >> > source of your live tree. In many cases, sure, it's generated in-tree
> >> >> > or in U-Boot and passed to you, and you can reasonably expect you
> >> >> > won't encounter this. What if you have vendor-provided tree?
> >> >> >
> >> >> > I think the point I'm getting at is that it seems like this will have
> >> >> > to change at some point anyways simply because you can't control all
> >> >> > sources of your devicetree, and this isn't strictly wrong. Telling
> >> >> > someone "No, we can't apply that overlay because your vendor's
> >> >> > internal tool for generating dts and $other_format_used_internally
> >> >> > simultaneously didn't generate a phandle for that" is kind of hard,> especially when your reasoning ISN'T "their blob is malformed" or
> >> >> > "your overlay's reference is ambiguous" but rather, "we know what
> >> >> > that's pointing at, but we just don't generate handles."
> >> >>
> >> >> No, the blob _is_ malformed.  I know there is no official binding
> >> >> document for overlays (we do need such things once we figure out
> >> >> what we are doing), so this comment is purely my opinion.
> >> >
> >> > In this case it's not a spec for overlays that's the issue, it's a
> >> > spec for what base trees require in order to accept overlays.
> >> >
> >> >> The blob is malformed because it was not compiled with the "-@"
> >> >> flag.  Mostly not because of anything in the source, although
> >> >> again the __symbols__ node should not be hand coded.
> >> >
> >> > I don't think it's reasonable to claim a blob is malformed based
> >> > purely on how it was generated, it needs to be something about it's
> >> > actualy contents.
> >> >
> >> > So the question is: is "includes a phandle for every node with a
> >> > symbol" a requirement for an overlay accepting base tree.  It's never
> >> > been explicitly stated, since overlays were just kind of hacked
> >> > together rather than fully specced out.  dtc has been written assuming
> >> > that is a requirement, BSDdtc has not.
> >> >
> >> > I'm inclined to say "yes, it should be a requirement" on the grounds
> >> > that:
> >> >     a) that's the interpretation that's more widely deployed already
> >> > and
> >> >     b) that simplifies the overlay application logic, which generally
> >> >        takes place in a more restricted environment than the initial
> >> >        compilation.
> >> >
> >> > I'm entirely open to arguments against that position though.
> >>
> >> To be honest, I think both of these points are kind of wobbly.
> >
> > I'm not claiming they're conclusive, just the best arguments I've seen
> > so far.
> >
> >> Just
> >> because something has been largely interpreted a certain way does not
> >> make it necessarily a good way to do so.
> >
> > No, but the fact that widely deployed implementations rely on a
> > certain interpretation is a fairly strong argument for keeping it,
> > even if it's not the best by other measures.
> >
> >> It's also kind of hard to make the simplification point, my latest
> >> patch [1] that I run locally doesn't really touch existing stuff all
> >> that much, and it certainly doesn't feel any more complex than what
> >> was already there.
> >
> > It adds and doesn't remove code, so I think it's hard to argue it
> > doesn't add complexity.
> 
> I think we have different definitions of complexity, then. =) To me,
> this isn't added complexity unless it actually entails some kind of
> real re-design and work put into it.
> 
> >> I would be inclined to say that a spec shouldn't hold a strong
> >> position on this, for the following reasons:
> >>
> >> 1.) I've not yet seen a good technical reason for requiring explicit
> >> assignment. Explicit assignment was useful when you had no other
> >> method for resolving xrefs, but this isn't the case here.
> >
> > I'm not really sure what you mean by explicit assignment.
> 
> Explicit assignment of phandles to a node.

Um.. that didn't help.  As far as I can tell we're discussing implicit
assignment of phandles to nodes by the compiler, versus implicit
assignment of phandles to nodes by the overlay applier.  Nothing
explicit about either case.

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

Attachment: signature.asc
Description: PGP 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