From: "Cousson, Benoit" <b-cousson-l0cyMroinI0@public.gmane.org>
To: David Gibson <david-xT8FGy+AXnRB3Ne2BGzF6laj5H9X9Tb+@public.gmane.org>
Cc: "Hilman, Kevin" <khilman-l0cyMroinI0@public.gmane.org>,
Paul Walmsley <paul-DWxLp4Yu+b8AvxtiuMwx3w@public.gmane.org>,
"G, Manjunath Kondaiah" <manjugk-l0cyMroinI0@public.gmane.org>,
"devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org"
<devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org>,
Scott Wood <scottwood-KZfg59tc24xl57MIdRCFDg@public.gmane.org>,
linux-omap <linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
"linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org"
<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>
Subject: Re: How to handle named resources with DT?
Date: Wed, 10 Aug 2011 17:01:52 +0200 [thread overview]
Message-ID: <4E429D60.2000100@ti.com> (raw)
In-Reply-To: <20110810015214.GD23511-787xzQ0H9iQXU02nzanrWNbf9cGiqdzd@public.gmane.org>
On 8/10/2011 3:52 AM, David Gibson wrote:
> On Tue, Aug 09, 2011 at 11:53:32PM +0200, Cousson, Benoit wrote:
>> On 8/9/2011 11:49 PM, Grant Likely wrote:
>>> On Tue, Aug 09, 2011 at 11:44:35PM +0200, Cousson, Benoit wrote:
>>>> On 8/9/2011 11:17 PM, Grant Likely wrote:
>>>>> On Tue, Aug 09, 2011 at 11:08:09PM +0200, Cousson, Benoit wrote:
>>>>>> On 8/9/2011 10:57 PM, Grant Likely wrote:
>>>>>>> On Tue, Aug 09, 2011 at 01:26:29PM -0500, Scott Wood wrote:
>>>>>>>> On 08/09/2011 12:47 PM, Cousson, Benoit wrote:
>>>>>>>>> On 8/9/2011 7:23 PM, Grant Likely wrote:
>>>>>>>>>> There is no analogous mechanism for _byname in the device tree. The
>>>>>>>>>> DT binding for a device must explicitly state what order the register
>>>>>>>>>> ranges are in. The driver will need to be adapted.
>>>>>>>>>
>>>>>>>>> That seems to be a small regression for my point of view. Relying on the
>>>>>>>>> order is not super safe. This is not very readable either. That's for
>>>>>>>>> that exact reason that we changed our drivers to use
>>>>>>>>> platform_get_resource_byname. That's probably the reason why that API is
>>>>>>>>> there as well.
>>>>>>>>> For the same IP, the number of entries can vary depending of the SoC
>>>>>>>>> revision.
>>>>>>>>> By using the _byname, we can check if the resource is there or not
>>>>>>>>> without having to care about the position.
>>>>>>>>
>>>>>>>> You could have a named u32 property that contains the reg index, e.g.:
>>>>>>>>
>>>>>>>> dev {
>>>>>>>> reg =<0x20000 0x200 0x24000 0x200>;
>>>>>>>> foo-reg =<0>;
>>>>>>>> bar-reg =<1>;
>>>>>>>> };
>>>>>>>
>>>>>>> That's a little nasty. A reg-names = "foo", "bar"; would probably be
>>>>>>> better.
>>>>>>
>>>>>> Yep, I agree.
>>>>>>
>>>>>> And what about something like that?
>>>>>> reg =<0x20000 0x200>, "foo",
>>>>>> <0x20000 0x200>, "bar" ;
>>>>>>
>>>>>> It is doable?
>>>>>
>>>>> Definitely not. It would break all existing 'reg' parsing
>>>>> implementations quite badly.
>>>>
>>>> OK, so what about extending the reg attribute to be a reg node?
>>>>
>>>> dev {
>>>> reg {
>>>> name = "foo_wrapper";
>>>> start =<0x10000>;
>>>> end =<0x200>;
>>>> }
>>>> reg {
>>>> name = "foo";
>>>> start =<0x20000>;
>>>> end =<0x200>;
>>>> }
>>>> }
>>>>
>>>> A little bit more verbose, but at least we can add any attribute we want.
>>>
>>> That won't work either because that also breaks the existing 'reg'
>>> binding. Anything you do will need to supplement the existing
>>> binding without changing it in an incompatible way.
>>
>> OK, but can we add a new attribute then? reg2, reg_ng, reg_plusplus,
>> reg_named...?
>
> He already suggested reg-names to be interpreted in parallel with the
> existing reg property. The (serious) problem with replacing the reg
> property is that it will break all existing OSes (including old Linux
> versions) that don't understand the new property.
That's why I was proposing a new extended node for that. Legacy tag will
still be there for legacy HW.
Adding reg-names is doable easily, but not super nice. And the same
trick will be needed for IRQs and then DMAs (not yet in core DT anyway).
Having a more scalable mechanism to allow further improvement will be good.
> Of course, the problem with reg-names is that it will be ignored by
> older OSes, and so 'reg' must still be in the correct order. In which
> case you could argue it's more sensible to just have a static place to
> name mapping in the Linux driver.
>
> In short, yes, named reg elements in the DT would be nice in theory,
> but I'm not convinced it's worth a DT flag day to accomplish it.
Sorry, but I'm not sure to understand the meaning of that last sentence.
Benoit
WARNING: multiple messages have this Message-ID (diff)
From: b-cousson@ti.com (Cousson, Benoit)
To: linux-arm-kernel@lists.infradead.org
Subject: How to handle named resources with DT?
Date: Wed, 10 Aug 2011 17:01:52 +0200 [thread overview]
Message-ID: <4E429D60.2000100@ti.com> (raw)
In-Reply-To: <20110810015214.GD23511@yookeroo.fritz.box>
On 8/10/2011 3:52 AM, David Gibson wrote:
> On Tue, Aug 09, 2011 at 11:53:32PM +0200, Cousson, Benoit wrote:
>> On 8/9/2011 11:49 PM, Grant Likely wrote:
>>> On Tue, Aug 09, 2011 at 11:44:35PM +0200, Cousson, Benoit wrote:
>>>> On 8/9/2011 11:17 PM, Grant Likely wrote:
>>>>> On Tue, Aug 09, 2011 at 11:08:09PM +0200, Cousson, Benoit wrote:
>>>>>> On 8/9/2011 10:57 PM, Grant Likely wrote:
>>>>>>> On Tue, Aug 09, 2011 at 01:26:29PM -0500, Scott Wood wrote:
>>>>>>>> On 08/09/2011 12:47 PM, Cousson, Benoit wrote:
>>>>>>>>> On 8/9/2011 7:23 PM, Grant Likely wrote:
>>>>>>>>>> There is no analogous mechanism for _byname in the device tree. The
>>>>>>>>>> DT binding for a device must explicitly state what order the register
>>>>>>>>>> ranges are in. The driver will need to be adapted.
>>>>>>>>>
>>>>>>>>> That seems to be a small regression for my point of view. Relying on the
>>>>>>>>> order is not super safe. This is not very readable either. That's for
>>>>>>>>> that exact reason that we changed our drivers to use
>>>>>>>>> platform_get_resource_byname. That's probably the reason why that API is
>>>>>>>>> there as well.
>>>>>>>>> For the same IP, the number of entries can vary depending of the SoC
>>>>>>>>> revision.
>>>>>>>>> By using the _byname, we can check if the resource is there or not
>>>>>>>>> without having to care about the position.
>>>>>>>>
>>>>>>>> You could have a named u32 property that contains the reg index, e.g.:
>>>>>>>>
>>>>>>>> dev {
>>>>>>>> reg =<0x20000 0x200 0x24000 0x200>;
>>>>>>>> foo-reg =<0>;
>>>>>>>> bar-reg =<1>;
>>>>>>>> };
>>>>>>>
>>>>>>> That's a little nasty. A reg-names = "foo", "bar"; would probably be
>>>>>>> better.
>>>>>>
>>>>>> Yep, I agree.
>>>>>>
>>>>>> And what about something like that?
>>>>>> reg =<0x20000 0x200>, "foo",
>>>>>> <0x20000 0x200>, "bar" ;
>>>>>>
>>>>>> It is doable?
>>>>>
>>>>> Definitely not. It would break all existing 'reg' parsing
>>>>> implementations quite badly.
>>>>
>>>> OK, so what about extending the reg attribute to be a reg node?
>>>>
>>>> dev {
>>>> reg {
>>>> name = "foo_wrapper";
>>>> start =<0x10000>;
>>>> end =<0x200>;
>>>> }
>>>> reg {
>>>> name = "foo";
>>>> start =<0x20000>;
>>>> end =<0x200>;
>>>> }
>>>> }
>>>>
>>>> A little bit more verbose, but at least we can add any attribute we want.
>>>
>>> That won't work either because that also breaks the existing 'reg'
>>> binding. Anything you do will need to supplement the existing
>>> binding without changing it in an incompatible way.
>>
>> OK, but can we add a new attribute then? reg2, reg_ng, reg_plusplus,
>> reg_named...?
>
> He already suggested reg-names to be interpreted in parallel with the
> existing reg property. The (serious) problem with replacing the reg
> property is that it will break all existing OSes (including old Linux
> versions) that don't understand the new property.
That's why I was proposing a new extended node for that. Legacy tag will
still be there for legacy HW.
Adding reg-names is doable easily, but not super nice. And the same
trick will be needed for IRQs and then DMAs (not yet in core DT anyway).
Having a more scalable mechanism to allow further improvement will be good.
> Of course, the problem with reg-names is that it will be ignored by
> older OSes, and so 'reg' must still be in the correct order. In which
> case you could argue it's more sensible to just have a static place to
> name mapping in the Linux driver.
>
> In short, yes, named reg elements in the DT would be nice in theory,
> but I'm not convinced it's worth a DT flag day to accomplish it.
Sorry, but I'm not sure to understand the meaning of that last sentence.
Benoit
next prev parent reply other threads:[~2011-08-10 15:01 UTC|newest]
Thread overview: 141+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-09 9:23 How to handle named resources with DT? Cousson, Benoit
2011-08-09 9:23 ` Cousson, Benoit
2011-08-09 16:29 ` G, Manjunath Kondaiah
2011-08-09 16:29 ` G, Manjunath Kondaiah
2011-08-09 16:57 ` Cousson, Benoit
2011-08-09 16:57 ` Cousson, Benoit
2011-08-09 17:23 ` Grant Likely
2011-08-09 17:23 ` Grant Likely
2011-08-09 17:47 ` Cousson, Benoit
2011-08-09 17:47 ` Cousson, Benoit
2011-08-09 17:52 ` Matt Porter
2011-08-09 17:52 ` Matt Porter
2011-08-09 18:26 ` Scott Wood
2011-08-09 18:26 ` Scott Wood
2011-08-09 20:57 ` Grant Likely
2011-08-09 20:57 ` Grant Likely
[not found] ` <20110809205723.GE11568-e0URQFbLeQY2iJbIjFUEsiwD8/FfD2ys@public.gmane.org>
2011-08-09 21:08 ` Cousson, Benoit
2011-08-09 21:08 ` Cousson, Benoit
2011-08-09 21:17 ` Grant Likely
2011-08-09 21:17 ` Grant Likely
2011-08-09 21:44 ` Cousson, Benoit
2011-08-09 21:44 ` Cousson, Benoit
2011-08-09 21:49 ` Grant Likely
2011-08-09 21:49 ` Grant Likely
2011-08-09 21:53 ` Cousson, Benoit
2011-08-09 21:53 ` Cousson, Benoit
2011-08-10 1:52 ` David Gibson
2011-08-10 1:52 ` David Gibson
2011-08-10 7:11 ` Paul Walmsley
2011-08-10 7:11 ` Paul Walmsley
[not found] ` <20110810015214.GD23511-787xzQ0H9iQXU02nzanrWNbf9cGiqdzd@public.gmane.org>
2011-08-10 15:01 ` Cousson, Benoit [this message]
2011-08-10 15:01 ` Cousson, Benoit
2011-08-10 15:18 ` Scott Wood
2011-08-10 15:18 ` Scott Wood
[not found] ` <4E42A14B.9050308-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2011-08-10 15:21 ` Cousson, Benoit
2011-08-10 15:21 ` Cousson, Benoit
2011-08-10 19:22 ` Grant Likely
2011-08-10 19:22 ` Grant Likely
2011-08-10 19:57 ` David Brown
2011-08-10 19:57 ` David Brown
2011-08-10 20:12 ` Grant Likely
2011-08-10 20:12 ` Grant Likely
2011-08-11 12:28 ` Cousson, Benoit
2011-08-11 12:28 ` Cousson, Benoit
2011-08-12 3:02 ` David Gibson
2011-08-12 3:02 ` David Gibson
[not found] ` <20110812030218.GP30552-787xzQ0H9iQXU02nzanrWNbf9cGiqdzd@public.gmane.org>
2011-08-12 8:14 ` Cousson, Benoit
2011-08-12 8:14 ` Cousson, Benoit
2011-08-12 8:41 ` Felipe Balbi
2011-08-12 8:41 ` Felipe Balbi
[not found] ` <20110812084106.GC19467-UiBtZHVXSwEVvW8u9ZQWYwjfymiNCTlR@public.gmane.org>
2011-08-12 14:35 ` Arnd Bergmann
2011-08-12 14:35 ` Arnd Bergmann
2011-08-12 15:09 ` Cousson, Benoit
2011-08-12 15:09 ` Cousson, Benoit
2011-08-12 17:21 ` Grant Likely
2011-08-12 17:21 ` Grant Likely
2011-08-24 19:15 ` Kevin Hilman
2011-08-24 19:15 ` Kevin Hilman
2011-08-24 23:16 ` Felipe Balbi
2011-08-24 23:16 ` Felipe Balbi
[not found] ` <20110824231613.GC19890-UiBtZHVXSwEVvW8u9ZQWYwjfymiNCTlR@public.gmane.org>
2011-08-25 10:28 ` Russell King - ARM Linux
2011-08-25 10:28 ` Russell King - ARM Linux
[not found] ` <20110825102824.GB10405-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2011-08-25 15:05 ` Arnd Bergmann
2011-08-25 15:05 ` Arnd Bergmann
2011-08-25 18:16 ` Kevin Hilman
2011-08-25 18:16 ` Kevin Hilman
2011-08-25 21:02 ` Arnd Bergmann
2011-08-25 21:02 ` Arnd Bergmann
2011-08-26 11:01 ` Removing platform_get_resource_byname() (was Re: How to handle named resources with DT?) Paul Walmsley
2011-08-26 11:01 ` Paul Walmsley
2011-08-26 11:01 ` Paul Walmsley
2011-08-26 4:12 ` How to handle named resources with DT? David Gibson
2011-08-26 4:12 ` David Gibson
[not found] ` <20110826041200.GD2308-787xzQ0H9iQXU02nzanrWNbf9cGiqdzd@public.gmane.org>
2011-08-26 10:58 ` Arnd Bergmann
2011-08-26 10:58 ` Arnd Bergmann
2011-08-26 13:06 ` David Gibson
2011-08-26 13:06 ` David Gibson
2011-08-26 15:35 ` Arnd Bergmann
2011-08-26 15:35 ` Arnd Bergmann
[not found] ` <201108261735.55412.arnd-r2nGTMty4D4@public.gmane.org>
2011-08-26 15:41 ` Arnd Bergmann
2011-08-26 15:41 ` Arnd Bergmann
2011-08-27 14:37 ` David Gibson
2011-08-27 14:37 ` David Gibson
2011-08-27 18:13 ` Arnd Bergmann
2011-08-27 18:13 ` Arnd Bergmann
2011-08-27 19:31 ` Paul Walmsley
2011-08-27 19:31 ` Paul Walmsley
2011-08-29 17:16 ` Arnd Bergmann
2011-08-29 17:16 ` Arnd Bergmann
2011-08-28 8:39 ` David Gibson
2011-08-28 8:39 ` David Gibson
2011-08-28 23:06 ` Paul Walmsley
2011-08-28 23:06 ` Paul Walmsley
[not found] ` <alpine.DEB.2.00.1108281100150.23968-rwI8Ez+7Ko+d5PgPZx9QOdBPR1lH4CV8@public.gmane.org>
2011-08-28 23:43 ` Russell King - ARM Linux
2011-08-28 23:43 ` Russell King - ARM Linux
2011-08-29 1:57 ` Paul Walmsley
2011-08-29 1:57 ` Paul Walmsley
2011-08-29 17:18 ` Arnd Bergmann
2011-08-29 17:18 ` Arnd Bergmann
2011-08-27 21:47 ` Paul Walmsley
2011-08-27 21:47 ` Paul Walmsley
[not found] ` <alpine.DEB.2.00.1108271444240.23968-rwI8Ez+7Ko+d5PgPZx9QOdBPR1lH4CV8@public.gmane.org>
2011-08-29 21:54 ` Mark Brown
2011-08-29 21:54 ` Mark Brown
2011-08-26 14:13 ` Cousson, Benoit
2011-08-26 14:13 ` Cousson, Benoit
2011-08-30 2:29 ` David Gibson
2011-08-30 2:29 ` David Gibson
2011-08-30 9:27 ` Felipe Balbi
2011-08-30 9:27 ` Felipe Balbi
[not found] ` <20110830092722.GG23907-UiBtZHVXSwEVvW8u9ZQWYwjfymiNCTlR@public.gmane.org>
2011-08-31 2:32 ` David Gibson
2011-08-31 2:32 ` David Gibson
2011-08-27 20:00 ` Paul Walmsley
2011-08-27 20:00 ` Paul Walmsley
2011-08-25 17:38 ` Cousson, Benoit
2011-08-25 17:38 ` Cousson, Benoit
2011-08-09 21:52 ` Scott Wood
2011-08-09 21:52 ` Scott Wood
2011-08-09 20:55 ` Grant Likely
2011-08-09 20:55 ` Grant Likely
2011-08-09 21:06 ` Cousson, Benoit
2011-08-09 21:06 ` Cousson, Benoit
2011-08-09 21:16 ` Grant Likely
2011-08-09 21:16 ` Grant Likely
2011-08-09 21:37 ` Cousson, Benoit
2011-08-09 21:37 ` Cousson, Benoit
2011-08-12 4:10 ` Shawn Guo
2011-08-12 4:10 ` Shawn Guo
2011-08-12 8:56 ` Cousson, Benoit
2011-08-12 8:56 ` Cousson, Benoit
2011-08-12 11:47 ` Shawn Guo
2011-08-12 11:47 ` Shawn Guo
2011-08-12 14:40 ` Arnd Bergmann
2011-08-12 14:40 ` Arnd Bergmann
2011-08-10 1:29 ` David Gibson
2011-08-10 1:29 ` David Gibson
2011-08-10 6:08 ` Paul Walmsley
2011-08-10 6:08 ` Paul Walmsley
2011-08-09 19:51 ` Russell King - ARM Linux
2011-08-09 19:51 ` Russell King - ARM Linux
2011-08-09 20:59 ` Cousson, Benoit
2011-08-09 20:59 ` Cousson, Benoit
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=4E429D60.2000100@ti.com \
--to=b-cousson-l0cymroini0@public.gmane.org \
--cc=david-xT8FGy+AXnRB3Ne2BGzF6laj5H9X9Tb+@public.gmane.org \
--cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
--cc=khilman-l0cyMroinI0@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=manjugk-l0cyMroinI0@public.gmane.org \
--cc=paul-DWxLp4Yu+b8AvxtiuMwx3w@public.gmane.org \
--cc=scottwood-KZfg59tc24xl57MIdRCFDg@public.gmane.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.