linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: linux@arm.linux.org.uk (Russell King - ARM Linux)
To: linux-arm-kernel@lists.infradead.org
Subject: Making ARM multiplatform kernels DT-only?
Date: Fri, 4 May 2012 08:27:57 +0100	[thread overview]
Message-ID: <20120504072756.GA26481@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <CAK2p4sLagEw+ubrG-oAk_bjWeSkEnCQyS_mJFPLCkpbnMfOZ_A@mail.gmail.com>

On Thu, May 03, 2012 at 11:31:13PM -0700, Deepak Saxena wrote:
> On 3 May 2012 07:04, Russell King - ARM Linux <linux@arm.linux.org.uk> wrote:
> > On Thu, May 03, 2012 at 01:50:35PM +0000, Arnd Bergmann wrote:
> >> Hi everyone,
> >>
> >> I've been discussing multiplatform kernels with a few people recently,
> >> and we will have a lot of discussion sessions about this at Linaro
> >> Connect in Hong Kong.
> >>
> >> One question that came up repeatedly is whether we should support all
> >> possible board files for each platform in a multiplatform kernel,
> >> or just the ones that are already using DT probing. I would like
> >> to get a quick poll of opinions on that and I've tried to put those
> >> people on Cc that would be most impacted by this, i.e. the maintainers
> >> for platforms that have both DT and non-DT board files at the moment.
> >>
> >> My feeling is that we should just mandate DT booting for multiplatform
> >> kernels, because it significantly reduces the combinatorial space
> >> at compile time, avoids a lot of legacy board files that we cannot
> >> test anyway, reduces the total kernel size and gives an incentive
> >> for people to move forward to DT with their existing boards.
> >>
> >> The counterargument is that we won't be able to support all the
> >> boards we currently do when the user switches on multiplatform,
> >> but I think that is acceptable.
> >> Note that I would still want to allow users to build platforms
> >> separately in order to enable the ATAG style board files, even
> >> for platforms that are not multiplatform capable.
> >
> > I'm basing my comments off mach-zynq.
> >
> > How about we take the following steps towards it?
> >
> > 1. create arch/arm/include/mach/ which contains standardized headers
> > ? for DT based implementations. ?This must include all headers included
> > ? by asm/ or linux/ includes. ?This will also be the only mach/ header
> > ? directory included for code outside of arch/arm/mach-*. ?This also
> > ? acts as the 'default' set of mach/* includes for stuff like timex.h
> > ? and the empty hardware.h
> >
> > 2. DT based mach-* directories do not have an include directory; their
> > ? include files must be located in the main include/ heirarchy if shared
> > ? with other parts of the kernel, otherwise they must be in the mach-*
> > ? directory.
> 
> What do we do about all the mach-specific driver related headers that are
> currently littered all over arch/arm/mach*? Things like <mach/mx3fb.h> and
> <mach/ohci.h>?

Such platforms with that kind of stuff haven't fully converted to DT,
because these sorts of things are platform dependent yet aren't represented
in DT.

> Arnd (or maybe Nicolas?) suggested something along the lines
> of scripting something to figure out the constants required for a
> specific driver and pulling them out of <mach/*.h> and into that
> driver as a starting point.

But that doesn't solve the problem.  Take a USB driver where the register
layouts are different.  To have it work on two different platforms, you'd
need to build the driver twice.  Not only that, you'd also need to figure
out some way to register only one copy of that.

So really, the header file thing is just a sign of larger blocking issues
to getting those kinds of drivers working on a multiplatform kernel, and
no amount of header munging will sort it out.  The fact of that situation
is the driver concerned is _not_ multiplatform and shouldn't be built in
that situation until it is fixed.

> > 3. Allow build multiple mach-* directories (which we already do... see
> > ? the samsung stuff.)
> >
> > We still have irqs.h being SoC dependent, and we still haven't taken
> > debug-macros.S far enough along to get rid of that. ?Then there's also
> > the problem of uncompress.h. ?The last piece of the puzzle is the common
> > clock stuff.
> 
> There's also some stuff outside of arch/arm that needs cleanup
> including USB driver
> refactoring and some other bits that I can't recall atm. Right now we
> can build one and
> only one host controller   inteface, even as modules. Not too
> difficult of a problem to
> solve and not critical to get the SOCs booting, but needed to be
> usable on real devices.

That's already a problem today, and has nothing to do with this current
issue - what I'm saying is the problem can't be made to go away through
header file stuff, so this issue is not relevant to this discussion.

That's not to say it doesn't need to be resolved, because it does.  It's
just no reason to argue against what I've said.

  reply	other threads:[~2012-05-04  7:27 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-03 13:50 Making ARM multiplatform kernels DT-only? Arnd Bergmann
2012-05-03 13:45 ` Jean-Christophe PLAGNIOL-VILLARD
2012-05-03 14:04 ` Russell King - ARM Linux
2012-05-03 13:52   ` Jean-Christophe PLAGNIOL-VILLARD
2012-05-04  6:31   ` Deepak Saxena
2012-05-04  7:27     ` Russell King - ARM Linux [this message]
2012-05-04 12:20   ` Arnd Bergmann
2012-05-04 16:39     ` Rob Herring
2012-05-04 16:56       ` Russell King - ARM Linux
2012-05-04 16:40         ` Jean-Christophe PLAGNIOL-VILLARD
2012-05-04 16:51         ` Jean-Christophe PLAGNIOL-VILLARD
2012-05-04 18:56       ` Arnd Bergmann
2012-05-03 14:18 ` Russell King - ARM Linux
2012-05-03 14:23   ` Magnus Damm
2012-05-03 16:27   ` Arnd Bergmann
2012-05-04  9:22   ` Arnaud Patard (Rtp)
2012-05-04 12:34     ` Arnd Bergmann
2012-05-10 10:55   ` Ben Dooks
2012-05-10 11:02     ` Russell King - ARM Linux
2012-05-03 14:46 ` Sascha Hauer
2012-05-04 16:24   ` Arnd Bergmann
2012-05-05  8:09     ` Sascha Hauer
2012-05-05 13:17       ` Arnd Bergmann
2012-05-14  8:54         ` Arnd Bergmann
2012-05-04  5:38 ` Deepak Saxena
2012-05-04  7:39   ` Russell King - ARM Linux
2012-05-04 14:20   ` Wookey
2012-05-04 14:35     ` Russell King - ARM Linux
2012-05-04 15:17       ` Arnd Bergmann
2012-05-04 16:05         ` Wookey
2012-05-04 18:49           ` Arnd Bergmann
2012-05-04 20:03       ` Linus Walleij
2012-05-04 20:42         ` Christian Robottom Reis
2012-05-04 21:05           ` Arnd Bergmann
2012-05-04 22:43         ` Russell King - ARM Linux

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=20120504072756.GA26481@n2100.arm.linux.org.uk \
    --to=linux@arm.linux.org.uk \
    --cc=linux-arm-kernel@lists.infradead.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).