[PATCH] [MTD] physmap: Add support for 64 bit resources on PPC44x
Stefan Roese
ml at stefan-roese.de
Thu Jan 18 12:46:03 EST 2007
Hi Sergei,
On Thursday 18 January 2007 18:24, Sergei Shtylyov wrote:
> > This patch adds support for 64 bit resources and can be used on
> > PPC440 platforms to pass the complete 64 bit address from the
> > platform file to the physmap driver. This is first used on the
> > AMCC Taishan 440GX evaluation board.
>
> Is this board support in arch/ppc/ or arch/powerpc/?
Not yet in the kernel.org repository. It's right now in the denx repository
but I plan to sent the board support patches to the lists, even if I know,
that it most likely won't get included right now, because of the ppc->powerpc
merge.
And yes, it's still an "arch->ppc" port.
> > Signed-off-by: Stefan Roese <sr at denx.de>
> >
> > ---
> > commit 428858620a600f991662969be6d6b3e3720da1ac
> > tree cf3c861fbdddd841401a1e66f441623f0b3fb83c
> > parent d637c5644df789f15dfe06550fab1dddb87083ca
> > author Stefan Roese <sr at denx.de> Thu, 18 Jan 2007 14:40:53 +0100
> > committer Stefan Roese <sr at denx.de> Thu, 18 Jan 2007 14:40:53 +0100
> >
> > drivers/mtd/maps/physmap.c | 7 +++++++
> > 1 files changed, 7 insertions(+), 0 deletions(-)
> >
> > diff --git a/drivers/mtd/maps/physmap.c b/drivers/mtd/maps/physmap.c
> > index d171776..23072e3 100644
> > --- a/drivers/mtd/maps/physmap.c
> > +++ b/drivers/mtd/maps/physmap.c
> > @@ -116,7 +116,14 @@ static int physmap_flash_probe(struct
> > platform_device *dev)
>
> And what do you assign to info->map.phys, a meaninglessly truncated
> 64-bit address?
> I think that 'phys' field's type should be changed to a more
> appropriate one, like resource_size_t, instead...
Yes, this makes sense.
> > info->map.bankwidth = physmap_data->width;
> > info->map.set_vpp = physmap_data->set_vpp;
> >
> > +#ifdef CONFIG_44x
>
> Don't think we need this #ifdef at all.
>
> > + if (sizeof(dev->resource->start) == 4)
> > + info->map.virt = ioremap(info->map.phys, info->map.size);
>
> This line is meaningless duplication of the existing one (below #else).
>
> > + else
> > + info->map.virt = ioremap64(dev->resource->start, info->map.size);
>
> I see -- this is arch/ppc/... :-)
> Wait, ioremap() takes phys_addr_t which should be 64-bit in your case.
> Is there the need to call ioremap64()?
Yes, but ioremap() first call fixup_bigphys_addr() and this unfortunately
corrupts my addresses.
I know this patch is far from perfect, so any suggestions are very welcome.
Thanks.
Best regards,
Stefan
More information about the linux-mtd
mailing list