Re: [PATCH 1/3] powerpc/dma: Always configure ZONE_DMA32 correctly

2015-02-21 Thread Kevin Hao
On Sun, Feb 22, 2015 at 09:23:51AM +1100, Benjamin Herrenschmidt wrote:
 No it won't, or am I missing something ? Ie, limit_zone_pfn() will only
 reduce the size of the window, never increase it.

Yes, you are right. Just overlook this. Sorry for the noise.

Thanks,
Kevin


pgpH0IxyneZ4n.pgp
Description: PGP signature
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Re: [PATCH 1/3] powerpc/dma: Always configure ZONE_DMA32 correctly

2015-02-21 Thread Benjamin Herrenschmidt
On Sat, 2015-02-21 at 19:26 +0800, Kevin Hao wrote:
 On Fri, Feb 20, 2015 at 07:35:25PM +1100, Benjamin Herrenschmidt wrote:
  We do this for consistency and also in order to support the use of a
  consistent mask smaller than the dma mask in subsequent patches.
  
  Signed-off-by: Benjamin Herrenschmidt b...@kernel.crashing.org
  ---
   arch/powerpc/kernel/dma-swiotlb.c | 3 ---
   arch/powerpc/mm/mem.c | 6 ++
   2 files changed, 6 insertions(+), 3 deletions(-)
  
  diff --git a/arch/powerpc/kernel/dma-swiotlb.c 
  b/arch/powerpc/kernel/dma-swiotlb.c
  index 7359797..cb92f94 100644
  --- a/arch/powerpc/kernel/dma-swiotlb.c
  +++ b/arch/powerpc/kernel/dma-swiotlb.c
  @@ -110,9 +110,6 @@ void __init swiotlb_detect_4g(void)
   {
  if ((memblock_end_of_DRAM() - 1)  0x) {
  ppc_swiotlb_enable = 1;
  -#ifdef CONFIG_ZONE_DMA32
  -   limit_zone_pfn(ZONE_DMA32, (1ULL  32)  PAGE_SHIFT);
  -#endif
  }
   }
   
  diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c
  index b7285a5..f146ef0 100644
  --- a/arch/powerpc/mm/mem.c
  +++ b/arch/powerpc/mm/mem.c
  @@ -307,6 +307,12 @@ void __init paging_init(void)
  printk(KERN_DEBUG Memory hole size: %ldMB\n,
 (long int)((top_of_ram - total_ram)  20));
   
  +#ifdef CONFIG_ZONE_DMA32
  +   /* Default limit for ZONE_DMA32, platform might limit it
  +* further due to PCI bridge addressing limitations
  +*/
  +   limit_zone_pfn(ZONE_DMA32, (1ULL  32)  PAGE_SHIFT);
  +#endif
   #ifdef CONFIG_HIGHMEM
 
 Hmm, won't this break the PCI on the fsl SoCs? The ZONE_DMA32 is set to
 2GB due to the PCI inbound window limitation on fsl SoCs. This will override
 that unconditionally. Please see the commit 84f44cc56c09 (powerpc/fsl-pci:
 Limit ZONE_DMA32 to 2GiB on 64-bit platforms) for more detail.

No it won't, or am I missing something ? Ie, limit_zone_pfn() will only
reduce the size of the window, never increase it.

Cheers,
Ben.

 Thanks,
 Kevin


___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Re: [PATCH 1/3] powerpc/dma: Always configure ZONE_DMA32 correctly

