linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: catalin.marinas@arm.com (Catalin Marinas)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC 1/4] ARM: tegra: Move SoC drivers to drivers/soc/tegra
Date: Mon, 30 Jun 2014 10:44:29 +0100	[thread overview]
Message-ID: <20140630094429.GD28951@arm.com> (raw)
In-Reply-To: <5279186.O063V9ZcHh@wuerfel>

On Mon, Jun 30, 2014 at 08:23:45AM +0100, Arnd Bergmann wrote:
> On Saturday 28 June 2014 13:15:09 Santosh Shilimkar wrote:
> > >> For SMP boot, ARMv8 expecting to have either PSCI based implementation or
> > >> device tree based boot scheme. you can move towards that model if possible.
> > > 
> > > But we also have the code for SMP on 32-bit ARM. Should that remain in
> > > arch/arm/mach-tegra or can it move to drivers/soc/tegra?
> > > 
> > You answered yourself. I don't see any point moving such a code to drivers
> > which is really SMP bring up code for ARM 32 bit. For ARM 64 bit, as
> > outline by maintainers (Catalin, Arnd), you should use PSCI or DT based
> > boot scheme.
> 
> I was hoping that one day we could unify the SMP bootup code with the
> cpuidle infrastructure, as a lot of the underlying functions are shared
> on the majority of SoCs. I have no plans to work on that myself though,
> and it would have to be agreed on by the cpuidle maintainers.

If you look at the arm64 implementation and Lorenzo's generic cpuidle
code, that's not far off. Basically for arm64 we have a cpu_operations
structure which implements boot, suspend, disable etc., placing SMP
booting, hotplug and cpuidle together.

While PSCI is the (strongly) recommended way, the current structure
allows for other implementations and spin-table is an example (though
this lacks any form of parking CPUs back to firmware). What I don't want
to see is every platform implementing its own booting method for no good
reasons and especially when functionality is duplicated with other
platforms.

In the tegra case, I suppose the arm32 implementation assumes Linux
running in secure mode. On arm64 we don't support this (though it may
work for certain configurations) and once you realise you need SMC calls
for CPU up/down/suspend, I would rather standardise on PSCI (unless a
better standard appears ;)).

> For ARM64, the hope was indeed to use PSCI for all SoCs. I just have no
> idea how that would be enforced for mobile SoCs that get shipped to
> system integrators with an bootloader and kernel tree that doesn't even
> get reviewed anywhere first.

We can't enforce this but at least with enough "marketing" support, we
can sell this as a good idea. For example, if one implements PSCI you
get (generic) cpuidle for free (just DT bindings). That's definitely not
enough and other things like a comprehensive validation suite for PSCI
also helps (currently ARM only works on bare metal but it would be good
to have a kernel-based test suite as well).

-- 
Catalin

  reply	other threads:[~2014-06-30  9:44 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-27 16:58 [RFC 1/4] ARM: tegra: Move SoC drivers to drivers/soc/tegra Thierry Reding
2014-06-27 16:58 ` [RFC 2/4] ARM: tegra: Add legacy interrupt controller nodes Thierry Reding
2014-06-27 20:58   ` Stephen Warren
2014-06-27 23:44     ` Thierry Reding
2014-06-27 16:58 ` [RFC 3/4] soc/tegra: Initialize interrupt controller from DT Thierry Reding
2014-06-27 21:03   ` Stephen Warren
2014-06-28  1:12     ` Thierry Reding
2014-06-30 11:30   ` Peter De Schrijver
2014-06-30 19:51     ` Thierry Reding
2014-06-27 16:58 ` [RFC 4/4] soc/tegra: Remove unused defines Thierry Reding
2014-06-27 21:03   ` Stephen Warren
2014-06-28  1:12     ` Thierry Reding
2014-06-27 17:30 ` [RFC 1/4] ARM: tegra: Move SoC drivers to drivers/soc/tegra Santosh Shilimkar
2014-06-27 23:27   ` Thierry Reding
2014-06-28 17:15     ` Santosh Shilimkar
2014-06-28 20:40       ` Thierry Reding
2014-06-30  7:20         ` Arnd Bergmann
2014-06-30  9:01           ` Thierry Reding
2014-06-30 10:36             ` Catalin Marinas
2014-06-30 10:48               ` Thierry Reding
2014-06-30 13:16                 ` Lorenzo Pieralisi
2014-06-30 19:36                   ` Thierry Reding
2014-07-01 10:50                     ` Catalin Marinas
2014-07-01 15:05                       ` Stephen Warren
2014-07-01 17:00                         ` Catalin Marinas
2014-06-30 19:21           ` Thierry Reding
2014-07-01  7:51             ` Peter De Schrijver
2014-07-16 19:31           ` Olof Johansson
2014-07-16 19:47             ` Thierry Reding
2014-07-17  9:31             ` Catalin Marinas
2014-07-17 16:21               ` Olof Johansson
2014-06-30  7:23       ` Arnd Bergmann
2014-06-30  9:44         ` Catalin Marinas [this message]
2014-06-30 18:45         ` Stephen Warren
2014-06-30 10:25     ` Catalin Marinas
2014-06-30 10:49       ` Thierry Reding
2014-06-30 11:46       ` Peter De Schrijver
2014-06-30 14:13         ` Catalin Marinas
2014-06-30 14:42           ` Peter De Schrijver
2014-06-30 14:50             ` Peter De Schrijver
2014-06-30 16:08             ` Catalin Marinas
2014-06-27 21:10 ` Stephen Warren
2014-06-28  1:24   ` Thierry Reding

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=20140630094429.GD28951@arm.com \
    --to=catalin.marinas@arm.com \
    --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).