fix board support patch and add mtd flash map driver for ar7
SVN-Revision: 1237
This commit is contained in:
parent
a51103f510
commit
8329af8c44
3 changed files with 459 additions and 172 deletions
|
@ -26,7 +26,7 @@ CONFIG_AR7=y
|
||||||
# CONFIG_AR7RD is not set
|
# CONFIG_AR7RD is not set
|
||||||
CONFIG_AR7WRD=y
|
CONFIG_AR7WRD=y
|
||||||
CONFIG_AR7_FREQUENCY=150
|
CONFIG_AR7_FREQUENCY=150
|
||||||
CONFIG_AR7_MEMORY=14000000
|
CONFIG_AR7_MEMORY=0x14000000
|
||||||
# CONFIG_MIPS_BOSPORUS is not set
|
# CONFIG_MIPS_BOSPORUS is not set
|
||||||
# CONFIG_MIPS_FICMMP is not set
|
# CONFIG_MIPS_FICMMP is not set
|
||||||
# CONFIG_MIPS_MIRAGE is not set
|
# CONFIG_MIPS_MIRAGE is not set
|
||||||
|
@ -88,7 +88,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
||||||
# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
|
# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
|
||||||
CONFIG_NONCOHERENT_IO=y
|
CONFIG_NONCOHERENT_IO=y
|
||||||
CONFIG_SWAP_IO_SPACE=y
|
CONFIG_SWAP_IO_SPACE=y
|
||||||
CONFIG_MIPS_AVALANCHE_PAGING=y
|
CONFIG_AR7_PAGING=y
|
||||||
# CONFIG_MIPS_AU1000 is not set
|
# CONFIG_MIPS_AU1000 is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -215,6 +215,11 @@ CONFIG_MTD_CFI_AMDSTD=y
|
||||||
# Mapping drivers for chip access
|
# Mapping drivers for chip access
|
||||||
#
|
#
|
||||||
# CONFIG_MTD_PHYSMAP is not set
|
# CONFIG_MTD_PHYSMAP is not set
|
||||||
|
CONFIG_MTD_AVALANCHE=y
|
||||||
|
CONFIG_MTD_AVALANCHE_DEFAULTS=y
|
||||||
|
CONFIG_MTD_AVALANCHE_START=0x10000000
|
||||||
|
CONFIG_MTD_AVALANCHE_LEN=0x400000
|
||||||
|
CONFIG_MTD_AVALANCHE_BUSWIDTH=2
|
||||||
# CONFIG_MTD_PB1000 is not set
|
# CONFIG_MTD_PB1000 is not set
|
||||||
# CONFIG_MTD_PB1500 is not set
|
# CONFIG_MTD_PB1500 is not set
|
||||||
# CONFIG_MTD_PB1100 is not set
|
# CONFIG_MTD_PB1100 is not set
|
||||||
|
@ -252,15 +257,6 @@ CONFIG_MTD_CFI_AMDSTD=y
|
||||||
# Parallel port support
|
# Parallel port support
|
||||||
#
|
#
|
||||||
# CONFIG_PARPORT is not set
|
# CONFIG_PARPORT is not set
|
||||||
# CONFIG_PARPORT_PC is not set
|
|
||||||
# CONFIG_PARPORT_AMIGA is not set
|
|
||||||
# CONFIG_PARPORT_MFC3 is not set
|
|
||||||
# CONFIG_PARPORT_ATARI is not set
|
|
||||||
# CONFIG_PARPORT_GSC is not set
|
|
||||||
# CONFIG_PARPORT_SUNBPP is not set
|
|
||||||
# CONFIG_PARPORT_IP22 is not set
|
|
||||||
# CONFIG_PARPORT_OTHER is not set
|
|
||||||
# CONFIG_PARPORT_1284 is not set
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Plug and Play configuration
|
# Plug and Play configuration
|
||||||
|
@ -504,37 +500,7 @@ CONFIG_IPSEC_NAT_TRAVERSAL=y
|
||||||
# ATA/IDE/MFM/RLL support
|
# ATA/IDE/MFM/RLL support
|
||||||
#
|
#
|
||||||
# CONFIG_IDE is not set
|
# CONFIG_IDE is not set
|
||||||
|
|
||||||
#
|
|
||||||
# IDE, ATA and ATAPI Block devices
|
|
||||||
#
|
|
||||||
# CONFIG_BLK_DEV_IDE is not set
|
|
||||||
# CONFIG_BLK_DEV_HD_IDE is not set
|
|
||||||
# CONFIG_BLK_DEV_HD is not set
|
# CONFIG_BLK_DEV_HD is not set
|
||||||
# CONFIG_BLK_DEV_IDE_SATA is not set
|
|
||||||
# CONFIG_BLK_DEV_IDEDISK is not set
|
|
||||||
# CONFIG_IDEDISK_MULTI_MODE is not set
|
|
||||||
# CONFIG_IDEDISK_STROKE is not set
|
|
||||||
# CONFIG_BLK_DEV_IDECS is not set
|
|
||||||
# CONFIG_BLK_DEV_DELKIN is not set
|
|
||||||
# CONFIG_BLK_DEV_IDECD is not set
|
|
||||||
# CONFIG_BLK_DEV_IDETAPE is not set
|
|
||||||
# CONFIG_BLK_DEV_IDEFLOPPY is not set
|
|
||||||
# CONFIG_BLK_DEV_IDESCSI is not set
|
|
||||||
# CONFIG_IDE_TASK_IOCTL is not set
|
|
||||||
# CONFIG_BLK_DEV_CMD640 is not set
|
|
||||||
# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
|
|
||||||
# CONFIG_BLK_DEV_ISAPNP is not set
|
|
||||||
# CONFIG_IDE_CHIPSETS is not set
|
|
||||||
# CONFIG_IDEDMA_AUTO is not set
|
|
||||||
# CONFIG_IDEDMA_IVB is not set
|
|
||||||
# CONFIG_DMA_NONPCI is not set
|
|
||||||
# CONFIG_BLK_DEV_PDC202XX is not set
|
|
||||||
# CONFIG_BLK_DEV_ATARAID is not set
|
|
||||||
# CONFIG_BLK_DEV_ATARAID_PDC is not set
|
|
||||||
# CONFIG_BLK_DEV_ATARAID_HPT is not set
|
|
||||||
# CONFIG_BLK_DEV_ATARAID_MEDLEY is not set
|
|
||||||
# CONFIG_BLK_DEV_ATARAID_SII is not set
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# SCSI support
|
# SCSI support
|
||||||
|
@ -593,8 +559,6 @@ CONFIG_CHR_DEV_SG=m
|
||||||
# CONFIG_SCSI_GENERIC_NCR5380 is not set
|
# CONFIG_SCSI_GENERIC_NCR5380 is not set
|
||||||
# CONFIG_SCSI_INITIO is not set
|
# CONFIG_SCSI_INITIO is not set
|
||||||
# CONFIG_SCSI_INIA100 is not set
|
# CONFIG_SCSI_INIA100 is not set
|
||||||
# CONFIG_SCSI_PPA is not set
|
|
||||||
# CONFIG_SCSI_IMM is not set
|
|
||||||
# CONFIG_SCSI_NCR53C406A is not set
|
# CONFIG_SCSI_NCR53C406A is not set
|
||||||
# CONFIG_SCSI_NCR53C7xx is not set
|
# CONFIG_SCSI_NCR53C7xx is not set
|
||||||
# CONFIG_SCSI_PAS16 is not set
|
# CONFIG_SCSI_PAS16 is not set
|
||||||
|
@ -739,10 +703,6 @@ CONFIG_SERIAL_CONSOLE=y
|
||||||
# CONFIG_SERIAL_NONSTANDARD is not set
|
# CONFIG_SERIAL_NONSTANDARD is not set
|
||||||
CONFIG_UNIX98_PTYS=y
|
CONFIG_UNIX98_PTYS=y
|
||||||
CONFIG_UNIX98_PTY_COUNT=128
|
CONFIG_UNIX98_PTY_COUNT=128
|
||||||
CONFIG_PRINTER=m
|
|
||||||
# CONFIG_LP_CONSOLE is not set
|
|
||||||
# CONFIG_PPDEV is not set
|
|
||||||
# CONFIG_TIPAR is not set
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# I2C support
|
# I2C support
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
diff -urN linux-2.4.30/Makefile linux-2.4.30.current/Makefile
|
diff -ruN linux_2_4_30/Makefile linux/Makefile
|
||||||
--- linux-2.4.30/Makefile 2005-06-11 20:24:07.000000000 +0200
|
--- linux_2_4_30/Makefile 2005-05-22 18:23:27.000000000 +0000
|
||||||
+++ linux-2.4.30.current/Makefile 2005-06-12 20:14:28.000000000 +0200
|
+++ linux/Makefile 2005-06-12 11:49:50.000000000 +0000
|
||||||
@@ -91,7 +91,7 @@
|
@@ -91,7 +91,7 @@
|
||||||
|
|
||||||
CPPFLAGS := -D__KERNEL__ -I$(HPATH)
|
CPPFLAGS := -D__KERNEL__ -I$(HPATH)
|
||||||
|
@ -10,9 +10,9 @@ diff -urN linux-2.4.30/Makefile linux-2.4.30.current/Makefile
|
||||||
-fno-strict-aliasing -fno-common
|
-fno-strict-aliasing -fno-common
|
||||||
ifndef CONFIG_FRAME_POINTER
|
ifndef CONFIG_FRAME_POINTER
|
||||||
CFLAGS += -fomit-frame-pointer
|
CFLAGS += -fomit-frame-pointer
|
||||||
diff -urN linux-2.4.30/arch/mips/Makefile linux-2.4.30.current/arch/mips/Makefile
|
diff -ruN linux_2_4_30/arch/mips/Makefile linux/arch/mips/Makefile
|
||||||
--- linux-2.4.30/arch/mips/Makefile 2005-06-11 20:24:07.000000000 +0200
|
--- linux_2_4_30/arch/mips/Makefile 2005-05-22 18:24:01.000000000 +0000
|
||||||
+++ linux-2.4.30.current/arch/mips/Makefile 2005-06-12 20:14:28.000000000 +0200
|
+++ linux/arch/mips/Makefile 2005-06-11 09:41:27.000000000 +0000
|
||||||
@@ -369,6 +369,16 @@
|
@@ -369,6 +369,16 @@
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -30,9 +30,9 @@ diff -urN linux-2.4.30/arch/mips/Makefile linux-2.4.30.current/arch/mips/Makefil
|
||||||
# DECstation family
|
# DECstation family
|
||||||
#
|
#
|
||||||
ifdef CONFIG_DECSTATION
|
ifdef CONFIG_DECSTATION
|
||||||
diff -urN linux-2.4.30/arch/mips/ar7/Makefile linux-2.4.30.current/arch/mips/ar7/Makefile
|
diff -ruN linux_2_4_30/arch/mips/ar7/Makefile linux/arch/mips/ar7/Makefile
|
||||||
--- linux-2.4.30/arch/mips/ar7/Makefile 1970-01-01 01:00:00.000000000 +0100
|
--- linux_2_4_30/arch/mips/ar7/Makefile 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ linux-2.4.30.current/arch/mips/ar7/Makefile 2005-06-12 20:14:28.000000000 +0200
|
+++ linux/arch/mips/ar7/Makefile 2005-06-11 12:36:01.000000000 +0000
|
||||||
@@ -0,0 +1,12 @@
|
@@ -0,0 +1,12 @@
|
||||||
+.S.s:
|
+.S.s:
|
||||||
+ $(CPP) $(AFLAGS) $< -o $*.s
|
+ $(CPP) $(AFLAGS) $< -o $*.s
|
||||||
|
@ -46,9 +46,9 @@ diff -urN linux-2.4.30/arch/mips/ar7/Makefile linux-2.4.30.current/arch/mips/ar7
|
||||||
+obj-y += setup.o irq.o mipsIRQ.o reset.o init.o memory.o printf.o cmdline.o time.o
|
+obj-y += setup.o irq.o mipsIRQ.o reset.o init.o memory.o printf.o cmdline.o time.o
|
||||||
+
|
+
|
||||||
+include $(TOPDIR)/Rules.make
|
+include $(TOPDIR)/Rules.make
|
||||||
diff -urN linux-2.4.30/arch/mips/ar7/avalanche/Makefile linux-2.4.30.current/arch/mips/ar7/avalanche/Makefile
|
diff -ruN linux_2_4_30/arch/mips/ar7/avalanche/Makefile linux/arch/mips/ar7/avalanche/Makefile
|
||||||
--- linux-2.4.30/arch/mips/ar7/avalanche/Makefile 1970-01-01 01:00:00.000000000 +0100
|
--- linux_2_4_30/arch/mips/ar7/avalanche/Makefile 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ linux-2.4.30.current/arch/mips/ar7/avalanche/Makefile 2005-06-12 20:14:28.000000000 +0200
|
+++ linux/arch/mips/ar7/avalanche/Makefile 2005-06-11 07:59:49.000000000 +0000
|
||||||
@@ -0,0 +1,13 @@
|
@@ -0,0 +1,13 @@
|
||||||
+.S.s:
|
+.S.s:
|
||||||
+ $(CPP) $(AFLAGS) $< -o $*.s
|
+ $(CPP) $(AFLAGS) $< -o $*.s
|
||||||
|
@ -63,9 +63,9 @@ diff -urN linux-2.4.30/arch/mips/ar7/avalanche/Makefile linux-2.4.30.current/arc
|
||||||
+obj-y += avalanche_paging.o avalanche_jump.o
|
+obj-y += avalanche_paging.o avalanche_jump.o
|
||||||
+
|
+
|
||||||
+include $(TOPDIR)/Rules.make
|
+include $(TOPDIR)/Rules.make
|
||||||
diff -urN linux-2.4.30/arch/mips/ar7/avalanche/avalanche_jump.S linux-2.4.30.current/arch/mips/ar7/avalanche/avalanche_jump.S
|
diff -ruN linux_2_4_30/arch/mips/ar7/avalanche/avalanche_jump.S linux/arch/mips/ar7/avalanche/avalanche_jump.S
|
||||||
--- linux-2.4.30/arch/mips/ar7/avalanche/avalanche_jump.S 1970-01-01 01:00:00.000000000 +0100
|
--- linux_2_4_30/arch/mips/ar7/avalanche/avalanche_jump.S 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ linux-2.4.30.current/arch/mips/ar7/avalanche/avalanche_jump.S 2005-06-12 20:14:28.000000000 +0200
|
+++ linux/arch/mips/ar7/avalanche/avalanche_jump.S 2005-06-11 17:20:29.000000000 +0000
|
||||||
@@ -0,0 +1,69 @@
|
@@ -0,0 +1,69 @@
|
||||||
+#include <linux/config.h>
|
+#include <linux/config.h>
|
||||||
+#include <linux/threads.h>
|
+#include <linux/threads.h>
|
||||||
|
@ -136,9 +136,9 @@ diff -urN linux-2.4.30/arch/mips/ar7/avalanche/avalanche_jump.S linux-2.4.30.cur
|
||||||
+END(jump_dedicated_interrupt)
|
+END(jump_dedicated_interrupt)
|
||||||
+
|
+
|
||||||
+ .set at
|
+ .set at
|
||||||
diff -urN linux-2.4.30/arch/mips/ar7/avalanche/avalanche_paging.c linux-2.4.30.current/arch/mips/ar7/avalanche/avalanche_paging.c
|
diff -ruN linux_2_4_30/arch/mips/ar7/avalanche/avalanche_paging.c linux/arch/mips/ar7/avalanche/avalanche_paging.c
|
||||||
--- linux-2.4.30/arch/mips/ar7/avalanche/avalanche_paging.c 1970-01-01 01:00:00.000000000 +0100
|
--- linux_2_4_30/arch/mips/ar7/avalanche/avalanche_paging.c 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ linux-2.4.30.current/arch/mips/ar7/avalanche/avalanche_paging.c 2005-06-12 20:14:28.000000000 +0200
|
+++ linux/arch/mips/ar7/avalanche/avalanche_paging.c 2005-06-12 10:21:34.000000000 +0000
|
||||||
@@ -0,0 +1,314 @@
|
@@ -0,0 +1,314 @@
|
||||||
+/*
|
+/*
|
||||||
+ * -*- linux-c -*-
|
+ * -*- linux-c -*-
|
||||||
|
@ -454,9 +454,9 @@ diff -urN linux-2.4.30/arch/mips/ar7/avalanche/avalanche_paging.c linux-2.4.30.c
|
||||||
+
|
+
|
||||||
+ return;
|
+ return;
|
||||||
+}
|
+}
|
||||||
diff -urN linux-2.4.30/arch/mips/ar7/cmdline.c linux-2.4.30.current/arch/mips/ar7/cmdline.c
|
diff -ruN linux_2_4_30/arch/mips/ar7/cmdline.c linux/arch/mips/ar7/cmdline.c
|
||||||
--- linux-2.4.30/arch/mips/ar7/cmdline.c 1970-01-01 01:00:00.000000000 +0100
|
--- linux_2_4_30/arch/mips/ar7/cmdline.c 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ linux-2.4.30.current/arch/mips/ar7/cmdline.c 2005-06-12 20:14:28.000000000 +0200
|
+++ linux/arch/mips/ar7/cmdline.c 2005-06-12 08:55:20.000000000 +0000
|
||||||
@@ -0,0 +1,64 @@
|
@@ -0,0 +1,64 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Carsten Langgaard, carstenl@mips.com
|
+ * Carsten Langgaard, carstenl@mips.com
|
||||||
|
@ -522,9 +522,9 @@ diff -urN linux-2.4.30/arch/mips/ar7/cmdline.c linux-2.4.30.current/arch/mips/ar
|
||||||
+ --cp;
|
+ --cp;
|
||||||
+ *cp = '\0';
|
+ *cp = '\0';
|
||||||
+}
|
+}
|
||||||
diff -urN linux-2.4.30/arch/mips/ar7/init.c linux-2.4.30.current/arch/mips/ar7/init.c
|
diff -ruN linux_2_4_30/arch/mips/ar7/init.c linux/arch/mips/ar7/init.c
|
||||||
--- linux-2.4.30/arch/mips/ar7/init.c 1970-01-01 01:00:00.000000000 +0100
|
--- linux_2_4_30/arch/mips/ar7/init.c 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ linux-2.4.30.current/arch/mips/ar7/init.c 2005-06-12 20:14:28.000000000 +0200
|
+++ linux/arch/mips/ar7/init.c 2005-06-11 10:43:59.000000000 +0000
|
||||||
@@ -0,0 +1,127 @@
|
@@ -0,0 +1,127 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Carsten Langgaard, carstenl@mips.com
|
+ * Carsten Langgaard, carstenl@mips.com
|
||||||
|
@ -653,9 +653,9 @@ diff -urN linux-2.4.30/arch/mips/ar7/init.c linux-2.4.30.current/arch/mips/ar7/i
|
||||||
+
|
+
|
||||||
+ return 0;
|
+ return 0;
|
||||||
+}
|
+}
|
||||||
diff -urN linux-2.4.30/arch/mips/ar7/irq.c linux-2.4.30.current/arch/mips/ar7/irq.c
|
diff -ruN linux_2_4_30/arch/mips/ar7/irq.c linux/arch/mips/ar7/irq.c
|
||||||
--- linux-2.4.30/arch/mips/ar7/irq.c 1970-01-01 01:00:00.000000000 +0100
|
--- linux_2_4_30/arch/mips/ar7/irq.c 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ linux-2.4.30.current/arch/mips/ar7/irq.c 2005-06-12 20:14:28.000000000 +0200
|
+++ linux/arch/mips/ar7/irq.c 2005-06-11 10:54:13.000000000 +0000
|
||||||
@@ -0,0 +1,669 @@
|
@@ -0,0 +1,669 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Nitin Dhingra, iamnd@ti.com
|
+ * Nitin Dhingra, iamnd@ti.com
|
||||||
|
@ -1326,9 +1326,9 @@ diff -urN linux-2.4.30/arch/mips/ar7/irq.c linux-2.4.30.current/arch/mips/ar7/ir
|
||||||
+
|
+
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
diff -urN linux-2.4.30/arch/mips/ar7/memory.c linux-2.4.30.current/arch/mips/ar7/memory.c
|
diff -ruN linux_2_4_30/arch/mips/ar7/memory.c linux/arch/mips/ar7/memory.c
|
||||||
--- linux-2.4.30/arch/mips/ar7/memory.c 1970-01-01 01:00:00.000000000 +0100
|
--- linux_2_4_30/arch/mips/ar7/memory.c 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ linux-2.4.30.current/arch/mips/ar7/memory.c 2005-06-12 20:14:28.000000000 +0200
|
+++ linux/arch/mips/ar7/memory.c 2005-06-11 10:43:59.000000000 +0000
|
||||||
@@ -0,0 +1,130 @@
|
@@ -0,0 +1,130 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Carsten Langgaard, carstenl@mips.com
|
+ * Carsten Langgaard, carstenl@mips.com
|
||||||
|
@ -1460,9 +1460,9 @@ diff -urN linux-2.4.30/arch/mips/ar7/memory.c linux-2.4.30.current/arch/mips/ar7
|
||||||
+ }
|
+ }
|
||||||
+ printk("Freeing prom memory: %ldkb freed\n", freed >> 10);
|
+ printk("Freeing prom memory: %ldkb freed\n", freed >> 10);
|
||||||
+}
|
+}
|
||||||
diff -urN linux-2.4.30/arch/mips/ar7/mipsIRQ.S linux-2.4.30.current/arch/mips/ar7/mipsIRQ.S
|
diff -ruN linux_2_4_30/arch/mips/ar7/mipsIRQ.S linux/arch/mips/ar7/mipsIRQ.S
|
||||||
--- linux-2.4.30/arch/mips/ar7/mipsIRQ.S 1970-01-01 01:00:00.000000000 +0100
|
--- linux_2_4_30/arch/mips/ar7/mipsIRQ.S 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ linux-2.4.30.current/arch/mips/ar7/mipsIRQ.S 2005-06-12 20:14:28.000000000 +0200
|
+++ linux/arch/mips/ar7/mipsIRQ.S 2005-06-11 08:30:52.000000000 +0000
|
||||||
@@ -0,0 +1,120 @@
|
@@ -0,0 +1,120 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Carsten Langgaard, carstenl@mips.com
|
+ * Carsten Langgaard, carstenl@mips.com
|
||||||
|
@ -1584,9 +1584,9 @@ diff -urN linux-2.4.30/arch/mips/ar7/mipsIRQ.S linux-2.4.30.current/arch/mips/ar
|
||||||
+ j ret_from_irq
|
+ j ret_from_irq
|
||||||
+ nop
|
+ nop
|
||||||
+END(mipsIRQ)
|
+END(mipsIRQ)
|
||||||
diff -urN linux-2.4.30/arch/mips/ar7/printf.c linux-2.4.30.current/arch/mips/ar7/printf.c
|
diff -ruN linux_2_4_30/arch/mips/ar7/printf.c linux/arch/mips/ar7/printf.c
|
||||||
--- linux-2.4.30/arch/mips/ar7/printf.c 1970-01-01 01:00:00.000000000 +0100
|
--- linux_2_4_30/arch/mips/ar7/printf.c 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ linux-2.4.30.current/arch/mips/ar7/printf.c 2005-06-12 20:14:28.000000000 +0200
|
+++ linux/arch/mips/ar7/printf.c 2005-06-11 10:43:59.000000000 +0000
|
||||||
@@ -0,0 +1,51 @@
|
@@ -0,0 +1,51 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Carsten Langgaard, carstenl@mips.com
|
+ * Carsten Langgaard, carstenl@mips.com
|
||||||
|
@ -1639,9 +1639,9 @@ diff -urN linux-2.4.30/arch/mips/ar7/printf.c linux-2.4.30.current/arch/mips/ar7
|
||||||
+ return;
|
+ return;
|
||||||
+
|
+
|
||||||
+}
|
+}
|
||||||
diff -urN linux-2.4.30/arch/mips/ar7/reset.c linux-2.4.30.current/arch/mips/ar7/reset.c
|
diff -ruN linux_2_4_30/arch/mips/ar7/reset.c linux/arch/mips/ar7/reset.c
|
||||||
--- linux-2.4.30/arch/mips/ar7/reset.c 1970-01-01 01:00:00.000000000 +0100
|
--- linux_2_4_30/arch/mips/ar7/reset.c 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ linux-2.4.30.current/arch/mips/ar7/reset.c 2005-06-12 20:14:28.000000000 +0200
|
+++ linux/arch/mips/ar7/reset.c 2005-06-11 10:43:59.000000000 +0000
|
||||||
@@ -0,0 +1,54 @@
|
@@ -0,0 +1,54 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Carsten Langgaard, carstenl@mips.com
|
+ * Carsten Langgaard, carstenl@mips.com
|
||||||
|
@ -1697,9 +1697,9 @@ diff -urN linux-2.4.30/arch/mips/ar7/reset.c linux-2.4.30.current/arch/mips/ar7/
|
||||||
+ _machine_halt = ar7_machine_halt;
|
+ _machine_halt = ar7_machine_halt;
|
||||||
+ _machine_power_off = ar7_machine_power_off;
|
+ _machine_power_off = ar7_machine_power_off;
|
||||||
+}
|
+}
|
||||||
diff -urN linux-2.4.30/arch/mips/ar7/setup.c linux-2.4.30.current/arch/mips/ar7/setup.c
|
diff -ruN linux_2_4_30/arch/mips/ar7/setup.c linux/arch/mips/ar7/setup.c
|
||||||
--- linux-2.4.30/arch/mips/ar7/setup.c 1970-01-01 01:00:00.000000000 +0100
|
--- linux_2_4_30/arch/mips/ar7/setup.c 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ linux-2.4.30.current/arch/mips/ar7/setup.c 2005-06-12 20:14:28.000000000 +0200
|
+++ linux/arch/mips/ar7/setup.c 2005-06-12 08:53:26.000000000 +0000
|
||||||
@@ -0,0 +1,150 @@
|
@@ -0,0 +1,150 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Carsten Langgaard, carstenl@mips.com
|
+ * Carsten Langgaard, carstenl@mips.com
|
||||||
|
@ -1851,9 +1851,9 @@ diff -urN linux-2.4.30/arch/mips/ar7/setup.c linux-2.4.30.current/arch/mips/ar7/
|
||||||
+ board_time_init = ar7_time_init;
|
+ board_time_init = ar7_time_init;
|
||||||
+ board_timer_setup = ar7_timer_setup;
|
+ board_timer_setup = ar7_timer_setup;
|
||||||
+}
|
+}
|
||||||
diff -urN linux-2.4.30/arch/mips/ar7/time.c linux-2.4.30.current/arch/mips/ar7/time.c
|
diff -ruN linux_2_4_30/arch/mips/ar7/time.c linux/arch/mips/ar7/time.c
|
||||||
--- linux-2.4.30/arch/mips/ar7/time.c 1970-01-01 01:00:00.000000000 +0100
|
--- linux_2_4_30/arch/mips/ar7/time.c 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ linux-2.4.30.current/arch/mips/ar7/time.c 2005-06-12 20:14:28.000000000 +0200
|
+++ linux/arch/mips/ar7/time.c 2005-06-11 11:53:22.000000000 +0000
|
||||||
@@ -0,0 +1,125 @@
|
@@ -0,0 +1,125 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Carsten Langgaard, carstenl@mips.com
|
+ * Carsten Langgaard, carstenl@mips.com
|
||||||
|
@ -1980,9 +1980,9 @@ diff -urN linux-2.4.30/arch/mips/ar7/time.c linux-2.4.30.current/arch/mips/ar7/t
|
||||||
+ write_c0_compare(r4k_cur);
|
+ write_c0_compare(r4k_cur);
|
||||||
+ set_c0_status(ALLINTS);
|
+ set_c0_status(ALLINTS);
|
||||||
+}
|
+}
|
||||||
diff -urN linux-2.4.30/arch/mips/ar7/tnetd73xx_misc.c linux-2.4.30.current/arch/mips/ar7/tnetd73xx_misc.c
|
diff -ruN linux_2_4_30/arch/mips/ar7/tnetd73xx_misc.c linux/arch/mips/ar7/tnetd73xx_misc.c
|
||||||
--- linux-2.4.30/arch/mips/ar7/tnetd73xx_misc.c 1970-01-01 01:00:00.000000000 +0100
|
--- linux_2_4_30/arch/mips/ar7/tnetd73xx_misc.c 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ linux-2.4.30.current/arch/mips/ar7/tnetd73xx_misc.c 2005-06-12 20:14:28.000000000 +0200
|
+++ linux/arch/mips/ar7/tnetd73xx_misc.c 2005-06-11 10:43:59.000000000 +0000
|
||||||
@@ -0,0 +1,924 @@
|
@@ -0,0 +1,924 @@
|
||||||
+/******************************************************************************
|
+/******************************************************************************
|
||||||
+ * FILE PURPOSE: TNETD73xx Misc modules API Source
|
+ * FILE PURPOSE: TNETD73xx Misc modules API Source
|
||||||
|
@ -2908,9 +2908,9 @@ diff -urN linux-2.4.30/arch/mips/ar7/tnetd73xx_misc.c linux-2.4.30.current/arch/
|
||||||
+ return ( (pin_value & (1 << gpio_pin)) ? 1 : 0 );
|
+ return ( (pin_value & (1 << gpio_pin)) ? 1 : 0 );
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
diff -urN linux-2.4.30/arch/mips/config-shared.in linux-2.4.30.current/arch/mips/config-shared.in
|
diff -ruN linux_2_4_30/arch/mips/config-shared.in linux/arch/mips/config-shared.in
|
||||||
--- linux-2.4.30/arch/mips/config-shared.in 2005-06-11 20:24:09.000000000 +0200
|
--- linux_2_4_30/arch/mips/config-shared.in 2005-05-22 18:24:01.000000000 +0000
|
||||||
+++ linux-2.4.30.current/arch/mips/config-shared.in 2005-06-12 20:14:28.000000000 +0200
|
+++ linux/arch/mips/config-shared.in 2005-06-12 10:34:41.000000000 +0000
|
||||||
@@ -20,6 +20,15 @@
|
@@ -20,6 +20,15 @@
|
||||||
mainmenu_option next_comment
|
mainmenu_option next_comment
|
||||||
comment 'Machine selection'
|
comment 'Machine selection'
|
||||||
|
@ -2955,9 +2955,9 @@ diff -urN linux-2.4.30/arch/mips/config-shared.in linux-2.4.30.current/arch/mips
|
||||||
"$CONFIG_CASIO_E55" = "y" -o \
|
"$CONFIG_CASIO_E55" = "y" -o \
|
||||||
"$CONFIG_DECSTATION" = "y" -o \
|
"$CONFIG_DECSTATION" = "y" -o \
|
||||||
"$CONFIG_IBM_WORKPAD" = "y" -o \
|
"$CONFIG_IBM_WORKPAD" = "y" -o \
|
||||||
diff -urN linux-2.4.30/arch/mips/kernel/irq.c linux-2.4.30.current/arch/mips/kernel/irq.c
|
diff -ruN linux_2_4_30/arch/mips/kernel/irq.c linux/arch/mips/kernel/irq.c
|
||||||
--- linux-2.4.30/arch/mips/kernel/irq.c 2004-02-18 14:36:30.000000000 +0100
|
--- linux_2_4_30/arch/mips/kernel/irq.c 2005-05-22 18:24:12.000000000 +0000
|
||||||
+++ linux-2.4.30.current/arch/mips/kernel/irq.c 2005-06-12 20:21:34.000000000 +0200
|
+++ linux/arch/mips/kernel/irq.c 2005-06-11 11:02:36.000000000 +0000
|
||||||
@@ -76,6 +76,7 @@
|
@@ -76,6 +76,7 @@
|
||||||
* Generic, controller-independent functions:
|
* Generic, controller-independent functions:
|
||||||
*/
|
*/
|
||||||
|
@ -3006,9 +3006,9 @@ diff -urN linux-2.4.30/arch/mips/kernel/irq.c linux-2.4.30.current/arch/mips/ker
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* IRQ autodetection code..
|
* IRQ autodetection code..
|
||||||
diff -urN linux-2.4.30/arch/mips/kernel/setup.c linux-2.4.30.current/arch/mips/kernel/setup.c
|
diff -ruN linux_2_4_30/arch/mips/kernel/setup.c linux/arch/mips/kernel/setup.c
|
||||||
--- linux-2.4.30/arch/mips/kernel/setup.c 2005-06-11 20:24:07.000000000 +0200
|
--- linux_2_4_30/arch/mips/kernel/setup.c 2005-05-22 18:24:12.000000000 +0000
|
||||||
+++ linux-2.4.30.current/arch/mips/kernel/setup.c 2005-06-12 20:14:28.000000000 +0200
|
+++ linux/arch/mips/kernel/setup.c 2005-06-12 10:37:51.000000000 +0000
|
||||||
@@ -109,6 +109,7 @@
|
@@ -109,6 +109,7 @@
|
||||||
unsigned long isa_slot_offset;
|
unsigned long isa_slot_offset;
|
||||||
EXPORT_SYMBOL(isa_slot_offset);
|
EXPORT_SYMBOL(isa_slot_offset);
|
||||||
|
@ -3056,9 +3056,9 @@ diff -urN linux-2.4.30/arch/mips/kernel/setup.c linux-2.4.30.current/arch/mips/k
|
||||||
default:
|
default:
|
||||||
panic("Unsupported architecture");
|
panic("Unsupported architecture");
|
||||||
}
|
}
|
||||||
diff -urN linux-2.4.30/arch/mips/kernel/traps.c linux-2.4.30.current/arch/mips/kernel/traps.c
|
diff -ruN linux_2_4_30/arch/mips/kernel/traps.c linux/arch/mips/kernel/traps.c
|
||||||
--- linux-2.4.30/arch/mips/kernel/traps.c 2005-06-11 20:24:07.000000000 +0200
|
--- linux_2_4_30/arch/mips/kernel/traps.c 2005-05-22 18:24:13.000000000 +0000
|
||||||
+++ linux-2.4.30.current/arch/mips/kernel/traps.c 2005-06-12 20:24:13.000000000 +0200
|
+++ linux/arch/mips/kernel/traps.c 2005-06-12 11:07:11.000000000 +0000
|
||||||
@@ -40,6 +40,10 @@
|
@@ -40,6 +40,10 @@
|
||||||
#include <asm/uaccess.h>
|
#include <asm/uaccess.h>
|
||||||
#include <asm/mmu_context.h>
|
#include <asm/mmu_context.h>
|
||||||
|
@ -3070,7 +3070,23 @@ diff -urN linux-2.4.30/arch/mips/kernel/traps.c linux-2.4.30.current/arch/mips/k
|
||||||
extern asmlinkage void handle_mod(void);
|
extern asmlinkage void handle_mod(void);
|
||||||
extern asmlinkage void handle_tlbl(void);
|
extern asmlinkage void handle_tlbl(void);
|
||||||
extern asmlinkage void handle_tlbs(void);
|
extern asmlinkage void handle_tlbs(void);
|
||||||
@@ -920,14 +924,37 @@
|
@@ -869,9 +873,15 @@
|
||||||
|
|
||||||
|
exception_handlers[n] = handler;
|
||||||
|
if (n == 0 && cpu_has_divec) {
|
||||||
|
+#ifdef CONFIG_AR7
|
||||||
|
+ *(volatile u32 *)(AVALANCHE_VECS_KSEG0+0x200) = 0x08000000 |
|
||||||
|
+ (0x03ffffff & (handler >> 2));
|
||||||
|
+ flush_icache_range(AVALANCHE_VECS_KSEG0+0x200, AVALANCHE_VECS_KSEG0 + 0x204);
|
||||||
|
+#else
|
||||||
|
*(volatile u32 *)(KSEG0+0x200) = 0x08000000 |
|
||||||
|
(0x03ffffff & (handler >> 2));
|
||||||
|
flush_icache_range(KSEG0+0x200, KSEG0 + 0x204);
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
return (void *)old_handler;
|
||||||
|
}
|
||||||
|
@@ -920,14 +930,46 @@
|
||||||
void __init trap_init(void)
|
void __init trap_init(void)
|
||||||
{
|
{
|
||||||
extern char except_vec1_generic;
|
extern char except_vec1_generic;
|
||||||
|
@ -3089,28 +3105,80 @@ diff -urN linux-2.4.30/arch/mips/kernel/traps.c linux-2.4.30.current/arch/mips/k
|
||||||
+
|
+
|
||||||
/* Copy the generic exception handler code to it's final destination. */
|
/* Copy the generic exception handler code to it's final destination. */
|
||||||
memcpy((void *)(KSEG0 + 0x80), &except_vec1_generic, 0x80);
|
memcpy((void *)(KSEG0 + 0x80), &except_vec1_generic, 0x80);
|
||||||
|
|
||||||
+#ifdef CONFIG_AR7
|
|
||||||
+ memcpy((void *)(KSEG0 + 0x100), &except_vec2_generic, 0x80);
|
+ memcpy((void *)(KSEG0 + 0x100), &except_vec2_generic, 0x80);
|
||||||
+ memcpy((void *)(KSEG0 + 0x180), &except_vec3_generic, 0x80);
|
+ memcpy((void *)(KSEG0 + 0x180), &except_vec3_generic, 0x80);
|
||||||
+ flush_icache_range(KSEG0, KSEG0 + 0x200);
|
|
||||||
|
+ memcpy((void *)(KSEG0 + 0x0), &jump_tlb_miss, 0x80);
|
||||||
|
+ memcpy((void *)(KSEG0 + 0x80), &jump_tlb_miss_unused, 0x80);
|
||||||
|
+ memcpy((void *)(KSEG0 + 0x100), &jump_cache_error, 0x80);
|
||||||
|
+ memcpy((void *)(KSEG0 + 0x180), &jump_general_exception, 0x80);
|
||||||
|
+ memcpy((void *)(KSEG0 + 0x200), &jump_dedicated_interrupt, 0x80);
|
||||||
+
|
+
|
||||||
+ /* jump table to exception routines */
|
+#ifdef CONFIG_AR7
|
||||||
|
+ memcpy((void *)(AVALANCHE_VECS_KSEG0 + 0x80), &except_vec1_generic, 0x80);
|
||||||
|
+ memcpy((void *)(AVALANCHE_VECS_KSEG0 + 0x100), &except_vec2_generic, 0x80);
|
||||||
|
+ memcpy((void *)(AVALANCHE_VECS_KSEG0 + 0x180), &except_vec3_generic, 0x80);
|
||||||
|
+ flush_icache_range(AVALANCHE_VECS_KSEG0, AVALANCHE_VECS_KSEG0 + 0x200);
|
||||||
+
|
+
|
||||||
+ memcpy((void *)(KSEG0 + 0x0), &jump_tlb_miss, 0x80);
|
+ memcpy((void *)(KSEG0 + 0x0), &jump_tlb_miss, 0x80);
|
||||||
+ memcpy((void *)(KSEG0 + 0x80), &jump_tlb_miss_unused, 0x80);
|
+ memcpy((void *)(KSEG0 + 0x80), &jump_tlb_miss_unused, 0x80);
|
||||||
+ memcpy((void *)(KSEG0 + 0x100), &jump_cache_error, 0x80);
|
+ memcpy((void *)(KSEG0 + 0x100), &jump_cache_error, 0x80);
|
||||||
+ memcpy((void *)(KSEG0 + 0x180), &jump_general_exception, 0x80);
|
+ memcpy((void *)(KSEG0 + 0x180), &jump_general_exception, 0x80);
|
||||||
+ memcpy((void *)(KSEG0 + 0x200), &jump_dedicated_interrupt, 0x80);
|
+ memcpy((void *)(KSEG0 + 0x200), &jump_dedicated_interrupt, 0x80);
|
||||||
+ flush_icache_range(KSEG0 + 0x80, KSEG0 + 0x200);
|
+#else
|
||||||
|
+ memcpy((void *)(KSEG0 + 0x80), &except_vec1_generic, 0x80);
|
||||||
+#endif
|
+#endif
|
||||||
|
+ flush_icache_range(KSEG0 + 0x80, KSEG0 + 0x200);
|
||||||
+
|
+
|
||||||
/*
|
/*
|
||||||
* Setup default vectors
|
* Setup default vectors
|
||||||
*/
|
*/
|
||||||
diff -urN linux-2.4.30/arch/mips/lib/promlib.c linux-2.4.30.current/arch/mips/lib/promlib.c
|
@@ -951,8 +993,12 @@
|
||||||
--- linux-2.4.30/arch/mips/lib/promlib.c 2003-08-25 13:44:40.000000000 +0200
|
* Some MIPS CPUs have a dedicated interrupt vector which reduces the
|
||||||
+++ linux-2.4.30.current/arch/mips/lib/promlib.c 2005-06-12 20:14:28.000000000 +0200
|
* interrupt processing overhead. Use it where available.
|
||||||
|
*/
|
||||||
|
+#ifdef CONFIG_AR7
|
||||||
|
+ memcpy((void *)(AVALANCHE_VECS_KSEG0 + 0x200), &except_vec4, 8);
|
||||||
|
+#else
|
||||||
|
if (cpu_has_divec)
|
||||||
|
memcpy((void *)(KSEG0 + 0x200), &except_vec4, 8);
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Some CPUs can enable/disable for cache parity detection, but does
|
||||||
|
@@ -991,12 +1037,17 @@
|
||||||
|
if (cpu_has_mcheck)
|
||||||
|
set_except_vector(24, handle_mcheck);
|
||||||
|
|
||||||
|
+memcpy((void *)(KSEG0 + 0x180), &except_vec3_generic, 0x80);
|
||||||
|
+#ifdef CONFIG_AR7
|
||||||
|
+ memcpy((void *)(AVALANCHE_VECS_KSEG0 + 0x180), &except_vec3_generic, 0x80);
|
||||||
|
+#else
|
||||||
|
if (cpu_has_vce)
|
||||||
|
memcpy((void *)(KSEG0 + 0x180), &except_vec3_r4000, 0x80);
|
||||||
|
else if (cpu_has_4kex)
|
||||||
|
memcpy((void *)(KSEG0 + 0x180), &except_vec3_generic, 0x80);
|
||||||
|
else
|
||||||
|
memcpy((void *)(KSEG0 + 0x080), &except_vec3_generic, 0x80);
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
if (current_cpu_data.cputype == CPU_R6000 ||
|
||||||
|
current_cpu_data.cputype == CPU_R6000A) {
|
||||||
|
@@ -1023,7 +1074,11 @@
|
||||||
|
if (board_nmi_handler_setup)
|
||||||
|
board_nmi_handler_setup();
|
||||||
|
|
||||||
|
+#ifdef CONFIG_AR7
|
||||||
|
+ flush_icache_range(AVALANCHE_VECS_KSEG0, AVALANCHE_VECS_KSEG0 + 0x200);
|
||||||
|
+#else
|
||||||
|
flush_icache_range(KSEG0, KSEG0 + 0x400);
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
per_cpu_trap_init();
|
||||||
|
}
|
||||||
|
diff -ruN linux_2_4_30/arch/mips/lib/promlib.c linux/arch/mips/lib/promlib.c
|
||||||
|
--- linux_2_4_30/arch/mips/lib/promlib.c 2005-05-22 18:24:14.000000000 +0000
|
||||||
|
+++ linux/arch/mips/lib/promlib.c 2005-06-12 09:16:23.000000000 +0000
|
||||||
@@ -1,3 +1,4 @@
|
@@ -1,3 +1,4 @@
|
||||||
+#ifndef CONFIG_AR7
|
+#ifndef CONFIG_AR7
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
@ -3121,9 +3189,9 @@ diff -urN linux-2.4.30/arch/mips/lib/promlib.c linux-2.4.30.current/arch/mips/li
|
||||||
va_end(args);
|
va_end(args);
|
||||||
}
|
}
|
||||||
+#endif
|
+#endif
|
||||||
diff -urN linux-2.4.30/arch/mips/mm/init.c linux-2.4.30.current/arch/mips/mm/init.c
|
diff -ruN linux_2_4_30/arch/mips/mm/init.c linux/arch/mips/mm/init.c
|
||||||
--- linux-2.4.30/arch/mips/mm/init.c 2004-02-18 14:36:30.000000000 +0100
|
--- linux_2_4_30/arch/mips/mm/init.c 2005-05-22 18:24:17.000000000 +0000
|
||||||
+++ linux-2.4.30.current/arch/mips/mm/init.c 2005-06-12 20:14:28.000000000 +0200
|
+++ linux/arch/mips/mm/init.c 2005-06-12 10:33:49.000000000 +0000
|
||||||
@@ -40,8 +40,10 @@
|
@@ -40,8 +40,10 @@
|
||||||
|
|
||||||
mmu_gather_t mmu_gathers[NR_CPUS];
|
mmu_gather_t mmu_gathers[NR_CPUS];
|
||||||
|
@ -3190,9 +3258,9 @@ diff -urN linux-2.4.30/arch/mips/mm/init.c linux-2.4.30.current/arch/mips/mm/ini
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
+#endif
|
+#endif
|
||||||
diff -urN linux-2.4.30/arch/mips/mm/tlb-r4k.c linux-2.4.30.current/arch/mips/mm/tlb-r4k.c
|
diff -ruN linux_2_4_30/arch/mips/mm/tlb-r4k.c linux/arch/mips/mm/tlb-r4k.c
|
||||||
--- linux-2.4.30/arch/mips/mm/tlb-r4k.c 2005-06-11 20:24:07.000000000 +0200
|
--- linux_2_4_30/arch/mips/mm/tlb-r4k.c 2005-05-22 18:24:17.000000000 +0000
|
||||||
+++ linux-2.4.30.current/arch/mips/mm/tlb-r4k.c 2005-06-12 20:14:28.000000000 +0200
|
+++ linux/arch/mips/mm/tlb-r4k.c 2005-06-12 11:07:31.000000000 +0000
|
||||||
@@ -20,6 +20,10 @@
|
@@ -20,6 +20,10 @@
|
||||||
#include <asm/pgtable.h>
|
#include <asm/pgtable.h>
|
||||||
#include <asm/system.h>
|
#include <asm/system.h>
|
||||||
|
@ -3204,9 +3272,22 @@ diff -urN linux-2.4.30/arch/mips/mm/tlb-r4k.c linux-2.4.30.current/arch/mips/mm/
|
||||||
extern char except_vec0_nevada, except_vec0_r4000, except_vec0_r4600;
|
extern char except_vec0_nevada, except_vec0_r4000, except_vec0_r4600;
|
||||||
|
|
||||||
/* CP0 hazard avoidance. */
|
/* CP0 hazard avoidance. */
|
||||||
diff -urN linux-2.4.30/drivers/char/serial.c linux-2.4.30.current/drivers/char/serial.c
|
@@ -375,7 +379,12 @@
|
||||||
--- linux-2.4.30/drivers/char/serial.c 2005-06-11 20:24:07.000000000 +0200
|
else if (current_cpu_data.cputype == CPU_R4600)
|
||||||
+++ linux-2.4.30.current/drivers/char/serial.c 2005-06-12 20:14:28.000000000 +0200
|
memcpy((void *)KSEG0, &except_vec0_r4600, 0x80);
|
||||||
|
else
|
||||||
|
+#ifdef CONFIG_AR7
|
||||||
|
+ memcpy((void *)AVALANCHE_VECS_KSEG0, &except_vec0_r4000, 0x80);
|
||||||
|
+ flush_icache_range(AVALANCHE_VECS_KSEG0, AVALANCHE_VECS_KSEG0 + 0x80);
|
||||||
|
+#else
|
||||||
|
memcpy((void *)KSEG0, &except_vec0_r4000, 0x80);
|
||||||
|
flush_icache_range(KSEG0, KSEG0 + 0x80);
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
diff -ruN linux_2_4_30/drivers/char/serial.c linux/drivers/char/serial.c
|
||||||
|
--- linux_2_4_30/drivers/char/serial.c 2005-05-22 18:25:22.000000000 +0000
|
||||||
|
+++ linux/drivers/char/serial.c 2005-06-11 17:39:00.000000000 +0000
|
||||||
@@ -419,7 +419,40 @@
|
@@ -419,7 +419,40 @@
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -3303,11 +3384,10 @@ diff -urN linux-2.4.30/drivers/char/serial.c linux-2.4.30.current/drivers/char/s
|
||||||
cval = cflag & (CSIZE | CSTOPB);
|
cval = cflag & (CSIZE | CSTOPB);
|
||||||
#if defined(__powerpc__) || defined(__alpha__)
|
#if defined(__powerpc__) || defined(__alpha__)
|
||||||
cval >>= 8;
|
cval >>= 8;
|
||||||
Binary files linux-2.4.30/include/asm-mips/.addrspace.h.swp and linux-2.4.30.current/include/asm-mips/.addrspace.h.swp differ
|
diff -ruN linux_2_4_30/include/asm-mips/ar7/ar7.h linux/include/asm-mips/ar7/ar7.h
|
||||||
diff -urN linux-2.4.30/include/asm-mips/ar7/ar7.h linux-2.4.30.current/include/asm-mips/ar7/ar7.h
|
--- linux_2_4_30/include/asm-mips/ar7/ar7.h 1970-01-01 00:00:00.000000000 +0000
|
||||||
--- linux-2.4.30/include/asm-mips/ar7/ar7.h 1970-01-01 01:00:00.000000000 +0100
|
+++ linux/include/asm-mips/ar7/ar7.h 2005-06-12 11:08:12.000000000 +0000
|
||||||
+++ linux-2.4.30.current/include/asm-mips/ar7/ar7.h 2005-06-12 20:59:09.000000000 +0200
|
@@ -0,0 +1,137 @@
|
||||||
@@ -0,0 +1,138 @@
|
|
||||||
+#ifndef _MIPS_AR7_H
|
+#ifndef _MIPS_AR7_H
|
||||||
+#define _MIPS_AR7_H
|
+#define _MIPS_AR7_H
|
||||||
+
|
+
|
||||||
|
@ -3345,9 +3425,8 @@ diff -urN linux-2.4.30/include/asm-mips/ar7/ar7.h linux-2.4.30.current/include/a
|
||||||
+ */
|
+ */
|
||||||
+
|
+
|
||||||
+#define AVALANCHE_VECS (KSEG1ADDR(AVALANCHE_SDRAM_BASE))
|
+#define AVALANCHE_VECS (KSEG1ADDR(AVALANCHE_SDRAM_BASE))
|
||||||
+#define AVALANCHE_VECS_KSEG0 (CPHYSADDR(AVALANCHE_SDRAM_BASE) | 0x80000000)
|
+#define AVALANCHE_VECS_KSEG0 (KSEG0ADDR(AVALANCHE_SDRAM_BASE))
|
||||||
+#undef KSEG0
|
+
|
||||||
+#define KSEG0 AVALANCHE_VECS_KSEG0
|
|
||||||
+
|
+
|
||||||
+/*
|
+/*
|
||||||
+ * Yamon Prom print address.
|
+ * Yamon Prom print address.
|
||||||
|
@ -3446,9 +3525,9 @@ diff -urN linux-2.4.30/include/asm-mips/ar7/ar7.h linux-2.4.30.current/include/a
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+#endif /*_MIPS_AR7_H */
|
+#endif /*_MIPS_AR7_H */
|
||||||
diff -urN linux-2.4.30/include/asm-mips/ar7/avalanche.h linux-2.4.30.current/include/asm-mips/ar7/avalanche.h
|
diff -ruN linux_2_4_30/include/asm-mips/ar7/avalanche.h linux/include/asm-mips/ar7/avalanche.h
|
||||||
--- linux-2.4.30/include/asm-mips/ar7/avalanche.h 1970-01-01 01:00:00.000000000 +0100
|
--- linux_2_4_30/include/asm-mips/ar7/avalanche.h 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ linux-2.4.30.current/include/asm-mips/ar7/avalanche.h 2005-06-12 20:14:28.000000000 +0200
|
+++ linux/include/asm-mips/ar7/avalanche.h 2005-06-11 07:48:48.000000000 +0000
|
||||||
@@ -0,0 +1,183 @@
|
@@ -0,0 +1,183 @@
|
||||||
+/* $Id$
|
+/* $Id$
|
||||||
+ *
|
+ *
|
||||||
|
@ -3633,9 +3712,9 @@ diff -urN linux-2.4.30/include/asm-mips/ar7/avalanche.h linux-2.4.30.current/inc
|
||||||
+
|
+
|
||||||
+
|
+
|
||||||
+
|
+
|
||||||
diff -urN linux-2.4.30/include/asm-mips/ar7/avalanche_int.h linux-2.4.30.current/include/asm-mips/ar7/avalanche_int.h
|
diff -ruN linux_2_4_30/include/asm-mips/ar7/avalanche_int.h linux/include/asm-mips/ar7/avalanche_int.h
|
||||||
--- linux-2.4.30/include/asm-mips/ar7/avalanche_int.h 1970-01-01 01:00:00.000000000 +0100
|
--- linux_2_4_30/include/asm-mips/ar7/avalanche_int.h 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ linux-2.4.30.current/include/asm-mips/ar7/avalanche_int.h 2005-06-12 20:14:28.000000000 +0200
|
+++ linux/include/asm-mips/ar7/avalanche_int.h 2005-06-11 07:48:48.000000000 +0000
|
||||||
@@ -0,0 +1,298 @@
|
@@ -0,0 +1,298 @@
|
||||||
+/* $Id$
|
+/* $Id$
|
||||||
+ *
|
+ *
|
||||||
|
@ -3935,9 +4014,9 @@ diff -urN linux-2.4.30/include/asm-mips/ar7/avalanche_int.h linux-2.4.30.current
|
||||||
+
|
+
|
||||||
+
|
+
|
||||||
+
|
+
|
||||||
diff -urN linux-2.4.30/include/asm-mips/ar7/avalanche_intc.h linux-2.4.30.current/include/asm-mips/ar7/avalanche_intc.h
|
diff -ruN linux_2_4_30/include/asm-mips/ar7/avalanche_intc.h linux/include/asm-mips/ar7/avalanche_intc.h
|
||||||
--- linux-2.4.30/include/asm-mips/ar7/avalanche_intc.h 1970-01-01 01:00:00.000000000 +0100
|
--- linux_2_4_30/include/asm-mips/ar7/avalanche_intc.h 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ linux-2.4.30.current/include/asm-mips/ar7/avalanche_intc.h 2005-06-12 20:14:28.000000000 +0200
|
+++ linux/include/asm-mips/ar7/avalanche_intc.h 2005-06-11 07:48:48.000000000 +0000
|
||||||
@@ -0,0 +1,273 @@
|
@@ -0,0 +1,273 @@
|
||||||
+ /*
|
+ /*
|
||||||
+ * Nitin Dhingra, iamnd@ti.com
|
+ * Nitin Dhingra, iamnd@ti.com
|
||||||
|
@ -4212,9 +4291,9 @@ diff -urN linux-2.4.30/include/asm-mips/ar7/avalanche_intc.h linux-2.4.30.curren
|
||||||
+
|
+
|
||||||
+
|
+
|
||||||
+#endif /* _AVALANCHE_INTC_H */
|
+#endif /* _AVALANCHE_INTC_H */
|
||||||
diff -urN linux-2.4.30/include/asm-mips/ar7/avalanche_prom.h linux-2.4.30.current/include/asm-mips/ar7/avalanche_prom.h
|
diff -ruN linux_2_4_30/include/asm-mips/ar7/avalanche_prom.h linux/include/asm-mips/ar7/avalanche_prom.h
|
||||||
--- linux-2.4.30/include/asm-mips/ar7/avalanche_prom.h 1970-01-01 01:00:00.000000000 +0100
|
--- linux_2_4_30/include/asm-mips/ar7/avalanche_prom.h 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ linux-2.4.30.current/include/asm-mips/ar7/avalanche_prom.h 2005-06-12 20:14:28.000000000 +0200
|
+++ linux/include/asm-mips/ar7/avalanche_prom.h 2005-06-11 07:48:48.000000000 +0000
|
||||||
@@ -0,0 +1,54 @@
|
@@ -0,0 +1,54 @@
|
||||||
+/* $Id$
|
+/* $Id$
|
||||||
+ *
|
+ *
|
||||||
|
@ -4270,9 +4349,9 @@ diff -urN linux-2.4.30/include/asm-mips/ar7/avalanche_prom.h linux-2.4.30.curren
|
||||||
+
|
+
|
||||||
+#endif /* !(_MIPS_PROM_H) */
|
+#endif /* !(_MIPS_PROM_H) */
|
||||||
+
|
+
|
||||||
diff -urN linux-2.4.30/include/asm-mips/ar7/avalanche_regs.h linux-2.4.30.current/include/asm-mips/ar7/avalanche_regs.h
|
diff -ruN linux_2_4_30/include/asm-mips/ar7/avalanche_regs.h linux/include/asm-mips/ar7/avalanche_regs.h
|
||||||
--- linux-2.4.30/include/asm-mips/ar7/avalanche_regs.h 1970-01-01 01:00:00.000000000 +0100
|
--- linux_2_4_30/include/asm-mips/ar7/avalanche_regs.h 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ linux-2.4.30.current/include/asm-mips/ar7/avalanche_regs.h 2005-06-12 20:14:28.000000000 +0200
|
+++ linux/include/asm-mips/ar7/avalanche_regs.h 2005-06-11 07:48:48.000000000 +0000
|
||||||
@@ -0,0 +1,567 @@
|
@@ -0,0 +1,567 @@
|
||||||
+/*
|
+/*
|
||||||
+ * $Id$
|
+ * $Id$
|
||||||
|
@ -4841,9 +4920,9 @@ diff -urN linux-2.4.30/include/asm-mips/ar7/avalanche_regs.h linux-2.4.30.curren
|
||||||
+
|
+
|
||||||
+
|
+
|
||||||
+
|
+
|
||||||
diff -urN linux-2.4.30/include/asm-mips/ar7/tnetd73xx.h linux-2.4.30.current/include/asm-mips/ar7/tnetd73xx.h
|
diff -ruN linux_2_4_30/include/asm-mips/ar7/tnetd73xx.h linux/include/asm-mips/ar7/tnetd73xx.h
|
||||||
--- linux-2.4.30/include/asm-mips/ar7/tnetd73xx.h 1970-01-01 01:00:00.000000000 +0100
|
--- linux_2_4_30/include/asm-mips/ar7/tnetd73xx.h 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ linux-2.4.30.current/include/asm-mips/ar7/tnetd73xx.h 2005-06-12 20:14:28.000000000 +0200
|
+++ linux/include/asm-mips/ar7/tnetd73xx.h 2005-06-12 10:28:19.000000000 +0000
|
||||||
@@ -0,0 +1,340 @@
|
@@ -0,0 +1,340 @@
|
||||||
+/******************************************************************************
|
+/******************************************************************************
|
||||||
+ * FILE PURPOSE: TNETD73xx Common Header File
|
+ * FILE PURPOSE: TNETD73xx Common Header File
|
||||||
|
@ -5185,9 +5264,9 @@ diff -urN linux-2.4.30/include/asm-mips/ar7/tnetd73xx.h linux-2.4.30.current/inc
|
||||||
+
|
+
|
||||||
+
|
+
|
||||||
+#endif /* __TNETD73XX_H_ */
|
+#endif /* __TNETD73XX_H_ */
|
||||||
diff -urN linux-2.4.30/include/asm-mips/ar7/tnetd73xx_err.h linux-2.4.30.current/include/asm-mips/ar7/tnetd73xx_err.h
|
diff -ruN linux_2_4_30/include/asm-mips/ar7/tnetd73xx_err.h linux/include/asm-mips/ar7/tnetd73xx_err.h
|
||||||
--- linux-2.4.30/include/asm-mips/ar7/tnetd73xx_err.h 1970-01-01 01:00:00.000000000 +0100
|
--- linux_2_4_30/include/asm-mips/ar7/tnetd73xx_err.h 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ linux-2.4.30.current/include/asm-mips/ar7/tnetd73xx_err.h 2005-06-12 20:14:28.000000000 +0200
|
+++ linux/include/asm-mips/ar7/tnetd73xx_err.h 2005-06-11 07:48:48.000000000 +0000
|
||||||
@@ -0,0 +1,42 @@
|
@@ -0,0 +1,42 @@
|
||||||
+/******************************************************************************
|
+/******************************************************************************
|
||||||
+ * FILE PURPOSE: TNETD73xx Error Definations Header File
|
+ * FILE PURPOSE: TNETD73xx Error Definations Header File
|
||||||
|
@ -5231,9 +5310,9 @@ diff -urN linux-2.4.30/include/asm-mips/ar7/tnetd73xx_err.h linux-2.4.30.current
|
||||||
+} TNETD73XX_ERR;
|
+} TNETD73XX_ERR;
|
||||||
+
|
+
|
||||||
+#endif /* __TNETD73XX_ERR_H__ */
|
+#endif /* __TNETD73XX_ERR_H__ */
|
||||||
diff -urN linux-2.4.30/include/asm-mips/ar7/tnetd73xx_misc.h linux-2.4.30.current/include/asm-mips/ar7/tnetd73xx_misc.h
|
diff -ruN linux_2_4_30/include/asm-mips/ar7/tnetd73xx_misc.h linux/include/asm-mips/ar7/tnetd73xx_misc.h
|
||||||
--- linux-2.4.30/include/asm-mips/ar7/tnetd73xx_misc.h 1970-01-01 01:00:00.000000000 +0100
|
--- linux_2_4_30/include/asm-mips/ar7/tnetd73xx_misc.h 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ linux-2.4.30.current/include/asm-mips/ar7/tnetd73xx_misc.h 2005-06-12 20:14:28.000000000 +0200
|
+++ linux/include/asm-mips/ar7/tnetd73xx_misc.h 2005-06-12 10:29:31.000000000 +0000
|
||||||
@@ -0,0 +1,243 @@
|
@@ -0,0 +1,243 @@
|
||||||
+/******************************************************************************
|
+/******************************************************************************
|
||||||
+ * FILE PURPOSE: TNETD73xx Misc modules API Header
|
+ * FILE PURPOSE: TNETD73xx Misc modules API Header
|
||||||
|
@ -5478,9 +5557,9 @@ diff -urN linux-2.4.30/include/asm-mips/ar7/tnetd73xx_misc.h linux-2.4.30.curren
|
||||||
+u32 tnetd73xx_get_revision(void);
|
+u32 tnetd73xx_get_revision(void);
|
||||||
+
|
+
|
||||||
+#endif /* __TNETD73XX_MISC_H__ */
|
+#endif /* __TNETD73XX_MISC_H__ */
|
||||||
diff -urN linux-2.4.30/include/asm-mips/io.h linux-2.4.30.current/include/asm-mips/io.h
|
diff -ruN linux_2_4_30/include/asm-mips/io.h linux/include/asm-mips/io.h
|
||||||
--- linux-2.4.30/include/asm-mips/io.h 2003-08-25 13:44:43.000000000 +0200
|
--- linux_2_4_30/include/asm-mips/io.h 2005-05-22 18:27:58.000000000 +0000
|
||||||
+++ linux-2.4.30.current/include/asm-mips/io.h 2005-06-12 20:14:28.000000000 +0200
|
+++ linux/include/asm-mips/io.h 2005-06-12 11:08:22.000000000 +0000
|
||||||
@@ -63,8 +63,12 @@
|
@@ -63,8 +63,12 @@
|
||||||
#ifdef CONFIG_64BIT_PHYS_ADDR
|
#ifdef CONFIG_64BIT_PHYS_ADDR
|
||||||
#define page_to_phys(page) ((u64)(page - mem_map) << PAGE_SHIFT)
|
#define page_to_phys(page) ((u64)(page - mem_map) << PAGE_SHIFT)
|
||||||
|
@ -5494,9 +5573,9 @@ diff -urN linux-2.4.30/include/asm-mips/io.h linux-2.4.30.current/include/asm-mi
|
||||||
|
|
||||||
#define IO_SPACE_LIMIT 0xffff
|
#define IO_SPACE_LIMIT 0xffff
|
||||||
|
|
||||||
diff -urN linux-2.4.30/include/asm-mips/irq.h linux-2.4.30.current/include/asm-mips/irq.h
|
diff -ruN linux_2_4_30/include/asm-mips/irq.h linux/include/asm-mips/irq.h
|
||||||
--- linux-2.4.30/include/asm-mips/irq.h 2003-08-25 13:44:43.000000000 +0200
|
--- linux_2_4_30/include/asm-mips/irq.h 2005-05-22 18:27:58.000000000 +0000
|
||||||
+++ linux-2.4.30.current/include/asm-mips/irq.h 2005-06-12 20:14:28.000000000 +0200
|
+++ linux/include/asm-mips/irq.h 2005-06-12 10:22:33.000000000 +0000
|
||||||
@@ -14,7 +14,12 @@
|
@@ -14,7 +14,12 @@
|
||||||
#include <linux/config.h>
|
#include <linux/config.h>
|
||||||
#include <linux/linkage.h>
|
#include <linux/linkage.h>
|
||||||
|
@ -5510,9 +5589,9 @@ diff -urN linux-2.4.30/include/asm-mips/irq.h linux-2.4.30.current/include/asm-m
|
||||||
|
|
||||||
#ifdef CONFIG_I8259
|
#ifdef CONFIG_I8259
|
||||||
static inline int irq_cannonicalize(int irq)
|
static inline int irq_cannonicalize(int irq)
|
||||||
diff -urN linux-2.4.30/include/asm-mips/page.h linux-2.4.30.current/include/asm-mips/page.h
|
diff -ruN linux_2_4_30/include/asm-mips/page.h linux/include/asm-mips/page.h
|
||||||
--- linux-2.4.30/include/asm-mips/page.h 2004-02-18 14:36:32.000000000 +0100
|
--- linux_2_4_30/include/asm-mips/page.h 2005-05-22 18:27:59.000000000 +0000
|
||||||
+++ linux-2.4.30.current/include/asm-mips/page.h 2005-06-12 20:14:28.000000000 +0200
|
+++ linux/include/asm-mips/page.h 2005-06-12 10:39:06.000000000 +0000
|
||||||
@@ -129,7 +129,11 @@
|
@@ -129,7 +129,11 @@
|
||||||
|
|
||||||
#define __pa(x) ((unsigned long) (x) - PAGE_OFFSET)
|
#define __pa(x) ((unsigned long) (x) - PAGE_OFFSET)
|
||||||
|
@ -5525,9 +5604,9 @@ diff -urN linux-2.4.30/include/asm-mips/page.h linux-2.4.30.current/include/asm-
|
||||||
#define VALID_PAGE(page) ((page - mem_map) < max_mapnr)
|
#define VALID_PAGE(page) ((page - mem_map) < max_mapnr)
|
||||||
|
|
||||||
#define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \
|
#define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \
|
||||||
diff -urN linux-2.4.30/include/asm-mips/pgtable-32.h linux-2.4.30.current/include/asm-mips/pgtable-32.h
|
diff -ruN linux_2_4_30/include/asm-mips/pgtable-32.h linux/include/asm-mips/pgtable-32.h
|
||||||
--- linux-2.4.30/include/asm-mips/pgtable-32.h 2004-02-18 14:36:32.000000000 +0100
|
--- linux_2_4_30/include/asm-mips/pgtable-32.h 2005-05-22 18:27:59.000000000 +0000
|
||||||
+++ linux-2.4.30.current/include/asm-mips/pgtable-32.h 2005-06-12 20:14:28.000000000 +0200
|
+++ linux/include/asm-mips/pgtable-32.h 2005-06-12 10:39:06.000000000 +0000
|
||||||
@@ -108,7 +108,18 @@
|
@@ -108,7 +108,18 @@
|
||||||
* and a page entry and page directory to the page they refer to.
|
* and a page entry and page directory to the page they refer to.
|
||||||
*/
|
*/
|
||||||
|
@ -5568,9 +5647,9 @@ diff -urN linux-2.4.30/include/asm-mips/pgtable-32.h linux-2.4.30.current/includ
|
||||||
#define pte_page(x) (mem_map+((unsigned long)(((x).pte_low >> (PAGE_SHIFT+2)))))
|
#define pte_page(x) (mem_map+((unsigned long)(((x).pte_low >> (PAGE_SHIFT+2)))))
|
||||||
#define __mk_pte(page_nr,pgprot) __pte(((page_nr) << (PAGE_SHIFT+2)) | pgprot_val(pgprot))
|
#define __mk_pte(page_nr,pgprot) __pte(((page_nr) << (PAGE_SHIFT+2)) | pgprot_val(pgprot))
|
||||||
#else
|
#else
|
||||||
diff -urN linux-2.4.30/include/asm-mips/serial.h linux-2.4.30.current/include/asm-mips/serial.h
|
diff -ruN linux_2_4_30/include/asm-mips/serial.h linux/include/asm-mips/serial.h
|
||||||
--- linux-2.4.30/include/asm-mips/serial.h 2005-01-19 15:10:12.000000000 +0100
|
--- linux_2_4_30/include/asm-mips/serial.h 2005-05-22 18:28:00.000000000 +0000
|
||||||
+++ linux-2.4.30.current/include/asm-mips/serial.h 2005-06-12 20:14:28.000000000 +0200
|
+++ linux/include/asm-mips/serial.h 2005-06-12 11:08:39.000000000 +0000
|
||||||
@@ -65,6 +65,15 @@
|
@@ -65,6 +65,15 @@
|
||||||
|
|
||||||
#define C_P(card,port) (((card)<<6|(port)<<3) + 1)
|
#define C_P(card,port) (((card)<<6|(port)<<3) + 1)
|
||||||
|
|
248
openwrt/target/linux/linux-2.4/patches/ar7/001-flash_map.patch
Normal file
248
openwrt/target/linux/linux-2.4/patches/ar7/001-flash_map.patch
Normal file
|
@ -0,0 +1,248 @@
|
||||||
|
diff -Nru linux-2.4.30-openwrt/drivers/mtd/maps/Config.in linux-2.4.30-wag-jiauka/drivers/mtd/maps/Config.in
|
||||||
|
--- linux-2.4.30-openwrt/drivers/mtd/maps/Config.in Sun May 29 18:07:48 2005
|
||||||
|
+++ linux-2.4.30-wag-jiauka/drivers/mtd/maps/Config.in Thu Jun 9 01:49:32 2005
|
||||||
|
@@ -48,6 +48,21 @@
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$CONFIG_MIPS" = "y" ]; then
|
||||||
|
+ if [ "$CONFIG_AR7" = "y" ]; then
|
||||||
|
+ dep_tristate ' Flash chip mapping on Texas Instruments AR7' CONFIG_MTD_AVALANCHE $CONFIG_MTD_CFI $CONFIG_MTD_PARTITIONS
|
||||||
|
+ dep_bool ' Use defaults for Texas Instruments AR7' CONFIG_MTD_AVALANCHE_DEFAULTS $CONFIG_MTD_AVALANCHE
|
||||||
|
+ if [ "$CONFIG_MTD_AVALANCHE" = "y" -o "$CONFIG_MTD_AVALANCHE" = "m" ]; then
|
||||||
|
+ if [ "$CONFIG_MTD_AVALANCHE_DEFAULTS" = "y" ]; then
|
||||||
|
+ define_hex CONFIG_MTD_AVALANCHE_START 0x10000000
|
||||||
|
+ define_hex CONFIG_MTD_AVALANCHE_LEN 0x400000
|
||||||
|
+ define_int CONFIG_MTD_AVALANCHE_BUSWIDTH 2
|
||||||
|
+ else
|
||||||
|
+ hex ' Physical start address of flash mapping' CONFIG_MTD_AVALANCHE_START 0x10000000
|
||||||
|
+ hex ' Physical length of flash mapping' CONFIG_MTD_AVALANCHE_LEN 0x400000
|
||||||
|
+ int ' Bus width in octets' CONFIG_MTD_AVALANCHE_BUSWIDTH 2
|
||||||
|
+ fi
|
||||||
|
+ fi
|
||||||
|
+ fi
|
||||||
|
dep_tristate ' Pb1000 MTD support' CONFIG_MTD_PB1000 $CONFIG_MIPS_PB1000
|
||||||
|
dep_tristate ' Pb1500 MTD support' CONFIG_MTD_PB1500 $CONFIG_MIPS_PB1500
|
||||||
|
dep_tristate ' Pb1100 MTD support' CONFIG_MTD_PB1100 $CONFIG_MIPS_PB1100
|
||||||
|
diff -Nru linux-2.4.30-openwrt/drivers/mtd/maps/Makefile linux-2.4.30-wag-jiauka/drivers/mtd/maps/Makefile
|
||||||
|
--- linux-2.4.30-openwrt/drivers/mtd/maps/Makefile Sun May 29 18:07:48 2005
|
||||||
|
+++ linux-2.4.30-wag-jiauka/drivers/mtd/maps/Makefile Thu Jun 9 01:49:32 2005
|
||||||
|
@@ -10,6 +10,7 @@
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Chip mappings
|
||||||
|
+obj-$(CONFIG_MTD_AVALANCHE) += ar7-flash.o
|
||||||
|
obj-$(CONFIG_MTD_CDB89712) += cdb89712.o
|
||||||
|
obj-$(CONFIG_MTD_ARM_INTEGRATOR)+= integrator-flash.o
|
||||||
|
obj-$(CONFIG_MTD_CFI_FLAGADM) += cfi_flagadm.o
|
||||||
|
diff -Nru linux-2.4.30-openwrt/drivers/mtd/maps/ar7-flash.c linux-2.4.30-wag-jiauka/drivers/mtd/maps/ar7-flash.c
|
||||||
|
--- linux-2.4.30-openwrt/drivers/mtd/maps/ar7-flash.c Thu Jan 1 01:00:00 1970
|
||||||
|
+++ linux-2.4.30-wag-jiauka/drivers/mtd/maps/ar7-flash.c Thu Jun 9 01:49:32 2005
|
||||||
|
@@ -0,0 +1,208 @@
|
||||||
|
+/*
|
||||||
|
+ * $Id$
|
||||||
|
+ *
|
||||||
|
+ * Normal mappings of chips in physical memory
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
+#include <linux/module.h>
|
||||||
|
+#include <linux/types.h>
|
||||||
|
+#include <linux/kernel.h>
|
||||||
|
+#include <asm/io.h>
|
||||||
|
+#include <linux/mtd/mtd.h>
|
||||||
|
+#include <linux/mtd/map.h>
|
||||||
|
+#include <linux/config.h>
|
||||||
|
+#include <linux/mtd/partitions.h>
|
||||||
|
+
|
||||||
|
+#define WINDOW_ADDR CONFIG_MTD_AVALANCHE_START
|
||||||
|
+#define WINDOW_SIZE CONFIG_MTD_AVALANCHE_LEN
|
||||||
|
+#define BUSWIDTH CONFIG_MTD_AVALANCHE_BUSWIDTH
|
||||||
|
+
|
||||||
|
+#include <asm/mips-boards/prom.h>
|
||||||
|
+extern char *prom_getenv(char *name);
|
||||||
|
+
|
||||||
|
+static int create_mtd_partitions(void);
|
||||||
|
+static void __exit avalanche_mtd_cleanup(void);
|
||||||
|
+
|
||||||
|
+/* avalanche__partition_info gives details on the logical partitions that splits
|
||||||
|
+ * the flash device into. If the size if zero we use up to the end of
|
||||||
|
+ * the device. */
|
||||||
|
+#define MAX_NUM_PARTITIONS 5
|
||||||
|
+static struct mtd_partition avalanche_partition_info[MAX_NUM_PARTITIONS];
|
||||||
|
+static int num_of_partitions = 0;
|
||||||
|
+
|
||||||
|
+static struct mtd_info *avalanche_mtd_info;
|
||||||
|
+
|
||||||
|
+int avalanche_mtd_ready=0;
|
||||||
|
+
|
||||||
|
+__u8 avalanche_read8(struct map_info *map, unsigned long ofs)
|
||||||
|
+{
|
||||||
|
+ return __raw_readb(map->map_priv_1 + ofs);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+__u16 avalanche_read16(struct map_info *map, unsigned long ofs)
|
||||||
|
+{
|
||||||
|
+ return __raw_readw(map->map_priv_1 + ofs);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+__u32 avalanche_read32(struct map_info *map, unsigned long ofs)
|
||||||
|
+{
|
||||||
|
+ return __raw_readl(map->map_priv_1 + ofs);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void avalanche_copy_from(struct map_info *map, void *to, unsigned long from, ssize_t len)
|
||||||
|
+{
|
||||||
|
+ memcpy_fromio(to, map->map_priv_1 + from, len);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void avalanche_write8(struct map_info *map, __u8 d, unsigned long adr)
|
||||||
|
+{
|
||||||
|
+ __raw_writeb(d, map->map_priv_1 + adr);
|
||||||
|
+ mb();
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void avalanche_write16(struct map_info *map, __u16 d, unsigned long adr)
|
||||||
|
+{
|
||||||
|
+ __raw_writew(d, map->map_priv_1 + adr);
|
||||||
|
+ mb();
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void avalanche_write32(struct map_info *map, __u32 d, unsigned long adr)
|
||||||
|
+{
|
||||||
|
+ __raw_writel(d, map->map_priv_1 + adr);
|
||||||
|
+ mb();
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void avalanche_copy_to(struct map_info *map, unsigned long to, const void *from, ssize_t len)
|
||||||
|
+{
|
||||||
|
+ memcpy_toio(map->map_priv_1 + to, from, len);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+struct map_info avalanche_map = {
|
||||||
|
+ name: "Physically mapped flash",
|
||||||
|
+ size: WINDOW_SIZE,
|
||||||
|
+ buswidth: BUSWIDTH,
|
||||||
|
+ read8: avalanche_read8,
|
||||||
|
+ read16: avalanche_read16,
|
||||||
|
+ read32: avalanche_read32,
|
||||||
|
+ copy_from: avalanche_copy_from,
|
||||||
|
+ write8: avalanche_write8,
|
||||||
|
+ write16: avalanche_write16,
|
||||||
|
+ write32: avalanche_write32,
|
||||||
|
+ copy_to: avalanche_copy_to
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+int __init avalanche_mtd_init(void)
|
||||||
|
+{
|
||||||
|
+ printk(KERN_NOTICE "avalanche flash device: 0x%lx at 0x%lx.\n", (unsigned long)WINDOW_SIZE, (unsigned long)WINDOW_ADDR);
|
||||||
|
+ avalanche_map.map_priv_1 = (unsigned long)ioremap_nocache(WINDOW_ADDR, WINDOW_SIZE);
|
||||||
|
+
|
||||||
|
+ if (!avalanche_map.map_priv_1) {
|
||||||
|
+ printk("Failed to ioremap\n");
|
||||||
|
+ return -EIO;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ avalanche_mtd_info = do_map_probe("cfi_probe", &avalanche_map);
|
||||||
|
+ if (!avalanche_mtd_info)
|
||||||
|
+ {
|
||||||
|
+ avalanche_mtd_cleanup();
|
||||||
|
+ return -ENXIO;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ avalanche_mtd_info->module = THIS_MODULE;
|
||||||
|
+
|
||||||
|
+ if (!create_mtd_partitions())
|
||||||
|
+ add_mtd_device(avalanche_mtd_info);
|
||||||
|
+ else
|
||||||
|
+ add_mtd_partitions(avalanche_mtd_info, avalanche_partition_info, num_of_partitions);
|
||||||
|
+
|
||||||
|
+ avalanche_mtd_ready=1;
|
||||||
|
+
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static char *strdup(char *str)
|
||||||
|
+{
|
||||||
|
+ int n = strlen(str)+1;
|
||||||
|
+ char *s = kmalloc(n, GFP_KERNEL);
|
||||||
|
+ if (!s) return NULL;
|
||||||
|
+ return strcpy(s, str);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+static int create_mtd_partitions(void)
|
||||||
|
+{
|
||||||
|
+ unsigned int offset;
|
||||||
|
+ unsigned int size;
|
||||||
|
+ unsigned int found;
|
||||||
|
+ unsigned char *flash_base;
|
||||||
|
+ unsigned char *flash_end;
|
||||||
|
+ char *env_ptr;
|
||||||
|
+ char *base_ptr;
|
||||||
|
+ char *end_ptr;
|
||||||
|
+
|
||||||
|
+ do {
|
||||||
|
+ char env_name[20];
|
||||||
|
+
|
||||||
|
+ found = 0;
|
||||||
|
+
|
||||||
|
+ /* get base and end addresses of flash file system from environment */
|
||||||
|
+ sprintf(env_name, "mtd%1u", num_of_partitions);
|
||||||
|
+printk("Looking for mtd device :%s:\n", env_name);
|
||||||
|
+ env_ptr = prom_getenv(env_name);
|
||||||
|
+ if(env_ptr == NULL) {
|
||||||
|
+ /* No more partitions to find */
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /* Extract the start and stop addresses of the partition */
|
||||||
|
+ base_ptr = strtok(env_ptr, ",");
|
||||||
|
+ end_ptr = strtok(NULL, ",");
|
||||||
|
+ if ((base_ptr == NULL) || (end_ptr == NULL)) {
|
||||||
|
+ printk("JFFS2 ERROR: Invalid %s start,end.\n", env_name);
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ flash_base = (unsigned char*) simple_strtol(base_ptr, NULL, 0);
|
||||||
|
+ flash_end = (unsigned char*) simple_strtol(end_ptr, NULL, 0);
|
||||||
|
+ if((!flash_base) || (!flash_end)) {
|
||||||
|
+ printk("JFFS2 ERROR: Invalid %s start,end.\n", env_name);
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ offset = virt_to_bus(flash_base) - WINDOW_ADDR;
|
||||||
|
+ size = flash_end - flash_base;
|
||||||
|
+ printk("Found a %s image (0x%x), with size (0x%x).\n",env_name, offset, size);
|
||||||
|
+
|
||||||
|
+ /* Setup the partition info. We duplicate the env_name for the partiton name */
|
||||||
|
+ avalanche_partition_info[num_of_partitions].name = strdup(env_name);
|
||||||
|
+ avalanche_partition_info[num_of_partitions].offset = offset;
|
||||||
|
+ avalanche_partition_info[num_of_partitions].size = size;
|
||||||
|
+ avalanche_partition_info[num_of_partitions].mask_flags = 0;
|
||||||
|
+ num_of_partitions++;
|
||||||
|
+ } while (num_of_partitions < MAX_NUM_PARTITIONS);
|
||||||
|
+
|
||||||
|
+ return num_of_partitions;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static void __exit avalanche_mtd_cleanup(void)
|
||||||
|
+{
|
||||||
|
+ avalanche_mtd_ready=0;
|
||||||
|
+
|
||||||
|
+ if (avalanche_mtd_info) {
|
||||||
|
+ del_mtd_partitions(avalanche_mtd_info);
|
||||||
|
+ del_mtd_device(avalanche_mtd_info);
|
||||||
|
+ map_destroy(avalanche_mtd_info);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (avalanche_map.map_priv_1) {
|
||||||
|
+ iounmap((void *)avalanche_map.map_priv_1);
|
||||||
|
+ avalanche_map.map_priv_1 = 0;
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+module_init(avalanche_mtd_init);
|
||||||
|
+module_exit(avalanche_mtd_cleanup);
|
||||||
|
+
|
||||||
|
+MODULE_LICENSE("GPL");
|
||||||
|
+MODULE_AUTHOR("Snehaprabha Narnakaje");
|
||||||
|
+MODULE_DESCRIPTION("Avalanche CFI map driver");
|
Loading…
Reference in a new issue