* CONSISTENT_DMA_SIZE limitations @ 2010-04-28 6:25 Magnus Damm 2010-04-28 6:47 ` Eric Miao 0 siblings, 1 reply; 5+ messages in thread From: Magnus Damm @ 2010-04-28 6:25 UTC (permalink / raw) To: linux-arm-kernel Hi everyone, Are there any special CONSISTENT_DMA_SIZE limitiations in the latest upstrem ARM kernel? On SH-Mobile ARM a single 256 MB I/O window is mapped virt:phys 1:1 at 0xe6000000 -> 0xf5ffffff at ->map_io() time. The virtual area on top of the I/O window at 0xf6000000 -> 0xffdfffff seems suitable for consistent dma mappings. Extending CONSISTENT_DMA_SIZE from the default 2MB to 158 MB makes efficient use of the entire range. Empty 2MB space is left at the top as usual. Extending CONSISTENT_DMA_SIZE seems like a good idea to me, but I'm not sure if doing so will break something else. Perhaps I need to rework some code in arch/arm/mm/dma-mapping.c? I'm asking because most platforms only export up to 14 MB, and Documentation/arm/memory.txt mentions 0xff000000 -> 0xffbfffff as reserved. Thanks! / magnus ^ permalink raw reply [flat|nested] 5+ messages in thread
* CONSISTENT_DMA_SIZE limitations 2010-04-28 6:25 CONSISTENT_DMA_SIZE limitations Magnus Damm @ 2010-04-28 6:47 ` Eric Miao 2010-04-28 7:07 ` Shilimkar, Santosh 2010-04-28 7:08 ` Magnus Damm 0 siblings, 2 replies; 5+ messages in thread From: Eric Miao @ 2010-04-28 6:47 UTC (permalink / raw) To: linux-arm-kernel On Wed, Apr 28, 2010 at 2:25 PM, Magnus Damm <magnus.damm@gmail.com> wrote: > Hi everyone, > > Are there any special CONSISTENT_DMA_SIZE limitiations in the latest > upstrem ARM kernel? > > On SH-Mobile ARM a single 256 MB I/O window is mapped virt:phys 1:1 at > 0xe6000000 -> 0xf5ffffff at ->map_io() time. > > The virtual area on top of the I/O window at 0xf6000000 -> 0xffdfffff > seems suitable for consistent dma mappings. Extending > CONSISTENT_DMA_SIZE from the default 2MB to 158 MB makes efficient use > of the entire range. Empty 2MB space is left at the top as usual. > > Extending CONSISTENT_DMA_SIZE seems like a good idea to me, but I'm > not sure if doing so will break something else. Perhaps I need to > rework some code in arch/arm/mm/dma-mapping.c? > Hi Magnus, For a hackish way of enabling something, I don't think that's a bad idea to extend CONSISTENT_DMA_SIZE. And it's often seen by framebuffer and video/graphics related drivers, which is normally hungry for large amount of consistent memory. However, I'm a little bit concerned about such usage, (esp. I'm not sure how this is done in ARMv7), my preference would be: 1) either use the dma API 2) or reserve a large chunk of memory during boot and get it remapped later > I'm asking because most platforms only export up to 14 MB, and > Documentation/arm/memory.txt mentions 0xff000000 -> 0xffbfffff as > reserved. > > Thanks! > > / magnus > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel at lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel > ^ permalink raw reply [flat|nested] 5+ messages in thread
* CONSISTENT_DMA_SIZE limitations 2010-04-28 6:47 ` Eric Miao @ 2010-04-28 7:07 ` Shilimkar, Santosh 2010-04-28 7:53 ` Magnus Damm 2010-04-28 7:08 ` Magnus Damm 1 sibling, 1 reply; 5+ messages in thread From: Shilimkar, Santosh @ 2010-04-28 7:07 UTC (permalink / raw) To: linux-arm-kernel > -----Original Message----- > From: linux-arm-kernel-bounces at lists.infradead.org [mailto:linux-arm-kernel- > bounces at lists.infradead.org] On Behalf Of Eric Miao > Sent: Wednesday, April 28, 2010 12:17 PM > To: Magnus Damm > Cc: linux-arm-kernel at lists.infradead.org > Subject: Re: CONSISTENT_DMA_SIZE limitations > > On Wed, Apr 28, 2010 at 2:25 PM, Magnus Damm <magnus.damm@gmail.com> wrote: > > Hi everyone, > > > > Are there any special CONSISTENT_DMA_SIZE limitiations in the latest > > upstrem ARM kernel? > > > > On SH-Mobile ARM a single 256 MB I/O window is mapped virt:phys 1:1 at > > 0xe6000000 -> 0xf5ffffff at ->map_io() time. > > > > The virtual area on top of the I/O window at 0xf6000000 -> 0xffdfffff > > seems suitable for consistent dma mappings. Extending > > CONSISTENT_DMA_SIZE from the default 2MB to 158 MB makes efficient use > > of the entire range. Empty 2MB space is left at the top as usual. > > > > Extending CONSISTENT_DMA_SIZE seems like a good idea to me, but I'm > > not sure if doing so will break something else. Perhaps I need to > > rework some code in arch/arm/mm/dma-mapping.c? > > > > Hi Magnus, > > For a hackish way of enabling something, I don't think that's a bad idea > to extend CONSISTENT_DMA_SIZE. And it's often seen by framebuffer > and video/graphics related drivers, which is normally hungry for large > amount of consistent memory. However, I'm a little bit concerned about > such usage, (esp. I'm not sure how this is done in ARMv7), my preference > would be: > > 1) either use the dma API > 2) or reserve a large chunk of memory during boot and get it remapped later > > > I'm asking because most platforms only export up to 14 MB, and > > Documentation/arm/memory.txt mentions 0xff000000 -> 0xffbfffff as > > reserved. Not the best way but works is : You can override the default setting of 2MB to whatever memory you need and then use the dma_alloc_coherent(), to allocate from this space. Just ensure that you don't ioremap this memory with different cache-attribute otherwise you will end up in the alias mapping of same memory which is not allowed on newer ARMv7. Regards, Santosh ^ permalink raw reply [flat|nested] 5+ messages in thread
* CONSISTENT_DMA_SIZE limitations 2010-04-28 7:07 ` Shilimkar, Santosh @ 2010-04-28 7:53 ` Magnus Damm 0 siblings, 0 replies; 5+ messages in thread From: Magnus Damm @ 2010-04-28 7:53 UTC (permalink / raw) To: linux-arm-kernel Hi Santosh, On Wed, Apr 28, 2010 at 4:07 PM, Shilimkar, Santosh <santosh.shilimkar@ti.com> wrote: >> On Wed, Apr 28, 2010 at 2:25 PM, Magnus Damm <magnus.damm@gmail.com> wrote: >> > Extending CONSISTENT_DMA_SIZE seems like a good idea to me, but I'm >> > not sure if doing so will break something else. Perhaps I need to >> > rework some code in arch/arm/mm/dma-mapping.c? > Not the best way but works is : > You can override the default setting of 2MB to whatever memory you need and > then use the dma_alloc_coherent(), to allocate from this space. > > Just ensure that you don't ioremap this memory with different cache-attribute > otherwise you will end up in the alias mapping of same memory which is not > allowed on newer ARMv7. Good idea. =) Thanks for your suggestions. / magnus ^ permalink raw reply [flat|nested] 5+ messages in thread
* CONSISTENT_DMA_SIZE limitations 2010-04-28 6:47 ` Eric Miao 2010-04-28 7:07 ` Shilimkar, Santosh @ 2010-04-28 7:08 ` Magnus Damm 1 sibling, 0 replies; 5+ messages in thread From: Magnus Damm @ 2010-04-28 7:08 UTC (permalink / raw) To: linux-arm-kernel On Wed, Apr 28, 2010 at 3:47 PM, Eric Miao <eric.y.miao@gmail.com> wrote: > On Wed, Apr 28, 2010 at 2:25 PM, Magnus Damm <magnus.damm@gmail.com> wrote: >> Extending CONSISTENT_DMA_SIZE seems like a good idea to me, but I'm >> not sure if doing so will break something else. Perhaps I need to >> rework some code in arch/arm/mm/dma-mapping.c? >> > > Hi Magnus, > > For a hackish way of enabling something, I don't think that's a bad idea > to extend CONSISTENT_DMA_SIZE. And it's often seen by framebuffer > and video/graphics related drivers, which is normally hungry for large > amount of consistent memory. However, I'm a little bit concerned about > such usage, (esp. I'm not sure how this is done in ARMv7), my preference > would be: > > 1) either use the dma API > 2) or reserve a large chunk of memory during boot and get it remapped later Hi Eric, So we already have a bunch of multimedia-related drivers upstream for SH, and they often make use of dma_alloc_coherent() and friends. Chunks of physically contiguous memory are allocated during boot and passed on to the platform drivers as a struct resource. This is true for the LCDC fbdev and the CEU v4l2 code, as well as all the uio devices. To avoid fragmentation issues the v4l2 driver also creates a memory pool from the struct resource using dma_declare_coherent_memory(). Eventually I'd like to tie in the IOMMU, but first i'd like to enable the existing drivers by extending CONSISTENT_DMA_SIZE. Thanks for your comments! / magnus ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2010-04-28 7:53 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-04-28 6:25 CONSISTENT_DMA_SIZE limitations Magnus Damm 2010-04-28 6:47 ` Eric Miao 2010-04-28 7:07 ` Shilimkar, Santosh 2010-04-28 7:53 ` Magnus Damm 2010-04-28 7:08 ` Magnus Damm
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).