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@horsten.com>
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
|