lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170912161546.q5xr5pfdxin3qujf@rob-hp-laptop>
Date:   Tue, 12 Sep 2017 11:15:46 -0500
From:   Rob Herring <robh@...nel.org>
To:     Keiji Hayashibara <hayashibara.keiji@...ionext.com>
Cc:     'Masahiro Yamada' <yamada.masahiro@...ionext.com>,
        Srinivas Kandagatla <srinivas.kandagatla@...aro.org>,
        devicetree@...r.kernel.org,
        linux-arm-kernel <linux-arm-kernel@...ts.infradead.org>,
        Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
        Masami Hiramatsu <masami.hiramatsu@...aro.org>,
        Jassi Brar <jaswinder.singh@...aro.org>,
        Hayashi, Kunihiko/林 邦彦 
        <hayashi.kunihiko@...ionext.com>,
        Owada, Kiyoshi/大和田 清志 
        <owada.kiyoshi@...ionext.com>
Subject: Re: [PATCH v1 1/3] dt-bindings: nvmem: add description for UniPhier
 eFuse

On Tue, Sep 05, 2017 at 04:04:31PM +0900, Keiji Hayashibara wrote:
> Hello Yamada-san,
> 
> Thank you for your comment.
> 
> > From: Masahiro Yamada [mailto:yamada.masahiro@...ionext.com]
> > Sent: Monday, September 4, 2017 9:56 PM
> > 
> > 2017-09-01 8:20 GMT+09:00 Keiji Hayashibara
> > <hayashibara.keiji@...ionext.com>:
> > > Add uniphier-efuse dt-bindings documentation.
> > >
> > > Signed-off-by: Keiji Hayashibara <hayashibara.keiji@...ionext.com>
> > > ---
> > >  .../devicetree/bindings/nvmem/uniphier-efuse.txt   | 45
> > ++++++++++++++++++++++
> > >  1 file changed, 45 insertions(+)
> > >  create mode 100644
> > > Documentation/devicetree/bindings/nvmem/uniphier-efuse.txt

> > > +Example:
> > > +
> > > +       soc-glue@...00000 {
> > > +               compatible = "socionext,uniphier-ld20-soc-glue-debug",
> > > +                            "simple-mfd";
> > > +               #address-cells = <1>;
> > > +               #size-cells = <1>;
> > > +               ranges = <0x0 0x5f900000 0x2000>;
> > 
> > 
> > IMHO, I think an empty "ranges;" will clarify the code, but it is up to
> > your taste.
> > 
> > 
> > > +
> > > +               efuse {
> > > +                       compatible = "socionext,uniphier-efuse",
> > > +                                    "syscon";
> > 
> > 
> > You are adding a dedicated driver for "socionext,uniphier-efuse".
> > 
> > Then, "syscon" as well?
> > 
> 
> Since I was using the syscon interface to implement the driver,
> I specified "syscon". It's interface is syscon_node_to_regmap().
> 
> I will rethink this in v2.
> 
> > 
> > 
> > > +                       reg = <0x100 0xf00>;
> > 
> > 
> > Not so many efuse registers exist on the SoC.
> > 
> > reg = <0x100 0x200>; will be enough.
> > 
> > 
> > Or if you want to be strict to the hw spec, you can write as follows:
> > 
> >         soc-glue@...00000 {
> >                compatible = "socionext,uniphier-ld20-soc-glue-debug";
> >                             "simple-mfd";
> >                #address-cells = <1>;
> >                #size-cells = <1>;
> >                ranges = <0x0 0x5f900000 0x2000>;
> > 
> >                efuse@100 {
> >                            compatible = "socionext,uniphier-efuse";
> >                            reg = <0x100 0x28>;
> >                };
> > 
> >                efuse@200 {
> >                            compatible = "socionext,uniphier-efuse";
> >                            reg = <0x200 0x68>;
> >                };
> >        };
> > 
> > 
> > 
> > 
> > > +                       #address-cells = <1>;
> > > +                       #size-cells = <1>;
> > > +
> > > +                       /* Data cells */
> > > +                       usb_mon: usb_mon {
> > > +                               reg = <0x154 0xc>;
> > > +                       };
> > 
> > 
> > This <0x154 0xc> represents 0x5f900254 in CPU address view.
> > (0x5f900000 + 0x100 + 0x154)
> > 
> > So many ranges conversion, and how error-prone..
> > 
> 
> Yes, indeed...
> I will modify as below.

Please don't. A non-empty ranges is preferred. It limits the scope and 
chance for errors (smaller range allows fewer possible values and 
limits the chances of having address ranges duplicated in multiple 
nodes). But yes, it does add the requirement of doing addition and/or 
OR operations. I can't review whether the address ends up being correct 
either way, but having non-empty ranges helps enforce the other things.

Rob

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