Re: [PATCH v3 5/5] zynq: move static peripheral mappings

2012-10-24 Thread Arnd Bergmann
On Wednesday 24 October 2012, Josh Cartwright wrote:
> Shifting them up into the vmalloc region prevents the following warning,
> when booting a zynq qemu target with more than 512mb of RAM:
> 
>   BUG: mapping for 0xe000 at 0xe000 out of vmalloc space
> 
> In addition, it allows for reuse of these mappings when the proper
> drivers issue requests via ioremap().
> 
> Signed-off-by: Josh Cartwright 
> Cc: John Linn 

Acked-by: Arnd Bergmann 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH v3 5/5] zynq: move static peripheral mappings

2012-10-23 Thread Josh Cartwright
Shifting them up into the vmalloc region prevents the following warning,
when booting a zynq qemu target with more than 512mb of RAM:

  BUG: mapping for 0xe000 at 0xe000 out of vmalloc space

In addition, it allows for reuse of these mappings when the proper
drivers issue requests via ioremap().

Signed-off-by: Josh Cartwright 
Cc: John Linn 
---
 arch/arm/mach-zynq/common.c|  6 +++---
 arch/arm/mach-zynq/include/mach/zynq_soc.h | 23 +--
 2 files changed, 16 insertions(+), 13 deletions(-)

diff --git a/arch/arm/mach-zynq/common.c b/arch/arm/mach-zynq/common.c
index ba48f06..ba8d14f 100644
--- a/arch/arm/mach-zynq/common.c
+++ b/arch/arm/mach-zynq/common.c
@@ -73,12 +73,12 @@ static struct map_desc io_desc[] __initdata = {
{
.virtual= TTC0_VIRT,
.pfn= __phys_to_pfn(TTC0_PHYS),
-   .length = SZ_4K,
+   .length = TTC0_SIZE,
.type   = MT_DEVICE,
}, {
.virtual= SCU_PERIPH_VIRT,
.pfn= __phys_to_pfn(SCU_PERIPH_PHYS),
-   .length = SZ_8K,
+   .length = SCU_PERIPH_SIZE,
.type   = MT_DEVICE,
},
 
@@ -86,7 +86,7 @@ static struct map_desc io_desc[] __initdata = {
{
.virtual= UART0_VIRT,
.pfn= __phys_to_pfn(UART0_PHYS),
-   .length = SZ_4K,
+   .length = UART0_SIZE,
.type   = MT_DEVICE,
},
 #endif
diff --git a/arch/arm/mach-zynq/include/mach/zynq_soc.h 
b/arch/arm/mach-zynq/include/mach/zynq_soc.h
index 218283a..c6b9b67 100644
--- a/arch/arm/mach-zynq/include/mach/zynq_soc.h
+++ b/arch/arm/mach-zynq/include/mach/zynq_soc.h
@@ -15,27 +15,30 @@
 #ifndef __MACH_XILINX_SOC_H__
 #define __MACH_XILINX_SOC_H__
 
+#include 
+
 #define PERIPHERAL_CLOCK_RATE  250
 
-/* For now, all mappings are flat (physical = virtual)
+/* Static peripheral mappings are mapped at the top of the
+ * vmalloc region
  */
-#define UART0_PHYS 0xE000
-#define UART0_VIRT UART0_PHYS
+#define UART0_PHYS 0xE000
+#define UART0_SIZE SZ_4K
+#define UART0_VIRT (VMALLOC_END - UART0_SIZE)
 
-#define TTC0_PHYS  0xF8001000
-#define TTC0_VIRT  TTC0_PHYS
+#define TTC0_PHYS  0xF8001000
+#define TTC0_SIZE  SZ_4K
+#define TTC0_VIRT  (UART0_VIRT - TTC0_SIZE)
 
-#define SCU_PERIPH_PHYS0xF8F0
-#define SCU_PERIPH_VIRTSCU_PERIPH_PHYS
+#define SCU_PERIPH_PHYS0xF8F0
+#define SCU_PERIPH_SIZESZ_8K
+#define SCU_PERIPH_VIRT(TTC0_VIRT - SCU_PERIPH_SIZE)
 
 /* The following are intended for the devices that are mapped early */
 
 #define TTC0_BASE  IOMEM(TTC0_VIRT)
 #define SCU_PERIPH_BASEIOMEM(SCU_PERIPH_VIRT)
 
-/*
- * Mandatory for CONFIG_LL_DEBUG, UART is mapped virtual = physical
- */
 #define LL_UART_PADDR  UART0_PHYS
 #define LL_UART_VADDR  UART0_VIRT
 
-- 
1.8.0
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/