[PATCH] ppc32: explicitly disable 440GP IRQ compatibility mode in 440GX setup

Eugene Surovegin ebs at ebshome.net
Sat Jul 2 03:02:39 EST 2005


Andrew,

the following patch adds explicit disabling of 440GP IRQ compatibility 
mode when configuring 440GX interrupt controller. This helps when 
board firmware for some reason uses this compatibility mode and 
leaves it enabled. It breaks 440GX interrupt code because it assumes 
native 440GX IRQ mode. People seems to be continuously bitten by this.

Signed-off-by: Eugene Surovegin <ebs at ebshome.net>

diff --git a/arch/ppc/syslib/ppc4xx_pic.c b/arch/ppc/syslib/ppc4xx_pic.c
--- a/arch/ppc/syslib/ppc4xx_pic.c
+++ b/arch/ppc/syslib/ppc4xx_pic.c
@@ -110,6 +110,10 @@ static int ppc4xx_pic_get_irq(struct pt_
 
 static void __init ppc4xx_pic_impl_init(void)
 {
+#if defined(CONFIG_440GX)
+	/* Disable 440GP compatibility mode if it was enabled in firmware */
+	SDR_WRITE(DCRN_SDR_MFR, SDR_READ(DCRN_SDR_MFR) & ~DCRN_SDR_MFR_PCM);
+#endif
 	/* Configure Base UIC */
 	mtdcr(DCRN_UIC_CR(UICB), 0);
 	mtdcr(DCRN_UIC_TR(UICB), 0);






More information about the Linuxppc-embedded mailing list