From a53d6fb83efc75bbd7876459e6e1291c4925103d Mon Sep 17 00:00:00 2001 From: Russell King Date: Mon, 3 Sep 2007 09:43:54 +0100 Subject: [ARM] realview: disable second GIC on RevB MPCore platforms The second GIC asserts a permanent interrupt on Rev.B MPCore platforms. Disable initialisation of this GIC to avoid unbootable systems. Signed-off-by: Russell King --- arch/arm/mach-realview/realview_eb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/mach-realview/realview_eb.c b/arch/arm/mach-realview/realview_eb.c index 3dba666151d..ecec2f85c4c 100644 --- a/arch/arm/mach-realview/realview_eb.c +++ b/arch/arm/mach-realview/realview_eb.c @@ -165,7 +165,7 @@ static void __init gic_init_irq(void) #endif gic_dist_init(0, __io_address(REALVIEW_GIC_DIST_BASE), 29); gic_cpu_init(0, __io_address(REALVIEW_GIC_CPU_BASE)); -#ifdef CONFIG_REALVIEW_MPCORE +#if defined(CONFIG_REALVIEW_MPCORE) && !defined(CONFIG_REALVIEW_MPCORE_REVB) gic_dist_init(1, __io_address(REALVIEW_GIC1_DIST_BASE), 64); gic_cpu_init(1, __io_address(REALVIEW_GIC1_CPU_BASE)); gic_cascade_irq(1, IRQ_EB_IRQ1); -- cgit v1.2.3 From b9338a78fc21e980d33c58b31f3bb37cd48a68f6 Mon Sep 17 00:00:00 2001 From: Tzachi Perelstein Date: Sun, 9 Sep 2007 14:24:59 +0100 Subject: [ARM] 4567/1: Fix 'Oops - undefined instruction' when CONFIG_VFP=y on non VFP device vfp_init() takes care of the condition when CONFIG_VFP=y but no real VFP device exists. However, when this condition is true, a compiler might misplace code lines in a way that will break this support. (To be more specific - fmrx(FPSID) might be executed before vfp_testing_entry assignment, which will end up with Oops - undefined instruction). This patch adds a barrier() to guarantee the right execution ordering. Signed-off-by: Assaf Hoffman Signed-off-by: Russell King --- arch/arm/vfp/vfpmodule.c | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/vfp/vfpmodule.c b/arch/arm/vfp/vfpmodule.c index 04ddab2bd87..eea3f50743d 100644 --- a/arch/arm/vfp/vfpmodule.c +++ b/arch/arm/vfp/vfpmodule.c @@ -323,6 +323,7 @@ static int __init vfp_init(void) * we just need to read the VFPSID register. */ vfp_vector = vfp_testing_entry; + barrier(); vfpsid = fmrx(FPSID); barrier(); vfp_vector = vfp_null_entry; -- cgit v1.2.3