From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
To: Suzuki Poulose <suzuki@in.ibm.com>
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>,
"kexec@lists.infradead.org" <kexec@lists.infradead.org>,
lkml <linux-kernel@vger.kernel.org>,
Simon Horman <horms@verge.net.au>,
Josh Boyer <jwboyer@linux.vnet.ibm.com>,
linux ppc dev <linuxppc-dev@lists.ozlabs.org>,
Vivek Goyal <vgoyal@redhat.com>
Subject: Re: [RFC][PATCH] powerpc: Use the #address-cells information to parse memory/reg
Date: Mon, 06 Jun 2011 10:51:26 +0200 [thread overview]
Message-ID: <4DEC950E.1020105@linutronix.de> (raw)
In-Reply-To: <4DEC7F49.8060000@in.ibm.com>
Suzuki Poulose wrote:
> Could you please let me know your thoughts/comments about this patch ?
I'm mostly fine with it.
Maaxim copied fs2dt.c from ppc64 to ppc. So I guess ppc64 has the same
problem. ARM and MIPS is soon having DT support and kexec is probably also
on their list so I would hate to see them to either copy the DT parsing
file or having their own implementation.
Maybe we should try to use libfdt for dt parsing. It has /proc import
support so it should be fine for our needs. It is already in tree and used
by ppc32 if a basic dtb is specified. I'm not sure if the /proc interface
is part of dtc or libfdt.
I'm not saying this has to be done now but maybe later before ARM and/or
MIPS comes along needs something similar for their needs. If the libfdt is
too complex for sucking in the dtb from /proc then maybe something else
that generic and can be shared between booth ppc architectures and the
other ones.
> Thanks
> Suzuki
>
>>
>> Index: kexec-tools-2.0.4/kexec/arch/ppc/kexec-ppc.c
>> ===================================================================
>> --- kexec-tools-2.0.4.orig/kexec/arch/ppc/kexec-ppc.c
>> +++ kexec-tools-2.0.4/kexec/arch/ppc/kexec-ppc.c
>> @@ -34,6 +35,92 @@ unsigned int rtas_base, rtas_size;
>> int max_memory_ranges;
>> const char *ramdisk;
>>
>> +/*
>> + * Reads the #address-cells and #size-cells on this platform.
>> + * This is used to parse the memory/reg info from the device-tree
>> + */
>> +int init_memory_region_info()
>> +{
>> + size_t res = 0;
>> + FILE *fp;
>> + char *file;
>> +
>> + file = "/proc/device-tree/#address-cells";
>> + fp = fopen(file, "r");
>> + if (!fp) {
>> + fprintf(stderr,"Unable to open %s\n", file);
>> + return -1;
>> + }
>> +
>> + res = fread(&dt_address_cells,sizeof(unsigned long),1,fp);
>> + if (res != 1) {
>> + fprintf(stderr,"Error reading %s\n", file);
>> + return -1;
>> + }
>> + fclose(fp);
>> + dt_address_cells *= sizeof(unsigned long);
This should be sizeof(unsigned int). I know we on 32bit.
>> + file = "/proc/device-tree/#size-cells";
>> + fp = fopen(file, "r");
>> + if (!fp) {
>> + fprintf(stderr,"Unable to open %s\n", file);
>> + return -1;
>> + }
>> +
>> + res = fread(&dt_size_cells,sizeof(unsigned long),1,fp);
>> + if (res != 1) {
>> + fprintf(stderr,"Error reading %s\n", file);
>> + return -1;
>> + }
>> + fclose(fp);
>> + dt_size_cells *= sizeof(unsigned long);
same here.
>> +
>> + return 0;
>> +}
>> +
Sebastian
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
WARNING: multiple messages have this Message-ID (diff)
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
To: Suzuki Poulose <suzuki@in.ibm.com>
Cc: "kexec@lists.infradead.org" <kexec@lists.infradead.org>,
lkml <linux-kernel@vger.kernel.org>,
Simon Horman <horms@verge.net.au>,
linux ppc dev <linuxppc-dev@lists.ozlabs.org>,
Vivek Goyal <vgoyal@redhat.com>
Subject: Re: [RFC][PATCH] powerpc: Use the #address-cells information to parse memory/reg
Date: Mon, 06 Jun 2011 10:51:26 +0200 [thread overview]
Message-ID: <4DEC950E.1020105@linutronix.de> (raw)
In-Reply-To: <4DEC7F49.8060000@in.ibm.com>
Suzuki Poulose wrote:
> Could you please let me know your thoughts/comments about this patch ?
I'm mostly fine with it.
Maaxim copied fs2dt.c from ppc64 to ppc. So I guess ppc64 has the same
problem. ARM and MIPS is soon having DT support and kexec is probably also
on their list so I would hate to see them to either copy the DT parsing
file or having their own implementation.
Maybe we should try to use libfdt for dt parsing. It has /proc import
support so it should be fine for our needs. It is already in tree and used
by ppc32 if a basic dtb is specified. I'm not sure if the /proc interface
is part of dtc or libfdt.
I'm not saying this has to be done now but maybe later before ARM and/or
MIPS comes along needs something similar for their needs. If the libfdt is
too complex for sucking in the dtb from /proc then maybe something else
that generic and can be shared between booth ppc architectures and the
other ones.
> Thanks
> Suzuki
>
>>
>> Index: kexec-tools-2.0.4/kexec/arch/ppc/kexec-ppc.c
>> ===================================================================
>> --- kexec-tools-2.0.4.orig/kexec/arch/ppc/kexec-ppc.c
>> +++ kexec-tools-2.0.4/kexec/arch/ppc/kexec-ppc.c
>> @@ -34,6 +35,92 @@ unsigned int rtas_base, rtas_size;
>> int max_memory_ranges;
>> const char *ramdisk;
>>
>> +/*
>> + * Reads the #address-cells and #size-cells on this platform.
>> + * This is used to parse the memory/reg info from the device-tree
>> + */
>> +int init_memory_region_info()
>> +{
>> + size_t res = 0;
>> + FILE *fp;
>> + char *file;
>> +
>> + file = "/proc/device-tree/#address-cells";
>> + fp = fopen(file, "r");
>> + if (!fp) {
>> + fprintf(stderr,"Unable to open %s\n", file);
>> + return -1;
>> + }
>> +
>> + res = fread(&dt_address_cells,sizeof(unsigned long),1,fp);
>> + if (res != 1) {
>> + fprintf(stderr,"Error reading %s\n", file);
>> + return -1;
>> + }
>> + fclose(fp);
>> + dt_address_cells *= sizeof(unsigned long);
This should be sizeof(unsigned int). I know we on 32bit.
>> + file = "/proc/device-tree/#size-cells";
>> + fp = fopen(file, "r");
>> + if (!fp) {
>> + fprintf(stderr,"Unable to open %s\n", file);
>> + return -1;
>> + }
>> +
>> + res = fread(&dt_size_cells,sizeof(unsigned long),1,fp);
>> + if (res != 1) {
>> + fprintf(stderr,"Error reading %s\n", file);
>> + return -1;
>> + }
>> + fclose(fp);
>> + dt_size_cells *= sizeof(unsigned long);
same here.
>> +
>> + return 0;
>> +}
>> +
Sebastian
WARNING: multiple messages have this Message-ID (diff)
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
To: Suzuki Poulose <suzuki@in.ibm.com>
Cc: Simon Horman <horms@verge.net.au>,
"kexec@lists.infradead.org" <kexec@lists.infradead.org>,
Ananth N Mavinakayanahalli <ananth@in.ibm.com>,
lkml <linux-kernel@vger.kernel.org>,
Josh Boyer <jwboyer@linux.vnet.ibm.com>,
linux ppc dev <linuxppc-dev@lists.ozlabs.org>,
Vivek Goyal <vgoyal@redhat.com>
Subject: Re: [RFC][PATCH] powerpc: Use the #address-cells information to parse memory/reg
Date: Mon, 06 Jun 2011 10:51:26 +0200 [thread overview]
Message-ID: <4DEC950E.1020105@linutronix.de> (raw)
In-Reply-To: <4DEC7F49.8060000@in.ibm.com>
Suzuki Poulose wrote:
> Could you please let me know your thoughts/comments about this patch ?
I'm mostly fine with it.
Maaxim copied fs2dt.c from ppc64 to ppc. So I guess ppc64 has the same
problem. ARM and MIPS is soon having DT support and kexec is probably also
on their list so I would hate to see them to either copy the DT parsing
file or having their own implementation.
Maybe we should try to use libfdt for dt parsing. It has /proc import
support so it should be fine for our needs. It is already in tree and used
by ppc32 if a basic dtb is specified. I'm not sure if the /proc interface
is part of dtc or libfdt.
I'm not saying this has to be done now but maybe later before ARM and/or
MIPS comes along needs something similar for their needs. If the libfdt is
too complex for sucking in the dtb from /proc then maybe something else
that generic and can be shared between booth ppc architectures and the
other ones.
> Thanks
> Suzuki
>
>>
>> Index: kexec-tools-2.0.4/kexec/arch/ppc/kexec-ppc.c
>> ===================================================================
>> --- kexec-tools-2.0.4.orig/kexec/arch/ppc/kexec-ppc.c
>> +++ kexec-tools-2.0.4/kexec/arch/ppc/kexec-ppc.c
>> @@ -34,6 +35,92 @@ unsigned int rtas_base, rtas_size;
>> int max_memory_ranges;
>> const char *ramdisk;
>>
>> +/*
>> + * Reads the #address-cells and #size-cells on this platform.
>> + * This is used to parse the memory/reg info from the device-tree
>> + */
>> +int init_memory_region_info()
>> +{
>> + size_t res = 0;
>> + FILE *fp;
>> + char *file;
>> +
>> + file = "/proc/device-tree/#address-cells";
>> + fp = fopen(file, "r");
>> + if (!fp) {
>> + fprintf(stderr,"Unable to open %s\n", file);
>> + return -1;
>> + }
>> +
>> + res = fread(&dt_address_cells,sizeof(unsigned long),1,fp);
>> + if (res != 1) {
>> + fprintf(stderr,"Error reading %s\n", file);
>> + return -1;
>> + }
>> + fclose(fp);
>> + dt_address_cells *= sizeof(unsigned long);
This should be sizeof(unsigned int). I know we on 32bit.
>> + file = "/proc/device-tree/#size-cells";
>> + fp = fopen(file, "r");
>> + if (!fp) {
>> + fprintf(stderr,"Unable to open %s\n", file);
>> + return -1;
>> + }
>> +
>> + res = fread(&dt_size_cells,sizeof(unsigned long),1,fp);
>> + if (res != 1) {
>> + fprintf(stderr,"Error reading %s\n", file);
>> + return -1;
>> + }
>> + fclose(fp);
>> + dt_size_cells *= sizeof(unsigned long);
same here.
>> +
>> + return 0;
>> +}
>> +
Sebastian
next prev parent reply other threads:[~2011-06-06 8:51 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <4DC923C4.6080707@in.ibm.com>
[not found] ` <4DC92784.2040001@in.ibm.com>
[not found] ` <20110510134152.GB18537@in.ibm.com>
[not found] ` <4DCA285D.2080006@in.ibm.com>
2011-05-30 6:30 ` [RFC][PATCH] powerpc: Use the #address-cells information to parse memory/reg Suzuki Poulose
2011-05-30 6:30 ` Suzuki Poulose
2011-05-30 6:30 ` Suzuki Poulose
2011-06-06 7:18 ` Suzuki Poulose
2011-06-06 7:18 ` Suzuki Poulose
2011-06-06 7:18 ` Suzuki Poulose
2011-06-06 8:51 ` Sebastian Andrzej Siewior [this message]
2011-06-06 8:51 ` Sebastian Andrzej Siewior
2011-06-06 8:51 ` Sebastian Andrzej Siewior
2011-06-06 11:02 ` Suzuki Poulose
2011-06-06 11:02 ` Suzuki Poulose
2011-06-06 11:02 ` Suzuki Poulose
2011-06-06 9:00 ` [RFC][PATCH] powerpc: Use the #address-cells information to parsememory/reg David Laight
2011-06-06 9:00 ` David Laight
2011-06-06 9:00 ` David Laight
2011-06-06 11:29 ` Suzuki Poulose
2011-06-06 11:29 ` Suzuki Poulose
2011-06-06 11:29 ` Suzuki Poulose
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=4DEC950E.1020105@linutronix.de \
--to=bigeasy@linutronix.de \
--cc=ananth@in.ibm.com \
--cc=horms@verge.net.au \
--cc=jwboyer@linux.vnet.ibm.com \
--cc=kexec@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=suzuki@in.ibm.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 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.