From: jgunthorpe@obsidianresearch.com (Jason Gunthorpe)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] [ARM] Feroceon: fix kexec by setting outer_cache.inv_all
Date: Mon, 25 Mar 2013 12:13:46 -0600 [thread overview]
Message-ID: <20130325181346.GA28029@obsidianresearch.com> (raw)
In-Reply-To: <51508E17.6010701@grapecom.com>
On Mon, Mar 25, 2013 at 07:49:11PM +0200, Elijah Ragozin wrote:
> So there is no actually disable and invalidation cache after the old
> kernel finished and the new one is not started yet, we're not safe
> to relocate and decompress the kernel.
Upon closer inspection I found the spec passage that the L2 becomes
non-coherent with the CPU once the L1 D cache is turned off.
So, the L2 has to be invalidated after the L1 D cache is turned off,
or before the L1 D cache is turned on..
Looks likes 'cpu_proc_fin' turns off the both L1 caches, so the
invalidate is properly after.
This looks right to me then.
You might want to add some additional info to the the commit message
along the lines of:
On Feroceon the L2 cache becomes non-coherent with the CPU when the
L1 caches are disabled. Thus the L2 needs to be invalidated after
both L1 caches are disabled.
.. text about kexec being the motivation ..
> If in your case everything is working could you please send for me
> .config and your kernel version, probably I also miss smth.
Upon deeper reflection, in my case the L2 is re-initialized by a boot
stub we use on the kexec path...
Also, I will warn you that I could not figure out how to get Linux to
shut off the DMA's in things like the ethernet, so kexec is very flaky
on these systems.
Jason
next prev parent reply other threads:[~2013-03-25 18:13 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-23 20:15 [PATCH] [ARM] Feroceon: fix kexec by setting outer_cache.inv_all Elijah Ragozin
2013-03-25 17:21 ` Jason Gunthorpe
2013-03-25 17:49 ` Elijah Ragozin
2013-03-25 18:13 ` Jason Gunthorpe [this message]
2013-03-25 18:43 ` Elijah Ragozin
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=20130325181346.GA28029@obsidianresearch.com \
--to=jgunthorpe@obsidianresearch.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).