Hi Ralf,
this patch gets the code into the shape where I get up into
userspace - on the boards with flash I can login and the system
mostly works. On the boards with disks I cant login and I get a
lot of exceptions on startup but it looks close to working.
The pcnet32 patch is necessary for LASAT and I have not been able
to get a response from anyone with network code responsibility to
even comment the patch. Surely this patch which is necessary for
a platform can be accepted via linux-mips (you) when you merge with
Linus?
/Brian
Index: arch/mips/Kconfig-shared
===================================================================
RCS file: /cvs/linux/arch/mips/Kconfig-shared,v
retrieving revision 1.55
diff -u -r1.55 Kconfig-shared
--- arch/mips/Kconfig-shared 9 Jul 2003 18:13:02 -0000 1.55
+++ arch/mips/Kconfig-shared 10 Jul 2003 18:21:41 -0000
@@ -107,14 +107,6 @@
config LASAT
bool "Support for LASAT Networks platforms"
-config LASAT_100
- bool "Support for LASAT Networks 100 series"
- depends on LASAT
-
-config LASAT_200
- bool "Support for LASAT Networks 200 series"
- depends on LASAT
-
config PICVUE
tristate "PICVUE LCD display driver"
depends on LASAT
Index: arch/mips/lasat/prom.c
===================================================================
RCS file: /cvs/linux/arch/mips/lasat/prom.c,v
retrieving revision 1.4
diff -u -r1.4 prom.c
--- arch/mips/lasat/prom.c 7 Apr 2003 00:17:52 -0000 1.4
+++ arch/mips/lasat/prom.c 8 Jul 2003 18:54:58 -0000
@@ -76,7 +76,7 @@
{
u32 version = *(u32 *)(RESET_VECTOR + 0x90);
- if (version == 306) {
+ if (version >= 307) {
prom_display = (void *)PROM_DISPLAY_ADDR;
prom_putc = (void *)PROM_PUTC_ADDR;
prom_printf = real_prom_printf;
Index: arch/mips/lasat/setup.c
===================================================================
RCS file: /cvs/linux/arch/mips/lasat/setup.c,v
retrieving revision 1.7
diff -u -r1.7 setup.c
--- arch/mips/lasat/setup.c 5 Jun 2003 18:23:59 -0000 1.7
+++ arch/mips/lasat/setup.c 10 Jul 2003 18:04:46 -0000
@@ -36,7 +36,9 @@
#include <asm/irq.h>
#include <asm/lasat/lasat.h>
+#include <linux/tty.h>
#include <linux/serial.h>
+#include <linux/serial_core.h>
#include <asm/serial.h>
#include <asm/lasat/serial.h>
@@ -150,28 +152,28 @@
ll_timer_interrupt(MIPS_CPU_TIMER_IRQ, regs);
}
-//#define DYNAMIC_SERIAL_INIT
+#define DYNAMIC_SERIAL_INIT
#ifdef DYNAMIC_SERIAL_INIT
void __init serial_init(void)
{
-#ifdef CONFIG_SERIAL
- struct serial_struct s;
+#ifdef CONFIG_SERIAL_8250
+ struct uart_port s;
memset(&s, 0, sizeof(s));
- s.flags = STD_COM_FLAGS;
- s.io_type = SERIAL_IO_MEM;
+ s.flags = STD_COM_FLAGS|UPF_RESOURCES;
+ s.iotype = SERIAL_IO_MEM;
if (mips_machtype == MACH_LASAT_100) {
- s.baud_base = LASAT_BASE_BAUD_100;
+ s.uartclk = LASAT_BASE_BAUD_100 * 16;
s.irq = LASATINT_UART_100;
- s.iomem_reg_shift = LASAT_UART_REGS_SHIFT_100;
- s.iomem_base = (u8 *)KSEG1ADDR(LASAT_UART_REGS_BASE_100);
+ s.regshift = LASAT_UART_REGS_SHIFT_100;
+ s.membase = (char *)KSEG1ADDR(LASAT_UART_REGS_BASE_100);
} else {
- s.baud_base = LASAT_BASE_BAUD_200;
+ s.uartclk = LASAT_BASE_BAUD_200 * 16;
s.irq = LASATINT_UART_200;
- s.iomem_reg_shift = LASAT_UART_REGS_SHIFT_200;
- s.iomem_base = (u8 *)KSEG1ADDR(LASAT_UART_REGS_BASE_200);
+ s.regshift = LASAT_UART_REGS_SHIFT_200;
+ s.membase = (char *)KSEG1ADDR(LASAT_UART_REGS_BASE_200);
}
if (early_serial_setup(&s) != 0)
Index: arch/mips/pci/Makefile
===================================================================
RCS file: /cvs/linux/arch/mips/pci/Makefile,v
retrieving revision 1.1
diff -u -r1.1 Makefile
--- arch/mips/pci/Makefile 13 Jun 2003 13:58:31 -0000 1.1
+++ arch/mips/pci/Makefile 22 Jun 2003 11:14:46 -0000
@@ -12,7 +12,7 @@
obj-$(CONFIG_DDB5477) += pci-ddb5477.o ops-ddb5477.o
obj-$(CONFIG_HP_LASERJET) += pci-hplj.o
obj-$(CONFIG_ITE_BOARD_GEN) += ops-it8172.o
-obj-$(CONFIG_LASAT) += pci-lasat.o
+obj-$(CONFIG_LASAT) += pci-lasat.o common.o
obj-$(CONFIG_MIPS_BOARDS_GEN) += pci-mips.o
obj-$(CONFIG_MIPS_COBALT) += pci-cobalt.o
obj-$(CONFIG_MIPS_EV64120) += ops-ev64120.o
Index: arch/mips/pci/common.c
===================================================================
RCS file: /cvs/linux/arch/mips/pci/common.c,v
retrieving revision 1.2
diff -u -r1.2 common.c
--- arch/mips/pci/common.c 13 Jun 2003 14:19:56 -0000 1.2
+++ arch/mips/pci/common.c 22 Jun 2003 11:18:07 -0000
@@ -1,6 +1,9 @@
+#include <linux/config.h>
+#include <linux/init.h>
+#include <linux/pci.h>
+
void __init pcibios_fixup_bus(struct pci_bus *b)
{
- Dprintk("pcibios_fixup_bus()\n");
}
static int pcibios_enable_resources(struct pci_dev *dev, int mask)
Index: arch/mips/pci/pci-lasat.c
===================================================================
RCS file: /cvs/linux/arch/mips/pci/pci-lasat.c,v
retrieving revision 1.3
diff -u -r1.3 pci-lasat.c
--- arch/mips/pci/pci-lasat.c 22 Jun 2003 02:19:24 -0000 1.3
+++ arch/mips/pci/pci-lasat.c 22 Jun 2003 11:20:18 -0000
@@ -239,7 +239,4 @@
return 0;
}
-unsigned __init int pcibios_assign_all_busses(void)
-{
- return 1;
-}
+subsys_initcall(pcibios_init);
Index: drivers/net/pcnet32.c
===================================================================
RCS file: /cvs/linux/drivers/net/pcnet32.c,v
retrieving revision 1.51
diff -u -r1.51 pcnet32.c
--- drivers/net/pcnet32.c 23 Jun 2003 01:23:05 -0000 1.51
+++ drivers/net/pcnet32.c 23 Jun 2003 19:18:33 -0000
@@ -769,9 +769,12 @@
if (irq_line) {
dev->irq = irq_line;
}
-
+
+#ifndef CONFIG_LASAT
if (dev->irq >= 2)
+#endif
printk(" assigned IRQ %d.\n", dev->irq);
+#ifndef CONFIG_LASAT
else {
unsigned long irq_mask = probe_irq_on();
@@ -794,6 +797,7 @@
return -ENODEV;
}
}
+#endif
/* Set the mii phy_id so that we can query the link state */
if (lp->mii)
Index: include/asm-mips/serial.h
===================================================================
RCS file: /cvs/linux/include/asm-mips/serial.h,v
retrieving revision 1.39
diff -u -r1.39 serial.h
--- include/asm-mips/serial.h 15 Jun 2003 23:42:07 -0000 1.39
+++ include/asm-mips/serial.h 10 Jul 2003 18:21:22 -0000
@@ -156,13 +156,11 @@
#endif
#ifdef CONFIG_LASAT
-#include <asm/lasat/serial.h>
-#define LASAT_SERIAL_PORT_DEFNS
\
- { .baud_base = LASAT_BASE_BAUD, .irq = LASATINT_UART, \
- .flags = STD_COM_FLAGS,
\
- .port = LASAT_UART_REGS_BASE, /* Only for display */ \
- .iomem_base = (u8 *)KSEG1ADDR(LASAT_UART_REGS_BASE), \
- .iomem_reg_shift = LASAT_UART_REGS_SHIFT, .io_type = SERIAL_IO_MEM },
+/* This dummy definition allocates one element in the SERIAL_PORT_DFNS
+ * list below. This element is filled out by the the code in serial_init()
+ * in arch/mips/lasat/setup.c which autoselects the configuration based
+ * on machine type. */
+#define LASAT_SERIAL_PORT_DEFNS { },
#else
#define LASAT_SERIAL_PORT_DEFNS
#endif
Index: include/asm-mips/lasat/serial.h
===================================================================
RCS file: /cvs/linux/include/asm-mips/lasat/serial.h,v
retrieving revision 1.2
diff -u -r1.2 serial.h
--- include/asm-mips/lasat/serial.h 25 Feb 2003 22:39:02 -0000 1.2
+++ include/asm-mips/lasat/serial.h 10 Jul 2003 18:08:18 -0000
@@ -11,18 +11,3 @@
#define LASAT_UART_REGS_BASE_200 (Vrc5074_PHYS_BASE + 0x0300)
#define LASAT_UART_REGS_SHIFT_200 3
#define LASATINT_UART_200 13
-
-#if defined(CONFIG_LASAT_100)
-#define LASAT_BASE_BAUD LASAT_BASE_BAUD_200
-#define LASAT_UART_REGS_BASE LASAT_UART_REGS_BASE_200
-#define LASAT_UART_REGS_SHIFT LASAT_UART_REGS_SHIFT_200
-#define LASATINT_UART LASAT_UART_REGS_SHIFT_200
-#elif defined(CONFIG_LASAT_200)
-#define LASAT_BASE_BAUD LASAT_BASE_BAUD_200
-#define LASAT_UART_REGS_BASE LASAT_UART_REGS_BASE_200
-#define LASAT_UART_REGS_SHIFT LASAT_UART_REGS_SHIFT_200
-#define LASATINT_UART LASAT_UART_REGS_SHIFT_200
-#else
-#error Select a Lasat board in the configuration menu
-#endif
-
|