From: Russell King <rmk+lkml@arm.linux.org.uk>
To: Scott Wood <scottwood@freescale.com>
Cc: Peter Korsgaard <jacmet@sunsite.dk>,
Robert Schwebel <r.schwebel@pengutronix.de>,
devicetree-discuss <devicetree-discuss@ozlabs.org>,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.arm.linux.org.uk,
Janboe Ye <yuan-bo.ye@motorola.com>,
Timur Tabi <timur@freescale.com>
Subject: Re: [RFC] [PATCH] Device Tree on ARM platform
Date: Wed, 27 May 2009 18:56:09 +0100 [thread overview]
Message-ID: <20090527175609.GB31861@flint.arm.linux.org.uk> (raw)
In-Reply-To: <4A1D6901.2090508@freescale.com>
On Wed, May 27, 2009 at 11:23:29AM -0500, Scott Wood wrote:
> That removes the ability to use the device tree to pass information from
> the bootloader, such as MAC addresses and clock frequencies. On the
> u-boot list, you'll find people trying such hacks (which were rightly
> NACKed) as passing the information in the device's volatile registers
> (which the Linux driver must then not reset) to deal with ARM Linux's
> lack of this ability.
No one has brought that up on the ARM mailing lists - so does this issue
really exist? All of the stuff I see on the ARM lists seems to be well
behaved and following our existing model - even vendor stuff (supplied
to me under NDA) seems to generally get this kind of stuff right.
Basically, what I'm saying is that I have seen no evidence to support
the argument you're making, but I'm not saying you're wrong or that it
doesn't happen.
>> Robert> - The oftree layering is fundamentally broken. We already
>> Robert> have a sane abstraction for arbitrary hardware in the kernel:
>> Robert> platform devices. Why not instanciate platform devices from
>> Robert> a generic oftree core?
>
> You can, if you want. But you'll need extra glue code that understands
> the individual bindings. IMHO that logic is usually better off in the
> driver itself, but if you really need platform code to involve itself in
> some way (such as providing callbacks), then exceptions can be made.
No it is not. Device drivers are best written to support devices, and
the platform specific code should not be anywhere near them. Platform
specific code to handle oddities of platforms should be totally separate
from the device driver itself.
For example, see the mess that is cs89x0, which isn't a platform driver
(or any kind of driver model driver). It's full of individual platform
specific hacks to make it work on platforms X, Y and Z. The same was
true of the smc91x driver (which is a platform driver but wasn't done
in a generic way.) smc91x was very quickly becoming a big problem to
maintain and use because of all the platform specific junk being shoe-
horned into the driver. smc91x eventually got fixed. cs89x0 hasn't.
smc91x is a prime example of the kind of information drivers need - base
address and irq are very much insufficient to describe how this device is
connected. There's much more information required to specify this device
fully, and throwing it into the driver doesn't work. We've been there
and proven that point.
So, repeat this mantra: device drivers should contain no platform specifics.
Platform specifics should be separated from the driver and implemented by
platform support code.
--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of:
next prev parent reply other threads:[~2009-05-27 18:06 UTC|newest]
Thread overview: 151+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-27 7:08 Janboe Ye
2009-05-27 14:27 ` Grant Likely
2009-05-27 14:39 ` Timur Tabi
2009-05-27 15:05 ` Robert Schwebel
2009-05-27 15:39 ` Grant Likely
2009-05-27 16:20 ` Robert Schwebel
2009-05-27 20:35 ` Grant Likely
2009-05-27 23:48 ` Robert Schwebel
2009-05-27 23:52 ` David Miller
2009-05-27 23:58 ` Scott Wood
2009-05-28 0:02 ` David Miller
2009-05-28 0:07 ` Robert Schwebel
2009-05-28 0:15 ` David Miller
2009-05-28 10:37 ` Mark Brown
2009-05-28 22:32 ` Grant Likely
2009-05-29 12:34 ` Mark Brown
2009-05-30 9:52 ` Benjamin Herrenschmidt
2009-05-30 10:21 ` Russell King - ARM Linux
2009-05-30 17:56 ` Mark Brown
2009-06-02 7:57 ` Holger Schurig
2009-06-02 9:48 ` Mark Brown
2009-05-28 2:57 ` David Gibson
2009-05-28 3:36 ` Grant Likely
2009-05-28 3:29 ` Grant Likely
2009-05-28 9:51 ` Wolfgang Denk
2009-05-28 9:59 ` David Miller
2009-05-28 10:13 ` Robert Schwebel
2009-05-28 13:33 ` Jon Smirl
2009-05-28 13:42 ` Robert Schwebel
2009-05-28 9:38 ` Wolfgang Denk
2009-05-28 3:21 ` Grant Likely
2009-05-28 3:16 ` Grant Likely
2009-05-28 0:55 ` Stephen Neuendorffer
2009-05-27 18:56 ` Alexander Clouter
2009-05-27 20:46 ` Grant Likely
2009-05-27 21:32 ` Alexander Clouter
2009-05-27 15:41 ` Peter Korsgaard
2009-05-27 16:23 ` Scott Wood
2009-05-27 17:56 ` Russell King [this message]
2009-05-27 19:08 ` Scott Wood
2009-05-27 19:13 ` Jon Smirl
2009-05-27 19:21 ` Russell King - ARM Linux
2009-05-27 19:39 ` Jean-Christophe PLAGNIOL-VILLARD
2009-05-27 20:22 ` Grant Likely
2009-05-27 20:19 ` Jean-Christophe PLAGNIOL-VILLARD
2009-05-27 20:54 ` Grant Likely
2009-05-28 3:04 ` David Gibson
2009-05-28 7:58 ` Benjamin Herrenschmidt
2009-05-27 23:57 ` Robert Schwebel
2009-05-28 0:00 ` David Miller
2009-05-28 3:21 ` Grant Likely
2009-05-28 6:34 ` Wolfram Sang
2009-05-28 7:55 ` Benjamin Herrenschmidt
2009-05-28 13:34 ` Grant Likely
2009-05-28 7:48 ` Benjamin Herrenschmidt
2009-05-28 14:22 ` Ben Dooks
2009-05-27 20:28 ` David Miller
2009-05-27 20:31 ` Jean-Christophe PLAGNIOL-VILLARD
2009-05-28 2:52 ` David Gibson
2009-05-28 4:27 ` David Miller
2009-05-28 4:47 ` David Gibson
2009-05-28 5:31 ` David Miller
2009-05-28 5:47 ` David Gibson
2009-05-28 7:47 ` Benjamin Herrenschmidt
2009-05-28 14:17 ` Ben Dooks
2009-05-28 14:24 ` Robert Schwebel
2009-05-28 14:47 ` Grant Likely
2009-05-27 19:29 ` Russell King
2009-05-27 19:47 ` Sergei Shtylyov
2009-05-27 19:53 ` Scott Wood
2009-05-27 19:54 ` Timur Tabi
2009-05-27 20:25 ` David Miller
2009-05-27 20:27 ` Timur Tabi
2009-05-27 20:55 ` David Miller
2009-05-27 23:26 ` Robert Schwebel
2009-05-27 20:35 ` M. Warner Losh
2009-05-27 20:14 ` Jean-Christophe PLAGNIOL-VILLARD
2009-05-27 20:23 ` David Miller
2009-05-27 20:27 ` Jean-Christophe PLAGNIOL-VILLARD
2009-05-27 20:48 ` Josh Boyer
2009-05-27 20:56 ` David Miller
2009-05-27 20:52 ` Mark Brown
2009-05-27 21:05 ` Grant Likely
2009-05-28 0:11 ` Jon Smirl
2009-05-28 12:43 ` Sascha Hauer
2009-05-28 13:18 ` Thomas Gleixner
2009-05-28 15:04 ` Sascha Hauer
2009-05-28 15:27 ` Thomas Gleixner
2009-05-29 0:51 ` Benjamin Herrenschmidt
2009-05-29 7:52 ` Sascha Hauer
2009-05-29 9:08 ` Benjamin Herrenschmidt
2009-05-31 10:52 ` Russell King - ARM Linux
2009-05-28 14:31 ` Grant Likely
2009-05-28 3:25 ` David Gibson
2009-05-28 8:10 ` Benjamin Herrenschmidt
2009-05-28 7:38 ` Benjamin Herrenschmidt
2009-05-27 20:43 ` Grant Likely
2009-05-28 7:37 ` Benjamin Herrenschmidt
2009-05-28 9:15 ` Russell King - ARM Linux
2009-05-28 9:57 ` David Miller
2009-05-28 10:11 ` Benjamin Herrenschmidt
2009-05-28 10:33 ` Robert Schwebel
2009-05-28 10:34 ` Russell King - ARM Linux
2009-05-28 22:33 ` Benjamin Herrenschmidt
2009-05-28 10:14 ` Russell King - ARM Linux
2009-05-28 21:30 ` David Miller
2009-05-28 12:17 ` Dmitry Eremin-Solenikov
2009-05-28 12:48 ` David Gibson
2009-05-28 12:55 ` David Gibson
2009-05-28 14:13 ` Grant Likely
2009-05-28 16:53 ` Russell King - ARM Linux
2009-05-28 17:05 ` Grant Likely
2009-05-28 18:46 ` Alexander Clouter
2009-05-28 22:21 ` Benjamin Herrenschmidt
2009-05-29 1:39 ` David Gibson
2009-05-29 1:59 ` Mitch Bradley
2009-05-29 3:52 ` Benjamin Herrenschmidt
2009-05-29 4:11 ` David Miller
2009-05-29 4:11 ` David Miller
2009-05-29 4:56 ` Benjamin Herrenschmidt
2009-05-29 5:11 ` David Miller
2009-05-28 10:00 ` Benjamin Herrenschmidt
2009-05-28 11:44 ` Jean-Christophe PLAGNIOL-VILLARD
2009-05-28 12:47 ` Jon Smirl
2009-05-28 14:39 ` Grant Likely
2009-05-28 14:54 ` Grant Likely
2009-05-27 18:26 ` Peter Korsgaard
2009-05-27 16:32 ` Mark Brown
2009-05-27 18:50 ` Jon Smirl
2009-05-27 22:24 ` Mark Brown
2009-05-28 0:04 ` Jon Smirl
2009-05-28 13:07 ` Mark Brown
2009-05-27 20:42 ` Grant Likely
2009-05-27 21:38 ` Mark Brown
2009-05-28 3:02 ` David Gibson
2009-05-28 7:32 ` Benjamin Herrenschmidt
2009-05-28 13:38 ` Grant Likely
2009-05-27 22:01 ` Mitch Bradley
2009-05-28 8:17 ` Benjamin Herrenschmidt
2009-05-28 12:43 ` Holger Schurig
2009-05-28 13:12 ` Mark Brown
2009-05-27 17:44 ` Russell King
2009-05-27 17:52 ` Grant Likely
2009-05-28 3:44 ` David Gibson
2009-05-30 11:22 ` Pavel Machek
2009-05-31 1:29 ` Kyle Moffett
2009-05-31 5:56 ` David Miller
2009-06-01 8:37 ` Dmitry Eremin-Solenikov
2009-05-31 10:08 ` Russell King - ARM Linux
2009-06-01 9:24 ` Stephen Rothwell
2009-06-01 10:36 ` Janboe Ye
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=20090527175609.GB31861@flint.arm.linux.org.uk \
--to=rmk+lkml@arm.linux.org.uk \
--cc=devicetree-discuss@ozlabs.org \
--cc=jacmet@sunsite.dk \
--cc=linux-arm-kernel@lists.arm.linux.org.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=r.schwebel@pengutronix.de \
--cc=scottwood@freescale.com \
--cc=timur@freescale.com \
--cc=yuan-bo.ye@motorola.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome