aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-zynq/common.c6
-rw-r--r--arch/arm/mach-zynq/include/mach/zynq_soc.h25
2 files changed, 18 insertions, 13 deletions
diff --git a/arch/arm/mach-zynq/common.c b/arch/arm/mach-zynq/common.c
index ba48f067d8f2..ba8d14f78d4d 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 = {
73 { 73 {
74 .virtual = TTC0_VIRT, 74 .virtual = TTC0_VIRT,
75 .pfn = __phys_to_pfn(TTC0_PHYS), 75 .pfn = __phys_to_pfn(TTC0_PHYS),
76 .length = SZ_4K, 76 .length = TTC0_SIZE,
77 .type = MT_DEVICE, 77 .type = MT_DEVICE,
78 }, { 78 }, {
79 .virtual = SCU_PERIPH_VIRT, 79 .virtual = SCU_PERIPH_VIRT,
80 .pfn = __phys_to_pfn(SCU_PERIPH_PHYS), 80 .pfn = __phys_to_pfn(SCU_PERIPH_PHYS),
81 .length = SZ_8K, 81 .length = SCU_PERIPH_SIZE,
82 .type = MT_DEVICE, 82 .type = MT_DEVICE,
83 }, 83 },
84 84
@@ -86,7 +86,7 @@ static struct map_desc io_desc[] __initdata = {
86 { 86 {
87 .virtual = UART0_VIRT, 87 .virtual = UART0_VIRT,
88 .pfn = __phys_to_pfn(UART0_PHYS), 88 .pfn = __phys_to_pfn(UART0_PHYS),
89 .length = SZ_4K, 89 .length = UART0_SIZE,
90 .type = MT_DEVICE, 90 .type = MT_DEVICE,
91 }, 91 },
92#endif 92#endif
diff --git a/arch/arm/mach-zynq/include/mach/zynq_soc.h b/arch/arm/mach-zynq/include/mach/zynq_soc.h
index 218283a94247..1b8bf0ecbcb0 100644
--- a/arch/arm/mach-zynq/include/mach/zynq_soc.h
+++ b/arch/arm/mach-zynq/include/mach/zynq_soc.h
@@ -15,27 +15,32 @@
15#ifndef __MACH_XILINX_SOC_H__ 15#ifndef __MACH_XILINX_SOC_H__
16#define __MACH_XILINX_SOC_H__ 16#define __MACH_XILINX_SOC_H__
17 17
18#include <asm/pgtable.h>
19
18#define PERIPHERAL_CLOCK_RATE 2500000 20#define PERIPHERAL_CLOCK_RATE 2500000
19 21
20/* For now, all mappings are flat (physical = virtual) 22/* Static peripheral mappings are mapped at the top of the vmalloc region. The
23 * early uart mapping causes intermediate problems/failure at certain
24 * addresses, including the very top of the vmalloc region. Map it at an
25 * address that is known to work.
21 */ 26 */
22#define UART0_PHYS 0xE0000000 27#define UART0_PHYS 0xE0000000
23#define UART0_VIRT UART0_PHYS 28#define UART0_SIZE SZ_4K
29#define UART0_VIRT 0xF0001000
24 30
25#define TTC0_PHYS 0xF8001000 31#define TTC0_PHYS 0xF8001000
26#define TTC0_VIRT TTC0_PHYS 32#define TTC0_SIZE SZ_4K
33#define TTC0_VIRT (VMALLOC_END - TTC0_SIZE)
27 34
28#define SCU_PERIPH_PHYS 0xF8F00000 35#define SCU_PERIPH_PHYS 0xF8F00000
29#define SCU_PERIPH_VIRT SCU_PERIPH_PHYS 36#define SCU_PERIPH_SIZE SZ_8K
37#define SCU_PERIPH_VIRT (TTC0_VIRT - SCU_PERIPH_SIZE)
30 38
31/* The following are intended for the devices that are mapped early */ 39/* The following are intended for the devices that are mapped early */
32 40
33#define TTC0_BASE IOMEM(TTC0_VIRT) 41#define TTC0_BASE IOMEM(TTC0_VIRT)
34#define SCU_PERIPH_BASE IOMEM(SCU_PERIPH_VIRT) 42#define SCU_PERIPH_BASE IOMEM(SCU_PERIPH_VIRT)
35 43
36/*
37 * Mandatory for CONFIG_LL_DEBUG, UART is mapped virtual = physical
38 */
39#define LL_UART_PADDR UART0_PHYS 44#define LL_UART_PADDR UART0_PHYS
40#define LL_UART_VADDR UART0_VIRT 45#define LL_UART_VADDR UART0_VIRT
41 46