All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tony Lindgren <tony@atomide.com>
To: linux-arm-kernel@lists.infradead.org
Cc: linux-omap@vger.kernel.org
Subject: [PATCH 2/5] arm: Fix cpu_proc_fin() for proc-v7.S and make kexec work
Date: Fri, 18 Dec 2009 19:46:06 -0800	[thread overview]
Message-ID: <20091219034606.26198.9336.stgit@localhost> (raw)
In-Reply-To: <20091219034151.26198.26570.stgit@localhost>

The comments in arm_machine_restart() suggest that cpu_proc_fin()
will clean and disable cache and turn off interrupts. This does
not seem to be implemented for proc-v7.S, implement it the same
way as for proc-v6.S.

This also makes kexec work for v7. Note that a related TLB and
branch traget flush patch is also needed to avoid kexec
"crc error".

Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 arch/arm/mm/proc-v7.S |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S
index 3a28521..d2a8074 100644
--- a/arch/arm/mm/proc-v7.S
+++ b/arch/arm/mm/proc-v7.S
@@ -45,7 +45,14 @@ ENTRY(cpu_v7_proc_init)
 ENDPROC(cpu_v7_proc_init)
 
 ENTRY(cpu_v7_proc_fin)
-	mov	pc, lr
+	stmfd	sp!, {lr}
+	cpsid	if				@ disable interrupts
+	bl	v7_flush_kern_cache_all
+	mrc	p15, 0, r0, c1, c0, 0		@ ctrl register
+	bic	r0, r0, #0x1000			@ ...i............
+	bic	r0, r0, #0x0006			@ .............ca.
+	mcr	p15, 0, r0, c1, c0, 0		@ disable caches
+	ldmfd	sp!, {pc}
 ENDPROC(cpu_v7_proc_fin)
 
 /*


WARNING: multiple messages have this Message-ID (diff)
From: tony@atomide.com (Tony Lindgren)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/5] arm: Fix cpu_proc_fin() for proc-v7.S and make kexec work
Date: Fri, 18 Dec 2009 19:46:06 -0800	[thread overview]
Message-ID: <20091219034606.26198.9336.stgit@localhost> (raw)
In-Reply-To: <20091219034151.26198.26570.stgit@localhost>

The comments in arm_machine_restart() suggest that cpu_proc_fin()
will clean and disable cache and turn off interrupts. This does
not seem to be implemented for proc-v7.S, implement it the same
way as for proc-v6.S.

This also makes kexec work for v7. Note that a related TLB and
branch traget flush patch is also needed to avoid kexec
"crc error".

Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 arch/arm/mm/proc-v7.S |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S
index 3a28521..d2a8074 100644
--- a/arch/arm/mm/proc-v7.S
+++ b/arch/arm/mm/proc-v7.S
@@ -45,7 +45,14 @@ ENTRY(cpu_v7_proc_init)
 ENDPROC(cpu_v7_proc_init)
 
 ENTRY(cpu_v7_proc_fin)
-	mov	pc, lr
+	stmfd	sp!, {lr}
+	cpsid	if				@ disable interrupts
+	bl	v7_flush_kern_cache_all
+	mrc	p15, 0, r0, c1, c0, 0		@ ctrl register
+	bic	r0, r0, #0x1000			@ ...i............
+	bic	r0, r0, #0x0006			@ .............ca.
+	mcr	p15, 0, r0, c1, c0, 0		@ disable caches
+	ldmfd	sp!, {pc}
 ENDPROC(cpu_v7_proc_fin)
 
 /*

  parent reply	other threads:[~2009-12-19  3:46 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-19  3:45 [PATCH 0/5] V7/Cortex/omap34xx fixes for 2.6.33-rc1: DCC, kexec, atags Tony Lindgren
2009-12-19  3:45 ` Tony Lindgren
2009-12-19  3:45 ` [PATCH 1/5] arm: Fix DCC console for v7 Tony Lindgren
2009-12-19  3:45   ` Tony Lindgren
2009-12-19  3:46 ` Tony Lindgren [this message]
2009-12-19  3:46   ` [PATCH 2/5] arm: Fix cpu_proc_fin() for proc-v7.S and make kexec work Tony Lindgren
2009-12-19  3:46 ` [PATCH 3/5] arm: Flush TLB entries in setup_mm_for_reboot() Tony Lindgren
2009-12-19  3:46   ` Tony Lindgren
2009-12-19  9:06   ` Russell King - ARM Linux
2009-12-19  9:06     ` Russell King - ARM Linux
2009-12-19 17:54     ` Tony Lindgren
2009-12-19 17:54       ` Tony Lindgren
2009-12-19 18:10       ` Tony Lindgren
2009-12-19 18:10         ` Tony Lindgren
2009-12-19  3:46 ` [PATCH 4/5] arm: Fix init_atags_procfs() to check tag->hdr.size Tony Lindgren
2009-12-19  3:46   ` Tony Lindgren
2009-12-19  9:03   ` Russell King - ARM Linux
2009-12-19  9:03     ` Russell King - ARM Linux
2009-12-19 17:44     ` Tony Lindgren
2009-12-19 17:44       ` Tony Lindgren
2009-12-19 18:44       ` Tony Lindgren
2009-12-19 18:44         ` Tony Lindgren
2009-12-19  3:46 ` [PATCH 5/5] arm: Fix typo in cacheflush.h and remove unnecessary comments Tony Lindgren
2009-12-19  3:46   ` Tony Lindgren
2009-12-19  5:07 ` [PATCH 0/5] V7/Cortex/omap34xx fixes for 2.6.33-rc1: DCC, kexec, atags Tony Lindgren
2009-12-19  5:07   ` Tony Lindgren
2009-12-28  5:55 ` Magnus Damm
2009-12-28  5:55   ` Magnus Damm
2009-12-29 22:07   ` Tony Lindgren
2009-12-29 22:07     ` Tony Lindgren
2010-01-05  9:24     ` Magnus Damm
2010-01-05  9:24       ` Magnus Damm
2010-01-05 11:36     ` Mika Westerberg
2010-01-05 11:36       ` Mika Westerberg
2010-01-05 17:14       ` Tony Lindgren
2010-01-05 17:14         ` Tony Lindgren
2010-01-05 17:54     ` Paul Walmsley
2010-01-05 17:54       ` Paul Walmsley
2010-01-05 20:43       ` Tony Lindgren
2010-01-05 20:43         ` Tony Lindgren
2010-01-08 22:32       ` Woodruff, Richard
2010-01-08 22:32         ` Woodruff, Richard

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=20091219034606.26198.9336.stgit@localhost \
    --to=tony@atomide.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-omap@vger.kernel.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.