All of lore.kernel.org
 help / color / mirror / Atom feed
From: vladimir.murzin@arm.com (Vladimir Murzin)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH 11/11] ARM: Allow ARCH_MULTIPLATFORM to be selected for NOMMU
Date: Tue, 22 Nov 2016 16:57:31 +0000	[thread overview]
Message-ID: <583478FB.4020008@arm.com> (raw)
In-Reply-To: <16587553.f9R1mxJih5@wuerfel>

On 22/11/16 10:17, Arnd Bergmann wrote:
> On Tuesday, November 22, 2016 9:26:08 AM CET Vladimir Murzin wrote:
>> With this patch applied potentially any platform can be built in NOMMU
>> configurations if CONFIG_EXPERT is selected. However, there is no
>> guaranty that platform can successfully run such Image. So the main
>> motivation behind of this patch:
>> - bring build coverage for NOMMU configurations
>> - allow known working NOMMU platforms (like R-class) to be used
>> - pave a way to add support for single address space (aka 1:1 mapping)
>>   for MMU platforms, so they can be usable in NOMMU configurations
>>
>> Cc: Hartley Sweeten <hsweeten@visionengravers.com>
>> Cc: Ryan Mallon <rmallon@gmail.com>
>> Cc: Tony Lindgren <tony@atomide.com>
>> Cc: Thierry Reding <thierry.reding@gmail.com>
>> Cc: Russell King <linux@armlinux.org.uk>
>> Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
> 
> I'd have to give this a spin with my randconfig build setup, I'd
> rather not introduce build regressions. Have you tried an
> allmodconfig build with CONFIG_MMU disabled?

I used defconfigs and just got results for allmodconfig apart of complain on
isb instruction in arch/arm/kernel/head-nommu.S [1] there are several link
time errors [2].

> 
> Can you provide a git tree that I can try pulling in?
> 

Unfortunately, I can't provide you with git tree at the moment I'll try to
do something around this before proposing the next version.

> Another question is what architecture levels and what platforms
> we want to support without MMU. The only ARMv4/v5 platform we
> still have that can actually use NOMMU cores is Integrator
> with its ARM7TDMI, ARM920T and ARM966E core tiles (and possibly
> others I couldn't immediately find). Do we actually care about
> them any more now that all the NOMMU world is ARMv7-M? Are
> there any benefits in running an ARM920T or ARM926E core
> with MMU disabled, and does this work with your patches?
> 

I don't have such hardware, so I can't acctually test it - it is why "there is
no guaranty" :( OTOH, if sombody has these platforms these pathces is a good
start to try NOMMU.

> If not, we could limit it to ARMv7-A/R and possibly ARMv6.
> Depending on how the build tests go, a per-platform opt-in
> might be easier than having an opt-out for things that
> don't work.
> 
> 	Arnd
> 

[1]
  AS      arch/arm/kernel/head-nommu.o
arch/arm/kernel/head-nommu.S: Assembler messages:
arch/arm/kernel/head-nommu.S:223: Error: selected processor does not support ARM mode `isb'
arch/arm/kernel/head-nommu.S:231: Error: selected processor does not support ARM mode `isb'
arch/arm/kernel/head-nommu.S:235: Error: selected processor does not support ARM mode `isb'
arch/arm/kernel/head-nommu.S:244: Error: selected processor does not support ARM mode `isb'
arch/arm/kernel/head-nommu.S:248: Error: selected processor does not support ARM mode `isb'
arch/arm/kernel/head-nommu.S:258: Error: selected processor does not support ARM mode `isb'
arch/arm/kernel/head-nommu.S:265: Error: selected processor does not support ARM mode `isb'
make[1]: *** [arch/arm/kernel/head-nommu.o] Error 1

[2]
arch/arm/kernel/head-nommu.o: In function `secondary_startup':
(.text+0x1c): undefined reference to `__setup_mpu'
arch/arm/kernel/head-nommu.o: In function `stext':
(.head.text+0x30): undefined reference to `__setup_mpu'
arch/arm/kernel/built-in.o: In function `setup_arch':
arch/arm/kernel/smccc-call.o:(.init.text+0xa50): undefined reference to `erratum_a15_798181_init'
kernel/built-in.o: In function `kimage_free_entry':
memremap.c:(.text+0xd3d9c): undefined reference to `arch_phys_to_idmap_offset'
kernel/built-in.o: In function `kimage_alloc_page':
memremap.c:(.text+0xd4338): undefined reference to `arch_phys_to_idmap_offset'
kernel/built-in.o: In function `kimage_alloc_control_pages':
memremap.c:(.text+0xd4ac8): undefined reference to `arch_phys_to_idmap_offset'
kernel/built-in.o: In function `kimage_load_segment':
memremap.c:(.text+0xd4f40): undefined reference to `arch_phys_to_idmap_offset'
kernel/built-in.o: In function `crash_free_reserved_phys_range':
memremap.c:(.text+0xd50bc): undefined reference to `arch_phys_to_idmap_offset'
arch/arm/mach-mediatek/built-in.o: In function `__mtk_smp_prepare_cpus':
mediatek.c:(.init.text+0xe8): undefined reference to `secondary_startup_arm'
arch/arm/mach-qcom/built-in.o: In function `qcom_smp_prepare_cpus':
platsmp.c:(.init.text+0xe8): undefined reference to `secondary_startup_arm'
mm/built-in.o: In function `do_mmu_notifier_register':
usercopy.c:(.text+0x34d10): undefined reference to `mm_take_all_locks'
usercopy.c:(.text+0x34d9c): undefined reference to `mm_drop_all_locks'
usercopy.c:(.text+0x34de4): undefined reference to `mm_take_all_locks'
make: *** [vmlinux] Error 1

Cheers
Vladimir

  reply	other threads:[~2016-11-22 16:57 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 [this message]
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
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=583478FB.4020008@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 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.