linux-sh.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Russell King - ARM Linux <linux@arm.linux.org.uk>
To: linux-arm-kernel@lists.infradead.org
Subject: Re: XIP_KERNEL and !ARCH_MULTIPLATFORM
Date: Sun, 22 Mar 2015 16:57:11 +0000	[thread overview]
Message-ID: <20150322165710.GO8656@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <HK2PR06MB05611E6828E494FB938179658A0F0@HK2PR06MB0561.apcprd06.prod.outlook.com>

On Sat, Mar 21, 2015 at 03:39:30PM +0000, Chris Brandt wrote:
> > At first glance, HIGHMEM shouldn't be affected by XIP_KERNEL at all.
> 
> I really didn't find the root cause of this. I just remember looking at the crashed log and it seemed like removing HIGHMEM would fix it....and it did (can't remember the details).
> 
> > However, SMP_ON_UP is incompatible with XIP_KERNEL (as already listed in its dependencies) and building with SMP=y without SMP_ON_UP, and trying to run on UP hardware will definitely fail.
> 
> So, it sounds like you are saying XIP_KERNEL and SMP is not going to happen.

XIP_KERNEL=y and SMP=y can happen if the CPU you're booting on has the SMP
extensions.  In other words, it's a single CPU which was implemented with
the SMP extensions enabled, or it's part of a SMP set.

So, allowing both XIP_KERNEL=y and SMP=y is quite correct: however, folk
need to understand that the SMP option _must_ match the hardware they're
booting on.

> However, you said:
> > To put that another way:
> > 1. SMP_ON_UP relies on being able to change the kernel text, which it
> >    can't do with an XIP kernel.
> 
> But, what kernel text are we talking about? All of it, or just certain
> parts?

I'm afraid quite a lot of it.  If you consider that the SMP alternatives
table is 0x5ee0 bytes long for my iMX6 kernel, and that each entry is
8 bytes, that's 3036 locations throughout the kernel text which need to
be fixed up for a SMP_ON_UP kernel.  They start at 0xc0012460, and
continue up to 0xc09ef31c.  That covers much of the kernel .text and
the .text.init sections.

In an XIP kernel, the .text locations will most likely be in read-only
memory, and so can't be fixed up.

> You are correct...maybe my wording was confusing. This is what I meant:
> 
> config ARCH_MULTIPLATFORM
> 	bool "Allow multiple platforms to be selected"
> 	depends on MMU
> 	select ARCH_WANT_OPTIONAL_GPIOLIB
> 	select ARM_HAS_SG_CHAIN
> -	select ARM_PATCH_PHYS_VIRT
> +	select ARM_PATCH_PHYS_VIRT if !XIP_KERNEL

Yes, that makes sense if we agree that we want to have multi-platform
XIP kernels.

The problem is going to be expressing what a set of valid configurations
are - soo many of them just won't boot.  For example, if any of the
multiplatforms select SMP, but you want a non-SMP XIP kernel, you have
to devine which platforms are forcibly selecting SMP and turn them off.
In some of the kernel configurators, that's almost impossible to find
out.

I guess the other problem is going to be that people will want to add a
set of reasonable defaults for CONFIG_PHYS_OFFSET based upon the
platform selected - and we know that we have problems with that kind of
thing when it comes to the DEBUG_LL stuff interacting with a multiplatform
kernel.

-- 
FTTC broadband for 0.8mile line: currently at 10.5Mbps down 400kbps up
according to speedtest.net.

  reply	other threads:[~2015-03-22 16:57 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-17  3:48 XIP_KERNEL and !ARCH_MULTIPLATFORM Chris Brandt
2015-03-17 10:26 ` Russell King - ARM Linux
2015-03-17 13:29   ` Chris Brandt
2015-03-17 10:50 ` Geert Uytterhoeven
2015-03-17 13:46   ` Chris Brandt
2015-03-17 13:57     ` Geert Uytterhoeven
2015-03-17 16:08       ` Chris Brandt
2015-03-17 16:20         ` Geert Uytterhoeven
2015-03-17 16:28           ` Russell King - ARM Linux
2015-03-17 16:37             ` Chris Brandt
2015-03-17 16:34           ` Chris Brandt
2015-03-19 20:57           ` Chris Brandt
2015-03-20  8:19             ` Uwe Kleine-König
2015-03-20 20:18               ` Chris Brandt
2015-03-22  9:13                 ` Uwe Kleine-König
2015-03-20 22:23             ` Russell King - ARM Linux
2015-03-21 15:39               ` Chris Brandt
2015-03-22 16:57                 ` Russell King - ARM Linux [this message]
2015-03-22 19:48                   ` Arnd Bergmann
2015-03-23  1:41                     ` Chris Brandt
2015-03-23  1:24                   ` Chris Brandt
2015-03-23  5:54                     ` Arnd Bergmann
2015-03-23 13:54                       ` Chris Brandt
2015-03-22 19:40                 ` Arnd Bergmann
2015-03-23  1:37                 ` Geert Uytterhoeven
2015-03-23  1:49                   ` Chris Brandt
2015-03-17 16:36 ` Uwe Kleine-König
2015-04-05 16:02 ` Russell King - ARM Linux
2015-04-07  3:31   ` Chris Brandt

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=20150322165710.GO8656@n2100.arm.linux.org.uk \
    --to=linux@arm.linux.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 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).