arch/mips/kernel/i8259.c seems not working in big endian. Here is a patch to fix this. --- linux-sgi-cvs/arch/mips/kernel/i8259.c Mon Sep 10 02:43:01 2001 +++ linux.new/arch/mips/kernel/i8259.c Thu Nov 8 15:40:03 2001 @@ -70,8 +70,13 @@ static unsigned int cached_irq_mask = 0xffff; #define __byte(x,y) (((unsigned char *)&(y))[x]) +#ifdef __BIG_ENDIAN +#define cached_21 (__byte(1,cached_irq_mask)) +#define cached_A1 (__byte(0,cached_irq_mask)) +#else #define cached_21 (__byte(0,cached_irq_mask)) #define cached_A1 (__byte(1,cached_irq_mask)) +#endif void disable_8259A_irq(unsigned int irq) { --- Atsushi Nemoto