From: Russell King - ARM Linux <linux@armlinux.org.uk>
To: Dave Young <dyoung@redhat.com>
Cc: linux-arm-kernel@lists.infradead.org,
Mark Rutland <mark.rutland@arm.com>,
devicetree@vger.kernel.org, Tony Luck <tony.luck@intel.com>,
linux-ia64@vger.kernel.org, linux-doc@vger.kernel.org,
Pawel Moll <pawel.moll@arm.com>, Jonathan Corbet <corbet@lwn.net>,
Ian Campbell <ijc+devicetree@hellion.org.uk>,
kexec@lists.infradead.org, Fenghua Yu <fenghua.yu@intel.com>,
Haren Myneni <hbabu@us.ibm.com>, Rob Herring <robh+dt@kernel.org>,
Eric Biederman <ebiederm@xmission.com>,
Santosh Shilimkar <ssantosh@kernel.org>,
Kumar Gala <galak@codeaurora.org>,
Vivek Goyal <vgoyal@redhat.com>
Subject: Re: [PATCH 00/12] Fixing TI Keystone2 kexec
Date: Wed, 11 May 2016 10:32:55 +0100 [thread overview]
Message-ID: <20160511093255.GO19428@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <20160511091338.GC10825@dhcp-128-65.nay.redhat.com>
On Wed, May 11, 2016 at 05:13:38PM +0800, Dave Young wrote:
> On 05/11/16 at 09:52am, Russell King - ARM Linux wrote:
> > I think you're confusing things. DT doesn't contain the boot alias
> > memory ranges - it's not a separate chunk of memory. It's an alias
> > of the same physical address space found higher in the physical
> > address range.
>
> Hmm, if we forget about kexec how does the 1st kernel get boot memory?
> not from DT?
Just like any other ARM system, it pulls itself up by its shoe laces.
The kernel assumes that it has been placed into RAM with at least 32KiB
of writable memory below it, which it uses for the initial page tables.
It "guesses" that the executing address, rounded down to I-forget-what-
boundary gives the base address of physical memory.
It sets the page table up using that assumption. The kernel gets going
with C code, and only _then_ parses the DTB.
If we then find that we're running on TI Keystone 2, part of the early
platform initialisation specifies to the ARM core code that the kernel
is to switch a high physical address space > 4GiB, and this provokes
a "dance" where we tear the MMU back down, run some more assembly code
to fix up the page tables, and re-initialise the MMU before returning
to the kernel C code, this time running in the high physical address
space. This break-modify-make is an architecture requirement. We
also record the physical address delta between the original physical
address space and the high physical address space so that we can reverse
the translation for code which needs identity mapping (eg, SMP bringup.)
The DTB only contains the high physical address space memory information,
and the kernel now parses the DTB, and sets the page tables up properly
for the running system.
> > If we put it in DT, then we need a way to also describe that it is an
> > alias of some other bit of physical memory.
>
> I may missed the background, I just want kexec to get infomation just like
> the normal kernel.
See above. What you're asking for isn't really possible.
--
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.
next prev parent reply other threads:[~2016-05-11 9:32 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-28 9:26 [PATCH 00/12] Fixing TI Keystone2 kexec Russell King - ARM Linux
2016-04-28 9:27 ` [PATCH 01/12] ARM: kexec: fix crashkernel= handling Russell King
[not found] ` <E1aviEe-0000if-VZ-eh5Bv4kxaXIANfyc6IWni62ZND6+EDdj@public.gmane.org>
2016-04-29 14:17 ` Pratyush Anand
2016-04-28 9:27 ` [PATCH 02/12] ARM: provide improved virt_to_idmap() functionality Russell King
2016-04-28 9:27 ` [PATCH 03/12] ARM: kexec: remove 512MB restriction on kexec crashdump Russell King
2016-04-29 14:19 ` Pratyush Anand
[not found] ` <CAHB_GuqOvRof94QdHztPy2B2kKuyKzQ-9uxXHY_g+i5WxsexZg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-04-29 18:10 ` Russell King - ARM Linux
2016-04-30 3:36 ` Pratyush Anand
2016-04-30 8:25 ` Russell King - ARM Linux
2016-04-28 9:28 ` [PATCH 04/12] ARM: provide arm_has_idmap_alias() helper Russell King
2016-04-29 14:21 ` Pratyush Anand
2016-04-28 9:28 ` [PATCH 05/12] ARM: kdump: advertise boot aliased crash kernel resource Russell King
2016-04-28 9:28 ` [PATCH 06/12] ARM: kexec: advertise location of bootable RAM Russell King
2016-04-29 14:56 ` Pratyush Anand
2016-04-29 18:00 ` Russell King - ARM Linux
2016-04-30 3:27 ` Pratyush Anand
2016-04-30 8:20 ` Russell King - ARM Linux
2016-05-02 7:34 ` Pratyush Anand
2016-05-02 10:10 ` Russell King - ARM Linux
2016-05-02 10:48 ` Pratyush Anand
[not found] ` <CAHB_GurHc1aVfzJATpNW5yf5s5KkF=t5s09FbWq3+9+ZX39KUg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-05-03 10:29 ` Russell King - ARM Linux
2016-04-28 9:28 ` [PATCH 07/12] ARM: keystone: dts: add psci command definition Russell King
2016-04-28 9:28 ` [PATCH 08/12] kexec: don't invoke OOM-killer for control page allocation Russell King
2016-04-29 14:57 ` Pratyush Anand
2016-04-28 9:28 ` [PATCH 09/12] kexec: ensure user memory sizes do not wrap Russell King
[not found] ` <E1aviFK-0000jY-1S-eh5Bv4kxaXIANfyc6IWni62ZND6+EDdj@public.gmane.org>
2016-04-29 14:57 ` Pratyush Anand
2016-04-28 9:28 ` [PATCH 10/12] kexec: arrange for paddr_vmcoreinfo_note() to return phys_addr_t Russell King
2016-04-29 15:06 ` Pratyush Anand
2016-04-29 15:16 ` Mark Rutland
2016-04-29 15:47 ` Pratyush Anand
2016-05-03 4:24 ` Baoquan He
2016-05-03 5:53 ` Pratyush Anand
2016-05-03 9:01 ` Baoquan He
[not found] ` <20160503042441.GA2518-ejN7fcUYdH/by3iVrkZq2A@public.gmane.org>
2016-05-03 10:12 ` Russell King - ARM Linux
2016-05-03 12:56 ` Baoquan He
2016-04-29 18:06 ` Russell King - ARM Linux
2016-04-30 3:30 ` Pratyush Anand
2016-04-28 9:28 ` [PATCH 11/12] kexec: allow architectures to override boot mapping Russell King
2016-04-29 15:14 ` Pratyush Anand
2016-04-29 18:08 ` Russell King - ARM Linux
2016-05-11 18:56 ` Russell King - ARM Linux
2016-05-12 6:26 ` Baoquan He
2016-05-12 8:22 ` Russell King - ARM Linux
2016-04-28 9:28 ` [PATCH 12/12] ARM: kexec: fix kexec for Keystone 2 Russell King
2016-04-28 23:04 ` [PATCH 00/12] Fixing TI Keystone2 kexec Simon Horman
2016-05-11 8:29 ` Dave Young
2016-05-11 8:52 ` Russell King - ARM Linux
2016-05-11 9:13 ` Dave Young
2016-05-11 9:32 ` Russell King - ARM Linux [this message]
[not found] ` <20160511093255.GO19428-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2016-05-11 10:31 ` Dave Young
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=20160511093255.GO19428@n2100.arm.linux.org.uk \
--to=linux@armlinux.org.uk \
--cc=corbet@lwn.net \
--cc=devicetree@vger.kernel.org \
--cc=dyoung@redhat.com \
--cc=ebiederm@xmission.com \
--cc=fenghua.yu@intel.com \
--cc=galak@codeaurora.org \
--cc=hbabu@us.ibm.com \
--cc=ijc+devicetree@hellion.org.uk \
--cc=kexec@lists.infradead.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-ia64@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=pawel.moll@arm.com \
--cc=robh+dt@kernel.org \
--cc=ssantosh@kernel.org \
--cc=tony.luck@intel.com \
--cc=vgoyal@redhat.com \
/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).