On Wed, Sep 18, 2013 at 05:02:20PM -0600, Stephen Warren wrote: > On 09/18/2013 02:41 PM, Olof Johansson wrote: > > On Wed, Sep 18, 2013 at 1:23 PM, Stephen Warren <swarren@xxxxxxxxxxxxx> wrote: > >> From: Stephen Warren <swarren@xxxxxxxxxx> > >> > >> ePAPR 1.1 section 2.2.1.1 "Node Name Requirements" specifies that any > >> node that has a reg property must include a unit address in its name > >> with value matching the first entry in its reg property. Conversely, if > >> a node does not have a reg property, the node name must not include a > >> unit address. > >> > >> Implement a check for this. The code doesn't validate the format of the > >> unit address; ePAPR implies this may vary from binding to binding, so > >> I'm not sure that it's possible to validate the value itself. > ... > > Anyway, I think it'd be better to produce warnings than errors for > > this. That way we could also merge it now while the trees are fixed > > up. > > Yes, that makes sense. > > > Also, maybe warn for @0x<foo>, which is another unpreferred syntax, it > > should just be @<foo> (with foo being in hex). > > ePAPR doesn't seem to disallow that; it explicitly says that the > unit-address consists of the characters from table 2-1, which is the > same table of characters used for the node name itself. However, it does > state that the binding for a particular bus may impose additional > restrictions; should I implement such a check but limit it to the root > node or specific known bus types? That would require explicitly > whitelisting the check for a lot of bus types, given that each I2C/... > controller binding is a bus type... Yeah, I think that's the wrong approach. Instead I think we need a table of bus type -> unit address validation functions. That way we can start with the common ones - plain memory address, PCI, USB and I2C, then add more as we need them. I actually started implementing this once, but I seem to have lost the patch. One thing to bear in mind if you do have a crack at this - the correct encoding of reg -> unit address isn't always unique, although it usually is. -- 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:
pgpiG3cmdhpE6.pgp
Description: PGP signature