All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anton Vorontsov <avorontsov@ru.mvista.com>
To: linuxppc-dev@ozlabs.org
Cc: Paul Mackerras <paulus@samba.org>
Subject: [PATCH 7/8] powerpc: implement crash_setup_regs for ppc32
Date: Fri, 1 Aug 2008 18:14:27 +0400	[thread overview]
Message-ID: <20080801141427.GG1161@polina.dev.rtsoft.ru> (raw)
In-Reply-To: <20080801141306.GA29127@polina.dev.rtsoft.ru>

From: Dale Farnsworth <dale@farnsworth.org>

Signed-off-by: Dale Farnsworth <dale@farnsworth.org>
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
---
 include/asm-powerpc/kexec.h |   60 ++++++++++++++++++++++++++++++++++++------
 1 files changed, 51 insertions(+), 9 deletions(-)

diff --git a/include/asm-powerpc/kexec.h b/include/asm-powerpc/kexec.h
index acdcdc6..9ecc307 100644
--- a/include/asm-powerpc/kexec.h
+++ b/include/asm-powerpc/kexec.h
@@ -38,7 +38,6 @@ typedef void (*crash_shutdown_t)(void);
 
 #ifdef CONFIG_KEXEC
 
-#ifdef __powerpc64__
 /*
  * This function is responsible for capturing register states if coming
  * via panic or invoking dump using sysrq-trigger.
@@ -51,6 +50,7 @@ static inline void crash_setup_regs(struct pt_regs *newregs,
 	else {
 		/* FIXME Merge this with xmon_save_regs ?? */
 		unsigned long tmp1, tmp2;
+#ifdef __powerpc64__
 		__asm__ __volatile__ (
 			"std    0,0(%2)\n"
 			"std    1,8(%2)\n"
@@ -99,16 +99,58 @@ static inline void crash_setup_regs(struct pt_regs *newregs,
 			: "=&r" (tmp1), "=&r" (tmp2)
 			: "b" (newregs)
 			: "memory");
+#else /* __powerpc64__ */
+		__asm__ __volatile__ (
+			"stw    0,0(%2)\n"
+			"stw    1,4(%2)\n"
+			"stw    2,8(%2)\n"
+			"stw    3,12(%2)\n"
+			"stw    4,16(%2)\n"
+			"stw    5,20(%2)\n"
+			"stw    6,24(%2)\n"
+			"stw    7,28(%2)\n"
+			"stw    8,32(%2)\n"
+			"stw    9,36(%2)\n"
+			"stw    10,40(%2)\n"
+			"stw    11,44(%2)\n"
+			"stw    12,48(%2)\n"
+			"stw    13,52(%2)\n"
+			"stw    14,56(%2)\n"
+			"stw    15,60(%2)\n"
+			"stw    16,64(%2)\n"
+			"stw    17,68(%2)\n"
+			"stw    18,72(%2)\n"
+			"stw    19,76(%2)\n"
+			"stw    20,80(%2)\n"
+			"stw    21,84(%2)\n"
+			"stw    22,88(%2)\n"
+			"stw    23,92(%2)\n"
+			"stw    24,96(%2)\n"
+			"stw    25,100(%2)\n"
+			"stw    26,104(%2)\n"
+			"stw    27,108(%2)\n"
+			"stw    28,112(%2)\n"
+			"stw    29,116(%2)\n"
+			"stw    30,120(%2)\n"
+			"stw    31,124(%2)\n"
+			"mfmsr  %0\n"
+			"stw    %0,132(%2)\n"
+			"mfctr  %0\n"
+			"stw    %0,140(%2)\n"
+			"mflr   %0\n"
+			"stw    %0,144(%2)\n"
+			"bl     1f\n"
+		"1:     mflr   %1\n"
+			"stw    %1,128(%2)\n"
+			"mtlr   %0\n"
+			"mfxer  %0\n"
+			"stw    %0,148(%2)\n"
+			: "=&r" (tmp1), "=&r" (tmp2)
+			: "b" (newregs)
+			: "memory");
+#endif /* __powerpc64 __ */
 	}
 }
-#else
-/*
- * Provide a dummy definition to avoid build failures. Will remain
- * empty till crash dump support is enabled.
- */
-static inline void crash_setup_regs(struct pt_regs *newregs,
-					struct pt_regs *oldregs) { }
-#endif /* !__powerpc64 __ */
 
 extern void kexec_smp_wait(void);	/* get and clear naca physid, wait for
 					  master to copy new code to 0 */
-- 
1.5.5.4

  parent reply	other threads:[~2008-08-01 14:14 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-01 14:13 [RFC][PATCH 0/8] kexec/kdump support for ppc32 Anton Vorontsov
2008-08-01 14:14 ` [PATCH 1/8] powerpc: set up OF properties for ppc32 kexec Anton Vorontsov
2008-08-07 10:44   ` Michael Ellerman
2008-08-01 14:14 ` [PATCH 2/8] powerpc: make default kexec/crash_kernel ops implicit Anton Vorontsov
2008-08-01 14:14 ` [PATCH 3/8] powerpc: remove default kexec/crash_kernel ops assignments Anton Vorontsov
2008-08-01 14:14 ` [PATCH 4/8] powerpc: add the ability for a classic ppc kernel to be loaded at 32M Anton Vorontsov
2008-08-01 18:49   ` Scott Wood
2008-08-01 20:38     ` Anton Vorontsov
2008-08-20  4:57       ` Paul Mackerras
2008-08-01 14:14 ` [PATCH 5/8] powerpc: allow to ioremap RAM addresses for kdump kernel on ppc32 Anton Vorontsov
2008-08-01 14:14 ` [PATCH 6/8] powerpc: set up OF properties for ppc32 kdump Anton Vorontsov
2008-08-07 10:47   ` Michael Ellerman
2008-08-07 11:11     ` Anton Vorontsov
2008-08-01 14:14 ` Anton Vorontsov [this message]
2008-08-07 10:32   ` [PATCH 7/8] powerpc: implement crash_setup_regs for ppc32 Michael Ellerman
2008-08-01 14:14 ` [PATCH 8/8] powerpc: last bits to support kdump on ppc32 Anton Vorontsov
2008-08-03 14:40   ` Michael Ellerman
2008-08-01 14:21 ` [RFC][PATCH 0/8] kexec/kdump support for ppc32 Kumar Gala
2008-08-01 14:46   ` Anton Vorontsov

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=20080801141427.GG1161@polina.dev.rtsoft.ru \
    --to=avorontsov@ru.mvista.com \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=paulus@samba.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.