diff options
author | Harry Fearnhamm <Harry.Fearnhamm@arm.com> | 2006-05-16 11:50:21 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2006-05-16 11:50:21 -0400 |
commit | bb1a2aa617e67e2d60f22052b13422c7caeaf798 (patch) | |
tree | 01b34d62f8ec450c496bb090733d49695346442e /arch/arm | |
parent | 9d494ccb9ca297f80dc61a0d6357e88c86f44e92 (diff) |
[ARM] 3527/1: MPCore Boot Lockup Fix
Patch from Harry Fearnhamm
This patch fixes the occasional lockup seen in early boot stage
on RealView MPCore system.
Signed-off-by: Harry Fearnhamm <Harry.Fearnhamm@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-realview/realview_eb.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/arm/mach-realview/realview_eb.c b/arch/arm/mach-realview/realview_eb.c index d4a586e38d5b..693fb1e396e0 100644 --- a/arch/arm/mach-realview/realview_eb.c +++ b/arch/arm/mach-realview/realview_eb.c | |||
@@ -137,8 +137,11 @@ static struct amba_device *amba_devs[] __initdata = { | |||
137 | static void __init gic_init_irq(void) | 137 | static void __init gic_init_irq(void) |
138 | { | 138 | { |
139 | #ifdef CONFIG_REALVIEW_MPCORE | 139 | #ifdef CONFIG_REALVIEW_MPCORE |
140 | unsigned int pldctrl; | ||
140 | writel(0x0000a05f, __io_address(REALVIEW_SYS_LOCK)); | 141 | writel(0x0000a05f, __io_address(REALVIEW_SYS_LOCK)); |
141 | writel(0x008003c0, __io_address(REALVIEW_SYS_BASE) + 0xd8); | 142 | pldctrl = readl(__io_address(REALVIEW_SYS_BASE) + 0xd8); |
143 | pldctrl |= 0x00800000; /* New irq mode */ | ||
144 | writel(pldctrl, __io_address(REALVIEW_SYS_BASE) + 0xd8); | ||
142 | writel(0x00000000, __io_address(REALVIEW_SYS_LOCK)); | 145 | writel(0x00000000, __io_address(REALVIEW_SYS_LOCK)); |
143 | #endif | 146 | #endif |
144 | gic_dist_init(__io_address(REALVIEW_GIC_DIST_BASE)); | 147 | gic_dist_init(__io_address(REALVIEW_GIC_DIST_BASE)); |