devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Mitch Bradley <wmb-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
To: Grant Likely <grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org>
Cc: Russell King - ARM Linux
	<linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>,
	devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
Subject: "Early" devices and the DT
Date: Sun, 26 Jun 2011 15:22:39 -0400	[thread overview]
Message-ID: <4E0786FF.9010002@firmworks.com> (raw)
In-Reply-To: <BANLkTimy6iyQyyvNUK3Kc6skSKyVxBwWPA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>

Some solutions to the early device problem

a) Most complex:  Use new properties to create a dependency graph.  This 
is probably the most general solution, but also probably the hardest for 
people to think about and maintain.

b) Define a set of init phases 0,1,2,...  and mark each early device 
node with a phase number property.  Scan the tree for each phase and 
handle only the devices with that phase number.  Unmarked nodes are 
handled last.

c) Similar to b, but instead of properties in nodes, have properties 
like "linux-phase0", "linux-phase1", etc in /chosen, whose values are 
lists of phandles.

Admittedly, this is to some extent Linux-specific, but there is a fair 
chance that it would be useful to other OSs, as most OSs have similar 
ordering requirements for certain core devices.  I know that Windows 
works this way - the Windows kernel startup code scans the NT device 
tree multiple times, picking off different devices in different phases.

Some devices might appear in multiple phases.  For example, you might 
want to init a serial device in phase 0, in a simplified mode that 
doesn't depend on interrupts, then do the interrupt controller in phase 
1, then do the timer in phase 2 and also reinit the serial port to use 
interrupts in phase 2.

  parent reply	other threads:[~2011-06-26 19:22 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-24 14:10 [RFC PATCH 0/4] DT support for ARM GIC and TWD Marc Zyngier
     [not found] ` <1308924659-31894-1-git-send-email-marc.zyngier-5wv7dgnIgG8@public.gmane.org>
2011-06-24 14:10   ` [RFC PATCH 1/4] dt: early platform devices support Marc Zyngier
     [not found]     ` <1308924659-31894-2-git-send-email-marc.zyngier-5wv7dgnIgG8@public.gmane.org>
2011-06-25  4:49       ` Grant Likely
2011-06-25 11:11         ` Marc Zyngier
     [not found]           ` <20110625121142.4c73ca70-cwr+A0SHHwyvmEsGQKTYaQ42X47YVq0KHZ5vskTnxNA@public.gmane.org>
2011-06-25 20:44             ` Grant Likely
2011-06-27  9:54               ` Marc Zyngier
2011-06-24 14:10   ` [RFC PATCH 2/4] ARM: dt: register local timers as early platform devices Marc Zyngier
2011-06-25 20:47     ` Grant Likely
     [not found]       ` <20110625204742.GB15026-e0URQFbLeQY2iJbIjFUEsiwD8/FfD2ys@public.gmane.org>
2011-06-25 21:20         ` Rob Herring
     [not found]           ` <4E06513B.4030706-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-06-26  7:00             ` Grant Likely
     [not found]               ` <BANLkTimy6iyQyyvNUK3Kc6skSKyVxBwWPA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-06-26 19:22                 ` Mitch Bradley [this message]
     [not found]                   ` <4E0786FF.9010002-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2011-06-26 21:24                     ` "Early" devices and the DT glikely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org
2011-06-24 14:10   ` [RFC PATCH 3/4] ARM: dt: add GIC bindings and driver support Marc Zyngier
     [not found]     ` <1308924659-31894-4-git-send-email-marc.zyngier-5wv7dgnIgG8@public.gmane.org>
2011-06-26  8:01       ` Grant Likely
     [not found]         ` <20110626080135.GC15026-e0URQFbLeQY2iJbIjFUEsiwD8/FfD2ys@public.gmane.org>
2011-06-27 10:27           ` Marc Zyngier
     [not found]             ` <4E085B2E.5030605-5wv7dgnIgG8@public.gmane.org>
2011-06-27 15:02               ` Grant Likely
2011-06-24 14:10   ` [RFC PATCH 4/4] ARM: dt: Add TWD " Marc Zyngier
     [not found]     ` <1308924659-31894-5-git-send-email-marc.zyngier-5wv7dgnIgG8@public.gmane.org>
2011-06-26  8:09       ` Grant Likely
     [not found]         ` <20110626080902.GA24241-e0URQFbLeQY2iJbIjFUEsiwD8/FfD2ys@public.gmane.org>
2011-06-27 10:39           ` Marc Zyngier

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=4E0786FF.9010002@firmworks.com \
    --to=wmb-d5eqfidgl7eakbo8gow8eq@public.gmane.org \
    --cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
    --cc=grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-lFZ/pmaqli7XmaaqVzeoHQ@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).