From: Arnd Bergmann <arnd@arndb.de>
To: Florian Fainelli <f.fainelli@gmail.com>
Cc: p.zabel@pengutronix.de, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, tyler.baker@linaro.org,
peter.griffin@linaro.org, dinguyen@opensource.altera.com
Subject: Re: Allowing reset controllers before SMP initialization (on ARM)?
Date: Thu, 16 Apr 2015 10:04:39 +0200 [thread overview]
Message-ID: <2592960.UsK4Hr7GSl@wuerfel> (raw)
In-Reply-To: <552F0786.2000505@gmail.com>
On Wednesday 15 April 2015 17:51:18 Florian Fainelli wrote:
> Hi,
>
> In order to support initialization of the secondary core on BCM63138
> SoCs, I would want to utilize a reset controller to release the
> secondary CPU from reset [1].
>
> Here are multiple options:
>
> - expose a custom function which registers the reset controller platform
> driver as early as possible, which is probably acceptable, but also
> requires the DT machine descriptor to populate the platform bus earlier,
> which we could completely avoid
I think populating the platform bus earlier is not realistic, that
would break lots of existing dependencies. In particular, we can't
do it much earlier because it has to be done after the platform bus
itself is instantiated.
> - have a OF_DECLARE_RESET_CONTROLLER() which is running fairly early
> during boot, such that we can utilize reset controllers are early as
> possible, before any initcall level, and before SMP initialization is
> kicking in
We've added a couple of those, and it could be done here, but putting
them in the right order is a bit tricky, and I think we can avoid it.
> - since the code that boots secondary CPUs is relatively unique, even
> within the scope of the reset controllers (sequence involves touching
> multiple registers), pulling it outside of the reset controller might be
> acceptable (there is still some level of sharing though for low-level
> indirect read/write operations)
Yes, it's a hack, but the SMP code is rather special and a lot of
other platforms do similar hacks already. What I'd like to see
happen in the long run is more along the lines of:
- Avoid dependencies on the early SMP code, and just set up the
data structures for possible CPUs early, which can be done without
any hardware interaction. Then move the actual CPU enable path
much later in the boot process, possibly combined with the cpuidle
driver.
Arnd
next prev parent reply other threads:[~2015-04-16 8:05 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-16 0:51 Allowing reset controllers before SMP initialization (on ARM)? Florian Fainelli
2015-04-16 8:04 ` Arnd Bergmann [this message]
2015-04-16 9:42 ` Maxime Coquelin
2015-04-18 19:38 ` Arnd Bergmann
2015-04-16 18:04 ` Florian Fainelli
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=2592960.UsK4Hr7GSl@wuerfel \
--to=arnd@arndb.de \
--cc=dinguyen@opensource.altera.com \
--cc=f.fainelli@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=p.zabel@pengutronix.de \
--cc=peter.griffin@linaro.org \
--cc=tyler.baker@linaro.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