All of lore.kernel.org
 help / color / mirror / Atom feed
From: linux@armlinux.org.uk (Russell King - ARM Linux)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH 11/11] ARM: Allow ARCH_MULTIPLATFORM to be selected for NOMMU
Date: Thu, 24 Nov 2016 17:35:32 +0000	[thread overview]
Message-ID: <20161124173532.GH14217@n2100.armlinux.org.uk> (raw)
In-Reply-To: <20161124172535.GA3524@afzalpc>

On Thu, Nov 24, 2016 at 10:55:35PM +0530, Afzal Mohammed wrote:
> Hi,
> 
> On Wed, Nov 23, 2016 at 07:16:21PM +0000, Russell King - ARM Linux wrote:
> 
> > Well, !MMU and multiplatform _are_ exclusive in reality.  One of the
> > things we work around in multiplatform is the different physical
> > address space layouts of the platforms, particularly with where RAM
> > is located.  That's not possible in !MMU configurations.  A kernel
> > built to support every platform in multiplatform will not boot on
> > most of them.
> > 
> > So efforts to make !MMU work with multiplatform are IMHO rather
> > misguided.
> > 
> > !MMU makes sense with classifications of systems (like the Cortex-M*
> > based systems) but not everything.
> 
> Okay, seems you were referring to AUTO_ZRELADDR or if you had
> something else in mind, please let me know.

No, I'm talking about the kernel proper itself.

> The plan was to use Image instead of zImage. Here there are 2
> platforms, Freescale's, oh no, NXP's, oh no no, Qualcomm's Vybrid
> (vf610) and TI's Sitara siblings (am335x beagle & am437x).

Right, so Freescale's iMX6, RAM starts at 0x10000000, so when building
for noMMU, you need to specify DRAM_START as 0x10000000 and DRAM_SIZE
to be the appropriate size of RAM.

You'll be able to run the same "Image" kernel on the other platforms
_if_ and _only_ _if_ they have RAM covering the same region.

That's my point - the kernel image will be linked to place its
read-write data at a certain location in the address space, and if
you have the MMU disabled (or in 1:1 translation mode) you _must_
have RAM at that location.

The reason multiplatform works is because we use the MMU to abstract
away the differences in the location of RAM on the platform (amongst
other things.)

Also note that Cortex-A class CPUs don't perform well with the MMU
off, because you can't enable the data cache - and you must have the
data cache enabled for SMP to be functional, and it's also required
for exclusives to work.

There's also some cases where "Device, non-shared" must be used to
access some devices, which can only be done with the MMU enabled.

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.

  reply	other threads:[~2016-11-24 17:35 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-22  9:25 [RFC PATCH 00/11] Allow NOMMU for MULTIPLATFORM Vladimir Murzin
2016-11-22  9:25 ` [RFC PATCH 01/11] ARM: NOMMU: define stubs for fixup Vladimir Murzin
2016-11-22  9:48   ` Russell King - ARM Linux
2016-11-22  9:54     ` Vladimir Murzin
2016-11-22  9:25 ` [RFC PATCH 02/11] ARM: ep93xx: select ARM_PATCH_PHYS_VIRT for MMU builds only Vladimir Murzin
2016-11-22  9:26 ` [RFC PATCH 03/11] ARM: omap: do not select HIGHMEM explicitly Vladimir Murzin
2016-11-22  9:51   ` Russell King - ARM Linux
2016-11-23 15:49     ` Tony Lindgren
2016-11-23 16:08       ` Vladimir Murzin
2016-11-22  9:26 ` [RFC PATCH 04/11] PCI: tegra: limit to MMU build only Vladimir Murzin
2016-11-22  9:31   ` Arnd Bergmann
2016-11-22  9:40     ` Vladimir Murzin
2016-11-22  9:54       ` Arnd Bergmann
2016-11-22  9:58         ` Vladimir Murzin
2016-11-22 11:26         ` Thierry Reding
2016-11-25 10:49           ` Vladimir Murzin
2016-11-22 16:15   ` Stephen Warren
2016-11-22 21:16     ` Arnd Bergmann
2016-11-22 22:27       ` Stephen Warren
2016-11-22 22:52         ` Arnd Bergmann
2016-11-22  9:26 ` [RFC PATCH 05/11] ARM: move arm_heavy_mb to MMU/noMMU neutral place Vladimir Murzin
2016-11-22  9:26 ` [RFC PATCH 06/11] ARM: tlbflush: drop dependency on CONFIG_SMP Vladimir Murzin
2016-11-22 10:03   ` Russell King - ARM Linux
2016-11-22 13:36     ` Vladimir Murzin
2016-11-24 17:41       ` Vladimir Murzin
2016-11-22  9:26 ` [RFC PATCH 07/11] ARM: sleep: allow it to be build for R-class Vladimir Murzin
2016-11-22  9:26 ` [RFC PATCH 08/11] ARM: NOMMU: define debug_ll_io_ini Vladimir Murzin
2016-11-22  9:26 ` [RFC PATCH 09/11] ARM: NOMMU: define SECTION_xxx macros Vladimir Murzin
2016-11-22 10:07   ` Russell King - ARM Linux
2016-11-22 11:50     ` Vladimir Murzin
2016-11-22 11:54       ` Russell King - ARM Linux
2016-11-22 17:03         ` Vladimir Murzin
2016-11-24 17:38           ` Vladimir Murzin
2016-11-22  9:26 ` [RFC PATCH 10/11] ARM: NOMMU: define __arm_ioremap_exec and pci_ioremap functions Vladimir Murzin
2016-11-22  9:26 ` [RFC PATCH 11/11] ARM: Allow ARCH_MULTIPLATFORM to be selected for NOMMU Vladimir Murzin
2016-11-22 10:17   ` Arnd Bergmann
2016-11-22 16:57     ` Vladimir Murzin
2016-11-23 15:48       ` Afzal Mohammed
2016-11-23 16:07         ` Vladimir Murzin
2016-11-24 17:28           ` Afzal Mohammed
2016-11-24 17:33             ` Vladimir Murzin
2016-11-24 18:09               ` Afzal Mohammed
2016-11-23 19:16         ` Russell King - ARM Linux
2016-11-24 17:25           ` Afzal Mohammed
2016-11-24 17:35             ` Russell King - ARM Linux [this message]
2016-11-24 18:07               ` Afzal Mohammed
2016-11-24 18:45                 ` Russell King - ARM Linux
2016-11-25 11:20                   ` Vladimir Murzin
2016-11-23 15:55       ` Tony Lindgren

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=20161124173532.GH14217@n2100.armlinux.org.uk \
    --to=linux@armlinux.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.