From: catalin.marinas@arm.com (Catalin Marinas)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCHv1 0/7] ARM core support for hardware I/O coherency in non-SMP platforms
Date: Mon, 19 May 2014 11:42:19 +0100 [thread overview]
Message-ID: <20140519104219.GH5113@arm.com> (raw)
In-Reply-To: <20140519111739.39ae3b82@free-electrons.com>
On Mon, May 19, 2014 at 10:17:39AM +0100, Thomas Petazzoni wrote:
> On Thu, 15 May 2014 15:22:05 +0100, Catalin Marinas wrote:
> > > > > * On Armada 375/38x (which have single core and dual core variants)
> > > > >
> > > > > - The cache policy of pages must be set to "write allocate".
> > > > > - The SMP and TLB broadcast bits must be set in the Auxiliary
> > > > > Control Register (the core is a Cortex-A9)
> > > >
> > > > What about setting this bit in the firmware/bootloader? It's a sane
> > > > initialisation firmware should do.
> > >
> > > I'm sorry, but I don't buy the "fix your bootloader" argument. For
> > > various reasons:
> >
> > Well, for arm64 people should get used to this because I'm not taking
> > code for setting up things like SCU and ACTLR during boot.
>
> I have no problem about the bootloader doing some initialization, so if
> that's a requirement for arm64, no problem. But it should be a
> requirement regardless of the kernel configuration: in the current
> kernel, some initialization is done when CONFIG_SMP is enabled. And now
> that the same initialization is needed in !CONFIG_SMP, I'm asked to do
> it in the bootloader. That's the thing I don't buy.
And that's a hard thing for me to sell for arm32 ;) because of the
current code already doing this.
One of the issues is secure vs non-secure kernel deployment and
secure-only registers like ACTLR (and even SCU). I've seen SoCs for
which the mainline kernel assumes secure mode but it's deployed as
non-secure in the field with out of tree modifications to make it work.
I would rather have a single kernel image for both cases.
> > > Unfortunately, __create_page_tables is called so early that I don't
> > > know if it's possible to access 'struct machine_desc' at this point to
> > > know whether the platform needs shareable pages or not.
> > >
> > > Also, don't we have the same problem with the TTB_FLAGS_{SMP,UP) ?
> >
> > I don't think we do because we use the ALT_{SMP,UP} for TTB settings and
> > we have the smp-on-up fixup running before __v7_setup.
>
> Ok. For Armada 370, I don't need shareable pages. For Armada 380, I
> need shareable pages, but even if the processor is single core, I
> believe it pretends to be SMP in MPIDR.
You'd need to check this.
> > > It's either it's *always* done by the
> > > bootloader and we completely remove the SCU enabling code in the
> > > kernel, and add to the ARM boot protocol that enabling the SCU is the
> > > responsibility of the bootloader, or the kernel does the SCU enabling
> > > in all situations.
> >
> > I'm always for the former (and that's the case for arm64), though for
> > some older boards it's too late to change.
>
> Indeed. So how do we move forward?
As I said previously, it's not my call, just a recommendation. It's up
to the arm/arm-soc maintainers to take this. Give the arm32 SMP
initialisation precedent, forcing it for an existing platform is a
harder sell.
Whether we want to set a policy for new arm32 SoCs is for a different
thread.
--
Catalin
next prev parent reply other threads:[~2014-05-19 10:42 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-14 15:50 [RFC PATCHv1 0/7] ARM core support for hardware I/O coherency in non-SMP platforms Thomas Petazzoni
2014-05-14 15:50 ` [RFC PATCHv1 1/7] ARM: extend machine_desc with additional flags Thomas Petazzoni
2014-05-14 15:50 ` [RFC PATCHv1 2/7] ARM: mm: implement the usage of the machine_desc flags Thomas Petazzoni
2014-05-14 15:50 ` [RFC PATCHv1 3/7] ARM: mm: enable SMP bit and TLB broadcast bit on !SMP when needed Thomas Petazzoni
2014-05-14 15:50 ` [RFC PATCHv1 4/7] ARM: kernel: allow the SCU to be enabled even on !SMP Thomas Petazzoni
2014-05-14 15:50 ` [RFC PATCHv1 5/7] ARM: mvebu: split Armada 370 and Armada XP machine_desc Thomas Petazzoni
2014-05-14 15:50 ` [RFC PATCHv1 6/7] ARM: mvebu: define the Armada 370/375/38x/XP machine_desc flags Thomas Petazzoni
2014-05-14 15:50 ` [RFC PATCHv1 7/7] ARM: mvebu: I/O coherency no longer needs SMP on 375 and 38x Thomas Petazzoni
2014-05-14 17:04 ` [RFC PATCHv1 0/7] ARM core support for hardware I/O coherency in non-SMP platforms Catalin Marinas
2014-05-15 9:50 ` Thomas Petazzoni
2014-05-15 14:22 ` Catalin Marinas
2014-05-15 14:59 ` Rob Herring
2014-05-15 15:25 ` Catalin Marinas
2014-05-15 19:11 ` Rob Herring
2014-05-16 15:11 ` Catalin Marinas
2014-05-19 9:19 ` Thomas Petazzoni
2014-05-19 9:17 ` Thomas Petazzoni
2014-05-19 10:42 ` Catalin Marinas [this message]
2014-05-19 11:17 ` Thomas Petazzoni
2014-05-19 15:19 ` Catalin Marinas
2014-05-19 13:38 ` Thomas Petazzoni
2014-05-14 17:07 ` Rob Herring
2014-05-15 10:01 ` Thomas Petazzoni
2014-05-15 13:27 ` Will Deacon
2014-05-15 13:44 ` Thomas Petazzoni
2014-05-15 14:44 ` Rob Herring
2014-05-19 9:31 ` Thomas Petazzoni
2014-05-19 16:53 ` Rob Herring
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=20140519104219.GH5113@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).