All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mitch Bradley <wmb@firmworks.com>
To: Grant Likely <grant.likely@secretlab.ca>
Cc: devicetree-discuss <devicetree-discuss@lists.ozlabs.org>,
	linuxppc-dev <linuxppc-dev@ozlabs.org>,
	microblaze-uclinux@itee.uq.edu.au,
	Olof Johansson <olof@lixom.net>,
	Dan Malek <ppc6dev@digitaldans.com>,
	Jeremy Kerr <jeremy.kerr@canonical.com>
Subject: Re: Request review of device tree documentation
Date: Sat, 12 Jun 2010 19:39:36 -1000	[thread overview]
Message-ID: <4C146F18.9030008@firmworks.com> (raw)
In-Reply-To: <AANLkTimRV8u3gDNCAIlROJoPcKs7jFwj2na3ZDFOg3O0@mail.gmail.com>

Grant Likely wrote:
> On Sat, Jun 12, 2010 at 4:52 PM, Benjamin Herrenschmidt
> <benh@kernel.crashing.org> wrote:
>   
>> On Sat, 2010-06-12 at 06:30 -1000, Mitch Bradley wrote:
>>
>>     
>>> I'm certainly going to try keeping OFW alive.  On the x86 OLPC machines,
>>> the ability to
>>> dive into OFW via a SysRq key combo was very helpful for debugging some
>>> difficult
>>> problems.  The team has asked me to support the feature on ARM.
>>>       
>> Oh well, if you can and can convince the ARM kernel folks to do the
>> necessary changes ... :-)
>>     
>
> What is needed to keep OFW alive?  I've got no problem with doing so
> if it isn't invasive, and as long as the same boot entry interface can
> be used.
>   

Minimally, OFW needs to own some memory that the kernel won't steal.  
OFW on ARM
is position-independent, so it can be tucked up at the top of memory 
fairly easily.

To call back into OFW, the virtual mapping for that memory needs to be 
reestablished.
Or perhaps the MMU and caches can be turned off for the duration of the 
callback.
I don't have the details of ARM MMUs and caches reloaded into my head 
yet.  Maybe next week...

Also, for debugging, OFW typically needs access to a UART.  If the OS is 
using the UART,
it's often possible for OFW to use it just by turning off interrupts and 
polling the UART.

>   
>> One thing tho, you will only benefit from the whole infrastructure we
>> have created accross platforms in linux if the device-tree is "sucked"
>> into linux at boot. IE. Linux will not do constant accesses to OF for
>> the DT. Even sparc converted to that now.
>>
>> That means that if your device-tree has a dynamic nature, we'll need to
>> come up with a way to inform the kernel of changes in it so it can
>> update it's copy accordingly.
>>     
>
> What is the use-case for having a dynamic device tree? 

The use case for a dynamic device tree is not compelling.

In SPARC / Solaris land, Open Boot managed the non-volatile 
configuration variables, which the OS could access and modify 
dynamically as properties in /options.  The OS didn't have to know the 
storage layout nor the hardware details of the storage device.  
Convenient, but not hugely important.

>  I can see
> keeping OFW alive being useful for some debug facilities, but once the
> kernel has started, I'm really not interested in relying on firmware
> to manage the hardware. 

That's sort of a self-fulfilling prophecy.  If the OS doesn't trust the 
firmware, there is no pressure for the firmware to "get it right".

In PC land, the current status quo is that Windows depends on ACPI so 
heavily that BIOS vendors pretty much have to get that part of the 
puzzle right.  Microsoft did a thorough job of creating certification 
tests and enforcing their use.  I'm not praising ACPI, just pointing out 
the dynamics that result from assignment of responsibility.

That said, I'm not interested in pushing the issue.  It's okay with me 
if the device tree is static as far as the kernel is concerned, and 
callbacks to OFW are only used for debugging purposes.

>  (but then again it's no secret that I'm
> suspicious of anything that depends on runtime interaction with
> firmware).
>
> g.
>
>   