2015-02-21 Thread Kevin Hao
On Fri, Feb 20, 2015 at 07:35:25PM +1100, Benjamin Herrenschmidt wrote:
 We do this for consistency and also in order to support the use of a
 consistent mask smaller than the dma mask in subsequent patches.
 
 Signed-off-by: Benjamin Herrenschmidt b...@kernel.crashing.org
 ---
  arch/powerpc/kernel/dma-swiotlb.c | 3 ---
  arch/powerpc/mm/mem.c | 6 ++
  2 files changed, 6 insertions(+), 3 deletions(-)
 
 diff --git a/arch/powerpc/kernel/dma-swiotlb.c 
 b/arch/powerpc/kernel/dma-swiotlb.c
 index 7359797..cb92f94 100644
 --- a/arch/powerpc/kernel/dma-swiotlb.c
 +++ b/arch/powerpc/kernel/dma-swiotlb.c
 @@ -110,9 +110,6 @@ void __init swiotlb_detect_4g(void)
  {
   if ((memblock_end_of_DRAM() - 1)  0x) {
   ppc_swiotlb_enable = 1;
 -#ifdef CONFIG_ZONE_DMA32
 - limit_zone_pfn(ZONE_DMA32, (1ULL  32)  PAGE_SHIFT);
 -#endif
   }
  }
  
 diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c
 index b7285a5..f146ef0 100644
 --- a/arch/powerpc/mm/mem.c
 +++ b/arch/powerpc/mm/mem.c
 @@ -307,6 +307,12 @@ void __init paging_init(void)
   printk(KERN_DEBUG Memory hole size: %ldMB\n,
  (long int)((top_of_ram - total_ram)  20));
  
 +#ifdef CONFIG_ZONE_DMA32
 + /* Default limit for ZONE_DMA32, platform might limit it
 +  * further due to PCI bridge addressing limitations
 +  */
 + limit_zone_pfn(ZONE_DMA32, (1ULL  32)  PAGE_SHIFT);
 +#endif
  #ifdef CONFIG_HIGHMEM

Hmm, won't this break the PCI on the fsl SoCs? The ZONE_DMA32 is set to
2GB due to the PCI inbound window limitation on fsl SoCs. This will override
that unconditionally. Please see the commit 84f44cc56c09 (powerpc/fsl-pci:
Limit ZONE_DMA32 to 2GiB on 64-bit platforms) for more detail.

Thanks,
Kevin


pgpeiQEYOxi6o.pgp
Description: PGP signature
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

[PATCH 1/3] powerpc/dma: Always configure ZONE_DMA32 correctly

2015-02-20 Thread Benjamin Herrenschmidt
We do this for consistency and also in order to support the use of a
consistent mask smaller than the dma mask in subsequent patches.

Signed-off-by: Benjamin Herrenschmidt b...@kernel.crashing.org
---
 arch/powerpc/kernel/dma-swiotlb.c | 3 ---
 arch/powerpc/mm/mem.c | 6 ++
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/arch/powerpc/kernel/dma-swiotlb.c 
b/arch/powerpc/kernel/dma-swiotlb.c
index 7359797..cb92f94 100644
--- a/arch/powerpc/kernel/dma-swiotlb.c
+++ b/arch/powerpc/kernel/dma-swiotlb.c
@@ -110,9 +110,6 @@ void __init swiotlb_detect_4g(void)
 {
if ((memblock_end_of_DRAM() - 1)  0x) {
ppc_swiotlb_enable = 1;
-#ifdef CONFIG_ZONE_DMA32
-   limit_zone_pfn(ZONE_DMA32, (1ULL  32)  PAGE_SHIFT);
-#endif
}
 }
 
diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c
index b7285a5..f146ef0 100644
--- a/arch/powerpc/mm/mem.c
+++ b/arch/powerpc/mm/mem.c
@@ -307,6 +307,12 @@ void __init paging_init(void)
printk(KERN_DEBUG Memory hole size: %ldMB\n,
   (long int)((top_of_ram - total_ram)  20));
 
+#ifdef CONFIG_ZONE_DMA32
+   /* Default limit for ZONE_DMA32, platform might limit it
+* further due to PCI bridge addressing limitations
+*/
+   limit_zone_pfn(ZONE_DMA32, (1ULL  32)  PAGE_SHIFT);
+#endif
 #ifdef CONFIG_HIGHMEM
top_zone = ZONE_HIGHMEM;
limit_zone_pfn(ZONE_NORMAL, lowmem_end_addr  PAGE_SHIFT);


___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev