aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-realview/realview_eb.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-realview/realview_eb.c')
-rw-r--r--arch/arm/mach-realview/realview_eb.c27
1 files changed, 23 insertions, 4 deletions
diff --git a/arch/arm/mach-realview/realview_eb.c b/arch/arm/mach-realview/realview_eb.c
index 9741b4d3c9cf..effe243454e0 100644
--- a/arch/arm/mach-realview/realview_eb.c
+++ b/arch/arm/mach-realview/realview_eb.c
@@ -57,7 +57,21 @@ static struct map_desc realview_eb_io_desc[] __initdata = {
57 .pfn = __phys_to_pfn(REALVIEW_GIC_DIST_BASE), 57 .pfn = __phys_to_pfn(REALVIEW_GIC_DIST_BASE),
58 .length = SZ_4K, 58 .length = SZ_4K,
59 .type = MT_DEVICE, 59 .type = MT_DEVICE,
60 },
61#ifdef CONFIG_REALVIEW_MPCORE
62 {
63 .virtual = IO_ADDRESS(REALVIEW_GIC1_CPU_BASE),
64 .pfn = __phys_to_pfn(REALVIEW_GIC1_CPU_BASE),
65 .length = SZ_4K,
66 .type = MT_DEVICE,
60 }, { 67 }, {
68 .virtual = IO_ADDRESS(REALVIEW_GIC1_DIST_BASE),
69 .pfn = __phys_to_pfn(REALVIEW_GIC1_DIST_BASE),
70 .length = SZ_4K,
71 .type = MT_DEVICE,
72 },
73#endif
74 {
61 .virtual = IO_ADDRESS(REALVIEW_SCTL_BASE), 75 .virtual = IO_ADDRESS(REALVIEW_SCTL_BASE),
62 .pfn = __phys_to_pfn(REALVIEW_SCTL_BASE), 76 .pfn = __phys_to_pfn(REALVIEW_SCTL_BASE),
63 .length = SZ_4K, 77 .length = SZ_4K,
@@ -138,13 +152,18 @@ static void __init gic_init_irq(void)
138#ifdef CONFIG_REALVIEW_MPCORE 152#ifdef CONFIG_REALVIEW_MPCORE
139 unsigned int pldctrl; 153 unsigned int pldctrl;
140 writel(0x0000a05f, __io_address(REALVIEW_SYS_LOCK)); 154 writel(0x0000a05f, __io_address(REALVIEW_SYS_LOCK));
141 pldctrl = readl(__io_address(REALVIEW_SYS_BASE) + 0xd8); 155 pldctrl = readl(__io_address(REALVIEW_SYS_BASE) + REALVIEW_MPCORE_SYS_PLD_CTRL1);
142 pldctrl |= 0x00800000; /* New irq mode */ 156 pldctrl |= 0x00800000; /* New irq mode */
143 writel(pldctrl, __io_address(REALVIEW_SYS_BASE) + 0xd8); 157 writel(pldctrl, __io_address(REALVIEW_SYS_BASE) + REALVIEW_MPCORE_SYS_PLD_CTRL1);
144 writel(0x00000000, __io_address(REALVIEW_SYS_LOCK)); 158 writel(0x00000000, __io_address(REALVIEW_SYS_LOCK));
145#endif 159#endif
146 gic_dist_init(__io_address(REALVIEW_GIC_DIST_BASE)); 160 gic_dist_init(0, __io_address(REALVIEW_GIC_DIST_BASE), 29);
147 gic_cpu_init(__io_address(REALVIEW_GIC_CPU_BASE)); 161 gic_cpu_init(0, __io_address(REALVIEW_GIC_CPU_BASE));
162#ifdef CONFIG_REALVIEW_MPCORE
163 gic_dist_init(1, __io_address(REALVIEW_GIC1_DIST_BASE), 64);
164 gic_cpu_init(1, __io_address(REALVIEW_GIC1_CPU_BASE));
165 gic_cascade_irq(1, IRQ_EB_IRQ1);
166#endif
148} 167}
149 168
150static void __init realview_eb_init(void) 169static void __init realview_eb_init(void)