WARNING: multiple messages have this Message-ID (diff)
From: Mitch Bradley <wmb-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
To: Grant Likely <grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org>
Cc: devicetree-discuss
	<devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org>,
	linuxppc-dev
	<linuxppc-dev-mnsaURCQ41sdnm+yROfE0A@public.gmane.org>,
	microblaze-uclinux-rVRm/Wmeqae7NGdpmJTKYQ@public.gmane.org,
	Dan Malek <ppc6dev-7kUUosv42bfn7oBBQGLwdg@public.gmane.org>,
	Jeremy Kerr <jeremy.kerr-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>
Subject: Re: Request review of device tree documentation
Date: Sat, 12 Jun 2010 19:39:36 -1000	[thread overview]
Message-ID: <4C146F18.9030008@firmworks.com> (raw)
In-Reply-To: <AANLkTimRV8u3gDNCAIlROJoPcKs7jFwj2na3ZDFOg3O0-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>

Grant Likely wrote:
> On Sat, Jun 12, 2010 at 4:52 PM, Benjamin Herrenschmidt
> <benh-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org> wrote:
>   
>> On Sat, 2010-06-12 at 06:30 -1000, Mitch Bradley wrote:
>>
>>     
>>> I'm certainly going to try keeping OFW alive.  On the x86 OLPC machines,
>>> the ability to
>>> dive into OFW via a SysRq key combo was very helpful for debugging some
>>> difficult
>>> problems.  The team has asked me to support the feature on ARM.
>>>       
>> Oh well, if you can and can convince the ARM kernel folks to do the
>> necessary changes ... :-)
>>     
>
> What is needed to keep OFW alive?  I've got no problem with doing so
> if it isn't invasive, and as long as the same boot entry interface can
> be used.
>   

Minimally, OFW needs to own some memory that the kernel won't steal.  
OFW on ARM
is position-independent, so it can be tucked up at the top of memory 
fairly easily.

To call back into OFW, the virtual mapping for that memory needs to be 
reestablished.
Or perhaps the MMU and caches can be turned off for the duration of the 
callback.
I don't have the details of ARM MMUs and caches reloaded into my head 
yet.  Maybe next week...

Also, for debugging, OFW typically needs access to a UART.  If the OS is 
using the UART,
it's often possible for OFW to use it just by turning off interrupts and 
polling the UART.

>   
>> One thing tho, you will only benefit from the whole infrastructure we
>> have created accross platforms in linux if the device-tree is "sucked"
>> into linux at boot. IE. Linux will not do constant accesses to OF for
>> the DT. Even sparc converted to that now.
>>
>> That means that if your device-tree has a dynamic nature, we'll need to
>> come up with a way to inform the kernel of changes in it so it can
>> update it's copy accordingly.
>>     
>
> What is the use-case for having a dynamic device tree? 

The use case for a dynamic device tree is not compelling.

In SPARC / Solaris land, Open Boot managed the non-volatile 
configuration variables, which the OS could access and modify 
dynamically as properties in /options.  The OS didn't have to know the 
storage layout nor the hardware details of the storage device.  
Convenient, but not hugely important.

>  I can see
> keeping OFW alive being useful for some debug facilities, but once the
> kernel has started, I'm really not interested in relying on firmware
> to manage the hardware. 

That's sort of a self-fulfilling prophecy.  If the OS doesn't trust the 
firmware, there is no pressure for the firmware to "get it right".

In PC land, the current status quo is that Windows depends on ACPI so 
heavily that BIOS vendors pretty much have to get that part of the 
puzzle right.  Microsoft did a thorough job of creating certification 
tests and enforcing their use.  I'm not praising ACPI, just pointing out 
the dynamics that result from assignment of responsibility.

That said, I'm not interested in pushing the issue.  It's okay with me 
if the device tree is static as far as the kernel is concerned, and 
callbacks to OFW are only used for debugging purposes.

>  (but then again it's no secret that I'm
> suspicious of anything that depends on runtime interaction with
> firmware).
>
> g.
>
>   

  reply	other threads:[~2010-06-13  5:39 UTC|newest]

