From: vladimir.murzin@arm.com (Vladimir Murzin)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 0/3] ARM: nommu: R-class fixes
Date: Tue, 26 Apr 2016 13:24:38 +0100 [thread overview]
Message-ID: <571F5E06.7040406@arm.com> (raw)
In-Reply-To: <5485255.0LNbKf2a8b@wuerfel>
On 26/04/16 12:59, Arnd Bergmann wrote:
> On Tuesday 26 April 2016 11:57:38 Vladimir Murzin wrote:
>> On 26/04/16 10:10, Arnd Bergmann wrote:
>>> On Tuesday 26 April 2016 09:17:14 Vladimir Murzin wrote:
>
>>> Turning it around would limit the platforms to the ones that
>>> explictly turn on NOMMU support. In order to make ARMv7-R support
>>> work, we need either another top-level platform option next to
>>> ARCH_MULTIPLATFORM and ARM_SINGLE_ARMV7M, or add ARMv7-R in
>>> the CPU selection phase as an alternative to ARMv4/5 and ARMv6/7-A.
>>>
>>
>> It depends if we what NOMMU represented (apart from M-class) R-class
>> only or R-class + A-class without MMU.
>
> Exactly. The same is of course true for the older architectures:
> There are tons of ARM7TDMI, ARM946, ARM1156 or Marvell Feroceon cores
> without MMU, but we don't currently support any of them with an
> upstream kernel. Respectively, we should in theory be able to
> run on any of the other MMU based cores that we do support (ARM720T,
> StrongARM, ARM92x, ARM1136/1176/MPCore, ...) with the MMU disabled,
> but neither of the two scenarios seems interesting for mainline
> kernels in this age any more.
>
> What we know is that ARMv7-M is widely used, ARMv7-R makes a lot of
> sense to use, and there are probably use cases for ARMv7-A without
> MMU.
>
>>>>> What hardware platform do you use? It would be nice to make it a little
>>>>> more explicit which platforms can use the ARMv7-R, or an ARMv7-A with
>>>>> the MMU disabled.
>>>>
>>>> Currently I'm dealing mostly with ARMv7-R FVP models which represents
>>>> Vexpress with R-class tile (it is why this mini series have MPU
>>>> patches). I've never tried ARMv7-A with the MMU disabled and I'm quite
>>>> in doubt if it is feasible.
>>>
>>> What is the difference? I always assumed that ARMv7-R and ARMv7-A are
>>> sufficiently close that you can run the same kernel on both as long
>>> as you use neither the MMU nor the MPU.
>>
>> Right they are quite close and shares a lot of code except MMU and MPU,
>> and I'd think without MMU/MPU such configurations are limited with UP
>> only. I've not though of such option before, so I'd need to try and see.
>>
>> On the other hand assumption that NOMMU == ARMv7-A - MMU, makes me think
>> that any ARMv7 platform should be available for selection if CONFIG_MMU
>> is deselected. At least such approach gives better build coverage and if
>> there are platforms which suffer from such assumption runtime they can
>> be guarded with COMPILE_TEST.
>
> I think one problem is that with MMU disabled ARMv7-A, you implicitly
> disable the caches and that is probably what you are thinking of for
> SMP support as well (atomic instructions need caches).
Another problem is that we need to provide DRAM_BASE and DRAM_SIZE for
such builds, but it can be addressed with 1:1 mappings you've described
below
>
> However, this can be worked around using a static page table set up
> at boot time that creates hugepage entries with appropriate flags for
> RAM and I/O areas. If we ever had a usecase for running this setup
> in production, we could even fake an MPU that way.
I'd think that support for FDPIC would make it one step closer.
I conclude that we don't want dedicated option for R-class cores and we
start from assumption that NOMMU covers: M-, R- and A- (without MMU or
1:1 mapping) cores. Please, correct me.
Vladimir
> Arnd
>
>
next prev parent reply other threads:[~2016-04-26 12:24 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-22 11:43 [PATCH 0/3] ARM: nommu: R-class fixes Vladimir Murzin
2016-04-22 11:43 ` [PATCH 1/3] ARM: nommu: fix PMSAv7 setup Vladimir Murzin
2016-04-22 11:43 ` [PATCH 2/3] ARM: nommu: change memory reserve for the vectors Vladimir Murzin
2016-04-22 11:43 ` [PATCH 3/3] ARM: domain: move {set,get}_domain under config guard Vladimir Murzin
2016-04-27 10:49 ` [PATCH 3/3] ARM: domain: move {set, get}_domain " Russell King - ARM Linux
2016-04-27 12:16 ` Vladimir Murzin
2016-04-28 13:50 ` Russell King - ARM Linux
2016-04-28 14:44 ` Vladimir Murzin
2016-04-28 14:59 ` Russell King - ARM Linux
2016-04-28 15:06 ` Vladimir Murzin
2016-04-23 6:54 ` [PATCH 0/3] ARM: nommu: R-class fixes Afzal Mohammed
2016-04-25 7:55 ` Vladimir Murzin
2016-04-25 12:59 ` Arnd Bergmann
2016-04-25 13:30 ` Afzal Mohammed
2016-04-26 8:17 ` Vladimir Murzin
2016-04-26 8:17 ` Vladimir Murzin
2016-04-26 9:10 ` Arnd Bergmann
2016-04-26 10:57 ` Vladimir Murzin
2016-04-26 11:59 ` Arnd Bergmann
2016-04-26 12:24 ` Vladimir Murzin [this message]
2016-04-26 18:12 ` Arnd Bergmann
2016-04-27 9:10 ` Vladimir Murzin
2016-04-27 9:50 ` Arnd Bergmann
2016-04-27 10:55 ` Vladimir Murzin
2016-04-27 11:18 ` Arnd Bergmann
2016-04-26 15:23 ` Afzal Mohammed
2016-04-28 9:41 ` Maxime Coquelin
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=571F5E06.7040406@arm.com \
--to=vladimir.murzin@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).