linux-mips
[Top] [All Lists]

[PATCH] 2.6.25.6 bring Lasat back from the dead

To: ralf@linux-mips.org
Subject: [PATCH] 2.6.25.6 bring Lasat back from the dead
From: Thomas Horsten <thomas@horsten.com>
Date: Sat, 14 Jun 2008 02:32:42 +0100 (BST)
Cc: linux-mips@linux-mips.org
Original-recipient: rfc822;linux-mips@linux-mips.org
Sender: linux-mips-bounce@linux-mips.org
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


<Prev in Thread] Current Thread [Next in Thread>
  • [PATCH] 2.6.25.6 bring Lasat back from the dead, Thomas Horsten <=