After the common MIPS CPU interrupt controller (for irq0-7) was introduced the Lasat boards didn't get their interrupts right, so nothing worked. The old routines need to be offset by the new 8 hardware interrupts common to all MIPS CPU's. Signed-off-by: Thomas Horsten <thomas@xxxxxxxxxxx> diff -u -r linux-2.6.25.6/arch/mips/lasat/image/Makefile linux-2.6.25.6-th/arch/mips/lasat/image/Makefile --- linux-2.6.25.6/arch/mips/lasat/image/Makefile 2008-06-11 10:39:29.000000000 +0100 +++ linux-2.6.25.6-th/arch/mips/lasat/image/Makefile 2008-06-12 18:35:45.000000000 +0100 @@ -24,7 +24,7 @@ -D TIMESTAMP=$(shell date +%s) $(obj)/head.o: $(obj)/head.S $(KERNEL_IMAGE) - $(CC) -fno-pic $(HEAD_DEFINES) $(LINUXINCLUDE) -c -o $@ $< + $(CC) -EL -fno-pic $(HEAD_DEFINES) $(LINUXINCLUDE) -c -o $@ $< OBJECTS = head.o kImage.o @@ -35,14 +35,14 @@ $(MKLASATIMG) -o $@ -k $^ -m $(MKLASATIMG_ARCH) $(obj)/rom.bin: $(obj)/rom - $(OBJCOPY) -O binary -S $^ $@ + $(OBJCOPY) -O binary -S $^ $@ # Rule to make the bootloader $(obj)/rom: $(addprefix $(obj)/,$(OBJECTS)) $(LD) $(LDFLAGS) $(LDSCRIPT) -o $@ $^ $(obj)/%.o: $(obj)/%.gz - $(LD) -r -o $@ -b binary $< + $(LD) -EL -r -o $@ -b binary $< $(obj)/%.gz: $(obj)/%.bin gzip -cf -9 $< > $@ diff -u -r linux-2.6.25.6/arch/mips/lasat/interrupt.c linux-2.6.25.6-th/arch/mips/lasat/interrupt.c --- linux-2.6.25.6/arch/mips/lasat/interrupt.c 2008-06-11 10:39:29.000000000 +0100 +++ linux-2.6.25.6-th/arch/mips/lasat/interrupt.c 2008-06-12 23:45:51.000000000 +0100 @@ -34,11 +34,13 @@ void disable_lasat_irq(unsigned int irq_nr) { + irq_nr -= LASAT_IRQ_BASE; *lasat_int_mask &= ~(1 << irq_nr) << lasat_int_mask_shift; } void enable_lasat_irq(unsigned int irq_nr) { + irq_nr -= LASAT_IRQ_BASE; *lasat_int_mask |= (1 << irq_nr) << lasat_int_mask_shift; } diff -u -r linux-2.6.25.6/include/asm-mips/lasat/serial.h linux-2.6.25.6-th/include/asm-mips/lasat/serial.h --- linux-2.6.25.6/include/asm-mips/lasat/serial.h 2008-06-11 10:39:29.000000000 +0100 +++ linux-2.6.25.6-th/include/asm-mips/lasat/serial.h 2008-06-13 00:09:29.000000000 +0100 @@ -4,10 +4,10 @@ #define LASAT_BASE_BAUD_100 (7372800 / 16) #define LASAT_UART_REGS_BASE_100 0x1c8b0000 #define LASAT_UART_REGS_SHIFT_100 2 -#define LASATINT_UART_100 8 +#define LASATINT_UART_100 16 /* * LASAT 200 boards serial configuration */ #define LASAT_BASE_BAUD_200 (100000000 / 16 / 12) #define LASAT_UART_REGS_BASE_200 (Vrc5074_PHYS_BASE + 0x0300) #define LASAT_UART_REGS_SHIFT_200 3 -#define LASATINT_UART_200 13 +#define LASATINT_UART_200 21