Thread overview: 187+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-11 22:59 Request review of device tree documentation Grant Likely
2010-06-11 22:59 ` Grant Likely
2010-06-11 23:47 ` Dan Malek
2010-06-11 23:47   ` Dan Malek
2010-06-12  2:58   ` Benjamin Herrenschmidt
2010-06-12  2:58     ` Benjamin Herrenschmidt
2010-06-12  4:48     ` Mitch Bradley
2010-06-12  4:48       ` Mitch Bradley
2010-06-12  6:53   ` Grant Likely
2010-06-12  6:53     ` Grant Likely
2010-06-12  8:19     ` Mitch Bradley
2010-06-12  8:19       ` Mitch Bradley
2010-06-12 10:45       ` Benjamin Herrenschmidt
2010-06-12 10:45         ` Benjamin Herrenschmidt
2010-06-12 10:48         ` Benjamin Herrenschmidt
2010-06-12 10:48           ` Benjamin Herrenschmidt
2010-06-12 16:30           ` Mitch Bradley
2010-06-12 16:30             ` Mitch Bradley
2010-06-12 22:52             ` Benjamin Herrenschmidt
2010-06-12 22:52               ` Benjamin Herrenschmidt
2010-06-13  5:07               ` Grant Likely
2010-06-13  5:07                 ` Grant Likely
2010-06-13  5:39                 ` Mitch Bradley [this message]
2010-06-13  5:39                   ` Mitch Bradley
2010-06-13  5:59                   ` Benjamin Herrenschmidt
2010-06-13  5:59                     ` Benjamin Herrenschmidt
2010-06-13  6:45                     ` Mitch Bradley
2010-06-13  6:45                       ` Mitch Bradley
2010-06-13  8:29                       ` Benjamin Herrenschmidt
2010-06-13  8:29                         ` Benjamin Herrenschmidt
2010-06-14  5:36                         ` Grant Likely
2010-06-14  5:36                           ` Grant Likely
2010-06-14  5:36                           ` Grant Likely
2010-06-14 20:00                           ` Ben Dooks
2010-06-14 20:00                             ` Ben Dooks
2010-06-14 20:00                             ` Ben Dooks
2010-06-13  8:57                       ` Benjamin Herrenschmidt
2010-06-13  8:57                         ` Benjamin Herrenschmidt
2010-06-14  5:23                     ` Grant Likely
2010-06-14  5:23                       ` Grant Likely
2010-06-14  5:23                       ` Grant Likely
2010-06-14  7:38                       ` Russell King - ARM Linux
2010-06-14  7:38                         ` Russell King - ARM Linux
2010-06-14  7:38                         ` Russell King - ARM Linux
2010-06-14  7:45                         ` Mitch Bradley
2010-06-14  7:45                           ` Mitch Bradley
2010-06-14  7:45                           ` Mitch Bradley
2010-06-14  9:25                           ` Russell King - ARM Linux
2010-06-14  9:25                             ` Russell King - ARM Linux
2010-06-14  9:36                             ` Benjamin Herrenschmidt
2010-06-14  9:36                               ` Benjamin Herrenschmidt
2010-06-14  9:36                               ` Benjamin Herrenschmidt
2010-06-14  9:47                               ` Russell King - ARM Linux
2010-06-14  9:47                                 ` Russell King - ARM Linux
2010-06-14 14:29                                 ` Jamie Lokier
2010-06-14 14:29                                   ` Jamie Lokier
2010-06-14 14:29                                   ` Jamie Lokier
2010-06-14 13:51                       ` Nicolas Pitre
2010-06-14 13:51                         ` Nicolas Pitre
2010-06-14 13:51                         ` Nicolas Pitre
2010-06-14 15:35                         ` Grant Likely
2010-06-14 15:35                           ` Grant Likely
2010-06-14 15:35                           ` Grant Likely
2010-06-14 15:58                           ` Nicolas Pitre
2010-06-14 15:58                             ` Nicolas Pitre
2010-06-14 15:58                             ` Nicolas Pitre
2010-06-14 16:16                             ` Grant Likely
2010-06-14 16:16                               ` Grant Likely
2010-06-14 16:16                               ` Grant Likely
2010-06-14  5:02                   ` Grant Likely
2010-06-14  5:02                     ` Grant Likely
2010-06-14  5:02                     ` Grant Likely
2010-06-14 12:44                     ` David Gibson
2010-06-14 12:44                       ` David Gibson
2010-06-14 12:44                       ` David Gibson
2010-06-14 14:59                       ` Nicolas Pitre
2010-06-14 14:59                         ` Nicolas Pitre
2010-06-14 14:59                         ` Nicolas Pitre
2010-06-14 15:08                         ` Grant Likely
2010-06-14 15:08                           ` Grant Likely
2010-06-14 15:08                           ` Grant Likely
2010-06-14 16:02                         ` Jamie Lokier
2010-06-14 16:02                           ` Jamie Lokier
2010-06-14 16:02                           ` Jamie Lokier
2010-06-14 16:23                           ` Nicolas Pitre
2010-06-14 16:23                             ` Nicolas Pitre
2010-06-14 16:23                             ` Nicolas Pitre
2010-06-14 16:29                             ` Grant Likely
2010-06-14 16:29                               ` Grant Likely
2010-06-14 16:29                               ` Grant Likely
2010-06-14 16:28                           ` Grant Likely
2010-06-14 16:28                             ` Grant Likely
2010-06-14 16:28                             ` Grant Likely
2010-06-14 16:33                             ` Jamie Lokier
2010-06-14 16:33                               ` Jamie Lokier
2010-06-14 16:33                               ` Jamie Lokier
2010-06-14 16:58                           ` Mitch Bradley
2010-06-14 16:58                             ` Mitch Bradley
2010-06-14 16:58                             ` Mitch Bradley
2010-06-14 17:26                             ` Nicolas Pitre
2010-06-14 17:26                               ` Nicolas Pitre
2010-06-14 18:20                               ` Mitch Bradley
2010-06-14 18:20                                 ` Mitch Bradley
2010-06-14 18:20                                 ` Mitch Bradley
2010-06-14 19:40                                 ` Nicolas Pitre
2010-06-14 19:40                                   ` Nicolas Pitre
2010-06-14 20:08                                   ` Mark Brown
2010-06-14 20:08                                     ` Mark Brown
2010-06-14 20:08                                     ` Mark Brown
2010-06-16  6:09                             ` Mike Rapoport
2010-06-16  6:09                               ` Mike Rapoport
2010-06-16  6:09                               ` Mike Rapoport
2010-06-16  6:13                               ` Mitch Bradley
2010-06-16  6:13                                 ` Mitch Bradley
2010-06-16  6:13                                 ` Mitch Bradley
2010-06-16  6:17                                 ` Mike Rapoport
2010-06-16  6:17                                   ` Mike Rapoport
2010-06-16  6:32                                   ` Mitch Bradley
2010-06-16  6:32                                     ` Mitch Bradley
2010-06-16  6:32                                     ` Mitch Bradley
2010-06-16  6:47                                     ` Mike Rapoport
2010-06-16  6:47                                       ` Mike Rapoport
2010-06-16  7:40                                       ` Mitch Bradley
2010-06-16  7:40                                         ` Mitch Bradley
2010-06-16  7:40                                         ` Mitch Bradley
2010-06-16  9:45                                         ` Vladimir Pantelic
2010-06-16  9:45                                           ` Vladimir Pantelic
2010-06-16  9:45                                           ` Vladimir Pantelic
2010-06-16 10:39                                         ` Mike Rapoport
2010-06-16 10:39                                           ` Mike Rapoport
2010-06-16 11:41                                           ` Jamie Lokier
2010-06-16 11:41                                             ` Jamie Lokier
2010-06-16 11:41                                             ` Jamie Lokier
2010-06-16 13:48                                             ` Jamie Bennett
2010-06-16 13:48                                               ` Jamie Bennett
2010-06-16 14:39                                           ` Nicolas Pitre
2010-06-16 14:39                                             ` Nicolas Pitre
2010-06-16 17:43                                             ` Tim Bird
2010-06-16 17:43                                               ` Tim Bird
2010-06-16 17:43                                               ` Tim Bird
2010-06-17  6:45                                               ` Benjamin Zores
2010-06-16  6:52                                     ` M. Warner Losh
2010-06-16  6:52                                       ` M. Warner Losh
2010-06-16  6:52                                       ` M. Warner Losh
2010-06-18 22:12                                       ` Frank Rowand
2010-06-18 22:12                                         ` Frank Rowand
2010-06-15  2:02                         ` David Gibson
2010-06-15  2:02                           ` David Gibson
2010-06-15  2:02                           ` David Gibson
2010-06-14 15:51                       ` M. Warner Losh
2010-06-14 15:51                         ` M. Warner Losh
2010-06-14 15:51                         ` M. Warner Losh
2010-06-13  5:48                 ` Benjamin Herrenschmidt
2010-06-13  5:48                   ` Benjamin Herrenschmidt
2010-06-14  5:13                   ` Grant Likely
2010-06-14  5:13                     ` Grant Likely
2010-06-14  5:13                     ` Grant Likely
2010-06-14  6:09                     ` Benjamin Herrenschmidt
2010-06-14  6:09                       ` Benjamin Herrenschmidt
2010-06-14  6:09                       ` Benjamin Herrenschmidt
2010-06-14  6:17                       ` Mitch Bradley
2010-06-14  6:17                         ` Mitch Bradley
2010-06-14  6:17                         ` Mitch Bradley
2010-06-12 22:15     ` Olof Johansson
2010-06-12 23:09       ` Grant Likely
2010-06-12 23:09         ` Grant Likely
2010-06-13  6:47         ` [microblaze-uclinux] " Edgar E. Iglesias
2010-06-12  3:00 ` Benjamin Herrenschmidt
2010-06-12  3:00   ` Benjamin Herrenschmidt
2010-06-12  3:07   ` Benjamin Herrenschmidt
2010-06-12  3:07     ` Benjamin Herrenschmidt
2010-06-13 13:12     ` Jeremy Kerr
2010-06-13 13:12       ` Jeremy Kerr
2010-06-14  5:40       ` Grant Likely
2010-06-12 17:33 ` Stephan Gatzka
2010-06-12 18:19   ` Grant Likely
     [not found]     ` <4C149DE1.1050800@gatzka.org>
     [not found]       ` <4C149DE1.1050800-tNItQxeJkt8dnm+yROfE0A@public.gmane.org>
2010-06-13 20:03         ` Grant Likely
     [not found]           ` <AANLkTim-FzAihEd0FE72dy3Ubb2yiIQh4rtI6TIMovFW-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-06-14 23:44             ` Grant Likely
     [not found]               ` <AANLkTikV9XqufTO9LVAql3nbySpPz_p_4kv7YY2b4UPW-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-06-15 19:25                 ` Stephan Gatzka
2010-06-14  5:54   ` Grant Likely
2010-06-14  5:54     ` Grant Likely
2010-08-05  4:43 ` David Gibson
2010-08-05  4:43   ` David Gibson
2010-09-01 16:19   ` Grant Likely
2010-09-01 16:19     ` Grant Likely
  -- strict thread matches above, loose matches on Subject: below --
2010-08-05 15:15 Terren Chow
     [not found] ` <AANLkTikFNFvM7x6TzN8DPM9E4vC0KVRb0sz4r2wu_nZ+-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-08-05 16:41   ` Grant Likely

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=4C146F18.9030008@firmworks.com \
    --to=wmb@firmworks.com \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=grant.likely@secretlab.ca \
    --cc=jeremy.kerr@canonical.com \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=microblaze-uclinux@itee.uq.edu.au \
    --cc=olof@lixom.net \
    --cc=ppc6dev@digitaldans.com \
    /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.