[PATCH] 2.6.25.6 bring Lasat back from the dead

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux