From: Anton Vorontsov <avorontsov@ru.mvista.com>
To: linuxppc-dev@ozlabs.org
Cc: Paul Mackerras <paulus@samba.org>
Subject: [PATCH 6/8] powerpc: set up OF properties for ppc32 kdump
Date: Fri, 1 Aug 2008 18:14:25 +0400 [thread overview]
Message-ID: <20080801141425.GF1161@polina.dev.rtsoft.ru> (raw)
In-Reply-To: <20080801141306.GA29127@polina.dev.rtsoft.ru>
From: Dale Farnsworth <dale@farnsworth.org>
Refactor the setting of kexec OF properties, moving the common code
from machine_kexec_64.c to machine_kexec.c where it can be used on
both ppc64 and ppc32. This will be needed for kdump to work on ppc32
platforms.
Signed-off-by: Dale Farnsworth <dale@farnsworth.org>
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
---
arch/powerpc/kernel/machine_kexec.c | 38 ++++++++++++++++++++++++++++
arch/powerpc/kernel/machine_kexec_64.c | 43 --------------------------------
2 files changed, 38 insertions(+), 43 deletions(-)
diff --git a/arch/powerpc/kernel/machine_kexec.c b/arch/powerpc/kernel/machine_kexec.c
index ac42cfb..bfef717 100644
--- a/arch/powerpc/kernel/machine_kexec.c
+++ b/arch/powerpc/kernel/machine_kexec.c
@@ -117,6 +117,7 @@ int overlaps_crashkernel(unsigned long start, unsigned long size)
/* Values we need to export to the second kernel via the device tree. */
static unsigned long kernel_end;
+static unsigned long crashk_size;
static struct property kernel_end_prop = {
.name = "linux,kernel-end",
@@ -124,6 +125,41 @@ static struct property kernel_end_prop = {
.value = &kernel_end,
};
+static struct property crashk_base_prop = {
+ .name = "linux,crashkernel-base",
+ .length = sizeof(unsigned long),
+ .value = &crashk_res.start,
+};
+
+static struct property crashk_size_prop = {
+ .name = "linux,crashkernel-size",
+ .length = sizeof(unsigned long),
+ .value = &crashk_size,
+};
+
+static void __init export_crashk_values(struct device_node *node)
+{
+ struct property *prop;
+
+ /* There might be existing crash kernel properties, but we can't
+ * be sure what's in them, so remove them. */
+ prop = of_find_property(node, "linux,crashkernel-base", NULL);
+ if (prop)
+ prom_remove_property(node, prop);
+
+ prop = of_find_property(node, "linux,crashkernel-size", NULL);
+ if (prop)
+ prom_remove_property(node, prop);
+
+ if (crashk_res.start != 0) {
+ prom_add_property(node, &crashk_base_prop);
+ crashk_size = crashk_res.end - crashk_res.start + 1;
+ prom_add_property(node, &crashk_size_prop);
+ }
+
+ of_node_put(node);
+}
+
static int __init kexec_setup(void)
{
struct device_node *node;
@@ -135,6 +171,8 @@ static int __init kexec_setup(void)
kernel_end = __pa(_end);
prom_add_property(node, &kernel_end_prop);
+ export_crashk_values(node);
+
of_node_put(node);
return 0;
}
diff --git a/arch/powerpc/kernel/machine_kexec_64.c b/arch/powerpc/kernel/machine_kexec_64.c
index c30678d..2aab296 100644
--- a/arch/powerpc/kernel/machine_kexec_64.c
+++ b/arch/powerpc/kernel/machine_kexec_64.c
@@ -322,52 +322,9 @@ static void __init export_htab_values(void)
of_node_put(node);
}
-static struct property crashk_base_prop = {
- .name = "linux,crashkernel-base",
- .length = sizeof(unsigned long),
- .value = &crashk_res.start,
-};
-
-static unsigned long crashk_size;
-
-static struct property crashk_size_prop = {
- .name = "linux,crashkernel-size",
- .length = sizeof(unsigned long),
- .value = &crashk_size,
-};
-
-static void __init export_crashk_values(void)
-{
- struct device_node *node;
- struct property *prop;
-
- node = of_find_node_by_path("/chosen");
- if (!node)
- return;
-
- /* There might be existing crash kernel properties, but we can't
- * be sure what's in them, so remove them. */
- prop = of_find_property(node, "linux,crashkernel-base", NULL);
- if (prop)
- prom_remove_property(node, prop);
-
- prop = of_find_property(node, "linux,crashkernel-size", NULL);
- if (prop)
- prom_remove_property(node, prop);
-
- if (crashk_res.start != 0) {
- prom_add_property(node, &crashk_base_prop);
- crashk_size = crashk_res.end - crashk_res.start + 1;
- prom_add_property(node, &crashk_size_prop);
- }
-
- of_node_put(node);
-}
-
static int __init kexec_setup(void)
{
export_htab_values();
- export_crashk_values();
return 0;
}
__initcall(kexec_setup);
--
1.5.5.4
next prev 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 ` Anton Vorontsov [this message]
2008-08-07 10:47 ` [PATCH 6/8] powerpc: set up OF properties for ppc32 kdump Michael Ellerman
2008-08-07 11:11 ` Anton Vorontsov
2008-08-01 14:14 ` [PATCH 7/8] powerpc: implement crash_setup_regs for ppc32 Anton Vorontsov
2008-08-07 10:32 ` 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=20080801141425.GF1161@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.