[PATCH] katmai.dts: extend DMA ranges; add dma/sysace nodes
Benjamin Herrenschmidt
benh at kernel.crashing.org
Thu Nov 27 15:07:41 EST 2008
> > Strange... when I look at pci4xx_parse_dma_ranges() I see it
> > specifically avoiding PCI addresses above 4G ... That needs fixing.
>
> Right, it avoid. I guess you haven't read my e-mail to its end,
> because my work-around patch, which I referenced there, fixes this :)
Ooops, I though I did :-)
> Sure. The problem here is that the LSI (the PCI device I want to DMA
> to/from 1TB PCI addresses) driver doesn't work with this (i.e. it's
> broken in, e.g., 2.6.28-rc6) on ppc440spe-based platform. It looks
> like there is no support for 32-bit CPUs with 64-bit physical
> addresses in the LSI driver. E.g. the following mix in the
> drivers/message/fusion/mptbase.h code points to the fact that the
> driver supposes 64-bit dma_addr_t on 64-bit CPUs only:
>
> #ifdef CONFIG_64BIT
> #define CAST_U32_TO_PTR(x) ((void *)(u64)x)
> #define CAST_PTR_TO_U32(x) ((u32)(u64)x)
> #else
> #define CAST_U32_TO_PTR(x) ((void *)x)
> #define CAST_PTR_TO_U32(x) ((u32)x)
> #endif
>
>
> #define mpt_addr_size() \
> ((sizeof(dma_addr_t) == sizeof(u64)) ? MPI_SGE_FLAGS_64_BIT_ADDRESSING : \
> MPI_SGE_FLAGS_32_BIT_ADDRESSING)
>
So far I don't see anything in this that hints about that brokenness...
not that it's not there, but the above macros seem unrelated.
Cheers,
Ben.
> Regards, Yuri
>
> --
> Yuri Tikhonov, Senior Software Engineer
> Emcraft Systems, www.emcraft.com
More information about the Linuxppc-dev
mailing list