* [PATCH] mtd: ofpart: support partitions of 4 GB and larger [not found] <f0151b07-ba77-472d-8c7d-b35c2113e9a2@zimbra> @ 2013-02-19 22:23 ` Aaron Sierra 2013-02-20 2:02 ` Huang Shijie 0 siblings, 1 reply; 3+ messages in thread From: Aaron Sierra @ 2013-02-19 22:23 UTC (permalink / raw) To: Artem Bityutskiy; +Cc: linux-mtd, Joe Schaack Author: Joe Schaack <jschaack@xes-inc.com> Previously, partitions were limited to less than 4 GB in size because the address and size were read as 32-bit values. Add support for 64-bit values to support devices of 4 GB and larger. Signed-off-by: Joe Schaack <jschaack@xes-inc.com> Signed-off-by: Nate Case <ncase@xes-inc.com> Signed-off-by: Aaron Sierra <asierra@xes-inc.com> --- drivers/mtd/ofpart.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/mtd/ofpart.c b/drivers/mtd/ofpart.c index 30bd907..553d6d6 100644 --- a/drivers/mtd/ofpart.c +++ b/drivers/mtd/ofpart.c @@ -55,6 +55,7 @@ static int parse_ofpart_partitions(struct mtd_info *master, while ((pp = of_get_next_child(node, pp))) { const __be32 *reg; int len; + int a_cells, s_cells; reg = of_get_property(pp, "reg", &len); if (!reg) { @@ -62,8 +63,10 @@ static int parse_ofpart_partitions(struct mtd_info *master, continue; } - (*pparts)[i].offset = be32_to_cpu(reg[0]); - (*pparts)[i].size = be32_to_cpu(reg[1]); + a_cells = of_n_addr_cells(pp); + s_cells = of_n_size_cells(pp); + (*pparts)[i].offset = of_read_number(reg, a_cells); + (*pparts)[i].size = of_read_number(reg + a_cells, s_cells); partname = of_get_property(pp, "label", &len); if (!partname) -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] mtd: ofpart: support partitions of 4 GB and larger 2013-02-19 22:23 ` [PATCH] mtd: ofpart: support partitions of 4 GB and larger Aaron Sierra @ 2013-02-20 2:02 ` Huang Shijie 2013-02-21 21:43 ` Aaron Sierra 0 siblings, 1 reply; 3+ messages in thread From: Huang Shijie @ 2013-02-20 2:02 UTC (permalink / raw) To: Aaron Sierra; +Cc: linux-mtd, Joe Schaack, Artem Bityutskiy 于 2013年02月20日 06:23, Aaron Sierra 写道: > Author: Joe Schaack<jschaack@xes-inc.com> > > Previously, partitions were limited to less than 4 GB in size because > the address and size were read as 32-bit values. Add support for 64-bit > values to support devices of 4 GB and larger. > > Signed-off-by: Joe Schaack<jschaack@xes-inc.com> > Signed-off-by: Nate Case<ncase@xes-inc.com> > Signed-off-by: Aaron Sierra<asierra@xes-inc.com> > --- > drivers/mtd/ofpart.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/mtd/ofpart.c b/drivers/mtd/ofpart.c > index 30bd907..553d6d6 100644 > --- a/drivers/mtd/ofpart.c > +++ b/drivers/mtd/ofpart.c > @@ -55,6 +55,7 @@ static int parse_ofpart_partitions(struct mtd_info *master, > while ((pp = of_get_next_child(node, pp))) { > const __be32 *reg; > int len; > + int a_cells, s_cells; > > reg = of_get_property(pp, "reg",&len); > if (!reg) { > @@ -62,8 +63,10 @@ static int parse_ofpart_partitions(struct mtd_info *master, > continue; > } > > - (*pparts)[i].offset = be32_to_cpu(reg[0]); > - (*pparts)[i].size = be32_to_cpu(reg[1]); > + a_cells = of_n_addr_cells(pp); > + s_cells = of_n_size_cells(pp); > + (*pparts)[i].offset = of_read_number(reg, a_cells); > + (*pparts)[i].size = of_read_number(reg + a_cells, s_cells); > > partname = of_get_property(pp, "label",&len); > if (!partname) I think it's better to update the Documentation/devicetree/bindings/mtd/partition.txt too. for example, add a example for the partition larger then 4G. thanks Huang Shijie ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] mtd: ofpart: support partitions of 4 GB and larger 2013-02-20 2:02 ` Huang Shijie @ 2013-02-21 21:43 ` Aaron Sierra 0 siblings, 0 replies; 3+ messages in thread From: Aaron Sierra @ 2013-02-21 21:43 UTC (permalink / raw) To: Huang Shijie; +Cc: linux-mtd, Joe Schaack, Artem Bityutskiy > > Previously, partitions were limited to less than 4 GB in size > > because > > the address and size were read as 32-bit values. Add support for > > 64-bit > > values to support devices of 4 GB and larger. > > > > Signed-off-by: Joe Schaack<jschaack@xes-inc.com> > > Signed-off-by: Nate Case<ncase@xes-inc.com> > > Signed-off-by: Aaron Sierra<asierra@xes-inc.com> > > --- > > drivers/mtd/ofpart.c | 7 +++++-- > > 1 file changed, 5 insertions(+), 2 deletions(-) > I think it's better to update the > Documentation/devicetree/bindings/mtd/partition.txt too. for example, > add a example for the partition larger then 4G. > > thanks > Huang Shijie > Good idea Huang, I'm on it. -Aaron S. ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2013-02-21 21:44 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <f0151b07-ba77-472d-8c7d-b35c2113e9a2@zimbra>
2013-02-19 22:23 ` [PATCH] mtd: ofpart: support partitions of 4 GB and larger Aaron Sierra
2013-02-20 2:02 ` Huang Shijie
2013-02-21 21:43 ` Aaron Sierra
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox