diff -urNd -urNd linux-2.4.20/arch/alpha/boot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/alpha/boot/CVS/Entries
--- linux-2.4.20/arch/alpha/boot/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/alpha/boot/CVS/Entries	2005-01-06 23:08:27.000000000 -0600
@@ -0,0 +1,6 @@
+/Makefile/1.9/Mon Nov  5 20:15:21 2001/-ko/Tlinux_2_4_20
+/bootloader.lds/1.3/Wed Aug 22 03:23:54 2001/-ko/Tlinux_2_4_20
+/bootp.c/1.8/Mon Nov  5 20:15:21 2001/-ko/Tlinux_2_4_20
+/head.S/1.2/Sun Jan  3 17:50:12 1999/-ko/Tlinux_2_4_20
+/main.c/1.5/Mon Jun 19 22:45:38 2000/-ko/Tlinux_2_4_20
+D/tools////
diff -urNd -urNd linux-2.4.20/arch/alpha/boot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/alpha/boot/CVS/Repository
--- linux-2.4.20/arch/alpha/boot/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/alpha/boot/CVS/Repository	2005-01-06 22:59:00.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/alpha/boot
diff -urNd -urNd linux-2.4.20/arch/alpha/boot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/alpha/boot/CVS/Root
--- linux-2.4.20/arch/alpha/boot/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/alpha/boot/CVS/Root	2005-01-06 22:59:00.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/alpha/boot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/alpha/boot/CVS/Tag
--- linux-2.4.20/arch/alpha/boot/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/alpha/boot/CVS/Tag	2005-01-06 22:59:00.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/alpha/boot/tools/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/alpha/boot/tools/CVS/Entries
--- linux-2.4.20/arch/alpha/boot/tools/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/alpha/boot/tools/CVS/Entries	2005-01-06 22:59:00.000000000 -0600
@@ -0,0 +1,3 @@
+/mkbb.c/1.1.1.1/Sun Jun  1 03:16:44 1997/-ko/Tlinux_2_4_20
+/objstrip.c/1.3/Thu Jun 14 04:23:45 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/alpha/boot/tools/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/alpha/boot/tools/CVS/Repository
--- linux-2.4.20/arch/alpha/boot/tools/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/alpha/boot/tools/CVS/Repository	2005-01-06 22:59:00.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/alpha/boot/tools
diff -urNd -urNd linux-2.4.20/arch/alpha/boot/tools/CVS/Root linux-2.4.20-mipscvs-20050106/arch/alpha/boot/tools/CVS/Root
--- linux-2.4.20/arch/alpha/boot/tools/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/alpha/boot/tools/CVS/Root	2005-01-06 22:59:00.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/alpha/boot/tools/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/alpha/boot/tools/CVS/Tag
--- linux-2.4.20/arch/alpha/boot/tools/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/alpha/boot/tools/CVS/Tag	2005-01-06 22:59:00.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/alpha/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/alpha/CVS/Entries
--- linux-2.4.20/arch/alpha/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/alpha/CVS/Entries	2005-01-06 23:08:27.000000000 -0600
@@ -0,0 +1,9 @@
+/Makefile/1.14.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
+/config.in/1.45.2.3/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
+/defconfig/1.27/Sun Dec  2 11:34:34 2001/-ko/Tlinux_2_4_20
+/vmlinux.lds.in/1.3/Sun Dec  2 11:34:34 2001/-ko/Tlinux_2_4_20
+D/boot////
+D/kernel////
+D/lib////
+D/math-emu////
+D/mm////
diff -urNd -urNd linux-2.4.20/arch/alpha/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/alpha/CVS/Repository
--- linux-2.4.20/arch/alpha/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/alpha/CVS/Repository	2005-01-06 22:59:00.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/alpha
diff -urNd -urNd linux-2.4.20/arch/alpha/CVS/Root linux-2.4.20-mipscvs-20050106/arch/alpha/CVS/Root
--- linux-2.4.20/arch/alpha/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/alpha/CVS/Root	2005-01-06 22:59:00.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/alpha/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/alpha/CVS/Tag
--- linux-2.4.20/arch/alpha/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/alpha/CVS/Tag	2005-01-06 22:59:00.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/alpha/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/alpha/kernel/CVS/Entries
--- linux-2.4.20/arch/alpha/kernel/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/alpha/kernel/CVS/Entries	2005-01-06 22:59:04.000000000 -0600
@@ -0,0 +1,63 @@
+/Makefile/1.19/Sat Sep 22 12:49:03 2001/-ko/Tlinux_2_4_20
+/alpha_ksyms.c/1.33.2.3/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
+/check_asm.c/1.1/Sat Sep 19 19:15:24 1998/-ko/Tlinux_2_4_20
+/console.c/1.3/Thu Apr  5 04:56:07 2001/-ko/Tlinux_2_4_20
+/core_apecs.c/1.9/Thu Apr  5 04:56:07 2001/-ko/Tlinux_2_4_20
+/core_cia.c/1.19/Tue Nov  6 00:54:52 2001/-ko/Tlinux_2_4_20
+/core_irongate.c/1.7/Fri Oct 19 01:23:31 2001/-ko/Tlinux_2_4_20
+/core_lca.c/1.9/Thu Apr  5 04:56:07 2001/-ko/Tlinux_2_4_20
+/core_mcpcia.c/1.16/Tue Nov  6 00:54:52 2001/-ko/Tlinux_2_4_20
+/core_polaris.c/1.8/Thu Apr  5 04:56:07 2001/-ko/Tlinux_2_4_20
+/core_t2.c/1.9/Thu Apr  5 04:56:07 2001/-ko/Tlinux_2_4_20
+/core_titan.c/1.6/Tue Nov  6 00:54:52 2001/-ko/Tlinux_2_4_20
+/core_tsunami.c/1.17/Tue Nov  6 00:54:52 2001/-ko/Tlinux_2_4_20
+/core_wildfire.c/1.2/Thu Apr  5 04:56:07 2001/-ko/Tlinux_2_4_20
+/entry.S/1.31.2.2/Tue Sep 10 15:32:47 2002/-ko/Tlinux_2_4_20
+/es1888.c/1.2/Sat Oct  9 00:00:50 1999/-ko/Tlinux_2_4_20
+/head.S/1.10/Fri Apr 28 01:09:27 2000/-ko/Tlinux_2_4_20
+/irq.c/1.24/Fri Oct 19 01:23:31 2001/-ko/Tlinux_2_4_20
+/irq_alpha.c/1.9/Mon Nov  5 20:15:21 2001/-ko/Tlinux_2_4_20
+/irq_i8259.c/1.3.4.1/Sat Dec 29 05:37:48 2001/-ko/Tlinux_2_4_20
+/irq_impl.h/1.4/Tue Mar  7 15:45:26 2000/-ko/Tlinux_2_4_20
+/irq_pyxis.c/1.1/Thu Mar 23 02:25:40 2000/-ko/Tlinux_2_4_20
+/irq_smp.c/1.3/Sun Dec  2 11:34:34 2001/-ko/Tlinux_2_4_20
+/irq_srm.c/1.2/Thu Mar 23 02:25:40 2000/-ko/Tlinux_2_4_20
+/machvec_impl.h/1.8/Fri Oct 19 01:23:31 2001/-ko/Tlinux_2_4_20
+/ns87312.c/1.1/Sat Oct  9 00:00:50 1999/-ko/Tlinux_2_4_20
+/osf_sys.c/1.33.2.1/Tue Sep 10 15:32:47 2002/-ko/Tlinux_2_4_20
+/pci-noop.c/1.3.2.1/Tue Feb 26 05:58:58 2002/-ko/Tlinux_2_4_20
+/pci.c/1.19.2.2/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
+/pci_impl.h/1.9/Tue Nov  6 00:54:53 2001/-ko/Tlinux_2_4_20
+/pci_iommu.c/1.15.2.2/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/process.c/1.26/Mon Nov  5 20:15:21 2001/-ko/Tlinux_2_4_20
+/proto.h/1.18.2.1/Tue Feb 26 05:58:58 2002/-ko/Tlinux_2_4_20
+/ptrace.c/1.17/Fri Oct 19 01:23:32 2001/-ko/Tlinux_2_4_20
+/semaphore.c/1.6/Sun Dec  2 11:34:34 2001/-ko/Tlinux_2_4_20
+/setup.c/1.31.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/signal.c/1.16.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/smc37c669.c/1.8.2.1/Tue Feb 26 05:58:58 2002/-ko/Tlinux_2_4_20
+/smc37c93x.c/1.5/Fri Mar  9 20:33:41 2001/-ko/Tlinux_2_4_20
+/smp.c/1.30.2.2/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/srm_env.c/1.2.2.2/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
+/sys_alcor.c/1.9/Wed Aug 22 03:23:54 2001/-ko/Tlinux_2_4_20
+/sys_cabriolet.c/1.13/Tue Nov  6 00:54:53 2001/-ko/Tlinux_2_4_20
+/sys_dp264.c/1.22/Tue Nov  6 00:54:53 2001/-ko/Tlinux_2_4_20
+/sys_eb64p.c/1.8/Thu Nov 23 02:00:48 2000/-ko/Tlinux_2_4_20
+/sys_eiger.c/1.6/Tue Nov  6 00:54:53 2001/-ko/Tlinux_2_4_20
+/sys_jensen.c/1.11/Fri Oct 19 01:23:32 2001/-ko/Tlinux_2_4_20
+/sys_miata.c/1.13.2.1/Tue Feb 26 05:58:58 2002/-ko/Tlinux_2_4_20
+/sys_mikasa.c/1.9/Thu Nov 23 02:00:48 2000/-ko/Tlinux_2_4_20
+/sys_nautilus.c/1.7/Thu Jun 14 04:23:45 2001/-ko/Tlinux_2_4_20
+/sys_noritake.c/1.9/Thu Nov 23 02:00:48 2000/-ko/Tlinux_2_4_20
+/sys_rawhide.c/1.12/Tue Nov  6 00:54:53 2001/-ko/Tlinux_2_4_20
+/sys_ruffian.c/1.13/Tue Nov  6 00:54:53 2001/-ko/Tlinux_2_4_20
+/sys_rx164.c/1.6/Thu Nov 23 02:00:48 2000/-ko/Tlinux_2_4_20
+/sys_sable.c/1.8/Wed Aug 22 03:23:55 2001/-ko/Tlinux_2_4_20
+/sys_sio.c/1.13/Wed Aug 22 03:23:55 2001/-ko/Tlinux_2_4_20
+/sys_sx164.c/1.12/Tue Nov  6 00:54:53 2001/-ko/Tlinux_2_4_20
+/sys_takara.c/1.9/Thu Nov 23 02:00:48 2000/-ko/Tlinux_2_4_20
+/sys_titan.c/1.4/Tue Nov  6 00:54:53 2001/-ko/Tlinux_2_4_20
+/sys_wildfire.c/1.4/Thu Apr  5 04:56:07 2001/-ko/Tlinux_2_4_20
+/time.c/1.27.2.1/Tue Feb 26 05:58:58 2002/-ko/Tlinux_2_4_20
+/traps.c/1.23.2.1/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/alpha/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/alpha/kernel/CVS/Repository
--- linux-2.4.20/arch/alpha/kernel/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/alpha/kernel/CVS/Repository	2005-01-06 22:59:00.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/alpha/kernel
diff -urNd -urNd linux-2.4.20/arch/alpha/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/alpha/kernel/CVS/Root
--- linux-2.4.20/arch/alpha/kernel/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/alpha/kernel/CVS/Root	2005-01-06 22:59:00.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/alpha/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/alpha/kernel/CVS/Tag
--- linux-2.4.20/arch/alpha/kernel/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/alpha/kernel/CVS/Tag	2005-01-06 22:59:04.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/alpha/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/alpha/lib/CVS/Entries
--- linux-2.4.20/arch/alpha/lib/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/alpha/lib/CVS/Entries	2005-01-06 22:59:05.000000000 -0600
@@ -0,0 +1,54 @@
+/Makefile/1.17/Tue Nov  6 07:55:45 2001/-ko/Tlinux_2_4_20
+/callback_srm.S/1.1/Mon Jun 19 22:45:38 2000/-ko/Tlinux_2_4_20
+/checksum.c/1.3/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
+/clear_page.S/1.1/Fri Mar  9 20:33:41 2001/-ko/Tlinux_2_4_20
+/clear_user.S/1.3/Sun Jun 13 16:30:00 1999/-ko/Tlinux_2_4_20
+/copy_page.S/1.1/Fri Mar  9 20:33:41 2001/-ko/Tlinux_2_4_20
+/copy_user.S/1.4/Fri May 12 21:06:02 2000/-ko/Tlinux_2_4_20
+/csum_ipv6_magic.S/1.4/Thu Feb 24 00:12:37 2000/-ko/Tlinux_2_4_20
+/csum_partial_copy.c/1.6/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
+/dec_and_lock.c/1.2.2.1/Tue Feb 26 05:58:58 2002/-ko/Tlinux_2_4_20
+/divide.S/1.1.1.1/Sun Jun  1 03:16:44 1997/-ko/Tlinux_2_4_20
+/ev6-clear_page.S/1.1/Fri Mar  9 20:33:41 2001/-ko/Tlinux_2_4_20
+/ev6-clear_user.S/1.1/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
+/ev6-copy_page.S/1.1/Fri Mar  9 20:33:41 2001/-ko/Tlinux_2_4_20
+/ev6-copy_user.S/1.1/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
+/ev6-csum_ipv6_magic.S/1.1/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
+/ev6-divide.S/1.1/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
+/ev6-memchr.S/1.1/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
+/ev6-memcpy.S/1.2/Wed Jan 10 17:17:54 2001/-ko/Tlinux_2_4_20
+/ev6-memset.S/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/ev6-strncpy_from_user.S/1.1/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
+/ev6-stxcpy.S/1.1/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
+/ev6-stxncpy.S/1.1.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/ev67-strcat.S/1.1/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
+/ev67-strchr.S/1.1/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
+/ev67-strlen.S/1.1/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
+/ev67-strlen_user.S/1.1/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
+/ev67-strncat.S/1.1/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
+/ev67-strrchr.S/1.1/Wed Jan 10 17:17:54 2001/-ko/Tlinux_2_4_20
+/fpreg.c/1.1/Fri Feb  4 07:40:20 2000/-ko/Tlinux_2_4_20
+/io.c/1.7/Sun Dec  2 11:34:34 2001/-ko/Tlinux_2_4_20
+/memchr.S/1.1/Sat Oct  9 00:00:50 1999/-ko/Tlinux_2_4_20
+/memcpy.c/1.4/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
+/memmove.S/1.2/Wed Jan 10 17:17:54 2001/-ko/Tlinux_2_4_20
+/memset.S/1.2/Tue Aug 25 09:13:31 1998/-ko/Tlinux_2_4_20
+/srm_printk.c/1.2/Mon Jun 19 22:45:38 2000/-ko/Tlinux_2_4_20
+/srm_puts.c/1.2/Mon Jun 19 22:45:38 2000/-ko/Tlinux_2_4_20
+/stackcheck.S/1.1/Sat Sep 19 19:15:34 1998/-ko/Tlinux_2_4_20
+/stackkill.S/1.1/Sat Sep 19 19:15:34 1998/-ko/Tlinux_2_4_20
+/stacktrace.c/1.1/Sat Sep 19 19:15:34 1998/-ko/Tlinux_2_4_20
+/strcasecmp.c/1.1/Tue Aug 25 09:13:31 1998/-ko/Tlinux_2_4_20
+/strcat.S/1.1.1.1/Sun Jun  1 03:16:44 1997/-ko/Tlinux_2_4_20
+/strchr.S/1.1.1.1/Sun Jun  1 03:16:44 1997/-ko/Tlinux_2_4_20
+/strcpy.S/1.2/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
+/strlen.S/1.1.1.1/Sun Jun  1 03:16:44 1997/-ko/Tlinux_2_4_20
+/strlen_user.S/1.4/Sat Dec  4 03:58:58 1999/-ko/Tlinux_2_4_20
+/strncat.S/1.1.1.1/Sun Jun  1 03:16:44 1997/-ko/Tlinux_2_4_20
+/strncpy.S/1.2/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
+/strncpy_from_user.S/1.2/Sun Jun 13 16:30:01 1999/-ko/Tlinux_2_4_20
+/strrchr.S/1.2/Sat Dec  6 23:51:55 1997/-ko/Tlinux_2_4_20
+/stxcpy.S/1.2/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
+/stxncpy.S/1.2.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/udelay.c/1.1/Wed Aug 22 03:23:55 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/alpha/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/alpha/lib/CVS/Repository
--- linux-2.4.20/arch/alpha/lib/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/alpha/lib/CVS/Repository	2005-01-06 22:59:04.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/alpha/lib
diff -urNd -urNd linux-2.4.20/arch/alpha/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/alpha/lib/CVS/Root
--- linux-2.4.20/arch/alpha/lib/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/alpha/lib/CVS/Root	2005-01-06 22:59:04.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/alpha/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/alpha/lib/CVS/Tag
--- linux-2.4.20/arch/alpha/lib/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/alpha/lib/CVS/Tag	2005-01-06 22:59:05.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/alpha/math-emu/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/alpha/math-emu/CVS/Entries
--- linux-2.4.20/arch/alpha/math-emu/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/alpha/math-emu/CVS/Entries	2005-01-06 22:59:05.000000000 -0600
@@ -0,0 +1,5 @@
+/Makefile/1.5/Wed Jan 10 17:17:54 2001/-ko/Tlinux_2_4_20
+/math.c/1.3.4.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/qrnnd.S/1.1/Thu Oct  5 01:18:41 2000/-ko/Tlinux_2_4_20
+/sfp-util.h/1.2/Thu Oct  5 01:18:41 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/alpha/math-emu/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/alpha/math-emu/CVS/Repository
--- linux-2.4.20/arch/alpha/math-emu/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/alpha/math-emu/CVS/Repository	2005-01-06 22:59:05.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/alpha/math-emu
diff -urNd -urNd linux-2.4.20/arch/alpha/math-emu/CVS/Root linux-2.4.20-mipscvs-20050106/arch/alpha/math-emu/CVS/Root
--- linux-2.4.20/arch/alpha/math-emu/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/alpha/math-emu/CVS/Root	2005-01-06 22:59:05.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/alpha/math-emu/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/alpha/math-emu/CVS/Tag
--- linux-2.4.20/arch/alpha/math-emu/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/alpha/math-emu/CVS/Tag	2005-01-06 22:59:05.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/alpha/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/alpha/mm/CVS/Entries
--- linux-2.4.20/arch/alpha/mm/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/alpha/mm/CVS/Entries	2005-01-06 22:59:06.000000000 -0600
@@ -0,0 +1,6 @@
+/Makefile/1.2/Thu Jun 14 04:23:46 2001/-ko/Tlinux_2_4_20
+/extable.c/1.4/Thu Jun 14 04:23:46 2001/-ko/Tlinux_2_4_20
+/fault.c/1.17.2.1/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
+/init.c/1.23.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/numa.c/1.2.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/alpha/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/alpha/mm/CVS/Repository
--- linux-2.4.20/arch/alpha/mm/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/alpha/mm/CVS/Repository	2005-01-06 22:59:05.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/alpha/mm
diff -urNd -urNd linux-2.4.20/arch/alpha/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/alpha/mm/CVS/Root
--- linux-2.4.20/arch/alpha/mm/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/alpha/mm/CVS/Root	2005-01-06 22:59:05.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/alpha/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/alpha/mm/CVS/Tag
--- linux-2.4.20/arch/alpha/mm/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/alpha/mm/CVS/Tag	2005-01-06 22:59:06.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/arm/boot/bootp/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/boot/bootp/CVS/Entries
--- linux-2.4.20/arch/arm/boot/bootp/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/boot/bootp/CVS/Entries	2005-01-06 22:59:06.000000000 -0600
@@ -0,0 +1,4 @@
+/Makefile/1.4/Tue Nov  6 00:54:53 2001/-ko/Tlinux_2_4_20
+/bootp.lds/1.1/Thu Oct  5 01:18:41 2000/-ko/Tlinux_2_4_20
+/init.S/1.4/Tue Nov  6 00:54:53 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/arm/boot/bootp/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/boot/bootp/CVS/Repository
--- linux-2.4.20/arch/arm/boot/bootp/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/boot/bootp/CVS/Repository	2005-01-06 22:59:06.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/arm/boot/bootp
diff -urNd -urNd linux-2.4.20/arch/arm/boot/bootp/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/boot/bootp/CVS/Root
--- linux-2.4.20/arch/arm/boot/bootp/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/boot/bootp/CVS/Root	2005-01-06 22:59:06.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/arm/boot/bootp/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/boot/bootp/CVS/Tag
--- linux-2.4.20/arch/arm/boot/bootp/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/boot/bootp/CVS/Tag	2005-01-06 22:59:06.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/arm/boot/compressed/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/boot/compressed/CVS/Entries
--- linux-2.4.20/arch/arm/boot/compressed/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/boot/compressed/CVS/Entries	2005-01-06 22:59:06.000000000 -0600
@@ -0,0 +1,18 @@
+/Makefile/1.21.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/Makefile.debug/1.2/Tue Aug 25 09:13:35 1998/-ko/Tlinux_2_4_20
+/head-clps7500.S/1.1/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
+/head-epxa10db.S/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/head-ftvpci.S/1.2/Fri Mar  9 20:33:42 2001/-ko/Tlinux_2_4_20
+/head-integrator.S/1.1/Wed Aug 22 03:23:55 2001/-ko/Tlinux_2_4_20
+/head-l7200.S/1.2/Fri Mar  9 20:33:42 2001/-ko/Tlinux_2_4_20
+/head-mx1ads.S/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/head-netwinder.S/1.4/Thu Oct  5 01:18:41 2000/-ko/Tlinux_2_4_20
+/head-sa1100.S/1.9/Tue Nov  6 00:54:53 2001/-ko/Tlinux_2_4_20
+/head-shark.S/1.2.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/head.S/1.14.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/hw-bse.c/1.1/Mon Aug 28 22:00:12 2000/-ko/Tlinux_2_4_20
+/ll_char_wr.S/1.3/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
+/misc.c/1.5.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/ofw-shark.c/1.3.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/vmlinux.lds.in/1.4/Wed Aug 22 03:23:55 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/arm/boot/compressed/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/boot/compressed/CVS/Repository
--- linux-2.4.20/arch/arm/boot/compressed/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/boot/compressed/CVS/Repository	2005-01-06 22:59:06.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/arm/boot/compressed
diff -urNd -urNd linux-2.4.20/arch/arm/boot/compressed/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/boot/compressed/CVS/Root
--- linux-2.4.20/arch/arm/boot/compressed/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/boot/compressed/CVS/Root	2005-01-06 22:59:06.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/arm/boot/compressed/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/boot/compressed/CVS/Tag
--- linux-2.4.20/arch/arm/boot/compressed/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/boot/compressed/CVS/Tag	2005-01-06 22:59:06.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/arm/boot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/boot/CVS/Entries
--- linux-2.4.20/arch/arm/boot/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/boot/CVS/Entries	2005-01-06 23:08:27.000000000 -0600
@@ -0,0 +1,4 @@
+/Makefile/1.9.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/install.sh/1.1/Tue Mar 17 22:06:27 1998/-ko/Tlinux_2_4_20
+D/bootp////
+D/compressed////
diff -urNd -urNd linux-2.4.20/arch/arm/boot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/boot/CVS/Repository
--- linux-2.4.20/arch/arm/boot/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/boot/CVS/Repository	2005-01-06 22:59:06.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/arm/boot
diff -urNd -urNd linux-2.4.20/arch/arm/boot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/boot/CVS/Root
--- linux-2.4.20/arch/arm/boot/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/boot/CVS/Root	2005-01-06 22:59:06.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/arm/boot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/boot/CVS/Tag
--- linux-2.4.20/arch/arm/boot/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/boot/CVS/Tag	2005-01-06 22:59:06.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/arm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/CVS/Entries
--- linux-2.4.20/arch/arm/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/CVS/Entries	2005-01-06 23:08:27.000000000 -0600
@@ -0,0 +1,21 @@
+/Makefile/1.28.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/config.in/1.37.2.2/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
+/defconfig/1.19/Thu Jun 14 04:23:46 2001/-ko/Tlinux_2_4_20
+/vmlinux-armo.lds.in/1.11.2.1/Tue Feb 26 05:58:58 2002/-ko/Tlinux_2_4_20
+/vmlinux-armv.lds.in/1.13.2.1/Tue Feb 26 05:58:58 2002/-ko/Tlinux_2_4_20
+D/boot////
+D/def-configs////
+D/kernel////
+D/lib////
+D/mach-anakin////
+D/mach-clps711x////
+D/mach-ebsa110////
+D/mach-epxa10db////
+D/mach-footbridge////
+D/mach-integrator////
+D/mach-mx1ads////
+D/mach-sa1100////
+D/mach-shark////
+D/mm////
+D/nwfpe////
+D/tools////
diff -urNd -urNd linux-2.4.20/arch/arm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/CVS/Repository
--- linux-2.4.20/arch/arm/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/CVS/Repository	2005-01-06 22:59:06.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/arm
diff -urNd -urNd linux-2.4.20/arch/arm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/CVS/Root
--- linux-2.4.20/arch/arm/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/CVS/Root	2005-01-06 22:59:06.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/arm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/CVS/Tag
--- linux-2.4.20/arch/arm/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/CVS/Tag	2005-01-06 22:59:06.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/arm/def-configs/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/def-configs/CVS/Entries
--- linux-2.4.20/arch/arm/def-configs/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/def-configs/CVS/Entries	2005-01-06 22:59:08.000000000 -0600
@@ -0,0 +1,43 @@
+/a5k/1.5/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
+/adsbitsy/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/anakin/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/assabet/1.6.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/badge4/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/brutus/1.9/Sat Sep 22 12:49:04 2001/-ko/Tlinux_2_4_20
+/cerfcube/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/cerfpda/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/cerfpod/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/clps7500/1.2.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/ebsa110/1.8.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/edb7211/1.1/Tue Nov  6 07:55:45 2001/-ko/Tlinux_2_4_20
+/empeg/1.1/Thu Jan 27 01:05:21 2000/-ko/Tlinux_2_4_20
+/epxa10db/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/flexanet/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/footbridge/1.10/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
+/fortunet/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/freebird/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/freebird_new/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/frodo/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/graphicsclient/1.5.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/graphicsmaster/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/h3600/1.2.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/huw_webpanel/1.1/Sat Sep 22 12:49:04 2001/-ko/Tlinux_2_4_20
+/integrator/1.3.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/jornada720/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/lart/1.5.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/lusl7200/1.2/Mon Jun 19 22:45:39 2000/-ko/Tlinux_2_4_20
+/neponset/1.3.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/omnimeter/1.1/Sat Sep 22 12:49:04 2001/-ko/Tlinux_2_4_20
+/pangolin/1.3.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/pfs168_mqtft/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/pfs168_mqvga/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/pfs168_sastn/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
+/pfs168_satft/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/pleb/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/rpc/1.7.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/shannon/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/shark/1.3.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/sherman/1.2/Sat Sep 22 12:49:04 2001/-ko/Tlinux_2_4_20
+/system3/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/victor/1.2/Mon Jun 19 22:45:39 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/arm/def-configs/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/def-configs/CVS/Repository
--- linux-2.4.20/arch/arm/def-configs/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/def-configs/CVS/Repository	2005-01-06 22:59:06.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/arm/def-configs
diff -urNd -urNd linux-2.4.20/arch/arm/def-configs/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/def-configs/CVS/Root
--- linux-2.4.20/arch/arm/def-configs/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/def-configs/CVS/Root	2005-01-06 22:59:06.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/arm/def-configs/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/def-configs/CVS/Tag
--- linux-2.4.20/arch/arm/def-configs/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/def-configs/CVS/Tag	2005-01-06 22:59:08.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/arm/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/kernel/CVS/Entries
--- linux-2.4.20/arch/arm/kernel/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/kernel/CVS/Entries	2005-01-06 22:59:09.000000000 -0600
@@ -0,0 +1,44 @@
+/Makefile/1.23.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/arch.c/1.10/Sat Sep 22 12:49:04 2001/-ko/Tlinux_2_4_20
+/armksyms.c/1.24.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/arthur.c/1.7/Fri Oct 19 01:23:32 2001/-ko/Tlinux_2_4_20
+/bios32.c/1.25.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/calls.S/1.13.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/compat.c/1.2.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/debug-armo.S/1.2/Thu Oct  5 01:18:41 2000/-ko/Tlinux_2_4_20
+/debug-armv.S/1.10.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/dec21285.c/1.17/Thu Aug 23 22:24:21 2001/-ko/Tlinux_2_4_20
+/dma-arc.c/1.9.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/dma-footbridge.c/1.6/Thu Oct  5 01:18:41 2000/-ko/Tlinux_2_4_20
+/dma-isa.c/1.7/Tue Nov  6 00:54:53 2001/-ko/Tlinux_2_4_20
+/dma-rpc.c/1.12/Fri Mar  9 20:33:42 2001/-ko/Tlinux_2_4_20
+/dma.c/1.11.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/ecard.c/1.18/Sat Sep 22 12:49:04 2001/-ko/Tlinux_2_4_20
+/entry-armo.S/1.12/Sat Sep 22 12:49:05 2001/-ko/Tlinux_2_4_20
+/entry-armv.S/1.23.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/entry-common.S/1.20.2.1/Tue Feb 26 05:58:58 2002/-ko/Tlinux_2_4_20
+/entry-header.S/1.2.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/fiq.c/1.10/Wed Aug 22 03:23:55 2001/-ko/Tlinux_2_4_20
+/ftv-pci.c/1.1/Thu Oct  5 01:18:41 2000/-ko/Tlinux_2_4_20
+/head-armo.S/1.9/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
+/head-armv.S/1.20/Tue Nov  6 00:54:53 2001/-ko/Tlinux_2_4_20
+/init_task.c/1.10.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/io.c/1.1/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
+/irq-arch.c/1.2/Sat Sep 22 12:49:05 2001/-ko/Tlinux_2_4_20
+/irq.c/1.19/Thu Aug 23 22:24:21 2001/-ko/Tlinux_2_4_20
+/isa.c/1.3/Thu Oct  5 01:18:41 2000/-ko/Tlinux_2_4_20
+/leds-ftvpci.c/1.1/Thu Oct  5 01:18:41 2000/-ko/Tlinux_2_4_20
+/oldlatches.c/1.9/Sat Sep 22 12:49:05 2001/-ko/Tlinux_2_4_20
+/plx90x0.c/1.2/Thu Aug 23 22:24:21 2001/-ko/Tlinux_2_4_20
+/process.c/1.23.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/ptrace.c/1.15/Fri Oct 19 01:23:32 2001/-ko/Tlinux_2_4_20
+/ptrace.h/1.2/Thu Oct  5 01:18:41 2000/-ko/Tlinux_2_4_20
+/semaphore.c/1.10.2.2/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/setup.c/1.24/Sun Dec  2 11:34:35 2001/-ko/Tlinux_2_4_20
+/signal.c/1.19.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/sys_arm.c/1.22/Thu Aug 23 22:24:21 2001/-ko/Tlinux_2_4_20
+/time-acorn.c/1.3/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
+/time.c/1.18/Tue Nov  6 00:54:53 2001/-ko/Tlinux_2_4_20
+/traps.c/1.23.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/via82c505.c/1.4.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/arm/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/kernel/CVS/Repository
--- linux-2.4.20/arch/arm/kernel/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/kernel/CVS/Repository	2005-01-06 22:59:08.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/arm/kernel
diff -urNd -urNd linux-2.4.20/arch/arm/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/kernel/CVS/Root
--- linux-2.4.20/arch/arm/kernel/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/kernel/CVS/Root	2005-01-06 22:59:08.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/arm/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/kernel/CVS/Tag
--- linux-2.4.20/arch/arm/kernel/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/kernel/CVS/Tag	2005-01-06 22:59:10.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/arm/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/lib/CVS/Entries
--- linux-2.4.20/arch/arm/lib/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/lib/CVS/Entries	2005-01-06 22:59:10.000000000 -0600
@@ -0,0 +1,52 @@
+/Makefile/1.22/Tue Nov  6 00:54:53 2001/-ko/Tlinux_2_4_20
+/ashldi3.c/1.1/Tue Nov  6 00:54:53 2001/-ko/Tlinux_2_4_20
+/ashrdi3.c/1.1/Tue Nov  6 00:54:53 2001/-ko/Tlinux_2_4_20
+/backtrace.S/1.7.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/changebit.S/1.3/Thu Oct  5 01:18:42 2000/-ko/Tlinux_2_4_20
+/clearbit.S/1.3/Thu Oct  5 01:18:42 2000/-ko/Tlinux_2_4_20
+/copy_page.S/1.3/Thu Apr  5 04:56:07 2001/-ko/Tlinux_2_4_20
+/csumipv6.S/1.2/Thu Oct  5 01:18:42 2000/-ko/Tlinux_2_4_20
+/csumpartial.S/1.3/Thu Jun 14 04:23:46 2001/-ko/Tlinux_2_4_20
+/csumpartialcopy.S/1.4/Thu Jun 14 04:23:46 2001/-ko/Tlinux_2_4_20
+/csumpartialcopygeneric.S/1.1/Thu Jun 14 04:23:46 2001/-ko/Tlinux_2_4_20
+/csumpartialcopyuser.S/1.5/Thu Jun 14 04:23:46 2001/-ko/Tlinux_2_4_20
+/delay.S/1.3/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
+/ecard.S/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/findbit.S/1.4/Thu Oct  5 01:18:42 2000/-ko/Tlinux_2_4_20
+/floppydma.S/1.3/Thu Oct  5 01:18:42 2000/-ko/Tlinux_2_4_20
+/gcclib.h/1.2/Sun Dec  2 11:34:35 2001/-ko/Tlinux_2_4_20
+/getuser.S/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/io-acorn.S/1.10.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/io-readsb.S/1.3/Sat Sep 22 12:49:05 2001/-ko/Tlinux_2_4_20
+/io-readsl-armv3.S/1.2/Sat Sep 22 12:49:05 2001/-ko/Tlinux_2_4_20
+/io-readsl-armv4.S/1.3/Fri Oct 19 01:23:33 2001/-ko/Tlinux_2_4_20
+/io-readsw-armv3.S/1.3/Sat Sep 22 12:49:06 2001/-ko/Tlinux_2_4_20
+/io-readsw-armv4.S/1.3/Sat Sep 22 12:49:06 2001/-ko/Tlinux_2_4_20
+/io-shark.c/1.3.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/io-writesb.S/1.3/Sat Sep 22 12:49:06 2001/-ko/Tlinux_2_4_20
+/io-writesl.S/1.4/Fri Oct 19 01:23:33 2001/-ko/Tlinux_2_4_20
+/io-writesw-armv3.S/1.3/Sat Sep 22 12:49:06 2001/-ko/Tlinux_2_4_20
+/io-writesw-armv4.S/1.3/Sat Sep 22 12:49:06 2001/-ko/Tlinux_2_4_20
+/kbd.c/1.1/Tue Nov  6 00:54:53 2001/-ko/Tlinux_2_4_20
+/lib1funcs.S/1.1/Tue Nov  6 00:54:53 2001/-ko/Tlinux_2_4_20
+/longlong.h/1.1/Tue Nov  6 00:54:53 2001/-ko/Tlinux_2_4_20
+/lshrdi3.c/1.1/Tue Nov  6 00:54:53 2001/-ko/Tlinux_2_4_20
+/memchr.S/1.2/Thu Oct  5 01:18:42 2000/-ko/Tlinux_2_4_20
+/memcpy.S/1.6/Thu Apr  5 04:56:07 2001/-ko/Tlinux_2_4_20
+/memset.S/1.2/Thu Oct  5 01:18:42 2000/-ko/Tlinux_2_4_20
+/memzero.S/1.2/Thu Oct  5 01:18:42 2000/-ko/Tlinux_2_4_20
+/muldi3.c/1.1/Tue Nov  6 00:54:53 2001/-ko/Tlinux_2_4_20
+/putuser.S/1.1/Tue Nov  6 00:54:53 2001/-ko/Tlinux_2_4_20
+/setbit.S/1.3/Thu Oct  5 01:18:42 2000/-ko/Tlinux_2_4_20
+/strchr.S/1.2/Thu Oct  5 01:18:42 2000/-ko/Tlinux_2_4_20
+/strncpy_from_user.S/1.1/Thu Oct  5 01:18:42 2000/-ko/Tlinux_2_4_20
+/strnlen_user.S/1.1/Thu Oct  5 01:18:42 2000/-ko/Tlinux_2_4_20
+/strrchr.S/1.3.4.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/testchangebit.S/1.3/Thu Oct  5 01:18:42 2000/-ko/Tlinux_2_4_20
+/testclearbit.S/1.3/Thu Oct  5 01:18:42 2000/-ko/Tlinux_2_4_20
+/testsetbit.S/1.3/Thu Oct  5 01:18:42 2000/-ko/Tlinux_2_4_20
+/uaccess-armo.S/1.4/Sat Sep 22 12:49:06 2001/-ko/Tlinux_2_4_20
+/uaccess.S/1.9/Thu Oct  5 01:18:42 2000/-ko/Tlinux_2_4_20
+/ucmpdi2.c/1.1/Tue Nov  6 00:54:53 2001/-ko/Tlinux_2_4_20
+/udivdi3.c/1.1/Tue Nov  6 00:54:53 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/arm/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/lib/CVS/Repository
--- linux-2.4.20/arch/arm/lib/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/lib/CVS/Repository	2005-01-06 22:59:10.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/arm/lib
diff -urNd -urNd linux-2.4.20/arch/arm/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/lib/CVS/Root
--- linux-2.4.20/arch/arm/lib/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/lib/CVS/Root	2005-01-06 22:59:10.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/arm/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/lib/CVS/Tag
--- linux-2.4.20/arch/arm/lib/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/lib/CVS/Tag	2005-01-06 22:59:10.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/arm/mach-anakin/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/mach-anakin/CVS/Entries
--- linux-2.4.20/arch/arm/mach-anakin/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-anakin/CVS/Entries	2005-01-06 22:59:10.000000000 -0600
@@ -0,0 +1,5 @@
+/Makefile/1.1/Sat Sep 22 12:49:06 2001/-ko/Tlinux_2_4_20
+/arch.c/1.1/Sat Sep 22 12:49:06 2001/-ko/Tlinux_2_4_20
+/irq.c/1.1/Sat Sep 22 12:49:06 2001/-ko/Tlinux_2_4_20
+/mm.c/1.1/Sat Sep 22 12:49:06 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/arm/mach-anakin/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/mach-anakin/CVS/Repository
--- linux-2.4.20/arch/arm/mach-anakin/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-anakin/CVS/Repository	2005-01-06 22:59:10.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/arm/mach-anakin
diff -urNd -urNd linux-2.4.20/arch/arm/mach-anakin/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/mach-anakin/CVS/Root
--- linux-2.4.20/arch/arm/mach-anakin/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-anakin/CVS/Root	2005-01-06 22:59:10.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/arm/mach-anakin/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/mach-anakin/CVS/Tag
--- linux-2.4.20/arch/arm/mach-anakin/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-anakin/CVS/Tag	2005-01-06 22:59:10.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/arm/mach-clps711x/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/mach-clps711x/CVS/Entries
--- linux-2.4.20/arch/arm/mach-clps711x/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-clps711x/CVS/Entries	2005-01-06 22:59:11.000000000 -0600
@@ -0,0 +1,14 @@
+/Makefile/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/autcpu12.c/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/cdb89712.c/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/clep7312.c/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/dma.c/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/edb7211-arch.c/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/edb7211-mm.c/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/fortunet.c/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/irq.c/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/mm.c/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/p720t-leds.c/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/p720t.c/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/time.c/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/arm/mach-clps711x/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/mach-clps711x/CVS/Repository
--- linux-2.4.20/arch/arm/mach-clps711x/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-clps711x/CVS/Repository	2005-01-06 22:59:10.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/arm/mach-clps711x
diff -urNd -urNd linux-2.4.20/arch/arm/mach-clps711x/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/mach-clps711x/CVS/Root
--- linux-2.4.20/arch/arm/mach-clps711x/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-clps711x/CVS/Root	2005-01-06 22:59:10.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/arm/mach-clps711x/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/mach-clps711x/CVS/Tag
--- linux-2.4.20/arch/arm/mach-clps711x/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-clps711x/CVS/Tag	2005-01-06 22:59:11.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/arm/mach-ebsa110/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/mach-ebsa110/CVS/Entries
--- linux-2.4.20/arch/arm/mach-ebsa110/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-ebsa110/CVS/Entries	2005-01-06 22:59:11.000000000 -0600
@@ -0,0 +1,9 @@
+/Makefile/1.1/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
+/arch.c/1.2/Wed Aug 22 03:23:55 2001/-ko/Tlinux_2_4_20
+/hardware.h/1.1/Wed Aug 22 03:23:55 2001/-ko/Tlinux_2_4_20
+/io.c/1.5.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/irq.c/1.1/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
+/leds.c/1.1/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
+/mm.c/1.1/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
+/time.c/1.1/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/arm/mach-ebsa110/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/mach-ebsa110/CVS/Repository
--- linux-2.4.20/arch/arm/mach-ebsa110/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-ebsa110/CVS/Repository	2005-01-06 22:59:11.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/arm/mach-ebsa110
diff -urNd -urNd linux-2.4.20/arch/arm/mach-ebsa110/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/mach-ebsa110/CVS/Root
--- linux-2.4.20/arch/arm/mach-ebsa110/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-ebsa110/CVS/Root	2005-01-06 22:59:11.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/arm/mach-ebsa110/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/mach-ebsa110/CVS/Tag
--- linux-2.4.20/arch/arm/mach-ebsa110/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-ebsa110/CVS/Tag	2005-01-06 22:59:11.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/arm/mach-epxa10db/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/mach-epxa10db/CVS/Entries
--- linux-2.4.20/arch/arm/mach-epxa10db/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-epxa10db/CVS/Entries	2005-01-06 22:59:11.000000000 -0600
@@ -0,0 +1,7 @@
+/Makefile/1.1/Tue Nov  6 07:55:45 2001/-ko/Tlinux_2_4_20
+/arch.c/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/dma.c/1.2/Sun Dec  2 11:34:35 2001/-ko/Tlinux_2_4_20
+/irq.c/1.1/Tue Nov  6 07:55:45 2001/-ko/Tlinux_2_4_20
+/mm.c/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/time.c/1.1/Tue Nov  6 07:55:45 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/arm/mach-epxa10db/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/mach-epxa10db/CVS/Repository
--- linux-2.4.20/arch/arm/mach-epxa10db/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-epxa10db/CVS/Repository	2005-01-06 22:59:11.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/arm/mach-epxa10db
diff -urNd -urNd linux-2.4.20/arch/arm/mach-epxa10db/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/mach-epxa10db/CVS/Root
--- linux-2.4.20/arch/arm/mach-epxa10db/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-epxa10db/CVS/Root	2005-01-06 22:59:11.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/arm/mach-epxa10db/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/mach-epxa10db/CVS/Tag
--- linux-2.4.20/arch/arm/mach-epxa10db/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-epxa10db/CVS/Tag	2005-01-06 22:59:11.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/arm/mach-footbridge/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/mach-footbridge/CVS/Entries
--- linux-2.4.20/arch/arm/mach-footbridge/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-footbridge/CVS/Entries	2005-01-06 22:59:11.000000000 -0600
@@ -0,0 +1,13 @@
+/Makefile/1.3/Sat Sep 22 12:49:06 2001/-ko/Tlinux_2_4_20
+/arch.c/1.3/Sat Sep 22 12:49:07 2001/-ko/Tlinux_2_4_20
+/cats-hw.c/1.1/Thu Oct  5 01:18:42 2000/-ko/Tlinux_2_4_20
+/cats-pci.c/1.2/Thu Aug 23 22:24:21 2001/-ko/Tlinux_2_4_20
+/ebsa285-leds.c/1.1/Thu Oct  5 01:18:42 2000/-ko/Tlinux_2_4_20
+/ebsa285-pci.c/1.2/Thu Aug 23 22:24:21 2001/-ko/Tlinux_2_4_20
+/irq.c/1.1/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
+/mm.c/1.1/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
+/netwinder-hw.c/1.2/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
+/netwinder-leds.c/1.1/Thu Oct  5 01:18:42 2000/-ko/Tlinux_2_4_20
+/netwinder-pci.c/1.2/Thu Aug 23 22:24:21 2001/-ko/Tlinux_2_4_20
+/personal-pci.c/1.2/Thu Aug 23 22:24:21 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/arm/mach-footbridge/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/mach-footbridge/CVS/Repository
--- linux-2.4.20/arch/arm/mach-footbridge/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-footbridge/CVS/Repository	2005-01-06 22:59:11.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/arm/mach-footbridge
diff -urNd -urNd linux-2.4.20/arch/arm/mach-footbridge/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/mach-footbridge/CVS/Root
--- linux-2.4.20/arch/arm/mach-footbridge/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-footbridge/CVS/Root	2005-01-06 22:59:11.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/arm/mach-footbridge/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/mach-footbridge/CVS/Tag
--- linux-2.4.20/arch/arm/mach-footbridge/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-footbridge/CVS/Tag	2005-01-06 22:59:11.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/arm/mach-integrator/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/mach-integrator/CVS/Entries
--- linux-2.4.20/arch/arm/mach-integrator/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-integrator/CVS/Entries	2005-01-06 22:59:11.000000000 -0600
@@ -0,0 +1,11 @@
+/Makefile/1.2/Sat Sep 22 12:49:07 2001/-ko/Tlinux_2_4_20
+/arch.c/1.2/Sat Sep 22 12:49:07 2001/-ko/Tlinux_2_4_20
+/cpu.c/1.2.2.1/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
+/dma.c/1.2/Tue Nov  6 00:54:54 2001/-ko/Tlinux_2_4_20
+/irq.c/1.1/Thu Apr  5 04:56:07 2001/-ko/Tlinux_2_4_20
+/leds.c/1.1/Thu Apr  5 04:56:07 2001/-ko/Tlinux_2_4_20
+/mm.c/1.1/Thu Apr  5 04:56:07 2001/-ko/Tlinux_2_4_20
+/pci.c/1.2/Sat Sep 22 12:49:07 2001/-ko/Tlinux_2_4_20
+/pci_v3.c/1.3.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
+/time.c/1.2/Sat Sep 22 12:49:07 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/arm/mach-integrator/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/mach-integrator/CVS/Repository
--- linux-2.4.20/arch/arm/mach-integrator/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-integrator/CVS/Repository	2005-01-06 22:59:11.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/arm/mach-integrator
diff -urNd -urNd linux-2.4.20/arch/arm/mach-integrator/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/mach-integrator/CVS/Root
--- linux-2.4.20/arch/arm/mach-integrator/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-integrator/CVS/Root	2005-01-06 22:59:11.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/arm/mach-integrator/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/mach-integrator/CVS/Tag
--- linux-2.4.20/arch/arm/mach-integrator/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-integrator/CVS/Tag	2005-01-06 22:59:11.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/arm/mach-mx1ads/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/mach-mx1ads/CVS/Entries
--- linux-2.4.20/arch/arm/mach-mx1ads/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-mx1ads/CVS/Entries	2005-01-06 22:59:11.000000000 -0600
@@ -0,0 +1,7 @@
+/Makefile/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
+/arch.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
+/cpu.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
+/irq.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
+/mm.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
+/time.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/arm/mach-mx1ads/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/mach-mx1ads/CVS/Repository
--- linux-2.4.20/arch/arm/mach-mx1ads/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-mx1ads/CVS/Repository	2005-01-06 22:59:11.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/arm/mach-mx1ads
diff -urNd -urNd linux-2.4.20/arch/arm/mach-mx1ads/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/mach-mx1ads/CVS/Root
--- linux-2.4.20/arch/arm/mach-mx1ads/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-mx1ads/CVS/Root	2005-01-06 22:59:11.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/arm/mach-mx1ads/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/mach-mx1ads/CVS/Tag
--- linux-2.4.20/arch/arm/mach-mx1ads/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-mx1ads/CVS/Tag	2005-01-06 22:59:11.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/arm/mach-sa1100/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/mach-sa1100/CVS/Entries
--- linux-2.4.20/arch/arm/mach-sa1100/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-sa1100/CVS/Entries	2005-01-06 22:59:12.000000000 -0600
@@ -0,0 +1,61 @@
+/Makefile/1.6.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
+/adsbitsy.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
+/assabet.c/1.3.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
+/badge4.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
+/brutus.c/1.1/Sat Sep 22 12:49:07 2001/-ko/Tlinux_2_4_20
+/cerf.c/1.2.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
+/cpu-sa1100.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
+/cpu-sa1110.c/1.2.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
+/dma-sa1100.c/1.4.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
+/dma-sa1111.c/1.4.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
+/dma.h/1.3/Sat Sep 22 12:49:07 2001/-ko/Tlinux_2_4_20
+/empeg.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
+/flexanet.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
+/freebird.c/1.2.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
+/frodo.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
+/generic.c/1.2.2.2/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
+/generic.h/1.1/Sat Sep 22 12:49:07 2001/-ko/Tlinux_2_4_20
+/graphicsclient.c/1.3.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
+/graphicsmaster.c/1.2.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
+/h3600.c/1.2.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
+/huw_webpanel.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
+/irq.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
+/itsy.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
+/jornada720.c/1.2.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
+/lart.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
+/leds-adsbitsy.c/1.1/Tue Nov  6 07:55:45 2001/-ko/Tlinux_2_4_20
+/leds-assabet.c/1.2.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
+/leds-brutus.c/1.1/Sat Sep 22 12:49:07 2001/-ko/Tlinux_2_4_20
+/leds-cerf.c/1.2/Tue Nov  6 07:55:45 2001/-ko/Tlinux_2_4_20
+/leds-flexanet.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
+/leds-frodo.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
+/leds-graphicsclient.c/1.1/Sat Sep 22 12:49:07 2001/-ko/Tlinux_2_4_20
+/leds-graphicsmaster.c/1.1/Tue Nov  6 00:54:54 2001/-ko/Tlinux_2_4_20
+/leds-lart.c/1.1/Sat Sep 22 12:49:07 2001/-ko/Tlinux_2_4_20
+/leds-pfs168.c/1.1/Sat Sep 22 12:49:07 2001/-ko/Tlinux_2_4_20
+/leds-simpad.c/1.2/Tue Nov  6 07:55:45 2001/-ko/Tlinux_2_4_20
+/leds-system3.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
+/leds.c/1.4.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/leds.h/1.3.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/nanoengine.c/1.1.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/neponset.c/1.3.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/omnimeter.c/1.1.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/pangolin.c/1.2.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/pcipool.c/1.1/Sat Sep 22 12:49:07 2001/-ko/Tlinux_2_4_20
+/pcipool.h/1.1/Sat Sep 22 12:49:07 2001/-ko/Tlinux_2_4_20
+/pfs168.c/1.2.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/pleb.c/1.1.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/pm.c/1.1.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/sa1111-pcibuf.c/1.2.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/sa1111.c/1.2.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/sa1111.h/1.2.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/shannon.c/1.1.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/sherman.c/1.1.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/simpad.c/1.2.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/sleep.S/1.1/Tue Nov  6 07:55:45 2001/-ko/Tlinux_2_4_20
+/sleep.h/1.1/Tue Nov  6 07:55:46 2001/-ko/Tlinux_2_4_20
+/system3.c/1.1.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/victor.c/1.1.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/xp860.c/1.2.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/yopy.c/1.1.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/arm/mach-sa1100/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/mach-sa1100/CVS/Repository
--- linux-2.4.20/arch/arm/mach-sa1100/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-sa1100/CVS/Repository	2005-01-06 22:59:11.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/arm/mach-sa1100
diff -urNd -urNd linux-2.4.20/arch/arm/mach-sa1100/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/mach-sa1100/CVS/Root
--- linux-2.4.20/arch/arm/mach-sa1100/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-sa1100/CVS/Root	2005-01-06 22:59:11.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/arm/mach-sa1100/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/mach-sa1100/CVS/Tag
--- linux-2.4.20/arch/arm/mach-sa1100/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-sa1100/CVS/Tag	2005-01-06 22:59:12.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/arm/mach-shark/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/mach-shark/CVS/Entries
--- linux-2.4.20/arch/arm/mach-shark/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-shark/CVS/Entries	2005-01-06 22:59:12.000000000 -0600
@@ -0,0 +1,7 @@
+/Makefile/1.3/Wed Jun 13 17:27:38 2001/-ko/Tlinux_2_4_20
+/arch.c/1.3/Sat Sep 22 12:49:07 2001/-ko/Tlinux_2_4_20
+/dma.c/1.3/Tue Nov  6 07:55:46 2001/-ko/Tlinux_2_4_20
+/leds.c/1.2/Tue Nov  6 07:55:46 2001/-ko/Tlinux_2_4_20
+/mm.c/1.3/Tue Nov  6 07:55:46 2001/-ko/Tlinux_2_4_20
+/pci.c/1.1/Thu Oct  5 01:18:42 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/arm/mach-shark/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/mach-shark/CVS/Repository
--- linux-2.4.20/arch/arm/mach-shark/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-shark/CVS/Repository	2005-01-06 22:59:12.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/arm/mach-shark
diff -urNd -urNd linux-2.4.20/arch/arm/mach-shark/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/mach-shark/CVS/Root
--- linux-2.4.20/arch/arm/mach-shark/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-shark/CVS/Root	2005-01-06 22:59:12.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/arm/mach-shark/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/mach-shark/CVS/Tag
--- linux-2.4.20/arch/arm/mach-shark/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-shark/CVS/Tag	2005-01-06 22:59:12.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/arm/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/mm/CVS/Entries
--- linux-2.4.20/arch/arm/mm/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mm/CVS/Entries	2005-01-06 22:59:15.000000000 -0600
@@ -0,0 +1,28 @@
+/Makefile/1.15.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/alignment.c/1.1.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/consistent.c/1.8/Wed Aug 22 03:23:55 2001/-ko/Tlinux_2_4_20
+/discontig.c/1.1/Sat Sep 22 12:49:07 2001/-ko/Tlinux_2_4_20
+/extable.c/1.3/Tue Nov  6 00:54:54 2001/-ko/Tlinux_2_4_20
+/fault-armo.c/1.9/Fri Mar  9 20:33:42 2001/-ko/Tlinux_2_4_20
+/fault-armv.c/1.22.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/fault-common.c/1.17.2.2/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
+/init.c/1.27/Tue Nov  6 00:54:54 2001/-ko/Tlinux_2_4_20
+/ioremap.c/1.8/Wed Jun 13 17:27:38 2001/-ko/Tlinux_2_4_20
+/mm-armo.c/1.8/Wed Jun 13 17:27:38 2001/-ko/Tlinux_2_4_20
+/mm-armv.c/1.22.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/mm-clps7500.c/1.3/Wed Jun 13 17:27:38 2001/-ko/Tlinux_2_4_20
+/mm-ftvpci.c/1.1/Tue Nov  6 00:54:54 2001/-ko/Tlinux_2_4_20
+/mm-l7200.c/1.5/Wed Aug 22 03:23:55 2001/-ko/Tlinux_2_4_20
+/mm-rpc.c/1.11/Thu Apr  5 04:56:08 2001/-ko/Tlinux_2_4_20
+/mm-tbox.c/1.4/Thu Oct  5 01:18:42 2000/-ko/Tlinux_2_4_20
+/proc-arm1020.S/1.1.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/proc-arm2,3.S/1.11/Thu Apr  5 04:56:08 2001/-ko/Tlinux_2_4_20
+/proc-arm6,7.S/1.21/Sat Sep 22 12:49:08 2001/-ko/Tlinux_2_4_20
+/proc-arm720.S/1.9.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/proc-arm920.S/1.5.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/proc-arm922.S/1.1.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/proc-arm926.S/1.1.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/proc-sa110.S/1.24.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/proc-syms.c/1.1/Thu Oct  5 01:18:42 2000/-ko/Tlinux_2_4_20
+/small_page.c/1.9/Wed Jun 13 17:27:38 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/arm/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/mm/CVS/Repository
--- linux-2.4.20/arch/arm/mm/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mm/CVS/Repository	2005-01-06 22:59:12.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/arm/mm
diff -urNd -urNd linux-2.4.20/arch/arm/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/mm/CVS/Root
--- linux-2.4.20/arch/arm/mm/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mm/CVS/Root	2005-01-06 22:59:12.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/arm/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/mm/CVS/Tag
--- linux-2.4.20/arch/arm/mm/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/mm/CVS/Tag	2005-01-06 22:59:15.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/arm/nwfpe/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/nwfpe/CVS/Entries
--- linux-2.4.20/arch/arm/nwfpe/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/nwfpe/CVS/Entries	2005-01-06 22:59:16.000000000 -0600
@@ -0,0 +1,26 @@
+/ARM-gcc.h/1.1.4.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/ChangeLog/1.2.4.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/Makefile/1.5/Wed Jun 13 17:27:38 2001/-ko/Tlinux_2_4_20
+/double_cpdo.c/1.6.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/entry.S/1.4.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/entry26.S/1.4.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/extended_cpdo.c/1.6.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/fpa11.c/1.5.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/fpa11.h/1.4.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/fpa11.inl/1.4/Sat Sep 22 12:49:08 2001/-ko/Tlinux_2_4_20
+/fpa11_cpdo.c/1.6/Sat Sep 22 12:49:08 2001/-ko/Tlinux_2_4_20
+/fpa11_cpdt.c/1.5.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/fpa11_cprt.c/1.6.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/fpmodule.c/1.8.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/fpmodule.h/1.2/Sat Oct  9 00:00:51 1999/-ko/Tlinux_2_4_20
+/fpmodule.inl/1.4/Sat Sep 22 12:49:08 2001/-ko/Tlinux_2_4_20
+/fpopcode.c/1.4.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/fpopcode.h/1.3/Wed Jun 13 17:27:38 2001/-ko/Tlinux_2_4_20
+/fpsr.h/1.3/Thu Feb 24 00:12:37 2000/-ko/Tlinux_2_4_20
+/milieu.h/1.1/Tue Jun 22 23:06:23 1999/-ko/Tlinux_2_4_20
+/single_cpdo.c/1.5.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/softfloat-macros/1.1/Tue Jun 22 23:06:23 1999/-ko/Tlinux_2_4_20
+/softfloat-specialize/1.1.4.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/softfloat.c/1.2.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+/softfloat.h/1.1.4.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/arm/nwfpe/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/nwfpe/CVS/Repository
--- linux-2.4.20/arch/arm/nwfpe/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/nwfpe/CVS/Repository	2005-01-06 22:59:15.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/arm/nwfpe
diff -urNd -urNd linux-2.4.20/arch/arm/nwfpe/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/nwfpe/CVS/Root
--- linux-2.4.20/arch/arm/nwfpe/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/nwfpe/CVS/Root	2005-01-06 22:59:15.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/arm/nwfpe/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/nwfpe/CVS/Tag
--- linux-2.4.20/arch/arm/nwfpe/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/nwfpe/CVS/Tag	2005-01-06 22:59:16.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/arm/tools/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/tools/CVS/Entries
--- linux-2.4.20/arch/arm/tools/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/tools/CVS/Entries	2005-01-06 22:59:16.000000000 -0600
@@ -0,0 +1,6 @@
+/Makefile/1.4.2.1/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
+/constants-hdr/1.1/Thu Apr  5 04:56:08 2001/-ko/Tlinux_2_4_20
+/gen-mach-types/1.1/Mon Aug 28 22:00:12 2000/-ko/Tlinux_2_4_20
+/getconstants.c/1.4/Tue Nov  6 00:54:54 2001/-ko/Tlinux_2_4_20
+/mach-types/1.12.2.1/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/arm/tools/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/tools/CVS/Repository
--- linux-2.4.20/arch/arm/tools/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/tools/CVS/Repository	2005-01-06 22:59:16.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/arm/tools
diff -urNd -urNd linux-2.4.20/arch/arm/tools/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/tools/CVS/Root
--- linux-2.4.20/arch/arm/tools/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/tools/CVS/Root	2005-01-06 22:59:16.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/arm/tools/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/tools/CVS/Tag
--- linux-2.4.20/arch/arm/tools/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/arm/tools/CVS/Tag	2005-01-06 22:59:16.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/cris/boot/compressed/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/cris/boot/compressed/CVS/Entries
--- linux-2.4.20/arch/cris/boot/compressed/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/boot/compressed/CVS/Entries	2005-01-06 22:59:16.000000000 -0600
@@ -0,0 +1,6 @@
+/Makefile/1.3.2.1/Tue Feb 26 05:58:58 2002/-ko/Tlinux_2_4_20
+/README/1.1/Fri Mar  9 20:33:43 2001/-ko/Tlinux_2_4_20
+/decompress.ld/1.4/Fri Aug 24 03:38:28 2001/-ko/Tlinux_2_4_20
+/head.S/1.3/Thu Jun 14 04:23:46 2001/-ko/Tlinux_2_4_20
+/misc.c/1.3/Thu Jun 14 04:23:46 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/cris/boot/compressed/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/cris/boot/compressed/CVS/Repository
--- linux-2.4.20/arch/cris/boot/compressed/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/boot/compressed/CVS/Repository	2005-01-06 22:59:16.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/cris/boot/compressed
diff -urNd -urNd linux-2.4.20/arch/cris/boot/compressed/CVS/Root linux-2.4.20-mipscvs-20050106/arch/cris/boot/compressed/CVS/Root
--- linux-2.4.20/arch/cris/boot/compressed/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/boot/compressed/CVS/Root	2005-01-06 22:59:16.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/cris/boot/compressed/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/cris/boot/compressed/CVS/Tag
--- linux-2.4.20/arch/cris/boot/compressed/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/boot/compressed/CVS/Tag	2005-01-06 22:59:16.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/cris/boot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/cris/boot/CVS/Entries
--- linux-2.4.20/arch/cris/boot/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/boot/CVS/Entries	2005-01-06 23:08:25.000000000 -0600
@@ -0,0 +1,4 @@
+/Makefile/1.1.2.1/Tue Feb 26 05:58:58 2002/-ko/Tlinux_2_4_20
+D/compressed////
+D/rescue////
+D/tools////
diff -urNd -urNd linux-2.4.20/arch/cris/boot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/cris/boot/CVS/Repository
--- linux-2.4.20/arch/cris/boot/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/boot/CVS/Repository	2005-01-06 22:59:16.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/cris/boot
diff -urNd -urNd linux-2.4.20/arch/cris/boot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/cris/boot/CVS/Root
--- linux-2.4.20/arch/cris/boot/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/boot/CVS/Root	2005-01-06 22:59:16.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/cris/boot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/cris/boot/CVS/Tag
--- linux-2.4.20/arch/cris/boot/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/boot/CVS/Tag	2005-01-06 22:59:16.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/cris/boot/rescue/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/cris/boot/rescue/CVS/Entries
--- linux-2.4.20/arch/cris/boot/rescue/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/boot/rescue/CVS/Entries	2005-01-06 22:59:16.000000000 -0600
@@ -0,0 +1,6 @@
+/Makefile/1.2.2.1/Tue Feb 26 05:58:58 2002/-ko/Tlinux_2_4_20
+/head.S/1.3.2.1/Tue Feb 26 05:58:58 2002/-ko/Tlinux_2_4_20
+/kimagerescue.S/1.3/Mon Nov  5 20:15:22 2001/-ko/Tlinux_2_4_20
+/rescue.ld/1.2/Mon Nov  5 20:15:22 2001/-ko/Tlinux_2_4_20
+/testrescue.S/1.3/Mon Nov  5 20:15:22 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/cris/boot/rescue/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/cris/boot/rescue/CVS/Repository
--- linux-2.4.20/arch/cris/boot/rescue/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/boot/rescue/CVS/Repository	2005-01-06 22:59:16.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/cris/boot/rescue
diff -urNd -urNd linux-2.4.20/arch/cris/boot/rescue/CVS/Root linux-2.4.20-mipscvs-20050106/arch/cris/boot/rescue/CVS/Root
--- linux-2.4.20/arch/cris/boot/rescue/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/boot/rescue/CVS/Root	2005-01-06 22:59:16.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/cris/boot/rescue/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/cris/boot/rescue/CVS/Tag
--- linux-2.4.20/arch/cris/boot/rescue/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/boot/rescue/CVS/Tag	2005-01-06 22:59:16.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/cris/boot/tools/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/cris/boot/tools/CVS/Entries
--- linux-2.4.20/arch/cris/boot/tools/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/boot/tools/CVS/Entries	2005-01-06 22:59:16.000000000 -0600
@@ -0,0 +1,2 @@
+/build.c/1.1/Wed Jun 13 17:27:38 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/cris/boot/tools/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/cris/boot/tools/CVS/Repository
--- linux-2.4.20/arch/cris/boot/tools/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/boot/tools/CVS/Repository	2005-01-06 22:59:16.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/cris/boot/tools
diff -urNd -urNd linux-2.4.20/arch/cris/boot/tools/CVS/Root linux-2.4.20-mipscvs-20050106/arch/cris/boot/tools/CVS/Root
--- linux-2.4.20/arch/cris/boot/tools/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/boot/tools/CVS/Root	2005-01-06 22:59:16.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/cris/boot/tools/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/cris/boot/tools/CVS/Tag
--- linux-2.4.20/arch/cris/boot/tools/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/boot/tools/CVS/Tag	2005-01-06 22:59:16.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/cris/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/cris/CVS/Entries
--- linux-2.4.20/arch/cris/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/CVS/Entries	2005-01-06 23:08:26.000000000 -0600
@@ -0,0 +1,10 @@
+/Makefile/1.6.2.2/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
+/README.mm/1.1/Fri Mar  9 20:33:43 2001/-ko/Tlinux_2_4_20
+/config.in/1.7.2.2/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
+/cris.ld/1.6/Mon Nov  5 20:15:22 2001/-ko/Tlinux_2_4_20
+/defconfig/1.6.2.1/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
+D/boot////
+D/drivers////
+D/kernel////
+D/lib////
+D/mm////
diff -urNd -urNd linux-2.4.20/arch/cris/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/cris/CVS/Repository
--- linux-2.4.20/arch/cris/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/CVS/Repository	2005-01-06 22:59:16.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/cris
diff -urNd -urNd linux-2.4.20/arch/cris/CVS/Root linux-2.4.20-mipscvs-20050106/arch/cris/CVS/Root
--- linux-2.4.20/arch/cris/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/CVS/Root	2005-01-06 22:59:16.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/cris/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/cris/CVS/Tag
--- linux-2.4.20/arch/cris/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/CVS/Tag	2005-01-06 22:59:16.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/cris/drivers/bluetooth/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/cris/drivers/bluetooth/CVS/Entries
--- linux-2.4.20/arch/cris/drivers/bluetooth/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/drivers/bluetooth/CVS/Entries	2005-01-06 22:59:19.000000000 -0600
@@ -0,0 +1,2 @@
+/Makefile/1.1.2.1/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/cris/drivers/bluetooth/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/cris/drivers/bluetooth/CVS/Repository
--- linux-2.4.20/arch/cris/drivers/bluetooth/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/drivers/bluetooth/CVS/Repository	2005-01-06 22:59:19.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/cris/drivers/bluetooth
diff -urNd -urNd linux-2.4.20/arch/cris/drivers/bluetooth/CVS/Root linux-2.4.20-mipscvs-20050106/arch/cris/drivers/bluetooth/CVS/Root
--- linux-2.4.20/arch/cris/drivers/bluetooth/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/drivers/bluetooth/CVS/Root	2005-01-06 22:59:19.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/cris/drivers/bluetooth/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/cris/drivers/bluetooth/CVS/Tag
--- linux-2.4.20/arch/cris/drivers/bluetooth/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/drivers/bluetooth/CVS/Tag	2005-01-06 22:59:19.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/cris/drivers/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/cris/drivers/CVS/Entries
--- linux-2.4.20/arch/cris/drivers/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/drivers/CVS/Entries	2005-01-06 23:08:25.000000000 -0600
@@ -0,0 +1,22 @@
+/Config.in/1.6.2.2/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
+/Makefile/1.4.2.1/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
+/axisflashmap.c/1.6.2.2/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
+/ds1302.c/1.2.2.2/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
+/eeprom.c/1.3/Fri Aug 24 03:38:28 2001/-ko/Tlinux_2_4_20
+/ethernet.c/1.5.2.2/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
+/gpio.c/1.4.2.3/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
+/i2c.c/1.2.2.1/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
+/i2c.h/1.2/Thu Jun 14 04:23:46 2001/-ko/Tlinux_2_4_20
+/ide.c/1.4.2.1/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
+/parport.c/1.5.2.1/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
+/pcf8563.c/1.1.2.1/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
+/serial.c/1.7.2.3/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
+/serial.h/1.5.2.2/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
+/sync_serial.c/1.2.2.3/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
+/usb-host.c/1.6.2.2/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
+/usb-host.h/1.2/Sat Sep 22 12:49:08 2001/-ko/Tlinux_2_4_20
+/virtex.c/1.1.2.1/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
+/virtex.h/1.1.2.1/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
+D/bluetooth////
+D/examples////
+D/lpslave////
diff -urNd -urNd linux-2.4.20/arch/cris/drivers/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/cris/drivers/CVS/Repository
--- linux-2.4.20/arch/cris/drivers/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/drivers/CVS/Repository	2005-01-06 22:59:16.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/cris/drivers
diff -urNd -urNd linux-2.4.20/arch/cris/drivers/CVS/Root linux-2.4.20-mipscvs-20050106/arch/cris/drivers/CVS/Root
--- linux-2.4.20/arch/cris/drivers/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/drivers/CVS/Root	2005-01-06 22:59:16.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/cris/drivers/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/cris/drivers/CVS/Tag
--- linux-2.4.20/arch/cris/drivers/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/drivers/CVS/Tag	2005-01-06 22:59:19.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/cris/drivers/examples/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/cris/drivers/examples/CVS/Entries
--- linux-2.4.20/arch/cris/drivers/examples/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/drivers/examples/CVS/Entries	2005-01-06 22:59:19.000000000 -0600
@@ -0,0 +1,2 @@
+/kiobuftest.c/1.1/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/cris/drivers/examples/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/cris/drivers/examples/CVS/Repository
--- linux-2.4.20/arch/cris/drivers/examples/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/drivers/examples/CVS/Repository	2005-01-06 22:59:19.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/cris/drivers/examples
diff -urNd -urNd linux-2.4.20/arch/cris/drivers/examples/CVS/Root linux-2.4.20-mipscvs-20050106/arch/cris/drivers/examples/CVS/Root
--- linux-2.4.20/arch/cris/drivers/examples/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/drivers/examples/CVS/Root	2005-01-06 22:59:19.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/cris/drivers/examples/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/cris/drivers/examples/CVS/Tag
--- linux-2.4.20/arch/cris/drivers/examples/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/drivers/examples/CVS/Tag	2005-01-06 22:59:19.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/cris/drivers/lpslave/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/cris/drivers/lpslave/CVS/Entries
--- linux-2.4.20/arch/cris/drivers/lpslave/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/drivers/lpslave/CVS/Entries	2005-01-06 22:59:20.000000000 -0600
@@ -0,0 +1,8 @@
+/Makefile/1.1/Thu Aug 23 22:24:21 2001/-ko/Tlinux_2_4_20
+/bintocarr.pl/1.2/Mon Nov  5 20:15:22 2001/-ko/Tlinux_2_4_20
+/e100lpslave.README/1.1/Thu Aug 23 22:24:21 2001/-ko/Tlinux_2_4_20
+/e100lpslave.S/1.2/Fri Aug 24 03:38:29 2001/-ko/Tlinux_2_4_20
+/e100lpslave.h/1.1/Thu Aug 23 22:24:22 2001/-ko/Tlinux_2_4_20
+/e100lpslaveld/1.1/Thu Aug 23 22:24:22 2001/-ko/Tlinux_2_4_20
+/e100lpslavenet.c/1.2.2.1/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/cris/drivers/lpslave/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/cris/drivers/lpslave/CVS/Repository
--- linux-2.4.20/arch/cris/drivers/lpslave/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/drivers/lpslave/CVS/Repository	2005-01-06 22:59:19.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/cris/drivers/lpslave
diff -urNd -urNd linux-2.4.20/arch/cris/drivers/lpslave/CVS/Root linux-2.4.20-mipscvs-20050106/arch/cris/drivers/lpslave/CVS/Root
--- linux-2.4.20/arch/cris/drivers/lpslave/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/drivers/lpslave/CVS/Root	2005-01-06 22:59:19.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/cris/drivers/lpslave/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/cris/drivers/lpslave/CVS/Tag
--- linux-2.4.20/arch/cris/drivers/lpslave/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/drivers/lpslave/CVS/Tag	2005-01-06 22:59:20.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/cris/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/cris/kernel/CVS/Entries
--- linux-2.4.20/arch/cris/kernel/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/kernel/CVS/Entries	2005-01-06 22:59:21.000000000 -0600
@@ -0,0 +1,20 @@
+/Makefile/1.6.2.1/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
+/debugport.c/1.2.2.1/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
+/entry.S/1.8.2.2/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
+/entryoffsets.c/1.2/Fri Aug 24 03:38:29 2001/-ko/Tlinux_2_4_20
+/fasttimer.c/1.1.2.1/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
+/head.S/1.7.2.2/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
+/hexify.c/1.1/Fri Mar  9 20:33:43 2001/-ko/Tlinux_2_4_20
+/irq.c/1.5.2.1/Tue Feb 26 05:58:59 2002/-ko/Tlinux_2_4_20
+/kgdb.c/1.4.2.1/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
+/ksyms.c/1.3.2.1/Tue Feb 26 05:58:59 2002/-ko/Tlinux_2_4_20
+/process.c/1.8.2.1/Tue Feb 26 05:58:59 2002/-ko/Tlinux_2_4_20
+/ptrace.c/1.6.2.1/Tue Feb 26 05:58:59 2002/-ko/Tlinux_2_4_20
+/semaphore.c/1.2/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
+/setup.c/1.7.2.2/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
+/shadows.c/1.2/Thu Jun 14 04:23:47 2001/-ko/Tlinux_2_4_20
+/signal.c/1.5.2.1/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
+/sys_cris.c/1.6/Fri Aug 24 03:38:29 2001/-ko/Tlinux_2_4_20
+/time.c/1.4.2.2/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
+/traps.c/1.7.2.2/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/cris/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/cris/kernel/CVS/Repository
--- linux-2.4.20/arch/cris/kernel/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/kernel/CVS/Repository	2005-01-06 22:59:20.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/cris/kernel
diff -urNd -urNd linux-2.4.20/arch/cris/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/cris/kernel/CVS/Root
--- linux-2.4.20/arch/cris/kernel/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/kernel/CVS/Root	2005-01-06 22:59:20.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/cris/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/cris/kernel/CVS/Tag
--- linux-2.4.20/arch/cris/kernel/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/kernel/CVS/Tag	2005-01-06 22:59:21.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/cris/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/cris/lib/CVS/Entries
--- linux-2.4.20/arch/cris/lib/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/lib/CVS/Entries	2005-01-06 22:59:21.000000000 -0600
@@ -0,0 +1,12 @@
+/Makefile/1.2/Fri Aug 24 03:38:29 2001/-ko/Tlinux_2_4_20
+/checksum.S/1.4/Mon Nov  5 20:15:23 2001/-ko/Tlinux_2_4_20
+/checksumcopy.S/1.5/Mon Nov  5 20:15:23 2001/-ko/Tlinux_2_4_20
+/csumcpfruser.S/1.2/Mon Nov  5 20:15:23 2001/-ko/Tlinux_2_4_20
+/dmacopy.c/1.1/Fri Mar  9 20:33:43 2001/-ko/Tlinux_2_4_20
+/dram_init.S/1.4.2.1/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
+/hw_settings.S/1.2.2.1/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
+/memset.c/1.3/Mon Nov  5 20:15:23 2001/-ko/Tlinux_2_4_20
+/old_checksum.c/1.1/Fri Mar  9 20:33:43 2001/-ko/Tlinux_2_4_20
+/string.c/1.3/Mon Nov  5 20:15:23 2001/-ko/Tlinux_2_4_20
+/usercopy.c/1.3/Mon Nov  5 20:15:23 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/cris/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/cris/lib/CVS/Repository
--- linux-2.4.20/arch/cris/lib/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/lib/CVS/Repository	2005-01-06 22:59:21.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/cris/lib
diff -urNd -urNd linux-2.4.20/arch/cris/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/cris/lib/CVS/Root
--- linux-2.4.20/arch/cris/lib/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/lib/CVS/Root	2005-01-06 22:59:21.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/cris/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/cris/lib/CVS/Tag
--- linux-2.4.20/arch/cris/lib/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/lib/CVS/Tag	2005-01-06 22:59:21.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/cris/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/cris/mm/CVS/Entries
--- linux-2.4.20/arch/cris/mm/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/mm/CVS/Entries	2005-01-06 22:59:21.000000000 -0600
@@ -0,0 +1,7 @@
+/Makefile/1.2/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
+/extable.c/1.3.2.1/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
+/fault.c/1.6.2.3/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
+/init.c/1.5.2.2/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
+/ioremap.c/1.2/Thu Jun 14 04:23:47 2001/-ko/Tlinux_2_4_20
+/tlb.c/1.4/Fri Aug 24 03:38:29 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/cris/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/cris/mm/CVS/Repository
--- linux-2.4.20/arch/cris/mm/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/mm/CVS/Repository	2005-01-06 22:59:21.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/cris/mm
diff -urNd -urNd linux-2.4.20/arch/cris/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/cris/mm/CVS/Root
--- linux-2.4.20/arch/cris/mm/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/mm/CVS/Root	2005-01-06 22:59:21.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/cris/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/cris/mm/CVS/Tag
--- linux-2.4.20/arch/cris/mm/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/cris/mm/CVS/Tag	2005-01-06 22:59:21.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/CVS/Entries
--- linux-2.4.20/arch/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/CVS/Entries	2005-01-06 23:08:27.000000000 -0600
@@ -0,0 +1,17 @@
+D/alpha////
+D/arm////
+D/cris////
+D/i386////
+D/ia64////
+D/m68k////
+D/mips////
+D/mips64////
+D/parisc////
+D/ppc////
+D/ppc64////
+D/s390////
+D/s390x////
+D/sh////
+D/sparc////
+D/sparc64////
+D/x86_64////
diff -urNd -urNd linux-2.4.20/arch/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/CVS/Repository
--- linux-2.4.20/arch/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/CVS/Repository	2005-01-06 22:59:00.000000000 -0600
@@ -0,0 +1 @@
+linux/arch
diff -urNd -urNd linux-2.4.20/arch/CVS/Root linux-2.4.20-mipscvs-20050106/arch/CVS/Root
--- linux-2.4.20/arch/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/CVS/Root	2005-01-06 22:59:00.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/CVS/Tag
--- linux-2.4.20/arch/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/CVS/Tag	2005-01-06 22:59:00.000000000 -0600
@@ -0,0 +1 @@
+Tlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/i386/boot/compressed/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/i386/boot/compressed/CVS/Entries
--- linux-2.4.20/arch/i386/boot/compressed/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/boot/compressed/CVS/Entries	2005-01-06 22:59:22.000000000 -0600
@@ -0,0 +1,5 @@
+/.cvsignore/1.2/Tue Mar 17 22:06:48 1998/-ko/Tlinux_2_4_20
+/Makefile/1.9.2.1/Tue Feb 26 05:59:00 2002/-ko/Tlinux_2_4_20
+/head.S/1.9/Sat Jul  8 00:53:01 2000/-ko/Tlinux_2_4_20
+/misc.c/1.15.2.2/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/i386/boot/compressed/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/i386/boot/compressed/CVS/Repository
--- linux-2.4.20/arch/i386/boot/compressed/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/boot/compressed/CVS/Repository	2005-01-06 22:59:22.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/i386/boot/compressed
diff -urNd -urNd linux-2.4.20/arch/i386/boot/compressed/CVS/Root linux-2.4.20-mipscvs-20050106/arch/i386/boot/compressed/CVS/Root
--- linux-2.4.20/arch/i386/boot/compressed/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/boot/compressed/CVS/Root	2005-01-06 22:59:22.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/i386/boot/compressed/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/i386/boot/compressed/CVS/Tag
--- linux-2.4.20/arch/i386/boot/compressed/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/boot/compressed/CVS/Tag	2005-01-06 22:59:22.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/i386/boot/compressed/.cvsignore linux-2.4.20-mipscvs-20050106/arch/i386/boot/compressed/.cvsignore
--- linux-2.4.20/arch/i386/boot/compressed/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/boot/compressed/.cvsignore	1998-03-17 16:06:48.000000000 -0600
@@ -0,0 +1,4 @@
+*tmppiggy*
+.*.flags
+vmlinux
+vmlinux.out
diff -urNd -urNd linux-2.4.20/arch/i386/boot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/i386/boot/CVS/Entries
--- linux-2.4.20/arch/i386/boot/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/boot/CVS/Entries	2005-01-06 23:08:25.000000000 -0600
@@ -0,0 +1,8 @@
+/.cvsignore/1.2/Tue Mar 17 22:06:45 1998/-ko/Tlinux_2_4_20
+/Makefile/1.10/Fri Aug 24 03:38:30 2001/-ko/Tlinux_2_4_20
+/bootsect.S/1.14/Sun Dec  2 11:34:35 2001/-ko/Tlinux_2_4_20
+/install.sh/1.2/Fri Oct 19 01:23:33 2001/-ko/Tlinux_2_4_20
+/setup.S/1.25.2.2/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
+/video.S/1.9/Thu Aug 23 22:24:22 2001/-ko/Tlinux_2_4_20
+D/compressed////
+D/tools////
diff -urNd -urNd linux-2.4.20/arch/i386/boot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/i386/boot/CVS/Repository
--- linux-2.4.20/arch/i386/boot/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/boot/CVS/Repository	2005-01-06 22:59:21.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/i386/boot
diff -urNd -urNd linux-2.4.20/arch/i386/boot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/i386/boot/CVS/Root
--- linux-2.4.20/arch/i386/boot/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/boot/CVS/Root	2005-01-06 22:59:21.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/i386/boot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/i386/boot/CVS/Tag
--- linux-2.4.20/arch/i386/boot/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/boot/CVS/Tag	2005-01-06 22:59:22.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/i386/boot/.cvsignore linux-2.4.20-mipscvs-20050106/arch/i386/boot/.cvsignore
--- linux-2.4.20/arch/i386/boot/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/boot/.cvsignore	1998-03-17 16:06:45.000000000 -0600
@@ -0,0 +1,5 @@
+*.s
+.*.flags
+bootsect
+setup
+zImage
diff -urNd -urNd linux-2.4.20/arch/i386/boot/tools/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/i386/boot/tools/CVS/Entries
--- linux-2.4.20/arch/i386/boot/tools/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/boot/tools/CVS/Entries	2005-01-06 22:59:22.000000000 -0600
@@ -0,0 +1,3 @@
+/.cvsignore/1.2/Tue Mar 17 22:06:50 1998/-ko/Tlinux_2_4_20
+/build.c/1.10/Wed Aug 22 03:23:56 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/i386/boot/tools/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/i386/boot/tools/CVS/Repository
--- linux-2.4.20/arch/i386/boot/tools/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/boot/tools/CVS/Repository	2005-01-06 22:59:22.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/i386/boot/tools
diff -urNd -urNd linux-2.4.20/arch/i386/boot/tools/CVS/Root linux-2.4.20-mipscvs-20050106/arch/i386/boot/tools/CVS/Root
--- linux-2.4.20/arch/i386/boot/tools/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/boot/tools/CVS/Root	2005-01-06 22:59:22.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/i386/boot/tools/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/i386/boot/tools/CVS/Tag
--- linux-2.4.20/arch/i386/boot/tools/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/boot/tools/CVS/Tag	2005-01-06 22:59:22.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/i386/boot/tools/.cvsignore linux-2.4.20-mipscvs-20050106/arch/i386/boot/tools/.cvsignore
--- linux-2.4.20/arch/i386/boot/tools/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/boot/tools/.cvsignore	1998-03-17 16:06:50.000000000 -0600
@@ -0,0 +1,2 @@
+build
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/i386/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/i386/CVS/Entries
--- linux-2.4.20/arch/i386/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/CVS/Entries	2005-01-06 23:08:25.000000000 -0600
@@ -0,0 +1,9 @@
+/Makefile/1.24.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/config.in/1.62.2.4/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
+/defconfig/1.76.2.3/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/vmlinux.lds/1.12.2.1/Tue Feb 26 05:59:00 2002/-ko/Tlinux_2_4_20
+D/boot////
+D/kernel////
+D/lib////
+D/math-emu////
+D/mm////
diff -urNd -urNd linux-2.4.20/arch/i386/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/i386/CVS/Repository
--- linux-2.4.20/arch/i386/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/CVS/Repository	2005-01-06 22:59:21.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/i386
diff -urNd -urNd linux-2.4.20/arch/i386/CVS/Root linux-2.4.20-mipscvs-20050106/arch/i386/CVS/Root
--- linux-2.4.20/arch/i386/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/CVS/Root	2005-01-06 22:59:21.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/i386/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/i386/CVS/Tag
--- linux-2.4.20/arch/i386/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/CVS/Tag	2005-01-06 22:59:21.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/i386/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/i386/kernel/CVS/Entries
--- linux-2.4.20/arch/i386/kernel/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/kernel/CVS/Entries	2005-01-06 23:08:25.000000000 -0600
@@ -0,0 +1,45 @@
+/.cvsignore/1.2/Tue Mar 17 22:06:51 1998/-ko/Tlinux_2_4_20
+/Makefile/1.26.2.1/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
+/acpitable.c/1.1.2.1/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
+/acpitable.h/1.1/Sun Dec  2 11:34:35 2001/-ko/Tlinux_2_4_20
+/apic.c/1.21.2.4/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/apm.c/1.32.2.4/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
+/bluesmoke.c/1.10.2.1/Wed Jun 26 22:35:07 2002/-ko/Tlinux_2_4_20
+/cpuid.c/1.5/Tue Nov  6 00:54:54 2001/-ko/Tlinux_2_4_20
+/dmi_scan.c/1.9.2.5/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/entry.S/1.42.2.4/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/head.S/1.27.2.2/Wed Jun 26 22:35:07 2002/-ko/Tlinux_2_4_20
+/i386_ksyms.c/1.41.2.3/Tue Sep 10 15:32:48 2002/-ko/Tlinux_2_4_20
+/i387.c/1.6.2.1/Tue Sep 10 15:32:48 2002/-ko/Tlinux_2_4_20
+/i8259.c/1.19/Fri Oct 19 01:23:34 2001/-ko/Tlinux_2_4_20
+/init_task.c/1.8/Fri Oct 19 01:23:34 2001/-ko/Tlinux_2_4_20
+/io_apic.c/1.33.2.3/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/ioport.c/1.7/Sat Oct  9 00:00:52 1999/-ko/Tlinux_2_4_20
+/irq.c/1.38.2.1/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
+/ldt.c/1.13/Tue Nov  6 00:54:54 2001/-ko/Tlinux_2_4_20
+/mca.c/1.16/Tue Aug 29 05:27:08 2000/-ko/Tlinux_2_4_20
+/microcode.c/1.17.2.1/Wed Jun 26 22:35:07 2002/-ko/Tlinux_2_4_20
+/mpparse.c/1.13.2.3/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/msr.c/1.6/Tue Nov  6 00:54:54 2001/-ko/Tlinux_2_4_20
+/mtrr.c/1.34.2.1/Wed Jun 26 22:35:07 2002/-ko/Tlinux_2_4_20
+/nmi.c/1.1.2.1/Wed Jun 26 22:35:07 2002/-ko/Tlinux_2_4_20
+/pci-dma.c/1.2.4.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/pci-i386.c/1.14.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/pci-i386.h/1.7.2.1/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
+/pci-irq.c/1.18.2.4/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/pci-pc.c/1.25.2.5/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/pci-visws.c/1.6.2.1/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
+/process.c/1.41.2.2/Tue Sep 10 15:32:48 2002/-ko/Tlinux_2_4_20
+/ptrace.c/1.27.2.1/Tue Sep 10 15:32:48 2002/-ko/Tlinux_2_4_20
+/semaphore.c/1.7.2.2/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
+/setup.c/1.53.2.5/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/signal.c/1.26.2.2/Wed Jun 26 22:35:07 2002/-ko/Tlinux_2_4_20
+/smp.c/1.35.2.5/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/smpboot.c/1.18.2.4/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/sys_i386.c/1.11/Thu Apr  5 04:56:08 2001/-ko/Tlinux_2_4_20
+/time.c/1.20.2.2/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
+/trampoline.S/1.7.2.1/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
+/traps.c/1.41.2.3/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
+/visws_apic.c/1.8/Fri Mar  9 20:33:43 2001/-ko/Tlinux_2_4_20
+/vm86.c/1.16.2.2/Tue Sep 10 15:32:48 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/i386/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/i386/kernel/CVS/Repository
--- linux-2.4.20/arch/i386/kernel/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/kernel/CVS/Repository	2005-01-06 22:59:22.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/i386/kernel
diff -urNd -urNd linux-2.4.20/arch/i386/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/i386/kernel/CVS/Root
--- linux-2.4.20/arch/i386/kernel/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/kernel/CVS/Root	2005-01-06 22:59:22.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/i386/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/i386/kernel/CVS/Tag
--- linux-2.4.20/arch/i386/kernel/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/kernel/CVS/Tag	2005-01-06 22:59:25.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/i386/kernel/.cvsignore linux-2.4.20-mipscvs-20050106/arch/i386/kernel/.cvsignore
--- linux-2.4.20/arch/i386/kernel/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/kernel/.cvsignore	1998-03-17 16:06:51.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/i386/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/i386/lib/CVS/Entries
--- linux-2.4.20/arch/i386/lib/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/lib/CVS/Entries	2005-01-06 22:59:25.000000000 -0600
@@ -0,0 +1,13 @@
+/.cvsignore/1.2/Tue Mar 17 22:06:58 1998/-ko/Tlinux_2_4_20
+/Makefile/1.16/Fri Oct 19 01:23:35 2001/-ko/Tlinux_2_4_20
+/checksum.S/1.4.4.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/dec_and_lock.c/1.1/Sun Jul  9 02:54:55 2000/-ko/Tlinux_2_4_20
+/delay.c/1.9/Sat Sep 22 12:49:09 2001/-ko/Tlinux_2_4_20
+/getuser.S/1.1/Tue Mar 17 22:06:59 1998/-ko/Tlinux_2_4_20
+/iodebug.c/1.1/Thu Jan 27 01:05:22 2000/-ko/Tlinux_2_4_20
+/memcpy.c/1.1/Fri Aug 25 06:33:44 2000/-ko/Tlinux_2_4_20
+/mmx.c/1.7.2.1/Wed Jun 26 22:35:07 2002/-ko/Tlinux_2_4_20
+/old-checksum.c/1.1/Mon Feb 15 02:16:31 1999/-ko/Tlinux_2_4_20
+/strstr.c/1.1/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
+/usercopy.c/1.8/Sun Dec  2 11:34:35 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/i386/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/i386/lib/CVS/Repository
--- linux-2.4.20/arch/i386/lib/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/lib/CVS/Repository	2005-01-06 22:59:25.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/i386/lib
diff -urNd -urNd linux-2.4.20/arch/i386/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/i386/lib/CVS/Root
--- linux-2.4.20/arch/i386/lib/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/lib/CVS/Root	2005-01-06 22:59:25.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/i386/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/i386/lib/CVS/Tag
--- linux-2.4.20/arch/i386/lib/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/lib/CVS/Tag	2005-01-06 22:59:25.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/i386/lib/.cvsignore linux-2.4.20-mipscvs-20050106/arch/i386/lib/.cvsignore
--- linux-2.4.20/arch/i386/lib/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/lib/.cvsignore	1998-03-17 16:06:58.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/i386/math-emu/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/i386/math-emu/CVS/Entries
--- linux-2.4.20/arch/i386/math-emu/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/math-emu/CVS/Entries	2005-01-06 22:59:27.000000000 -0600
@@ -0,0 +1,48 @@
+/Makefile/1.5/Wed Jan 10 17:17:54 2001/-ko/Tlinux_2_4_20
+/README/1.4/Sat Jan 29 01:41:57 2000/-ko/Tlinux_2_4_20
+/control_w.h/1.2/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
+/div_Xsig.S/1.3/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
+/div_small.S/1.2/Tue Mar  3 01:22:32 1998/-ko/Tlinux_2_4_20
+/errors.c/1.4/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
+/exception.h/1.2/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
+/fpu_arith.c/1.2/Tue Mar  3 01:22:33 1998/-ko/Tlinux_2_4_20
+/fpu_asm.h/1.3/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
+/fpu_aux.c/1.2/Tue Mar  3 01:22:33 1998/-ko/Tlinux_2_4_20
+/fpu_emu.h/1.4/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
+/fpu_entry.c/1.10/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
+/fpu_etc.c/1.3/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
+/fpu_proto.h/1.3/Sun Dec  2 11:34:36 2001/-ko/Tlinux_2_4_20
+/fpu_system.h/1.5/Wed Jan 10 17:17:54 2001/-ko/Tlinux_2_4_20
+/fpu_tags.c/1.1/Tue Mar  3 01:22:35 1998/-ko/Tlinux_2_4_20
+/fpu_trig.c/1.5/Wed Aug 22 03:23:56 2001/-ko/Tlinux_2_4_20
+/get_address.c/1.7/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
+/load_store.c/1.3/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
+/mul_Xsig.S/1.1.1.1/Sun Jun  1 03:16:33 1997/-ko/Tlinux_2_4_20
+/poly.h/1.5/Fri Aug 24 03:38:30 2001/-ko/Tlinux_2_4_20
+/poly_2xm1.c/1.3/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
+/poly_atan.c/1.3/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
+/poly_l2.c/1.3/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
+/poly_sin.c/1.4/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
+/poly_tan.c/1.5/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
+/polynom_Xsig.S/1.1.1.1/Sun Jun  1 03:16:33 1997/-ko/Tlinux_2_4_20
+/reg_add_sub.c/1.2.8.1/Wed Jun 26 22:35:07 2002/-ko/Tlinux_2_4_20
+/reg_compare.c/1.3.2.1/Wed Jun 26 22:35:07 2002/-ko/Tlinux_2_4_20
+/reg_constant.c/1.2/Tue Mar  3 01:22:38 1998/-ko/Tlinux_2_4_20
+/reg_constant.h/1.2/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
+/reg_convert.c/1.1/Tue Mar  3 01:22:38 1998/-ko/Tlinux_2_4_20
+/reg_divide.c/1.2.2.1/Wed Jun 26 22:35:07 2002/-ko/Tlinux_2_4_20
+/reg_ld_str.c/1.4.2.1/Wed Jun 26 22:35:07 2002/-ko/Tlinux_2_4_20
+/reg_mul.c/1.4.2.1/Wed Jun 26 22:35:07 2002/-ko/Tlinux_2_4_20
+/reg_norm.S/1.2/Tue Mar  3 01:22:40 1998/-ko/Tlinux_2_4_20
+/reg_round.S/1.5/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
+/reg_u_add.S/1.3/Wed Jun 13 17:27:40 2001/-ko/Tlinux_2_4_20
+/reg_u_div.S/1.5/Thu Aug 23 22:24:22 2001/-ko/Tlinux_2_4_20
+/reg_u_mul.S/1.3/Wed Jun 13 17:27:40 2001/-ko/Tlinux_2_4_20
+/reg_u_sub.S/1.3/Wed Jun 13 17:27:40 2001/-ko/Tlinux_2_4_20
+/round_Xsig.S/1.1.1.1/Sun Jun  1 03:16:33 1997/-ko/Tlinux_2_4_20
+/shr_Xsig.S/1.1.1.1/Sun Jun  1 03:16:33 1997/-ko/Tlinux_2_4_20
+/status_w.h/1.2/Wed Jun 13 17:27:40 2001/-ko/Tlinux_2_4_20
+/version.h/1.3/Sat Jan 29 01:41:58 2000/-ko/Tlinux_2_4_20
+/wm_shrx.S/1.2/Tue Mar  3 01:22:42 1998/-ko/Tlinux_2_4_20
+/wm_sqrt.S/1.3/Wed Jun 13 17:27:40 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/i386/math-emu/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/i386/math-emu/CVS/Repository
--- linux-2.4.20/arch/i386/math-emu/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/math-emu/CVS/Repository	2005-01-06 22:59:25.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/i386/math-emu
diff -urNd -urNd linux-2.4.20/arch/i386/math-emu/CVS/Root linux-2.4.20-mipscvs-20050106/arch/i386/math-emu/CVS/Root
--- linux-2.4.20/arch/i386/math-emu/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/math-emu/CVS/Root	2005-01-06 22:59:25.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/i386/math-emu/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/i386/math-emu/CVS/Tag
--- linux-2.4.20/arch/i386/math-emu/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/math-emu/CVS/Tag	2005-01-06 22:59:27.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/i386/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/i386/mm/CVS/Entries
--- linux-2.4.20/arch/i386/mm/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/mm/CVS/Entries	2005-01-06 22:59:27.000000000 -0600
@@ -0,0 +1,8 @@
+/.cvsignore/1.2/Tue Mar 17 22:07:02 1998/-ko/Tlinux_2_4_20
+/Makefile/1.4.2.1/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
+/extable.c/1.4/Fri Oct 19 01:23:35 2001/-ko/Tlinux_2_4_20
+/fault.c/1.23.2.3/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
+/init.c/1.34.2.4/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
+/ioremap.c/1.10.2.1/Wed Jun 26 22:35:08 2002/-ko/Tlinux_2_4_20
+/pageattr.c/1.1.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/i386/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/i386/mm/CVS/Repository
--- linux-2.4.20/arch/i386/mm/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/mm/CVS/Repository	2005-01-06 22:59:27.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/i386/mm
diff -urNd -urNd linux-2.4.20/arch/i386/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/i386/mm/CVS/Root
--- linux-2.4.20/arch/i386/mm/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/mm/CVS/Root	2005-01-06 22:59:27.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/i386/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/i386/mm/CVS/Tag
--- linux-2.4.20/arch/i386/mm/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/mm/CVS/Tag	2005-01-06 22:59:27.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/i386/mm/.cvsignore linux-2.4.20-mipscvs-20050106/arch/i386/mm/.cvsignore
--- linux-2.4.20/arch/i386/mm/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/i386/mm/.cvsignore	1998-03-17 16:07:02.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/ia64/boot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/boot/CVS/Entries
--- linux-2.4.20/arch/ia64/boot/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/boot/CVS/Entries	2005-01-06 22:59:27.000000000 -0600
@@ -0,0 +1,4 @@
+/Makefile/1.4.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/bootloader.c/1.5/Fri Aug 24 03:38:30 2001/-ko/Tlinux_2_4_20
+/bootloader.lds/1.2/Wed Aug 22 03:23:56 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ia64/boot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/boot/CVS/Repository
--- linux-2.4.20/arch/ia64/boot/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/boot/CVS/Repository	2005-01-06 22:59:27.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ia64/boot
diff -urNd -urNd linux-2.4.20/arch/ia64/boot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/boot/CVS/Root
--- linux-2.4.20/arch/ia64/boot/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/boot/CVS/Root	2005-01-06 22:59:27.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ia64/boot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/boot/CVS/Tag
--- linux-2.4.20/arch/ia64/boot/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/boot/CVS/Tag	2005-01-06 22:59:27.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ia64/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/CVS/Entries
--- linux-2.4.20/arch/ia64/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/CVS/Entries	2005-01-06 23:08:24.000000000 -0600
@@ -0,0 +1,13 @@
+/Makefile/1.12.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/config.in/1.22.2.3/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/defconfig/1.9.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/vmlinux.lds.S/1.8.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+D/boot////
+D/dig////
+D/hp////
+D/ia32////
+D/kernel////
+D/lib////
+D/mm////
+D/sn////
+D/tools////
diff -urNd -urNd linux-2.4.20/arch/ia64/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/CVS/Repository
--- linux-2.4.20/arch/ia64/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/CVS/Repository	2005-01-06 22:59:27.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ia64
diff -urNd -urNd linux-2.4.20/arch/ia64/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/CVS/Root
--- linux-2.4.20/arch/ia64/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/CVS/Root	2005-01-06 22:59:27.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ia64/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/CVS/Tag
--- linux-2.4.20/arch/ia64/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/CVS/Tag	2005-01-06 22:59:27.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ia64/dig/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/dig/CVS/Entries
--- linux-2.4.20/arch/ia64/dig/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/dig/CVS/Entries	2005-01-06 22:59:27.000000000 -0600
@@ -0,0 +1,4 @@
+/Makefile/1.4/Thu Jan 11 04:02:41 2001/-ko/Tlinux_2_4_20
+/machvec.c/1.2/Mon Aug 28 22:00:12 2000/-ko/Tlinux_2_4_20
+/setup.c/1.7.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ia64/dig/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/dig/CVS/Repository
--- linux-2.4.20/arch/ia64/dig/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/dig/CVS/Repository	2005-01-06 22:59:27.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ia64/dig
diff -urNd -urNd linux-2.4.20/arch/ia64/dig/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/dig/CVS/Root
--- linux-2.4.20/arch/ia64/dig/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/dig/CVS/Root	2005-01-06 22:59:27.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ia64/dig/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/dig/CVS/Tag
--- linux-2.4.20/arch/ia64/dig/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/dig/CVS/Tag	2005-01-06 22:59:27.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ia64/hp/common/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/hp/common/CVS/Entries
--- linux-2.4.20/arch/ia64/hp/common/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/hp/common/CVS/Entries	2005-01-06 22:59:28.000000000 -0600
@@ -0,0 +1,3 @@
+/Makefile/1.3.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/sba_iommu.c/1.6.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ia64/hp/common/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/hp/common/CVS/Repository
--- linux-2.4.20/arch/ia64/hp/common/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/hp/common/CVS/Repository	2005-01-06 22:59:27.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ia64/hp/common
diff -urNd -urNd linux-2.4.20/arch/ia64/hp/common/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/hp/common/CVS/Root
--- linux-2.4.20/arch/ia64/hp/common/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/hp/common/CVS/Root	2005-01-06 22:59:27.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ia64/hp/common/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/hp/common/CVS/Tag
--- linux-2.4.20/arch/ia64/hp/common/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/hp/common/CVS/Tag	2005-01-06 22:59:28.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ia64/hp/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/hp/CVS/Entries
--- linux-2.4.20/arch/ia64/hp/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/hp/CVS/Entries	2005-01-06 23:08:24.000000000 -0600
@@ -0,0 +1,4 @@
+/Makefile/1.3.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+D/common////
+D/sim////
+D/zx1////
diff -urNd -urNd linux-2.4.20/arch/ia64/hp/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/hp/CVS/Repository
--- linux-2.4.20/arch/ia64/hp/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/hp/CVS/Repository	2005-01-06 22:59:27.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ia64/hp
diff -urNd -urNd linux-2.4.20/arch/ia64/hp/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/hp/CVS/Root
--- linux-2.4.20/arch/ia64/hp/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/hp/CVS/Root	2005-01-06 22:59:27.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ia64/hp/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/hp/CVS/Tag
--- linux-2.4.20/arch/ia64/hp/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/hp/CVS/Tag	2005-01-06 22:59:27.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ia64/hp/sim/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/hp/sim/CVS/Entries
--- linux-2.4.20/arch/ia64/hp/sim/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/hp/sim/CVS/Entries	2005-01-06 23:08:24.000000000 -0600
@@ -0,0 +1,7 @@
+/Makefile/1.2.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/hpsim_console.c/1.2.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/hpsim_irq.c/1.2.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/hpsim_machvec.c/1.1.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/hpsim_setup.c/1.3.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/hpsim_ssc.h/1.1.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ia64/hp/sim/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/hp/sim/CVS/Repository
--- linux-2.4.20/arch/ia64/hp/sim/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/hp/sim/CVS/Repository	2005-01-06 22:59:28.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ia64/hp/sim
diff -urNd -urNd linux-2.4.20/arch/ia64/hp/sim/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/hp/sim/CVS/Root
--- linux-2.4.20/arch/ia64/hp/sim/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/hp/sim/CVS/Root	2005-01-06 22:59:28.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ia64/hp/sim/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/hp/sim/CVS/Tag
--- linux-2.4.20/arch/ia64/hp/sim/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/hp/sim/CVS/Tag	2005-01-06 22:59:28.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ia64/hp/zx1/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/hp/zx1/CVS/Entries
--- linux-2.4.20/arch/ia64/hp/zx1/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/hp/zx1/CVS/Entries	2005-01-06 22:59:28.000000000 -0600
@@ -0,0 +1,4 @@
+/Makefile/1.3.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/hpzx1_machvec.c/1.2.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/hpzx1_misc.c/1.6.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ia64/hp/zx1/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/hp/zx1/CVS/Repository
--- linux-2.4.20/arch/ia64/hp/zx1/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/hp/zx1/CVS/Repository	2005-01-06 22:59:28.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ia64/hp/zx1
diff -urNd -urNd linux-2.4.20/arch/ia64/hp/zx1/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/hp/zx1/CVS/Root
--- linux-2.4.20/arch/ia64/hp/zx1/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/hp/zx1/CVS/Root	2005-01-06 22:59:28.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ia64/hp/zx1/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/hp/zx1/CVS/Tag
--- linux-2.4.20/arch/ia64/hp/zx1/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/hp/zx1/CVS/Tag	2005-01-06 22:59:28.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ia64/ia32/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/ia32/CVS/Entries
--- linux-2.4.20/arch/ia64/ia32/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/ia32/CVS/Entries	2005-01-06 22:59:29.000000000 -0600
@@ -0,0 +1,10 @@
+/Makefile/1.7/Fri Aug 24 03:38:30 2001/-ko/Tlinux_2_4_20
+/binfmt_elf32.c/1.13.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/ia32_entry.S/1.12.2.1/Wed Jun 26 22:35:08 2002/-ko/Tlinux_2_4_20
+/ia32_ioctl.c/1.3.2.1/Wed Jun 26 22:35:08 2002/-ko/Tlinux_2_4_20
+/ia32_ldt.c/1.2/Sun Dec  2 11:34:36 2001/-ko/Tlinux_2_4_20
+/ia32_signal.c/1.7.2.1/Wed Jun 26 22:35:08 2002/-ko/Tlinux_2_4_20
+/ia32_support.c/1.6.2.1/Wed Jun 26 22:35:08 2002/-ko/Tlinux_2_4_20
+/ia32_traps.c/1.4.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/sys_ia32.c/1.22.2.1/Wed Jun 26 22:35:08 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ia64/ia32/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/ia32/CVS/Repository
--- linux-2.4.20/arch/ia64/ia32/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/ia32/CVS/Repository	2005-01-06 22:59:28.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ia64/ia32
diff -urNd -urNd linux-2.4.20/arch/ia64/ia32/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/ia32/CVS/Root
--- linux-2.4.20/arch/ia64/ia32/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/ia32/CVS/Root	2005-01-06 22:59:28.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ia64/ia32/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/ia32/CVS/Tag
--- linux-2.4.20/arch/ia64/ia32/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/ia32/CVS/Tag	2005-01-06 22:59:29.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ia64/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/kernel/CVS/Entries
--- linux-2.4.20/arch/ia64/kernel/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/kernel/CVS/Entries	2005-01-06 22:59:34.000000000 -0600
@@ -0,0 +1,47 @@
+/Makefile/1.12.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/acpi.c/1.10.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/brl_emu.c/1.2.2.1/Wed Jun 26 22:35:08 2002/-ko/Tlinux_2_4_20
+/efi.c/1.12.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/efi_stub.S/1.5.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/efivars.c/1.3.2.3/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/entry.S/1.15.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/entry.h/1.5/Sun Dec  2 11:34:36 2001/-ko/Tlinux_2_4_20
+/fw-emu.c/1.9.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/gate.S/1.9.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/head.S/1.10.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/ia64_ksyms.c/1.8.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/init_task.c/1.2/Fri Oct 19 01:23:35 2001/-ko/Tlinux_2_4_20
+/iosapic.c/1.4.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/irq.c/1.15.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/irq_ia64.c/1.10.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/irq_lsapic.c/1.1/Fri Aug 24 03:38:31 2001/-ko/Tlinux_2_4_20
+/ivt.S/1.11.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/machvec.c/1.3/Thu Jan 11 04:02:41 2001/-ko/Tlinux_2_4_20
+/mca.c/1.9.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/mca_asm.S/1.9.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/minstate.h/1.6.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/pal.S/1.8.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/palinfo.c/1.6.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/pci.c/1.8.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/perfmon.c/1.8.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/perfmon_generic.h/1.1.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/perfmon_itanium.h/1.2.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/perfmon_mckinley.h/1.2.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/process.c/1.13.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/ptrace.c/1.13.2.1/Wed Jun 26 22:35:08 2002/-ko/Tlinux_2_4_20
+/sal.c/1.6.2.1/Wed Jun 26 22:35:08 2002/-ko/Tlinux_2_4_20
+/salinfo.c/1.1.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/semaphore.c/1.7/Wed Jun 13 17:27:40 2001/-ko/Tlinux_2_4_20
+/setup.c/1.11.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/sigframe.h/1.2/Sun Dec  2 11:34:36 2001/-ko/Tlinux_2_4_20
+/signal.c/1.11.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/smp.c/1.13.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/smpboot.c/1.5.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/sys_ia64.c/1.12.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/time.c/1.12.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/traps.c/1.11.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/unaligned.c/1.10.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/unwind.c/1.10.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
+/unwind_decoder.c/1.1/Sun Jun 25 01:20:03 2000/-ko/Tlinux_2_4_20
+/unwind_i.h/1.3.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ia64/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/kernel/CVS/Repository
--- linux-2.4.20/arch/ia64/kernel/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/kernel/CVS/Repository	2005-01-06 22:59:29.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ia64/kernel
diff -urNd -urNd linux-2.4.20/arch/ia64/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/kernel/CVS/Root
--- linux-2.4.20/arch/ia64/kernel/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/kernel/CVS/Root	2005-01-06 22:59:29.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ia64/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/kernel/CVS/Tag
--- linux-2.4.20/arch/ia64/kernel/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/kernel/CVS/Tag	2005-01-06 22:59:34.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ia64/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/lib/CVS/Entries
--- linux-2.4.20/arch/ia64/lib/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/lib/CVS/Entries	2005-01-06 22:59:35.000000000 -0600
@@ -0,0 +1,23 @@
+/Makefile/1.9.2.1/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/checksum.c/1.2.2.1/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/clear_page.S/1.5.2.1/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/clear_user.S/1.6/Sun Dec  2 11:34:37 2001/-ko/Tlinux_2_4_20
+/copy_page.S/1.6.2.1/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/copy_page_mck.S/1.1.2.1/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/copy_user.S/1.11.2.1/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/csum_partial_copy.c/1.3/Fri Aug 24 03:38:32 2001/-ko/Tlinux_2_4_20
+/do_csum.S/1.5.2.1/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/flush.S/1.4/Wed Jun 13 17:27:41 2001/-ko/Tlinux_2_4_20
+/idiv32.S/1.2/Sun Dec  2 11:34:37 2001/-ko/Tlinux_2_4_20
+/idiv64.S/1.3/Sun Dec  2 11:34:37 2001/-ko/Tlinux_2_4_20
+/io.c/1.3/Thu Jan 11 04:02:41 2001/-ko/Tlinux_2_4_20
+/ip_fast_csum.S/1.1.2.1/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/memcpy.S/1.5/Sun Dec  2 11:34:37 2001/-ko/Tlinux_2_4_20
+/memcpy_mck.S/1.1.2.1/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/memset.S/1.4.2.1/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/strlen.S/1.6/Sun Dec  2 11:34:37 2001/-ko/Tlinux_2_4_20
+/strlen_user.S/1.5/Sun Dec  2 11:34:37 2001/-ko/Tlinux_2_4_20
+/strncpy_from_user.S/1.5/Sun Dec  2 11:34:37 2001/-ko/Tlinux_2_4_20
+/strnlen_user.S/1.4/Sun Dec  2 11:34:37 2001/-ko/Tlinux_2_4_20
+/swiotlb.c/1.4.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ia64/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/lib/CVS/Repository
--- linux-2.4.20/arch/ia64/lib/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/lib/CVS/Repository	2005-01-06 22:59:34.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ia64/lib
diff -urNd -urNd linux-2.4.20/arch/ia64/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/lib/CVS/Root
--- linux-2.4.20/arch/ia64/lib/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/lib/CVS/Root	2005-01-06 22:59:34.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ia64/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/lib/CVS/Tag
--- linux-2.4.20/arch/ia64/lib/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/lib/CVS/Tag	2005-01-06 22:59:35.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ia64/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/mm/CVS/Entries
--- linux-2.4.20/arch/ia64/mm/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/mm/CVS/Entries	2005-01-06 22:59:35.000000000 -0600
@@ -0,0 +1,6 @@
+/Makefile/1.2/Thu Jan 11 04:02:41 2001/-ko/Tlinux_2_4_20
+/extable.c/1.3.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
+/fault.c/1.7.2.3/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/init.c/1.14.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/tlb.c/1.10.2.1/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ia64/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/mm/CVS/Repository
--- linux-2.4.20/arch/ia64/mm/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/mm/CVS/Repository	2005-01-06 22:59:35.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ia64/mm
diff -urNd -urNd linux-2.4.20/arch/ia64/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/mm/CVS/Root
--- linux-2.4.20/arch/ia64/mm/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/mm/CVS/Root	2005-01-06 22:59:35.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ia64/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/mm/CVS/Tag
--- linux-2.4.20/arch/ia64/mm/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/mm/CVS/Tag	2005-01-06 22:59:35.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/configs/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/CVS/Entries
--- linux-2.4.20/arch/ia64/sn/configs/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/CVS/Entries	2005-01-06 23:08:24.000000000 -0600
@@ -0,0 +1,2 @@
+D/sn1////
+D/sn2////
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/configs/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/CVS/Repository
--- linux-2.4.20/arch/ia64/sn/configs/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/CVS/Repository	2005-01-06 22:59:35.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ia64/sn/configs
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/configs/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/CVS/Root
--- linux-2.4.20/arch/ia64/sn/configs/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/CVS/Root	2005-01-06 22:59:35.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/configs/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/CVS/Tag
--- linux-2.4.20/arch/ia64/sn/configs/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/CVS/Tag	2005-01-06 22:59:35.000000000 -0600
@@ -0,0 +1 @@
+Tlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/configs/sn1/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/sn1/CVS/Entries
--- linux-2.4.20/arch/ia64/sn/configs/sn1/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/sn1/CVS/Entries	2005-01-06 22:59:35.000000000 -0600
@@ -0,0 +1,13 @@
+/defconfig-bigsur-mp/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
+/defconfig-bigsur-sp/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
+/defconfig-dig-mp/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
+/defconfig-dig-sp/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
+/defconfig-generic-mp/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
+/defconfig-generic-sp/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
+/defconfig-hp-sp/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
+/defconfig-prom-medusa/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
+/defconfig-sn1-mp/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
+/defconfig-sn1-mp-modules/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
+/defconfig-sn1-mp-syn1-0/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
+/defconfig-sn1-sp/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/configs/sn1/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/sn1/CVS/Repository
--- linux-2.4.20/arch/ia64/sn/configs/sn1/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/sn1/CVS/Repository	2005-01-06 22:59:35.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ia64/sn/configs/sn1
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/configs/sn1/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/sn1/CVS/Root
--- linux-2.4.20/arch/ia64/sn/configs/sn1/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/sn1/CVS/Root	2005-01-06 22:59:35.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/configs/sn1/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/sn1/CVS/Tag
--- linux-2.4.20/arch/ia64/sn/configs/sn1/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/sn1/CVS/Tag	2005-01-06 22:59:35.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/configs/sn2/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/sn2/CVS/Entries
--- linux-2.4.20/arch/ia64/sn/configs/sn2/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/sn2/CVS/Entries	2005-01-06 22:59:35.000000000 -0600
@@ -0,0 +1,8 @@
+/defconfig-dig-numa/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
+/defconfig-sn2-dig-mp/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
+/defconfig-sn2-dig-sp/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
+/defconfig-sn2-mp/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
+/defconfig-sn2-mp-modules/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
+/defconfig-sn2-prom-medusa/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
+/defconfig-sn2-sp/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/configs/sn2/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/sn2/CVS/Repository
--- linux-2.4.20/arch/ia64/sn/configs/sn2/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/sn2/CVS/Repository	2005-01-06 22:59:35.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ia64/sn/configs/sn2
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/configs/sn2/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/sn2/CVS/Root
--- linux-2.4.20/arch/ia64/sn/configs/sn2/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/sn2/CVS/Root	2005-01-06 22:59:35.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/configs/sn2/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/sn2/CVS/Tag
--- linux-2.4.20/arch/ia64/sn/configs/sn2/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/sn2/CVS/Tag	2005-01-06 22:59:35.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/sn/CVS/Entries
--- linux-2.4.20/arch/ia64/sn/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/CVS/Entries	2005-01-06 23:08:24.000000000 -0600
@@ -0,0 +1,5 @@
+D/configs////
+D/fakeprom////
+D/io////
+D/kernel////
+D/tools////
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/sn/CVS/Repository
--- linux-2.4.20/arch/ia64/sn/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/CVS/Repository	2005-01-06 22:59:35.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ia64/sn
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/sn/CVS/Root
--- linux-2.4.20/arch/ia64/sn/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/CVS/Root	2005-01-06 22:59:35.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/sn/CVS/Tag
--- linux-2.4.20/arch/ia64/sn/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/CVS/Tag	2005-01-06 22:59:35.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/fakeprom/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/sn/fakeprom/CVS/Entries
--- linux-2.4.20/arch/ia64/sn/fakeprom/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/fakeprom/CVS/Entries	2005-01-06 22:59:36.000000000 -0600
@@ -0,0 +1,11 @@
+/Makefile/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
+/README/1.1.2.2/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
+/fpmem.c/1.1.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/fpmem.h/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
+/fprom.lds/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
+/fpromasm.S/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
+/fw-emu.c/1.1.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/klgraph_init.c/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
+/main.c/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
+/runsim/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/fakeprom/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/sn/fakeprom/CVS/Repository
--- linux-2.4.20/arch/ia64/sn/fakeprom/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/fakeprom/CVS/Repository	2005-01-06 22:59:35.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ia64/sn/fakeprom
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/fakeprom/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/sn/fakeprom/CVS/Root
--- linux-2.4.20/arch/ia64/sn/fakeprom/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/fakeprom/CVS/Root	2005-01-06 22:59:35.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/fakeprom/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/sn/fakeprom/CVS/Tag
--- linux-2.4.20/arch/ia64/sn/fakeprom/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/fakeprom/CVS/Tag	2005-01-06 22:59:36.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/io/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/CVS/Entries
--- linux-2.4.20/arch/ia64/sn/io/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/CVS/Entries	2005-01-06 23:08:24.000000000 -0600
@@ -0,0 +1,36 @@
+/Makefile/1.2.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/alenlist.c/1.2.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
+/ate_utils.c/1.1.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
+/cdl.c/1.2.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
+/eeprom.c/1.2.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
+/efi-rtc.c/1.1.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/hcl.c/1.2.2.2/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
+/hcl_util.c/1.2.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
+/hubdev.c/1.2.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
+/hubspc.c/1.2.2.2/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
+/ifconfig_net.c/1.1.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
+/invent.c/1.2.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
+/io.c/1.2.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
+/klconflib.c/1.3.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
+/klgraph.c/1.2.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
+/klgraph_hack.c/1.3.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
+/l1.c/1.4.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
+/l1_command.c/1.2.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
+/labelcl.c/1.2.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
+/ml_SN_init.c/1.2.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
+/ml_iograph.c/1.2.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
+/module.c/1.2.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
+/pci.c/1.2.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
+/pci_bus_cvlink.c/1.2.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
+/pci_dma.c/1.3.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/pciba.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
+/pciio.c/1.2.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
+/sgi_if.c/1.2.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
+/sgi_io_init.c/1.2.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
+/sgi_io_sim.c/1.2.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
+/stubs.c/1.2.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
+/xbow.c/1.3.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
+/xswitch.c/1.2.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
+/xtalk.c/1.3.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
+D/sn1////
+D/sn2////
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/io/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/CVS/Repository
--- linux-2.4.20/arch/ia64/sn/io/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/CVS/Repository	2005-01-06 22:59:36.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ia64/sn/io
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/io/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/CVS/Root
--- linux-2.4.20/arch/ia64/sn/io/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/CVS/Root	2005-01-06 22:59:36.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/io/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/CVS/Tag
--- linux-2.4.20/arch/ia64/sn/io/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/CVS/Tag	2005-01-06 22:59:38.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/io/sn1/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn1/CVS/Entries
--- linux-2.4.20/arch/ia64/sn/io/sn1/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn1/CVS/Entries	2005-01-06 22:59:40.000000000 -0600
@@ -0,0 +1,8 @@
+/hub_intr.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
+/hubcounters.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
+/huberror.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
+/ip37.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
+/mem_refcnt.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
+/ml_SN_intr.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
+/pcibr.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/io/sn1/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn1/CVS/Repository
--- linux-2.4.20/arch/ia64/sn/io/sn1/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn1/CVS/Repository	2005-01-06 22:59:38.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ia64/sn/io/sn1
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/io/sn1/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn1/CVS/Root
--- linux-2.4.20/arch/ia64/sn/io/sn1/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn1/CVS/Root	2005-01-06 22:59:38.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/io/sn1/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn1/CVS/Tag
--- linux-2.4.20/arch/ia64/sn/io/sn1/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn1/CVS/Tag	2005-01-06 22:59:40.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/io/sn2/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn2/CVS/Entries
--- linux-2.4.20/arch/ia64/sn/io/sn2/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn2/CVS/Entries	2005-01-06 23:08:24.000000000 -0600
@@ -0,0 +1,5 @@
+/bte_error.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
+/ml_SN_intr.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
+/shub_intr.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
+/shuberror.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
+D/pcibr////
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/io/sn2/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn2/CVS/Repository
--- linux-2.4.20/arch/ia64/sn/io/sn2/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn2/CVS/Repository	2005-01-06 22:59:40.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ia64/sn/io/sn2
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/io/sn2/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn2/CVS/Root
--- linux-2.4.20/arch/ia64/sn/io/sn2/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn2/CVS/Root	2005-01-06 22:59:40.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/io/sn2/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn2/CVS/Tag
--- linux-2.4.20/arch/ia64/sn/io/sn2/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn2/CVS/Tag	2005-01-06 22:59:40.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/io/sn2/pcibr/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn2/pcibr/CVS/Entries
--- linux-2.4.20/arch/ia64/sn/io/sn2/pcibr/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn2/pcibr/CVS/Entries	2005-01-06 22:59:43.000000000 -0600
@@ -0,0 +1,10 @@
+/pcibr_ate.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
+/pcibr_config.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
+/pcibr_dvr.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
+/pcibr_error.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
+/pcibr_hints.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
+/pcibr_idbg.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
+/pcibr_intr.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
+/pcibr_rrb.c/1.1.2.1/Wed Jun 26 22:35:15 2002/-ko/Tlinux_2_4_20
+/pcibr_slot.c/1.1.2.1/Wed Jun 26 22:35:15 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/io/sn2/pcibr/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn2/pcibr/CVS/Repository
--- linux-2.4.20/arch/ia64/sn/io/sn2/pcibr/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn2/pcibr/CVS/Repository	2005-01-06 22:59:40.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ia64/sn/io/sn2/pcibr
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/io/sn2/pcibr/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn2/pcibr/CVS/Root
--- linux-2.4.20/arch/ia64/sn/io/sn2/pcibr/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn2/pcibr/CVS/Root	2005-01-06 22:59:40.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/io/sn2/pcibr/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn2/pcibr/CVS/Tag
--- linux-2.4.20/arch/ia64/sn/io/sn2/pcibr/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn2/pcibr/CVS/Tag	2005-01-06 22:59:43.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/CVS/Entries
--- linux-2.4.20/arch/ia64/sn/kernel/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/CVS/Entries	2005-01-06 23:08:24.000000000 -0600
@@ -0,0 +1,16 @@
+/Makefile/1.1.2.1/Wed Jun 26 22:35:15 2002/-ko/Tlinux_2_4_20
+/bte.c/1.1.2.1/Wed Jun 26 22:35:15 2002/-ko/Tlinux_2_4_20
+/iomv.c/1.1.2.1/Wed Jun 26 22:35:15 2002/-ko/Tlinux_2_4_20
+/irq.c/1.1.2.1/Wed Jun 26 22:35:15 2002/-ko/Tlinux_2_4_20
+/llsc4.c/1.1.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/llsc4.h/1.1.2.1/Wed Jun 26 22:35:15 2002/-ko/Tlinux_2_4_20
+/machvec.c/1.1.2.1/Wed Jun 26 22:35:15 2002/-ko/Tlinux_2_4_20
+/mca.c/1.1.2.1/Wed Jun 26 22:35:15 2002/-ko/Tlinux_2_4_20
+/misctest.c/1.1.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/probe.c/1.1.2.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
+/setup.c/1.1.2.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
+/sn_asm.S/1.1.2.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
+/sn_ksyms.c/1.1.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/sv.c/1.1.2.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
+D/sn1////
+D/sn2////
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/CVS/Repository
--- linux-2.4.20/arch/ia64/sn/kernel/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/CVS/Repository	2005-01-06 22:59:43.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ia64/sn/kernel
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/CVS/Root
--- linux-2.4.20/arch/ia64/sn/kernel/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/CVS/Root	2005-01-06 22:59:43.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/CVS/Tag
--- linux-2.4.20/arch/ia64/sn/kernel/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/CVS/Tag	2005-01-06 22:59:43.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/kernel/sn1/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/sn1/CVS/Entries
--- linux-2.4.20/arch/ia64/sn/kernel/sn1/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/sn1/CVS/Entries	2005-01-06 22:59:43.000000000 -0600
@@ -0,0 +1,7 @@
+/Makefile/1.1.2.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
+/cache.c/1.1.2.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
+/error.c/1.1.2.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
+/iomv.c/1.1.2.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
+/sn1_smp.c/1.1.2.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
+/synergy.c/1.1.2.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/kernel/sn1/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/sn1/CVS/Repository
--- linux-2.4.20/arch/ia64/sn/kernel/sn1/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/sn1/CVS/Repository	2005-01-06 22:59:43.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ia64/sn/kernel/sn1
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/kernel/sn1/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/sn1/CVS/Root
--- linux-2.4.20/arch/ia64/sn/kernel/sn1/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/sn1/CVS/Root	2005-01-06 22:59:43.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/kernel/sn1/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/sn1/CVS/Tag
--- linux-2.4.20/arch/ia64/sn/kernel/sn1/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/sn1/CVS/Tag	2005-01-06 22:59:43.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/kernel/sn2/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/sn2/CVS/Entries
--- linux-2.4.20/arch/ia64/sn/kernel/sn2/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/sn2/CVS/Entries	2005-01-06 22:59:43.000000000 -0600
@@ -0,0 +1,5 @@
+/Makefile/1.1.2.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
+/cache.c/1.1.2.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
+/iomv.c/1.1.2.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
+/sn2_smp.c/1.1.2.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/kernel/sn2/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/sn2/CVS/Repository
--- linux-2.4.20/arch/ia64/sn/kernel/sn2/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/sn2/CVS/Repository	2005-01-06 22:59:43.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ia64/sn/kernel/sn2
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/kernel/sn2/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/sn2/CVS/Root
--- linux-2.4.20/arch/ia64/sn/kernel/sn2/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/sn2/CVS/Root	2005-01-06 22:59:43.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/kernel/sn2/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/sn2/CVS/Tag
--- linux-2.4.20/arch/ia64/sn/kernel/sn2/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/sn2/CVS/Tag	2005-01-06 22:59:43.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/tools/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/sn/tools/CVS/Entries
--- linux-2.4.20/arch/ia64/sn/tools/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/tools/CVS/Entries	2005-01-06 22:59:43.000000000 -0600
@@ -0,0 +1,2 @@
+/make_textsym/1.1.2.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/tools/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/sn/tools/CVS/Repository
--- linux-2.4.20/arch/ia64/sn/tools/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/tools/CVS/Repository	2005-01-06 22:59:43.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ia64/sn/tools
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/tools/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/sn/tools/CVS/Root
--- linux-2.4.20/arch/ia64/sn/tools/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/tools/CVS/Root	2005-01-06 22:59:43.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ia64/sn/tools/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/sn/tools/CVS/Tag
--- linux-2.4.20/arch/ia64/sn/tools/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/tools/CVS/Tag	2005-01-06 22:59:43.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ia64/tools/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/tools/CVS/Entries
--- linux-2.4.20/arch/ia64/tools/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/tools/CVS/Entries	2005-01-06 22:59:43.000000000 -0600
@@ -0,0 +1,4 @@
+/Makefile/1.6.4.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/print_offsets.awk/1.3/Wed Jun 13 17:27:42 2001/-ko/Tlinux_2_4_20
+/print_offsets.c/1.9.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ia64/tools/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/tools/CVS/Repository
--- linux-2.4.20/arch/ia64/tools/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/tools/CVS/Repository	2005-01-06 22:59:43.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ia64/tools
diff -urNd -urNd linux-2.4.20/arch/ia64/tools/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/tools/CVS/Root
--- linux-2.4.20/arch/ia64/tools/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/tools/CVS/Root	2005-01-06 22:59:43.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ia64/tools/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/tools/CVS/Tag
--- linux-2.4.20/arch/ia64/tools/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ia64/tools/CVS/Tag	2005-01-06 22:59:43.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/m68k/amiga/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/amiga/CVS/Entries
--- linux-2.4.20/arch/m68k/amiga/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/amiga/CVS/Entries	2005-01-06 22:59:44.000000000 -0600
@@ -0,0 +1,9 @@
+/Makefile/1.4/Wed Jan 10 17:17:54 2001/-ko/Tlinux_2_4_20
+/amiga_ksyms.c/1.9/Wed Jan 10 05:27:27 2001/-ko/Tlinux_2_4_20
+/amiints.c/1.9/Wed Jan 10 05:27:27 2001/-ko/Tlinux_2_4_20
+/amisound.c/1.8/Wed Aug 22 03:23:56 2001/-ko/Tlinux_2_4_20
+/chipram.c/1.6/Wed Jan 10 05:27:27 2001/-ko/Tlinux_2_4_20
+/cia.c/1.5/Wed Aug 22 03:23:56 2001/-ko/Tlinux_2_4_20
+/config.c/1.17.2.2/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
+/pcmcia.c/1.3/Wed Aug 22 03:23:57 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/m68k/amiga/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/amiga/CVS/Repository
--- linux-2.4.20/arch/m68k/amiga/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/amiga/CVS/Repository	2005-01-06 22:59:44.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/m68k/amiga
diff -urNd -urNd linux-2.4.20/arch/m68k/amiga/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/amiga/CVS/Root
--- linux-2.4.20/arch/m68k/amiga/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/amiga/CVS/Root	2005-01-06 22:59:44.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/m68k/amiga/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/amiga/CVS/Tag
--- linux-2.4.20/arch/m68k/amiga/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/amiga/CVS/Tag	2005-01-06 22:59:44.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/m68k/apollo/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/apollo/CVS/Entries
--- linux-2.4.20/arch/m68k/apollo/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/apollo/CVS/Entries	2005-01-06 22:59:44.000000000 -0600
@@ -0,0 +1,6 @@
+/Makefile/1.3/Wed Jan 10 17:17:54 2001/-ko/Tlinux_2_4_20
+/config.c/1.5.2.2/Wed Sep 11 12:44:27 2002/-ko/Tlinux_2_4_20
+/dma.c/1.1/Fri Feb 18 00:24:29 2000/-ko/Tlinux_2_4_20
+/dn_debug.c/1.2/Sat Oct  9 00:00:54 1999/-ko/Tlinux_2_4_20
+/dn_ints.c/1.5.2.1/Wed Sep 11 12:44:27 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/m68k/apollo/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/apollo/CVS/Repository
--- linux-2.4.20/arch/m68k/apollo/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/apollo/CVS/Repository	2005-01-06 22:59:44.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/m68k/apollo
diff -urNd -urNd linux-2.4.20/arch/m68k/apollo/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/apollo/CVS/Root
--- linux-2.4.20/arch/m68k/apollo/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/apollo/CVS/Root	2005-01-06 22:59:44.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/m68k/apollo/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/apollo/CVS/Tag
--- linux-2.4.20/arch/m68k/apollo/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/apollo/CVS/Tag	2005-01-06 22:59:44.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/m68k/atari/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/atari/CVS/Entries
--- linux-2.4.20/arch/m68k/atari/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/atari/CVS/Entries	2005-01-06 22:59:44.000000000 -0600
@@ -0,0 +1,14 @@
+/Makefile/1.4.2.1/Wed Sep 11 12:44:27 2002/-ko/Tlinux_2_4_20
+/ataints.c/1.7.4.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
+/atakeyb.c/1.12/Wed Jan 10 05:27:27 2001/-ko/Tlinux_2_4_20
+/atari_ksyms.c/1.5/Thu May  7 02:57:13 1998/-ko/Tlinux_2_4_20
+/atasound.c/1.4/Sat Sep 19 19:16:02 1998/-ko/Tlinux_2_4_20
+/atasound.h/1.1.1.1/Sun Jun  1 03:16:35 1997/-ko/Tlinux_2_4_20
+/config.c/1.8.2.2/Wed Sep 11 12:44:27 2002/-ko/Tlinux_2_4_20
+/debug.c/1.5/Thu Jan 11 04:02:42 2001/-ko/Tlinux_2_4_20
+/hades-pci.c/1.2/Fri Mar  9 20:33:44 2001/-ko/Tlinux_2_4_20
+/joystick.c/1.9/Sat Jul 15 03:32:23 2000/-ko/Tlinux_2_4_20
+/stdma.c/1.4/Sat Oct  9 00:00:55 1999/-ko/Tlinux_2_4_20
+/stram.c/1.15.2.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
+/time.c/1.6.2.1/Wed Jun 26 22:35:17 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/m68k/atari/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/atari/CVS/Repository
--- linux-2.4.20/arch/m68k/atari/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/atari/CVS/Repository	2005-01-06 22:59:44.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/m68k/atari
diff -urNd -urNd linux-2.4.20/arch/m68k/atari/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/atari/CVS/Root
--- linux-2.4.20/arch/m68k/atari/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/atari/CVS/Root	2005-01-06 22:59:44.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/m68k/atari/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/atari/CVS/Tag
--- linux-2.4.20/arch/m68k/atari/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/atari/CVS/Tag	2005-01-06 22:59:44.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/m68k/bvme6000/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/bvme6000/CVS/Entries
--- linux-2.4.20/arch/m68k/bvme6000/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/bvme6000/CVS/Entries	2005-01-06 22:59:44.000000000 -0600
@@ -0,0 +1,5 @@
+/Makefile/1.2/Wed Jan 10 17:17:54 2001/-ko/Tlinux_2_4_20
+/bvmeints.c/1.2/Mon Feb 15 02:16:37 1999/-ko/Tlinux_2_4_20
+/config.c/1.7.2.2/Wed Sep 11 12:44:27 2002/-ko/Tlinux_2_4_20
+/rtc.c/1.8.2.2/Wed Sep 11 12:44:27 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/m68k/bvme6000/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/bvme6000/CVS/Repository
--- linux-2.4.20/arch/m68k/bvme6000/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/bvme6000/CVS/Repository	2005-01-06 22:59:44.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/m68k/bvme6000
diff -urNd -urNd linux-2.4.20/arch/m68k/bvme6000/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/bvme6000/CVS/Root
--- linux-2.4.20/arch/m68k/bvme6000/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/bvme6000/CVS/Root	2005-01-06 22:59:44.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/m68k/bvme6000/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/bvme6000/CVS/Tag
--- linux-2.4.20/arch/m68k/bvme6000/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/bvme6000/CVS/Tag	2005-01-06 22:59:44.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/m68k/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/CVS/Entries
--- linux-2.4.20/arch/m68k/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/CVS/Entries	2005-01-06 23:08:22.000000000 -0600
@@ -0,0 +1,23 @@
+/Makefile/1.10/Wed Aug 22 03:23:56 2001/-ko/Tlinux_2_4_20
+/config.in/1.35.2.2/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
+/defconfig/1.16/Mon Jun 19 22:45:39 2000/-ko/Tlinux_2_4_20
+/vmlinux-sun3.lds/1.2.2.1/Tue Feb 26 05:59:01 2002/-ko/Tlinux_2_4_20
+/vmlinux.lds/1.5.2.1/Tue Feb 26 05:59:01 2002/-ko/Tlinux_2_4_20
+D/amiga////
+D/apollo////
+D/atari////
+D/bvme6000////
+D/fpsp040////
+D/hp300////
+D/ifpsp060////
+D/kernel////
+D/lib////
+D/mac////
+D/math-emu////
+D/mm////
+D/mvme147////
+D/mvme16x////
+D/q40////
+D/sun3////
+D/sun3x////
+D/tools////
diff -urNd -urNd linux-2.4.20/arch/m68k/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/CVS/Repository
--- linux-2.4.20/arch/m68k/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/CVS/Repository	2005-01-06 22:59:43.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/m68k
diff -urNd -urNd linux-2.4.20/arch/m68k/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/CVS/Root
--- linux-2.4.20/arch/m68k/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/CVS/Root	2005-01-06 22:59:43.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/m68k/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/CVS/Tag
--- linux-2.4.20/arch/m68k/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/CVS/Tag	2005-01-06 22:59:44.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/m68k/fpsp040/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/fpsp040/CVS/Entries
--- linux-2.4.20/arch/m68k/fpsp040/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/fpsp040/CVS/Entries	2005-01-06 22:59:46.000000000 -0600
@@ -0,0 +1,45 @@
+/Makefile/1.3/Wed Apr 19 04:00:05 2000/-ko/Tlinux_2_4_20
+/README/1.1.1.1/Sun Jun  1 03:16:36 1997/-ko/Tlinux_2_4_20
+/bindec.S/1.2/Wed Jan 10 05:27:27 2001/-ko/Tlinux_2_4_20
+/binstr.S/1.1.1.1/Sun Jun  1 03:16:36 1997/-ko/Tlinux_2_4_20
+/bugfix.S/1.1.1.1/Sun Jun  1 03:16:36 1997/-ko/Tlinux_2_4_20
+/decbin.S/1.2/Wed Jan 10 05:27:27 2001/-ko/Tlinux_2_4_20
+/do_func.S/1.2/Wed Jan 10 05:27:27 2001/-ko/Tlinux_2_4_20
+/fpsp.h/1.1.1.1/Sun Jun  1 03:16:35 1997/-ko/Tlinux_2_4_20
+/gen_except.S/1.1.1.1/Sun Jun  1 03:16:35 1997/-ko/Tlinux_2_4_20
+/get_op.S/1.2/Wed Jan 10 05:27:27 2001/-ko/Tlinux_2_4_20
+/kernel_ex.S/1.1.1.1/Sun Jun  1 03:16:35 1997/-ko/Tlinux_2_4_20
+/res_func.S/1.2/Tue Aug 25 09:14:16 1998/-ko/Tlinux_2_4_20
+/round.S/1.1.1.1/Sun Jun  1 03:16:36 1997/-ko/Tlinux_2_4_20
+/sacos.S/1.1.1.1/Sun Jun  1 03:16:36 1997/-ko/Tlinux_2_4_20
+/sasin.S/1.1.1.1/Sun Jun  1 03:16:35 1997/-ko/Tlinux_2_4_20
+/satan.S/1.1.1.1/Sun Jun  1 03:16:36 1997/-ko/Tlinux_2_4_20
+/satanh.S/1.1.1.1/Sun Jun  1 03:16:35 1997/-ko/Tlinux_2_4_20
+/scale.S/1.1.1.1/Sun Jun  1 03:16:35 1997/-ko/Tlinux_2_4_20
+/scosh.S/1.1.1.1/Sun Jun  1 03:16:36 1997/-ko/Tlinux_2_4_20
+/setox.S/1.1.1.1/Sun Jun  1 03:16:36 1997/-ko/Tlinux_2_4_20
+/sgetem.S/1.1.1.1/Sun Jun  1 03:16:36 1997/-ko/Tlinux_2_4_20
+/sint.S/1.1.1.1/Sun Jun  1 03:16:36 1997/-ko/Tlinux_2_4_20
+/skeleton.S/1.4/Mon Feb 15 02:16:38 1999/-ko/Tlinux_2_4_20
+/slog2.S/1.1.1.1/Sun Jun  1 03:16:36 1997/-ko/Tlinux_2_4_20
+/slogn.S/1.2/Tue Aug 25 09:14:17 1998/-ko/Tlinux_2_4_20
+/smovecr.S/1.1.1.1/Sun Jun  1 03:16:35 1997/-ko/Tlinux_2_4_20
+/srem_mod.S/1.1.1.1/Sun Jun  1 03:16:35 1997/-ko/Tlinux_2_4_20
+/ssin.S/1.2/Tue Aug 25 09:14:17 1998/-ko/Tlinux_2_4_20
+/ssinh.S/1.1.1.1/Sun Jun  1 03:16:36 1997/-ko/Tlinux_2_4_20
+/stan.S/1.2/Tue Aug 25 09:14:18 1998/-ko/Tlinux_2_4_20
+/stanh.S/1.1.1.1/Sun Jun  1 03:16:35 1997/-ko/Tlinux_2_4_20
+/sto_res.S/1.2/Tue Aug 25 09:14:18 1998/-ko/Tlinux_2_4_20
+/stwotox.S/1.1.1.1/Sun Jun  1 03:16:36 1997/-ko/Tlinux_2_4_20
+/tbldo.S/1.1.1.1/Sun Jun  1 03:16:36 1997/-ko/Tlinux_2_4_20
+/util.S/1.2/Wed Jan 10 05:27:27 2001/-ko/Tlinux_2_4_20
+/x_bsun.S/1.1.1.1/Sun Jun  1 03:16:36 1997/-ko/Tlinux_2_4_20
+/x_fline.S/1.1.1.1/Sun Jun  1 03:16:36 1997/-ko/Tlinux_2_4_20
+/x_operr.S/1.1.1.1/Sun Jun  1 03:16:35 1997/-ko/Tlinux_2_4_20
+/x_ovfl.S/1.1.1.1/Sun Jun  1 03:16:36 1997/-ko/Tlinux_2_4_20
+/x_snan.S/1.1.1.1/Sun Jun  1 03:16:36 1997/-ko/Tlinux_2_4_20
+/x_store.S/1.2/Wed Jan 10 05:27:27 2001/-ko/Tlinux_2_4_20
+/x_unfl.S/1.1.1.1/Sun Jun  1 03:16:36 1997/-ko/Tlinux_2_4_20
+/x_unimp.S/1.1.1.1/Sun Jun  1 03:16:36 1997/-ko/Tlinux_2_4_20
+/x_unsupp.S/1.1.1.1/Sun Jun  1 03:16:35 1997/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/m68k/fpsp040/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/fpsp040/CVS/Repository
--- linux-2.4.20/arch/m68k/fpsp040/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/fpsp040/CVS/Repository	2005-01-06 22:59:44.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/m68k/fpsp040
diff -urNd -urNd linux-2.4.20/arch/m68k/fpsp040/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/fpsp040/CVS/Root
--- linux-2.4.20/arch/m68k/fpsp040/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/fpsp040/CVS/Root	2005-01-06 22:59:44.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/m68k/fpsp040/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/fpsp040/CVS/Tag
--- linux-2.4.20/arch/m68k/fpsp040/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/fpsp040/CVS/Tag	2005-01-06 22:59:46.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/m68k/hp300/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/hp300/CVS/Entries
--- linux-2.4.20/arch/m68k/hp300/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/hp300/CVS/Entries	2005-01-06 22:59:46.000000000 -0600
@@ -0,0 +1,12 @@
+/Makefile/1.3/Wed Jan 10 17:17:54 2001/-ko/Tlinux_2_4_20
+/README.hp300/1.1/Tue Aug 25 09:14:19 1998/-ko/Tlinux_2_4_20
+/config.c/1.4.4.1/Wed Sep 11 12:44:27 2002/-ko/Tlinux_2_4_20
+/hil.c/1.4.4.1/Wed Sep 11 12:44:27 2002/-ko/Tlinux_2_4_20
+/hp300map.map/1.1/Sat Sep 19 19:16:06 1998/-ko/Tlinux_2_4_20
+/ints.c/1.3.4.1/Wed Sep 11 12:44:27 2002/-ko/Tlinux_2_4_20
+/ints.h/1.2/Sat Sep 19 19:16:06 1998/-ko/Tlinux_2_4_20
+/ksyms.c/1.1/Tue Aug 25 09:14:20 1998/-ko/Tlinux_2_4_20
+/reboot.S/1.1/Tue Aug 25 09:14:20 1998/-ko/Tlinux_2_4_20
+/time.c/1.3.4.2/Wed Sep 11 12:44:27 2002/-ko/Tlinux_2_4_20
+/time.h/1.1/Tue Aug 25 09:14:21 1998/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/m68k/hp300/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/hp300/CVS/Repository
--- linux-2.4.20/arch/m68k/hp300/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/hp300/CVS/Repository	2005-01-06 22:59:46.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/m68k/hp300
diff -urNd -urNd linux-2.4.20/arch/m68k/hp300/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/hp300/CVS/Root
--- linux-2.4.20/arch/m68k/hp300/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/hp300/CVS/Root	2005-01-06 22:59:46.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/m68k/hp300/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/hp300/CVS/Tag
--- linux-2.4.20/arch/m68k/hp300/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/hp300/CVS/Tag	2005-01-06 22:59:46.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/m68k/ifpsp060/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/ifpsp060/CVS/Entries
--- linux-2.4.20/arch/m68k/ifpsp060/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/ifpsp060/CVS/Entries	2005-01-06 23:08:22.000000000 -0600
@@ -0,0 +1,20 @@
+/CHANGES/1.1.1.1/Sun Jun  1 03:16:36 1997/-ko/Tlinux_2_4_20
+/MISC/1.1.1.1/Sun Jun  1 03:16:36 1997/-ko/Tlinux_2_4_20
+/Makefile/1.3/Wed Apr 19 04:00:05 2000/-ko/Tlinux_2_4_20
+/README/1.1.1.1/Sun Jun  1 03:16:37 1997/-ko/Tlinux_2_4_20
+/TEST.DOC/1.1.1.1/Sun Jun  1 03:16:37 1997/-ko/Tlinux_2_4_20
+/fplsp.doc/1.1.1.1/Sun Jun  1 03:16:37 1997/-ko/Tlinux_2_4_20
+/fplsp.sa/1.1.1.1/Sun Jun  1 03:16:37 1997/-ko/Tlinux_2_4_20
+/fpsp.doc/1.1.1.1/Sun Jun  1 03:16:36 1997/-ko/Tlinux_2_4_20
+/fpsp.sa/1.1.1.1/Sun Jun  1 03:16:36 1997/-ko/Tlinux_2_4_20
+/fskeleton.S/1.1.1.1/Sun Jun  1 03:16:37 1997/-ko/Tlinux_2_4_20
+/ftest.sa/1.1.1.1/Sun Jun  1 03:16:37 1997/-ko/Tlinux_2_4_20
+/ilsp.doc/1.1.1.1/Sun Jun  1 03:16:36 1997/-ko/Tlinux_2_4_20
+/ilsp.sa/1.1.1.1/Sun Jun  1 03:16:36 1997/-ko/Tlinux_2_4_20
+/iskeleton.S/1.6/Mon Feb 15 02:16:40 1999/-ko/Tlinux_2_4_20
+/isp.doc/1.1.1.1/Sun Jun  1 03:16:36 1997/-ko/Tlinux_2_4_20
+/isp.sa/1.1.1.1/Sun Jun  1 03:16:37 1997/-ko/Tlinux_2_4_20
+/itest.sa/1.1.1.1/Sun Jun  1 03:16:37 1997/-ko/Tlinux_2_4_20
+/os.S/1.3/Wed Jan 10 05:27:27 2001/-ko/Tlinux_2_4_20
+/pfpsp.sa/1.1.1.1/Sun Jun  1 03:16:37 1997/-ko/Tlinux_2_4_20
+D/src////
diff -urNd -urNd linux-2.4.20/arch/m68k/ifpsp060/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/ifpsp060/CVS/Repository
--- linux-2.4.20/arch/m68k/ifpsp060/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/ifpsp060/CVS/Repository	2005-01-06 22:59:46.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/m68k/ifpsp060
diff -urNd -urNd linux-2.4.20/arch/m68k/ifpsp060/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/ifpsp060/CVS/Root
--- linux-2.4.20/arch/m68k/ifpsp060/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/ifpsp060/CVS/Root	2005-01-06 22:59:46.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/m68k/ifpsp060/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/ifpsp060/CVS/Tag
--- linux-2.4.20/arch/m68k/ifpsp060/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/ifpsp060/CVS/Tag	2005-01-06 22:59:49.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/m68k/ifpsp060/src/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/ifpsp060/src/CVS/Entries
--- linux-2.4.20/arch/m68k/ifpsp060/src/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/ifpsp060/src/CVS/Entries	2005-01-06 22:59:55.000000000 -0600
@@ -0,0 +1,9 @@
+/README-SRC/1.1/Wed Jan 10 17:17:54 2001/-ko/Tlinux_2_4_20
+/fplsp.S/1.2/Fri Mar  9 20:33:44 2001/-ko/Tlinux_2_4_20
+/fpsp.S/1.4/Wed Jun 13 17:27:42 2001/-ko/Tlinux_2_4_20
+/ftest.S/1.1/Wed Jan 10 17:17:54 2001/-ko/Tlinux_2_4_20
+/ilsp.S/1.2/Thu Apr  5 04:56:09 2001/-ko/Tlinux_2_4_20
+/isp.S/1.3/Thu Apr  5 04:56:09 2001/-ko/Tlinux_2_4_20
+/itest.S/1.1/Wed Jan 10 17:17:54 2001/-ko/Tlinux_2_4_20
+/pfpsp.S/1.4/Wed Jun 13 17:27:42 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/m68k/ifpsp060/src/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/ifpsp060/src/CVS/Repository
--- linux-2.4.20/arch/m68k/ifpsp060/src/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/ifpsp060/src/CVS/Repository	2005-01-06 22:59:49.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/m68k/ifpsp060/src
diff -urNd -urNd linux-2.4.20/arch/m68k/ifpsp060/src/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/ifpsp060/src/CVS/Root
--- linux-2.4.20/arch/m68k/ifpsp060/src/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/ifpsp060/src/CVS/Root	2005-01-06 22:59:49.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/m68k/ifpsp060/src/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/ifpsp060/src/CVS/Tag
--- linux-2.4.20/arch/m68k/ifpsp060/src/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/ifpsp060/src/CVS/Tag	2005-01-06 22:59:55.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/m68k/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/kernel/CVS/Entries
--- linux-2.4.20/arch/m68k/kernel/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/kernel/CVS/Entries	2005-01-06 22:59:57.000000000 -0600
@@ -0,0 +1,18 @@
+/Makefile/1.10/Wed Jan 10 17:17:54 2001/-ko/Tlinux_2_4_20
+/bios32.c/1.9/Thu Apr  5 04:56:09 2001/-ko/Tlinux_2_4_20
+/entry.S/1.19.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/head.S/1.10.2.1/Wed Sep 11 12:44:27 2002/-ko/Tlinux_2_4_20
+/ints.c/1.9/Thu Apr  5 04:56:09 2001/-ko/Tlinux_2_4_20
+/m68k_defs.c/1.4/Wed Jan 10 05:27:27 2001/-ko/Tlinux_2_4_20
+/m68k_defs.head/1.1/Sun Apr  5 11:23:46 1998/-ko/Tlinux_2_4_20
+/m68k_ksyms.c/1.15/Thu Jan 11 04:02:42 2001/-ko/Tlinux_2_4_20
+/process.c/1.16.2.1/Wed Jun 26 22:35:17 2002/-ko/Tlinux_2_4_20
+/ptrace.c/1.16.2.1/Wed Jun 26 22:35:17 2002/-ko/Tlinux_2_4_20
+/semaphore.c/1.6/Wed Jun 13 17:27:42 2001/-ko/Tlinux_2_4_20
+/setup.c/1.16.2.2/Wed Sep 11 12:44:27 2002/-ko/Tlinux_2_4_20
+/signal.c/1.15.2.1/Wed Jun 26 22:35:17 2002/-ko/Tlinux_2_4_20
+/sun3-head.S/1.3.2.1/Wed Jun 26 22:35:17 2002/-ko/Tlinux_2_4_20
+/sys_m68k.c/1.13/Wed Aug 22 03:23:57 2001/-ko/Tlinux_2_4_20
+/time.c/1.7/Thu Jan 11 04:02:42 2001/-ko/Tlinux_2_4_20
+/traps.c/1.10.2.2/Wed Sep 11 12:44:27 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/m68k/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/kernel/CVS/Repository
--- linux-2.4.20/arch/m68k/kernel/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/kernel/CVS/Repository	2005-01-06 22:59:55.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/m68k/kernel
diff -urNd -urNd linux-2.4.20/arch/m68k/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/kernel/CVS/Root
--- linux-2.4.20/arch/m68k/kernel/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/kernel/CVS/Root	2005-01-06 22:59:55.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/m68k/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/kernel/CVS/Tag
--- linux-2.4.20/arch/m68k/kernel/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/kernel/CVS/Tag	2005-01-06 22:59:57.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/m68k/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/lib/CVS/Entries
--- linux-2.4.20/arch/m68k/lib/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/lib/CVS/Entries	2005-01-06 22:59:57.000000000 -0600
@@ -0,0 +1,11 @@
+/Makefile/1.7/Thu Jan 11 04:02:42 2001/-ko/Tlinux_2_4_20
+/ashldi3.c/1.1/Thu Jan 11 04:02:42 2001/-ko/Tlinux_2_4_20
+/ashrdi3.c/1.1.1.1/Sun Jun  1 03:16:34 1997/-ko/Tlinux_2_4_20
+/checksum.c/1.2/Sat Sep 19 19:16:09 1998/-ko/Tlinux_2_4_20
+/lshrdi3.c/1.1/Fri Feb 18 00:24:29 2000/-ko/Tlinux_2_4_20
+/memcmp.c/1.1.1.1/Sun Jun  1 03:16:34 1997/-ko/Tlinux_2_4_20
+/memcpy.c/1.1.1.1/Sun Jun  1 03:16:34 1997/-ko/Tlinux_2_4_20
+/memset.c/1.1.1.1/Sun Jun  1 03:16:34 1997/-ko/Tlinux_2_4_20
+/muldi3.c/1.1/Wed Jan 10 05:27:27 2001/-ko/Tlinux_2_4_20
+/semaphore.S/1.4/Thu Jun 14 04:23:47 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/m68k/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/lib/CVS/Repository
--- linux-2.4.20/arch/m68k/lib/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/lib/CVS/Repository	2005-01-06 22:59:57.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/m68k/lib
diff -urNd -urNd linux-2.4.20/arch/m68k/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/lib/CVS/Root
--- linux-2.4.20/arch/m68k/lib/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/lib/CVS/Root	2005-01-06 22:59:57.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/m68k/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/lib/CVS/Tag
--- linux-2.4.20/arch/m68k/lib/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/lib/CVS/Tag	2005-01-06 22:59:57.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/m68k/mac/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/mac/CVS/Entries
--- linux-2.4.20/arch/m68k/mac/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/mac/CVS/Entries	2005-01-06 22:59:57.000000000 -0600
@@ -0,0 +1,15 @@
+/Makefile/1.5/Wed Jan 10 17:17:54 2001/-ko/Tlinux_2_4_20
+/baboon.c/1.2/Wed Jan 10 05:27:27 2001/-ko/Tlinux_2_4_20
+/bootparse.c/1.2/Sat Oct  9 00:00:56 1999/-ko/Tlinux_2_4_20
+/config.c/1.9.2.2/Wed Sep 11 12:44:27 2002/-ko/Tlinux_2_4_20
+/debug.c/1.8.2.2/Wed Sep 11 12:44:27 2002/-ko/Tlinux_2_4_20
+/iop.c/1.5/Wed Aug 22 03:23:57 2001/-ko/Tlinux_2_4_20
+/mac_ksyms.c/1.3/Sat Oct  9 00:00:56 1999/-ko/Tlinux_2_4_20
+/mac_penguin.S/1.1/Sat Oct  9 00:00:56 1999/-ko/Tlinux_2_4_20
+/macboing.c/1.5/Sat Jul 15 03:32:23 2000/-ko/Tlinux_2_4_20
+/macints.c/1.9.2.1/Wed Sep 11 12:44:28 2002/-ko/Tlinux_2_4_20
+/misc.c/1.4.2.2/Wed Sep 11 12:44:28 2002/-ko/Tlinux_2_4_20
+/oss.c/1.4/Fri Mar  9 20:33:45 2001/-ko/Tlinux_2_4_20
+/psc.c/1.5/Wed Aug 22 03:23:57 2001/-ko/Tlinux_2_4_20
+/via.c/1.4/Wed Aug 22 03:23:57 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/m68k/mac/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/mac/CVS/Repository
--- linux-2.4.20/arch/m68k/mac/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/mac/CVS/Repository	2005-01-06 22:59:57.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/m68k/mac
diff -urNd -urNd linux-2.4.20/arch/m68k/mac/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/mac/CVS/Root
--- linux-2.4.20/arch/m68k/mac/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/mac/CVS/Root	2005-01-06 22:59:57.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/m68k/mac/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/mac/CVS/Tag
--- linux-2.4.20/arch/m68k/mac/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/mac/CVS/Tag	2005-01-06 22:59:57.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/m68k/math-emu/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/math-emu/CVS/Entries
--- linux-2.4.20/arch/m68k/math-emu/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/math-emu/CVS/Entries	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1,16 @@
+/Makefile/1.4/Wed Jan 10 17:17:54 2001/-ko/Tlinux_2_4_20
+/fp_arith.c/1.1/Sat Oct  9 00:00:56 1999/-ko/Tlinux_2_4_20
+/fp_arith.h/1.1/Sat Oct  9 00:00:56 1999/-ko/Tlinux_2_4_20
+/fp_cond.S/1.2/Fri Mar  9 20:33:45 2001/-ko/Tlinux_2_4_20
+/fp_decode.h/1.2/Fri Mar  9 20:33:45 2001/-ko/Tlinux_2_4_20
+/fp_emu.h/1.3.2.1/Wed Jun 26 22:35:17 2002/-ko/Tlinux_2_4_20
+/fp_entry.S/1.3/Fri Mar  9 20:33:45 2001/-ko/Tlinux_2_4_20
+/fp_log.c/1.1/Sat Oct  9 00:00:56 1999/-ko/Tlinux_2_4_20
+/fp_move.S/1.2/Fri Mar  9 20:33:45 2001/-ko/Tlinux_2_4_20
+/fp_movem.S/1.2/Fri Mar  9 20:33:45 2001/-ko/Tlinux_2_4_20
+/fp_scan.S/1.2/Fri Mar  9 20:33:45 2001/-ko/Tlinux_2_4_20
+/fp_trig.c/1.1/Sat Oct  9 00:00:56 1999/-ko/Tlinux_2_4_20
+/fp_trig.h/1.1/Sat Oct  9 00:00:56 1999/-ko/Tlinux_2_4_20
+/fp_util.S/1.3/Fri Mar  9 20:33:45 2001/-ko/Tlinux_2_4_20
+/multi_arith.h/1.2.2.1/Wed Jun 26 22:35:17 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/m68k/math-emu/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/math-emu/CVS/Repository
--- linux-2.4.20/arch/m68k/math-emu/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/math-emu/CVS/Repository	2005-01-06 22:59:57.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/m68k/math-emu
diff -urNd -urNd linux-2.4.20/arch/m68k/math-emu/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/math-emu/CVS/Root
--- linux-2.4.20/arch/m68k/math-emu/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/math-emu/CVS/Root	2005-01-06 22:59:57.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/m68k/math-emu/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/math-emu/CVS/Tag
--- linux-2.4.20/arch/m68k/math-emu/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/math-emu/CVS/Tag	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/m68k/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/mm/CVS/Entries
--- linux-2.4.20/arch/m68k/mm/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/mm/CVS/Entries	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1,10 @@
+/Makefile/1.5/Wed Jan 10 17:17:55 2001/-ko/Tlinux_2_4_20
+/extable.c/1.1.1.1/Sun Jun  1 03:16:33 1997/-ko/Tlinux_2_4_20
+/fault.c/1.10.2.2/Wed Sep 11 12:44:28 2002/-ko/Tlinux_2_4_20
+/hwtest.c/1.1/Tue Aug 25 09:14:30 1998/-ko/Tlinux_2_4_20
+/init.c/1.16/Fri Oct 19 01:23:36 2001/-ko/Tlinux_2_4_20
+/kmap.c/1.9/Fri Mar  9 20:33:45 2001/-ko/Tlinux_2_4_20
+/memory.c/1.15.2.1/Wed Jun 26 22:35:17 2002/-ko/Tlinux_2_4_20
+/motorola.c/1.5/Wed Jun 13 17:27:42 2001/-ko/Tlinux_2_4_20
+/sun3mmu.c/1.4/Wed Jan 10 17:17:55 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/m68k/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/mm/CVS/Repository
--- linux-2.4.20/arch/m68k/mm/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/mm/CVS/Repository	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/m68k/mm
diff -urNd -urNd linux-2.4.20/arch/m68k/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/mm/CVS/Root
--- linux-2.4.20/arch/m68k/mm/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/mm/CVS/Root	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/m68k/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/mm/CVS/Tag
--- linux-2.4.20/arch/m68k/mm/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/mm/CVS/Tag	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/m68k/mvme147/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/mvme147/CVS/Entries
--- linux-2.4.20/arch/m68k/mvme147/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/mvme147/CVS/Entries	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1,4 @@
+/147ints.c/1.1/Sun Jun 13 16:30:26 1999/-ko/Tlinux_2_4_20
+/Makefile/1.2/Wed Jan 10 17:17:55 2001/-ko/Tlinux_2_4_20
+/config.c/1.7.2.2/Wed Sep 11 12:44:28 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/m68k/mvme147/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/mvme147/CVS/Repository
--- linux-2.4.20/arch/m68k/mvme147/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/mvme147/CVS/Repository	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/m68k/mvme147
diff -urNd -urNd linux-2.4.20/arch/m68k/mvme147/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/mvme147/CVS/Root
--- linux-2.4.20/arch/m68k/mvme147/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/mvme147/CVS/Root	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/m68k/mvme147/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/mvme147/CVS/Tag
--- linux-2.4.20/arch/m68k/mvme147/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/mvme147/CVS/Tag	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/m68k/mvme16x/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/mvme16x/CVS/Entries
--- linux-2.4.20/arch/m68k/mvme16x/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/mvme16x/CVS/Entries	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1,6 @@
+/16xints.c/1.3/Mon Feb 15 02:16:49 1999/-ko/Tlinux_2_4_20
+/Makefile/1.4/Wed Jan 10 17:17:55 2001/-ko/Tlinux_2_4_20
+/config.c/1.7.2.2/Wed Sep 11 12:44:28 2002/-ko/Tlinux_2_4_20
+/mvme16x_ksyms.c/1.1/Fri Feb 18 00:24:30 2000/-ko/Tlinux_2_4_20
+/rtc.c/1.8/Wed Aug 22 03:23:57 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/m68k/mvme16x/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/mvme16x/CVS/Repository
--- linux-2.4.20/arch/m68k/mvme16x/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/mvme16x/CVS/Repository	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/m68k/mvme16x
diff -urNd -urNd linux-2.4.20/arch/m68k/mvme16x/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/mvme16x/CVS/Root
--- linux-2.4.20/arch/m68k/mvme16x/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/mvme16x/CVS/Root	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/m68k/mvme16x/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/mvme16x/CVS/Tag
--- linux-2.4.20/arch/m68k/mvme16x/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/mvme16x/CVS/Tag	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/m68k/q40/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/q40/CVS/Entries
--- linux-2.4.20/arch/m68k/q40/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/q40/CVS/Entries	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1,5 @@
+/Makefile/1.2/Wed Jan 10 17:17:55 2001/-ko/Tlinux_2_4_20
+/README/1.5/Wed Aug 22 03:23:57 2001/-ko/Tlinux_2_4_20
+/config.c/1.8.2.2/Wed Sep 11 12:44:28 2002/-ko/Tlinux_2_4_20
+/q40ints.c/1.4.2.1/Wed Jun 26 22:35:17 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/m68k/q40/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/q40/CVS/Repository
--- linux-2.4.20/arch/m68k/q40/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/q40/CVS/Repository	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/m68k/q40
diff -urNd -urNd linux-2.4.20/arch/m68k/q40/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/q40/CVS/Root
--- linux-2.4.20/arch/m68k/q40/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/q40/CVS/Root	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/m68k/q40/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/q40/CVS/Tag
--- linux-2.4.20/arch/m68k/q40/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/q40/CVS/Tag	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/m68k/sun3/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/sun3/CVS/Entries
--- linux-2.4.20/arch/m68k/sun3/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/sun3/CVS/Entries	2005-01-06 23:08:22.000000000 -0600
@@ -0,0 +1,12 @@
+/Makefile/1.6/Wed Aug 22 03:23:57 2001/-ko/Tlinux_2_4_20
+/config.c/1.4.2.2/Wed Sep 11 12:44:28 2002/-ko/Tlinux_2_4_20
+/dvma.c/1.3/Wed Aug 22 03:23:58 2001/-ko/Tlinux_2_4_20
+/idprom.c/1.1/Sat Oct  9 00:00:57 1999/-ko/Tlinux_2_4_20
+/intersil.c/1.2.2.1/Wed Jun 26 22:35:17 2002/-ko/Tlinux_2_4_20
+/leds.c/1.1/Sat Oct  9 00:00:57 1999/-ko/Tlinux_2_4_20
+/mmu_emu.c/1.4.2.1/Wed Sep 11 12:44:28 2002/-ko/Tlinux_2_4_20
+/sbus.c/1.2.2.1/Wed Sep 11 12:44:28 2002/-ko/Tlinux_2_4_20
+/sun3_ksyms.c/1.2/Wed Aug 22 03:23:58 2001/-ko/Tlinux_2_4_20
+/sun3dvma.c/1.1.2.1/Wed Jun 26 22:35:17 2002/-ko/Tlinux_2_4_20
+/sun3ints.c/1.4.2.1/Wed Sep 11 12:44:28 2002/-ko/Tlinux_2_4_20
+D/prom////
diff -urNd -urNd linux-2.4.20/arch/m68k/sun3/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/sun3/CVS/Repository
--- linux-2.4.20/arch/m68k/sun3/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/sun3/CVS/Repository	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/m68k/sun3
diff -urNd -urNd linux-2.4.20/arch/m68k/sun3/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/sun3/CVS/Root
--- linux-2.4.20/arch/m68k/sun3/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/sun3/CVS/Root	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/m68k/sun3/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/sun3/CVS/Tag
--- linux-2.4.20/arch/m68k/sun3/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/sun3/CVS/Tag	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/m68k/sun3/prom/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/sun3/prom/CVS/Entries
--- linux-2.4.20/arch/m68k/sun3/prom/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/sun3/prom/CVS/Entries	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1,6 @@
+/Makefile/1.2/Sat Feb  5 06:47:08 2000/-ko/Tlinux_2_4_20
+/console.c/1.2/Fri Feb  4 07:40:23 2000/-ko/Tlinux_2_4_20
+/init.c/1.1/Sat Oct  9 00:00:57 1999/-ko/Tlinux_2_4_20
+/misc.c/1.2/Fri Feb  4 07:40:23 2000/-ko/Tlinux_2_4_20
+/printf.c/1.1/Sat Oct  9 00:00:57 1999/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/m68k/sun3/prom/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/sun3/prom/CVS/Repository
--- linux-2.4.20/arch/m68k/sun3/prom/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/sun3/prom/CVS/Repository	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/m68k/sun3/prom
diff -urNd -urNd linux-2.4.20/arch/m68k/sun3/prom/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/sun3/prom/CVS/Root
--- linux-2.4.20/arch/m68k/sun3/prom/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/sun3/prom/CVS/Root	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/m68k/sun3/prom/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/sun3/prom/CVS/Tag
--- linux-2.4.20/arch/m68k/sun3/prom/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/sun3/prom/CVS/Tag	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/m68k/sun3x/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/sun3x/CVS/Entries
--- linux-2.4.20/arch/m68k/sun3x/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/sun3x/CVS/Entries	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1,8 @@
+/Makefile/1.3/Wed Aug 22 03:23:58 2001/-ko/Tlinux_2_4_20
+/config.c/1.3.2.1/Wed Sep 11 12:44:28 2002/-ko/Tlinux_2_4_20
+/dvma.c/1.2/Wed Aug 22 03:23:58 2001/-ko/Tlinux_2_4_20
+/prom.c/1.1.2.2/Wed Sep 11 12:44:28 2002/-ko/Tlinux_2_4_20
+/sun3x_ksyms.c/1.1/Wed Aug 22 03:23:58 2001/-ko/Tlinux_2_4_20
+/time.c/1.4.2.2/Wed Sep 11 12:44:28 2002/-ko/Tlinux_2_4_20
+/time.h/1.2.2.1/Wed Jun 26 22:35:17 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/m68k/sun3x/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/sun3x/CVS/Repository
--- linux-2.4.20/arch/m68k/sun3x/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/sun3x/CVS/Repository	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/m68k/sun3x
diff -urNd -urNd linux-2.4.20/arch/m68k/sun3x/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/sun3x/CVS/Root
--- linux-2.4.20/arch/m68k/sun3x/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/sun3x/CVS/Root	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/m68k/sun3x/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/sun3x/CVS/Tag
--- linux-2.4.20/arch/m68k/sun3x/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/sun3x/CVS/Tag	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/m68k/tools/amiga/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/tools/amiga/CVS/Entries
--- linux-2.4.20/arch/m68k/tools/amiga/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/tools/amiga/CVS/Entries	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1,3 @@
+/Makefile/1.1.1.1/Sun Jun  1 03:16:37 1997/-ko/Tlinux_2_4_20
+/dmesg.c/1.2/Sat Oct  9 00:00:57 1999/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/m68k/tools/amiga/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/tools/amiga/CVS/Repository
--- linux-2.4.20/arch/m68k/tools/amiga/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/tools/amiga/CVS/Repository	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/m68k/tools/amiga
diff -urNd -urNd linux-2.4.20/arch/m68k/tools/amiga/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/tools/amiga/CVS/Root
--- linux-2.4.20/arch/m68k/tools/amiga/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/tools/amiga/CVS/Root	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/m68k/tools/amiga/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/tools/amiga/CVS/Tag
--- linux-2.4.20/arch/m68k/tools/amiga/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/tools/amiga/CVS/Tag	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/m68k/tools/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/tools/CVS/Entries
--- linux-2.4.20/arch/m68k/tools/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/tools/CVS/Entries	2005-01-06 23:08:22.000000000 -0600
@@ -0,0 +1 @@
+D/amiga////
diff -urNd -urNd linux-2.4.20/arch/m68k/tools/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/tools/CVS/Repository
--- linux-2.4.20/arch/m68k/tools/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/tools/CVS/Repository	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/m68k/tools
diff -urNd -urNd linux-2.4.20/arch/m68k/tools/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/tools/CVS/Root
--- linux-2.4.20/arch/m68k/tools/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/tools/CVS/Root	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/m68k/tools/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/tools/CVS/Tag
--- linux-2.4.20/arch/m68k/tools/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/m68k/tools/CVS/Tag	2005-01-06 22:59:58.000000000 -0600
@@ -0,0 +1 @@
+Tlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/algor/README linux-2.4.20-mipscvs-20050106/arch/mips/algor/README
--- linux-2.4.20/arch/mips/algor/README	1999-06-25 19:40:12.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/algor/README	1969-12-31 18:00:00.000000000 -0600
@@ -1,5 +0,0 @@
-The code for the Algorithmics P4032 evaluation board is currently under
-development.  I'll release it when it's up to the same strength as
-the other ports.
-
-  Ralf
diff -urNd -urNd linux-2.4.20/arch/mips/arc/arc_con.c linux-2.4.20-mipscvs-20050106/arch/mips/arc/arc_con.c
--- linux-2.4.20/arch/mips/arc/arc_con.c	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/arc/arc_con.c	2002-12-19 08:02:56.000000000 -0600
@@ -32,19 +32,16 @@
 
 static int __init prom_console_setup(struct console *co, char *options)
 {
-	if (prom_flags & PROM_FLAG_USE_AS_CONSOLE)
-		return 0;
-	else
-		return 1;
+	return !(prom_flags & PROM_FLAG_USE_AS_CONSOLE);
 }
 
 static struct console arc_cons = {
-	name:		"ttyS",
-	write:		prom_console_write,
-	device:		prom_console_device,
-	setup:		prom_console_setup,
-	flags:		CON_PRINTBUFFER,
-	index:		-1,
+	.name		= "arc",
+	.write		= prom_console_write,
+	.device		= prom_console_device,
+	.setup		= prom_console_setup,
+	.flags		= CON_PRINTBUFFER,
+	.index		= -1,
 };
 
 /*
diff -urNd -urNd linux-2.4.20/arch/mips/arc/console.c linux-2.4.20-mipscvs-20050106/arch/mips/arc/console.c
--- linux-2.4.20/arch/mips/arc/console.c	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/arc/console.c	1969-12-31 18:00:00.000000000 -0600
@@ -1,63 +0,0 @@
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 1996 David S. Miller (dm@sgi.com)
- * Compability with board caches, Ulf Carlsson
- */
-#include <linux/kernel.h>
-#include <asm/sgialib.h>
-#include <asm/bcache.h>
-
-/*
- * IP22 boardcache is not compatible with board caches.  Thus we disable it
- * during romvec action.  Since r4xx0.c is always compiled and linked with your
- * kernel, this shouldn't cause any harm regardless what MIPS processor you
- * have.
- *
- * The ARC write and read functions seem to interfere with the serial lines
- * in some way. You should be careful with them.
- */
-
-void prom_putchar(char c)
-{
-	ULONG cnt;
-	CHAR it = c;
-
-	bc_disable();
-	ArcWrite(1, &it, 1, &cnt);
-	bc_enable();
-}
-
-char prom_getchar(void)
-{
-	ULONG cnt;
-	CHAR c;
-
-	bc_disable();
-	ArcRead(0, &c, 1, &cnt);
-	bc_enable();
-
-	return c;
-}
-
-void prom_printf(char *fmt, ...)
-{
-	va_list args;
-	char ppbuf[1024];
-	char *bptr;
-
-	va_start(args, fmt);
-	vsprintf(ppbuf, fmt, args);
-
-	bptr = ppbuf;
-
-	while (*bptr != 0) {
-		if (*bptr == '\n')
-			prom_putchar('\r');
-
-		prom_putchar(*bptr++);
-	}
-	va_end(args);
-}
diff -urNd -urNd linux-2.4.20/arch/mips/arc/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/arc/CVS/Entries
--- linux-2.4.20/arch/mips/arc/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/arc/CVS/Entries	2005-01-06 22:59:59.000000000 -0600
@@ -0,0 +1,15 @@
+/.cvsignore/1.1/Mon Dec  6 23:13:20 1999/-ko/Tlinux_2_4_20
+/Makefile/1.5.2.2/Sat Sep 28 22:28:38 2002/-ko/Tlinux_2_4_20
+/arc_con.c/1.1.4.6/Thu Dec 19 14:02:56 2002/-ko/Tlinux_2_4_20
+/cmdline.c/1.5.2.3/Mon Aug  5 23:53:30 2002/-ko/Tlinux_2_4_20
+/env.c/1.4.2.1/Thu Jan 24 23:14:24 2002/-ko/Tlinux_2_4_20
+/file.c/1.3.2.1/Thu Jan 24 23:14:24 2002/-ko/Tlinux_2_4_20
+/identify.c/1.5.2.7/Tue Jan 28 11:55:51 2003/-ko/Tlinux_2_4_20
+/init.c/1.10.2.3/Thu Aug  1 22:26:40 2002/-ko/Tlinux_2_4_20
+/memory.c/1.22.2.2/Thu Aug  1 22:26:40 2002/-ko/Tlinux_2_4_20
+/misc.c/1.6.2.1/Thu Jan 24 23:14:24 2002/-ko/Tlinux_2_4_20
+/promlib.c/1.1.2.1/Sat Sep 28 22:28:38 2002/-ko/Tlinux_2_4_20
+/salone.c/1.3.2.1/Thu Aug  1 22:26:40 2002/-ko/Tlinux_2_4_20
+/time.c/1.3.2.1/Thu Jan 24 23:14:24 2002/-ko/Tlinux_2_4_20
+/tree.c/1.3.2.1/Thu Jan 24 23:14:24 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/arc/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/arc/CVS/Repository
--- linux-2.4.20/arch/mips/arc/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/arc/CVS/Repository	2005-01-06 22:59:59.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/arc
diff -urNd -urNd linux-2.4.20/arch/mips/arc/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/arc/CVS/Root
--- linux-2.4.20/arch/mips/arc/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/arc/CVS/Root	2005-01-06 22:59:59.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/arc/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/arc/CVS/Tag
--- linux-2.4.20/arch/mips/arc/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/arc/CVS/Tag	2005-01-06 22:59:59.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/arc/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/arc/.cvsignore
--- linux-2.4.20/arch/mips/arc/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/arc/.cvsignore	1999-12-06 17:13:20.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/arc/identify.c linux-2.4.20-mipscvs-20050106/arch/mips/arc/identify.c
--- linux-2.4.20/arch/mips/arc/identify.c	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/arc/identify.c	2003-01-28 05:55:51.000000000 -0600
@@ -32,7 +32,7 @@
 	{	"SGI-IP22",
 		"SGI Indy",
 		MACH_GROUP_SGI,
-		MACH_SGI_INDY,
+		MACH_SGI_IP22,
 		PROM_FLAG_ARCS
 	}, {	"SGI-IP27",
 		"SGI Origin",
diff -urNd -urNd linux-2.4.20/arch/mips/arc/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/arc/Makefile
--- linux-2.4.20/arch/mips/arc/Makefile	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/arc/Makefile	2002-09-28 17:28:38.000000000 -0500
@@ -4,10 +4,11 @@
 
 L_TARGET = arclib.a
 
-obj-y				+= cmdline.o console.o env.o file.o \
-				   identify.o init.o misc.o time.o tree.o
+obj-y				+= cmdline.o env.o file.o identify.o init.o \
+				   misc.o time.o tree.o
 
 obj-$(CONFIG_ARC_MEMORY)	+= memory.o
 obj-$(CONFIG_ARC_CONSOLE)	+= arc_con.o
+obj-$(CONFIG_ARC_PROMLIB)	+= promlib.o
 
 include $(TOPDIR)/Rules.make
diff -urNd -urNd linux-2.4.20/arch/mips/arc/promlib.c linux-2.4.20-mipscvs-20050106/arch/mips/arc/promlib.c
--- linux-2.4.20/arch/mips/arc/promlib.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/arc/promlib.c	2002-09-28 17:28:38.000000000 -0500
@@ -0,0 +1,43 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * Copyright (C) 1996 David S. Miller (dm@sgi.com)
+ * Compability with board caches, Ulf Carlsson
+ */
+#include <linux/kernel.h>
+#include <asm/sgialib.h>
+#include <asm/bcache.h>
+
+/*
+ * IP22 boardcache is not compatible with board caches.  Thus we disable it
+ * during romvec action.  Since r4xx0.c is always compiled and linked with your
+ * kernel, this shouldn't cause any harm regardless what MIPS processor you
+ * have.
+ *
+ * The ARC write and read functions seem to interfere with the serial lines
+ * in some way. You should be careful with them.
+ */
+
+void prom_putchar(char c)
+{
+	ULONG cnt;
+	CHAR it = c;
+
+	bc_disable();
+	ArcWrite(1, &it, 1, &cnt);
+	bc_enable();
+}
+
+char prom_getchar(void)
+{
+	ULONG cnt;
+	CHAR c;
+
+	bc_disable();
+	ArcRead(0, &c, 1, &cnt);
+	bc_enable();
+
+	return c;
+}
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/common/clocks.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/clocks.c
--- linux-2.4.20/arch/mips/au1000/common/clocks.c	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/clocks.c	2002-12-11 00:12:29.000000000 -0600
@@ -30,21 +30,21 @@
 #include <linux/module.h>
 #include <asm/au1000.h>
 
-static unsigned int au1000_clock; // Hz
+static unsigned int au1x00_clock; // Hz
 static unsigned int lcd_clock;    // KHz
 static unsigned long uart_baud_base;
 
 /*
  * Set the au1000_clock
  */
-void set_au1000_speed(unsigned int new_freq)
+void set_au1x00_speed(unsigned int new_freq)
 {
-	au1000_clock = new_freq;
+	au1x00_clock = new_freq;
 }
 
-unsigned int get_au1000_speed(void)
+unsigned int get_au1x00_speed(void)
 {
-	return au1000_clock;
+	return au1x00_clock;
 }
 
 
@@ -54,27 +54,27 @@
  * we want to be able to use the same code on different
  * speed CPUs.
  */
-unsigned long get_au1000_uart_baud_base(void)
+unsigned long get_au1x00_uart_baud_base(void)
 {
 	return uart_baud_base;
 }
 
-void set_au1000_uart_baud_base(unsigned long new_baud_base)
+void set_au1x00_uart_baud_base(unsigned long new_baud_base)
 {
 	uart_baud_base = new_baud_base;
 }
 
 /*
- * Calculate the Au1000's LCD clock based on the current
+ * Calculate the Au1x00's LCD clock based on the current
  * cpu clock and the system bus clock, and try to keep it
  * below 40 MHz (the Pb1000 board can lock-up if the LCD
  * clock is over 40 MHz).
  */
-void set_au1000_lcd_clock(void)
+void set_au1x00_lcd_clock(void)
 {
 	unsigned int static_cfg0;
 	unsigned int sys_busclk =
-		(get_au1000_speed()/1000) /
+		(get_au1x00_speed()/1000) /
 		((int)(au_readl(SYS_POWERCTRL)&0x03) + 2);
 
 	static_cfg0 = au_readl(MEM_STCFG0);
@@ -90,9 +90,9 @@
 			       lcd_clock);
 }
 
-unsigned int get_au1000_lcd_clock(void)
+unsigned int get_au1x00_lcd_clock(void)
 {
 	return lcd_clock;
 }
 
-EXPORT_SYMBOL(get_au1000_lcd_clock);
+EXPORT_SYMBOL(get_au1x00_lcd_clock);
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/common/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/CVS/Entries
--- linux-2.4.20/arch/mips/au1000/common/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/CVS/Entries	2005-01-06 23:00:00.000000000 -0600
@@ -0,0 +1,16 @@
+/.cvsignore/1.1/Sun Dec  2 11:34:38 2001/-ko/Tlinux_2_4_20
+/Makefile/1.5.2.6/Wed Dec 11 06:12:29 2002/-ko/Tlinux_2_4_20
+/clocks.c/1.2.2.4/Wed Dec 11 06:12:29 2002/-ko/Tlinux_2_4_20
+/dbg_io.c/1.2.2.4/Sat Jan 25 05:38:40 2003/-ko/Tlinux_2_4_20
+/dma.c/1.1.2.4/Mon Aug  5 23:53:30 2002/-ko/Tlinux_2_4_20
+/int-handler.S/1.3.2.2/Mon Aug  5 23:53:30 2002/-ko/Tlinux_2_4_20
+/irq.c/1.11.2.13/Wed Dec 11 06:12:29 2002/-ko/Tlinux_2_4_20
+/power.c/1.2.2.7/Wed Dec 11 06:12:29 2002/-ko/Tlinux_2_4_20
+/prom.c/1.5.2.4/Wed Feb  5 21:22:54 2003/-ko/Tlinux_2_4_20
+/puts.c/1.2/Fri May 18 01:02:18 2001/-ko/Tlinux_2_4_20
+/reset.c/1.2.2.8/Wed Dec 11 06:12:29 2002/-ko/Tlinux_2_4_20
+/rtc.c/1.1.2.3/Thu Jul  4 12:06:38 2002/-ko/Tlinux_2_4_20
+/serial.c/1.7.2.8/Wed Dec 11 06:12:29 2002/-ko/Tlinux_2_4_20
+/time.c/1.5.2.9/Wed Dec 11 06:12:29 2002/-ko/Tlinux_2_4_20
+/usbdev.c/1.2.2.7/Wed Dec 11 06:12:29 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/common/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/CVS/Repository
--- linux-2.4.20/arch/mips/au1000/common/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/CVS/Repository	2005-01-06 22:59:59.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/au1000/common
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/common/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/CVS/Root
--- linux-2.4.20/arch/mips/au1000/common/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/CVS/Root	2005-01-06 22:59:59.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/common/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/CVS/Tag
--- linux-2.4.20/arch/mips/au1000/common/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/CVS/Tag	2005-01-06 23:00:00.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/common/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/.cvsignore
--- linux-2.4.20/arch/mips/au1000/common/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/.cvsignore	2001-12-02 05:34:38.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/common/dbg_io.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/dbg_io.c
--- linux-2.4.20/arch/mips/au1000/common/dbg_io.c	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/dbg_io.c	2003-01-24 23:38:40.000000000 -0600
@@ -56,7 +56,7 @@
 #define UART16550_READ(y)    (au_readl(DEBUG_BASE + y) & 0xff)
 #define UART16550_WRITE(y,z) (au_writel(z&0xff, DEBUG_BASE + y))
 
-extern unsigned long get_au1000_uart_baud_base(void);
+extern unsigned long get_au1x00_uart_baud_base(void);
 extern unsigned long cal_r4koff(void);
 
 void debugInit(uint32 baud, uint8 data, uint8 parity, uint8 stop)
@@ -75,7 +75,7 @@
 		uint32 divisor;
 
 		/* set divisor */
-		divisor = get_au1000_uart_baud_base() / baud;
+		divisor = get_au1x00_uart_baud_base() / baud;
 		UART16550_WRITE(UART_CLK, divisor & 0xffff);
 	}
 
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/common/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/irq.c
--- linux-2.4.20/arch/mips/au1000/common/irq.c	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/irq.c	2002-12-11 00:12:29.000000000 -0600
@@ -53,8 +53,14 @@
 #include <asm/pb1500.h>
 #elif defined(CONFIG_MIPS_PB1100)
 #include <asm/pb1100.h>
+#elif defined(CONFIG_MIPS_DB1000)
+#include <asm/db1x00.h>
+#elif defined(CONFIG_MIPS_DB1100)
+#include <asm/db1x00.h>
+#elif defined(CONFIG_MIPS_DB1500)
+#include <asm/db1x00.h>
 #else
-#error unsupported alchemy board
+#error unsupported Alchemy board
 #endif
 
 #undef DEBUG_IRQ
@@ -97,6 +103,7 @@
 extern void counter0_irq(int irq, void *dev_id, struct pt_regs *regs);
 #endif
 
+static spinlock_t irq_lock = SPIN_LOCK_UNLOCKED;
 
 static void setup_local_irq(unsigned int irq_nr, int type, int int_req)
 {
@@ -296,8 +303,8 @@
 {
 	int i;
 	unsigned long flags, mask;
-	save_and_cli(flags);
 
+	spin_lock_irqsave(&irq_lock, flags);
 	if (controller) {
 		mask = au_readl(IC1_MASKSET);
 		for (i=32; i<64; i++) {
@@ -310,7 +317,8 @@
 			local_disable_irq(i);
 		}
 	}
-	restore_flags(flags);
+	spin_unlock_irqrestore(&irq_lock, flags);
+
 	return mask;
 }
 
@@ -318,8 +326,8 @@
 {
 	int i;
 	unsigned long flags, new_mask;
-	save_and_cli(flags);
 
+	spin_lock_irqsave(&irq_lock, flags);
 	for (i=0; i<32; i++) {
 		if (mask & (1<<i)) {
 			if (controller)
@@ -333,7 +341,7 @@
 	else
 		new_mask = au_readl(IC0_MASKSET);
 
-	restore_flags(flags);
+	spin_unlock_irqrestore(&irq_lock, flags);
 }
 
 
@@ -348,7 +356,7 @@
 	NULL
 };
 
-
+/*
 static struct hw_interrupt_type fall_edge_irq_type = {
 	"Au1000 Fall Edge",
 	startup_irq,
@@ -359,7 +367,7 @@
 	end_irq,
 	NULL
 };
-
+*/
 
 static struct hw_interrupt_type level_irq_type = {
 	"Au1000 Level",
@@ -384,9 +392,8 @@
 {
 	int i;
 	unsigned long cp0_status;
-	extern char except_vec0_au1000;
 
-	cp0_status = read_32bit_cp0_register(CP0_STATUS);
+	cp0_status = read_c0_status();
 	memset(irq_desc, 0, sizeof(irq_desc));
 	set_except_vector(0, au1000_IRQ);
 
@@ -423,7 +430,7 @@
 			case AU1000_IRDA_RX_INT:
 
 			case AU1000_MAC0_DMA_INT:
-#ifdef CONFIG_MIPS_PB1000
+#if defined(CONFIG_MIPS_PB1000) || defined(CONFIG_MIPS_DB1000) || defined(CONFIG_MIPS_DB1500)
 			case AU1000_MAC1_DMA_INT:
 #endif
 #ifdef CONFIG_MIPS_PB1500
@@ -458,6 +465,15 @@
 			case AU1000_GPIO_13: // DC_IRQ#
 			case AU1000_GPIO_23: // 2-wire SCL
 #endif
+#if defined(CONFIG_MIPS_DB1000) || defined(CONFIG_MIPS_DB1100) || defined(CONFIG_MIPS_DB1500)
+			case AU1000_GPIO_0: // PCMCIA Card 0 Fully_Interted#
+			case AU1000_GPIO_1: // PCMCIA Card 0 STSCHG#
+			case AU1000_GPIO_2: // PCMCIA Card 0 IRQ#
+
+			case AU1000_GPIO_3: // PCMCIA Card 1 Fully_Interted#
+			case AU1000_GPIO_4: // PCMCIA Card 1 STSCHG#
+			case AU1000_GPIO_5: // PCMCIA Card 1 IRQ#
+#endif
 				setup_local_irq(i, INTC_INT_LOW_LEVEL, 0);
 				irq_desc[i].handler = &level_irq_type;
                                 break;
@@ -490,7 +506,7 @@
 		}
 	}
 
-	set_cp0_status(ALLINTS);
+	set_c0_status(ALLINTS);
 #ifdef CONFIG_REMOTE_DEBUG
 	/* If local serial I/O used for debug port, enter kgdb at once */
 	puts("Waiting for kgdb to connect...");
@@ -575,8 +591,6 @@
 {
 	int irq = 0, i;
 	static unsigned long intc1_req0 = 0;
-	volatile unsigned short levels, mdr;
-	unsigned char ide_status;
 
 	intc1_req0 |= au_readl(IC1_REQ0INT);
 
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/common/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/Makefile
--- linux-2.4.20/arch/mips/au1000/common/Makefile	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/Makefile	2002-12-11 00:12:29.000000000 -0600
@@ -21,7 +21,7 @@
 obj-y := prom.o int-handler.o dma.o irq.o puts.o time.o reset.o \
 	clocks.o power.o usbdev.o
 
-obj-$(CONFIG_AU1000_UART) += serial.o
+obj-$(CONFIG_AU1X00_UART) += serial.o
 obj-$(CONFIG_AU1000_USB_DEVICE) += usbdev.o
 obj-$(CONFIG_REMOTE_DEBUG) += dbg_io.o
 obj-$(CONFIG_RTC) += rtc.o
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/common/power.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/power.c
--- linux-2.4.20/arch/mips/au1000/common/power.c	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/power.c	2002-12-11 00:12:29.000000000 -0600
@@ -67,6 +67,8 @@
 
 #ifdef CONFIG_PM
 
+static spinlock_t pm_lock = SPIN_LOCK_UNLOCKED;
+
 unsigned long suspend_mode;
 
 void wakeup_from_suspend(void)
@@ -77,7 +79,7 @@
 int au_sleep(void)
 {
 	unsigned long wakeup, flags;
-	save_and_cli(flags);
+	spin_lock_irqsave(&pm_lock,flags);
 
 	flush_cache_all();
 	/* pin 6 is gpio */
@@ -104,7 +106,7 @@
 	/* after a wakeup, the cpu vectors back to 0x1fc00000 so
 	 * it's up to the boot code to get us back here.
 	 */
-	restore_flags(flags);
+	spin_unlock_irqrestore(&pm_lock, flags);
 	return 0;
 }
 
@@ -158,31 +160,31 @@
 	    old_refresh;
 	unsigned long new_baud_base, new_cpu_freq, new_clk, new_refresh;
 
-	save_and_cli(flags);
+	spin_lock_irqsave(&pm_lock, flags);
 	if (!write) {
 		*len = 0;
 	} else {
 		/* Parse the new frequency */
 		if (*len > TMPBUFLEN - 1) {
-			restore_flags(flags);
+			spin_unlock_irqrestore(&pm_lock, flags);
 			return -EFAULT;
 		}
 		if (copy_from_user(buf, buffer, *len)) {
-			restore_flags(flags);
+			spin_unlock_irqrestore(&pm_lock, flags);
 			return -EFAULT;
 		}
 		buf[*len] = 0;
 		p = buf;
 		val = simple_strtoul(p, &p, 0);
 		if (val > MAX_CPU_FREQ) {
-			restore_flags(flags);
+			spin_unlock_irqrestore(&pm_lock, flags);
 			return -EFAULT;
 		}
 
 		pll = val / 12;
 		if ((pll > 33) || (pll < 7)) {	/* 396 MHz max, 84 MHz min */
 			/* revisit this for higher speed cpus */
-			restore_flags(flags);
+			spin_unlock_irqrestore(&pm_lock, flags);
 			return -EFAULT;
 		}
 
@@ -247,7 +249,7 @@
 	intc0_mask = save_local_and_disable(0);
 	intc1_mask = save_local_and_disable(1);
 	local_enable_irq(AU1000_TOY_MATCH2_INT);
-	restore_flags(flags);
+	spin_unlock_irqrestore(&pm_lock, flags);
 	calibrate_delay();
 	restore_local_and_enable(0, intc0_mask);
 	restore_local_and_enable(1, intc1_mask);
@@ -323,4 +325,9 @@
 	}
 }
 
+void au1k_wait(void)
+{
+	__asm__("nop\n\t" "nop\n\t");
+}
+
 #endif				/* CONFIG_PM */
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/common/prom.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/prom.c
--- linux-2.4.20/arch/mips/au1000/common/prom.c	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/prom.c	2003-02-05 15:22:54.000000000 -0600
@@ -105,9 +105,11 @@
 inline unsigned char str2hexnum(unsigned char c)
 {
 	if(c >= '0' && c <= '9')
-	return c - '0';
+		return c - '0';
 	if(c >= 'a' && c <= 'f')
-	return c - 'a' + 10;
+		return c - 'a' + 10;
+	if(c >= 'A' && c <= 'F')
+		return c - 'A' + 10;
 	return 0; /* foo */
 }
 
@@ -128,7 +130,6 @@
 
 int get_ethernet_addr(char *ethernet_addr)
 {
-	int i;
         char *ethaddr_str;
 
         ethaddr_str = prom_getenv("ethaddr");
@@ -139,10 +140,14 @@
 	str2eaddr(ethernet_addr, ethaddr_str);
 
 #if 0
+	{
+		int i;
+
 	printk("get_ethernet_addr: ");
 	for (i=0; i<5; i++)
 		printk("%02x:", (unsigned char)*(ethernet_addr+i));
 	printk("%02x\n", *(ethernet_addr+i));
+	}
 #endif
 
 	return 0;
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/common/reset.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/reset.c
--- linux-2.4.20/arch/mips/au1000/common/reset.c	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/reset.c	2002-12-11 00:12:29.000000000 -0600
@@ -42,7 +42,7 @@
 void au1000_restart(char *command)
 {
 	/* Set all integrated peripherals to disabled states */
-	u32 prid = read_32bit_cp0_register(CP0_PRID);
+	u32 prid = read_c0_prid();
 
 	printk(KERN_NOTICE "\n** Resetting Integrated Peripherals\n");
 	switch (prid & 0xFF000000)
@@ -107,10 +107,19 @@
 		break;
 	}
 
-	set_cp0_status(ST0_BEV | ST0_ERL);
-	set_cp0_config(CONF_CM_UNCACHED);
+	set_c0_status(ST0_BEV | ST0_ERL);
+	set_c0_config(CONF_CM_UNCACHED);
 	flush_cache_all();
-	write_32bit_cp0_register(CP0_WIRED, 0);
+	write_c0_wired(0);
+ 
+#ifdef CONFIG_MIPS_PB1500
+	au_writel(0x00000000, 0xAE00001C);
+#endif
+
+#ifdef CONFIG_MIPS_PB1100
+	au_writel(0x00000000, 0xAE00001C);
+#endif
+ 
 	__asm__ __volatile__("jr\t%0"::"r"(0xbfc00000));
 }
 
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/common/serial.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/serial.c
--- linux-2.4.20/arch/mips/au1000/common/serial.c	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/serial.c	2002-12-11 00:12:29.000000000 -0600
@@ -1,7 +1,7 @@
 /*
  *
  * BRIEF MODULE DESCRIPTION
- *	Au1000 serial port driver.
+ *	Au1x00 serial port driver.
  *
  * Copyright 2001 MontaVista Software Inc.
  * Author: MontaVista Software, Inc.
@@ -56,14 +56,14 @@
 #undef SERIAL_DEBUG_AUTOCONF
 
 #ifdef MODULE
-#undef CONFIG_AU1000_SERIAL_CONSOLE
+#undef CONFIG_AU1X00_SERIAL_CONSOLE
 #endif
 
 #define CONFIG_SERIAL_RSA
 
 #define RS_STROBE_TIME (10*HZ)
 #define RS_ISR_PASS_LIMIT 256
-
+  
 /*
  * End of serial driver configuration section.
  */
@@ -98,7 +98,7 @@
 #include <linux/init.h>
 #include <asm/uaccess.h>
 #include <linux/delay.h>
-#ifdef CONFIG_AU1000_SERIAL_CONSOLE
+#ifdef CONFIG_AU1X00_SERIAL_CONSOLE
 #include <linux/console.h>
 #endif
 #ifdef CONFIG_MAGIC_SYSRQ
@@ -131,7 +131,7 @@
 
 static struct timer_list serial_timer;
 
-extern unsigned long get_au1000_uart_baud_base(void);
+extern unsigned long get_au1x00_uart_baud_base(void);
 
 /* serial subtype definitions */
 #ifndef SERIAL_TYPE_NORMAL
@@ -149,11 +149,11 @@
 
 static struct async_struct *IRQ_ports[NR_IRQS];
 static int IRQ_timeout[NR_IRQS];
-#ifdef CONFIG_AU1000_SERIAL_CONSOLE
+#ifdef CONFIG_AU1X00_SERIAL_CONSOLE
 static struct console sercons;
 static int lsr_break_flag;
 #endif
-#if defined(CONFIG_AU1000_SERIAL_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
+#if defined(CONFIG_AU1X00_SERIAL_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
 static unsigned long break_pressed; /* break, really ... */
 #endif
 
@@ -216,6 +216,7 @@
 static struct semaphore tmp_buf_sem = MUTEX;
 #endif
 
+static spinlock_t serial_lock = SPIN_LOCK_UNLOCKED;
 
 static inline int serial_paranoia_check(struct async_struct *info,
 					kdev_t device, const char *routine)
@@ -275,12 +276,12 @@
 	if (serial_paranoia_check(info, tty->device, "rs_stop"))
 		return;
 
-	save_flags(flags); cli();
+	spin_lock_irqsave(&serial_lock, flags);
 	if (info->IER & UART_IER_THRI) {
 		info->IER &= ~UART_IER_THRI;
 		serial_out(info, UART_IER, info->IER);
 	}
-	restore_flags(flags);
+	spin_unlock_irqrestore(&serial_lock, flags);
 }
 
 static void rs_start(struct tty_struct *tty)
@@ -291,14 +292,14 @@
 	if (serial_paranoia_check(info, tty->device, "rs_start"))
 		return;
 
-	save_flags(flags); cli();
+	spin_lock_irqsave(&serial_lock, flags);
 	if (info->xmit.head != info->xmit.tail
 	    && info->xmit.buf
 	    && !(info->IER & UART_IER_THRI)) {
 		info->IER |= UART_IER_THRI;
 		serial_out(info, UART_IER, info->IER);
 	}
-	restore_flags(flags);
+	spin_unlock_irqrestore(&serial_lock, flags);
 }
 
 /*
@@ -368,7 +369,7 @@
 				 * may get masked by ignore_status_mask
 				 * or read_status_mask.
 				 */
-#if defined(CONFIG_AU1000_SERIAL_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
+#if defined(CONFIG_AU1X00_SERIAL_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
 				if (info->line == sercons.index) {
 					if (!break_pressed) {
 						break_pressed = jiffies;
@@ -398,7 +399,7 @@
 			}
 			*status &= info->read_status_mask;
 
-#ifdef CONFIG_AU1000_SERIAL_CONSOLE
+#ifdef CONFIG_AU1X00_SERIAL_CONSOLE
 			if (info->line == sercons.index) {
 				/* Recover the break flag from console xmit */
 				*status |= lsr_break_flag;
@@ -428,7 +429,7 @@
 					goto ignore_char;
 			}
 		}
-#if defined(CONFIG_AU1000_SERIAL_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
+#if defined(CONFIG_AU1X00_SERIAL_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
 		if (break_pressed && info->line == sercons.index) {
 			if (ch != 0 &&
 			    time_before(jiffies, break_pressed + HZ*5)) {
@@ -664,9 +665,9 @@
 			info = IRQ_ports[i];
 			if (!info)
 				continue;
-			save_flags(flags); cli();
+			spin_lock_irqsave(&serial_lock, flags);
 				rs_interrupt_single(i, NULL, NULL);
-			restore_flags(flags);
+				spin_unlock_irqrestore(&serial_lock, flags);
 		}
 	}
 	last_strobe = jiffies;
@@ -674,9 +675,9 @@
 
 #if 0
 	if (IRQ_ports[0]) {
-		save_flags(flags); cli();
+		spin_lock_irqsave(&serial_lock, flags);
 		rs_interrupt_single(0, NULL, NULL);
-		restore_flags(flags);
+		spin_unlock_irqrestore(&serial_lock, flags);
 
 		mod_timer(&serial_timer, jiffies + IRQ_timeout[0]);
 	}
@@ -730,7 +731,7 @@
 	if (!page)
 		return -ENOMEM;
 
-	save_flags(flags); cli();
+	spin_lock_irqsave(&serial_lock, flags);
 
 	if (info->flags & ASYNC_INITIALIZED) {
 		free_page(page);
@@ -890,11 +891,11 @@
 	change_speed(info, 0);
 
 	info->flags |= ASYNC_INITIALIZED;
-	restore_flags(flags);
+	spin_unlock_irqrestore(&serial_lock, flags);
 	return 0;
 
 errout:
-	restore_flags(flags);
+	spin_unlock_irqrestore(&serial_lock, flags);
 	return retval;
 }
 
@@ -918,7 +919,7 @@
 	       state->irq);
 #endif
 
-	save_flags(flags); cli(); /* Disable interrupts */
+	spin_lock_irqsave(&serial_lock, flags);
 
 	/*
 	 * clear delta_msr_wait queue to avoid mem leaks: we may free the irq
@@ -990,7 +991,7 @@
 	au_writel(0, UART_MOD_CNTRL + state->port);
 	au_sync_delay(10);
 #endif
-	restore_flags(flags);
+	spin_unlock_irqrestore(&serial_lock, flags);
 }
 
 
@@ -1041,7 +1042,7 @@
 	if (!baud) {
 		baud = 9600;	/* B0 transition handled in rs_set_termios */
 	}
-	baud_base = get_au1000_uart_baud_base();
+	baud_base = get_au1x00_uart_baud_base();
 
 	//if (baud == 38400 &&
 	if (((info->flags & ASYNC_SPD_MASK) == ASYNC_SPD_CUST)) {
@@ -1136,12 +1137,12 @@
 	 */
 	if ((cflag & CREAD) == 0)
 		info->ignore_status_mask |= UART_LSR_DR;
-	save_flags(flags); cli();
+	spin_lock_irqsave(&serial_lock, flags);
 
 	serial_outp(info, UART_CLK, quot & 0xffff);
 	serial_outp(info, UART_LCR, cval);
 	info->LCR = cval;				/* Save LCR */
-	restore_flags(flags);
+	spin_unlock_irqrestore(&serial_lock, flags);
 }
 
 static void rs_put_char(struct tty_struct *tty, unsigned char ch)
@@ -1155,17 +1156,17 @@
 	if (!tty || !info->xmit.buf)
 		return;
 
-	save_flags(flags); cli();
+	spin_lock_irqsave(&serial_lock, flags);
 	if (CIRC_SPACE(info->xmit.head,
 		       info->xmit.tail,
 		       SERIAL_XMIT_SIZE) == 0) {
-		restore_flags(flags);
+		spin_unlock_irqrestore(&serial_lock, flags);
 		return;
 	}
 
 	info->xmit.buf[info->xmit.head] = ch;
 	info->xmit.head = (info->xmit.head + 1) & (SERIAL_XMIT_SIZE-1);
-	restore_flags(flags);
+	spin_unlock_irqrestore(&serial_lock, flags);
 }
 
 static void rs_flush_chars(struct tty_struct *tty)
@@ -1182,10 +1183,10 @@
 	    || !info->xmit.buf)
 		return;
 
-	save_flags(flags); cli();
+	spin_lock_irqsave(&serial_lock, flags);
 	info->IER |= UART_IER_THRI;
 	serial_out(info, UART_IER, info->IER);
-	restore_flags(flags);
+	spin_unlock_irqrestore(&serial_lock, flags);
 }
 
 static int rs_write(struct tty_struct * tty, int from_user,
@@ -1201,7 +1202,7 @@
 	if (!tty || !info->xmit.buf || !tmp_buf)
 		return 0;
 
-	save_flags(flags);
+	spin_lock_irqsave(&serial_lock, flags);
 	if (from_user) {
 		down(&tmp_buf_sem);
 		while (1) {
@@ -1229,7 +1230,7 @@
 			memcpy(info->xmit.buf + info->xmit.head, tmp_buf, c);
 			info->xmit.head = ((info->xmit.head + c) &
 					   (SERIAL_XMIT_SIZE-1));
-			restore_flags(flags);
+			spin_unlock_irqrestore(&serial_lock, flags);
 			buf += c;
 			count -= c;
 			ret += c;
@@ -1253,7 +1254,7 @@
 			count -= c;
 			ret += c;
 		}
-		restore_flags(flags);
+		spin_unlock_irqrestore(&serial_lock, flags);
 	}
 	if (info->xmit.head != info->xmit.tail
 	    && !tty->stopped
@@ -1290,9 +1291,9 @@
 
 	if (serial_paranoia_check(info, tty->device, "rs_flush_buffer"))
 		return;
-	save_flags(flags); cli();
+	spin_lock_irqsave(&serial_lock, flags);
 	info->xmit.head = info->xmit.tail = 0;
-	restore_flags(flags);
+	spin_unlock_irqrestore(&serial_lock, flags);
 	wake_up_interruptible(&tty->write_wait);
 #ifdef SERIAL_HAVE_POLL_WAIT
 	wake_up_interruptible(&tty->poll_wait);
@@ -1349,9 +1350,9 @@
 	if (tty->termios->c_cflag & CRTSCTS)
 		info->MCR &= ~UART_MCR_RTS;
 
-	save_flags(flags); cli();
+	spin_lock_irqsave(&serial_lock, flags);
 	serial_out(info, UART_MCR, info->MCR);
-	restore_flags(flags);
+	spin_unlock_irqrestore(&serial_lock, flags);
 }
 
 static void rs_unthrottle(struct tty_struct * tty)
@@ -1376,9 +1377,9 @@
 	}
 	if (tty->termios->c_cflag & CRTSCTS)
 		info->MCR |= UART_MCR_RTS;
-	save_flags(flags); cli();
+	spin_lock_irqsave(&serial_lock, flags);
 	serial_out(info, UART_MCR, info->MCR);
-	restore_flags(flags);
+	spin_unlock_irqrestore(&serial_lock, flags);
 }
 
 /*
@@ -1562,9 +1563,9 @@
 	unsigned int result;
 	unsigned long flags;
 
-	save_flags(flags); cli();
+	spin_lock_irqsave(&serial_lock, flags);
 	status = serial_in(info, UART_LSR);
-	restore_flags(flags);
+	spin_unlock_irqrestore(&serial_lock, flags);
 	result = ((status & UART_LSR_TEMT) ? TIOCSER_TEMT : 0);
 
 	/*
@@ -1592,9 +1593,9 @@
 	unsigned long flags;
 
 	control = info->MCR;
-	save_flags(flags); cli();
+	spin_lock_irqsave(&serial_lock, flags);
 	status = serial_in(info, UART_MSR);
-	restore_flags(flags);
+	spin_unlock_irqrestore(&serial_lock, flags);
 	result =  ((control & UART_MCR_RTS) ? TIOCM_RTS : 0)
 		| ((control & UART_MCR_DTR) ? TIOCM_DTR : 0)
 #ifdef TIOCM_OUT1
@@ -1668,10 +1669,10 @@
 	default:
 		return -EINVAL;
 	}
-	save_flags(flags); cli();
+	spin_lock_irqsave(&serial_lock, flags);
 	info->MCR |= ALPHA_KLUDGE_MCR; 		/* Don't ask */
 	serial_out(info, UART_MCR, info->MCR);
-	restore_flags(flags);
+	spin_unlock_irqrestore(&serial_lock, flags);
 	return 0;
 }
 
@@ -1707,13 +1708,13 @@
 
 	if (!CONFIGURED_SERIAL_PORT(info))
 		return;
-	save_flags(flags); cli();
+	spin_lock_irqsave(&serial_lock, flags);
 	if (break_state == -1)
 		info->LCR |= UART_LCR_SBC;
 	else
 		info->LCR &= ~UART_LCR_SBC;
 	serial_out(info, UART_LCR, info->LCR);
-	restore_flags(flags);
+	spin_unlock_irqrestore(&serial_lock, flags);
 }
 
 
@@ -1768,10 +1769,10 @@
 		 * Caller should use TIOCGICOUNT to see which one it was
 		 */
 		case TIOCMIWAIT:
-			save_flags(flags); cli();
+			spin_lock_irqsave(&serial_lock, flags);
 			/* note the counters on entry */
 			cprev = info->state->icount;
-			restore_flags(flags);
+			spin_unlock_irqrestore(&serial_lock, flags);
 			/* Force modem status interrupts on */
 			info->IER |= UART_IER_MSI;
 			serial_out(info, UART_IER, info->IER);
@@ -1780,9 +1781,9 @@
 				/* see if a signal did it */
 				if (signal_pending(current))
 					return -ERESTARTSYS;
-				save_flags(flags); cli();
+				spin_lock_irqsave(&serial_lock, flags);
 				cnow = info->state->icount; /* atomic copy */
-				restore_flags(flags);
+				spin_unlock_irqrestore(&serial_lock, flags);
 				if (cnow.rng == cprev.rng && cnow.dsr == cprev.dsr &&
 				    cnow.dcd == cprev.dcd && cnow.cts == cprev.cts)
 					return -EIO; /* no change => error */
@@ -1803,9 +1804,9 @@
 		 *     RI where only 0->1 is counted.
 		 */
 		case TIOCGICOUNT:
-			save_flags(flags); cli();
+			spin_lock_irqsave(&serial_lock, flags);
 			cnow = info->state->icount;
-			restore_flags(flags);
+			spin_unlock_irqrestore(&serial_lock, flags);
 			icount.cts = cnow.cts;
 			icount.dsr = cnow.dsr;
 			icount.rng = cnow.rng;
@@ -1850,9 +1851,9 @@
 	if ((old_termios->c_cflag & CBAUD) &&
 	    !(cflag & CBAUD)) {
 		info->MCR &= ~(UART_MCR_DTR|UART_MCR_RTS);
-		save_flags(flags); cli();
+		spin_lock_irqsave(&serial_lock, flags);
 		serial_out(info, UART_MCR, info->MCR);
-		restore_flags(flags);
+		spin_unlock_irqrestore(&serial_lock, flags);
 	}
 
 	/* Handle transition away from B0 status */
@@ -1863,9 +1864,9 @@
 		    !test_bit(TTY_THROTTLED, &tty->flags)) {
 			info->MCR |= UART_MCR_RTS;
 		}
-		save_flags(flags); cli();
+		spin_lock_irqsave(&serial_lock, flags);
 		serial_out(info, UART_MCR, info->MCR);
-		restore_flags(flags);
+		spin_unlock_irqrestore(&serial_lock, flags);
 	}
 
 	/* Handle turning off CRTSCTS */
@@ -1897,12 +1898,12 @@
 
 	state = info->state;
 
-	save_flags(flags); cli();
+	spin_lock_irqsave(&serial_lock, flags);
 
 	if (tty_hung_up_p(filp)) {
 		DBG_CNT("before DEC-hung");
 		MOD_DEC_USE_COUNT;
-		restore_flags(flags);
+		spin_unlock_irqrestore(&serial_lock, flags);
 		return;
 	}
 
@@ -1929,11 +1930,11 @@
 	if (state->count) {
 		DBG_CNT("before DEC-2");
 		MOD_DEC_USE_COUNT;
-		restore_flags(flags);
+		spin_unlock_irqrestore(&serial_lock, flags);
 		return;
 	}
 	info->flags |= ASYNC_CLOSING;
-	restore_flags(flags);
+	spin_unlock_irqrestore(&serial_lock, flags);
 	/*
 	 * Save the termios structure, since this port may have
 	 * separate termios for callout and dialin.
@@ -2158,21 +2159,21 @@
 	printk("block_til_ready before block: ttys%d, count = %d\n",
 	       state->line, state->count);
 #endif
-	save_flags(flags); cli();
+	spin_lock_irqsave(&serial_lock, flags);
 	if (!tty_hung_up_p(filp)) {
 		extra_count = 1;
 		state->count--;
 	}
-	restore_flags(flags);
+	spin_unlock_irqrestore(&serial_lock, flags);
 	info->blocked_open++;
 	while (1) {
-		save_flags(flags); cli();
+		spin_lock_irqsave(&serial_lock, flags);
 		if (!(info->flags & ASYNC_CALLOUT_ACTIVE) &&
 		    (tty->termios->c_cflag & CBAUD))
 			serial_out(info, UART_MCR,
 				   serial_inp(info, UART_MCR) |
 				   (UART_MCR_DTR | UART_MCR_RTS));
-		restore_flags(flags);
+		spin_unlock_irqrestore(&serial_lock, flags);
 		set_current_state(TASK_INTERRUPTIBLE);
 		if (tty_hung_up_p(filp) ||
 		    !(info->flags & ASYNC_INITIALIZED)) {
@@ -2347,7 +2348,7 @@
 			*tty->termios = info->state->callout_termios;
 		change_speed(info, 0);
 	}
-#ifdef CONFIG_AU1000_SERIAL_CONSOLE
+#ifdef CONFIG_AU1X00_SERIAL_CONSOLE
 	if (sercons.cflag && sercons.index == line) {
 		tty->termios->c_cflag = sercons.cflag;
 		sercons.cflag = 0;
@@ -2395,10 +2396,10 @@
 		info->quot = 0;
 		info->tty = 0;
 	}
-	save_flags(flags); cli();
+	spin_lock_irqsave(&serial_lock, flags);
 	status = serial_in(info, UART_MSR);
 	control = info != &scr_info ? info->MCR : serial_in(info, UART_MCR);
-	restore_flags(flags);
+	spin_unlock_irqrestore(&serial_lock, flags);
 
 	stat_buf[0] = 0;
 	stat_buf[1] = 0;
@@ -2531,7 +2532,7 @@
 	info->iomem_reg_shift = state->iomem_reg_shift;
 
 
-	save_flags(flags); cli();
+	spin_lock_irqsave(&serial_lock, flags);
 	state->xmit_fifo_size =	uart_config[state->type].dfl_xmit_fifo_size;
 
 	if (info->port) {
@@ -2547,7 +2548,7 @@
 	serial_outp(info, UART_FCR, 0);
 	(void)serial_in(info, UART_RX);
 	serial_outp(info, UART_IER, 0);
-	restore_flags(flags);
+	spin_unlock_irqrestore(&serial_lock, flags);
 }
 
 int register_serial(struct serial_struct *req);
@@ -2574,7 +2575,7 @@
 		IRQ_ports[i] = 0;
 		IRQ_timeout[i] = 0;
 	}
-#ifdef CONFIG_AU1000_SERIAL_CONSOLE
+#ifdef CONFIG_AU1X00_SERIAL_CONSOLE
 	/*
 	 *	The interrupt of the serial console port
 	 *	can't be shared.
@@ -2653,7 +2654,7 @@
 		panic("Couldn't register callout driver");
 
 	for (i = 0, state = rs_table; i < NR_PORTS; i++,state++) {
-		state->baud_base = get_au1000_uart_baud_base();
+		state->baud_base = get_au1x00_uart_baud_base();
 		state->magic = SSTATE_MAGIC;
 		state->line = i;
 		state->type = PORT_UNKNOWN;
@@ -2726,7 +2727,7 @@
 	if (HIGH_BITS_OFFSET)
 		port += (unsigned long) req->port_high << HIGH_BITS_OFFSET;
 
-	save_flags(flags); cli();
+	spin_lock_irqsave(&serial_lock, flags);
 	for (i = 0; i < NR_PORTS; i++) {
 		if ((rs_table[i].port == port) &&
 		    (rs_table[i].iomem_base == req->iomem_base))
@@ -2739,12 +2740,12 @@
 				break;
 	}
 	if (i == NR_PORTS) {
-		restore_flags(flags);
+		spin_unlock_irqrestore(&serial_lock, flags);
 		return -1;
 	}
 	state = &rs_table[i];
 	if (rs_table[i].count) {
-		restore_flags(flags);
+		spin_unlock_irqrestore(&serial_lock, flags);
 		printk("Couldn't configure serial #%d (port=%ld,irq=%d): "
 		       "device already open\n", i, port, req->irq);
 		return -1;
@@ -2766,11 +2767,11 @@
 	}
 	autoconfig(state);
 	if (state->type == PORT_UNKNOWN) {
-		restore_flags(flags);
+		spin_unlock_irqrestore(&serial_lock, flags);
 		printk("register_serial(): autoconfig failed\n");
 		return -1;
 	}
-	restore_flags(flags);
+	spin_unlock_irqrestore(&serial_lock, flags);
 
        printk(KERN_INFO "ttyS%02d at %s 0x%04lx (irq = %d) is a %s\n",
 	      state->line + SERIAL_DEV_OFFSET,
@@ -2798,7 +2799,7 @@
 	unsigned long flags;
 	struct serial_state *state = &rs_table[line];
 
-	save_flags(flags); cli();
+	spin_lock_irqsave(&serial_lock, flags);
 	if (state->info && state->info->tty)
 		tty_hangup(state->info->tty);
 	state->type = PORT_UNKNOWN;
@@ -2810,7 +2811,7 @@
 			     serial_driver.minor_start + state->line);
 	tty_unregister_devfs(&callout_driver,
 			     callout_driver.minor_start + state->line);
-	restore_flags(flags);
+	spin_unlock_irqrestore(&serial_lock, flags);
 }
 
 static void __exit rs_fini(void)
@@ -2822,7 +2823,7 @@
 
 	/* printk("Unloading %s: version %s\n", serial_name, serial_version); */
 	del_timer_sync(&serial_timer);
-	save_flags(flags); cli();
+	spin_lock_irqsave(&serial_lock, flags);
         remove_bh(SERIAL_BH);
 	if ((e1 = tty_unregister_driver(&serial_driver)))
 		printk("serial: failed to unregister serial driver (%d)\n",
@@ -2830,7 +2831,7 @@
 	if ((e2 = tty_unregister_driver(&callout_driver)))
 		printk("serial: failed to unregister callout driver (%d)\n",
 		       e2);
-	restore_flags(flags);
+	spin_unlock_irqrestore(&serial_lock, flags);
 
 	for (i = 0; i < NR_PORTS; i++) {
 		if ((info = rs_table[i].info)) {
@@ -2850,7 +2851,7 @@
 
 module_init(rs_init);
 module_exit(rs_fini);
-MODULE_DESCRIPTION("Au1000 serial driver");
+MODULE_DESCRIPTION("Au1x00 serial driver");
 
 
 /*
@@ -2858,7 +2859,7 @@
  * Serial console driver
  * ------------------------------------------------------------
  */
-#ifdef CONFIG_AU1000_SERIAL_CONSOLE
+#ifdef CONFIG_AU1X00_SERIAL_CONSOLE
 
 #define BOTH_EMPTY (UART_LSR_TEMT | UART_LSR_THRE)
 
@@ -2927,6 +2928,35 @@
 	serial_out(info, UART_IER, ier);
 }
 
+/*
+ *	Receive character from the serial port
+ */
+static int serial_console_wait_key(struct console *co)
+{
+	static struct async_struct *info;
+	int ier, c;
+
+	info = &async_sercons;
+
+	/*
+	 *	First save the IER then disable the interrupts so
+	 *	that the real driver for the port does not get the
+	 *	character.
+	 */
+	ier = serial_in(info, UART_IER);
+	serial_out(info, UART_IER, 0x00);
+ 
+	while ((serial_in(info, UART_LSR) & UART_LSR_DR) == 0);
+	c = serial_in(info, UART_RX);
+
+	/*
+	 *	Restore the interrupts
+	 */
+	serial_out(info, UART_IER, ier);
+
+	return c;
+}
+
 static kdev_t serial_console_device(struct console *c)
 {
 	return MKDEV(TTY_MAJOR, 64 + c->index);
@@ -3020,7 +3050,7 @@
 	info->io_type = state->io_type;
 	info->iomem_base = state->iomem_base;
 	info->iomem_reg_shift = state->iomem_reg_shift;
-	state->baud_base = get_au1000_uart_baud_base();
+	state->baud_base = get_au1x00_uart_baud_base();
 	quot = state->baud_base / baud;
 
 	cval = cflag & (CSIZE | CSTOPB);
@@ -3048,18 +3078,18 @@
 }
 
 static struct console sercons = {
-	name:		"ttyS",
-	write:		serial_console_write,
-	device:		serial_console_device,
-	setup:		serial_console_setup,
-	flags:		CON_PRINTBUFFER,
-	index:		-1,
+	.name		= "ttyS",
+	.write		= serial_console_write,
+	.device		= serial_console_device,
+	.setup		= serial_console_setup,
+	.flags		= CON_PRINTBUFFER,
+	.index		= -1,
 };
 
 /*
  *	Register console.
  */
-void __init au1000_serial_console_init(void)
+void __init au1x00_serial_console_init(void)
 {
 	register_console(&sercons);
 }
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/common/time.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/time.c
--- linux-2.4.20/arch/mips/au1000/common/time.c	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/time.c	2002-12-11 00:12:29.000000000 -0600
@@ -45,7 +45,7 @@
 #include <linux/timex.h>
 
 extern void startup_match20_interrupt(void);
-
+extern void do_softirq(void);
 extern volatile unsigned long wall_jiffies;
 unsigned long missed_heart_beats = 0;
 
@@ -63,9 +63,11 @@
 static unsigned long last_pc0, last_match20;
 #endif
 
+static spinlock_t time_lock = SPIN_LOCK_UNLOCKED;
+
 static inline void ack_r4ktimer(unsigned long newval)
 {
-	write_32bit_cp0_register(CP0_COMPARE, newval);
+	write_c0_compare(newval);
 }
 
 /*
@@ -93,7 +95,7 @@
 		goto null;
 
 	do {
-		count = read_32bit_cp0_register(CP0_COUNT);
+		count = read_c0_count();
 		timerhi += (count < timerlo);   /* Wrap around */
 		timerlo = count;
 
@@ -102,7 +104,7 @@
 		r4k_cur += r4k_offset;
 		ack_r4ktimer(r4k_cur);
 
-	} while (((unsigned long)read_32bit_cp0_register(CP0_COUNT)
+	} while (((unsigned long)read_c0_count()
 	         - r4k_cur) < 0x7fffffff);
 
 	irq_exit(cpu, irq);
@@ -174,7 +176,7 @@
 	int trim_divide = 16;
 	unsigned long flags;
 
-	save_and_cli(flags);
+	spin_lock_irqsave(&time_lock, flags);
 
 	counter = au_readl(SYS_COUNTER_CNTRL);
 	au_writel(counter | SYS_CNTRL_EN1, SYS_COUNTER_CNTRL);
@@ -193,16 +195,16 @@
 	while (au_readl(SYS_RTCREAD) < start);
 
 	/* Start r4k counter. */
-	write_32bit_cp0_register(CP0_COUNT, 0);
+	write_c0_count(0);
 	end = start + (32768 / trim_divide)/2; /* wait 0.5 seconds */
 
 	while (end > au_readl(SYS_RTCREAD));
 
-	count = read_32bit_cp0_register(CP0_COUNT);
+	count = read_c0_count();
 	cpu_speed = count * 2;
 	mips_counter_frequency = count;
-	set_au1000_uart_baud_base(((cpu_speed) / 4) / 16);
-	restore_flags(flags);
+	set_au1x00_uart_baud_base(((cpu_speed) / 4) / 16);
+	spin_unlock_irqrestore(&time_lock, flags);
 	return (cpu_speed / HZ);
 }
 
@@ -221,11 +223,11 @@
 	est_freq -= est_freq%10000;
 	printk("CPU frequency %d.%02d MHz\n", est_freq/1000000,
 	       (est_freq%1000000)*100/1000000);
-	set_au1000_speed(est_freq);
-	set_au1000_lcd_clock(); // program the LCD clock
-	r4k_cur = (read_32bit_cp0_register(CP0_COUNT) + r4k_offset);
+ 	set_au1x00_speed(est_freq);
+ 	set_au1x00_lcd_clock(); // program the LCD clock
+	r4k_cur = (read_c0_count() + r4k_offset);
 
-	write_32bit_cp0_register(CP0_COMPARE, r4k_cur);
+	write_c0_compare(r4k_cur);
 
 	/* no RTC on the pb1000 */
 	xtime.tv_sec = 0;
@@ -258,7 +260,7 @@
 	startup_match20_interrupt();
 #endif
 
-	//set_cp0_status(ALLINTS);
+	//set_c0_status(ALLINTS);
 	au_sync();
 }
 
@@ -266,7 +268,7 @@
 #define USECS_PER_JIFFY (1000000/HZ)
 #define USECS_PER_JIFFY_FRAC (0x100000000*1000000/HZ&0xffffffff)
 
-
+#ifndef CONFIG_PM
 static unsigned long
 div64_32(unsigned long v1, unsigned long v2, unsigned long v3)
 {
@@ -274,7 +276,7 @@
 	do_div64_32(r0, v1, v2, v3);
 	return r0;
 }
-
+#endif
 
 static unsigned long do_fast_gettimeoffset(void)
 {
@@ -326,7 +328,7 @@
 	}
 
 	/* Get last timer tick in absolute kernel time */
-	count = read_32bit_cp0_register(CP0_COUNT);
+	count = read_c0_count();
 
 	/* .. relative to previous jiffy (32 bits is enough) */
 	count -= timerlo;
@@ -376,7 +378,7 @@
 	write_lock_irq (&xtime_lock);
 
 	/* This is revolting. We need to set the xtime.tv_usec correctly.
-	 * However, the value in this location is is value at the last tick.
+	 * However, the value in this location is value at the last tick.
 	 * Discover what correction gettimeofday would have done, and then
 	 * undo it!
 	 */
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/common/usbdev.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/usbdev.c
--- linux-2.4.20/arch/mips/au1000/common/usbdev.c	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/usbdev.c	2002-12-11 00:12:29.000000000 -0600
@@ -199,7 +199,7 @@
 
 #if 0
 static void
-dump_setup(devrequest* s)
+dump_setup(struct usb_ctrlrequest* s)
 {
 	dbg(__FUNCTION__ ": requesttype=%d", s->requesttype);
 	dbg(__FUNCTION__ ": request=%d %s", s->request,
@@ -635,9 +635,9 @@
  */
 
 static ep0_stage_t
-do_get_status(struct usb_dev* dev, devrequest* setup)
+do_get_status(struct usb_dev* dev, struct usb_ctrlrequest* setup)
 {
-	switch (setup->requesttype) {
+	switch (setup->bRequestType) {
 	case 0x80:	// Device
 		// FIXME: send device status
 		break;
@@ -657,9 +657,9 @@
 }
 
 static ep0_stage_t
-do_clear_feature(struct usb_dev* dev, devrequest* setup)
+do_clear_feature(struct usb_dev* dev, struct usb_ctrlrequest* setup)
 {
-	switch (setup->requesttype) {
+	switch (setup->bRequestType) {
 	case 0x00:	// Device
 		if ((le16_to_cpu(setup->wValue) & 0xff) == 1)
 			dev->remote_wakeup_en = 0;
@@ -670,7 +670,7 @@
 		if ((le16_to_cpu(setup->wValue) & 0xff) == 0) {
 			endpoint_t *ep =
 				epaddr_to_ep(dev,
-					     le16_to_cpu(setup->index) & 0xff);
+					     le16_to_cpu(setup->wIndex) & 0xff);
 
 			endpoint_unstall(ep);
 			endpoint_reset_datatoggle(ep);
@@ -683,7 +683,7 @@
 }
 
 static ep0_stage_t
-do_reserved(struct usb_dev* dev, devrequest* setup)
+do_reserved(struct usb_dev* dev, struct usb_ctrlrequest* setup)
 {
 	// Invalid request, stall End Point 0
 	endpoint_stall(&dev->ep[0]);
@@ -691,9 +691,9 @@
 }
 
 static ep0_stage_t
-do_set_feature(struct usb_dev* dev, devrequest* setup)
+do_set_feature(struct usb_dev* dev, struct usb_ctrlrequest* setup)
 {
-	switch (setup->requesttype) {
+	switch (setup->bRequestType) {
 	case 0x00:	// Device
 		if ((le16_to_cpu(setup->wValue) & 0xff) == 1)
 			dev->remote_wakeup_en = 1;
@@ -701,10 +701,10 @@
 			endpoint_stall(&dev->ep[0]);
 		break;
 	case 0x02:	// End Point
-		if ((le16_to_cpu(setup->vwValue) & 0xff) == 0) {
+		if ((le16_to_cpu(setup->wValue) & 0xff) == 0) {
 			endpoint_t *ep =
 				epaddr_to_ep(dev,
-					     le16_to_cpu(setup->index) & 0xff);
+					     le16_to_cpu(setup->wIndex) & 0xff);
 
 			endpoint_stall(ep);
 		} else
@@ -716,7 +716,7 @@
 }
 
 static ep0_stage_t
-do_set_address(struct usb_dev* dev, devrequest* setup)
+do_set_address(struct usb_dev* dev, struct usb_ctrlrequest* setup)
 {
 	int new_state = dev->state;
 	int new_addr = le16_to_cpu(setup->wValue);
@@ -743,9 +743,9 @@
 }
 
 static ep0_stage_t
-do_get_descriptor(struct usb_dev* dev, devrequest* setup)
+do_get_descriptor(struct usb_dev* dev, struct usb_ctrlrequest* setup)
 {
-	int strnum, desc_len = le16_to_cpu(setup->length);
+	int strnum, desc_len = le16_to_cpu(setup->wLength);
 
 		switch (le16_to_cpu(setup->wValue) >> 8) {
 		case USB_DT_DEVICE:
@@ -812,7 +812,7 @@
 }
 
 static ep0_stage_t
-do_set_descriptor(struct usb_dev* dev, devrequest* setup)
+do_set_descriptor(struct usb_dev* dev, struct usb_ctrlrequest* setup)
 {
 	// TODO: implement
 	// there will be an OUT data stage (the descriptor to set)
@@ -820,7 +820,7 @@
 }
 
 static ep0_stage_t
-do_get_configuration(struct usb_dev* dev, devrequest* setup)
+do_get_configuration(struct usb_dev* dev, struct usb_ctrlrequest* setup)
 {
 	// send dev->configuration
 	dbg("sending config");
@@ -830,7 +830,7 @@
 }
 
 static ep0_stage_t
-do_set_configuration(struct usb_dev* dev, devrequest* setup)
+do_set_configuration(struct usb_dev* dev, struct usb_ctrlrequest* setup)
 {
 	// set active config to low-byte of setup->wValue
 	dev->configuration = le16_to_cpu(setup->wValue) & 0xff;
@@ -851,10 +851,10 @@
 }
 
 static ep0_stage_t
-do_get_interface(struct usb_dev* dev, devrequest* setup)
+do_get_interface(struct usb_dev* dev, struct usb_ctrlrequest* setup)
 {
 		// interface must be zero.
-	if ((le16_to_cpu(setup->index) & 0xff) || dev->state == ADDRESS) {
+	if ((le16_to_cpu(setup->wIndex) & 0xff) || dev->state == ADDRESS) {
 			// FIXME: respond with "request error". how?
 	} else if (dev->state == CONFIGURED) {
 		// send dev->alternate_setting
@@ -868,12 +868,12 @@
 }
 
 static ep0_stage_t
-do_set_interface(struct usb_dev* dev, devrequest* setup)
+do_set_interface(struct usb_dev* dev, struct usb_ctrlrequest* setup)
 {
 	if (dev->state == ADDRESS) {
 			// FIXME: respond with "request error". how?
 	} else if (dev->state == CONFIGURED) {
-		dev->interface = le16_to_cpu(setup->index) & 0xff;
+		dev->interface = le16_to_cpu(setup->wIndex) & 0xff;
 		dev->alternate_setting =
 			    le16_to_cpu(setup->wValue) & 0xff;
 			// interface and alternate_setting must be zero
@@ -886,14 +886,14 @@
 }
 
 static ep0_stage_t
-do_synch_frame(struct usb_dev* dev, devrequest* setup)
+do_synch_frame(struct usb_dev* dev, struct usb_ctrlrequest* setup)
 {
 	// TODO
 	return SETUP_STAGE;
 }
 
 typedef ep0_stage_t (*req_method_t)(struct usb_dev* dev,
-				    devrequest* setup);
+				    struct usb_ctrlrequest* setup);
 
 
 /* Table of the standard device request handlers */
@@ -916,25 +916,25 @@
 
 // SETUP packet request dispatcher
 static void
-do_setup (struct usb_dev* dev, devrequest* setup)
+do_setup (struct usb_dev* dev, struct usb_ctrlrequest* setup)
 {
 	req_method_t m;
 
-	dbg(__FUNCTION__ ": req %d %s", setup->request,
-	    get_std_req_name(setup->request));
+	dbg(__FUNCTION__ ": req %d %s", setup->bRequestType,
+	    get_std_req_name(setup->bRequestType));
 
-	if ((setup->requesttype & USB_TYPE_MASK) != USB_TYPE_STANDARD ||
-	    (setup->requesttype & USB_RECIP_MASK) != USB_RECIP_DEVICE) {
+	if ((setup->bRequestType & USB_TYPE_MASK) != USB_TYPE_STANDARD ||
+	    (setup->bRequestType & USB_RECIP_MASK) != USB_RECIP_DEVICE) {
 		err(__FUNCTION__ ": invalid requesttype 0x%02x",
-		    setup->requesttype);
+		    setup->bRequestType);
 		return;
 		}
 
-	if ((setup->requesttype & 0x80) == USB_DIR_OUT && setup->length)
-		dbg(__FUNCTION__ ": OUT phase! length=%d", setup->length);
+	if ((setup->bRequestType & 0x80) == USB_DIR_OUT && setup->wLength)
+		dbg(__FUNCTION__ ": OUT phase! length=%d", setup->wLength);
 
-	if (setup->request < sizeof(req_method)/sizeof(req_method_t))
-		m = req_method[setup->request];
+	if (setup->bRequestType < sizeof(req_method)/sizeof(req_method_t))
+		m = req_method[setup->bRequestType];
 			else
 		m = do_reserved;
 
@@ -973,14 +973,14 @@
 		vdbg("SU bit is %s in setup stage",
 		     (pkt->status & PKT_STATUS_SU) ? "set" : "not set");
 
-			if (pkt->size == sizeof(devrequest)) {
+			if (pkt->size == sizeof(struct usb_ctrlrequest)) {
 #ifdef VDEBUG
 			if (pkt->status & PKT_STATUS_ACK)
 				vdbg("received SETUP");
 				else
 				vdbg("received NAK SETUP");
 #endif
-			do_setup(dev, (devrequest*)pkt->payload);
+			do_setup(dev, (struct usb_ctrlrequest*)pkt->payload);
 		} else
 			err(__FUNCTION__ ": wrong size SETUP received");
 		break;
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/au1000/CVS/Entries
--- linux-2.4.20/arch/mips/au1000/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/CVS/Entries	2005-01-06 23:08:21.000000000 -0600
@@ -0,0 +1,5 @@
+D/common////
+D/db1x00////
+D/pb1000////
+D/pb1100////
+D/pb1500////
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/au1000/CVS/Repository
--- linux-2.4.20/arch/mips/au1000/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/CVS/Repository	2005-01-06 22:59:59.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/au1000
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/au1000/CVS/Root
--- linux-2.4.20/arch/mips/au1000/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/CVS/Root	2005-01-06 22:59:59.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/au1000/CVS/Tag
--- linux-2.4.20/arch/mips/au1000/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/CVS/Tag	2005-01-06 22:59:59.000000000 -0600
@@ -0,0 +1 @@
+Tlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/db1x00/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/CVS/Entries
--- linux-2.4.20/arch/mips/au1000/db1x00/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/CVS/Entries	2005-01-06 23:00:00.000000000 -0600
@@ -0,0 +1,6 @@
+/Makefile/1.1.2.1/Wed Dec 11 06:12:29 2002/-ko/Tlinux_2_4_20
+/init.c/1.1.2.1/Wed Dec 11 06:12:29 2002/-ko/Tlinux_2_4_20
+/pci_fixup.c/1.1.2.2/Mon Dec 16 18:00:48 2002//Tlinux_2_4_20
+/pci_ops.c/1.1.2.1/Wed Dec 11 06:12:29 2002//Tlinux_2_4_20
+/setup.c/1.1.2.3/Tue Jan  7 10:41:30 2003//Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/db1x00/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/CVS/Repository
--- linux-2.4.20/arch/mips/au1000/db1x00/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/CVS/Repository	2005-01-06 23:00:00.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/au1000/db1x00
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/db1x00/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/CVS/Root
--- linux-2.4.20/arch/mips/au1000/db1x00/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/CVS/Root	2005-01-06 23:00:00.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/db1x00/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/CVS/Tag
--- linux-2.4.20/arch/mips/au1000/db1x00/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/CVS/Tag	2005-01-06 23:00:00.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/db1x00/init.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/init.c
--- linux-2.4.20/arch/mips/au1000/db1x00/init.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/init.c	2002-12-11 00:12:29.000000000 -0600
@@ -0,0 +1,73 @@
+/*
+ *
+ * BRIEF MODULE DESCRIPTION
+ *	PB1000 board setup
+ *
+ * Copyright 2001 MontaVista Software Inc.
+ * Author: MontaVista Software, Inc.
+ *         	ppopov@mvista.com or source@mvista.com
+ *
+ *  This program is free software; you can redistribute  it and/or modify it
+ *  under  the terms of  the GNU General  Public License as published by the
+ *  Free Software Foundation;  either version 2 of the  License, or (at your
+ *  option) any later version.
+ *
+ *  THIS  SOFTWARE  IS PROVIDED   ``AS  IS'' AND   ANY  EXPRESS OR IMPLIED
+ *  WARRANTIES,   INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
+ *  NO  EVENT  SHALL   THE AUTHOR  BE    LIABLE FOR ANY   DIRECT, INDIRECT,
+ *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ *  NOT LIMITED   TO, PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS OF
+ *  USE, DATA,  OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ *  ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *  You should have received a copy of the  GNU General Public License along
+ *  with this program; if not, write  to the Free Software Foundation, Inc.,
+ *  675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <linux/init.h>
+#include <linux/mm.h>
+#include <linux/sched.h>
+#include <linux/bootmem.h>
+#include <asm/addrspace.h>
+#include <asm/bootinfo.h>
+#include <linux/config.h>
+#include <linux/string.h>
+#include <linux/kernel.h>
+#include <linux/sched.h>
+
+int prom_argc;
+char **prom_argv, **prom_envp;
+extern void  __init prom_init_cmdline(void);
+extern char *prom_getenv(char *envname);
+
+const char *get_system_type(void)
+{
+	return "Alchemy Db1000";
+}
+
+int __init prom_init(int argc, char **argv, char **envp, int *prom_vec)
+{
+	unsigned char *memsize_str;
+	unsigned long memsize;
+
+	prom_argc = argc;
+	prom_argv = argv;
+	prom_envp = envp;
+
+	mips_machgroup = MACH_GROUP_ALCHEMY;
+	mips_machtype = MACH_DB1000;	/* set the platform # */   
+	prom_init_cmdline();
+
+	memsize_str = prom_getenv("memsize");
+	if (!memsize_str) {
+		memsize = 0x04000000;
+	} else {
+		memsize = simple_strtol(memsize_str, NULL, 0);
+	}
+	add_memory_region(0, memsize, BOOT_MEM_RAM);
+	return 0;
+}
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/db1x00/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/Makefile
--- linux-2.4.20/arch/mips/au1000/db1x00/Makefile	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/Makefile	2002-12-11 00:12:29.000000000 -0600
@@ -0,0 +1,24 @@
+#
+#  Copyright 2000 MontaVista Software Inc.
+#  Author: MontaVista Software, Inc.
+#     	ppopov@mvista.com or source@mvista.com
+#
+# Makefile for the Alchemy Semiconductor PB1000 board.
+#
+# Note! Dependencies are done automagically by 'make dep', which also
+# removes any old dependencies. DON'T put your own dependencies here
+# unless it's something special (ie not a .c file).
+#
+
+.S.s:
+	$(CPP) $(CFLAGS) $< -o $*.s
+.S.o:
+	$(CC) $(CFLAGS) -c $< -o $*.o
+
+O_TARGET := db1x00.o
+
+obj-y := init.o setup.o
+
+obj-$(CONFIG_PCI) += pci_fixup.o pci_ops.o
+
+include $(TOPDIR)/Rules.make
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/db1x00/pci_fixup.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/pci_fixup.c
--- linux-2.4.20/arch/mips/au1000/db1x00/pci_fixup.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/pci_fixup.c	2002-12-16 12:00:48.000000000 -0600
@@ -0,0 +1,107 @@
+/*
+ * BRIEF MODULE DESCRIPTION
+ *	Board specific pci fixups.
+ *
+ * Copyright 2001,2002 MontaVista Software Inc.
+ * Author: MontaVista Software, Inc.
+ *         	ppopov@mvista.com or source@mvista.com
+ *
+ *  This program is free software; you can redistribute  it and/or modify it
+ *  under  the terms of  the GNU General  Public License as published by the
+ *  Free Software Foundation;  either version 2 of the  License, or (at your
+ *  option) any later version.
+ *
+ *  THIS  SOFTWARE  IS PROVIDED   ``AS  IS'' AND   ANY  EXPRESS OR IMPLIED
+ *  WARRANTIES,   INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
+ *  NO  EVENT  SHALL   THE AUTHOR  BE    LIABLE FOR ANY   DIRECT, INDIRECT,
+ *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ *  NOT LIMITED   TO, PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS OF
+ *  USE, DATA,  OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ *  ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *  You should have received a copy of the  GNU General Public License along
+ *  with this program; if not, write  to the Free Software Foundation, Inc.,
+ *  675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+#include <linux/config.h>
+
+#ifdef CONFIG_PCI
+
+#include <linux/types.h>
+#include <linux/pci.h>
+#include <linux/kernel.h>
+#include <linux/init.h>
+
+#include <asm/au1000.h>
+#include <asm/pb1500.h>
+
+#undef	DEBUG
+#ifdef 	DEBUG
+#define	DBG(x...)	printk(x)
+#else
+#define	DBG(x...)	
+#endif
+
+static void fixup_resource(int r_num, struct pci_dev *dev) ;
+static unsigned long virt_io_addr;
+
+void __init pcibios_fixup_resources(struct pci_dev *dev)
+{
+	/* will need to fixup IO resources */
+}
+
+void __init pcibios_fixup(void)
+{
+#ifdef CONFIG_CPU_AU1500
+	int i;
+	struct pci_dev *dev;
+	
+	virt_io_addr = (unsigned long)ioremap(Au1500_PCI_IO_START, 
+			Au1500_PCI_IO_END - Au1500_PCI_IO_START + 1);
+
+	if (!virt_io_addr) {
+		printk(KERN_ERR "Unable to ioremap pci space\n");
+		return;
+	}
+
+	set_io_port_base(virt_io_addr);
+#endif // CONFIG_CPU_AU1500
+}
+
+void __init pcibios_fixup_irqs(void)
+{
+#ifdef CONFIG_CPU_AU1500
+	unsigned int slot, func;
+	unsigned char pin;
+	struct pci_dev *dev;
+
+	pci_for_each_dev(dev) {
+		if (dev->bus->number != 0)
+			return;
+
+		dev->irq = 0xff;
+		slot = PCI_SLOT(dev->devfn);
+		switch (slot) {
+			case 12:
+			case 13:
+				dev->irq = AU1000_PCI_INTA;
+				break;
+
+		}
+		pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq);
+		DBG("slot %d irq %d\n", slot, dev->irq);
+	}
+#endif // CONFIG_CPU_AU1500
+}
+unsigned int pcibios_assign_all_busses(void)
+{
+	return 0;
+}
+
+static void fixup_resource(int r_num, struct pci_dev *dev) 
+{
+}
+#endif
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/db1x00/pci_ops.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/pci_ops.c
--- linux-2.4.20/arch/mips/au1000/db1x00/pci_ops.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/pci_ops.c	2002-12-11 00:12:29.000000000 -0600
@@ -0,0 +1,251 @@
+/*
+ * BRIEF MODULE DESCRIPTION
+ *	Pb1500 specific pci support.
+ *
+ * Copyright 2001,2002 MontaVista Software Inc.
+ * Author: MontaVista Software, Inc.
+ *         	ppopov@mvista.com or source@mvista.com
+ *
+ *  This program is free software; you can redistribute  it and/or modify it
+ *  under  the terms of  the GNU General  Public License as published by the
+ *  Free Software Foundation;  either version 2 of the  License, or (at your
+ *  option) any later version.
+ *
+ *  THIS  SOFTWARE  IS PROVIDED   ``AS  IS'' AND   ANY  EXPRESS OR IMPLIED
+ *  WARRANTIES,   INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
+ *  NO  EVENT  SHALL   THE AUTHOR  BE    LIABLE FOR ANY   DIRECT, INDIRECT,
+ *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ *  NOT LIMITED   TO, PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS OF
+ *  USE, DATA,  OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ *  ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *  You should have received a copy of the  GNU General Public License along
+ *  with this program; if not, write  to the Free Software Foundation, Inc.,
+ *  675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+#include <linux/config.h>
+
+#ifdef CONFIG_PCI
+
+#include <linux/types.h>
+#include <linux/pci.h>
+#include <linux/kernel.h>
+#include <linux/init.h>
+
+#include <asm/au1000.h>
+#include <asm/pb1500.h>
+#include <asm/pci_channel.h>
+
+#define PCI_ACCESS_READ  0
+#define PCI_ACCESS_WRITE 1
+
+#undef DEBUG
+#ifdef 	DEBUG
+#define	DBG(x...)	printk(x)
+#else
+#define	DBG(x...)	
+#endif
+
+#ifndef CONFIG_CPU_AU1500
+struct pci_channel mips_pci_channels[] = {
+    {(struct pci_ops *) NULL, (struct resource *) NULL,
+     (struct resource *) NULL, (int) NULL, (int) NULL}
+};
+#else
+
+/* TBD */
+static struct resource pci_io_resource = {
+	"pci IO space", 
+	Au1500_PCI_IO_START,
+	Au1500_PCI_IO_END,
+	IORESOURCE_IO
+};
+
+static struct resource pci_mem_resource = {
+	"pci memory space", 
+	Au1500_PCI_MEM_START,
+	Au1500_PCI_MEM_END,
+	IORESOURCE_MEM
+};
+
+extern struct pci_ops pb1500_pci_ops;
+
+struct pci_channel mips_pci_channels[] = {
+	{&pb1500_pci_ops, &pci_io_resource, &pci_mem_resource, (10<<3),(16<<3)},
+	{(struct pci_ops *) NULL, (struct resource *) NULL,
+	 (struct resource *) NULL, (int) NULL, (int) NULL}
+};
+
+static unsigned long cfg_addr;
+static int config_access(unsigned char access_type, struct pci_dev *dev, 
+			 unsigned char where, u32 * data)
+{
+	unsigned char bus = dev->bus->number;
+	unsigned int dev_fn = dev->devfn;
+	unsigned int device, function;
+	unsigned long config, status;
+	static int first = 1;
+
+	/* 
+ 	 * 7:3 = slot
+ 	 * 2:0 = function
+	 */
+
+	if (bus != 0) {
+		*data = 0xffffffff;
+		return -1;
+	}
+
+	if (first) {
+		first = 0;
+		cfg_addr = ioremap(Au1500_EXT_CFG, 0x10000000);
+		if (!cfg_addr) 
+			printk (KERN_ERR "PCI unable to ioremap cfg space\n");
+	}
+
+	device = (dev_fn >> 3) & 0x1f;
+	function = dev_fn & 0x7;
+
+#if 1
+	//if (!cfg_addr || (device < 10) || (device > 16)) {
+	if (!cfg_addr || (device > 16)) {
+		*data = 0xffffffff;
+		return -1;
+	}
+#endif
+
+	au_writel(((0x2000 << 16) | (au_readl(Au1500_PCI_STATCMD) & 0xffff)),
+			Au1500_PCI_STATCMD);
+	//au_writel(au_readl(Au1500_PCI_CFG) & ~PCI_ERROR, Au1500_PCI_CFG);
+	au_sync_udelay(1);
+
+	/* setup the lower 31 bits of the 36 bit address */
+	config = cfg_addr | 
+		((1<<device)<<11) | (function << 8) | (where & ~0x3);
+
+#if 0
+	printk("cfg access: config %x, dev_fn %x, device %x function %x\n",
+			config, dev_fn, device, function);
+#endif
+
+	if (access_type == PCI_ACCESS_WRITE) {
+		au_writel(*data, config);
+	} else {
+		*data = au_readl(config);
+	}
+	au_sync_udelay(1);
+
+	DBG("config_access: %d bus %d device %d at %x *data %x, conf %x\n", 
+			access_type, bus, device, where, *data, config);
+
+	/* check master abort */
+	status = au_readl(Au1500_PCI_STATCMD);
+	if (status & (1<<29)) { 
+		*data = 0xffffffff;
+		return -1;
+	} else if ((status >> 28) & 0xf) {
+		DBG("PCI ERR detected: status %x\n", status);
+		*data = 0xffffffff;
+		return -1;
+	}
+	else {
+		return PCIBIOS_SUCCESSFUL;
+	}
+}
+
+
+static int read_config_byte(struct pci_dev *dev, int where, u8 * val)
+{
+	u32 data;
+	int ret;
+
+	ret = config_access(PCI_ACCESS_READ, dev, where, &data);
+        if (where & 1) data >>= 8;
+        if (where & 2) data >>= 16;
+        *val = data & 0xff;
+	return ret; 
+}
+
+
+static int read_config_word(struct pci_dev *dev, int where, u16 * val)
+{
+	u32 data;
+	int ret;
+
+	ret = config_access(PCI_ACCESS_READ, dev, where, &data);
+        if (where & 2) data >>= 16;
+        *val = data & 0xffff;
+	return ret; 
+}
+
+static int read_config_dword(struct pci_dev *dev, int where, u32 * val)
+{
+	int ret;
+
+	ret = config_access(PCI_ACCESS_READ, dev, where, val);
+	return ret; 
+}
+
+
+static int write_config_byte(struct pci_dev *dev, int where, u8 val)
+{
+	u32 data = 0;
+       
+	if (config_access(PCI_ACCESS_READ, dev, where, &data))
+		return -1;
+
+	data = (data & ~(0xff << ((where & 3) << 3))) |
+	       (val << ((where & 3) << 3));
+
+	if (config_access(PCI_ACCESS_WRITE, dev, where, &data))
+		return -1;
+
+	return PCIBIOS_SUCCESSFUL;
+}
+
+static int write_config_word(struct pci_dev *dev, int where, u16 val)
+{
+        u32 data = 0;
+
+	if (where & 1)
+		return PCIBIOS_BAD_REGISTER_NUMBER;
+       
+        if (config_access(PCI_ACCESS_READ, dev, where, &data))
+	       return -1;
+
+	data = (data & ~(0xffff << ((where & 3) << 3))) | 
+	       (val << ((where & 3) << 3));
+
+	if (config_access(PCI_ACCESS_WRITE, dev, where, &data))
+	       return -1;
+
+
+	return PCIBIOS_SUCCESSFUL;
+}
+
+static int write_config_dword(struct pci_dev *dev, int where, u32 val)
+{
+	if (where & 3)
+		return PCIBIOS_BAD_REGISTER_NUMBER;
+
+	if (config_access(PCI_ACCESS_WRITE, dev, where, &val))
+	       return -1;
+
+	return PCIBIOS_SUCCESSFUL;
+}
+
+struct pci_ops pb1500_pci_ops = {
+	read_config_byte,
+        read_config_word,
+	read_config_dword,
+	write_config_byte,
+	write_config_word,
+	write_config_dword
+};
+
+#endif // CONFIG_CPU_AU1500
+#endif /* CONFIG_PCI */
+
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/db1x00/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/setup.c
--- linux-2.4.20/arch/mips/au1000/db1x00/setup.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/setup.c	2003-01-07 04:41:30.000000000 -0600
@@ -0,0 +1,244 @@
+/*
+ *
+ * BRIEF MODULE DESCRIPTION
+ *	Alchemy Db1000 board setup.
+ *
+ * Copyright 2000 MontaVista Software Inc.
+ * Author: MontaVista Software, Inc.
+ *         	ppopov@mvista.com or source@mvista.com
+ *
+ *  This program is free software; you can redistribute  it and/or modify it
+ *  under  the terms of  the GNU General  Public License as published by the
+ *  Free Software Foundation;  either version 2 of the  License, or (at your
+ *  option) any later version.
+ *
+ *  THIS  SOFTWARE  IS PROVIDED   ``AS  IS'' AND   ANY  EXPRESS OR IMPLIED
+ *  WARRANTIES,   INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
+ *  NO  EVENT  SHALL   THE AUTHOR  BE    LIABLE FOR ANY   DIRECT, INDIRECT,
+ *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ *  NOT LIMITED   TO, PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS OF
+ *  USE, DATA,  OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ *  ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *  You should have received a copy of the  GNU General Public License along
+ *  with this program; if not, write  to the Free Software Foundation, Inc.,
+ *  675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+#include <linux/config.h>
+#include <linux/init.h>
+#include <linux/sched.h>
+#include <linux/ioport.h>
+#include <linux/mm.h>
+#include <linux/console.h>
+#include <linux/mc146818rtc.h>
+#include <linux/delay.h>
+
+#include <asm/cpu.h>
+#include <asm/bootinfo.h>
+#include <asm/irq.h>
+#include <asm/keyboard.h>
+#include <asm/mipsregs.h>
+#include <asm/reboot.h>
+#include <asm/pgtable.h>
+#include <asm/au1000.h>
+#include <asm/db1x00.h>
+
+#if defined(CONFIG_AU1X00_SERIAL_CONSOLE)
+extern void console_setup(char *, int *);
+char serial_console[20];
+#endif
+
+#ifdef CONFIG_BLK_DEV_INITRD
+extern unsigned long initrd_start, initrd_end;
+extern void * __rd_start, * __rd_end;
+#endif
+
+#ifdef CONFIG_BLK_DEV_IDE
+extern struct ide_ops std_ide_ops;
+extern struct ide_ops *ide_ops;
+#endif
+
+void (*__wbflush) (void);
+extern struct rtc_ops no_rtc_ops;
+extern char * __init prom_getcmdline(void);
+extern void au1000_restart(char *);
+extern void au1000_halt(void);
+extern void au1000_power_off(void);
+extern struct resource ioport_resource;
+extern struct resource iomem_resource;
+#if defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_CPU_AU1500)
+extern phys_t (*fixup_bigphys_addr)(phys_t phys_addr, phys_t size);
+static phys_t db_fixup_bigphys_addr(phys_t phys_addr, phys_t size);
+#endif
+
+void __init bus_error_init(void) { /* nothing */ }
+
+void au1x00_wbflush(void)
+{
+	__asm__ volatile ("sync");
+}
+
+void __init au1x00_setup(void)
+{
+	char *argptr;
+	u32 pin_func, static_cfg0;
+	u32 sys_freqctrl, sys_clksrc;
+	u32 prid = read_c0_prid();
+
+	argptr = prom_getcmdline();
+
+	/* Various early Au1000 Errata corrected by this */
+	set_c0_config(1<<19); /* Config[OD] */
+
+#ifdef CONFIG_AU1X00_SERIAL_CONSOLE
+	if ((argptr = strstr(argptr, "console=")) == NULL) {
+		argptr = prom_getcmdline();
+		strcat(argptr, " console=ttyS0,115200");
+	}
+#endif	  
+
+#ifdef CONFIG_FB_AU1100
+    if ((argptr = strstr(argptr, "video=")) == NULL) {
+        argptr = prom_getcmdline();
+        /* default panel */
+        //strcat(argptr, " video=au1100fb:panel:Sharp_320x240_16");
+        strcat(argptr, " video=au1100fb:panel:s10,nohwcursor");
+    }
+#endif
+
+#if defined(CONFIG_SOUND_AU1000) && !defined(CONFIG_CPU_AU1000)
+	// au1000 does not support vra, au1500 and au1100 do
+    strcat(argptr, " au1000_audio=vra");
+    argptr = prom_getcmdline();
+#endif
+
+	rtc_ops = &no_rtc_ops;
+	__wbflush = au1x00_wbflush;
+	_machine_restart = au1000_restart;
+	_machine_halt = au1000_halt;
+	_machine_power_off = au1000_power_off;
+#if defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_CPU_AU1500)
+	fixup_bigphys_addr = db_fixup_bigphys_addr;
+#endif
+
+	// IO/MEM resources. 
+	set_io_port_base(0);
+#ifdef CONFIG_CPU_AU1500
+	ioport_resource.start = 0x00000000;
+#else
+	/* don't allow any legacy ports probing */
+	ioport_resource.start = 0x10000000;
+#endif
+	ioport_resource.end = 0xffffffff;
+	iomem_resource.start = 0x10000000;
+	iomem_resource.end = 0xffffffff;
+
+#ifdef CONFIG_BLK_DEV_INITRD
+	ROOT_DEV = MKDEV(RAMDISK_MAJOR, 0);
+	initrd_start = (unsigned long)&__rd_start;
+	initrd_end = (unsigned long)&__rd_end;
+#endif
+
+	//
+	// NOTE:
+	//
+	// YAMON (specifically reset_db1500.s) enables 32khz osc
+	// YAMON (specifically reset_db1x00.s) setups all clocking and GPIOs
+	// YAMON (specifically reset_db1500.s) setups all PCI
+	//
+
+#if defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1000_USB_DEVICE)
+#ifdef CONFIG_USB_OHCI
+	if ((argptr = strstr(argptr, "usb_ohci=")) == NULL) {
+	        char usb_args[80];
+		argptr = prom_getcmdline();
+		memset(usb_args, 0, sizeof(usb_args));
+		sprintf(usb_args, " usb_ohci=base:0x%x,len:0x%x,irq:%d",
+			USB_OHCI_BASE, USB_OHCI_LEN, AU1000_USB_HOST_INT);
+		strcat(argptr, usb_args);
+	}
+#endif
+
+#ifdef CONFIG_USB_OHCI
+	// enable host controller and wait for reset done
+	au_writel(0x08, USB_HOST_CONFIG);
+	udelay(1000);
+	au_writel(0x0E, USB_HOST_CONFIG);
+	udelay(1000);
+	au_readl(USB_HOST_CONFIG); // throw away first read
+	while (!(au_readl(USB_HOST_CONFIG) & 0x10))
+		au_readl(USB_HOST_CONFIG);
+#endif
+
+#ifdef CONFIG_AU1000_USB_DEVICE
+	// 2nd USB port is USB device
+	pin_func = au_readl(SYS_PINFUNC) & (u32)(~0x8000);
+	au_writel(pin_func, SYS_PINFUNC);
+#endif
+
+#endif // defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1000_USB_DEVICE)
+
+#ifdef CONFIG_FB
+	// Needed if PCI video card in use
+	conswitchp = &dummy_con;
+#endif
+
+#ifndef CONFIG_SERIAL_NONSTANDARD
+	/* don't touch the default serial console */
+	au_writel(0, UART0_ADDR + UART_CLK);
+#endif
+	//au_writel(0, UART3_ADDR + UART_CLK);
+
+#ifdef CONFIG_BLK_DEV_IDE
+	ide_ops = &std_ide_ops;
+#endif
+
+#if 0
+	//// FIX!!! must be valid for au1000, au1500 and au1100
+	/* Enable Au1000 BCLK switching */
+	switch (prid & 0x000000FF)
+	{
+	case 0x00: /* DA */
+	case 0x01: /* HA */
+	case 0x02: /* HB */
+		break;
+	default:  /* HC and newer */
+		au_writel(0x00000060, 0xb190003c);
+		break;
+	}
+#endif
+
+	au_writel(0, 0xAE000010); /* turn off pcmcia power */
+
+#ifdef CONFIG_MIPS_DB1000
+    printk("AMD Alchemy Au1000/Db1000 Board\n");
+#endif
+#ifdef CONFIG_MIPS_DB1500
+    printk("AMD Alchemy Au1500/Db1500 Board\n");
+#endif
+#ifdef CONFIG_MIPS_DB1100
+    printk("AMD Alchemy Au1100/Db1100 Board\n");
+#endif
+}
+
+#if defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_CPU_AU1500)
+static phys_t db_fixup_bigphys_addr(phys_t phys_addr, phys_t size)
+{
+	u32 pci_start = (u32)Au1500_PCI_MEM_START;
+	u32 pci_end = (u32)Au1500_PCI_MEM_END;
+
+	/* Don't fixup 36 bit addresses */
+	if ((phys_addr >> 32) != 0) return phys_addr;
+
+	/* check for pci memory window */
+	if ((phys_addr >= pci_start) && ((phys_addr + size) < pci_end)) {
+		return (phys_t)((phys_addr - pci_start) +
+				     Au1500_PCI_MEM_START);
+	}
+	else 
+		return phys_addr;
+}
+#endif
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1000/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1000/CVS/Entries
--- linux-2.4.20/arch/mips/au1000/pb1000/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1000/CVS/Entries	2005-01-06 23:00:00.000000000 -0600
@@ -0,0 +1,7 @@
+/.cvsignore/1.1/Sun Dec  2 11:34:38 2001/-ko/Tlinux_2_4_20
+/Makefile/1.4.2.1/Tue Jun 25 15:46:59 2002/-ko/Tlinux_2_4_20
+/init.c/1.4.2.4/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+/pci_fixup.c/1.3.2.2/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+/pci_ops.c/1.2.2.2/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+/setup.c/1.8.2.8/Wed Dec 11 06:12:29 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1000/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1000/CVS/Repository
--- linux-2.4.20/arch/mips/au1000/pb1000/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1000/CVS/Repository	2005-01-06 23:00:00.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/au1000/pb1000
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1000/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1000/CVS/Root
--- linux-2.4.20/arch/mips/au1000/pb1000/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1000/CVS/Root	2005-01-06 23:00:00.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1000/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1000/CVS/Tag
--- linux-2.4.20/arch/mips/au1000/pb1000/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1000/CVS/Tag	2005-01-06 23:00:00.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1000/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1000/.cvsignore
--- linux-2.4.20/arch/mips/au1000/pb1000/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1000/.cvsignore	2001-12-02 05:34:38.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1000/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1000/setup.c
--- linux-2.4.20/arch/mips/au1000/pb1000/setup.c	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1000/setup.c	2002-12-11 00:12:29.000000000 -0600
@@ -52,7 +52,7 @@
 #define CONFIG_AU1000_OHCI_FIX
 #endif
 
-#if defined(CONFIG_AU1000_SERIAL_CONSOLE)
+#if defined(CONFIG_AU1X00_SERIAL_CONSOLE)
 extern void console_setup(char *, int *);
 char serial_console[20];
 #endif
@@ -67,6 +67,7 @@
 extern struct ide_ops *ide_ops;
 #endif
 
+void (*__wbflush) (void);
 extern struct rtc_ops no_rtc_ops;
 extern char * __init prom_getcmdline(void);
 extern void au1000_restart(char *);
@@ -77,19 +78,24 @@
 
 void __init bus_error_init(void) { /* nothing */ }
 
-void __init au1000_setup(void)
+void au1000_wbflush(void)
+{
+	__asm__ volatile ("sync");
+}
+
+void __init au1x00_setup(void)
 {
 	char *argptr;
 	u32 pin_func, static_cfg0;
 	u32 sys_freqctrl, sys_clksrc;
-	u32 prid = read_32bit_cp0_register(CP0_PRID);
+	u32 prid = read_c0_prid();
 
 	argptr = prom_getcmdline();
 
 	/* Various early Au1000 Errata corrected by this */
-	set_cp0_config(1<<19); /* Config[OD] */
+	set_c0_config(1<<19); /* Config[OD] */
 
-#ifdef CONFIG_AU1000_SERIAL_CONSOLE
+#ifdef CONFIG_AU1X00_SERIAL_CONSOLE
 	if ((argptr = strstr(argptr, "console=")) == NULL) {
 		argptr = prom_getcmdline();
 		strcat(argptr, " console=ttyS0,115200");
@@ -97,6 +103,7 @@
 #endif
 
 	rtc_ops = &no_rtc_ops;
+        __wbflush = au1000_wbflush;
 	_machine_restart = au1000_restart;
 	_machine_halt = au1000_halt;
 	_machine_power_off = au1000_power_off;
@@ -119,7 +126,7 @@
 	au_writel(0, SYS_PINSTATERD);
 	udelay(100);
 
-#if defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1000_USB_DEVICE)
+#if defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1X00_USB_DEVICE)
 #ifdef CONFIG_USB_OHCI
 	if ((argptr = strstr(argptr, "usb_ohci=")) == NULL) {
 	        char usb_args[80];
@@ -181,7 +188,7 @@
 #ifdef CONFIG_USB_OHCI
 	sys_clksrc |= ((4<<12) | (0<<11) | (0<<10));
 #endif
-#ifdef CONFIG_AU1000_USB_DEVICE
+#ifdef CONFIG_AU1X00_USB_DEVICE
 	sys_clksrc |= ((4<<7) | (0<<6) | (0<<5));
 #endif
 	au_writel(sys_clksrc, SYS_CLKSRC);
@@ -200,14 +207,14 @@
 	// configure pins GPIO[14:9] as GPIO
 	pin_func = au_readl(SYS_PINFUNC) & (u32)(~0x8080);
 
-#ifndef CONFIG_AU1000_USB_DEVICE
+#ifndef CONFIG_AU1X00_USB_DEVICE
 	// 2nd USB port is USB host
 	pin_func |= 0x8000;
 #endif
 	au_writel(pin_func, SYS_PINFUNC);
 	au_writel(0x2800, SYS_TRIOUTCLR);
 	au_writel(0x0030, SYS_OUTPUTCLR);
-#endif // defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1000_USB_DEVICE)
+#endif // defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1X00_USB_DEVICE)
 
 	// make gpio 15 an input (for interrupt line)
 	pin_func = au_readl(SYS_PINFUNC) & (u32)(~0x100);
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1100/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1100/CVS/Entries
--- linux-2.4.20/arch/mips/au1000/pb1100/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1100/CVS/Entries	2005-01-06 23:00:00.000000000 -0600
@@ -0,0 +1,6 @@
+/Makefile/1.1.2.2/Wed Nov 13 10:00:14 2002/-ko/Tlinux_2_4_20
+/init.c/1.1.2.2/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+/pci_fixup.c/1.1.2.2/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+/pci_ops.c/1.1.2.2/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+/setup.c/1.1.2.6/Tue Dec 31 05:00:22 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1100/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1100/CVS/Repository
--- linux-2.4.20/arch/mips/au1000/pb1100/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1100/CVS/Repository	2005-01-06 23:00:00.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/au1000/pb1100
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1100/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1100/CVS/Root
--- linux-2.4.20/arch/mips/au1000/pb1100/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1100/CVS/Root	2005-01-06 23:00:00.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1100/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1100/CVS/Tag
--- linux-2.4.20/arch/mips/au1000/pb1100/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1100/CVS/Tag	2005-01-06 23:00:00.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1100/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1100/Makefile
--- linux-2.4.20/arch/mips/au1000/pb1100/Makefile	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1100/Makefile	2002-11-13 04:00:14.000000000 -0600
@@ -10,10 +10,7 @@
 # unless it's something special (ie not a .c file).
 #
 
-.S.s:
-	$(CPP) $(CFLAGS) $< -o $*.s
-.S.o:
-	$(CC) $(CFLAGS) -c $< -o $*.o
+USE_STANDARD_AS_RULE := true
 
 O_TARGET := pb1100.o
 
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1100/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1100/setup.c
--- linux-2.4.20/arch/mips/au1000/pb1100/setup.c	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1100/setup.c	2002-12-30 23:00:22.000000000 -0600
@@ -52,7 +52,7 @@
 #define CONFIG_AU1000_OHCI_FIX
 #endif
 
-#if defined(CONFIG_AU1000_SERIAL_CONSOLE)
+#if defined(CONFIG_AU1X00_SERIAL_CONSOLE)
 extern void console_setup(char *, int *);
 char serial_console[20];
 #endif
@@ -71,6 +71,7 @@
 extern struct rtc_ops pb1500_rtc_ops;
 #endif
 
+void (*__wbflush) (void);
 extern char * __init prom_getcmdline(void);
 extern void au1000_restart(char *);
 extern void au1000_halt(void);
@@ -81,7 +82,12 @@
 
 void __init bus_error_init(void) { /* nothing */ }
 
-void __init au1100_setup(void)
+void au1100_wbflush(void)
+{
+	__asm__ volatile ("sync");
+}
+
+void __init au1x00_setup(void)
 {
 	char *argptr;
 	u32 pin_func, static_cfg0;
@@ -92,20 +98,21 @@
 	/* NOTE: The memory map is established by YAMON 2.08+ */
 
 	/* Various early Au1000 Errata corrected by this */
-	set_cp0_config(1<<19); /* Config[OD] */
+	set_c0_config(1<<19); /* Config[OD] */
 
-#ifdef CONFIG_AU1000_SERIAL_CONSOLE
+#ifdef CONFIG_AU1X00_SERIAL_CONSOLE
 	if ((argptr = strstr(argptr, "console=")) == NULL) {
 		argptr = prom_getcmdline();
 		strcat(argptr, " console=ttyS0,115200");
 	}
 #endif
 
-#ifdef CONFIG_SOUND_AU1000
+#ifdef CONFIG_SOUND_AU1X00
 	strcat(argptr, " au1000_audio=vra");
 	argptr = prom_getcmdline();
 #endif
 
+        __wbflush = au1100_wbflush;
 	_machine_restart = au1000_restart;
 	_machine_halt = au1000_halt;
 	_machine_power_off = au1000_power_off;
@@ -128,7 +135,7 @@
 	au_writel(0, SYS_PININPUTEN);
 	udelay(100);
 
-#if defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1000_USB_DEVICE)
+#if defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1X00_USB_DEVICE)
 #ifdef CONFIG_USB_OHCI
 	if ((argptr = strstr(argptr, "usb_ohci=")) == NULL) {
 	        char usb_args[80];
@@ -175,12 +182,12 @@
 
 	// get USB Functionality pin state (device vs host drive pins)
 	pin_func = au_readl(SYS_PINFUNC) & (u32)(~0x8000);
-#ifndef CONFIG_AU1000_USB_DEVICE
+#ifndef CONFIG_AU1X00_USB_DEVICE
 	// 2nd USB port is USB host
 	pin_func |= 0x8000;
 #endif
 	au_writel(pin_func, SYS_PINFUNC);
-#endif // defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1000_USB_DEVICE)
+#endif // defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1X00_USB_DEVICE)
 
 #ifdef CONFIG_USB_OHCI
 	// enable host controller and wait for reset done
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1500/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1500/CVS/Entries
--- linux-2.4.20/arch/mips/au1000/pb1500/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1500/CVS/Entries	2005-01-06 23:00:00.000000000 -0600
@@ -0,0 +1,6 @@
+/Makefile/1.1.2.2/Tue Jun 25 15:46:59 2002/-ko/Tlinux_2_4_20
+/init.c/1.1.2.3/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+/pci_fixup.c/1.1.2.4/Mon Dec 16 18:00:48 2002/-ko/Tlinux_2_4_20
+/pci_ops.c/1.1.2.4/Wed Dec 11 06:12:29 2002/-ko/Tlinux_2_4_20
+/setup.c/1.1.2.10/Sun Dec 29 10:30:35 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1500/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1500/CVS/Repository
--- linux-2.4.20/arch/mips/au1000/pb1500/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1500/CVS/Repository	2005-01-06 23:00:00.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/au1000/pb1500
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1500/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1500/CVS/Root
--- linux-2.4.20/arch/mips/au1000/pb1500/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1500/CVS/Root	2005-01-06 23:00:00.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1500/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1500/CVS/Tag
--- linux-2.4.20/arch/mips/au1000/pb1500/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1500/CVS/Tag	2005-01-06 23:00:00.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1500/pci_fixup.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1500/pci_fixup.c
--- linux-2.4.20/arch/mips/au1000/pb1500/pci_fixup.c	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1500/pci_fixup.c	2002-12-16 12:00:48.000000000 -0600
@@ -57,8 +57,8 @@
 {
 	int i;
 	struct pci_dev *dev;
-
-	virt_io_addr = (unsigned long)ioremap(Au1500_PCI_IO_START,
+	
+	virt_io_addr = (unsigned long)ioremap(Au1500_PCI_IO_START, 
 			Au1500_PCI_IO_END - Au1500_PCI_IO_START + 1);
 
 	if (!virt_io_addr) {
@@ -66,13 +66,7 @@
 		return;
 	}
 
-	pci_for_each_dev(dev) {
-		for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
-			if (dev->resource[i].start) {
-				fixup_resource(i, dev);
-			}
-		}
-	}
+	set_io_port_base(virt_io_addr);
 }
 
 void __init pcibios_fixup_irqs(void)
@@ -103,17 +97,7 @@
 	return 0;
 }
 
-static void fixup_resource(int r_num, struct pci_dev *dev)
+static void fixup_resource(int r_num, struct pci_dev *dev) 
 {
-	unsigned long start, size, new_start;
-
-	if (dev->resource[r_num].flags & IORESOURCE_IO) {
-		start = dev->resource[r_num].start;
-		size = dev->resource[r_num].end - start;
-		new_start = virt_io_addr + (start - Au1500_PCI_IO_START);
-		dev->resource[r_num].start = new_start;
-		dev->resource[r_num].end = new_start + size;
-	}
 }
-
 #endif
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1500/pci_ops.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1500/pci_ops.c
--- linux-2.4.20/arch/mips/au1000/pb1500/pci_ops.c	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1500/pci_ops.c	2002-12-11 00:12:29.000000000 -0600
@@ -6,6 +6,8 @@
  * Author: MontaVista Software, Inc.
  *         	ppopov@mvista.com or source@mvista.com
  *
+ *  Support for all devices (greater than 16) added by David Gathright.
+ *
  *  This program is free software; you can redistribute  it and/or modify it
  *  under  the terms of  the GNU General  Public License as published by the
  *  Free Software Foundation;  either version 2 of the  License, or (at your
@@ -46,78 +48,66 @@
 #ifdef 	DEBUG
 #define	DBG(x...)	printk(x)
 #else
-#define	DBG(x...)
+#define	DBG(x...)	
 #endif
 
 /* TBD */
 static struct resource pci_io_resource = {
-	"pci IO space",
-	Au1500_PCI_IO_START,
-	Au1500_PCI_IO_END,
+	"pci IO space", 
+	(u32)Au1500_PCI_IO_START + 0x300,
+	(u32)Au1500_PCI_IO_END,
 	IORESOURCE_IO
 };
 
 static struct resource pci_mem_resource = {
-	"pci memory space",
-	Au1500_PCI_MEM_START,
-	Au1500_PCI_MEM_END,
+	"pci memory space", 
+	(u32)Au1500_PCI_MEM_START,
+	(u32)Au1500_PCI_MEM_END,
 	IORESOURCE_MEM
 };
 
 extern struct pci_ops pb1500_pci_ops;
 
 struct pci_channel mips_pci_channels[] = {
-	{&pb1500_pci_ops, &pci_io_resource, &pci_mem_resource, (10<<3),(16<<3)},
+	{&pb1500_pci_ops, &pci_io_resource, &pci_mem_resource, (0<<3),(19<<3)},
 	{(struct pci_ops *) NULL, (struct resource *) NULL,
 	 (struct resource *) NULL, (int) NULL, (int) NULL}
 };
 
-static unsigned long cfg_addr;
-static int config_access(unsigned char access_type, struct pci_dev *dev,
+static int config_access(unsigned char access_type, struct pci_dev *dev, 
 			 unsigned char where, u32 * data)
 {
 	unsigned char bus = dev->bus->number;
 	unsigned int dev_fn = dev->devfn;
-	unsigned int device, function;
+	unsigned int device = PCI_SLOT(dev_fn);
+	unsigned int function = PCI_FUNC(dev_fn);
 	unsigned long config, status;
-	static int first = 1;
-
-	/*
- 	 * 7:3 = slot
- 	 * 2:0 = function
-	 */
-
-	if (bus != 0) {
-		*data = 0xffffffff;
-		return -1;
-	}
-
-	if (first) {
-		first = 0;
-		cfg_addr = ioremap(Au1500_EXT_CFG, 0x10000000);
-		if (!cfg_addr)
-			printk (KERN_ERR "PCI unable to ioremap cfg space\n");
-	}
-
-	device = (dev_fn >> 3) & 0x1f;
-	function = dev_fn & 0x7;
+        unsigned long cfg_addr;
 
-#if 1
-	//if (!cfg_addr || (device < 10) || (device > 16)) {
-	if (!cfg_addr || (device > 16)) {
+	if (device > 19) {
 		*data = 0xffffffff;
 		return -1;
 	}
-#endif
 
-	au_writel(((0x2000 << 16) | (au_readl(Au1500_PCI_STATCMD) & 0xffff)),
+	au_writel(((0x2000 << 16) | (au_readl(Au1500_PCI_STATCMD) & 0xffff)), 
 			Au1500_PCI_STATCMD);
 	//au_writel(au_readl(Au1500_PCI_CFG) & ~PCI_ERROR, Au1500_PCI_CFG);
 	au_sync_udelay(1);
 
-	/* setup the lower 31 bits of the 36 bit address */
-	config = cfg_addr |
-		((1<<device)<<11) | (function << 8) | (where & ~0x3);
+        /* setup the config window */
+        if (bus == 0) {
+                cfg_addr = ioremap( Au1500_EXT_CFG | ((1<<device)<<11) , 
+				0x00100000);
+        } else {
+                cfg_addr = ioremap( Au1500_EXT_CFG_TYPE1 | (bus<<16) | 
+				(device<<11), 0x00100000);
+        }
+
+        if (!cfg_addr)
+                panic (KERN_ERR "PCI unable to ioremap cfg space\n");
+
+        /* setup the lower bits of the 36 bit address */
+        config = cfg_addr | (function << 8) | (where & ~0x3);
 
 #if 0
 	printk("cfg access: config %x, dev_fn %x, device %x function %x\n",
@@ -129,22 +119,28 @@
 	} else {
 		*data = au_readl(config);
 	}
-	au_sync_udelay(1);
+	au_sync_udelay(2);
 
-	DBG("config_access: %d bus %d device %d at %x *data %x, conf %x\n",
+
+	DBG("config_access: %d bus %d device %d at %x *data %x, conf %x\n", 
 			access_type, bus, device, where, *data, config);
 
+        /* unmap io space */
+        iounmap( cfg_addr );
+
 	/* check master abort */
 	status = au_readl(Au1500_PCI_STATCMD);
-	if (status & (1<<29)) {
+#if 0
+printk("cfg access: status %x, data %x\n", status, *data );
+#endif
+	if (status & (1<<29)) { 
 		*data = 0xffffffff;
 		return -1;
 	} else if ((status >> 28) & 0xf) {
 		DBG("PCI ERR detected: status %x\n", status);
 		*data = 0xffffffff;
 		return -1;
-	}
-	else {
+	} else {
 		return PCIBIOS_SUCCESSFUL;
 	}
 }
diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1500/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1500/setup.c
--- linux-2.4.20/arch/mips/au1000/pb1500/setup.c	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1500/setup.c	2002-12-29 04:30:35.000000000 -0600
@@ -43,6 +43,7 @@
 #include <asm/mipsregs.h>
 #include <asm/reboot.h>
 #include <asm/pgtable.h>
+#include <asm/wbflush.h>
 #include <asm/au1000.h>
 #include <asm/pb1500.h>
 
@@ -52,7 +53,7 @@
 #define CONFIG_AU1000_OHCI_FIX
 #endif
 
-#if defined(CONFIG_AU1000_SERIAL_CONSOLE)
+#if defined(CONFIG_AU1X00_SERIAL_CONSOLE)
 extern void console_setup(char *, int *);
 char serial_console[20];
 #endif
@@ -71,17 +72,27 @@
 extern struct rtc_ops pb1500_rtc_ops;
 #endif
 
+void (*__wbflush) (void);
 extern char * __init prom_getcmdline(void);
 extern void au1000_restart(char *);
 extern void au1000_halt(void);
 extern void au1000_power_off(void);
 extern struct resource ioport_resource;
 extern struct resource iomem_resource;
+#ifdef CONFIG_64BIT_PHYS_ADDR
+extern phys_t (*fixup_bigphys_addr)(phys_t phys_addr, phys_t size);
+static phys_t pb1500_fixup_bigphys_addr(phys_t phys_addr, phys_t size);
+#endif
 
 
 void __init bus_error_init(void) { /* nothing */ }
 
-void __init au1500_setup(void)
+void au1500_wbflush(void)
+{
+	__asm__ volatile ("sync");
+}
+
+void __init au1x00_setup(void)
 {
 	char *argptr;
 	u32 pin_func, static_cfg0;
@@ -92,27 +103,31 @@
 	/* NOTE: The memory map is established by YAMON 2.08+ */
 
 	/* Various early Au1500 Errata corrected by this */
-	set_cp0_config(1<<19); /* Config[OD] */
+	set_c0_config(1<<19); /* Config[OD] */
 
-#ifdef CONFIG_AU1000_SERIAL_CONSOLE
+#ifdef CONFIG_AU1X00_SERIAL_CONSOLE
 	if ((argptr = strstr(argptr, "console=")) == NULL) {
 		argptr = prom_getcmdline();
 		strcat(argptr, " console=ttyS0,115200");
 	}
 #endif
 
-#ifdef CONFIG_SOUND_AU1000
+#ifdef CONFIG_SOUND_AU1X00
 	strcat(argptr, " au1000_audio=vra");
 	argptr = prom_getcmdline();
 #endif
 
+        __wbflush = au1500_wbflush;
 	_machine_restart = au1000_restart;
 	_machine_halt = au1000_halt;
 	_machine_power_off = au1000_power_off;
+#ifdef CONFIG_64BIT_PHYS_ADDR
+	fixup_bigphys_addr = pb1500_fixup_bigphys_addr;
+#endif
 
 	// IO/MEM resources.
 	set_io_port_base(0);
-	ioport_resource.start = 0x10000000;
+	ioport_resource.start = 0x00000000;
 	ioport_resource.end = 0xffffffff;
 	iomem_resource.start = 0x10000000;
 	iomem_resource.end = 0xffffffff;
@@ -128,7 +143,7 @@
 	au_writel(0, SYS_PINSTATERD);
 	udelay(100);
 
-#if defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1000_USB_DEVICE)
+#if defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1X00_USB_DEVICE)
 #ifdef CONFIG_USB_OHCI
 	if ((argptr = strstr(argptr, "usb_ohci=")) == NULL) {
 	        char usb_args[80];
@@ -178,7 +193,7 @@
 	pin_func |= 0x8000;
 #endif
 	au_writel(pin_func, SYS_PINFUNC);
-#endif // defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1000_USB_DEVICE)
+#endif // defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1X00_USB_DEVICE)
 
 
 #ifdef CONFIG_USB_OHCI
@@ -259,3 +274,23 @@
 	}
 #endif
 }
+
+#ifdef CONFIG_64BIT_PHYS_ADDR
+static phys_t pb1500_fixup_bigphys_addr(phys_t phys_addr,
+					phys_t size)
+{
+	u32 pci_start = (u32)Au1500_PCI_MEM_START;
+	u32 pci_end = (u32)Au1500_PCI_MEM_END;
+
+	/* Don't fixup 36 bit addresses */
+	if ((phys_addr >> 32) != 0) return phys_addr;
+
+	/* check for pci memory window */
+	if ((phys_addr >= pci_start) && ((phys_addr + size) < pci_end)) {
+		return (phys_t)((phys_addr - pci_start) +
+				     Au1500_PCI_MEM_START);
+	}
+	else 
+		return phys_addr;
+}
+#endif
diff -urNd -urNd linux-2.4.20/arch/mips/baget/baget.c linux-2.4.20-mipscvs-20050106/arch/mips/baget/baget.c
--- linux-2.4.20/arch/mips/baget/baget.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/baget.c	2002-08-05 18:53:31.000000000 -0500
@@ -20,7 +20,7 @@
  *  Following code is based on routines from 'mm/vmalloc.c'
  *  Additional parameters  ioaddr  is needed to iterate across real I/O address.
  */
-static inline int alloc_area_pte(pte_t * pte, unsigned long address, 
+static inline int alloc_area_pte(pte_t * pte, unsigned long address,
 				 unsigned long size, unsigned long ioaddr)
 {
         unsigned long end;
@@ -35,7 +35,7 @@
                         printk("kseg2_alloc_io: page already exists\n");
 		/*
 		 *  For MIPS looks pretty to have transparent mapping
-		 *  for KSEG2 areas  -- user can't access one, and no 
+		 *  for KSEG2 areas  -- user can't access one, and no
 		 *  problems with  virtual <--> physical  translation.
 		 */
                 page = ioaddr & PAGE_MASK;
@@ -49,7 +49,7 @@
         return 0;
 }
 
-static inline int alloc_area_pmd(pmd_t * pmd, unsigned long address, 
+static inline int alloc_area_pmd(pmd_t * pmd, unsigned long address,
 				 unsigned long size, unsigned long ioaddr)
 {
         unsigned long end;
diff -urNd -urNd linux-2.4.20/arch/mips/baget/bagetIRQ.S linux-2.4.20-mipscvs-20050106/arch/mips/baget/bagetIRQ.S
--- linux-2.4.20/arch/mips/baget/bagetIRQ.S	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/bagetIRQ.S	2002-08-05 18:53:31.000000000 -0500
@@ -24,28 +24,28 @@
 	.set	push
 	.set    noreorder
 	jal	a1
-	.set    pop 
-	move	a0, sp                                          
+	.set    pop
+	move	a0, sp
 
 	la      a1, ret_from_irq
 	jr	a1
 END(bagetIRQ)
-	
+
 #define DBE_HANDLER       0x1C
-	
+
 NESTED(try_read, PT_SIZE, sp)
 	mfc0	t3, CP0_STATUS		# save flags and
 	CLI				#  disable interrupts
 
 	li	t0, KSEG2
-	sltu    t1, t0, a0              # Is it KSEG2 address ?               
-	beqz	t1, mapped              # No - already mapped !    
-					 
-	move    t0, a0		        
+	sltu    t1, t0, a0              # Is it KSEG2 address ?
+	beqz	t1, mapped              # No - already mapped !
+
+	move    t0, a0
 	ori	t0, 0xfff
 	xori    t0, 0xfff               # round address to page
 
-	ori     t1, t0, 0xf00           # prepare EntryLo (N,V,D,G) 
+	ori     t1, t0, 0xf00           # prepare EntryLo (N,V,D,G)
 
 	mfc0    t2,   CP0_ENTRYHI       # save ASID value
 	mtc0	zero, CP0_INDEX
@@ -56,15 +56,15 @@
 	tlbwi				# ... and write ones
 	nop
 	nop
-	mtc0    t2,  CP0_ENTRYHI           
-	
-mapped:		
+	mtc0    t2,  CP0_ENTRYHI
+
+mapped:
 	la	t0, exception_handlers
 	lw	t1, DBE_HANDLER(t0)	# save real handler
-	la	t2, dbe_handler			
+	la	t2, dbe_handler
 	sw	t2, DBE_HANDLER(t0)	# set temporary local handler
 	li	v0, -1			# default (failure) value
-	
+
 	li	t2, 1
 	beq	t2, a1, 1f
 	li	t2, 2
@@ -80,13 +80,13 @@
 	b	out
 
 4:	lw	v0, (a0)		# word
-	
-out:		
+
+out:
 	sw	t1, DBE_HANDLER(t0)	# restore real handler
 	mtc0	t3, CP0_STATUS		# restore CPU flags
-	jr	ra			
-	
-dbe_handler:	
+	jr	ra
+
+dbe_handler:
 	li	v0, -1			# mark our failure
 	.set	push
 	.set	noreorder
diff -urNd -urNd linux-2.4.20/arch/mips/baget/balo.c linux-2.4.20-mipscvs-20050106/arch/mips/baget/balo.c
--- linux-2.4.20/arch/mips/baget/balo.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/balo.c	2002-08-05 18:53:31.000000000 -0500
@@ -16,7 +16,7 @@
 
 static void mem_move (long *to, long *from, long size)
 {
-	while (size > 0) { 
+	while (size > 0) {
 		*to++ = *from++;
 		size -= sizeof(long);
 	}
@@ -59,7 +59,7 @@
 		"jr\t%1\n\t"
 		"nop\n\t"
                 ".set\tat\n\t"
-                ".set\treorder"           
+                ".set\treorder"
                 : "=&r" (tmp)
                 : "Ir" (start), "Ir" (mem_upper)
                 : "memory");
@@ -71,7 +71,7 @@
 	extern char _ramdisk_start, _ramdisk_end;
 
         outs( "Relocating Linux... " );
-	mem_move((long*)KSEG0, (long*)&_vmlinux_start, 
+	mem_move((long*)KSEG0, (long*)&_vmlinux_start,
                  &_vmlinux_end-&_vmlinux_start);
 	outs("done.\n");
 
@@ -86,7 +86,7 @@
 		outs("done.\n");
 	}
 
-	{ 
+	{
 		extern void flush_cache_low(int isize, int dsize);
 		flush_cache_low(256*1024,256*1024);
 	}
@@ -102,10 +102,10 @@
 	balo_state = MEM_PROBE;
 	outs("RAM: <");
 	while(mem_limit < mem_limit_dbe) {
-                if (can_write(mem_limit) && *mem_limit != 0) 
+                if (can_write(mem_limit) && *mem_limit != 0)
                         break; /* cycle found */
 		outc('.');
-		if (can_write(mem_limit)) 
+		if (can_write(mem_limit))
                         *mem_limit = -1; /* mark */
                 mem_limit += 0x40000;
 	}
@@ -124,7 +124,7 @@
 }
 
 void int_handler(struct pt_regs *regs)
-{ 
+{
         switch (balo_state) {
 	case BALO_INIT:
                 balo_printf("\nBALO: trap in balo itself.\n");
@@ -162,7 +162,7 @@
 
 	while(1) {
 		*mem_limit_dbe;
-		if (can_write(mem_limit_dbe)) 
+		if (can_write(mem_limit_dbe))
 			*mem_limit_dbe = 0;
 
 		mem_limit_dbe += 0x40000; /* +1M */
@@ -174,7 +174,7 @@
 {
         extern void except_vec3_generic(void);
 
-	cli(); 
+	cli();
 	outs(banner);
         memcpy((void *)(KSEG0 + 0x80), &except_vec3_generic, 0x80);
 	mem_init();
diff -urNd -urNd linux-2.4.20/arch/mips/baget/balo_supp.S linux-2.4.20-mipscvs-20050106/arch/mips/baget/balo_supp.S
--- linux-2.4.20/arch/mips/baget/balo_supp.S	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/balo_supp.S	2002-08-05 18:53:31.000000000 -0500
@@ -8,10 +8,10 @@
 #include <asm/stackframe.h>
 #include <asm/mipsregs.h>
 #include <asm/addrspace.h>
-	
+
 	.text
 	.set    mips1
-	
+
 	/* General exception vector. */
 NESTED(except_vec3_generic, 0, sp)
 	.set    noat
@@ -20,7 +20,7 @@
 END(except_vec3_generic)
 
 NESTED(except_vec3_generic_code, 0, sp)
-	SAVE_ALL 
+	SAVE_ALL
 	mfc0	k1, CP0_CAUSE
 	la	k0, int_cause
 	sw      k1, (k0)
@@ -33,7 +33,7 @@
         la      k0, badvaddr
         sw      k1, (k0)
 
-	la	k0, int_handler 
+	la	k0, int_handler
         .set    noreorder
 	jal	k0
         .set    reorder
@@ -47,7 +47,7 @@
         .set    at
         .set    macro
         .set    noreorder
-        
+
         move    t1, a0  # ISIZE
         move    t2, a1  # DSIZE
 
@@ -88,7 +88,7 @@
         sb      zero, -8(t0)
         bne     t0, t1, 1b
         sb      zero, -4(t0)
-        
+
         la      v0, 1f
         or      v0, KSEG1
         j       v0                              # Run uncached
diff -urNd -urNd linux-2.4.20/arch/mips/baget/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/baget/CVS/Entries
--- linux-2.4.20/arch/mips/baget/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/CVS/Entries	2005-01-06 23:08:21.000000000 -0600
@@ -0,0 +1,14 @@
+/.cvsignore/1.1/Sat Mar 25 22:41:20 2000/-ko/Tlinux_2_4_20
+/Makefile/1.5.2.2/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+/baget.c/1.3.2.1/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+/bagetIRQ.S/1.3.2.1/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+/balo.c/1.3.2.1/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+/balo_supp.S/1.3.2.1/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+/irq.c/1.13.2.2/Mon Dec  2 00:24:45 2002/-ko/Tlinux_2_4_20
+/ld.script.balo/1.2.2.1/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+/print.c/1.3.2.1/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+/reset.c/1.1/Sun Jan 17 03:49:38 1999/-ko/Tlinux_2_4_20
+/setup.c/1.7.2.1/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+/time.c/1.6.4.1/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+/vacserial.c/1.13.2.4/Thu Nov  7 01:47:45 2002/-ko/Tlinux_2_4_20
+D/prom////
diff -urNd -urNd linux-2.4.20/arch/mips/baget/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/baget/CVS/Repository
--- linux-2.4.20/arch/mips/baget/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/CVS/Repository	2005-01-06 23:00:00.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/baget
diff -urNd -urNd linux-2.4.20/arch/mips/baget/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/baget/CVS/Root
--- linux-2.4.20/arch/mips/baget/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/CVS/Root	2005-01-06 23:00:00.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/baget/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/baget/CVS/Tag
--- linux-2.4.20/arch/mips/baget/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/CVS/Tag	2005-01-06 23:00:01.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/baget/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/baget/.cvsignore
--- linux-2.4.20/arch/mips/baget/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/.cvsignore	2000-03-25 16:41:20.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/baget/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/baget/irq.c
--- linux-2.4.20/arch/mips/baget/irq.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/irq.c	2002-12-01 18:24:45.000000000 -0600
@@ -32,19 +32,19 @@
 /*
  * This table is a correspondence between IRQ numbers and CPU PILs
  */
- 
-static int irq_to_pil_map[BAGET_IRQ_NR] = { 
+
+static int irq_to_pil_map[BAGET_IRQ_NR] = {
 	7/*fixme: dma_err -1*/,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* 0x00 - 0x0f */
 	-1,-1,-1,-1, 3,-1,-1,-1, 2, 2, 2,-1, 3,-1,-1,3/*fixme: lance*/, /* 0x10 - 0x1f */
         -1,-1,-1,-1,-1,-1, 5,-1,-1,-1,-1,-1, 7,-1,-1,-1, /* 0x20 - 0x2f */
 	-1, 3, 2/*fixme systimer:3*/, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3  /* 0x30 - 0x3f */
 };
 
-static inline int irq_to_pil(int irq_nr) 
+static inline int irq_to_pil(int irq_nr)
 {
 	int pil = -1;
 
-	if (irq_nr >= BAGET_IRQ_NR) 
+	if (irq_nr >= BAGET_IRQ_NR)
 		baget_printk("irq_to_pil: too large irq_nr = 0x%x\n", irq_nr);
 	else {
 		pil = irq_to_pil_map[irq_nr];
@@ -59,13 +59,13 @@
 
 static inline void modify_cp0_intmask(unsigned clr_mask, unsigned set_mask)
 {
-	unsigned long status = read_32bit_cp0_register(CP0_STATUS);
+	unsigned long status = read_c0_status();
 	status &= ~((clr_mask & 0xFF) << 8);
 	status |=   (set_mask & 0xFF) << 8;
-	write_32bit_cp0_register(CP0_STATUS, status);
+	write_c0_status(status);
 }
 
-/* 
+/*
  *  These two functions may be used for unconditional IRQ
  *  masking via their PIL protection.
  */
@@ -91,22 +91,22 @@
 
 static volatile unsigned int pil_in_use[BAGET_PIL_NR] = { 0, };
 
-void mask_irq_count(int irq_nr) 
+void mask_irq_count(int irq_nr)
 {
 	unsigned long flags;
 	int pil = irq_to_pil(irq_nr);
-	
+
 	save_and_cli(flags);
 	if (!--pil_in_use[pil])
 		mask_irq(irq_nr);
 	restore_flags(flags);
 }
 
-void unmask_irq_count(int irq_nr) 
+void unmask_irq_count(int irq_nr)
 {
 	unsigned long flags;
 	int pil = irq_to_pil(irq_nr);
-	
+
 	save_and_cli(flags);
 	if (!pil_in_use[pil]++)
 		unmask_irq(irq_nr);
@@ -148,7 +148,7 @@
 
 	for (i = 0 ; i < BAGET_IRQ_NR ; i++) {
 		action = irq_action[i];
-		if (!action) 
+		if (!action)
 			continue;
 		len += sprintf(buf+len, "%2d: %8d %c %s",
 			i, kstat.irqs[0][i],
@@ -181,7 +181,7 @@
 	irq_enter(cpu, irq);
 	kstat.irqs[cpu][irq]++;
 
-	mask_irq(irq);  
+	mask_irq(irq);
 	action = *(irq + irq_action);
 	if (action) {
 		if (!(action->flags & SA_INTERRUPT))
@@ -208,14 +208,14 @@
 /*
  *  What to do in case of 'no VIC register available' for current interrupt
  */
-static void vic_reg_error(unsigned long address, unsigned char active_pils) 
+static void vic_reg_error(unsigned long address, unsigned char active_pils)
 {
 	printk("\nNo VIC register found: reg=%08lx active_pils=%02x\n"
-	       "Current interrupt mask from CP0_CAUSE: %02x\n", 
-	       address, 0xff & active_pils, 
-	       0xff & (read_32bit_cp0_register(CP0_CAUSE)>>8));
+	       "Current interrupt mask from CP0_CAUSE: %02x\n",
+	       address, 0xff & active_pils,
+	       0xff & (read_c0_cause()>>8));
 	{ int i; for (i=0; i<10000; i++) udelay(1000); }
-}	
+}
 
 static char baget_fpu_irq = BAGET_FPU_IRQ;
 #define BAGET_INT_FPU {(unsigned long)&baget_fpu_irq, 1}
@@ -225,27 +225,27 @@
  */
 asmlinkage void baget_interrupt(struct pt_regs *regs)
 {
-	static struct baget_int_reg int_reg[BAGET_PIL_NR] = { 
+	static struct baget_int_reg int_reg[BAGET_PIL_NR] = {
 		BAGET_INT_NONE, BAGET_INT_NONE, BAGET_INT0_ACK, BAGET_INT1_ACK,
-		BAGET_INT_NONE, BAGET_INT_FPU,  BAGET_INT_NONE, BAGET_INT5_ACK 
+		BAGET_INT_NONE, BAGET_INT_FPU,  BAGET_INT_NONE, BAGET_INT5_ACK
 	};
 	unsigned char active_pils;
-	while ((active_pils = read_32bit_cp0_register(CP0_CAUSE)>>8)) {
+	while ((active_pils = read_c0_cause()>>8)) {
 		int pil;
 		struct baget_int_reg* reg;
 
                 for (pil = 0; pil < BAGET_PIL_NR; pil++) {
                         if (!(active_pils & (1<<pil))) continue;
- 			
+
 			reg = &int_reg[pil];
 
 			if (reg->address) {
                                 extern int try_read(unsigned long,int);
 				int irq  = try_read(reg->address, reg->size);
 
-				if (irq != -1) 
+				if (irq != -1)
 				      do_IRQ(BAGET_IRQ_MASK(irq), regs);
-				else 
+				else
 				      vic_reg_error(reg->address, active_pils);
 			} else {
 				printk("baget_interrupt: unknown interrupt "
@@ -297,9 +297,9 @@
 	return 0;
 }
 
-int request_irq(unsigned int irq, 
+int request_irq(unsigned int irq,
 		void (*handler)(int, void *, struct pt_regs *),
-		unsigned long irqflags, 
+		unsigned long irqflags,
 		const char * devname,
 		void *dev_id)
 {
@@ -310,12 +310,12 @@
 		return -EINVAL;
 	if (!handler)
 		return -EINVAL;
-	if (irq_to_pil_map[irq] < 0) 
+	if (irq_to_pil_map[irq] < 0)
 		return -EINVAL;
 
 	action = (struct irqaction *)
 			kmalloc(sizeof(struct irqaction), GFP_KERNEL);
-	if (!action) 
+	if (!action)
 		return -ENOMEM;
 
 	action->handler = handler;
@@ -332,13 +332,13 @@
 
 	return retval;
 }
-		
+
 void free_irq(unsigned int irq, void *dev_id)
 {
 	struct irqaction * action, **p;
 	unsigned long flags;
 
-	if (irq >= BAGET_IRQ_NR) 
+	if (irq >= BAGET_IRQ_NR)
 		printk("Trying to free IRQ%d\n",irq);
 
 	for (p = irq + irq_action; (action = *p) != NULL; p = &action->next) {
@@ -375,7 +375,7 @@
 	*(volatile char*) BAGET_WRERR_ACK = 0;
 }
 
-static struct irqaction irq0  = 
+static struct irqaction irq0  =
 { write_err_interrupt, SA_INTERRUPT, 0, "bus write error", NULL, NULL};
 
 void __init init_IRQ(void)
@@ -388,6 +388,6 @@
 	/* Enable interrupts for pils 2 and 3 (lines 0 and 1) */
 	modify_cp0_intmask(0, (1<<2)|(1<<3));
 
-	if (setup_baget_irq(0, &irq0) < 0) 
+	if (setup_baget_irq(0, &irq0) < 0)
 		printk("init_IRQ: unable to register write_err irq\n");
 }
diff -urNd -urNd linux-2.4.20/arch/mips/baget/ld.script.balo linux-2.4.20-mipscvs-20050106/arch/mips/baget/ld.script.balo
--- linux-2.4.20/arch/mips/baget/ld.script.balo	2001-07-02 16:40:14.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/ld.script.balo	2002-08-05 18:53:31.000000000 -0500
@@ -42,13 +42,13 @@
   /* Startup code */
   . = ALIGN(4096);
   __init_begin = .;
-  *(.text.init) 
-  *(.data.init) 
+  *(.text.init)
+  *(.data.init)
   . = ALIGN(4096);	/* Align double page for init_task_union */
   __init_end = .;
 
-   *(.fini)    
-  *(.reginfo) 
+   *(.fini)
+  *(.reginfo)
   /* Adjust the address for the data segment.  We want to adjust up to
      the same address within the page on the next page up.  It would
      be more correct to do this:
@@ -68,18 +68,18 @@
     *(.data)
     CONSTRUCTORS
 
-  *(.data1) 
+  *(.data1)
   _gp = . + 0x8000;
-  *(.lit8) 
-  *(.lit4) 
-  *(.ctors)   
-  *(.dtors)   
-  *(.got.plt) *(.got) 
-  *(.dynamic) 
+  *(.lit8)
+  *(.lit4)
+  *(.ctors)
+  *(.dtors)
+  *(.got.plt) *(.got)
+  *(.dynamic)
   /* We want the small data sections together, so single-instruction offsets
      can access them all, and initialized data all before uninitialized, so
      we can shorten the on-disk segment size.  */
-  *(.sdata) 
+  *(.sdata)
   _edata  =  .;
   PROVIDE (edata = .);
 
@@ -96,21 +96,21 @@
 
   /* These are needed for ELF backends which have not yet been
      converted to the new style linker.  */
-  *(.stab) 
-  *(.stabstr) 
+  *(.stab)
+  *(.stabstr)
   /* DWARF debug sections.
      Symbols in the .debug DWARF section are relative to the beginning of the
      section so we begin .debug at 0.  It's not clear yet what needs to happen
      for the others.   */
-  *(.debug) 
-  *(.debug_srcinfo) 
-  *(.debug_aranges) 
-  *(.debug_pubnames) 
-  *(.debug_sfnames) 
-  *(.line) 
+  *(.debug)
+  *(.debug_srcinfo)
+  *(.debug_aranges)
+  *(.debug_pubnames)
+  *(.debug_sfnames)
+  *(.line)
   /* These must appear regardless of  .  */
-  *(.gptab.data) *(.gptab.sdata) 
-  *(.gptab.bss) *(.gptab.sbss) 
+  *(.gptab.data) *(.gptab.sdata)
+  *(.gptab.bss) *(.gptab.sbss)
 
   _vmlinux_start = .;
   *(.vmlinux)
diff -urNd -urNd linux-2.4.20/arch/mips/baget/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/baget/Makefile
--- linux-2.4.20/arch/mips/baget/Makefile	2001-04-13 22:26:07.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/Makefile	2002-08-05 18:53:31.000000000 -0500
@@ -8,13 +8,13 @@
 #
 # Note 2! The CFLAGS definitions are now in the main makefile...
 
-all: baget.a 
+all: baget.a
 
 O_TARGET := baget.a
 
 export-objs		:= vacserial.o vacrtc.o
 obj-y			:= baget.o print.o setup.o time.o irq.o bagetIRQ.o \
-			   reset.o wbflush.o
+			   reset.o
 obj-$(CONFIG_SERIAL)	+= vacserial.o
 obj-$(CONFIG_VAC_RTC)	+= vacrtc.o
 
@@ -39,7 +39,7 @@
 dummy.o: dummy.c image.bin ramdisk.bin
 	$(CC) $(CFLAGS) -c -o $@ $<
 	$(OBJCOPY) --add-section=.vmlinux=image.bin \
-                   --add-section=.ramdisk=ramdisk.bin   $@ 
+                   --add-section=.ramdisk=ramdisk.bin   $@
 
 balo.h: image
 	$(NM) $< | awk ' \
@@ -50,13 +50,13 @@
 	/balo_ramdisk_size/ { printf "#define RAMDISK_SIZE 0x%s\n", $$1 } \
                        ' > $@
 balo.o:   balo.c balo.h
-	$(CC) $(CFLAGS) -c $< 
+	$(CC) $(CFLAGS) -c $<
 
 balo_supp.o: balo_supp.S
 	$(CC) $(CFLAGS) -c $<
 
 balo:   balo.o dummy.o balo_supp.o print.o
-	$(LD) $(LDFLAGS) -T ld.script.balo -o $@ $^ 
+	$(LD) $(LDFLAGS) -T ld.script.balo -o $@ $^
 
 clean:
 	rm -f balo balo.h dummy.c image image.bin
diff -urNd -urNd linux-2.4.20/arch/mips/baget/print.c linux-2.4.20-mipscvs-20050106/arch/mips/baget/print.c
--- linux-2.4.20/arch/mips/baget/print.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/print.c	2002-08-05 18:53:31.000000000 -0500
@@ -14,7 +14,7 @@
  */
 // #define BAGET_PRINTK
 
-/* 
+/*
  *  This function is same for BALO and Linux baget_printk,
  *  and normally prints characted to second (UART A) console.
  */
@@ -25,7 +25,7 @@
 {
         int i;
         vac_outb(c, VAC_UART_B_TX);
-        for (i=0; i<10000; i++) 
+        for (i=0; i<10000; i++)
                 delay();
 }
 
@@ -36,7 +36,7 @@
         outc_low(c);
 }
 
-void outs(char *s) 
+void outs(char *s)
 {
         while(*s) outc(*s++);
 }
@@ -77,7 +77,7 @@
 void __init balo_printf( char *f, ... )
 {
         int *arg = (int*)&f + 1;
-        char c; 
+        char c;
         int format = 0;
 
         while((c = *f++) != 0) {
@@ -110,7 +110,7 @@
 }
 
 void __init balo_hungup(void)
-{ 
+{
         outs("Hunging up.\n");
-        while(1); 
+        while(1);
 }
diff -urNd -urNd linux-2.4.20/arch/mips/baget/prom/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/baget/prom/CVS/Entries
--- linux-2.4.20/arch/mips/baget/prom/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/prom/CVS/Entries	2005-01-06 23:00:01.000000000 -0600
@@ -0,0 +1,4 @@
+/.cvsignore/1.1/Sat Mar 25 22:41:20 2000/-ko/Tlinux_2_4_20
+/Makefile/1.2/Wed Jan 10 17:17:55 2001/-ko/Tlinux_2_4_20
+/init.c/1.7.2.2/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/baget/prom/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/baget/prom/CVS/Repository
--- linux-2.4.20/arch/mips/baget/prom/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/prom/CVS/Repository	2005-01-06 23:00:01.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/baget/prom
diff -urNd -urNd linux-2.4.20/arch/mips/baget/prom/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/baget/prom/CVS/Root
--- linux-2.4.20/arch/mips/baget/prom/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/prom/CVS/Root	2005-01-06 23:00:01.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/baget/prom/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/baget/prom/CVS/Tag
--- linux-2.4.20/arch/mips/baget/prom/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/prom/CVS/Tag	2005-01-06 23:00:01.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/baget/prom/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/baget/prom/.cvsignore
--- linux-2.4.20/arch/mips/baget/prom/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/prom/.cvsignore	2000-03-25 16:41:20.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/baget/prom/init.c linux-2.4.20-mipscvs-20050106/arch/mips/baget/prom/init.c
--- linux-2.4.20/arch/mips/baget/prom/init.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/prom/init.c	2002-08-05 18:53:31.000000000 -0500
@@ -1,7 +1,7 @@
 /*
  * init.c: PROM library initialisation code.
  *
- * Copyright (C) 1998 Gleb Raiko & Vladimir Roganov 
+ * Copyright (C) 1998 Gleb Raiko & Vladimir Roganov
  */
 #include <linux/init.h>
 #include <asm/addrspace.h>
diff -urNd -urNd linux-2.4.20/arch/mips/baget/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/baget/setup.c
--- linux-2.4.20/arch/mips/baget/setup.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/setup.c	2002-08-05 18:53:31.000000000 -0500
@@ -15,10 +15,10 @@
 long int vac_memory_upper;
 
 #define CACHEABLE_STR(val) ((val) ? "not cached" : "cached")
-#define MIN(a,b)           (((a)<(b)) ? (a):(b)) 
-		
+#define MIN(a,b)           (((a)<(b)) ? (a):(b))
+
 static void __init vac_show(void)
-{ 
+{
 	int i;
 	unsigned short val, decode = vac_inw(VAC_DECODE_CTRL);
 	unsigned short a24_base = vac_inw(VAC_A24_BASE);
@@ -37,7 +37,7 @@
 				     VAC_IOSEL3_CTRL,
 				     VAC_IOSEL4_CTRL,
 				     VAC_IOSEL5_CTRL };
-	
+
 	printk("[DSACKi %s, DRAMCS%s qualified, boundary%s qualified%s]\n",
 	       (decode & VAC_DECODE_DSACKI)     ? "on" : "off",
 	       (decode & VAC_DECODE_QFY_DRAMCS) ? ""   : " not",
@@ -71,24 +71,24 @@
 			VAC_ICFSEL_MODULE_VAL(vac_inw(VAC_ICFSEL_BASE)))<<4,
 		       (decode & VAC_DECODE_QFY_ICFSEL) ? "qualified" : "");
 
-	
+
 	printk("region0 at 00000000 (%dMB)\t[dram, %s, delay %d cpuclk"
 	       ", cached]\n",
 	       (vac_inw(VAC_DRAM_MASK)+1)>>4,
 	       (decode & VAC_DECODE_DSACK) ? "D32" : "3state",
 	       VAC_DECODE_CPUCLK_VAL(decode));
-	
+
 	for (i = 0; i < sizeof(regs)/sizeof(regs[0]); i++) {
-		unsigned long from = 
+		unsigned long from =
 			((unsigned long)vac_inw(bndr[i]))<<16;
-		unsigned long to   = 
+		unsigned long to   =
 			((unsigned long)
-			 ((i+1 == sizeof(bndr)/sizeof(bndr[0])) ? 
+			 ((i+1 == sizeof(bndr)/sizeof(bndr[0])) ?
 			  0xff00 : vac_inw(bndr[i+1])))<<16;
-		
-		
+
+
 		val = vac_inw(regs[i]);
-		printk("region%d at %08lx (%dMB)\t[%s %s/%s, %s]\n", 
+		printk("region%d at %08lx (%dMB)\t[%s %s/%s, %s]\n",
 		       i+1,
 		       from,
 		       (unsigned int)((to - from) >> 20),
@@ -96,13 +96,13 @@
 		       asiz[VAC_REG_ASIZ_VAL(val)],
 		       ((val & VAC_REG_WORD) ?  "D16" : "D32"),
 		       CACHEABLE_STR(val&VAC_A24_A24_CACHINH));
-		
+
 		if (a24_addr >= from && a24_addr < to)
 			printk("\ta24 at %08lx (%dMB)\t[vme, A24/%s, %s]\n",
 			       a24_addr,
 			       MIN((unsigned int)(a24_addr - from)>>20, 32),
 			       (a24_base & VAC_A24_DATAPATH) ?  "user" :
-			       ((a24_base & VAC_A24_D32_ENABLE)  ?  
+			       ((a24_base & VAC_A24_D32_ENABLE)  ?
 				"D32" : "D16"),
 			       CACHEABLE_STR(a24_base & VAC_A24_A24_CACHINH));
 	}
@@ -122,7 +122,7 @@
 	       (VAC_CTRL_DELAY_IOWR_VAL(val)&1) ? ".5" : "",
 	       VAC_CTRL_DELAY_IOSELI_VAL(val)/2,
 	       (VAC_CTRL_DELAY_IOSELI_VAL(val)&1) ? ".5" : "");
-	
+
 	printk("region5 at fff00000 (896KB)\t[local io, %s]\n",
 	       CACHEABLE_STR(vac_inw(VAC_A24_BASE) & VAC_A24_IO_CACHINH));
 
@@ -131,7 +131,7 @@
 		printk("\tio%d[ack %d cpuclk%s, %s%srecovery %d cpuclk, "
 		       "\n\t read %d%s cpuclk, write %d%s cpuclk, "
 		       "assert %d%s%s cpuclk]\n",
-		       i, 
+		       i,
 		       VAC_CTRL_DELAY_DSACKI_VAL(val),
 		       state[val & (VAC_CTRL_IORD|VAC_CTRL_IOWR)],
 		       (val & VAC_CTRL_DSACK0) ? "dsack0*, " : "",
@@ -143,15 +143,15 @@
 		       (VAC_CTRL_DELAY_IOWR_VAL(val)&1) ? ".5" : "",
 		       VAC_CTRL_DELAY_IOSELI_VAL(val)/2,
 		       (VAC_CTRL_DELAY_IOSELI_VAL(val)&1) ? ".5" : "",
-		       (vac_inw(VAC_DEV_LOC) & VAC_DEV_LOC_IOSEL(i)) ? 
+		       (vac_inw(VAC_DEV_LOC) & VAC_DEV_LOC_IOSEL(i)) ?
 		          ", id" : "");
 	}
-		
+
 	printk("region6 at fffe0000 (128KB)\t[vme, A16/%s, "
 	       "not cached]\n",
-	       (a24_base & VAC_A24_A16D32_ENABLE) ? 
+	       (a24_base & VAC_A24_A16D32_ENABLE) ?
 	       ((a24_base & VAC_A24_A16D32) ? "D32" : "D16") : "user");
-		       
+
 	val = vac_inw(VAC_SHRCS_CTRL);
 	printk("shared[ack %d cpuclk%s, %s%srecovery %d cpuclk, "
 	       "read %d%s, write %d%s, assert %d%s]\n",
@@ -182,8 +182,8 @@
 	default:
 		panic("Unknown VAC revision number");
 	}
-	
-	vac_outw(mem_limit-1, VAC_DRAM_MASK); 
+
+	vac_outw(mem_limit-1, VAC_DRAM_MASK);
 	vac_outw(mem_limit, VAC_BNDR2);
 	vac_outw(mem_limit, VAC_BNDR3);
 	vac_outw(((BAGET_A24M_BASE>>16)&~VAC_A24_D32_ENABLE)|VAC_A24_DATAPATH,
@@ -293,19 +293,19 @@
 	vac_outw(VAC_INT_CTRL_TIMER_PIO10|
 		 VAC_INT_CTRL_UART_B_PIO7|
 		 VAC_INT_CTRL_UART_A_PIO7,VAC_INT_CTRL);
-	/* 
+	/*
 	 *  Set quadro speed for both UARTs.
 	 *  To do it we need use formulae from VIC/VAC manual,
 	 *  keeping in mind Baget's 50MHz frequency...
 	 */
-	vac_outw((500000/(384*16))<<8,VAC_CPU_CLK_DIV); 
+	vac_outw((500000/(384*16))<<8,VAC_CPU_CLK_DIV);
 }
 
 static void __init vic_show(void)
 {
 	unsigned char val;
 	char *timeout[]  = { "4", "16", "32", "64", "128", "256", "disabled" };
-	char *deadlock[] = { "[dedlk only]", "[dedlk only]", 
+	char *deadlock[] = { "[dedlk only]", "[dedlk only]",
 			     "[dedlk], [halt w/ rmc], [lberr]",
 			     "[dedlk], [halt w/o rmc], [lberr]" };
 
@@ -318,7 +318,7 @@
 		printk("metastability delay ");
 	printk("%s ",
 	       deadlock[VIC_IFACE_CFG_DEADLOCK_VAL(val)]);
-	
+
 
 	printk("interrupts: ");
 	val = vic_inb(VIC_ERR_INT);
@@ -331,7 +331,7 @@
 	if (!(val & VIC_ERR_INT_ACFAIL))
 		printk("[acfail] ");
 	printk("\n");
-	
+
 	printk("timeouts: ");
 	val = vic_inb(VIC_XFER_TIMO);
 	printk("local %s, vme %s ",
@@ -357,7 +357,7 @@
 		printk("[local boundary cross]");
 	if (val & VIC_BXFER_DEF_VME_CROSS)
 		printk("[vme boundary cross]");
-	
+
 }
 
 static void __init vic_init(void)
@@ -372,7 +372,7 @@
 	 vic_outb(VIC_INT_IPL(3)|VIC_INT_DISABLE,VIC_VME_INT2);
 	 vic_outb(VIC_INT_IPL(3)|VIC_INT_DISABLE,VIC_VME_INT3);
 	 vic_outb(VIC_INT_IPL(3)|VIC_INT_DISABLE,VIC_VME_INT4);
-/*	 
+/*
 	 vic_outb(VIC_INT_IPL(3)|VIC_INT_DISABLE, VIC_VME_INT5);
 */
 	 vic_outb(VIC_INT_IPL(3)|VIC_INT_DISABLE, VIC_VME_INT6);
@@ -387,7 +387,7 @@
 		  VIC_INT_HIGH|VIC_INT_DISABLE, VIC_LINT3);
 	 vic_outb(VIC_INT_IPL(3)|VIC_INT_NOAUTO|VIC_INT_EDGE|
 		  VIC_INT_LOW|VIC_INT_DISABLE, VIC_LINT4);
-/*	 
+/*
 	 vic_outb(VIC_INT_IPL(3)|VIC_INT_NOAUTO|VIC_INT_LEVEL|
 		  VIC_INT_LOW|VIC_INT_DISABLE, VIC_LINT5);
 */
@@ -446,7 +446,7 @@
 		  VIC_RELEASE_RWD, VIC_RELEASE);
 	 vic_outb(VIC_IC6_RUN, VIC_IC6);
 	 vic_outb(0, VIC_IC7);
-	 
+
 	 vic_show();
 }
 
@@ -470,7 +470,7 @@
 extern void baget_machine_restart(char *command);
 extern void baget_machine_halt(void);
 extern void baget_machine_power_off(void);
- 
+
 void __init baget_setup(void)
 {
 	printk("BT23/63-201n found.\n");
diff -urNd -urNd linux-2.4.20/arch/mips/baget/time.c linux-2.4.20-mipscvs-20050106/arch/mips/baget/time.c
--- linux-2.4.20/arch/mips/baget/time.c	2001-09-09 12:43:01.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/time.c	2002-08-05 18:53:31.000000000 -0500
@@ -19,25 +19,25 @@
 #include <asm/io.h>
 #include <asm/irq.h>
 #include <asm/ptrace.h>
-#include <asm/system.h>  
+#include <asm/system.h>
 
 #include <asm/baget/baget.h>
 
 extern rwlock_t xtime_lock;
 
-/* 
+/*
  *  To have precision clock, we need to fix available clock frequency
  */
 #define FREQ_NOM  79125  /* Baget frequency ratio */
 #define FREQ_DEN  10000
 
-static inline int timer_intr_valid(void) 
+static inline int timer_intr_valid(void)
 {
 	static unsigned long long ticks, valid_ticks;
 
 	if (ticks++ * FREQ_DEN >= valid_ticks * FREQ_NOM) {
-		/* 
-		 *  We need no overflow checks, 
+		/*
+		 *  We need no overflow checks,
 		 *  due baget unable to work 3000 years...
 		 *  At least without reboot...
 		 */
@@ -63,10 +63,10 @@
 	vic_outb(ss0cr0, VIC_SS0CR0);
 
 	vic_outb(VIC_INT_IPL(6)|VIC_INT_NOAUTO|VIC_INT_EDGE|
-		 VIC_INT_LOW|VIC_INT_ENABLE, VIC_LINT2); 
+		 VIC_INT_LOW|VIC_INT_ENABLE, VIC_LINT2);
 }
 
-static struct irqaction timer_irq  = 
+static struct irqaction timer_irq  =
 { timer_interrupt, SA_INTERRUPT, 0, "timer", NULL, NULL};
 
 void __init time_init(void)
diff -urNd -urNd linux-2.4.20/arch/mips/baget/vacserial.c linux-2.4.20-mipscvs-20050106/arch/mips/baget/vacserial.c
--- linux-2.4.20/arch/mips/baget/vacserial.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/vacserial.c	2002-11-06 19:47:45.000000000 -0600
@@ -26,7 +26,7 @@
  ((state->flags & ASYNC_SHARE_IRQ) ? SA_SHIRQ : SA_INTERRUPT)
 
 #define SERIAL_INLINE
-  
+
 #if defined(MODULE) && defined(SERIAL_DEBUG_MCOUNT)
 #define DBG_CNT(s) baget_printk("(%s):[%x] refc=%d, serc=%d, ttyc=%d-> %s\n", \
   kdevname(tty->device),(info->flags),serial_refcount,info->count,tty->count,s)
@@ -89,7 +89,7 @@
 #ifdef SERIAL_INLINE
 #define _INLINE_ inline
 #endif
-	
+
 static char *serial_name = "VAC Serial driver";
 static char *serial_version = "4.26";
 
@@ -100,7 +100,7 @@
 
 /* number of characters left in xmit buffer before we ask for more */
 #define WAKEUP_CHARS 256
- 
+
 /*
  * IRQ_timeout		- How long the timeout should be for each IRQ
  * 				should be after the IRQ has been active.
@@ -126,7 +126,7 @@
 static struct serial_uart_config uart_config[] = {
         { "unknown",  1, 0 },  /* Must go first  --  used as unasigned */
         { "VAC UART", 1, 0 }
-}; 
+};
 #define VAC_UART_TYPE 1   /* Just index in above array */
 
 static struct serial_state rs_table[] = {
@@ -135,9 +135,9 @@
  *  so we need special function to access ones.
  *  To identify port we use their TX offset
  */
-        { 0, 9600, VAC_UART_B_TX, BAGET_VAC_UART_IRQ, 
+        { 0, 9600, VAC_UART_B_TX, BAGET_VAC_UART_IRQ,
           STD_COM_FLAGS }, /* VAC UART B */
-        { 0, 9600, VAC_UART_A_TX, BAGET_VAC_UART_IRQ, 
+        { 0, 9600, VAC_UART_A_TX, BAGET_VAC_UART_IRQ,
           STD_COM_FLAGS }  /* VAC UART A */
 };
 
@@ -185,7 +185,7 @@
 }
 
 /*
-  To unify UART A/B access we will use following function 
+  To unify UART A/B access we will use following function
   to compute register offsets by register index.
  */
 
@@ -197,7 +197,7 @@
 
 #define VAC_UART_REG_NR     5
 
-static inline int uart_offset_map(unsigned long port, int reg_index) 
+static inline int uart_offset_map(unsigned long port, int reg_index)
 {
 	static const unsigned int ind_to_reg[VAC_UART_REG_NR][NR_PORTS] = {
 		{ VAC_UART_B_MODE,       VAC_UART_A_MODE       },
@@ -217,7 +217,7 @@
 	int val = vac_inw(uart_offset_map(info->port,offset));
 #ifdef DEBUG_IO_PORT_A
 	if (info->port == VAC_UART_A_TX)
-		printk("UART_A_IN: reg = 0x%04x, val = 0x%04x\n", 
+		printk("UART_A_IN: reg = 0x%04x, val = 0x%04x\n",
 		       uart_offset_map(info->port,offset), val);
 #endif
 	return val;
@@ -237,7 +237,7 @@
 {
 #ifdef DEBUG_IO_PORT_A
 	if (info->port == VAC_UART_A_TX)
-		printk("UART_A_OUT: offset = 0x%04x, val = 0x%04x\n", 
+		printk("UART_A_OUT: offset = 0x%04x, val = 0x%04x\n",
 		       uart_offset_map(info->port,offset), value);
 #endif
 	vac_outw(value, uart_offset_map(info->port,offset));
@@ -268,7 +268,7 @@
 
 	if (serial_paranoia_check(info, tty->device, "rs_stop"))
 		return;
-	
+
 	save_flags(flags); cli();
         if (info->IER & VAC_UART_INT_TX_EMPTY) {
                 info->IER &= ~VAC_UART_INT_TX_EMPTY;
@@ -281,12 +281,12 @@
 {
 	struct async_struct *info = (struct async_struct *)tty->driver_data;
 	unsigned long flags;
-	
+
 	if (serial_paranoia_check(info, tty->device, "rs_start"))
 		return;
-	
+
 	save_flags(flags); cli();
-	if (info->xmit_cnt && info->xmit_buf 
+	if (info->xmit_cnt && info->xmit_buf
             && !(info->IER & VAC_UART_INT_TX_EMPTY)) {
                 info->IER |= VAC_UART_INT_TX_EMPTY;
 		serial_out(info, VAC_UART_INT_MASK, info->IER);
@@ -306,7 +306,7 @@
  * rs_interrupt() should try to keep the interrupt handler as fast as
  * possible.  After you are done making modifications, it is not a bad
  * idea to do:
- * 
+ *
  * gcc -S -DKERNEL -Wall -Wstrict-prototypes -O6 -fomit-frame-pointer serial.c
  *
  * and look at the resulting assemble code in serial.s.
@@ -345,20 +345,20 @@
 			break;
 		*tty->flip.char_buf_ptr = ch;
 		icount->rx++;
-		
+
 #ifdef SERIAL_DEBUG_INTR
 		baget_printk("DR%02x:%02x...", rx, *status);
 #endif
 		*tty->flip.flag_buf_ptr = 0;
-		if (*status & (VAC_UART_STATUS_RX_BREAK_CHANGE 
-			       | VAC_UART_STATUS_RX_ERR_PARITY 
-			       | VAC_UART_STATUS_RX_ERR_FRAME 
+		if (*status & (VAC_UART_STATUS_RX_BREAK_CHANGE
+			       | VAC_UART_STATUS_RX_ERR_PARITY
+			       | VAC_UART_STATUS_RX_ERR_FRAME
 			       | VAC_UART_STATUS_RX_ERR_OVERRUN)) {
 			/*
 			 * For statistics only
 			 */
 			if (*status & VAC_UART_STATUS_RX_BREAK_CHANGE) {
-				*status &= ~(VAC_UART_STATUS_RX_ERR_FRAME 
+				*status &= ~(VAC_UART_STATUS_RX_ERR_FRAME
 					     | VAC_UART_STATUS_RX_ERR_PARITY);
 				icount->brk++;
 			} else if (*status & VAC_UART_STATUS_RX_ERR_PARITY)
@@ -379,7 +379,7 @@
 				goto ignore_char;
 			}
 			*status &= info->read_status_mask;
-		
+
 			if (*status & (VAC_UART_STATUS_RX_BREAK_CHANGE)) {
 #ifdef SERIAL_DEBUG_INTR
 				baget_printk("handling break....");
@@ -417,9 +417,9 @@
 static _INLINE_ void transmit_chars(struct async_struct *info, int *intr_done)
 {
 	int count;
-	
+
 	if (info->x_char) {
-		serial_outw(info, VAC_UART_TX, 
+		serial_outw(info, VAC_UART_TX,
 			    (((unsigned short)info->x_char)<<8));
 		info->state->icount.tx++;
 		info->x_char = 0;
@@ -435,7 +435,7 @@
 	}
 	count = info->xmit_fifo_size;
 	do {
-		serial_out(info, VAC_UART_TX, 
+		serial_out(info, VAC_UART_TX,
 			   (unsigned short)info->xmit_buf[info->xmit_tail++] \
 			   << 8);
 		info->xmit_tail = info->xmit_tail & (SERIAL_XMIT_SIZE-1);
@@ -443,7 +443,7 @@
 		if (--info->xmit_cnt <= 0)
 			break;
 	} while (--count > 0);
-	
+
 	if (info->xmit_cnt < WAKEUP_CHARS)
 		rs_sched_event(info, RS_EVENT_WRITE_WAKEUP);
 
@@ -463,7 +463,7 @@
 {
 #if 0 /* VAC hasn't modem control */
 	wake_up_interruptible(&info->open_wait);
-	rs_sched_event(info, RS_EVENT_WRITE_WAKEUP); 
+	rs_sched_event(info, RS_EVENT_WRITE_WAKEUP);
 #endif
 }
 
@@ -484,10 +484,10 @@
      (VAC_INT_CTRL_UART_A_PIO7|VAC_INT_CTRL_UART_B_DISABLE)))
 
 /*
- *  Following two functions were proposed by Pavel Osipenko 
+ *  Following two functions were proposed by Pavel Osipenko
  *  to make VAC/VIC behaviour more regular.
  */
-static void intr_begin(struct async_struct* info) 
+static void intr_begin(struct async_struct* info)
 {
 	serial_outw(info, VAC_UART_INT_MASK, 0);
 }
@@ -495,7 +495,7 @@
 static void intr_end(struct async_struct* info)
 {
 	vac_outw(VAC_INT_CTRL_UART_DISABLE(info), VAC_INT_CTRL);
-	vac_outw(VAC_INT_CTRL_UART_ENABLE,        VAC_INT_CTRL); 
+	vac_outw(VAC_INT_CTRL_UART_ENABLE,        VAC_INT_CTRL);
 
 	serial_outw(info, VAC_UART_INT_MASK, info->IER);
 }
@@ -522,8 +522,8 @@
 	        intr_begin(info);  /* Mark we begin port handling */
 
 		if (!info->tty ||
-		     (serial_inw (info, VAC_UART_INT_STATUS) 
-		      & VAC_UART_STATUS_INTS) == 0) 
+		     (serial_inw (info, VAC_UART_INT_STATUS)
+		      & VAC_UART_STATUS_INTS) == 0)
 		    {
 			if (!end_mark)
 				end_mark = info;
@@ -565,7 +565,7 @@
 #endif /* #ifdef CONFIG_SERIAL_SHARE_IRQ */
 
 
-/* The original driver was simplified here: 
+/* The original driver was simplified here:
    two functions were joined to reduce code */
 
 #define rs_interrupt_single rs_interrupt
@@ -595,7 +595,7 @@
 {
 	struct async_struct	*info = (struct async_struct *) private_;
 	struct tty_struct	*tty;
-	
+
 	tty = info->tty;
 	if (!tty)
 		return;
@@ -695,7 +695,7 @@
 			retval = -EBUSY;
 			goto errout;
 #endif /* CONFIG_SERIAL_SHARE_IRQ */
-		} else 
+		} else
 			handler = rs_interrupt_single;
 
 
@@ -729,7 +729,7 @@
 	(void) serial_inw(info, VAC_UART_RX);
 
 	/*
-	 * Now, initialize the UART 
+	 * Now, initialize the UART
 	 */
 	serial_outp(info, VAC_UART_MODE, VAC_UART_MODE_INITIAL); /*reset DLAB*/
 
@@ -739,7 +739,7 @@
 	info->IER = VAC_UART_INT_RX_BREAK_CHANGE | VAC_UART_INT_RX_ERRS | \
                         VAC_UART_INT_RX_READY;
 	serial_outp(info, VAC_UART_INT_MASK, info->IER); /*enable interrupts*/
-	
+
 	/*
 	 * And clear the interrupt registers again for luck.
 	 */
@@ -763,7 +763,7 @@
 	info->flags |= ASYNC_INITIALIZED;
 	restore_flags(flags);
 	return 0;
-	
+
 errout:
 	restore_flags(flags);
 	return retval;
@@ -788,7 +788,7 @@
 	baget_printk("Shutting down serial port %d (irq %d)....", info->line,
 	       state->irq);
 #endif
-	
+
 	save_flags(flags); cli(); /* Disable interrupts */
 
 	/*
@@ -796,7 +796,7 @@
 	 * here so the queue might never be waken up
 	 */
 	wake_up_interruptible(&info->delta_msr_wait);
-	
+
 	/*
 	 * First unlink the serial port from the IRQ chain...
 	 */
@@ -807,7 +807,7 @@
 	else
 		IRQ_ports[state->irq] = info->next_port;
 	figure_IRQ_timeout(state->irq);
-	
+
 	/*
 	 * Free the IRQ, if necessary
 	 */
@@ -817,7 +817,7 @@
 			free_irq(state->irq, NULL);
 			retval = request_irq(state->irq, rs_interrupt_single,
 					     IRQ_T(state), "serial", NULL);
-			
+
 			if (retval)
 				printk("serial shutdown: request_irq: error %d"
 				       "  Couldn't reacquire IRQ.\n", retval);
@@ -832,11 +832,11 @@
 
 	info->IER = 0;
 	serial_outp(info, VAC_UART_INT_MASK, 0x00);	/* disable all intrs */
-	
+
 	/* disable break condition */
 	serial_out(info, VAC_UART_MODE, serial_inp(info, VAC_UART_MODE) & \
 		   ~VAC_UART_MODE_SEND_BREAK);
-	
+
 	if (info->tty)
 		set_bit(TTY_IO_ERROR, &info->tty->flags);
 
@@ -845,14 +845,14 @@
 }
 
 /*
- *  When we set line mode, we call this function 
+ *  When we set line mode, we call this function
  *  for Baget-specific adjustments.
  */
 
 static inline unsigned short vac_uart_mode_fixup (unsigned short cval)
 {
 #ifdef QUAD_UART_SPEED
-	/* 
+	/*
 	 *  When we are using 4-x advantage in speed:
 	 *
 	 *  Disadvantage : can't support 75, 150 bauds
@@ -863,7 +863,7 @@
 	cval |= VAC_UART_MODE_BAUD(speed-2);
 #endif
 
-	/* 
+	/*
 	 *  In general, we have Tx and Rx ON all time
 	 *  and use int mask flag for their disabling.
 	 */
@@ -872,10 +872,10 @@
 	cval |= VAC_UART_MODE_CHAR_RX_ENABLE;
 	cval |= VAC_UART_MODE_CHAR_TX_ENABLE;
 
-        /* Low 4 bits are not used in UART */	
-	cval &= ~0xf; 
+        /* Low 4 bits are not used in UART */
+	cval &= ~0xf;
 
-	return cval; 
+	return cval;
 }
 
 /*
@@ -901,8 +901,8 @@
 	      case CS7: cval = 0x0;  bits = 9; break;
 	      case CS8: cval = VAC_UART_MODE_8BIT_CHAR; bits = 10; break;
 	      /* Never happens, but GCC is too dumb to figure it out */
-	      case CS5: 
-	      case CS6: 
+	      case CS5:
+	      case CS6:
 	      default:  cval = 0x0; bits = 9; break;
 	      }
 	cval &= ~VAC_UART_MODE_PARITY_ENABLE;
@@ -949,7 +949,7 @@
 			VAC_UART_STATUS_RX_ERR_PARITY;
 	if (I_BRKINT(info->tty) || I_PARMRK(info->tty))
 		info->read_status_mask |= VAC_UART_STATUS_RX_BREAK_CHANGE;
-	
+
 	/*
 	 * Characters to ignore
 	 */
@@ -960,7 +960,7 @@
 	if (I_IGNBRK(info->tty)) {
 		info->ignore_status_mask |= VAC_UART_STATUS_RX_BREAK_CHANGE;
 		/*
-		 * If we're ignore parity and break indicators, ignore 
+		 * If we're ignore parity and break indicators, ignore
 		 * overruns too.  (For real raw support).
 		 */
 		if (I_IGNPAR(info->tty))
@@ -1045,7 +1045,7 @@
 {
 	struct async_struct *info = (struct async_struct *)tty->driver_data;
 	unsigned long flags;
-				
+
 	if (serial_paranoia_check(info, tty->device, "rs_flush_chars"))
 		return;
 
@@ -1065,7 +1065,7 @@
 	int	c, ret = 0;
 	struct async_struct *info = (struct async_struct *)tty->driver_data;
 	unsigned long flags;
-		
+
 	if (serial_paranoia_check(info, tty->device, "rs_write"))
 		return 0;
 
@@ -1103,7 +1103,7 @@
 		up(&tmp_buf_sem);
 	} else {
 		while (1) {
-			cli();		
+			cli();
 			c = MIN(count,
 				MIN(SERIAL_XMIT_SIZE - info->xmit_cnt - 1,
 				    SERIAL_XMIT_SIZE - info->xmit_head));
@@ -1133,7 +1133,7 @@
 {
 	struct async_struct *info = (struct async_struct *)tty->driver_data;
 	int	ret;
-				
+
 	if (serial_paranoia_check(info, tty->device, "rs_write_room"))
 		return 0;
 	ret = SERIAL_XMIT_SIZE - info->xmit_cnt - 1;
@@ -1145,7 +1145,7 @@
 static int rs_chars_in_buffer(struct tty_struct *tty)
 {
 	struct async_struct *info = (struct async_struct *)tty->driver_data;
-				
+
 	if (serial_paranoia_check(info, tty->device, "rs_chars_in_buffer"))
 		return 0;
 	return info->xmit_cnt;
@@ -1154,14 +1154,14 @@
 static void rs_flush_buffer(struct tty_struct *tty)
 {
 	struct async_struct *info = (struct async_struct *)tty->driver_data;
-	unsigned long flags; 
-				
+	unsigned long flags;
+
 	if (serial_paranoia_check(info, tty->device, "rs_flush_buffer"))
 		return;
 
 	save_flags(flags); cli();
 	info->xmit_cnt = info->xmit_head = info->xmit_tail = 0;
-	restore_flags(flags); 
+	restore_flags(flags);
 
 	wake_up_interruptible(&tty->write_wait);
 	if ((tty->flags & (1 << TTY_DO_WRITE_WAKEUP)) &&
@@ -1191,7 +1191,7 @@
 /*
  * ------------------------------------------------------------
  * rs_throttle()
- * 
+ *
  * This routine is called by the upper-layer tty layer to signal that
  * incoming characters should be throttled.
  * ------------------------------------------------------------
@@ -1202,14 +1202,14 @@
 
 #ifdef SERIAL_DEBUG_THROTTLE
 	char	buf[64];
-	
+
 	baget_printk("throttle %s: %d....\n", tty_name(tty, buf),
 	       tty->ldisc.chars_in_buffer(tty));
 #endif
 
 	if (serial_paranoia_check(info, tty->device, "rs_throttle"))
 		return;
-	
+
 	if (I_IXOFF(tty))
 		rs_send_xchar(tty, STOP_CHAR(tty));
 }
@@ -1219,14 +1219,14 @@
 	struct async_struct *info = (struct async_struct *)tty->driver_data;
 #ifdef SERIAL_DEBUG_THROTTLE
 	char	buf[64];
-	
+
 	baget_printk("unthrottle %s: %d....\n", tty_name(tty, buf),
 	       tty->ldisc.chars_in_buffer(tty));
 #endif
 
 	if (serial_paranoia_check(info, tty->device, "rs_unthrottle"))
 		return;
-	
+
 	if (I_IXOFF(tty)) {
 		if (info->x_char)
 			info->x_char = 0;
@@ -1246,7 +1246,7 @@
 {
 	struct serial_struct tmp;
 	struct serial_state *state = info->state;
-   
+
 	if (!retinfo)
 		return -EFAULT;
 	memset(&tmp, 0, sizeof(tmp));
@@ -1278,11 +1278,11 @@
 		return -EFAULT;
 	state = info->state;
 	old_state = *state;
-  
+
 	change_irq = new_serial.irq != state->irq;
 	change_port = (new_serial.port != state->port) ||
 		(new_serial.hub6 != state->hub6);
-  
+
 	if (!capable(CAP_SYS_ADMIN)) {
 		if (change_irq || change_port ||
 		    (new_serial.baud_base != state->baud_base) ||
@@ -1344,7 +1344,7 @@
 	info->xmit_fifo_size = state->xmit_fifo_size =
 		new_serial.xmit_fifo_size;
 
-	release_region(state->port,8); 
+	release_region(state->port,8);
 	if (change_port || change_irq) {
 		/*
 		 * We need to shutdown the serial port at the old
@@ -1358,7 +1358,7 @@
 	if (state->type != PORT_UNKNOWN)
 		request_region(state->port,8,"serial(set)");
 
-	
+
 check_and_exit:
 	if (!state->port || !state->type)
 		return 0;
@@ -1390,13 +1390,13 @@
  * 	    release the bus after transmitting. This must be done when
  * 	    the transmit shift register is empty, not be done when the
  * 	    transmit holding register is empty.  This functionality
- * 	    allows an RS485 driver to be written in user space. 
+ * 	    allows an RS485 driver to be written in user space.
  */
 static int get_lsr_info(struct async_struct * info, unsigned int *value)
 {
 	unsigned short status;
 	unsigned int result;
-	unsigned long flags; 
+	unsigned long flags;
 
 	save_flags(flags); cli();
 	status = serial_inw(info, VAC_UART_INT_STATUS);
@@ -1431,13 +1431,13 @@
 static int do_autoconfig(struct async_struct * info)
 {
 	int			retval;
-	
+
 	if (!capable(CAP_SYS_ADMIN))
 		return -EPERM;
-	
+
 	if (info->state->count > 1)
 		return -EBUSY;
-	
+
 	shutdown(info);
 
 	autoconfig(info->state);
@@ -1455,7 +1455,7 @@
 {
 	struct async_struct * info = (struct async_struct *)tty->driver_data;
 	unsigned long flags;
-	
+
 	if (serial_paranoia_check(info, tty->device, "rs_break"))
 		return;
 
@@ -1480,7 +1480,7 @@
 	struct async_struct * info = (struct async_struct *)tty->driver_data;
 	struct async_icount cprev, cnow;	/* kernel counter temps */
 	struct serial_icounter_struct *p_cuser;	/* user space */
-	unsigned long flags; 
+	unsigned long flags;
 
 	if (serial_paranoia_check(info, tty->device, "rs_ioctl"))
 		return -ENODEV;
@@ -1491,7 +1491,7 @@
 		if (tty->flags & (1 << TTY_IO_ERROR))
 		    return -EIO;
 	}
-	
+
 	switch (cmd) {
 		case TIOCMGET:
 			return get_modem_info(info, (unsigned int *) arg);
@@ -1516,7 +1516,7 @@
 					 info, sizeof(struct async_struct)))
 				return -EFAULT;
 			return 0;
-				
+
 		/*
 		 * Wait for any of the 4 modem inputs (DCD,RI,DSR,CTS)to change
 		 * - mask passed in arg for lines of interest
@@ -1533,21 +1533,21 @@
 				/* see if a signal did it */
 				if (signal_pending(current))
 					return -ERESTARTSYS;
-				save_flags(flags); cli(); 
+				save_flags(flags); cli();
 				cnow = info->state->icount; /* atomic copy */
-				restore_flags(flags); 
-				if (cnow.rng == cprev.rng && 
-				    cnow.dsr == cprev.dsr && 
-				    cnow.dcd == cprev.dcd && 
+				restore_flags(flags);
+				if (cnow.rng == cprev.rng &&
+				    cnow.dsr == cprev.dsr &&
+				    cnow.dcd == cprev.dcd &&
 				    cnow.cts == cprev.cts)
 					return -EIO; /* no change => error */
-				if ( ((arg & TIOCM_RNG) && 
+				if ( ((arg & TIOCM_RNG) &&
 				      (cnow.rng != cprev.rng)) ||
-				     ((arg & TIOCM_DSR) && 
+				     ((arg & TIOCM_DSR) &&
 				      (cnow.dsr != cprev.dsr)) ||
-				     ((arg & TIOCM_CD)  && 
+				     ((arg & TIOCM_CD)  &&
 				      (cnow.dcd != cprev.dcd)) ||
-				     ((arg & TIOCM_CTS) && 
+				     ((arg & TIOCM_CTS) &&
 				      (cnow.cts != cprev.cts)) ) {
 					return 0;
 				}
@@ -1555,14 +1555,14 @@
 			}
 			/* NOTREACHED */
 
-		/* 
+		/*
 		 * Get counter of input serial line interrupts (DCD,RI,DSR,CTS)
 		 * Return: write counters to the user passed counter struct
 		 * NB: both 1->0 and 0->1 transitions are counted except for
 		 *     RI where only 0->1 is counted.
 		 */
 		case TIOCGICOUNT:
-			save_flags(flags); cli(); 
+			save_flags(flags); cli();
 			cnow = info->state->icount;
 			restore_flags(flags);
 			p_cuser = (struct serial_icounter_struct *) arg;
@@ -1596,7 +1596,7 @@
                        /* "setserial -W" is called in Debian boot */
                         printk ("TIOCSER?WILD ioctl obsolete, ignored.\n");
                         return 0;
- 
+
 		default:
 			return -ENOIOCTLCMD;
 		}
@@ -1609,7 +1609,7 @@
 	unsigned int cflag = tty->termios->c_cflag;
 
 	if (   (cflag == old_termios->c_cflag)
-	    && (   RELEVANT_IFLAG(tty->termios->c_iflag) 
+	    && (   RELEVANT_IFLAG(tty->termios->c_iflag)
 		== RELEVANT_IFLAG(old_termios->c_iflag)))
 	  return;
 
@@ -1627,7 +1627,7 @@
 /*
  * ------------------------------------------------------------
  * rs_close()
- * 
+ *
  * This routine is called when the serial port gets closed.  First, we
  * wait for the last remaining data to be sent.  Then, we unlink its
  * async structure from the interrupt chain if necessary, and we free
@@ -1644,18 +1644,18 @@
 		return;
 
 	state = info->state;
-	
+
 	save_flags(flags); cli();
-	
+
 	if (tty_hung_up_p(filp)) {
 		DBG_CNT("before DEC-hung");
 		MOD_DEC_USE_COUNT;
 		restore_flags(flags);
 		return;
 	}
-	
+
 #ifdef SERIAL_DEBUG_OPEN
-	baget_printk("rs_close ttys%d, count = %d\n", 
+	baget_printk("rs_close ttys%d, count = %d\n",
 		     info->line, state->count);
 #endif
 	if ((tty->count == 1) && (state->count != 1)) {
@@ -1693,7 +1693,7 @@
 	if (info->flags & ASYNC_CALLOUT_ACTIVE)
 		info->state->callout_termios = *tty->termios;
 	/*
-	 * Now we wait for the transmit buffer to clear; and we notify 
+	 * Now we wait for the transmit buffer to clear; and we notify
 	 * the line discipline to only process XON/XOFF characters.
 	 */
 	tty->closing = 1;
@@ -1746,7 +1746,7 @@
 	struct async_struct * info = (struct async_struct *)tty->driver_data;
 	unsigned long orig_jiffies, char_time;
 	int lsr;
-	
+
 	if (serial_paranoia_check(info, tty->device, "rs_wait_until_sent"))
 		return;
 
@@ -1761,7 +1761,7 @@
 	 * Set the check interval to be 1/5 of the estimated time to
 	 * send a single character, and make it at least 1.  The check
 	 * interval should also be less than the timeout.
-	 * 
+	 *
 	 * Note: we have to use pretty tight timings here to satisfy
 	 * the NIST-PCTS.
 	 */
@@ -1772,7 +1772,7 @@
 	if (timeout)
 	  char_time = MIN(char_time, timeout);
 #ifdef SERIAL_DEBUG_RS_WAIT_UNTIL_SENT
-	baget_printk("In rs_wait_until_sent(%d) check=%lu...", 
+	baget_printk("In rs_wait_until_sent(%d) check=%lu...",
 		     timeout, char_time);
 	baget_printk("jiff=%lu...", jiffies);
 #endif
@@ -1801,12 +1801,12 @@
 {
 	struct async_struct * info = (struct async_struct *)tty->driver_data;
 	struct serial_state *state = info->state;
-	
+
 	if (serial_paranoia_check(info, tty->device, "rs_hangup"))
 		return;
 
 	state = info->state;
-	
+
 	rs_flush_buffer(tty);
 	shutdown(info);
 	info->event = 0;
@@ -1827,8 +1827,8 @@
 	DECLARE_WAITQUEUE(wait, current);
 	struct serial_state *state = info->state;
 	int		retval;
-	int		do_clocal = 0,  extra_count = 0;  
-	unsigned long   flags; 
+	int		do_clocal = 0,  extra_count = 0;
+	unsigned long   flags;
 
 	/*
 	 * If the device is in the middle of being closed, then block
@@ -1864,7 +1864,7 @@
 		info->flags |= ASYNC_CALLOUT_ACTIVE;
 		return 0;
 	}
-	
+
 	/*
 	 * If non-blocking mode is set, or the port is not enabled,
 	 * then make the check up front and then exit.
@@ -1884,7 +1884,7 @@
 		if (tty->termios->c_cflag & CLOCAL)
 			do_clocal = 1;
 	}
-	
+
 	/*
 	 * Block waiting for the carrier detect and the line to become
 	 * free (i.e., not in use by the callout).  While we are in
@@ -1898,12 +1898,12 @@
 	baget_printk("block_til_ready before block: ttys%d, count = %d\n",
 	       state->line, state->count);
 #endif
-	save_flags(flags); cli(); 
+	save_flags(flags); cli();
 	if (!tty_hung_up_p(filp)) {
-		extra_count = 1; 
+		extra_count = 1;
 		state->count--;
 	}
-	restore_flags(flags); 
+	restore_flags(flags);
 	info->blocked_open++;
 	while (1) {
 		set_current_state(TASK_INTERRUPTIBLE);
@@ -1913,7 +1913,7 @@
 			if (info->flags & ASYNC_HUP_NOTIFY)
 				retval = -EAGAIN;
 			else
-				retval = -ERESTARTSYS;	
+				retval = -ERESTARTSYS;
 #else
 			retval = -EAGAIN;
 #endif
@@ -1996,10 +1996,10 @@
 	int 			retval, line;
 	unsigned long		page;
 
-	MOD_INC_USE_COUNT; 
+	MOD_INC_USE_COUNT;
 	line = MINOR(tty->device) - tty->driver.minor_start;
 	if ((line < 0) || (line >= NR_PORTS)) {
-		MOD_DEC_USE_COUNT; 
+		MOD_DEC_USE_COUNT;
 		return -ENODEV;
 	}
 	retval = get_async_struct(line, &info);
@@ -2010,12 +2010,12 @@
         tty->driver_data = info;
         info->tty = tty;
 	if (serial_paranoia_check(info, tty->device, "rs_open")) {
-	        /* MOD_DEC_USE_COUNT; "info->tty" will cause this */ 
+	        /* MOD_DEC_USE_COUNT; "info->tty" will cause this */
 		return -ENODEV;
 	}
 
 #ifdef SERIAL_DEBUG_OPEN
-	baget_printk("rs_open %s%d, count = %d\n", 
+	baget_printk("rs_open %s%d, count = %d\n",
 		     tty->driver.name, info->line,
 		     info->state->count);
 #endif
@@ -2073,7 +2073,7 @@
 	    (info->flags & ASYNC_SPLIT_TERMIOS)) {
 		if (tty->driver.subtype == SERIAL_TYPE_NORMAL)
 			*tty->termios = info->state->normal_termios;
-		else 
+		else
 			*tty->termios = info->state->callout_termios;
 		change_speed(info);
 	}
@@ -2103,7 +2103,7 @@
 	int	ret;
 
 	ret = sprintf(buf, "%d: uart:%s port:%X irq:%d",
-		      state->line, uart_config[state->type].name, 
+		      state->line, uart_config[state->type].name,
 		      state->port, state->irq);
 
 	if (!state->port || (state->type == PORT_UNKNOWN)) {
@@ -2123,7 +2123,7 @@
 		info->quot = 0;
 		info->tty = 0;
 	}
-	
+
 	if (info->quot) {
 		ret += sprintf(buf+ret, " baud:%d",
 			       state->baud_base / info->quot);
@@ -2134,12 +2134,12 @@
 
 	if (state->icount.frame)
 		ret += sprintf(buf+ret, " fe:%d", state->icount.frame);
-	
+
 	if (state->icount.parity)
 		ret += sprintf(buf+ret, " pe:%d", state->icount.parity);
-	
+
 	if (state->icount.brk)
-		ret += sprintf(buf+ret, " brk:%d", state->icount.brk);	
+		ret += sprintf(buf+ret, " brk:%d", state->icount.brk);
 
 	if (state->icount.overrun)
 		ret += sprintf(buf+ret, " oe:%d", state->icount.overrun);
@@ -2218,14 +2218,14 @@
  */
 static void autoconfig(struct serial_state * state)
 {
-	struct async_struct *info, scr_info; 
+	struct async_struct *info, scr_info;
 	unsigned long flags;
 
 	/* Setting up important parameters */
 	state->type = VAC_UART_TYPE;
 	state->xmit_fifo_size = uart_config[state->type].dfl_xmit_fifo_size;
 
-	info = &scr_info;       /* This is just for serial_{in,out} */   
+	info = &scr_info;       /* This is just for serial_{in,out} */
 
 	info->magic = SERIAL_MAGIC;
         info->port  = state->port;
@@ -2233,7 +2233,7 @@
 
         save_flags(flags); cli();
 
-	/* + Flush VAC input fifo */ 
+	/* + Flush VAC input fifo */
         (void)serial_in(info, VAC_UART_RX);
         (void)serial_in(info, VAC_UART_RX);
         (void)serial_in(info, VAC_UART_RX);
@@ -2273,7 +2273,7 @@
                                 do {
                                         serial_out(info, VAC_UART_INT_MASK, 0);
                                         info->IER |= VAC_UART_INT_TX_EMPTY;
-                                        serial_out(info, VAC_UART_INT_MASK, 
+                                        serial_out(info, VAC_UART_INT_MASK,
 						   info->IER);
                                         info = info->next_port;
                                 } while (info);
@@ -2303,7 +2303,7 @@
                 mod_timer(&vacs_timer, jiffies + IRQ_timeout[0] - 2);
         }
 }
- 
+
 /*
  * The serial driver boot-time initialization code!
  */
@@ -2336,7 +2336,7 @@
  *  It is not a good idea to share interrupts with console,
  *  but it looks we cannot avoid it.
  */
-#if 0 
+#if 0
 
 #ifdef CONFIG_SERIAL_CONSOLE
 	/*
@@ -2355,7 +2355,7 @@
 	show_serial_version();
 
 	/* Initialize the tty_driver structure */
-	
+
 	memset(&serial_driver, 0, sizeof(struct tty_driver));
 	serial_driver.magic = TTY_DRIVER_MAGIC;
 	serial_driver.driver_name = "serial";
@@ -2393,7 +2393,7 @@
 	serial_driver.break_ctl = rs_break;
 	serial_driver.wait_until_sent = rs_wait_until_sent;
 	serial_driver.read_proc = rs_read_proc;
-	
+
 	/*
 	 * The callout device is just like normal device except for
 	 * major number and the subtype code.
@@ -2409,7 +2409,7 @@
 		panic("Couldn't register serial driver");
 	if (tty_register_driver(&callout_driver))
 		panic("Couldn't register callout driver");
-	
+
 	for (i = 0, state = rs_table; i < NR_PORTS; i++,state++) {
 		state->magic = SSTATE_MAGIC;
 		state->line = i;
@@ -2419,7 +2419,7 @@
 		state->closing_wait = 30*HZ;
 		state->callout_termios = callout_driver.init_termios;
 		state->normal_termios = serial_driver.init_termios;
-		state->icount.cts = state->icount.dsr = 
+		state->icount.cts = state->icount.dsr =
 			state->icount.rng = state->icount.dcd = 0;
 		state->icount.rx = state->icount.tx = 0;
 		state->icount.frame = state->icount.parity = 0;
@@ -2518,13 +2518,13 @@
 	return rs_init();
 }
 
-void cleanup_module(void) 
+void cleanup_module(void)
 {
 	unsigned long flags;
 	int e1, e2;
 	int i;
 
-	printk("Unloading %s: version %s\n", serial_name, serial_version); 
+	printk("Unloading %s: version %s\n", serial_name, serial_version);
 	save_flags(flags);
 	cli();
 
@@ -2535,7 +2535,7 @@
 		printk("SERIAL: failed to unregister serial driver (%d)\n",
 		       e1);
 	if ((e2 = tty_unregister_driver(&callout_driver)))
-		printk("SERIAL: failed to unregister callout driver (%d)\n", 
+		printk("SERIAL: failed to unregister callout driver (%d)\n",
 		       e2);
 	restore_flags(flags);
 
@@ -2765,19 +2765,19 @@
 	/* Baget VAC need some adjustments for computed value */
 	cval = vac_uart_mode_fixup(cval);
 
-        serial_outp(&scr_info, VAC_UART_MODE, cval);  
+        serial_outp(&scr_info, VAC_UART_MODE, cval);
 	serial_outp(&scr_info, VAC_UART_INT_MASK, 0);
 
 	return 0;
 }
 
 static struct console sercons = {
-	name:		"ttyS",
-	write:		serial_console_write,
-	device:		serial_console_device,
-	setup:		serial_console_setup,
-	flags:		CON_PRINTBUFFER,
-	index:		-1,
+	.name		= "ttyS",
+	.write		= serial_console_write,
+	.device		= serial_console_device,
+	.setup		= serial_console_setup,
+	.flags		= CON_PRINTBUFFER,
+	.index		= -1,
 };
 
 /*
@@ -2808,7 +2808,7 @@
 	autoconfig(info);	/* autoconfigure ttyS0, whatever that is */
 
 #ifdef PRINT_DEBUG_PORT_INFO
-	baget_printk("kgdb debug interface:: tty%02d at 0x%04x", 
+	baget_printk("kgdb debug interface:: tty%02d at 0x%04x",
 		     info->line, info->port);
 	switch (info->type) {
 		case PORT_8250:
@@ -2831,7 +2831,7 @@
 			break;
 	}
 #endif
-	
+
 	if (info->port == PORT_UNKNOWN)
 		return -1;
 
@@ -2843,7 +2843,7 @@
 	(void)serial_inp(info, VAC_UART_RX);
 
 	/*
-	 * Now, initialize the UART 
+	 * Now, initialize the UART
 	 */
 	serial_outp(info,VAC_UART_MODE,VAC_UART_MODE_INITIAL); /* reset DLAB */
 	if (info->flags & ASYNC_FOURPORT) {
diff -urNd -urNd linux-2.4.20/arch/mips/baget/wbflush.c linux-2.4.20-mipscvs-20050106/arch/mips/baget/wbflush.c
--- linux-2.4.20/arch/mips/baget/wbflush.c	2000-02-25 00:52:30.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/wbflush.c	1969-12-31 18:00:00.000000000 -0600
@@ -1,24 +0,0 @@
-/*
- * Setup the right wbflush routine for Baget/MIPS.
- *
- * Copyright (C) 1999 Gleb Raiko & Vladimir Roganov
- */
-
-#include <linux/init.h>
-#include <asm/bootinfo.h>
-
-void (*__wbflush) (void);
-
-static void wbflush_baget(void);
-
-void __init wbflush_setup(void)
-{
-	__wbflush = wbflush_baget;
-}
-
-/*
- * Baget/MIPS doesnt need to write back the WB.
- */
-static void wbflush_baget(void)
-{
-}
diff -urNd -urNd linux-2.4.20/arch/mips/boot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/boot/CVS/Entries
--- linux-2.4.20/arch/mips/boot/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/boot/CVS/Entries	2005-01-06 23:08:21.000000000 -0600
@@ -0,0 +1,6 @@
+/.cvsignore/1.5.6.1/Tue Aug 27 23:00:29 2002/-ko/Tlinux_2_4_20
+/Makefile/1.13.2.2/Thu Aug  1 18:20:59 2002/-ko/Tlinux_2_4_20
+/addinitrd.c/1.1.6.2/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+/ecoff.h/1.1/Sat Mar 13 12:36:50 1999/-ko/Tlinux_2_4_20
+/elf2ecoff.c/1.6.2.5/Mon Nov 18 02:19:26 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/boot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/boot/CVS/Repository
--- linux-2.4.20/arch/mips/boot/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/boot/CVS/Repository	2005-01-06 23:00:01.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/boot
diff -urNd -urNd linux-2.4.20/arch/mips/boot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/boot/CVS/Root
--- linux-2.4.20/arch/mips/boot/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/boot/CVS/Root	2005-01-06 23:00:01.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/boot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/boot/CVS/Tag
--- linux-2.4.20/arch/mips/boot/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/boot/CVS/Tag	2005-01-06 23:00:01.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/boot/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/boot/.cvsignore
--- linux-2.4.20/arch/mips/boot/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/boot/.cvsignore	2002-08-27 18:00:29.000000000 -0500
@@ -0,0 +1,6 @@
+.depend
+.*.flags
+mkboot zImage zImage.tmp
+addinitrd
+elf2ecoff
+vmlinux.ecoff
diff -urNd -urNd linux-2.4.20/arch/mips/boot/elf2ecoff.c linux-2.4.20-mipscvs-20050106/arch/mips/boot/elf2ecoff.c
--- linux-2.4.20/arch/mips/boot/elf2ecoff.c	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/boot/elf2ecoff.c	2002-11-17 20:19:26.000000000 -0600
@@ -285,7 +285,7 @@
 	if (argc < 3 || argc > 4) {
 	      usage:
 		fprintf(stderr,
-			"usage: elf2aout <elf executable> <a.out executable> [-a]\n");
+			"usage: elf2ecoff <elf executable> <ecoff executable> [-a]\n");
 		exit(1);
 	}
 	if (argc == 4) {
diff -urNd -urNd linux-2.4.20/arch/mips/cobalt/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/CVS/Entries
--- linux-2.4.20/arch/mips/cobalt/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/CVS/Entries	2005-01-06 23:00:01.000000000 -0600
@@ -0,0 +1,10 @@
+/.cvsignore/1.6.2.1/Mon Nov 25 02:01:20 2002/-ko/Tlinux_2_4_20
+/Makefile/1.2.2.2/Tue Jun 25 15:46:59 2002/-ko/Tlinux_2_4_20
+/int-handler.S/1.2.2.7/Tue Jan 28 00:47:58 2003/-ko/Tlinux_2_4_20
+/irq.c/1.1.2.5/Mon Dec  2 00:24:45 2002/-ko/Tlinux_2_4_20
+/pci.c/1.2.2.9/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/promcon.c/1.1.2.3/Thu Nov  7 01:47:45 2002/-ko/Tlinux_2_4_20
+/reset.c/1.3.2.5/Mon Dec  2 00:24:45 2002/-ko/Tlinux_2_4_20
+/setup.c/1.2.2.7/Fri Jan 10 04:09:06 2003/-ko/Tlinux_2_4_20
+/via.c/1.2.2.5/Mon Sep  2 22:14:42 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/cobalt/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/CVS/Repository
--- linux-2.4.20/arch/mips/cobalt/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/CVS/Repository	2005-01-06 23:00:01.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/cobalt
diff -urNd -urNd linux-2.4.20/arch/mips/cobalt/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/CVS/Root
--- linux-2.4.20/arch/mips/cobalt/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/CVS/Root	2005-01-06 23:00:01.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/cobalt/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/CVS/Tag
--- linux-2.4.20/arch/mips/cobalt/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/CVS/Tag	2005-01-06 23:00:01.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/cobalt/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/.cvsignore
--- linux-2.4.20/arch/mips/cobalt/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/.cvsignore	2002-11-24 20:01:20.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/cobalt/int-handler.S linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/int-handler.S
--- linux-2.4.20/arch/mips/cobalt/int-handler.S	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/int-handler.S	2003-01-27 18:47:58.000000000 -0600
@@ -6,8 +6,7 @@
  * for more details.
  *
  * Copyright (C) 1995, 1996, 1997 by Ralf Baechle
- * Copyright (C) 2001 by Liam Davies (ldavies@agile.tv)
- *
+ * Copyright (C) 2001, 2002, 2003 by Liam Davies (ldavies@agile.tv)
  */
 #include <asm/asm.h>
 #include <asm/mipsregs.h>
@@ -30,7 +29,9 @@
 		/*
 		 * Get pending Interrupts
 		 */
-		mfc0	s0,CP0_CAUSE	# get irq mask
+		mfc0	s0,CP0_CAUSE	# get raw irq status
+		mfc0	a0,CP0_STATUS	# get irq mask
+		and	s0,s0,a0	# compute masked irq status
 
 		andi	a0,s0,CAUSEF_IP2	/* Check for Galileo timer */
 		beq	a0,zero,1f
@@ -57,7 +58,7 @@
 		 andi	a0,s0,CAUSEF_IP4
 
 		/* Ethernet 0 interrupt */
-		li	a0,COBALT_RAQ_ETH0_IRQ
+		li	a0,COBALT_ETH0_IRQ
 		jal     do_IRQ
 		 move	a1,sp
 
@@ -69,7 +70,7 @@
 		 andi	a0,s0,CAUSEF_IP5
 
 		/* Ethernet 1 interrupt */
-		li	a0,COBALT_RAQ_ETH1_IRQ
+		li	a0,COBALT_ETH1_IRQ
 		jal     do_IRQ
 		 move	a1,sp
 
@@ -80,7 +81,7 @@
 		 andi	a0,s0,CAUSEF_IP7
 
 		/* Serial interrupt */
-		li	a0,7
+		li	a0,COBALT_SERIAL_IRQ
 		jal     do_IRQ
 		 move	a1,sp
 
@@ -91,7 +92,7 @@
 		  nop
 
 		/* PCI interrupt */
-		li	a0,9
+		li	a0,COBALT_QUBE_SLOT_IRQ
 		jal     do_IRQ
 		 move	a1,sp
 
diff -urNd -urNd linux-2.4.20/arch/mips/cobalt/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/irq.c
--- linux-2.4.20/arch/mips/cobalt/irq.c	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/irq.c	2002-12-01 18:24:45.000000000 -0600
@@ -77,7 +77,7 @@
 	unsigned long flags;
 
 	save_and_cli(flags);
-	change_cp0_status(irqnr_to_type[irq], irqnr_to_type[irq]);
+	change_c0_status(irqnr_to_type[irq], irqnr_to_type[irq]);
 	restore_flags(flags);
 }
 
@@ -93,7 +93,7 @@
 	unsigned long flags;
 
 	save_and_cli(flags);
-	change_cp0_status(irqnr_to_type[irq], ~(irqnr_to_type[irq]));
+	change_c0_status(irqnr_to_type[irq], ~(irqnr_to_type[irq]));
 	restore_flags(flags);
 }
 
@@ -133,8 +133,8 @@
 
 	/* Mask all cpu interrupts
 	    (except IE4, we already masked those at VIA level) */
-	clear_cp0_status(ST0_IM);
-	set_cp0_status(IE_IRQ4);
+	clear_c0_status(ST0_IM);
+	set_c0_status(IE_IRQ4);
 
 	cli();
 
diff -urNd -urNd linux-2.4.20/arch/mips/cobalt/pci.c linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/pci.c
--- linux-2.4.20/arch/mips/cobalt/pci.c	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/pci.c	2003-01-11 11:53:10.000000000 -0600
@@ -48,7 +48,7 @@
 {
 	unsigned short pci_cmd;
 	unsigned long ioaddr_base = 0x10108000; /* It's magic, ask Doug. */
-	unsigned long memaddr_base = 0x12000000;
+	unsigned long memaddr_base = 0x12001000;
 	int i;
 
 	/* Enable bits in COMMAND so driver can talk to it. */
@@ -60,6 +60,9 @@
 	pci_write_config_byte(dev, PCI_INTERRUPT_LINE, COBALT_QUBE_SLOT_IRQ);
 	dev->irq = COBALT_QUBE_SLOT_IRQ;
 
+	ioaddr_base += 0x2000 * PCI_FUNC(dev->devfn);
+	memaddr_base += 0x2000 * PCI_FUNC(dev->devfn);
+
 	/* Fixup base addresses, we only support I/O at the moment. */
 	for(i = 0; i <= 5; i++) {
 		unsigned int regaddr = (PCI_BASE_ADDRESS_0 + (i * 4));
@@ -125,27 +128,18 @@
 
 	/* Fixup the first tulip located at device PCICONF_ETH0 */
 	if (PCI_SLOT(dev->devfn) == COBALT_PCICONF_ETH0) {
-		/*
-		 * The IRQ of the first Tulip is different on Qube and RaQ
-		 */
-		if (cobalt_board_id == COBALT_BRD_ID_RAQ2) {
-			/* Setup the first Tulip on the RAQ */
-			pci_write_config_byte(dev, PCI_INTERRUPT_LINE,
-					      COBALT_RAQ_ETH0_IRQ);
-			dev->irq = COBALT_RAQ_ETH0_IRQ;
-		} else {
-			/* All Qube's route this the same way. */
-			pci_write_config_byte(dev, PCI_INTERRUPT_LINE,
-					      COBALT_QUBE_ETH_IRQ);
-			dev->irq = COBALT_QUBE_ETH_IRQ;
-		}
+		/* Setup the first Tulip */
+		pci_write_config_byte(dev, PCI_INTERRUPT_LINE,
+				      COBALT_ETH0_IRQ);
+		dev->irq = COBALT_ETH0_IRQ;
+
 		dev->resource[0].start = 0x100000;
 		dev->resource[0].end = 0x10007f;
-		if (dev->resource[1].start < 0x10000000) {
-			dev->resource[1].start = 0xe9ffec00;
-			dev->resource[1].end = 0xe9ffefff;
-			pci_write_config_dword(dev, PCI_BASE_ADDRESS_1, 0xe9ffec00);
-		}
+
+		dev->resource[1].start = 0x12000000;
+		dev->resource[1].end = dev->resource[1].start + 0x3ff;
+		pci_write_config_dword(dev, PCI_BASE_ADDRESS_1, dev->resource[1].start);
+
 	/* Fixup the second tulip located at device PCICONF_ETH1 */
 	} else if (PCI_SLOT(dev->devfn) == COBALT_PCICONF_ETH1) {
 
@@ -156,14 +150,18 @@
 
 		/* Give it it's IRQ. */
 		pci_write_config_byte(dev, PCI_INTERRUPT_LINE,
-                                      COBALT_RAQ_ETH1_IRQ);
-		dev->irq = COBALT_RAQ_ETH1_IRQ;
+                                      COBALT_ETH1_IRQ);
+		dev->irq = COBALT_ETH1_IRQ;
 
 		/* And finally, a usable I/O space allocation, right after what
 		 * the first Tulip uses.
 		 */
 		dev->resource[0].start = 0x101000;
 		dev->resource[0].end = 0x10107f;
+
+		dev->resource[1].start = 0x12000400;
+		dev->resource[1].end = dev->resource[1].start + 0x3ff;
+		pci_write_config_dword(dev, PCI_BASE_ADDRESS_1, dev->resource[1].start);
 	}
 }
 
@@ -219,7 +217,7 @@
 	 */
 	pci_read_config_word(dev, PCI_REVISION_ID, &galileo_id);
 	galileo_id &= 0xff;     /* mask off class info */
-	if (galileo_id == 0x10) {
+	if (galileo_id >= 0x10) {
 		/* New Galileo, assumes PCI stop line to VIA is connected. */
 		*((volatile unsigned int *)0xb4000c04) = 0x00004020;
 	} else if (galileo_id == 0x1 || galileo_id == 0x2) {
@@ -403,7 +401,7 @@
 	return str;
 }
 
-int pcibios_enable_device(struct pci_dev *dev)
+int pcibios_enable_device(struct pci_dev *dev, int mask)
 {
 	u16 cmd, status;
 
diff -urNd -urNd linux-2.4.20/arch/mips/cobalt/promcon.c linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/promcon.c
--- linux-2.4.20/arch/mips/cobalt/promcon.c	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/promcon.c	2002-11-06 19:47:45.000000000 -0600
@@ -77,12 +77,12 @@
 }
 
 static struct console ns16550_console = {
-    name:	"prom",
-    setup:	NULL,
-    write:	ns16550_console_write,
-    device:	ns16550_console_dev,
-    flags:	CON_PRINTBUFFER,
-    index:	-1,
+    .name	= "prom",
+    .setup	= NULL,
+    .write	= ns16550_console_write,
+    .device	= ns16550_console_dev,
+    .flags	= CON_PRINTBUFFER,
+    .index	= -1,
 };
 
 void __init ns16550_setup_console(void)
diff -urNd -urNd linux-2.4.20/arch/mips/cobalt/reset.c linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/reset.c
--- linux-2.4.20/arch/mips/cobalt/reset.c	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/reset.c	2002-12-01 18:24:45.000000000 -0600
@@ -28,10 +28,10 @@
 	 * kernel in the flush locks up somewhen during of after the PCI
 	 * detection stuff.
 	 */
-	set_cp0_status(ST0_BEV | ST0_ERL);
-	change_cp0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);
+	set_c0_status(ST0_BEV | ST0_ERL);
+	change_c0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);
 	flush_cache_all();
-	write_32bit_cp0_register(CP0_WIRED, 0);
+	write_c0_wired(0);
 	__asm__ __volatile__(
 		"jr\t%0"
 		:
diff -urNd -urNd linux-2.4.20/arch/mips/cobalt/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/setup.c
--- linux-2.4.20/arch/mips/cobalt/setup.c	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/setup.c	2003-01-09 22:09:06.000000000 -0600
@@ -6,7 +6,7 @@
  * for more details.
  *
  * Copyright (C) 1996, 1997 by Ralf Baechle
- * Copyright (C) 2001 by Liam Davies (ldavies@agile.tv)
+ * Copyright (C) 2001, 2002, 2003 by Liam Davies (ldavies@agile.tv)
  *
  */
 
@@ -99,7 +99,8 @@
 #ifdef CONFIG_BLK_DEV_IDE
 	ide_ops = &std_ide_ops;
 #endif
-        set_io_port_base(0xb0000000);
+
+        set_io_port_base(KSEG1ADDR(0x10000000));
 
 	/*
 	 * This is a prom style console. We just poke at the
diff -urNd -urNd linux-2.4.20/arch/mips/config-shared.in linux-2.4.20-mipscvs-20050106/arch/mips/config-shared.in
--- linux-2.4.20/arch/mips/config-shared.in	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/config-shared.in	2003-02-14 12:43:55.000000000 -0600
@@ -14,19 +14,29 @@
 fi
 endmenu
 
+#
+# Keep these alphabetically sorted
+#
 mainmenu_option next_comment
 comment 'Machine selection'
 dep_bool 'Support for Acer PICA 1 chipset (EXPERIMENTAL)' CONFIG_ACER_PICA_61 $CONFIG_EXPERIMENTAL
-dep_bool 'Support for Alchemy Semi PB1000 board' CONFIG_MIPS_PB1000 $CONFIG_MIPS32
+dep_bool 'Support for Alchemy Db1000 board' CONFIG_MIPS_DB1000 $CONFIG_MIPS32
+dep_bool 'Support for Alchemy Db1100 board' CONFIG_MIPS_DB1100 $CONFIG_MIPS32
+dep_bool 'Support for Alchemy Db1500 board' CONFIG_MIPS_DB1500 $CONFIG_MIPS32
+dep_bool 'Support for Alchemy PB1000 board' CONFIG_MIPS_PB1000 $CONFIG_MIPS32
 if [ "$CONFIG_MIPS_PB1000" = "y" ]; then
    bool '  Support for PCI AUTO Config' CONFIG_PCI_AUTO
 fi
-dep_bool 'Support for Alchemy Semi PB1100 board' CONFIG_MIPS_PB1100 $CONFIG_MIPS32
-dep_bool 'Support for Alchemy Semi PB1500 board' CONFIG_MIPS_PB1500 $CONFIG_MIPS32
-dep_bool 'Support for Algorithmics P4032 (EXPERIMENTAL)' CONFIG_ALGOR_P4032 $CONFIG_EXPERIMENTAL
+dep_bool 'Support for Alchemy PB1100 board' CONFIG_MIPS_PB1100 $CONFIG_MIPS32
+dep_bool 'Support for Alchemy PB1500 board' CONFIG_MIPS_PB1500 $CONFIG_MIPS32
 dep_bool 'Support for BAGET MIPS series (EXPERIMENTAL)' CONFIG_BAGET_MIPS $CONFIG_MIPS32 $CONFIG_EXPERIMENTAL
+bool 'Support for CASIO CASSIOPEIA E-10/15/55/65' CONFIG_CASIO_E55
 dep_bool 'Support for Cobalt Server (EXPERIMENTAL)' CONFIG_MIPS_COBALT $CONFIG_EXPERIMENTAL
-dep_bool 'Support for DECstations' CONFIG_DECSTATION $CONFIG_MIPS32
+if [ "$CONFIG_MIPS32" = "y" ]; then
+   bool 'Support for DECstations' CONFIG_DECSTATION
+else
+   dep_bool 'Support for DECstations (EXPERIMENTAL)' CONFIG_DECSTATION $CONFIG_EXPERIMENTAL
+fi
 dep_bool 'Support for Galileo EV64120 Evaluation board (EXPERIMENTAL)' CONFIG_MIPS_EV64120 $CONFIG_EXPERIMENTAL
 if [ "$CONFIG_MIPS_EV64120" = "y" ]; then
    bool '  Enable Second PCI (PCI1)' CONFIG_EVB_PCI1
@@ -38,13 +48,21 @@
 dep_bool 'Support for Galileo EV96100 Evaluation board (EXPERIMENTAL)' CONFIG_MIPS_EV96100 $CONFIG_EXPERIMENTAL
 bool 'Support for Globespan IVR board' CONFIG_MIPS_IVR
 bool 'Support for Hewlett Packard LaserJet board' CONFIG_HP_LASERJET
+bool 'Support for IBM WorkPad z50' CONFIG_IBM_WORKPAD
+bool 'Support for LASAT Networks platforms' CONFIG_LASAT
+if [ "$CONFIG_LASAT" = "y" ]; then
+   tristate '  PICVUE LCD display driver' CONFIG_PICVUE
+   dep_tristate '   PICVUE LCD display driver /proc interface' CONFIG_PICVUE_PROC $CONFIG_PICVUE
+   bool '  DS1603 RTC driver' CONFIG_DS1603
+   bool '  LASAT sysctl interface' CONFIG_LASAT_SYSCTL
+fi
 bool 'Support for ITE 8172G board' CONFIG_MIPS_ITE8172
 if [ "$CONFIG_MIPS_ITE8172" = "y" ]; then
    bool '  Support for older IT8172 (Rev C)' CONFIG_IT8172_REVC
 fi
-dep_bool 'Support for MIPS Atlas board (EXPERIMENTAL)' CONFIG_MIPS_ATLAS $CONFIG_EXPERIMENTAL
+bool 'Support for MIPS Atlas board' CONFIG_MIPS_ATLAS
 bool 'Support for MIPS Magnum 4000' CONFIG_MIPS_MAGNUM_4000
-dep_bool 'Support for MIPS Malta board (EXPERIMENTAL)' CONFIG_MIPS_MALTA $CONFIG_EXPERIMENTAL
+bool 'Support for MIPS Malta board' CONFIG_MIPS_MALTA
 dep_bool 'Support for MIPS SEAD board (EXPERIMENTAL)' CONFIG_MIPS_SEAD $CONFIG_EXPERIMENTAL
 bool 'Support for Momentum Ocelot board' CONFIG_MOMENCO_OCELOT
 bool 'Support for Momentum Ocelot-G board' CONFIG_MOMENCO_OCELOT_G
@@ -56,6 +74,9 @@
 fi
 bool 'Support for NEC Osprey board' CONFIG_NEC_OSPREY
 bool 'Support for NEC Eagle/Hawk board' CONFIG_NEC_EAGLE
+if [ "$CONFIG_NEC_EAGLE" = "y" ]; then
+   tristate '  NEC VRC4173 support' CONFIG_VRC4173
+fi
 bool 'Support for Olivetti M700-10' CONFIG_OLIVETTI_M700
 dep_bool 'Support for Philips Nino (EXPERIMENTAL)' CONFIG_NINO $CONFIG_MIPS32 $CONFIG_EXPERIMENTAL
 if [ "$CONFIG_NINO" = "y" ]; then
@@ -73,16 +94,68 @@
    bool '  Mapped kernel support' CONFIG_MAPPED_KERNEL
    bool '  Kernel text replication support' CONFIG_REPLICATE_KTEXT
    bool '  Exception handler replication support' CONFIG_REPLICATE_EXHANDLERS
-   bool '  Multi-Processing support' CONFIG_SMP
+   define_bool CONFIG_SMP_CAPABLE y
    #bool '  IP27 XXL' CONFIG_SGI_SN0_XXL
 fi
 dep_bool 'Support for SGI-IP32 (O2) (EXPERIMENTAL)' CONFIG_SGI_IP32 $CONFIG_EXPERIMENTAL
 dep_bool 'Support for Broadcom BCM1xxx SOCs (EXPERIMENTAL)' CONFIG_SIBYTE_SB1xxx_SOC $CONFIG_EXPERIMENTAL
 if [ "$CONFIG_SIBYTE_SB1xxx_SOC" = "y" ]; then
-   choice '   BCM1xxx SOC Type' \
-	  "BCM1250          CONFIG_SIBYTE_SB1250" BCM1250
+   choice '   BCM1xxx SOC-based board' \
+          "BCM91250A-SWARM     CONFIG_SIBYTE_SWARM \
+           BCM91250E-Sentosa   CONFIG_SIBYTE_SENTOSA \
+           BCM91120C-CRhine    CONFIG_SIBYTE_CRHINE \
+           BCM91120x-Carmel    CONFIG_SIBYTE_CARMEL \
+           BCM91125C-CRhone    CONFIG_SIBYTE_CRHONE \
+           BCM91125E-Rhone     CONFIG_SIBYTE_RHONE \
+           Other               CONFIG_SIBYTE_UNKNOWN" CONFIG_SIBYTE_SWARM
+
+   if [ "$CONFIG_SIBYTE_UNKNOWN" = "y" ]; then
+      choice '   BCM1xxx SOC Type' \
+          "BCM91250     CONFIG_SIBYTE_SB1250 \
+           BCM91120     CONFIG_SIBYTE_BCM1120 \
+           BCM91125     CONFIG_SIBYTE_BCM1125 \
+           BCM91125H    CONFIG_SIBYTE_BCM1125H" CONFIG_SIBYTE_SB1250
+      unset CONFIG_SIBYTE_BOARD
+   else
+      define_bool CONFIG_SIBYTE_BOARD y
+      if [ "$CONFIG_SIBYTE_SWARM" = "y" -o \
+           "$CONFIG_SIBYTE_SENTOSA" = "y" ]; then
+         define_bool CONFIG_SIBYTE_SB1250 y
+         unset CONFIG_SIBYTE_BCM1120
+         unset CONFIG_SIBYTE_BCM1125
+         unset CONFIG_SIBYTE_BCM1125H
+      fi
+      if [ "$CONFIG_SIBYTE_CRHINE" = "y" -o \
+           "$CONFIG_SIBYTE_CARMEL" = "y" ]; then
+         define_bool CONFIG_SIBYTE_BCM1120 y
+         unset CONFIG_SIBYTE_SB1250
+         unset CONFIG_SIBYTE_BCM1125
+         unset CONFIG_SIBYTE_BCM1125H
+      fi
+      if [ "$CONFIG_SIBYTE_CRHONE" = "y" -o \
+           "$CONFIG_SIBYTE_RHONE" = "y" ]; then
+         define_bool CONFIG_SIBYTE_BCM1125H y
+         unset CONFIG_SIBYTE_SB1250
+         unset CONFIG_SIBYTE_BCM1120
+         unset CONFIG_SIBYTE_BCM1125
+      fi
+   fi
+
+   if [ "$CONFIG_SIBYTE_BCM1120" = "y" -o \
+        "$CONFIG_SIBYTE_BCM1125" = "y" -o \
+        "$CONFIG_SIBYTE_BCM1125H" = "y" ]; then
+      define_bool CONFIG_SIBYTE_BCM112X y
+      choice 'BCM1xxx Pass' \
+         "Hybrid CONFIG_CPU_SB1_PASS_2 \
+          A1-A2  CONFIG_CPU_SB1_PASS_3" A1-A2
+   else
+      unset CONFIG_SIBYTE_BCM112X
+      choice 'BCM1250 Pass' \
+         "Pass1   CONFIG_CPU_SB1_PASS_1 \
+          A3-A10  CONFIG_CPU_SB1_PASS_2 \
+          B0-B3   CONFIG_CPU_SB1_PASS_2_2" A3-A10
+   fi
 
-   bool '   Running under simulation' CONFIG_SIMULATION
    bool '   Booting from CFE' CONFIG_SIBYTE_CFE
    dep_bool '     Use firmware console' CONFIG_SIBYTE_CFE_CONSOLE $CONFIG_SIBYTE_CFE
    if [ "$CONFIG_SIBYTE_CFE" = "n" ]; then
@@ -90,25 +163,41 @@
       int  '   Memory size (in megabytes)' CONFIG_SIBYTE_STANDALONE_RAM_SIZE 32
    fi
 
+   bool '   Support for Bus Watcher statistics' CONFIG_SIBYTE_BUS_WATCHER
    bool '   Support for SB1/SOC profiling - SB1/SCD perf counters' CONFIG_SIBYTE_SB1250_PROF
-   bool '   Support for ZBbus profiling' CONFIG_BCM1250_TBPROF
+   bool '   Support for ZBbus profiling' CONFIG_SIBYTE_TBPROF
 
-   if [ "$CONFIG_SIBYTE_SB1250" = "y" ]; then
-      if [ "$CONFIG_SIBYTE_STANDALONE" != "y" ]; then
-	 bool '   Multi-Processing support' CONFIG_SMP
+   if [ "$CONFIG_SIBYTE_SB1250" = "y" -o \
+        "$CONFIG_SIBYTE_BCM1125" = "y" -o \
+        "$CONFIG_SIBYTE_BCM1125H" = "y" ]; then
+      bool '   Support for BCM1250/BCM1125 onchip PCI controller' CONFIG_PCI
+   fi
+
+   if [ "$CONFIG_SIBYTE_SB1250" = "y" -o \
+        "$CONFIG_SIBYTE_BCM1125H" = "y" ]; then
+      if [ "$CONFIG_PCI" = "y" ]; then
+         define_bool CONFIG_SIBYTE_HAS_LDT y
       fi
    fi
 
-   if [ "$CONFIG_SIBYTE_SB1250" = "y" ]; then
-      bool '   Support for BCM1250/BCM112x onchip PCI controller' CONFIG_PCI
+   if [ "$CONFIG_SIBYTE_SWARM" = "y" -o \
+        "$CONFIG_SIBYTE_CARMEL" = "y" ]; then
+      define_bool CONFIG_SIBYTE_GENBUS_IDE y
    fi
 
    if [ "$CONFIG_SIBYTE_SB1250" = "y" ]; then
-      bool '   Support for SWARM board' CONFIG_SIBYTE_SWARM
+      if [ "$CONFIG_SIBYTE_STANDALONE" != "y" ]; then
+	 define_bool CONFIG_SMP_CAPABLE y
+      fi
    fi
 fi
 bool 'Support for SNI RM200 PCI' CONFIG_SNI_RM200_PCI
+bool 'Support for TANBAC TB0226 (Mbase)' CONFIG_TANBAC_TB0226
 dep_bool 'Support for Toshiba JMR-TX3927 board' CONFIG_TOSHIBA_JMR3927 $CONFIG_MIPS32
+bool 'Support for Victor MP-C303/304' CONFIG_VICTOR_MPC30X
+if [ "$CONFIG_VICTOR_MPC30X" = "y" ]; then
+   tristate '  NEC VRC4173 support' CONFIG_VRC4173
+fi
 bool 'Support for ZAO Networks Capcella' CONFIG_ZAO_CAPCELLA
 
 dep_bool 'High Memory Support' CONFIG_HIGHMEM $CONFIG_MIPS32
@@ -127,56 +216,94 @@
    define_bool CONFIG_MIPS_JAZZ y
    define_bool CONFIG_NONCOHERENT_IO y
    define_bool CONFIG_PC_KEYB y
-   define_bool CONFIG_ROTTEN_IRQ y
    define_bool CONFIG_OLD_TIME_C y
 fi
+if [ "$CONFIG_CASIO_E55" = "y" ]; then
+   define_bool CONFIG_CPU_VR41XX y
+   define_bool CONFIG_IRQ_CPU y
+   define_bool CONFIG_NEW_TIME_C y
+   define_bool CONFIG_VR41XX_TIME_C y
+   define_bool CONFIG_NONCOHERENT_IO y
+   define_bool CONFIG_ISA y
+   define_bool CONFIG_DUMMY_KEYB y
+   define_bool CONFIG_SCSI n
+fi
 if [ "$CONFIG_MIPS_PB1000" = "y" ]; then
-   define_bool CONFIG_MIPS_AU1000 y
-   define_bool CONFIG_NEW_IRQ y
+   define_bool CONFIG_CPU_AU1X00 y
+   define_bool CONFIG_CPU_AU1000 y
    define_bool CONFIG_PCI y
    define_bool CONFIG_NEW_PCI y
    define_bool CONFIG_NONCOHERENT_IO y
    define_bool CONFIG_PC_KEYB y
-   define_bool CONFIG_SWAP_IO_SPACE y
-   define_bool CONFIG_AU1000_USB_DEVICE y
+   define_bool CONFIG_SWAP_IO_SPACE_W y
+   define_bool CONFIG_SWAP_IO_SPACE_L y
+   define_bool CONFIG_AU1X00_USB_DEVICE y
 fi
 if [ "$CONFIG_MIPS_PB1100" = "y" ]; then
-   define_bool CONFIG_MIPS_AU1000 y
-   define_bool CONFIG_NEW_IRQ y
+   define_bool CONFIG_CPU_AU1X00 y
+   define_bool CONFIG_CPU_AU1100 y
    define_bool CONFIG_PCI y
    define_bool CONFIG_PCI_AUTO n
    define_bool CONFIG_NEW_PCI y
    define_bool CONFIG_NONCOHERENT_IO y
    define_bool CONFIG_PC_KEYB y
-   define_bool CONFIG_SWAP_IO_SPACE y
-   define_bool CONFIG_AU1000_USB_DEVICE y
+   define_bool CONFIG_SWAP_IO_SPACE_W y
+   define_bool CONFIG_SWAP_IO_SPACE_L y
+   define_bool CONFIG_AU1X00_USB_DEVICE y
 fi
 if [ "$CONFIG_MIPS_PB1500" = "y" ]; then
-   define_bool CONFIG_MIPS_AU1000 y
+   define_bool CONFIG_CPU_AU1X00 y
+   define_bool CONFIG_CPU_AU1500 y
+   define_bool CONFIG_PCI y
+   define_bool CONFIG_NEW_PCI y
+   define_bool CONFIG_PCI_AUTO y
+   define_bool CONFIG_NONCOHERENT_IO y
+   define_bool CONFIG_PC_KEYB y
+   define_bool CONFIG_AU1X00_USB_DEVICE y
+fi
+if [ "$CONFIG_MIPS_DB1000" = "y" ]; then
+   define_bool CONFIG_CPU_AU1X00 y
+   define_bool CONFIG_CPU_AU1000 y
+   # CONFIG_PCI needed for USB
+   define_bool CONFIG_PCI y
+   define_bool CONFIG_NEW_PCI y
+   define_bool CONFIG_PCI_AUTO n
+   define_bool CONFIG_NONCOHERENT_IO y
+   define_bool CONFIG_PC_KEYB y
+   define_bool CONFIG_SWAP_IO_SPACE y
+fi
+if [ "$CONFIG_MIPS_DB1500" = "y" ]; then
+   define_bool CONFIG_CPU_AU1X00 y
+   define_bool CONFIG_CPU_AU1500 y
    define_bool CONFIG_NEW_IRQ y
    define_bool CONFIG_PCI y
    define_bool CONFIG_NEW_PCI y
    define_bool CONFIG_PCI_AUTO y
    define_bool CONFIG_NONCOHERENT_IO y
    define_bool CONFIG_PC_KEYB y
-   define_bool CONFIG_AU1000_USB_DEVICE y
 fi
-if [ "$CONFIG_ALGOR_P4032" = "y" ]; then
+if [ "$CONFIG_MIPS_DB1100" = "y" ]; then
+   define_bool CONFIG_CPU_AU1X00 y
+   define_bool CONFIG_CPU_AU1100 y
+   define_bool CONFIG_NEW_IRQ y
    define_bool CONFIG_PCI y
+   define_bool CONFIG_NEW_PCI y
+   define_bool CONFIG_PCI_AUTO y
    define_bool CONFIG_NONCOHERENT_IO y
-   define_bool CONFIG_OLD_TIME_C y
+   define_bool CONFIG_PC_KEYB y
+   define_bool CONFIG_SWAP_IO_SPACE y
 fi
 if [ "$CONFIG_MIPS_COBALT" = "y" ]; then
    define_bool CONFIG_COBALT_LCD y
    define_bool CONFIG_I8259 y
    define_bool CONFIG_PCI y
-   define_bool CONFIG_NEW_IRQ y
    define_bool CONFIG_NEW_TIME_C y
    define_bool CONFIG_NONCOHERENT_IO y
 fi
 if [ "$CONFIG_DECSTATION" = "y" ]; then
+   define_bool CONFIG_BOOT_ELF32 y
    define_bool CONFIG_IRQ_CPU y
-   define_bool CONFIG_NEW_IRQ y
+   define_int CONFIG_L1_CACHE_SHIFT 4
    define_bool CONFIG_NONCOHERENT_IO y
 fi
 if [ "$CONFIG_MIPS_EV64120" = "y" ]; then
@@ -189,11 +316,11 @@
 if [ "$CONFIG_MIPS_EV96100" = "y" ]; then
    define_bool CONFIG_PCI y
    define_bool CONFIG_MIPS_GT96100 y
-   define_bool CONFIG_NEW_IRQ y
    define_bool CONFIG_NEW_PCI y
    define_bool CONFIG_NONCOHERENT_IO y
    define_bool CONFIG_PCI_AUTO y
-   define_bool CONFIG_SWAP_IO_SPACE y
+   define_bool CONFIG_SWAP_IO_SPACE_W y
+   define_bool CONFIG_SWAP_IO_SPACE_L y
 fi
 if [ "$CONFIG_MIPS_IVR" = "y" ]; then
    define_bool CONFIG_PCI y
@@ -202,18 +329,34 @@
    define_bool CONFIG_NONCOHERENT_IO y
    define_bool CONFIG_PCI_AUTO y
    define_bool CONFIG_IT8172_CIR y
-   define_bool CONFIG_NEW_IRQ y
    define_bool CONFIG_NEW_TIME_C y
 fi
 if [ "$CONFIG_HP_LASERJET" = "y" ]; then
    define_bool CONFIG_IRQ_CPU y
    define_bool CONFIG_NEW_TIME_C y
-   define_bool CONFIG_NEW_IRQ y
    define_bool CONFIG_NEW_PCI y
    define_bool CONFIG_NONCOHERENT_IO y
    define_bool CONFIG_PCI y
    #not yet define_bool CONFIG_PCI_AUTO y
 fi
+if [ "$CONFIG_IBM_WORKPAD" = "y" ]; then
+   define_bool CONFIG_CPU_VR41XX y
+   define_bool CONFIG_IRQ_CPU y
+   define_bool CONFIG_NEW_TIME_C y
+   define_bool CONFIG_VR41XX_TIME_C y
+   define_bool CONFIG_NONCOHERENT_IO y
+   define_bool CONFIG_ISA y
+   define_bool CONFIG_DUMMY_KEYB y
+   define_bool CONFIG_SCSI n
+fi
+if [ "$CONFIG_LASAT" = "y" ]; then
+   define_bool CONFIG_BOARD_SCACHE y
+   define_bool CONFIG_R5000_CPU_SCACHE y
+   define_bool CONFIG_PCI y
+   define_bool CONFIG_NONCOHERENT_IO y
+   define_bool CONFIG_NEW_TIME_C y
+   define_bool CONFIG_NEW_IRQ y
+fi
 if [ "$CONFIG_MIPS_ITE8172" = "y" ]; then
    define_bool CONFIG_PCI y
    define_bool CONFIG_IT8712 y
@@ -222,17 +365,16 @@
    define_bool CONFIG_NONCOHERENT_IO y
    define_bool CONFIG_PCI_AUTO y
    define_bool CONFIG_IT8172_CIR y
-   define_bool CONFIG_NEW_IRQ y
    define_bool CONFIG_NEW_TIME_C y
 fi
 if [ "$CONFIG_MIPS_ATLAS" = "y" ]; then
    define_bool CONFIG_BOOT_ELF32 y
    define_int CONFIG_L1_CACHE_SHIFT 5
-   define_bool CONFIG_NEW_IRQ y
    define_bool CONFIG_NEW_TIME_C y
    define_bool CONFIG_NONCOHERENT_IO y
    define_bool CONFIG_PCI y
-   define_bool CONFIG_SWAP_IO_SPACE y
+   define_bool CONFIG_SWAP_IO_SPACE_W y
+   define_bool CONFIG_SWAP_IO_SPACE_L y
 fi
 if [ "$CONFIG_MIPS_MAGNUM_4000" = "y" -o \
      "$CONFIG_OLIVETTI_M700"    = "y" ]; then
@@ -251,16 +393,15 @@
    define_bool CONFIG_HAVE_STD_PC_SERIAL_PORT y
    define_bool CONFIG_I8259 y
    define_int CONFIG_L1_CACHE_SHIFT 5
-   define_bool CONFIG_NEW_IRQ y
    define_bool CONFIG_NEW_TIME_C y
    define_bool CONFIG_NONCOHERENT_IO y
-   define_bool CONFIG_SWAP_IO_SPACE y
+   define_bool CONFIG_SWAP_IO_SPACE_W y
+   define_bool CONFIG_SWAP_IO_SPACE_L y
    define_bool CONFIG_PC_KEYB y
    define_bool CONFIG_PCI y
 fi
 if [ "$CONFIG_MIPS_SEAD" = "y" ]; then
    define_int CONFIG_L1_CACHE_SHIFT 5
-   define_bool CONFIG_NEW_IRQ y
    define_bool CONFIG_NEW_TIME_C y
    define_bool CONFIG_NONCOHERENT_IO y
    define_bool CONFIG_PCI n
@@ -268,16 +409,16 @@
 if [ "$CONFIG_MOMENCO_OCELOT" = "y" ]; then
    define_bool CONFIG_PCI y
    define_bool CONFIG_SYSCLK_100 y
-   define_bool CONFIG_SWAP_IO_SPACE y
-   define_bool CONFIG_NEW_IRQ y
+   define_bool CONFIG_SWAP_IO_SPACE_W y
+   define_bool CONFIG_SWAP_IO_SPACE_L y
    define_bool CONFIG_NONCOHERENT_IO y
    define_bool CONFIG_OLD_TIME_C y
 fi
 if [ "$CONFIG_MOMENCO_OCELOT_G" = "y" ]; then
    define_bool CONFIG_PCI y
    define_bool CONFIG_SYSCLK_100 y
-   define_bool CONFIG_SWAP_IO_SPACE y
-   define_bool CONFIG_NEW_IRQ y
+   define_bool CONFIG_SWAP_IO_SPACE_W y
+   define_bool CONFIG_SWAP_IO_SPACE_L y
    define_bool CONFIG_NONCOHERENT_IO y
    define_bool CONFIG_OLD_TIME_C y
 fi
@@ -290,7 +431,6 @@
    define_bool CONFIG_PC_KEYB y
    define_bool CONFIG_NEW_TIME_C y
    define_bool CONFIG_PCI_AUTO y
-   define_bool CONFIG_NEW_IRQ y
    define_bool CONFIG_IRQ_CPU y
    define_bool CONFIG_NEW_PCI y
 fi
@@ -298,7 +438,6 @@
    define_bool CONFIG_ISA y
    define_bool CONFIG_PCI y
    define_bool CONFIG_PC_KEYB y
-   define_bool CONFIG_NEW_IRQ y
    define_bool CONFIG_IRQ_CPU y
    define_bool CONFIG_I8259 y
    define_bool CONFIG_HAVE_STD_PC_SERIAL_PORT y
@@ -310,7 +449,6 @@
 if [ "$CONFIG_DDB5477" = "y" ]; then
    define_bool CONFIG_PCI y
    define_bool CONFIG_NEW_TIME_C y
-   define_bool CONFIG_NEW_IRQ y
    define_bool CONFIG_IRQ_CPU y
    define_bool CONFIG_NEW_PCI y
    define_bool CONFIG_NONCOHERENT_IO y
@@ -320,9 +458,6 @@
 fi
 if [ "$CONFIG_NEC_OSPREY" = "y" ]; then
    define_bool CONFIG_VR4181 y
-   define_bool CONFIG_SERIAL y
-   define_bool CONFIG_SERIAL_MANY_PORTS y
-   define_bool CONFIG_NEW_IRQ y
    define_bool CONFIG_IRQ_CPU y
    define_bool CONFIG_NEW_TIME_C y
    define_bool CONFIG_NONCOHERENT_IO y
@@ -331,7 +466,6 @@
 fi
 if [ "$CONFIG_NEC_EAGLE" = "y" ]; then
    define_bool CONFIG_CPU_VR41XX y
-   define_bool CONFIG_NEW_IRQ y
    define_bool CONFIG_IRQ_CPU y
    define_bool CONFIG_NEW_TIME_C y
    define_bool CONFIG_VR41XX_TIME_C y
@@ -344,22 +478,20 @@
    define_bool CONFIG_SCSI n
 fi
 if [ "$CONFIG_NINO" = "y" ]; then
-   define_bool CONFIG_NEW_IRQ y
    define_bool CONFIG_NEW_TIME_C y
    define_bool CONFIG_NONCOHERENT_IO y
    define_bool CONFIG_PC_KEYB y
 fi
 if [ "$CONFIG_SGI_IP22" = "y" ]; then
    define_bool CONFIG_ARC32 y
-   define_bool CONFIG_ARC_CONSOLE y
    define_bool CONFIG_ARC_MEMORY y
+   define_bool CONFIG_ARC_PROMLIB y
    define_bool CONFIG_BOARD_SCACHE y
    define_bool CONFIG_BOOT_ELF32 y
-   define_bool CONFIG_SWAP_IO_SPACE y
+   define_bool CONFIG_SWAP_IO_SPACE_W n
+   define_bool CONFIG_SWAP_IO_SPACE_L y
    define_bool CONFIG_IRQ_CPU y
    define_int CONFIG_L1_CACHE_SHIFT 5
-   define_bool CONFIG_NONCOHERENT_IO y
-   define_bool CONFIG_NEW_IRQ y
    define_bool CONFIG_NEW_TIME_C y
    define_bool CONFIG_NONCOHERENT_IO y
    define_bool CONFIG_PC_KEYB y
@@ -368,54 +500,82 @@
 if [ "$CONFIG_SGI_IP27" = "y" ]; then
    define_bool CONFIG_BOOT_ELF64 y
    define_bool CONFIG_ARC64 y
+   define_int CONFIG_L1_CACHE_SHIFT 7
    #define_bool CONFIG_MAPPED_PCI_IO y
+   define_bool CONFIG_NEW_TIME_C y
    define_bool CONFIG_PCI y
    define_bool CONFIG_QL_ISP_A64 y
-   define_int CONFIG_L1_CACHE_SHIFT 7
 fi
 if [ "$CONFIG_SGI_IP32" = "y" ]; then
    define_bool CONFIG_ARC_MEMORY y
+   define_bool CONFIG_ARC_PROMLIB y
    define_bool CONFIG_ARC32 y
-   #define_bool CONFIG_BOARD_SCACHE y
+   define_bool CONFIG_BOARD_SCACHE y
+   define_bool CONFIG_R5000_CPU_SCACHE y
    define_bool CONFIG_BOOT_ELF32 y
    define_int CONFIG_L1_CACHE_SHIFT 5
+   define_bool CONFIG_NEW_TIME_C y
    define_bool CONFIG_NONCOHERENT_IO y
    define_bool CONFIG_PC_KEYB y
    define_bool CONFIG_PCI y
 fi
-if [ "$CONFIG_SIBYTE_SB1250" = "y" ]; then
-   define_bool CONFIG_NEW_IRQ y
+if [ "$CONFIG_SIBYTE_SB1xxx_SOC" = "y" ]; then
    define_bool CONFIG_NEW_TIME_C y
    define_bool CONFIG_DUMMY_KEYB y
-   define_bool CONFIG_SWAP_IO_SPACE y
+   define_bool CONFIG_SWAP_IO_SPACE_W y
+   define_bool CONFIG_SWAP_IO_SPACE_L y
    define_bool CONFIG_BOOT_ELF32 y
 fi
 if [ "$CONFIG_SNI_RM200_PCI" = "y" ]; then
    define_bool CONFIG_ARC32 y
    define_bool CONFIG_ARC_MEMORY y
+   define_bool CONFIG_ARC_PROMLIB y
    define_bool CONFIG_I8259 y
    define_bool CONFIG_ISA y
-   define_bool CONFIG_NEW_IRQ y
    define_bool CONFIG_NONCOHERENT_IO y
    define_bool CONFIG_OLD_TIME_C y
    define_bool CONFIG_PC_KEYB y
    define_bool CONFIG_PCI y
 fi
+if [ "$CONFIG_TANBAC_TB0226" = "y" ]; then
+   define_bool CONFIG_CPU_VR41XX y
+   define_bool CONFIG_IRQ_CPU y
+   define_bool CONFIG_NEW_TIME_C y
+   define_bool CONFIG_VR41XX_TIME_C y
+   define_bool CONFIG_NONCOHERENT_IO y
+   define_bool CONFIG_ISA n
+   define_bool CONFIG_PCI y
+   define_bool CONFIG_NEW_PCI y
+   define_bool CONFIG_PCI_AUTO y
+   define_bool CONFIG_DUMMY_KEYB y
+   define_bool CONFIG_SERIAL_MANY_PORTS y
+fi
 if [ "$CONFIG_TOSHIBA_JMR3927" = "y" ]; then
    define_bool CONFIG_TOSHIBA_BOARDS y
    define_bool CONFIG_PCI y
    define_bool CONFIG_NEW_PCI y
    define_bool CONFIG_PCI_AUTO y
-   define_bool CONFIG_NEW_IRQ y
    define_bool CONFIG_NEW_TIME_C y
    define_bool CONFIG_NONCOHERENT_IO y
-   define_bool CONFIG_SWAP_IO_SPACE y
+   define_bool CONFIG_SWAP_IO_SPACE_W y
+   define_bool CONFIG_SWAP_IO_SPACE_L y
    define_bool CONFIG_PC_KEYB y
 fi
+if [ "$CONFIG_VICTOR_MPC30X" = "y" ]; then
+   define_bool CONFIG_CPU_VR41XX y
+   define_bool CONFIG_IRQ_CPU y
+   define_bool CONFIG_NEW_TIME_C y
+   define_bool CONFIG_VR41XX_TIME_C y
+   define_bool CONFIG_NONCOHERENT_IO y
+   define_bool CONFIG_ISA n
+   define_bool CONFIG_PCI y
+   define_bool CONFIG_NEW_PCI y
+   define_bool CONFIG_PCI_AUTO y
+   define_bool CONFIG_DUMMY_KEYB y
+   define_bool CONFIG_SCSI n
+fi
 if [ "$CONFIG_ZAO_CAPCELLA" = "y" ]; then
    define_bool CONFIG_CPU_VR41XX y
-   define_bool CONFIG_CPU_LITTLE_ENDIAN y
-   define_bool CONFIG_NEW_IRQ y
    define_bool CONFIG_IRQ_CPU y
    define_bool CONFIG_NEW_TIME_C y
    define_bool CONFIG_VR41XX_TIME_C y
@@ -454,12 +614,8 @@
 	 RM7000	CONFIG_CPU_RM7000 \
 	 SB1	CONFIG_CPU_SB1" R4x00
 
-if [ "$CONFIG_CPU_R5000" = "y" ]; then
-   define_bool CONFIG_BOARD_SCACHE y
-fi
-
-if [ "$CONFIG_CPU_NEVADA" = "y" ]; then
-   define_bool CONFIG_BOARD_SCACHE y
+if [ "$CONFIG_SMP_CAPABLE" = "y" ]; then
+   bool '  Multi-Processing support' CONFIG_SMP
 fi
  
 if [ "$CONFIG_CPU_MIPS32" = "y" ]; then
@@ -477,15 +633,13 @@
 fi
 
 if [ "$CONFIG_CPU_SB1" = "y" ]; then
-   choice 'SB1 Pass' \
-	 "Pass1   CONFIG_CPU_SB1_PASS_1  \
-	  Pass2   CONFIG_CPU_SB1_PASS_2
-	  Pass2.2 CONFIG_CPU_SB1_PASS_2_2" Pass1
+   # SB1 Pass-specific options
    if [ "$CONFIG_CPU_SB1_PASS_1" = "y" ]; then
       define_bool CONFIG_SB1_PASS_1_WORKAROUNDS y
    fi
    if [ "$CONFIG_CPU_SB1_PASS_2" = "y" ]; then
       define_bool CONFIG_SB1_PASS_2_WORKAROUNDS y
+      define_bool CONFIG_SB1_PASS_2_1_WORKAROUNDS y
    else
       # Avoid prefetches on Pass 2 (before 2.2)
       bool '  Enable prefetches' CONFIG_CPU_HAS_PREFETCH
@@ -494,9 +648,7 @@
       # XXXKW for now, let 2.2 use same WORKAROUNDS flag as pre-2.2
       define_bool CONFIG_SB1_PASS_2_WORKAROUNDS y
    fi
-   bool '  Support for SB1 Cache Error handler' CONFIG_SB1_CACHE_ERROR
-   dep_bool '    Ignore recoverable cache errors' CONFIG_SB1_CERR_IGNORE_RECOVERABLE $CONFIG_SB1_CACHE_ERROR
-   dep_bool '    Spin instead of running handler' CONFIG_SB1_CERR_SPIN $CONFIG_SB1_CACHE_ERROR
+
    define_bool CONFIG_VTAG_ICACHE y
 fi
 
@@ -547,15 +699,52 @@
 fi
 endmenu
 
+#
+# Choose endianess of code to generate.  It's a frequent trap for users so the
+# config file tries it's best to choose the right endianess for those systems
+# where we know about their endianess.  We only ask the user for systems
+# known to be bi-endian; for those systems the defconfig file should defaults
+# to the common endianess used for that system.
+#
 mainmenu_option next_comment
 comment 'General setup'
-if [ "$CONFIG_DECSTATION"  = "y" -o \
-     "$CONFIG_DDB5074"     = "y" -o \
-     "$CONFIG_NINO"        = "y" -o \
-     "$CONFIG_MIPS_COBALT" = "y" ]; then
+if [ "$CONFIG_ACER_PICA_61" = "y" -o \
+     "$CONFIG_CASIO_E55" = "y" -o \
+     "$CONFIG_DDB5074" = "y" -o \
+     "$CONFIG_DDB5476" = "y" -o \
+     "$CONFIG_DDB5477" = "y" -o \
+     "$CONFIG_DECSTATION" = "y" -o \
+     "$CONFIG_HP_LASERJET" = "y" -o \
+     "$CONFIG_IBM_WORKPAD" = "y" -o \
+     "$CONFIG_LASAT" = "y" -o \
+     "$CONFIG_MIPS_COBALT" = "y" -o \
+     "$CONFIG_MIPS_ITE8172" = "y" -o \
+     "$CONFIG_MIPS_IVR" = "y" -o \
+     "$CONFIG_MIPS_PB1000" = "y" -o \
+     "$CONFIG_MIPS_PB1100" = "y" -o \
+     "$CONFIG_MIPS_PB1500" = "y" -o \
+     "$CONFIG_NEC_OSPREY" = "y" -o \
+     "$CONFIG_NEC_EAGLE" = "y" -o \
+     "$CONFIG_NINO" = "y" -o \
+     "$CONFIG_OLIVETTI_M700" = "y" -o \
+     "$CONFIG_SNI_RM200_PCI" = "y" -o \
+     "$CONFIG_VICTOR_MPC30X" = "y" -o \
+     "$CONFIG_ZAO_CAPCELLA" = "y" ]; then
    define_bool CONFIG_CPU_LITTLE_ENDIAN y
 else
-   bool 'Generate little endian code' CONFIG_CPU_LITTLE_ENDIAN
+   if [ "$CONFIG_BAGET_MIPS" = "y" -o \
+	"$CONFIG_MIPS_EV64120" = "y" -o \
+	"$CONFIG_MIPS_EV96100" = "y" -o \
+	"$CONFIG_MOMENCO_OCELOT" = "y" -o \
+	"$CONFIG_MOMENCO_OCELOT_G" = "y" -o \
+	"$CONFIG_SGI_IP22" = "y" -o \
+	"$CONFIG_SGI_IP27" = "y" -o \
+	"$CONFIG_SGI_IP32" = "y" -o \
+	"$CONFIG_TOSHIBA_JMR3927" = "y" ]; then
+      define_bool CONFIG_CPU_LITTLE_ENDIAN n
+   else
+      bool 'Generate little endian code' CONFIG_CPU_LITTLE_ENDIAN
+   fi
 fi
 
 if [ "$CONFIG_TOSHIBA_JMR3927" = "y" ]; then
@@ -623,7 +812,14 @@
 define_bool CONFIG_BINFMT_AOUT n
 tristate 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF
 dep_bool 'Kernel support for Linux/MIPS 32-bit binary compatibility' CONFIG_MIPS32_COMPAT $CONFIG_MIPS64
-define_bool CONFIG_BINFMT_ELF32 $CONFIG_MIPS32_COMPAT
+dep_bool 'Kernel support for o32 binaries' CONFIG_MIPS32_O32 $CONFIG_MIPS32_COMPAT
+dep_bool 'Kernel support for n32 binaries' CONFIG_MIPS32_N32 $CONFIG_MIPS32_COMPAT
+if [ "$CONFIG_MIPS32_O32" = "y" -o \
+     "$CONFIG_MIPS32_N32" = "y" ]; then
+   define_bool CONFIG_BINFMT_ELF32 y
+else
+   define_bool CONFIG_BINFMT_ELF32 n
+fi
 
 tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC
 
@@ -641,6 +837,9 @@
    mainmenu_option next_comment
    comment 'MIPS initrd options'
    bool '  Embed root filesystem ramdisk into the kernel' CONFIG_EMBEDDED_RAMDISK
+   if [ "$CONFIG_EMBEDDED_RAMDISK" = "y" ]; then
+      string '    Filename of gziped ramdisk image' CONFIG_EMBEDDED_RAMDISK_IMAGE ramdisk.gz
+   fi
    endmenu
 fi
 
@@ -727,19 +926,6 @@
 
 #source drivers/misc/Config.in
 
-if [ "$CONFIG_DECSTATION" = "y" ]; then
-   mainmenu_option next_comment
-   comment 'DECStation Character devices'
-
-   tristate 'Standard/generic (dumb) serial support' CONFIG_SERIAL
-   dep_bool '  DZ11 Serial Support' CONFIG_DZ $CONFIG_SERIAL
-   dep_bool '  Z85C30 Serial Support' CONFIG_ZS $CONFIG_SERIAL $CONFIG_TC
-   dep_bool '  Support for console on serial port' CONFIG_SERIAL_CONSOLE $CONFIG_SERIAL
-#   dep_bool 'MAXINE Access.Bus mouse (VSXXX-BB/GB) support' CONFIG_DTOP_MOUSE $CONFIG_ACCESSBUS
-   bool 'Enhanced Real Time Clock Support' CONFIG_RTC
-   endmenu
-fi
-
 if [ "$CONFIG_SGI_IP22" = "y" ]; then
    mainmenu_option next_comment
    comment 'SGI Character devices'
@@ -789,11 +975,12 @@
 comment 'Kernel hacking'
 
 bool 'Are you using a crosscompiler' CONFIG_CROSSCOMPILE
-if [ "$CONFIG_SERIAL" = "y" -o "$CONFIG_AU1000_UART" = "y" ]; then
-   bool 'Remote GDB kernel debugging' CONFIG_REMOTE_DEBUG
-   dep_bool 'Console output to GDB' CONFIG_GDB_CONSOLE $CONFIG_REMOTE_DEBUG
-fi
 bool 'Enable run-time debugging' CONFIG_DEBUG
+bool 'Remote GDB kernel debugging' CONFIG_REMOTE_DEBUG
+dep_bool '  Console output to GDB' CONFIG_GDB_CONSOLE $CONFIG_REMOTE_DEBUG
+if [ "$CONFIG_SIBYTE_SB1xxx_SOC" = "y" ]; then
+   dep_bool 'Compile for Corelis Debugger' CONFIG_SB1XXX_CORELIS $CONFIG_DEBUG
+fi
 bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
 if [ "$CONFIG_SMP" != "y" ]; then
    bool 'Run uncached' CONFIG_MIPS_UNCACHED
diff -urNd -urNd linux-2.4.20/arch/mips/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/CVS/Entries
--- linux-2.4.20/arch/mips/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/CVS/Entries	2005-01-06 23:08:21.000000000 -0600
@@ -0,0 +1,68 @@
+/.cvsignore/1.1/Fri Oct 27 00:13:34 2000/-ko/Tlinux_2_4_20
+/.gdbinit/1.1.1.1/Sun Jun  1 03:16:38 1997/-ko/Tlinux_2_4_20
+/Makefile/1.78.2.22/Thu Feb 20 18:53:37 2003/-ko/Tlinux_2_4_20
+/config-shared.in/1.1.2.47/Fri Feb 14 18:43:55 2003/-ko/Tlinux_2_4_20
+/config.in/1.154.2.27/Thu Jul 25 18:48:46 2002/-ko/Tlinux_2_4_20
+/defconfig/1.117.2.34/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-atlas/1.48.2.32/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-capcella/1.1.2.20/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-cobalt/1.17.2.28/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-db1000/1.1.2.7/Fri Feb  7 23:39:40 2003/-ko/Tlinux_2_4_20
+/defconfig-db1500/1.1.2.7/Fri Feb  7 23:39:40 2003/-ko/Tlinux_2_4_20
+/defconfig-ddb5476/1.54.2.29/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-ddb5477/1.24.2.32/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-decstation/1.76.2.36/Fri Feb  7 23:39:40 2003/-ko/Tlinux_2_4_20
+/defconfig-e55/1.1.2.11/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-eagle/1.1.2.22/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-ev64120/1.45.2.29/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-ev96100/1.51.2.29/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-hp-lj/1.4.2.32/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-ip22/1.92.2.34/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-it8172/1.39.2.34/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-ivr/1.3.2.31/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-jmr3927/1.2.2.32/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-lasat/1.1.2.4/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-malta/1.51.2.34/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-mpc30x/1.1.2.11/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-nino/1.30.2.32/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-ocelot/1.36.2.29/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-osprey/1.13.2.31/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-pb1000/1.29.2.40/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-pb1100/1.1.2.22/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-pb1500/1.1.2.31/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-rm200/1.67.2.29/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-sb1250-swarm/1.12.2.40/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-sead/1.1.2.21/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-tb0226/1.1.2.2/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-workpad/1.1.2.11/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/ld.script.in/1.7/Thu May 10 21:01:25 2001/-ko/Tlinux_2_4_20
+D/arc////
+D/au1000////
+D/baget////
+D/boot////
+D/cobalt////
+D/ddb5xxx////
+D/dec////
+D/galileo-boards////
+D/gt64120////
+D/hp-lj////
+D/ite-boards////
+D/jazz////
+D/jmr3927////
+D/kernel////
+D/lasat////
+D/lib////
+D/math-emu////
+D/mips-boards////
+D/mm////
+D/momentum////
+D/philips////
+D/ramdisk////
+D/sgi-ip22////
+D/sgi-ip27////
+D/sgi-ip32////
+D/sibyte////
+D/sni////
+D/tools////
+D/vr4181////
+D/vr41xx////
diff -urNd -urNd linux-2.4.20/arch/mips/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/CVS/Repository
--- linux-2.4.20/arch/mips/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/CVS/Repository	2005-01-06 22:59:59.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips
diff -urNd -urNd linux-2.4.20/arch/mips/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/CVS/Root
--- linux-2.4.20/arch/mips/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/CVS/Root	2005-01-06 22:59:59.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/CVS/Tag
--- linux-2.4.20/arch/mips/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/CVS/Tag	2005-01-06 22:59:59.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/.cvsignore
--- linux-2.4.20/arch/mips/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/.cvsignore	2000-10-26 19:13:34.000000000 -0500
@@ -0,0 +1 @@
+ld.script
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5074/int-handler.S linux-2.4.20-mipscvs-20050106/arch/mips/ddb5074/int-handler.S
--- linux-2.4.20/arch/mips/ddb5074/int-handler.S	2001-04-13 22:26:07.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5074/int-handler.S	1969-12-31 18:00:00.000000000 -0600
@@ -1,120 +0,0 @@
-/*
- *  arch/mips/ddb5074/int-handler.S -- NEC DDB Vrc-5074 interrupt handler
- *
- *  Based on arch/mips/sgi/kernel/indyIRQ.S
- *
- *  Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
- *
- *  Copyright (C) 2000 Geert Uytterhoeven <geert@sonycom.com>
- *                     Sony Software Development Center Europe (SDCE), Brussels
- */
-#include <asm/asm.h>
-#include <asm/mipsregs.h>
-#include <asm/regdef.h>
-#include <asm/stackframe.h>
-
-/* A lot of complication here is taken away because:
- *
- * 1) We handle one interrupt and return, sitting in a loop and moving across
- *    all the pending IRQ bits in the cause register is _NOT_ the answer, the
- *    common case is one pending IRQ so optimize in that direction.
- *
- * 2) We need not check against bits in the status register IRQ mask, that
- *    would make this routine slow as hell.
- *
- * 3) Linux only thinks in terms of all IRQs on or all IRQs off, nothing in
- *    between like BSD spl() brain-damage.
- *
- * Furthermore, the IRQs on the INDY look basically (barring software IRQs
- * which we don't use at all) like:
- *
- *	MIPS IRQ	Source
- *      --------        ------
- *             0	Software (ignored)
- *             1        Software (ignored)
- *             2        Local IRQ level zero
- *             3        Local IRQ level one
- *             4        8254 Timer zero
- *             5        8254 Timer one
- *             6        Bus Error
- *             7        R4k timer (what we use)
- *
- * We handle the IRQ according to _our_ priority which is:
- *
- * Highest ----     R4k Timer
- *                  Local IRQ zero
- *                  Local IRQ one
- *                  Bus Error
- *                  8254 Timer zero
- * Lowest  ----     8254 Timer one
- *
- * then we just return, if multiple IRQs are pending then we will just take
- * another exception, big deal.
- */
-
-	.text
-	.set	noreorder
-	.set	noat
-	.align	5
-	NESTED(ddbIRQ, PT_SIZE, sp)
-	SAVE_ALL
-	CLI
-	.set	at
-	mfc0	s0, CP0_CAUSE		# get irq mask
-
-#if 1
-	mfc0	t2,CP0_STATUS		# get enabled interrupts
-	and	s0,t2			# isolate allowed ones
-#endif
-	/* First we check for r4k counter/timer IRQ. */
-	andi	a0, s0, CAUSEF_IP2	# delay slot, check local level zero
-	beq	a0, zero, 1f
-	 andi	a0, s0, CAUSEF_IP3	# delay slot, check local level one
-
-	/* Wheee, local level zero interrupt. */
-	jal	ddb_local0_irqdispatch
-	 move	a0, sp			# delay slot
-
-	j	ret_from_irq
-	 nop				# delay slot
-
-1:
-	beq	a0, zero, 1f
-	 andi	a0, s0, CAUSEF_IP6	# delay slot, check bus error
-
-	/* Wheee, local level one interrupt. */
-	move	a0, sp
-	jal	ddb_local1_irqdispatch
-	 nop
-
-	j	ret_from_irq
-	 nop
-
-1:
-	beq	a0, zero, 1f
-	 nop
-
-	/* Wheee, an asynchronous bus error... */
-	move	a0, sp
-	jal	ddb_buserror_irq
-	 nop
-
-	j	ret_from_irq
-	 nop
-
-1:
-	/* Here by mistake?  This is possible, what can happen
-	 * is that by the time we take the exception the IRQ
-	 * pin goes low, so just leave if this is the case.
-	 */
-	andi	a0, s0, (CAUSEF_IP4 | CAUSEF_IP5)
-	beq	a0, zero, 1f
-
-	/* Must be one of the 8254 timers... */
-	move	a0, sp
-	jal	ddb_8254timer_irq
-	 nop
-1:
-	j	ret_from_irq
-	 nop
-	END(ddbIRQ)
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5074/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/ddb5074/irq.c
--- linux-2.4.20/arch/mips/ddb5074/irq.c	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5074/irq.c	1969-12-31 18:00:00.000000000 -0600
@@ -1,226 +0,0 @@
-/*
- *  arch/mips/ddb5074/irq.c -- NEC DDB Vrc-5074 interrupt routines
- *
- *  Copyright (C) 2000 Geert Uytterhoeven <geert@sonycom.com>
- *                     Sony Software Development Center Europe (SDCE), Brussels
- */
-#include <linux/config.h>
-#include <linux/init.h>
-#include <linux/signal.h>
-#include <linux/sched.h>
-#include <linux/types.h>
-#include <linux/interrupt.h>
-#include <linux/ioport.h>
-
-#include <asm/io.h>
-#include <asm/irq.h>
-#include <asm/ptrace.h>
-#include <asm/nile4.h>
-#include <asm/ddb5074.h>
-
-
-extern void __init i8259_init(void);
-extern void i8259_disable_irq(unsigned int irq_nr);
-extern void i8259_enable_irq(unsigned int irq_nr);
-
-extern asmlinkage void ddbIRQ(void);
-extern asmlinkage void i8259_do_irq(int irq, struct pt_regs *regs);
-extern asmlinkage void do_IRQ(int irq, struct pt_regs *regs);
-
-
-void no_action(int cpl, void *dev_id, struct pt_regs *regs)
-{
-}
-
-
-#define M1543_PNP_CONFIG	0x03f0	/* PnP Config Port */
-#define M1543_PNP_INDEX		0x03f0	/* PnP Index Port */
-#define M1543_PNP_DATA		0x03f1	/* PnP Data Port */
-
-#define M1543_PNP_ALT_CONFIG	0x0370	/* Alternative PnP Config Port */
-#define M1543_PNP_ALT_INDEX	0x0370	/* Alternative PnP Index Port */
-#define M1543_PNP_ALT_DATA	0x0371	/* Alternative PnP Data Port */
-
-#define M1543_INT1_MASTER_CTRL	0x0020	/* INT_1 (master) Control Register */
-#define M1543_INT1_MASTER_MASK	0x0021	/* INT_1 (master) Mask Register */
-
-#define M1543_INT1_SLAVE_CTRL	0x00a0	/* INT_1 (slave) Control Register */
-#define M1543_INT1_SLAVE_MASK	0x00a1	/* INT_1 (slave) Mask Register */
-
-#define M1543_INT1_MASTER_ELCR	0x04d0	/* INT_1 (master) Edge/Level Control */
-#define M1543_INT1_SLAVE_ELCR	0x04d1	/* INT_1 (slave) Edge/Level Control */
-
-
-static void m1543_irq_setup(void)
-{
-	/*
-	 *  The ALI M1543 has 13 interrupt inputs, IRQ1..IRQ13.  Not all
-	 *  the possible IO sources in the M1543 are in use by us.  We will
-	 *  use the following mapping:
-	 *
-	 *      IRQ1  - keyboard (default set by M1543)
-	 *      IRQ3  - reserved for UART B (default set by M1543) (note that
-	 *              the schematics for the DDB Vrc-5074 board seem to
-	 *              indicate that IRQ3 is connected to the DS1386
-	 *              watchdog timer interrupt output so we might have
-	 *              a conflict)
-	 *      IRQ4  - reserved for UART A (default set by M1543)
-	 *      IRQ5  - parallel (default set by M1543)
-	 *      IRQ8  - DS1386 time of day (RTC) interrupt
-	 *      IRQ12 - mouse
-	 */
-
-	/*
-	 *  Assing mouse interrupt to IRQ12
-	 */
-
-	/* Enter configuration mode */
-	outb(0x51, M1543_PNP_CONFIG);
-	outb(0x23, M1543_PNP_CONFIG);
-
-	/* Select logical device 7 (Keyboard) */
-	outb(0x07, M1543_PNP_INDEX);
-	outb(0x07, M1543_PNP_DATA);
-
-	/* Select IRQ12 */
-	outb(0x72, M1543_PNP_INDEX);
-	outb(0x0c, M1543_PNP_DATA);
-
-	/* Leave configration mode */
-	outb(0xbb, M1543_PNP_CONFIG);
-
-
-	/* Initialize the 8259 PIC in the M1543 */
-	i8259_init();
-
-	/* Enable the interrupt cascade */
-	nile4_enable_irq(NILE4_INT_INTE);
-
-	request_region(M1543_PNP_CONFIG, 2, "M1543 config");
-	request_region(M1543_INT1_MASTER_ELCR, 2, "pic ELCR");
-}
-
-static void nile4_irq_setup(void)
-{
-	int i;
-
-	/* Map all interrupts to CPU int #0 */
-	nile4_map_irq_all(0);
-
-	/* PCI INTA#-E# must be level triggered */
-	nile4_set_pci_irq_level_or_edge(0, 1);
-	nile4_set_pci_irq_level_or_edge(1, 1);
-	nile4_set_pci_irq_level_or_edge(2, 1);
-	nile4_set_pci_irq_level_or_edge(3, 1);
-	nile4_set_pci_irq_level_or_edge(4, 1);
-
-	/* PCI INTA#-D# must be active low, INTE# must be active high */
-	nile4_set_pci_irq_polarity(0, 0);
-	nile4_set_pci_irq_polarity(1, 0);
-	nile4_set_pci_irq_polarity(2, 0);
-	nile4_set_pci_irq_polarity(3, 0);
-	nile4_set_pci_irq_polarity(4, 1);
-
-	for (i = 0; i < 16; i++)
-		nile4_clear_irq(i);
-
-	/* Enable CPU int #0 */
-	nile4_enable_irq_output(0);
-
-	request_mem_region(NILE4_BASE, NILE4_SIZE, "Nile 4");
-}
-
-
-/*
- * IRQ2 is cascade interrupt to second interrupt controller
- */
-static struct irqaction irq2 = { no_action, 0, 0, "cascade", NULL, NULL };
-
-
-void disable_irq(unsigned int irq_nr)
-{
-	if (is_i8259_irq(irq_nr))
-		i8259_disable_irq(irq_nr);
-	else
-		nile4_disable_irq(irq_to_nile4(irq_nr));
-}
-
-void enable_irq(unsigned int irq_nr)
-{
-	if (is_i8259_irq(irq_nr))
-		i8259_enable_irq(irq_nr);
-	else
-		nile4_enable_irq(irq_to_nile4(irq_nr));
-}
-
-int table[16] = { 0, };
-
-void ddb_local0_irqdispatch(struct pt_regs *regs)
-{
-	u32 mask;
-	int nile4_irq;
-#if 1
-	volatile static int nesting = 0;
-	if (nesting++ == 0)
-		ddb5074_led_d3(1);
-	ddb5074_led_hex(nesting < 16 ? nesting : 15);
-#endif
-
-	mask = nile4_get_irq_stat(0);
-	nile4_clear_irq_mask(mask);
-
-	/* Handle the timer interrupt first */
-	if (mask & (1 << NILE4_INT_GPT)) {
-		nile4_disable_irq(NILE4_INT_GPT);
-		do_IRQ(nile4_to_irq(NILE4_INT_GPT), regs);
-		nile4_enable_irq(NILE4_INT_GPT);
-		mask &= ~(1 << NILE4_INT_GPT);
-	}
-	for (nile4_irq = 0; mask; nile4_irq++, mask >>= 1)
-		if (mask & 1) {
-			nile4_disable_irq(nile4_irq);
-			if (nile4_irq == NILE4_INT_INTE) {
-				int i8259_irq = nile4_i8259_iack();
-				i8259_do_irq(i8259_irq, regs);
-			} else
-				do_IRQ(nile4_to_irq(nile4_irq), regs);
-			nile4_enable_irq(nile4_irq);
-		}
-#if 1
-	if (--nesting == 0)
-		ddb5074_led_d3(0);
-	ddb5074_led_hex(nesting < 16 ? nesting : 15);
-#endif
-}
-
-void ddb_local1_irqdispatch(void)
-{
-	printk("ddb_local1_irqdispatch called\n");
-}
-
-void ddb_buserror_irq(void)
-{
-	printk("ddb_buserror_irq called\n");
-}
-
-void ddb_8254timer_irq(void)
-{
-	printk("ddb_8254timer_irq called\n");
-}
-
-void __init ddb_irq_setup(void)
-{
-#ifdef CONFIG_REMOTE_DEBUG
-	if (remote_debug)
-		set_debug_traps();
-	breakpoint();		/* you may move this line to whereever you want :-) */
-#endif
-	request_region(0x20, 0x20, "pic1");
-	request_region(0xa0, 0x20, "pic2");
-	i8259_setup_irq(2, &irq2);
-
-	nile4_irq_setup();
-	m1543_irq_setup();
-
-	set_except_vector(0, ddbIRQ);
-}
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5074/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/ddb5074/Makefile
--- linux-2.4.20/arch/mips/ddb5074/Makefile	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5074/Makefile	1969-12-31 18:00:00.000000000 -0600
@@ -1,18 +0,0 @@
-#
-# Makefile for the NEC DDB Vrc-5074 specific kernel interface routines
-# under Linux.
-#
-# Note! Dependencies are done automagically by 'make dep', which also
-# removes any old dependencies. DON'T put your own dependencies here
-# unless it's something special (ie not a .c file).
-#
-# Note 2! The CFLAGS definitions are now in the main makefile...
-#
-
-USE_STANDARD_AS_RULE := true
-
-O_TARGET = ddb5074.a
-
-obj-y	:= setup.o irq.o time.o prom.o pci.o int-handler.o nile4.o
-
-include $(TOPDIR)/Rules.make
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5074/nile4.c linux-2.4.20-mipscvs-20050106/arch/mips/ddb5074/nile4.c
--- linux-2.4.20/arch/mips/ddb5074/nile4.c	2001-04-13 22:26:07.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5074/nile4.c	1969-12-31 18:00:00.000000000 -0600
@@ -1,292 +0,0 @@
-/*
- *  arch/mips/ddb5074/nile4.c -- NEC Vrc-5074 Nile 4 support routines
- *
- *  Copyright (C) 2000 Geert Uytterhoeven <geert@sonycom.com>
- *                     Sony Software Development Center Europe (SDCE), Brussels
- */
-#include <linux/kernel.h>
-#include <linux/types.h>
-
-#include <asm/nile4.h>
-
-
-/*
- *  Physical Device Address Registers
- *
- *  Note: 32 bit addressing only!
- */
-void nile4_set_pdar(u32 pdar, u32 phys, u32 size, int width,
-		    int on_memory_bus, int visible)
-{
-	u32 maskbits;
-	u32 widthbits;
-
-	if (pdar > NILE4_BOOTCS || (pdar & 7)) {
-		printk("nile4_set_pdar: invalid pdar %d\n", pdar);
-		return;
-	}
-	if (pdar == NILE4_INTCS && size != 0x00200000) {
-		printk("nile4_set_pdar: INTCS size must be 2 MB\n");
-		return;
-	}
-	switch (size) {
-#if 0				/* We don't support 4 GB yet */
-	case 0x100000000:	/* 4 GB */
-		maskbits = 4;
-		break;
-#endif
-	case 0x80000000:	/* 2 GB */
-		maskbits = 5;
-		break;
-	case 0x40000000:	/* 1 GB */
-		maskbits = 6;
-		break;
-	case 0x20000000:	/* 512 MB */
-		maskbits = 7;
-		break;
-	case 0x10000000:	/* 256 MB */
-		maskbits = 8;
-		break;
-	case 0x08000000:	/* 128 MB */
-		maskbits = 9;
-		break;
-	case 0x04000000:	/* 64 MB */
-		maskbits = 10;
-		break;
-	case 0x02000000:	/* 32 MB */
-		maskbits = 11;
-		break;
-	case 0x01000000:	/* 16 MB */
-		maskbits = 12;
-		break;
-	case 0x00800000:	/* 8 MB */
-		maskbits = 13;
-		break;
-	case 0x00400000:	/* 4 MB */
-		maskbits = 14;
-		break;
-	case 0x00200000:	/* 2 MB */
-		maskbits = 15;
-		break;
-	case 0:		/* OFF */
-		maskbits = 0;
-		break;
-	default:
-		printk("nile4_set_pdar: unsupported size %p\n", (void *) size);
-		return;
-	}
-	switch (width) {
-	case 8:
-		widthbits = 0;
-		break;
-	case 16:
-		widthbits = 1;
-		break;
-	case 32:
-		widthbits = 2;
-		break;
-	case 64:
-		widthbits = 3;
-		break;
-	default:
-		printk("nile4_set_pdar: unsupported width %d\n", width);
-		return;
-	}
-	nile4_out32(pdar, maskbits | (on_memory_bus ? 0x10 : 0) |
-		    (visible ? 0x20 : 0) | (widthbits << 6) |
-		    (phys & 0xffe00000));
-	nile4_out32(pdar + 4, 0);
-	/*
-	 * When programming a PDAR, the register should be read immediately
-	 * after writing it. This ensures that address decoders are properly
-	 * configured.
-	 */
-	nile4_in32(pdar);
-	nile4_in32(pdar + 4);
-}
-
-
-/*
- *  PCI Master Registers
- *
- *  Note: 32 bit addressing only!
- */
-void nile4_set_pmr(u32 pmr, u32 type, u32 addr)
-{
-	if (pmr != NILE4_PCIINIT0 && pmr != NILE4_PCIINIT1) {
-		printk("nile4_set_pmr: invalid pmr %d\n", pmr);
-		return;
-	}
-	switch (type) {
-	case NILE4_PCICMD_IACK:	/* PCI Interrupt Acknowledge */
-	case NILE4_PCICMD_IO:	/* PCI I/O Space */
-	case NILE4_PCICMD_MEM:	/* PCI Memory Space */
-	case NILE4_PCICMD_CFG:	/* PCI Configuration Space */
-		break;
-	default:
-		printk("nile4_set_pmr: invalid type %d\n", type);
-		return;
-	}
-	nile4_out32(pmr, (type << 1) | 0x10 | (addr & 0xffe00000));
-	nile4_out32(pmr + 4, 0);
-}
-
-
-/*
- *  Interrupt Programming
- */
-void nile4_map_irq(int nile4_irq, int cpu_irq)
-{
-	u32 offset, t;
-
-	offset = NILE4_INTCTRL;
-	if (nile4_irq >= 8) {
-		offset += 4;
-		nile4_irq -= 8;
-	}
-	t = nile4_in32(offset);
-	t &= ~(7 << (nile4_irq * 4));
-	t |= cpu_irq << (nile4_irq * 4);
-	nile4_out32(offset, t);
-}
-
-void nile4_map_irq_all(int cpu_irq)
-{
-	u32 all, t;
-
-	all = cpu_irq;
-	all |= all << 4;
-	all |= all << 8;
-	all |= all << 16;
-	t = nile4_in32(NILE4_INTCTRL);
-	t &= 0x88888888;
-	t |= all;
-	nile4_out32(NILE4_INTCTRL, t);
-	t = nile4_in32(NILE4_INTCTRL + 4);
-	t &= 0x88888888;
-	t |= all;
-	nile4_out32(NILE4_INTCTRL + 4, t);
-}
-
-void nile4_enable_irq(int nile4_irq)
-{
-	u32 offset, t;
-
-	offset = NILE4_INTCTRL;
-	if (nile4_irq >= 8) {
-		offset += 4;
-		nile4_irq -= 8;
-	}
-	t = nile4_in32(offset);
-	t |= 8 << (nile4_irq * 4);
-	nile4_out32(offset, t);
-}
-
-void nile4_disable_irq(int nile4_irq)
-{
-	u32 offset, t;
-
-	offset = NILE4_INTCTRL;
-	if (nile4_irq >= 8) {
-		offset += 4;
-		nile4_irq -= 8;
-	}
-	t = nile4_in32(offset);
-	t &= ~(8 << (nile4_irq * 4));
-	nile4_out32(offset, t);
-}
-
-void nile4_disable_irq_all(void)
-{
-	nile4_out32(NILE4_INTCTRL, 0);
-	nile4_out32(NILE4_INTCTRL + 4, 0);
-}
-
-u16 nile4_get_irq_stat(int cpu_irq)
-{
-	return nile4_in16(NILE4_INTSTAT0 + cpu_irq * 2);
-}
-
-void nile4_enable_irq_output(int cpu_irq)
-{
-	u32 t;
-
-	t = nile4_in32(NILE4_INTSTAT1 + 4);
-	t |= 1 << (16 + cpu_irq);
-	nile4_out32(NILE4_INTSTAT1, t);
-}
-
-void nile4_disable_irq_output(int cpu_irq)
-{
-	u32 t;
-
-	t = nile4_in32(NILE4_INTSTAT1 + 4);
-	t &= ~(1 << (16 + cpu_irq));
-	nile4_out32(NILE4_INTSTAT1, t);
-}
-
-void nile4_set_pci_irq_polarity(int pci_irq, int high)
-{
-	u32 t;
-
-	t = nile4_in32(NILE4_INTPPES);
-	if (high)
-		t &= ~(1 << (pci_irq * 2));
-	else
-		t |= 1 << (pci_irq * 2);
-	nile4_out32(NILE4_INTPPES, t);
-}
-
-void nile4_set_pci_irq_level_or_edge(int pci_irq, int level)
-{
-	u32 t;
-
-	t = nile4_in32(NILE4_INTPPES);
-	if (level)
-		t |= 2 << (pci_irq * 2);
-	else
-		t &= ~(2 << (pci_irq * 2));
-	nile4_out32(NILE4_INTPPES, t);
-}
-
-void nile4_clear_irq(int nile4_irq)
-{
-	nile4_out32(NILE4_INTCLR, 1 << nile4_irq);
-}
-
-void nile4_clear_irq_mask(u32 mask)
-{
-	nile4_out32(NILE4_INTCLR, mask);
-}
-
-u8 nile4_i8259_iack(void)
-{
-	u8 irq;
-
-	/* Set window 0 for interrupt acknowledge */
-	nile4_set_pmr(NILE4_PCIINIT0, NILE4_PCICMD_IACK, 0);
-	irq = *(volatile u8 *) NILE4_PCI_IACK_BASE;
-	/* Set window 0 for PCI I/O space */
-	nile4_set_pmr(NILE4_PCIINIT0, NILE4_PCICMD_IO, 0);
-	return irq;
-}
-
-#if 0
-void nile4_dump_irq_status(void)
-{
-	printk("CPUSTAT = %p:%p\n", (void *) nile4_in32(NILE4_CPUSTAT + 4),
-	       (void *) nile4_in32(NILE4_CPUSTAT));
-	printk("INTCTRL = %p:%p\n", (void *) nile4_in32(NILE4_INTCTRL + 4),
-	       (void *) nile4_in32(NILE4_INTCTRL));
-	printk("INTSTAT0 = %p:%p\n",
-	       (void *) nile4_in32(NILE4_INTSTAT0 + 4),
-	       (void *) nile4_in32(NILE4_INTSTAT0));
-	printk("INTSTAT1 = %p:%p\n",
-	       (void *) nile4_in32(NILE4_INTSTAT1 + 4),
-	       (void *) nile4_in32(NILE4_INTSTAT1));
-	printk("INTCLR = %p:%p\n", (void *) nile4_in32(NILE4_INTCLR + 4),
-	       (void *) nile4_in32(NILE4_INTCLR));
-	printk("INTPPES = %p:%p\n", (void *) nile4_in32(NILE4_INTPPES + 4),
-	       (void *) nile4_in32(NILE4_INTPPES));
-}
-#endif
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5074/pci.c linux-2.4.20-mipscvs-20050106/arch/mips/ddb5074/pci.c
--- linux-2.4.20/arch/mips/ddb5074/pci.c	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5074/pci.c	1969-12-31 18:00:00.000000000 -0600
@@ -1,425 +0,0 @@
-/*
- *  arch/mips/ddb5074/pci.c -- NEC DDB Vrc-5074 PCI access routines
- *
- *  Copyright (C) 2000 Geert Uytterhoeven <geert@sonycom.com>
- *                     Albert Dorofeev <albert@sonycom.com>
- *                     Sony Software Development Center Europe (SDCE), Brussels
- */
-#include <linux/init.h>
-#include <linux/kernel.h>
-#include <linux/pci.h>
-#include <linux/types.h>
-#include <linux/sched.h>
-#include <linux/ioport.h>
-
-#include <asm/nile4.h>
-
-
-static u32 nile4_pre_pci_access0(int slot_num)
-{
-	u32 pci_addr = 0;
-	u32 virt_addr = NILE4_PCI_CFG_BASE;
-
-	/* Set window 1 address 8000000 - 64 bit - 2 MB (PCI config space) */
-	nile4_set_pdar(NILE4_PCIW1, PHYSADDR(virt_addr), 0x00200000, 64, 0,
-		       0);
-	if (slot_num > 2)
-		pci_addr = 0x00040000 << slot_num;
-	else
-		virt_addr += 0x00040000 << slot_num;
-	nile4_set_pmr(NILE4_PCIINIT1, NILE4_PCICMD_CFG, pci_addr);
-	return virt_addr;
-}
-
-static void nile4_post_pci_access0(void)
-{
-	/*
-	 * Set window 1 back to address 8000000 - 64 bit - 128 MB
-	 * (PCI IO space)
-	 */
-	nile4_set_pdar(NILE4_PCIW1, PHYSADDR(NILE4_PCI_MEM_BASE),
-		       0x08000000, 64, 1, 1);
-	nile4_set_pmr(NILE4_PCIINIT1, NILE4_PCICMD_MEM, 0);
-}
-
-
-static int nile4_pci_read_config_dword(struct pci_dev *dev,
-				       int where, u32 * val)
-{
-	int slot_num, func_num;
-	u32 base;
-
-	/*
-	 *  For starters let's do configuration cycle 0 only (one bus only)
-	 */
-	if (dev->bus->number)
-		return PCIBIOS_FUNC_NOT_SUPPORTED;
-
-	slot_num = PCI_SLOT(dev->devfn);
-	func_num = PCI_FUNC(dev->devfn);
-	if (slot_num == 5) {
-		/*
-		 * This is Nile 4 and it will crash if we access it like other
-		 * devices
-		 */
-		*val = nile4_in32(NILE4_PCI_BASE + where);
-		return PCIBIOS_SUCCESSFUL;
-	}
-	base = nile4_pre_pci_access0(slot_num);
-	*val =
-	    *((volatile u32 *) (base + (func_num << 8) + (where & 0xfc)));
-	nile4_post_pci_access0();
-	return PCIBIOS_SUCCESSFUL;
-}
-
-static int nile4_pci_write_config_dword(struct pci_dev *dev, int where,
-					u32 val)
-{
-	int slot_num, func_num;
-	u32 base;
-
-	/*
-	 * For starters let's do configuration cycle 0 only (one bus only)
-	 */
-	if (dev->bus->number)
-		return PCIBIOS_FUNC_NOT_SUPPORTED;
-
-	slot_num = PCI_SLOT(dev->devfn);
-	func_num = PCI_FUNC(dev->devfn);
-	if (slot_num == 5) {
-		/*
-		 * This is Nile 4 and it will crash if we access it like other
-		 * devices
-		 */
-		nile4_out32(NILE4_PCI_BASE + where, val);
-		return PCIBIOS_SUCCESSFUL;
-	}
-	base = nile4_pre_pci_access0(slot_num);
-	*((volatile u32 *) (base + (func_num << 8) + (where & 0xfc))) =
-	    val;
-	nile4_post_pci_access0();
-	return PCIBIOS_SUCCESSFUL;
-}
-
-static int nile4_pci_read_config_word(struct pci_dev *dev, int where,
-				      u16 * val)
-{
-	int status;
-	u32 result;
-
-	status = nile4_pci_read_config_dword(dev, where, &result);
-	if (status != PCIBIOS_SUCCESSFUL)
-		return status;
-	if (where & 2)
-		result >>= 16;
-	*val = result & 0xffff;
-	return PCIBIOS_SUCCESSFUL;
-}
-
-static int nile4_pci_read_config_byte(struct pci_dev *dev, int where,
-				      u8 * val)
-{
-	int status;
-	u32 result;
-
-	status = nile4_pci_read_config_dword(dev, where, &result);
-	if (status != PCIBIOS_SUCCESSFUL)
-		return status;
-	if (where & 1)
-		result >>= 8;
-	if (where & 2)
-		result >>= 16;
-	*val = result & 0xff;
-	return PCIBIOS_SUCCESSFUL;
-}
-
-static int nile4_pci_write_config_word(struct pci_dev *dev, int where,
-				       u16 val)
-{
-	int status, shift = 0;
-	u32 result;
-
-	status = nile4_pci_read_config_dword(dev, where, &result);
-	if (status != PCIBIOS_SUCCESSFUL)
-		return status;
-	if (where & 2)
-		shift += 16;
-	result &= ~(0xffff << shift);
-	result |= val << shift;
-	return nile4_pci_write_config_dword(dev, where, result);
-}
-
-static int nile4_pci_write_config_byte(struct pci_dev *dev, int where,
-				       u8 val)
-{
-	int status, shift = 0;
-	u32 result;
-
-	status = nile4_pci_read_config_dword(dev, where, &result);
-	if (status != PCIBIOS_SUCCESSFUL)
-		return status;
-	if (where & 2)
-		shift += 16;
-	if (where & 1)
-		shift += 8;
-	result &= ~(0xff << shift);
-	result |= val << shift;
-	return nile4_pci_write_config_dword(dev, where, result);
-}
-
-struct pci_ops nile4_pci_ops = {
-	nile4_pci_read_config_byte,
-	nile4_pci_read_config_word,
-	nile4_pci_read_config_dword,
-	nile4_pci_write_config_byte,
-	nile4_pci_write_config_word,
-	nile4_pci_write_config_dword
-};
-
-struct {
-	struct resource ram;
-	struct resource flash;
-	struct resource isa_io;
-	struct resource pci_io;
-	struct resource isa_mem;
-	struct resource pci_mem;
-	struct resource nile4;
-	struct resource boot;
-} ddb5074_resources = {
-	{ "RAM", 0x00000000, 0x03ffffff,
-	  IORESOURCE_MEM | PCI_BASE_ADDRESS_MEM_TYPE_64},
-	{ "Flash ROM", 0x04000000, 0x043fffff},
-	{ "Nile4 ISA I/O", 0x06000000, 0x060fffff},
-	{ "Nile4 PCI I/O", 0x06100000, 0x07ffffff},
-	{ "Nile4 ISA mem", 0x08000000, 0x08ffffff, IORESOURCE_MEM},
-	{ "Nile4 PCI mem", 0x09000000, 0x0fffffff, IORESOURCE_MEM},
-	{ "Nile4 ctrl", 0x1fa00000, 0x1fbfffff,
-	  IORESOURCE_MEM | PCI_BASE_ADDRESS_MEM_TYPE_64},
-	{ "Boot ROM", 0x1fc00000, 0x1fffffff}
-};
-
-static void __init ddb5074_pci_fixup(void)
-{
-	struct pci_dev *dev;
-
-	pci_for_each_dev(dev) {
-		if (dev->vendor == PCI_VENDOR_ID_NEC &&
-		    dev->device == PCI_DEVICE_ID_NEC_NILE4) {
-			/*
-			 * The first 64-bit PCI base register should point to
-			 * the Nile4 control registers. Unfortunately this
-			 * isn't the case, so we fix it ourselves. This allows
-			 * the serial driver to find the UART.
-			 */
-			dev->resource[0] = ddb5074_resources.nile4;
-			request_resource(&iomem_resource,
-					 &dev->resource[0]);
-			/*
-			 * The second 64-bit PCI base register points to the
-			 * first memory bank. Unfortunately the address is
-			 * wrong, so we fix it (again).
-			 */
-			dev->resource[2] = ddb5074_resources.ram;
-			request_resource(&iomem_resource,
-					 &dev->resource[2]);
-		} else if (dev->vendor == PCI_VENDOR_ID_AL
-			   && dev->device == PCI_DEVICE_ID_AL_M7101) {
-			/*
-			 * It's nice to have the LEDs on the GPIO pins
-			 * available for debugging
-			 */
-			extern struct pci_dev *pci_pmu;
-			u8 t8;
-
-			pci_pmu = dev;	/* for LEDs D2 and D3 */
-			/* Program the lines for LEDs D2 and D3 to output */
-			nile4_pci_read_config_byte(dev, 0x7d, &t8);
-			t8 |= 0xc0;
-			nile4_pci_write_config_byte(dev, 0x7d, t8);
-			/* Turn LEDs D2 and D3 off */
-			nile4_pci_read_config_byte(dev, 0x7e, &t8);
-			t8 |= 0xc0;
-			nile4_pci_write_config_byte(dev, 0x7e, t8);
-		}
-	}
-}
-
-static void __init pcibios_fixup_irqs(void)
-{
-	struct pci_dev *dev;
-	int slot_num;
-
-	pci_for_each_dev(dev) {
-		slot_num = PCI_SLOT(dev->devfn);
-		switch (slot_num) {
-		case 0:
-			dev->irq = nile4_to_irq(NILE4_INT_INTE);
-			break;
-		case 1:
-			dev->irq = nile4_to_irq(NILE4_INT_INTA);
-			break;
-		case 2:	/* slot 1 */
-			dev->irq = nile4_to_irq(NILE4_INT_INTA);
-			break;
-		case 3:	/* slot 2 */
-			dev->irq = nile4_to_irq(NILE4_INT_INTB);
-			break;
-		case 4:	/* slot 3 */
-			dev->irq = nile4_to_irq(NILE4_INT_INTC);
-			break;
-		case 5:
-			/*
-			 * Fixup so the serial driver can use the UART
-			 */
-			dev->irq = nile4_to_irq(NILE4_INT_UART);
-			break;
-		case 13:
-			dev->irq = nile4_to_irq(NILE4_INT_INTE);
-			break;
-		default:
-			break;
-		}
-	}
-}
-
-void __init pcibios_init(void)
-{
-	printk("PCI: Probing PCI hardware\n");
-	ioport_resource.end = 0x1ffffff;	/*  32 MB */
-	iomem_resource.end = 0x1fffffff;	/* 512 MB */
-	/* `ram' and `nile4' are requested through the Nile4 pci_dev */
-	request_resource(&iomem_resource, &ddb5074_resources.flash);
-	request_resource(&iomem_resource, &ddb5074_resources.isa_io);
-	request_resource(&iomem_resource, &ddb5074_resources.pci_io);
-	request_resource(&iomem_resource, &ddb5074_resources.isa_mem);
-	request_resource(&iomem_resource, &ddb5074_resources.pci_mem);
-	request_resource(&iomem_resource, &ddb5074_resources.boot);
-
-	pci_scan_bus(0, &nile4_pci_ops, NULL);
-	ddb5074_pci_fixup();
-	pci_assign_unassigned_resources();
-	pcibios_fixup_irqs();
-}
-
-void __init pcibios_fixup_bus(struct pci_bus *bus)
-{
-	bus->resource[1] = &ddb5074_resources.pci_mem;
-}
-
-char *pcibios_setup(char *str)
-{
-	return str;
-}
-
-void __init pcibios_update_irq(struct pci_dev *dev, int irq)
-{
-	pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq);
-}
-
-void __init pcibios_fixup_pbus_ranges(struct pci_bus *bus,
-				      struct pbus_set_ranges_data *ranges)
-{
-	ranges->io_start -= bus->resource[0]->start;
-	ranges->io_end -= bus->resource[0]->start;
-	ranges->mem_start -= bus->resource[1]->start;
-	ranges->mem_end -= bus->resource[1]->start;
-}
-
-int pcibios_enable_resources(struct pci_dev *dev)
-{
-	u16 cmd, old_cmd;
-	int idx;
-	struct resource *r;
-
-	/*
-	 *  Don't touch the Nile 4
-	 */
-	if (dev->vendor == PCI_VENDOR_ID_NEC &&
-	    dev->device == PCI_DEVICE_ID_NEC_NILE4) return 0;
-
-	pci_read_config_word(dev, PCI_COMMAND, &cmd);
-	old_cmd = cmd;
-	for (idx = 0; idx < 6; idx++) {
-		r = &dev->resource[idx];
-		if (!r->start && r->end) {
-			printk(KERN_ERR "PCI: Device %s not available because "
-			       "of resource collisions\n", dev->slot_name);
-			return -EINVAL;
-		}
-		if (r->flags & IORESOURCE_IO)
-			cmd |= PCI_COMMAND_IO;
-		if (r->flags & IORESOURCE_MEM)
-			cmd |= PCI_COMMAND_MEMORY;
-	}
-	if (cmd != old_cmd) {
-		printk("PCI: Enabling device %s (%04x -> %04x)\n",
-		       dev->slot_name, old_cmd, cmd);
-		pci_write_config_word(dev, PCI_COMMAND, cmd);
-	}
-	return 0;
-}
-
-int pcibios_enable_device(struct pci_dev *dev)
-{
-	return pcibios_enable_resources(dev);
-}
-
-void pcibios_update_resource(struct pci_dev *dev, struct resource *root,
-			     struct resource *res, int resource)
-{
-	u32 new, check;
-	int reg;
-
-	new = res->start | (res->flags & PCI_REGION_FLAG_MASK);
-	if (resource < 6) {
-		reg = PCI_BASE_ADDRESS_0 + 4 * resource;
-	} else if (resource == PCI_ROM_RESOURCE) {
-		res->flags |= PCI_ROM_ADDRESS_ENABLE;
-		reg = dev->rom_base_reg;
-	} else {
-		/*
-		 * Somebody might have asked allocation of a non-standard
-		 * resource
-		 */
-		return;
-	}
-
-	pci_write_config_dword(dev, reg, new);
-	pci_read_config_dword(dev, reg, &check);
-	if ((new ^ check) &
-	    ((new & PCI_BASE_ADDRESS_SPACE_IO) ? PCI_BASE_ADDRESS_IO_MASK :
-	     PCI_BASE_ADDRESS_MEM_MASK)) {
-		printk(KERN_ERR "PCI: Error while updating region "
-		       "%s/%d (%08x != %08x)\n", dev->slot_name, resource,
-		       new, check);
-	}
-}
-
-void pcibios_align_resource(void *data, struct resource *res,
-			    unsigned long size, unsigned long align)
-{
-	struct pci_dev *dev = data;
-
-	if (res->flags & IORESOURCE_IO) {
-		unsigned long start = res->start;
-
-		/* We need to avoid collisions with `mirrored' VGA ports
-		   and other strange ISA hardware, so we always want the
-		   addresses kilobyte aligned.  */
-		if (size > 0x100) {
-			printk(KERN_ERR "PCI: I/O Region %s/%d too large"
-			       " (%ld bytes)\n", dev->slot_name,
-			       dev->resource - res, size);
-		}
-
-		start = (start + 1024 - 1) & ~(1024 - 1);
-		res->start = start;
-	}
-}
-
-unsigned __init int pcibios_assign_all_busses(void)
-{
-	return 1;
-}
-
-struct pci_fixup pcibios_fixups[] = { };
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5074/prom.c linux-2.4.20-mipscvs-20050106/arch/mips/ddb5074/prom.c
--- linux-2.4.20/arch/mips/ddb5074/prom.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5074/prom.c	1969-12-31 18:00:00.000000000 -0600
@@ -1,41 +0,0 @@
-/*
- *  arch/mips/ddb5074/prom.c -- NEC DDB Vrc-5074 PROM routines
- *
- *  Copyright (C) 2000 Geert Uytterhoeven <geert@sonycom.com>
- *                     Sony Software Development Center Europe (SDCE), Brussels
- */
-#include <linux/init.h>
-#include <linux/mm.h>
-#include <linux/sched.h>
-#include <linux/bootmem.h>
-
-#include <asm/addrspace.h>
-#include <asm/bootinfo.h>
-
-
-char arcs_cmdline[CL_SIZE];
-
-const char *get_system_type(void)
-{
-	return "NEC DDB Vrc-5074";
-}
-
-void __init prom_init(const char *s)
-{
-	int i = 0;
-
-	if (s != (void *) -1)
-		while (*s && i < sizeof(arcs_cmdline) - 1)
-			arcs_cmdline[i++] = *s++;
-	arcs_cmdline[i] = '\0';
-
-	mips_machgroup = MACH_GROUP_NEC_DDB;
-	mips_machtype = MACH_NEC_DDB5074;
-
-	/* 64 MB non-upgradable */
-	add_memory_region(0, 64 << 20, BOOT_MEM_RAM);
-}
-
-void __init prom_free_prom_memory(void)
-{
-}
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5074/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/ddb5074/setup.c
--- linux-2.4.20/arch/mips/ddb5074/setup.c	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5074/setup.c	1969-12-31 18:00:00.000000000 -0600
@@ -1,251 +0,0 @@
-/*
- *  arch/mips/ddb5074/setup.c -- NEC DDB Vrc-5074 setup routines
- *
- *  Copyright (C) 2000 Geert Uytterhoeven <geert@sonycom.com>
- *                     Sony Software Development Center Europe (SDCE), Brussels
- */
-#include <linux/config.h>
-#include <linux/init.h>
-#include <linux/kbd_ll.h>
-#include <linux/kernel.h>
-#include <linux/kdev_t.h>
-#include <linux/types.h>
-#include <linux/console.h>
-#include <linux/sched.h>
-#include <linux/mc146818rtc.h>
-#include <linux/pc_keyb.h>
-#include <linux/pci.h>
-#include <linux/ide.h>
-
-#include <asm/addrspace.h>
-#include <asm/bcache.h>
-#include <asm/keyboard.h>
-#include <asm/irq.h>
-#include <asm/reboot.h>
-#include <asm/gdb-stub.h>
-#include <asm/nile4.h>
-#include <asm/ddb5074.h>
-#include <asm/traps.h>
-
-
-#ifdef CONFIG_REMOTE_DEBUG
-extern void rs_kgdb_hook(int);
-extern void breakpoint(void);
-#endif
-
-#if defined(CONFIG_SERIAL_CONSOLE)
-extern void console_setup(char *);
-#endif
-
-extern struct ide_ops std_ide_ops;
-extern struct rtc_ops ddb_rtc_ops;
-
-static void (*back_to_prom) (void) = (void (*)(void)) 0xbfc00000;
-
-static void ddb_machine_restart(char *command)
-{
-	u32 t;
-
-	/* PCI cold reset */
-	t = nile4_in32(NILE4_PCICTRL + 4);
-	t |= 0x40000000;
-	nile4_out32(NILE4_PCICTRL + 4, t);
-	/* CPU cold reset */
-	t = nile4_in32(NILE4_CPUSTAT);
-	t |= 1;
-	nile4_out32(NILE4_CPUSTAT, t);
-	/* Call the PROM */
-	back_to_prom();
-}
-
-static void ddb_machine_halt(void)
-{
-	printk("DDB Vrc-5074 halted.\n");
-	do {
-	} while (1);
-}
-
-static void ddb_machine_power_off(void)
-{
-	printk("DDB Vrc-5074 halted. Please turn off the power.\n");
-	do {
-	} while (1);
-}
-
-extern void ddb_irq_setup(void);
-
-void (*board_time_init) (struct irqaction * irq);
-
-
-static void __init ddb_time_init(struct irqaction *irq)
-{
-	/* set the clock to 1 Hz */
-	nile4_out32(NILE4_T2CTRL, 1000000);
-	/* enable the General-Purpose Timer */
-	nile4_out32(NILE4_T2CTRL + 4, 0x00000001);
-	/* reset timer */
-	nile4_out32(NILE4_T2CNTR, 0);
-	/* enable interrupt */
-	nile4_enable_irq(NILE4_INT_GPT);
-	i8259_setup_irq(nile4_to_irq(NILE4_INT_GPT), irq);
-	change_cp0_status(ST0_IM,
-		          IE_IRQ0 | IE_IRQ1 | IE_IRQ2 | IE_IRQ3 | IE_IRQ4);
-}
-
-
-void __init bus_error_init(void) { /* nothing */ }
-
-
-void __init ddb_setup(void)
-{
-	extern int panic_timeout;
-
-	irq_setup = ddb_irq_setup;
-	set_io_port_base(NILE4_PCI_IO_BASE);
-	isa_slot_offset = NILE4_PCI_MEM_BASE;
-	request_region(0x00, 0x20, "dma1");
-	request_region(0x40, 0x20, "timer");
-	request_region(0x70, 0x10, "rtc");
-	request_region(0x80, 0x10, "dma page reg");
-	request_region(0xc0, 0x20, "dma2");
-	board_time_init = ddb_time_init;
-
-	_machine_restart = ddb_machine_restart;
-	_machine_halt = ddb_machine_halt;
-	_machine_power_off = ddb_machine_power_off;
-
-#ifdef CONFIG_BLK_DEV_IDE
-	ide_ops = &std_ide_ops;
-#endif
-	rtc_ops = &ddb_rtc_ops;
-
-	/* Reboot on panic */
-	panic_timeout = 180;
-}
-
-
-#define USE_NILE4_SERIAL	0
-
-#if USE_NILE4_SERIAL
-#define ns16550_in(reg)		nile4_in8((reg)*8)
-#define ns16550_out(reg, val)	nile4_out8((reg)*8, (val))
-#else
-#define NS16550_BASE		(NILE4_PCI_IO_BASE+0x03f8)
-static inline u8 ns16550_in(u32 reg)
-{
-	return *(volatile u8 *) (NS16550_BASE + reg);
-}
-
-static inline void ns16550_out(u32 reg, u8 val)
-{
-	*(volatile u8 *) (NS16550_BASE + reg) = val;
-}
-#endif
-
-#define NS16550_RBR		0
-#define NS16550_THR		0
-#define NS16550_DLL		0
-#define NS16550_IER		1
-#define NS16550_DLM		1
-#define NS16550_FCR		2
-#define NS16550_IIR		2
-#define NS16550_LCR		3
-#define NS16550_MCR		4
-#define NS16550_LSR		5
-#define NS16550_MSR		6
-#define NS16550_SCR		7
-
-#define NS16550_LSR_DR		0x01	/* Data ready */
-#define NS16550_LSR_OE		0x02	/* Overrun */
-#define NS16550_LSR_PE		0x04	/* Parity error */
-#define NS16550_LSR_FE		0x08	/* Framing error */
-#define NS16550_LSR_BI		0x10	/* Break */
-#define NS16550_LSR_THRE	0x20	/* Xmit holding register empty */
-#define NS16550_LSR_TEMT	0x40	/* Xmitter empty */
-#define NS16550_LSR_ERR		0x80	/* Error */
-
-
-void _serinit(void)
-{
-#if USE_NILE4_SERIAL
-	ns16550_out(NS16550_LCR, 0x80);
-	ns16550_out(NS16550_DLM, 0x00);
-	ns16550_out(NS16550_DLL, 0x36);	/* 9600 baud */
-	ns16550_out(NS16550_LCR, 0x00);
-	ns16550_out(NS16550_LCR, 0x03);
-	ns16550_out(NS16550_FCR, 0x47);
-#else
-	/* done by PMON */
-#endif
-}
-
-void _putc(char c)
-{
-	while (!(ns16550_in(NS16550_LSR) & NS16550_LSR_THRE));
-	ns16550_out(NS16550_THR, c);
-	if (c == '\n') {
-		while (!(ns16550_in(NS16550_LSR) & NS16550_LSR_THRE));
-		ns16550_out(NS16550_THR, '\r');
-	}
-}
-
-void _puts(const char *s)
-{
-	char c;
-	while ((c = *s++))
-		_putc(c);
-}
-
-char _getc(void)
-{
-	while (!(ns16550_in(NS16550_LSR) & NS16550_LSR_DR));
-	return ns16550_in(NS16550_RBR);
-}
-
-int _testc(void)
-{
-	return (ns16550_in(NS16550_LSR) & NS16550_LSR_DR) != 0;
-}
-
-
-/*
- *  Hexadecimal 7-segment LED
- */
-void ddb5074_led_hex(int hex)
-{
-	outb(hex, 0x80);
-}
-
-
-/*
- *  LEDs D2 and D3, connected to the GPIO pins of the PMU in the ALi M1543
- */
-struct pci_dev *pci_pmu = NULL;
-
-void ddb5074_led_d2(int on)
-{
-	u8 t;
-
-	if (pci_pmu) {
-		pci_read_config_byte(pci_pmu, 0x7e, &t);
-		if (on)
-			t &= 0x7f;
-		else
-			t |= 0x80;
-		pci_write_config_byte(pci_pmu, 0x7e, t);
-	}
-}
-
-void ddb5074_led_d3(int on)
-{
-	u8 t;
-
-	if (pci_pmu) {
-		pci_read_config_byte(pci_pmu, 0x7e, &t);
-		if (on)
-			t &= 0xbf;
-		else
-			t |= 0x40;
-		pci_write_config_byte(pci_pmu, 0x7e, t);
-	}
-}
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5074/time.c linux-2.4.20-mipscvs-20050106/arch/mips/ddb5074/time.c
--- linux-2.4.20/arch/mips/ddb5074/time.c	2001-04-13 22:26:07.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5074/time.c	1969-12-31 18:00:00.000000000 -0600
@@ -1,32 +0,0 @@
-/*
- *  arch/mips/ddb5074/time.c -- Timer routines
- *
- *  Copyright (C) 2000 Geert Uytterhoeven <geert@sonycom.com>
- *                     Sony Software Development Center Europe (SDCE), Brussels
- */
-#include <linux/init.h>
-#include <asm/mc146818rtc.h>
-
-static unsigned char ddb_rtc_read_data(unsigned long addr)
-{
-	outb_p(addr, RTC_PORT(0));
-
-	return inb_p(RTC_PORT(1));
-}
-
-static void ddb_rtc_write_data(unsigned char data, unsigned long addr)
-{
-	outb_p(addr, RTC_PORT(0));
-	outb_p(data, RTC_PORT(1));
-}
-
-static int ddb_rtc_bcd_mode(void)
-{
-	return 1;
-}
-
-struct rtc_ops ddb_rtc_ops = {
-	ddb_rtc_read_data,
-	ddb_rtc_write_data,
-	ddb_rtc_bcd_mode
-};
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/common/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/common/CVS/Entries
--- linux-2.4.20/arch/mips/ddb5xxx/common/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/common/CVS/Entries	2005-01-06 23:00:01.000000000 -0600
@@ -0,0 +1,7 @@
+/.cvsignore/1.1.2.1/Mon Dec 31 03:33:19 2001/-ko/Tlinux_2_4_20
+/Makefile/1.4.2.1/Tue Jun 25 15:46:59 2002/-ko/Tlinux_2_4_20
+/irq.c/1.2.2.2/Mon Jul 15 00:02:55 2002/-ko/Tlinux_2_4_20
+/nile4.c/1.3.2.2/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+/prom.c/1.2.2.5/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+/rtc_ds1386.c/1.4.2.2/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/common/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/common/CVS/Repository
--- linux-2.4.20/arch/mips/ddb5xxx/common/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/common/CVS/Repository	2005-01-06 23:00:01.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/ddb5xxx/common
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/common/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/common/CVS/Root
--- linux-2.4.20/arch/mips/ddb5xxx/common/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/common/CVS/Root	2005-01-06 23:00:01.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/common/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/common/CVS/Tag
--- linux-2.4.20/arch/mips/ddb5xxx/common/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/common/CVS/Tag	2005-01-06 23:00:01.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/common/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/common/.cvsignore
--- linux-2.4.20/arch/mips/ddb5xxx/common/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/common/.cvsignore	2001-12-30 21:33:19.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/CVS/Entries
--- linux-2.4.20/arch/mips/ddb5xxx/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/CVS/Entries	2005-01-06 23:08:21.000000000 -0600
@@ -0,0 +1,4 @@
+D/common////
+D/ddb5074////
+D/ddb5476////
+D/ddb5477////
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/CVS/Repository
--- linux-2.4.20/arch/mips/ddb5xxx/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/CVS/Repository	2005-01-06 23:00:01.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/ddb5xxx
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/CVS/Root
--- linux-2.4.20/arch/mips/ddb5xxx/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/CVS/Root	2005-01-06 23:00:01.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/CVS/Tag
--- linux-2.4.20/arch/mips/ddb5xxx/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/CVS/Tag	2005-01-06 23:00:01.000000000 -0600
@@ -0,0 +1 @@
+Tlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5074/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5074/CVS/Entries
--- linux-2.4.20/arch/mips/ddb5xxx/ddb5074/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5074/CVS/Entries	2005-01-06 23:00:01.000000000 -0600
@@ -0,0 +1,9 @@
+/Makefile/1.1.2.1/Mon Jul 15 00:02:55 2002/-ko/Tlinux_2_4_20
+/int-handler.S/1.1.2.1/Mon Jul 15 00:02:56 2002/-ko/Tlinux_2_4_20
+/irq.c/1.1.2.2/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+/nile4_pic.c/1.1.2.2/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+/pci.c/1.1.2.2/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+/pci_ops.c/1.1.2.2/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+/setup.c/1.1.2.3/Mon Dec  2 00:24:45 2002/-ko/Tlinux_2_4_20
+/time.c/1.1.2.2/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5074/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5074/CVS/Repository
--- linux-2.4.20/arch/mips/ddb5xxx/ddb5074/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5074/CVS/Repository	2005-01-06 23:00:01.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/ddb5xxx/ddb5074
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5074/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5074/CVS/Root
--- linux-2.4.20/arch/mips/ddb5xxx/ddb5074/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5074/CVS/Root	2005-01-06 23:00:01.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5074/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5074/CVS/Tag
--- linux-2.4.20/arch/mips/ddb5xxx/ddb5074/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5074/CVS/Tag	2005-01-06 23:00:01.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5074/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5074/setup.c
--- linux-2.4.20/arch/mips/ddb5xxx/ddb5074/setup.c	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5074/setup.c	2002-12-01 18:24:45.000000000 -0600
@@ -96,7 +96,7 @@
 	/* enable interrupt */
 	setup_irq(nile4_to_irq(NILE4_INT_GPT), irq);
 	nile4_enable_irq(nile4_to_irq(NILE4_INT_GPT));
-	change_cp0_status(ST0_IM,
+	change_c0_status(ST0_IM,
 		          IE_IRQ0 | IE_IRQ1 | IE_IRQ2 | IE_IRQ3 | IE_IRQ4);
 
 }
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5476/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5476/CVS/Entries
--- linux-2.4.20/arch/mips/ddb5xxx/ddb5476/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5476/CVS/Entries	2005-01-06 23:00:01.000000000 -0600
@@ -0,0 +1,11 @@
+/.cvsignore/1.1.2.1/Mon Dec 31 03:33:19 2001/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.1/Tue Jun 25 15:46:59 2002/-ko/Tlinux_2_4_20
+/dbg_io.c/1.1/Sun Oct  7 00:09:48 2001/-ko/Tlinux_2_4_20
+/int-handler.S/1.1.2.2/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+/irq.c/1.2.2.3/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+/nile4_pic.c/1.1.2.3/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+/pci.c/1.2.2.3/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+/pci_ops.c/1.2.2.2/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+/setup.c/1.3.2.5/Mon Dec  2 00:24:46 2002/-ko/Tlinux_2_4_20
+/vrc5476_irq.c/1.3.2.2/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5476/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5476/CVS/Repository
--- linux-2.4.20/arch/mips/ddb5xxx/ddb5476/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5476/CVS/Repository	2005-01-06 23:00:01.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/ddb5xxx/ddb5476
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5476/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5476/CVS/Root
--- linux-2.4.20/arch/mips/ddb5xxx/ddb5476/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5476/CVS/Root	2005-01-06 23:00:01.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5476/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5476/CVS/Tag
--- linux-2.4.20/arch/mips/ddb5xxx/ddb5476/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5476/CVS/Tag	2005-01-06 23:00:01.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5476/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5476/.cvsignore
--- linux-2.4.20/arch/mips/ddb5xxx/ddb5476/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5476/.cvsignore	2001-12-30 21:33:19.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5476/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5476/setup.c
--- linux-2.4.20/arch/mips/ddb5xxx/ddb5476/setup.c	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5476/setup.c	2002-12-01 18:24:46.000000000 -0600
@@ -103,8 +103,8 @@
 	setup_irq(CPU_IRQ_BASE + 7, irq);
 
 	/* to generate the first timer interrupt */
-	count = read_32bit_cp0_register(CP0_COUNT);
-	write_32bit_cp0_register(CP0_COMPARE, count + 1000);
+	count = read_c0_count();
+	write_c0_compare(count + 1000);
 
 #else
 
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5477/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/CVS/Entries
--- linux-2.4.20/arch/mips/ddb5xxx/ddb5477/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/CVS/Entries	2005-01-06 23:00:01.000000000 -0600
@@ -0,0 +1,13 @@
+/.cvsignore/1.1.2.1/Mon Dec 31 03:33:19 2001/-ko/Tlinux_2_4_20
+/Makefile/1.2.2.2/Tue Jun 25 15:46:59 2002/-ko/Tlinux_2_4_20
+/debug.c/1.3.2.3/Mon Dec  2 00:24:46 2002/-ko/Tlinux_2_4_20
+/int-handler.S/1.2.2.3/Thu Dec 12 05:02:09 2002/-ko/Tlinux_2_4_20
+/irq.c/1.5.2.4/Mon Dec  2 00:24:46 2002/-ko/Tlinux_2_4_20
+/irq_5477.c/1.3.2.3/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+/kgdb_io.c/1.1.2.1/Sat Feb  2 21:20:28 2002/-ko/Tlinux_2_4_20
+/lcd44780.c/1.1.2.1/Wed Dec 26 23:17:29 2001/-ko/Tlinux_2_4_20
+/lcd44780.h/1.1.2.1/Wed Dec 26 23:17:29 2001/-ko/Tlinux_2_4_20
+/pci.c/1.4.2.5/Thu Dec 12 21:48:11 2002/-ko/Tlinux_2_4_20
+/pci_ops.c/1.3.2.2/Mon Aug  5 23:53:31 2002/-ko/Tlinux_2_4_20
+/setup.c/1.3.2.7/Thu Dec 12 05:02:09 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5477/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/CVS/Repository
--- linux-2.4.20/arch/mips/ddb5xxx/ddb5477/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/CVS/Repository	2005-01-06 23:00:01.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/ddb5xxx/ddb5477
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5477/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/CVS/Root
--- linux-2.4.20/arch/mips/ddb5xxx/ddb5477/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/CVS/Root	2005-01-06 23:00:01.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5477/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/CVS/Tag
--- linux-2.4.20/arch/mips/ddb5xxx/ddb5477/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/CVS/Tag	2005-01-06 23:00:01.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5477/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/.cvsignore
--- linux-2.4.20/arch/mips/ddb5xxx/ddb5477/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/.cvsignore	2001-12-30 21:33:19.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5477/debug.c linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/debug.c
--- linux-2.4.20/arch/mips/ddb5xxx/ddb5477/debug.c	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/debug.c	2002-12-01 18:24:46.000000000 -0600
@@ -56,8 +56,8 @@
 void vrc5477_show_int_regs()
 {
 	jsun_show_regs("interrupt registers", int_regs);
-	printk("CPU CAUSE = %08x\n", read_32bit_cp0_register(CP0_CAUSE));
-	printk("CPU STATUS = %08x\n", read_32bit_cp0_register(CP0_STATUS));
+	printk("CPU CAUSE = %08x\n", read_c0_cause());
+	printk("CPU STATUS = %08x\n", read_c0_status());
 }
 static Register pdar_regs[] = {
         {"DDB_SDRAM0", DDB_BASE + DDB_SDRAM0},
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5477/int-handler.S linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/int-handler.S
--- linux-2.4.20/arch/mips/ddb5xxx/ddb5477/int-handler.S	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/int-handler.S	2002-12-11 23:02:09.000000000 -0600
@@ -14,6 +14,7 @@
 #include <asm/addrspace.h>
 #include <asm/regdef.h>
 #include <asm/stackframe.h>
+#include <asm/ddb5xxx/ddb5477.h>
 
 /*
  * first level interrupt dispatcher for ocelot board -
@@ -55,20 +56,20 @@
 	j	ret_from_irq
 
 ll_cputimer_irq:
-	li	a0, 7
+	li	a0, CPU_IRQ_BASE + 7
 	move	a1, sp
 	jal	do_IRQ
 	j	ret_from_irq
 
 
 ll_cpu_ip0:
-	li	a0, 0
+	li	a0, CPU_IRQ_BASE + 0
 	move	a1, sp
 	jal	do_IRQ
 	j	ret_from_irq
 
 ll_cpu_ip1:
-	li	a0, 1
+	li	a0, CPU_IRQ_BASE + 1
 	move	a1, sp
 	jal	do_IRQ
 	j	ret_from_irq
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5477/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/irq.c
--- linux-2.4.20/arch/mips/ddb5xxx/ddb5477/irq.c	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/irq.c	2002-12-01 18:24:46.000000000 -0600
@@ -90,8 +90,8 @@
 	ddb_out32(DDB_INTCTRL2, 0);
 	ddb_out32(DDB_INTCTRL3, 0);
 
-	clear_cp0_status(0xff00);
-	set_cp0_status(0x0400);
+	clear_c0_status(0xff00);
+	set_c0_status(0x0400);
 
 	/* setup PCI interrupt attributes */
 	set_pci_int_attr(PCI0, INTA, ACTIVE_LOW, LEVEL_SENSE);
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5477/pci.c linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/pci.c
--- linux-2.4.20/arch/mips/ddb5xxx/ddb5477/pci.c	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/pci.c	2002-12-12 15:48:11.000000000 -0600
@@ -204,6 +204,33 @@
 {
 }
 
+/* 
+ * fixup baseboard AMD chip so that tx does not underflow.
+ *	bcr_18 |= 0x0800
+ * This sets NOUFLO bit which makes tx not start until whole pkt 
+ * is fetched to the chip.
+ */
+#define	PCNET32_WIO_RDP         0x10
+#define	PCNET32_WIO_RAP		0x12
+#define	PCNET32_WIO_RESET       0x14
+#define	PCNET32_WIO_BDP         0x16
+void __init fix_amd_lance(struct pci_dev *dev)
+{
+	unsigned long ioaddr;
+	u16 temp;
+
+	ioaddr=pci_resource_start(dev, 0);
+
+	inw(ioaddr + PCNET32_WIO_RESET);		/* reset chip */
+
+ 	/* bcr_18 |= 0x0800 */
+	outw (18, ioaddr + PCNET32_WIO_RAP);
+	temp = inw (ioaddr + PCNET32_WIO_BDP);
+	temp |= 0x0800;
+	outw (18, ioaddr + PCNET32_WIO_RAP);
+	outw (temp, ioaddr + PCNET32_WIO_BDP);
+}
+
 void __init pcibios_fixup(void)
 {
 	if (mips_machtype == MACH_NEC_ROCKHOPPERII) {
@@ -241,6 +268,10 @@
 				pci_read_config_byte(dev, 0x41, &old);
 				pci_write_config_byte(dev, 0x41, old | 0xd0);
 			}
+
+			if (dev->vendor == PCI_VENDOR_ID_AMD && 
+					dev->device == PCI_DEVICE_ID_AMD_LANCE) 
+				fix_amd_lance(dev);
 		}
 
 	}
diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5477/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/setup.c
--- linux-2.4.20/arch/mips/ddb5xxx/ddb5477/setup.c	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/setup.c	2002-12-11 23:02:09.000000000 -0600
@@ -45,10 +45,8 @@
 
 // #define	USE_CPU_COUNTER_TIMER	/* whether we use cpu counter */
 
-#ifndef USE_CPU_COUNTER_TIMER
 #define	SP_TIMER_BASE			DDB_SPT1CTRL_L
 #define	SP_TIMER_IRQ			VRC5477_IRQ_SPT1
-#endif
 
 static int bus_frequency = CONFIG_DDB5477_BUS_FREQUENCY*1000;
 
@@ -143,7 +141,7 @@
 	}
 
 	/* mips_counter_frequency is 1/2 of the cpu core freq */
-	i =  (read_32bit_cp0_register(CP0_CONFIG) >> 28 ) & 7;
+	i =  (read_c0_config() >> 28 ) & 7;
 	if ((mips_cpu.cputype == CPU_R5432) && (i == 3))
 		i = 4;
 	mips_counter_frequency = bus_frequency*(i+4)/4;
@@ -159,8 +157,8 @@
 	setup_irq(CPU_IRQ_BASE + 7, irq);
 
         /* to generate the first timer interrupt */
-        count = read_32bit_cp0_register(CP0_COUNT);
-        write_32bit_cp0_register(CP0_COMPARE, count + 1000);
+        count = read_c0_count();
+        write_c0_compare(count + 1000);
 
 #else
 
diff -urNd -urNd linux-2.4.20/arch/mips/dec/boot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/dec/boot/CVS/Entries
--- linux-2.4.20/arch/mips/dec/boot/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/boot/CVS/Entries	2005-01-06 23:00:02.000000000 -0600
@@ -0,0 +1,5 @@
+/.cvsignore/1.1/Sat Mar 25 22:41:20 2000/-ko/Tlinux_2_4_20
+/Makefile/1.2.2.1/Tue Jun 25 15:46:59 2002/-ko/Tlinux_2_4_20
+/decstation.c/1.1/Sun Jan 17 03:49:43 1999/-ko/Tlinux_2_4_20
+/ld.ecoff/1.2/Wed Aug 22 03:23:58 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/dec/boot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/dec/boot/CVS/Repository
--- linux-2.4.20/arch/mips/dec/boot/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/boot/CVS/Repository	2005-01-06 23:00:02.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/dec/boot
diff -urNd -urNd linux-2.4.20/arch/mips/dec/boot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/dec/boot/CVS/Root
--- linux-2.4.20/arch/mips/dec/boot/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/boot/CVS/Root	2005-01-06 23:00:02.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/dec/boot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/dec/boot/CVS/Tag
--- linux-2.4.20/arch/mips/dec/boot/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/boot/CVS/Tag	2005-01-06 23:00:02.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/dec/boot/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/dec/boot/.cvsignore
--- linux-2.4.20/arch/mips/dec/boot/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/boot/.cvsignore	2000-03-25 16:41:20.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/dec/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/dec/CVS/Entries
--- linux-2.4.20/arch/mips/dec/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/CVS/Entries	2005-01-06 23:08:20.000000000 -0600
@@ -0,0 +1,13 @@
+/.cvsignore/1.1/Sat Mar 25 22:41:20 2000/-ko/Tlinux_2_4_20
+/Makefile/1.8.2.4/Mon Dec 16 15:12:39 2002/-ko/Tlinux_2_4_20
+/int-handler.S/1.10.2.3/Mon Jan 20 20:21:42 2003/-ko/Tlinux_2_4_20
+/ioasic-irq.c/1.1.2.2/Wed Jul 24 17:55:46 2002/-ko/Tlinux_2_4_20
+/kn02-irq.c/1.1.2.2/Wed Jul 24 17:55:46 2002/-ko/Tlinux_2_4_20
+/promcon.c/1.3.4.4/Thu Nov  7 01:47:45 2002/-ko/Tlinux_2_4_20
+/reset.c/1.6.2.2/Thu Jan 16 13:52:36 2003/-ko/Tlinux_2_4_20
+/rtc-dec.c/1.3.2.2/Mon Dec 16 15:12:39 2002/-ko/Tlinux_2_4_20
+/setup.c/1.11.2.15/Thu Jan 30 14:25:13 2003/-ko/Tlinux_2_4_20
+/time.c/1.16.2.2/Mon Dec  2 00:24:46 2002/-ko/Tlinux_2_4_20
+/wbflush.c/1.5.2.2/Thu Dec 12 19:08:47 2002/-ko/Tlinux_2_4_20
+D/boot////
+D/prom////
diff -urNd -urNd linux-2.4.20/arch/mips/dec/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/dec/CVS/Repository
--- linux-2.4.20/arch/mips/dec/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/CVS/Repository	2005-01-06 23:00:01.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/dec
diff -urNd -urNd linux-2.4.20/arch/mips/dec/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/dec/CVS/Root
--- linux-2.4.20/arch/mips/dec/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/CVS/Root	2005-01-06 23:00:01.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/dec/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/dec/CVS/Tag
--- linux-2.4.20/arch/mips/dec/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/CVS/Tag	2005-01-06 23:00:02.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/dec/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/dec/.cvsignore
--- linux-2.4.20/arch/mips/dec/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/.cvsignore	2000-03-25 16:41:20.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/dec/int-handler.S linux-2.4.20-mipscvs-20050106/arch/mips/dec/int-handler.S
--- linux-2.4.20/arch/mips/dec/int-handler.S	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/int-handler.S	2003-01-20 14:21:42.000000000 -0600
@@ -132,19 +132,23 @@
 		 */
 		mfc0	t0,CP0_CAUSE		# get pending interrupts
 		mfc0	t1,CP0_STATUS
+#ifdef CONFIG_MIPS32
 		lw	t2,cpu_fpu_mask
+#endif
 		andi	t0,ST0_IM		# CAUSE.CE may be non-zero!
 		and	t0,t1			# isolate allowed ones
 
 		beqz	t0,spurious
 
+#ifdef CONFIG_MIPS32
 		 and	t2,t0
 		bnez	t2,fpu			# handle FPU immediately
+#endif
 
 		/*
 		 * Find irq with highest priority
 		 */
-		 la	t1,cpu_mask_nr_tbl
+		 PTR_LA	t1,cpu_mask_nr_tbl
 1:		lw	t2,(t1)
 		nop
 		and	t2,t0
@@ -161,14 +165,16 @@
 		 nop
 		jr	a0
 						# a trick to save a branch:
-		 lui	t2,KN03_IOASIC_BASE>>16	# upper part of IOASIC Address
+		 lui	t2,(KN03_IOASIC_BASE>>16)&0xffff
+						# upper part of IOASIC Address
 
 /*
  * Handle "IRQ Controller" Interrupts
  * Masked Interrupts are still visible and have to be masked "by hand".
  */
 		FEXPORT(kn02_io_int)		# 3max
-		lui	t0,KN02_CSR_ADDR>>16	# get interrupt status and mask
+		lui	t0,(KN02_CSR_ADDR>>16)&0xffff
+						# get interrupt status and mask
 		lw	t0,(t0)
 		nop
 		andi	t1,t0,KN02_IRQ_ALL
@@ -176,7 +182,8 @@
 		 srl	t0,16			# shift interrupt mask
 
 		FEXPORT(kn02xa_io_int)		# 3min/maxine
-		lui	t2,KN02XA_IOASIC_BASE>>16 # upper part of IOASIC Address
+		lui	t2,(KN02XA_IOASIC_BASE>>16)&0xffff
+						# upper part of IOASIC Address
 
 		FEXPORT(kn03_io_int)		# 3max+ (t2 loaded earlier)
 		lw	t0,SIR(t2)		# get status: IOASIC isr
@@ -190,7 +197,7 @@
 		/*
 		 * Find irq with highest priority
 		 */
-		 la	t1,asic_mask_nr_tbl
+		 PTR_LA	t1,asic_mask_nr_tbl
 2:		lw	t2,(t1)
 		nop
 		and	t2,t0
@@ -263,9 +270,11 @@
 		j	ret_from_irq
 		 nop
 
+#ifdef CONFIG_MIPS32
 fpu:
 		j	handle_fpe_int
 		 nop
+#endif
 
 spurious:
 		j	spurious_interrupt
diff -urNd -urNd linux-2.4.20/arch/mips/dec/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/dec/Makefile
--- linux-2.4.20/arch/mips/dec/Makefile	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/Makefile	2002-12-16 09:12:39.000000000 -0600
@@ -12,7 +12,7 @@
 
 all: dec.o
 
-export-objs := setup.o wbflush.o
+export-objs := rtc-dec.o setup.o wbflush.o
 obj-y	 := int-handler.o ioasic-irq.o kn02-irq.o reset.o rtc-dec.o setup.o \
 	time.o
 
diff -urNd -urNd linux-2.4.20/arch/mips/dec/prom/call_o32.S linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/call_o32.S
--- linux-2.4.20/arch/mips/dec/prom/call_o32.S	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/call_o32.S	2002-10-01 10:01:55.000000000 -0500
@@ -0,0 +1,91 @@
+/*
+ *	arch/mips/dec/call_o32.S
+ *
+ *	O32 interface for the 64 (or N32) ABI.
+ *
+ *	Copyright (C) 2002  Maciej W. Rozycki
+ *
+ *	This program is free software; you can redistribute it and/or
+ *	modify it under the terms of the GNU General Public License
+ *	as published by the Free Software Foundation; either version
+ *	2 of the License, or (at your option) any later version.
+ */
+
+#include <asm/asm.h>
+#include <asm/regdef.h>
+
+/* Maximum number of arguments supported.  Must be even!  */
+#define O32_ARGC	32
+/* Number of static registers we save.  */
+#define O32_STATC	11
+/* Frame size for both of the above.  */
+#define O32_FRAMESZ	(4 * O32_ARGC + SZREG * O32_STATC)
+
+		.text
+
+/*
+ * O32 function call dispatcher, for interfacing 32-bit ROM routines.
+ *
+ * The standard 64 (N32) calling sequence is supported, with a0
+ * holding a function pointer, a1-a7 -- its first seven arguments
+ * and the stack -- remaining ones (up to O32_ARGC, including a1-a7).
+ * Static registers, gp and fp are preserved, v0 holds a result.
+ * This code relies on the called o32 function for sp and ra
+ * restoration and thus both this dispatcher and the current stack
+ * have to be placed in a KSEGx (or KUSEG) address space.  Any
+ * pointers passed have to point to addresses within one of these
+ * spaces as well.
+ */
+NESTED(call_o32, O32_FRAMESZ, ra)
+		REG_SUBU	sp,O32_FRAMESZ
+
+		REG_S		ra,O32_FRAMESZ-1*SZREG(sp)
+		REG_S		fp,O32_FRAMESZ-2*SZREG(sp)
+		REG_S		gp,O32_FRAMESZ-3*SZREG(sp)
+		REG_S		s7,O32_FRAMESZ-4*SZREG(sp)
+		REG_S		s6,O32_FRAMESZ-5*SZREG(sp)
+		REG_S		s5,O32_FRAMESZ-6*SZREG(sp)
+		REG_S		s4,O32_FRAMESZ-7*SZREG(sp)
+		REG_S		s3,O32_FRAMESZ-8*SZREG(sp)
+		REG_S		s2,O32_FRAMESZ-9*SZREG(sp)
+		REG_S		s1,O32_FRAMESZ-10*SZREG(sp)
+		REG_S		s0,O32_FRAMESZ-11*SZREG(sp)
+
+		move		jp,a0
+
+		sll		a0,a1,zero
+		sll		a1,a2,zero
+		sll		a2,a3,zero
+		sll		a3,a4,zero
+		sw		a5,0x10(sp)
+		sw		a6,0x14(sp)
+		sw		a7,0x18(sp)
+
+		PTR_LA		t0,O32_FRAMESZ(sp)
+		PTR_LA		t1,0x1c(sp)
+		li		t2,O32_ARGC-7
+1:
+		lw		t3,(t0)
+		REG_ADDU	t0,SZREG
+		sw		t3,(t1)
+		REG_SUBU	t2,1
+		REG_ADDU	t1,4
+		bnez		t2,1b
+
+		jalr		jp
+
+		REG_L		s0,O32_FRAMESZ-11*SZREG(sp)
+		REG_L		s1,O32_FRAMESZ-10*SZREG(sp)
+		REG_L		s2,O32_FRAMESZ-9*SZREG(sp)
+		REG_L		s3,O32_FRAMESZ-8*SZREG(sp)
+		REG_L		s4,O32_FRAMESZ-7*SZREG(sp)
+		REG_L		s5,O32_FRAMESZ-6*SZREG(sp)
+		REG_L		s6,O32_FRAMESZ-5*SZREG(sp)
+		REG_L		s7,O32_FRAMESZ-4*SZREG(sp)
+		REG_L		gp,O32_FRAMESZ-3*SZREG(sp)
+		REG_L		fp,O32_FRAMESZ-2*SZREG(sp)
+		REG_L		ra,O32_FRAMESZ-1*SZREG(sp)
+
+		REG_ADDU	sp,O32_FRAMESZ
+		jr		ra
+END(call_o32)
diff -urNd -urNd linux-2.4.20/arch/mips/dec/prom/cmdline.c linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/cmdline.c
--- linux-2.4.20/arch/mips/dec/prom/cmdline.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/cmdline.c	2002-10-01 10:01:55.000000000 -0500
@@ -6,32 +6,30 @@
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
+#include <linux/types.h>
 
 #include <asm/bootinfo.h>
-
-#include "prom.h"
+#include <asm/dec/prom.h>
 
 #undef PROM_DEBUG
 
-#ifdef PROM_DEBUG
-extern int (*prom_printf)(char *, ...);
-#endif
-
 char arcs_cmdline[CL_SIZE];
 
-void __init prom_init_cmdline(int argc, char **argv, unsigned long magic)
+void __init prom_init_cmdline(s32 argc, s32 *argv, u32 magic)
 {
+	char *arg;
 	int start_arg, i;
 
 	/*
 	 * collect args and prepare cmd_line
 	 */
-	if (magic != REX_PROM_MAGIC)
+	if (!prom_is_rex(magic))
 		start_arg = 1;
 	else
 		start_arg = 2;
 	for (i = start_arg; i < argc; i++) {
-		strcat(arcs_cmdline, argv[i]);
+		arg = (void *)(long)(argv[i]);
+		strcat(arcs_cmdline, arg);
 		if (i < (argc - 1))
 			strcat(arcs_cmdline, " ");
 	}
@@ -39,6 +37,4 @@
 #ifdef PROM_DEBUG
 	prom_printf("arcs_cmdline: %s\n", &(arcs_cmdline[0]));
 #endif
-
 }
-
diff -urNd -urNd linux-2.4.20/arch/mips/dec/prom/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/CVS/Entries
--- linux-2.4.20/arch/mips/dec/prom/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/CVS/Entries	2005-01-06 23:00:02.000000000 -0600
@@ -0,0 +1,10 @@
+/.cvsignore/1.1/Sat Mar 25 22:41:20 2000/-ko/Tlinux_2_4_20
+/Makefile/1.4.2.2/Tue Oct  1 15:01:55 2002/-ko/Tlinux_2_4_20
+/call_o32.S/1.1.2.1/Tue Oct  1 15:01:55 2002/-ko/Tlinux_2_4_20
+/cmdline.c/1.4.4.2/Tue Oct  1 15:01:55 2002/-ko/Tlinux_2_4_20
+/dectypes.h/1.1/Sun Jan 17 03:49:44 1999/-ko/Tlinux_2_4_20
+/identify.c/1.4.2.6/Mon Dec 16 15:14:40 2002/-ko/Tlinux_2_4_20
+/init.c/1.6.4.2/Tue Oct  1 15:01:55 2002/-ko/Tlinux_2_4_20
+/locore.S/1.1.6.1/Tue Oct  1 15:01:55 2002/-ko/Tlinux_2_4_20
+/memory.c/1.10.2.2/Tue Oct  1 15:01:55 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/dec/prom/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/CVS/Repository
--- linux-2.4.20/arch/mips/dec/prom/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/CVS/Repository	2005-01-06 23:00:02.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/dec/prom
diff -urNd -urNd linux-2.4.20/arch/mips/dec/prom/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/CVS/Root
--- linux-2.4.20/arch/mips/dec/prom/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/CVS/Root	2005-01-06 23:00:02.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/dec/prom/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/CVS/Tag
--- linux-2.4.20/arch/mips/dec/prom/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/CVS/Tag	2005-01-06 23:00:02.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/dec/prom/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/.cvsignore
--- linux-2.4.20/arch/mips/dec/prom/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/.cvsignore	2000-03-25 16:41:20.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/dec/prom/identify.c linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/identify.c
--- linux-2.4.20/arch/mips/dec/prom/identify.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/identify.c	2002-12-16 09:14:40.000000000 -0600
@@ -2,50 +2,111 @@
  * identify.c: machine identification code.
  *
  * Copyright (C) 1998 Harald Koerfgen and Paul M. Antoine
+ * Copyright (C) 2002  Maciej W. Rozycki
  */
 #include <linux/init.h>
 #include <linux/kernel.h>
+#include <linux/mc146818rtc.h>
 #include <linux/string.h>
+#include <linux/types.h>
 
 #include <asm/bootinfo.h>
+#include <asm/dec/ioasic.h>
+#include <asm/dec/ioasic_addrs.h>
+#include <asm/dec/kn01.h>
+#include <asm/dec/kn02.h>
+#include <asm/dec/kn02ba.h>
+#include <asm/dec/kn02ca.h>
+#include <asm/dec/kn03.h>
+#include <asm/dec/kn230.h>
+#include <asm/dec/prom.h>
 
 #include "dectypes.h"
-#include "prom.h"
-
-extern char *(*prom_getenv)(char *);
-extern int (*prom_printf)(char *, ...);
-extern int (*rex_getsysid)(void);
 
 extern unsigned long mips_machgroup;
 extern unsigned long mips_machtype;
 
-extern unsigned long mips_machtype;
+static const char *dec_system_strings[] = {
+	[MACH_DSUNKNOWN]	"unknown DECstation",
+	[MACH_DS23100]		"DECstation 2100/3100",
+	[MACH_DS5100]		"DECsystem 5100",
+	[MACH_DS5000_200]	"DECstation 5000/200",
+	[MACH_DS5000_1XX]	"DECstation 5000/1xx",
+	[MACH_DS5000_XX]	"Personal DECstation 5000/xx",
+	[MACH_DS5000_2X0]	"DECstation 5000/2x0",
+	[MACH_DS5400]		"DECsystem 5400",
+	[MACH_DS5500]		"DECsystem 5500",
+	[MACH_DS5800]		"DECsystem 5800",
+	[MACH_DS5900]		"DECsystem 5900",
+};
+
 const char *get_system_type(void)
 {
-	static char system[32];
-	int called = 0;
-	const char *dec_system_strings[] = { "unknown", "DECstation 2100/3100",
-        	"DECstation 5100", "DECstation 5000/200", "DECstation 5000/1xx",
-		"Personal DECstation 5000/xx", "DECstation 5000/2x0",
-		"DECstation 5400", "DECstation 5500", "DECstation 5800"
-	};
+#define STR_BUF_LEN	64
+	static char system[STR_BUF_LEN];
+	static int called = 0;
 
 	if (called == 0) {
 		called = 1;
-		strcpy(system, "Digital ");
-		strcat(system, dec_system_strings[mips_machtype]);
+		snprintf(system, STR_BUF_LEN, "Digital %s",
+			 dec_system_strings[mips_machtype]);
 	}
 
 	return system;
 }
 
-void __init prom_identify_arch (unsigned int magic)
+
+/*
+ * Setup essential system-specific memory addresses.  We need them
+ * early.  Semantically the functions belong to prom/init.c, but they
+ * are compact enough we want them inlined. -- macro
+ */
+static inline void prom_init_kn01(void)
 {
-	unsigned char dec_cpunum, dec_firmrev, dec_etc;
-	int dec_systype;
-	unsigned long dec_sysid;
+	dec_rtc_base = (void *)KN01_RTC_BASE;
+	dec_kn_slot_size = KN01_SLOT_SIZE;
+}
 
-	if (magic != REX_PROM_MAGIC) {
+static inline void prom_init_kn230(void)
+{
+	dec_rtc_base = (void *)KN01_RTC_BASE;
+	dec_kn_slot_size = KN01_SLOT_SIZE;
+}
+
+static inline void prom_init_kn02(void)
+{
+	dec_rtc_base = (void *)KN02_RTC_BASE;
+	dec_kn_slot_size = KN02_SLOT_SIZE;
+}
+
+static inline void prom_init_kn02ba(void)
+{
+	ioasic_base = (void *)KN02BA_IOASIC_BASE;
+	dec_rtc_base = (void *)KN02BA_RTC_BASE;
+	dec_kn_slot_size = IOASIC_SLOT_SIZE;
+}
+
+static inline void prom_init_kn02ca(void)
+{
+	ioasic_base = (void *)KN02CA_IOASIC_BASE;
+	dec_rtc_base = (void *)KN02CA_RTC_BASE;
+	dec_kn_slot_size = IOASIC_SLOT_SIZE;
+}
+
+static inline void prom_init_kn03(void)
+{
+	ioasic_base = (void *)KN03_IOASIC_BASE;
+	dec_rtc_base = (void *)KN03_RTC_BASE;
+	dec_kn_slot_size = IOASIC_SLOT_SIZE;
+}
+
+
+void __init prom_identify_arch(u32 magic)
+{
+	unsigned char dec_cpunum, dec_firmrev, dec_etc, dec_systype;
+	u32 dec_sysid;
+
+	if (!prom_is_rex(magic)) {
 		dec_sysid = simple_strtoul(prom_getenv("systype"), (char **)0, 0);
 	} else {
 		dec_sysid = rex_getsysid();
@@ -67,50 +128,52 @@
 	 * FIXME: This may not be an exhaustive list of DECStations/Servers!
 	 * Put all model-specific initialisation calls here.
 	 */
-	prom_printf("This DECstation is a ");
-
 	switch (dec_systype) {
 	case DS2100_3100:
-		prom_printf("DS2100/3100\n");
 		mips_machtype = MACH_DS23100;
+		prom_init_kn01();
 		break;
 	case DS5100:		/* DS5100 MIPSMATE */
-		prom_printf("DS5100\n");
 		mips_machtype = MACH_DS5100;
+		prom_init_kn230();
 		break;
 	case DS5000_200:	/* DS5000 3max */
-		prom_printf("DS5000/200\n");
 		mips_machtype = MACH_DS5000_200;
+		prom_init_kn02();
 		break;
 	case DS5000_1XX:	/* DS5000/100 3min */
-		prom_printf("DS5000/1xx\n");
 		mips_machtype = MACH_DS5000_1XX;
+		prom_init_kn02ba();
 		break;
-	case DS5000_2X0:	/* DS5000/240 3max+ */
-		prom_printf("DS5000/2x0\n");
+	case DS5000_2X0:	/* DS5000/240 3max+ or DS5900 bigmax */
 		mips_machtype = MACH_DS5000_2X0;
+		prom_init_kn03();
+		if (!(ioasic_read(SIR) & KN03_IO_INR_3MAXP))
+			mips_machtype = MACH_DS5900;
 		break;
 	case DS5000_XX:	/* Personal DS5000/2x */
-		prom_printf("Personal DS5000/xx\n");
 		mips_machtype = MACH_DS5000_XX;
+		prom_init_kn02ca();
 		break;
 	case DS5800:		/* DS5800 Isis */
-		prom_printf("DS5800\n");
 		mips_machtype = MACH_DS5800;
 		break;
 	case DS5400:		/* DS5400 MIPSfair */
-		prom_printf("DS5400\n");
 		mips_machtype = MACH_DS5400;
 		break;
 	case DS5500:		/* DS5500 MIPSfair-2 */
-		prom_printf("DS5500\n");
 		mips_machtype = MACH_DS5500;
 		break;
 	default:
-		prom_printf("unknown, id is %x", dec_systype);
 		mips_machtype = MACH_DSUNKNOWN;
 		break;
 	}
-}
-
 
+	if (mips_machtype == MACH_DSUNKNOWN)
+		prom_printf("This is an %s, id is %x\n",
+			    dec_system_strings[mips_machtype],
+			    dec_systype);
+	else
+		prom_printf("This is a %s\n",
+			    dec_system_strings[mips_machtype]);
+}
diff -urNd -urNd linux-2.4.20/arch/mips/dec/prom/init.c linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/init.c
--- linux-2.4.20/arch/mips/dec/prom/init.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/init.c	2002-10-01 10:01:55.000000000 -0500
@@ -2,92 +2,94 @@
  * init.c: PROM library initialisation code.
  *
  * Copyright (C) 1998 Harald Koerfgen
+ * Copyright (C) 2002  Maciej W. Rozycki
  */
-#include <linux/init.h>
 #include <linux/config.h>
+#include <linux/init.h>
+#include <linux/types.h>
+
 #include <asm/bootinfo.h>
 #include <asm/cpu.h>
-#include "prom.h"
+#include <asm/dec/prom.h>
 
-/*
- * PROM Interface (whichprom.c)
- */
-typedef struct {
-	int pagesize;
-	unsigned char bitmap[0];
-} memmap;
 
-int (*rex_bootinit)(void);
-int (*rex_bootread)(void);
-int (*rex_getbitmap)(memmap *);
-unsigned long *(*rex_slot_address)(int);
-void *(*rex_gettcinfo)(void);
-int (*rex_getsysid)(void);
-void (*rex_clear_cache)(void);
+int (*__rex_bootinit)(void);
+int (*__rex_bootread)(void);
+int (*__rex_getbitmap)(memmap *);
+unsigned long *(*__rex_slot_address)(int);
+void *(*__rex_gettcinfo)(void);
+int (*__rex_getsysid)(void);
+void (*__rex_clear_cache)(void);
 
-int (*prom_getchar)(void);
-char *(*prom_getenv)(char *);
-int (*prom_printf)(char *, ...);
+int (*__prom_getchar)(void);
+char *(*__prom_getenv)(char *);
+int (*__prom_printf)(char *, ...);
 
-int (*pmax_open)(char*, int);
-int (*pmax_lseek)(int, long, int);
-int (*pmax_read)(int, void *, int);
-int (*pmax_close)(int);
+int (*__pmax_open)(char*, int);
+int (*__pmax_lseek)(int, long, int);
+int (*__pmax_read)(int, void *, int);
+int (*__pmax_close)(int);
 
-extern void prom_meminit(unsigned int);
-extern void prom_identify_arch(unsigned int);
-extern void prom_init_cmdline(int, char **, unsigned long);
 
 /*
  * Detect which PROM's the DECSTATION has, and set the callback vectors
  * appropriately.
  */
-void __init which_prom(unsigned long magic, int *prom_vec)
+void __init which_prom(s32 magic, s32 *prom_vec)
 {
 	/*
 	 * No sign of the REX PROM's magic number means we assume a non-REX
 	 * machine (i.e. we're on a DS2100/3100, DS5100 or DS5000/2xx)
 	 */
-	if (magic == REX_PROM_MAGIC)
-	{
+	if (prom_is_rex(magic)) {
 		/*
 		 * Set up prom abstraction structure with REX entry points.
 		 */
-		rex_bootinit = (int (*)(void)) *(prom_vec + REX_PROM_BOOTINIT);
-		rex_bootread = (int (*)(void)) *(prom_vec + REX_PROM_BOOTREAD);
-		rex_getbitmap = (int (*)(memmap *)) *(prom_vec + REX_PROM_GETBITMAP);
-		prom_getchar = (int (*)(void)) *(prom_vec + REX_PROM_GETCHAR);
-		prom_getenv = (char *(*)(char *)) *(prom_vec + REX_PROM_GETENV);
-		rex_getsysid = (int (*)(void)) *(prom_vec + REX_PROM_GETSYSID);
-		rex_gettcinfo = (void *(*)(void)) *(prom_vec + REX_PROM_GETTCINFO);
-		prom_printf = (int (*)(char *, ...)) *(prom_vec + REX_PROM_PRINTF);
-		rex_slot_address = (unsigned long *(*)(int)) *(prom_vec + REX_PROM_SLOTADDR);
-		rex_clear_cache = (void (*)(void)) * (prom_vec + REX_PROM_CLEARCACHE);
-	}
-	else
-	{
+		__rex_bootinit =
+			(void *)(long)*(prom_vec + REX_PROM_BOOTINIT);
+		__rex_bootread =
+			(void *)(long)*(prom_vec + REX_PROM_BOOTREAD);
+		__rex_getbitmap =
+			(void *)(long)*(prom_vec + REX_PROM_GETBITMAP);
+		__prom_getchar =
+			(void *)(long)*(prom_vec + REX_PROM_GETCHAR);
+		__prom_getenv =
+			(void *)(long)*(prom_vec + REX_PROM_GETENV);
+		__rex_getsysid =
+			(void *)(long)*(prom_vec + REX_PROM_GETSYSID);
+		__rex_gettcinfo =
+			(void *)(long)*(prom_vec + REX_PROM_GETTCINFO);
+		__prom_printf =
+			(void *)(long)*(prom_vec + REX_PROM_PRINTF);
+		__rex_slot_address =
+			(void *)(long)*(prom_vec + REX_PROM_SLOTADDR);
+		__rex_clear_cache =
+			(void *)(long)*(prom_vec + REX_PROM_CLEARCACHE);
+	} else {
 		/*
 		 * Set up prom abstraction structure with non-REX entry points.
 		 */
-		prom_getchar = (int (*)(void)) PMAX_PROM_GETCHAR;
-		prom_getenv = (char *(*)(char *)) PMAX_PROM_GETENV;
-		prom_printf = (int (*)(char *, ...)) PMAX_PROM_PRINTF;
-		pmax_open = (int (*)(char *, int)) PMAX_PROM_OPEN;
-		pmax_lseek = (int (*)(int, long, int)) PMAX_PROM_LSEEK;
-		pmax_read = (int (*)(int, void *, int)) PMAX_PROM_READ;
-		pmax_close = (int (*)(int)) PMAX_PROM_CLOSE;
+		__prom_getchar = (void *)PMAX_PROM_GETCHAR;
+		__prom_getenv = (void *)PMAX_PROM_GETENV;
+		__prom_printf = (void *)PMAX_PROM_PRINTF;
+		__pmax_open = (void *)PMAX_PROM_OPEN;
+		__pmax_lseek = (void *)PMAX_PROM_LSEEK;
+		__pmax_read = (void *)PMAX_PROM_READ;
+		__pmax_close = (void *)PMAX_PROM_CLOSE;
 	}
 }
 
-int __init prom_init(int argc, char **argv,
-	       unsigned long magic, int *prom_vec)
+int __init prom_init(s32 argc, s32 *argv, u32 magic, s32 *prom_vec)
 {
 	extern void dec_machine_halt(void);
 
-	/* Determine which PROM's we have (and therefore which machine we're on!) */
+	/*
+	 * Determine which PROM's we have
+	 * (and therefore which machine we're on!)
+	 */
 	which_prom(magic, prom_vec);
 
-	if (magic == REX_PROM_MAGIC)
+	if (prom_is_rex(magic))
 		rex_clear_cache();
 
 	/* Were we compiled with the right CPU option? */
@@ -115,4 +117,3 @@
 
 	return 0;
 }
-
diff -urNd -urNd linux-2.4.20/arch/mips/dec/prom/locore.S linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/locore.S
--- linux-2.4.20/arch/mips/dec/prom/locore.S	1999-06-25 19:40:12.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/locore.S	2002-10-01 10:01:55.000000000 -0500
@@ -19,11 +19,11 @@
 	mfc0	k0, CP0_STATUS
 	la	k1, mem_err
 
-	sw	k0,0(k1)
+	sw	k0, 0(k1)
 
 	mfc0	k0, CP0_EPC
 	nop
-	addiu	k0,4		# skip the causing instruction
+	addiu	k0, 4		# skip the causing instruction
 	jr	k0
 	 rfe
 END(genexcept_early)
diff -urNd -urNd linux-2.4.20/arch/mips/dec/prom/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/Makefile
--- linux-2.4.20/arch/mips/dec/prom/Makefile	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/Makefile	2002-10-01 10:01:55.000000000 -0500
@@ -12,6 +12,9 @@
 
 L_TARGET  = rexlib.a
 
-obj-y +=  init.o memory.o cmdline.o identify.o locore.o
+obj-y			+= init.o memory.o cmdline.o identify.o
+
+obj-$(CONFIG_MIPS32)	+= locore.o
+obj-$(CONFIG_MIPS64)	+= call_o32.o
 
 include $(TOPDIR)/Rules.make
diff -urNd -urNd linux-2.4.20/arch/mips/dec/prom/memory.c linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/memory.c
--- linux-2.4.20/arch/mips/dec/prom/memory.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/memory.c	2002-10-01 10:01:55.000000000 -0500
@@ -2,35 +2,21 @@
  * memory.c: memory initialisation code.
  *
  * Copyright (C) 1998 Harald Koerfgen, Frieder Streffer and Paul M. Antoine
- * Copyright (C) 2000 Maciej W. Rozycki
+ * Copyright (C) 2000, 2002  Maciej W. Rozycki
  */
-#include <linux/init.h>
 #include <linux/config.h>
+#include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
 #include <linux/bootmem.h>
+#include <linux/types.h>
 
 #include <asm/addrspace.h>
-#include <asm/page.h>
-
 #include <asm/bootinfo.h>
-
 #include <asm/dec/machtype.h>
+#include <asm/dec/prom.h>
+#include <asm/page.h>
 
-#include "prom.h"
-
-typedef struct {
-	int pagesize;
-	unsigned char bitmap[0];
-} memmap;
-
-extern int (*rex_getbitmap)(memmap *);
-
-#undef PROM_DEBUG
-
-#ifdef PROM_DEBUG
-extern int (*prom_printf)(char *, ...);
-#endif
 
 volatile unsigned long mem_err = 0;	/* So we know an error occurred */
 
@@ -41,10 +27,10 @@
 
 #define CHUNK_SIZE 0x400000
 
-static void __init pmax_setup_memory_region(void)
+static inline void pmax_setup_memory_region(void)
 {
 	volatile unsigned char *memory_page, dummy;
-	char	old_handler[0x80];
+	char old_handler[0x80];
 	extern char genexcept_early;
 
 	/* Install exception handler */
@@ -71,14 +57,14 @@
  * Use the REX prom calls to get hold of the memory bitmap, and thence
  * determine memory size.
  */
-static void __init rex_setup_memory_region(void)
+static inline void rex_setup_memory_region(void)
 {
 	int i, bitmap_size;
 	unsigned long mem_start = 0, mem_size = 0;
 	memmap *bm;
 
 	/* some free 64k */
-	bm = (memmap *) 0x80028000;
+	bm = (memmap *)KSEG0ADDR(0x28000);
 
 	bitmap_size = rex_getbitmap(bm);
 
@@ -98,9 +84,9 @@
 		add_memory_region(mem_start, mem_size, BOOT_MEM_RAM);
 }
 
-void __init prom_meminit(unsigned int magic)
+void __init prom_meminit(u32 magic)
 {
-	if (magic != REX_PROM_MAGIC)
+	if (!prom_is_rex(magic))
 		pmax_setup_memory_region();
 	else
 		rex_setup_memory_region();
diff -urNd -urNd linux-2.4.20/arch/mips/dec/prom/prom.h linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/prom.h
--- linux-2.4.20/arch/mips/dec/prom/prom.h	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/prom.h	1969-12-31 18:00:00.000000000 -0600
@@ -1,51 +0,0 @@
-/*
- * Miscellaneous definitions used to call the routines contained in the boot
- * PROMs on various models of DECSTATION's.
- * the rights to redistribute these changes.
- */
-
-#ifndef __ASM_DEC_PROM_H
-#define __ASM_DEC_PROM_H
-
-/*
- * PMAX/3MAX PROM entry points for DS2100/3100's and DS5000/2xx's.  Many of
- * these will work for MIPSen as well!
- */
-#define VEC_RESET		0xBFC00000		/* Prom base address */
-#define	PMAX_PROM_ENTRY(x)	(VEC_RESET+((x)*8))	/* Prom jump table */
-
-#define	PMAX_PROM_HALT		PMAX_PROM_ENTRY(2)	/* valid on MIPSen */
-#define	PMAX_PROM_AUTOBOOT	PMAX_PROM_ENTRY(5)	/* valid on MIPSen */
-#define	PMAX_PROM_OPEN		PMAX_PROM_ENTRY(6)
-#define	PMAX_PROM_READ		PMAX_PROM_ENTRY(7)
-#define	PMAX_PROM_CLOSE		PMAX_PROM_ENTRY(10)
-#define	PMAX_PROM_LSEEK		PMAX_PROM_ENTRY(11)
-#define PMAX_PROM_GETCHAR       PMAX_PROM_ENTRY(12)
-#define	PMAX_PROM_PUTCHAR	PMAX_PROM_ENTRY(13)	/* 12 on MIPSen */
-#define	PMAX_PROM_GETS		PMAX_PROM_ENTRY(15)
-#define	PMAX_PROM_PRINTF	PMAX_PROM_ENTRY(17)
-#define	PMAX_PROM_GETENV	PMAX_PROM_ENTRY(33)	/* valid on MIPSen */
-
-/*
- * Magic number indicating REX PROM available on DECSTATION.  Found in
- * register a2 on transfer of control to program from PROM.
- */
-#define	REX_PROM_MAGIC		0x30464354
-
-/*
- * 3MIN/MAXINE PROM entry points for DS5000/1xx's, DS5000/xx's, and
- * DS5000/2x0.
- */
-#define REX_PROM_GETBITMAP	0x84/4	/* get mem bitmap */
-#define REX_PROM_GETCHAR	0x24/4	/* getch() */
-#define REX_PROM_GETENV		0x64/4	/* get env. variable */
-#define REX_PROM_GETSYSID	0x80/4	/* get system id */
-#define REX_PROM_GETTCINFO	0xa4/4
-#define REX_PROM_PRINTF		0x30/4	/* printf() */
-#define REX_PROM_SLOTADDR	0x6c/4	/* slotaddr */
-#define REX_PROM_BOOTINIT	0x54/4	/* open() */
-#define REX_PROM_BOOTREAD	0x58/4	/* read() */
-#define REX_PROM_CLEARCACHE	0x7c/4
-
-#endif /* __ASM_DEC_PROM_H */
-
diff -urNd -urNd linux-2.4.20/arch/mips/dec/promcon.c linux-2.4.20-mipscvs-20050106/arch/mips/dec/promcon.c
--- linux-2.4.20/arch/mips/dec/promcon.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/promcon.c	2002-11-06 19:47:45.000000000 -0600
@@ -12,8 +12,7 @@
 #include <linux/console.h>
 #include <linux/fs.h>
 
-extern int (*prom_getchar) (void);
-extern int (*prom_printf) (char *,...);
+#include <asm/dec/prom.h>
 
 static void prom_console_write(struct console *co, const char *s,
 			       unsigned count)
@@ -42,12 +41,12 @@
 
 static struct console sercons =
 {
-    name:	"ttyS",
-    write:	prom_console_write,
-    device:	prom_console_device,
-    setup:	prom_console_setup,
-    flags:	CON_PRINTBUFFER,
-    index:	-1,
+    .name	= "ttyS",
+    .write	= prom_console_write,
+    .device	= prom_console_device,
+    .setup	= prom_console_setup,
+    .flags	= CON_PRINTBUFFER,
+    .index	= -1,
 };
 
 /*
diff -urNd -urNd linux-2.4.20/arch/mips/dec/reset.c linux-2.4.20-mipscvs-20050106/arch/mips/dec/reset.c
--- linux-2.4.20/arch/mips/dec/reset.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/reset.c	2003-01-16 07:52:36.000000000 -0600
@@ -1,8 +1,14 @@
 /*
  * Reset a DECstation machine.
+ *
+ * Copyright (C) 199x  the Anonymous
+ * Copyright (C) 2001, 2002, 2003  Maciej W. Rozycki
  */
 
-void (*back_to_prom)(void) = (void (*)(void))0xBFC00000;
+#include <asm/addrspace.h>
+#include <asm/ptrace.h>
+
+#define back_to_prom()	(((void (*)(void))KSEG1ADDR(0x1fc00000))())
 
 void dec_machine_restart(char *command)
 {
diff -urNd -urNd linux-2.4.20/arch/mips/dec/rtc-dec.c linux-2.4.20-mipscvs-20050106/arch/mips/dec/rtc-dec.c
--- linux-2.4.20/arch/mips/dec/rtc-dec.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/rtc-dec.c	2002-12-16 09:12:39.000000000 -0600
@@ -11,6 +11,7 @@
  */
 
 #include <linux/mc146818rtc.h>
+#include <linux/module.h>
 #include <linux/types.h>
 
 volatile u8 *dec_rtc_base;
@@ -35,3 +36,5 @@
 	&dec_rtc_write_data,
 	&dec_rtc_bcd_mode
 };
+
+EXPORT_SYMBOL(dec_rtc_base);
diff -urNd -urNd linux-2.4.20/arch/mips/dec/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/dec/setup.c
--- linux-2.4.20/arch/mips/dec/setup.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/setup.c	2003-01-30 08:25:13.000000000 -0600
@@ -16,6 +16,7 @@
 #include <linux/console.h>
 #include <linux/init.h>
 #include <linux/module.h>
+#include <linux/spinlock.h>
 #include <linux/types.h>
 
 #include <asm/cpu.h>
@@ -28,15 +29,15 @@
 #include <asm/wbflush.h>
 
 #include <asm/dec/interrupts.h>
+#include <asm/dec/ioasic.h>
+#include <asm/dec/ioasic_addrs.h>
+#include <asm/dec/ioasic_ints.h>
 #include <asm/dec/kn01.h>
 #include <asm/dec/kn02.h>
 #include <asm/dec/kn02ba.h>
 #include <asm/dec/kn02ca.h>
 #include <asm/dec/kn03.h>
 #include <asm/dec/kn230.h>
-#include <asm/dec/ioasic.h>
-#include <asm/dec/ioasic_addrs.h>
-#include <asm/dec/ioasic_ints.h>
 
 
 extern void dec_machine_restart(char *command);
@@ -46,6 +47,8 @@
 
 extern asmlinkage void decstation_handle_int(void);
 
+spinlock_t ioasic_ssr_lock;
+
 volatile u32 *ioasic_base;
 unsigned long dec_kn_slot_size;
 
@@ -75,10 +78,10 @@
 	[0 ... DEC_NR_INTS - 1] = -1
 };
 int_ptr cpu_mask_nr_tbl[DEC_MAX_CPU_INTS][2] = {
-	{ { i: ~0 }, { p: dec_intr_unimplemented } },
+	{ { .i = ~0 }, { .p = dec_intr_unimplemented } },
 };
 int_ptr asic_mask_nr_tbl[DEC_MAX_ASIC_INTS][2] = {
-	{ { i: ~0 }, { p: asic_intr_unimplemented } },
+	{ { .i = ~0 }, { .p = asic_intr_unimplemented } },
 };
 int cpu_fpu_mask = DEC_CPU_IRQ_MASK(DEC_CPU_INR_FPU);
 
@@ -175,10 +178,10 @@
 	[DEC_IRQ_SCC0A_RXDMA]	= -1,
 	[DEC_IRQ_SCC0A_TXERR]	= -1,
 	[DEC_IRQ_SCC0A_TXDMA]	= -1,
-	[DEC_IRQ_SCC0B_RXERR]	= -1,
-	[DEC_IRQ_SCC0B_RXDMA]	= -1,
-	[DEC_IRQ_SCC0B_TXERR]	= -1,
-	[DEC_IRQ_SCC0B_TXDMA]	= -1,
+	[DEC_IRQ_AB_RXERR]	= -1,
+	[DEC_IRQ_AB_RXDMA]	= -1,
+	[DEC_IRQ_AB_TXERR]	= -1,
+	[DEC_IRQ_AB_TXDMA]	= -1,
 	[DEC_IRQ_SCC1A_RXERR]	= -1,
 	[DEC_IRQ_SCC1A_RXDMA]	= -1,
 	[DEC_IRQ_SCC1A_TXERR]	= -1,
@@ -186,26 +189,22 @@
 };
 
 static int_ptr kn01_cpu_mask_nr_tbl[][2] __initdata = {
-	{ { i: DEC_CPU_IRQ_MASK(KN01_CPU_INR_MEMORY) },
-		{ i: DEC_CPU_IRQ_NR(KN01_CPU_INR_MEMORY) } },
-	{ { i: DEC_CPU_IRQ_MASK(KN01_CPU_INR_RTC) },
-		{ i: DEC_CPU_IRQ_NR(KN01_CPU_INR_RTC) } },
-	{ { i: DEC_CPU_IRQ_MASK(KN01_CPU_INR_DZ11) },
-		{ i: DEC_CPU_IRQ_NR(KN01_CPU_INR_DZ11) } },
-	{ { i: DEC_CPU_IRQ_MASK(KN01_CPU_INR_SII) },
-		{ i: DEC_CPU_IRQ_NR(KN01_CPU_INR_SII) } },
-	{ { i: DEC_CPU_IRQ_MASK(KN01_CPU_INR_LANCE) },
-		{ i: DEC_CPU_IRQ_NR(KN01_CPU_INR_LANCE) } },
-	{ { i: DEC_CPU_IRQ_ALL },
-		{ p: cpu_all_int } },
+	{ { .i = DEC_CPU_IRQ_MASK(KN01_CPU_INR_MEMORY) },
+		{ .i = DEC_CPU_IRQ_NR(KN01_CPU_INR_MEMORY) } },
+	{ { .i = DEC_CPU_IRQ_MASK(KN01_CPU_INR_RTC) },
+		{ .i = DEC_CPU_IRQ_NR(KN01_CPU_INR_RTC) } },
+	{ { .i = DEC_CPU_IRQ_MASK(KN01_CPU_INR_DZ11) },
+		{ .i = DEC_CPU_IRQ_NR(KN01_CPU_INR_DZ11) } },
+	{ { .i = DEC_CPU_IRQ_MASK(KN01_CPU_INR_SII) },
+		{ .i = DEC_CPU_IRQ_NR(KN01_CPU_INR_SII) } },
+	{ { .i = DEC_CPU_IRQ_MASK(KN01_CPU_INR_LANCE) },
+		{ .i = DEC_CPU_IRQ_NR(KN01_CPU_INR_LANCE) } },
+	{ { .i = DEC_CPU_IRQ_ALL },
+		{ .p = cpu_all_int } },
 };
 
 void __init dec_init_kn01(void)
 {
-	/* Setup some memory addresses. */
-	dec_rtc_base = (void *)KN01_RTC_BASE;
-	dec_kn_slot_size = KN01_SLOT_SIZE;
-
 	/* IRQ routing. */
 	memcpy(&dec_interrupt, &kn01_interrupt,
 		sizeof(kn01_interrupt));
@@ -256,10 +255,10 @@
 	[DEC_IRQ_SCC0A_RXDMA]	= -1,
 	[DEC_IRQ_SCC0A_TXERR]	= -1,
 	[DEC_IRQ_SCC0A_TXDMA]	= -1,
-	[DEC_IRQ_SCC0B_RXERR]	= -1,
-	[DEC_IRQ_SCC0B_RXDMA]	= -1,
-	[DEC_IRQ_SCC0B_TXERR]	= -1,
-	[DEC_IRQ_SCC0B_TXDMA]	= -1,
+	[DEC_IRQ_AB_RXERR]	= -1,
+	[DEC_IRQ_AB_RXDMA]	= -1,
+	[DEC_IRQ_AB_TXERR]	= -1,
+	[DEC_IRQ_AB_TXDMA]	= -1,
 	[DEC_IRQ_SCC1A_RXERR]	= -1,
 	[DEC_IRQ_SCC1A_RXDMA]	= -1,
 	[DEC_IRQ_SCC1A_TXERR]	= -1,
@@ -267,24 +266,20 @@
 };
 
 static int_ptr kn230_cpu_mask_nr_tbl[][2] __initdata = {
-	{ { i: DEC_CPU_IRQ_MASK(KN230_CPU_INR_MEMORY) },
-		{ i: DEC_CPU_IRQ_NR(KN230_CPU_INR_MEMORY) } },
-	{ { i: DEC_CPU_IRQ_MASK(KN230_CPU_INR_RTC) },
-		{ i: DEC_CPU_IRQ_NR(KN230_CPU_INR_RTC) } },
-	{ { i: DEC_CPU_IRQ_MASK(KN230_CPU_INR_DZ11) },
-		{ i: DEC_CPU_IRQ_NR(KN230_CPU_INR_DZ11) } },
-	{ { i: DEC_CPU_IRQ_MASK(KN230_CPU_INR_SII) },
-		{ i: DEC_CPU_IRQ_NR(KN230_CPU_INR_SII) } },
-	{ { i: DEC_CPU_IRQ_ALL },
-		{ p: cpu_all_int } },
+	{ { .i = DEC_CPU_IRQ_MASK(KN230_CPU_INR_MEMORY) },
+		{ .i = DEC_CPU_IRQ_NR(KN230_CPU_INR_MEMORY) } },
+	{ { .i = DEC_CPU_IRQ_MASK(KN230_CPU_INR_RTC) },
+		{ .i = DEC_CPU_IRQ_NR(KN230_CPU_INR_RTC) } },
+	{ { .i = DEC_CPU_IRQ_MASK(KN230_CPU_INR_DZ11) },
+		{ .i = DEC_CPU_IRQ_NR(KN230_CPU_INR_DZ11) } },
+	{ { .i = DEC_CPU_IRQ_MASK(KN230_CPU_INR_SII) },
+		{ .i = DEC_CPU_IRQ_NR(KN230_CPU_INR_SII) } },
+	{ { .i = DEC_CPU_IRQ_ALL },
+		{ .p = cpu_all_int } },
 };
 
 void __init dec_init_kn230(void)
 {
-	/* Setup some memory addresses. */
-	dec_rtc_base = (void *)KN01_RTC_BASE;
-	dec_kn_slot_size = KN01_SLOT_SIZE;
-
 	/* IRQ routing. */
 	memcpy(&dec_interrupt, &kn230_interrupt,
 		sizeof(kn230_interrupt));
@@ -335,10 +330,10 @@
 	[DEC_IRQ_SCC0A_RXDMA]	= -1,
 	[DEC_IRQ_SCC0A_TXERR]	= -1,
 	[DEC_IRQ_SCC0A_TXDMA]	= -1,
-	[DEC_IRQ_SCC0B_RXERR]	= -1,
-	[DEC_IRQ_SCC0B_RXDMA]	= -1,
-	[DEC_IRQ_SCC0B_TXERR]	= -1,
-	[DEC_IRQ_SCC0B_TXDMA]	= -1,
+	[DEC_IRQ_AB_RXERR]	= -1,
+	[DEC_IRQ_AB_RXDMA]	= -1,
+	[DEC_IRQ_AB_TXERR]	= -1,
+	[DEC_IRQ_AB_TXDMA]	= -1,
 	[DEC_IRQ_SCC1A_RXERR]	= -1,
 	[DEC_IRQ_SCC1A_RXDMA]	= -1,
 	[DEC_IRQ_SCC1A_TXERR]	= -1,
@@ -346,39 +341,35 @@
 };
 
 static int_ptr kn02_cpu_mask_nr_tbl[][2] __initdata = {
-	{ { i: DEC_CPU_IRQ_MASK(KN02_CPU_INR_MEMORY) },
-		{ i: DEC_CPU_IRQ_NR(KN02_CPU_INR_MEMORY) } },
-	{ { i: DEC_CPU_IRQ_MASK(KN02_CPU_INR_RTC) },
-		{ i: DEC_CPU_IRQ_NR(KN02_CPU_INR_RTC) } },
-	{ { i: DEC_CPU_IRQ_MASK(KN02_CPU_INR_CASCADE) },
-		{ p: kn02_io_int } },
-	{ { i: DEC_CPU_IRQ_ALL },
-		{ p: cpu_all_int } },
+	{ { .i = DEC_CPU_IRQ_MASK(KN02_CPU_INR_MEMORY) },
+		{ .i = DEC_CPU_IRQ_NR(KN02_CPU_INR_MEMORY) } },
+	{ { .i = DEC_CPU_IRQ_MASK(KN02_CPU_INR_RTC) },
+		{ .i = DEC_CPU_IRQ_NR(KN02_CPU_INR_RTC) } },
+	{ { .i = DEC_CPU_IRQ_MASK(KN02_CPU_INR_CASCADE) },
+		{ .p = kn02_io_int } },
+	{ { .i = DEC_CPU_IRQ_ALL },
+		{ .p = cpu_all_int } },
 };
 
 static int_ptr kn02_asic_mask_nr_tbl[][2] __initdata = {
-	{ { i: KN02_IRQ_MASK(KN02_CSR_INR_DZ11) },
-		{ i: KN02_IRQ_NR(KN02_CSR_INR_DZ11) } },
-	{ { i: KN02_IRQ_MASK(KN02_CSR_INR_ASC) },
-		{ i: KN02_IRQ_NR(KN02_CSR_INR_ASC) } },
-	{ { i: KN02_IRQ_MASK(KN02_CSR_INR_LANCE) },
-		{ i: KN02_IRQ_NR(KN02_CSR_INR_LANCE) } },
-	{ { i: KN02_IRQ_MASK(KN02_CSR_INR_TC2) },
-		{ i: KN02_IRQ_NR(KN02_CSR_INR_TC2) } },
-	{ { i: KN02_IRQ_MASK(KN02_CSR_INR_TC1) },
-		{ i: KN02_IRQ_NR(KN02_CSR_INR_TC1) } },
-	{ { i: KN02_IRQ_MASK(KN02_CSR_INR_TC0) },
-		{ i: KN02_IRQ_NR(KN02_CSR_INR_TC0) } },
-	{ { i: KN02_IRQ_ALL },
-		{ p: kn02_all_int } },
+	{ { .i = KN02_IRQ_MASK(KN02_CSR_INR_DZ11) },
+		{ .i = KN02_IRQ_NR(KN02_CSR_INR_DZ11) } },
+	{ { .i = KN02_IRQ_MASK(KN02_CSR_INR_ASC) },
+		{ .i = KN02_IRQ_NR(KN02_CSR_INR_ASC) } },
+	{ { .i = KN02_IRQ_MASK(KN02_CSR_INR_LANCE) },
+		{ .i = KN02_IRQ_NR(KN02_CSR_INR_LANCE) } },
+	{ { .i = KN02_IRQ_MASK(KN02_CSR_INR_TC2) },
+		{ .i = KN02_IRQ_NR(KN02_CSR_INR_TC2) } },
+	{ { .i = KN02_IRQ_MASK(KN02_CSR_INR_TC1) },
+		{ .i = KN02_IRQ_NR(KN02_CSR_INR_TC1) } },
+	{ { .i = KN02_IRQ_MASK(KN02_CSR_INR_TC0) },
+		{ .i = KN02_IRQ_NR(KN02_CSR_INR_TC0) } },
+	{ { .i = KN02_IRQ_ALL },
+		{ .p = kn02_all_int } },
 };
 
 void __init dec_init_kn02(void)
 {
-	/* Setup some memory addresses. */
-	dec_rtc_base = (void *)KN02_RTC_BASE;
-	dec_kn_slot_size = KN02_SLOT_SIZE;
-
 	/* IRQ routing. */
 	memcpy(&dec_interrupt, &kn02_interrupt,
 		sizeof(kn02_interrupt));
@@ -436,10 +427,10 @@
 	[DEC_IRQ_SCC0A_RXDMA]	= IO_IRQ_NR(IO_INR_SCC0A_RXDMA),
 	[DEC_IRQ_SCC0A_TXERR]	= IO_IRQ_NR(IO_INR_SCC0A_TXERR),
 	[DEC_IRQ_SCC0A_TXDMA]	= IO_IRQ_NR(IO_INR_SCC0A_TXDMA),
-	[DEC_IRQ_SCC0B_RXERR]	= -1,
-	[DEC_IRQ_SCC0B_RXDMA]	= -1,
-	[DEC_IRQ_SCC0B_TXERR]	= -1,
-	[DEC_IRQ_SCC0B_TXDMA]	= -1,
+	[DEC_IRQ_AB_RXERR]	= -1,
+	[DEC_IRQ_AB_RXDMA]	= -1,
+	[DEC_IRQ_AB_TXERR]	= -1,
+	[DEC_IRQ_AB_TXDMA]	= -1,
 	[DEC_IRQ_SCC1A_RXERR]	= IO_IRQ_NR(IO_INR_SCC1A_RXERR),
 	[DEC_IRQ_SCC1A_RXDMA]	= IO_IRQ_NR(IO_INR_SCC1A_RXDMA),
 	[DEC_IRQ_SCC1A_TXERR]	= IO_IRQ_NR(IO_INR_SCC1A_TXERR),
@@ -447,44 +438,39 @@
 };
 
 static int_ptr kn02ba_cpu_mask_nr_tbl[][2] __initdata = {
-	{ { i: DEC_CPU_IRQ_MASK(KN02BA_CPU_INR_CASCADE) },
-		{ p: kn02xa_io_int } },
-	{ { i: DEC_CPU_IRQ_MASK(KN02BA_CPU_INR_TC2) },
-		{ i: DEC_CPU_IRQ_NR(KN02BA_CPU_INR_TC2) } },
-	{ { i: DEC_CPU_IRQ_MASK(KN02BA_CPU_INR_TC1) },
-		{ i: DEC_CPU_IRQ_NR(KN02BA_CPU_INR_TC1) } },
-	{ { i: DEC_CPU_IRQ_MASK(KN02BA_CPU_INR_TC0) },
-		{ i: DEC_CPU_IRQ_NR(KN02BA_CPU_INR_TC0) } },
-	{ { i: DEC_CPU_IRQ_ALL },
-		{ p: cpu_all_int } },
+	{ { .i = DEC_CPU_IRQ_MASK(KN02BA_CPU_INR_CASCADE) },
+		{ .p = kn02xa_io_int } },
+	{ { .i = DEC_CPU_IRQ_MASK(KN02BA_CPU_INR_TC2) },
+		{ .i = DEC_CPU_IRQ_NR(KN02BA_CPU_INR_TC2) } },
+	{ { .i = DEC_CPU_IRQ_MASK(KN02BA_CPU_INR_TC1) },
+		{ .i = DEC_CPU_IRQ_NR(KN02BA_CPU_INR_TC1) } },
+	{ { .i = DEC_CPU_IRQ_MASK(KN02BA_CPU_INR_TC0) },
+		{ .i = DEC_CPU_IRQ_NR(KN02BA_CPU_INR_TC0) } },
+	{ { .i = DEC_CPU_IRQ_ALL },
+		{ .p = cpu_all_int } },
 };
 
 static int_ptr kn02ba_asic_mask_nr_tbl[][2] __initdata = {
-	{ { i: IO_IRQ_MASK(KN02BA_IO_INR_MEMORY) },
-		{ i: IO_IRQ_NR(KN02BA_IO_INR_MEMORY) } },
-	{ { i: IO_IRQ_MASK(KN02BA_IO_INR_RTC) },
-		{ i: IO_IRQ_NR(KN02BA_IO_INR_RTC) } },
-	{ { i: IO_IRQ_DMA },
-		{ p: asic_dma_int } },
-	{ { i: IO_IRQ_MASK(KN02BA_IO_INR_SCC0) },
-		{ i: IO_IRQ_NR(KN02BA_IO_INR_SCC0) } },
-	{ { i: IO_IRQ_MASK(KN02BA_IO_INR_SCC1) },
-		{ i: IO_IRQ_NR(KN02BA_IO_INR_SCC1) } },
-	{ { i: IO_IRQ_MASK(KN02BA_IO_INR_ASC) },
-		{ i: IO_IRQ_NR(KN02BA_IO_INR_ASC) } },
-	{ { i: IO_IRQ_MASK(KN02BA_IO_INR_LANCE) },
-		{ i: IO_IRQ_NR(KN02BA_IO_INR_LANCE) } },
-	{ { i: IO_IRQ_ALL },
-		{ p: asic_all_int } },
+	{ { .i = IO_IRQ_MASK(KN02BA_IO_INR_MEMORY) },
+		{ .i = IO_IRQ_NR(KN02BA_IO_INR_MEMORY) } },
+	{ { .i = IO_IRQ_MASK(KN02BA_IO_INR_RTC) },
+		{ .i = IO_IRQ_NR(KN02BA_IO_INR_RTC) } },
+	{ { .i = IO_IRQ_DMA },
+		{ .p = asic_dma_int } },
+	{ { .i = IO_IRQ_MASK(KN02BA_IO_INR_SCC0) },
+		{ .i = IO_IRQ_NR(KN02BA_IO_INR_SCC0) } },
+	{ { .i = IO_IRQ_MASK(KN02BA_IO_INR_SCC1) },
+		{ .i = IO_IRQ_NR(KN02BA_IO_INR_SCC1) } },
+	{ { .i = IO_IRQ_MASK(KN02BA_IO_INR_ASC) },
+		{ .i = IO_IRQ_NR(KN02BA_IO_INR_ASC) } },
+	{ { .i = IO_IRQ_MASK(KN02BA_IO_INR_LANCE) },
+		{ .i = IO_IRQ_NR(KN02BA_IO_INR_LANCE) } },
+	{ { .i = IO_IRQ_ALL },
+		{ .p = asic_all_int } },
 };
 
 void __init dec_init_kn02ba(void)
 {
-	/* Setup some memory addresses. */
-	ioasic_base = (void *)KN02BA_IOASIC_BASE;
-	dec_rtc_base = (void *)KN02BA_RTC_BASE;
-	dec_kn_slot_size = IOASIC_SLOT_SIZE;
-
 	/* IRQ routing. */
 	memcpy(&dec_interrupt, &kn02ba_interrupt,
 		sizeof(kn02ba_interrupt));
@@ -542,10 +528,10 @@
 	[DEC_IRQ_SCC0A_RXDMA]	= IO_IRQ_NR(IO_INR_SCC0A_RXDMA),
 	[DEC_IRQ_SCC0A_TXERR]	= IO_IRQ_NR(IO_INR_SCC0A_TXERR),
 	[DEC_IRQ_SCC0A_TXDMA]	= IO_IRQ_NR(IO_INR_SCC0A_TXDMA),
-	[DEC_IRQ_SCC0B_RXERR]	= IO_IRQ_NR(IO_INR_SCC0B_RXERR),
-	[DEC_IRQ_SCC0B_RXDMA]	= IO_IRQ_NR(IO_INR_SCC0B_RXDMA),
-	[DEC_IRQ_SCC0B_TXERR]	= IO_IRQ_NR(IO_INR_SCC0B_TXERR),
-	[DEC_IRQ_SCC0B_TXDMA]	= IO_IRQ_NR(IO_INR_SCC0B_TXDMA),
+	[DEC_IRQ_AB_RXERR]	= IO_IRQ_NR(IO_INR_AB_RXERR),
+	[DEC_IRQ_AB_RXDMA]	= IO_IRQ_NR(IO_INR_AB_RXDMA),
+	[DEC_IRQ_AB_TXERR]	= IO_IRQ_NR(IO_INR_AB_TXERR),
+	[DEC_IRQ_AB_TXDMA]	= IO_IRQ_NR(IO_INR_AB_TXDMA),
 	[DEC_IRQ_SCC1A_RXERR]	= -1,
 	[DEC_IRQ_SCC1A_RXDMA]	= -1,
 	[DEC_IRQ_SCC1A_TXERR]	= -1,
@@ -553,40 +539,35 @@
 };
 
 static int_ptr kn02ca_cpu_mask_nr_tbl[][2] __initdata = {
-	{ { i: DEC_CPU_IRQ_MASK(KN02CA_CPU_INR_MEMORY) },
-		{ i: DEC_CPU_IRQ_NR(KN02CA_CPU_INR_MEMORY) } },
-	{ { i: DEC_CPU_IRQ_MASK(KN02CA_CPU_INR_RTC) },
-		{ i: DEC_CPU_IRQ_NR(KN02CA_CPU_INR_RTC) } },
-	{ { i: DEC_CPU_IRQ_MASK(KN02CA_CPU_INR_CASCADE) },
-		{ p: kn02xa_io_int } },
-	{ { i: DEC_CPU_IRQ_ALL },
-		{ p: cpu_all_int } },
+	{ { .i = DEC_CPU_IRQ_MASK(KN02CA_CPU_INR_MEMORY) },
+		{ .i = DEC_CPU_IRQ_NR(KN02CA_CPU_INR_MEMORY) } },
+	{ { .i = DEC_CPU_IRQ_MASK(KN02CA_CPU_INR_RTC) },
+		{ .i = DEC_CPU_IRQ_NR(KN02CA_CPU_INR_RTC) } },
+	{ { .i = DEC_CPU_IRQ_MASK(KN02CA_CPU_INR_CASCADE) },
+		{ .p = kn02xa_io_int } },
+	{ { .i = DEC_CPU_IRQ_ALL },
+		{ .p = cpu_all_int } },
 };
 
 static int_ptr kn02ca_asic_mask_nr_tbl[][2] __initdata = {
-	{ { i: IO_IRQ_DMA },
-		{ p: asic_dma_int } },
-	{ { i: IO_IRQ_MASK(KN02CA_IO_INR_SCC0) },
-		{ i: IO_IRQ_NR(KN02CA_IO_INR_SCC0) } },
-	{ { i: IO_IRQ_MASK(KN02CA_IO_INR_ASC) },
-		{ i: IO_IRQ_NR(KN02CA_IO_INR_ASC) } },
-	{ { i: IO_IRQ_MASK(KN02CA_IO_INR_LANCE) },
-		{ i: IO_IRQ_NR(KN02CA_IO_INR_LANCE) } },
-	{ { i: IO_IRQ_MASK(KN02CA_IO_INR_TC1) },
-		{ i: IO_IRQ_NR(KN02CA_IO_INR_TC1) } },
-	{ { i: IO_IRQ_MASK(KN02CA_IO_INR_TC0) },
-		{ i: IO_IRQ_NR(KN02CA_IO_INR_TC0) } },
-	{ { i: IO_IRQ_ALL },
-		{ p: asic_all_int } },
+	{ { .i = IO_IRQ_DMA },
+		{ .p = asic_dma_int } },
+	{ { .i = IO_IRQ_MASK(KN02CA_IO_INR_SCC0) },
+		{ .i = IO_IRQ_NR(KN02CA_IO_INR_SCC0) } },
+	{ { .i = IO_IRQ_MASK(KN02CA_IO_INR_ASC) },
+		{ .i = IO_IRQ_NR(KN02CA_IO_INR_ASC) } },
+	{ { .i = IO_IRQ_MASK(KN02CA_IO_INR_LANCE) },
+		{ .i = IO_IRQ_NR(KN02CA_IO_INR_LANCE) } },
+	{ { .i = IO_IRQ_MASK(KN02CA_IO_INR_TC1) },
+		{ .i = IO_IRQ_NR(KN02CA_IO_INR_TC1) } },
+	{ { .i = IO_IRQ_MASK(KN02CA_IO_INR_TC0) },
+		{ .i = IO_IRQ_NR(KN02CA_IO_INR_TC0) } },
+	{ { .i = IO_IRQ_ALL },
+		{ .p = asic_all_int } },
 };
 
 void __init dec_init_kn02ca(void)
 {
-	/* Setup some memory addresses. */
-	ioasic_base = (void *)KN02CA_IOASIC_BASE;
-	dec_rtc_base = (void *)KN02CA_RTC_BASE;
-	dec_kn_slot_size = IOASIC_SLOT_SIZE;
-
 	/* IRQ routing. */
 	memcpy(&dec_interrupt, &kn02ca_interrupt,
 		sizeof(kn02ca_interrupt));
@@ -644,10 +625,10 @@
 	[DEC_IRQ_SCC0A_RXDMA]	= IO_IRQ_NR(IO_INR_SCC0A_RXDMA),
 	[DEC_IRQ_SCC0A_TXERR]	= IO_IRQ_NR(IO_INR_SCC0A_TXERR),
 	[DEC_IRQ_SCC0A_TXDMA]	= IO_IRQ_NR(IO_INR_SCC0A_TXDMA),
-	[DEC_IRQ_SCC0B_RXERR]	= -1,
-	[DEC_IRQ_SCC0B_RXDMA]	= -1,
-	[DEC_IRQ_SCC0B_TXERR]	= -1,
-	[DEC_IRQ_SCC0B_TXDMA]	= -1,
+	[DEC_IRQ_AB_RXERR]	= -1,
+	[DEC_IRQ_AB_RXDMA]	= -1,
+	[DEC_IRQ_AB_TXERR]	= -1,
+	[DEC_IRQ_AB_TXDMA]	= -1,
 	[DEC_IRQ_SCC1A_RXERR]	= IO_IRQ_NR(IO_INR_SCC1A_RXERR),
 	[DEC_IRQ_SCC1A_RXDMA]	= IO_IRQ_NR(IO_INR_SCC1A_RXDMA),
 	[DEC_IRQ_SCC1A_TXERR]	= IO_IRQ_NR(IO_INR_SCC1A_TXERR),
@@ -655,44 +636,39 @@
 };
 
 static int_ptr kn03_cpu_mask_nr_tbl[][2] __initdata = {
-	{ { i: DEC_CPU_IRQ_MASK(KN03_CPU_INR_MEMORY) },
-		{ i: DEC_CPU_IRQ_NR(KN03_CPU_INR_MEMORY) } },
-	{ { i: DEC_CPU_IRQ_MASK(KN03_CPU_INR_RTC) },
-		{ i: DEC_CPU_IRQ_NR(KN03_CPU_INR_RTC) } },
-	{ { i: DEC_CPU_IRQ_MASK(KN03_CPU_INR_CASCADE) },
-		{ p: kn03_io_int } },
-	{ { i: DEC_CPU_IRQ_ALL },
-		{ p: cpu_all_int } },
+	{ { .i = DEC_CPU_IRQ_MASK(KN03_CPU_INR_MEMORY) },
+		{ .i = DEC_CPU_IRQ_NR(KN03_CPU_INR_MEMORY) } },
+	{ { .i = DEC_CPU_IRQ_MASK(KN03_CPU_INR_RTC) },
+		{ .i = DEC_CPU_IRQ_NR(KN03_CPU_INR_RTC) } },
+	{ { .i = DEC_CPU_IRQ_MASK(KN03_CPU_INR_CASCADE) },
+		{ .p = kn03_io_int } },
+	{ { .i = DEC_CPU_IRQ_ALL },
+		{ .p = cpu_all_int } },
 };
 
 static int_ptr kn03_asic_mask_nr_tbl[][2] __initdata = {
-	{ { i: IO_IRQ_DMA },
-		{ p: asic_dma_int } },
-	{ { i: IO_IRQ_MASK(KN03_IO_INR_SCC0) },
-		{ i: IO_IRQ_NR(KN03_IO_INR_SCC0) } },
-	{ { i: IO_IRQ_MASK(KN03_IO_INR_SCC1) },
-		{ i: IO_IRQ_NR(KN03_IO_INR_SCC1) } },
-	{ { i: IO_IRQ_MASK(KN03_IO_INR_ASC) },
-		{ i: IO_IRQ_NR(KN03_IO_INR_ASC) } },
-	{ { i: IO_IRQ_MASK(KN03_IO_INR_LANCE) },
-		{ i: IO_IRQ_NR(KN03_IO_INR_LANCE) } },
-	{ { i: IO_IRQ_MASK(KN03_IO_INR_TC2) },
-		{ i: IO_IRQ_NR(KN03_IO_INR_TC2) } },
-	{ { i: IO_IRQ_MASK(KN03_IO_INR_TC1) },
-		{ i: IO_IRQ_NR(KN03_IO_INR_TC1) } },
-	{ { i: IO_IRQ_MASK(KN03_IO_INR_TC0) },
-		{ i: IO_IRQ_NR(KN03_IO_INR_TC0) } },
-	{ { i: IO_IRQ_ALL },
-		{ p: asic_all_int } },
+	{ { .i = IO_IRQ_DMA },
+		{ .p = asic_dma_int } },
+	{ { .i = IO_IRQ_MASK(KN03_IO_INR_SCC0) },
+		{ .i = IO_IRQ_NR(KN03_IO_INR_SCC0) } },
+	{ { .i = IO_IRQ_MASK(KN03_IO_INR_SCC1) },
+		{ .i = IO_IRQ_NR(KN03_IO_INR_SCC1) } },
+	{ { .i = IO_IRQ_MASK(KN03_IO_INR_ASC) },
+		{ .i = IO_IRQ_NR(KN03_IO_INR_ASC) } },
+	{ { .i = IO_IRQ_MASK(KN03_IO_INR_LANCE) },
+		{ .i = IO_IRQ_NR(KN03_IO_INR_LANCE) } },
+	{ { .i = IO_IRQ_MASK(KN03_IO_INR_TC2) },
+		{ .i = IO_IRQ_NR(KN03_IO_INR_TC2) } },
+	{ { .i = IO_IRQ_MASK(KN03_IO_INR_TC1) },
+		{ .i = IO_IRQ_NR(KN03_IO_INR_TC1) } },
+	{ { .i = IO_IRQ_MASK(KN03_IO_INR_TC0) },
+		{ .i = IO_IRQ_NR(KN03_IO_INR_TC0) } },
+	{ { .i = IO_IRQ_ALL },
+		{ .p = asic_all_int } },
 };
 
 void __init dec_init_kn03(void)
 {
-	/* Setup some memory addresses.  */
-	ioasic_base = (void *)KN03_IOASIC_BASE;
-	dec_rtc_base = (void *)KN03_RTC_BASE;
-	dec_kn_slot_size = IOASIC_SLOT_SIZE;
-
 	/* IRQ routing. */
 	memcpy(&dec_interrupt, &kn03_interrupt,
 		sizeof(kn03_interrupt));
@@ -727,6 +703,7 @@
 		dec_init_kn02ba();
 		break;
 	case MACH_DS5000_2X0:	/* DS5000/240 3max+ */
+	case MACH_DS5900:	/* DS5900 bigmax */
 		dec_init_kn03();
 		break;
 	case MACH_DS5000_XX:	/* Personal DS5000/xx */
@@ -762,6 +739,5 @@
 }
 
 EXPORT_SYMBOL(ioasic_base);
-EXPORT_SYMBOL(dec_rtc_base);
 EXPORT_SYMBOL(dec_kn_slot_size);
 EXPORT_SYMBOL(dec_interrupt);
diff -urNd -urNd linux-2.4.20/arch/mips/dec/time.c linux-2.4.20-mipscvs-20050106/arch/mips/dec/time.c
--- linux-2.4.20/arch/mips/dec/time.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/time.c	2002-12-01 18:24:46.000000000 -0600
@@ -99,7 +99,7 @@
 	    }
 	}
 	/* Get last timer tick in absolute kernel time */
-	count = read_32bit_cp0_register(CP0_COUNT);
+	count = read_c0_count();
 
 	/* .. relative to previous jiffy (32 bits is enough) */
 	count -= timerlo;
@@ -384,7 +384,7 @@
 	 * The cycle counter is only 32 bit which is good for about
 	 * a minute at current count rates of upto 150MHz or so.
 	 */
-	count = read_32bit_cp0_register(CP0_COUNT);
+	count = read_c0_count();
 	timerhi += (count < timerlo);	/* Wrap around */
 	timerlo = count;
 
@@ -394,7 +394,7 @@
 		 * update the timer[hi]/[lo] to make do_fast_gettimeoffset()
 		 * quotient calc still valid. -arca
 		 */
-		write_32bit_cp0_register(CP0_COUNT, 0);
+		write_c0_count(0);
 		timerhi = timerlo = 0;
 	}
 
@@ -476,7 +476,7 @@
 	write_unlock_irq(&xtime_lock);
 
 	if (mips_cpu.options & MIPS_CPU_COUNTER) {
-		write_32bit_cp0_register(CP0_COUNT, 0);
+		write_c0_count(0);
 		do_gettimeoffset = do_fast_gettimeoffset;
 		irq0.handler = r4k_timer_interrupt;
 	} else if (IOASIC) {
diff -urNd -urNd linux-2.4.20/arch/mips/dec/wbflush.c linux-2.4.20-mipscvs-20050106/arch/mips/dec/wbflush.c
--- linux-2.4.20/arch/mips/dec/wbflush.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/wbflush.c	2002-12-12 13:08:47.000000000 -0600
@@ -39,6 +39,7 @@
 	case MACH_DS5000_1XX:	/* DS5000/100 3min */
 	case MACH_DS5000_XX:	/* Personal DS5000/2x */
 	case MACH_DS5000_2X0:	/* DS5000/240 3max+ */
+	case MACH_DS5900:	/* DS5900 bigmax */
 	default:
 		__wbflush = wbflush_mips;
 		break;
diff -urNd -urNd linux-2.4.20/arch/mips/defconfig linux-2.4.20-mipscvs-20050106/arch/mips/defconfig
--- linux-2.4.20/arch/mips/defconfig	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig	2003-02-24 15:17:03.000000000 -0600
@@ -21,17 +21,22 @@
 # Machine selection
 #
 # CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
 # CONFIG_MIPS_PB1000 is not set
 # CONFIG_MIPS_PB1100 is not set
 # CONFIG_MIPS_PB1500 is not set
-# CONFIG_ALGOR_P4032 is not set
 # CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
 # CONFIG_MIPS_COBALT is not set
 # CONFIG_DECSTATION is not set
 # CONFIG_MIPS_EV64120 is not set
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MAGNUM_4000 is not set
@@ -51,21 +56,22 @@
 # CONFIG_SGI_IP32 is not set
 # CONFIG_SIBYTE_SB1xxx_SOC is not set
 # CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
 # CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
 # CONFIG_ZAO_CAPCELLA is not set
 # CONFIG_HIGHMEM is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
 CONFIG_ARC32=y
-CONFIG_ARC_CONSOLE=y
 CONFIG_ARC_MEMORY=y
+CONFIG_ARC_PROMLIB=y
 CONFIG_BOARD_SCACHE=y
 CONFIG_BOOT_ELF32=y
-CONFIG_SWAP_IO_SPACE=y
+# CONFIG_SWAP_IO_SPACE_W is not set
+CONFIG_SWAP_IO_SPACE_L=y
 CONFIG_IRQ_CPU=y
 CONFIG_L1_CACHE_SHIFT=5
-CONFIG_NONCOHERENT_IO=y
-CONFIG_NEW_IRQ=y
 CONFIG_NEW_TIME_C=y
 CONFIG_NONCOHERENT_IO=y
 CONFIG_PC_KEYB=y
@@ -91,7 +97,6 @@
 # CONFIG_CPU_R10000 is not set
 # CONFIG_CPU_RM7000 is not set
 # CONFIG_CPU_SB1 is not set
-CONFIG_BOARD_SCACHE=y
 # CONFIG_64BIT_PHYS_ADDR is not set
 # CONFIG_CPU_ADVANCED is not set
 CONFIG_CPU_HAS_LLSC=y
@@ -125,6 +130,8 @@
 # CONFIG_BINFMT_AOUT is not set
 CONFIG_BINFMT_ELF=y
 # CONFIG_MIPS32_COMPAT is not set
+# CONFIG_MIPS32_O32 is not set
+# CONFIG_MIPS32_N32 is not set
 # CONFIG_BINFMT_ELF32 is not set
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_PM is not set
@@ -468,6 +475,7 @@
 # CONFIG_MACHZ_WDT is not set
 CONFIG_INDYDOG=y
 # CONFIG_AMD7XX_TCO is not set
+# CONFIG_AMD_PM768 is not set
 # CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_DTLK is not set
@@ -614,8 +622,8 @@
 #
 # SGI devices
 #
-CONFIG_SGI_SERIAL=y
-# CONFIG_SERIAL_CONSOLE is not set
+CONFIG_IP22_SERIAL=y
+# CONFIG_IP22_SERIAL_CONSOLE is not set
 CONFIG_SGI_DS1286=y
 # CONFIG_SGI_NEWPORT_GFX is not set
 
@@ -634,6 +642,8 @@
 #
 CONFIG_CROSSCOMPILE=y
 # CONFIG_DEBUG is not set
+# CONFIG_REMOTE_DEBUG is not set
+# CONFIG_GDB_CONSOLE is not set
 # CONFIG_MAGIC_SYSRQ is not set
 # CONFIG_MIPS_UNCACHED is not set
 
diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-atlas linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-atlas
--- linux-2.4.20/arch/mips/defconfig-atlas	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-atlas	2003-02-24 15:17:03.000000000 -0600
@@ -19,17 +19,22 @@
 # Machine selection
 #
 # CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
 # CONFIG_MIPS_PB1000 is not set
 # CONFIG_MIPS_PB1100 is not set
 # CONFIG_MIPS_PB1500 is not set
-# CONFIG_ALGOR_P4032 is not set
 # CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
 # CONFIG_MIPS_COBALT is not set
 # CONFIG_DECSTATION is not set
 # CONFIG_MIPS_EV64120 is not set
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
 # CONFIG_MIPS_ITE8172 is not set
 CONFIG_MIPS_ATLAS=y
 # CONFIG_MIPS_MAGNUM_4000 is not set
@@ -49,18 +54,20 @@
 # CONFIG_SGI_IP32 is not set
 # CONFIG_SIBYTE_SB1xxx_SOC is not set
 # CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
 # CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
 # CONFIG_ZAO_CAPCELLA is not set
 # CONFIG_HIGHMEM is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
 CONFIG_BOOT_ELF32=y
 CONFIG_L1_CACHE_SHIFT=5
-CONFIG_NEW_IRQ=y
 CONFIG_NEW_TIME_C=y
 CONFIG_NONCOHERENT_IO=y
 CONFIG_PCI=y
-CONFIG_SWAP_IO_SPACE=y
+CONFIG_SWAP_IO_SPACE_W=y
+CONFIG_SWAP_IO_SPACE_L=y
 # CONFIG_MIPS_AU1000 is not set
 
 #
@@ -115,6 +122,8 @@
 # CONFIG_BINFMT_AOUT is not set
 CONFIG_BINFMT_ELF=y
 # CONFIG_MIPS32_COMPAT is not set
+# CONFIG_MIPS32_O32 is not set
+# CONFIG_MIPS32_N32 is not set
 # CONFIG_BINFMT_ELF32 is not set
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_PM is not set
@@ -381,6 +390,7 @@
 # CONFIG_SIS900 is not set
 # CONFIG_EPIC100 is not set
 # CONFIG_SUNDANCE is not set
+# CONFIG_SUNDANCE_MMIO is not set
 # CONFIG_TLAN is not set
 # CONFIG_TC35815 is not set
 # CONFIG_VIA_RHINE is not set
@@ -489,6 +499,7 @@
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
+# CONFIG_AMD_PM768 is not set
 # CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_DTLK is not set
@@ -629,9 +640,9 @@
 # Kernel hacking
 #
 CONFIG_CROSSCOMPILE=y
+# CONFIG_DEBUG is not set
 # CONFIG_REMOTE_DEBUG is not set
 # CONFIG_GDB_CONSOLE is not set
-# CONFIG_DEBUG is not set
 # CONFIG_MAGIC_SYSRQ is not set
 # CONFIG_MIPS_UNCACHED is not set
 
diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-capcella linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-capcella
--- linux-2.4.20/arch/mips/defconfig-capcella	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-capcella	2003-02-24 15:17:03.000000000 -0600
@@ -21,17 +21,22 @@
 # Machine selection
 #
 # CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
 # CONFIG_MIPS_PB1000 is not set
 # CONFIG_MIPS_PB1100 is not set
 # CONFIG_MIPS_PB1500 is not set
-# CONFIG_ALGOR_P4032 is not set
 # CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
 # CONFIG_MIPS_COBALT is not set
 # CONFIG_DECSTATION is not set
 # CONFIG_MIPS_EV64120 is not set
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MAGNUM_4000 is not set
@@ -51,14 +56,14 @@
 # CONFIG_SGI_IP32 is not set
 # CONFIG_SIBYTE_SB1xxx_SOC is not set
 # CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
 # CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
 CONFIG_ZAO_CAPCELLA=y
 # CONFIG_HIGHMEM is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
 CONFIG_CPU_VR41XX=y
-CONFIG_CPU_LITTLE_ENDIAN=y
-CONFIG_NEW_IRQ=y
 CONFIG_IRQ_CPU=y
 CONFIG_NEW_TIME_C=y
 CONFIG_VR41XX_TIME_C=y
@@ -118,6 +123,8 @@
 # CONFIG_BINFMT_AOUT is not set
 CONFIG_BINFMT_ELF=y
 # CONFIG_MIPS32_COMPAT is not set
+# CONFIG_MIPS32_O32 is not set
+# CONFIG_MIPS32_N32 is not set
 # CONFIG_BINFMT_ELF32 is not set
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_PM is not set
@@ -353,6 +360,7 @@
 # CONFIG_SIS900 is not set
 # CONFIG_EPIC100 is not set
 # CONFIG_SUNDANCE is not set
+# CONFIG_SUNDANCE_MMIO is not set
 # CONFIG_TLAN is not set
 # CONFIG_TC35815 is not set
 # CONFIG_VIA_RHINE is not set
@@ -482,6 +490,7 @@
 # CONFIG_MACHZ_WDT is not set
 # CONFIG_INDYDOG is not set
 # CONFIG_AMD7XX_TCO is not set
+# CONFIG_AMD_PM768 is not set
 # CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_DTLK is not set
@@ -632,9 +641,9 @@
 # Kernel hacking
 #
 CONFIG_CROSSCOMPILE=y
+# CONFIG_DEBUG is not set
 # CONFIG_REMOTE_DEBUG is not set
 # CONFIG_GDB_CONSOLE is not set
-# CONFIG_DEBUG is not set
 # CONFIG_MAGIC_SYSRQ is not set
 # CONFIG_MIPS_UNCACHED is not set
 
diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-cobalt linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-cobalt
--- linux-2.4.20/arch/mips/defconfig-cobalt	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-cobalt	2003-02-24 15:17:03.000000000 -0600
@@ -19,17 +19,22 @@
 # Machine selection
 #
 # CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
 # CONFIG_MIPS_PB1000 is not set
 # CONFIG_MIPS_PB1100 is not set
 # CONFIG_MIPS_PB1500 is not set
-# CONFIG_ALGOR_P4032 is not set
 # CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
 CONFIG_MIPS_COBALT=y
 # CONFIG_DECSTATION is not set
 # CONFIG_MIPS_EV64120 is not set
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MAGNUM_4000 is not set
@@ -49,7 +54,9 @@
 # CONFIG_SGI_IP32 is not set
 # CONFIG_SIBYTE_SB1xxx_SOC is not set
 # CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
 # CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
 # CONFIG_ZAO_CAPCELLA is not set
 # CONFIG_HIGHMEM is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
@@ -57,7 +64,6 @@
 CONFIG_COBALT_LCD=y
 CONFIG_I8259=y
 CONFIG_PCI=y
-CONFIG_NEW_IRQ=y
 CONFIG_NEW_TIME_C=y
 CONFIG_NONCOHERENT_IO=y
 # CONFIG_MIPS_AU1000 is not set
@@ -81,7 +87,6 @@
 # CONFIG_CPU_R10000 is not set
 # CONFIG_CPU_RM7000 is not set
 # CONFIG_CPU_SB1 is not set
-CONFIG_BOARD_SCACHE=y
 # CONFIG_CPU_ADVANCED is not set
 CONFIG_CPU_HAS_LLSC=y
 CONFIG_CPU_HAS_LLDSCD=y
@@ -110,6 +115,8 @@
 # CONFIG_BINFMT_AOUT is not set
 CONFIG_BINFMT_ELF=y
 # CONFIG_MIPS32_COMPAT is not set
+# CONFIG_MIPS32_O32 is not set
+# CONFIG_MIPS32_N32 is not set
 # CONFIG_BINFMT_ELF32 is not set
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_PM is not set
@@ -380,6 +387,7 @@
 # CONFIG_SIS900 is not set
 # CONFIG_EPIC100 is not set
 # CONFIG_SUNDANCE is not set
+# CONFIG_SUNDANCE_MMIO is not set
 # CONFIG_TLAN is not set
 # CONFIG_TC35815 is not set
 # CONFIG_VIA_RHINE is not set
@@ -488,6 +496,7 @@
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
+# CONFIG_AMD_PM768 is not set
 # CONFIG_NVRAM is not set
 CONFIG_RTC=y
 # CONFIG_DTLK is not set
@@ -627,9 +636,9 @@
 # Kernel hacking
 #
 CONFIG_CROSSCOMPILE=y
+# CONFIG_DEBUG is not set
 # CONFIG_REMOTE_DEBUG is not set
 # CONFIG_GDB_CONSOLE is not set
-# CONFIG_DEBUG is not set
 # CONFIG_MAGIC_SYSRQ is not set
 # CONFIG_MIPS_UNCACHED is not set
 
diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-db1000 linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-db1000
--- linux-2.4.20/arch/mips/defconfig-db1000	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-db1000	2003-02-07 17:39:40.000000000 -0600
@@ -0,0 +1,768 @@
+#
+# Automatically generated make config: don't edit
+#
+CONFIG_MIPS=y
+CONFIG_MIPS32=y
+# CONFIG_MIPS64 is not set
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+# CONFIG_MODVERSIONS is not set
+CONFIG_KMOD=y
+
+#
+# Machine selection
+#
+# CONFIG_ACER_PICA_61 is not set
+CONFIG_MIPS_DB1000=y
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
+# CONFIG_MIPS_PB1000 is not set
+# CONFIG_MIPS_PB1100 is not set
+# CONFIG_MIPS_PB1500 is not set
+# CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
+# CONFIG_MIPS_COBALT is not set
+# CONFIG_DECSTATION is not set
+# CONFIG_MIPS_EV64120 is not set
+# CONFIG_MIPS_EV96100 is not set
+# CONFIG_MIPS_IVR is not set
+# CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
+# CONFIG_MIPS_ITE8172 is not set
+# CONFIG_MIPS_ATLAS is not set
+# CONFIG_MIPS_MAGNUM_4000 is not set
+# CONFIG_MIPS_MALTA is not set
+# CONFIG_MIPS_SEAD is not set
+# CONFIG_MOMENCO_OCELOT is not set
+# CONFIG_MOMENCO_OCELOT_G is not set
+# CONFIG_DDB5074 is not set
+# CONFIG_DDB5476 is not set
+# CONFIG_DDB5477 is not set
+# CONFIG_NEC_OSPREY is not set
+# CONFIG_NEC_EAGLE is not set
+# CONFIG_OLIVETTI_M700 is not set
+# CONFIG_NINO is not set
+# CONFIG_SGI_IP22 is not set
+# CONFIG_SGI_IP27 is not set
+# CONFIG_SGI_IP32 is not set
+# CONFIG_SIBYTE_SB1xxx_SOC is not set
+# CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
+# CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
+# CONFIG_ZAO_CAPCELLA is not set
+# CONFIG_HIGHMEM is not set
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
+CONFIG_CPU_AU1X00=y
+CONFIG_CPU_AU1000=y
+CONFIG_PCI=y
+CONFIG_NEW_PCI=y
+# CONFIG_PCI_AUTO is not set
+CONFIG_NONCOHERENT_IO=y
+CONFIG_PC_KEYB=y
+CONFIG_SWAP_IO_SPACE=y
+# CONFIG_MIPS_AU1000 is not set
+
+#
+# CPU selection
+#
+CONFIG_CPU_MIPS32=y
+# CONFIG_CPU_MIPS64 is not set
+# CONFIG_CPU_R3000 is not set
+# CONFIG_CPU_TX39XX is not set
+# CONFIG_CPU_VR41XX is not set
+# CONFIG_CPU_R4300 is not set
+# CONFIG_CPU_R4X00 is not set
+# CONFIG_CPU_TX49XX is not set
+# CONFIG_CPU_R5000 is not set
+# CONFIG_CPU_R5432 is not set
+# CONFIG_CPU_R6000 is not set
+# CONFIG_CPU_NEVADA is not set
+# CONFIG_CPU_R8000 is not set
+# CONFIG_CPU_R10000 is not set
+# CONFIG_CPU_RM7000 is not set
+# CONFIG_CPU_SB1 is not set
+CONFIG_CPU_HAS_PREFETCH=y
+# CONFIG_VTAG_ICACHE is not set
+CONFIG_64BIT_PHYS_ADDR=y
+CONFIG_CPU_ADVANCED=y
+CONFIG_CPU_HAS_LLSC=y
+# CONFIG_CPU_HAS_LLDSCD is not set
+CONFIG_CPU_HAS_WB=y
+CONFIG_CPU_HAS_SYNC=y
+
+#
+# General setup
+#
+CONFIG_CPU_LITTLE_ENDIAN=y
+CONFIG_NET=y
+CONFIG_PCI_NAMES=y
+# CONFIG_ISA is not set
+# CONFIG_EISA is not set
+# CONFIG_TC is not set
+# CONFIG_MCA is not set
+# CONFIG_SBUS is not set
+CONFIG_HOTPLUG=y
+
+#
+# PCMCIA/CardBus support
+#
+CONFIG_PCMCIA=m
+# CONFIG_CARDBUS is not set
+# CONFIG_TCIC is not set
+# CONFIG_I82092 is not set
+# CONFIG_I82365 is not set
+CONFIG_PCMCIA_AU1X00=m
+# CONFIG_PCMCIA_PB1X00 is not set
+CONFIG_PCMCIA_DB1X00=y
+
+#
+# PCI Hotplug Support
+#
+# CONFIG_HOTPLUG_PCI is not set
+# CONFIG_HOTPLUG_PCI_COMPAQ is not set
+# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
+# CONFIG_HOTPLUG_PCI_ACPI is not set
+CONFIG_SYSVIPC=y
+# CONFIG_BSD_PROCESS_ACCT is not set
+CONFIG_SYSCTL=y
+CONFIG_KCORE_ELF=y
+# CONFIG_KCORE_AOUT is not set
+# CONFIG_BINFMT_AOUT is not set
+CONFIG_BINFMT_ELF=y
+# CONFIG_MIPS32_COMPAT is not set
+# CONFIG_MIPS32_O32 is not set
+# CONFIG_MIPS32_N32 is not set
+# CONFIG_BINFMT_ELF32 is not set
+# CONFIG_BINFMT_MISC is not set
+# CONFIG_PM is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+# CONFIG_MTD is not set
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Plug and Play configuration
+#
+# CONFIG_PNP is not set
+# CONFIG_ISAPNP is not set
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_FD is not set
+# CONFIG_BLK_DEV_XD is not set
+# CONFIG_PARIDE is not set
+# CONFIG_BLK_CPQ_DA is not set
+# CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_CISS_SCSI_TAPE is not set
+# CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_RAM is not set
+# CONFIG_BLK_DEV_INITRD is not set
+# CONFIG_BLK_STATS is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD is not set
+# CONFIG_BLK_DEV_MD is not set
+# CONFIG_MD_LINEAR is not set
+# CONFIG_MD_RAID0 is not set
+# CONFIG_MD_RAID1 is not set
+# CONFIG_MD_RAID5 is not set
+# CONFIG_MD_MULTIPATH is not set
+# CONFIG_BLK_DEV_LVM is not set
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+# CONFIG_NETLINK_DEV is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_FILTER=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_PNP=y
+# CONFIG_IP_PNP_DHCP is not set
+CONFIG_IP_PNP_BOOTP=y
+# CONFIG_IP_PNP_RARP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_IP_MROUTE is not set
+# CONFIG_ARPD is not set
+# CONFIG_INET_ECN is not set
+# CONFIG_SYN_COOKIES is not set
+
+#
+#   IP: Netfilter Configuration
+#
+# CONFIG_IP_NF_CONNTRACK is not set
+# CONFIG_IP_NF_QUEUE is not set
+# CONFIG_IP_NF_IPTABLES is not set
+# CONFIG_IP_NF_ARPTABLES is not set
+# CONFIG_IP_NF_COMPAT_IPCHAINS is not set
+# CONFIG_IP_NF_COMPAT_IPFWADM is not set
+# CONFIG_IPV6 is not set
+# CONFIG_KHTTPD is not set
+# CONFIG_ATM is not set
+# CONFIG_VLAN_8021Q is not set
+
+#
+#  
+#
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+
+#
+# Appletalk devices
+#
+# CONFIG_DEV_APPLETALK is not set
+# CONFIG_DECNET is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_LLC is not set
+# CONFIG_NET_DIVERT is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_FASTROUTE is not set
+# CONFIG_NET_HW_FLOWCONTROL is not set
+
+#
+# QoS and/or fair queueing
+#
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+
+#
+# Telephony Support
+#
+# CONFIG_PHONE is not set
+# CONFIG_PHONE_IXJ is not set
+# CONFIG_PHONE_IXJ_PCMCIA is not set
+
+#
+# ATA/IDE/MFM/RLL support
+#
+CONFIG_IDE=y
+
+#
+# IDE, ATA and ATAPI Block devices
+#
+CONFIG_BLK_DEV_IDE=y
+
+#
+# Please see Documentation/ide.txt for help/info on IDE drives
+#
+# CONFIG_BLK_DEV_HD_IDE is not set
+# CONFIG_BLK_DEV_HD is not set
+CONFIG_BLK_DEV_IDEDISK=y
+# CONFIG_IDEDISK_MULTI_MODE is not set
+# CONFIG_IDEDISK_STROKE is not set
+# CONFIG_BLK_DEV_IDEDISK_VENDOR is not set
+# CONFIG_BLK_DEV_IDEDISK_FUJITSU is not set
+# CONFIG_BLK_DEV_IDEDISK_IBM is not set
+# CONFIG_BLK_DEV_IDEDISK_MAXTOR is not set
+# CONFIG_BLK_DEV_IDEDISK_QUANTUM is not set
+# CONFIG_BLK_DEV_IDEDISK_SEAGATE is not set
+# CONFIG_BLK_DEV_IDEDISK_WD is not set
+# CONFIG_BLK_DEV_COMMERIAL is not set
+# CONFIG_BLK_DEV_TIVO is not set
+CONFIG_BLK_DEV_IDECS=m
+# 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
+
+#
+# IDE chipset support/bugfixes
+#
+# CONFIG_BLK_DEV_CMD640 is not set
+# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
+# CONFIG_BLK_DEV_ISAPNP is not set
+# CONFIG_BLK_DEV_RZ1000 is not set
+# CONFIG_BLK_DEV_IDEPCI is not set
+# CONFIG_IDE_CHIPSETS is not set
+# CONFIG_IDEDMA_AUTO is not set
+# CONFIG_DMA_NONPCI is not set
+# CONFIG_BLK_DEV_IDE_MODES 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
+
+#
+# SCSI support
+#
+# CONFIG_SCSI is not set
+
+#
+# I2O device support
+#
+# CONFIG_I2O is not set
+# CONFIG_I2O_PCI is not set
+# CONFIG_I2O_BLOCK is not set
+# CONFIG_I2O_LAN is not set
+# CONFIG_I2O_SCSI is not set
+# CONFIG_I2O_PROC is not set
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_ETHERTAP is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+CONFIG_MIPS_AU1X00_ENET=y
+# CONFIG_SUNLANCE is not set
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNBMAC is not set
+# CONFIG_SUNQE is not set
+# CONFIG_SUNGEM is not set
+# CONFIG_NET_VENDOR_3COM is not set
+# CONFIG_LANCE is not set
+# CONFIG_NET_VENDOR_SMC is not set
+# CONFIG_NET_VENDOR_RACAL is not set
+# CONFIG_HP100 is not set
+# CONFIG_NET_ISA is not set
+# CONFIG_NET_PCI is not set
+# CONFIG_NET_POCKET is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+# CONFIG_ACENIC is not set
+# CONFIG_DL2K is not set
+# CONFIG_E1000 is not set
+# CONFIG_MYRI_SBUS is not set
+# CONFIG_NS83820 is not set
+# CONFIG_HAMACHI is not set
+# CONFIG_YELLOWFIN is not set
+# CONFIG_SK98LIN is not set
+# CONFIG_TIGON3 is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+# CONFIG_PLIP is not set
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+# CONFIG_PPP_FILTER is not set
+CONFIG_PPP_ASYNC=m
+# CONFIG_PPP_SYNC_TTY is not set
+CONFIG_PPP_DEFLATE=m
+# CONFIG_PPP_BSDCOMP is not set
+CONFIG_PPPOE=m
+# CONFIG_SLIP is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+# CONFIG_NET_RADIO is not set
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+# CONFIG_NET_FC is not set
+# CONFIG_RCPCI is not set
+# CONFIG_SHAPER is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+
+#
+# PCMCIA network device support
+#
+# CONFIG_NET_PCMCIA is not set
+
+#
+# Amateur Radio support
+#
+# CONFIG_HAMRADIO is not set
+
+#
+# IrDA (infrared) support
+#
+CONFIG_IRDA=y
+
+#
+# IrDA protocols
+#
+CONFIG_IRLAN=y
+# CONFIG_IRNET is not set
+CONFIG_IRCOMM=y
+# CONFIG_IRDA_ULTRA is not set
+
+#
+# IrDA options
+#
+CONFIG_IRDA_CACHE_LAST_LSAP=y
+CONFIG_IRDA_FAST_RR=y
+# CONFIG_IRDA_DEBUG is not set
+
+#
+# Infrared-port device drivers
+#
+
+#
+# SIR device drivers
+#
+# CONFIG_IRTTY_SIR is not set
+# CONFIG_IRPORT_SIR is not set
+
+#
+# Dongle support
+#
+# CONFIG_DONGLE is not set
+
+#
+# FIR device drivers
+#
+# CONFIG_USB_IRDA is not set
+# CONFIG_NSC_FIR is not set
+# CONFIG_WINBOND_FIR is not set
+# CONFIG_TOSHIBA_FIR is not set
+CONFIG_AU1000_FIR=y
+# CONFIG_SMC_IRCC_FIR is not set
+# CONFIG_ALI_FIR is not set
+# CONFIG_VLSI_FIR is not set
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Input core support
+#
+# CONFIG_INPUT is not set
+# CONFIG_INPUT_KEYBDEV is not set
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+# CONFIG_SERIAL is not set
+# CONFIG_SERIAL_EXTENDED is not set
+CONFIG_SERIAL_NONSTANDARD=y
+# CONFIG_COMPUTONE is not set
+# CONFIG_ROCKETPORT is not set
+# CONFIG_CYCLADES is not set
+# CONFIG_DIGIEPCA is not set
+# CONFIG_DIGI is not set
+# CONFIG_ESPSERIAL is not set
+# CONFIG_MOXA_INTELLIO is not set
+# CONFIG_MOXA_SMARTIO is not set
+# CONFIG_ISI is not set
+# CONFIG_SYNCLINK is not set
+# CONFIG_SYNCLINKMP is not set
+# CONFIG_N_HDLC is not set
+# CONFIG_RISCOM8 is not set
+# CONFIG_SPECIALIX is not set
+# CONFIG_SX is not set
+# CONFIG_RIO is not set
+# CONFIG_STALDRV is not set
+# CONFIG_SERIAL_TX3912 is not set
+# CONFIG_SERIAL_TX3912_CONSOLE is not set
+CONFIG_AU1X00_UART=y
+CONFIG_AU1X00_SERIAL_CONSOLE=y
+# CONFIG_TXX927_SERIAL is not set
+CONFIG_UNIX98_PTYS=y
+CONFIG_UNIX98_PTY_COUNT=256
+
+#
+# I2C support
+#
+# CONFIG_I2C is not set
+
+#
+# Mice
+#
+# CONFIG_BUSMOUSE is not set
+# CONFIG_MOUSE is not set
+
+#
+# Joysticks
+#
+# CONFIG_INPUT_GAMEPORT is not set
+
+#
+# Input core support is needed for gameports
+#
+
+#
+# Input core support is needed for joysticks
+#
+# CONFIG_QIC02_TAPE is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+# CONFIG_AMD_PM768 is not set
+# CONFIG_NVRAM is not set
+# CONFIG_RTC is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# CONFIG_FTAPE is not set
+# CONFIG_AGP is not set
+# CONFIG_DRM is not set
+
+#
+# PCMCIA character devices
+#
+# CONFIG_PCMCIA_SERIAL_CS is not set
+# CONFIG_SYNCLINK_CS is not set
+# CONFIG_AU1X00_GPIO is not set
+# CONFIG_TS_AU1X00_ADS7846 is not set
+
+#
+# File systems
+#
+# CONFIG_QUOTA is not set
+CONFIG_AUTOFS_FS=y
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_REISERFS_FS is not set
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+# CONFIG_ADFS_FS is not set
+# CONFIG_ADFS_FS_RW is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BEFS_DEBUG is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EXT3_FS is not set
+# CONFIG_JBD is not set
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=y
+# CONFIG_UMSDOS_FS is not set
+CONFIG_VFAT_FS=y
+# CONFIG_EFS_FS is not set
+# CONFIG_JFFS_FS is not set
+# CONFIG_JFFS2_FS is not set
+# CONFIG_CRAMFS is not set
+CONFIG_TMPFS=y
+CONFIG_RAMFS=y
+# CONFIG_ISO9660_FS is not set
+# CONFIG_JOLIET is not set
+# CONFIG_ZISOFS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_NTFS_FS is not set
+# CONFIG_NTFS_RW is not set
+# CONFIG_HPFS_FS is not set
+CONFIG_PROC_FS=y
+# CONFIG_DEVFS_FS is not set
+# CONFIG_DEVFS_MOUNT is not set
+# CONFIG_DEVFS_DEBUG is not set
+CONFIG_DEVPTS_FS=y
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_QNX4FS_RW is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_EXT2_FS=y
+# CONFIG_SYSV_FS is not set
+# CONFIG_UDF_FS is not set
+# CONFIG_UDF_RW is not set
+# CONFIG_UFS_FS is not set
+# CONFIG_UFS_FS_WRITE is not set
+
+#
+# Network File Systems
+#
+# CONFIG_CODA_FS is not set
+# CONFIG_INTERMEZZO_FS is not set
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+CONFIG_ROOT_NFS=y
+# CONFIG_NFSD is not set
+# CONFIG_NFSD_V3 is not set
+# CONFIG_NFSD_TCP is not set
+CONFIG_SUNRPC=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+# CONFIG_SMB_FS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_NCPFS_PACKET_SIGNING is not set
+# CONFIG_NCPFS_IOCTL_LOCKING is not set
+# CONFIG_NCPFS_STRONG is not set
+# CONFIG_NCPFS_NFS_NS is not set
+# CONFIG_NCPFS_OS2_NS is not set
+# CONFIG_NCPFS_SMALLDOS is not set
+# CONFIG_NCPFS_NLS is not set
+# CONFIG_NCPFS_EXTRAS is not set
+# CONFIG_ZISOFS_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_SMB_NLS is not set
+CONFIG_NLS=y
+
+#
+# Native Language Support
+#
+CONFIG_NLS_DEFAULT="iso8859-1"
+# CONFIG_NLS_CODEPAGE_437 is not set
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ISO8859_1 is not set
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_UTF8 is not set
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# Console drivers
+#
+# CONFIG_VGA_CONSOLE is not set
+# CONFIG_MDA_CONSOLE is not set
+
+#
+# Frame-buffer support
+#
+# CONFIG_FB is not set
+
+#
+# Sound
+#
+CONFIG_SOUND=y
+# CONFIG_SOUND_ALI5455 is not set
+# CONFIG_SOUND_BT878 is not set
+# CONFIG_SOUND_CMPCI is not set
+# CONFIG_SOUND_EMU10K1 is not set
+# CONFIG_MIDI_EMU10K1 is not set
+# CONFIG_SOUND_FUSION is not set
+# CONFIG_SOUND_CS4281 is not set
+# CONFIG_SOUND_ES1370 is not set
+# CONFIG_SOUND_ES1371 is not set
+# CONFIG_SOUND_ESSSOLO1 is not set
+# CONFIG_SOUND_MAESTRO is not set
+# CONFIG_SOUND_MAESTRO3 is not set
+# CONFIG_SOUND_FORTE is not set
+# CONFIG_SOUND_ICH is not set
+# CONFIG_SOUND_RME96XX is not set
+# CONFIG_SOUND_SONICVIBES is not set
+CONFIG_SOUND_AU1X00=y
+# CONFIG_SOUND_TRIDENT is not set
+# CONFIG_SOUND_MSNDCLAS is not set
+# CONFIG_SOUND_MSNDPIN is not set
+# CONFIG_SOUND_VIA82CXXX is not set
+# CONFIG_MIDI_VIA82CXXX is not set
+# CONFIG_SOUND_OSS is not set
+# CONFIG_SOUND_TVMIXER is not set
+
+#
+# USB support
+#
+# CONFIG_USB is not set
+
+#
+# Bluetooth support
+#
+# CONFIG_BLUEZ is not set
+
+#
+# Kernel hacking
+#
+CONFIG_CROSSCOMPILE=y
+# CONFIG_DEBUG is not set
+# CONFIG_REMOTE_DEBUG is not set
+# CONFIG_GDB_CONSOLE is not set
+# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_MIPS_UNCACHED is not set
+
+#
+# Library routines
+#
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m
diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-db1500 linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-db1500
--- linux-2.4.20/arch/mips/defconfig-db1500	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-db1500	2003-02-07 17:39:40.000000000 -0600
@@ -0,0 +1,776 @@
+#
+# Automatically generated make config: don't edit
+#
+CONFIG_MIPS=y
+CONFIG_MIPS32=y
+# CONFIG_MIPS64 is not set
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+# CONFIG_MODVERSIONS is not set
+CONFIG_KMOD=y
+
+#
+# Machine selection
+#
+# CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+CONFIG_MIPS_DB1500=y
+# CONFIG_MIPS_PB1000 is not set
+# CONFIG_MIPS_PB1100 is not set
+# CONFIG_MIPS_PB1500 is not set
+# CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
+# CONFIG_MIPS_COBALT is not set
+# CONFIG_DECSTATION is not set
+# CONFIG_MIPS_EV64120 is not set
+# CONFIG_MIPS_EV96100 is not set
+# CONFIG_MIPS_IVR is not set
+# CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
+# CONFIG_MIPS_ITE8172 is not set
+# CONFIG_MIPS_ATLAS is not set
+# CONFIG_MIPS_MAGNUM_4000 is not set
+# CONFIG_MIPS_MALTA is not set
+# CONFIG_MIPS_SEAD is not set
+# CONFIG_MOMENCO_OCELOT is not set
+# CONFIG_MOMENCO_OCELOT_G is not set
+# CONFIG_DDB5074 is not set
+# CONFIG_DDB5476 is not set
+# CONFIG_DDB5477 is not set
+# CONFIG_NEC_OSPREY is not set
+# CONFIG_NEC_EAGLE is not set
+# CONFIG_OLIVETTI_M700 is not set
+# CONFIG_NINO is not set
+# CONFIG_SGI_IP22 is not set
+# CONFIG_SGI_IP27 is not set
+# CONFIG_SGI_IP32 is not set
+# CONFIG_SIBYTE_SB1xxx_SOC is not set
+# CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
+# CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
+# CONFIG_ZAO_CAPCELLA is not set
+# CONFIG_HIGHMEM is not set
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
+CONFIG_CPU_AU1X00=y
+CONFIG_CPU_AU1500=y
+CONFIG_NEW_IRQ=y
+CONFIG_PCI=y
+CONFIG_NEW_PCI=y
+CONFIG_PCI_AUTO=y
+CONFIG_NONCOHERENT_IO=y
+CONFIG_PC_KEYB=y
+# CONFIG_MIPS_AU1000 is not set
+
+#
+# CPU selection
+#
+CONFIG_CPU_MIPS32=y
+# CONFIG_CPU_MIPS64 is not set
+# CONFIG_CPU_R3000 is not set
+# CONFIG_CPU_TX39XX is not set
+# CONFIG_CPU_VR41XX is not set
+# CONFIG_CPU_R4300 is not set
+# CONFIG_CPU_R4X00 is not set
+# CONFIG_CPU_TX49XX is not set
+# CONFIG_CPU_R5000 is not set
+# CONFIG_CPU_R5432 is not set
+# CONFIG_CPU_R6000 is not set
+# CONFIG_CPU_NEVADA is not set
+# CONFIG_CPU_R8000 is not set
+# CONFIG_CPU_R10000 is not set
+# CONFIG_CPU_RM7000 is not set
+# CONFIG_CPU_SB1 is not set
+CONFIG_CPU_HAS_PREFETCH=y
+# CONFIG_VTAG_ICACHE is not set
+CONFIG_64BIT_PHYS_ADDR=y
+CONFIG_CPU_ADVANCED=y
+CONFIG_CPU_HAS_LLSC=y
+# CONFIG_CPU_HAS_LLDSCD is not set
+CONFIG_CPU_HAS_WB=y
+CONFIG_CPU_HAS_SYNC=y
+
+#
+# General setup
+#
+CONFIG_CPU_LITTLE_ENDIAN=y
+CONFIG_NET=y
+# CONFIG_PCI_NAMES is not set
+# CONFIG_ISA is not set
+# CONFIG_EISA is not set
+# CONFIG_TC is not set
+# CONFIG_MCA is not set
+# CONFIG_SBUS is not set
+CONFIG_HOTPLUG=y
+
+#
+# PCMCIA/CardBus support
+#
+CONFIG_PCMCIA=y
+# CONFIG_CARDBUS is not set
+# CONFIG_TCIC is not set
+# CONFIG_I82092 is not set
+# CONFIG_I82365 is not set
+CONFIG_PCMCIA_AU1X00=m
+# CONFIG_PCMCIA_PB1X00 is not set
+CONFIG_PCMCIA_DB1X00=y
+
+#
+# PCI Hotplug Support
+#
+# CONFIG_HOTPLUG_PCI is not set
+# CONFIG_HOTPLUG_PCI_COMPAQ is not set
+# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
+# CONFIG_HOTPLUG_PCI_ACPI is not set
+CONFIG_SYSVIPC=y
+# CONFIG_BSD_PROCESS_ACCT is not set
+CONFIG_SYSCTL=y
+CONFIG_KCORE_ELF=y
+# CONFIG_KCORE_AOUT is not set
+# CONFIG_BINFMT_AOUT is not set
+CONFIG_BINFMT_ELF=y
+# CONFIG_MIPS32_COMPAT is not set
+# CONFIG_MIPS32_O32 is not set
+# CONFIG_MIPS32_N32 is not set
+# CONFIG_BINFMT_ELF32 is not set
+# CONFIG_BINFMT_MISC is not set
+# CONFIG_PM is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+# CONFIG_MTD is not set
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Plug and Play configuration
+#
+# CONFIG_PNP is not set
+# CONFIG_ISAPNP is not set
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_FD is not set
+# CONFIG_BLK_DEV_XD is not set
+# CONFIG_PARIDE is not set
+# CONFIG_BLK_CPQ_DA is not set
+# CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_CISS_SCSI_TAPE is not set
+# CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_RAM is not set
+# CONFIG_BLK_DEV_INITRD is not set
+# CONFIG_BLK_STATS is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD is not set
+# CONFIG_BLK_DEV_MD is not set
+# CONFIG_MD_LINEAR is not set
+# CONFIG_MD_RAID0 is not set
+# CONFIG_MD_RAID1 is not set
+# CONFIG_MD_RAID5 is not set
+# CONFIG_MD_MULTIPATH is not set
+# CONFIG_BLK_DEV_LVM is not set
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+# CONFIG_NETLINK_DEV is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+# CONFIG_FILTER is not set
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_PNP=y
+# CONFIG_IP_PNP_DHCP is not set
+CONFIG_IP_PNP_BOOTP=y
+# CONFIG_IP_PNP_RARP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_IP_MROUTE is not set
+# CONFIG_ARPD is not set
+# CONFIG_INET_ECN is not set
+# CONFIG_SYN_COOKIES is not set
+
+#
+#   IP: Netfilter Configuration
+#
+# CONFIG_IP_NF_CONNTRACK is not set
+# CONFIG_IP_NF_QUEUE is not set
+# CONFIG_IP_NF_IPTABLES is not set
+# CONFIG_IP_NF_ARPTABLES is not set
+# CONFIG_IP_NF_COMPAT_IPCHAINS is not set
+# CONFIG_IP_NF_COMPAT_IPFWADM is not set
+# CONFIG_IPV6 is not set
+# CONFIG_KHTTPD is not set
+# CONFIG_ATM is not set
+# CONFIG_VLAN_8021Q is not set
+
+#
+#  
+#
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+
+#
+# Appletalk devices
+#
+# CONFIG_DEV_APPLETALK is not set
+# CONFIG_DECNET is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_LLC is not set
+# CONFIG_NET_DIVERT is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_FASTROUTE is not set
+# CONFIG_NET_HW_FLOWCONTROL is not set
+
+#
+# QoS and/or fair queueing
+#
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+
+#
+# Telephony Support
+#
+# CONFIG_PHONE is not set
+# CONFIG_PHONE_IXJ is not set
+# CONFIG_PHONE_IXJ_PCMCIA is not set
+
+#
+# ATA/IDE/MFM/RLL support
+#
+# CONFIG_IDE is not set
+# CONFIG_BLK_DEV_IDE_MODES is not set
+# CONFIG_BLK_DEV_HD is not set
+
+#
+# SCSI support
+#
+# CONFIG_SCSI is not set
+
+#
+# I2O device support
+#
+# CONFIG_I2O is not set
+# CONFIG_I2O_PCI is not set
+# CONFIG_I2O_BLOCK is not set
+# CONFIG_I2O_LAN is not set
+# CONFIG_I2O_SCSI is not set
+# CONFIG_I2O_PROC is not set
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_ETHERTAP is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+CONFIG_MIPS_AU1X00_ENET=y
+# CONFIG_SUNLANCE is not set
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNBMAC is not set
+# CONFIG_SUNQE is not set
+# CONFIG_SUNGEM is not set
+# CONFIG_NET_VENDOR_3COM is not set
+# CONFIG_LANCE is not set
+# CONFIG_NET_VENDOR_SMC is not set
+# CONFIG_NET_VENDOR_RACAL is not set
+# CONFIG_HP100 is not set
+# CONFIG_NET_ISA is not set
+# CONFIG_NET_PCI is not set
+# CONFIG_NET_POCKET is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+# CONFIG_ACENIC is not set
+# CONFIG_DL2K is not set
+# CONFIG_E1000 is not set
+# CONFIG_MYRI_SBUS is not set
+# CONFIG_NS83820 is not set
+# CONFIG_HAMACHI is not set
+# CONFIG_YELLOWFIN is not set
+# CONFIG_SK98LIN is not set
+# CONFIG_TIGON3 is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+# CONFIG_PLIP is not set
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+# CONFIG_PPP_FILTER is not set
+CONFIG_PPP_ASYNC=m
+# CONFIG_PPP_SYNC_TTY is not set
+CONFIG_PPP_DEFLATE=m
+# CONFIG_PPP_BSDCOMP is not set
+CONFIG_PPPOE=m
+# CONFIG_SLIP is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+CONFIG_NET_RADIO=y
+# CONFIG_STRIP is not set
+# CONFIG_WAVELAN is not set
+# CONFIG_ARLAN is not set
+# CONFIG_AIRONET4500 is not set
+# CONFIG_AIRONET4500_NONCS is not set
+# CONFIG_AIRONET4500_PROC is not set
+# CONFIG_AIRO is not set
+CONFIG_HERMES=m
+# CONFIG_PLX_HERMES is not set
+# CONFIG_PCI_HERMES is not set
+
+#
+# Wireless Pcmcia cards support
+#
+# CONFIG_PCMCIA_HERMES is not set
+# CONFIG_AIRO_CS is not set
+CONFIG_NET_WIRELESS=y
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+# CONFIG_NET_FC is not set
+# CONFIG_RCPCI is not set
+# CONFIG_SHAPER is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+
+#
+# PCMCIA network device support
+#
+# CONFIG_NET_PCMCIA is not set
+
+#
+# Amateur Radio support
+#
+# CONFIG_HAMRADIO is not set
+
+#
+# IrDA (infrared) support
+#
+# CONFIG_IRDA is not set
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Input core support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_KEYBDEV=y
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+CONFIG_INPUT_EVDEV=y
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+# CONFIG_SERIAL is not set
+# CONFIG_SERIAL_EXTENDED is not set
+CONFIG_SERIAL_NONSTANDARD=y
+# CONFIG_COMPUTONE is not set
+# CONFIG_ROCKETPORT is not set
+# CONFIG_CYCLADES is not set
+# CONFIG_DIGIEPCA is not set
+# CONFIG_DIGI is not set
+# CONFIG_ESPSERIAL is not set
+# CONFIG_MOXA_INTELLIO is not set
+# CONFIG_MOXA_SMARTIO is not set
+# CONFIG_ISI is not set
+# CONFIG_SYNCLINK is not set
+# CONFIG_SYNCLINKMP is not set
+# CONFIG_N_HDLC is not set
+# CONFIG_RISCOM8 is not set
+# CONFIG_SPECIALIX is not set
+# CONFIG_SX is not set
+# CONFIG_RIO is not set
+# CONFIG_STALDRV is not set
+# CONFIG_SERIAL_TX3912 is not set
+# CONFIG_SERIAL_TX3912_CONSOLE is not set
+CONFIG_AU1X00_UART=y
+CONFIG_AU1X00_SERIAL_CONSOLE=y
+# CONFIG_TXX927_SERIAL is not set
+CONFIG_UNIX98_PTYS=y
+CONFIG_UNIX98_PTY_COUNT=256
+
+#
+# I2C support
+#
+# CONFIG_I2C is not set
+
+#
+# Mice
+#
+# CONFIG_BUSMOUSE is not set
+# CONFIG_MOUSE is not set
+
+#
+# Joysticks
+#
+# CONFIG_INPUT_GAMEPORT is not set
+# CONFIG_INPUT_NS558 is not set
+# CONFIG_INPUT_LIGHTNING is not set
+# CONFIG_INPUT_PCIGAME is not set
+# CONFIG_INPUT_CS461X is not set
+# CONFIG_INPUT_EMU10K1 is not set
+# CONFIG_INPUT_SERIO is not set
+# CONFIG_INPUT_SERPORT is not set
+
+#
+# Joysticks
+#
+# CONFIG_INPUT_ANALOG is not set
+# CONFIG_INPUT_A3D is not set
+# CONFIG_INPUT_ADI is not set
+# CONFIG_INPUT_COBRA is not set
+# CONFIG_INPUT_GF2K is not set
+# CONFIG_INPUT_GRIP is not set
+# CONFIG_INPUT_INTERACT is not set
+# CONFIG_INPUT_TMDC is not set
+# CONFIG_INPUT_SIDEWINDER is not set
+# CONFIG_INPUT_IFORCE_USB is not set
+# CONFIG_INPUT_IFORCE_232 is not set
+# CONFIG_INPUT_WARRIOR is not set
+# CONFIG_INPUT_MAGELLAN is not set
+# CONFIG_INPUT_SPACEORB is not set
+# CONFIG_INPUT_SPACEBALL is not set
+# CONFIG_INPUT_STINGER is not set
+# CONFIG_INPUT_DB9 is not set
+# CONFIG_INPUT_GAMECON is not set
+# CONFIG_INPUT_TURBOGRAFX is not set
+# CONFIG_QIC02_TAPE is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+# CONFIG_AMD_PM768 is not set
+# CONFIG_NVRAM is not set
+CONFIG_RTC=y
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# CONFIG_FTAPE is not set
+# CONFIG_AGP is not set
+# CONFIG_DRM is not set
+
+#
+# PCMCIA character devices
+#
+# CONFIG_PCMCIA_SERIAL_CS is not set
+# CONFIG_SYNCLINK_CS is not set
+# CONFIG_AU1X00_GPIO is not set
+# CONFIG_TS_AU1X00_ADS7846 is not set
+
+#
+# File systems
+#
+# CONFIG_QUOTA is not set
+CONFIG_AUTOFS_FS=y
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_REISERFS_FS is not set
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+# CONFIG_ADFS_FS is not set
+# CONFIG_ADFS_FS_RW is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BEFS_DEBUG is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EXT3_FS is not set
+# CONFIG_JBD is not set
+# CONFIG_JBD_DEBUG is not set
+# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_UMSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_JFFS_FS is not set
+# CONFIG_JFFS2_FS is not set
+# CONFIG_CRAMFS is not set
+CONFIG_TMPFS=y
+CONFIG_RAMFS=y
+# CONFIG_ISO9660_FS is not set
+# CONFIG_JOLIET is not set
+# CONFIG_ZISOFS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_NTFS_FS is not set
+# CONFIG_NTFS_RW is not set
+# CONFIG_HPFS_FS is not set
+CONFIG_PROC_FS=y
+# CONFIG_DEVFS_FS is not set
+# CONFIG_DEVFS_MOUNT is not set
+# CONFIG_DEVFS_DEBUG is not set
+CONFIG_DEVPTS_FS=y
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_QNX4FS_RW is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_EXT2_FS=y
+# CONFIG_SYSV_FS is not set
+# CONFIG_UDF_FS is not set
+# CONFIG_UDF_RW is not set
+# CONFIG_UFS_FS is not set
+# CONFIG_UFS_FS_WRITE is not set
+
+#
+# Network File Systems
+#
+# CONFIG_CODA_FS is not set
+# CONFIG_INTERMEZZO_FS is not set
+CONFIG_NFS_FS=y
+# CONFIG_NFS_V3 is not set
+CONFIG_ROOT_NFS=y
+# CONFIG_NFSD is not set
+# CONFIG_NFSD_V3 is not set
+# CONFIG_NFSD_TCP is not set
+CONFIG_SUNRPC=y
+CONFIG_LOCKD=y
+# CONFIG_SMB_FS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_NCPFS_PACKET_SIGNING is not set
+# CONFIG_NCPFS_IOCTL_LOCKING is not set
+# CONFIG_NCPFS_STRONG is not set
+# CONFIG_NCPFS_NFS_NS is not set
+# CONFIG_NCPFS_OS2_NS is not set
+# CONFIG_NCPFS_SMALLDOS is not set
+# CONFIG_NCPFS_NLS is not set
+# CONFIG_NCPFS_EXTRAS is not set
+# CONFIG_ZISOFS_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_SMB_NLS is not set
+# CONFIG_NLS is not set
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# Console drivers
+#
+# CONFIG_VGA_CONSOLE is not set
+# CONFIG_MDA_CONSOLE is not set
+
+#
+# Frame-buffer support
+#
+# CONFIG_FB is not set
+
+#
+# Sound
+#
+CONFIG_SOUND=y
+# CONFIG_SOUND_ALI5455 is not set
+# CONFIG_SOUND_BT878 is not set
+# CONFIG_SOUND_CMPCI is not set
+# CONFIG_SOUND_EMU10K1 is not set
+# CONFIG_MIDI_EMU10K1 is not set
+# CONFIG_SOUND_FUSION is not set
+# CONFIG_SOUND_CS4281 is not set
+# CONFIG_SOUND_ES1370 is not set
+# CONFIG_SOUND_ES1371 is not set
+# CONFIG_SOUND_ESSSOLO1 is not set
+# CONFIG_SOUND_MAESTRO is not set
+# CONFIG_SOUND_MAESTRO3 is not set
+# CONFIG_SOUND_FORTE is not set
+# CONFIG_SOUND_ICH is not set
+# CONFIG_SOUND_RME96XX is not set
+# CONFIG_SOUND_SONICVIBES is not set
+CONFIG_SOUND_AU1X00=y
+# CONFIG_SOUND_TRIDENT is not set
+# CONFIG_SOUND_MSNDCLAS is not set
+# CONFIG_SOUND_MSNDPIN is not set
+# CONFIG_SOUND_VIA82CXXX is not set
+# CONFIG_MIDI_VIA82CXXX is not set
+# CONFIG_SOUND_OSS is not set
+# CONFIG_SOUND_TVMIXER is not set
+
+#
+# USB support
+#
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+
+#
+# Miscellaneous USB options
+#
+# CONFIG_USB_DEVICEFS is not set
+# CONFIG_USB_BANDWIDTH is not set
+# CONFIG_USB_LONG_TIMEOUT is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_EHCI_HCD is not set
+# CONFIG_USB_UHCI is not set
+# CONFIG_USB_UHCI_ALT is not set
+CONFIG_USB_OHCI=y
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_AUDIO is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_BLUETOOTH is not set
+# CONFIG_USB_MIDI is not set
+
+#
+#   SCSI support is needed for USB Storage
+#
+# CONFIG_USB_STORAGE is not set
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
+# CONFIG_USB_STORAGE_DPCM is not set
+# CONFIG_USB_STORAGE_HP8200e is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+# CONFIG_USB_ACM is not set
+# CONFIG_USB_PRINTER is not set
+
+#
+# USB Human Interface Devices (HID)
+#
+CONFIG_USB_HID=y
+# CONFIG_USB_HIDINPUT is not set
+# CONFIG_USB_HIDDEV is not set
+# CONFIG_USB_AIPTEK is not set
+# CONFIG_USB_WACOM is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_DC2XX is not set
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_SCANNER is not set
+# CONFIG_USB_MICROTEK is not set
+# CONFIG_USB_HPUSBSCSI is not set
+
+#
+# USB Multimedia devices
+#
+
+#
+#   Video4Linux support is needed for USB Multimedia device support
+#
+
+#
+# USB Network adaptors
+#
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_CDCETHER is not set
+# CONFIG_USB_USBNET is not set
+
+#
+# USB port drivers
+#
+# CONFIG_USB_USS720 is not set
+
+#
+# USB Serial Converter support
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_AUERSWALD is not set
+# CONFIG_USB_TIGL is not set
+# CONFIG_USB_BRLVGER is not set
+# CONFIG_USB_LCD is not set
+
+#
+# Bluetooth support
+#
+# CONFIG_BLUEZ is not set
+
+#
+# Kernel hacking
+#
+CONFIG_CROSSCOMPILE=y
+# CONFIG_DEBUG is not set
+# CONFIG_REMOTE_DEBUG is not set
+# CONFIG_GDB_CONSOLE is not set
+# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_MIPS_UNCACHED is not set
+
+#
+# Library routines
+#
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m
diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-ddb5476 linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-ddb5476
--- linux-2.4.20/arch/mips/defconfig-ddb5476	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-ddb5476	2003-02-24 15:17:03.000000000 -0600
@@ -19,17 +19,22 @@
 # Machine selection
 #
 # CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
 # CONFIG_MIPS_PB1000 is not set
 # CONFIG_MIPS_PB1100 is not set
 # CONFIG_MIPS_PB1500 is not set
-# CONFIG_ALGOR_P4032 is not set
 # CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
 # CONFIG_MIPS_COBALT is not set
 # CONFIG_DECSTATION is not set
 # CONFIG_MIPS_EV64120 is not set
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MAGNUM_4000 is not set
@@ -49,7 +54,9 @@
 # CONFIG_SGI_IP32 is not set
 # CONFIG_SIBYTE_SB1xxx_SOC is not set
 # CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
 # CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
 # CONFIG_ZAO_CAPCELLA is not set
 # CONFIG_HIGHMEM is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
@@ -57,7 +64,6 @@
 CONFIG_ISA=y
 CONFIG_PCI=y
 CONFIG_PC_KEYB=y
-CONFIG_NEW_IRQ=y
 CONFIG_IRQ_CPU=y
 CONFIG_I8259=y
 CONFIG_HAVE_STD_PC_SERIAL_PORT=y
@@ -113,6 +119,8 @@
 # CONFIG_BINFMT_AOUT is not set
 CONFIG_BINFMT_ELF=y
 # CONFIG_MIPS32_COMPAT is not set
+# CONFIG_MIPS32_O32 is not set
+# CONFIG_MIPS32_N32 is not set
 # CONFIG_BINFMT_ELF32 is not set
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_PM is not set
@@ -388,6 +396,7 @@
 # CONFIG_SIS900 is not set
 # CONFIG_EPIC100 is not set
 # CONFIG_SUNDANCE is not set
+# CONFIG_SUNDANCE_MMIO is not set
 # CONFIG_TLAN is not set
 # CONFIG_TC35815 is not set
 # CONFIG_VIA_RHINE is not set
@@ -506,6 +515,7 @@
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
+# CONFIG_AMD_PM768 is not set
 # CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_DTLK is not set
@@ -667,9 +677,9 @@
 # Kernel hacking
 #
 CONFIG_CROSSCOMPILE=y
+CONFIG_DEBUG=y
 # CONFIG_REMOTE_DEBUG is not set
 # CONFIG_GDB_CONSOLE is not set
-CONFIG_DEBUG=y
 # CONFIG_MAGIC_SYSRQ is not set
 # CONFIG_MIPS_UNCACHED is not set
 
diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-ddb5477 linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-ddb5477
--- linux-2.4.20/arch/mips/defconfig-ddb5477	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-ddb5477	2003-02-24 15:17:03.000000000 -0600
@@ -19,17 +19,22 @@
 # Machine selection
 #
 # CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
 # CONFIG_MIPS_PB1000 is not set
 # CONFIG_MIPS_PB1100 is not set
 # CONFIG_MIPS_PB1500 is not set
-# CONFIG_ALGOR_P4032 is not set
 # CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
 # CONFIG_MIPS_COBALT is not set
 # CONFIG_DECSTATION is not set
 # CONFIG_MIPS_EV64120 is not set
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MAGNUM_4000 is not set
@@ -50,14 +55,15 @@
 # CONFIG_SGI_IP32 is not set
 # CONFIG_SIBYTE_SB1xxx_SOC is not set
 # CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
 # CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
 # CONFIG_ZAO_CAPCELLA is not set
 # CONFIG_HIGHMEM is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
 CONFIG_PCI=y
 CONFIG_NEW_TIME_C=y
-CONFIG_NEW_IRQ=y
 CONFIG_IRQ_CPU=y
 CONFIG_NEW_PCI=y
 CONFIG_NONCOHERENT_IO=y
@@ -113,6 +119,8 @@
 # CONFIG_BINFMT_AOUT is not set
 CONFIG_BINFMT_ELF=y
 # CONFIG_MIPS32_COMPAT is not set
+# CONFIG_MIPS32_O32 is not set
+# CONFIG_MIPS32_N32 is not set
 # CONFIG_BINFMT_ELF32 is not set
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_PM is not set
@@ -306,6 +314,7 @@
 # CONFIG_SIS900 is not set
 # CONFIG_EPIC100 is not set
 # CONFIG_SUNDANCE is not set
+# CONFIG_SUNDANCE_MMIO is not set
 # CONFIG_TLAN is not set
 # CONFIG_TC35815 is not set
 # CONFIG_VIA_RHINE is not set
@@ -414,6 +423,7 @@
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
+# CONFIG_AMD_PM768 is not set
 # CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_DTLK is not set
@@ -563,9 +573,9 @@
 # Kernel hacking
 #
 CONFIG_CROSSCOMPILE=y
+CONFIG_DEBUG=y
 # CONFIG_REMOTE_DEBUG is not set
 # CONFIG_GDB_CONSOLE is not set
-CONFIG_DEBUG=y
 # CONFIG_MAGIC_SYSRQ is not set
 # CONFIG_MIPS_UNCACHED is not set
 
diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-decstation linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-decstation
--- linux-2.4.20/arch/mips/defconfig-decstation	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-decstation	2003-02-07 17:39:40.000000000 -0600
@@ -21,17 +21,22 @@
 # Machine selection
 #
 # CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
 # CONFIG_MIPS_PB1000 is not set
 # CONFIG_MIPS_PB1100 is not set
 # CONFIG_MIPS_PB1500 is not set
-# CONFIG_ALGOR_P4032 is not set
 # CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
 # CONFIG_MIPS_COBALT is not set
 CONFIG_DECSTATION=y
 # CONFIG_MIPS_EV64120 is not set
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MAGNUM_4000 is not set
@@ -51,13 +56,16 @@
 # CONFIG_SGI_IP32 is not set
 # CONFIG_SIBYTE_SB1xxx_SOC is not set
 # CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
 # CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
 # CONFIG_ZAO_CAPCELLA is not set
 # CONFIG_HIGHMEM is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
+CONFIG_BOOT_ELF32=y
 CONFIG_IRQ_CPU=y
-CONFIG_NEW_IRQ=y
+CONFIG_L1_CACHE_SHIFT=4
 CONFIG_NONCOHERENT_IO=y
 # CONFIG_MIPS_AU1000 is not set
 
@@ -108,6 +116,8 @@
 # CONFIG_BINFMT_AOUT is not set
 CONFIG_BINFMT_ELF=y
 # CONFIG_MIPS32_COMPAT is not set
+# CONFIG_MIPS32_O32 is not set
+# CONFIG_MIPS32_N32 is not set
 # CONFIG_BINFMT_ELF32 is not set
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_PM is not set
@@ -389,10 +399,33 @@
 # Character devices
 #
 # CONFIG_VT is not set
-CONFIG_SERIAL=y
-CONFIG_SERIAL_CONSOLE=y
+# CONFIG_SERIAL is not set
 # CONFIG_SERIAL_EXTENDED is not set
-# CONFIG_SERIAL_NONSTANDARD is not set
+CONFIG_SERIAL_NONSTANDARD=y
+# CONFIG_COMPUTONE is not set
+# CONFIG_ROCKETPORT is not set
+# CONFIG_CYCLADES is not set
+# CONFIG_DIGIEPCA is not set
+# CONFIG_DIGI is not set
+# CONFIG_ESPSERIAL is not set
+# CONFIG_MOXA_INTELLIO is not set
+# CONFIG_MOXA_SMARTIO is not set
+# CONFIG_ISI is not set
+# CONFIG_SYNCLINK is not set
+# CONFIG_SYNCLINKMP is not set
+# CONFIG_N_HDLC is not set
+# CONFIG_RISCOM8 is not set
+# CONFIG_SPECIALIX is not set
+# CONFIG_SX is not set
+# CONFIG_RIO is not set
+# CONFIG_STALDRV is not set
+# CONFIG_SERIAL_TX3912 is not set
+# CONFIG_SERIAL_TX3912_CONSOLE is not set
+# CONFIG_TXX927_SERIAL is not set
+CONFIG_SERIAL_DEC=y
+CONFIG_SERIAL_DEC_CONSOLE=y
+CONFIG_DZ=y
+CONFIG_ZS=y
 CONFIG_UNIX98_PTYS=y
 CONFIG_UNIX98_PTY_COUNT=256
 
@@ -425,6 +458,7 @@
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
+# CONFIG_AMD_PM768 is not set
 # CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_DTLK is not set
@@ -439,15 +473,6 @@
 # CONFIG_DRM is not set
 
 #
-# DECStation Character devices
-#
-CONFIG_SERIAL=y
-# CONFIG_DZ is not set
-CONFIG_ZS=y
-CONFIG_SERIAL_CONSOLE=y
-# CONFIG_RTC is not set
-
-#
 # File systems
 #
 # CONFIG_QUOTA is not set
@@ -573,9 +598,9 @@
 # Kernel hacking
 #
 CONFIG_CROSSCOMPILE=y
+# CONFIG_DEBUG is not set
 # CONFIG_REMOTE_DEBUG is not set
 # CONFIG_GDB_CONSOLE is not set
-# CONFIG_DEBUG is not set
 # CONFIG_MAGIC_SYSRQ is not set
 # CONFIG_MIPS_UNCACHED is not set
 
diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-e55 linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-e55
--- linux-2.4.20/arch/mips/defconfig-e55	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-e55	2003-02-24 15:17:03.000000000 -0600
@@ -0,0 +1,614 @@
+#
+# Automatically generated make config: don't edit
+#
+CONFIG_MIPS=y
+CONFIG_MIPS32=y
+# CONFIG_MIPS64 is not set
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+# CONFIG_MODVERSIONS is not set
+CONFIG_KMOD=y
+
+#
+# Machine selection
+#
+# CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
+# CONFIG_MIPS_PB1000 is not set
+# CONFIG_MIPS_PB1100 is not set
+# CONFIG_MIPS_PB1500 is not set
+# CONFIG_BAGET_MIPS is not set
+CONFIG_CASIO_E55=y
+# CONFIG_MIPS_COBALT is not set
+# CONFIG_DECSTATION is not set
+# CONFIG_MIPS_EV64120 is not set
+# CONFIG_MIPS_EV96100 is not set
+# CONFIG_MIPS_IVR is not set
+# CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
+# CONFIG_MIPS_ITE8172 is not set
+# CONFIG_MIPS_ATLAS is not set
+# CONFIG_MIPS_MAGNUM_4000 is not set
+# CONFIG_MIPS_MALTA is not set
+# CONFIG_MIPS_SEAD is not set
+# CONFIG_MOMENCO_OCELOT is not set
+# CONFIG_MOMENCO_OCELOT_G is not set
+# CONFIG_DDB5074 is not set
+# CONFIG_DDB5476 is not set
+# CONFIG_DDB5477 is not set
+# CONFIG_NEC_OSPREY is not set
+# CONFIG_NEC_EAGLE is not set
+# CONFIG_OLIVETTI_M700 is not set
+# CONFIG_NINO is not set
+# CONFIG_SGI_IP22 is not set
+# CONFIG_SGI_IP27 is not set
+# CONFIG_SGI_IP32 is not set
+# CONFIG_SIBYTE_SB1xxx_SOC is not set
+# CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
+# CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
+# CONFIG_ZAO_CAPCELLA is not set
+# CONFIG_HIGHMEM is not set
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
+CONFIG_CPU_VR41XX=y
+CONFIG_IRQ_CPU=y
+CONFIG_NEW_TIME_C=y
+CONFIG_VR41XX_TIME_C=y
+CONFIG_NONCOHERENT_IO=y
+CONFIG_ISA=y
+CONFIG_DUMMY_KEYB=y
+# CONFIG_SCSI is not set
+# CONFIG_MIPS_AU1000 is not set
+
+#
+# CPU selection
+#
+# CONFIG_CPU_MIPS32 is not set
+# CONFIG_CPU_MIPS64 is not set
+# CONFIG_CPU_R3000 is not set
+# CONFIG_CPU_TX39XX is not set
+CONFIG_CPU_VR41XX=y
+# CONFIG_CPU_R4300 is not set
+# CONFIG_CPU_R4X00 is not set
+# CONFIG_CPU_TX49XX is not set
+# CONFIG_CPU_R5000 is not set
+# CONFIG_CPU_R5432 is not set
+# CONFIG_CPU_R6000 is not set
+# CONFIG_CPU_NEVADA is not set
+# CONFIG_CPU_R8000 is not set
+# CONFIG_CPU_R10000 is not set
+# CONFIG_CPU_RM7000 is not set
+# CONFIG_CPU_SB1 is not set
+# CONFIG_CPU_ADVANCED is not set
+# CONFIG_CPU_HAS_LLSC is not set
+# CONFIG_CPU_HAS_LLDSCD is not set
+# CONFIG_CPU_HAS_WB is not set
+CONFIG_CPU_HAS_SYNC=y
+
+#
+# General setup
+#
+CONFIG_CPU_LITTLE_ENDIAN=y
+CONFIG_NET=y
+# CONFIG_PCI is not set
+CONFIG_EISA=y
+# CONFIG_TC is not set
+# CONFIG_MCA is not set
+# CONFIG_SBUS is not set
+# CONFIG_HOTPLUG is not set
+# CONFIG_PCMCIA is not set
+# CONFIG_HOTPLUG_PCI is not set
+CONFIG_SYSVIPC=y
+# CONFIG_BSD_PROCESS_ACCT is not set
+CONFIG_SYSCTL=y
+CONFIG_KCORE_ELF=y
+# CONFIG_KCORE_AOUT is not set
+# CONFIG_BINFMT_AOUT is not set
+CONFIG_BINFMT_ELF=y
+# CONFIG_MIPS32_COMPAT is not set
+# CONFIG_MIPS32_O32 is not set
+# CONFIG_MIPS32_N32 is not set
+# CONFIG_BINFMT_ELF32 is not set
+# CONFIG_BINFMT_MISC is not set
+# CONFIG_PM is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+# CONFIG_MTD is not set
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Plug and Play configuration
+#
+# CONFIG_PNP is not set
+# CONFIG_ISAPNP is not set
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_FD is not set
+# CONFIG_BLK_DEV_XD is not set
+# CONFIG_PARIDE is not set
+# CONFIG_BLK_CPQ_DA is not set
+# CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_CISS_SCSI_TAPE is not set
+# CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_LOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_RAM is not set
+# CONFIG_BLK_DEV_INITRD is not set
+# CONFIG_BLK_STATS is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD is not set
+# CONFIG_BLK_DEV_MD is not set
+# CONFIG_MD_LINEAR is not set
+# CONFIG_MD_RAID0 is not set
+# CONFIG_MD_RAID1 is not set
+# CONFIG_MD_RAID5 is not set
+# CONFIG_MD_MULTIPATH is not set
+# CONFIG_BLK_DEV_LVM is not set
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_PACKET_MMAP=y
+CONFIG_NETLINK_DEV=y
+# CONFIG_NETFILTER is not set
+# CONFIG_FILTER is not set
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+# CONFIG_IP_ADVANCED_ROUTER is not set
+# CONFIG_IP_PNP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_IP_MROUTE is not set
+# CONFIG_ARPD is not set
+# CONFIG_INET_ECN is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_IPV6 is not set
+# CONFIG_KHTTPD is not set
+# CONFIG_ATM is not set
+# CONFIG_VLAN_8021Q is not set
+
+#
+#  
+#
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+
+#
+# Appletalk devices
+#
+# CONFIG_DEV_APPLETALK is not set
+# CONFIG_DECNET is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_LLC is not set
+# CONFIG_NET_DIVERT is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_FASTROUTE is not set
+# CONFIG_NET_HW_FLOWCONTROL is not set
+
+#
+# QoS and/or fair queueing
+#
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+
+#
+# Telephony Support
+#
+# CONFIG_PHONE is not set
+# CONFIG_PHONE_IXJ is not set
+# CONFIG_PHONE_IXJ_PCMCIA is not set
+
+#
+# ATA/IDE/MFM/RLL support
+#
+CONFIG_IDE=y
+
+#
+# IDE, ATA and ATAPI Block devices
+#
+CONFIG_BLK_DEV_IDE=y
+
+#
+# Please see Documentation/ide.txt for help/info on IDE drives
+#
+# CONFIG_BLK_DEV_HD_IDE is not set
+# CONFIG_BLK_DEV_HD is not set
+CONFIG_BLK_DEV_IDEDISK=y
+# CONFIG_IDEDISK_MULTI_MODE is not set
+# CONFIG_IDEDISK_STROKE is not set
+# CONFIG_BLK_DEV_IDEDISK_VENDOR is not set
+# CONFIG_BLK_DEV_IDEDISK_FUJITSU is not set
+# CONFIG_BLK_DEV_IDEDISK_IBM is not set
+# CONFIG_BLK_DEV_IDEDISK_MAXTOR is not set
+# CONFIG_BLK_DEV_IDEDISK_QUANTUM is not set
+# CONFIG_BLK_DEV_IDEDISK_SEAGATE is not set
+# CONFIG_BLK_DEV_IDEDISK_WD is not set
+# CONFIG_BLK_DEV_COMMERIAL is not set
+# CONFIG_BLK_DEV_TIVO is not set
+# CONFIG_BLK_DEV_IDECS 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
+
+#
+# IDE chipset support/bugfixes
+#
+# 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_DMA_NONPCI is not set
+# CONFIG_BLK_DEV_IDE_MODES 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
+
+#
+# SCSI support
+#
+# CONFIG_SCSI is not set
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_ETHERTAP is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+# CONFIG_SUNLANCE is not set
+# CONFIG_SUNBMAC is not set
+# CONFIG_SUNQE is not set
+# CONFIG_SUNGEM is not set
+# CONFIG_NET_VENDOR_3COM is not set
+# CONFIG_LANCE is not set
+# CONFIG_NET_VENDOR_SMC is not set
+# CONFIG_NET_VENDOR_RACAL is not set
+# CONFIG_AT1700 is not set
+# CONFIG_DEPCA is not set
+# CONFIG_HP100 is not set
+# CONFIG_NET_ISA is not set
+# CONFIG_NET_PCI is not set
+# CONFIG_NET_POCKET is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+# CONFIG_ACENIC is not set
+# CONFIG_DL2K is not set
+# CONFIG_E1000 is not set
+# CONFIG_MYRI_SBUS is not set
+# CONFIG_NS83820 is not set
+# CONFIG_HAMACHI is not set
+# CONFIG_YELLOWFIN is not set
+# CONFIG_SK98LIN is not set
+# CONFIG_TIGON3 is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+# CONFIG_PLIP is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+# CONFIG_NET_RADIO is not set
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+# CONFIG_NET_FC is not set
+# CONFIG_RCPCI is not set
+# CONFIG_SHAPER is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+
+#
+# Amateur Radio support
+#
+# CONFIG_HAMRADIO is not set
+
+#
+# IrDA (infrared) support
+#
+# CONFIG_IRDA is not set
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Old CD-ROM drivers (not SCSI, not IDE)
+#
+# CONFIG_CD_NO_IDESCSI is not set
+
+#
+# Input core support
+#
+# CONFIG_INPUT is not set
+# CONFIG_INPUT_KEYBDEV is not set
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+# CONFIG_VT_CONSOLE is not set
+CONFIG_SERIAL=y
+CONFIG_SERIAL_CONSOLE=y
+CONFIG_SERIAL_EXTENDED=y
+CONFIG_SERIAL_MANY_PORTS=y
+# CONFIG_SERIAL_SHARE_IRQ is not set
+# CONFIG_SERIAL_DETECT_IRQ is not set
+# CONFIG_SERIAL_MULTIPORT is not set
+# CONFIG_HUB6 is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+CONFIG_UNIX98_PTYS=y
+CONFIG_UNIX98_PTY_COUNT=256
+
+#
+# I2C support
+#
+# CONFIG_I2C is not set
+
+#
+# Mice
+#
+# CONFIG_BUSMOUSE is not set
+# CONFIG_MOUSE is not set
+
+#
+# Joysticks
+#
+# CONFIG_INPUT_GAMEPORT is not set
+
+#
+# Input core support is needed for gameports
+#
+
+#
+# Input core support is needed for joysticks
+#
+# CONFIG_QIC02_TAPE is not set
+
+#
+# Watchdog Cards
+#
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+# CONFIG_ACQUIRE_WDT is not set
+# CONFIG_ADVANTECH_WDT is not set
+# CONFIG_ALIM7101_WDT is not set
+# CONFIG_SC520_WDT is not set
+# CONFIG_PCWATCHDOG is not set
+# CONFIG_EUROTECH_WDT is not set
+# CONFIG_IB700_WDT is not set
+# CONFIG_WAFER_WDT is not set
+# CONFIG_I810_TCO is not set
+# CONFIG_MIXCOMWD is not set
+# CONFIG_60XX_WDT is not set
+# CONFIG_SC1200_WDT is not set
+# CONFIG_SOFT_WATCHDOG is not set
+# CONFIG_W83877F_WDT is not set
+# CONFIG_WDT is not set
+# CONFIG_WDTPCI is not set
+# CONFIG_MACHZ_WDT is not set
+# CONFIG_INDYDOG is not set
+# CONFIG_AMD7XX_TCO is not set
+# CONFIG_AMD_PM768 is not set
+# CONFIG_NVRAM is not set
+# CONFIG_RTC is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# CONFIG_FTAPE is not set
+# CONFIG_AGP is not set
+# CONFIG_DRM is not set
+
+#
+# File systems
+#
+# CONFIG_QUOTA is not set
+CONFIG_AUTOFS_FS=y
+CONFIG_AUTOFS4_FS=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+# CONFIG_ADFS_FS is not set
+# CONFIG_ADFS_FS_RW is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BEFS_DEBUG is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EXT3_FS is not set
+# CONFIG_JBD is not set
+# CONFIG_JBD_DEBUG is not set
+# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_UMSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_JFFS_FS is not set
+# CONFIG_JFFS2_FS is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_TMPFS is not set
+CONFIG_RAMFS=y
+# CONFIG_ISO9660_FS is not set
+# CONFIG_JOLIET is not set
+# CONFIG_ZISOFS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_NTFS_FS is not set
+# CONFIG_NTFS_RW is not set
+# CONFIG_HPFS_FS is not set
+CONFIG_PROC_FS=y
+# CONFIG_DEVFS_FS is not set
+# CONFIG_DEVFS_MOUNT is not set
+# CONFIG_DEVFS_DEBUG is not set
+CONFIG_DEVPTS_FS=y
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_QNX4FS_RW is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_EXT2_FS=y
+# CONFIG_SYSV_FS is not set
+# CONFIG_UDF_FS is not set
+# CONFIG_UDF_RW is not set
+# CONFIG_UFS_FS is not set
+# CONFIG_UFS_FS_WRITE is not set
+
+#
+# Network File Systems
+#
+# CONFIG_CODA_FS is not set
+# CONFIG_INTERMEZZO_FS is not set
+CONFIG_NFS_FS=y
+# CONFIG_NFS_V3 is not set
+# CONFIG_ROOT_NFS is not set
+CONFIG_NFSD=y
+# CONFIG_NFSD_V3 is not set
+# CONFIG_NFSD_TCP is not set
+CONFIG_SUNRPC=y
+CONFIG_LOCKD=y
+# CONFIG_SMB_FS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_NCPFS_PACKET_SIGNING is not set
+# CONFIG_NCPFS_IOCTL_LOCKING is not set
+# CONFIG_NCPFS_STRONG is not set
+# CONFIG_NCPFS_NFS_NS is not set
+# CONFIG_NCPFS_OS2_NS is not set
+# CONFIG_NCPFS_SMALLDOS is not set
+# CONFIG_NCPFS_NLS is not set
+# CONFIG_NCPFS_EXTRAS is not set
+# CONFIG_ZISOFS_FS is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_BSD_DISKLABEL is not set
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+# CONFIG_LDM_PARTITION is not set
+CONFIG_SGI_PARTITION=y
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+# CONFIG_SMB_NLS is not set
+# CONFIG_NLS is not set
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# Console drivers
+#
+# CONFIG_VGA_CONSOLE is not set
+# CONFIG_MDA_CONSOLE is not set
+
+#
+# Frame-buffer support
+#
+# CONFIG_FB is not set
+
+#
+# Sound
+#
+# CONFIG_SOUND is not set
+
+#
+# USB support
+#
+# CONFIG_USB is not set
+
+#
+# Bluetooth support
+#
+# CONFIG_BLUEZ is not set
+
+#
+# Kernel hacking
+#
+CONFIG_CROSSCOMPILE=y
+# CONFIG_DEBUG is not set
+# CONFIG_REMOTE_DEBUG is not set
+# CONFIG_GDB_CONSOLE is not set
+# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_MIPS_UNCACHED is not set
+
+#
+# Library routines
+#
+# CONFIG_ZLIB_INFLATE is not set
+# CONFIG_ZLIB_DEFLATE is not set
diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-eagle linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-eagle
--- linux-2.4.20/arch/mips/defconfig-eagle	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-eagle	2003-02-24 15:17:03.000000000 -0600
@@ -21,17 +21,22 @@
 # Machine selection
 #
 # CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
 # CONFIG_MIPS_PB1000 is not set
 # CONFIG_MIPS_PB1100 is not set
 # CONFIG_MIPS_PB1500 is not set
-# CONFIG_ALGOR_P4032 is not set
 # CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
 # CONFIG_MIPS_COBALT is not set
 # CONFIG_DECSTATION is not set
 # CONFIG_MIPS_EV64120 is not set
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MAGNUM_4000 is not set
@@ -44,6 +49,7 @@
 # CONFIG_DDB5477 is not set
 # CONFIG_NEC_OSPREY is not set
 CONFIG_NEC_EAGLE=y
+CONFIG_VRC4173=y
 # CONFIG_OLIVETTI_M700 is not set
 # CONFIG_NINO is not set
 # CONFIG_SGI_IP22 is not set
@@ -51,13 +57,14 @@
 # CONFIG_SGI_IP32 is not set
 # CONFIG_SIBYTE_SB1xxx_SOC is not set
 # CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
 # CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
 # CONFIG_ZAO_CAPCELLA is not set
 # CONFIG_HIGHMEM is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
 CONFIG_CPU_VR41XX=y
-CONFIG_NEW_IRQ=y
 CONFIG_IRQ_CPU=y
 CONFIG_NEW_TIME_C=y
 CONFIG_VR41XX_TIME_C=y
@@ -117,6 +124,8 @@
 # CONFIG_BINFMT_AOUT is not set
 CONFIG_BINFMT_ELF=y
 # CONFIG_MIPS32_COMPAT is not set
+# CONFIG_MIPS32_O32 is not set
+# CONFIG_MIPS32_N32 is not set
 # CONFIG_BINFMT_ELF32 is not set
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_PM is not set
@@ -169,15 +178,16 @@
 # CONFIG_MTD_PB1000 is not set
 # CONFIG_MTD_PB1500 is not set
 # CONFIG_MTD_PB1100 is not set
+# CONFIG_MTD_DB1X00 is not set
 # CONFIG_MTD_CSTM_MIPS_IXX is not set
 # CONFIG_MTD_OCELOT is not set
+# CONFIG_MTD_LASAT is not set
 # CONFIG_MTD_PCI is not set
 
 #
 # Self-contained MTD device drivers
 #
 # CONFIG_MTD_PMC551 is not set
-# CONFIG_MTD_MS02NV is not set
 # CONFIG_MTD_SLRAM is not set
 # CONFIG_MTD_MTDRAM is not set
 # CONFIG_MTD_BLKMTD is not set
@@ -378,6 +388,7 @@
 # CONFIG_SIS900 is not set
 # CONFIG_EPIC100 is not set
 # CONFIG_SUNDANCE is not set
+# CONFIG_SUNDANCE_MMIO is not set
 # CONFIG_TLAN is not set
 # CONFIG_TC35815 is not set
 # CONFIG_VIA_RHINE is not set
@@ -511,6 +522,7 @@
 # CONFIG_MACHZ_WDT is not set
 # CONFIG_INDYDOG is not set
 # CONFIG_AMD7XX_TCO is not set
+# CONFIG_AMD_PM768 is not set
 # CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_DTLK is not set
@@ -653,7 +665,108 @@
 #
 # USB support
 #
-# CONFIG_USB is not set
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+CONFIG_USB_BANDWIDTH=y
+CONFIG_USB_LONG_TIMEOUT=y
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_EHCI_HCD is not set
+# CONFIG_USB_UHCI is not set
+# CONFIG_USB_UHCI_ALT is not set
+CONFIG_USB_OHCI=y
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_AUDIO is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_BLUETOOTH is not set
+# CONFIG_USB_MIDI is not set
+
+#
+#   SCSI support is needed for USB Storage
+#
+# CONFIG_USB_STORAGE is not set
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
+# CONFIG_USB_STORAGE_DPCM is not set
+# CONFIG_USB_STORAGE_HP8200e is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+# CONFIG_USB_ACM is not set
+# CONFIG_USB_PRINTER is not set
+
+#
+# USB Human Interface Devices (HID)
+#
+# CONFIG_USB_HID is not set
+
+#
+#     Input core support is needed for USB HID input layer or HIDBP support
+#
+# CONFIG_USB_HIDINPUT is not set
+# CONFIG_USB_HIDDEV is not set
+# CONFIG_USB_KBD is not set
+# CONFIG_USB_MOUSE is not set
+# CONFIG_USB_AIPTEK is not set
+# CONFIG_USB_WACOM is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_DC2XX is not set
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_SCANNER is not set
+# CONFIG_USB_MICROTEK is not set
+# CONFIG_USB_HPUSBSCSI is not set
+
+#
+# USB Multimedia devices
+#
+
+#
+#   Video4Linux support is needed for USB Multimedia device support
+#
+
+#
+# USB Network adaptors
+#
+CONFIG_USB_PEGASUS=y
+CONFIG_USB_RTL8150=y
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_CDCETHER is not set
+# CONFIG_USB_USBNET is not set
+
+#
+# USB port drivers
+#
+# CONFIG_USB_USS720 is not set
+
+#
+# USB Serial Converter support
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_AUERSWALD is not set
+# CONFIG_USB_TIGL is not set
+# CONFIG_USB_BRLVGER is not set
+# CONFIG_USB_LCD is not set
 
 #
 # Bluetooth support
@@ -664,9 +777,9 @@
 # Kernel hacking
 #
 CONFIG_CROSSCOMPILE=y
+# CONFIG_DEBUG is not set
 # CONFIG_REMOTE_DEBUG is not set
 # CONFIG_GDB_CONSOLE is not set
-# CONFIG_DEBUG is not set
 # CONFIG_MAGIC_SYSRQ is not set
 # CONFIG_MIPS_UNCACHED is not set
 
diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-ev64120 linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-ev64120
--- linux-2.4.20/arch/mips/defconfig-ev64120	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-ev64120	2003-02-24 15:17:03.000000000 -0600
@@ -21,11 +21,14 @@
 # Machine selection
 #
 # CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
 # CONFIG_MIPS_PB1000 is not set
 # CONFIG_MIPS_PB1100 is not set
 # CONFIG_MIPS_PB1500 is not set
-# CONFIG_ALGOR_P4032 is not set
 # CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
 # CONFIG_MIPS_COBALT is not set
 # CONFIG_DECSTATION is not set
 CONFIG_MIPS_EV64120=y
@@ -36,6 +39,8 @@
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MAGNUM_4000 is not set
@@ -55,7 +60,9 @@
 # CONFIG_SGI_IP32 is not set
 # CONFIG_SIBYTE_SB1xxx_SOC is not set
 # CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
 # CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
 # CONFIG_ZAO_CAPCELLA is not set
 # CONFIG_HIGHMEM is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
@@ -86,7 +93,6 @@
 # CONFIG_CPU_R10000 is not set
 # CONFIG_CPU_RM7000 is not set
 # CONFIG_CPU_SB1 is not set
-CONFIG_BOARD_SCACHE=y
 # CONFIG_64BIT_PHYS_ADDR is not set
 # CONFIG_CPU_ADVANCED is not set
 CONFIG_CPU_HAS_LLSC=y
@@ -118,6 +124,8 @@
 # CONFIG_BINFMT_AOUT is not set
 CONFIG_BINFMT_ELF=y
 # CONFIG_MIPS32_COMPAT is not set
+# CONFIG_MIPS32_O32 is not set
+# CONFIG_MIPS32_N32 is not set
 # CONFIG_BINFMT_ELF32 is not set
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_PM is not set
@@ -308,6 +316,7 @@
 # CONFIG_SIS900 is not set
 # CONFIG_EPIC100 is not set
 # CONFIG_SUNDANCE is not set
+# CONFIG_SUNDANCE_MMIO is not set
 # CONFIG_TLAN is not set
 # CONFIG_TC35815 is not set
 # CONFIG_VIA_RHINE is not set
@@ -423,6 +432,7 @@
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
+# CONFIG_AMD_PM768 is not set
 # CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_DTLK is not set
@@ -548,9 +558,9 @@
 # Kernel hacking
 #
 CONFIG_CROSSCOMPILE=y
+# CONFIG_DEBUG is not set
 # CONFIG_REMOTE_DEBUG is not set
 # CONFIG_GDB_CONSOLE is not set
-# CONFIG_DEBUG is not set
 # CONFIG_MAGIC_SYSRQ is not set
 # CONFIG_MIPS_UNCACHED is not set
 
diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-ev96100 linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-ev96100
--- linux-2.4.20/arch/mips/defconfig-ev96100	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-ev96100	2003-02-24 15:17:03.000000000 -0600
@@ -21,17 +21,22 @@
 # Machine selection
 #
 # CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
 # CONFIG_MIPS_PB1000 is not set
 # CONFIG_MIPS_PB1100 is not set
 # CONFIG_MIPS_PB1500 is not set
-# CONFIG_ALGOR_P4032 is not set
 # CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
 # CONFIG_MIPS_COBALT is not set
 # CONFIG_DECSTATION is not set
 # CONFIG_MIPS_EV64120 is not set
 CONFIG_MIPS_EV96100=y
 # CONFIG_MIPS_IVR is not set
 # CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MAGNUM_4000 is not set
@@ -51,18 +56,20 @@
 # CONFIG_SGI_IP32 is not set
 # CONFIG_SIBYTE_SB1xxx_SOC is not set
 # CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
 # CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
 # CONFIG_ZAO_CAPCELLA is not set
 # CONFIG_HIGHMEM is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
 CONFIG_PCI=y
 CONFIG_MIPS_GT96100=y
-CONFIG_NEW_IRQ=y
 CONFIG_NEW_PCI=y
 CONFIG_NONCOHERENT_IO=y
 CONFIG_PCI_AUTO=y
-CONFIG_SWAP_IO_SPACE=y
+CONFIG_SWAP_IO_SPACE_W=y
+CONFIG_SWAP_IO_SPACE_L=y
 # CONFIG_MIPS_AU1000 is not set
 
 #
@@ -116,6 +123,8 @@
 # CONFIG_BINFMT_AOUT is not set
 CONFIG_BINFMT_ELF=y
 # CONFIG_MIPS32_COMPAT is not set
+# CONFIG_MIPS32_O32 is not set
+# CONFIG_MIPS32_N32 is not set
 # CONFIG_BINFMT_ELF32 is not set
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_PM is not set
@@ -309,6 +318,7 @@
 # CONFIG_SIS900 is not set
 # CONFIG_EPIC100 is not set
 # CONFIG_SUNDANCE is not set
+# CONFIG_SUNDANCE_MMIO is not set
 # CONFIG_TLAN is not set
 # CONFIG_TC35815 is not set
 # CONFIG_VIA_RHINE is not set
@@ -417,6 +427,7 @@
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
+# CONFIG_AMD_PM768 is not set
 # CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_DTLK is not set
@@ -542,9 +553,9 @@
 # Kernel hacking
 #
 CONFIG_CROSSCOMPILE=y
+# CONFIG_DEBUG is not set
 # CONFIG_REMOTE_DEBUG is not set
 # CONFIG_GDB_CONSOLE is not set
-# CONFIG_DEBUG is not set
 # CONFIG_MAGIC_SYSRQ is not set
 # CONFIG_MIPS_UNCACHED is not set
 
diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-hp-lj linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-hp-lj
--- linux-2.4.20/arch/mips/defconfig-hp-lj	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-hp-lj	2003-02-24 15:17:03.000000000 -0600
@@ -3,6 +3,7 @@
 #
 CONFIG_MIPS=y
 CONFIG_MIPS32=y
+# CONFIG_MIPS64 is not set
 
 #
 # Code maturity level options
@@ -10,101 +11,192 @@
 CONFIG_EXPERIMENTAL=y
 
 #
+# Loadable module support
+#
+CONFIG_MODULES=y
+# CONFIG_MODVERSIONS is not set
+CONFIG_KMOD=y
+
+#
 # Machine selection
 #
 # CONFIG_ACER_PICA_61 is not set
-# CONFIG_ALGOR_P4032 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
+# CONFIG_MIPS_PB1000 is not set
+# CONFIG_MIPS_PB1100 is not set
+# CONFIG_MIPS_PB1500 is not set
 # CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
 # CONFIG_MIPS_COBALT is not set
 # CONFIG_DECSTATION is not set
-# CONFIG_DDB5074 is not set
 # CONFIG_MIPS_EV64120 is not set
 # CONFIG_MIPS_EV96100 is not set
+# CONFIG_MIPS_IVR is not set
+CONFIG_HP_LASERJET=y
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
+# CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
-CONFIG_MIPS_MALTA=y
-# CONFIG_NINO is not set
-# CONFIG_SIBYTE_SB1250 is not set
 # CONFIG_MIPS_MAGNUM_4000 is not set
+# CONFIG_MIPS_MALTA is not set
+# CONFIG_MIPS_SEAD is not set
 # CONFIG_MOMENCO_OCELOT is not set
+# CONFIG_MOMENCO_OCELOT_G is not set
+# CONFIG_DDB5074 is not set
 # CONFIG_DDB5476 is not set
 # CONFIG_DDB5477 is not set
 # CONFIG_NEC_OSPREY is not set
+# CONFIG_NEC_EAGLE is not set
 # CONFIG_OLIVETTI_M700 is not set
+# CONFIG_NINO is not set
 # CONFIG_SGI_IP22 is not set
+# CONFIG_SGI_IP27 is not set
+# CONFIG_SGI_IP32 is not set
+# CONFIG_SIBYTE_SB1xxx_SOC is not set
 # CONFIG_SNI_RM200_PCI is not set
-# CONFIG_MIPS_ITE8172 is not set
-# CONFIG_MIPS_IVR is not set
-# CONFIG_MIPS_PB1000 is not set
-# CONFIG_MIPS_PB1500 is not set
+# CONFIG_TANBAC_TB0226 is not set
 # CONFIG_TOSHIBA_JMR3927 is not set
-# CONFIG_HP_LASERJET is not set
+# CONFIG_VICTOR_MPC30X is not set
+# CONFIG_ZAO_CAPCELLA is not set
 # CONFIG_HIGHMEM is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
-# CONFIG_MCA is not set
-# CONFIG_SBUS is not set
-CONFIG_I8259=y
-CONFIG_PCI=y
-CONFIG_HAVE_STD_PC_SERIAL_PORT=y
-CONFIG_NEW_IRQ=y
+CONFIG_IRQ_CPU=y
 CONFIG_NEW_TIME_C=y
+CONFIG_NEW_PCI=y
 CONFIG_NONCOHERENT_IO=y
-CONFIG_SWAP_IO_SPACE=y
-# CONFIG_ISA is not set
-# CONFIG_EISA is not set
-
-#
-# Loadable module support
-#
-# CONFIG_MODULES is not set
+CONFIG_PCI=y
+# CONFIG_MIPS_AU1000 is not set
 
 #
 # CPU selection
 #
+# CONFIG_CPU_MIPS32 is not set
+# CONFIG_CPU_MIPS64 is not set
 # CONFIG_CPU_R3000 is not set
 # CONFIG_CPU_TX39XX is not set
-# CONFIG_CPU_R6000 is not set
 # CONFIG_CPU_VR41XX is not set
 # CONFIG_CPU_R4300 is not set
 # CONFIG_CPU_R4X00 is not set
 # CONFIG_CPU_TX49XX is not set
-# CONFIG_CPU_R5000 is not set
+CONFIG_CPU_R5000=y
 # CONFIG_CPU_R5432 is not set
-# CONFIG_CPU_RM7000 is not set
+# CONFIG_CPU_R6000 is not set
 # CONFIG_CPU_NEVADA is not set
+# CONFIG_CPU_R8000 is not set
 # CONFIG_CPU_R10000 is not set
+# CONFIG_CPU_RM7000 is not set
 # CONFIG_CPU_SB1 is not set
-CONFIG_CPU_MIPS32=y
-# CONFIG_CPU_MIPS64 is not set
-CONFIG_CPU_HAS_PREFETCH=y
 # CONFIG_64BIT_PHYS_ADDR is not set
 # CONFIG_CPU_ADVANCED is not set
 CONFIG_CPU_HAS_LLSC=y
-# CONFIG_CPU_HAS_LLDSCD is not set
+CONFIG_CPU_HAS_LLDSCD=y
 # CONFIG_CPU_HAS_WB is not set
+CONFIG_CPU_HAS_SYNC=y
 
 #
 # General setup
 #
 CONFIG_CPU_LITTLE_ENDIAN=y
-CONFIG_KCORE_ELF=y
-CONFIG_ELF_KERNEL=y
-# CONFIG_BINFMT_AOUT is not set
-CONFIG_BINFMT_ELF=y
-# CONFIG_BINFMT_MISC is not set
 CONFIG_NET=y
 # CONFIG_PCI_NAMES is not set
+# CONFIG_ISA is not set
+# CONFIG_EISA is not set
+# CONFIG_TC is not set
+# CONFIG_MCA is not set
+# CONFIG_SBUS is not set
 # CONFIG_HOTPLUG is not set
 # CONFIG_PCMCIA is not set
 # CONFIG_HOTPLUG_PCI is not set
 CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
-# CONFIG_SYSCTL is not set
+CONFIG_SYSCTL=y
+CONFIG_KCORE_ELF=y
+# CONFIG_KCORE_AOUT is not set
+# CONFIG_BINFMT_AOUT is not set
+CONFIG_BINFMT_ELF=y
+# CONFIG_MIPS32_COMPAT is not set
+# CONFIG_MIPS32_O32 is not set
+# CONFIG_MIPS32_N32 is not set
+# CONFIG_BINFMT_ELF32 is not set
+# CONFIG_BINFMT_MISC is not set
+# CONFIG_PM is not set
 
 #
 # Memory Technology Devices (MTD)
 #
-# CONFIG_MTD is not set
+CONFIG_MTD=y
+CONFIG_MTD_DEBUG=y
+CONFIG_MTD_DEBUG_VERBOSE=3
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_REDBOOT_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=y
+CONFIG_MTD_JEDECPROBE=y
+CONFIG_MTD_GEN_PROBE=y
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_CFI_INTELEXT=y
+CONFIG_MTD_CFI_AMDSTD=y
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+# CONFIG_MTD_OBSOLETE_CHIPS is not set
+# CONFIG_MTD_AMDSTD is not set
+# CONFIG_MTD_SHARP is not set
+# CONFIG_MTD_JEDEC is not set
+
+#
+# Mapping drivers for chip access
+#
+CONFIG_MTD_PHYSMAP=y
+CONFIG_MTD_PHYSMAP_START=10040000
+CONFIG_MTD_PHYSMAP_LEN=00fc0000
+CONFIG_MTD_PHYSMAP_BUSWIDTH=4
+# CONFIG_MTD_PB1000 is not set
+# CONFIG_MTD_PB1500 is not set
+# CONFIG_MTD_PB1100 is not set
+# CONFIG_MTD_DB1X00 is not set
+# CONFIG_MTD_CSTM_MIPS_IXX is not set
+# CONFIG_MTD_OCELOT is not set
+# CONFIG_MTD_LASAT is not set
+# CONFIG_MTD_PCI is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_PMC551 is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLKMTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC1000 is not set
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOCPROBE is not set
+
+#
+# NAND Flash Device Drivers
+#
+CONFIG_MTD_NAND=y
+# CONFIG_MTD_NAND_ECC is not set
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
 
 #
 # Parallel port support
@@ -112,19 +204,27 @@
 # CONFIG_PARPORT is not set
 
 #
+# Plug and Play configuration
+#
+# CONFIG_PNP is not set
+# CONFIG_ISAPNP is not set
+
+#
 # Block devices
 #
-CONFIG_BLK_DEV_FD=y
+# CONFIG_BLK_DEV_FD is not set
 # CONFIG_BLK_DEV_XD is not set
 # CONFIG_PARIDE is not set
 # CONFIG_BLK_CPQ_DA is not set
 # CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_CISS_SCSI_TAPE is not set
 # CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
 # CONFIG_BLK_DEV_LOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_SIZE=4096
+# CONFIG_BLK_DEV_RAM is not set
 # CONFIG_BLK_DEV_INITRD is not set
+# CONFIG_BLK_STATS is not set
 
 #
 # Multi-device support (RAID and LVM)
@@ -141,7 +241,8 @@
 #
 # Networking options
 #
-# CONFIG_PACKET is not set
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
 # CONFIG_NETLINK_DEV is not set
 # CONFIG_NETFILTER is not set
 # CONFIG_FILTER is not set
@@ -150,7 +251,7 @@
 # CONFIG_IP_MULTICAST is not set
 # CONFIG_IP_ADVANCED_ROUTER is not set
 CONFIG_IP_PNP=y
-# CONFIG_IP_PNP_DHCP is not set
+CONFIG_IP_PNP_DHCP=y
 # CONFIG_IP_PNP_BOOTP is not set
 # CONFIG_IP_PNP_RARP is not set
 # CONFIG_NET_IPIP is not set
@@ -168,6 +269,11 @@
 #
 # CONFIG_IPX is not set
 # CONFIG_ATALK is not set
+
+#
+# Appletalk devices
+#
+# CONFIG_DEV_APPLETALK is not set
 # CONFIG_DECNET is not set
 # CONFIG_BRIDGE is not set
 # CONFIG_X25 is not set
@@ -185,6 +291,11 @@
 # CONFIG_NET_SCHED is not set
 
 #
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+
+#
 # Telephony Support
 #
 # CONFIG_PHONE is not set
@@ -194,81 +305,94 @@
 #
 # ATA/IDE/MFM/RLL support
 #
-# CONFIG_IDE is not set
-# CONFIG_BLK_DEV_IDE_MODES is not set
-# CONFIG_BLK_DEV_HD is not set
+CONFIG_IDE=y
 
 #
-# SCSI support
+# IDE, ATA and ATAPI Block devices
 #
-CONFIG_SCSI=y
+CONFIG_BLK_DEV_IDE=y
 
 #
-# SCSI support type (disk, tape, CD-ROM)
+# Please see Documentation/ide.txt for help/info on IDE drives
 #
-CONFIG_BLK_DEV_SD=y
-CONFIG_SD_EXTRA_DEVS=40
-# CONFIG_CHR_DEV_ST is not set
-# CONFIG_CHR_DEV_OSST is not set
-# CONFIG_BLK_DEV_SR is not set
-# CONFIG_CHR_DEV_SG is not set
+# CONFIG_BLK_DEV_HD_IDE is not set
+# CONFIG_BLK_DEV_HD is not set
+CONFIG_BLK_DEV_IDEDISK=y
+# CONFIG_IDEDISK_MULTI_MODE is not set
+# CONFIG_IDEDISK_STROKE is not set
+# CONFIG_BLK_DEV_IDEDISK_VENDOR is not set
+# CONFIG_BLK_DEV_IDEDISK_FUJITSU is not set
+# CONFIG_BLK_DEV_IDEDISK_IBM is not set
+# CONFIG_BLK_DEV_IDEDISK_MAXTOR is not set
+# CONFIG_BLK_DEV_IDEDISK_QUANTUM is not set
+# CONFIG_BLK_DEV_IDEDISK_SEAGATE is not set
+# CONFIG_BLK_DEV_IDEDISK_WD is not set
+# CONFIG_BLK_DEV_COMMERIAL is not set
+# CONFIG_BLK_DEV_TIVO is not set
+# CONFIG_BLK_DEV_IDECS 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
 
 #
-# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+# IDE chipset support/bugfixes
 #
-# CONFIG_SCSI_DEBUG_QUEUES is not set
-# CONFIG_SCSI_MULTI_LUN is not set
-# CONFIG_SCSI_CONSTANTS is not set
-# CONFIG_SCSI_LOGGING is not set
+CONFIG_BLK_DEV_CMD640=y
+CONFIG_BLK_DEV_CMD640_ENHANCED=y
+# CONFIG_BLK_DEV_ISAPNP is not set
+# CONFIG_BLK_DEV_RZ1000 is not set
+CONFIG_BLK_DEV_IDEPCI=y
+# CONFIG_IDEPCI_SHARE_IRQ is not set
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+# CONFIG_BLK_DEV_OFFBOARD is not set
+# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
+CONFIG_IDEDMA_PCI_AUTO=y
+# CONFIG_IDEDMA_ONLYDISK is not set
+CONFIG_BLK_DEV_IDEDMA=y
+# CONFIG_IDEDMA_PCI_WIP is not set
+# CONFIG_BLK_DEV_IDEDMA_TIMEOUT is not set
+# CONFIG_IDEDMA_NEW_DRIVE_LISTINGS is not set
+CONFIG_BLK_DEV_ADMA=y
+# CONFIG_BLK_DEV_AEC62XX is not set
+# CONFIG_AEC62XX_TUNING is not set
+# CONFIG_BLK_DEV_ALI15X3 is not set
+# CONFIG_WDC_ALI15X3 is not set
+# CONFIG_BLK_DEV_AMD74XX is not set
+# CONFIG_AMD74XX_OVERRIDE is not set
+# CONFIG_BLK_DEV_CMD64X is not set
+# CONFIG_BLK_DEV_CMD680 is not set
+# CONFIG_BLK_DEV_CY82C693 is not set
+# CONFIG_BLK_DEV_CS5530 is not set
+# CONFIG_BLK_DEV_HPT34X is not set
+# CONFIG_HPT34X_AUTODMA is not set
+# CONFIG_BLK_DEV_HPT366 is not set
+# CONFIG_BLK_DEV_PIIX is not set
+# CONFIG_PIIX_TUNING is not set
+# CONFIG_BLK_DEV_NS87415 is not set
+# CONFIG_BLK_DEV_OPTI621 is not set
+# CONFIG_BLK_DEV_PDC202XX is not set
+# CONFIG_PDC202XX_BURST is not set
+# CONFIG_PDC202XX_FORCE is not set
+# CONFIG_BLK_DEV_SVWKS is not set
+# CONFIG_BLK_DEV_SIS5513 is not set
+# CONFIG_BLK_DEV_SLC90E66 is not set
+# CONFIG_BLK_DEV_TRM290 is not set
+# CONFIG_BLK_DEV_VIA82CXXX is not set
+# CONFIG_IDE_CHIPSETS is not set
+CONFIG_IDEDMA_AUTO=y
+# CONFIG_IDEDMA_IVB is not set
+# CONFIG_DMA_NONPCI is not set
+CONFIG_BLK_DEV_IDE_MODES=y
+# CONFIG_BLK_DEV_ATARAID is not set
+# CONFIG_BLK_DEV_ATARAID_PDC is not set
+# CONFIG_BLK_DEV_ATARAID_HPT is not set
 
 #
-# SCSI low-level drivers
+# SCSI support
 #
-# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
-# CONFIG_SCSI_7000FASST is not set
-# CONFIG_SCSI_ACARD is not set
-# CONFIG_SCSI_AHA152X is not set
-# CONFIG_SCSI_AHA1542 is not set
-# CONFIG_SCSI_AHA1740 is not set
-# CONFIG_SCSI_AACRAID is not set
-# CONFIG_SCSI_AIC7XXX is not set
-# CONFIG_SCSI_AIC7XXX_OLD is not set
-# CONFIG_SCSI_DPT_I2O is not set
-# CONFIG_SCSI_ADVANSYS is not set
-# CONFIG_SCSI_IN2000 is not set
-# CONFIG_SCSI_AM53C974 is not set
-# CONFIG_SCSI_MEGARAID is not set
-# CONFIG_SCSI_BUSLOGIC is not set
-# CONFIG_SCSI_CPQFCTS is not set
-# CONFIG_SCSI_DMX3191D is not set
-# CONFIG_SCSI_DTC3280 is not set
-# CONFIG_SCSI_EATA is not set
-# CONFIG_SCSI_EATA_DMA is not set
-# CONFIG_SCSI_EATA_PIO is not set
-# CONFIG_SCSI_FUTURE_DOMAIN is not set
-# CONFIG_SCSI_GDTH is not set
-# CONFIG_SCSI_GENERIC_NCR5380 is not set
-# CONFIG_SCSI_INITIO is not set
-# CONFIG_SCSI_INIA100 is not set
-# CONFIG_SCSI_NCR53C406A is not set
-# CONFIG_SCSI_NCR53C7xx is not set
-# CONFIG_SCSI_SYM53C8XX_2 is not set
-# CONFIG_SCSI_NCR53C8XX is not set
-# CONFIG_SCSI_SYM53C8XX is not set
-# CONFIG_SCSI_PAS16 is not set
-# CONFIG_SCSI_PCI2000 is not set
-# CONFIG_SCSI_PCI2220I is not set
-# CONFIG_SCSI_PSI240I is not set
-# CONFIG_SCSI_QLOGIC_FAS is not set
-# CONFIG_SCSI_QLOGIC_ISP is not set
-# CONFIG_SCSI_QLOGIC_FC is not set
-# CONFIG_SCSI_QLOGIC_1280 is not set
-# CONFIG_SCSI_SIM710 is not set
-# CONFIG_SCSI_SYM53C416 is not set
-# CONFIG_SCSI_DC390T is not set
-# CONFIG_SCSI_T128 is not set
-# CONFIG_SCSI_U14_34F is not set
-# CONFIG_SCSI_DEBUG is not set
+# CONFIG_SCSI is not set
 
 #
 # I2O device support
@@ -311,16 +435,18 @@
 # CONFIG_HP100 is not set
 # CONFIG_NET_ISA is not set
 CONFIG_NET_PCI=y
-CONFIG_PCNET32=y
+# CONFIG_PCNET32 is not set
 # CONFIG_ADAPTEC_STARFIRE is not set
 # CONFIG_APRICOT is not set
 # CONFIG_CS89x0 is not set
-# CONFIG_TULIP is not set
-# CONFIG_TC35815 is not set
+CONFIG_TULIP=y
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
 # CONFIG_DE4X5 is not set
 # CONFIG_DGRS is not set
 # CONFIG_DM9102 is not set
 # CONFIG_EEPRO100 is not set
+# CONFIG_E100 is not set
 # CONFIG_LNE390 is not set
 # CONFIG_FEALNX is not set
 # CONFIG_NATSEMI is not set
@@ -332,11 +458,13 @@
 # CONFIG_8139TOO_PIO is not set
 # CONFIG_8139TOO_TUNE_TWISTER is not set
 # CONFIG_8139TOO_8129 is not set
-# CONFIG_8139_NEW_RX_RESET is not set
+# CONFIG_8139_OLD_RX_RESET is not set
 # CONFIG_SIS900 is not set
 # CONFIG_EPIC100 is not set
 # CONFIG_SUNDANCE is not set
+# CONFIG_SUNDANCE_MMIO is not set
 # CONFIG_TLAN is not set
+# CONFIG_TC35815 is not set
 # CONFIG_VIA_RHINE is not set
 # CONFIG_VIA_RHINE_MMIO is not set
 # CONFIG_WINBOND_840 is not set
@@ -348,11 +476,13 @@
 #
 # CONFIG_ACENIC is not set
 # CONFIG_DL2K is not set
+# CONFIG_E1000 is not set
 # CONFIG_MYRI_SBUS is not set
 # CONFIG_NS83820 is not set
 # CONFIG_HAMACHI is not set
 # CONFIG_YELLOWFIN is not set
 # CONFIG_SK98LIN is not set
+# CONFIG_TIGON3 is not set
 # CONFIG_FDDI is not set
 # CONFIG_HIPPI is not set
 # CONFIG_PLIP is not set
@@ -362,7 +492,18 @@
 #
 # Wireless LAN (non-hamradio)
 #
-# CONFIG_NET_RADIO is not set
+CONFIG_NET_RADIO=y
+# CONFIG_STRIP is not set
+# CONFIG_WAVELAN is not set
+# CONFIG_ARLAN is not set
+# CONFIG_AIRONET4500 is not set
+# CONFIG_AIRONET4500_NONCS is not set
+# CONFIG_AIRONET4500_PROC is not set
+# CONFIG_AIRO is not set
+# CONFIG_HERMES is not set
+# CONFIG_PLX_HERMES is not set
+# CONFIG_PCI_HERMES is not set
+CONFIG_NET_WIRELESS=y
 
 #
 # Token Ring devices
@@ -393,9 +534,13 @@
 # CONFIG_ISDN is not set
 
 #
-# Old CD-ROM drivers (not SCSI, not IDE)
+# Input core support
 #
-# CONFIG_CD_NO_IDESCSI is not set
+# CONFIG_INPUT is not set
+# CONFIG_INPUT_KEYBDEV is not set
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
 
 #
 # Character devices
@@ -405,8 +550,7 @@
 CONFIG_SERIAL_CONSOLE=y
 # CONFIG_SERIAL_EXTENDED is not set
 # CONFIG_SERIAL_NONSTANDARD is not set
-CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
+# CONFIG_UNIX98_PTYS is not set
 
 #
 # I2C support
@@ -437,9 +581,9 @@
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_INTEL_RNG is not set
+# CONFIG_AMD_PM768 is not set
 # CONFIG_NVRAM is not set
-CONFIG_RTC=y
+# CONFIG_RTC is not set
 # CONFIG_DTLK is not set
 # CONFIG_R3964 is not set
 # CONFIG_APPLICOM is not set
@@ -452,15 +596,10 @@
 # CONFIG_DRM is not set
 
 #
-# Multimedia devices
-#
-# CONFIG_VIDEO_DEV is not set
-
-#
 # File systems
 #
 # CONFIG_QUOTA is not set
-CONFIG_AUTOFS_FS=y
+# CONFIG_AUTOFS_FS is not set
 # CONFIG_AUTOFS4_FS is not set
 # CONFIG_REISERFS_FS is not set
 # CONFIG_REISERFS_CHECK is not set
@@ -469,6 +608,8 @@
 # CONFIG_ADFS_FS_RW is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BEFS_DEBUG is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EXT3_FS is not set
 # CONFIG_JBD is not set
@@ -477,15 +618,19 @@
 # CONFIG_MSDOS_FS is not set
 # CONFIG_UMSDOS_FS is not set
 # CONFIG_VFAT_FS is not set
-CONFIG_EFS_FS=y
+# CONFIG_EFS_FS is not set
 # CONFIG_JFFS_FS is not set
-# CONFIG_JFFS2_FS is not set
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_DEBUG=3
 # CONFIG_CRAMFS is not set
 # CONFIG_TMPFS is not set
-# CONFIG_RAMFS is not set
+CONFIG_RAMFS=y
 # CONFIG_ISO9660_FS is not set
 # CONFIG_JOLIET is not set
 # CONFIG_ZISOFS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
 # CONFIG_MINIX_FS is not set
 # CONFIG_VXFS_FS is not set
 # CONFIG_NTFS_FS is not set
@@ -495,7 +640,7 @@
 # CONFIG_DEVFS_FS is not set
 # CONFIG_DEVFS_MOUNT is not set
 # CONFIG_DEVFS_DEBUG is not set
-CONFIG_DEVPTS_FS=y
+# CONFIG_DEVPTS_FS is not set
 # CONFIG_QNX4FS_FS is not set
 # CONFIG_QNX4FS_RW is not set
 # CONFIG_ROMFS_FS is not set
@@ -512,12 +657,14 @@
 # CONFIG_CODA_FS is not set
 # CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=y
-# CONFIG_NFS_V3 is not set
+CONFIG_NFS_V3=y
 CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
+# CONFIG_NFSD_TCP is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
 # CONFIG_SMB_FS is not set
 # CONFIG_NCP_FS is not set
 # CONFIG_NCPFS_PACKET_SIGNING is not set
@@ -529,7 +676,6 @@
 # CONFIG_NCPFS_NLS is not set
 # CONFIG_NCPFS_EXTRAS is not set
 # CONFIG_ZISOFS_FS is not set
-# CONFIG_ZLIB_FS_INFLATE is not set
 
 #
 # Partition Types
@@ -540,6 +686,11 @@
 # CONFIG_NLS is not set
 
 #
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
 # Sound
 #
 # CONFIG_SOUND is not set
@@ -550,119 +701,22 @@
 # CONFIG_USB is not set
 
 #
-# USB Controllers
-#
-# CONFIG_USB_UHCI is not set
-# CONFIG_USB_UHCI_ALT is not set
-# CONFIG_USB_OHCI is not set
-
-#
-# USB Device Class drivers
-#
-# CONFIG_USB_AUDIO is not set
-# CONFIG_USB_BLUETOOTH is not set
-# CONFIG_USB_STORAGE is not set
-# CONFIG_USB_STORAGE_DEBUG is not set
-# CONFIG_USB_STORAGE_DATAFAB is not set
-# CONFIG_USB_STORAGE_FREECOM is not set
-# CONFIG_USB_STORAGE_ISD200 is not set
-# CONFIG_USB_STORAGE_DPCM is not set
-# CONFIG_USB_STORAGE_HP8200e is not set
-# CONFIG_USB_STORAGE_SDDR09 is not set
-# CONFIG_USB_STORAGE_JUMPSHOT is not set
-# CONFIG_USB_ACM is not set
-# CONFIG_USB_PRINTER is not set
-
-#
-# USB Human Interface Devices (HID)
-#
-
-#
-#   Input core support is needed for USB HID
-#
-
-#
-# USB Imaging devices
-#
-# CONFIG_USB_DC2XX is not set
-# CONFIG_USB_MDC800 is not set
-# CONFIG_USB_SCANNER is not set
-# CONFIG_USB_MICROTEK is not set
-# CONFIG_USB_HPUSBSCSI is not set
-
-#
-# USB Multimedia devices
-#
-
-#
-#   Video4Linux support is needed for USB Multimedia device support
-#
-
-#
-# USB Network adaptors
-#
-# CONFIG_USB_PEGASUS is not set
-# CONFIG_USB_KAWETH is not set
-# CONFIG_USB_CATC is not set
-# CONFIG_USB_CDCETHER is not set
-# CONFIG_USB_USBNET is not set
-
-#
-# USB port drivers
-#
-# CONFIG_USB_USS720 is not set
-
-#
-# USB Serial Converter support
-#
-# CONFIG_USB_SERIAL is not set
-# CONFIG_USB_SERIAL_GENERIC is not set
-# CONFIG_USB_SERIAL_BELKIN is not set
-# CONFIG_USB_SERIAL_WHITEHEAT is not set
-# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
-# CONFIG_USB_SERIAL_EMPEG is not set
-# CONFIG_USB_SERIAL_FTDI_SIO is not set
-# CONFIG_USB_SERIAL_VISOR is not set
-# CONFIG_USB_SERIAL_IPAQ is not set
-# CONFIG_USB_SERIAL_IR is not set
-# CONFIG_USB_SERIAL_EDGEPORT is not set
-# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
-# CONFIG_USB_SERIAL_KEYSPAN is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set
-# CONFIG_USB_SERIAL_MCT_U232 is not set
-# CONFIG_USB_SERIAL_KLSI is not set
-# CONFIG_USB_SERIAL_PL2303 is not set
-# CONFIG_USB_SERIAL_CYBERJACK is not set
-# CONFIG_USB_SERIAL_XIRCOM is not set
-# CONFIG_USB_SERIAL_OMNINET is not set
-
-#
-# USB Miscellaneous drivers
-#
-# CONFIG_USB_RIO500 is not set
-
-#
-# Input core support
+# Bluetooth support
 #
-# CONFIG_INPUT is not set
-# CONFIG_INPUT_KEYBDEV is not set
-# CONFIG_INPUT_MOUSEDEV is not set
-# CONFIG_INPUT_JOYDEV is not set
-# CONFIG_INPUT_EVDEV is not set
+# CONFIG_BLUEZ is not set
 
 #
 # Kernel hacking
 #
 CONFIG_CROSSCOMPILE=y
+# CONFIG_DEBUG is not set
 # CONFIG_REMOTE_DEBUG is not set
 # CONFIG_GDB_CONSOLE is not set
-# CONFIG_DEBUG is not set
 # CONFIG_MAGIC_SYSRQ is not set
 # CONFIG_MIPS_UNCACHED is not set
+
+#
+# Library routines
+#
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-ip22 linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-ip22
--- linux-2.4.20/arch/mips/defconfig-ip22	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-ip22	2003-02-24 15:17:03.000000000 -0600
@@ -21,17 +21,22 @@
 # Machine selection
 #
 # CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
 # CONFIG_MIPS_PB1000 is not set
 # CONFIG_MIPS_PB1100 is not set
 # CONFIG_MIPS_PB1500 is not set
-# CONFIG_ALGOR_P4032 is not set
 # CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
 # CONFIG_MIPS_COBALT is not set
 # CONFIG_DECSTATION is not set
 # CONFIG_MIPS_EV64120 is not set
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MAGNUM_4000 is not set
@@ -51,21 +56,22 @@
 # CONFIG_SGI_IP32 is not set
 # CONFIG_SIBYTE_SB1xxx_SOC is not set
 # CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
 # CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
 # CONFIG_ZAO_CAPCELLA is not set
 # CONFIG_HIGHMEM is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
 CONFIG_ARC32=y
-CONFIG_ARC_CONSOLE=y
 CONFIG_ARC_MEMORY=y
+CONFIG_ARC_PROMLIB=y
 CONFIG_BOARD_SCACHE=y
 CONFIG_BOOT_ELF32=y
-CONFIG_SWAP_IO_SPACE=y
+# CONFIG_SWAP_IO_SPACE_W is not set
+CONFIG_SWAP_IO_SPACE_L=y
 CONFIG_IRQ_CPU=y
 CONFIG_L1_CACHE_SHIFT=5
-CONFIG_NONCOHERENT_IO=y
-CONFIG_NEW_IRQ=y
 CONFIG_NEW_TIME_C=y
 CONFIG_NONCOHERENT_IO=y
 CONFIG_PC_KEYB=y
@@ -91,7 +97,6 @@
 # CONFIG_CPU_R10000 is not set
 # CONFIG_CPU_RM7000 is not set
 # CONFIG_CPU_SB1 is not set
-CONFIG_BOARD_SCACHE=y
 # CONFIG_64BIT_PHYS_ADDR is not set
 # CONFIG_CPU_ADVANCED is not set
 CONFIG_CPU_HAS_LLSC=y
@@ -125,6 +130,8 @@
 # CONFIG_BINFMT_AOUT is not set
 CONFIG_BINFMT_ELF=y
 # CONFIG_MIPS32_COMPAT is not set
+# CONFIG_MIPS32_O32 is not set
+# CONFIG_MIPS32_N32 is not set
 # CONFIG_BINFMT_ELF32 is not set
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_PM is not set
@@ -468,6 +475,7 @@
 # CONFIG_MACHZ_WDT is not set
 CONFIG_INDYDOG=y
 # CONFIG_AMD7XX_TCO is not set
+# CONFIG_AMD_PM768 is not set
 # CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_DTLK is not set
@@ -614,8 +622,8 @@
 #
 # SGI devices
 #
-CONFIG_SGI_SERIAL=y
-# CONFIG_SERIAL_CONSOLE is not set
+CONFIG_IP22_SERIAL=y
+# CONFIG_IP22_SERIAL_CONSOLE is not set
 CONFIG_SGI_DS1286=y
 # CONFIG_SGI_NEWPORT_GFX is not set
 
@@ -634,6 +642,8 @@
 #
 CONFIG_CROSSCOMPILE=y
 # CONFIG_DEBUG is not set
+# CONFIG_REMOTE_DEBUG is not set
+# CONFIG_GDB_CONSOLE is not set
 # CONFIG_MAGIC_SYSRQ is not set
 # CONFIG_MIPS_UNCACHED is not set
 
diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-it8172 linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-it8172
--- linux-2.4.20/arch/mips/defconfig-it8172	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-it8172	2003-02-24 15:17:03.000000000 -0600
@@ -3,6 +3,7 @@
 #
 CONFIG_MIPS=y
 CONFIG_MIPS32=y
+# CONFIG_MIPS64 is not set
 
 #
 # Code maturity level options
@@ -10,40 +11,59 @@
 CONFIG_EXPERIMENTAL=y
 
 #
+# Loadable module support
+#
+CONFIG_MODULES=y
+# CONFIG_MODVERSIONS is not set
+CONFIG_KMOD=y
+
+#
 # Machine selection
 #
 # CONFIG_ACER_PICA_61 is not set
-# CONFIG_ALGOR_P4032 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
+# CONFIG_MIPS_PB1000 is not set
+# CONFIG_MIPS_PB1100 is not set
+# CONFIG_MIPS_PB1500 is not set
 # CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
 # CONFIG_MIPS_COBALT is not set
 # CONFIG_DECSTATION is not set
-# CONFIG_DDB5074 is not set
 # CONFIG_MIPS_EV64120 is not set
 # CONFIG_MIPS_EV96100 is not set
+# CONFIG_MIPS_IVR is not set
+# CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
+CONFIG_MIPS_ITE8172=y
+# CONFIG_IT8172_REVC is not set
 # CONFIG_MIPS_ATLAS is not set
-# CONFIG_MIPS_MALTA is not set
-# CONFIG_NINO is not set
-# CONFIG_SIBYTE_SB1250 is not set
 # CONFIG_MIPS_MAGNUM_4000 is not set
+# CONFIG_MIPS_MALTA is not set
+# CONFIG_MIPS_SEAD is not set
 # CONFIG_MOMENCO_OCELOT is not set
+# CONFIG_MOMENCO_OCELOT_G is not set
+# CONFIG_DDB5074 is not set
 # CONFIG_DDB5476 is not set
 # CONFIG_DDB5477 is not set
 # CONFIG_NEC_OSPREY is not set
+# CONFIG_NEC_EAGLE is not set
 # CONFIG_OLIVETTI_M700 is not set
+# CONFIG_NINO is not set
 # CONFIG_SGI_IP22 is not set
+# CONFIG_SGI_IP27 is not set
+# CONFIG_SGI_IP32 is not set
+# CONFIG_SIBYTE_SB1xxx_SOC is not set
 # CONFIG_SNI_RM200_PCI is not set
-CONFIG_MIPS_ITE8172=y
-# CONFIG_IT8172_REVC is not set
-# CONFIG_MIPS_IVR is not set
-# CONFIG_MIPS_PB1000 is not set
-# CONFIG_MIPS_PB1500 is not set
+# CONFIG_TANBAC_TB0226 is not set
 # CONFIG_TOSHIBA_JMR3927 is not set
-# CONFIG_HP_LASERJET is not set
+# CONFIG_VICTOR_MPC30X is not set
+# CONFIG_ZAO_CAPCELLA is not set
 # CONFIG_HIGHMEM is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
-# CONFIG_MCA is not set
-# CONFIG_SBUS is not set
 CONFIG_PCI=y
 CONFIG_IT8712=y
 CONFIG_PC_KEYB=y
@@ -51,58 +71,61 @@
 CONFIG_NONCOHERENT_IO=y
 CONFIG_PCI_AUTO=y
 CONFIG_IT8172_CIR=y
-CONFIG_NEW_IRQ=y
 CONFIG_NEW_TIME_C=y
-# CONFIG_ISA is not set
-# CONFIG_EISA is not set
-
-#
-# Loadable module support
-#
-CONFIG_MODULES=y
-# CONFIG_MODVERSIONS is not set
-CONFIG_KMOD=y
+# CONFIG_MIPS_AU1000 is not set
 
 #
 # CPU selection
 #
+# CONFIG_CPU_MIPS32 is not set
+# CONFIG_CPU_MIPS64 is not set
 # CONFIG_CPU_R3000 is not set
 # CONFIG_CPU_TX39XX is not set
-# CONFIG_CPU_R6000 is not set
 # CONFIG_CPU_VR41XX is not set
 # CONFIG_CPU_R4300 is not set
 # CONFIG_CPU_R4X00 is not set
 # CONFIG_CPU_TX49XX is not set
 # CONFIG_CPU_R5000 is not set
 # CONFIG_CPU_R5432 is not set
-# CONFIG_CPU_RM7000 is not set
+# CONFIG_CPU_R6000 is not set
 CONFIG_CPU_NEVADA=y
+# CONFIG_CPU_R8000 is not set
 # CONFIG_CPU_R10000 is not set
+# CONFIG_CPU_RM7000 is not set
 # CONFIG_CPU_SB1 is not set
-# CONFIG_CPU_MIPS32 is not set
-# CONFIG_CPU_MIPS64 is not set
 # CONFIG_CPU_ADVANCED is not set
 CONFIG_CPU_HAS_LLSC=y
 CONFIG_CPU_HAS_LLDSCD=y
 # CONFIG_CPU_HAS_WB is not set
+CONFIG_CPU_HAS_SYNC=y
 
 #
 # General setup
 #
 CONFIG_CPU_LITTLE_ENDIAN=y
-CONFIG_KCORE_ELF=y
-CONFIG_ELF_KERNEL=y
-# CONFIG_BINFMT_AOUT is not set
-CONFIG_BINFMT_ELF=y
-# CONFIG_BINFMT_MISC is not set
 CONFIG_NET=y
 CONFIG_PCI_NAMES=y
+# CONFIG_ISA is not set
+# CONFIG_EISA is not set
+# CONFIG_TC is not set
+# CONFIG_MCA is not set
+# CONFIG_SBUS is not set
 # CONFIG_HOTPLUG is not set
 # CONFIG_PCMCIA is not set
 # CONFIG_HOTPLUG_PCI is not set
 CONFIG_SYSVIPC=y
 CONFIG_BSD_PROCESS_ACCT=y
 CONFIG_SYSCTL=y
+CONFIG_KCORE_ELF=y
+# CONFIG_KCORE_AOUT is not set
+# CONFIG_BINFMT_AOUT is not set
+CONFIG_BINFMT_ELF=y
+# CONFIG_MIPS32_COMPAT is not set
+# CONFIG_MIPS32_O32 is not set
+# CONFIG_MIPS32_N32 is not set
+# CONFIG_BINFMT_ELF32 is not set
+# CONFIG_BINFMT_MISC is not set
+# CONFIG_PM is not set
 
 #
 # Memory Technology Devices (MTD)
@@ -110,6 +133,7 @@
 CONFIG_MTD=y
 # CONFIG_MTD_DEBUG is not set
 # CONFIG_MTD_PARTITIONS is not set
+# CONFIG_MTD_CONCAT is not set
 # CONFIG_MTD_REDBOOT_PARTS is not set
 
 #
@@ -147,8 +171,12 @@
 CONFIG_MTD_PHYSMAP_BUSWIDTH=4
 # CONFIG_MTD_PB1000 is not set
 # CONFIG_MTD_PB1500 is not set
+# CONFIG_MTD_PB1100 is not set
+# CONFIG_MTD_DB1X00 is not set
 # CONFIG_MTD_CSTM_MIPS_IXX is not set
 # CONFIG_MTD_OCELOT is not set
+# CONFIG_MTD_LASAT is not set
+# CONFIG_MTD_PCI is not set
 
 #
 # Self-contained MTD device drivers
@@ -177,6 +205,12 @@
 # CONFIG_PARPORT is not set
 
 #
+# Plug and Play configuration
+#
+# CONFIG_PNP is not set
+# CONFIG_ISAPNP is not set
+
+#
 # Block devices
 #
 # CONFIG_BLK_DEV_FD is not set
@@ -184,11 +218,14 @@
 # CONFIG_PARIDE is not set
 # CONFIG_BLK_CPQ_DA is not set
 # CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_CISS_SCSI_TAPE is not set
 # CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
 CONFIG_BLK_DEV_LOOP=y
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
 # CONFIG_BLK_DEV_INITRD is not set
+# CONFIG_BLK_STATS is not set
 
 #
 # Multi-device support (RAID and LVM)
@@ -233,6 +270,11 @@
 #
 # CONFIG_IPX is not set
 # CONFIG_ATALK is not set
+
+#
+# Appletalk devices
+#
+# CONFIG_DEV_APPLETALK is not set
 # CONFIG_DECNET is not set
 # CONFIG_BRIDGE is not set
 # CONFIG_X25 is not set
@@ -250,6 +292,11 @@
 # CONFIG_NET_SCHED is not set
 
 #
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+
+#
 # Telephony Support
 #
 # CONFIG_PHONE is not set
@@ -273,6 +320,7 @@
 # CONFIG_BLK_DEV_HD is not set
 CONFIG_BLK_DEV_IDEDISK=y
 # CONFIG_IDEDISK_MULTI_MODE is not set
+# CONFIG_IDEDISK_STROKE is not set
 # CONFIG_BLK_DEV_IDEDISK_VENDOR is not set
 # CONFIG_BLK_DEV_IDEDISK_FUJITSU is not set
 # CONFIG_BLK_DEV_IDEDISK_IBM is not set
@@ -287,6 +335,7 @@
 # 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
 
 #
 # IDE chipset support/bugfixes
@@ -298,12 +347,15 @@
 CONFIG_BLK_DEV_IDEPCI=y
 CONFIG_IDEPCI_SHARE_IRQ=y
 CONFIG_BLK_DEV_IDEDMA_PCI=y
-CONFIG_BLK_DEV_ADMA=y
 # CONFIG_BLK_DEV_OFFBOARD is not set
+# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
 CONFIG_IDEDMA_PCI_AUTO=y
+# CONFIG_IDEDMA_ONLYDISK is not set
 CONFIG_BLK_DEV_IDEDMA=y
 # CONFIG_IDEDMA_PCI_WIP is not set
+# CONFIG_BLK_DEV_IDEDMA_TIMEOUT is not set
 # CONFIG_IDEDMA_NEW_DRIVE_LISTINGS is not set
+CONFIG_BLK_DEV_ADMA=y
 # CONFIG_BLK_DEV_AEC62XX is not set
 # CONFIG_AEC62XX_TUNING is not set
 # CONFIG_BLK_DEV_ALI15X3 is not set
@@ -311,13 +363,14 @@
 # CONFIG_BLK_DEV_AMD74XX is not set
 # CONFIG_AMD74XX_OVERRIDE is not set
 # CONFIG_BLK_DEV_CMD64X is not set
+# CONFIG_BLK_DEV_CMD680 is not set
 # CONFIG_BLK_DEV_CY82C693 is not set
 # CONFIG_BLK_DEV_CS5530 is not set
 # CONFIG_BLK_DEV_HPT34X is not set
 # CONFIG_HPT34X_AUTODMA is not set
 # CONFIG_BLK_DEV_HPT366 is not set
-CONFIG_BLK_DEV_IT8172=y
-CONFIG_IT8172_TUNING=y
+# CONFIG_BLK_DEV_PIIX is not set
+# CONFIG_PIIX_TUNING is not set
 CONFIG_BLK_DEV_IT8172=y
 CONFIG_IT8172_TUNING=y
 # CONFIG_BLK_DEV_NS87415 is not set
@@ -330,18 +383,7 @@
 # CONFIG_BLK_DEV_SLC90E66 is not set
 # CONFIG_BLK_DEV_TRM290 is not set
 # CONFIG_BLK_DEV_VIA82CXXX is not set
-CONFIG_IDE_CHIPSETS=y
-
-#
-# Note: most of these also require special kernel boot parameters
-#
-# CONFIG_BLK_DEV_4DRIVES is not set
-# CONFIG_BLK_DEV_ALI14XX is not set
-# CONFIG_BLK_DEV_DTC2278 is not set
-# CONFIG_BLK_DEV_HT6560B is not set
-# CONFIG_BLK_DEV_PDC4030 is not set
-# CONFIG_BLK_DEV_QD65XX is not set
-# CONFIG_BLK_DEV_UMC8672 is not set
+# CONFIG_IDE_CHIPSETS is not set
 CONFIG_IDEDMA_AUTO=y
 # CONFIG_IDEDMA_IVB is not set
 # CONFIG_DMA_NONPCI is not set
@@ -401,13 +443,13 @@
 # CONFIG_APRICOT is not set
 # CONFIG_CS89x0 is not set
 CONFIG_TULIP=y
-# CONFIG_TC35815 is not set
 # CONFIG_TULIP_MWI is not set
 # CONFIG_TULIP_MMIO is not set
 # CONFIG_DE4X5 is not set
 # CONFIG_DGRS is not set
 # CONFIG_DM9102 is not set
 # CONFIG_EEPRO100 is not set
+# CONFIG_E100 is not set
 # CONFIG_LNE390 is not set
 # CONFIG_FEALNX is not set
 # CONFIG_NATSEMI is not set
@@ -419,11 +461,13 @@
 # CONFIG_8139TOO_PIO is not set
 # CONFIG_8139TOO_TUNE_TWISTER is not set
 # CONFIG_8139TOO_8129 is not set
-# CONFIG_8139_NEW_RX_RESET is not set
+# CONFIG_8139_OLD_RX_RESET is not set
 # CONFIG_SIS900 is not set
 # CONFIG_EPIC100 is not set
 # CONFIG_SUNDANCE is not set
+# CONFIG_SUNDANCE_MMIO is not set
 # CONFIG_TLAN is not set
+# CONFIG_TC35815 is not set
 # CONFIG_VIA_RHINE is not set
 # CONFIG_VIA_RHINE_MMIO is not set
 # CONFIG_WINBOND_840 is not set
@@ -435,11 +479,13 @@
 #
 # CONFIG_ACENIC is not set
 # CONFIG_DL2K is not set
+# CONFIG_E1000 is not set
 # CONFIG_MYRI_SBUS is not set
 # CONFIG_NS83820 is not set
 # CONFIG_HAMACHI is not set
 # CONFIG_YELLOWFIN is not set
 # CONFIG_SK98LIN is not set
+# CONFIG_TIGON3 is not set
 # CONFIG_FDDI is not set
 # CONFIG_HIPPI is not set
 # CONFIG_PLIP is not set
@@ -480,9 +526,13 @@
 # CONFIG_ISDN is not set
 
 #
-# Old CD-ROM drivers (not SCSI, not IDE)
+# Input core support
 #
-# CONFIG_CD_NO_IDESCSI is not set
+# CONFIG_INPUT is not set
+# CONFIG_INPUT_KEYBDEV is not set
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
 
 #
 # Character devices
@@ -528,7 +578,7 @@
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_INTEL_RNG is not set
+# CONFIG_AMD_PM768 is not set
 # CONFIG_NVRAM is not set
 CONFIG_RTC=y
 # CONFIG_DTLK is not set
@@ -544,11 +594,6 @@
 # CONFIG_ITE_GPIO is not set
 
 #
-# Multimedia devices
-#
-# CONFIG_VIDEO_DEV is not set
-
-#
 # File systems
 #
 # CONFIG_QUOTA is not set
@@ -561,6 +606,8 @@
 # CONFIG_ADFS_FS_RW is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BEFS_DEBUG is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EXT3_FS is not set
 # CONFIG_JBD is not set
@@ -574,10 +621,13 @@
 # CONFIG_JFFS2_FS is not set
 # CONFIG_CRAMFS is not set
 # CONFIG_TMPFS is not set
-# CONFIG_RAMFS is not set
+CONFIG_RAMFS=y
 # CONFIG_ISO9660_FS is not set
 # CONFIG_JOLIET is not set
 # CONFIG_ZISOFS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
 # CONFIG_MINIX_FS is not set
 # CONFIG_VXFS_FS is not set
 # CONFIG_NTFS_FS is not set
@@ -608,6 +658,7 @@
 CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
+# CONFIG_NFSD_TCP is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
 # CONFIG_SMB_FS is not set
@@ -621,7 +672,6 @@
 # CONFIG_NCPFS_NLS is not set
 # CONFIG_NCPFS_EXTRAS is not set
 # CONFIG_ZISOFS_FS is not set
-# CONFIG_ZLIB_FS_INFLATE is not set
 
 #
 # Partition Types
@@ -632,9 +682,15 @@
 # CONFIG_NLS is not set
 
 #
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
 # Sound
 #
 CONFIG_SOUND=y
+# CONFIG_SOUND_ALI5455 is not set
 # CONFIG_SOUND_BT878 is not set
 # CONFIG_SOUND_CMPCI is not set
 # CONFIG_SOUND_EMU10K1 is not set
@@ -646,11 +702,11 @@
 # CONFIG_SOUND_ESSSOLO1 is not set
 # CONFIG_SOUND_MAESTRO is not set
 # CONFIG_SOUND_MAESTRO3 is not set
+# CONFIG_SOUND_FORTE is not set
 # CONFIG_SOUND_ICH is not set
 CONFIG_SOUND_IT8172=y
 # CONFIG_SOUND_RME96XX is not set
 # CONFIG_SOUND_SONICVIBES is not set
-# CONFIG_SOUND_HAL2 is not set
 CONFIG_SOUND_IT8172=y
 # CONFIG_SOUND_TRIDENT is not set
 # CONFIG_SOUND_MSNDCLAS is not set
@@ -666,123 +722,22 @@
 # CONFIG_USB is not set
 
 #
-# USB Controllers
-#
-# CONFIG_USB_UHCI is not set
-# CONFIG_USB_UHCI_ALT is not set
-# CONFIG_USB_OHCI is not set
-
-#
-# USB Device Class drivers
-#
-# CONFIG_USB_AUDIO is not set
-# CONFIG_USB_BLUETOOTH is not set
-
-#
-#   SCSI support is needed for USB Storage
-#
-# CONFIG_USB_STORAGE is not set
-# CONFIG_USB_STORAGE_DEBUG is not set
-# CONFIG_USB_STORAGE_DATAFAB is not set
-# CONFIG_USB_STORAGE_FREECOM is not set
-# CONFIG_USB_STORAGE_ISD200 is not set
-# CONFIG_USB_STORAGE_DPCM is not set
-# CONFIG_USB_STORAGE_HP8200e is not set
-# CONFIG_USB_STORAGE_SDDR09 is not set
-# CONFIG_USB_STORAGE_JUMPSHOT is not set
-# CONFIG_USB_ACM is not set
-# CONFIG_USB_PRINTER is not set
-
-#
-# USB Human Interface Devices (HID)
-#
-
-#
-#   Input core support is needed for USB HID
-#
-
-#
-# USB Imaging devices
-#
-# CONFIG_USB_DC2XX is not set
-# CONFIG_USB_MDC800 is not set
-# CONFIG_USB_SCANNER is not set
-# CONFIG_USB_MICROTEK is not set
-# CONFIG_USB_HPUSBSCSI is not set
-
-#
-# USB Multimedia devices
-#
-
-#
-#   Video4Linux support is needed for USB Multimedia device support
-#
-
-#
-# USB Network adaptors
-#
-# CONFIG_USB_PEGASUS is not set
-# CONFIG_USB_KAWETH is not set
-# CONFIG_USB_CATC is not set
-# CONFIG_USB_CDCETHER is not set
-# CONFIG_USB_USBNET is not set
-
-#
-# USB port drivers
-#
-# CONFIG_USB_USS720 is not set
-
-#
-# USB Serial Converter support
-#
-# CONFIG_USB_SERIAL is not set
-# CONFIG_USB_SERIAL_GENERIC is not set
-# CONFIG_USB_SERIAL_BELKIN is not set
-# CONFIG_USB_SERIAL_WHITEHEAT is not set
-# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
-# CONFIG_USB_SERIAL_EMPEG is not set
-# CONFIG_USB_SERIAL_FTDI_SIO is not set
-# CONFIG_USB_SERIAL_VISOR is not set
-# CONFIG_USB_SERIAL_IPAQ is not set
-# CONFIG_USB_SERIAL_IR is not set
-# CONFIG_USB_SERIAL_EDGEPORT is not set
-# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
-# CONFIG_USB_SERIAL_KEYSPAN is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set
-# CONFIG_USB_SERIAL_MCT_U232 is not set
-# CONFIG_USB_SERIAL_KLSI is not set
-# CONFIG_USB_SERIAL_PL2303 is not set
-# CONFIG_USB_SERIAL_CYBERJACK is not set
-# CONFIG_USB_SERIAL_XIRCOM is not set
-# CONFIG_USB_SERIAL_OMNINET is not set
-
-#
-# USB Miscellaneous drivers
-#
-# CONFIG_USB_RIO500 is not set
-
-#
-# Input core support
+# Bluetooth support
 #
-# CONFIG_INPUT is not set
-# CONFIG_INPUT_KEYBDEV is not set
-# CONFIG_INPUT_MOUSEDEV is not set
-# CONFIG_INPUT_JOYDEV is not set
-# CONFIG_INPUT_EVDEV is not set
+# CONFIG_BLUEZ is not set
 
 #
 # Kernel hacking
 #
 CONFIG_CROSSCOMPILE=y
+# CONFIG_DEBUG is not set
 # CONFIG_REMOTE_DEBUG is not set
 # CONFIG_GDB_CONSOLE is not set
-# CONFIG_DEBUG is not set
 # CONFIG_MAGIC_SYSRQ is not set
 # CONFIG_MIPS_UNCACHED is not set
+
+#
+# Library routines
+#
+# CONFIG_ZLIB_INFLATE is not set
+# CONFIG_ZLIB_DEFLATE is not set
diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-ivr linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-ivr
--- linux-2.4.20/arch/mips/defconfig-ivr	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-ivr	2003-02-24 15:17:03.000000000 -0600
@@ -3,6 +3,7 @@
 #
 CONFIG_MIPS=y
 CONFIG_MIPS32=y
+# CONFIG_MIPS64 is not set
 
 #
 # Code maturity level options
@@ -20,31 +21,45 @@
 # Machine selection
 #
 # CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
 # CONFIG_MIPS_PB1000 is not set
+# CONFIG_MIPS_PB1100 is not set
 # CONFIG_MIPS_PB1500 is not set
-# CONFIG_ALGOR_P4032 is not set
 # CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
 # CONFIG_MIPS_COBALT is not set
 # CONFIG_DECSTATION is not set
 # CONFIG_MIPS_EV64120 is not set
 # CONFIG_MIPS_EV96100 is not set
 CONFIG_MIPS_IVR=y
 # CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MAGNUM_4000 is not set
 # CONFIG_MIPS_MALTA is not set
+# CONFIG_MIPS_SEAD is not set
 # CONFIG_MOMENCO_OCELOT is not set
+# CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_DDB5074 is not set
 # CONFIG_DDB5476 is not set
 # CONFIG_DDB5477 is not set
 # CONFIG_NEC_OSPREY is not set
+# CONFIG_NEC_EAGLE is not set
 # CONFIG_OLIVETTI_M700 is not set
 # CONFIG_NINO is not set
 # CONFIG_SGI_IP22 is not set
-# CONFIG_SIBYTE_SB1250 is not set
+# CONFIG_SGI_IP27 is not set
+# CONFIG_SGI_IP32 is not set
+# CONFIG_SIBYTE_SB1xxx_SOC is not set
 # CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
 # CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
+# CONFIG_ZAO_CAPCELLA is not set
 # CONFIG_HIGHMEM is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
@@ -54,32 +69,33 @@
 CONFIG_NONCOHERENT_IO=y
 CONFIG_PCI_AUTO=y
 CONFIG_IT8172_CIR=y
-CONFIG_NEW_IRQ=y
 CONFIG_NEW_TIME_C=y
 # CONFIG_MIPS_AU1000 is not set
 
 #
 # CPU selection
 #
+# CONFIG_CPU_MIPS32 is not set
+# CONFIG_CPU_MIPS64 is not set
 # CONFIG_CPU_R3000 is not set
 # CONFIG_CPU_TX39XX is not set
-# CONFIG_CPU_R6000 is not set
 # CONFIG_CPU_VR41XX is not set
 # CONFIG_CPU_R4300 is not set
 # CONFIG_CPU_R4X00 is not set
 # CONFIG_CPU_TX49XX is not set
 # CONFIG_CPU_R5000 is not set
 # CONFIG_CPU_R5432 is not set
-# CONFIG_CPU_RM7000 is not set
+# CONFIG_CPU_R6000 is not set
 CONFIG_CPU_NEVADA=y
+# CONFIG_CPU_R8000 is not set
 # CONFIG_CPU_R10000 is not set
+# CONFIG_CPU_RM7000 is not set
 # CONFIG_CPU_SB1 is not set
-# CONFIG_CPU_MIPS32 is not set
-# CONFIG_CPU_MIPS64 is not set
 # CONFIG_CPU_ADVANCED is not set
 CONFIG_CPU_HAS_LLSC=y
 CONFIG_CPU_HAS_LLDSCD=y
 # CONFIG_CPU_HAS_WB is not set
+CONFIG_CPU_HAS_SYNC=y
 
 #
 # General setup
@@ -102,6 +118,10 @@
 # CONFIG_KCORE_AOUT is not set
 # CONFIG_BINFMT_AOUT is not set
 CONFIG_BINFMT_ELF=y
+# CONFIG_MIPS32_COMPAT is not set
+# CONFIG_MIPS32_O32 is not set
+# CONFIG_MIPS32_N32 is not set
+# CONFIG_BINFMT_ELF32 is not set
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_PM is not set
 
@@ -136,6 +156,7 @@
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
 # CONFIG_BLK_DEV_INITRD is not set
+# CONFIG_BLK_STATS is not set
 
 #
 # Multi-device support (RAID and LVM)
@@ -279,8 +300,8 @@
 # CONFIG_BLK_DEV_HPT34X is not set
 # CONFIG_HPT34X_AUTODMA is not set
 # CONFIG_BLK_DEV_HPT366 is not set
-CONFIG_BLK_DEV_IT8172=y
-CONFIG_IT8172_TUNING=y
+# CONFIG_BLK_DEV_PIIX is not set
+# CONFIG_PIIX_TUNING is not set
 CONFIG_BLK_DEV_IT8172=y
 CONFIG_IT8172_TUNING=y
 # CONFIG_BLK_DEV_NS87415 is not set
@@ -353,13 +374,13 @@
 # CONFIG_APRICOT is not set
 # CONFIG_CS89x0 is not set
 CONFIG_TULIP=y
-# CONFIG_TC35815 is not set
 # CONFIG_TULIP_MWI is not set
 # CONFIG_TULIP_MMIO is not set
 # CONFIG_DE4X5 is not set
 # CONFIG_DGRS is not set
 # CONFIG_DM9102 is not set
 # CONFIG_EEPRO100 is not set
+# CONFIG_E100 is not set
 # CONFIG_LNE390 is not set
 # CONFIG_FEALNX is not set
 # CONFIG_NATSEMI is not set
@@ -371,11 +392,13 @@
 # CONFIG_8139TOO_PIO is not set
 # CONFIG_8139TOO_TUNE_TWISTER is not set
 # CONFIG_8139TOO_8129 is not set
-# CONFIG_8139_NEW_RX_RESET is not set
+# CONFIG_8139_OLD_RX_RESET is not set
 # CONFIG_SIS900 is not set
 # CONFIG_EPIC100 is not set
 # CONFIG_SUNDANCE is not set
+# CONFIG_SUNDANCE_MMIO is not set
 # CONFIG_TLAN is not set
+# CONFIG_TC35815 is not set
 # CONFIG_VIA_RHINE is not set
 # CONFIG_VIA_RHINE_MMIO is not set
 # CONFIG_WINBOND_840 is not set
@@ -387,6 +410,7 @@
 #
 # CONFIG_ACENIC is not set
 # CONFIG_DL2K is not set
+# CONFIG_E1000 is not set
 # CONFIG_MYRI_SBUS is not set
 # CONFIG_NS83820 is not set
 # CONFIG_HAMACHI is not set
@@ -433,6 +457,17 @@
 # CONFIG_ISDN is not set
 
 #
+# Input core support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_KEYBDEV=y
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+
+#
 # Character devices
 #
 CONFIG_VT=y
@@ -498,6 +533,7 @@
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
+# CONFIG_AMD_PM768 is not set
 # CONFIG_NVRAM is not set
 CONFIG_RTC=y
 # CONFIG_DTLK is not set
@@ -512,11 +548,6 @@
 # CONFIG_DRM is not set
 
 #
-# Multimedia devices
-#
-# CONFIG_VIDEO_DEV is not set
-
-#
 # File systems
 #
 # CONFIG_QUOTA is not set
@@ -529,6 +560,8 @@
 # CONFIG_ADFS_FS_RW is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BEFS_DEBUG is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EXT3_FS is not set
 # CONFIG_JBD is not set
@@ -546,6 +579,9 @@
 # CONFIG_ISO9660_FS is not set
 # CONFIG_JOLIET is not set
 # CONFIG_ZISOFS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
 # CONFIG_MINIX_FS is not set
 # CONFIG_VXFS_FS is not set
 # CONFIG_NTFS_FS is not set
@@ -576,6 +612,7 @@
 CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
+# CONFIG_NFSD_TCP is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
 # CONFIG_SMB_FS is not set
@@ -589,7 +626,6 @@
 # CONFIG_NCPFS_NLS is not set
 # CONFIG_NCPFS_EXTRAS is not set
 # CONFIG_ZISOFS_FS is not set
-# CONFIG_ZLIB_FS_INFLATE is not set
 
 #
 # Partition Types
@@ -600,6 +636,11 @@
 # CONFIG_NLS is not set
 
 #
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
 # Console drivers
 #
 # CONFIG_VGA_CONSOLE is not set
@@ -642,6 +683,7 @@
 # CONFIG_USB_AUDIO is not set
 # CONFIG_USB_EMI26 is not set
 # CONFIG_USB_BLUETOOTH is not set
+# CONFIG_USB_MIDI is not set
 
 #
 #   SCSI support is needed for USB Storage
@@ -654,6 +696,7 @@
 # CONFIG_USB_STORAGE_DPCM is not set
 # CONFIG_USB_STORAGE_HP8200e is not set
 # CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
 # CONFIG_USB_STORAGE_JUMPSHOT is not set
 # CONFIG_USB_ACM is not set
 # CONFIG_USB_PRINTER is not set
@@ -664,6 +707,7 @@
 CONFIG_USB_HID=y
 # CONFIG_USB_HIDINPUT is not set
 # CONFIG_USB_HIDDEV is not set
+# CONFIG_USB_AIPTEK is not set
 # CONFIG_USB_WACOM is not set
 
 #
@@ -702,39 +746,15 @@
 # USB Serial Converter support
 #
 # CONFIG_USB_SERIAL is not set
-# CONFIG_USB_SERIAL_GENERIC is not set
-# CONFIG_USB_SERIAL_BELKIN is not set
-# CONFIG_USB_SERIAL_WHITEHEAT is not set
-# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
-# CONFIG_USB_SERIAL_EMPEG is not set
-# CONFIG_USB_SERIAL_FTDI_SIO is not set
-# CONFIG_USB_SERIAL_VISOR is not set
-# CONFIG_USB_SERIAL_IPAQ is not set
-# CONFIG_USB_SERIAL_IR is not set
-# CONFIG_USB_SERIAL_EDGEPORT is not set
-# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
-# CONFIG_USB_SERIAL_KEYSPAN is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set
-# CONFIG_USB_SERIAL_MCT_U232 is not set
-# CONFIG_USB_SERIAL_KLSI is not set
-# CONFIG_USB_SERIAL_PL2303 is not set
-# CONFIG_USB_SERIAL_CYBERJACK is not set
-# CONFIG_USB_SERIAL_XIRCOM is not set
-# CONFIG_USB_SERIAL_OMNINET is not set
 
 #
 # USB Miscellaneous drivers
 #
 # CONFIG_USB_RIO500 is not set
 # CONFIG_USB_AUERSWALD is not set
+# CONFIG_USB_TIGL is not set
 # CONFIG_USB_BRLVGER is not set
+# CONFIG_USB_LCD is not set
 
 #
 # Bluetooth support
@@ -742,22 +762,17 @@
 # CONFIG_BLUEZ is not set
 
 #
-# Input core support
-#
-CONFIG_INPUT=y
-CONFIG_INPUT_KEYBDEV=y
-CONFIG_INPUT_MOUSEDEV=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-# CONFIG_INPUT_JOYDEV is not set
-# CONFIG_INPUT_EVDEV is not set
-
-#
 # Kernel hacking
 #
 CONFIG_CROSSCOMPILE=y
+# CONFIG_DEBUG is not set
 # CONFIG_REMOTE_DEBUG is not set
 # CONFIG_GDB_CONSOLE is not set
-# CONFIG_DEBUG is not set
 # CONFIG_MAGIC_SYSRQ is not set
 # CONFIG_MIPS_UNCACHED is not set
+
+#
+# Library routines
+#
+# CONFIG_ZLIB_INFLATE is not set
+# CONFIG_ZLIB_DEFLATE is not set
diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-jmr3927 linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-jmr3927
--- linux-2.4.20/arch/mips/defconfig-jmr3927	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-jmr3927	2003-02-24 15:17:03.000000000 -0600
@@ -3,6 +3,7 @@
 #
 CONFIG_MIPS=y
 CONFIG_MIPS32=y
+# CONFIG_MIPS64 is not set
 
 #
 # Code maturity level options
@@ -10,99 +11,122 @@
 CONFIG_EXPERIMENTAL=y
 
 #
+# Loadable module support
+#
+# CONFIG_MODULES is not set
+
+#
 # Machine selection
 #
 # CONFIG_ACER_PICA_61 is not set
-# CONFIG_ALGOR_P4032 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
+# CONFIG_MIPS_PB1000 is not set
+# CONFIG_MIPS_PB1100 is not set
+# CONFIG_MIPS_PB1500 is not set
 # CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
 # CONFIG_MIPS_COBALT is not set
 # CONFIG_DECSTATION is not set
-# CONFIG_DDB5074 is not set
 # CONFIG_MIPS_EV64120 is not set
 # CONFIG_MIPS_EV96100 is not set
+# CONFIG_MIPS_IVR is not set
+# CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
+# CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
-# CONFIG_MIPS_MALTA is not set
-# CONFIG_NINO is not set
-# CONFIG_SIBYTE_SB1250 is not set
 # CONFIG_MIPS_MAGNUM_4000 is not set
+# CONFIG_MIPS_MALTA is not set
+# CONFIG_MIPS_SEAD is not set
 # CONFIG_MOMENCO_OCELOT is not set
+# CONFIG_MOMENCO_OCELOT_G is not set
+# CONFIG_DDB5074 is not set
 # CONFIG_DDB5476 is not set
 # CONFIG_DDB5477 is not set
 # CONFIG_NEC_OSPREY is not set
+# CONFIG_NEC_EAGLE is not set
 # CONFIG_OLIVETTI_M700 is not set
+# CONFIG_NINO is not set
 # CONFIG_SGI_IP22 is not set
+# CONFIG_SGI_IP27 is not set
+# CONFIG_SGI_IP32 is not set
+# CONFIG_SIBYTE_SB1xxx_SOC is not set
 # CONFIG_SNI_RM200_PCI is not set
-# CONFIG_MIPS_ITE8172 is not set
-# CONFIG_MIPS_IVR is not set
-# CONFIG_MIPS_PB1000 is not set
-# CONFIG_MIPS_PB1500 is not set
+# CONFIG_TANBAC_TB0226 is not set
 CONFIG_TOSHIBA_JMR3927=y
-# CONFIG_HP_LASERJET is not set
+# CONFIG_VICTOR_MPC30X is not set
+# CONFIG_ZAO_CAPCELLA is not set
 # CONFIG_HIGHMEM is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
-# CONFIG_MCA is not set
-# CONFIG_SBUS is not set
-CONFIG_NONCOHERENT_IO=y
 CONFIG_TOSHIBA_BOARDS=y
 CONFIG_PCI=y
 CONFIG_NEW_PCI=y
 CONFIG_PCI_AUTO=y
-CONFIG_NEW_IRQ=y
 CONFIG_NEW_TIME_C=y
-CONFIG_SWAP_IO_SPACE=y
+CONFIG_NONCOHERENT_IO=y
+CONFIG_SWAP_IO_SPACE_W=y
+CONFIG_SWAP_IO_SPACE_L=y
 CONFIG_PC_KEYB=y
-# CONFIG_ISA is not set
-# CONFIG_EISA is not set
-
-#
-# Loadable module support
-#
-# CONFIG_MODULES is not set
+# CONFIG_MIPS_AU1000 is not set
 
 #
 # CPU selection
 #
+# CONFIG_CPU_MIPS32 is not set
+# CONFIG_CPU_MIPS64 is not set
 # CONFIG_CPU_R3000 is not set
 CONFIG_CPU_TX39XX=y
-# CONFIG_CPU_R6000 is not set
 # CONFIG_CPU_VR41XX is not set
 # CONFIG_CPU_R4300 is not set
 # CONFIG_CPU_R4X00 is not set
 # CONFIG_CPU_TX49XX is not set
 # CONFIG_CPU_R5000 is not set
 # CONFIG_CPU_R5432 is not set
-# CONFIG_CPU_RM7000 is not set
+# CONFIG_CPU_R6000 is not set
 # CONFIG_CPU_NEVADA is not set
+# CONFIG_CPU_R8000 is not set
 # CONFIG_CPU_R10000 is not set
+# CONFIG_CPU_RM7000 is not set
 # CONFIG_CPU_SB1 is not set
-# CONFIG_CPU_MIPS32 is not set
-# CONFIG_CPU_MIPS64 is not set
 # CONFIG_CPU_ADVANCED is not set
 # CONFIG_CPU_HAS_LLSC is not set
 # CONFIG_CPU_HAS_LLDSCD is not set
 # CONFIG_CPU_HAS_WB is not set
+CONFIG_CPU_HAS_SYNC=y
 
 #
 # General setup
 #
 # CONFIG_CPU_LITTLE_ENDIAN is not set
 CONFIG_RTC_DS1742=y
-CONFIG_KCORE_ELF=y
-CONFIG_ELF_KERNEL=y
 # CONFIG_BINFMT_IRIX is not set
 # CONFIG_FORWARD_KEYBOARD is not set
-# CONFIG_BINFMT_AOUT is not set
-CONFIG_BINFMT_ELF=y
-# CONFIG_BINFMT_MISC is not set
 CONFIG_NET=y
 # CONFIG_PCI_NAMES is not set
+# CONFIG_ISA is not set
+# CONFIG_EISA is not set
+# CONFIG_TC is not set
+# CONFIG_MCA is not set
+# CONFIG_SBUS is not set
 # CONFIG_HOTPLUG is not set
 # CONFIG_PCMCIA is not set
 # CONFIG_HOTPLUG_PCI is not set
 CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
+CONFIG_KCORE_ELF=y
+# CONFIG_KCORE_AOUT is not set
+# CONFIG_BINFMT_AOUT is not set
+CONFIG_BINFMT_ELF=y
+# CONFIG_MIPS32_COMPAT is not set
+# CONFIG_MIPS32_O32 is not set
+# CONFIG_MIPS32_N32 is not set
+# CONFIG_BINFMT_ELF32 is not set
+# CONFIG_BINFMT_MISC is not set
+# CONFIG_PM is not set
 
 #
 # Memory Technology Devices (MTD)
@@ -115,6 +139,12 @@
 # CONFIG_PARPORT is not set
 
 #
+# Plug and Play configuration
+#
+# CONFIG_PNP is not set
+# CONFIG_ISAPNP is not set
+
+#
 # Block devices
 #
 # CONFIG_BLK_DEV_FD is not set
@@ -122,11 +152,14 @@
 # CONFIG_PARIDE is not set
 # CONFIG_BLK_CPQ_DA is not set
 # CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_CISS_SCSI_TAPE is not set
 # CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
 # CONFIG_BLK_DEV_LOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
 # CONFIG_BLK_DEV_INITRD is not set
+# CONFIG_BLK_STATS is not set
 
 #
 # Multi-device support (RAID and LVM)
@@ -171,6 +204,11 @@
 #
 # CONFIG_IPX is not set
 # CONFIG_ATALK is not set
+
+#
+# Appletalk devices
+#
+# CONFIG_DEV_APPLETALK is not set
 # CONFIG_DECNET is not set
 # CONFIG_BRIDGE is not set
 # CONFIG_X25 is not set
@@ -188,6 +226,11 @@
 # CONFIG_NET_SCHED is not set
 
 #
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+
+#
 # Telephony Support
 #
 # CONFIG_PHONE is not set
@@ -252,11 +295,11 @@
 # CONFIG_APRICOT is not set
 # CONFIG_CS89x0 is not set
 # CONFIG_TULIP is not set
-CONFIG_TC35815=y
 # CONFIG_DE4X5 is not set
 # CONFIG_DGRS is not set
 # CONFIG_DM9102 is not set
 # CONFIG_EEPRO100 is not set
+# CONFIG_E100 is not set
 # CONFIG_LNE390 is not set
 # CONFIG_FEALNX is not set
 # CONFIG_NATSEMI is not set
@@ -268,11 +311,13 @@
 # CONFIG_8139TOO_PIO is not set
 # CONFIG_8139TOO_TUNE_TWISTER is not set
 # CONFIG_8139TOO_8129 is not set
-# CONFIG_8139_NEW_RX_RESET is not set
+# CONFIG_8139_OLD_RX_RESET is not set
 # CONFIG_SIS900 is not set
 # CONFIG_EPIC100 is not set
 # CONFIG_SUNDANCE is not set
+# CONFIG_SUNDANCE_MMIO is not set
 # CONFIG_TLAN is not set
+CONFIG_TC35815=y
 # CONFIG_VIA_RHINE is not set
 # CONFIG_VIA_RHINE_MMIO is not set
 # CONFIG_WINBOND_840 is not set
@@ -284,11 +329,13 @@
 #
 # CONFIG_ACENIC is not set
 # CONFIG_DL2K is not set
+# CONFIG_E1000 is not set
 # CONFIG_MYRI_SBUS is not set
 # CONFIG_NS83820 is not set
 # CONFIG_HAMACHI is not set
 # CONFIG_YELLOWFIN is not set
 # CONFIG_SK98LIN is not set
+# CONFIG_TIGON3 is not set
 # CONFIG_FDDI is not set
 # CONFIG_HIPPI is not set
 # CONFIG_PLIP is not set
@@ -329,9 +376,13 @@
 # CONFIG_ISDN is not set
 
 #
-# Old CD-ROM drivers (not SCSI, not IDE)
+# Input core support
 #
-# CONFIG_CD_NO_IDESCSI is not set
+# CONFIG_INPUT is not set
+# CONFIG_INPUT_KEYBDEV is not set
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
 
 #
 # Character devices
@@ -350,6 +401,7 @@
 # CONFIG_MOXA_INTELLIO is not set
 # CONFIG_MOXA_SMARTIO is not set
 # CONFIG_SYNCLINK is not set
+# CONFIG_SYNCLINKMP is not set
 # CONFIG_N_HDLC is not set
 # CONFIG_RISCOM8 is not set
 # CONFIG_SPECIALIX is not set
@@ -358,7 +410,6 @@
 # CONFIG_STALDRV is not set
 # CONFIG_SERIAL_TX3912 is not set
 # CONFIG_SERIAL_TX3912_CONSOLE is not set
-# CONFIG_AU1000_UART is not set
 CONFIG_TXX927_SERIAL=y
 CONFIG_TXX927_SERIAL_CONSOLE=y
 # CONFIG_UNIX98_PTYS is not set
@@ -392,7 +443,7 @@
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_INTEL_RNG is not set
+# CONFIG_AMD_PM768 is not set
 # CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_DTLK is not set
@@ -407,11 +458,6 @@
 # CONFIG_DRM is not set
 
 #
-# Multimedia devices
-#
-# CONFIG_VIDEO_DEV is not set
-
-#
 # File systems
 #
 # CONFIG_QUOTA is not set
@@ -424,6 +470,8 @@
 # CONFIG_ADFS_FS_RW is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BEFS_DEBUG is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EXT3_FS is not set
 # CONFIG_JBD is not set
@@ -437,10 +485,13 @@
 # CONFIG_JFFS2_FS is not set
 # CONFIG_CRAMFS is not set
 # CONFIG_TMPFS is not set
-# CONFIG_RAMFS is not set
+CONFIG_RAMFS=y
 # CONFIG_ISO9660_FS is not set
 # CONFIG_JOLIET is not set
 # CONFIG_ZISOFS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
 # CONFIG_MINIX_FS is not set
 # CONFIG_VXFS_FS is not set
 # CONFIG_NTFS_FS is not set
@@ -471,6 +522,7 @@
 CONFIG_ROOT_NFS=y
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
+# CONFIG_NFSD_TCP is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
 # CONFIG_SMB_FS is not set
@@ -484,7 +536,6 @@
 # CONFIG_NCPFS_NLS is not set
 # CONFIG_NCPFS_EXTRAS is not set
 # CONFIG_ZISOFS_FS is not set
-# CONFIG_ZLIB_FS_INFLATE is not set
 
 #
 # Partition Types
@@ -495,6 +546,11 @@
 # CONFIG_NLS is not set
 
 #
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
 # Console drivers
 #
 # CONFIG_VGA_CONSOLE is not set
@@ -508,15 +564,18 @@
 # CONFIG_FB_RIVA is not set
 # CONFIG_FB_CLGEN is not set
 # CONFIG_FB_PM2 is not set
+# CONFIG_FB_PM3 is not set
 # CONFIG_FB_CYBER2000 is not set
 # CONFIG_FB_MATROX is not set
 # CONFIG_FB_ATY is not set
 # CONFIG_FB_RADEON is not set
 # CONFIG_FB_ATY128 is not set
 # CONFIG_FB_SIS is not set
+# CONFIG_FB_NEOMAGIC is not set
 # CONFIG_FB_3DFX is not set
 # CONFIG_FB_VOODOO1 is not set
 # CONFIG_FB_TRIDENT is not set
+# CONFIG_FB_E1356 is not set
 # CONFIG_FB_VIRTUAL is not set
 CONFIG_FBCON_ADVANCED=y
 CONFIG_FBCON_MFB=y
@@ -551,121 +610,22 @@
 # CONFIG_USB is not set
 
 #
-# USB Controllers
-#
-# CONFIG_USB_UHCI is not set
-# CONFIG_USB_UHCI_ALT is not set
-# CONFIG_USB_OHCI is not set
-
-#
-# USB Device Class drivers
-#
-# CONFIG_USB_AUDIO is not set
-# CONFIG_USB_BLUETOOTH is not set
-
-#
-#   SCSI support is needed for USB Storage
-#
-# CONFIG_USB_STORAGE is not set
-# CONFIG_USB_STORAGE_DEBUG is not set
-# CONFIG_USB_STORAGE_DATAFAB is not set
-# CONFIG_USB_STORAGE_FREECOM is not set
-# CONFIG_USB_STORAGE_ISD200 is not set
-# CONFIG_USB_STORAGE_DPCM is not set
-# CONFIG_USB_STORAGE_HP8200e is not set
-# CONFIG_USB_STORAGE_SDDR09 is not set
-# CONFIG_USB_STORAGE_JUMPSHOT is not set
-# CONFIG_USB_ACM is not set
-# CONFIG_USB_PRINTER is not set
-
-#
-# USB Human Interface Devices (HID)
-#
-
-#
-#   Input core support is needed for USB HID
-#
-
-#
-# USB Imaging devices
-#
-# CONFIG_USB_DC2XX is not set
-# CONFIG_USB_MDC800 is not set
-# CONFIG_USB_SCANNER is not set
-# CONFIG_USB_MICROTEK is not set
-# CONFIG_USB_HPUSBSCSI is not set
-
-#
-# USB Multimedia devices
-#
-
-#
-#   Video4Linux support is needed for USB Multimedia device support
-#
-
-#
-# USB Network adaptors
-#
-# CONFIG_USB_PEGASUS is not set
-# CONFIG_USB_KAWETH is not set
-# CONFIG_USB_CATC is not set
-# CONFIG_USB_CDCETHER is not set
-# CONFIG_USB_USBNET is not set
-
-#
-# USB port drivers
-#
-# CONFIG_USB_USS720 is not set
-
-#
-# USB Serial Converter support
-#
-# CONFIG_USB_SERIAL is not set
-# CONFIG_USB_SERIAL_GENERIC is not set
-# CONFIG_USB_SERIAL_BELKIN is not set
-# CONFIG_USB_SERIAL_WHITEHEAT is not set
-# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
-# CONFIG_USB_SERIAL_EMPEG is not set
-# CONFIG_USB_SERIAL_FTDI_SIO is not set
-# CONFIG_USB_SERIAL_VISOR is not set
-# CONFIG_USB_SERIAL_IPAQ is not set
-# CONFIG_USB_SERIAL_IR is not set
-# CONFIG_USB_SERIAL_EDGEPORT is not set
-# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
-# CONFIG_USB_SERIAL_KEYSPAN is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set
-# CONFIG_USB_SERIAL_MCT_U232 is not set
-# CONFIG_USB_SERIAL_KLSI is not set
-# CONFIG_USB_SERIAL_PL2303 is not set
-# CONFIG_USB_SERIAL_CYBERJACK is not set
-# CONFIG_USB_SERIAL_XIRCOM is not set
-# CONFIG_USB_SERIAL_OMNINET is not set
-
-#
-# USB Miscellaneous drivers
-#
-# CONFIG_USB_RIO500 is not set
-
-#
-# Input core support
+# Bluetooth support
 #
-# CONFIG_INPUT is not set
-# CONFIG_INPUT_KEYBDEV is not set
-# CONFIG_INPUT_MOUSEDEV is not set
-# CONFIG_INPUT_JOYDEV is not set
-# CONFIG_INPUT_EVDEV is not set
+# CONFIG_BLUEZ is not set
 
 #
 # Kernel hacking
 #
 CONFIG_CROSSCOMPILE=y
 # CONFIG_DEBUG is not set
+# CONFIG_REMOTE_DEBUG is not set
+# CONFIG_GDB_CONSOLE is not set
 # CONFIG_MAGIC_SYSRQ is not set
 # CONFIG_MIPS_UNCACHED is not set
+
+#
+# Library routines
+#
+# CONFIG_ZLIB_INFLATE is not set
+# CONFIG_ZLIB_DEFLATE is not set
diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-lasat linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-lasat
--- linux-2.4.20/arch/mips/defconfig-lasat	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-lasat	2003-02-24 15:17:03.000000000 -0600
@@ -0,0 +1,719 @@
+#
+# Automatically generated make config: don't edit
+#
+CONFIG_MIPS=y
+CONFIG_MIPS32=y
+# CONFIG_MIPS64 is not set
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+# CONFIG_MODVERSIONS is not set
+CONFIG_KMOD=y
+
+#
+# Machine selection
+#
+# CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
+# CONFIG_MIPS_PB1000 is not set
+# CONFIG_MIPS_PB1100 is not set
+# CONFIG_MIPS_PB1500 is not set
+# CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
+# CONFIG_MIPS_COBALT is not set
+# CONFIG_DECSTATION is not set
+# CONFIG_MIPS_EV64120 is not set
+# CONFIG_MIPS_EV96100 is not set
+# CONFIG_MIPS_IVR is not set
+# CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+CONFIG_LASAT=y
+CONFIG_PICVUE=y
+CONFIG_PICVUE_PROC=y
+CONFIG_DS1603=y
+CONFIG_LASAT_SYSCTL=y
+# CONFIG_MIPS_ITE8172 is not set
+# CONFIG_MIPS_ATLAS is not set
+# CONFIG_MIPS_MAGNUM_4000 is not set
+# CONFIG_MIPS_MALTA is not set
+# CONFIG_MIPS_SEAD is not set
+# CONFIG_MOMENCO_OCELOT is not set
+# CONFIG_MOMENCO_OCELOT_G is not set
+# CONFIG_DDB5074 is not set
+# CONFIG_DDB5476 is not set
+# CONFIG_DDB5477 is not set
+# CONFIG_NEC_OSPREY is not set
+# CONFIG_NEC_EAGLE is not set
+# CONFIG_OLIVETTI_M700 is not set
+# CONFIG_NINO is not set
+# CONFIG_SGI_IP22 is not set
+# CONFIG_SGI_IP27 is not set
+# CONFIG_SGI_IP32 is not set
+# CONFIG_SIBYTE_SB1xxx_SOC is not set
+# CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
+# CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
+# CONFIG_ZAO_CAPCELLA is not set
+# CONFIG_HIGHMEM is not set
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
+CONFIG_BOARD_SCACHE=y
+CONFIG_R5000_CPU_SCACHE=y
+CONFIG_PCI=y
+CONFIG_NONCOHERENT_IO=y
+CONFIG_NEW_TIME_C=y
+CONFIG_NEW_IRQ=y
+# CONFIG_MIPS_AU1000 is not set
+
+#
+# CPU selection
+#
+# CONFIG_CPU_MIPS32 is not set
+# CONFIG_CPU_MIPS64 is not set
+# CONFIG_CPU_R3000 is not set
+# CONFIG_CPU_TX39XX is not set
+# CONFIG_CPU_VR41XX is not set
+# CONFIG_CPU_R4300 is not set
+# CONFIG_CPU_R4X00 is not set
+# CONFIG_CPU_TX49XX is not set
+CONFIG_CPU_R5000=y
+# CONFIG_CPU_R5432 is not set
+# CONFIG_CPU_R6000 is not set
+# CONFIG_CPU_NEVADA is not set
+# CONFIG_CPU_R8000 is not set
+# CONFIG_CPU_R10000 is not set
+# CONFIG_CPU_RM7000 is not set
+# CONFIG_CPU_SB1 is not set
+# CONFIG_64BIT_PHYS_ADDR is not set
+# CONFIG_CPU_ADVANCED is not set
+CONFIG_CPU_HAS_LLSC=y
+CONFIG_CPU_HAS_LLDSCD=y
+# CONFIG_CPU_HAS_WB is not set
+CONFIG_CPU_HAS_SYNC=y
+
+#
+# General setup
+#
+CONFIG_CPU_LITTLE_ENDIAN=y
+CONFIG_NET=y
+# CONFIG_PCI_NAMES is not set
+# CONFIG_ISA is not set
+# CONFIG_EISA is not set
+# CONFIG_TC is not set
+# CONFIG_MCA is not set
+# CONFIG_SBUS is not set
+# CONFIG_HOTPLUG is not set
+# CONFIG_PCMCIA is not set
+# CONFIG_HOTPLUG_PCI is not set
+CONFIG_SYSVIPC=y
+# CONFIG_BSD_PROCESS_ACCT is not set
+CONFIG_SYSCTL=y
+CONFIG_KCORE_ELF=y
+# CONFIG_KCORE_AOUT is not set
+# CONFIG_BINFMT_AOUT is not set
+CONFIG_BINFMT_ELF=y
+# CONFIG_MIPS32_COMPAT is not set
+# CONFIG_MIPS32_O32 is not set
+# CONFIG_MIPS32_N32 is not set
+# CONFIG_BINFMT_ELF32 is not set
+# CONFIG_BINFMT_MISC is not set
+# CONFIG_PM is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_REDBOOT_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+# CONFIG_MTD_BLOCK is not set
+CONFIG_MTD_BLOCK_RO=y
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=y
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_GEN_PROBE=y
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+# CONFIG_MTD_CFI_INTELEXT is not set
+CONFIG_MTD_CFI_AMDSTD=y
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+# CONFIG_MTD_OBSOLETE_CHIPS is not set
+# CONFIG_MTD_AMDSTD is not set
+# CONFIG_MTD_SHARP is not set
+# CONFIG_MTD_JEDEC is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_PHYSMAP is not set
+# CONFIG_MTD_PB1000 is not set
+# CONFIG_MTD_PB1500 is not set
+# CONFIG_MTD_PB1100 is not set
+# CONFIG_MTD_DB1X00 is not set
+# CONFIG_MTD_CSTM_MIPS_IXX is not set
+# CONFIG_MTD_OCELOT is not set
+CONFIG_MTD_LASAT=y
+# CONFIG_MTD_PCI is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_PMC551 is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLKMTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC1000 is not set
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOCPROBE is not set
+
+#
+# NAND Flash Device Drivers
+#
+# CONFIG_MTD_NAND is not set
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Plug and Play configuration
+#
+# CONFIG_PNP is not set
+# CONFIG_ISAPNP is not set
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_FD is not set
+# CONFIG_BLK_DEV_XD is not set
+# CONFIG_PARIDE is not set
+# CONFIG_BLK_CPQ_DA is not set
+# CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_CISS_SCSI_TAPE is not set
+# CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_LOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_RAM is not set
+# CONFIG_BLK_DEV_INITRD is not set
+# CONFIG_BLK_STATS is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD is not set
+# CONFIG_BLK_DEV_MD is not set
+# CONFIG_MD_LINEAR is not set
+# CONFIG_MD_RAID0 is not set
+# CONFIG_MD_RAID1 is not set
+# CONFIG_MD_RAID5 is not set
+# CONFIG_MD_MULTIPATH is not set
+# CONFIG_BLK_DEV_LVM is not set
+
+#
+# Networking options
+#
+# CONFIG_PACKET is not set
+# CONFIG_NETLINK_DEV is not set
+# CONFIG_NETFILTER is not set
+# CONFIG_FILTER is not set
+CONFIG_UNIX=y
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+# CONFIG_IP_PNP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_INET_ECN is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_IPV6 is not set
+# CONFIG_KHTTPD is not set
+# CONFIG_ATM is not set
+# CONFIG_VLAN_8021Q is not set
+
+#
+#  
+#
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+
+#
+# Appletalk devices
+#
+# CONFIG_DEV_APPLETALK is not set
+# CONFIG_DECNET is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_LLC is not set
+# CONFIG_NET_DIVERT is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_FASTROUTE is not set
+# CONFIG_NET_HW_FLOWCONTROL is not set
+
+#
+# QoS and/or fair queueing
+#
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+
+#
+# Telephony Support
+#
+# CONFIG_PHONE is not set
+# CONFIG_PHONE_IXJ is not set
+# CONFIG_PHONE_IXJ_PCMCIA is not set
+
+#
+# ATA/IDE/MFM/RLL support
+#
+CONFIG_IDE=y
+
+#
+# IDE, ATA and ATAPI Block devices
+#
+CONFIG_BLK_DEV_IDE=y
+
+#
+# Please see Documentation/ide.txt for help/info on IDE drives
+#
+# CONFIG_BLK_DEV_HD_IDE is not set
+# CONFIG_BLK_DEV_HD is not set
+CONFIG_BLK_DEV_IDEDISK=y
+# CONFIG_IDEDISK_MULTI_MODE is not set
+# CONFIG_IDEDISK_STROKE is not set
+# CONFIG_BLK_DEV_IDEDISK_VENDOR is not set
+# CONFIG_BLK_DEV_IDEDISK_FUJITSU is not set
+# CONFIG_BLK_DEV_IDEDISK_IBM is not set
+# CONFIG_BLK_DEV_IDEDISK_MAXTOR is not set
+# CONFIG_BLK_DEV_IDEDISK_QUANTUM is not set
+# CONFIG_BLK_DEV_IDEDISK_SEAGATE is not set
+# CONFIG_BLK_DEV_IDEDISK_WD is not set
+# CONFIG_BLK_DEV_COMMERIAL is not set
+# CONFIG_BLK_DEV_TIVO is not set
+# CONFIG_BLK_DEV_IDECS 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
+
+#
+# IDE chipset support/bugfixes
+#
+# CONFIG_BLK_DEV_CMD640 is not set
+# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
+# CONFIG_BLK_DEV_ISAPNP is not set
+# CONFIG_BLK_DEV_RZ1000 is not set
+CONFIG_BLK_DEV_IDEPCI=y
+# CONFIG_IDEPCI_SHARE_IRQ is not set
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+# CONFIG_BLK_DEV_OFFBOARD is not set
+# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
+CONFIG_IDEDMA_PCI_AUTO=y
+# CONFIG_IDEDMA_ONLYDISK is not set
+CONFIG_BLK_DEV_IDEDMA=y
+# CONFIG_IDEDMA_PCI_WIP is not set
+# CONFIG_BLK_DEV_IDEDMA_TIMEOUT is not set
+# CONFIG_IDEDMA_NEW_DRIVE_LISTINGS is not set
+CONFIG_BLK_DEV_ADMA=y
+# CONFIG_BLK_DEV_AEC62XX is not set
+# CONFIG_AEC62XX_TUNING is not set
+# CONFIG_BLK_DEV_ALI15X3 is not set
+# CONFIG_WDC_ALI15X3 is not set
+# CONFIG_BLK_DEV_AMD74XX is not set
+# CONFIG_AMD74XX_OVERRIDE is not set
+CONFIG_BLK_DEV_CMD64X=y
+# CONFIG_BLK_DEV_CMD680 is not set
+# CONFIG_BLK_DEV_CY82C693 is not set
+# CONFIG_BLK_DEV_CS5530 is not set
+# CONFIG_BLK_DEV_HPT34X is not set
+# CONFIG_HPT34X_AUTODMA is not set
+# CONFIG_BLK_DEV_HPT366 is not set
+# CONFIG_BLK_DEV_PIIX is not set
+# CONFIG_PIIX_TUNING is not set
+# CONFIG_BLK_DEV_NS87415 is not set
+# CONFIG_BLK_DEV_OPTI621 is not set
+# CONFIG_BLK_DEV_PDC202XX is not set
+# CONFIG_PDC202XX_BURST is not set
+# CONFIG_PDC202XX_FORCE is not set
+# CONFIG_BLK_DEV_SVWKS is not set
+# CONFIG_BLK_DEV_SIS5513 is not set
+# CONFIG_BLK_DEV_SLC90E66 is not set
+# CONFIG_BLK_DEV_TRM290 is not set
+# CONFIG_BLK_DEV_VIA82CXXX is not set
+# CONFIG_IDE_CHIPSETS is not set
+CONFIG_IDEDMA_AUTO=y
+# CONFIG_IDEDMA_IVB is not set
+# CONFIG_DMA_NONPCI is not set
+CONFIG_BLK_DEV_IDE_MODES=y
+# CONFIG_BLK_DEV_ATARAID is not set
+# CONFIG_BLK_DEV_ATARAID_PDC is not set
+# CONFIG_BLK_DEV_ATARAID_HPT is not set
+
+#
+# SCSI support
+#
+# CONFIG_SCSI is not set
+
+#
+# I2O device support
+#
+# CONFIG_I2O is not set
+# CONFIG_I2O_PCI is not set
+# CONFIG_I2O_BLOCK is not set
+# CONFIG_I2O_LAN is not set
+# CONFIG_I2O_SCSI is not set
+# CONFIG_I2O_PROC is not set
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_ETHERTAP is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+# CONFIG_SUNLANCE is not set
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNBMAC is not set
+# CONFIG_SUNQE is not set
+# CONFIG_SUNGEM is not set
+# CONFIG_NET_VENDOR_3COM is not set
+# CONFIG_LANCE is not set
+# CONFIG_NET_VENDOR_SMC is not set
+# CONFIG_NET_VENDOR_RACAL is not set
+# CONFIG_HP100 is not set
+# CONFIG_NET_ISA is not set
+CONFIG_NET_PCI=y
+CONFIG_PCNET32=y
+# CONFIG_ADAPTEC_STARFIRE is not set
+# CONFIG_APRICOT is not set
+# CONFIG_CS89x0 is not set
+# CONFIG_TULIP is not set
+# CONFIG_DE4X5 is not set
+# CONFIG_DGRS is not set
+# CONFIG_DM9102 is not set
+# CONFIG_EEPRO100 is not set
+# CONFIG_E100 is not set
+# CONFIG_LNE390 is not set
+# CONFIG_FEALNX is not set
+# CONFIG_NATSEMI is not set
+# CONFIG_NE2K_PCI is not set
+# CONFIG_NE3210 is not set
+# CONFIG_ES3210 is not set
+# CONFIG_8139CP is not set
+# CONFIG_8139TOO is not set
+# CONFIG_8139TOO_PIO is not set
+# CONFIG_8139TOO_TUNE_TWISTER is not set
+# CONFIG_8139TOO_8129 is not set
+# CONFIG_8139_OLD_RX_RESET is not set
+# CONFIG_SIS900 is not set
+# CONFIG_EPIC100 is not set
+# CONFIG_SUNDANCE is not set
+# CONFIG_SUNDANCE_MMIO is not set
+# CONFIG_TLAN is not set
+# CONFIG_TC35815 is not set
+# CONFIG_VIA_RHINE is not set
+# CONFIG_VIA_RHINE_MMIO is not set
+# CONFIG_WINBOND_840 is not set
+# CONFIG_LAN_SAA9730 is not set
+# CONFIG_NET_POCKET is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+# CONFIG_ACENIC is not set
+# CONFIG_DL2K is not set
+# CONFIG_E1000 is not set
+# CONFIG_MYRI_SBUS is not set
+# CONFIG_NS83820 is not set
+# CONFIG_HAMACHI is not set
+# CONFIG_YELLOWFIN is not set
+# CONFIG_SK98LIN is not set
+# CONFIG_TIGON3 is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+# CONFIG_PLIP is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+# CONFIG_NET_RADIO is not set
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+# CONFIG_NET_FC is not set
+# CONFIG_RCPCI is not set
+# CONFIG_SHAPER is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+
+#
+# Amateur Radio support
+#
+# CONFIG_HAMRADIO is not set
+
+#
+# IrDA (infrared) support
+#
+# CONFIG_IRDA is not set
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Input core support
+#
+# CONFIG_INPUT is not set
+# CONFIG_INPUT_KEYBDEV is not set
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+
+#
+# Character devices
+#
+# CONFIG_VT is not set
+CONFIG_SERIAL=y
+CONFIG_SERIAL_CONSOLE=y
+# CONFIG_SERIAL_EXTENDED is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+CONFIG_UNIX98_PTYS=y
+CONFIG_UNIX98_PTY_COUNT=256
+
+#
+# I2C support
+#
+# CONFIG_I2C is not set
+
+#
+# Mice
+#
+# CONFIG_BUSMOUSE is not set
+# CONFIG_MOUSE is not set
+
+#
+# Joysticks
+#
+# CONFIG_INPUT_GAMEPORT is not set
+
+#
+# Input core support is needed for gameports
+#
+
+#
+# Input core support is needed for joysticks
+#
+# CONFIG_QIC02_TAPE is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+# CONFIG_AMD_PM768 is not set
+# CONFIG_NVRAM is not set
+# CONFIG_RTC is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# CONFIG_FTAPE is not set
+# CONFIG_AGP is not set
+# CONFIG_DRM is not set
+
+#
+# File systems
+#
+# CONFIG_QUOTA is not set
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_REISERFS_FS is not set
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+# CONFIG_ADFS_FS is not set
+# CONFIG_ADFS_FS_RW is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BEFS_DEBUG is not set
+# CONFIG_BFS_FS is not set
+CONFIG_EXT3_FS=y
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_UMSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_JFFS_FS is not set
+# CONFIG_JFFS2_FS is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_TMPFS is not set
+CONFIG_RAMFS=y
+# CONFIG_ISO9660_FS is not set
+# CONFIG_JOLIET is not set
+# CONFIG_ZISOFS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_NTFS_FS is not set
+# CONFIG_NTFS_RW is not set
+# CONFIG_HPFS_FS is not set
+CONFIG_PROC_FS=y
+CONFIG_DEVFS_FS=y
+# CONFIG_DEVFS_MOUNT is not set
+# CONFIG_DEVFS_DEBUG is not set
+CONFIG_DEVPTS_FS=y
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_QNX4FS_RW is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_EXT2_FS=y
+# CONFIG_SYSV_FS is not set
+# CONFIG_UDF_FS is not set
+# CONFIG_UDF_RW is not set
+# CONFIG_UFS_FS is not set
+# CONFIG_UFS_FS_WRITE is not set
+
+#
+# Network File Systems
+#
+# CONFIG_CODA_FS is not set
+# CONFIG_INTERMEZZO_FS is not set
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+# CONFIG_ROOT_NFS is not set
+# CONFIG_NFSD is not set
+# CONFIG_NFSD_V3 is not set
+# CONFIG_NFSD_TCP is not set
+CONFIG_SUNRPC=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+# CONFIG_SMB_FS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_NCPFS_PACKET_SIGNING is not set
+# CONFIG_NCPFS_IOCTL_LOCKING is not set
+# CONFIG_NCPFS_STRONG is not set
+# CONFIG_NCPFS_NFS_NS is not set
+# CONFIG_NCPFS_OS2_NS is not set
+# CONFIG_NCPFS_SMALLDOS is not set
+# CONFIG_NCPFS_NLS is not set
+# CONFIG_NCPFS_EXTRAS is not set
+# CONFIG_ZISOFS_FS is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_BSD_DISKLABEL is not set
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+# CONFIG_LDM_PARTITION is not set
+CONFIG_SGI_PARTITION=y
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+# CONFIG_SMB_NLS is not set
+# CONFIG_NLS is not set
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# Sound
+#
+# CONFIG_SOUND is not set
+
+#
+# USB support
+#
+# CONFIG_USB is not set
+
+#
+# Bluetooth support
+#
+# CONFIG_BLUEZ is not set
+
+#
+# Kernel hacking
+#
+CONFIG_CROSSCOMPILE=y
+# CONFIG_DEBUG is not set
+# CONFIG_REMOTE_DEBUG is not set
+# CONFIG_GDB_CONSOLE is not set
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_MIPS_UNCACHED is not set
+
+#
+# Library routines
+#
+# CONFIG_ZLIB_INFLATE is not set
+# CONFIG_ZLIB_DEFLATE is not set
diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-malta linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-malta
--- linux-2.4.20/arch/mips/defconfig-malta	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-malta	2003-02-24 15:17:03.000000000 -0600
@@ -13,23 +13,30 @@
 #
 # Loadable module support
 #
-# CONFIG_MODULES is not set
+CONFIG_MODULES=y
+# CONFIG_MODVERSIONS is not set
+CONFIG_KMOD=y
 
 #
 # Machine selection
 #
 # CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
 # CONFIG_MIPS_PB1000 is not set
 # CONFIG_MIPS_PB1100 is not set
 # CONFIG_MIPS_PB1500 is not set
-# CONFIG_ALGOR_P4032 is not set
 # CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
 # CONFIG_MIPS_COBALT is not set
 # CONFIG_DECSTATION is not set
 # CONFIG_MIPS_EV64120 is not set
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MAGNUM_4000 is not set
@@ -49,7 +56,9 @@
 # CONFIG_SGI_IP32 is not set
 # CONFIG_SIBYTE_SB1xxx_SOC is not set
 # CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
 # CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
 # CONFIG_ZAO_CAPCELLA is not set
 # CONFIG_HIGHMEM is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
@@ -58,10 +67,10 @@
 CONFIG_HAVE_STD_PC_SERIAL_PORT=y
 CONFIG_I8259=y
 CONFIG_L1_CACHE_SHIFT=5
-CONFIG_NEW_IRQ=y
 CONFIG_NEW_TIME_C=y
 CONFIG_NONCOHERENT_IO=y
-CONFIG_SWAP_IO_SPACE=y
+CONFIG_SWAP_IO_SPACE_W=y
+CONFIG_SWAP_IO_SPACE_L=y
 CONFIG_PC_KEYB=y
 CONFIG_PCI=y
 # CONFIG_MIPS_AU1000 is not set
@@ -116,6 +125,8 @@
 # CONFIG_BINFMT_AOUT is not set
 CONFIG_BINFMT_ELF=y
 # CONFIG_MIPS32_COMPAT is not set
+# CONFIG_MIPS32_O32 is not set
+# CONFIG_MIPS32_N32 is not set
 # CONFIG_BINFMT_ELF32 is not set
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_PM is not set
@@ -178,8 +189,8 @@
 # CONFIG_IP_MULTICAST is not set
 # CONFIG_IP_ADVANCED_ROUTER is not set
 CONFIG_IP_PNP=y
-# CONFIG_IP_PNP_DHCP is not set
-# CONFIG_IP_PNP_BOOTP is not set
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
 # CONFIG_IP_PNP_RARP is not set
 # CONFIG_NET_IPIP is not set
 # CONFIG_NET_IPGRE is not set
@@ -374,6 +385,7 @@
 # CONFIG_SIS900 is not set
 # CONFIG_EPIC100 is not set
 # CONFIG_SUNDANCE is not set
+# CONFIG_SUNDANCE_MMIO is not set
 # CONFIG_TLAN is not set
 # CONFIG_TC35815 is not set
 # CONFIG_VIA_RHINE is not set
@@ -482,6 +494,7 @@
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
+# CONFIG_AMD_PM768 is not set
 # CONFIG_NVRAM is not set
 CONFIG_RTC=y
 # CONFIG_DTLK is not set
@@ -556,13 +569,14 @@
 # CONFIG_CODA_FS is not set
 # CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=y
-# CONFIG_NFS_V3 is not set
+CONFIG_NFS_V3=y
 CONFIG_ROOT_NFS=y
-# CONFIG_NFSD is not set
-# CONFIG_NFSD_V3 is not set
+CONFIG_NFSD=y
+CONFIG_NFSD_V3=y
 # CONFIG_NFSD_TCP is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
 # CONFIG_SMB_FS is not set
 # CONFIG_NCP_FS is not set
 # CONFIG_NCPFS_PACKET_SIGNING is not set
@@ -607,9 +621,9 @@
 # Kernel hacking
 #
 CONFIG_CROSSCOMPILE=y
+# CONFIG_DEBUG is not set
 # CONFIG_REMOTE_DEBUG is not set
 # CONFIG_GDB_CONSOLE is not set
-# CONFIG_DEBUG is not set
 # CONFIG_MAGIC_SYSRQ is not set
 # CONFIG_MIPS_UNCACHED is not set
 
diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-mpc30x linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-mpc30x
--- linux-2.4.20/arch/mips/defconfig-mpc30x	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-mpc30x	2003-02-24 15:17:03.000000000 -0600
@@ -0,0 +1,661 @@
+#
+# Automatically generated make config: don't edit
+#
+CONFIG_MIPS=y
+CONFIG_MIPS32=y
+# CONFIG_MIPS64 is not set
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+# CONFIG_MODVERSIONS is not set
+CONFIG_KMOD=y
+
+#
+# Machine selection
+#
+# CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
+# CONFIG_MIPS_PB1000 is not set
+# CONFIG_MIPS_PB1100 is not set
+# CONFIG_MIPS_PB1500 is not set
+# CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
+# CONFIG_MIPS_COBALT is not set
+# CONFIG_DECSTATION is not set
+# CONFIG_MIPS_EV64120 is not set
+# CONFIG_MIPS_EV96100 is not set
+# CONFIG_MIPS_IVR is not set
+# CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
+# CONFIG_MIPS_ITE8172 is not set
+# CONFIG_MIPS_ATLAS is not set
+# CONFIG_MIPS_MAGNUM_4000 is not set
+# CONFIG_MIPS_MALTA is not set
+# CONFIG_MIPS_SEAD is not set
+# CONFIG_MOMENCO_OCELOT is not set
+# CONFIG_MOMENCO_OCELOT_G is not set
+# CONFIG_DDB5074 is not set
+# CONFIG_DDB5476 is not set
+# CONFIG_DDB5477 is not set
+# CONFIG_NEC_OSPREY is not set
+# CONFIG_NEC_EAGLE is not set
+# CONFIG_OLIVETTI_M700 is not set
+# CONFIG_NINO is not set
+# CONFIG_SGI_IP22 is not set
+# CONFIG_SGI_IP27 is not set
+# CONFIG_SGI_IP32 is not set
+# CONFIG_SIBYTE_SB1xxx_SOC is not set
+# CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
+# CONFIG_TOSHIBA_JMR3927 is not set
+CONFIG_VICTOR_MPC30X=y
+CONFIG_VRC4173=y
+# CONFIG_ZAO_CAPCELLA is not set
+# CONFIG_HIGHMEM is not set
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
+CONFIG_CPU_VR41XX=y
+CONFIG_IRQ_CPU=y
+CONFIG_NEW_TIME_C=y
+CONFIG_VR41XX_TIME_C=y
+CONFIG_NONCOHERENT_IO=y
+# CONFIG_ISA is not set
+CONFIG_PCI=y
+CONFIG_NEW_PCI=y
+CONFIG_PCI_AUTO=y
+CONFIG_DUMMY_KEYB=y
+# CONFIG_SCSI is not set
+# CONFIG_MIPS_AU1000 is not set
+
+#
+# CPU selection
+#
+# CONFIG_CPU_MIPS32 is not set
+# CONFIG_CPU_MIPS64 is not set
+# CONFIG_CPU_R3000 is not set
+# CONFIG_CPU_TX39XX is not set
+CONFIG_CPU_VR41XX=y
+# CONFIG_CPU_R4300 is not set
+# CONFIG_CPU_R4X00 is not set
+# CONFIG_CPU_TX49XX is not set
+# CONFIG_CPU_R5000 is not set
+# CONFIG_CPU_R5432 is not set
+# CONFIG_CPU_R6000 is not set
+# CONFIG_CPU_NEVADA is not set
+# CONFIG_CPU_R8000 is not set
+# CONFIG_CPU_R10000 is not set
+# CONFIG_CPU_RM7000 is not set
+# CONFIG_CPU_SB1 is not set
+# CONFIG_CPU_ADVANCED is not set
+# CONFIG_CPU_HAS_LLSC is not set
+# CONFIG_CPU_HAS_LLDSCD is not set
+# CONFIG_CPU_HAS_WB is not set
+CONFIG_CPU_HAS_SYNC=y
+
+#
+# General setup
+#
+CONFIG_CPU_LITTLE_ENDIAN=y
+CONFIG_NET=y
+# CONFIG_PCI_NAMES is not set
+# CONFIG_ISA is not set
+# CONFIG_EISA is not set
+# CONFIG_TC is not set
+# CONFIG_MCA is not set
+# CONFIG_SBUS is not set
+# CONFIG_HOTPLUG is not set
+# CONFIG_PCMCIA is not set
+# CONFIG_HOTPLUG_PCI is not set
+CONFIG_SYSVIPC=y
+# CONFIG_BSD_PROCESS_ACCT is not set
+CONFIG_SYSCTL=y
+CONFIG_KCORE_ELF=y
+# CONFIG_KCORE_AOUT is not set
+# CONFIG_BINFMT_AOUT is not set
+CONFIG_BINFMT_ELF=y
+# CONFIG_MIPS32_COMPAT is not set
+# CONFIG_MIPS32_O32 is not set
+# CONFIG_MIPS32_N32 is not set
+# CONFIG_BINFMT_ELF32 is not set
+# CONFIG_BINFMT_MISC is not set
+# CONFIG_PM is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+# CONFIG_MTD is not set
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Plug and Play configuration
+#
+# CONFIG_PNP is not set
+# CONFIG_ISAPNP is not set
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_FD is not set
+# CONFIG_BLK_DEV_XD is not set
+# CONFIG_PARIDE is not set
+# CONFIG_BLK_CPQ_DA is not set
+# CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_CISS_SCSI_TAPE is not set
+# CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_LOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_RAM is not set
+# CONFIG_BLK_DEV_INITRD is not set
+# CONFIG_BLK_STATS is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD is not set
+# CONFIG_BLK_DEV_MD is not set
+# CONFIG_MD_LINEAR is not set
+# CONFIG_MD_RAID0 is not set
+# CONFIG_MD_RAID1 is not set
+# CONFIG_MD_RAID5 is not set
+# CONFIG_MD_MULTIPATH is not set
+# CONFIG_BLK_DEV_LVM is not set
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_PACKET_MMAP=y
+CONFIG_NETLINK_DEV=y
+# CONFIG_NETFILTER is not set
+# CONFIG_FILTER is not set
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_PNP=y
+# CONFIG_IP_PNP_DHCP is not set
+CONFIG_IP_PNP_BOOTP=y
+# CONFIG_IP_PNP_RARP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_IP_MROUTE is not set
+# CONFIG_ARPD is not set
+# CONFIG_INET_ECN is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_IPV6 is not set
+# CONFIG_KHTTPD is not set
+# CONFIG_ATM is not set
+# CONFIG_VLAN_8021Q is not set
+
+#
+#  
+#
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+
+#
+# Appletalk devices
+#
+# CONFIG_DEV_APPLETALK is not set
+# CONFIG_DECNET is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_LLC is not set
+# CONFIG_NET_DIVERT is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_FASTROUTE is not set
+# CONFIG_NET_HW_FLOWCONTROL is not set
+
+#
+# QoS and/or fair queueing
+#
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+
+#
+# Telephony Support
+#
+# CONFIG_PHONE is not set
+# CONFIG_PHONE_IXJ is not set
+# CONFIG_PHONE_IXJ_PCMCIA is not set
+
+#
+# ATA/IDE/MFM/RLL support
+#
+# CONFIG_IDE is not set
+# CONFIG_BLK_DEV_IDE_MODES is not set
+# CONFIG_BLK_DEV_HD is not set
+
+#
+# SCSI support
+#
+# CONFIG_SCSI is not set
+
+#
+# I2O device support
+#
+# CONFIG_I2O is not set
+# CONFIG_I2O_PCI is not set
+# CONFIG_I2O_BLOCK is not set
+# CONFIG_I2O_LAN is not set
+# CONFIG_I2O_SCSI is not set
+# CONFIG_I2O_PROC is not set
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_ETHERTAP is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+# CONFIG_SUNLANCE is not set
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNBMAC is not set
+# CONFIG_SUNQE is not set
+# CONFIG_SUNGEM is not set
+# CONFIG_NET_VENDOR_3COM is not set
+# CONFIG_LANCE is not set
+# CONFIG_NET_VENDOR_SMC is not set
+# CONFIG_NET_VENDOR_RACAL is not set
+# CONFIG_HP100 is not set
+# CONFIG_NET_ISA is not set
+# CONFIG_NET_PCI is not set
+# CONFIG_NET_POCKET is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+# CONFIG_ACENIC is not set
+# CONFIG_DL2K is not set
+# CONFIG_E1000 is not set
+# CONFIG_MYRI_SBUS is not set
+# CONFIG_NS83820 is not set
+# CONFIG_HAMACHI is not set
+# CONFIG_YELLOWFIN is not set
+# CONFIG_SK98LIN is not set
+# CONFIG_TIGON3 is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+# CONFIG_PLIP is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+# CONFIG_NET_RADIO is not set
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+# CONFIG_NET_FC is not set
+# CONFIG_RCPCI is not set
+# CONFIG_SHAPER is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+
+#
+# Amateur Radio support
+#
+# CONFIG_HAMRADIO is not set
+
+#
+# IrDA (infrared) support
+#
+# CONFIG_IRDA is not set
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Input core support
+#
+# CONFIG_INPUT is not set
+# CONFIG_INPUT_KEYBDEV is not set
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+# CONFIG_VT_CONSOLE is not set
+CONFIG_SERIAL=y
+CONFIG_SERIAL_CONSOLE=y
+# CONFIG_SERIAL_EXTENDED is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+CONFIG_UNIX98_PTYS=y
+CONFIG_UNIX98_PTY_COUNT=256
+
+#
+# I2C support
+#
+# CONFIG_I2C is not set
+
+#
+# Mice
+#
+# CONFIG_BUSMOUSE is not set
+# CONFIG_MOUSE is not set
+
+#
+# Joysticks
+#
+# CONFIG_INPUT_GAMEPORT is not set
+
+#
+# Input core support is needed for gameports
+#
+
+#
+# Input core support is needed for joysticks
+#
+# CONFIG_QIC02_TAPE is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+# CONFIG_AMD_PM768 is not set
+# CONFIG_NVRAM is not set
+# CONFIG_RTC is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# CONFIG_FTAPE is not set
+# CONFIG_AGP is not set
+# CONFIG_DRM is not set
+
+#
+# File systems
+#
+# CONFIG_QUOTA is not set
+CONFIG_AUTOFS_FS=y
+CONFIG_AUTOFS4_FS=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+# CONFIG_ADFS_FS is not set
+# CONFIG_ADFS_FS_RW is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BEFS_DEBUG is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EXT3_FS is not set
+# CONFIG_JBD is not set
+# CONFIG_JBD_DEBUG is not set
+# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_UMSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_JFFS_FS is not set
+# CONFIG_JFFS2_FS is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_TMPFS is not set
+CONFIG_RAMFS=y
+# CONFIG_ISO9660_FS is not set
+# CONFIG_JOLIET is not set
+# CONFIG_ZISOFS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_NTFS_FS is not set
+# CONFIG_NTFS_RW is not set
+# CONFIG_HPFS_FS is not set
+CONFIG_PROC_FS=y
+# CONFIG_DEVFS_FS is not set
+# CONFIG_DEVFS_MOUNT is not set
+# CONFIG_DEVFS_DEBUG is not set
+CONFIG_DEVPTS_FS=y
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_QNX4FS_RW is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_EXT2_FS=y
+# CONFIG_SYSV_FS is not set
+# CONFIG_UDF_FS is not set
+# CONFIG_UDF_RW is not set
+# CONFIG_UFS_FS is not set
+# CONFIG_UFS_FS_WRITE is not set
+
+#
+# Network File Systems
+#
+# CONFIG_CODA_FS is not set
+# CONFIG_INTERMEZZO_FS is not set
+CONFIG_NFS_FS=y
+# CONFIG_NFS_V3 is not set
+CONFIG_ROOT_NFS=y
+# CONFIG_NFSD is not set
+# CONFIG_NFSD_V3 is not set
+# CONFIG_NFSD_TCP is not set
+CONFIG_SUNRPC=y
+CONFIG_LOCKD=y
+# CONFIG_SMB_FS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_NCPFS_PACKET_SIGNING is not set
+# CONFIG_NCPFS_IOCTL_LOCKING is not set
+# CONFIG_NCPFS_STRONG is not set
+# CONFIG_NCPFS_NFS_NS is not set
+# CONFIG_NCPFS_OS2_NS is not set
+# CONFIG_NCPFS_SMALLDOS is not set
+# CONFIG_NCPFS_NLS is not set
+# CONFIG_NCPFS_EXTRAS is not set
+# CONFIG_ZISOFS_FS is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_BSD_DISKLABEL is not set
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+# CONFIG_LDM_PARTITION is not set
+CONFIG_SGI_PARTITION=y
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+# CONFIG_SMB_NLS is not set
+# CONFIG_NLS is not set
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# Console drivers
+#
+# CONFIG_VGA_CONSOLE is not set
+# CONFIG_MDA_CONSOLE is not set
+
+#
+# Frame-buffer support
+#
+# CONFIG_FB is not set
+
+#
+# Sound
+#
+# CONFIG_SOUND is not set
+
+#
+# USB support
+#
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+CONFIG_USB_BANDWIDTH=y
+CONFIG_USB_LONG_TIMEOUT=y
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_EHCI_HCD is not set
+# CONFIG_USB_UHCI is not set
+# CONFIG_USB_UHCI_ALT is not set
+CONFIG_USB_OHCI=y
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_AUDIO is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_BLUETOOTH is not set
+# CONFIG_USB_MIDI is not set
+
+#
+#   SCSI support is needed for USB Storage
+#
+# CONFIG_USB_STORAGE is not set
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
+# CONFIG_USB_STORAGE_DPCM is not set
+# CONFIG_USB_STORAGE_HP8200e is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+# CONFIG_USB_ACM is not set
+# CONFIG_USB_PRINTER is not set
+
+#
+# USB Human Interface Devices (HID)
+#
+# CONFIG_USB_HID is not set
+
+#
+#     Input core support is needed for USB HID input layer or HIDBP support
+#
+# CONFIG_USB_HIDINPUT is not set
+# CONFIG_USB_HIDDEV is not set
+# CONFIG_USB_KBD is not set
+# CONFIG_USB_MOUSE is not set
+# CONFIG_USB_AIPTEK is not set
+# CONFIG_USB_WACOM is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_DC2XX is not set
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_SCANNER is not set
+# CONFIG_USB_MICROTEK is not set
+# CONFIG_USB_HPUSBSCSI is not set
+
+#
+# USB Multimedia devices
+#
+
+#
+#   Video4Linux support is needed for USB Multimedia device support
+#
+
+#
+# USB Network adaptors
+#
+CONFIG_USB_PEGASUS=y
+CONFIG_USB_RTL8150=y
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_CDCETHER is not set
+# CONFIG_USB_USBNET is not set
+
+#
+# USB port drivers
+#
+# CONFIG_USB_USS720 is not set
+
+#
+# USB Serial Converter support
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_AUERSWALD is not set
+# CONFIG_USB_TIGL is not set
+# CONFIG_USB_BRLVGER is not set
+# CONFIG_USB_LCD is not set
+
+#
+# Bluetooth support
+#
+# CONFIG_BLUEZ is not set
+
+#
+# Kernel hacking
+#
+CONFIG_CROSSCOMPILE=y
+# CONFIG_DEBUG is not set
+# CONFIG_REMOTE_DEBUG is not set
+# CONFIG_GDB_CONSOLE is not set
+# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_MIPS_UNCACHED is not set
+
+#
+# Library routines
+#
+# CONFIG_ZLIB_INFLATE is not set
+# CONFIG_ZLIB_DEFLATE is not set
diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-nino linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-nino
--- linux-2.4.20/arch/mips/defconfig-nino	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-nino	2003-02-24 15:17:03.000000000 -0600
@@ -3,6 +3,7 @@
 #
 CONFIG_MIPS=y
 CONFIG_MIPS32=y
+# CONFIG_MIPS64 is not set
 
 #
 # Code maturity level options
@@ -10,95 +11,118 @@
 CONFIG_EXPERIMENTAL=y
 
 #
+# Loadable module support
+#
+CONFIG_MODULES=y
+# CONFIG_MODVERSIONS is not set
+CONFIG_KMOD=y
+
+#
 # Machine selection
 #
 # CONFIG_ACER_PICA_61 is not set
-# CONFIG_ALGOR_P4032 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
+# CONFIG_MIPS_PB1000 is not set
+# CONFIG_MIPS_PB1100 is not set
+# CONFIG_MIPS_PB1500 is not set
 # CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
 # CONFIG_MIPS_COBALT is not set
 # CONFIG_DECSTATION is not set
-# CONFIG_DDB5074 is not set
 # CONFIG_MIPS_EV64120 is not set
 # CONFIG_MIPS_EV96100 is not set
+# CONFIG_MIPS_IVR is not set
+# CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
+# CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
-# CONFIG_MIPS_MALTA is not set
-CONFIG_NINO=y
-# CONFIG_NINO_4MB is not set
-CONFIG_NINO_8MB=y
-# CONFIG_NINO_16MB is not set
-# CONFIG_SIBYTE_SB1250 is not set
 # CONFIG_MIPS_MAGNUM_4000 is not set
+# CONFIG_MIPS_MALTA is not set
+# CONFIG_MIPS_SEAD is not set
 # CONFIG_MOMENCO_OCELOT is not set
+# CONFIG_MOMENCO_OCELOT_G is not set
+# CONFIG_DDB5074 is not set
 # CONFIG_DDB5476 is not set
 # CONFIG_DDB5477 is not set
 # CONFIG_NEC_OSPREY is not set
+# CONFIG_NEC_EAGLE is not set
 # CONFIG_OLIVETTI_M700 is not set
+CONFIG_NINO=y
+# CONFIG_NINO_4MB is not set
+CONFIG_NINO_8MB=y
+# CONFIG_NINO_16MB is not set
 # CONFIG_SGI_IP22 is not set
+# CONFIG_SGI_IP27 is not set
+# CONFIG_SGI_IP32 is not set
+# CONFIG_SIBYTE_SB1xxx_SOC is not set
 # CONFIG_SNI_RM200_PCI is not set
-# CONFIG_MIPS_ITE8172 is not set
-# CONFIG_MIPS_IVR is not set
-# CONFIG_MIPS_PB1000 is not set
-# CONFIG_MIPS_PB1500 is not set
+# CONFIG_TANBAC_TB0226 is not set
 # CONFIG_TOSHIBA_JMR3927 is not set
-# CONFIG_HP_LASERJET is not set
+# CONFIG_VICTOR_MPC30X is not set
+# CONFIG_ZAO_CAPCELLA is not set
 # CONFIG_HIGHMEM is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
-# CONFIG_MCA is not set
-# CONFIG_SBUS is not set
-CONFIG_NEW_IRQ=y
 CONFIG_NEW_TIME_C=y
 CONFIG_NONCOHERENT_IO=y
 CONFIG_PC_KEYB=y
-# CONFIG_ISA is not set
-# CONFIG_EISA is not set
-
-#
-# Loadable module support
-#
-CONFIG_MODULES=y
-# CONFIG_MODVERSIONS is not set
-CONFIG_KMOD=y
+# CONFIG_MIPS_AU1000 is not set
 
 #
 # CPU selection
 #
+# CONFIG_CPU_MIPS32 is not set
+# CONFIG_CPU_MIPS64 is not set
 CONFIG_CPU_R3000=y
 # CONFIG_CPU_TX39XX is not set
-# CONFIG_CPU_R6000 is not set
 # CONFIG_CPU_VR41XX is not set
 # CONFIG_CPU_R4300 is not set
 # CONFIG_CPU_R4X00 is not set
 # CONFIG_CPU_TX49XX is not set
 # CONFIG_CPU_R5000 is not set
 # CONFIG_CPU_R5432 is not set
-# CONFIG_CPU_RM7000 is not set
+# CONFIG_CPU_R6000 is not set
 # CONFIG_CPU_NEVADA is not set
+# CONFIG_CPU_R8000 is not set
 # CONFIG_CPU_R10000 is not set
+# CONFIG_CPU_RM7000 is not set
 # CONFIG_CPU_SB1 is not set
-# CONFIG_CPU_MIPS32 is not set
-# CONFIG_CPU_MIPS64 is not set
 # CONFIG_CPU_ADVANCED is not set
 # CONFIG_CPU_HAS_LLSC is not set
 # CONFIG_CPU_HAS_LLDSCD is not set
 # CONFIG_CPU_HAS_WB is not set
+# CONFIG_CPU_HAS_SYNC is not set
 
 #
 # General setup
 #
 CONFIG_CPU_LITTLE_ENDIAN=y
-CONFIG_KCORE_ELF=y
-CONFIG_ELF_KERNEL=y
-# CONFIG_BINFMT_AOUT is not set
-CONFIG_BINFMT_ELF=y
-# CONFIG_BINFMT_MISC is not set
 CONFIG_NET=y
+# CONFIG_PCI is not set
+# CONFIG_ISA is not set
+# CONFIG_EISA is not set
+# CONFIG_TC is not set
+# CONFIG_MCA is not set
+# CONFIG_SBUS is not set
 # CONFIG_HOTPLUG is not set
 # CONFIG_PCMCIA is not set
 # CONFIG_HOTPLUG_PCI is not set
 CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
-# CONFIG_SYSCTL is not set
+CONFIG_SYSCTL=y
+CONFIG_KCORE_ELF=y
+# CONFIG_KCORE_AOUT is not set
+# CONFIG_BINFMT_AOUT is not set
+CONFIG_BINFMT_ELF=y
+# CONFIG_MIPS32_COMPAT is not set
+# CONFIG_MIPS32_O32 is not set
+# CONFIG_MIPS32_N32 is not set
+# CONFIG_BINFMT_ELF32 is not set
+# CONFIG_BINFMT_MISC is not set
+# CONFIG_PM is not set
 
 #
 # Memory Technology Devices (MTD)
@@ -111,6 +135,12 @@
 # CONFIG_PARPORT is not set
 
 #
+# Plug and Play configuration
+#
+# CONFIG_PNP is not set
+# CONFIG_ISAPNP is not set
+
+#
 # Block devices
 #
 # CONFIG_BLK_DEV_FD is not set
@@ -118,12 +148,15 @@
 # CONFIG_PARIDE is not set
 # CONFIG_BLK_CPQ_DA is not set
 # CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_CISS_SCSI_TAPE is not set
 # CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
 # CONFIG_BLK_DEV_LOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_SIZE=512
 CONFIG_BLK_DEV_INITRD=y
+# CONFIG_BLK_STATS is not set
 
 #
 # MIPS initrd options
@@ -170,6 +203,11 @@
 #
 # CONFIG_IPX is not set
 # CONFIG_ATALK is not set
+
+#
+# Appletalk devices
+#
+# CONFIG_DEV_APPLETALK is not set
 # CONFIG_DECNET is not set
 # CONFIG_BRIDGE is not set
 # CONFIG_X25 is not set
@@ -187,6 +225,11 @@
 # CONFIG_NET_SCHED is not set
 
 #
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+
+#
 # Telephony Support
 #
 # CONFIG_PHONE is not set
@@ -206,15 +249,6 @@
 # CONFIG_SCSI is not set
 
 #
-# I2O device support
-#
-# CONFIG_I2O is not set
-# CONFIG_I2O_BLOCK is not set
-# CONFIG_I2O_LAN is not set
-# CONFIG_I2O_SCSI is not set
-# CONFIG_I2O_PROC is not set
-
-#
 # Network device support
 #
 # CONFIG_NETDEVICES is not set
@@ -235,9 +269,13 @@
 # CONFIG_ISDN is not set
 
 #
-# Old CD-ROM drivers (not SCSI, not IDE)
+# Input core support
 #
-# CONFIG_CD_NO_IDESCSI is not set
+# CONFIG_INPUT is not set
+# CONFIG_INPUT_KEYBDEV is not set
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
 
 #
 # Character devices
@@ -257,6 +295,7 @@
 # CONFIG_MOXA_SMARTIO is not set
 # CONFIG_ISI is not set
 # CONFIG_SYNCLINK is not set
+# CONFIG_SYNCLINKMP is not set
 # CONFIG_N_HDLC is not set
 # CONFIG_RISCOM8 is not set
 # CONFIG_SPECIALIX is not set
@@ -265,7 +304,6 @@
 # CONFIG_STALDRV is not set
 CONFIG_SERIAL_TX3912=y
 CONFIG_SERIAL_TX3912_CONSOLE=y
-# CONFIG_AU1000_UART is not set
 # CONFIG_TXX927_SERIAL is not set
 # CONFIG_UNIX98_PTYS is not set
 
@@ -298,7 +336,7 @@
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_INTEL_RNG is not set
+# CONFIG_AMD_PM768 is not set
 # CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_DTLK is not set
@@ -313,11 +351,6 @@
 # CONFIG_DRM is not set
 
 #
-# Multimedia devices
-#
-# CONFIG_VIDEO_DEV is not set
-
-#
 # File systems
 #
 # CONFIG_QUOTA is not set
@@ -330,6 +363,8 @@
 # CONFIG_ADFS_FS_RW is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BEFS_DEBUG is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EXT3_FS is not set
 # CONFIG_JBD is not set
@@ -343,10 +378,13 @@
 # CONFIG_JFFS2_FS is not set
 # CONFIG_CRAMFS is not set
 # CONFIG_TMPFS is not set
-# CONFIG_RAMFS is not set
+CONFIG_RAMFS=y
 # CONFIG_ISO9660_FS is not set
 # CONFIG_JOLIET is not set
 # CONFIG_ZISOFS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
 # CONFIG_MINIX_FS is not set
 # CONFIG_VXFS_FS is not set
 # CONFIG_NTFS_FS is not set
@@ -377,6 +415,7 @@
 # CONFIG_ROOT_NFS is not set
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
+# CONFIG_NFSD_TCP is not set
 # CONFIG_SUNRPC is not set
 # CONFIG_LOCKD is not set
 # CONFIG_SMB_FS is not set
@@ -390,7 +429,6 @@
 # CONFIG_NCPFS_NLS is not set
 # CONFIG_NCPFS_EXTRAS is not set
 # CONFIG_ZISOFS_FS is not set
-# CONFIG_ZLIB_FS_INFLATE is not set
 
 #
 # Partition Types
@@ -401,6 +439,11 @@
 # CONFIG_NLS is not set
 
 #
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
 # Console drivers
 #
 # CONFIG_VGA_CONSOLE is not set
@@ -412,14 +455,6 @@
 CONFIG_FB=y
 CONFIG_DUMMY_CONSOLE=y
 # CONFIG_FB_CYBER2000 is not set
-# CONFIG_FB_MATROX is not set
-# CONFIG_FB_ATY is not set
-# CONFIG_FB_RADEON is not set
-# CONFIG_FB_ATY128 is not set
-# CONFIG_FB_SIS is not set
-# CONFIG_FB_3DFX is not set
-# CONFIG_FB_VOODOO1 is not set
-# CONFIG_FB_TRIDENT is not set
 CONFIG_FB_TX3912=y
 # CONFIG_FB_VIRTUAL is not set
 CONFIG_FBCON_ADVANCED=y
@@ -455,121 +490,22 @@
 # CONFIG_USB is not set
 
 #
-# USB Controllers
-#
-# CONFIG_USB_UHCI is not set
-# CONFIG_USB_UHCI_ALT is not set
-# CONFIG_USB_OHCI is not set
-
-#
-# USB Device Class drivers
-#
-# CONFIG_USB_AUDIO is not set
-# CONFIG_USB_BLUETOOTH is not set
-
-#
-#   SCSI support is needed for USB Storage
-#
-# CONFIG_USB_STORAGE is not set
-# CONFIG_USB_STORAGE_DEBUG is not set
-# CONFIG_USB_STORAGE_DATAFAB is not set
-# CONFIG_USB_STORAGE_FREECOM is not set
-# CONFIG_USB_STORAGE_ISD200 is not set
-# CONFIG_USB_STORAGE_DPCM is not set
-# CONFIG_USB_STORAGE_HP8200e is not set
-# CONFIG_USB_STORAGE_SDDR09 is not set
-# CONFIG_USB_STORAGE_JUMPSHOT is not set
-# CONFIG_USB_ACM is not set
-# CONFIG_USB_PRINTER is not set
-
-#
-# USB Human Interface Devices (HID)
-#
-
-#
-#   Input core support is needed for USB HID
-#
-
-#
-# USB Imaging devices
-#
-# CONFIG_USB_DC2XX is not set
-# CONFIG_USB_MDC800 is not set
-# CONFIG_USB_SCANNER is not set
-# CONFIG_USB_MICROTEK is not set
-# CONFIG_USB_HPUSBSCSI is not set
-
-#
-# USB Multimedia devices
-#
-
-#
-#   Video4Linux support is needed for USB Multimedia device support
-#
-
-#
-# USB Network adaptors
-#
-# CONFIG_USB_PEGASUS is not set
-# CONFIG_USB_KAWETH is not set
-# CONFIG_USB_CATC is not set
-# CONFIG_USB_CDCETHER is not set
-# CONFIG_USB_USBNET is not set
-
-#
-# USB port drivers
-#
-# CONFIG_USB_USS720 is not set
-
-#
-# USB Serial Converter support
-#
-# CONFIG_USB_SERIAL is not set
-# CONFIG_USB_SERIAL_GENERIC is not set
-# CONFIG_USB_SERIAL_BELKIN is not set
-# CONFIG_USB_SERIAL_WHITEHEAT is not set
-# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
-# CONFIG_USB_SERIAL_EMPEG is not set
-# CONFIG_USB_SERIAL_FTDI_SIO is not set
-# CONFIG_USB_SERIAL_VISOR is not set
-# CONFIG_USB_SERIAL_IPAQ is not set
-# CONFIG_USB_SERIAL_IR is not set
-# CONFIG_USB_SERIAL_EDGEPORT is not set
-# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
-# CONFIG_USB_SERIAL_KEYSPAN is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set
-# CONFIG_USB_SERIAL_MCT_U232 is not set
-# CONFIG_USB_SERIAL_KLSI is not set
-# CONFIG_USB_SERIAL_PL2303 is not set
-# CONFIG_USB_SERIAL_CYBERJACK is not set
-# CONFIG_USB_SERIAL_XIRCOM is not set
-# CONFIG_USB_SERIAL_OMNINET is not set
-
-#
-# USB Miscellaneous drivers
-#
-# CONFIG_USB_RIO500 is not set
-
-#
-# Input core support
+# Bluetooth support
 #
-# CONFIG_INPUT is not set
-# CONFIG_INPUT_KEYBDEV is not set
-# CONFIG_INPUT_MOUSEDEV is not set
-# CONFIG_INPUT_JOYDEV is not set
-# CONFIG_INPUT_EVDEV is not set
+# CONFIG_BLUEZ is not set
 
 #
 # Kernel hacking
 #
 CONFIG_CROSSCOMPILE=y
 # CONFIG_DEBUG is not set
+# CONFIG_REMOTE_DEBUG is not set
+# CONFIG_GDB_CONSOLE is not set
 # CONFIG_MAGIC_SYSRQ is not set
 # CONFIG_MIPS_UNCACHED is not set
+
+#
+# Library routines
+#
+# CONFIG_ZLIB_INFLATE is not set
+# CONFIG_ZLIB_DEFLATE is not set
diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-ocelot linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-ocelot
--- linux-2.4.20/arch/mips/defconfig-ocelot	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-ocelot	2003-02-24 15:17:03.000000000 -0600
@@ -3,6 +3,7 @@
 #
 CONFIG_MIPS=y
 CONFIG_MIPS32=y
+# CONFIG_MIPS64 is not set
 
 #
 # Code maturity level options
@@ -10,97 +11,120 @@
 CONFIG_EXPERIMENTAL=y
 
 #
+# Loadable module support
+#
+# CONFIG_MODULES is not set
+
+#
 # Machine selection
 #
 # CONFIG_ACER_PICA_61 is not set
-# CONFIG_ALGOR_P4032 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
+# CONFIG_MIPS_PB1000 is not set
+# CONFIG_MIPS_PB1100 is not set
+# CONFIG_MIPS_PB1500 is not set
 # CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
 # CONFIG_MIPS_COBALT is not set
 # CONFIG_DECSTATION is not set
-# CONFIG_DDB5074 is not set
 # CONFIG_MIPS_EV64120 is not set
 # CONFIG_MIPS_EV96100 is not set
+# CONFIG_MIPS_IVR is not set
+# CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
+# CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
-# CONFIG_MIPS_MALTA is not set
-# CONFIG_NINO is not set
-# CONFIG_SIBYTE_SB1250 is not set
 # CONFIG_MIPS_MAGNUM_4000 is not set
+# CONFIG_MIPS_MALTA is not set
+# CONFIG_MIPS_SEAD is not set
 CONFIG_MOMENCO_OCELOT=y
+# CONFIG_MOMENCO_OCELOT_G is not set
+# CONFIG_DDB5074 is not set
 # CONFIG_DDB5476 is not set
 # CONFIG_DDB5477 is not set
 # CONFIG_NEC_OSPREY is not set
+# CONFIG_NEC_EAGLE is not set
 # CONFIG_OLIVETTI_M700 is not set
+# CONFIG_NINO is not set
 # CONFIG_SGI_IP22 is not set
+# CONFIG_SGI_IP27 is not set
+# CONFIG_SGI_IP32 is not set
+# CONFIG_SIBYTE_SB1xxx_SOC is not set
 # CONFIG_SNI_RM200_PCI is not set
-# CONFIG_MIPS_ITE8172 is not set
-# CONFIG_MIPS_IVR is not set
-# CONFIG_MIPS_PB1000 is not set
-# CONFIG_MIPS_PB1500 is not set
+# CONFIG_TANBAC_TB0226 is not set
 # CONFIG_TOSHIBA_JMR3927 is not set
-# CONFIG_HP_LASERJET is not set
+# CONFIG_VICTOR_MPC30X is not set
+# CONFIG_ZAO_CAPCELLA is not set
 # CONFIG_HIGHMEM is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
-# CONFIG_MCA is not set
-# CONFIG_SBUS is not set
 CONFIG_PCI=y
 CONFIG_SYSCLK_100=y
-CONFIG_SWAP_IO_SPACE=y
-CONFIG_NEW_IRQ=y
+CONFIG_SWAP_IO_SPACE_W=y
+CONFIG_SWAP_IO_SPACE_L=y
 CONFIG_NONCOHERENT_IO=y
 CONFIG_OLD_TIME_C=y
-# CONFIG_ISA is not set
-# CONFIG_EISA is not set
-
-#
-# Loadable module support
-#
-# CONFIG_MODULES is not set
+# CONFIG_MIPS_AU1000 is not set
 
 #
 # CPU selection
 #
+# CONFIG_CPU_MIPS32 is not set
+# CONFIG_CPU_MIPS64 is not set
 # CONFIG_CPU_R3000 is not set
 # CONFIG_CPU_TX39XX is not set
-# CONFIG_CPU_R6000 is not set
 # CONFIG_CPU_VR41XX is not set
 # CONFIG_CPU_R4300 is not set
 # CONFIG_CPU_R4X00 is not set
 # CONFIG_CPU_TX49XX is not set
 # CONFIG_CPU_R5000 is not set
 # CONFIG_CPU_R5432 is not set
-CONFIG_CPU_RM7000=y
+# CONFIG_CPU_R6000 is not set
 # CONFIG_CPU_NEVADA is not set
+# CONFIG_CPU_R8000 is not set
 # CONFIG_CPU_R10000 is not set
+CONFIG_CPU_RM7000=y
 # CONFIG_CPU_SB1 is not set
-# CONFIG_CPU_MIPS32 is not set
-# CONFIG_CPU_MIPS64 is not set
 CONFIG_CPU_HAS_PREFETCH=y
 # CONFIG_64BIT_PHYS_ADDR is not set
 # CONFIG_CPU_ADVANCED is not set
 CONFIG_CPU_HAS_LLSC=y
 CONFIG_CPU_HAS_LLDSCD=y
 # CONFIG_CPU_HAS_WB is not set
+CONFIG_CPU_HAS_SYNC=y
 
 #
 # General setup
 #
 # CONFIG_CPU_LITTLE_ENDIAN is not set
-CONFIG_KCORE_ELF=y
-CONFIG_ELF_KERNEL=y
 # CONFIG_BINFMT_IRIX is not set
 # CONFIG_FORWARD_KEYBOARD is not set
-# CONFIG_BINFMT_AOUT is not set
-CONFIG_BINFMT_ELF=y
-# CONFIG_BINFMT_MISC is not set
 CONFIG_NET=y
 CONFIG_PCI_NAMES=y
+# CONFIG_ISA is not set
+# CONFIG_EISA is not set
+# CONFIG_TC is not set
+# CONFIG_MCA is not set
+# CONFIG_SBUS is not set
 # CONFIG_HOTPLUG is not set
 # CONFIG_PCMCIA is not set
 # CONFIG_HOTPLUG_PCI is not set
 CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
+CONFIG_KCORE_ELF=y
+# CONFIG_KCORE_AOUT is not set
+# CONFIG_BINFMT_AOUT is not set
+CONFIG_BINFMT_ELF=y
+# CONFIG_MIPS32_COMPAT is not set
+# CONFIG_MIPS32_O32 is not set
+# CONFIG_MIPS32_N32 is not set
+# CONFIG_BINFMT_ELF32 is not set
+# CONFIG_BINFMT_MISC is not set
+# CONFIG_PM is not set
 
 #
 # Memory Technology Devices (MTD)
@@ -113,6 +137,12 @@
 # CONFIG_PARPORT is not set
 
 #
+# Plug and Play configuration
+#
+# CONFIG_PNP is not set
+# CONFIG_ISAPNP is not set
+
+#
 # Block devices
 #
 # CONFIG_BLK_DEV_FD is not set
@@ -120,11 +150,14 @@
 # CONFIG_PARIDE is not set
 # CONFIG_BLK_CPQ_DA is not set
 # CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_CISS_SCSI_TAPE is not set
 # CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
 # CONFIG_BLK_DEV_LOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
 # CONFIG_BLK_DEV_INITRD is not set
+# CONFIG_BLK_STATS is not set
 
 #
 # Multi-device support (RAID and LVM)
@@ -168,6 +201,11 @@
 #
 # CONFIG_IPX is not set
 # CONFIG_ATALK is not set
+
+#
+# Appletalk devices
+#
+# CONFIG_DEV_APPLETALK is not set
 # CONFIG_DECNET is not set
 # CONFIG_BRIDGE is not set
 # CONFIG_X25 is not set
@@ -185,6 +223,11 @@
 # CONFIG_NET_SCHED is not set
 
 #
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+
+#
 # Telephony Support
 #
 # CONFIG_PHONE is not set
@@ -249,11 +292,11 @@
 # CONFIG_APRICOT is not set
 # CONFIG_CS89x0 is not set
 # CONFIG_TULIP is not set
-# CONFIG_TC35815 is not set
 # CONFIG_DE4X5 is not set
 # CONFIG_DGRS is not set
 # CONFIG_DM9102 is not set
 CONFIG_EEPRO100=y
+# CONFIG_E100 is not set
 # CONFIG_LNE390 is not set
 # CONFIG_FEALNX is not set
 # CONFIG_NATSEMI is not set
@@ -265,11 +308,13 @@
 # CONFIG_8139TOO_PIO is not set
 # CONFIG_8139TOO_TUNE_TWISTER is not set
 # CONFIG_8139TOO_8129 is not set
-# CONFIG_8139_NEW_RX_RESET is not set
+# CONFIG_8139_OLD_RX_RESET is not set
 # CONFIG_SIS900 is not set
 # CONFIG_EPIC100 is not set
 # CONFIG_SUNDANCE is not set
+# CONFIG_SUNDANCE_MMIO is not set
 # CONFIG_TLAN is not set
+# CONFIG_TC35815 is not set
 # CONFIG_VIA_RHINE is not set
 # CONFIG_VIA_RHINE_MMIO is not set
 # CONFIG_WINBOND_840 is not set
@@ -281,11 +326,13 @@
 #
 # CONFIG_ACENIC is not set
 # CONFIG_DL2K is not set
+# CONFIG_E1000 is not set
 # CONFIG_MYRI_SBUS is not set
 # CONFIG_NS83820 is not set
 # CONFIG_HAMACHI is not set
 # CONFIG_YELLOWFIN is not set
 # CONFIG_SK98LIN is not set
+# CONFIG_TIGON3 is not set
 # CONFIG_FDDI is not set
 # CONFIG_HIPPI is not set
 # CONFIG_PLIP is not set
@@ -326,9 +373,13 @@
 # CONFIG_ISDN is not set
 
 #
-# Old CD-ROM drivers (not SCSI, not IDE)
+# Input core support
 #
-# CONFIG_CD_NO_IDESCSI is not set
+# CONFIG_INPUT is not set
+# CONFIG_INPUT_KEYBDEV is not set
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
 
 #
 # Character devices
@@ -370,7 +421,7 @@
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
-# CONFIG_INTEL_RNG is not set
+# CONFIG_AMD_PM768 is not set
 # CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_DTLK is not set
@@ -385,11 +436,6 @@
 # CONFIG_DRM is not set
 
 #
-# Multimedia devices
-#
-# CONFIG_VIDEO_DEV is not set
-
-#
 # File systems
 #
 # CONFIG_QUOTA is not set
@@ -402,6 +448,8 @@
 # CONFIG_ADFS_FS_RW is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BEFS_DEBUG is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EXT3_FS is not set
 # CONFIG_JBD is not set
@@ -415,10 +463,13 @@
 # CONFIG_JFFS2_FS is not set
 # CONFIG_CRAMFS is not set
 # CONFIG_TMPFS is not set
-# CONFIG_RAMFS is not set
+CONFIG_RAMFS=y
 # CONFIG_ISO9660_FS is not set
 # CONFIG_JOLIET is not set
 # CONFIG_ZISOFS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
 # CONFIG_MINIX_FS is not set
 # CONFIG_VXFS_FS is not set
 # CONFIG_NTFS_FS is not set
@@ -449,6 +500,7 @@
 CONFIG_ROOT_NFS=y
 CONFIG_NFSD=y
 # CONFIG_NFSD_V3 is not set
+# CONFIG_NFSD_TCP is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
 # CONFIG_SMB_FS is not set
@@ -462,7 +514,6 @@
 # CONFIG_NCPFS_NLS is not set
 # CONFIG_NCPFS_EXTRAS is not set
 # CONFIG_ZISOFS_FS is not set
-# CONFIG_ZLIB_FS_INFLATE is not set
 
 #
 # Partition Types
@@ -473,6 +524,11 @@
 # CONFIG_NLS is not set
 
 #
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
 # Sound
 #
 # CONFIG_SOUND is not set
@@ -483,123 +539,22 @@
 # CONFIG_USB is not set
 
 #
-# USB Controllers
-#
-# CONFIG_USB_UHCI is not set
-# CONFIG_USB_UHCI_ALT is not set
-# CONFIG_USB_OHCI is not set
-
-#
-# USB Device Class drivers
-#
-# CONFIG_USB_AUDIO is not set
-# CONFIG_USB_BLUETOOTH is not set
-
-#
-#   SCSI support is needed for USB Storage
-#
-# CONFIG_USB_STORAGE is not set
-# CONFIG_USB_STORAGE_DEBUG is not set
-# CONFIG_USB_STORAGE_DATAFAB is not set
-# CONFIG_USB_STORAGE_FREECOM is not set
-# CONFIG_USB_STORAGE_ISD200 is not set
-# CONFIG_USB_STORAGE_DPCM is not set
-# CONFIG_USB_STORAGE_HP8200e is not set
-# CONFIG_USB_STORAGE_SDDR09 is not set
-# CONFIG_USB_STORAGE_JUMPSHOT is not set
-# CONFIG_USB_ACM is not set
-# CONFIG_USB_PRINTER is not set
-
-#
-# USB Human Interface Devices (HID)
-#
-
-#
-#   Input core support is needed for USB HID
-#
-
-#
-# USB Imaging devices
-#
-# CONFIG_USB_DC2XX is not set
-# CONFIG_USB_MDC800 is not set
-# CONFIG_USB_SCANNER is not set
-# CONFIG_USB_MICROTEK is not set
-# CONFIG_USB_HPUSBSCSI is not set
-
-#
-# USB Multimedia devices
-#
-
-#
-#   Video4Linux support is needed for USB Multimedia device support
-#
-
-#
-# USB Network adaptors
-#
-# CONFIG_USB_PEGASUS is not set
-# CONFIG_USB_KAWETH is not set
-# CONFIG_USB_CATC is not set
-# CONFIG_USB_CDCETHER is not set
-# CONFIG_USB_USBNET is not set
-
-#
-# USB port drivers
-#
-# CONFIG_USB_USS720 is not set
-
-#
-# USB Serial Converter support
-#
-# CONFIG_USB_SERIAL is not set
-# CONFIG_USB_SERIAL_GENERIC is not set
-# CONFIG_USB_SERIAL_BELKIN is not set
-# CONFIG_USB_SERIAL_WHITEHEAT is not set
-# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
-# CONFIG_USB_SERIAL_EMPEG is not set
-# CONFIG_USB_SERIAL_FTDI_SIO is not set
-# CONFIG_USB_SERIAL_VISOR is not set
-# CONFIG_USB_SERIAL_IPAQ is not set
-# CONFIG_USB_SERIAL_IR is not set
-# CONFIG_USB_SERIAL_EDGEPORT is not set
-# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
-# CONFIG_USB_SERIAL_KEYSPAN is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set
-# CONFIG_USB_SERIAL_MCT_U232 is not set
-# CONFIG_USB_SERIAL_KLSI is not set
-# CONFIG_USB_SERIAL_PL2303 is not set
-# CONFIG_USB_SERIAL_CYBERJACK is not set
-# CONFIG_USB_SERIAL_XIRCOM is not set
-# CONFIG_USB_SERIAL_OMNINET is not set
-
-#
-# USB Miscellaneous drivers
-#
-# CONFIG_USB_RIO500 is not set
-
-#
-# Input core support
+# Bluetooth support
 #
-# CONFIG_INPUT is not set
-# CONFIG_INPUT_KEYBDEV is not set
-# CONFIG_INPUT_MOUSEDEV is not set
-# CONFIG_INPUT_JOYDEV is not set
-# CONFIG_INPUT_EVDEV is not set
+# CONFIG_BLUEZ is not set
 
 #
 # Kernel hacking
 #
 CONFIG_CROSSCOMPILE=y
+# CONFIG_DEBUG is not set
 # CONFIG_REMOTE_DEBUG is not set
 # CONFIG_GDB_CONSOLE is not set
-# CONFIG_DEBUG is not set
 # CONFIG_MAGIC_SYSRQ is not set
 # CONFIG_MIPS_UNCACHED is not set
+
+#
+# Library routines
+#
+# CONFIG_ZLIB_INFLATE is not set
+# CONFIG_ZLIB_DEFLATE is not set
diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-osprey linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-osprey
--- linux-2.4.20/arch/mips/defconfig-osprey	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-osprey	2003-02-24 15:17:03.000000000 -0600
@@ -3,6 +3,7 @@
 #
 CONFIG_MIPS=y
 CONFIG_MIPS32=y
+# CONFIG_MIPS64 is not set
 
 #
 # Code maturity level options
@@ -20,38 +21,49 @@
 # Machine selection
 #
 # CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
 # CONFIG_MIPS_PB1000 is not set
+# CONFIG_MIPS_PB1100 is not set
 # CONFIG_MIPS_PB1500 is not set
-# CONFIG_ALGOR_P4032 is not set
 # CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
 # CONFIG_MIPS_COBALT is not set
 # CONFIG_DECSTATION is not set
 # CONFIG_MIPS_EV64120 is not set
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MAGNUM_4000 is not set
 # CONFIG_MIPS_MALTA is not set
+# CONFIG_MIPS_SEAD is not set
 # CONFIG_MOMENCO_OCELOT is not set
+# CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_DDB5074 is not set
 # CONFIG_DDB5476 is not set
 # CONFIG_DDB5477 is not set
 CONFIG_NEC_OSPREY=y
+# CONFIG_NEC_EAGLE is not set
 # CONFIG_OLIVETTI_M700 is not set
 # CONFIG_NINO is not set
 # CONFIG_SGI_IP22 is not set
-# CONFIG_SIBYTE_SB1250 is not set
+# CONFIG_SGI_IP27 is not set
+# CONFIG_SGI_IP32 is not set
+# CONFIG_SIBYTE_SB1xxx_SOC is not set
 # CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
 # CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
+# CONFIG_ZAO_CAPCELLA is not set
 # CONFIG_HIGHMEM is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
 CONFIG_VR4181=y
-CONFIG_SERIAL=y
-CONFIG_SERIAL_MANY_PORTS=y
-CONFIG_NEW_IRQ=y
 CONFIG_IRQ_CPU=y
 CONFIG_NEW_TIME_C=y
 CONFIG_NONCOHERENT_IO=y
@@ -62,25 +74,27 @@
 #
 # CPU selection
 #
+# CONFIG_CPU_MIPS32 is not set
+# CONFIG_CPU_MIPS64 is not set
 # CONFIG_CPU_R3000 is not set
 # CONFIG_CPU_TX39XX is not set
-# CONFIG_CPU_R6000 is not set
 CONFIG_CPU_VR41XX=y
 # CONFIG_CPU_R4300 is not set
 # CONFIG_CPU_R4X00 is not set
 # CONFIG_CPU_TX49XX is not set
 # CONFIG_CPU_R5000 is not set
 # CONFIG_CPU_R5432 is not set
-# CONFIG_CPU_RM7000 is not set
+# CONFIG_CPU_R6000 is not set
 # CONFIG_CPU_NEVADA is not set
+# CONFIG_CPU_R8000 is not set
 # CONFIG_CPU_R10000 is not set
+# CONFIG_CPU_RM7000 is not set
 # CONFIG_CPU_SB1 is not set
-# CONFIG_CPU_MIPS32 is not set
-# CONFIG_CPU_MIPS64 is not set
 # CONFIG_CPU_ADVANCED is not set
 # CONFIG_CPU_HAS_LLSC is not set
 # CONFIG_CPU_HAS_LLDSCD is not set
 # CONFIG_CPU_HAS_WB is not set
+CONFIG_CPU_HAS_SYNC=y
 
 #
 # General setup
@@ -103,6 +117,10 @@
 # CONFIG_KCORE_AOUT is not set
 # CONFIG_BINFMT_AOUT is not set
 CONFIG_BINFMT_ELF=y
+# CONFIG_MIPS32_COMPAT is not set
+# CONFIG_MIPS32_O32 is not set
+# CONFIG_MIPS32_N32 is not set
+# CONFIG_BINFMT_ELF32 is not set
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_PM is not set
 
@@ -137,6 +155,7 @@
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
 # CONFIG_BLK_DEV_INITRD is not set
+# CONFIG_BLK_STATS is not set
 
 #
 # Multi-device support (RAID and LVM)
@@ -215,6 +234,13 @@
 # CONFIG_PHONE_IXJ_PCMCIA is not set
 
 #
+# ATA/IDE/MFM/RLL support
+#
+# CONFIG_IDE is not set
+# CONFIG_BLK_DEV_IDE_MODES is not set
+# CONFIG_BLK_DEV_HD is not set
+
+#
 # SCSI support
 #
 # CONFIG_SCSI is not set
@@ -256,6 +282,7 @@
 #
 # CONFIG_ACENIC is not set
 # CONFIG_DL2K is not set
+# CONFIG_E1000 is not set
 # CONFIG_MYRI_SBUS is not set
 # CONFIG_NS83820 is not set
 # CONFIG_HAMACHI is not set
@@ -302,13 +329,27 @@
 # CONFIG_ISDN is not set
 
 #
+# Input core support
+#
+# CONFIG_INPUT is not set
+# CONFIG_INPUT_KEYBDEV is not set
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+
+#
 # Character devices
 #
 CONFIG_VT=y
 # CONFIG_VT_CONSOLE is not set
 CONFIG_SERIAL=y
 CONFIG_SERIAL_CONSOLE=y
-# CONFIG_SERIAL_EXTENDED is not set
+CONFIG_SERIAL_EXTENDED=y
+CONFIG_SERIAL_MANY_PORTS=y
+# CONFIG_SERIAL_SHARE_IRQ is not set
+# CONFIG_SERIAL_DETECT_IRQ is not set
+# CONFIG_SERIAL_MULTIPORT is not set
+# CONFIG_HUB6 is not set
 # CONFIG_SERIAL_NONSTANDARD is not set
 CONFIG_UNIX98_PTYS=y
 CONFIG_UNIX98_PTY_COUNT=256
@@ -342,6 +383,7 @@
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
+# CONFIG_AMD_PM768 is not set
 # CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_DTLK is not set
@@ -356,11 +398,6 @@
 # CONFIG_DRM is not set
 
 #
-# Multimedia devices
-#
-# CONFIG_VIDEO_DEV is not set
-
-#
 # File systems
 #
 # CONFIG_QUOTA is not set
@@ -373,6 +410,8 @@
 # CONFIG_ADFS_FS_RW is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BEFS_DEBUG is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EXT3_FS is not set
 # CONFIG_JBD is not set
@@ -390,6 +429,9 @@
 # CONFIG_ISO9660_FS is not set
 # CONFIG_JOLIET is not set
 # CONFIG_ZISOFS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
 # CONFIG_MINIX_FS is not set
 # CONFIG_VXFS_FS is not set
 # CONFIG_NTFS_FS is not set
@@ -420,6 +462,7 @@
 CONFIG_ROOT_NFS=y
 CONFIG_NFSD=y
 # CONFIG_NFSD_V3 is not set
+# CONFIG_NFSD_TCP is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
 # CONFIG_SMB_FS is not set
@@ -433,7 +476,6 @@
 # CONFIG_NCPFS_NLS is not set
 # CONFIG_NCPFS_EXTRAS is not set
 # CONFIG_ZISOFS_FS is not set
-# CONFIG_ZLIB_FS_INFLATE is not set
 
 #
 # Partition Types
@@ -444,6 +486,11 @@
 # CONFIG_NLS is not set
 
 #
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
 # Console drivers
 #
 # CONFIG_VGA_CONSOLE is not set
@@ -470,20 +517,17 @@
 # CONFIG_BLUEZ is not set
 
 #
-# Input core support
-#
-# CONFIG_INPUT is not set
-# CONFIG_INPUT_KEYBDEV is not set
-# CONFIG_INPUT_MOUSEDEV is not set
-# CONFIG_INPUT_JOYDEV is not set
-# CONFIG_INPUT_EVDEV is not set
-
-#
 # Kernel hacking
 #
 CONFIG_CROSSCOMPILE=y
+# CONFIG_DEBUG is not set
 # CONFIG_REMOTE_DEBUG is not set
 # CONFIG_GDB_CONSOLE is not set
-# CONFIG_DEBUG is not set
 # CONFIG_MAGIC_SYSRQ is not set
 # CONFIG_MIPS_UNCACHED is not set
+
+#
+# Library routines
+#
+# CONFIG_ZLIB_INFLATE is not set
+# CONFIG_ZLIB_DEFLATE is not set
diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-pb1000 linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-pb1000
--- linux-2.4.20/arch/mips/defconfig-pb1000	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-pb1000	2003-02-24 15:17:03.000000000 -0600
@@ -21,18 +21,23 @@
 # Machine selection
 #
 # CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
 CONFIG_MIPS_PB1000=y
 CONFIG_PCI_AUTO=y
 # CONFIG_MIPS_PB1100 is not set
 # CONFIG_MIPS_PB1500 is not set
-# CONFIG_ALGOR_P4032 is not set
 # CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
 # CONFIG_MIPS_COBALT is not set
 # CONFIG_DECSTATION is not set
 # CONFIG_MIPS_EV64120 is not set
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MAGNUM_4000 is not set
@@ -52,19 +57,23 @@
 # CONFIG_SGI_IP32 is not set
 # CONFIG_SIBYTE_SB1xxx_SOC is not set
 # CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
 # CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
 # CONFIG_ZAO_CAPCELLA is not set
 # CONFIG_HIGHMEM is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
-CONFIG_MIPS_AU1000=y
-CONFIG_NEW_IRQ=y
+CONFIG_CPU_AU1X00=y
+CONFIG_CPU_AU1000=y
 CONFIG_PCI=y
 CONFIG_NEW_PCI=y
 CONFIG_NONCOHERENT_IO=y
 CONFIG_PC_KEYB=y
-CONFIG_SWAP_IO_SPACE=y
-CONFIG_AU1000_USB_DEVICE=y
+CONFIG_SWAP_IO_SPACE_W=y
+CONFIG_SWAP_IO_SPACE_L=y
+CONFIG_AU1X00_USB_DEVICE=y
+# CONFIG_MIPS_AU1000 is not set
 
 #
 # CPU selection
@@ -115,8 +124,9 @@
 # CONFIG_TCIC is not set
 # CONFIG_I82092 is not set
 # CONFIG_I82365 is not set
-CONFIG_PCMCIA_AU1000=m
+CONFIG_PCMCIA_AU1X00=m
 CONFIG_PCMCIA_PB1X00=y
+# CONFIG_PCMCIA_DB1X00 is not set
 
 #
 # PCI Hotplug Support
@@ -133,6 +143,8 @@
 # CONFIG_BINFMT_AOUT is not set
 CONFIG_BINFMT_ELF=y
 # CONFIG_MIPS32_COMPAT is not set
+# CONFIG_MIPS32_O32 is not set
+# CONFIG_MIPS32_N32 is not set
 # CONFIG_BINFMT_ELF32 is not set
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_PM is not set
@@ -178,15 +190,16 @@
 CONFIG_MTD_PB1000=y
 # CONFIG_MTD_PB1500 is not set
 # CONFIG_MTD_PB1100 is not set
+# CONFIG_MTD_DB1X00 is not set
 # CONFIG_MTD_CSTM_MIPS_IXX is not set
 # CONFIG_MTD_OCELOT is not set
+# CONFIG_MTD_LASAT is not set
 # CONFIG_MTD_PCI is not set
 
 #
 # Self-contained MTD device drivers
 #
 # CONFIG_MTD_PMC551 is not set
-# CONFIG_MTD_MS02NV is not set
 # CONFIG_MTD_SLRAM is not set
 # CONFIG_MTD_MTDRAM is not set
 # CONFIG_MTD_BLKMTD is not set
@@ -392,7 +405,7 @@
 # Ethernet (10 or 100Mbit)
 #
 CONFIG_NET_ETHERNET=y
-CONFIG_MIPS_AU1000_ENET=y
+CONFIG_MIPS_AU1X00_ENET=y
 # CONFIG_SUNLANCE is not set
 # CONFIG_HAPPYMEAL is not set
 # CONFIG_SUNBMAC is not set
@@ -552,10 +565,8 @@
 # CONFIG_STALDRV is not set
 # CONFIG_SERIAL_TX3912 is not set
 # CONFIG_SERIAL_TX3912_CONSOLE is not set
-CONFIG_AU1000_UART=y
-CONFIG_AU1000_SERIAL_CONSOLE=y
-# CONFIG_AU1000_USB_TTY is not set
-# CONFIG_AU1000_USB_RAW is not set
+CONFIG_AU1X00_UART=y
+CONFIG_AU1X00_SERIAL_CONSOLE=y
 # CONFIG_TXX927_SERIAL is not set
 CONFIG_UNIX98_PTYS=y
 CONFIG_UNIX98_PTY_COUNT=256
@@ -589,6 +600,7 @@
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
+# CONFIG_AMD_PM768 is not set
 # CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_DTLK is not set
@@ -607,8 +619,8 @@
 #
 # CONFIG_PCMCIA_SERIAL_CS is not set
 # CONFIG_SYNCLINK_CS is not set
-CONFIG_AU1000_GPIO=y
-# CONFIG_TS_AU1000_ADS7846 is not set
+# CONFIG_AU1X00_GPIO is not set
+# CONFIG_TS_AU1X00_ADS7846 is not set
 
 #
 # File systems
@@ -776,7 +788,7 @@
 # CONFIG_SOUND_ICH is not set
 # CONFIG_SOUND_RME96XX is not set
 # CONFIG_SOUND_SONICVIBES is not set
-CONFIG_SOUND_AU1000=y
+CONFIG_SOUND_AU1X00=y
 # CONFIG_SOUND_TRIDENT is not set
 # CONFIG_SOUND_MSNDCLAS is not set
 # CONFIG_SOUND_MSNDPIN is not set
@@ -799,9 +811,9 @@
 # Kernel hacking
 #
 CONFIG_CROSSCOMPILE=y
+# CONFIG_DEBUG is not set
 # CONFIG_REMOTE_DEBUG is not set
 # CONFIG_GDB_CONSOLE is not set
-# CONFIG_DEBUG is not set
 # CONFIG_MAGIC_SYSRQ is not set
 # CONFIG_MIPS_UNCACHED is not set
 
diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-pb1100 linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-pb1100
--- linux-2.4.20/arch/mips/defconfig-pb1100	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-pb1100	2003-02-24 15:17:03.000000000 -0600
@@ -21,17 +21,22 @@
 # Machine selection
 #
 # CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
 # CONFIG_MIPS_PB1000 is not set
 CONFIG_MIPS_PB1100=y
 # CONFIG_MIPS_PB1500 is not set
-# CONFIG_ALGOR_P4032 is not set
 # CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
 # CONFIG_MIPS_COBALT is not set
 # CONFIG_DECSTATION is not set
 # CONFIG_MIPS_EV64120 is not set
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MAGNUM_4000 is not set
@@ -51,20 +56,24 @@
 # CONFIG_SGI_IP32 is not set
 # CONFIG_SIBYTE_SB1xxx_SOC is not set
 # CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
 # CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
 # CONFIG_ZAO_CAPCELLA is not set
 # CONFIG_HIGHMEM is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
-CONFIG_MIPS_AU1000=y
-CONFIG_NEW_IRQ=y
+CONFIG_CPU_AU1X00=y
+CONFIG_CPU_AU1100=y
 CONFIG_PCI=y
 # CONFIG_PCI_AUTO is not set
 CONFIG_NEW_PCI=y
 CONFIG_NONCOHERENT_IO=y
 CONFIG_PC_KEYB=y
-CONFIG_SWAP_IO_SPACE=y
-CONFIG_AU1000_USB_DEVICE=y
+CONFIG_SWAP_IO_SPACE_W=y
+CONFIG_SWAP_IO_SPACE_L=y
+CONFIG_AU1X00_USB_DEVICE=y
+# CONFIG_MIPS_AU1000 is not set
 
 #
 # CPU selection
@@ -105,26 +114,9 @@
 # CONFIG_TC is not set
 # CONFIG_MCA is not set
 # CONFIG_SBUS is not set
-CONFIG_HOTPLUG=y
-
-#
-# PCMCIA/CardBus support
-#
-CONFIG_PCMCIA=m
-# CONFIG_CARDBUS is not set
-# CONFIG_TCIC is not set
-# CONFIG_I82092 is not set
-# CONFIG_I82365 is not set
-CONFIG_PCMCIA_AU1000=m
-CONFIG_PCMCIA_PB1X00=y
-
-#
-# PCI Hotplug Support
-#
+# CONFIG_HOTPLUG is not set
+# CONFIG_PCMCIA is not set
 # CONFIG_HOTPLUG_PCI is not set
-# CONFIG_HOTPLUG_PCI_COMPAQ is not set
-# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
-# CONFIG_HOTPLUG_PCI_ACPI is not set
 CONFIG_SYSVIPC=y
 # CONFIG_BSD_PROCESS_ACCT is not set
 CONFIG_SYSCTL=y
@@ -133,6 +125,8 @@
 # CONFIG_BINFMT_AOUT is not set
 CONFIG_BINFMT_ELF=y
 # CONFIG_MIPS32_COMPAT is not set
+# CONFIG_MIPS32_O32 is not set
+# CONFIG_MIPS32_N32 is not set
 # CONFIG_BINFMT_ELF32 is not set
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_PM is not set
@@ -177,16 +171,19 @@
 # CONFIG_MTD_PHYSMAP is not set
 # CONFIG_MTD_PB1000 is not set
 # CONFIG_MTD_PB1500 is not set
-# CONFIG_MTD_PB1100 is not set
+CONFIG_MTD_PB1100=y
+CONFIG_MTD_PB1500_BOOT=y
+CONFIG_MTD_PB1500_USER=y
+# CONFIG_MTD_DB1X00 is not set
 # CONFIG_MTD_CSTM_MIPS_IXX is not set
 # CONFIG_MTD_OCELOT is not set
+# CONFIG_MTD_LASAT is not set
 # CONFIG_MTD_PCI is not set
 
 #
 # Self-contained MTD device drivers
 #
 # CONFIG_MTD_PMC551 is not set
-# CONFIG_MTD_MS02NV is not set
 # CONFIG_MTD_SLRAM is not set
 # CONFIG_MTD_MTDRAM is not set
 # CONFIG_MTD_BLKMTD is not set
@@ -252,7 +249,7 @@
 # CONFIG_NETLINK_DEV is not set
 CONFIG_NETFILTER=y
 # CONFIG_NETFILTER_DEBUG is not set
-# CONFIG_FILTER is not set
+CONFIG_FILTER=y
 CONFIG_UNIX=y
 CONFIG_INET=y
 CONFIG_IP_MULTICAST=y
@@ -347,7 +344,7 @@
 # CONFIG_BLK_DEV_IDEDISK_WD is not set
 # CONFIG_BLK_DEV_COMMERIAL is not set
 # CONFIG_BLK_DEV_TIVO is not set
-CONFIG_BLK_DEV_IDECS=m
+# CONFIG_BLK_DEV_IDECS is not set
 # CONFIG_BLK_DEV_IDECD is not set
 # CONFIG_BLK_DEV_IDETAPE is not set
 # CONFIG_BLK_DEV_IDEFLOPPY is not set
@@ -404,7 +401,7 @@
 # Ethernet (10 or 100Mbit)
 #
 CONFIG_NET_ETHERNET=y
-CONFIG_MIPS_AU1000_ENET=y
+CONFIG_MIPS_AU1X00_ENET=y
 # CONFIG_SUNLANCE is not set
 # CONFIG_HAPPYMEAL is not set
 # CONFIG_SUNBMAC is not set
@@ -463,22 +460,6 @@
 # CONFIG_WAN is not set
 
 #
-# PCMCIA network device support
-#
-CONFIG_NET_PCMCIA=y
-CONFIG_PCMCIA_3C589=m
-# CONFIG_PCMCIA_3C574 is not set
-# CONFIG_PCMCIA_FMVJ18X is not set
-# CONFIG_PCMCIA_PCNET is not set
-# CONFIG_PCMCIA_AXNET is not set
-# CONFIG_PCMCIA_NMCLAN is not set
-# CONFIG_PCMCIA_SMC91C92 is not set
-# CONFIG_PCMCIA_XIRC2PS is not set
-# CONFIG_ARCNET_COM20020_CS is not set
-# CONFIG_PCMCIA_IBMTR is not set
-# CONFIG_NET_PCMCIA_RADIO is not set
-
-#
 # Amateur Radio support
 #
 # CONFIG_HAMRADIO is not set
@@ -571,10 +552,8 @@
 # CONFIG_STALDRV is not set
 # CONFIG_SERIAL_TX3912 is not set
 # CONFIG_SERIAL_TX3912_CONSOLE is not set
-CONFIG_AU1000_UART=y
-CONFIG_AU1000_SERIAL_CONSOLE=y
-# CONFIG_AU1000_USB_TTY is not set
-# CONFIG_AU1000_USB_RAW is not set
+CONFIG_AU1X00_UART=y
+CONFIG_AU1X00_SERIAL_CONSOLE=y
 # CONFIG_TXX927_SERIAL is not set
 CONFIG_UNIX98_PTYS=y
 CONFIG_UNIX98_PTY_COUNT=256
@@ -608,6 +587,7 @@
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
+# CONFIG_AMD_PM768 is not set
 # CONFIG_NVRAM is not set
 CONFIG_RTC=y
 # CONFIG_DTLK is not set
@@ -620,14 +600,8 @@
 # CONFIG_FTAPE is not set
 # CONFIG_AGP is not set
 # CONFIG_DRM is not set
-
-#
-# PCMCIA character devices
-#
-# CONFIG_PCMCIA_SERIAL_CS is not set
-# CONFIG_SYNCLINK_CS is not set
-# CONFIG_AU1000_GPIO is not set
-# CONFIG_TS_AU1000_ADS7846 is not set
+# CONFIG_AU1X00_GPIO is not set
+# CONFIG_TS_AU1X00_ADS7846 is not set
 
 #
 # File systems
@@ -794,7 +768,7 @@
 # CONFIG_FB_VOODOO1 is not set
 # CONFIG_FB_TRIDENT is not set
 # CONFIG_FB_E1356 is not set
-# CONFIG_FB_AU1100 is not set
+CONFIG_FB_AU1100=y
 # CONFIG_FB_VIRTUAL is not set
 CONFIG_FBCON_ADVANCED=y
 # CONFIG_FBCON_MFB is not set
@@ -838,7 +812,7 @@
 # CONFIG_SOUND_ICH is not set
 # CONFIG_SOUND_RME96XX is not set
 # CONFIG_SOUND_SONICVIBES is not set
-CONFIG_SOUND_AU1000=y
+CONFIG_SOUND_AU1X00=y
 # CONFIG_SOUND_TRIDENT is not set
 # CONFIG_SOUND_MSNDCLAS is not set
 # CONFIG_SOUND_MSNDPIN is not set
@@ -861,9 +835,9 @@
 # Kernel hacking
 #
 CONFIG_CROSSCOMPILE=y
+# CONFIG_DEBUG is not set
 # CONFIG_REMOTE_DEBUG is not set
 # CONFIG_GDB_CONSOLE is not set
-# CONFIG_DEBUG is not set
 # CONFIG_MAGIC_SYSRQ is not set
 # CONFIG_MIPS_UNCACHED is not set
 
diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-pb1500 linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-pb1500
--- linux-2.4.20/arch/mips/defconfig-pb1500	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-pb1500	2003-02-24 15:17:03.000000000 -0600
@@ -21,17 +21,22 @@
 # Machine selection
 #
 # CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
 # CONFIG_MIPS_PB1000 is not set
 # CONFIG_MIPS_PB1100 is not set
 CONFIG_MIPS_PB1500=y
-# CONFIG_ALGOR_P4032 is not set
 # CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
 # CONFIG_MIPS_COBALT is not set
 # CONFIG_DECSTATION is not set
 # CONFIG_MIPS_EV64120 is not set
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MAGNUM_4000 is not set
@@ -51,19 +56,22 @@
 # CONFIG_SGI_IP32 is not set
 # CONFIG_SIBYTE_SB1xxx_SOC is not set
 # CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
 # CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
 # CONFIG_ZAO_CAPCELLA is not set
 # CONFIG_HIGHMEM is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
-CONFIG_MIPS_AU1000=y
-CONFIG_NEW_IRQ=y
+CONFIG_CPU_AU1X00=y
+CONFIG_CPU_AU1500=y
 CONFIG_PCI=y
 CONFIG_NEW_PCI=y
 CONFIG_PCI_AUTO=y
 CONFIG_NONCOHERENT_IO=y
 CONFIG_PC_KEYB=y
-CONFIG_AU1000_USB_DEVICE=y
+CONFIG_AU1X00_USB_DEVICE=y
+# CONFIG_MIPS_AU1000 is not set
 
 #
 # CPU selection
@@ -86,7 +94,7 @@
 # CONFIG_CPU_SB1 is not set
 CONFIG_CPU_HAS_PREFETCH=y
 # CONFIG_VTAG_ICACHE is not set
-# CONFIG_64BIT_PHYS_ADDR is not set
+CONFIG_64BIT_PHYS_ADDR=y
 CONFIG_CPU_ADVANCED=y
 CONFIG_CPU_HAS_LLSC=y
 # CONFIG_CPU_HAS_LLDSCD is not set
@@ -114,7 +122,9 @@
 # CONFIG_TCIC is not set
 # CONFIG_I82092 is not set
 # CONFIG_I82365 is not set
-# CONFIG_PCMCIA_AU1000 is not set
+CONFIG_PCMCIA_AU1X00=m
+CONFIG_PCMCIA_PB1X00=y
+# CONFIG_PCMCIA_DB1X00 is not set
 
 #
 # PCI Hotplug Support
@@ -131,6 +141,8 @@
 # CONFIG_BINFMT_AOUT is not set
 CONFIG_BINFMT_ELF=y
 # CONFIG_MIPS32_COMPAT is not set
+# CONFIG_MIPS32_O32 is not set
+# CONFIG_MIPS32_N32 is not set
 # CONFIG_BINFMT_ELF32 is not set
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_PM is not set
@@ -178,15 +190,16 @@
 # CONFIG_MTD_PB1100 is not set
 CONFIG_MTD_PB1500_BOOT=y
 # CONFIG_MTD_PB1500_USER is not set
+# CONFIG_MTD_DB1X00 is not set
 # CONFIG_MTD_CSTM_MIPS_IXX is not set
 # CONFIG_MTD_OCELOT is not set
+# CONFIG_MTD_LASAT is not set
 # CONFIG_MTD_PCI is not set
 
 #
 # Self-contained MTD device drivers
 #
 # CONFIG_MTD_PMC551 is not set
-# CONFIG_MTD_MS02NV is not set
 # CONFIG_MTD_SLRAM is not set
 # CONFIG_MTD_MTDRAM is not set
 # CONFIG_MTD_BLKMTD is not set
@@ -441,7 +454,7 @@
 # Ethernet (10 or 100Mbit)
 #
 CONFIG_NET_ETHERNET=y
-CONFIG_MIPS_AU1000_ENET=y
+CONFIG_MIPS_AU1X00_ENET=y
 # CONFIG_SUNLANCE is not set
 # CONFIG_HAPPYMEAL is not set
 # CONFIG_SUNBMAC is not set
@@ -479,6 +492,7 @@
 # CONFIG_SIS900 is not set
 # CONFIG_EPIC100 is not set
 # CONFIG_SUNDANCE is not set
+# CONFIG_SUNDANCE_MMIO is not set
 # CONFIG_TLAN is not set
 # CONFIG_TC35815 is not set
 # CONFIG_VIA_RHINE is not set
@@ -599,10 +613,8 @@
 # CONFIG_STALDRV is not set
 # CONFIG_SERIAL_TX3912 is not set
 # CONFIG_SERIAL_TX3912_CONSOLE is not set
-CONFIG_AU1000_UART=y
-CONFIG_AU1000_SERIAL_CONSOLE=y
-# CONFIG_AU1000_USB_TTY is not set
-# CONFIG_AU1000_USB_RAW is not set
+CONFIG_AU1X00_UART=y
+CONFIG_AU1X00_SERIAL_CONSOLE=y
 # CONFIG_TXX927_SERIAL is not set
 CONFIG_UNIX98_PTYS=y
 CONFIG_UNIX98_PTY_COUNT=256
@@ -658,6 +670,7 @@
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
+# CONFIG_AMD_PM768 is not set
 # CONFIG_NVRAM is not set
 CONFIG_RTC=y
 # CONFIG_DTLK is not set
@@ -676,8 +689,8 @@
 #
 # CONFIG_PCMCIA_SERIAL_CS is not set
 # CONFIG_SYNCLINK_CS is not set
-# CONFIG_AU1000_GPIO is not set
-# CONFIG_TS_AU1000_ADS7846 is not set
+# CONFIG_AU1X00_GPIO is not set
+# CONFIG_TS_AU1X00_ADS7846 is not set
 
 #
 # File systems
@@ -843,7 +856,9 @@
 # CONFIG_FB_3DFX is not set
 # CONFIG_FB_VOODOO1 is not set
 # CONFIG_FB_TRIDENT is not set
-# CONFIG_FB_E1356 is not set
+CONFIG_FB_E1356=y
+CONFIG_PB1500_CRT=y
+# CONFIG_PB1500_TFT is not set
 # CONFIG_FB_VIRTUAL is not set
 CONFIG_FBCON_ADVANCED=y
 # CONFIG_FBCON_MFB is not set
@@ -887,7 +902,7 @@
 # CONFIG_SOUND_ICH is not set
 # CONFIG_SOUND_RME96XX is not set
 # CONFIG_SOUND_SONICVIBES is not set
-CONFIG_SOUND_AU1000=y
+CONFIG_SOUND_AU1X00=y
 # CONFIG_SOUND_TRIDENT is not set
 # CONFIG_SOUND_MSNDCLAS is not set
 # CONFIG_SOUND_MSNDPIN is not set
@@ -945,7 +960,7 @@
 # USB Human Interface Devices (HID)
 #
 CONFIG_USB_HID=y
-# CONFIG_USB_HIDINPUT is not set
+CONFIG_USB_HIDINPUT=y
 # CONFIG_USB_HIDDEV is not set
 # CONFIG_USB_AIPTEK is not set
 # CONFIG_USB_WACOM is not set
@@ -1005,9 +1020,9 @@
 # Kernel hacking
 #
 CONFIG_CROSSCOMPILE=y
+# CONFIG_DEBUG is not set
 # CONFIG_REMOTE_DEBUG is not set
 # CONFIG_GDB_CONSOLE is not set
-# CONFIG_DEBUG is not set
 # CONFIG_MAGIC_SYSRQ is not set
 # CONFIG_MIPS_UNCACHED is not set
 
diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-rm200 linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-rm200
--- linux-2.4.20/arch/mips/defconfig-rm200	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-rm200	2003-02-24 15:17:03.000000000 -0600
@@ -3,6 +3,7 @@
 #
 CONFIG_MIPS=y
 CONFIG_MIPS32=y
+# CONFIG_MIPS64 is not set
 
 #
 # Code maturity level options
@@ -20,38 +21,53 @@
 # Machine selection
 #
 # CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
 # CONFIG_MIPS_PB1000 is not set
+# CONFIG_MIPS_PB1100 is not set
 # CONFIG_MIPS_PB1500 is not set
-# CONFIG_ALGOR_P4032 is not set
 # CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
 # CONFIG_MIPS_COBALT is not set
 # CONFIG_DECSTATION is not set
 # CONFIG_MIPS_EV64120 is not set
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MAGNUM_4000 is not set
 # CONFIG_MIPS_MALTA is not set
+# CONFIG_MIPS_SEAD is not set
 # CONFIG_MOMENCO_OCELOT is not set
+# CONFIG_MOMENCO_OCELOT_G is not set
 # CONFIG_DDB5074 is not set
 # CONFIG_DDB5476 is not set
 # CONFIG_DDB5477 is not set
 # CONFIG_NEC_OSPREY is not set
+# CONFIG_NEC_EAGLE is not set
 # CONFIG_OLIVETTI_M700 is not set
 # CONFIG_NINO is not set
 # CONFIG_SGI_IP22 is not set
-# CONFIG_SIBYTE_SB1250 is not set
+# CONFIG_SGI_IP27 is not set
+# CONFIG_SGI_IP32 is not set
+# CONFIG_SIBYTE_SB1xxx_SOC is not set
 CONFIG_SNI_RM200_PCI=y
+# CONFIG_TANBAC_TB0226 is not set
 # CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
+# CONFIG_ZAO_CAPCELLA is not set
 # CONFIG_HIGHMEM is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
 CONFIG_ARC32=y
+CONFIG_ARC_MEMORY=y
+CONFIG_ARC_PROMLIB=y
 CONFIG_I8259=y
 CONFIG_ISA=y
-CONFIG_NEW_IRQ=y
 CONFIG_NONCOHERENT_IO=y
 CONFIG_OLD_TIME_C=y
 CONFIG_PC_KEYB=y
@@ -61,26 +77,28 @@
 #
 # CPU selection
 #
+# CONFIG_CPU_MIPS32 is not set
+# CONFIG_CPU_MIPS64 is not set
 # CONFIG_CPU_R3000 is not set
 # CONFIG_CPU_TX39XX is not set
-# CONFIG_CPU_R6000 is not set
 # CONFIG_CPU_VR41XX is not set
 # CONFIG_CPU_R4300 is not set
 CONFIG_CPU_R4X00=y
 # CONFIG_CPU_TX49XX is not set
 # CONFIG_CPU_R5000 is not set
 # CONFIG_CPU_R5432 is not set
-# CONFIG_CPU_RM7000 is not set
+# CONFIG_CPU_R6000 is not set
 # CONFIG_CPU_NEVADA is not set
+# CONFIG_CPU_R8000 is not set
 # CONFIG_CPU_R10000 is not set
+# CONFIG_CPU_RM7000 is not set
 # CONFIG_CPU_SB1 is not set
-# CONFIG_CPU_MIPS32 is not set
-# CONFIG_CPU_MIPS64 is not set
 # CONFIG_64BIT_PHYS_ADDR is not set
 # CONFIG_CPU_ADVANCED is not set
 CONFIG_CPU_HAS_LLSC=y
 CONFIG_CPU_HAS_LLDSCD=y
 # CONFIG_CPU_HAS_WB is not set
+CONFIG_CPU_HAS_SYNC=y
 
 #
 # General setup
@@ -103,6 +121,10 @@
 # CONFIG_KCORE_AOUT is not set
 # CONFIG_BINFMT_AOUT is not set
 CONFIG_BINFMT_ELF=y
+# CONFIG_MIPS32_COMPAT is not set
+# CONFIG_MIPS32_O32 is not set
+# CONFIG_MIPS32_N32 is not set
+# CONFIG_BINFMT_ELF32 is not set
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_PM is not set
 
@@ -137,6 +159,7 @@
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_RAM is not set
 # CONFIG_BLK_DEV_INITRD is not set
+# CONFIG_BLK_STATS is not set
 
 #
 # Multi-device support (RAID and LVM)
@@ -259,6 +282,15 @@
 # CONFIG_CD_NO_IDESCSI is not set
 
 #
+# Input core support
+#
+# CONFIG_INPUT is not set
+# CONFIG_INPUT_KEYBDEV is not set
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+
+#
 # Character devices
 #
 CONFIG_VT=y
@@ -298,6 +330,7 @@
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
+# CONFIG_AMD_PM768 is not set
 # CONFIG_NVRAM is not set
 CONFIG_RTC=y
 # CONFIG_DTLK is not set
@@ -312,11 +345,6 @@
 # CONFIG_DRM is not set
 
 #
-# Multimedia devices
-#
-# CONFIG_VIDEO_DEV is not set
-
-#
 # File systems
 #
 # CONFIG_QUOTA is not set
@@ -329,6 +357,8 @@
 # CONFIG_ADFS_FS_RW is not set
 # CONFIG_AFFS_FS is not set
 # CONFIG_HFS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BEFS_DEBUG is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EXT3_FS is not set
 # CONFIG_JBD is not set
@@ -346,6 +376,9 @@
 # CONFIG_ISO9660_FS is not set
 # CONFIG_JOLIET is not set
 # CONFIG_ZISOFS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
 # CONFIG_MINIX_FS is not set
 # CONFIG_VXFS_FS is not set
 # CONFIG_NTFS_FS is not set
@@ -376,6 +409,7 @@
 # CONFIG_ROOT_NFS is not set
 # CONFIG_NFSD is not set
 # CONFIG_NFSD_V3 is not set
+# CONFIG_NFSD_TCP is not set
 # CONFIG_SUNRPC is not set
 # CONFIG_LOCKD is not set
 # CONFIG_SMB_FS is not set
@@ -389,7 +423,6 @@
 # CONFIG_NCPFS_NLS is not set
 # CONFIG_NCPFS_EXTRAS is not set
 # CONFIG_ZISOFS_FS is not set
-# CONFIG_ZLIB_FS_INFLATE is not set
 
 #
 # Partition Types
@@ -409,10 +442,16 @@
 CONFIG_SGI_PARTITION=y
 # CONFIG_ULTRIX_PARTITION is not set
 # CONFIG_SUN_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
 # CONFIG_SMB_NLS is not set
 # CONFIG_NLS is not set
 
 #
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
 # Console drivers
 #
 CONFIG_VGA_CONSOLE=y
@@ -439,18 +478,17 @@
 # CONFIG_BLUEZ is not set
 
 #
-# Input core support
-#
-# CONFIG_INPUT is not set
-# CONFIG_INPUT_KEYBDEV is not set
-# CONFIG_INPUT_MOUSEDEV is not set
-# CONFIG_INPUT_JOYDEV is not set
-# CONFIG_INPUT_EVDEV is not set
-
-#
 # Kernel hacking
 #
 CONFIG_CROSSCOMPILE=y
 # CONFIG_DEBUG is not set
+# CONFIG_REMOTE_DEBUG is not set
+# CONFIG_GDB_CONSOLE is not set
 # CONFIG_MAGIC_SYSRQ is not set
 # CONFIG_MIPS_UNCACHED is not set
+
+#
+# Library routines
+#
+# CONFIG_ZLIB_INFLATE is not set
+# CONFIG_ZLIB_DEFLATE is not set
diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-sb1250-swarm linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-sb1250-swarm
--- linux-2.4.20/arch/mips/defconfig-sb1250-swarm	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-sb1250-swarm	2003-02-24 15:17:03.000000000 -0600
@@ -21,17 +21,22 @@
 # Machine selection
 #
 # CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
 # CONFIG_MIPS_PB1000 is not set
 # CONFIG_MIPS_PB1100 is not set
 # CONFIG_MIPS_PB1500 is not set
-# CONFIG_ALGOR_P4032 is not set
 # CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
 # CONFIG_MIPS_COBALT is not set
 # CONFIG_DECSTATION is not set
 # CONFIG_MIPS_EV64120 is not set
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MAGNUM_4000 is not set
@@ -50,25 +55,38 @@
 # CONFIG_SGI_IP27 is not set
 # CONFIG_SGI_IP32 is not set
 CONFIG_SIBYTE_SB1xxx_SOC=y
+CONFIG_SIBYTE_SWARM=y
+# CONFIG_SIBYTE_SENTOSA is not set
+# CONFIG_SIBYTE_CRHINE is not set
+# CONFIG_SIBYTE_CARMEL is not set
+# CONFIG_SIBYTE_CRHONE is not set
+# CONFIG_SIBYTE_RHONE is not set
+# CONFIG_SIBYTE_UNKNOWN is not set
+CONFIG_SIBYTE_BOARD=y
 CONFIG_SIBYTE_SB1250=y
-# CONFIG_SIMULATION is not set
+CONFIG_CPU_SB1_PASS_1=y
+# CONFIG_CPU_SB1_PASS_2 is not set
+# CONFIG_CPU_SB1_PASS_2_2 is not set
 CONFIG_SIBYTE_CFE=y
 # CONFIG_SIBYTE_CFE_CONSOLE is not set
+# CONFIG_SIBYTE_BUS_WATCHER is not set
 # CONFIG_SIBYTE_SB1250_PROF is not set
-# CONFIG_BCM1250_TBPROF is not set
-CONFIG_SMP=y
+# CONFIG_SIBYTE_TBPROF is not set
 # CONFIG_PCI is not set
-CONFIG_SIBYTE_SWARM=y
+CONFIG_SIBYTE_GENBUS_IDE=y
+CONFIG_SMP_CAPABLE=y
 # CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
 # CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
 # CONFIG_ZAO_CAPCELLA is not set
 # CONFIG_HIGHMEM is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
-CONFIG_NEW_IRQ=y
 CONFIG_NEW_TIME_C=y
 CONFIG_DUMMY_KEYB=y
-CONFIG_SWAP_IO_SPACE=y
+CONFIG_SWAP_IO_SPACE_W=y
+CONFIG_SWAP_IO_SPACE_L=y
 CONFIG_BOOT_ELF32=y
 # CONFIG_MIPS_AU1000 is not set
 
@@ -91,14 +109,9 @@
 # CONFIG_CPU_R10000 is not set
 # CONFIG_CPU_RM7000 is not set
 CONFIG_CPU_SB1=y
-CONFIG_CPU_SB1_PASS_1=y
-# CONFIG_CPU_SB1_PASS_2 is not set
-# CONFIG_CPU_SB1_PASS_2_2 is not set
+CONFIG_SMP=y
 CONFIG_SB1_PASS_1_WORKAROUNDS=y
 CONFIG_CPU_HAS_PREFETCH=y
-CONFIG_SB1_CACHE_ERROR=y
-CONFIG_SB1_CERR_IGNORE_RECOVERABLE=y
-# CONFIG_SB1_CERR_SPIN is not set
 CONFIG_VTAG_ICACHE=y
 # CONFIG_64BIT_PHYS_ADDR is not set
 # CONFIG_CPU_ADVANCED is not set
@@ -131,6 +144,8 @@
 # CONFIG_BINFMT_AOUT is not set
 CONFIG_BINFMT_ELF=y
 # CONFIG_MIPS32_COMPAT is not set
+# CONFIG_MIPS32_O32 is not set
+# CONFIG_MIPS32_N32 is not set
 # CONFIG_BINFMT_ELF32 is not set
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_PM is not set
@@ -183,8 +198,9 @@
 #
 # Networking options
 #
-# CONFIG_PACKET is not set
-# CONFIG_NETLINK_DEV is not set
+CONFIG_PACKET=y
+CONFIG_PACKET_MMAP=y
+CONFIG_NETLINK_DEV=y
 # CONFIG_NETFILTER is not set
 # CONFIG_FILTER is not set
 CONFIG_UNIX=y
@@ -374,8 +390,6 @@
 CONFIG_SIBYTE_SB1250_DUART=y
 CONFIG_SIBYTE_SB1250_DUART_CONSOLE=y
 CONFIG_SERIAL_CONSOLE=y
-CONFIG_SB1250_DUART_OUTPUT_BUF_SIZE=1024
-# CONFIG_SIBYTE_SB1250_DUART_NO_PORT_1 is not set
 CONFIG_UNIX98_PTYS=y
 CONFIG_UNIX98_PTY_COUNT=256
 
@@ -408,6 +422,7 @@
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
+# CONFIG_AMD_PM768 is not set
 # CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_DTLK is not set
@@ -535,6 +550,9 @@
 #
 CONFIG_CROSSCOMPILE=y
 # CONFIG_DEBUG is not set
+# CONFIG_REMOTE_DEBUG is not set
+# CONFIG_GDB_CONSOLE is not set
+# CONFIG_SB1XXX_CORELIS is not set
 # CONFIG_MAGIC_SYSRQ is not set
 
 #
diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-sead linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-sead
--- linux-2.4.20/arch/mips/defconfig-sead	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-sead	2003-02-24 15:17:03.000000000 -0600
@@ -19,17 +19,22 @@
 # Machine selection
 #
 # CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
 # CONFIG_MIPS_PB1000 is not set
 # CONFIG_MIPS_PB1100 is not set
 # CONFIG_MIPS_PB1500 is not set
-# CONFIG_ALGOR_P4032 is not set
 # CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
 # CONFIG_MIPS_COBALT is not set
 # CONFIG_DECSTATION is not set
 # CONFIG_MIPS_EV64120 is not set
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MAGNUM_4000 is not set
@@ -49,13 +54,14 @@
 # CONFIG_SGI_IP32 is not set
 # CONFIG_SIBYTE_SB1xxx_SOC is not set
 # CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
 # CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
 # CONFIG_ZAO_CAPCELLA is not set
 # CONFIG_HIGHMEM is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
 CONFIG_L1_CACHE_SHIFT=5
-CONFIG_NEW_IRQ=y
 CONFIG_NEW_TIME_C=y
 CONFIG_NONCOHERENT_IO=y
 # CONFIG_PCI is not set
@@ -111,6 +117,8 @@
 # CONFIG_BINFMT_AOUT is not set
 CONFIG_BINFMT_ELF=y
 # CONFIG_MIPS32_COMPAT is not set
+# CONFIG_MIPS32_O32 is not set
+# CONFIG_MIPS32_N32 is not set
 # CONFIG_BINFMT_ELF32 is not set
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_PM is not set
@@ -152,7 +160,7 @@
 #
 # MIPS initrd options
 #
-CONFIG_EMBEDDED_RAMDISK=y
+# CONFIG_EMBEDDED_RAMDISK is not set
 
 #
 # Multi-device support (RAID and LVM)
@@ -238,6 +246,7 @@
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
+# CONFIG_AMD_PM768 is not set
 # CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_DTLK is not set
@@ -350,9 +359,9 @@
 # Kernel hacking
 #
 CONFIG_CROSSCOMPILE=y
+# CONFIG_DEBUG is not set
 # CONFIG_REMOTE_DEBUG is not set
 # CONFIG_GDB_CONSOLE is not set
-# CONFIG_DEBUG is not set
 # CONFIG_MAGIC_SYSRQ is not set
 # CONFIG_MIPS_UNCACHED is not set
 
diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-tb0226 linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-tb0226
--- linux-2.4.20/arch/mips/defconfig-tb0226	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-tb0226	2003-02-24 15:17:03.000000000 -0600
@@ -0,0 +1,777 @@
+#
+# Automatically generated make config: don't edit
+#
+CONFIG_MIPS=y
+CONFIG_MIPS32=y
+# CONFIG_MIPS64 is not set
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+# CONFIG_MODVERSIONS is not set
+CONFIG_KMOD=y
+
+#
+# Machine selection
+#
+# CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
+# CONFIG_MIPS_PB1000 is not set
+# CONFIG_MIPS_PB1100 is not set
+# CONFIG_MIPS_PB1500 is not set
+# CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
+# CONFIG_MIPS_COBALT is not set
+# CONFIG_DECSTATION is not set
+# CONFIG_MIPS_EV64120 is not set
+# CONFIG_MIPS_EV96100 is not set
+# CONFIG_MIPS_IVR is not set
+# CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
+# CONFIG_MIPS_ITE8172 is not set
+# CONFIG_MIPS_ATLAS is not set
+# CONFIG_MIPS_MAGNUM_4000 is not set
+# CONFIG_MIPS_MALTA is not set
+# CONFIG_MIPS_SEAD is not set
+# CONFIG_MOMENCO_OCELOT is not set
+# CONFIG_MOMENCO_OCELOT_G is not set
+# CONFIG_DDB5074 is not set
+# CONFIG_DDB5476 is not set
+# CONFIG_DDB5477 is not set
+# CONFIG_NEC_OSPREY is not set
+# CONFIG_NEC_EAGLE is not set
+# CONFIG_OLIVETTI_M700 is not set
+# CONFIG_NINO is not set
+# CONFIG_SGI_IP22 is not set
+# CONFIG_SGI_IP27 is not set
+# CONFIG_SGI_IP32 is not set
+# CONFIG_SIBYTE_SB1xxx_SOC is not set
+# CONFIG_SNI_RM200_PCI is not set
+CONFIG_TANBAC_TB0226=y
+# CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
+# CONFIG_ZAO_CAPCELLA is not set
+# CONFIG_HIGHMEM is not set
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
+CONFIG_CPU_VR41XX=y
+CONFIG_IRQ_CPU=y
+CONFIG_NEW_TIME_C=y
+CONFIG_VR41XX_TIME_C=y
+CONFIG_NONCOHERENT_IO=y
+# CONFIG_ISA is not set
+CONFIG_PCI=y
+CONFIG_NEW_PCI=y
+CONFIG_PCI_AUTO=y
+CONFIG_DUMMY_KEYB=y
+CONFIG_SERIAL_MANY_PORTS=y
+# CONFIG_MIPS_AU1000 is not set
+
+#
+# CPU selection
+#
+# CONFIG_CPU_MIPS32 is not set
+# CONFIG_CPU_MIPS64 is not set
+# CONFIG_CPU_R3000 is not set
+# CONFIG_CPU_TX39XX is not set
+CONFIG_CPU_VR41XX=y
+# CONFIG_CPU_R4300 is not set
+# CONFIG_CPU_R4X00 is not set
+# CONFIG_CPU_TX49XX is not set
+# CONFIG_CPU_R5000 is not set
+# CONFIG_CPU_R5432 is not set
+# CONFIG_CPU_R6000 is not set
+# CONFIG_CPU_NEVADA is not set
+# CONFIG_CPU_R8000 is not set
+# CONFIG_CPU_R10000 is not set
+# CONFIG_CPU_RM7000 is not set
+# CONFIG_CPU_SB1 is not set
+# CONFIG_CPU_ADVANCED is not set
+# CONFIG_CPU_HAS_LLSC is not set
+# CONFIG_CPU_HAS_LLDSCD is not set
+# CONFIG_CPU_HAS_WB is not set
+CONFIG_CPU_HAS_SYNC=y
+
+#
+# General setup
+#
+CONFIG_CPU_LITTLE_ENDIAN=y
+CONFIG_NET=y
+# CONFIG_PCI_NAMES is not set
+# CONFIG_ISA is not set
+# CONFIG_EISA is not set
+# CONFIG_TC is not set
+# CONFIG_MCA is not set
+# CONFIG_SBUS is not set
+# CONFIG_HOTPLUG is not set
+# CONFIG_PCMCIA is not set
+# CONFIG_HOTPLUG_PCI is not set
+CONFIG_SYSVIPC=y
+# CONFIG_BSD_PROCESS_ACCT is not set
+CONFIG_SYSCTL=y
+CONFIG_KCORE_ELF=y
+# CONFIG_KCORE_AOUT is not set
+# CONFIG_BINFMT_AOUT is not set
+CONFIG_BINFMT_ELF=y
+# CONFIG_MIPS32_COMPAT is not set
+# CONFIG_MIPS32_O32 is not set
+# CONFIG_MIPS32_N32 is not set
+# CONFIG_BINFMT_ELF32 is not set
+# CONFIG_BINFMT_MISC is not set
+# CONFIG_PM is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+# CONFIG_MTD is not set
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Plug and Play configuration
+#
+# CONFIG_PNP is not set
+# CONFIG_ISAPNP is not set
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_FD is not set
+# CONFIG_BLK_DEV_XD is not set
+# CONFIG_PARIDE is not set
+# CONFIG_BLK_CPQ_DA is not set
+# CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_CISS_SCSI_TAPE is not set
+# CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_LOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_RAM is not set
+# CONFIG_BLK_DEV_INITRD is not set
+# CONFIG_BLK_STATS is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD is not set
+# CONFIG_BLK_DEV_MD is not set
+# CONFIG_MD_LINEAR is not set
+# CONFIG_MD_RAID0 is not set
+# CONFIG_MD_RAID1 is not set
+# CONFIG_MD_RAID5 is not set
+# CONFIG_MD_MULTIPATH is not set
+# CONFIG_BLK_DEV_LVM is not set
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_PACKET_MMAP=y
+CONFIG_NETLINK_DEV=y
+# CONFIG_NETFILTER is not set
+# CONFIG_FILTER is not set
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_PNP=y
+# CONFIG_IP_PNP_DHCP is not set
+CONFIG_IP_PNP_BOOTP=y
+# CONFIG_IP_PNP_RARP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_IP_MROUTE is not set
+# CONFIG_ARPD is not set
+# CONFIG_INET_ECN is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_IPV6 is not set
+# CONFIG_KHTTPD is not set
+# CONFIG_ATM is not set
+# CONFIG_VLAN_8021Q is not set
+
+#
+#  
+#
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+
+#
+# Appletalk devices
+#
+# CONFIG_DEV_APPLETALK is not set
+# CONFIG_DECNET is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_LLC is not set
+# CONFIG_NET_DIVERT is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_FASTROUTE is not set
+# CONFIG_NET_HW_FLOWCONTROL is not set
+
+#
+# QoS and/or fair queueing
+#
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+
+#
+# Telephony Support
+#
+# CONFIG_PHONE is not set
+# CONFIG_PHONE_IXJ is not set
+# CONFIG_PHONE_IXJ_PCMCIA is not set
+
+#
+# ATA/IDE/MFM/RLL support
+#
+# CONFIG_IDE is not set
+# CONFIG_BLK_DEV_IDE_MODES is not set
+# CONFIG_BLK_DEV_HD is not set
+
+#
+# SCSI support
+#
+CONFIG_SCSI=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+CONFIG_SD_EXTRA_DEVS=40
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+CONFIG_BLK_DEV_SR=y
+# CONFIG_BLK_DEV_SR_VENDOR is not set
+CONFIG_SR_EXTRA_DEVS=2
+# CONFIG_CHR_DEV_SG is not set
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+# CONFIG_SCSI_DEBUG_QUEUES is not set
+# CONFIG_SCSI_MULTI_LUN is not set
+CONFIG_SCSI_CONSTANTS=y
+# CONFIG_SCSI_LOGGING is not set
+
+#
+# SCSI low-level drivers
+#
+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
+# CONFIG_SCSI_7000FASST is not set
+# CONFIG_SCSI_ACARD is not set
+# CONFIG_SCSI_AHA152X is not set
+# CONFIG_SCSI_AHA1542 is not set
+# CONFIG_SCSI_AHA1740 is not set
+# CONFIG_SCSI_AACRAID is not set
+# CONFIG_SCSI_AIC7XXX is not set
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+# CONFIG_SCSI_DPT_I2O is not set
+# CONFIG_SCSI_ADVANSYS is not set
+# CONFIG_SCSI_IN2000 is not set
+# CONFIG_SCSI_AM53C974 is not set
+# CONFIG_SCSI_MEGARAID is not set
+# CONFIG_SCSI_BUSLOGIC is not set
+# CONFIG_SCSI_CPQFCTS is not set
+# CONFIG_SCSI_DMX3191D is not set
+# CONFIG_SCSI_DTC3280 is not set
+# CONFIG_SCSI_EATA is not set
+# CONFIG_SCSI_EATA_DMA is not set
+# CONFIG_SCSI_EATA_PIO is not set
+# CONFIG_SCSI_FUTURE_DOMAIN is not set
+# CONFIG_SCSI_GDTH is not set
+# CONFIG_SCSI_GENERIC_NCR5380 is not set
+# CONFIG_SCSI_INITIO is not set
+# CONFIG_SCSI_INIA100 is not set
+# CONFIG_SCSI_NCR53C406A is not set
+# CONFIG_SCSI_NCR53C7xx is not set
+# CONFIG_SCSI_SYM53C8XX_2 is not set
+# CONFIG_SCSI_NCR53C8XX is not set
+# CONFIG_SCSI_SYM53C8XX is not set
+# CONFIG_SCSI_PAS16 is not set
+# CONFIG_SCSI_PCI2000 is not set
+# CONFIG_SCSI_PCI2220I is not set
+# CONFIG_SCSI_PSI240I is not set
+# CONFIG_SCSI_QLOGIC_FAS is not set
+# CONFIG_SCSI_QLOGIC_ISP is not set
+# CONFIG_SCSI_QLOGIC_FC is not set
+# CONFIG_SCSI_QLOGIC_1280 is not set
+# CONFIG_SCSI_SIM710 is not set
+# CONFIG_SCSI_SYM53C416 is not set
+# CONFIG_SCSI_DC390T is not set
+# CONFIG_SCSI_T128 is not set
+# CONFIG_SCSI_U14_34F is not set
+# CONFIG_SCSI_DEBUG is not set
+
+#
+# I2O device support
+#
+# CONFIG_I2O is not set
+# CONFIG_I2O_PCI is not set
+# CONFIG_I2O_BLOCK is not set
+# CONFIG_I2O_LAN is not set
+# CONFIG_I2O_SCSI is not set
+# CONFIG_I2O_PROC is not set
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_ETHERTAP is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+# CONFIG_SUNLANCE is not set
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNBMAC is not set
+# CONFIG_SUNQE is not set
+# CONFIG_SUNGEM is not set
+# CONFIG_NET_VENDOR_3COM is not set
+# CONFIG_LANCE is not set
+# CONFIG_NET_VENDOR_SMC is not set
+# CONFIG_NET_VENDOR_RACAL is not set
+# CONFIG_HP100 is not set
+# CONFIG_NET_ISA is not set
+CONFIG_NET_PCI=y
+# CONFIG_PCNET32 is not set
+# CONFIG_ADAPTEC_STARFIRE is not set
+# CONFIG_APRICOT is not set
+# CONFIG_CS89x0 is not set
+# CONFIG_TULIP is not set
+# CONFIG_DE4X5 is not set
+# CONFIG_DGRS is not set
+# CONFIG_DM9102 is not set
+CONFIG_EEPRO100=y
+# CONFIG_E100 is not set
+# CONFIG_LNE390 is not set
+# CONFIG_FEALNX is not set
+# CONFIG_NATSEMI is not set
+# CONFIG_NE2K_PCI is not set
+# CONFIG_NE3210 is not set
+# CONFIG_ES3210 is not set
+# CONFIG_8139CP is not set
+# CONFIG_8139TOO is not set
+# CONFIG_8139TOO_PIO is not set
+# CONFIG_8139TOO_TUNE_TWISTER is not set
+# CONFIG_8139TOO_8129 is not set
+# CONFIG_8139_OLD_RX_RESET is not set
+# CONFIG_SIS900 is not set
+# CONFIG_EPIC100 is not set
+# CONFIG_SUNDANCE is not set
+# CONFIG_SUNDANCE_MMIO is not set
+# CONFIG_TLAN is not set
+# CONFIG_TC35815 is not set
+# CONFIG_VIA_RHINE is not set
+# CONFIG_VIA_RHINE_MMIO is not set
+# CONFIG_WINBOND_840 is not set
+# CONFIG_LAN_SAA9730 is not set
+# CONFIG_NET_POCKET is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+# CONFIG_ACENIC is not set
+# CONFIG_DL2K is not set
+# CONFIG_E1000 is not set
+# CONFIG_MYRI_SBUS is not set
+# CONFIG_NS83820 is not set
+# CONFIG_HAMACHI is not set
+# CONFIG_YELLOWFIN is not set
+# CONFIG_SK98LIN is not set
+# CONFIG_TIGON3 is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+# CONFIG_PLIP is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+# CONFIG_NET_RADIO is not set
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+# CONFIG_NET_FC is not set
+# CONFIG_RCPCI is not set
+# CONFIG_SHAPER is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+
+#
+# Amateur Radio support
+#
+# CONFIG_HAMRADIO is not set
+
+#
+# IrDA (infrared) support
+#
+# CONFIG_IRDA is not set
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Input core support
+#
+# CONFIG_INPUT is not set
+# CONFIG_INPUT_KEYBDEV is not set
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+# CONFIG_VT_CONSOLE is not set
+CONFIG_SERIAL=y
+CONFIG_SERIAL_CONSOLE=y
+# CONFIG_SERIAL_EXTENDED is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+CONFIG_UNIX98_PTYS=y
+CONFIG_UNIX98_PTY_COUNT=256
+
+#
+# I2C support
+#
+# CONFIG_I2C is not set
+
+#
+# Mice
+#
+# CONFIG_BUSMOUSE is not set
+# CONFIG_MOUSE is not set
+
+#
+# Joysticks
+#
+# CONFIG_INPUT_GAMEPORT is not set
+
+#
+# Input core support is needed for gameports
+#
+
+#
+# Input core support is needed for joysticks
+#
+# CONFIG_QIC02_TAPE is not set
+
+#
+# Watchdog Cards
+#
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+# CONFIG_ACQUIRE_WDT is not set
+# CONFIG_ADVANTECH_WDT is not set
+# CONFIG_ALIM7101_WDT is not set
+# CONFIG_SC520_WDT is not set
+# CONFIG_PCWATCHDOG is not set
+# CONFIG_EUROTECH_WDT is not set
+# CONFIG_IB700_WDT is not set
+# CONFIG_WAFER_WDT is not set
+# CONFIG_I810_TCO is not set
+# CONFIG_MIXCOMWD is not set
+# CONFIG_60XX_WDT is not set
+# CONFIG_SC1200_WDT is not set
+# CONFIG_SOFT_WATCHDOG is not set
+# CONFIG_W83877F_WDT is not set
+# CONFIG_WDT is not set
+# CONFIG_WDTPCI is not set
+# CONFIG_MACHZ_WDT is not set
+# CONFIG_INDYDOG is not set
+# CONFIG_AMD7XX_TCO is not set
+# CONFIG_AMD_PM768 is not set
+# CONFIG_NVRAM is not set
+# CONFIG_RTC is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# CONFIG_FTAPE is not set
+# CONFIG_AGP is not set
+# CONFIG_DRM is not set
+
+#
+# File systems
+#
+# CONFIG_QUOTA is not set
+CONFIG_AUTOFS_FS=y
+CONFIG_AUTOFS4_FS=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+# CONFIG_ADFS_FS is not set
+# CONFIG_ADFS_FS_RW is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BEFS_DEBUG is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EXT3_FS is not set
+# CONFIG_JBD is not set
+# CONFIG_JBD_DEBUG is not set
+# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_UMSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_JFFS_FS is not set
+# CONFIG_JFFS2_FS is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_TMPFS is not set
+CONFIG_RAMFS=y
+# CONFIG_ISO9660_FS is not set
+# CONFIG_JOLIET is not set
+# CONFIG_ZISOFS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_NTFS_FS is not set
+# CONFIG_NTFS_RW is not set
+# CONFIG_HPFS_FS is not set
+CONFIG_PROC_FS=y
+# CONFIG_DEVFS_FS is not set
+# CONFIG_DEVFS_MOUNT is not set
+# CONFIG_DEVFS_DEBUG is not set
+CONFIG_DEVPTS_FS=y
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_QNX4FS_RW is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_EXT2_FS=y
+# CONFIG_SYSV_FS is not set
+# CONFIG_UDF_FS is not set
+# CONFIG_UDF_RW is not set
+# CONFIG_UFS_FS is not set
+# CONFIG_UFS_FS_WRITE is not set
+
+#
+# Network File Systems
+#
+# CONFIG_CODA_FS is not set
+# CONFIG_INTERMEZZO_FS is not set
+CONFIG_NFS_FS=y
+# CONFIG_NFS_V3 is not set
+CONFIG_ROOT_NFS=y
+CONFIG_NFSD=y
+# CONFIG_NFSD_V3 is not set
+# CONFIG_NFSD_TCP is not set
+CONFIG_SUNRPC=y
+CONFIG_LOCKD=y
+# CONFIG_SMB_FS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_NCPFS_PACKET_SIGNING is not set
+# CONFIG_NCPFS_IOCTL_LOCKING is not set
+# CONFIG_NCPFS_STRONG is not set
+# CONFIG_NCPFS_NFS_NS is not set
+# CONFIG_NCPFS_OS2_NS is not set
+# CONFIG_NCPFS_SMALLDOS is not set
+# CONFIG_NCPFS_NLS is not set
+# CONFIG_NCPFS_EXTRAS is not set
+# CONFIG_ZISOFS_FS is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_BSD_DISKLABEL is not set
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+# CONFIG_LDM_PARTITION is not set
+CONFIG_SGI_PARTITION=y
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+# CONFIG_SMB_NLS is not set
+# CONFIG_NLS is not set
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# Console drivers
+#
+# CONFIG_VGA_CONSOLE is not set
+# CONFIG_MDA_CONSOLE is not set
+
+#
+# Frame-buffer support
+#
+# CONFIG_FB is not set
+
+#
+# Sound
+#
+# CONFIG_SOUND is not set
+
+#
+# USB support
+#
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+CONFIG_USB_BANDWIDTH=y
+CONFIG_USB_LONG_TIMEOUT=y
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_EHCI_HCD=y
+# CONFIG_USB_UHCI is not set
+# CONFIG_USB_UHCI_ALT is not set
+CONFIG_USB_OHCI=y
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_AUDIO is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_BLUETOOTH is not set
+# CONFIG_USB_MIDI is not set
+CONFIG_USB_STORAGE=y
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
+# CONFIG_USB_STORAGE_DPCM is not set
+# CONFIG_USB_STORAGE_HP8200e is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+# CONFIG_USB_ACM is not set
+# CONFIG_USB_PRINTER is not set
+
+#
+# USB Human Interface Devices (HID)
+#
+# CONFIG_USB_HID is not set
+
+#
+#     Input core support is needed for USB HID input layer or HIDBP support
+#
+# CONFIG_USB_HIDINPUT is not set
+# CONFIG_USB_HIDDEV is not set
+# CONFIG_USB_KBD is not set
+# CONFIG_USB_MOUSE is not set
+# CONFIG_USB_AIPTEK is not set
+# CONFIG_USB_WACOM is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_DC2XX is not set
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_SCANNER is not set
+# CONFIG_USB_MICROTEK is not set
+# CONFIG_USB_HPUSBSCSI is not set
+
+#
+# USB Multimedia devices
+#
+
+#
+#   Video4Linux support is needed for USB Multimedia device support
+#
+
+#
+# USB Network adaptors
+#
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_CDCETHER is not set
+# CONFIG_USB_USBNET is not set
+
+#
+# USB port drivers
+#
+# CONFIG_USB_USS720 is not set
+
+#
+# USB Serial Converter support
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_AUERSWALD is not set
+# CONFIG_USB_TIGL is not set
+# CONFIG_USB_BRLVGER is not set
+# CONFIG_USB_LCD is not set
+
+#
+# Bluetooth support
+#
+# CONFIG_BLUEZ is not set
+
+#
+# Kernel hacking
+#
+CONFIG_CROSSCOMPILE=y
+# CONFIG_DEBUG is not set
+# CONFIG_REMOTE_DEBUG is not set
+# CONFIG_GDB_CONSOLE is not set
+# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_MIPS_UNCACHED is not set
+
+#
+# Library routines
+#
+# CONFIG_ZLIB_INFLATE is not set
+# CONFIG_ZLIB_DEFLATE is not set
diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-workpad linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-workpad
--- linux-2.4.20/arch/mips/defconfig-workpad	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-workpad	2003-02-24 15:17:03.000000000 -0600
@@ -0,0 +1,614 @@
+#
+# Automatically generated make config: don't edit
+#
+CONFIG_MIPS=y
+CONFIG_MIPS32=y
+# CONFIG_MIPS64 is not set
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODVERSIONS=y
+CONFIG_KMOD=y
+
+#
+# Machine selection
+#
+# CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
+# CONFIG_MIPS_PB1000 is not set
+# CONFIG_MIPS_PB1100 is not set
+# CONFIG_MIPS_PB1500 is not set
+# CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
+# CONFIG_MIPS_COBALT is not set
+# CONFIG_DECSTATION is not set
+# CONFIG_MIPS_EV64120 is not set
+# CONFIG_MIPS_EV96100 is not set
+# CONFIG_MIPS_IVR is not set
+# CONFIG_HP_LASERJET is not set
+CONFIG_IBM_WORKPAD=y
+# CONFIG_LASAT is not set
+# CONFIG_MIPS_ITE8172 is not set
+# CONFIG_MIPS_ATLAS is not set
+# CONFIG_MIPS_MAGNUM_4000 is not set
+# CONFIG_MIPS_MALTA is not set
+# CONFIG_MIPS_SEAD is not set
+# CONFIG_MOMENCO_OCELOT is not set
+# CONFIG_MOMENCO_OCELOT_G is not set
+# CONFIG_DDB5074 is not set
+# CONFIG_DDB5476 is not set
+# CONFIG_DDB5477 is not set
+# CONFIG_NEC_OSPREY is not set
+# CONFIG_NEC_EAGLE is not set
+# CONFIG_OLIVETTI_M700 is not set
+# CONFIG_NINO is not set
+# CONFIG_SGI_IP22 is not set
+# CONFIG_SGI_IP27 is not set
+# CONFIG_SGI_IP32 is not set
+# CONFIG_SIBYTE_SB1xxx_SOC is not set
+# CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
+# CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
+# CONFIG_ZAO_CAPCELLA is not set
+# CONFIG_HIGHMEM is not set
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
+CONFIG_CPU_VR41XX=y
+CONFIG_IRQ_CPU=y
+CONFIG_NEW_TIME_C=y
+CONFIG_VR41XX_TIME_C=y
+CONFIG_NONCOHERENT_IO=y
+CONFIG_ISA=y
+CONFIG_DUMMY_KEYB=y
+# CONFIG_SCSI is not set
+# CONFIG_MIPS_AU1000 is not set
+
+#
+# CPU selection
+#
+# CONFIG_CPU_MIPS32 is not set
+# CONFIG_CPU_MIPS64 is not set
+# CONFIG_CPU_R3000 is not set
+# CONFIG_CPU_TX39XX is not set
+CONFIG_CPU_VR41XX=y
+# CONFIG_CPU_R4300 is not set
+# CONFIG_CPU_R4X00 is not set
+# CONFIG_CPU_TX49XX is not set
+# CONFIG_CPU_R5000 is not set
+# CONFIG_CPU_R5432 is not set
+# CONFIG_CPU_R6000 is not set
+# CONFIG_CPU_NEVADA is not set
+# CONFIG_CPU_R8000 is not set
+# CONFIG_CPU_R10000 is not set
+# CONFIG_CPU_RM7000 is not set
+# CONFIG_CPU_SB1 is not set
+# CONFIG_CPU_ADVANCED is not set
+# CONFIG_CPU_HAS_LLSC is not set
+# CONFIG_CPU_HAS_LLDSCD is not set
+# CONFIG_CPU_HAS_WB is not set
+CONFIG_CPU_HAS_SYNC=y
+
+#
+# General setup
+#
+CONFIG_CPU_LITTLE_ENDIAN=y
+CONFIG_NET=y
+# CONFIG_PCI is not set
+CONFIG_EISA=y
+# CONFIG_TC is not set
+# CONFIG_MCA is not set
+# CONFIG_SBUS is not set
+# CONFIG_HOTPLUG is not set
+# CONFIG_PCMCIA is not set
+# CONFIG_HOTPLUG_PCI is not set
+CONFIG_SYSVIPC=y
+# CONFIG_BSD_PROCESS_ACCT is not set
+CONFIG_SYSCTL=y
+CONFIG_KCORE_ELF=y
+# CONFIG_KCORE_AOUT is not set
+# CONFIG_BINFMT_AOUT is not set
+CONFIG_BINFMT_ELF=y
+# CONFIG_MIPS32_COMPAT is not set
+# CONFIG_MIPS32_O32 is not set
+# CONFIG_MIPS32_N32 is not set
+# CONFIG_BINFMT_ELF32 is not set
+# CONFIG_BINFMT_MISC is not set
+# CONFIG_PM is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+# CONFIG_MTD is not set
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Plug and Play configuration
+#
+# CONFIG_PNP is not set
+# CONFIG_ISAPNP is not set
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_FD is not set
+# CONFIG_BLK_DEV_XD is not set
+# CONFIG_PARIDE is not set
+# CONFIG_BLK_CPQ_DA is not set
+# CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_CISS_SCSI_TAPE is not set
+# CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_LOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_RAM is not set
+# CONFIG_BLK_DEV_INITRD is not set
+# CONFIG_BLK_STATS is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD is not set
+# CONFIG_BLK_DEV_MD is not set
+# CONFIG_MD_LINEAR is not set
+# CONFIG_MD_RAID0 is not set
+# CONFIG_MD_RAID1 is not set
+# CONFIG_MD_RAID5 is not set
+# CONFIG_MD_MULTIPATH is not set
+# CONFIG_BLK_DEV_LVM is not set
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_PACKET_MMAP=y
+CONFIG_NETLINK_DEV=y
+# CONFIG_NETFILTER is not set
+# CONFIG_FILTER is not set
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+# CONFIG_IP_ADVANCED_ROUTER is not set
+# CONFIG_IP_PNP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_IP_MROUTE is not set
+# CONFIG_ARPD is not set
+# CONFIG_INET_ECN is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_IPV6 is not set
+# CONFIG_KHTTPD is not set
+# CONFIG_ATM is not set
+# CONFIG_VLAN_8021Q is not set
+
+#
+#  
+#
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+
+#
+# Appletalk devices
+#
+# CONFIG_DEV_APPLETALK is not set
+# CONFIG_DECNET is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_LLC is not set
+# CONFIG_NET_DIVERT is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_FASTROUTE is not set
+# CONFIG_NET_HW_FLOWCONTROL is not set
+
+#
+# QoS and/or fair queueing
+#
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+
+#
+# Telephony Support
+#
+# CONFIG_PHONE is not set
+# CONFIG_PHONE_IXJ is not set
+# CONFIG_PHONE_IXJ_PCMCIA is not set
+
+#
+# ATA/IDE/MFM/RLL support
+#
+CONFIG_IDE=y
+
+#
+# IDE, ATA and ATAPI Block devices
+#
+CONFIG_BLK_DEV_IDE=y
+
+#
+# Please see Documentation/ide.txt for help/info on IDE drives
+#
+# CONFIG_BLK_DEV_HD_IDE is not set
+# CONFIG_BLK_DEV_HD is not set
+CONFIG_BLK_DEV_IDEDISK=y
+# CONFIG_IDEDISK_MULTI_MODE is not set
+# CONFIG_IDEDISK_STROKE is not set
+# CONFIG_BLK_DEV_IDEDISK_VENDOR is not set
+# CONFIG_BLK_DEV_IDEDISK_FUJITSU is not set
+# CONFIG_BLK_DEV_IDEDISK_IBM is not set
+# CONFIG_BLK_DEV_IDEDISK_MAXTOR is not set
+# CONFIG_BLK_DEV_IDEDISK_QUANTUM is not set
+# CONFIG_BLK_DEV_IDEDISK_SEAGATE is not set
+# CONFIG_BLK_DEV_IDEDISK_WD is not set
+# CONFIG_BLK_DEV_COMMERIAL is not set
+# CONFIG_BLK_DEV_TIVO is not set
+# CONFIG_BLK_DEV_IDECS 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
+
+#
+# IDE chipset support/bugfixes
+#
+# 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_DMA_NONPCI is not set
+# CONFIG_BLK_DEV_IDE_MODES 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
+
+#
+# SCSI support
+#
+# CONFIG_SCSI is not set
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_ETHERTAP is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+# CONFIG_SUNLANCE is not set
+# CONFIG_SUNBMAC is not set
+# CONFIG_SUNQE is not set
+# CONFIG_SUNGEM is not set
+# CONFIG_NET_VENDOR_3COM is not set
+# CONFIG_LANCE is not set
+# CONFIG_NET_VENDOR_SMC is not set
+# CONFIG_NET_VENDOR_RACAL is not set
+# CONFIG_AT1700 is not set
+# CONFIG_DEPCA is not set
+# CONFIG_HP100 is not set
+# CONFIG_NET_ISA is not set
+# CONFIG_NET_PCI is not set
+# CONFIG_NET_POCKET is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+# CONFIG_ACENIC is not set
+# CONFIG_DL2K is not set
+# CONFIG_E1000 is not set
+# CONFIG_MYRI_SBUS is not set
+# CONFIG_NS83820 is not set
+# CONFIG_HAMACHI is not set
+# CONFIG_YELLOWFIN is not set
+# CONFIG_SK98LIN is not set
+# CONFIG_TIGON3 is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+# CONFIG_PLIP is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+# CONFIG_NET_RADIO is not set
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+# CONFIG_NET_FC is not set
+# CONFIG_RCPCI is not set
+# CONFIG_SHAPER is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+
+#
+# Amateur Radio support
+#
+# CONFIG_HAMRADIO is not set
+
+#
+# IrDA (infrared) support
+#
+# CONFIG_IRDA is not set
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Old CD-ROM drivers (not SCSI, not IDE)
+#
+# CONFIG_CD_NO_IDESCSI is not set
+
+#
+# Input core support
+#
+# CONFIG_INPUT is not set
+# CONFIG_INPUT_KEYBDEV is not set
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+# CONFIG_VT_CONSOLE is not set
+CONFIG_SERIAL=y
+CONFIG_SERIAL_CONSOLE=y
+CONFIG_SERIAL_EXTENDED=y
+CONFIG_SERIAL_MANY_PORTS=y
+# CONFIG_SERIAL_SHARE_IRQ is not set
+# CONFIG_SERIAL_DETECT_IRQ is not set
+# CONFIG_SERIAL_MULTIPORT is not set
+# CONFIG_HUB6 is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+CONFIG_UNIX98_PTYS=y
+CONFIG_UNIX98_PTY_COUNT=256
+
+#
+# I2C support
+#
+# CONFIG_I2C is not set
+
+#
+# Mice
+#
+# CONFIG_BUSMOUSE is not set
+# CONFIG_MOUSE is not set
+
+#
+# Joysticks
+#
+# CONFIG_INPUT_GAMEPORT is not set
+
+#
+# Input core support is needed for gameports
+#
+
+#
+# Input core support is needed for joysticks
+#
+# CONFIG_QIC02_TAPE is not set
+
+#
+# Watchdog Cards
+#
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+# CONFIG_ACQUIRE_WDT is not set
+# CONFIG_ADVANTECH_WDT is not set
+# CONFIG_ALIM7101_WDT is not set
+# CONFIG_SC520_WDT is not set
+# CONFIG_PCWATCHDOG is not set
+# CONFIG_EUROTECH_WDT is not set
+# CONFIG_IB700_WDT is not set
+# CONFIG_WAFER_WDT is not set
+# CONFIG_I810_TCO is not set
+# CONFIG_MIXCOMWD is not set
+# CONFIG_60XX_WDT is not set
+# CONFIG_SC1200_WDT is not set
+# CONFIG_SOFT_WATCHDOG is not set
+# CONFIG_W83877F_WDT is not set
+# CONFIG_WDT is not set
+# CONFIG_WDTPCI is not set
+# CONFIG_MACHZ_WDT is not set
+# CONFIG_INDYDOG is not set
+# CONFIG_AMD7XX_TCO is not set
+# CONFIG_AMD_PM768 is not set
+# CONFIG_NVRAM is not set
+# CONFIG_RTC is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# CONFIG_FTAPE is not set
+# CONFIG_AGP is not set
+# CONFIG_DRM is not set
+
+#
+# File systems
+#
+# CONFIG_QUOTA is not set
+CONFIG_AUTOFS_FS=y
+CONFIG_AUTOFS4_FS=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+# CONFIG_ADFS_FS is not set
+# CONFIG_ADFS_FS_RW is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BEFS_DEBUG is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EXT3_FS is not set
+# CONFIG_JBD is not set
+# CONFIG_JBD_DEBUG is not set
+# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_UMSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_JFFS_FS is not set
+# CONFIG_JFFS2_FS is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_TMPFS is not set
+CONFIG_RAMFS=y
+# CONFIG_ISO9660_FS is not set
+# CONFIG_JOLIET is not set
+# CONFIG_ZISOFS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_NTFS_FS is not set
+# CONFIG_NTFS_RW is not set
+# CONFIG_HPFS_FS is not set
+CONFIG_PROC_FS=y
+# CONFIG_DEVFS_FS is not set
+# CONFIG_DEVFS_MOUNT is not set
+# CONFIG_DEVFS_DEBUG is not set
+CONFIG_DEVPTS_FS=y
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_QNX4FS_RW is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_EXT2_FS=y
+# CONFIG_SYSV_FS is not set
+# CONFIG_UDF_FS is not set
+# CONFIG_UDF_RW is not set
+# CONFIG_UFS_FS is not set
+# CONFIG_UFS_FS_WRITE is not set
+
+#
+# Network File Systems
+#
+# CONFIG_CODA_FS is not set
+# CONFIG_INTERMEZZO_FS is not set
+CONFIG_NFS_FS=y
+# CONFIG_NFS_V3 is not set
+# CONFIG_ROOT_NFS is not set
+CONFIG_NFSD=y
+# CONFIG_NFSD_V3 is not set
+# CONFIG_NFSD_TCP is not set
+CONFIG_SUNRPC=y
+CONFIG_LOCKD=y
+# CONFIG_SMB_FS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_NCPFS_PACKET_SIGNING is not set
+# CONFIG_NCPFS_IOCTL_LOCKING is not set
+# CONFIG_NCPFS_STRONG is not set
+# CONFIG_NCPFS_NFS_NS is not set
+# CONFIG_NCPFS_OS2_NS is not set
+# CONFIG_NCPFS_SMALLDOS is not set
+# CONFIG_NCPFS_NLS is not set
+# CONFIG_NCPFS_EXTRAS is not set
+# CONFIG_ZISOFS_FS is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_BSD_DISKLABEL is not set
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+# CONFIG_LDM_PARTITION is not set
+CONFIG_SGI_PARTITION=y
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+# CONFIG_SMB_NLS is not set
+# CONFIG_NLS is not set
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# Console drivers
+#
+# CONFIG_VGA_CONSOLE is not set
+# CONFIG_MDA_CONSOLE is not set
+
+#
+# Frame-buffer support
+#
+# CONFIG_FB is not set
+
+#
+# Sound
+#
+# CONFIG_SOUND is not set
+
+#
+# USB support
+#
+# CONFIG_USB is not set
+
+#
+# Bluetooth support
+#
+# CONFIG_BLUEZ is not set
+
+#
+# Kernel hacking
+#
+CONFIG_CROSSCOMPILE=y
+# CONFIG_DEBUG is not set
+# CONFIG_REMOTE_DEBUG is not set
+# CONFIG_GDB_CONSOLE is not set
+# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_MIPS_UNCACHED is not set
+
+#
+# Library routines
+#
+# CONFIG_ZLIB_INFLATE is not set
+# CONFIG_ZLIB_DEFLATE is not set
diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/CVS/Entries
--- linux-2.4.20/arch/mips/galileo-boards/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/CVS/Entries	2005-01-06 23:08:20.000000000 -0600
@@ -0,0 +1,3 @@
+D/ev64120////
+D/ev96100////
+D/generic////
diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/CVS/Repository
--- linux-2.4.20/arch/mips/galileo-boards/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/CVS/Repository	2005-01-06 23:00:02.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/galileo-boards
diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/CVS/Root
--- linux-2.4.20/arch/mips/galileo-boards/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/CVS/Root	2005-01-06 23:00:02.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/CVS/Tag
--- linux-2.4.20/arch/mips/galileo-boards/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/CVS/Tag	2005-01-06 23:00:02.000000000 -0600
@@ -0,0 +1 @@
+Tlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev64120/compressed/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/compressed/CVS/Entries
--- linux-2.4.20/arch/mips/galileo-boards/ev64120/compressed/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/compressed/CVS/Entries	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1,28 @@
+/Makefile/1.1.4.2/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/README/1.1.4.1/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/burner.c/1.1.4.2/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/doit.c/1.1.4.1/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/etherboot.h/1.1/Mon Dec  4 04:04:09 2000/-ko/Tlinux_2_4_20
+/evb64120A_Setup.c/1.1.4.1/Wed May 29 03:03:16 2002/-ko/Tlinux_2_4_20
+/fixit/1.1/Mon Dec  4 04:04:09 2000/-ko/Tlinux_2_4_20
+/flashdrv.c/1.1.4.1/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/galileo_port.h/1.1/Mon Dec  4 04:04:09 2000/-ko/Tlinux_2_4_20
+/gt64011.h/1.1.4.1/Thu Jun 27 14:21:14 2002/-ko/Tlinux_2_4_20
+/head.S/1.1.4.1/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/ld.script.gal/1.1.4.1/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/ld.sys.big.Flash/1.1.4.1/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/ld.sys.big.Flash2/1.1.4.1/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/ld.sys.big.burner/1.1/Mon Dec  4 04:04:09 2000/-ko/Tlinux_2_4_20
+/load.c/1.1/Mon Dec  4 04:04:09 2000/-ko/Tlinux_2_4_20
+/meminit.S/1.1.4.1/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/memory.c/1.1.4.1/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/misc.c/1.1.4.1/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/ns16550.h/1.1.4.1/Thu Jun 27 14:21:14 2002/-ko/Tlinux_2_4_20
+/osdep.h/1.1/Mon Dec  4 04:04:09 2000/-ko/Tlinux_2_4_20
+/pci.c/1.1.4.1/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/pci_etherboot.c/1.1.4.2/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/pci_etherboot.h/1.1/Mon Dec  4 04:04:09 2000/-ko/Tlinux_2_4_20
+/sbd.h/1.1.4.1/Thu Jun 27 14:21:14 2002/-ko/Tlinux_2_4_20
+/sbdreset_evb64120A.S/1.2.2.3/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/xfer.c/1.1/Mon Dec  4 04:04:09 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev64120/compressed/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/compressed/CVS/Repository
--- linux-2.4.20/arch/mips/galileo-boards/ev64120/compressed/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/compressed/CVS/Repository	2005-01-06 23:00:02.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/galileo-boards/ev64120/compressed
diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev64120/compressed/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/compressed/CVS/Root
--- linux-2.4.20/arch/mips/galileo-boards/ev64120/compressed/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/compressed/CVS/Root	2005-01-06 23:00:02.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev64120/compressed/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/compressed/CVS/Tag
--- linux-2.4.20/arch/mips/galileo-boards/ev64120/compressed/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/compressed/CVS/Tag	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev64120/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/CVS/Entries
--- linux-2.4.20/arch/mips/galileo-boards/ev64120/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/CVS/Entries	2005-01-06 23:08:20.000000000 -0600
@@ -0,0 +1,14 @@
+/.cvsignore/1.1/Sat Dec  9 22:28:56 2000/-ko/Tlinux_2_4_20
+/Makefile/1.4.2.1/Tue Jun 25 15:46:59 2002/-ko/Tlinux_2_4_20
+/cntmr.c/1.1.4.1/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/dma.c/1.1.4.1/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/i2o.c/1.1.4.1/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/int-handler.S/1.2.2.2/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/irq-handler.c/1.2.4.1/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/irq.c/1.7.2.6/Mon Dec  2 00:24:46 2002/-ko/Tlinux_2_4_20
+/pci_bios.c/1.5.2.3/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/promcon.c/1.1.4.3/Thu Nov  7 01:47:45 2002/-ko/Tlinux_2_4_20
+/reset.c/1.3.2.1/Mon Dec  2 00:24:46 2002/-ko/Tlinux_2_4_20
+/serialGT.c/1.1.4.1/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/setup.c/1.8.2.4/Mon Dec  2 00:24:46 2002/-ko/Tlinux_2_4_20
+D/compressed////
diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev64120/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/CVS/Repository
--- linux-2.4.20/arch/mips/galileo-boards/ev64120/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/CVS/Repository	2005-01-06 23:00:02.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/galileo-boards/ev64120
diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev64120/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/CVS/Root
--- linux-2.4.20/arch/mips/galileo-boards/ev64120/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/CVS/Root	2005-01-06 23:00:02.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev64120/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/CVS/Tag
--- linux-2.4.20/arch/mips/galileo-boards/ev64120/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/CVS/Tag	2005-01-06 23:00:02.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev64120/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/.cvsignore
--- linux-2.4.20/arch/mips/galileo-boards/ev64120/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/.cvsignore	2000-12-09 16:28:56.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev64120/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/irq.c
--- linux-2.4.20/arch/mips/galileo-boards/ev64120/irq.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/irq.c	2002-12-01 18:24:46.000000000 -0600
@@ -95,14 +95,14 @@
 /* Function for careful CP0 interrupt mask access */
 static inline void modify_cp0_intmask(unsigned clr_mask, unsigned set_mask)
 {
-	unsigned long status = read_32bit_cp0_register(CP0_STATUS);
+	unsigned long status = read_c0_status();
 	DBG(KERN_INFO "modify_cp0_intmask clr %x, set %x\n", clr_mask,
 	    set_mask);
 	DBG(KERN_INFO "modify_cp0_intmask status %x\n", status);
 	status &= ~((clr_mask & 0xFF) << 8);
 	status |= (set_mask & 0xFF) << 8;
 	DBG(KERN_INFO "modify_cp0_intmask status %x\n", status);
-	write_32bit_cp0_register(CP0_STATUS, status);
+	write_c0_status(status);
 }
 
 static inline void mask_irq(unsigned int irq_nr)
@@ -166,13 +166,13 @@
 #endif
 
 struct hw_interrupt_type no_irq_type = {
-	typename:"none",
-	startup:no_irq_startup,
-	shutdown:no_irq_enable_disable,
-	enable:no_irq_enable_disable,
-	disable:no_irq_enable_disable,
-	ack:NULL,
-	end:no_irq_enable_disable,
+	.typename= "none",
+	.startup= no_irq_startup,
+	.shutdown= no_irq_enable_disable,
+	.enable= no_irq_enable_disable,
+	.disable= no_irq_enable_disable,
+	.ack= NULL,
+	.end= no_irq_enable_disable,
 };
 
 //      ack:            no_irq_ack,                re-enable later -- SKJ
@@ -227,10 +227,10 @@
 		DBG(KERN_INFO __FUNCTION__ " irq = %d\n", irq);
 	if (irq != TIMER)
 		DBG(KERN_INFO "cause register = %x\n",
-		    read_32bit_cp0_register(CP0_CAUSE));
+		    read_c0_cause());
 	if (irq != TIMER)
 		DBG(KERN_INFO "status register = %x\n",
-		    read_32bit_cp0_register(CP0_STATUS));
+		    read_c0_status());
 #endif
 
 	cpu = smp_processor_id();
@@ -407,7 +407,7 @@
 	/*
 	 * Clear all of the interrupts while we change the able around a bit.
 	 */
-	clear_cp0_status(ST0_IM);
+	clear_c0_status(ST0_IM);
 
 	/* Sets the exception_handler array. */
 	set_except_vector(0, galileo_handle_int);
@@ -418,7 +418,7 @@
 	 * Enable timer.  Other interrupts will be enabled as they are
 	 * registered.
 	 */
-	set_cp0_status(IE_IRQ2);
+	set_c0_status(IE_IRQ2);
 
 
 #ifdef CONFIG_REMOTE_DEBUG
diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev64120/pci_bios.c linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/pci_bios.c
--- linux-2.4.20/arch/mips/galileo-boards/ev64120/pci_bios.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/pci_bios.c	2003-01-11 11:53:10.000000000 -0600
@@ -868,7 +868,7 @@
 	return 0;
 }
 
-int pcibios_enable_device(struct pci_dev *dev)
+int pcibios_enable_device(struct pci_dev *dev, int mask)
 {
 	DBG(KERN_INFO "rr: pcibios_enable_device\n");
 	return pcibios_enable_resources(dev);
diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev64120/promcon.c linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/promcon.c
--- linux-2.4.20/arch/mips/galileo-boards/ev64120/promcon.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/promcon.c	2002-11-06 19:47:45.000000000 -0600
@@ -38,11 +38,11 @@
 }
 
 static struct console sercons = {
-    name:	"ttyS",
-    write:	prom_console_write,
-    device:	prom_console_device,
-    flags:	CON_PRINTBUFFER,
-    index:	-1,
+    .name	= "ttyS",
+    .write	= prom_console_write,
+    .device	= prom_console_device,
+    .flags	= CON_PRINTBUFFER,
+    .index	= -1,
 };
 
 /*
diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev64120/reset.c linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/reset.c
--- linux-2.4.20/arch/mips/galileo-boards/ev64120/reset.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/reset.c	2002-12-01 18:24:46.000000000 -0600
@@ -22,10 +22,10 @@
 	 * kernel in the flush locks up somewhen during of after the PCI
 	 * detection stuff.
 	 */
-	set_cp0_status(ST0_BEV | ST0_ERL);
-	change_cp0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);
+	set_c0_status(ST0_BEV | ST0_ERL);
+	change_c0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);
 	flush_cache_all();
-	write_32bit_cp0_register(CP0_WIRED, 0);
+	write_c0_wired(0);
 	__asm__ __volatile__("jr\t%0"::"r"(0xbfc00000));
 }
 
diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev64120/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/setup.c
--- linux-2.4.20/arch/mips/galileo-boards/ev64120/setup.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/setup.c	2002-12-01 18:24:46.000000000 -0600
@@ -140,14 +140,14 @@
 
 #ifdef CONFIG_L2_L3_CACHE
 #error "external cache not implemented yet"
-	config_register = read_32bit_cp0_register(CP0_CONFIG);
+	config_register = read_c0_config();
 	printk("\n\n\nchecking second level cache cp0_config = %08lx\n",
 	       config_register);
 	if (config_register & CONF_SC) {	// second/third level cache available
 		config_register = config_register & (1 << 12);
-		write_32bit_cp0_register(CP0_CONFIG, config_register);
+		write_c0_config(config_register);
 		printk
-		    ("\n\n\nchecking second level cache cp0_config = %08lx\n",
+		    ("\n\n\nchecking second level cache c0_config = %08lx\n",
 		     config_register);
 	}
 #endif
diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev96100/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev96100/CVS/Entries
--- linux-2.4.20/arch/mips/galileo-boards/ev96100/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev96100/CVS/Entries	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1,10 @@
+/Makefile/1.8.2.2/Tue Jun 25 15:46:59 2002/-ko/Tlinux_2_4_20
+/init.c/1.3.2.3/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/int-handler.S/1.2.2.1/Wed Dec 19 04:51:34 2001/-ko/Tlinux_2_4_20
+/irq.c/1.12.2.4/Mon Dec  2 00:24:46 2002/-ko/Tlinux_2_4_20
+/pci_fixups.c/1.2.2.2/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/pci_ops.c/1.2.2.1/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/puts.c/1.2/Fri Mar 16 12:59:31 2001/-ko/Tlinux_2_4_20
+/setup.c/1.8.2.3/Sun Dec  1 20:59:10 2002/-ko/Tlinux_2_4_20
+/time.c/1.6.2.4/Mon Dec  2 00:24:46 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev96100/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev96100/CVS/Repository
--- linux-2.4.20/arch/mips/galileo-boards/ev96100/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev96100/CVS/Repository	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/galileo-boards/ev96100
diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev96100/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev96100/CVS/Root
--- linux-2.4.20/arch/mips/galileo-boards/ev96100/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev96100/CVS/Root	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev96100/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev96100/CVS/Tag
--- linux-2.4.20/arch/mips/galileo-boards/ev96100/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev96100/CVS/Tag	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev96100/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev96100/irq.c
--- linux-2.4.20/arch/mips/galileo-boards/ev96100/irq.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev96100/irq.c	2002-12-01 18:24:46.000000000 -0600
@@ -60,7 +60,7 @@
 	unsigned long flags;
 
 	save_and_cli(flags);
-	clear_cp0_status(0x100 << irq_nr);
+	clear_c0_status(0x100 << irq_nr);
 	restore_flags(flags);
 }
 
@@ -69,7 +69,7 @@
 	unsigned long flags;
 
 	save_and_cli(flags);
-	set_cp0_status(0x100 << irq_nr);
+	set_c0_status(0x100 << irq_nr);
 	restore_flags(flags);
 }
 
diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev96100/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev96100/setup.c
--- linux-2.4.20/arch/mips/galileo-boards/ev96100/setup.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev96100/setup.c	2002-12-01 14:59:10.000000000 -0600
@@ -65,17 +65,20 @@
 
 unsigned char mac_0_1[12];
 
+void __init bus_error_init(void)
+{
+}
 
 void __init ev96100_setup(void)
 {
-	unsigned long config = read_32bit_cp0_register(CP0_CONFIG);
-	unsigned long status = read_32bit_cp0_register(CP0_STATUS);
-	unsigned long info = read_32bit_cp0_register(CP0_INFO);
+	unsigned int config = read_c0_config();
+	unsigned int status = read_c0_status();
+	unsigned int info = read_c0_info();
 	u32 tmp;
 
 	char *argptr;
 
-	clear_cp0_status(ST0_FR);
+	clear_c0_status(ST0_FR);
 
         if (config & 0x8) {
             printk("Secondary cache is enabled\n");
diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev96100/time.c linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev96100/time.c
--- linux-2.4.20/arch/mips/galileo-boards/ev96100/time.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev96100/time.c	2002-12-01 18:24:46.000000000 -0600
@@ -54,7 +54,7 @@
 
 static inline void ack_r4ktimer(unsigned long newval)
 {
-	write_32bit_cp0_register(CP0_COMPARE, newval);
+	write_c0_compare(newval);
 }
 
 static int set_rtc_mmss(unsigned long nowtime)
@@ -109,12 +109,11 @@
 	est_freq -= est_freq%10000;
 	printk("CPU frequency %d.%02d MHz\n", est_freq/1000000,
 	       (est_freq%1000000)*100/1000000);
-	r4k_cur = (read_32bit_cp0_register(CP0_COUNT) + r4k_offset);
+	r4k_cur = (read_c0_count() + r4k_offset);
 
-	write_32bit_cp0_register(CP0_COMPARE, r4k_cur);
+	write_c0_compare(r4k_cur);
 
-        /* FIX ME */
-	change_cp0_status(ST0_IM, IE_IRQ5);
+	change_c0_status(ST0_IM, IE_IRQ5);		/* FIX ME */
 }
 
 /* This is for machines which generate the exact clock. */
@@ -172,7 +171,7 @@
 	}
 
 	/* Get last timer tick in absolute kernel time */
-	count = read_32bit_cp0_register(CP0_COUNT);
+	count = read_c0_count();
 
 	/* .. relative to previous jiffy (32 bits is enough) */
 	count -= timerlo;
@@ -221,7 +220,7 @@
 	write_lock_irq (&xtime_lock);
 
 	/* This is revolting. We need to set the xtime.tv_usec correctly.
-	 * However, the value in this location is is value at the last tick.
+	 * However, the value in this location is value at the last tick.
 	 * Discover what correction gettimeofday would have done, and then
 	 * undo it!
 	 */
@@ -260,7 +259,7 @@
 		r4k_cur += r4k_offset;
 		ack_r4ktimer(r4k_cur);
 
-	} while (((unsigned long)read_32bit_cp0_register(CP0_COUNT)
+	} while (((unsigned long)read_c0_count()
                     - r4k_cur) < 0x7fffffff);
 	return;
 
diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/generic/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/generic/CVS/Entries
--- linux-2.4.20/arch/mips/galileo-boards/generic/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/generic/CVS/Entries	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1,3 @@
+/Makefile/1.4.2.2/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/reset.c/1.3.2.4/Mon Dec  2 00:24:47 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/generic/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/generic/CVS/Repository
--- linux-2.4.20/arch/mips/galileo-boards/generic/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/generic/CVS/Repository	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/galileo-boards/generic
diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/generic/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/generic/CVS/Root
--- linux-2.4.20/arch/mips/galileo-boards/generic/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/generic/CVS/Root	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/generic/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/generic/CVS/Tag
--- linux-2.4.20/arch/mips/galileo-boards/generic/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/generic/CVS/Tag	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/generic/reset.c linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/generic/reset.c
--- linux-2.4.20/arch/mips/galileo-boards/generic/reset.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/generic/reset.c	2002-12-01 18:24:47.000000000 -0600
@@ -48,10 +48,10 @@
 
 static void mips_machine_restart(char *command)
 {
-	set_cp0_status(ST0_BEV | ST0_ERL);
-	change_cp0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);
+	set_c0_status(ST0_BEV | ST0_ERL);
+	change_c0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);
 	flush_cache_all();
-	write_32bit_cp0_register(CP0_WIRED, 0);
+	write_c0_wired(0);
 	__asm__ __volatile__("jr\t%0"::"r"(0xbfc00000));
 	while (1);
 }
diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/common/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/common/CVS/Entries
--- linux-2.4.20/arch/mips/gt64120/common/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/common/CVS/Entries	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1,5 @@
+/.cvsignore/1.1/Mon Feb  5 01:33:01 2001/-ko/Tlinux_2_4_20
+/Makefile/1.2.2.1/Tue Jun 25 15:47:00 2002/-ko/Tlinux_2_4_20
+/gt_irq.c/1.2.2.1/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/pci.c/1.4.2.3/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/common/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/common/CVS/Repository
--- linux-2.4.20/arch/mips/gt64120/common/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/common/CVS/Repository	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/gt64120/common
diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/common/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/common/CVS/Root
--- linux-2.4.20/arch/mips/gt64120/common/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/common/CVS/Root	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/common/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/common/CVS/Tag
--- linux-2.4.20/arch/mips/gt64120/common/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/common/CVS/Tag	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/common/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/common/.cvsignore
--- linux-2.4.20/arch/mips/gt64120/common/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/common/.cvsignore	2001-02-04 19:33:01.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/common/gt_irq.c linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/common/gt_irq.c
--- linux-2.4.20/arch/mips/gt64120/common/gt_irq.c	2001-09-09 12:43:01.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/common/gt_irq.c	2002-08-05 18:53:32.000000000 -0500
@@ -37,8 +37,8 @@
  * the interrupt service routine is called.
  *
  * Inputs :
- * int_cause - The interrupt cause number. In EVB64120 two parameters 
- *             are declared, INT_CAUSE_MAIN and INT_CAUSE_HIGH. 
+ * int_cause - The interrupt cause number. In EVB64120 two parameters
+ *             are declared, INT_CAUSE_MAIN and INT_CAUSE_HIGH.
  * bit_num   - Indicates which bit number in the cause register
  * isr_ptr   - Pointer to the interrupt service routine
  */
@@ -52,7 +52,7 @@
  * Enables the IRQ on Galileo Chip
  *
  * Inputs :
- * int_cause - The interrupt cause number. In EVB64120 two parameters 
+ * int_cause - The interrupt cause number. In EVB64120 two parameters
  *             are declared, INT_CAUSE_MAIN and INT_CAUSE_HIGH.
  * bit_num   - Indicates which bit number in the cause register
  *
@@ -76,7 +76,7 @@
  * Disables the IRQ on Galileo Chip
  *
  * Inputs :
- * int_cause - The interrupt cause number. In EVB64120 two parameters 
+ * int_cause - The interrupt cause number. In EVB64120 two parameters
  *             are declared, INT_CAUSE_MAIN and INT_CAUSE_HIGH.
  * bit_num   - Indicates which bit number in the cause register
  *
diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/common/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/common/Makefile
--- linux-2.4.20/arch/mips/gt64120/common/Makefile	2001-09-09 12:43:01.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/common/Makefile	2002-06-25 10:47:00.000000000 -0500
@@ -6,10 +6,7 @@
 # unless it's something special (ie not a .c file).
 #
 
-.S.s:
-	$(CPP) $(CFLAGS) $< -o $*.s
-.S.o:
-	$(CC) $(CFLAGS) -c $< -o $*.o
+USE_STANDARD_AS_RULE := true
 
 O_TARGET:= gt64120.o
 
diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/common/pci.c linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/common/pci.c
--- linux-2.4.20/arch/mips/gt64120/common/pci.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/common/pci.c	2003-01-11 11:53:10.000000000 -0600
@@ -440,7 +440,7 @@
  * pci_range_ck -
  *
  * Check if the pci device that are trying to access does really exists
- * on the evaluation board.  
+ * on the evaluation board.
  *
  * Inputs :
  * bus - bus number (0 for PCI 0 ; 1 for PCI 1)
@@ -462,13 +462,13 @@
 
 /*
  * pciXReadConfigReg  - Read from a PCI configuration register
- *                    - Make sure the GT is configured as a master before 
+ *                    - Make sure the GT is configured as a master before
  *                      reading from another device on the PCI.
  *                   - The function takes care of Big/Little endian conversion.
  * INPUTS:   regOffset: The register offset as it apears in the GT spec (or PCI
  *                        spec)
- *           pciDevNum: The device number needs to be addressed.                
- * RETURNS: data , if the data == 0xffffffff check the master abort bit in the 
+ *           pciDevNum: The device number needs to be addressed.
+ * RETURNS: data , if the data == 0xffffffff check the master abort bit in the
  *                 cause register to make sure the data is valid
  *
  *  Configuration Address 0xCF8:
@@ -522,7 +522,7 @@
 	 * to stabilize, so the READ can work.
 	 */
 	if (PCI_SLOT(device->devfn) == SELF) {	/* This board */
-		/* when configurating our own PCI 1 L-unit the access is through  
+		/* when configurating our own PCI 1 L-unit the access is through
 		   the PCI 0 interface with reg number = reg number + 0x80 */
 		DataForRegCf8 |= 0x80;
 		GT_WRITE(GT_PCI0_CFGADDR_OFS, DataForRegCf8);
@@ -542,13 +542,13 @@
 
 /*
  * pciXWriteConfigReg - Write to a PCI configuration register
- *                    - Make sure the GT is configured as a master before 
+ *                    - Make sure the GT is configured as a master before
  *                      writingto another device on the PCI.
  *                    - The function takes care of Big/Little endian conversion.
  * Inputs:   unsigned int regOffset: The register offset as it apears in the
- *           GT spec 
+ *           GT spec
  *                   (or any other PCI device spec)
- *           pciDevNum: The device number needs to be addressed.                
+ *           pciDevNum: The device number needs to be addressed.
  *
  *  Configuration Address 0xCF8:
  *
@@ -847,7 +847,7 @@
 	return 0;
 }
 
-int pcibios_enable_device(struct pci_dev *dev)
+int pcibios_enable_device(struct pci_dev *dev, int mask)
 {
 	return pcibios_enable_resources(dev);
 }
@@ -1062,7 +1062,7 @@
 		 * We've found the largest BAR.  Allocate it into IO or
 		 * mem space.  We don't idiot check the bases to make
 		 * sure they haven't overflowed the current size for that
-		 * aperture.  
+		 * aperture.
 		 * Don't bother to enable the device's IO or MEM space here.
 		 * That will be done in pci_enable_resources if the device is
 		 * activated by a driver.
diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/CVS/Entries
--- linux-2.4.20/arch/mips/gt64120/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/CVS/Entries	2005-01-06 23:08:20.000000000 -0600
@@ -0,0 +1,2 @@
+D/common////
+D/momenco_ocelot////
diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/CVS/Repository
--- linux-2.4.20/arch/mips/gt64120/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/CVS/Repository	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/gt64120
diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/CVS/Root
--- linux-2.4.20/arch/mips/gt64120/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/CVS/Root	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/CVS/Tag
--- linux-2.4.20/arch/mips/gt64120/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/CVS/Tag	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1 @@
+Tlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/momenco_ocelot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/CVS/Entries
--- linux-2.4.20/arch/mips/gt64120/momenco_ocelot/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/CVS/Entries	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1,11 @@
+/.cvsignore/1.1/Mon Feb  5 01:33:01 2001/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.1/Tue Jun 25 15:47:00 2002/-ko/Tlinux_2_4_20
+/dbg_io.c/1.2/Thu Nov 29 15:09:48 2001/-ko/Tlinux_2_4_20
+/int-handler.S/1.2.2.2/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/irq.c/1.5.2.4/Mon Dec  2 00:24:47 2002/-ko/Tlinux_2_4_20
+/ocelot_pld.h/1.2/Thu Sep  6 13:12:01 2001/-ko/Tlinux_2_4_20
+/pci.c/1.3.2.1/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/prom.c/1.3.2.2/Tue Aug 27 19:43:10 2002/-ko/Tlinux_2_4_20
+/reset.c/1.4/Thu Aug 30 11:52:18 2001/-ko/Tlinux_2_4_20
+/setup.c/1.5.2.5/Mon Dec  2 00:24:47 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/momenco_ocelot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/CVS/Repository
--- linux-2.4.20/arch/mips/gt64120/momenco_ocelot/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/CVS/Repository	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/gt64120/momenco_ocelot
diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/momenco_ocelot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/CVS/Root
--- linux-2.4.20/arch/mips/gt64120/momenco_ocelot/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/CVS/Root	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/momenco_ocelot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/CVS/Tag
--- linux-2.4.20/arch/mips/gt64120/momenco_ocelot/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/CVS/Tag	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/momenco_ocelot/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/.cvsignore
--- linux-2.4.20/arch/mips/gt64120/momenco_ocelot/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/.cvsignore	2001-02-04 19:33:01.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/momenco_ocelot/int-handler.S linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/int-handler.S
--- linux-2.4.20/arch/mips/gt64120/momenco_ocelot/int-handler.S	2001-09-09 12:43:01.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/int-handler.S	2002-08-05 18:53:32.000000000 -0500
@@ -9,7 +9,6 @@
  * Free Software Foundation;  either version 2 of the  License, or (at your
  * option) any later version.
  */
-#include <linux/config.h>
 #include <asm/asm.h>
 #include <asm/mipsregs.h>
 #include <asm/addrspace.h>
@@ -26,11 +25,11 @@
 		SAVE_ALL
 		CLI
 		.set	at
-		mfc0	t0, CP0_CAUSE  
+		mfc0	t0, CP0_CAUSE
 		mfc0	t2, CP0_STATUS
 
 		and	t0, t2
-        
+
 		 andi	t1, t0, STATUSF_IP2	/* int0 hardware line */
 		bnez	t1, ll_pri_enet_irq
 		 andi	t1, t0, STATUSF_IP3	/* int1 hardware line */
@@ -45,7 +44,7 @@
 		bnez	t1, ll_cputimer_irq
 
                 /* now look at the extended interrupts */
-		mfc0	t0, CP0_CAUSE  
+		mfc0	t0, CP0_CAUSE
 		cfc0	t1, CP0_S1_INTCONTROL
 
 		/* shift the mask 8 bits left to line up the bits */
@@ -88,7 +87,7 @@
 		move	a1, sp
 		jal	do_IRQ
 		j	ret_from_irq
-	
+
 ll_cpci_irq:
 		li	a0, 5
 		move	a1, sp
@@ -106,7 +105,7 @@
 		move	a1, sp
 		jal	do_IRQ
 		j	ret_from_irq
-	
+
 ll_pmc1_irq:
 		li	a0, 8
 		move	a1, sp
diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/momenco_ocelot/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/irq.c
--- linux-2.4.20/arch/mips/gt64120/momenco_ocelot/irq.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/irq.c	2002-12-01 18:24:47.000000000 -0600
@@ -28,6 +28,7 @@
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
+#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/init.h>
 #include <linux/kernel_stat.h>
@@ -60,18 +61,18 @@
 	/* do the low 8 bits first */
 	clr_mask = 0xff & clr_mask_in;
 	set_mask = 0xff & set_mask_in;
-	status = read_32bit_cp0_register(CP0_STATUS);
+	status = read_c0_status();
 	status &= ~((clr_mask & 0xFF) << 8);
 	status |= (set_mask & 0xFF) << 8;
-	write_32bit_cp0_register(CP0_STATUS, status);
+	write_c0_status(status);
 
 	/* do the high 8 bits */
 	clr_mask = 0xff & (clr_mask_in >> 8);
 	set_mask = 0xff & (set_mask_in >> 8);
-	status = read_32bit_cp0_set1_register(CP0_S1_INTCONTROL);
+	status = read_c0_intcontrol();
 	status &= ~((clr_mask & 0xFF) << 8);
 	status |= (set_mask & 0xFF) << 8;
-	write_32bit_cp0_set1_register(CP0_S1_INTCONTROL, status);
+	write_c0_intcontrol(status);
 }
 
 static inline void mask_irq(unsigned int irq)
@@ -144,7 +145,7 @@
 	/*
 	 * Clear all of the interrupts while we change the able around a bit.
 	 */
-	clear_cp0_status(ST0_IM);
+	clear_c0_status(ST0_IM);
 	__cli();
 
 	/* Sets the first-level interrupt dispatcher. */
diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/momenco_ocelot/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/Makefile
--- linux-2.4.20/arch/mips/gt64120/momenco_ocelot/Makefile	2001-09-09 12:43:01.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/Makefile	2002-06-25 10:47:00.000000000 -0500
@@ -6,10 +6,7 @@
 # unless it's something special (ie not a .c file).
 #
 
-.S.s:
-	$(CPP) $(CFLAGS) $< -o $*.s
-.S.o:
-	$(CC) $(CFLAGS) -c $< -o $*.o
+USE_STANDARD_AS_RULE := true
 
 O_TARGET:= momenco_ocelot.o
 
diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/momenco_ocelot/pci.c linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/pci.c
--- linux-2.4.20/arch/mips/gt64120/momenco_ocelot/pci.c	2001-09-09 12:43:01.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/pci.c	2002-08-05 18:53:32.000000000 -0500
@@ -44,7 +44,7 @@
 			devices->irq = 2;       /* irq_nr is 2 for INT0 */
 		} else if (PCI_SLOT(devices->devfn) == 2) {
 			/*
-			 * Slot 2 is secondary ether port, i21143 
+			 * Slot 2 is secondary ether port, i21143
 			 * we double-check against that assumption
 			 */
 			if ((devices->vendor != 0x1011) ||
diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/momenco_ocelot/prom.c linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/prom.c
--- linux-2.4.20/arch/mips/gt64120/momenco_ocelot/prom.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/prom.c	2002-08-27 14:43:10.000000000 -0500
@@ -15,34 +15,35 @@
 #include <asm/addrspace.h>
 #include <asm/bootinfo.h>
 
-#define PLD_BASE	0xbc000000
-
-#define REV             0x0     /* Board Assembly Revision */
-#define PLD1ID          0x1     /* PLD 1 ID */
-#define PLD2ID          0x2     /* PLD 2 ID */
-#define RESET_STAT      0x3     /* Reset Status Register */
-#define BOARD_STAT      0x4     /* Board Status Register */
-#define CPCI_ID         0x5     /* Compact PCI ID Register */
-#define CONTROL         0x8     /* Control Register */
-#define CPU_EEPROM      0x9     /* CPU Configuration EEPROM Register */
-#define INTMASK         0xA     /* Interrupt Mask Register */
-#define INTSTAT         0xB     /* Interrupt Status Register */
-#define INTSET          0xC     /* Interrupt Set Register */
-#define INTCLR          0xD     /* Interrupt Clear Register */
-
-#define PLD_REG(x)	((uint8_t*)(PLD_BASE+(x)))
+struct callvectors {
+	int	(*open) (char*, int, int);
+	int	(*close) (int);
+	int	(*read) (int, void*, int);
+	int	(*write) (int, void*, int);
+	off_t	(*lseek) (int, off_t, int);
+	int	(*printf) (const char*, ...);
+	void	(*cacheflush) (void);
+	char*	(*gets) (char*);
+};
 
+struct callvectors* debug_vectors;
 char arcs_cmdline[CL_SIZE];
 
+extern unsigned long gt64120_base;
+
 const char *get_system_type(void)
 {
 	return "Momentum Ocelot";
 }
 
 /* [jsun@junsun.net] PMON passes arguments in C main() style */
-void __init prom_init(int argc, const char **arg)
+void __init prom_init(int argc, char **arg, char** env, struct callvectors *cv)
 {
 	int i;
+	uint32_t tmp;
+
+	/* save the PROM vectors for debugging use */
+	debug_vectors = cv;
 
 	/* arg[0] is "g", the rest is boot parameters */
 	arcs_cmdline[0] = '\0';
@@ -57,9 +58,16 @@
 	mips_machgroup = MACH_GROUP_MOMENCO;
 	mips_machtype = MACH_MOMENCO_OCELOT;
 
-	/* turn off the Bit Error LED, which comes on automatically
-	 * at power-up reset */
-	*PLD_REG(INTCLR) = 0x80;
+	while (*env) {
+		if (strncmp("gtbase", *env, 6) == 0) {
+			gt64120_base = simple_strtol(*env + strlen("gtbase="),
+							NULL, 16);
+			break;
+		}
+		*env++;
+	}
+
+	debug_vectors->printf("Booting Linux kernel...\n");
 
 	/* All the boards have at least 64MiB. If there's more, we
 	   detect and register it later */
diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/momenco_ocelot/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/setup.c
--- linux-2.4.20/arch/mips/gt64120/momenco_ocelot/setup.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/setup.c	2002-12-01 18:24:47.000000000 -0600
@@ -59,6 +59,7 @@
 #include <asm/ptrace.h>
 #include <asm/reboot.h>
 #include <asm/mc146818rtc.h>
+#include <asm/traps.h>
 #include <linux/version.h>
 #include <linux/bootmem.h>
 #include <linux/blk.h>
@@ -82,26 +83,11 @@
 #define ENTRYLO(x) ((pte_val(mk_pte_phys((x), PAGE_KERNEL_UNCACHED)) >> 6)|1)
 
 static void __init setup_l3cache(unsigned long size);
+void __init bus_error_init(void) { /* nothing */ }
 
-void __init momenco_ocelot_setup(void)
+/* setup code for a handoff from a version 1 PMON 2000 PROM */
+void PMON_v1_setup()
 {
-	void (*l3func)(unsigned long)=KSEG1ADDR(&setup_l3cache);
-	unsigned int tmpword;
-
-	board_time_init = gt64120_time_init;
-
-	_machine_restart = momenco_ocelot_restart;
-	_machine_halt = momenco_ocelot_halt;
-	_machine_power_off = momenco_ocelot_power_off;
-
-	/*
-	 * initrd_start = (ulong)ocelot_initrd_start;
-	 * initrd_end = (ulong)ocelot_initrd_start + (ulong)ocelot_initrd_size;
-	 * initrd_below_start_ok = 1;
-	 */
-	rtc_ops = &no_rtc_ops;
-
-
 	/* A wired TLB entry for the GT64120A and the serial port. The
 	   GT64120A is going to be hit on every IRQ anyway - there's
 	   absolutely no point in letting it be a random TLB entry, as
@@ -122,12 +108,11 @@
 		Ocelot PLD (CS0)	0x2c000000	0xe0020000
 		NVRAM			0x2c800000	0xe0030000
 	*/
-		
-	add_temporary_entry(ENTRYLO(0x2C000000), ENTRYLO(0x2d000000), 0xe0020000, PM_64K);
 
+	add_temporary_entry(ENTRYLO(0x2C000000), ENTRYLO(0x2d000000), 0xe0020000, PM_64K);
 
 	/* Relocate the CS3/BootCS region */
-  	GT_WRITE( GT_CS3BOOTLD_OFS, 0x2f000000 >> 21);
+  	GT_WRITE(GT_CS3BOOTLD_OFS, 0x2f000000 >> 21);
 
 	/* Relocate CS[012] */
  	GT_WRITE(GT_CS20LD_OFS, 0x2c000000 >> 21);
@@ -142,19 +127,75 @@
 	GT_WRITE(GT_PCI0_CFGDATA_OFS, 0x24000000);
 	GT_WRITE(GT_PCI0_CFGADDR_OFS, 0x80000024);
 	GT_WRITE(GT_PCI0_CFGDATA_OFS, 0x24000001);
+}
 
-	/* Relocate PCI0 I/O and Mem0 */
-	GT_WRITE(GT_PCI0IOLD_OFS, 0x20000000 >> 21);
-	GT_WRITE(GT_PCI0M0LD_OFS, 0x22000000 >> 21);
+/* setup code for a handoff from a version 2 PMON 2000 PROM */
+void PMON_v2_setup()
+{
+	/* A wired TLB entry for the GT64120A and the serial port. The
+	   GT64120A is going to be hit on every IRQ anyway - there's
+	   absolutely no point in letting it be a random TLB entry, as
+	   it'll just cause needless churning of the TLB. And we use
+	   the other half for the serial port, which is just a PITA
+	   otherwise :)
 
-	/* Relocate PCI0 Mem1 */
-	GT_WRITE(GT_PCI0M1LD_OFS, 0x36000000 >> 21);
+		Device			Physical	Virtual
+		GT64120 Internal Regs	0xf4000000	0xe0000000
+		UARTs (CS2)		0xfd000000	0xe0001000
+	*/
+	add_wired_entry(ENTRYLO(0xf4000000), ENTRYLO(0xfD000000), 0xe0000000, PM_4K);
+
+	/* Also a temporary entry to let us talk to the Ocelot PLD and NVRAM
+	   in the CS[012] region. We can't use ioremap() yet. The NVRAM
+	   is a ST M48T37Y, which includes NVRAM, RTC, and Watchdog functions.
+
+		Ocelot PLD (CS0)	0xfc000000	0xe0020000
+		NVRAM			0xfc800000	0xe0030000
+	*/
+	add_temporary_entry(ENTRYLO(0xfC000000), ENTRYLO(0xfd000000), 0xe0020000, PM_64K);
+
+	gt64120_base = 0xe0000000;
+}
+
+void __init momenco_ocelot_setup(void)
+{
+	void (*l3func)(unsigned long)=KSEG1ADDR(&setup_l3cache);
+	unsigned int tmpword;
+
+	board_time_init = gt64120_time_init;
+
+	_machine_restart = momenco_ocelot_restart;
+	_machine_halt = momenco_ocelot_halt;
+	_machine_power_off = momenco_ocelot_power_off;
+
+	/*
+	 * initrd_start = (ulong)ocelot_initrd_start;
+	 * initrd_end = (ulong)ocelot_initrd_start + (ulong)ocelot_initrd_size;
+	 * initrd_below_start_ok = 1;
+	 */
+	rtc_ops = &no_rtc_ops;
+
+	/* do handoff reconfiguration */
+	if (gt64120_base == KSEG1ADDR(GT_DEF_BASE))
+		PMON_v1_setup();
+	else
+		PMON_v2_setup();
+
+	/* Turn off the Bit-Error LED */
+	OCELOT_PLD_WRITE(0x80, INTCLR);
 
 	/* Relocate all the PCI1 stuff, not that we use it */
 	GT_WRITE(GT_PCI1IOLD_OFS, 0x30000000 >> 21);
 	GT_WRITE(GT_PCI1M0LD_OFS, 0x32000000 >> 21);
 	GT_WRITE(GT_PCI1M1LD_OFS, 0x34000000 >> 21);
 
+	/* Relocate PCI0 I/O and Mem0 */
+	GT_WRITE(GT_PCI0IOLD_OFS, 0x20000000 >> 21);
+	GT_WRITE(GT_PCI0M0LD_OFS, 0x22000000 >> 21);
+
+	/* Relocate PCI0 Mem1 */
+	GT_WRITE(GT_PCI0M1LD_OFS, 0x36000000 >> 21);
+
 	/* For the initial programming, we assume 512MB configuration */
 	/* Relocate the CPU's view of the RAM... */
 	GT_WRITE(GT_SCS10LD_OFS, 0);
@@ -283,7 +324,7 @@
 {
 	int register i;
 	unsigned long tmp;
-	
+
 	printk("Enabling L3 cache...");
 
 	/* Enable the L3 cache in the GT64120A's CPU Configuration register */
@@ -291,11 +332,11 @@
 	GT_WRITE(0, tmp | (1<<14));
 
 	/* Enable the L3 cache in the CPU */
-	set_cp0_config(1<<12 /* CONF_TE */);
+	set_c0_config(1<<12 /* CONF_TE */);
 
 	/* Clear the cache */
-	set_taglo(0);
-	set_taghi(0);
+	write_c0_taglo(0);
+	write_c0_taghi(0);
 
 	for (i=0; i < size; i+= 4096) {
 		__asm__ __volatile__ (
diff -urNd -urNd linux-2.4.20/arch/mips/hp-lj/asic.c linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/asic.c
--- linux-2.4.20/arch/mips/hp-lj/asic.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/asic.c	2002-08-05 18:53:32.000000000 -0500
@@ -20,7 +20,7 @@
 
 const char* const GetAsicName(void)
 {
-   static const char* const Names[] = 
+   static const char* const Names[] =
         { "Illegal", "Unknown", "Andros", "Harmony" };
 
    return Names[(int)GetAsicId()];
diff -urNd -urNd linux-2.4.20/arch/mips/hp-lj/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/CVS/Entries
--- linux-2.4.20/arch/mips/hp-lj/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/CVS/Entries	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1,13 @@
+/.cvsignore/1.1/Sun Nov 18 03:24:36 2001/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.1/Tue Jun 25 15:47:00 2002/-ko/Tlinux_2_4_20
+/asic.c/1.1.2.1/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/gdb_hook.c/1.1.2.2/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/init.c/1.3.2.2/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/int-handler.S/1.2.2.1/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/irq.c/1.1.2.2/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/pci-dma.c/1.1.2.1/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/pci.c/1.2.2.1/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/setup.c/1.2.2.3/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/utils.c/1.1.2.2/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/utils.h/1.1/Sun Nov 18 03:24:36 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/hp-lj/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/CVS/Repository
--- linux-2.4.20/arch/mips/hp-lj/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/CVS/Repository	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/hp-lj
diff -urNd -urNd linux-2.4.20/arch/mips/hp-lj/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/CVS/Root
--- linux-2.4.20/arch/mips/hp-lj/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/CVS/Root	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/hp-lj/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/CVS/Tag
--- linux-2.4.20/arch/mips/hp-lj/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/CVS/Tag	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/hp-lj/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/.cvsignore
--- linux-2.4.20/arch/mips/hp-lj/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/.cvsignore	2001-11-17 21:24:36.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/hp-lj/gdb_hook.c linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/gdb_hook.c
--- linux-2.4.20/arch/mips/hp-lj/gdb_hook.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/gdb_hook.c	2002-08-05 18:53:32.000000000 -0500
@@ -77,7 +77,7 @@
         	while (((SERIAL_REG(HPSR_TX_STAT_OFFSET) & HPSR_TX_STAT_READY) == 0))
              		;
         	SERIAL_REG(HPSR_DATA_OFFSET) = (unsigned int) c;
-        } 
+        }
 	return 1;
 }
 
@@ -87,7 +87,7 @@
 		while (!(((H_HPSR_STAT) & H_SER_STAT_RX_EMPTY) == 0));
 
 	        return H_HPSR_DATA_RX;
-        
+
 	} else if (GetAsicId() == AndrosAsic) {
         	while ((SERIAL_REG(HPSR_RX_STAT_OFFSET) & HPSR_RX_DATA_AVAIL) == 0)
               		;
diff -urNd -urNd linux-2.4.20/arch/mips/hp-lj/init.c linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/init.c
--- linux-2.4.20/arch/mips/hp-lj/init.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/init.c	2002-08-05 18:53:32.000000000 -0500
@@ -1,7 +1,7 @@
 /*
  * init.c: PROM library initialisation code.
  *
- * Copyright (C) 1998 Gleb Raiko & Vladimir Roganov 
+ * Copyright (C) 1998 Gleb Raiko & Vladimir Roganov
  */
 
 #include <linux/mm.h>
@@ -35,7 +35,7 @@
         add_memory_region(mem_size,reserve_size, BOOT_MEM_RESERVED);
 
 	printk("Main Memory: %ld bytes\n", mem_size);
-	printk("Reserved Memory: %ld bytes at 0x%08x\n", 
+	printk("Reserved Memory: %ld bytes at 0x%08x\n",
 		get_reserved_buffer_size(), (ulong)get_reserved_buffer());
 
 	printk("Detected %s ASIC\n", GetAsicName());
diff -urNd -urNd linux-2.4.20/arch/mips/hp-lj/int-handler.S linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/int-handler.S
--- linux-2.4.20/arch/mips/hp-lj/int-handler.S	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/int-handler.S	2002-08-05 18:53:32.000000000 -0500
@@ -64,7 +64,7 @@
 
 	la      a1, ret_from_irq
 	jr	a1
-*/	
+*/
 3:	j	spurious_interrupt
 END(hpIRQ)
 
diff -urNd -urNd linux-2.4.20/arch/mips/hp-lj/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/irq.c
--- linux-2.4.20/arch/mips/hp-lj/irq.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/irq.c	2002-08-05 18:53:32.000000000 -0500
@@ -26,7 +26,7 @@
     set_except_vector(0, hpIRQ);
 
 #ifdef CONFIG_REMOTE_DEBUG
-    { 
+    {
        extern void breakpoint(void);
        extern int remote_debug;
 
@@ -36,6 +36,6 @@
        }
     }
 #endif
-        
+
 }
 
diff -urNd -urNd linux-2.4.20/arch/mips/hp-lj/pci.c linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/pci.c
--- linux-2.4.20/arch/mips/hp-lj/pci.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/pci.c	2002-08-05 18:53:32.000000000 -0500
@@ -77,7 +77,7 @@
 	if (where & 1)
 		return PCIBIOS_BAD_REGISTER_NUMBER;
 	*pci_config_address_reg = cfgaddr(dev, where);
-	*(volatile u16 *)(((int)pci_config_data_reg) + (where & 2)) = 
+	*(volatile u16 *)(((int)pci_config_data_reg) + (where & 2)) =
                   le16_to_cpu(val);
 	//printk("pci_write_word 0x%x = 0x%x\n", where, val);
 	return PCIBIOS_SUCCESSFUL;
@@ -158,9 +158,9 @@
       case AndrosAsic:   pci_regs_base_offset = 0xbff80000;   break;
       case HarmonyAsic:  pci_regs_base_offset = 0xbff70000;   break;
       default:
-         printk("ERROR: PCI does not support %s Asic\n", GetAsicName()); 
+         printk("ERROR: PCI does not support %s Asic\n", GetAsicName());
 	 while(1);
-         break; 
+         break;
    }
 
    // set bus stat/command reg
@@ -176,7 +176,7 @@
 
    // KLUDGE (mips_io_port_base is screwed up, we've got to work around it here)
    // by letting both low (illegal) and high (legal) addresses appear in pci io space
-   ioport_resource.start = 0x0; 
+   ioport_resource.start = 0x0;
 
    set_io_port_base(IO_PORT_LOGICAL_START + IO_PORT_VIRTUAL_OFFSET);
 
@@ -185,7 +185,7 @@
    // except that the range is outside user space
    // parameters: lo0, lo1, hi, pagemask
    // lo indicates physical page, hi indicates virtual address
-   add_wired_entry((IO_MEM_LOGICAL_START >> 6) | 0x17, 
+   add_wired_entry((IO_MEM_LOGICAL_START >> 6) | 0x17,
                    ((IO_MEM_LOGICAL_START + (16 * ONE_MEG)) >> 6) | 0x17,
                    0xee000000, PM_16M);
 
@@ -203,7 +203,7 @@
     int bases;
 
     printk("adjusting pci device: %s\n", dev->name);
- 
+
     switch (dev->hdr_type) {
        case PCI_HEADER_TYPE_NORMAL: bases = 6; break;
        case PCI_HEADER_TYPE_BRIDGE: bases = 2; break;
@@ -212,12 +212,12 @@
     }
     for (pos=0; pos < bases; pos++) {
        struct resource* res = &dev->resource[pos];
-       if (res->start >= IO_MEM_LOGICAL_START && 
+       if (res->start >= IO_MEM_LOGICAL_START &&
            res->end <= IO_MEM_LOGICAL_END) {
               res->start += IO_MEM_VIRTUAL_OFFSET;
               res->end += IO_MEM_VIRTUAL_OFFSET;
        }
-       if (res->start >= IO_PORT_LOGICAL_START && 
+       if (res->start >= IO_PORT_LOGICAL_START &&
            res->end <= IO_PORT_LOGICAL_END) {
               res->start += IO_PORT_VIRTUAL_OFFSET;
               res->end += IO_PORT_VIRTUAL_OFFSET;
diff -urNd -urNd linux-2.4.20/arch/mips/hp-lj/pci-dma.c linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/pci-dma.c
--- linux-2.4.20/arch/mips/hp-lj/pci-dma.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/pci-dma.c	2002-08-05 18:53:32.000000000 -0500
@@ -35,10 +35,10 @@
 	           //flush the cache to eliminate coherency problems
 	           // and assure dirty lines won't later get written over any dma, etc.
                    flush_cache_all();
-		   ret = (void*)((unsigned int)ret | 0x20000000); 
+		   ret = (void*)((unsigned int)ret | 0x20000000);
                 }
 
-                
+
 	}
 	return ret;
 }
diff -urNd -urNd linux-2.4.20/arch/mips/hp-lj/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/setup.c
--- linux-2.4.20/arch/mips/hp-lj/setup.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/setup.c	2002-08-05 18:53:32.000000000 -0500
@@ -80,8 +80,8 @@
        irq->handler = andros_timer_interrupt;
        irq->flags |= SA_INTERRUPT | SA_SHIRQ;
        printk("setting up timer in hp_time_init\n");
-       setup_irq(ASIC_IRQ_NUMBER, irq); 
-    
+       setup_irq(ASIC_IRQ_NUMBER, irq);
+
        // enable timer interrupt
        *((volatile unsigned int*)0xbfea0000) = 0x20;
 
@@ -98,7 +98,7 @@
 
         *((volatile unsigned int*)0xbff610a0) |= 1;    // turn on timer0
 
-    } else if (GetAsicId() == UnknownAsic) 
+    } else if (GetAsicId() == UnknownAsic)
         printk("Unknown asic in hp_time_init()\n");
     else
         printk("Unsupported asic in hp_time_init()\n");
@@ -107,7 +107,7 @@
 
 static void hplj_restart(void)
 {
-   if (GetAsicId() == AndrosAsic) 
+   if (GetAsicId() == AndrosAsic)
        *((volatile unsigned int *) 0xbfe900c0) = 0;
 
 
diff -urNd -urNd linux-2.4.20/arch/mips/hp-lj/utils.c linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/utils.c
--- linux-2.4.20/arch/mips/hp-lj/utils.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/utils.c	2002-08-05 18:53:32.000000000 -0500
@@ -20,11 +20,11 @@
 
     unsigned long  cfg[10],i,total_mem=0;
 
-	for(i=0;i<10;i++)  
-		cfg[i] = *miu_chan_cfg(i); 
+	for(i=0;i<10;i++)
+		cfg[i] = *miu_chan_cfg(i);
 
 	for(i=0;i<10;i++){
-		if(cfg[i]==0x1fc160c2) continue;                           // skip empties 
+		if(cfg[i]==0x1fc160c2) continue;                           // skip empties
 		if(   ( (cfg[i]>>12) & 0xf )   <=  0xb ) continue;         // skip roms
         total_mem += mbsize[(cfg[i]>>16)&0x7] *1024*1024;
 	}
@@ -43,19 +43,19 @@
 
 #define MIN_GEN_MEM (4 << 20)
 
-	
-void  reserve_buffer(const char* cl, ulong base_mem) 
+
+void  reserve_buffer(const char* cl, ulong base_mem)
 {
 	char* pos = strstr(cl, "reserved_buffer=");
  	if (pos) {
-		buffer_size = simple_strtol(pos+strlen("reserved_buffer="), 
+		buffer_size = simple_strtol(pos+strlen("reserved_buffer="),
 					    0, 10);
 		buffer_size <<= 20;
 		if (buffer_size + MIN_GEN_MEM > base_mem)
 			buffer_size = base_mem - MIN_GEN_MEM;
-		if (buffer_size > 0) 
+		if (buffer_size > 0)
 			buffer_ptr = (ulong*)(base_mem - buffer_size);
-		else 
+		else
 			buffer_size = 0;
 	}
 }
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/CVS/Entries
--- linux-2.4.20/arch/mips/ite-boards/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/CVS/Entries	2005-01-06 23:08:20.000000000 -0600
@@ -0,0 +1,3 @@
+D/generic////
+D/ivr////
+D/qed-4n-s01b////
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/CVS/Repository
--- linux-2.4.20/arch/mips/ite-boards/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/CVS/Repository	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/ite-boards
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/CVS/Root
--- linux-2.4.20/arch/mips/ite-boards/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/CVS/Root	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/CVS/Tag
--- linux-2.4.20/arch/mips/ite-boards/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/CVS/Tag	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1 @@
+Tlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/generic/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/CVS/Entries
--- linux-2.4.20/arch/mips/ite-boards/generic/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/CVS/Entries	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1,15 @@
+/.cvsignore/1.1/Wed Feb 21 13:30:36 2001/-ko/Tlinux_2_4_20
+/Makefile/1.3.2.2/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/dbg_io.c/1.2/Sun Mar 18 13:52:36 2001/-ko/Tlinux_2_4_20
+/int-handler.S/1.2.2.1/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/irq.c/1.7.2.4/Mon Dec  2 00:24:47 2002/-ko/Tlinux_2_4_20
+/it8172_cir.c/1.2/Fri Mar 16 12:44:20 2001/-ko/Tlinux_2_4_20
+/it8172_pci.c/1.5.2.1/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/it8172_rtc.c/1.3/Sun Mar 18 04:30:27 2001/-ko/Tlinux_2_4_20
+/it8172_setup.c/1.7.2.3/Mon Dec  2 00:24:47 2002/-ko/Tlinux_2_4_20
+/lpc.c/1.2.2.1/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/pmon_prom.c/1.3.2.2/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/puts.c/1.3/Sun Mar 18 13:52:36 2001/-ko/Tlinux_2_4_20
+/reset.c/1.4.2.1/Mon Dec  2 00:24:47 2002/-ko/Tlinux_2_4_20
+/time.c/1.3.2.6/Mon Dec  2 00:24:47 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/generic/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/CVS/Repository
--- linux-2.4.20/arch/mips/ite-boards/generic/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/CVS/Repository	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/ite-boards/generic
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/generic/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/CVS/Root
--- linux-2.4.20/arch/mips/ite-boards/generic/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/CVS/Root	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/generic/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/CVS/Tag
--- linux-2.4.20/arch/mips/ite-boards/generic/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/CVS/Tag	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/generic/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/.cvsignore
--- linux-2.4.20/arch/mips/ite-boards/generic/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/.cvsignore	2001-02-21 07:30:36.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/generic/int-handler.S linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/int-handler.S
--- linux-2.4.20/arch/mips/ite-boards/generic/int-handler.S	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/int-handler.S	2002-08-05 18:53:32.000000000 -0500
@@ -30,11 +30,11 @@
         jal     local_timer_interrupt
 	j	ret_from_irq
         nop
-        
+
 1:
         andi    a0, t0, CAUSEF_IP2      # the only int we expect at this time
-        beq     a0, zero, 3f           
-	move	a0,sp  
+        beq     a0, zero, 3f
+	move	a0,sp
 	jal	it8172_hw0_irqdispatch
 
 	mfc0	t0,CP0_STATUS		# disable interrupts
@@ -44,12 +44,12 @@
         nop
         nop
         nop
-	
+
 	la      a1, ret_from_irq
 	jr	a1
         nop
-	
-3:	
+
+3:
 	move a0, sp
 	jal	mips_spurious_interrupt
         nop
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/generic/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/irq.c
--- linux-2.4.20/arch/mips/ite-boards/generic/irq.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/irq.c	2002-12-01 18:24:47.000000000 -0600
@@ -7,7 +7,7 @@
  * Author: MontaVista Software, Inc.
  *         	ppopov@mvista.com or source@mvista.com
  *
- * Part of this file was derived from Carsten Langgaard's 
+ * Part of this file was derived from Carsten Langgaard's
  * arch/mips/mips-boards/atlas/atlas_int.c.
  *
  * Carsten Langgaard, carstenl@mips.com
@@ -33,6 +33,7 @@
  *  with this program; if not, write  to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
+#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/init.h>
 #include <linux/kernel_stat.h>
@@ -89,10 +90,10 @@
 /* Function for careful CP0 interrupt mask access */
 static inline void modify_cp0_intmask(unsigned clr_mask, unsigned set_mask)
 {
-        unsigned long status = read_32bit_cp0_register(CP0_STATUS);
+        unsigned long status = read_c0_status();
         status &= ~((clr_mask & 0xFF) << 8);
         status |=   (set_mask & 0xFF) << 8;
-        write_32bit_cp0_register(CP0_STATUS, status);
+        write_c0_status(status);
 }
 
 static inline void mask_irq(unsigned int irq_nr)
@@ -131,28 +132,28 @@
 	if ( (irq_nr >= IT8172_LPC_IRQ_BASE) && (irq_nr <= IT8172_SERIRQ_15)) {
 		/* LPC interrupt */
 		DPRINTK("DB lpc_mask  %x\n", it8172_hw0_icregs->lpc_mask);
-		it8172_hw0_icregs->lpc_mask |= 
+		it8172_hw0_icregs->lpc_mask |=
 			(1 << (irq_nr - IT8172_LPC_IRQ_BASE));
 		DPRINTK("DA lpc_mask  %x\n", it8172_hw0_icregs->lpc_mask);
 	}
 	else if ( (irq_nr >= IT8172_LB_IRQ_BASE) && (irq_nr <= IT8172_IOCHK_IRQ)) {
 		/* Local Bus interrupt */
 		DPRINTK("DB lb_mask  %x\n", it8172_hw0_icregs->lb_mask);
-		it8172_hw0_icregs->lb_mask |= 
+		it8172_hw0_icregs->lb_mask |=
 			(1 << (irq_nr - IT8172_LB_IRQ_BASE));
 		DPRINTK("DA lb_mask  %x\n", it8172_hw0_icregs->lb_mask);
 	}
 	else if ( (irq_nr >= IT8172_PCI_DEV_IRQ_BASE) && (irq_nr <= IT8172_DMA_IRQ)) {
 		/* PCI and other interrupts */
 		DPRINTK("DB pci_mask  %x\n", it8172_hw0_icregs->pci_mask);
-		it8172_hw0_icregs->pci_mask |= 
+		it8172_hw0_icregs->pci_mask |=
 			(1 << (irq_nr - IT8172_PCI_DEV_IRQ_BASE));
 		DPRINTK("DA pci_mask  %x\n", it8172_hw0_icregs->pci_mask);
 	}
 	else if ( (irq_nr >= IT8172_NMI_IRQ_BASE) && (irq_nr <= IT8172_POWER_NMI_IRQ)) {
 		/* NMI interrupts */
 		DPRINTK("DB nmi_mask  %x\n", it8172_hw0_icregs->nmi_mask);
-		it8172_hw0_icregs->nmi_mask |= 
+		it8172_hw0_icregs->nmi_mask |=
 			(1 << (irq_nr - IT8172_NMI_IRQ_BASE));
 		DPRINTK("DA nmi_mask  %x\n", it8172_hw0_icregs->nmi_mask);
 	}
@@ -167,28 +168,28 @@
 	if ( (irq_nr >= IT8172_LPC_IRQ_BASE) && (irq_nr <= IT8172_SERIRQ_15)) {
 		/* LPC interrupt */
 		DPRINTK("EB before lpc_mask  %x\n", it8172_hw0_icregs->lpc_mask);
-		it8172_hw0_icregs->lpc_mask &= 
+		it8172_hw0_icregs->lpc_mask &=
 			~(1 << (irq_nr - IT8172_LPC_IRQ_BASE));
 		DPRINTK("EA after lpc_mask  %x\n", it8172_hw0_icregs->lpc_mask);
 	}
 	else if ( (irq_nr >= IT8172_LB_IRQ_BASE) && (irq_nr <= IT8172_IOCHK_IRQ)) {
 		/* Local Bus interrupt */
 		DPRINTK("EB lb_mask  %x\n", it8172_hw0_icregs->lb_mask);
-		it8172_hw0_icregs->lb_mask &= 
+		it8172_hw0_icregs->lb_mask &=
 			~(1 << (irq_nr - IT8172_LB_IRQ_BASE));
 		DPRINTK("EA lb_mask  %x\n", it8172_hw0_icregs->lb_mask);
 	}
 	else if ( (irq_nr >= IT8172_PCI_DEV_IRQ_BASE) && (irq_nr <= IT8172_DMA_IRQ)) {
 		/* PCI and other interrupts */
 		DPRINTK("EB pci_mask  %x\n", it8172_hw0_icregs->pci_mask);
-		it8172_hw0_icregs->pci_mask &= 
+		it8172_hw0_icregs->pci_mask &=
 			~(1 << (irq_nr - IT8172_PCI_DEV_IRQ_BASE));
 		DPRINTK("EA pci_mask  %x\n", it8172_hw0_icregs->pci_mask);
 	}
 	else if ( (irq_nr >= IT8172_NMI_IRQ_BASE) && (irq_nr <= IT8172_POWER_NMI_IRQ)) {
 		/* NMI interrupts */
 		DPRINTK("EB nmi_mask  %x\n", it8172_hw0_icregs->nmi_mask);
-		it8172_hw0_icregs->nmi_mask &= 
+		it8172_hw0_icregs->nmi_mask &=
 			~(1 << (irq_nr - IT8172_NMI_IRQ_BASE));
 		DPRINTK("EA nmi_mask  %x\n", it8172_hw0_icregs->nmi_mask);
 	}
@@ -200,7 +201,7 @@
 static unsigned int startup_ite_irq(unsigned int irq)
 {
 	enable_it8172_irq(irq);
-	return 0; 
+	return 0;
 }
 
 #define shutdown_ite_irq	disable_it8172_irq
@@ -282,15 +283,15 @@
 	it8172_hw0_icregs->lb_level |= 0x20;
 
 	/* keyboard and mouse are edge triggered */
-	it8172_hw0_icregs->lpc_trigger |= (0x2 | 0x1000); 
+	it8172_hw0_icregs->lpc_trigger |= (0x2 | 0x1000);
 
 
 #if 0
 	// Enable this piece of code to make internal USB interrupt
 	// edge triggered.
-	it8172_hw0_icregs->pci_trigger |= 
+	it8172_hw0_icregs->pci_trigger |=
 		(1 << (IT8172_USB_IRQ - IT8172_PCI_DEV_IRQ_BASE));
-	it8172_hw0_icregs->pci_level &= 
+	it8172_hw0_icregs->pci_level &=
 		~(1 << (IT8172_USB_IRQ - IT8172_PCI_DEV_IRQ_BASE));
 #endif
 
@@ -298,13 +299,13 @@
 		irq_desc[i].handler = &it8172_irq_type;
 	}
 	irq_desc[MIPS_CPU_TIMER_IRQ].handler = &cp0_irq_type;
-	set_cp0_status(ALLINTS_NOTIMER);
+	set_c0_status(ALLINTS_NOTIMER);
 
 #ifdef CONFIG_REMOTE_DEBUG
 	/* If local serial I/O used for debug port, enter kgdb at once */
 	puts("Waiting for kgdb to connect...");
 	set_debug_traps();
-	breakpoint(); 
+	breakpoint();
 #endif
 }
 
@@ -316,8 +317,8 @@
 	unsigned long status, cause;
 
 	printk("got spurious interrupt\n");
-	status = read_32bit_cp0_register(CP0_STATUS);
-	cause = read_32bit_cp0_register(CP0_CAUSE);
+	status = read_c0_status();
+	cause = read_c0_cause();
 	printk("status %x cause %x\n", status, cause);
 	printk("epc %x badvaddr %x \n", regs->cp0_epc, regs->cp0_badvaddr);
 //	while(1);
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/generic/it8172_pci.c linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/it8172_pci.c
--- linux-2.4.20/arch/mips/ite-boards/generic/it8172_pci.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/it8172_pci.c	2002-08-05 18:53:32.000000000 -0500
@@ -53,14 +53,14 @@
 static struct resource pci_mem_resource_1;
 
 static struct resource pci_io_resource = {
-	"io pci IO space", 
+	"io pci IO space",
 	0x14000000,
 	0x17FFFFFF,
 	IORESOURCE_IO
 };
 
 static struct resource pci_mem_resource_0 = {
-	"ext pci memory space 0/1", 
+	"ext pci memory space 0/1",
 	0x0C000000,
 	0x13FFFFFF,
 	IORESOURCE_MEM,
@@ -70,7 +70,7 @@
 };
 
 static struct resource pci_mem_resource_1 = {
-	"ext pci memory space 2/3", 
+	"ext pci memory space 2/3",
 	0x1A000000,
 	0x1FBFFFFF,
 	IORESOURCE_MEM,
@@ -90,7 +90,7 @@
 it8172_pcibios_config_access(unsigned char access_type, struct pci_dev *dev,
                            unsigned char where, u32 *data)
 {
-	/* 
+	/*
 	 * config cycles are on 4 byte boundary only
 	 */
 	unsigned char bus = dev->bus->number;
@@ -100,13 +100,13 @@
 			access_type, dev, bus, dev_fn, *data);
 
 	/* Setup address */
-	IT_WRITE(IT_CONFADDR, (bus << IT_BUSNUM_SHF) | 
+	IT_WRITE(IT_CONFADDR, (bus << IT_BUSNUM_SHF) |
 			(dev_fn << IT_FUNCNUM_SHF) | (where & ~0x3));
 
 
 	if (access_type == PCI_ACCESS_WRITE) {
 		IT_WRITE(IT_CONFDATA, *data);
-	} 
+	}
 	else {
 		IT_READ(IT_CONFDATA, *data);
 	}
@@ -133,7 +133,7 @@
 		return -1;
 
 	*val = (data >> ((where & 3) << 3)) & 0xff;
-        DBG("cfg read byte: bus %d dev_fn %x where %x: val %x\n", 
+        DBG("cfg read byte: bus %d dev_fn %x where %x: val %x\n",
                 dev->bus->number, dev->devfn, where, *val);
 
 	return PCIBIOS_SUCCESSFUL;
@@ -152,7 +152,7 @@
 	       return -1;
 
 	*val = (data >> ((where & 3) << 3)) & 0xffff;
-        DBG("cfg read word: bus %d dev_fn %x where %x: val %x\n", 
+        DBG("cfg read word: bus %d dev_fn %x where %x: val %x\n",
                 dev->bus->number, dev->devfn, where, *val);
 
 	return PCIBIOS_SUCCESSFUL;
@@ -165,12 +165,12 @@
 
 	if (where & 3)
 		return PCIBIOS_BAD_REGISTER_NUMBER;
-	
+
 	if (it8172_pcibios_config_access(PCI_ACCESS_READ, dev, where, &data))
 		return -1;
 
 	*val = data;
-        DBG("cfg read dword: bus %d dev_fn %x where %x: val %x\n", 
+        DBG("cfg read dword: bus %d dev_fn %x where %x: val %x\n",
                 dev->bus->number, dev->devfn, where, *val);
 
 	return PCIBIOS_SUCCESSFUL;
@@ -181,7 +181,7 @@
 write_config_byte (struct pci_dev *dev, int where, u8 val)
 {
 	u32 data = 0;
-       
+
 	if (it8172_pcibios_config_access(PCI_ACCESS_READ, dev, where, &data))
 		return -1;
 
@@ -201,11 +201,11 @@
 
 	if (where & 1)
 		return PCIBIOS_BAD_REGISTER_NUMBER;
-       
+
         if (it8172_pcibios_config_access(PCI_ACCESS_READ, dev, where, &data))
 	       return -1;
 
-	data = (data & ~(0xffff << ((where & 3) << 3))) | 
+	data = (data & ~(0xffff << ((where & 3) << 3))) |
 	       (val << ((where & 3) << 3));
 
 	if (it8172_pcibios_config_access(PCI_ACCESS_WRITE, dev, where, &data))
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/generic/it8172_setup.c linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/it8172_setup.c
--- linux-2.4.20/arch/mips/ite-boards/generic/it8172_setup.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/it8172_setup.c	2002-12-01 18:24:47.000000000 -0600
@@ -40,6 +40,7 @@
 #include <asm/irq.h>
 #include <asm/mipsregs.h>
 #include <asm/reboot.h>
+#include <asm/traps.h>
 #include <asm/it8172/it8172.h>
 #include <asm/it8712.h>
 #ifdef CONFIG_PC_KEYB
@@ -114,6 +115,9 @@
 #endif
 
 
+void __init bus_error_init(void) { /* nothing */ }
+
+
 void __init it8172_init_ram_resource(unsigned long memsize)
 {
 	it8172_resources.ram.end = memsize;
@@ -131,9 +135,9 @@
 		argptr = prom_getcmdline();
 		strcat(argptr, " console=ttyS0,115200");
 	}
-#endif	  
+#endif
 
-	clear_cp0_status(ST0_FR);
+	clear_c0_status(ST0_FR);
 	rtc_ops = &it8172_rtc_ops;
 
 	board_time_init = it8172_time_init;
@@ -146,7 +150,7 @@
 	_machine_power_off = it8172_power_off;
 
 	/*
-	* IO/MEM resources. 
+	* IO/MEM resources.
 	*
 	* revisit this area.
 	*/
@@ -173,7 +177,7 @@
 	dsr &= ~IT_PM_DSR_ACSB;
 #else
 	dsr |= IT_PM_DSR_ACSB;
-#endif	
+#endif
 #ifdef CONFIG_BLK_DEV_IT8172
 	dsr &= ~IT_PM_DSR_IDESB;
 	ide_ops = &std_ide_ops;
@@ -209,8 +213,8 @@
 			LPCSetConfig(0x4, 0x30, 0x1);
 			LPCSetConfig(0x4, 0xf4, LPCGetConfig(0x4, 0xf4) | 0x80);
 
-			if ((LPCGetConfig(LDN_KEYBOARD, 0x30) == 0) || 
-					(LPCGetConfig(LDN_MOUSE, 0x30) == 0)) 
+			if ((LPCGetConfig(LDN_KEYBOARD, 0x30) == 0) ||
+					(LPCGetConfig(LDN_MOUSE, 0x30) == 0))
 				printk("Error: keyboard or mouse not enabled\n");
 
 			kbd_ops = &std_kbd_ops;
@@ -234,7 +238,7 @@
 #endif
 #ifdef CONFIG_IT8172_SCR0
 	{
-		unsigned i; 
+		unsigned i;
 		/* Enable Smart Card Reader 0 */
 		/* First power it up */
 		IT_IO_READ16(IT_PM_DSR, i);
@@ -253,7 +257,7 @@
 #endif /* CONFIG_IT8172_SCR0 */
 #ifdef CONFIG_IT8172_SCR1
 	{
-		unsigned i; 
+		unsigned i;
 		/* Enable Smart Card Reader 1 */
 		/* First power it up */
 		IT_IO_READ16(IT_PM_DSR, i);
@@ -275,7 +279,7 @@
 
 #ifdef CONFIG_PC_KEYB
 /*
- * According to the ITE Special BIOS Note for waking up the 
+ * According to the ITE Special BIOS Note for waking up the
  * keyboard controller...
  */
 int init_8712_keyboard()
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/generic/lpc.c linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/lpc.c
--- linux-2.4.20/arch/mips/ite-boards/generic/lpc.c	2001-09-09 12:43:01.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/lpc.c	2002-08-05 18:53:32.000000000 -0500
@@ -62,7 +62,7 @@
 	LPCEnterMBPnP();				// Enter IT8712 MB PnP mode
 	outb(0x07, LPC_KEY_ADDR);
 	outb(LdnNumber, LPC_DATA_ADDR);
-	outb(Index, LPC_KEY_ADDR);	
+	outb(Index, LPC_KEY_ADDR);
 	outb(data, LPC_DATA_ADDR);
 	LPCExitMBPnP();
 }
@@ -74,7 +74,7 @@
 	LPCEnterMBPnP();				// Enter IT8712 MB PnP mode
 	outb(0x07, LPC_KEY_ADDR);
 	outb(LdnNumber, LPC_DATA_ADDR);
-	outb(Index, LPC_KEY_ADDR);	
+	outb(Index, LPC_KEY_ADDR);
 	rtn = inb(LPC_DATA_ADDR);
 	LPCExitMBPnP();
 	return rtn;
@@ -92,7 +92,7 @@
 	Id2 = inb(LPC_DATA_ADDR);
 	Id = (Id1 << 8) | Id2;
 	LPCExitMBPnP();
-	if (Id == 0x8712) 
+	if (Id == 0x8712)
 		return TRUE;
 	else
 		return FALSE;
@@ -104,30 +104,30 @@
 	unsigned long data;
 
 	bus = 0;
-	dev_fn = 1<<3 | 4; 
+	dev_fn = 1<<3 | 4;
 
 
 	/* pci cmd, SERR# Enable */
-	IT_WRITE(IT_CONFADDR,  
+	IT_WRITE(IT_CONFADDR,
 		 (bus         << IT_BUSNUM_SHF)   |
 		 (dev_fn      << IT_FUNCNUM_SHF) |
 		 ((0x4 / 4) << IT_REGNUM_SHF));
 	IT_READ(IT_CONFDATA, data);
 	data |= 0x0100;
-	IT_WRITE(IT_CONFADDR,  
+	IT_WRITE(IT_CONFADDR,
 		 (bus         << IT_BUSNUM_SHF)   |
 		 (dev_fn      << IT_FUNCNUM_SHF) |
 		 ((0x4 / 4) << IT_REGNUM_SHF));
 	IT_WRITE(IT_CONFDATA, data);
 
 	/* setup serial irq control register */
-	IT_WRITE(IT_CONFADDR,  
+	IT_WRITE(IT_CONFADDR,
 		 (bus         << IT_BUSNUM_SHF)   |
 		 (dev_fn      << IT_FUNCNUM_SHF) |
 		 ((0x48 / 4) << IT_REGNUM_SHF));
 	IT_READ(IT_CONFDATA, data);
 	data  = (data & 0xffff00ff) | 0xc400;
-	IT_WRITE(IT_CONFADDR,  
+	IT_WRITE(IT_CONFADDR,
 		 (bus         << IT_BUSNUM_SHF)   |
 		 (dev_fn      << IT_FUNCNUM_SHF) |
 		 ((0x48 / 4) << IT_REGNUM_SHF));
@@ -136,7 +136,7 @@
 
 	/* Enable I/O Space Subtractive Decode */
 	/* default 0x4C is 0x3f220000 */
-	IT_WRITE(IT_CONFADDR,  
+	IT_WRITE(IT_CONFADDR,
 		 (bus         << IT_BUSNUM_SHF)   |
 		 (dev_fn      << IT_FUNCNUM_SHF) |
 		 ((0x4C / 4) << IT_REGNUM_SHF));
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/generic/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/Makefile
--- linux-2.4.20/arch/mips/ite-boards/generic/Makefile	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/Makefile	2002-08-05 18:53:32.000000000 -0500
@@ -10,10 +10,7 @@
 # unless it's something special (ie not a .c file).
 #
 
-.S.s:
-	$(CPP) $(CFLAGS) $< -o $*.s
-.S.o:
-	$(CC) $(CFLAGS) -c $< -o $*.o
+USE_STANDARD_AS_RULE := true
 
 all: it8172.o
 
@@ -22,7 +19,7 @@
 obj-y := it8172_rtc.o it8172_setup.o irq.o int-handler.o pmon_prom.o time.o lpc.o puts.o reset.o
 
 obj-$(CONFIG_PCI) += it8172_pci.o
-obj-$(CONFIG_IT8172_CIR) += it8172_cir.o 
-obj-$(CONFIG_REMOTE_DEBUG) += dbg_io.o             
+obj-$(CONFIG_IT8172_CIR) += it8172_cir.o
+obj-$(CONFIG_REMOTE_DEBUG) += dbg_io.o
 
 include $(TOPDIR)/Rules.make
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/generic/pmon_prom.c linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/pmon_prom.c
--- linux-2.4.20/arch/mips/ite-boards/generic/pmon_prom.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/pmon_prom.c	2002-08-05 18:53:32.000000000 -0500
@@ -8,7 +8,7 @@
  * Author: MontaVista Software, Inc.
  *         	ppopov@mvista.com or source@mvista.com
  *
- * This file was derived from Carsten Langgaard's 
+ * This file was derived from Carsten Langgaard's
  * arch/mips/mips-boards/xx files.
  *
  * Carsten Langgaard, carstenl@mips.com
@@ -128,11 +128,11 @@
 	memsize_str = prom_getenv("memsize");
 	if (!memsize_str) {
 #ifdef CONFIG_MIPS_ITE8172
-		memsize = 32; 
+		memsize = 32;
 #elif defined(CONFIG_MIPS_IVR)
-		memsize = 64; 
+		memsize = 64;
 #else
-		memsize = 8; 
+		memsize = 8;
 #endif
 		printk("memsize unknown: setting to %dMB\n", memsize);
 	} else {
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/generic/reset.c linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/reset.c
--- linux-2.4.20/arch/mips/ite-boards/generic/reset.c	2001-09-09 12:43:01.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/reset.c	2002-12-01 18:24:47.000000000 -0600
@@ -38,10 +38,10 @@
 
 void it8172_restart()
 {
-	set_cp0_status(ST0_BEV | ST0_ERL);
-	change_cp0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);
+	set_c0_status(ST0_BEV | ST0_ERL);
+	change_c0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);
 	flush_cache_all();
-	write_32bit_cp0_register(CP0_WIRED, 0);
+	write_c0_wired(0);
 	__asm__ __volatile__("jr\t%0"::"r"(0xbfc00000));
 }
 
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/generic/time.c linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/time.c
--- linux-2.4.20/arch/mips/ite-boards/generic/time.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/time.c	2002-12-01 18:24:47.000000000 -0600
@@ -22,8 +22,6 @@
  * Setting up the clock on the MIPS boards.
  *
  */
-
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel_stat.h>
 #include <linux/sched.h>
@@ -41,9 +39,9 @@
 extern unsigned int mips_counter_frequency;
 extern asmlinkage unsigned int do_IRQ(int irq, struct pt_regs *regs);
 
-/* 
+/*
  * Figure out the r4k offset, the amount to increment the compare
- * register for each time tick. 
+ * register for each time tick.
  * Use the RTC to calculate offset.
  */
 static unsigned long __init cal_r4koff(void)
@@ -57,17 +55,17 @@
 	while (!(CMOS_READ(RTC_REG_A) & RTC_UIP));
 
 	/* Start r4k counter. */
-	write_32bit_cp0_register(CP0_COUNT, 0);
+	write_c0_count(0);
 
 	/* Read counter exactly on falling edge of update flag */
 	while (CMOS_READ(RTC_REG_A) & RTC_UIP);
 	while (!(CMOS_READ(RTC_REG_A) & RTC_UIP));
 
-	mips_counter_frequency = read_32bit_cp0_register(CP0_COUNT);
+	mips_counter_frequency = read_c0_count();
 
 	/* restore interrupts */
 	__restore_flags(flags);
-		
+
 	return (mips_counter_frequency / HZ);
 }
 
@@ -91,7 +89,7 @@
 		if ((hour & 0xf) == 0xc)
 		        hour &= 0x80;
 	        if (hour & 0x80)
-		        hour = (hour & 0xf) + 12;     
+		        hour = (hour & 0xf) + 12;
 	}
 	day = CMOS_READ(RTC_DAY_OF_MONTH);
 	mon = CMOS_READ(RTC_MONTH);
@@ -111,17 +109,17 @@
         unsigned int est_freq, flags;
 
 	__save_and_cli(flags);
-        /* Set Data mode - binary. */ 
+        /* Set Data mode - binary. */
         CMOS_WRITE(CMOS_READ(RTC_CONTROL) | RTC_DM_BINARY, RTC_CONTROL);
 
 	printk("calculating r4koff... ");
 	r4k_offset = cal_r4koff();
 	printk("%08lx(%d)\n", r4k_offset, (int) r4k_offset);
 
-	est_freq = 2*r4k_offset*HZ;	
+	est_freq = 2*r4k_offset*HZ;
 	est_freq += 5000;    /* round */
 	est_freq -= est_freq%10000;
-	printk("CPU frequency %d.%02d MHz\n", est_freq/1000000, 
+	printk("CPU frequency %d.%02d MHz\n", est_freq/1000000,
 	       (est_freq%1000000)*100/1000000);
 	__restore_flags(flags);
 }
@@ -136,12 +134,7 @@
 	setup_irq(MIPS_CPU_TIMER_IRQ, irq);
 
         /* to generate the first timer interrupt */
-	r4k_cur = (read_32bit_cp0_register(CP0_COUNT) + r4k_offset);
-	write_32bit_cp0_register(CP0_COMPARE, r4k_cur);
-	set_cp0_status(ALLINTS);
-}
-
-void local_timer_interrupt(struct pt_regs *regs)
-{
-	do_IRQ(MIPS_CPU_TIMER_IRQ, regs);
+	r4k_cur = (read_c0_count() + r4k_offset);
+	write_c0_compare(r4k_cur);
+	set_c0_status(ALLINTS);
 }
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/ivr/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/ivr/CVS/Entries
--- linux-2.4.20/arch/mips/ite-boards/ivr/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/ivr/CVS/Entries	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1,5 @@
+/Makefile/1.2.2.2/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/README/1.1.2.1/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/init.c/1.1.2.3/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/pci_fixup.c/1.3.2.1/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/ivr/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/ivr/CVS/Repository
--- linux-2.4.20/arch/mips/ite-boards/ivr/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/ivr/CVS/Repository	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/ite-boards/ivr
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/ivr/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/ivr/CVS/Root
--- linux-2.4.20/arch/mips/ite-boards/ivr/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/ivr/CVS/Root	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/ivr/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/ivr/CVS/Tag
--- linux-2.4.20/arch/mips/ite-boards/ivr/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/ivr/CVS/Tag	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/ivr/init.c linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/ivr/init.c
--- linux-2.4.20/arch/mips/ite-boards/ivr/init.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/ivr/init.c	2002-08-05 18:53:32.000000000 -0500
@@ -27,14 +27,12 @@
  *  with this program; if not, write  to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-
 #include <linux/init.h>
 #include <linux/mm.h>
 #include <linux/sched.h>
 #include <linux/bootmem.h>
 #include <asm/addrspace.h>
 #include <asm/bootinfo.h>
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
@@ -81,7 +79,7 @@
 	 * make the entire physical memory visible to pci bus masters
 	 */
 	IT_READ(IT_MC_PCICR, pcicr);
-	pcicr &= ~0x1f; 
+	pcicr &= ~0x1f;
 	pcicr |= (mem_size - 1) >> 22;
 	IT_WRITE(IT_MC_PCICR, pcicr);
 
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/ivr/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/ivr/Makefile
--- linux-2.4.20/arch/mips/ite-boards/ivr/Makefile	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/ivr/Makefile	2002-08-05 18:53:32.000000000 -0500
@@ -11,17 +11,14 @@
 # unless it's something special (ie not a .c file).
 #
 
-.S.s:
-	$(CPP) $(CFLAGS) $< -o $*.s
-.S.o:
-	$(CC) $(CFLAGS) -c $< -o $*.o
+USE_STANDARD_AS_RULE := true
 
 all: ivr.o
 
 O_TARGET := ivr.o
 
-obj-y := init.o 
+obj-y := init.o
 
-obj-$(CONFIG_PCI) += pci_fixup.o 
+obj-$(CONFIG_PCI) += pci_fixup.o
 
 include $(TOPDIR)/Rules.make
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/ivr/pci_fixup.c linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/ivr/pci_fixup.c
--- linux-2.4.20/arch/mips/ite-boards/ivr/pci_fixup.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/ivr/pci_fixup.c	2002-08-05 18:53:32.000000000 -0500
@@ -74,8 +74,8 @@
 		switch (slot) {
 			case 0x01:
 			    /*
-			     * Internal device 1 is actually 7 different 
-			     * internal devices on the IT8172G (multi-function 
+			     * Internal device 1 is actually 7 different
+			     * internal devices on the IT8172G (multi-function
 			     * device).
 			     */
 			    if (func < 7)
@@ -97,7 +97,7 @@
 						dev->irq = IT8172_PCI_INTB_IRQ;
 						break;
 					default:
-						dev->irq = 0xff; 
+						dev->irq = 0xff;
 						break;
 
 				}
@@ -118,7 +118,7 @@
 					dev->irq = IT8172_PCI_INTD_IRQ;
 					break;
 				default:
-					dev->irq = 0xff; 
+					dev->irq = 0xff;
 					break;
 
 				}
@@ -139,7 +139,7 @@
 						dev->irq = IT8172_PCI_INTD_IRQ;
 						break;
 					default:
-						dev->irq = 0xff; 
+						dev->irq = 0xff;
 						break;
 
 				}
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/ivr/README linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/ivr/README
--- linux-2.4.20/arch/mips/ite-boards/ivr/README	2001-09-09 12:43:01.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/ivr/README	2002-08-05 18:53:32.000000000 -0500
@@ -1,3 +1,3 @@
-This is not really a board made by ITE Semi, but it's very 
+This is not really a board made by ITE Semi, but it's very
 similar to the ITE QED-4N-S01B board.  The IVR board is made
 by Globespan and it's a reference board for the PVR chip.
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/qed-4n-s01b/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/qed-4n-s01b/CVS/Entries
--- linux-2.4.20/arch/mips/ite-boards/qed-4n-s01b/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/qed-4n-s01b/CVS/Entries	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1,6 @@
+/.cvsignore/1.1/Wed Feb 21 13:30:36 2001/-ko/Tlinux_2_4_20
+/Makefile/1.3.2.2/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/README/1.1/Wed Feb 21 13:30:36 2001/-ko/Tlinux_2_4_20
+/init.c/1.2.2.3/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/pci_fixup.c/1.3.2.1/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/qed-4n-s01b/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/qed-4n-s01b/CVS/Repository
--- linux-2.4.20/arch/mips/ite-boards/qed-4n-s01b/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/qed-4n-s01b/CVS/Repository	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/ite-boards/qed-4n-s01b
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/qed-4n-s01b/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/qed-4n-s01b/CVS/Root
--- linux-2.4.20/arch/mips/ite-boards/qed-4n-s01b/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/qed-4n-s01b/CVS/Root	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/qed-4n-s01b/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/qed-4n-s01b/CVS/Tag
--- linux-2.4.20/arch/mips/ite-boards/qed-4n-s01b/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/qed-4n-s01b/CVS/Tag	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/qed-4n-s01b/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/qed-4n-s01b/.cvsignore
--- linux-2.4.20/arch/mips/ite-boards/qed-4n-s01b/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/qed-4n-s01b/.cvsignore	2001-02-21 07:30:36.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/qed-4n-s01b/init.c linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/qed-4n-s01b/init.c
--- linux-2.4.20/arch/mips/ite-boards/qed-4n-s01b/init.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/qed-4n-s01b/init.c	2002-08-05 18:53:32.000000000 -0500
@@ -27,14 +27,12 @@
  *  with this program; if not, write  to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-
 #include <linux/init.h>
 #include <linux/mm.h>
 #include <linux/sched.h>
 #include <linux/bootmem.h>
 #include <asm/addrspace.h>
 #include <asm/bootinfo.h>
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
@@ -82,7 +80,7 @@
 	 * make the entire physical memory visible to pci bus masters
 	 */
 	IT_READ(IT_MC_PCICR, pcicr);
-	pcicr &= ~0x1f; 
+	pcicr &= ~0x1f;
 	pcicr |= (mem_size - 1) >> 22;
 	IT_WRITE(IT_MC_PCICR, pcicr);
 
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/qed-4n-s01b/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/qed-4n-s01b/Makefile
--- linux-2.4.20/arch/mips/ite-boards/qed-4n-s01b/Makefile	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/qed-4n-s01b/Makefile	2002-08-05 18:53:32.000000000 -0500
@@ -11,14 +11,11 @@
 # unless it's something special (ie not a .c file).
 #
 
-.S.s:
-	$(CPP) $(CFLAGS) $< -o $*.s
-.S.o:
-	$(CC) $(CFLAGS) -c $< -o $*.o
+USE_STANDARD_AS_RULE := true
 
 O_TARGET := ite.o
 
-obj-y := init.o 
+obj-y := init.o
 
 obj-$(CONFIG_PCI) += pci_fixup.o
 obj-$(CONFIG_BLK_DEV_INITRD) += le_ramdisk.o
diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/qed-4n-s01b/pci_fixup.c linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/qed-4n-s01b/pci_fixup.c
--- linux-2.4.20/arch/mips/ite-boards/qed-4n-s01b/pci_fixup.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/qed-4n-s01b/pci_fixup.c	2002-08-05 18:53:32.000000000 -0500
@@ -75,7 +75,7 @@
 		switch (slot) {
 			case 0x01:
 			    /*
-			     * Internal device 1 is actually 7 different 
+			     * Internal device 1 is actually 7 different
 			     * internal devices on the IT8172G (a multi-
 			     * function device).
 			     */
@@ -97,7 +97,7 @@
 						dev->irq = IT8172_PCI_INTD_IRQ;
 						break;
 					default:
-						dev->irq = 0xff; 
+						dev->irq = 0xff;
 						break;
 
 				}
@@ -117,7 +117,7 @@
 						dev->irq = IT8172_PCI_INTD_IRQ;
 						break;
 					default:
-						dev->irq = 0xff; 
+						dev->irq = 0xff;
 						break;
 
 				}
@@ -137,7 +137,7 @@
 						dev->irq = IT8172_PCI_INTA_IRQ;
 						break;
 					default:
-						dev->irq = 0xff; 
+						dev->irq = 0xff;
 						break;
 
 				}
@@ -157,7 +157,7 @@
 						dev->irq = IT8172_PCI_INTB_IRQ;
 						break;
 					default:
-						dev->irq = 0xff; 
+						dev->irq = 0xff;
 						break;
 
 				}
@@ -177,7 +177,7 @@
 						dev->irq = IT8172_PCI_INTC_IRQ;
 						break;
 					default:
-						dev->irq = 0xff; 
+						dev->irq = 0xff;
 						break;
 
 				}
diff -urNd -urNd linux-2.4.20/arch/mips/jazz/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/jazz/CVS/Entries
--- linux-2.4.20/arch/mips/jazz/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jazz/CVS/Entries	2005-01-06 23:00:04.000000000 -0600
@@ -0,0 +1,12 @@
+/.cvsignore/1.2/Tue Mar 17 22:07:30 1998/-ko/Tlinux_2_4_20
+/Makefile/1.9.2.1/Tue Jun 25 15:47:00 2002/-ko/Tlinux_2_4_20
+/floppy-jazz.c/1.4.2.1/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/int-handler.S/1.16.2.1/Mon Aug  5 23:53:32 2002/-ko/Tlinux_2_4_20
+/io.c/1.3/Sat Oct  9 00:00:58 1999/-ko/Tlinux_2_4_20
+/irq.c/1.1.2.1/Mon Dec 17 20:14:47 2001/-ko/Tlinux_2_4_20
+/jazzdma.c/1.9/Mon Feb 26 00:44:39 2001/-ko/Tlinux_2_4_20
+/kbd-jazz.c/1.2.2.1/Mon Aug  5 23:53:33 2002/-ko/Tlinux_2_4_20
+/reset.c/1.4.2.1/Mon Aug  5 23:53:33 2002/-ko/Tlinux_2_4_20
+/rtc-jazz.c/1.4/Sun Mar 18 04:30:27 2001/-ko/Tlinux_2_4_20
+/setup.c/1.29.2.3/Mon Dec  2 00:24:47 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/jazz/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/jazz/CVS/Repository
--- linux-2.4.20/arch/mips/jazz/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jazz/CVS/Repository	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/jazz
diff -urNd -urNd linux-2.4.20/arch/mips/jazz/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/jazz/CVS/Root
--- linux-2.4.20/arch/mips/jazz/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jazz/CVS/Root	2005-01-06 23:00:03.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/jazz/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/jazz/CVS/Tag
--- linux-2.4.20/arch/mips/jazz/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jazz/CVS/Tag	2005-01-06 23:00:04.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/jazz/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/jazz/.cvsignore
--- linux-2.4.20/arch/mips/jazz/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jazz/.cvsignore	1998-03-17 16:07:30.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/jazz/floppy-jazz.c linux-2.4.20-mipscvs-20050106/arch/mips/jazz/floppy-jazz.c
--- linux-2.4.20/arch/mips/jazz/floppy-jazz.c	2000-05-13 10:29:14.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jazz/floppy-jazz.c	2002-08-05 18:53:32.000000000 -0500
@@ -1,5 +1,4 @@
-/* $Id: floppy-jazz.c,v 1.2 1998/10/18 13:18:25 tsbogend Exp $
- *
+/*
  * This file is subject to the terms and conditions of the GNU General Public
  * License.  See the file "COPYING" in the main directory of this archive
  * for more details.
@@ -108,9 +107,9 @@
 
 static void jazz_fd_dma_mem_free(unsigned long addr,
                                         unsigned long size)
-{       
+{
 	vdma_free(vdma_phys2log(PHYSADDR(addr)));
-	free_pages(addr, get_order(size));	
+	free_pages(addr, get_order(size));
 }
 
 static unsigned long jazz_fd_drive_type(unsigned long n)
diff -urNd -urNd linux-2.4.20/arch/mips/jazz/int-handler.S linux-2.4.20-mipscvs-20050106/arch/mips/jazz/int-handler.S
--- linux-2.4.20/arch/mips/jazz/int-handler.S	2000-05-13 10:29:14.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jazz/int-handler.S	2002-08-05 18:53:32.000000000 -0500
@@ -1,5 +1,4 @@
-/* $Id: int-handler.S,v 1.14 1999/05/01 22:40:34 ralf Exp $
- *
+/*
  * This file is subject to the terms and conditions of the GNU General Public
  * License.  See the file "COPYING" in the main directory of this archive
  * for more details.
@@ -251,14 +250,14 @@
 
  		nor	s1,zero,s1
 		jal	do_IRQ
- 
+
  		/*
  		 * Reenable interrupt
  		 */
 		lhu	t2,JAZZ_IO_IRQ_ENABLE
  		or	t2,s1
 		sh	t2,JAZZ_IO_IRQ_ENABLE
- 
+
  		j	ret_from_irq
 
 /*
diff -urNd -urNd linux-2.4.20/arch/mips/jazz/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/jazz/irq.c
--- linux-2.4.20/arch/mips/jazz/irq.c	2001-09-09 12:43:01.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jazz/irq.c	2001-12-17 14:14:47.000000000 -0600
@@ -8,7 +8,6 @@
  */
 #include <linux/delay.h>
 #include <linux/init.h>
-#include <linux/irq.h>
 #include <linux/interrupt.h>
 #include <linux/kernel.h>
 #include <linux/spinlock.h>
diff -urNd -urNd linux-2.4.20/arch/mips/jazz/kbd-jazz.c linux-2.4.20-mipscvs-20050106/arch/mips/jazz/kbd-jazz.c
--- linux-2.4.20/arch/mips/jazz/kbd-jazz.c	2000-05-13 10:29:14.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jazz/kbd-jazz.c	2002-08-05 18:53:33.000000000 -0500
@@ -1,5 +1,4 @@
-/* $Id: kbd-jazz.c,v 1.1 1998/10/28 12:38:10 ralf Exp $
- *
+/*
  * Low-level hardware access stuff for Jazz family machines.
  *
  * This file is subject to the terms and conditions of the GNU General Public
@@ -39,20 +38,20 @@
 static int jazz_aux_request_irq(void (*handler)(int, void *, struct pt_regs *))
 {
 	int ret;
-    
+
 	ret = request_irq(JAZZ_MOUSE_IRQ, handler, 0, "PS/2 Mouse", NULL);
 	if (ret != 0)
 		return ret;
 
-		r4030_write_reg16(JAZZ_IO_IRQ_ENABLE, 
-				  r4030_read_reg16(JAZZ_IO_IRQ_ENABLE) | 
+		r4030_write_reg16(JAZZ_IO_IRQ_ENABLE,
+				  r4030_read_reg16(JAZZ_IO_IRQ_ENABLE) |
 				  JAZZ_IE_MOUSE);
 	return 0;
 }
 
 static void jazz_aux_free_irq(void)
 {
-	r4030_write_reg16(JAZZ_IO_IRQ_ENABLE, 
+	r4030_write_reg16(JAZZ_IO_IRQ_ENABLE,
 	                  r4030_read_reg16(JAZZ_IO_IRQ_ENABLE)
 	                  | JAZZ_IE_MOUSE);
 	free_irq(JAZZ_MOUSE_IRQ, NULL);
diff -urNd -urNd linux-2.4.20/arch/mips/jazz/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/jazz/Makefile
--- linux-2.4.20/arch/mips/jazz/Makefile	2001-04-13 22:26:07.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jazz/Makefile	2002-06-25 10:47:00.000000000 -0500
@@ -6,10 +6,7 @@
 # unless it's something special (ie not a .c file).
 #
 
-.S.s:
-	$(CPP) $(CFLAGS) $< -o $@
-.S.o:
-	$(CC) $(CFLAGS) -c $< -o $@
+USE_STANDARD_AS_RULE := true
 
 all: jazz.o
 
diff -urNd -urNd linux-2.4.20/arch/mips/jazz/reset.c linux-2.4.20-mipscvs-20050106/arch/mips/jazz/reset.c
--- linux-2.4.20/arch/mips/jazz/reset.c	2000-05-13 10:29:14.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jazz/reset.c	2002-08-05 18:53:33.000000000 -0500
@@ -1,11 +1,6 @@
 /*
- *  linux/arch/mips/jazz/process.c
- *
- *  Reset a Jazz machine.
- *
- *  $Id:$
+ * Reset a Jazz machine.
  */
-
 #include <linux/sched.h>
 #include <asm/jazz.h>
 #include <asm/io.h>
@@ -27,7 +22,7 @@
 void jazz_machine_restart(char *command)
 {
     while (1) {
-	kb_wait ();    
+	kb_wait ();
 	kbd_write_command (0xd1);
 	kb_wait ();
 	kbd_write_output (0x00);
diff -urNd -urNd linux-2.4.20/arch/mips/jazz/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/jazz/setup.c
--- linux-2.4.20/arch/mips/jazz/setup.c	2001-09-09 12:43:01.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jazz/setup.c	2002-12-01 18:24:47.000000000 -0600
@@ -28,6 +28,7 @@
 #include <asm/reboot.h>
 #include <asm/io.h>
 #include <asm/pgtable.h>
+#include <asm/traps.h>
 
 /*
  * Initial irq handlers.
@@ -72,7 +73,7 @@
 			  JAZZ_IE_FLOPPY);
 	r4030_read_reg16(JAZZ_IO_IRQ_SOURCE); /* clear pending IRQs */
 	r4030_read_reg32(JAZZ_R4030_INVAL_ADDR); /* clear error bits */
-	change_cp0_status(ST0_IM, IE_IRQ4 | IE_IRQ3 | IE_IRQ2 | IE_IRQ1);
+	change_c0_status(ST0_IM, IE_IRQ4 | IE_IRQ3 | IE_IRQ2 | IE_IRQ1);
 	/* set the clock to 100 Hz */
 	r4030_write_reg32(JAZZ_TIMER_INTERVAL, 9);
 	request_region(0x20, 0x20, "pic1");
@@ -80,14 +81,23 @@
 	i8259_setup_irq(2, &irq2);
 }
 
+
+void __init bus_error_init(void) { /* nothing */ }
+
+
 void __init jazz_setup(void)
 {
+	/* Map 0xe0000000 -> 0x0:800005C0, 0xe0010000 -> 0x1:30000580 */
 	add_wired_entry (0x02000017, 0x03c00017, 0xe0000000, PM_64K);
+
+	/* Map 0xe2000000 -> 0x0:900005C0, 0xe3010000 -> 0x0:910005C0 */
 	add_wired_entry (0x02400017, 0x02440017, 0xe2000000, PM_16M);
+
+	/* Map 0xe4000000 -> 0x0:600005C0, 0xe4100000 -> 400005C0 */
 	add_wired_entry (0x01800017, 0x01000017, 0xe4000000, PM_4M);
 
 	irq_setup = jazz_irq_setup;
-	mips_io_port_base = JAZZ_PORT_BASE;
+	set_io_port_base(JAZZ_PORT_BASE);
 	if (mips_machtype == MACH_MIPS_MAGNUM_4000)
 		EISA_bus = 1;
 	isa_slot_offset = 0xe3000000;
diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/common/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/common/CVS/Entries
--- linux-2.4.20/arch/mips/jmr3927/common/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/common/CVS/Entries	2005-01-06 23:00:04.000000000 -0600
@@ -0,0 +1,5 @@
+/Makefile/1.1.2.1/Tue Jun 25 15:47:00 2002/-ko/Tlinux_2_4_20
+/prom.c/1.1.2.3/Mon Aug  5 23:53:33 2002/-ko/Tlinux_2_4_20
+/puts.c/1.1.2.1/Mon Aug  5 23:53:33 2002/-ko/Tlinux_2_4_20
+/rtc_ds1742.c/1.1.2.1/Mon Aug  5 23:53:33 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/common/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/common/CVS/Repository
--- linux-2.4.20/arch/mips/jmr3927/common/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/common/CVS/Repository	2005-01-06 23:00:04.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/jmr3927/common
diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/common/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/common/CVS/Root
--- linux-2.4.20/arch/mips/jmr3927/common/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/common/CVS/Root	2005-01-06 23:00:04.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/common/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/common/CVS/Tag
--- linux-2.4.20/arch/mips/jmr3927/common/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/common/CVS/Tag	2005-01-06 23:00:04.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/common/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/common/Makefile
--- linux-2.4.20/arch/mips/jmr3927/common/Makefile	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/common/Makefile	2002-06-25 10:47:00.000000000 -0500
@@ -6,10 +6,7 @@
 # unless it's something special (ie not a .c file).
 #
 
-.S.s:
-	$(CPP) $(CFLAGS) $< -o $*.s
-.S.o:
-	$(CC) $(CFLAGS) -c $< -o $*.o
+USE_STANDARD_AS_RULE := true
 
 O_TARGET:= tx3927.o
 
diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/common/prom.c linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/common/prom.c
--- linux-2.4.20/arch/mips/jmr3927/common/prom.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/common/prom.c	2002-08-05 18:53:33.000000000 -0500
@@ -6,11 +6,11 @@
  *
  * Copyright 2001 MontaVista Software Inc.
  * Author: MontaVista Software, Inc.
- *              ahennessy@mvista.com       
+ *              ahennessy@mvista.com
  *
  * Based on arch/mips/au1000/common/prom.c
  *
- * This file was derived from Carsten Langgaard's 
+ * This file was derived from Carsten Langgaard's
  * arch/mips/mips-boards/xx files.
  *
  * Carsten Langgaard, carstenl@mips.com
@@ -36,8 +36,6 @@
  *  with this program; if not, write  to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/string.h>
diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/common/puts.c linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/common/puts.c
--- linux-2.4.20/arch/mips/jmr3927/common/puts.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/common/puts.c	2002-08-05 18:53:33.000000000 -0500
@@ -7,7 +7,7 @@
  * Author: MontaVista Software, Inc.
  *         	ahennessy@mvista.com or source@mvista.com
  *
- * Copyright (C) 2000-2001 Toshiba Corporation 
+ * Copyright (C) 2000-2001 Toshiba Corporation
  *
  * Based on arch/mips/au1000/common/puts.c
  *
@@ -52,7 +52,7 @@
 putch(const unsigned char c)
 {
         int i = 0;
-	
+
         do {
             slow_down();
             i++;
@@ -69,7 +69,7 @@
         int i = 0;
 	int dicr;
 	char c;
-	
+
 	/* diable RX int. */
 	dicr = tx3927_sioptr(1)->dicr;
 	tx3927_sioptr(1)->dicr = 0;
diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/common/rtc_ds1742.c linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/common/rtc_ds1742.c
--- linux-2.4.20/arch/mips/jmr3927/common/rtc_ds1742.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/common/rtc_ds1742.c	2002-08-05 18:53:33.000000000 -0500
@@ -2,13 +2,13 @@
  *
  * Copyright 2001 MontaVista Software Inc.
  * Author: MontaVista Software, Inc.
- *              ahennessy@mvista.com       
+ *              ahennessy@mvista.com
  *
  * arch/mips/jmr3927/common/rtc_ds1742.c
  * Based on arch/mips/ddb5xxx/common/rtc_ds1386.c
  *     low-level RTC hookups for s for Dallas 1742 chip.
  *
- * Copyright (C) 2000-2001 Toshiba Corporation 
+ * Copyright (C) 2000-2001 Toshiba Corporation
  *
  *  This program is free software; you can redistribute  it and/or modify it
  *  under  the terms of  the GNU General  Public License as published by the
@@ -82,7 +82,7 @@
 }
 extern void to_tm(unsigned long tim, struct rtc_time * tm);
 
-static int 
+static int
 rtc_ds1742_set_time(unsigned long t)
 {
 	struct rtc_time tm;
@@ -117,7 +117,7 @@
 
 	day = BIN_TO_BCD(tm.tm_mday);
 	if (day != cmos_day) {
-	
+
 		CMOS_WRITE(day, RTC_DATE);
 	}
 
@@ -144,7 +144,7 @@
 	if (second !=  cmos_second) {
 		CMOS_WRITE(second & RTC_SECONDS_MASK,RTC_SECONDS);
 	}
-	
+
 	/* RTC_CENTURY and RTC_CONTROL share same address... */
 	CMOS_WRITE(cmos_century, RTC_CONTROL);
 
diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/CVS/Entries
--- linux-2.4.20/arch/mips/jmr3927/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/CVS/Entries	2005-01-06 23:08:20.000000000 -0600
@@ -0,0 +1,2 @@
+D/common////
+D/rbhma3100////
diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/CVS/Repository
--- linux-2.4.20/arch/mips/jmr3927/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/CVS/Repository	2005-01-06 23:00:04.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/jmr3927
diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/CVS/Root
--- linux-2.4.20/arch/mips/jmr3927/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/CVS/Root	2005-01-06 23:00:04.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/CVS/Tag
--- linux-2.4.20/arch/mips/jmr3927/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/CVS/Tag	2005-01-06 23:00:04.000000000 -0600
@@ -0,0 +1 @@
+Tlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/rbhma3100/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/CVS/Entries
--- linux-2.4.20/arch/mips/jmr3927/rbhma3100/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/CVS/Entries	2005-01-06 23:00:04.000000000 -0600
@@ -0,0 +1,10 @@
+/Makefile/1.1.2.1/Tue Jun 25 15:47:00 2002/-ko/Tlinux_2_4_20
+/init.c/1.1.2.2/Mon Aug  5 23:53:33 2002/-ko/Tlinux_2_4_20
+/int-handler.S/1.1.2.1/Mon Aug  5 23:53:33 2002/-ko/Tlinux_2_4_20
+/irq.c/1.2.2.4/Mon Dec  2 00:24:47 2002/-ko/Tlinux_2_4_20
+/kgdb_io.c/1.1.2.1/Mon Aug  5 23:53:33 2002/-ko/Tlinux_2_4_20
+/pci_fixup.c/1.1.2.1/Mon Aug  5 23:53:33 2002/-ko/Tlinux_2_4_20
+/pci_ops.c/1.1.2.2/Mon Aug  5 23:53:33 2002/-ko/Tlinux_2_4_20
+/rtc.c/1.1.2.1/Mon Aug  5 23:53:33 2002/-ko/Tlinux_2_4_20
+/setup.c/1.1.2.4/Mon Dec  2 00:24:48 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/rbhma3100/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/CVS/Repository
--- linux-2.4.20/arch/mips/jmr3927/rbhma3100/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/CVS/Repository	2005-01-06 23:00:04.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/jmr3927/rbhma3100
diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/rbhma3100/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/CVS/Root
--- linux-2.4.20/arch/mips/jmr3927/rbhma3100/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/CVS/Root	2005-01-06 23:00:04.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/rbhma3100/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/CVS/Tag
--- linux-2.4.20/arch/mips/jmr3927/rbhma3100/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/CVS/Tag	2005-01-06 23:00:04.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/rbhma3100/init.c linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/init.c
--- linux-2.4.20/arch/mips/jmr3927/rbhma3100/init.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/init.c	2002-08-05 18:53:33.000000000 -0500
@@ -2,11 +2,11 @@
  *
  * Copyright 2001 MontaVista Software Inc.
  * Author: MontaVista Software, Inc.
- *              ahennessy@mvista.com       
+ *              ahennessy@mvista.com
  *
  * arch/mips/jmr3927/common/init.c
  *
- * Copyright (C) 2000-2001 Toshiba Corporation 
+ * Copyright (C) 2000-2001 Toshiba Corporation
  *
  *  This program is free software; you can redistribute  it and/or modify it
  *  under  the terms of  the GNU General  Public License as published by the
@@ -66,7 +66,7 @@
 #endif
 	prom_argc = argc;
 	prom_argv = argv;
-	prom_envp = envp;     
+	prom_envp = envp;
 
 	mips_machgroup = MACH_GROUP_TOSHIBA;
 
diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/rbhma3100/int-handler.S linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/int-handler.S
--- linux-2.4.20/arch/mips/jmr3927/rbhma3100/int-handler.S	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/int-handler.S	2002-08-05 18:53:33.000000000 -0500
@@ -1,7 +1,7 @@
 /*
  * Copyright 2001 MontaVista Software Inc.
  * Author: MontaVista Software, Inc.
- *              ahennessy@mvista.com       
+ *              ahennessy@mvista.com
  *
  * Based on arch/mips/tsdb/kernel/int-handler.S
  *
diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/rbhma3100/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/irq.c
--- linux-2.4.20/arch/mips/jmr3927/rbhma3100/irq.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/irq.c	2002-12-01 18:24:47.000000000 -0600
@@ -1,7 +1,7 @@
 /*
  * Copyright 2001 MontaVista Software Inc.
  * Author: MontaVista Software, Inc.
- *              ahennessy@mvista.com       
+ *              ahennessy@mvista.com
  *
  * This file is subject to the terms and conditions of the GNU General Public
  * License.  See the file "COPYING" in the main directory of this archive
@@ -137,7 +137,7 @@
 	db_assert(irq < jmr3927_irq_base + JMR3927_NR_IRQ_IRC + JMR3927_NR_IRQ_IOC);
 
 	if (irq == JMR3927_IRQ_IRC_TMR0) {
-		jmr3927_tmrptr->tisr = 0;       /* ack interrupt */  
+		jmr3927_tmrptr->tisr = 0;       /* ack interrupt */
 	}
 
 	jmr3927_irq_disable(irq);
@@ -248,33 +248,33 @@
 }
 
 struct tb_irq_space jmr3927_isac_irqspace = {
-	next: NULL,
-	start_irqno: JMR3927_IRQ_ISAC,
+	.next = NULL,
+	.start_irqno = JMR3927_IRQ_ISAC,
 	nr_irqs : JMR3927_NR_IRQ_ISAC,
-	mask_func: mask_irq_isac,
-	unmask_func: unmask_irq_isac,
-	name: "ISAC",
-	space_id: 0,
+	.mask_func = mask_irq_isac,
+	.unmask_func = unmask_irq_isac,
+	.name = "ISAC",
+	.space_id = 0,
 	can_share : 0
 };
 struct tb_irq_space jmr3927_ioc_irqspace = {
-	next: NULL,
-	start_irqno: JMR3927_IRQ_IOC,
+	.next = NULL,
+	.start_irqno = JMR3927_IRQ_IOC,
 	nr_irqs : JMR3927_NR_IRQ_IOC,
-	mask_func: mask_irq_ioc,
-	unmask_func: unmask_irq_ioc,
-	name: "IOC",
-	space_id: 0,
+	.mask_func = mask_irq_ioc,
+	.unmask_func = unmask_irq_ioc,
+	.name = "IOC",
+	.space_id = 0,
 	can_share : 1
 };
 struct tb_irq_space jmr3927_irc_irqspace = {
-	next: NULL,
-	start_irqno: JMR3927_IRQ_IRC,
+	.next = NULL,
+	.start_irqno = JMR3927_IRQ_IRC,
 	nr_irqs : JMR3927_NR_IRQ_IRC,
-	mask_func: mask_irq_irc,
-	unmask_func: unmask_irq_irc,
-	name: "on-chip",
-	space_id: 0,
+	.mask_func = mask_irq_irc,
+	.unmask_func = unmask_irq_irc,
+	.name = "on-chip",
+	.space_id = 0,
 	can_share : 0
 };
 
@@ -291,7 +291,7 @@
 void jmr3927_irc_irqdispatch(struct pt_regs *regs)
 {
 	int irq;
-	
+
 #ifdef CONFIG_TX_BRANCH_LIKELY_BUG_WORKAROUND
 	tx_branch_likely_bug_fixup(regs);
 #endif
@@ -437,7 +437,7 @@
 #endif
 
 	/* enable all CPU interrupt bits. */
-	set_cp0_status(ST0_IM);	/* IE bit is still 0. */
+	set_c0_status(ST0_IM);	/* IE bit is still 0. */
 }
 
 void (*irq_setup)(void);
@@ -468,7 +468,7 @@
 	NULL			/* no affinity stuff for UP */
 };
 
-void 
+void
 jmr3927_irq_init(u32 irq_base)
 {
 	extern irq_desc_t irq_desc[];
@@ -480,7 +480,7 @@
 		irq_desc[i].depth = 1;
 		irq_desc[i].handler = &jmr3927_irq_controller;
 	}
-	
+
 	jmr3927_irq_base = irq_base;
 }
 
diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/rbhma3100/kgdb_io.c linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/kgdb_io.c
--- linux-2.4.20/arch/mips/jmr3927/rbhma3100/kgdb_io.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/kgdb_io.c	2002-08-05 18:53:33.000000000 -0500
@@ -8,7 +8,7 @@
  *
  * Based on arch/mips/ddb5xxx/ddb5477/kgdb_io.c
  *
- * Copyright (C) 2000-2001 Toshiba Corporation 
+ * Copyright (C) 2000-2001 Toshiba Corporation
  *
  *  This program is free software; you can redistribute  it and/or modify it
  *  under  the terms of  the GNU General  Public License as published by the
@@ -52,7 +52,7 @@
 int putDebugChar(unsigned char c)
 {
         int i = 0;
-	
+
 	if (!remoteDebugInitialized) {
 		remoteDebugInitialized = 1;
 		debugInit(38400);
@@ -75,7 +75,7 @@
         int i = 0;
 	int dicr;
 	char c;
-	
+
 	if (!remoteDebugInitialized) {
 		remoteDebugInitialized = 1;
 		debugInit(38400);
diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/rbhma3100/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/Makefile
--- linux-2.4.20/arch/mips/jmr3927/rbhma3100/Makefile	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/Makefile	2002-06-25 10:47:00.000000000 -0500
@@ -6,10 +6,7 @@
 # unless it's something special (ie not a .c file).
 #
 
-.S.s:
-	$(CPP) $(CFLAGS) $< -o $*.s
-.S.o:
-	$(CC) $(CFLAGS) -c $< -o $*.o
+USE_STANDARD_AS_RULE := true
 
 O_TARGET:= jmr3927.o
 
diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/rbhma3100/pci_fixup.c linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/pci_fixup.c
--- linux-2.4.20/arch/mips/jmr3927/rbhma3100/pci_fixup.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/pci_fixup.c	2002-08-05 18:53:33.000000000 -0500
@@ -42,7 +42,7 @@
 #ifdef 	DEBUG
 #define	DBG(x...)	printk(x)
 #else
-#define	DBG(x...)	
+#define	DBG(x...)
 #endif
 
 void __init pcibios_fixup_resources(struct pci_dev *dev)
diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/rbhma3100/pci_ops.c linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/pci_ops.c
--- linux-2.4.20/arch/mips/jmr3927/rbhma3100/pci_ops.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/pci_ops.c	2002-08-05 18:53:33.000000000 -0500
@@ -1,15 +1,15 @@
 /***********************************************************************
  * Copyright 2001 MontaVista Software Inc.
  * Author: MontaVista Software, Inc.
- *              ahennessy@mvista.com       
+ *              ahennessy@mvista.com
  *
- * Copyright (C) 2000-2001 Toshiba Corporation 
+ * Copyright (C) 2000-2001 Toshiba Corporation
  *
  * Based on arch/mips/ddb5xxx/ddb5477/pci_ops.c
  *
  *     Define the pci_ops for JMR3927.
  *
- * Much of the code is derived from the original DDB5074 port by 
+ * Much of the code is derived from the original DDB5074 port by
  * Geert Uytterhoeven <geert@sonycom.com>
  *
  *  This program is free software; you can redistribute  it and/or modify it
@@ -37,7 +37,6 @@
 #include <linux/pci.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
-#include <linux/config.h>
 
 #include <asm/addrspace.h>
 #include <asm/pci_channel.h>
@@ -45,13 +44,13 @@
 #include <asm/debug.h>
 
 struct resource pci_io_resource = {
-	"pci IO space", 
+	"pci IO space",
 	0x1000,  /* reserve regacy I/O space */
 	0x1000 + JMR3927_PCIIO_SIZE -1,
 	IORESOURCE_IO};
 
 struct resource pci_mem_resource = {
-	"pci memory space", 
+	"pci memory space",
 	JMR3927_PCIMEM,
 	JMR3927_PCIMEM + JMR3927_PCIMEM_SIZE -1,
 	IORESOURCE_MEM};
@@ -66,7 +65,7 @@
 unsigned int pcibios_assign_all_busses(void)
 {
 	return 1;
-}                           
+}
 
 static int
 mkaddr(unsigned char bus, unsigned char dev_fn, unsigned char where, int *flagsp)
@@ -107,7 +106,7 @@
 	unsigned char bus, func_num;
 
 	db_assert((where & 3) == 0);
-	db_assert(where < (1 << 8));  
+	db_assert(where < (1 << 8));
 
 	/* check if the bus is top-level */
 	if (dev->bus->parent != NULL) {
@@ -115,7 +114,7 @@
 		db_assert(bus != 0);
 	} else {
 		bus = 0;
-	}                               
+	}
 
 	func_num = PCI_FUNC(dev->devfn);
 	if (mkaddr(bus, dev->devfn, where, &flags))
@@ -135,7 +134,7 @@
 		return PCIBIOS_BAD_REGISTER_NUMBER;
 
 	db_assert((where & 3) == 0);
-	db_assert(where < (1 << 8));  
+	db_assert(where < (1 << 8));
 
 	/* check if the bus is top-level */
 	if (dev->bus->parent != NULL) {
@@ -143,7 +142,7 @@
 		db_assert(bus != 0);
 	} else {
 		bus = 0;
-	}                               
+	}
 
 	func_num = PCI_FUNC(dev->devfn);
 	if (mkaddr(bus, dev->devfn, where, &flags))
@@ -163,7 +162,7 @@
 		return PCIBIOS_BAD_REGISTER_NUMBER;
 
 	db_assert((where & 3) == 0);
-	db_assert(where < (1 << 8));  
+	db_assert(where < (1 << 8));
 
 	/* check if the bus is top-level */
 	if (dev->bus->parent != NULL) {
@@ -171,7 +170,7 @@
 		db_assert(bus != 0);
 	} else {
 		bus = 0;
-	}                               
+	}
 
 	func_num = PCI_FUNC(dev->devfn);
 	if (mkaddr(bus, dev->devfn, where, &flags))
@@ -193,7 +192,7 @@
 		db_assert(bus != 0);
 	} else {
 		bus = 0;
-	}                               
+	}
 
 	func_num = PCI_FUNC(dev->devfn);
 	if (mkaddr(bus, dev->devfn, where, &flags))
@@ -218,7 +217,7 @@
 		db_assert(bus != 0);
 	} else {
 		bus = 0;
-	}                               
+	}
 
 	func_num = PCI_FUNC(dev->devfn);
 	if (mkaddr(bus, dev->devfn, where, &flags))
@@ -243,7 +242,7 @@
 		db_assert(bus != 0);
 	} else {
 		bus = 0;
-	}                               
+	}
 
 	func_num = PCI_FUNC(dev->devfn);
 	if (mkaddr(bus, dev->devfn, where, &flags))
@@ -276,7 +275,7 @@
 
 	addr = PHYSADDR(addr);
 	*(volatile u32 *)(ulong)&tx3927_pcicptr->ipciaddr =  (unsigned long)addr;
-	*(volatile u32 *)(ulong)&tx3927_pcicptr->ipcibe =  
+	*(volatile u32 *)(ulong)&tx3927_pcicptr->ipcibe =
 	    (PCI_IPCIBE_ICMD_MEMREAD << PCI_IPCIBE_ICMD_SHIFT) | PCI_IPCIBE_IBE_LONG;
 	while (!(tx3927_pcicptr->istat & PCI_ISTAT_IDICC)) ;
 	val = le32_to_cpu(*(volatile u32 *)(ulong)&tx3927_pcicptr->ipcidata);
@@ -289,7 +288,7 @@
 	addr = PHYSADDR(addr);
 	*(volatile u32 *)(ulong)&tx3927_pcicptr->ipcidata = cpu_to_le32(data);
 	*(volatile u32 *)(ulong)&tx3927_pcicptr->ipciaddr =  (unsigned long)addr;
-	*(volatile u32 *)(ulong)&tx3927_pcicptr->ipcibe =  
+	*(volatile u32 *)(ulong)&tx3927_pcicptr->ipcibe =
 	    (PCI_IPCIBE_ICMD_MEMWRITE << PCI_IPCIBE_ICMD_SHIFT)  | PCI_IPCIBE_IBE_LONG;
 	while (!(tx3927_pcicptr->istat & PCI_ISTAT_IDICC)) ;
 	/* clear by setting */
@@ -313,7 +312,7 @@
 	else if (offset == 3)
 		byte = 0xe;
 	*(volatile u32 *)(ulong)&tx3927_pcicptr->ipciaddr =  (unsigned long)ioaddr;
-	*(volatile u32 *)(ulong)&tx3927_pcicptr->ipcibe =  
+	*(volatile u32 *)(ulong)&tx3927_pcicptr->ipcibe =
 	    (PCI_IPCIBE_ICMD_IOREAD << PCI_IPCIBE_ICMD_SHIFT) | byte;
 	while (!(tx3927_pcicptr->istat & PCI_ISTAT_IDICC)) ;
 	val = le32_to_cpu(*(volatile u32 *)(ulong)&tx3927_pcicptr->ipcidata);
@@ -341,7 +340,7 @@
 		byte = 0xe;
 	*(volatile u32 *)(ulong)&tx3927_pcicptr->ipcidata = data;
 	*(volatile u32 *)(ulong)&tx3927_pcicptr->ipciaddr =  (unsigned long)ioaddr;
-	*(volatile u32 *)(ulong)&tx3927_pcicptr->ipcibe =  
+	*(volatile u32 *)(ulong)&tx3927_pcicptr->ipcibe =
 	    (PCI_IPCIBE_ICMD_IOWRITE << PCI_IPCIBE_ICMD_SHIFT)  | byte;
 	while (!(tx3927_pcicptr->istat & PCI_ISTAT_IDICC)) ;
 	/* clear by setting */
@@ -361,7 +360,7 @@
 	else if (offset == 2)
 		byte = 0xc;
 	*(volatile u32 *)(ulong)&tx3927_pcicptr->ipciaddr =  (unsigned long)ioaddr;
-	*(volatile u32 *)(ulong)&tx3927_pcicptr->ipcibe =  
+	*(volatile u32 *)(ulong)&tx3927_pcicptr->ipcibe =
 	    (PCI_IPCIBE_ICMD_IOREAD << PCI_IPCIBE_ICMD_SHIFT) | byte;
 	while (!(tx3927_pcicptr->istat & PCI_ISTAT_IDICC)) ;
 	val = le32_to_cpu(*(volatile u32 *)(ulong)&tx3927_pcicptr->ipcidata);
@@ -386,7 +385,7 @@
 		byte = 0xc;
 	*(volatile u32 *)(ulong)&tx3927_pcicptr->ipcidata = data;
 	*(volatile u32 *)(ulong)&tx3927_pcicptr->ipciaddr =  (unsigned long)ioaddr;
-	*(volatile u32 *)(ulong)&tx3927_pcicptr->ipcibe =  
+	*(volatile u32 *)(ulong)&tx3927_pcicptr->ipcibe =
 	    (PCI_IPCIBE_ICMD_IOWRITE << PCI_IPCIBE_ICMD_SHIFT)  | byte;
 	while (!(tx3927_pcicptr->istat & PCI_ISTAT_IDICC)) ;
 	/* clear by setting */
@@ -399,7 +398,7 @@
 
 	ioaddr = (unsigned long)addr;
 	*(volatile u32 *)(ulong)&tx3927_pcicptr->ipciaddr =  (unsigned long)ioaddr;
-	*(volatile u32 *)(ulong)&tx3927_pcicptr->ipcibe =  
+	*(volatile u32 *)(ulong)&tx3927_pcicptr->ipcibe =
 	    (PCI_IPCIBE_ICMD_IOREAD << PCI_IPCIBE_ICMD_SHIFT) | PCI_IPCIBE_IBE_LONG;
 	while (!(tx3927_pcicptr->istat & PCI_ISTAT_IDICC)) ;
 	val = le32_to_cpu(*(volatile u32 *)(ulong)&tx3927_pcicptr->ipcidata);
@@ -414,7 +413,7 @@
 	ioaddr = (unsigned long)addr;
 	*(volatile u32 *)(ulong)&tx3927_pcicptr->ipcidata = cpu_to_le32(data);
 	*(volatile u32 *)(ulong)&tx3927_pcicptr->ipciaddr =  (unsigned long)ioaddr;
-	*(volatile u32 *)(ulong)&tx3927_pcicptr->ipcibe =  
+	*(volatile u32 *)(ulong)&tx3927_pcicptr->ipcibe =
 	    (PCI_IPCIBE_ICMD_IOWRITE << PCI_IPCIBE_ICMD_SHIFT)  | PCI_IPCIBE_IBE_LONG;
 	while (!(tx3927_pcicptr->istat & PCI_ISTAT_IDICC)) ;
 	/* clear by setting */
diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/rbhma3100/rtc.c linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/rtc.c
--- linux-2.4.20/arch/mips/jmr3927/rbhma3100/rtc.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/rtc.c	2002-08-05 18:53:33.000000000 -0500
@@ -1,7 +1,7 @@
 /*
  * Copyright 2001 MontaVista Software Inc.
  * Author: MontaVista Software, Inc.
- *              ahennessy@mvista.com       
+ *              ahennessy@mvista.com
  *
  * RTC routines for Dallas chip.
  *
diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/rbhma3100/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/setup.c
--- linux-2.4.20/arch/mips/jmr3927/rbhma3100/setup.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/setup.c	2002-12-01 18:24:48.000000000 -0600
@@ -2,13 +2,13 @@
  *
  * Copyright 2001 MontaVista Software Inc.
  * Author: MontaVista Software, Inc.
- *              ahennessy@mvista.com       
+ *              ahennessy@mvista.com
  *
  * Based on arch/mips/ddb5xxx/ddb5477/setup.c
  *
  *     Setup file for JMR3927.
  *
- * Copyright (C) 2000-2001 Toshiba Corporation 
+ * Copyright (C) 2000-2001 Toshiba Corporation
  *
  *  This program is free software; you can redistribute  it and/or modify it
  *  under  the terms of  the GNU General  Public License as published by the
@@ -55,6 +55,7 @@
 #include <asm/gdb-stub.h>
 #include <asm/jmr3927/jmr3927.h>
 #include <asm/mipsregs.h>
+#include <asm/traps.h>
 
 /* Tick Timer divider */
 #define JMR3927_TIMER_CCD	0	/* 1/2 */
@@ -180,11 +181,15 @@
        }
 
        return res;
-}                                         
+}
+
+
+void __init bus_error_init(void) { /* nothing */ }
+
 
 #if defined(CONFIG_BLK_DEV_INITRD)
 extern unsigned long __rd_start, __rd_end, initrd_start, initrd_end;
-#endif 
+#endif
 
 //#undef DO_WRITE_THROUGH
 #define DO_WRITE_THROUGH
@@ -211,19 +216,19 @@
 	_machine_power_off = jmr3927_machine_power_off;
 
 	/*
-	 * IO/MEM resources. 
+	 * IO/MEM resources.
 	 */
 	ioport_resource.start = pci_io_resource.start;
 	ioport_resource.end = pci_io_resource.end;
 	iomem_resource.start = pci_mem_resource.start;
 	iomem_resource.end = pci_mem_resource.end;
-	
+
 	/* Reboot on panic */
 	panic_timeout = 180;
 
 	{
 		unsigned int conf;
-		conf = read_32bit_cp0_register(CP0_CONF);
+		conf = read_c0_conf();
 	}
 
 #if 1
@@ -243,15 +248,15 @@
 		int mips_config_wbon = 1;
 #endif
 
-		conf = read_32bit_cp0_register(CP0_CONF);
+		conf = read_c0_conf();
 		conf &= ~(TX39_CONF_ICE | TX39_CONF_DCE | TX39_CONF_WBON | TX39_CONF_CWFON);
 		conf |= mips_ic_disable ? 0 : TX39_CONF_ICE;
 		conf |= mips_dc_disable ? 0 : TX39_CONF_DCE;
 		conf |= mips_config_wbon ? TX39_CONF_WBON : 0;
 		conf |= mips_config_cwfon ? TX39_CONF_CWFON : 0;
 
-		write_32bit_cp0_register(CP0_CONF, conf);
-		write_32bit_cp0_register(CP0_TX39_CACHE, 0);
+		write_c0_conf(conf);
+		write_c0_cache(0);
 	}
 #endif
 
@@ -275,9 +280,9 @@
 		argptr = prom_getcmdline();
 		strcat(argptr, " console=ttyS1,115200");
 	}
-#endif                                             
+#endif
 }
- 
+
 
 static void tx3927_setup(void);
 
@@ -338,7 +343,7 @@
 	jmr3927_led_set(0);
 
 
-	if (jmr3927_have_isac()) 
+	if (jmr3927_have_isac())
 		jmr3927_io_led_set(0);
 	printk("JMR-TX3927 (Rev %d) --- IOC(Rev %d) DIPSW:%d,%d,%d,%d\n",
 	       jmr3927_ioc_reg_in(JMR3927_IOC_BREV_ADDR) & JMR3927_REV_MASK,
@@ -510,7 +515,7 @@
 	{
 		unsigned int conf;
 
-	conf = read_32bit_cp0_register(CP0_CONF);
+	conf = read_c0_conf();
                if (!(conf & TX39_CONF_ICE))
                        printk("TX3927 I-Cache disabled.\n");
                if (!(conf & TX39_CONF_DCE))
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/branch.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/branch.c
--- linux-2.4.20/arch/mips/kernel/branch.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/branch.c	2003-01-10 06:17:56.000000000 -0600
@@ -166,7 +166,7 @@
 		if (!(mips_cpu.options & MIPS_CPU_FPU))
 			fcr31 = current->thread.fpu.soft.sr;
 		else
-			asm("cfc1\t%0,$31":"=r" (fcr31));
+			asm volatile("cfc1\t%0,$31" : "=r" (fcr31));
 		bit = (insn.i_format.rt >> 2);
 		bit += (bit != 0);
 		bit += 23;
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/cpu-probe.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/cpu-probe.c
--- linux-2.4.20/arch/mips/kernel/cpu-probe.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/cpu-probe.c	2003-02-03 11:11:41.000000000 -0600
@@ -3,6 +3,7 @@
 #include <linux/stddef.h>
 #include <asm/bugs.h>
 #include <asm/cpu.h>
+#include <asm/fpu.h>
 #include <asm/mipsregs.h>
 
 /*
@@ -16,14 +17,14 @@
 
 static void r3081_wait(void)
 {
-	unsigned long cfg = read_32bit_cp0_register(CP0_CONF);
-	write_32bit_cp0_register(CP0_CONF, cfg|CONF_HALT);
+	unsigned long cfg = read_c0_conf();
+	write_c0_conf(cfg | CONF_HALT);
 }
 
 static void r39xx_wait(void)
 {
-	unsigned long cfg = read_32bit_cp0_register(CP0_CONF);
-	write_32bit_cp0_register(CP0_CONF, cfg|TX39_CONF_HALT);
+	unsigned long cfg = read_c0_conf();
+	write_c0_conf(cfg | TX39_CONF_HALT);
 }
 
 static void r4k_wait(void)
@@ -104,12 +105,12 @@
 #ifdef CONFIG_CPU_R3000
 	extern unsigned long r3k_cache_size(unsigned long);
 	unsigned long size1, size2;
-	unsigned long cfg = read_32bit_cp0_register(CP0_CONF);
+	unsigned long cfg = read_c0_conf();
 
 	size1 = r3k_cache_size(ST0_ISC);
-	write_32bit_cp0_register(CP0_CONF, cfg^CONF_AC);
+	write_c0_conf(cfg ^ CONF_AC);
 	size2 = r3k_cache_size(ST0_ISC);
-	write_32bit_cp0_register(CP0_CONF, cfg);
+	write_c0_conf(cfg);
 	return size1 != size2;
 #else
 	return 0;
@@ -123,10 +124,10 @@
 {
 	unsigned long tmp, fpu_id;
 
-	tmp = read_32bit_cp0_register(CP0_STATUS);
+	tmp = read_c0_status();
 	__enable_fpu();
 	fpu_id = read_32bit_cp1_register(CP1_REVISION);
-	write_32bit_cp0_register(CP0_STATUS, tmp);
+	write_c0_status(tmp);
 	return fpu_id;
 }
 
@@ -140,9 +141,9 @@
 
 /* declaration of the global struct */
 struct mips_cpu mips_cpu = {
-    processor_id:	PRID_IMP_UNKNOWN,
-    fpu_id:		FPIR_IMP_NONE,
-    cputype:		CPU_UNKNOWN
+    .processor_id	= PRID_IMP_UNKNOWN,
+    .fpu_id		= FPIR_IMP_NONE,
+    .cputype		= CPU_UNKNOWN
 };
 
 /* Shortcut for assembler access to mips_cpu.options */
@@ -154,14 +155,14 @@
 __init void cpu_probe(void)
 {
 #if defined(CONFIG_CPU_MIPS32) || defined(CONFIG_CPU_MIPS64)
-	unsigned long config0 = read_32bit_cp0_register(CP0_CONFIG);
+	unsigned long config0 = read_c0_config();
 	unsigned long config1;
 
         if (config0 & (1 << 31)) {
 		/* MIPS32 or MIPS64 compliant CPU. Read Config 1 register. */
 		mips_cpu.options = MIPS_CPU_TLB | MIPS_CPU_4KEX |
 			MIPS_CPU_4KTLB | MIPS_CPU_COUNTER | MIPS_CPU_DIVEC;
-		config1 = read_mips32_cp0_config1();
+		config1 = read_c0_config1();
 		if (config1 & (1 << 3))
 			mips_cpu.options |= MIPS_CPU_WATCH;
 		if (config1 & (1 << 2))
@@ -177,7 +178,7 @@
 		mips_cpu.scache.flags = MIPS_CACHE_NOT_PRESENT;
 	}
 #endif
-	mips_cpu.processor_id = read_32bit_cp0_register(CP0_PRID);
+	mips_cpu.processor_id = read_c0_prid();
 	switch (mips_cpu.processor_id & 0xff0000) {
 	case PRID_COMP_LEGACY:
 		switch (mips_cpu.processor_id & 0xff00) {
@@ -204,7 +205,7 @@
 			mips_cpu.tlbsize = 64;
 			break;
 		case PRID_IMP_R4000:
-			if ((mips_cpu.processor_id & 0xff) == PRID_REV_R4400)
+			if ((mips_cpu.processor_id & 0xff) >= PRID_REV_R4400)
 				mips_cpu.cputype = CPU_R4400SC;
 			else
 				mips_cpu.cputype = CPU_R4000SC;
@@ -372,7 +373,7 @@
 			 * 29      1 =>    64 entry JTLB
 			 *         0 =>    48 entry JTLB
 			 */
-			mips_cpu.tlbsize = (get_info() & (1 << 29)) ? 64 : 48;
+			mips_cpu.tlbsize = (read_c0_info() & (1 << 29)) ? 64 : 48;
 			break;
 		case PRID_IMP_R8000:
 			mips_cpu.cputype = CPU_R8000;
@@ -463,7 +464,7 @@
 			mips_cpu.isa_level = MIPS_CPU_ISA_M64;
 			mips_cpu.options = MIPS_CPU_TLB | MIPS_CPU_4KEX |
 			                   MIPS_CPU_COUNTER | MIPS_CPU_DIVEC |
-			                   MIPS_CPU_MCHECK;
+			                   MIPS_CPU_MCHECK | MIPS_CPU_EJTAG;
 #ifndef CONFIG_SB1_PASS_1_WORKAROUNDS
 			/* FPU in pass1 is known to have issues. */
 			mips_cpu.options |= MIPS_CPU_FPU;
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/kernel/CVS/Entries
--- linux-2.4.20/arch/mips/kernel/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/CVS/Entries	2005-01-06 23:00:06.000000000 -0600
@@ -0,0 +1,45 @@
+/.cvsignore/1.2/Tue Mar 17 22:07:31 1998/-ko/Tlinux_2_4_20
+/Makefile/1.51.2.11/Mon Dec 16 15:05:45 2002/-ko/Tlinux_2_4_20
+/branch.c/1.8.2.2/Fri Jan 10 12:17:56 2003/-ko/Tlinux_2_4_20
+/cpu-probe.c/1.1.2.10/Mon Feb  3 17:11:41 2003/-ko/Tlinux_2_4_20
+/entry.S/1.34.2.9/Thu Jan  9 19:25:46 2003/-ko/Tlinux_2_4_20
+/gdb-low.S/1.11.2.3/Thu Feb 20 18:19:01 2003/-ko/Tlinux_2_4_20
+/gdb-stub.c/1.15.2.5/Thu Feb 20 18:19:01 2003/-ko/Tlinux_2_4_20
+/head.S/1.29.2.16/Fri Feb 14 12:58:52 2003/-ko/Tlinux_2_4_20
+/i8259.c/1.4.2.4/Mon Aug  5 23:53:33 2002/-ko/Tlinux_2_4_20
+/init_task.c/1.7.2.1/Wed Jan 16 09:26:23 2002/-ko/Tlinux_2_4_20
+/ipc.c/1.4.4.1/Mon Aug  5 23:53:33 2002/-ko/Tlinux_2_4_20
+/irix5sys.h/1.3/Thu Sep  6 13:12:01 2001/-ko/Tlinux_2_4_20
+/irixelf.c/1.40.2.3/Mon Dec  2 00:24:48 2002/-ko/Tlinux_2_4_20
+/irixinv.c/1.6.2.2/Thu Oct 31 20:37:38 2002/-ko/Tlinux_2_4_20
+/irixioctl.c/1.8/Sat Jul  8 02:59:01 2000/-ko/Tlinux_2_4_20
+/irixsig.c/1.20.2.1/Mon Aug  5 23:53:33 2002/-ko/Tlinux_2_4_20
+/irq.c/1.38.2.9/Tue Aug 13 03:29:54 2002/-ko/Tlinux_2_4_20
+/irq_cpu.c/1.2.2.5/Tue Feb  4 13:17:51 2003/-ko/Tlinux_2_4_20
+/mips_ksyms.c/1.42.2.3/Tue Jul 23 16:39:10 2002/-ko/Tlinux_2_4_20
+/old-time.c/1.5.2.3/Mon Dec  2 00:24:48 2002/-ko/Tlinux_2_4_20
+/pci-dma.c/1.7.2.4/Sat Sep 28 22:28:38 2002/-ko/Tlinux_2_4_20
+/pci.c/1.10.2.3/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/pci_auto.c/1.3.2.1/Mon Aug  5 23:53:33 2002/-ko/Tlinux_2_4_20
+/proc.c/1.27.2.11/Thu Nov  7 01:47:45 2002/-ko/Tlinux_2_4_20
+/process.c/1.32.2.10/Thu Jan  9 19:17:22 2003/-ko/Tlinux_2_4_20
+/ptrace.c/1.35.2.4/Mon Nov  4 19:39:56 2002/-ko/Tlinux_2_4_20
+/r2300_fpu.S/1.10/Wed Apr 11 05:19:46 2001/-ko/Tlinux_2_4_20
+/r2300_switch.S/1.14.2.6/Thu Jan  9 19:52:38 2003/-ko/Tlinux_2_4_20
+/r4k_fpu.S/1.12/Wed Apr 11 05:19:46 2001/-ko/Tlinux_2_4_20
+/r4k_switch.S/1.16.2.6/Mon Nov  4 19:39:56 2002/-ko/Tlinux_2_4_20
+/r6000_fpu.S/1.7/Sun Dec 10 07:56:02 2000/-ko/Tlinux_2_4_20
+/reset.c/1.2/Thu Aug 23 22:24:24 2001/-ko/Tlinux_2_4_20
+/scall_o32.S/1.18.2.11/Mon Aug  5 23:53:33 2002/-ko/Tlinux_2_4_20
+/semaphore.c/1.4/Wed Jun 13 17:27:43 2001/-ko/Tlinux_2_4_20
+/setup.c/1.96.2.36/Tue Feb  4 12:43:06 2003/-ko/Tlinux_2_4_20
+/signal.c/1.39.2.10/Mon Nov  4 19:39:56 2002/-ko/Tlinux_2_4_20
+/smp.c/1.10.2.21/Thu Nov 28 23:29:36 2002/-ko/Tlinux_2_4_20
+/syscall.c/1.22.2.4/Mon Aug  5 23:53:33 2002/-ko/Tlinux_2_4_20
+/syscalls.h/1.28.2.8/Thu Jan 23 02:12:59 2003/-ko/Tlinux_2_4_20
+/sysirix.c/1.39.2.3/Thu Oct 31 19:36:28 2002/-ko/Tlinux_2_4_20
+/sysmips.c/1.20.2.3/Mon Aug  5 23:53:33 2002/-ko/Tlinux_2_4_20
+/time.c/1.37.2.7/Mon Dec  2 00:24:48 2002/-ko/Tlinux_2_4_20
+/traps.c/1.99.2.41/Mon Feb 10 22:50:48 2003/-ko/Tlinux_2_4_20
+/unaligned.c/1.15.2.17/Fri Feb 21 01:09:19 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/kernel/CVS/Repository
--- linux-2.4.20/arch/mips/kernel/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/CVS/Repository	2005-01-06 23:00:04.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/kernel
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/kernel/CVS/Root
--- linux-2.4.20/arch/mips/kernel/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/CVS/Root	2005-01-06 23:00:04.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/kernel/CVS/Tag
--- linux-2.4.20/arch/mips/kernel/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/CVS/Tag	2005-01-06 23:00:06.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/kernel/.cvsignore
--- linux-2.4.20/arch/mips/kernel/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/.cvsignore	1998-03-17 16:07:31.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/entry.S linux-2.4.20-mipscvs-20050106/arch/mips/kernel/entry.S
--- linux-2.4.20/arch/mips/kernel/entry.S	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/entry.S	2003-01-09 13:25:46.000000000 -0600
@@ -28,7 +28,7 @@
 
 
 		.text
-		.align 4
+		.align	5
 		.set	push
 		.set	reorder
 FEXPORT(ret_from_irq)
@@ -232,6 +232,7 @@
 		BUILD_HANDLER(ov,ov,sti,silent)			/* #12 */
 		BUILD_HANDLER(tr,tr,sti,silent)			/* #13 */
 		BUILD_HANDLER(fpe,fpe,fpe,silent)		/* #15 */
+		BUILD_HANDLER(mdmx,mdmx,sti,silent)		/* #22 */
 		BUILD_HANDLER(watch,watch,sti,silent)		/* #23 */
 		BUILD_HANDLER(mcheck,mcheck,cli,silent)		/* #24 */
 		BUILD_HANDLER(reserved,reserved,sti,silent)	/* others */
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/gdb-low.S linux-2.4.20-mipscvs-20050106/arch/mips/kernel/gdb-low.S
--- linux-2.4.20/arch/mips/kernel/gdb-low.S	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/gdb-low.S	2003-02-20 12:19:01.000000000 -0600
@@ -14,6 +14,16 @@
 #include <asm/gdb-stub.h>
 
 /*
+ * [jsun] We reserves about 2x GDB_FR_SIZE in stack.  The lower (addressed)
+ * part is used to store registers and passed to exception handler.
+ * The upper part is reserved for "call func" feature where gdb client
+ * saves some of the regs, setups call frame and passes args.
+ *
+ * A trace shows about 200 bytes are used to store about half of all regs.
+ * The rest should be big enough for frame setup and passing args.
+ */
+
+/*
  * The low level trap handler
  */
 		.align 	5
@@ -38,7 +48,7 @@
 		nop
 1:
 		move	k0,sp
-		subu	sp,k1,GDB_FR_SIZE
+		subu	sp,k1,GDB_FR_SIZE*2	# see comment above
 		sw	k0,GDB_FR_REG29(sp)
 		sw	v0,GDB_FR_REG2(sp)
 
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/gdb-stub.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/gdb-stub.c
--- linux-2.4.20/arch/mips/kernel/gdb-stub.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/gdb-stub.c	2003-02-20 12:19:01.000000000 -0600
@@ -127,6 +127,8 @@
 #include <linux/mm.h>
 #include <linux/console.h>
 #include <linux/init.h>
+#include <linux/slab.h>
+#include <linux/reboot.h>
 
 #include <asm/asm.h>
 #include <asm/mipsregs.h>
@@ -175,8 +177,8 @@
 
 /* Used to prevent crashes in memory access.  Note that they'll crash anyway if
    we haven't set up fault handlers yet... */
-int kgdb_read_byte(unsigned *address, unsigned *dest);
-int kgdb_write_byte(unsigned val, unsigned *dest);
+int kgdb_read_byte(unsigned char *address, unsigned char *dest);
+int kgdb_write_byte(unsigned char val, unsigned char *dest);
 
 /*
  * Convert ch from a hex digit to an int
@@ -595,30 +597,10 @@
 	char *ptr;
 	unsigned long *stack;
 
-#if 0
-	printk("in handle_exception()\n");
-	show_gdbregs(regs);
-#endif
-
-	/*
-	 * First check trap type. If this is CPU_UNUSABLE and CPU_ID is 1,
-	 * the simply switch the FPU on and return since this is no error
-	 * condition. kernel/traps.c does the same.
-	 * FIXME: This doesn't work yet, so we don't catch CPU_UNUSABLE
-	 * traps for now.
-	 */
-	trap = (regs->cp0_cause & 0x7c) >> 2;
-/*	printk("trap=%d\n",trap); */
-	if (trap == 11) {
-		if (((regs->cp0_cause >> CAUSEB_CE) & 3) == 1) {
-			regs->cp0_status |= ST0_CU1;
-			return;
-		}
-	}
-
 	/*
 	 * If we're in breakpoint() increment the PC
 	 */
+	trap = (regs->cp0_cause & 0x7c) >> 2;
 	if (trap == 9 && regs->cp0_epc == (unsigned long)breakinst)
 		regs->cp0_epc += 4;
 
@@ -707,6 +689,11 @@
 			output_buffer[3] = 0;
 			break;
 
+		case 'D':
+			/* detach; let CPU run */
+			putpacket(output_buffer);
+			return;
+
 		case 'd':
 			/* toggle debug flag */
 			break;
@@ -726,26 +713,21 @@
 
 		/*
 		 * set the value of the CPU registers - return OK
-		 * FIXME: Needs to be written
 		 */
 		case 'G':
 		{
-#if 0
-			unsigned long *newsp, psr;
-
 			ptr = &input_buffer[1];
-			hex2mem(ptr, (char *)registers, 16 * 4, 0); /* G & O regs */
-
-			/*
-			 * See if the stack pointer has moved. If so, then copy the
-			 * saved locals and ins to the new location.
-			 */
-
-			newsp = (unsigned long *)registers[SP];
-			if (sp != newsp)
-				sp = memcpy(newsp, sp, 16 * 4);
-
-#endif
+			hex2mem(ptr, (char *)&regs->reg0, 32*4, 0);
+			ptr += 32*8;
+			hex2mem(ptr, (char *)&regs->cp0_status, 6*4, 0);
+			ptr += 6*8;
+			hex2mem(ptr, (char *)&regs->fpr0, 32*4, 0);
+			ptr += 32*8;
+			hex2mem(ptr, (char *)&regs->cp1_fsr, 2*4, 0);
+			ptr += 2*8;
+			hex2mem(ptr, (char *)&regs->frame_ptr, 2*4, 0);
+			ptr += 2*8;
+			hex2mem(ptr, (char *)&regs->cp0_index, 16*4, 0);
 			strcpy(output_buffer,"OK");
 		 }
 		break;
@@ -811,19 +793,14 @@
 
 
 		/*
-		 * kill the program
-		 */
-		case 'k' :
-			break;		/* do nothing */
-
-
-		/*
-		 * Reset the whole machine (FIXME: system dependent)
+		 * kill the program; let us try to restart the machine
+		 * Reset the whole machine.
 		 */
+		case 'k':
 		case 'r':
+			machine_restart("kgdb restarts machine");
 			break;
 
-
 		/*
 		 * Step to next instruction
 		 */
@@ -903,23 +880,37 @@
 	if (!initialized)
 		return;
 
-	__asm__ __volatile__("
-			.globl	breakinst
-			.set	noreorder
-			nop
-breakinst:		break
-			nop
-			.set	reorder
-	");
+	__asm__ __volatile__(
+			".globl	breakinst\n\t" 
+			".set\tnoreorder\n\t"
+			"nop\n\t"
+			"breakinst:\tbreak\n\t"
+			"nop\n\t"
+			".set\treorder"
+			);
 }
 
 void adel(void)
 {
-	__asm__ __volatile__("
-			.globl	adel
-			la	$8,0x80000001
-			lw	$9,0($8)
-	");
+	__asm__ __volatile__(
+			".globl\tadel\n\t"
+			"la\t$8,0x80000001\n\t"
+			"lw\t$9,0($8)\n\t"
+			);
+}
+
+/*
+ * malloc is needed by gdb client in "call func()", even a private one
+ * will make gdb happy
+ */
+static void *malloc(size_t size)
+{
+	return kmalloc(size, GFP_ATOMIC);
+}
+
+static void free(void *where)
+{
+	kfree(where);
 }
 
 #ifdef CONFIG_GDB_CONSOLE
@@ -951,11 +942,11 @@
 }
 
 static struct console gdb_console = {
-	name:	"gdb",
-	write:	gdb_console_write,
-	device:	gdb_console_dev,
-	flags:	CON_PRINTBUFFER,
-	index:	-1
+	.name	= "gdb",
+	.write	= gdb_console_write,
+	.device	= gdb_console_dev,
+	.flags	= CON_PRINTBUFFER,
+	.index	= -1
 };
 
 __init void register_gdb_console(void)
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/head.S linux-2.4.20-mipscvs-20050106/arch/mips/kernel/head.S
--- linux-2.4.20/arch/mips/kernel/head.S	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/head.S	2003-02-14 06:58:52.000000000 -0600
@@ -91,6 +91,8 @@
 		 nop
 		END(except_vec_ejtag_debug)
 
+		__FINIT
+
 		/*
 		 * EJTAG debug exception handler.
 		 */
@@ -114,11 +116,15 @@
 
 ejtag_return:
 		mfc0	k0, CP0_DESAVE
-		.word	0x4200001f     # DERET, return from EJTAG debug exception.
+		.set	mips32
+		deret
+		.set	mips0
 		 nop
 		.set	at
 		END(ejtag_debug_handler)
 
+		__INIT
+
 		/*
 		* NMI debug exception handler for MIPS reference boards.
 		* The NMI debug exception entry point is 0xbfc00000, which
@@ -130,6 +136,8 @@
 		 nop
 		END(except_vec_nmi)
 
+		__FINIT
+
 		NESTED(nmi_handler, PT_SIZE, sp)
 		.set    noat
 		.set    noreorder
@@ -143,6 +151,8 @@
 		.set    mips0
 		END(nmi_handler)
 
+		__INIT
+
 		/*
 		 * Kernel entry point
 		 */
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/ioport.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/ioport.c
--- linux-2.4.20/arch/mips/kernel/ioport.c	1997-06-26 14:33:37.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/ioport.c	1969-12-31 18:00:00.000000000 -0600
@@ -1,34 +0,0 @@
-/*
- * linux/arch/mips/kernel/ioport.c
- */
-#include <linux/sched.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/types.h>
-#include <linux/ioport.h>
-
-/*
- * This changes the io permissions bitmap in the current task.
- */
-asmlinkage int sys_ioperm(unsigned long from, unsigned long num, int turn_on)
-{
-	return -ENOSYS;
-}
-
-/*
- * sys_iopl has to be used when you want to access the IO ports
- * beyond the 0x3ff range: to get the full 65536 ports bitmapped
- * you'd need 8kB of bitmaps/process, which is a bit excessive.
- *
- * Here we just change the eflags value on the stack: we allow
- * only the super-user to do it. This depends on the stack-layout
- * on system-call entry - see also fork() and the signal handling
- * code.
- */
-asmlinkage int sys_iopl(long ebx,long ecx,long edx,
-	     long esi, long edi, long ebp, long eax, long ds,
-	     long es, long fs, long gs, long orig_eax,
-	     long eip,long cs,long eflags,long esp,long ss)
-{
-	return -ENOSYS;
-}
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/irixelf.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/irixelf.c
--- linux-2.4.20/arch/mips/kernel/irixelf.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/irixelf.c	2002-12-01 18:24:48.000000000 -0600
@@ -574,7 +574,7 @@
 
 	pp = (struct prda *) v;
 	pp->prda_sys.t_pid  = current->pid;
-	pp->prda_sys.t_prid = read_32bit_cp0_register (CP0_PRID);
+	pp->prda_sys.t_prid = read_c0_prid();
 	pp->prda_sys.t_rpid = current->pid;
 
 	/* We leave the rest set to zero */
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/irixinv.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/irixinv.c
--- linux-2.4.20/arch/mips/kernel/irixinv.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/irixinv.c	2002-10-31 14:37:38.000000000 -0600
@@ -16,8 +16,7 @@
 
 static inventory_t inventory [MAX_INVENTORY];
 
-void
-add_to_inventory (int class, int type, int controller, int unit, int state)
+void add_to_inventory (int class, int type, int controller, int unit, int state)
 {
 	inventory_t *ni = &inventory [inventory_items];
 
@@ -33,8 +32,7 @@
 	inventory_items++;
 }
 
-int
-dump_inventory_to_user (void *userbuf, int size)
+int dump_inventory_to_user (void *userbuf, int size)
 {
 	inventory_t *inv  = &inventory [0];
 	inventory_t *user = userbuf;
@@ -51,13 +49,13 @@
 	return inventory_items * sizeof (inventory_t);
 }
 
-void __init init_inventory (void)
+static int __init init_inventory(void)
 {
-	/* gross hack while we put the right bits all over the kernel
+	/*
+	 * gross hack while we put the right bits all over the kernel
 	 * most likely this will not let just anyone run the X server
 	 * until we put the right values all over the place
 	 */
-
 	add_to_inventory (10, 3, 0, 0, 16400);
 	add_to_inventory (1, 1, 150, -1, 12);
 	add_to_inventory (1, 3, 0, 0, 8976);
@@ -76,6 +74,8 @@
 	add_to_inventory (2, 2, 0, 2, 0);
 	add_to_inventory (2, 2, 0, 1, 0);
 	add_to_inventory (7, 14, 0, 0, 6);
+
+	return 0;
 }
 
 module_init(init_inventory);
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/irq_cpu.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/irq_cpu.c
--- linux-2.4.20/arch/mips/kernel/irq_cpu.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/irq_cpu.c	2003-02-04 07:17:51.000000000 -0600
@@ -31,13 +31,13 @@
 
 static void mips_cpu_irq_enable(unsigned int irq)
 {
-	clear_cp0_cause( 1 << (irq - mips_cpu_irq_base + 8));
-	set_cp0_status(1 << (irq - mips_cpu_irq_base + 8));
+	clear_c0_cause( 1 << (irq - mips_cpu_irq_base + 8));
+	set_c0_status(1 << (irq - mips_cpu_irq_base + 8));
 }
 
 static void mips_cpu_irq_disable(unsigned int irq)
 {
-	clear_cp0_status(1 << (irq - mips_cpu_irq_base + 8));
+	clear_c0_status(1 << (irq - mips_cpu_irq_base + 8));
 }
 
 static unsigned int mips_cpu_irq_startup(unsigned int irq)
@@ -51,10 +51,10 @@
 
 static void mips_cpu_irq_ack(unsigned int irq)
 {
-	/* although we attemp to clear the IP bit in cause reigster, I think
+	/* although we attempt to clear the IP bit in cause register, I think
 	 * usually it is cleared by device (irq source)
 	 */
-	clear_cp0_cause(1 << (irq - mips_cpu_irq_base + 8));
+	clear_c0_cause(1 << (irq - mips_cpu_irq_base + 8));
 
 	/* disable this interrupt - so that we safe proceed to the handler */
 	mips_cpu_irq_disable(irq);
@@ -62,7 +62,7 @@
 
 static void mips_cpu_irq_end(unsigned int irq)
 {
-	if(!(irq_desc[irq].status & (IRQ_DISABLED | IRQ_INPROGRESS)))
+	if (!(irq_desc[irq].status & (IRQ_DISABLED | IRQ_INPROGRESS)))
 		mips_cpu_irq_enable(irq);
 }
 
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/kernel/Makefile
--- linux-2.4.20/arch/mips/kernel/Makefile	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/Makefile	2002-12-16 09:05:45.000000000 -0600
@@ -12,11 +12,11 @@
 
 O_TARGET := kernel.o
 
-export-objs	= irq.o pci-dma.o setup.o smp.o mips_ksyms.o old-irq.o
+export-objs	= irq.o pci-dma.o setup.o smp.o mips_ksyms.o
 
-obj-y		+= branch.o cpu-probe.o process.o signal.o entry.o traps.o \
-		   ptrace.o vm86.o ioport.o reset.o semaphore.o setup.o \
-		   syscall.o sysmips.o ipc.o scall_o32.o unaligned.o
+obj-y		+= branch.o cpu-probe.o irq.o process.o signal.o entry.o \
+		   traps.o ptrace.o reset.o semaphore.o setup.o syscall.o \
+		   sysmips.o ipc.o scall_o32.o unaligned.o
 
 obj-$(CONFIG_MODULES)		+= mips_ksyms.o
 
@@ -39,9 +39,6 @@
 
 obj-$(CONFIG_SMP)		+= smp.o
 
-# Old style irq support, going to die in 2.5.
-obj-$(CONFIG_NEW_IRQ)		+= irq.o
-obj-$(CONFIG_ROTTEN_IRQ)	+= old-irq.o
 obj-$(CONFIG_I8259)		+= i8259.o
 obj-$(CONFIG_IRQ_CPU)		+= irq_cpu.o
 
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/old-irq.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/old-irq.c
--- linux-2.4.20/arch/mips/kernel/old-irq.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/old-irq.c	1969-12-31 18:00:00.000000000 -0600
@@ -1,408 +0,0 @@
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Code to handle x86 style IRQs plus some generic interrupt stuff.
- *
- * Copyright (C) 1992 Linus Torvalds
- * Copyright (C) 1994 - 2001 Ralf Baechle
- *
- * Old rotten IRQ code.  To be killed as soon as everybody had converted or
- * in 2.5.0, whatever comes first.
- */
-#include <linux/config.h>
-#include <linux/errno.h>
-#include <linux/init.h>
-#include <linux/kernel_stat.h>
-#include <linux/module.h>
-#include <linux/signal.h>
-#include <linux/sched.h>
-#include <linux/types.h>
-#include <linux/interrupt.h>
-#include <linux/ioport.h>
-#include <linux/timex.h>
-#include <linux/slab.h>
-#include <linux/random.h>
-
-#include <asm/bitops.h>
-#include <asm/bootinfo.h>
-#include <asm/io.h>
-#include <asm/irq.h>
-#include <asm/mipsregs.h>
-#include <asm/system.h>
-#include <asm/nile4.h>
-
-/*
- * The board specific setup routine sets irq_setup to point to a board
- * specific setup routine.
- */
-void (*irq_setup)(void);
-
-/*
- * Linux has a controller-independent x86 interrupt architecture.
- * every controller has a 'controller-template', that is used
- * by the main code to do the right thing. Each driver-visible
- * interrupt source is transparently wired to the apropriate
- * controller. Thus drivers need not be aware of the
- * interrupt-controller.
- *
- * Various interrupt controllers we handle: 8259 PIC, SMP IO-APIC,
- * PIIX4's internal 8259 PIC and SGI's Visual Workstation Cobalt (IO-)APIC.
- * (IO-APICs assumed to be messaging to Pentium local-APICs)
- *
- * the code is designed to be easily extended with new/different
- * interrupt controllers, without having to do assembly magic.
- */
-
-/*
- * This contains the irq mask for both 8259A irq controllers, it's an
- * int so we can deal with the third PIC in some systems like the RM300.
- * (XXX This is broken for big endian.)
- */
-static unsigned int cached_irq_mask = 0xffff;
-
-#define __byte(x,y) (((unsigned char *)&(y))[x])
-#define __word(x,y) (((unsigned short *)&(y))[x])
-#define __long(x,y) (((unsigned int *)&(y))[x])
-
-#define cached_21       (__byte(0,cached_irq_mask))
-#define cached_A1       (__byte(1,cached_irq_mask))
-
-volatile unsigned long irq_err_count;
-
-/*
- * (un)mask_irq, disable_irq() and enable_irq() only handle (E)ISA and
- * PCI devices.  Other onboard hardware needs specific routines.
- */
-static inline void mask_irq(unsigned int irq)
-{
-	cached_irq_mask |= 1 << irq;
-	if (irq & 8) {
-		outb(cached_A1, 0xa1);
-	} else {
-		outb(cached_21, 0x21);
-	}
-}
-
-static inline void unmask_irq(unsigned int irq)
-{
-	cached_irq_mask &= ~(1 << irq);
-	if (irq & 8) {
-		outb(cached_A1, 0xa1);
-	} else {
-		outb(cached_21, 0x21);
-	}
-}
-
-void i8259_disable_irq(unsigned int irq_nr)
-{
-	unsigned long flags;
-
-	save_and_cli(flags);
-	mask_irq(irq_nr);
-	restore_flags(flags);
-}
-
-void i8259_enable_irq(unsigned int irq_nr)
-{
-	unsigned long flags;
-	save_and_cli(flags);
-	unmask_irq(irq_nr);
-	restore_flags(flags);
-}
-
-static struct irqaction *irq_action[NR_IRQS] = {
-	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
-};
-
-int get_irq_list(char *buf)
-{
-	int i, len = 0;
-	struct irqaction * action;
-
-	for (i = 0 ; i < 32 ; i++) {
-		action = irq_action[i];
-		if (!action)
-			continue;
-		len += sprintf(buf+len, "%2d: %8d %c %s",
-			i, kstat.irqs[0][i],
-			(action->flags & SA_INTERRUPT) ? '+' : ' ',
-			action->name);
-		for (action=action->next; action; action = action->next) {
-			len += sprintf(buf+len, ",%s %s",
-				(action->flags & SA_INTERRUPT) ? " +" : "",
-				action->name);
-		}
-		len += sprintf(buf+len, "\n");
-	}
-	return len;
-}
-
-static inline void i8259_mask_and_ack_irq(int irq)
-{
-	cached_irq_mask |= 1 << irq;
-
-	if (irq & 8) {
-		inb(0xa1);
-		outb(cached_A1, 0xa1);
-		outb(0x62, 0x20);		/* Specific EOI to cascade */
-                outb(0x20, 0xa0);
-        } else {
-		inb(0x21);
-		outb(cached_21, 0x21);
-		outb(0x20, 0x20);
-        }
-}
-
-asmlinkage void i8259_do_irq(int irq, struct pt_regs *regs)
-{
-	struct irqaction *action;
-	int do_random, cpu;
-
-	cpu = smp_processor_id();
-	irq_enter(cpu, irq);
-
-	if (irq >= 16)
-		goto out;
-
-	i8259_mask_and_ack_irq(irq);
-
-	kstat.irqs[cpu][irq]++;
-
-	action = *(irq + irq_action);
-	if (!action)
-		goto out;
-
-	if (!(action->flags & SA_INTERRUPT))
-		__sti();
-	action = *(irq + irq_action);
-	do_random = 0;
-       	do {
-		do_random |= action->flags;
-		action->handler(irq, action->dev_id, regs);
-		action = action->next;
-       	} while (action);
-	if (do_random & SA_SAMPLE_RANDOM)
-		add_interrupt_randomness(irq);
-	__cli();
-	unmask_irq (irq);
-
-out:
-	irq_exit(cpu, irq);
-}
-
-/*
- * do_IRQ handles IRQ's that have been installed without the
- * SA_INTERRUPT flag: it uses the full signal-handling return
- * and runs with other interrupts enabled. All relatively slow
- * IRQ's should use this format: notably the keyboard/timer
- * routines.
- */
-asmlinkage void do_IRQ(int irq, struct pt_regs * regs)
-{
-	struct irqaction *action;
-	int do_random, cpu;
-
-	cpu = smp_processor_id();
-	irq_enter(cpu, irq);
-	kstat.irqs[cpu][irq]++;
-
-	action = *(irq + irq_action);
-	if (action) {
-		if (!(action->flags & SA_INTERRUPT))
-			__sti();
-		action = *(irq + irq_action);
-		do_random = 0;
-        	do {
-			do_random |= action->flags;
-			action->handler(irq, action->dev_id, regs);
-			action = action->next;
-        	} while (action);
-		if (do_random & SA_SAMPLE_RANDOM)
-			add_interrupt_randomness(irq);
-		__cli();
-	}
-	irq_exit(cpu, irq);
-
-	if (softirq_pending(cpu))
-		do_softirq();
-
-	/* unmasking and bottom half handling is done magically for us. */
-}
-
-int i8259_setup_irq(int irq, struct irqaction * new)
-{
-	int shared = 0;
-	struct irqaction *old, **p;
-	unsigned long flags;
-
-	p = irq_action + irq;
-	if ((old = *p) != NULL) {
-		/* Can't share interrupts unless both agree to */
-		if (!(old->flags & new->flags & SA_SHIRQ))
-			return -EBUSY;
-
-		/* Can't share interrupts unless both are same type */
-		if ((old->flags ^ new->flags) & SA_INTERRUPT)
-			return -EBUSY;
-
-		/* add new interrupt at end of irq queue */
-		do {
-			p = &old->next;
-			old = *p;
-		} while (old);
-		shared = 1;
-	}
-
-	if (new->flags & SA_SAMPLE_RANDOM)
-		rand_initialize_irq(irq);
-
-	save_and_cli(flags);
-	*p = new;
-
-	if (!shared) {
-		if (is_i8259_irq(irq))
-		    unmask_irq(irq);
-#if (defined(CONFIG_DDB5074) || defined(CONFIG_DDB5476))
-		else
-		    nile4_enable_irq(irq_to_nile4(irq));
-#endif
-	}
-	restore_flags(flags);
-	return 0;
-}
-
-/*
- * Request_interrupt and free_interrupt ``sort of'' handle interrupts of
- * non i8259 devices.  They will have to be replaced by architecture
- * specific variants.  For now we still use this as broken as it is because
- * it used to work ...
- */
-int request_irq(unsigned int irq,
-		void (*handler)(int, void *, struct pt_regs *),
-		unsigned long irqflags, const char * devname, void *dev_id)
-{
-	int retval;
-	struct irqaction * action;
-
-	if (irq >= 32)
-		return -EINVAL;
-	if (!handler)
-		return -EINVAL;
-
-	action = (struct irqaction *)kmalloc(sizeof(struct irqaction), GFP_KERNEL);
-	if (!action)
-		return -ENOMEM;
-
-	action->handler = handler;
-	action->flags = irqflags;
-	action->mask = 0;
-	action->name = devname;
-	action->next = NULL;
-	action->dev_id = dev_id;
-
-	retval = i8259_setup_irq(irq, action);
-
-	if (retval)
-		kfree(action);
-	return retval;
-}
-
-void free_irq(unsigned int irq, void *dev_id)
-{
-	struct irqaction * action, **p;
-	unsigned long flags;
-
-	if (irq > 31) {
-		printk("Trying to free IRQ%d\n",irq);
-		return;
-	}
-	for (p = irq + irq_action; (action = *p) != NULL; p = &action->next) {
-		if (action->dev_id != dev_id)
-			continue;
-
-		/* Found it - now free it */
-		save_and_cli(flags);
-		*p = action->next;
-		if (!irq[irq_action])
-			mask_irq(irq);
-		restore_flags(flags);
-		kfree(action);
-		return;
-	}
-	printk("Trying to free free IRQ%d\n",irq);
-}
-
-unsigned long probe_irq_on (void)
-{
-	unsigned int i, irqs = 0;
-	unsigned long delay;
-
-	/* first, enable any unassigned (E)ISA irqs */
-	for (i = 15; i > 0; i--) {
-		if (!irq_action[i]) {
-			i8259_enable_irq(i);
-			irqs |= (1 << i);
-		}
-	}
-
-	/* wait for spurious interrupts to mask themselves out again */
-	for (delay = jiffies + HZ/10; time_before(jiffies, delay); )
-		/* about 100ms delay */;
-
-	/* now filter out any obviously spurious interrupts */
-	return irqs & ~cached_irq_mask;
-}
-
-int probe_irq_off (unsigned long irqs)
-{
-	unsigned int i;
-
-#ifdef DEBUG
-	printk("probe_irq_off: irqs=0x%04x irqmask=0x%04x\n", irqs, irqmask);
-#endif
-	irqs &= cached_irq_mask;
-	if (!irqs)
-		return 0;
-	i = ffz(~irqs);
-	if (irqs != (irqs & (1 << i)))
-		i = -i;
-	return i;
-}
-
-void __init i8259_init(void)
-{
-	/* Init master interrupt controller */
-	outb(0x11, 0x20); /* Start init sequence */
-	outb(0x00, 0x21); /* Vector base */
-	outb(0x04, 0x21); /* edge tiggered, Cascade (slave) on IRQ2 */
-	outb(0x01, 0x21); /* Select 8086 mode */
-	outb(0xff, 0x21); /* Mask all */
-
-	/* Init slave interrupt controller */
-	outb(0x11, 0xa0); /* Start init sequence */
-	outb(0x08, 0xa1); /* Vector base */
-	outb(0x02, 0xa1); /* edge triggered, Cascade (slave) on IRQ2 */
-	outb(0x01, 0xa1); /* Select 8086 mode */
-	outb(0xff, 0xa1); /* Mask all */
-
-	outb(cached_A1, 0xa1);
-	outb(cached_21, 0x21);
-}
-
-void __init init_IRQ(void)
-{
-	/* i8259_init(); */
-	irq_setup();
-}
-
-EXPORT_SYMBOL(free_irq);
-EXPORT_SYMBOL(request_irq);
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/old-time.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/old-time.c
--- linux-2.4.20/arch/mips/kernel/old-time.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/old-time.c	2002-12-01 18:24:48.000000000 -0600
@@ -94,7 +94,7 @@
 	}
 
 	/* Get last timer tick in absolute kernel time */
-	count = read_32bit_cp0_register(CP0_COUNT);
+	count = read_c0_count();
 
 	/* .. relative to previous jiffy (32 bits is enough) */
 	count -= timerlo;
@@ -414,7 +414,7 @@
 	 * The cycle counter is only 32 bit which is good for about
 	 * a minute at current count rates of upto 150MHz or so.
 	 */
-	count = read_32bit_cp0_register(CP0_COUNT);
+	count = read_c0_count();
 	timerhi += (count < timerlo);	/* Wrap around */
 	timerlo = count;
 
@@ -425,7 +425,7 @@
 	 * we need only ask for the next in r4k_interval counts. On other
 	 * archs we have a real timer, so we don't want this.
 	 */
-	write_32bit_cp0_register (CP0_COMPARE,
+	write_c0_compare(
 				  (unsigned long) (count + r4k_interval));
         kstat.irqs[0][irq]++;
 #endif
@@ -513,7 +513,7 @@
 	write_unlock_irq (&xtime_lock);
 
 	if (mips_cpu.options & MIPS_CPU_COUNTER) {
-		write_32bit_cp0_register(CP0_COUNT, 0);
+		write_c0_count(0);
 		do_gettimeoffset = do_fast_gettimeoffset;
 		irq0.handler = r4k_timer_interrupt;
 	}
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/pci.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/pci.c
--- linux-2.4.20/arch/mips/kernel/pci.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/pci.c	2003-01-11 11:53:10.000000000 -0600
@@ -100,7 +100,7 @@
 	pcibios_fixup_irqs();
 }
 
-int pcibios_enable_device(struct pci_dev *dev)
+int pcibios_enable_device(struct pci_dev *dev, int mask)
 {
 	/* pciauto_assign_resources() will enable all devices found */
 	return 0;
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/pci-dma.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/pci-dma.c
--- linux-2.4.20/arch/mips/kernel/pci-dma.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/pci-dma.c	2002-09-28 17:28:38.000000000 -0500
@@ -30,7 +30,7 @@
 
 	if (ret != NULL) {
 		memset(ret, 0, size);
-		*dma_handle = bus_to_baddr(hwdev->bus->number, __pa(ret));
+		*dma_handle = bus_to_baddr(hwdev->bus, __pa(ret));
 #ifdef CONFIG_NONCOHERENT_IO
 		dma_cache_wback_inv((unsigned long) ret, size);
 		ret = UNCAC_ADDR(ret);
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/proc.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/proc.c
--- linux-2.4.20/arch/mips/kernel/proc.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/proc.c	2002-11-06 19:47:45.000000000 -0600
@@ -145,8 +145,8 @@
 }
 
 struct seq_operations cpuinfo_op = {
-	start:	c_start,
-	next:	c_next,
-	stop:	c_stop,
-	show:	show_cpuinfo,
+	.start	= c_start,
+	.next	= c_next,
+	.stop	= c_stop,
+	.show	= show_cpuinfo,
 };
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/process.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/process.c
--- linux-2.4.20/arch/mips/kernel/process.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/process.c	2003-01-09 13:17:22.000000000 -0600
@@ -21,6 +21,7 @@
 
 #include <asm/bootinfo.h>
 #include <asm/cpu.h>
+#include <asm/fpu.h>
 #include <asm/pgtable.h>
 #include <asm/system.h>
 #include <asm/mipsregs.h>
@@ -47,28 +48,25 @@
 	}
 }
 
-struct task_struct *last_task_used_math = NULL;
-
 asmlinkage void ret_from_fork(void);
 
+void start_thread(struct pt_regs * regs, unsigned long pc, unsigned long sp)
+{
+	regs->cp0_status &= ~(ST0_CU0|ST0_KSU|ST0_CU1);
+       	regs->cp0_status |= KU_USER;
+	current->used_math = 0;
+	loose_fpu();
+	regs->cp0_epc = pc;
+	regs->regs[29] = sp;
+	current->thread.current_ds = USER_DS;
+}
+
 void exit_thread(void)
 {
-	/* Forget lazy fpu state */
-	if (last_task_used_math == current && mips_cpu.options & MIPS_CPU_FPU) {
-		__enable_fpu();
-		__asm__ __volatile__("cfc1\t$0,$31");
-		last_task_used_math = NULL;
-	}
 }
 
 void flush_thread(void)
 {
-	/* Forget lazy fpu state */
-	if (last_task_used_math == current && mips_cpu.options & MIPS_CPU_FPU) {
-		__enable_fpu();
-		__asm__ __volatile__("cfc1\t$0,$31");
-		last_task_used_math = NULL;
-	}
 }
 
 int copy_thread(int nr, unsigned long clone_flags, unsigned long usp,
@@ -80,11 +78,10 @@
 
 	childksp = (unsigned long)p + KERNEL_STACK_SIZE - 32;
 
-	if (last_task_used_math == current)
-		if (mips_cpu.options & MIPS_CPU_FPU) {
-			__enable_fpu();
-			save_fp(p);
-		}
+	if (is_fpu_owner()) {
+		save_fp(p);
+	}
+	
 	/* set up new TSS. */
 	childregs = (struct pt_regs *) childksp - 1;
 	*childregs = *regs;
@@ -114,7 +111,7 @@
 	 * New tasks loose permission to use the fpu. This accelerates context
 	 * switching for most programs since they don't use the fpu.
 	 */
-	p->thread.cp0_status = read_32bit_cp0_register(CP0_STATUS) &
+	p->thread.cp0_status = read_c0_status() &
                             ~(ST0_CU2|ST0_CU1|KU_MASK);
 	childregs->cp0_status &= ~(ST0_CU2|ST0_CU1);
 
@@ -124,29 +121,8 @@
 /* Fill in the fpu structure for a core dump.. */
 int dump_fpu(struct pt_regs *regs, elf_fpregset_t *r)
 {
-	/* We actually store the FPU info in the task->thread
-	 * area.
-	 */
-	if(regs->cp0_status & ST0_CU1) {
-		memcpy(r, &current->thread.fpu, sizeof(current->thread.fpu));
-		return 1;
-	}
-	return 0; /* Task didn't use the fpu at all. */
-}
-
-/* Fill in the user structure for a core dump.. */
-void dump_thread(struct pt_regs *regs, struct user *dump)
-{
-	dump->magic = CMAGIC;
-	dump->start_code  = current->mm->start_code;
-	dump->start_data  = current->mm->start_data;
-	dump->start_stack = regs->regs[29] & ~(PAGE_SIZE - 1);
-	dump->u_tsize = (current->mm->end_code - dump->start_code) >> PAGE_SHIFT;
-	dump->u_dsize = (current->mm->brk + (PAGE_SIZE - 1) - dump->start_data) >> PAGE_SHIFT;
-	dump->u_ssize =
-		(current->mm->start_stack - dump->start_stack + PAGE_SIZE - 1) >> PAGE_SHIFT;
-	memcpy(&dump->regs[0], regs, sizeof(struct pt_regs));
-	memcpy(&dump->regs[EF_SIZE/4], &current->thread.fpu, sizeof(current->thread.fpu));
+	memcpy(r, &current->thread.fpu, sizeof(current->thread.fpu));
+	return 1;
 }
 
 /*
@@ -157,21 +133,21 @@
 	long retval;
 
 	__asm__ __volatile__(
-		".set noreorder               \n"
-		"    move    $6,$sp           \n"
-		"    move    $4,%5            \n"
-		"    li      $2,%1            \n"
-		"    syscall                  \n"
-		"    beq     $6,$sp,1f        \n"
-		"    subu    $sp,32           \n"	/* delay slot */
-		"    jalr    %4               \n"
-		"    move    $4,%3            \n"	/* delay slot */
-		"    move    $4,$2            \n"
-		"    li      $2,%2            \n"
-		"    syscall                  \n"
-		"1:  addiu   $sp,32           \n"
-		"    move    %0,$2            \n"
-		".set reorder"
+		"	.set	noreorder	\n"
+		"	move    $6, $sp		\n"
+		"	move    $4, %5		\n"
+		"	li      $2, %1		\n"
+		"	syscall			\n"
+		"	beq     $6, $sp, 1f	\n"
+		"	 subu    $sp, 32	\n"
+		"	jalr    %4		\n"
+		"	 move    $4, %3		\n"
+		"	move    $4, $2		\n"
+		"	li      $2, %2		\n"
+		"	syscall			\n"
+		"1:	addiu   $sp, 32		\n"
+		"	move    %0, $2		\n"
+		"	.set	reorder"
 		: "=r" (retval)
 		: "i" (__NR_clone), "i" (__NR_exit), "r" (arg), "r" (fn),
 		  "r" (flags | CLONE_VM)
@@ -180,7 +156,7 @@
 		  * at, result, argument or temporary registers ...
 		  */
 		: "$2", "$3", "$4", "$5", "$6", "$7", "$8",
-		  "$9","$10","$11","$12","$13","$14","$15","$24","$25");
+		  "$9","$10","$11","$12","$13","$14","$15","$24","$25", "$31");
 
 	return retval;
 }
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/ptrace.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/ptrace.c
--- linux-2.4.20/arch/mips/kernel/ptrace.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/ptrace.c	2002-11-04 13:39:56.000000000 -0600
@@ -27,6 +27,7 @@
 #include <asm/uaccess.h>
 #include <asm/bootinfo.h>
 #include <asm/cpu.h>
+#include <asm/fpu.h>
 
 /*
  * Called by kernel/ptrace.c when detaching..
@@ -42,7 +43,6 @@
 {
 	struct task_struct *child;
 	int ret;
-	extern void save_fp(struct task_struct *);
 
 	lock_kernel();
 #if 0
@@ -113,20 +113,7 @@
 			break;
 		case FPR_BASE ... FPR_BASE + 31:
 			if (child->used_math) {
-			        unsigned long long *fregs
-					= (unsigned long long *)
-					    &child->thread.fpu.hard.fp_regs[0];
-			 	if(!(mips_cpu.options & MIPS_CPU_FPU)) {
-					fregs = (unsigned long long *)
-						child->thread.fpu.soft.regs;
-				} else
-					if (last_task_used_math == child) {
-						__enable_fpu();
-						save_fp(child);
-						__disable_fpu();
-						last_task_used_math = NULL;
-						regs->cp0_status &= ~ST0_CU1;
-					}
+			        unsigned long long *fregs = get_fpu_regs(child);
 				/*
 				 * The odd registers are actually the high
 				 * order bits of the values stored in the even
@@ -204,21 +191,8 @@
 			break;
 		case FPR_BASE ... FPR_BASE + 31: {
 			unsigned long long *fregs;
-			fregs = (unsigned long long *)&child->thread.fpu.hard.fp_regs[0];
-			if (child->used_math) {
-				if (last_task_used_math == child) {
-					if(!(mips_cpu.options & MIPS_CPU_FPU)) {
-						fregs = (unsigned long long *)
-						child->thread.fpu.soft.regs;
-					} else {
-						__enable_fpu();
-						save_fp(child);
-						__disable_fpu();
-						last_task_used_math = NULL;
-						regs->cp0_status &= ~ST0_CU1;
-					}
-				}
-			} else {
+			fregs = (unsigned long long *)get_fpu_regs(child);
+			if (!child->used_math) {
 				/* FP not yet used  */
 				memset(&child->thread.fpu.hard, ~0,
 				       sizeof(child->thread.fpu.hard));
@@ -229,11 +203,6 @@
 			 * of the values stored in the even registers - unless
 			 * we're using r2k_switch.S.
 			 */
-#ifdef CONFIG_CPU_R3000
-			if (mips_cpu.options & MIPS_CPU_FPU)
-				*(unsigned long *)(fregs + addr) = data;
-			else
-#endif
 			if (addr & 1) {
 				fregs[(addr & ~1) - FPR_BASE] &= 0xffffffff;
 				fregs[(addr & ~1) - FPR_BASE] |= ((unsigned long long) data) << 32;
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/r2300_switch.S linux-2.4.20-mipscvs-20050106/arch/mips/kernel/r2300_switch.S
--- linux-2.4.20/arch/mips/kernel/r2300_switch.S	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/r2300_switch.S	2003-01-09 13:52:38.000000000 -0600
@@ -28,6 +28,19 @@
 	.set	mips1
 	.align	5
 
+#define PF_USEDFPU      0x00100000      /* task used FPU this quantum (SMP) */
+#define ST_OFF (KERNEL_STACK_SIZE - 32 - PT_SIZE + PT_STATUS)
+
+/*
+ * [jsun] FPU context is saved if and only if the process has used FPU in 
+ * the current run (PF_USEDFPU).  In any case, the CU1 bit for user space 
+ * STATUS register should be 0, so that a process *always* starts its 
+ * userland with FPU disabled after each context switch.
+ *
+ * FPU will be enabled as soon as the process accesses FPU again, through
+ * do_cpu() trap.
+ */
+
 /*
  * task_struct *resume(task_struct *prev,
  *                     task_struct *next)
@@ -41,6 +54,32 @@
 	CPU_SAVE_NONSCRATCH(a0)
 	sw	ra, THREAD_REG31(a0)
 
+	/* 
+	 * check if we need to save FPU registers
+	 */
+	lw	t0, TASK_FLAGS(a0)
+	li	t1, PF_USEDFPU
+	and	t2, t0, t1
+	beqz	t2, 1f
+	nor	t1, zero, t1
+
+	/*
+	 * clear PF_USEDFPU bit in task flags
+	 */
+	and	t0, t0, t1
+	sw	t0, TASK_FLAGS(a0)
+
+	/*
+	 * clear user-saved stack CU1 bit
+	 */
+	lw	t0, ST_OFF(a0)
+	li	t1, ~ST0_CU1
+	and	t0, t0, t1
+	sw	t0, ST_OFF(a0)
+
+	FPU_SAVE_SINGLE(a0, t0)			# clobbers t0
+
+1:
 	/*
 	 * The order of restoring the registers takes care of the race
 	 * updating $28, $29 and kernelsp without disabling ints.
@@ -64,59 +103,32 @@
 	END(resume)
 
 /*
- * Do lazy fpu context switch.  Saves FPU context to the process in a0
- * and loads the new context of the current process.
- */
-
-#define ST_OFF (KERNEL_STACK_SIZE - 32 - PT_SIZE + PT_STATUS)
-
-LEAF(lazy_fpu_switch)
-	mfc0	t0, CP0_STATUS			# enable cp1
-	li	t3, ST0_CU1
-	or	t0, t3
-	mtc0	t0, CP0_STATUS
-
-	.set	noreorder
-	beqz	a0, 2f				# Save floating point state
-	 nor	t3, zero, t3
-	.set	reorder
-	lw	t1, ST_OFF(a0)			# last thread looses fpu
-	and	t1, t3
-	sw	t1, ST_OFF(a0)
-	FPU_SAVE_SINGLE(a0, t1)			# clobbers t1
-
-2:
-	FPU_RESTORE_SINGLE($28, t0)		# clobbers t0
-	jr	ra
-	END(lazy_fpu_switch)
-
-/*
  * Save a thread's fp context.
  */
-LEAF(save_fp)
+LEAF(_save_fp)
 	FPU_SAVE_SINGLE(a0, t1)			# clobbers t1
 	jr	ra
-	END(save_fp)
+	END(_save_fp)
 
 /*
  * Restore a thread's fp context.
  */
-LEAF(restore_fp)
+LEAF(_restore_fp)
 	FPU_RESTORE_SINGLE(a0, t1)		# clobbers t1
 	jr	ra
-	END(restore_fp)
+	END(_restore_fp)
 
 /*
  * Load the FPU with signalling NANS.  This bit pattern we're using has
  * the property that no matter wether considered as single or as double
- * precission represents signaling NANS.
+ * precision represents signaling NANS.
  *
  * We initialize fcr31 to rounding to nearest, no exceptions.
  */
 
 #define FPU_DEFAULT  0x00000000
 
-LEAF(init_fpu)
+LEAF(_init_fpu)
 	mfc0	t0, CP0_STATUS
 	li	t1, ST0_CU1
 	or	t0, t1
@@ -162,4 +174,4 @@
 	jr	ra
 	 mtc1	t0, $f31
 	.set	reorder
-	END(init_fpu)
+	END(_init_fpu)
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/r4k_switch.S linux-2.4.20-mipscvs-20050106/arch/mips/kernel/r4k_switch.S
--- linux-2.4.20/arch/mips/kernel/r4k_switch.S	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/r4k_switch.S	2002-11-04 13:39:56.000000000 -0600
@@ -25,6 +25,19 @@
 
 #include <asm/asmmacro.h>
 
+#define PF_USEDFPU      0x00100000      /* task used FPU this quantum (SMP) */
+#define ST_OFF (KERNEL_STACK_SIZE - 32 - PT_SIZE + PT_STATUS)
+
+/*
+ * [jsun] FPU context is saved if and only if the process has used FPU in 
+ * the current run (PF_USEDFPU).  In any case, the CU1 bit for user space 
+ * STATUS register should be 0, so that a process *always* starts its 
+ * userland with FPU disabled after each context switch.
+ *
+ * FPU will be enabled as soon as the process accesses FPU again, through 
+ * do_cpu() trap.
+ */
+
 /*
  * task_struct *r4xx0_resume(task_struct *prev, task_struct *next)
  */
@@ -39,6 +52,32 @@
 	CPU_SAVE_NONSCRATCH(a0)
 	sw	ra, THREAD_REG31(a0)
 
+	/* 
+	 * check if we need to save FPU registers
+	 */
+	lw	t0, TASK_FLAGS(a0)
+	li	t1, PF_USEDFPU
+	and	t2, t0, t1
+	beqz	t2, 1f
+	nor	t1, zero, t1
+
+	/*
+	 * clear PF_USEDFPU bit in task flags
+	 */
+	and	t0, t0, t1
+	sw	t0, TASK_FLAGS(a0)
+
+	/*
+	 * clear saved user stack CU1 bit
+	 */
+	lw	t0, ST_OFF(a0)
+	li	t1, ~ST0_CU1
+	and	t0, t0, t1
+	sw	t0, ST_OFF(a0)
+
+	FPU_SAVE_DOUBLE(a0, t0)			# clobbers t0
+
+1:
 	/*
 	 * The order of restoring the registers takes care of the race
 	 * updating $28, $29 and kernelsp without disabling ints.
@@ -69,50 +108,20 @@
 	END(resume)
 
 /*
- * Do lazy fpu context switch.  Saves FPU context to the process in a0
- * and loads the new context of the current process.
- */
-
-#define ST_OFF (KERNEL_STACK_SIZE - 32 - PT_SIZE + PT_STATUS)
-
-LEAF(lazy_fpu_switch)
-	mfc0	t0, CP0_STATUS			# enable cp1
-	li	t3, ST0_CU1
-	or	t0, t3
-	mtc0	t0, CP0_STATUS
-	FPU_ENABLE_HAZARD
-
-	beqz	a0, 2f				# Save floating point state
-	 nor	t3, zero, t3
-
-	lw	t1, ST_OFF(a0)			# last thread looses fpu
-	and	t1, t3
-	sw	t1, ST_OFF(a0)
-
-
-	FPU_SAVE_DOUBLE(a0, t1)			# clobbers t1
-2:
-
-	.set	reorder
-	FPU_RESTORE_DOUBLE($28, t0)		# clobbers t0
-	jr	ra
-	END(lazy_fpu_switch)
-
-/*
  * Save a thread's fp context.
  */
-LEAF(save_fp)
+LEAF(_save_fp)
 	FPU_SAVE_DOUBLE(a0, t1)			# clobbers t1
 	jr	ra
-	END(save_fp)
+	END(_save_fp)
 
 /*
  * Restore a thread's fp context.
  */
-LEAF(restore_fp)
+LEAF(_restore_fp)
 	FPU_RESTORE_DOUBLE(a0, t1)		# clobbers t1
 	jr	ra
-	END(restore_fp)
+	END(_restore_fp)
 
 /*
  * Load the FPU with signalling NANS.  This bit pattern we're using has
@@ -124,7 +133,7 @@
 
 #define FPU_DEFAULT  0x00000000
 
-LEAF(init_fpu)
+LEAF(_init_fpu)
 	.set	mips3
 	mfc0	t0, CP0_STATUS
 	li	t1, ST0_CU1
@@ -156,5 +165,5 @@
 	jr	ra
 	 dmtc1	t0, $f30
 	.set	reorder
-	END(init_fpu)
+	END(_init_fpu)
 
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/setup.c
--- linux-2.4.20/arch/mips/kernel/setup.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/setup.c	2003-02-04 06:43:06.000000000 -0600
@@ -7,7 +7,7 @@
  * Copyright (C) 1995  Waldorf Electronics
  * Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001  Ralf Baechle
  * Copyright (C) 1996  Stoned Elipot
- * Copyright (C) 2000, 2001  Maciej W. Rozycki
+ * Copyright (C) 2000, 2001, 2002  Maciej W. Rozycki
  */
 #include <linux/config.h>
 #include <linux/errno.h>
@@ -100,7 +100,7 @@
 
 
 /*
- * isa_slot_offset is the address where E(ISA) busaddress 0 is is mapped
+ * isa_slot_offset is the address where E(ISA) busaddress 0 is mapped
  * for the processor.
  */
 unsigned long isa_slot_offset;
@@ -137,8 +137,8 @@
 	loadmmu();
 
 	/* Disable coprocessors and set FPU for 16/32 FPR register model */
-	clear_cp0_status(ST0_CU1|ST0_CU2|ST0_CU3|ST0_KX|ST0_SX|ST0_FR);
-	set_cp0_status(ST0_CU0);
+	clear_c0_status(ST0_CU1|ST0_CU2|ST0_CU3|ST0_KX|ST0_SX|ST0_FR);
+	set_c0_status(ST0_CU0);
 
 	start_kernel();
 }
@@ -236,210 +236,6 @@
 	}
 }
 
-void __init setup_arch(char **cmdline_p)
-{
-	void atlas_setup(void);
-	void baget_setup(void);
-	void cobalt_setup(void);
-	void ddb_setup(void);
-	void decstation_setup(void);
-	void deskstation_setup(void);
-	void jazz_setup(void);
-	void sni_rm200_pci_setup(void);
-	void ip22_setup(void);
-        void ev96100_setup(void);
-	void malta_setup(void);
-	void sead_setup(void);
-	void ikos_setup(void);
-	void momenco_ocelot_setup(void);
-	void momenco_ocelot_g_setup(void);
-	void nino_setup(void);
-	void nec_osprey_setup(void);
-	void nec_eagle_setup(void);
-	void zao_capcella_setup(void);
-	void jmr3927_setup(void);
- 	void it8172_setup(void);
-	void swarm_setup(void);
-	void hp_setup(void);
-
-	unsigned long bootmap_size;
-	unsigned long start_pfn, max_pfn, max_low_pfn, first_usable_pfn;
-#ifdef CONFIG_BLK_DEV_INITRD
-	unsigned long tmp;
-	unsigned long* initrd_header;
-#endif
-
-	int i;
-
-#ifdef CONFIG_BLK_DEV_FD
-	fd_ops = &no_fd_ops;
-#endif
-
-#ifdef CONFIG_BLK_DEV_IDE
-	ide_ops = &no_ide_ops;
-#endif
-
-#ifdef CONFIG_PC_KEYB
-	kbd_ops = &no_kbd_ops;
-#endif
-
-	rtc_ops = &no_rtc_ops;
-
-	switch(mips_machgroup)
-	{
-#ifdef CONFIG_BAGET_MIPS
-	case MACH_GROUP_BAGET:
-		baget_setup();
-		break;
-#endif
-#ifdef CONFIG_MIPS_COBALT
-        case MACH_GROUP_COBALT:
-                cobalt_setup();
-                break;
-#endif
-#ifdef CONFIG_DECSTATION
-	case MACH_GROUP_DEC:
-		decstation_setup();
-		break;
-#endif
-#ifdef CONFIG_MIPS_ATLAS
-	case MACH_GROUP_UNKNOWN:
-		atlas_setup();
-		break;
-#endif
-#ifdef CONFIG_MIPS_JAZZ
-	case MACH_GROUP_JAZZ:
-		jazz_setup();
-		break;
-#endif
-#ifdef CONFIG_MIPS_MALTA
-	case MACH_GROUP_UNKNOWN:
-		malta_setup();
-		break;
-#endif
-#ifdef CONFIG_MOMENCO_OCELOT
-	case MACH_GROUP_MOMENCO:
-		momenco_ocelot_setup();
-		break;
-#endif
-#ifdef CONFIG_MOMENCO_OCELOT_G
-	case MACH_GROUP_MOMENCO:
-		momenco_ocelot_g_setup();
-		break;
-#endif
-#ifdef CONFIG_MIPS_SEAD
-	case MACH_GROUP_UNKNOWN:
-		sead_setup();
-		break;
-#endif
-#ifdef CONFIG_SGI_IP22
-	/* As of now this is only IP22.  */
-	case MACH_GROUP_SGI:
-		ip22_setup();
-		break;
-#endif
-#ifdef CONFIG_SNI_RM200_PCI
-	case MACH_GROUP_SNI_RM:
-		sni_rm200_pci_setup();
-		break;
-#endif
-#ifdef CONFIG_DDB5074
-	case MACH_GROUP_NEC_DDB:
-		ddb_setup();
-		break;
-#endif
-#ifdef CONFIG_DDB5476
-       case MACH_GROUP_NEC_DDB:
-               ddb_setup();
-               break;
-#endif
-#ifdef CONFIG_DDB5477
-       case MACH_GROUP_NEC_DDB:
-               ddb_setup();
-               break;
-#endif
-#ifdef CONFIG_CPU_VR41XX
-	case MACH_GROUP_NEC_VR41XX:
-		switch (mips_machtype) {
-#ifdef CONFIG_NEC_OSPREY
-		case MACH_NEC_OSPREY:
-			nec_osprey_setup();
-			break;
-#endif
-#ifdef CONFIG_NEC_EAGLE
-		case MACH_NEC_EAGLE:
-			nec_eagle_setup();
-			break;
-#endif
-#ifdef CONFIG_ZAO_CAPCELLA
-		case MACH_ZAO_CAPCELLA:
-			zao_capcella_setup();
-			break;
-#endif
-		}
-		break;
-#endif
-#ifdef CONFIG_MIPS_EV96100
-	case MACH_GROUP_GALILEO:
-		ev96100_setup();
-		break;
-#endif
-#ifdef CONFIG_MIPS_EV64120
-	case MACH_GROUP_GALILEO:
-		ev64120_setup();
-		break;
-#endif
-#if defined(CONFIG_MIPS_IVR) || defined(CONFIG_MIPS_ITE8172)
-	case  MACH_GROUP_ITE:
-	case  MACH_GROUP_GLOBESPAN:
-		it8172_setup();
-		break;
-#endif
-#ifdef CONFIG_NINO
-	case MACH_GROUP_PHILIPS:
-		nino_setup();
-		break;
-#endif
-#ifdef CONFIG_MIPS_PB1000
-	case MACH_GROUP_ALCHEMY:
-		au1000_setup();
-		break;
-#endif
-#ifdef CONFIG_MIPS_PB1100
-	case MACH_GROUP_ALCHEMY:
-		au1100_setup();
-		break;
-#endif
-#ifdef CONFIG_MIPS_PB1500
-	case MACH_GROUP_ALCHEMY:
-		au1500_setup();
-		break;
-#endif
-#ifdef CONFIG_TOSHIBA_JMR3927
-	case MACH_GROUP_TOSHIBA:
-		jmr3927_setup();
-		break;
-#endif
-#ifdef CONFIG_SIBYTE_SWARM
-	case MACH_GROUP_SIBYTE:
-		swarm_setup();
-		break;
-#endif
-#ifdef CONFIG_HP_LASERJET
-        case MACH_GROUP_HP_LJ:
-                hp_setup();
-                break;
-#endif
-	default:
-		panic("Unsupported architecture");
-	}
-
-	strncpy(command_line, arcs_cmdline, sizeof command_line);
-	command_line[sizeof command_line - 1] = 0;
-	strcpy(saved_command_line, command_line);
-	*cmdline_p = command_line;
-
-	parse_mem_cmdline();
 
 #define PFN_UP(x)	(((x) + PAGE_SIZE - 1) >> PAGE_SHIFT)
 #define PFN_DOWN(x)	((x) >> PAGE_SHIFT)
@@ -448,6 +244,16 @@
 #define MAXMEM		HIGHMEM_START
 #define MAXMEM_PFN	PFN_DOWN(MAXMEM)
 
+static inline void bootmem_init(void)
+{
+#ifdef CONFIG_BLK_DEV_INITRD
+	unsigned long tmp;
+	unsigned long *initrd_header;
+#endif
+	unsigned long bootmap_size;
+	unsigned long start_pfn, max_pfn, max_low_pfn, first_usable_pfn;
+	int i;
+
 #ifdef CONFIG_BLK_DEV_INITRD
 	tmp = (((unsigned long)&_end + PAGE_SIZE-1) & PAGE_MASK) - 8;
 	if (tmp < (unsigned long)&_end)
@@ -592,15 +398,18 @@
 		       initrd_size);
 		if (PHYSADDR(initrd_end) > PFN_PHYS(max_low_pfn)) {
 			printk("initrd extends beyond end of memory "
-			       "(0x%lx > 0x%p)\ndisabling initrd\n",
+			       "(0x%08lx > 0x%08lx)\ndisabling initrd\n",
 			       PHYSADDR(initrd_end),
 			       PFN_PHYS(max_low_pfn));
 			initrd_start = initrd_end = 0;
 		}
 	}
 #endif /* CONFIG_BLK_DEV_INITRD  */
+}
 
-	paging_init();
+static inline void resource_init(void)
+{
+	int i;
 
 	code_resource.start = virt_to_bus(&_ftext);
 	code_resource.end = virt_to_bus(&_etext) - 1;
@@ -612,7 +421,14 @@
 	 */
 	for (i = 0; i < boot_mem_map.nr_map; i++) {
 		struct resource *res;
-		unsigned long addr_pfn, end_pfn;
+		unsigned long start, end;
+
+		start = boot_mem_map.map[i].addr;
+		end = boot_mem_map.map[i].addr + boot_mem_map.map[i].size - 1;
+		if (start >= MAXMEM)
+			continue;
+		if (end >= MAXMEM)
+			end = MAXMEM - 1;
 
 		res = alloc_bootmem(sizeof(struct resource));
 		switch (boot_mem_map.map[i].type) {
@@ -624,16 +440,10 @@
 		default:
 			res->name = "reserved";
 		}
-		addr_pfn = PFN_UP(boot_mem_map.map[i].addr);
-		end_pfn = PFN_UP(boot_mem_map.map[i].addr+boot_mem_map.map[i].size);
-		if (addr_pfn > max_low_pfn)
-			continue;
-		res->start = boot_mem_map.map[i].addr;
-		if (end_pfn < max_low_pfn) {
-			res->end = res->start + boot_mem_map.map[i].size - 1;
-		} else {
-			res->end = max_low_pfn - 1;
-		}
+
+		res->start = start;
+		res->end = end;
+
 		res->flags = IORESOURCE_MEM | IORESOURCE_BUSY;
 		request_resource(&iomem_resource, res);
 
@@ -647,6 +457,238 @@
 	}
 }
 
+#undef PFN_UP
+#undef PFN_DOWN
+#undef PFN_PHYS
+
+#undef MAXMEM
+#undef MAXMEM_PFN
+
+
+void __init setup_arch(char **cmdline_p)
+{
+	void atlas_setup(void);
+	void baget_setup(void);
+	void cobalt_setup(void);
+	void lasat_setup(void);
+	void ddb_setup(void);
+	void decstation_setup(void);
+	void deskstation_setup(void);
+	void jazz_setup(void);
+	void sni_rm200_pci_setup(void);
+	void ip22_setup(void);
+	void ev96100_setup(void);
+	void malta_setup(void);
+	void sead_setup(void);
+	void ikos_setup(void);
+	void momenco_ocelot_setup(void);
+	void momenco_ocelot_g_setup(void);
+	void nino_setup(void);
+	void nec_osprey_setup(void);
+	void nec_eagle_setup(void);
+	void zao_capcella_setup(void);
+	void victor_mpc30x_setup(void);
+	void ibm_workpad_setup(void);
+	void casio_e55_setup(void);
+	void tanbac_tb0226_setup(void);
+	void jmr3927_setup(void);
+ 	void it8172_setup(void);
+	void swarm_setup(void);
+	void hp_setup(void);
+	void au1x00_setup(void);
+
+#ifdef CONFIG_BLK_DEV_FD
+	fd_ops = &no_fd_ops;
+#endif
+
+#ifdef CONFIG_BLK_DEV_IDE
+	ide_ops = &no_ide_ops;
+#endif
+
+#ifdef CONFIG_PC_KEYB
+	kbd_ops = &no_kbd_ops;
+#endif
+
+	rtc_ops = &no_rtc_ops;
+
+	switch(mips_machgroup)
+	{
+#ifdef CONFIG_BAGET_MIPS
+	case MACH_GROUP_BAGET:
+		baget_setup();
+		break;
+#endif
+#ifdef CONFIG_MIPS_COBALT
+        case MACH_GROUP_COBALT:
+                cobalt_setup();
+                break;
+#endif
+#ifdef CONFIG_DECSTATION
+	case MACH_GROUP_DEC:
+		decstation_setup();
+		break;
+#endif
+#ifdef CONFIG_MIPS_ATLAS
+	case MACH_GROUP_UNKNOWN:
+		atlas_setup();
+		break;
+#endif
+#ifdef CONFIG_MIPS_JAZZ
+	case MACH_GROUP_JAZZ:
+		jazz_setup();
+		break;
+#endif
+#ifdef CONFIG_MIPS_MALTA
+	case MACH_GROUP_UNKNOWN:
+		malta_setup();
+		break;
+#endif
+#ifdef CONFIG_MOMENCO_OCELOT
+	case MACH_GROUP_MOMENCO:
+		momenco_ocelot_setup();
+		break;
+#endif
+#ifdef CONFIG_MOMENCO_OCELOT_G
+	case MACH_GROUP_MOMENCO:
+		momenco_ocelot_g_setup();
+		break;
+#endif
+#ifdef CONFIG_MIPS_SEAD
+	case MACH_GROUP_UNKNOWN:
+		sead_setup();
+		break;
+#endif
+#ifdef CONFIG_SGI_IP22
+	/* As of now this is only IP22.  */
+	case MACH_GROUP_SGI:
+		ip22_setup();
+		break;
+#endif
+#ifdef CONFIG_SNI_RM200_PCI
+	case MACH_GROUP_SNI_RM:
+		sni_rm200_pci_setup();
+		break;
+#endif
+#ifdef CONFIG_DDB5074
+	case MACH_GROUP_NEC_DDB:
+		ddb_setup();
+		break;
+#endif
+#ifdef CONFIG_DDB5476
+       case MACH_GROUP_NEC_DDB:
+               ddb_setup();
+               break;
+#endif
+#ifdef CONFIG_DDB5477
+       case MACH_GROUP_NEC_DDB:
+               ddb_setup();
+               break;
+#endif
+#ifdef CONFIG_CPU_VR41XX
+	case MACH_GROUP_NEC_VR41XX:
+		switch (mips_machtype) {
+#ifdef CONFIG_NEC_OSPREY
+		case MACH_NEC_OSPREY:
+			nec_osprey_setup();
+			break;
+#endif
+#ifdef CONFIG_NEC_EAGLE
+		case MACH_NEC_EAGLE:
+			nec_eagle_setup();
+			break;
+#endif
+#ifdef CONFIG_ZAO_CAPCELLA
+		case MACH_ZAO_CAPCELLA:
+			zao_capcella_setup();
+			break;
+#endif
+#ifdef CONFIG_VICTOR_MPC30X
+		case MACH_VICTOR_MPC30X:
+			victor_mpc30x_setup();
+			break;
+#endif
+#ifdef CONFIG_IBM_WORKPAD
+		case MACH_IBM_WORKPAD:
+			ibm_workpad_setup();
+			break;
+#endif
+#ifdef CONFIG_CASIO_E55
+		case MACH_CASIO_E55:
+			casio_e55_setup();
+			break;
+#endif
+#ifdef CONFIG_TANBAC_TB0226
+		case MACH_TANBAC_TB0226:
+			tanbac_tb0226_setup();
+			break;
+#endif
+		}
+		break;
+#endif
+#ifdef CONFIG_MIPS_EV96100
+	case MACH_GROUP_GALILEO:
+		ev96100_setup();
+		break;
+#endif
+#ifdef CONFIG_MIPS_EV64120
+	case MACH_GROUP_GALILEO:
+		ev64120_setup();
+		break;
+#endif
+#if defined(CONFIG_MIPS_IVR) || defined(CONFIG_MIPS_ITE8172)
+	case  MACH_GROUP_ITE:
+	case  MACH_GROUP_GLOBESPAN:
+		it8172_setup();
+		break;
+#endif
+#ifdef CONFIG_NINO
+	case MACH_GROUP_PHILIPS:
+		nino_setup();
+		break;
+#endif
+#ifdef CONFIG_LASAT
+        case MACH_GROUP_LASAT:
+                lasat_setup();
+                break;
+#endif
+#ifdef CONFIG_CPU_AU1X00
+	case MACH_GROUP_ALCHEMY:
+		au1x00_setup();
+		break;
+#endif
+#ifdef CONFIG_TOSHIBA_JMR3927
+	case MACH_GROUP_TOSHIBA:
+		jmr3927_setup();
+		break;
+#endif
+#ifdef CONFIG_SIBYTE_BOARD
+	case MACH_GROUP_SIBYTE:
+		swarm_setup();
+		break;
+#endif
+#ifdef CONFIG_HP_LASERJET
+        case MACH_GROUP_HP_LJ:
+                hp_setup();
+                break;
+#endif
+	default:
+		panic("Unsupported architecture");
+	}
+
+	strncpy(command_line, arcs_cmdline, sizeof command_line);
+	command_line[sizeof command_line - 1] = 0;
+	strcpy(saved_command_line, command_line);
+	*cmdline_p = command_line;
+
+	parse_mem_cmdline();
+
+	bootmem_init();
+
+	paging_init();
+
+	resource_init();
+}
+
 static int __init fpu_disable(char *s)
 {
 	mips_cpu.options &= ~MIPS_CPU_FPU;
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/signal.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/signal.c
--- linux-2.4.20/arch/mips/kernel/signal.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/signal.c	2002-11-04 13:39:56.000000000 -0600
@@ -22,6 +22,7 @@
 #include <asm/asm.h>
 #include <asm/bitops.h>
 #include <asm/cpu.h>
+#include <asm/fpu.h>
 #include <asm/offset.h>
 #include <asm/pgalloc.h>
 #include <asm/ptrace.h>
@@ -34,9 +35,6 @@
 
 extern asmlinkage int do_signal(sigset_t *oldset, struct pt_regs *regs);
 
-extern asmlinkage int (*save_fp_context)(struct sigcontext *sc);
-extern asmlinkage int (*restore_fp_context)(struct sigcontext *sc);
-
 extern asmlinkage void syscall_trace(void);
 
 int copy_siginfo_to_user(siginfo_t *to, siginfo_t *from)
@@ -185,59 +183,8 @@
 	return do_sigaltstack(uss, uoss, usp);
 }
 
-static inline int restore_thread_fp_context(struct sigcontext *sc)
-{
-	u64 *pfreg = &current->thread.fpu.soft.regs[0];
-	int err = 0;
-
-	/*
-	 * Copy all 32 64-bit values, for two reasons.  First, the R3000 and
-	 * R4000/MIPS32 kernels use the thread FP register storage differently,
-	 * such that a full copy is essentially necessary to support both.
-	 */
-
-#define restore_fpr(i) 						\
-	do { err |= __get_user(pfreg[i], &sc->sc_fpregs[i]); } while(0)
-
-	restore_fpr( 0); restore_fpr( 1); restore_fpr( 2); restore_fpr( 3);
-	restore_fpr( 4); restore_fpr( 5); restore_fpr( 6); restore_fpr( 7);
-	restore_fpr( 8); restore_fpr( 9); restore_fpr(10); restore_fpr(11);
-	restore_fpr(12); restore_fpr(13); restore_fpr(14); restore_fpr(15);
-	restore_fpr(16); restore_fpr(17); restore_fpr(18); restore_fpr(19);
-	restore_fpr(20); restore_fpr(21); restore_fpr(22); restore_fpr(23);
-	restore_fpr(24); restore_fpr(25); restore_fpr(26); restore_fpr(27);
-	restore_fpr(28); restore_fpr(29); restore_fpr(30); restore_fpr(31);
-
-	err |= __get_user(current->thread.fpu.soft.sr, &sc->sc_fpc_csr);
-
-	return err;
-}
-
-static inline int save_thread_fp_context(struct sigcontext *sc)
-{
-	u64 *pfreg = &current->thread.fpu.soft.regs[0];
-	int err = 0;
-
-#define save_fpr(i) 							\
-	do { err |= __put_user(pfreg[i], &sc->sc_fpregs[i]); } while(0)
-
-	save_fpr( 0); save_fpr( 1); save_fpr( 2); save_fpr( 3);
-	save_fpr( 4); save_fpr( 5); save_fpr( 6); save_fpr( 7);
-	save_fpr( 8); save_fpr( 9); save_fpr(10); save_fpr(11);
-	save_fpr(12); save_fpr(13); save_fpr(14); save_fpr(15);
-	save_fpr(16); save_fpr(17); save_fpr(18); save_fpr(19);
-	save_fpr(20); save_fpr(21); save_fpr(22); save_fpr(23);
-	save_fpr(24); save_fpr(25); save_fpr(26); save_fpr(27);
-	save_fpr(28); save_fpr(29); save_fpr(30); save_fpr(31);
-
-	err |= __put_user(current->thread.fpu.soft.sr, &sc->sc_fpc_csr);
-
-	return err;
-}
-
 static int restore_sigcontext(struct pt_regs *regs, struct sigcontext *sc)
 {
-	int owned_fp;
 	int err = 0;
 	u64 reg;
 
@@ -265,25 +212,17 @@
 	restore_gp_reg(31);
 #undef restore_gp_reg
 
-	err |= __get_user(owned_fp, &sc->sc_ownedfp);
 	err |= __get_user(current->used_math, &sc->sc_used_math);
 
-	if (owned_fp) {
-		err |= restore_fp_context(sc);
-		goto out;
-	}
-
-	if (current == last_task_used_math) {
-		/* Signal handler acquired FPU - give it back */
-		last_task_used_math = NULL;
-		regs->cp0_status &= ~ST0_CU1;
-	}
 	if (current->used_math) {
-		/* Undo possible contamination of thread state */
-		err |= restore_thread_fp_context(sc);
+		/* restore fpu context if we have used it before */
+		own_fpu();
+		err |= restore_fp_context(sc);
+	} else {
+		/* signal handler may have used FPU.  Give it up. */
+		loose_fpu();
 	}
 
-out:
 	return err;
 }
 
@@ -380,7 +319,6 @@
 
 static int inline setup_sigcontext(struct pt_regs *regs, struct sigcontext *sc)
 {
-	int owned_fp;
 	int err = 0;
 	u64 reg;
 
@@ -408,25 +346,20 @@
 	err |= __put_user(regs->cp0_cause, &sc->sc_cause);
 	err |= __put_user(regs->cp0_badvaddr, &sc->sc_badvaddr);
 
-	owned_fp = (current == last_task_used_math);
-	err |= __put_user(owned_fp, &sc->sc_ownedfp);
 	err |= __put_user(current->used_math, &sc->sc_used_math);
 
 	if (!current->used_math)
 		goto out;
 
-	/* There exists FP thread state that may be trashed by signal */
-	if (owned_fp) {
-		/* fp is active.  Save context from FPU */
-		err |= save_fp_context(sc);
-		goto out;
-	}
-
-	/*
-	 * Someone else has FPU.
-	 * Copy Thread context into signal context
+	/* 
+	 * Save FPU state to signal context.  Signal handler will "inherit"
+	 * current FPU state.
 	 */
-	err |= save_thread_fp_context(sc);
+	if (!is_fpu_owner()) {
+		own_fpu();
+		restore_fp(current);
+	}
+	err |= save_fp_context(sc);
 
 out:
 	return err;
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/smp.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/smp.c
--- linux-2.4.20/arch/mips/kernel/smp.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/smp.c	2002-11-28 17:29:36.000000000 -0600
@@ -45,7 +45,6 @@
 atomic_t smp_commenced = ATOMIC_INIT(0);
 struct cpuinfo_mips cpu_data[NR_CPUS];
 
-// static atomic_t cpus_booted = ATOMIC_INIT(0);
 atomic_t cpus_booted = ATOMIC_INIT(0);
 
 int smp_num_cpus = 1;			/* Number that came online.  */
@@ -83,10 +82,6 @@
 
 void prom_smp_finish(void);
 
-static void smp_tune_scheduling(void)
-{
-}
-
 void __init smp_callin(void)
 {
 #if 0
@@ -282,7 +277,7 @@
 		int i;
 		for (i = 0; i < smp_num_cpus; i++)
 			if (smp_processor_id() != i)
-				CPU_CONTEXT(i, mm) = 0;
+				cpu_context(i, mm) = 0;
 	}
 	local_flush_tlb_mm(mm);
 }
@@ -314,7 +309,7 @@
 		int i;
 		for (i = 0; i < smp_num_cpus; i++)
 			if (smp_processor_id() != i)
-				CPU_CONTEXT(i, mm) = 0;
+				cpu_context(i, mm) = 0;
 	}
 	local_flush_tlb_range(mm, start, end);
 }
@@ -338,7 +333,7 @@
 		int i;
 		for (i = 0; i < smp_num_cpus; i++)
 			if (smp_processor_id() != i)
-				CPU_CONTEXT(i, vma->vm_mm) = 0;
+				cpu_context(i, vma->vm_mm) = 0;
 	}
 	local_flush_tlb_page(vma, page);
 }
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/syscalls.h linux-2.4.20-mipscvs-20050106/arch/mips/kernel/syscalls.h
--- linux-2.4.20/arch/mips/kernel/syscalls.h	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/syscalls.h	2003-01-22 20:12:59.000000000 -0600
@@ -32,7 +32,7 @@
 SYS(sys_chmod, 2)				/* 4015 */
 SYS(sys_lchown, 3)
 SYS(sys_ni_syscall, 0)
-SYS(sys_stat, 2)
+SYS(sys_ni_syscall, 0)				/* was sys_stat */
 SYS(sys_lseek, 3)
 SYS(sys_getpid, 0)				/* 4020 */
 SYS(sys_mount, 5)
@@ -42,7 +42,7 @@
 SYS(sys_stime, 1)				/* 4025 */
 SYS(sys_ptrace, 4)
 SYS(sys_alarm, 1)
-SYS(sys_fstat, 2)
+SYS(sys_ni_syscall, 0)				/* was sys_fstat */
 SYS(sys_pause, 0)
 SYS(sys_utime, 2)				/* 4030 */
 SYS(sys_ni_syscall, 0)
@@ -96,9 +96,9 @@
 SYS(sys_settimeofday, 2)
 SYS(sys_getgroups, 2)				/* 4080 */
 SYS(sys_setgroups, 2)
-SYS(sys_ni_syscall, 0) /* old_select */
+SYS(sys_ni_syscall, 0)				/* old_select */
 SYS(sys_symlink, 2)
-SYS(sys_lstat, 2)
+SYS(sys_ni_syscall, 0)				/* was sys_lstat */
 SYS(sys_readlink, 3)				/* 4085 */
 SYS(sys_uselib, 1)
 SYS(sys_swapon, 2)
@@ -115,7 +115,7 @@
 SYS(sys_ni_syscall, 0)
 SYS(sys_statfs, 2)
 SYS(sys_fstatfs, 2)				/* 4100 */
-SYS(sys_ioperm, 3)
+SYS(sys_ni_syscall, 3)				/* was ioperm(2) */
 SYS(sys_socketcall, 2)
 SYS(sys_syslog, 3)
 SYS(sys_setitimer, 3)
@@ -124,10 +124,10 @@
 SYS(sys_newlstat, 2)
 SYS(sys_newfstat, 2)
 SYS(sys_uname, 1)
-SYS(sys_iopl, 0)	/* Well, actually 17 args ... */				/* 4110 */
+SYS(sys_ni_syscall, 0)				/* 4110 was iopl(2) */
 SYS(sys_vhangup, 0)
-SYS(sys_ni_syscall, 0)	/* was sys_idle() */
-SYS(sys_vm86, 1)
+SYS(sys_ni_syscall, 0)				/* was sys_idle() */
+SYS(sys_ni_syscall, 0)				/* was vm86(2) */
 SYS(sys_wait4, 4)
 SYS(sys_swapoff, 1)				/* 4115 */
 SYS(sys_sysinfo, 1)
@@ -225,8 +225,8 @@
 SYS(sys_ni_syscall, 0)
 SYS(sys_ni_syscall, 0)
 SYS(sys_mmap2, 6)				/* 4210 */
-SYS(sys_truncate64, 2)
-SYS(sys_ftruncate64, 2)
+SYS(sys_truncate64, 4)
+SYS(sys_ftruncate64, 4)
 SYS(sys_stat64, 2)
 SYS(sys_lstat64, 2)
 SYS(sys_fstat64, 2)				/* 4215 */
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/sysirix.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/sysirix.c
--- linux-2.4.20/arch/mips/kernel/sysirix.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/sysirix.c	2002-10-31 13:36:28.000000000 -0600
@@ -624,8 +624,10 @@
 	write_lock_irq(&xtime_lock);
 	xtime.tv_sec = value;
 	xtime.tv_usec = 0;
-	time_maxerror = MAXPHASE;
-	time_esterror = MAXPHASE;
+	time_adjust = 0;			/* stop active adjtime() */
+	time_status |= STA_UNSYNC;
+	time_maxerror = NTP_PHASE_LIMIT;
+	time_esterror = NTP_PHASE_LIMIT;
 	write_unlock_irq(&xtime_lock);
 
 	return 0;
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/time.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/time.c
--- linux-2.4.20/arch/mips/kernel/time.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/time.c	2002-12-01 18:24:48.000000000 -0600
@@ -21,6 +21,7 @@
 #include <linux/kernel_stat.h>
 #include <linux/spinlock.h>
 #include <linux/interrupt.h>
+#include <linux/module.h>
 
 #include <asm/bootinfo.h>
 #include <asm/cpu.h>
@@ -38,6 +39,8 @@
 extern rwlock_t xtime_lock;
 extern volatile unsigned long wall_jiffies;
 
+spinlock_t rtc_lock = SPIN_LOCK_UNLOCKED;
+
 /*
  * whether we emulate local_timer_interrupts for SMP machines.
  */
@@ -154,7 +157,7 @@
 	unsigned long res;
 
 	/* Get last timer tick in absolute kernel time */
-	count = read_32bit_cp0_register(CP0_COUNT);
+	count = read_c0_count();
 
 	/* .. relative to previous jiffy (32 bits is enough) */
 	count -= timerlo;
@@ -210,7 +213,7 @@
 	}
 
 	/* Get last timer tick in absolute kernel time */
-	count = read_32bit_cp0_register(CP0_COUNT);
+	count = read_c0_count();
 
 	/* .. relative to previous jiffy (32 bits is enough) */
 	count -= timerlo;
@@ -265,7 +268,7 @@
 	}
 
 	/* Get last timer tick in absolute kernel time */
-	count = read_32bit_cp0_register(CP0_COUNT);
+	count = read_c0_count();
 
 	/* .. relative to previous jiffy (32 bits is enough) */
 	count -= timerlo;
@@ -336,7 +339,7 @@
 		 * The cycle counter is only 32 bit which is good for about
 		 * a minute at current count rates of upto 150MHz or so.
 		 */
-		count = read_32bit_cp0_register(CP0_COUNT);
+		count = read_c0_count();
 		timerhi += (count < timerlo);   /* Wrap around */
 		timerlo = count;
 
@@ -345,7 +348,7 @@
 		 * is using another timer interrupt source.
 		 * Note that writing to COMPARE register clears the interrupt
 		 */
-		write_32bit_cp0_register (CP0_COMPARE,
+		write_c0_compare(
 					  count + cycles_per_jiffy);
 
 	}
@@ -515,8 +518,8 @@
 		 * For those using cpu counter as timer,  this sets up the
 		 * first interrupt
 		 */
-		count = read_32bit_cp0_register(CP0_COUNT);
-		write_32bit_cp0_register (CP0_COMPARE,
+		count = read_c0_count();
+		write_c0_compare(
 					  count + cycles_per_jiffy);
 	}
 
@@ -580,3 +583,5 @@
 	 */
 	tm->tm_wday = (gday + 4) % 7; /* 1970/1/1 was Thursday */
 }
+
+EXPORT_SYMBOL(rtc_lock);
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/traps.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/traps.c
--- linux-2.4.20/arch/mips/kernel/traps.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/traps.c	2003-02-10 16:50:48.000000000 -0600
@@ -24,6 +24,7 @@
 #include <asm/bootinfo.h>
 #include <asm/branch.h>
 #include <asm/cpu.h>
+#include <asm/fpu.h>
 #include <asm/cachectl.h>
 #include <asm/inst.h>
 #include <asm/jazz.h>
@@ -32,21 +33,13 @@
 #include <asm/io.h>
 #include <asm/siginfo.h>
 #include <asm/watch.h>
+#include <asm/tlbdebug.h>
 #include <asm/types.h>
 #include <asm/system.h>
 #include <asm/traps.h>
 #include <asm/uaccess.h>
 #include <asm/mmu_context.h>
 
-/*
- * Machine specific interrupt handlers
- */
-extern asmlinkage void acer_pica_61_handle_int(void);
-extern asmlinkage void decstation_handle_int(void);
-extern asmlinkage void deskstation_rpc44_handle_int(void);
-extern asmlinkage void deskstation_tyne_handle_int(void);
-extern asmlinkage void mips_magnum_4000_handle_int(void);
-
 extern asmlinkage void handle_mod(void);
 extern asmlinkage void handle_tlbl(void);
 extern asmlinkage void handle_tlbs(void);
@@ -61,6 +54,7 @@
 extern asmlinkage void handle_ov(void);
 extern asmlinkage void handle_tr(void);
 extern asmlinkage void handle_fpe(void);
+extern asmlinkage void handle_mdmx(void);
 extern asmlinkage void handle_watch(void);
 extern asmlinkage void handle_mcheck(void);
 extern asmlinkage void handle_reserved(void);
@@ -103,7 +97,7 @@
 
 static struct task_struct *ll_task = NULL;
 
-static inline void simulate_ll(struct pt_regs *regp, unsigned int opcode)
+static inline void simulate_ll(struct pt_regs *regs, unsigned int opcode)
 {
 	unsigned long value, *vaddr;
 	long offset;
@@ -119,32 +113,37 @@
 	offset <<= 16;
 	offset >>= 16;
 
-	vaddr = (unsigned long *)((long)(regp->regs[(opcode & BASE) >> 21]) + offset);
+	vaddr = (unsigned long *)((long)(regs->regs[(opcode & BASE) >> 21]) + offset);
 
 #ifdef CONFIG_PROC_FS
 	ll_ops++;
 #endif
 
-	if ((unsigned long)vaddr & 3)
+	if ((unsigned long)vaddr & 3) {
 		signal = SIGBUS;
-	else if (get_user(value, vaddr))
+		goto sig;
+	}
+	if (get_user(value, vaddr)) {
 		signal = SIGSEGV;
-	else {
-		if (ll_task == NULL || ll_task == current) {
-			ll_bit = 1;
-		} else {
-			ll_bit = 0;
-		}
-		ll_task = current;
-		regp->regs[(opcode & RT) >> 16] = value;
+		goto sig;
 	}
-	if (compute_return_epc(regp))
-		return;
-	if (signal)
-		send_sig(signal, current, 1);
+
+	if (ll_task == NULL || ll_task == current) {
+		ll_bit = 1;
+	} else {
+		ll_bit = 0;
+	}
+	ll_task = current;
+	regs->regs[(opcode & RT) >> 16] = value;
+
+	compute_return_epc(regs);
+	return;
+
+sig:
+	send_sig(signal, current, 1);
 }
 
-static inline void simulate_sc(struct pt_regs *regp, unsigned int opcode)
+static inline void simulate_sc(struct pt_regs *regs, unsigned int opcode)
 {
 	unsigned long *vaddr, reg;
 	long offset;
@@ -160,25 +159,32 @@
 	offset <<= 16;
 	offset >>= 16;
 
-	vaddr = (unsigned long *)((long)(regp->regs[(opcode & BASE) >> 21]) + offset);
+	vaddr = (unsigned long *)((long)(regs->regs[(opcode & BASE) >> 21]) + offset);
 	reg = (opcode & RT) >> 16;
 
 #ifdef CONFIG_PROC_FS
 	sc_ops++;
 #endif
 
-	if ((unsigned long)vaddr & 3)
+	if ((unsigned long)vaddr & 3) {
 		signal = SIGBUS;
-	else if (ll_bit == 0 || ll_task != current)
-		regp->regs[reg] = 0;
-	else if (put_user(regp->regs[reg], vaddr))
+		goto sig;
+	}
+	if (ll_bit == 0 || ll_task != current) {
+		regs->regs[reg] = 0;
+		goto sig;
+	}
+
+	if (put_user(regs->regs[reg], vaddr))
 		signal = SIGSEGV;
 	else
-		regp->regs[reg] = 1;
-	if (compute_return_epc(regp))
-		return;
-	if (signal)
-		send_sig(signal, current, 1);
+		regs->regs[reg] = 1;
+
+	compute_return_epc(regs);
+	return;
+
+sig:
+	send_sig(signal, current, 1);
 }
 
 /*
@@ -320,7 +326,7 @@
 	}
 }
 
-void show_regs(struct pt_regs * regs)
+void show_regs(struct pt_regs *regs)
 {
 	/*
 	 * Saved main processor registers
@@ -496,9 +502,6 @@
 {
 	siginfo_t info;
 
-	if (compute_return_epc(regs))
-		return;
-
 	info.si_code = FPE_INTOVF;
 	info.si_signo = SIGFPE;
 	info.si_errno = 0;
@@ -541,28 +544,19 @@
 
 		/* If something went wrong, signal */
 		if (sig)
-		{
-			/*
-			 * Return EPC is not calculated in the FPU emulator,
-			 * if a signal is being send. So we calculate it here.
-			 */
-			compute_return_epc(regs);
 			force_sig(sig, current);
-		}
 
 		return;
 	}
 
-	if (compute_return_epc(regs))
-		return;
 	force_sig(SIGFPE, current);
 }
 
 static inline int get_insn_opcode(struct pt_regs *regs, unsigned int *opcode)
 {
-	unsigned long *epc;
+	unsigned int *epc;
 
-	epc = (unsigned long *) regs->cp0_epc +
+	epc = (unsigned int *) regs->cp0_epc +
 	      ((regs->cp0_cause & CAUSEF_BD) != 0);
 	if (!get_user(*opcode, epc))
 		return 0;
@@ -611,8 +605,8 @@
 
 asmlinkage void do_tr(struct pt_regs *regs)
 {
-	siginfo_t info;
 	unsigned int opcode, tcode = 0;
+	siginfo_t info;
 
 	if (get_insn_opcode(regs, &opcode))
 		return;
@@ -677,57 +671,33 @@
 	}
 #endif /* CONFIG_CPU_HAS_LLSC */
 
-	if (compute_return_epc(regs))
-		return;
 	force_sig(SIGILL, current);
 }
 
 asmlinkage void do_cpu(struct pt_regs *regs)
 {
 	unsigned int cpid;
-	void fpu_emulator_init_fpu(void);
-	int sig;
 
 	cpid = (regs->cp0_cause >> CAUSEB_CE) & 3;
 	if (cpid != 1)
 		goto bad_cid;
 
-	if (!(mips_cpu.options & MIPS_CPU_FPU))
-		goto fp_emul;
-
-	regs->cp0_status |= ST0_CU1;
-	if (last_task_used_math == current)
-		return;
+	die_if_kernel("do_cpu invoked from kernel context!", regs);
 
+	own_fpu();
 	if (current->used_math) {		/* Using the FPU again.  */
-		lazy_fpu_switch(last_task_used_math);
+		restore_fp(current);
 	} else {				/* First time FPU user.  */
-		if (last_task_used_math != NULL)
-			save_fp(last_task_used_math);
 		init_fpu();
 		current->used_math = 1;
 	}
-	last_task_used_math = current;
-
-	return;
 
-fp_emul:
-	if (last_task_used_math != current) {
-		if (!current->used_math) {
-			fpu_emulator_init_fpu();
-			current->used_math = 1;
-		}
-	}
-	sig = fpu_emulator_cop1Handler(0, regs, &current->thread.fpu.soft);
-	last_task_used_math = current;
-	if (sig) {
-		/*
-		 * Return EPC is not calculated in the FPU emulator, if
-		 * a signal is being send. So we calculate it here.
-		 */
-		compute_return_epc(regs);
-		force_sig(sig, current);
+	if (!(mips_cpu.options & MIPS_CPU_FPU)) {
+		int sig = fpu_emulator_cop1Handler(0, regs, &current->thread.fpu.soft);
+		if (sig)
+			force_sig(sig, current);
 	}
+
 	return;
 
 bad_cid:
@@ -739,14 +709,16 @@
 		return;
 	}
 #endif
-	compute_return_epc(regs);
 	force_sig(SIGILL, current);
 }
 
-asmlinkage void do_watch(struct pt_regs *regs)
+asmlinkage void do_mdmx(struct pt_regs *regs)
 {
-	extern void dump_tlb_all(void);
+	force_sig(SIGILL, current);
+}
 
+asmlinkage void do_watch(struct pt_regs *regs)
+{
 	/*
 	 * We use the watch exception where available to detect stack
 	 * overflows.
@@ -777,12 +749,13 @@
 	 * hard/software error.
 	 */
 	show_regs(regs);
-	panic("Caught reserved exception - should not happen.");
+	panic("Caught reserved exception %ld - should not happen.",
+	      (regs->cp0_cause & 0x7f) >> 2);
 }
 
 static inline void watch_init(void)
 {
-	if (mips_cpu.options & MIPS_CPU_WATCH ) {
+	if (mips_cpu.options & MIPS_CPU_WATCH) {
 		set_except_vector(23, handle_watch);
  		watch_available = 1;
  	}
@@ -796,12 +769,10 @@
 {
 	switch (mips_cpu.cputype) {
 	case CPU_5KC:
-		/* Set the PE bit (bit 31) in the CP0_ECC register. */
+		/* Set the PE bit (bit 31) in the c0_ecc register. */
 		printk(KERN_INFO "Enable the cache parity protection for "
 		       "MIPS 5KC CPUs.\n");
-		write_32bit_cp0_register(CP0_ECC,
-		                         read_32bit_cp0_register(CP0_ECC)
-		                         | 0x80000000);
+		write_c0_ecc(read_c0_ecc() | 0x80000000);
 		break;
 	default:
 		break;
@@ -813,13 +784,13 @@
 	unsigned int reg_val;
 
 	/* For the moment, report the problem and hang. */
-	reg_val = read_32bit_cp0_register(CP0_ERROREPC);
+	reg_val = read_c0_errorepc();
 	printk("Cache error exception:\n");
-	printk("cp0_errorepc == %08x\n", reg_val);
-	reg_val = read_32bit_cp0_register(CP0_CACHEERR);
-	printk("cp0_cacheerr == %08x\n", reg_val);
+	printk("cp0_errorepc == %08x\n", read_c0_errorepc());
+	reg_val = read_c0_cacheerr();
+	printk("c0_cacheerr == %08x\n", reg_val);
 
-	printk("Decoded CP0_CACHEERR: %s cache fault in %s reference.\n",
+	printk("Decoded c0_cacheerr: %s cache fault in %s reference.\n",
 	       reg_val & (1<<30) ? "secondary" : "primary",
 	       reg_val & (1<<31) ? "data" : "insn");
 	printk("Error bits: %s%s%s%s%s%s%s\n",
@@ -832,13 +803,13 @@
 	       reg_val & (1<<22) ? "E0 " : "");
 	printk("IDX: 0x%08x\n", reg_val & ((1<<22)-1));
 
-	if (reg_val&(1<<22))
-		printk("DErrAddr0: 0x%08x\n",
-		       read_32bit_cp0_set1_register(CP0_S1_DERRADDR0));
+#if defined(CONFIG_CPU_MIPS32) || defined (CONFIG_CPU_MIPS64)
+	if (reg_val & (1<<22))
+		printk("DErrAddr0: 0x%08x\n", read_c0_derraddr0());
 
-	if (reg_val&(1<<23))
-		printk("DErrAddr1: 0x%08x\n",
-		       read_32bit_cp0_set1_register(CP0_S1_DERRADDR1));
+	if (reg_val & (1<<23))
+		printk("DErrAddr1: 0x%08x\n", read_c0_derraddr1());
+#endif
 
 	panic("Can't handle the cache error!");
 }
@@ -849,31 +820,32 @@
  */
 void ejtag_exception_handler(struct pt_regs *regs)
 {
-        unsigned int depc, old_epc, debug;
+	unsigned long depc, old_epc;
+	unsigned int debug;
 
-        printk("SDBBP EJTAG debug exception - not handled yet, just ignored!\n");
-        depc = read_32bit_cp0_register(CP0_DEPC);
-        debug = read_32bit_cp0_register(CP0_DEBUG);
-        printk("DEPC = %08x, DEBUG = %08x\n", depc, debug);
-        if (debug & 0x80000000) {
-                /*
-                 * In branch delay slot.
-                 * We cheat a little bit here and use EPC to calculate the
-                 * debug return address (DEPC). EPC is restored after the
-                 * calculation.
-                 */
-                old_epc = regs->cp0_epc;
-                regs->cp0_epc = depc;
-                __compute_return_epc(regs);
-                depc = regs->cp0_epc;
-                regs->cp0_epc = old_epc;
-        } else
-                depc += 4;
-        write_32bit_cp0_register(CP0_DEPC, depc);
+	printk("SDBBP EJTAG debug exception - not handled yet, just ignored!\n");
+	depc = read_c0_depc();
+	debug = read_c0_debug();
+	printk("c0_depc = %08lx, DEBUG = %08x\n", depc, debug);
+	if (debug & 0x80000000) {
+		/*
+		 * In branch delay slot.
+		 * We cheat a little bit here and use EPC to calculate the
+		 * debug return address (DEPC). EPC is restored after the
+		 * calculation.
+		 */
+		old_epc = regs->cp0_epc;
+		regs->cp0_epc = depc;
+		__compute_return_epc(regs);
+		depc = regs->cp0_epc;
+		regs->cp0_epc = old_epc;
+	} else
+		depc += 4;
+	write_c0_depc(depc);
 
 #if 0
 	printk("\n\n----- Enable EJTAG single stepping ----\n\n");
-	write_32bit_cp0_register(CP0_DEBUG, debug | 0x100);
+	write_c0_debug(debug | 0x100);
 #endif
 }
 
@@ -910,6 +882,7 @@
 
 asmlinkage int (*save_fp_context)(struct sigcontext *sc);
 asmlinkage int (*restore_fp_context)(struct sigcontext *sc);
+
 extern asmlinkage int _save_fp_context(struct sigcontext *sc);
 extern asmlinkage int _restore_fp_context(struct sigcontext *sc);
 
@@ -921,33 +894,40 @@
 	unsigned int cpu = smp_processor_id();
 
 	/* Some firmware leaves the BEV flag set, clear it.  */
-	clear_cp0_status(ST0_BEV);
+	clear_c0_status(ST0_CU1|ST0_CU2|ST0_CU3|ST0_BEV);
+
+	if (mips_cpu.isa_level == MIPS_CPU_ISA_IV)
+		set_c0_status(ST0_XX);
 
 	/*
 	 * Some MIPS CPUs have a dedicated interrupt vector which reduces the
 	 * interrupt processing overhead.  Use it where available.
 	 */
 	if (mips_cpu.options & MIPS_CPU_DIVEC)
-		set_cp0_cause(CAUSEF_IV);
+		set_c0_cause(CAUSEF_IV);
 
 	cpu_data[cpu].asid_cache = ASID_FIRST_VERSION;
-	set_context(cpu << 23);
+	write_c0_context(cpu << 23);
+
+	atomic_inc(&init_mm.mm_count);
+	current->active_mm = &init_mm;
+	if (current->mm)
+		BUG();
+	enter_lazy_tlb(&init_mm, current, cpu);
 }
 
 void __init trap_init(void)
 {
-	extern char except_vec1_generic, except_vec2_generic;
+	extern char except_vec1_generic;
 	extern char except_vec3_generic, except_vec3_r4000;
-	extern char except_vec4;
 	extern char except_vec_ejtag_debug;
+	extern char except_vec4;
 	unsigned long i;
 
 	per_cpu_trap_init();
 
 	/* Copy the generic exception handler code to it's final destination. */
 	memcpy((void *)(KSEG0 + 0x80), &except_vec1_generic, 0x80);
-	memcpy((void *)(KSEG0 + 0x100), &except_vec2_generic, 0x80);
-	memcpy((void *)(KSEG0 + 0x180), &except_vec3_generic, 0x80);
 
 	/*
 	 * Setup default vectors
@@ -974,7 +954,7 @@
 	 */
 	if (mips_cpu.options & MIPS_CPU_DIVEC) {
 		memcpy((void *)(KSEG0 + 0x200), &except_vec4, 8);
-		set_cp0_cause(CAUSEF_IV);
+		set_c0_cause(CAUSEF_IV);
 	}
 
 	/*
@@ -1005,46 +985,23 @@
 	set_except_vector(11, handle_cpu);
 	set_except_vector(12, handle_ov);
 	set_except_vector(13, handle_tr);
+	set_except_vector(22, handle_mdmx);
 
 	if ((mips_cpu.options & MIPS_CPU_FPU) &&
 	    !(mips_cpu.options & MIPS_CPU_NOFPUEX))
 		set_except_vector(15, handle_fpe);
+
 	if (mips_cpu.options & MIPS_CPU_MCHECK)
 		set_except_vector(24, handle_mcheck);
 
-	/*
-	 * Handling the following exceptions depends mostly of the cpu type
-	 */
-	if ((mips_cpu.options & MIPS_CPU_4KEX)
-	    && (mips_cpu.options & MIPS_CPU_4KTLB)) {
-		/* Cache error vector already set above.  */
-
-		if (mips_cpu.options & MIPS_CPU_VCE) {
-			memcpy((void *)(KSEG0 + 0x180), &except_vec3_r4000,
-			       0x80);
-		}
-	} else switch (mips_cpu.cputype) {
-	case CPU_SB1:
-		/*
-		 * XXX - This should be folded in to the "cleaner" handling,
-		 * above
-		 */
+	if (mips_cpu.options & MIPS_CPU_VCE)
 		memcpy((void *)(KSEG0 + 0x180), &except_vec3_r4000, 0x80);
-#ifdef CONFIG_SB1_CACHE_ERROR
-		{
-		/* Special cache error handler for SB1 */
-		extern char except_vec2_sb1;
-		memcpy((void *)(KSEG0 + 0x100), &except_vec2_sb1, 0x80);
-		memcpy((void *)(KSEG1 + 0x100), &except_vec2_sb1, 0x80);
-		}
-#endif
+	else if (mips_cpu.options & MIPS_CPU_4KEX)
+		memcpy((void *)(KSEG0 + 0x180), &except_vec3_generic, 0x80);
+	else
+		memcpy((void *)(KSEG0 + 0x080), &except_vec3_generic, 0x80);
 
-		/* Enable timer interrupt and scd mapped interrupt */
-		clear_cp0_status(0xf000);
-		set_cp0_status(0xc00);
-		break;
-	case CPU_R6000:
-	case CPU_R6000A:
+	if (mips_cpu.cputype == CPU_R6000 || mips_cpu.cputype == CPU_R6000A) {
 		/*
 		 * The R6000 is the only R-series CPU that features a machine
 		 * check exception (similar to the R4000 cache error) and
@@ -1055,28 +1012,8 @@
 		 */
 		//set_except_vector(14, handle_mc);
 		//set_except_vector(15, handle_ndc);
-	case CPU_R2000:
-	case CPU_R3000:
-	case CPU_R3000A:
-	case CPU_R3041:
-	case CPU_R3051:
-	case CPU_R3052:
-	case CPU_R3081:
-	case CPU_R3081E:
-	case CPU_TX3912:
-	case CPU_TX3922:
-	case CPU_TX3927:
-	case CPU_TX39XX:
-		memcpy((void *)(KSEG0 + 0x80), &except_vec3_generic, 0x80);
-		break;
-
-	case CPU_UNKNOWN:
-	default:
-		panic("Unknown CPU type");
 	}
 
-	flush_icache_range(KSEG0, KSEG0 + 0x400);
-
 	if (mips_cpu.options & MIPS_CPU_FPU) {
 	        save_fp_context = _save_fp_context;
 		restore_fp_context = _restore_fp_context;
@@ -1085,10 +1022,9 @@
 		restore_fp_context = fpu_emulator_restore_context;
 	}
 
-	if (mips_cpu.isa_level == MIPS_CPU_ISA_IV)
-		set_cp0_status(ST0_XX);
+	flush_icache_range(KSEG0, KSEG0 + 0x400);
 
-	atomic_inc(&init_mm.mm_count);	/* XXX  UP?  */
+	atomic_inc(&init_mm.mm_count);	/* XXX UP?  */
 	current->active_mm = &init_mm;
 
 	/* XXX Must be done for all CPUs  */
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/unaligned.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/unaligned.c
--- linux-2.4.20/arch/mips/kernel/unaligned.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/unaligned.c	2003-02-20 19:09:19.000000000 -0600
@@ -5,7 +5,7 @@
  * License.  See the file "COPYING" in the main directory of this archive
  * for more details.
  *
- * Copyright (C) 1996, 1998, 2002 by Ralf Baechle
+ * Copyright (C) 1996, 1998, 1999, 2002 by Ralf Baechle
  * Copyright (C) 1999 Silicon Graphics, Inc.
  *
  * This file contains exception handler for address error exception with the
@@ -88,22 +88,21 @@
 #define STR(x)  __STR(x)
 #define __STR(x)  #x
 
-/*
- * User code may only access USEG; kernel code may access the
- * entire address space.
- */
-#define check_axs(pc,a,s)				\
-	if ((long)(~(pc) & ((a) | ((a)+(s)))) < 0)	\
-		goto sigbus;
+#ifdef CONFIG_PROC_FS
+unsigned long unaligned_instructions;
+#endif
 
 static inline int emulate_load_store_insn(struct pt_regs *regs,
-	unsigned long addr, unsigned long pc)
+	void *addr, unsigned long pc,
+	unsigned long **regptr, unsigned long *newvalue)
 {
 	union mips_instruction insn;
 	unsigned long value, fixup;
 	unsigned int res;
 
 	regs->regs[0] = 0;
+	*regptr=NULL;
+
 	/*
 	 * This load never faults.
 	 */
@@ -143,8 +142,10 @@
 	 * The remaining opcodes are the ones that are really of interest.
 	 */
 	case lh_op:
-		check_axs(pc, addr, 2);
-		__asm__(".set\tnoat\n"
+		if (verify_area(VERIFY_READ, addr, 2))
+			goto sigbus;
+
+		__asm__ __volatile__ (".set\tnoat\n"
 #ifdef __BIG_ENDIAN
 			"1:\tlb\t%0, 0(%2)\n"
 			"2:\tlbu\t$1, 1(%2)\n\t"
@@ -169,12 +170,15 @@
 			: "r" (addr), "i" (-EFAULT));
 		if (res)
 			goto fault;
-		regs->regs[insn.i_format.rt] = value;
-		return 0;
+		*newvalue = value;
+		*regptr = &regs->regs[insn.i_format.rt];
+		break;
 
 	case lw_op:
-		check_axs(pc, addr, 4);
-		__asm__(
+		if (verify_area(VERIFY_READ, addr, 4))
+			goto sigbus;
+
+		__asm__ __volatile__ (
 #ifdef __BIG_ENDIAN
 			"1:\tlwl\t%0, (%2)\n"
 			"2:\tlwr\t%0, 3(%2)\n\t"
@@ -196,12 +200,15 @@
 			: "r" (addr), "i" (-EFAULT));
 		if (res)
 			goto fault;
-		regs->regs[insn.i_format.rt] = value;
-		return 0;
+		*newvalue = value;
+		*regptr = &regs->regs[insn.i_format.rt];
+		break;
 
 	case lhu_op:
-		check_axs(pc, addr, 2);
-		__asm__(
+		if (verify_area(VERIFY_READ, addr, 2))
+			goto sigbus;
+
+		__asm__ __volatile__ (
 			".set\tnoat\n"
 #ifdef __BIG_ENDIAN
 			"1:\tlbu\t%0, 0(%2)\n"
@@ -227,18 +234,102 @@
 			: "r" (addr), "i" (-EFAULT));
 		if (res)
 			goto fault;
-		regs->regs[insn.i_format.rt] = value;
-		return 0;
+		*newvalue = value;
+		*regptr = &regs->regs[insn.i_format.rt];
+		break;
 
 	case lwu_op:
+#ifdef CONFIG_MIPS64
+		/*
+		 * A 32-bit kernel might be running on a 64-bit processor.  But
+		 * if we're on a 32-bit processor and an i-cache incoherency
+		 * or race makes us see a 64-bit instruction here the sdl/sdr
+		 * would blow up, so for now we don't handle unaligned 64-bit
+		 * instructions on 32-bit kernels.
+		 */
+		if (verify_area(VERIFY_READ, addr, 4))
+			goto sigbus;
+
+		__asm__ __volatile__ (
+#ifdef __BIG_ENDIAN
+			"1:\tlwl\t%0, (%2)\n"
+			"2:\tlwr\t%0, 3(%2)\n\t"
+#endif
+#ifdef __LITTLE_ENDIAN
+			"1:\tlwl\t%0, 3(%2)\n"
+			"2:\tlwr\t%0, (%2)\n\t"
+#endif
+			"dsll\t%0, %0, 32\n\t"
+			"dsrl\t%0, %0, 32\n\t"
+			"li\t%1, 0\n"
+			"3:\t.section\t.fixup,\"ax\"\n\t"
+			"4:\tli\t%1, %3\n\t"
+			"j\t3b\n\t"
+			".previous\n\t"
+			".section\t__ex_table,\"a\"\n\t"
+			STR(PTR)"\t1b, 4b\n\t"
+			STR(PTR)"\t2b, 4b\n\t"
+			".previous"
+			: "=&r" (value), "=r" (res)
+			: "r" (addr), "i" (-EFAULT));
+		if (res)
+			goto fault;
+		*newvalue = value;
+		*regptr = &regs->regs[insn.i_format.rt];
+		break;
+#endif /* CONFIG_MIPS64 */
+
+		/* Cannot handle 64-bit instructions in 32-bit kernel */
+		goto sigill;
+
 	case ld_op:
+#ifdef CONFIG_MIPS64
+		/*
+		 * A 32-bit kernel might be running on a 64-bit processor.  But
+		 * if we're on a 32-bit processor and an i-cache incoherency
+		 * or race makes us see a 64-bit instruction here the sdl/sdr
+		 * would blow up, so for now we don't handle unaligned 64-bit
+		 * instructions on 32-bit kernels.
+		 */
+		if (verify_area(VERIFY_READ, addr, 8))
+			goto sigbus;
+
+		__asm__ __volatile__ (
+#ifdef __BIG_ENDIAN
+			"1:\tldl\t%0, (%2)\n"
+			"2:\tldr\t%0, 7(%2)\n\t"
+#endif
+#ifdef __LITTLE_ENDIAN
+			"1:\tldl\t%0, 7(%2)\n"
+			"2:\tldr\t%0, (%2)\n\t"
+#endif
+			"li\t%1, 0\n"
+			"3:\t.section\t.fixup,\"ax\"\n\t"
+			"4:\tli\t%1, %3\n\t"
+			"j\t3b\n\t"
+			".previous\n\t"
+			".section\t__ex_table,\"a\"\n\t"
+			STR(PTR)"\t1b, 4b\n\t"
+			STR(PTR)"\t2b, 4b\n\t"
+			".previous"
+			: "=&r" (value), "=r" (res)
+			: "r" (addr), "i" (-EFAULT));
+		if (res)
+			goto fault;
+		*newvalue = value;
+		*regptr = &regs->regs[insn.i_format.rt];
+		break;
+#endif /* CONFIG_MIPS64 */
+
 		/* Cannot handle 64-bit instructions in 32-bit kernel */
 		goto sigill;
 
 	case sh_op:
-		check_axs(pc, addr, 2);
+		if (verify_area(VERIFY_WRITE, addr, 2))
+			goto sigbus;
+
 		value = regs->regs[insn.i_format.rt];
-		__asm__(
+		__asm__ __volatile__ (
 #ifdef __BIG_ENDIAN
 			".set\tnoat\n"
 			"1:\tsb\t%1, 1(%2)\n\t"
@@ -267,12 +358,14 @@
 			: "r" (value), "r" (addr), "i" (-EFAULT));
 		if (res)
 			goto fault;
-		return 0;
+		break;
 
 	case sw_op:
-		check_axs(pc, addr, 4);
+		if (verify_area(VERIFY_WRITE, addr, 4))
+			goto sigbus;
+
 		value = regs->regs[insn.i_format.rt];
-		__asm__(
+		__asm__ __volatile__ (
 #ifdef __BIG_ENDIAN
 			"1:\tswl\t%1,(%2)\n"
 			"2:\tswr\t%1, 3(%2)\n\t"
@@ -295,9 +388,47 @@
 		: "r" (value), "r" (addr), "i" (-EFAULT));
 		if (res)
 			goto fault;
-		return 0;
+		break;
 
 	case sd_op:
+#ifdef CONFIG_MIPS64
+		/*
+		 * A 32-bit kernel might be running on a 64-bit processor.  But
+		 * if we're on a 32-bit processor and an i-cache incoherency
+		 * or race makes us see a 64-bit instruction here the sdl/sdr
+		 * would blow up, so for now we don't handle unaligned 64-bit
+		 * instructions on 32-bit kernels.
+		 */
+		if (verify_area(VERIFY_WRITE, addr, 8))
+			goto sigbus;
+
+		value = regs->regs[insn.i_format.rt];
+		__asm__ __volatile__ (
+#ifdef __BIG_ENDIAN
+			"1:\tsdl\t%1,(%2)\n"
+			"2:\tsdr\t%1, 7(%2)\n\t"
+#endif
+#ifdef __LITTLE_ENDIAN
+			"1:\tsdl\t%1, 7(%2)\n"
+			"2:\tsdr\t%1, (%2)\n\t"
+#endif
+			"li\t%0, 0\n"
+			"3:\n\t"
+			".section\t.fixup,\"ax\"\n\t"
+			"4:\tli\t%0, %3\n\t"
+			"j\t3b\n\t"
+			".previous\n\t"
+			".section\t__ex_table,\"a\"\n\t"
+			STR(PTR)"\t1b, 4b\n\t"
+			STR(PTR)"\t2b, 4b\n\t"
+			".previous"
+		: "=r" (res)
+		: "r" (value), "r" (addr), "i" (-EFAULT));
+		if (res)
+			goto fault;
+		break;
+#endif /* CONFIG_MIPS64 */
+
 		/* Cannot handle 64-bit instructions in 32-bit kernel */
 		goto sigill;
 
@@ -328,6 +459,11 @@
 		 */
 		goto sigill;
 	}
+
+#ifdef CONFIG_PROC_FS
+	unaligned_instructions++;
+#endif
+
 	return 0;
 
 fault:
@@ -356,23 +492,21 @@
 sigill:
 	die_if_kernel("Unhandled kernel unaligned access or invalid instruction", regs);
 	send_sig(SIGILL, current, 1);
+
 	return 0;
 }
 
-#ifdef CONFIG_PROC_FS
-unsigned long unaligned_instructions;
-#endif
-
 asmlinkage void do_ade(struct pt_regs *regs)
 {
-	unsigned long pc;
+	unsigned long *regptr, newval;
 	extern int do_dsemulret(struct pt_regs *);
+	mm_segment_t seg;
+	unsigned long pc;
 
 	/*
-	 * Address errors may be deliberately induced
-	 * by the FPU emulator to take retake control
-	 * of the CPU after executing the instruction
-	 * in the delay slot of an emulated branch.
+	 * Address errors may be deliberately induced by the FPU emulator to
+	 * retake control of the CPU after executing the instruction in the
+	 * delay slot of an emulated branch.
 	 */
 	/* Terminate if exception was recognized as a delay slot return */
 	if (do_dsemulret(regs))
@@ -382,13 +516,12 @@
 
 	/*
 	 * Did we catch a fault trying to load an instruction?
-	 * This also catches attempts to activate MIPS16 code on
-	 * CPUs which don't support it.
+	 * Or are we running in MIPS16 mode?
 	 */
-	if (regs->cp0_badvaddr == regs->cp0_epc)
+	if ((regs->cp0_badvaddr == regs->cp0_epc) || (regs->cp0_epc & 0x1))
 		goto sigbus;
 
-	pc = regs->cp0_epc + ((regs->cp0_cause & CAUSEF_BD) ? 4 : 0);
+	pc = exception_epc(regs);
 	if ((current->thread.mflags & MF_FIXADE) == 0)
 		goto sigbus;
 
@@ -396,12 +529,20 @@
 	 * Do branch emulation only if we didn't forward the exception.
 	 * This is all so but ugly ...
 	 */
-	if (!emulate_load_store_insn(regs, regs->cp0_badvaddr, pc))
+	seg = get_fs();
+	if (!user_mode(regs))
+		set_fs(KERNEL_DS);
+	if (!emulate_load_store_insn(regs, (void *)regs->cp0_badvaddr, pc,
+	                             &regptr, &newval)) {
 		compute_return_epc(regs);
-
-#ifdef CONFIG_PROC_FS
-	unaligned_instructions++;
-#endif
+		/*
+		 * Now that branch is evaluated, update the dest
+		 * register if necessary
+		 */
+		if (regptr)
+			*regptr = newval;
+	}
+	set_fs(seg);
 
 	return;
 
@@ -412,6 +553,4 @@
 	/*
 	 * XXX On return from the signal handler we should advance the epc
 	 */
-
-	return;
 }
diff -urNd -urNd linux-2.4.20/arch/mips/kernel/vm86.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/vm86.c
--- linux-2.4.20/arch/mips/kernel/vm86.c	1997-06-26 14:33:37.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/vm86.c	1969-12-31 18:00:00.000000000 -0600
@@ -1,13 +0,0 @@
-/*
- *  arch/mips/vm86.c
- *
- *  Copyright (C) 1994  Waldorf GMBH,
- *  written by Ralf Baechle
- */
-#include <linux/linkage.h>
-#include <linux/errno.h>
-
-asmlinkage int sys_vm86(void *v86)
-{
-	return -ENOSYS;
-}
diff -urNd -urNd linux-2.4.20/arch/mips/lasat/at93c.c linux-2.4.20-mipscvs-20050106/arch/mips/lasat/at93c.c
--- linux-2.4.20/arch/mips/lasat/at93c.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/at93c.c	2002-12-13 13:45:36.000000000 -0600
@@ -0,0 +1,148 @@
+/* 
+ * Atmel AT93C46 serial eeprom driver
+ *
+ * Brian Murphy <brian.murphy@eicon.com> 
+ *
+ */
+#include <linux/kernel.h>
+#include <linux/delay.h>
+#include <asm/lasat/lasat.h>
+#include <linux/module.h>
+#include <linux/init.h>
+
+#include "at93c.h"
+
+#define AT93C_ADDR_SHIFT	7
+#define AT93C_ADDR_MAX		((1 << AT93C_ADDR_SHIFT) - 1)
+#define AT93C_RCMD		(0x6 << AT93C_ADDR_SHIFT)
+#define AT93C_WCMD		(0x5 << AT93C_ADDR_SHIFT)
+#define AT93C_WENCMD		0x260
+#define AT93C_WDSCMD		0x200
+
+struct at93c_defs *at93c;
+
+static void at93c_reg_write(u32 val) 
+{
+	*at93c->reg = val;
+}
+
+static u32 at93c_reg_read(void) 
+{
+	u32 tmp = *at93c->reg;
+	return tmp;
+}
+
+static u32 at93c_datareg_read(void)
+{
+	u32 tmp = *at93c->rdata_reg;
+	return tmp;
+}
+
+static void at93c_cycle_clk(u32 data)
+{
+	at93c_reg_write(data | at93c->clk);
+	ndelay(250);
+	at93c_reg_write(data & ~at93c->clk);
+	ndelay(250);
+}
+
+static void at93c_write_databit(u8 bit)
+{
+	u32 data = at93c_reg_read();
+	if (bit)
+		data |= 1 << at93c->wdata_shift;
+	else
+		data &= ~(1 << at93c->wdata_shift);
+
+	at93c_reg_write(data);
+	ndelay(100);
+	at93c_cycle_clk(data);
+}
+
+static unsigned int at93c_read_databit(void)
+{
+	u32 data;
+
+	at93c_cycle_clk(at93c_reg_read());
+	data = (at93c_datareg_read() >> at93c->rdata_shift) & 1;
+	return data;
+}
+
+static u8 at93c_read_byte(void)
+{
+	int i;
+	u8 data = 0;
+
+	for (i = 0; i<=7; i++) {
+		data <<= 1;
+		data |= at93c_read_databit();
+	}
+	return data;
+}
+
+static void at93c_write_bits(u32 data, int size)
+{               
+	int i;
+	int shift = size - 1;
+	u32 mask = (1 << shift);
+
+	for (i = 0; i < size; i++) {
+		at93c_write_databit((data & mask) >> shift);
+		data <<= 1;
+	}
+}       
+
+static void at93c_init_op(void)
+{
+	at93c_reg_write((at93c_reg_read() | at93c->cs) & ~at93c->clk & ~(1 << at93c->rdata_shift));
+	ndelay(50);
+}
+
+static void at93c_end_op(void)
+{
+	at93c_reg_write(at93c_reg_read() & ~at93c->cs);
+	ndelay(250);
+}
+
+static void at93c_wait(void) 
+{ 
+	at93c_init_op();
+	while (!at93c_read_databit())
+		;
+	at93c_end_op();
+};
+
+static void at93c_disable_wp(void)
+{
+	at93c_init_op();
+	at93c_write_bits(AT93C_WENCMD, 10);
+	at93c_end_op();
+}
+
+static void at93c_enable_wp(void)
+{
+	at93c_init_op();
+	at93c_write_bits(AT93C_WDSCMD, 10);
+	at93c_end_op();
+}
+
+u8 at93c_read(u8 addr)
+{
+	u8 byte;
+	at93c_init_op();
+	at93c_write_bits((addr & AT93C_ADDR_MAX)|AT93C_RCMD, 10);
+	byte = at93c_read_byte();
+	at93c_end_op();
+	return byte;
+}
+
+void at93c_write(u8 addr, u8 data)
+{
+	at93c_disable_wp();
+	at93c_init_op();
+	at93c_write_bits((addr & AT93C_ADDR_MAX)|AT93C_WCMD, 10);
+	at93c_write_bits(data, 8);
+	at93c_end_op();
+	at93c_wait();
+	at93c_enable_wp();
+}
diff -urNd -urNd linux-2.4.20/arch/mips/lasat/at93c.h linux-2.4.20-mipscvs-20050106/arch/mips/lasat/at93c.h
--- linux-2.4.20/arch/mips/lasat/at93c.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/at93c.h	2002-12-13 13:45:36.000000000 -0600
@@ -0,0 +1,18 @@
+/* 
+ * Atmel AT93C46 serial eeprom driver
+ *
+ * Brian Murphy <brian.murphy@eicon.com> 
+ *
+ */
+
+extern struct at93c_defs {
+	volatile u32 *reg;
+	volatile u32 *rdata_reg;
+	int rdata_shift;
+	int wdata_shift;
+	u32 cs;
+	u32 clk;
+} *at93c;
+
+u8 at93c_read(u8 addr);
+void at93c_write(u8 addr, u8 data);
diff -urNd -urNd linux-2.4.20/arch/mips/lasat/crc32.c linux-2.4.20-mipscvs-20050106/arch/mips/lasat/crc32.c
--- linux-2.4.20/arch/mips/lasat/crc32.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/crc32.c	2002-10-06 06:39:39.000000000 -0500
@@ -0,0 +1,87 @@
+/* crc32.c -- compute the CRC-32 of a data stream
+ * Copyright (C) 1995-1998 Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h 
+ */
+
+#undef DYNAMIC_CRC_TABLE
+
+#define local static
+
+/* ========================================================================
+ * Table of CRC-32's of all single-byte values (made by make_crc_table)
+ */
+const unsigned long crc_table[256] = {
+  0x00000000L, 0x77073096L, 0xee0e612cL, 0x990951baL, 0x076dc419L,
+  0x706af48fL, 0xe963a535L, 0x9e6495a3L, 0x0edb8832L, 0x79dcb8a4L,
+  0xe0d5e91eL, 0x97d2d988L, 0x09b64c2bL, 0x7eb17cbdL, 0xe7b82d07L,
+  0x90bf1d91L, 0x1db71064L, 0x6ab020f2L, 0xf3b97148L, 0x84be41deL,
+  0x1adad47dL, 0x6ddde4ebL, 0xf4d4b551L, 0x83d385c7L, 0x136c9856L,
+  0x646ba8c0L, 0xfd62f97aL, 0x8a65c9ecL, 0x14015c4fL, 0x63066cd9L,
+  0xfa0f3d63L, 0x8d080df5L, 0x3b6e20c8L, 0x4c69105eL, 0xd56041e4L,
+  0xa2677172L, 0x3c03e4d1L, 0x4b04d447L, 0xd20d85fdL, 0xa50ab56bL,
+  0x35b5a8faL, 0x42b2986cL, 0xdbbbc9d6L, 0xacbcf940L, 0x32d86ce3L,
+  0x45df5c75L, 0xdcd60dcfL, 0xabd13d59L, 0x26d930acL, 0x51de003aL,
+  0xc8d75180L, 0xbfd06116L, 0x21b4f4b5L, 0x56b3c423L, 0xcfba9599L,
+  0xb8bda50fL, 0x2802b89eL, 0x5f058808L, 0xc60cd9b2L, 0xb10be924L,
+  0x2f6f7c87L, 0x58684c11L, 0xc1611dabL, 0xb6662d3dL, 0x76dc4190L,
+  0x01db7106L, 0x98d220bcL, 0xefd5102aL, 0x71b18589L, 0x06b6b51fL,
+  0x9fbfe4a5L, 0xe8b8d433L, 0x7807c9a2L, 0x0f00f934L, 0x9609a88eL,
+  0xe10e9818L, 0x7f6a0dbbL, 0x086d3d2dL, 0x91646c97L, 0xe6635c01L,
+  0x6b6b51f4L, 0x1c6c6162L, 0x856530d8L, 0xf262004eL, 0x6c0695edL,
+  0x1b01a57bL, 0x8208f4c1L, 0xf50fc457L, 0x65b0d9c6L, 0x12b7e950L,
+  0x8bbeb8eaL, 0xfcb9887cL, 0x62dd1ddfL, 0x15da2d49L, 0x8cd37cf3L,
+  0xfbd44c65L, 0x4db26158L, 0x3ab551ceL, 0xa3bc0074L, 0xd4bb30e2L,
+  0x4adfa541L, 0x3dd895d7L, 0xa4d1c46dL, 0xd3d6f4fbL, 0x4369e96aL,
+  0x346ed9fcL, 0xad678846L, 0xda60b8d0L, 0x44042d73L, 0x33031de5L,
+  0xaa0a4c5fL, 0xdd0d7cc9L, 0x5005713cL, 0x270241aaL, 0xbe0b1010L,
+  0xc90c2086L, 0x5768b525L, 0x206f85b3L, 0xb966d409L, 0xce61e49fL,
+  0x5edef90eL, 0x29d9c998L, 0xb0d09822L, 0xc7d7a8b4L, 0x59b33d17L,
+  0x2eb40d81L, 0xb7bd5c3bL, 0xc0ba6cadL, 0xedb88320L, 0x9abfb3b6L,
+  0x03b6e20cL, 0x74b1d29aL, 0xead54739L, 0x9dd277afL, 0x04db2615L,
+  0x73dc1683L, 0xe3630b12L, 0x94643b84L, 0x0d6d6a3eL, 0x7a6a5aa8L,
+  0xe40ecf0bL, 0x9309ff9dL, 0x0a00ae27L, 0x7d079eb1L, 0xf00f9344L,
+  0x8708a3d2L, 0x1e01f268L, 0x6906c2feL, 0xf762575dL, 0x806567cbL,
+  0x196c3671L, 0x6e6b06e7L, 0xfed41b76L, 0x89d32be0L, 0x10da7a5aL,
+  0x67dd4accL, 0xf9b9df6fL, 0x8ebeeff9L, 0x17b7be43L, 0x60b08ed5L,
+  0xd6d6a3e8L, 0xa1d1937eL, 0x38d8c2c4L, 0x4fdff252L, 0xd1bb67f1L,
+  0xa6bc5767L, 0x3fb506ddL, 0x48b2364bL, 0xd80d2bdaL, 0xaf0a1b4cL,
+  0x36034af6L, 0x41047a60L, 0xdf60efc3L, 0xa867df55L, 0x316e8eefL,
+  0x4669be79L, 0xcb61b38cL, 0xbc66831aL, 0x256fd2a0L, 0x5268e236L,
+  0xcc0c7795L, 0xbb0b4703L, 0x220216b9L, 0x5505262fL, 0xc5ba3bbeL,
+  0xb2bd0b28L, 0x2bb45a92L, 0x5cb36a04L, 0xc2d7ffa7L, 0xb5d0cf31L,
+  0x2cd99e8bL, 0x5bdeae1dL, 0x9b64c2b0L, 0xec63f226L, 0x756aa39cL,
+  0x026d930aL, 0x9c0906a9L, 0xeb0e363fL, 0x72076785L, 0x05005713L,
+  0x95bf4a82L, 0xe2b87a14L, 0x7bb12baeL, 0x0cb61b38L, 0x92d28e9bL,
+  0xe5d5be0dL, 0x7cdcefb7L, 0x0bdbdf21L, 0x86d3d2d4L, 0xf1d4e242L,
+  0x68ddb3f8L, 0x1fda836eL, 0x81be16cdL, 0xf6b9265bL, 0x6fb077e1L,
+  0x18b74777L, 0x88085ae6L, 0xff0f6a70L, 0x66063bcaL, 0x11010b5cL,
+  0x8f659effL, 0xf862ae69L, 0x616bffd3L, 0x166ccf45L, 0xa00ae278L,
+  0xd70dd2eeL, 0x4e048354L, 0x3903b3c2L, 0xa7672661L, 0xd06016f7L,
+  0x4969474dL, 0x3e6e77dbL, 0xaed16a4aL, 0xd9d65adcL, 0x40df0b66L,
+  0x37d83bf0L, 0xa9bcae53L, 0xdebb9ec5L, 0x47b2cf7fL, 0x30b5ffe9L,
+  0xbdbdf21cL, 0xcabac28aL, 0x53b39330L, 0x24b4a3a6L, 0xbad03605L,
+  0xcdd70693L, 0x54de5729L, 0x23d967bfL, 0xb3667a2eL, 0xc4614ab8L,
+  0x5d681b02L, 0x2a6f2b94L, 0xb40bbe37L, 0xc30c8ea1L, 0x5a05df1bL,
+  0x2d02ef8dL
+};
+/* ========================================================================= */
+#define DO1(buf) crc = crc_table[((int)crc ^ (*buf++)) & 0xff] ^ (crc >> 8);
+#define DO2(buf)  DO1(buf); DO1(buf);
+#define DO4(buf)  DO2(buf); DO2(buf);
+#define DO8(buf)  DO4(buf); DO4(buf);
+
+/* ========================================================================= */
+unsigned long crc32(unsigned long crc, const unsigned char * buf, unsigned int len)
+{
+    if (buf == 0) return 0L;
+    crc = crc ^ 0xffffffffL;
+    while (len >= 8)
+    {
+      DO8(buf);
+      len -= 8;
+    }
+    if (len) do {
+      DO1(buf);
+    } while (--len);
+    return crc ^ 0xffffffffL;
+}
diff -urNd -urNd linux-2.4.20/arch/mips/lasat/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/lasat/CVS/Entries
--- linux-2.4.20/arch/mips/lasat/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/CVS/Entries	2005-01-06 23:08:20.000000000 -0600
@@ -0,0 +1,22 @@
+/.cvsignore/1.1.2.1/Sun Oct  6 02:01:33 2002/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.3/Fri Dec 13 19:45:36 2002/-ko/Tlinux_2_4_20
+/at93c.c/1.1.2.1/Fri Dec 13 19:45:36 2002/-ko/Tlinux_2_4_20
+/at93c.h/1.1.2.1/Fri Dec 13 19:45:36 2002/-ko/Tlinux_2_4_20
+/crc32.c/1.1.2.2/Sun Oct  6 11:39:39 2002/-ko/Tlinux_2_4_20
+/ds1603.c/1.1.2.3/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
+/ds1603.h/1.1.2.3/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
+/interrupt.c/1.1.2.4/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
+/lasatIRQ.S/1.1.2.2/Fri Dec 13 19:45:36 2002/-ko/Tlinux_2_4_20
+/lasat_board.c/1.1.2.3/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
+/lasat_models.h/1.1.2.1/Sun Oct  6 02:01:33 2002/-ko/Tlinux_2_4_20
+/pci.c/1.1.2.6/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
+/picvue.c/1.1.2.3/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
+/picvue.h/1.1.2.3/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
+/picvue_proc.c/1.1.2.3/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
+/prom.c/1.1.2.3/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
+/prom.h/1.1.2.1/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
+/reset.c/1.1.2.3/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
+/setup.c/1.1.2.9/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
+/sysctl.c/1.1.2.2/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
+/sysctl.h/1.1.2.2/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
+D/image////
diff -urNd -urNd linux-2.4.20/arch/mips/lasat/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/lasat/CVS/Repository
--- linux-2.4.20/arch/mips/lasat/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/CVS/Repository	2005-01-06 23:00:06.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/lasat
diff -urNd -urNd linux-2.4.20/arch/mips/lasat/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/lasat/CVS/Root
--- linux-2.4.20/arch/mips/lasat/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/CVS/Root	2005-01-06 23:00:06.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/lasat/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/lasat/CVS/Tag
--- linux-2.4.20/arch/mips/lasat/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/CVS/Tag	2005-01-06 23:00:06.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/lasat/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/lasat/.cvsignore
--- linux-2.4.20/arch/mips/lasat/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/.cvsignore	2002-10-05 21:01:33.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/lasat/ds1603.c linux-2.4.20-mipscvs-20050106/arch/mips/lasat/ds1603.c
--- linux-2.4.20/arch/mips/lasat/ds1603.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/ds1603.c	2003-02-24 15:26:19.000000000 -0600
@@ -0,0 +1,174 @@
+/* 
+ * Dallas Semiconductors 1603 RTC driver 
+ *
+ * Brian Murphy <brian@murphy.dk> 
+ *
+ */
+#include <linux/kernel.h>
+#include <asm/lasat/lasat.h>
+#include <linux/delay.h>
+#include <asm/lasat/ds1603.h>
+
+#include "ds1603.h"
+
+#define READ_TIME_CMD 0x81
+#define SET_TIME_CMD 0x80
+#define TRIMMER_SET_CMD 0xC0
+#define TRIMMER_VALUE_MASK 0x38
+#define TRIMMER_SHIFT 3
+
+struct ds_defs *ds1603 = NULL;
+
+/* HW specific register functions */
+static void rtc_reg_write(unsigned long val) 
+{
+	*ds1603->reg = val;
+}
+
+static unsigned long rtc_reg_read(void) 
+{
+	unsigned long tmp = *ds1603->reg;
+	return tmp;
+}
+
+static unsigned long rtc_datareg_read(void)
+{
+	unsigned long tmp = *ds1603->data_reg;
+	return tmp;
+}
+
+static void rtc_nrst_high(void)
+{
+	rtc_reg_write(rtc_reg_read() | ds1603->rst);
+}
+
+static void rtc_nrst_low(void)
+{
+	rtc_reg_write(rtc_reg_read() & ~ds1603->rst);
+}
+
+static void rtc_cycle_clock(unsigned long data)
+{
+	data |= ds1603->clk;
+	rtc_reg_write(data);
+	ndelay(250);
+	if (ds1603->data_reversed)
+		data &= ~ds1603->data;
+	else
+		data |= ds1603->data;
+	data &= ~ds1603->clk;
+	rtc_reg_write(data);
+	ndelay(250 + ds1603->huge_delay);
+}
+
+static void rtc_write_databit(unsigned int bit)
+{
+	unsigned long data = rtc_reg_read();
+	if (ds1603->data_reversed)
+		bit = !bit;
+	if (bit)
+		data |= ds1603->data;
+	else
+		data &= ~ds1603->data;
+
+	rtc_reg_write(data);
+	ndelay(50 + ds1603->huge_delay);
+	rtc_cycle_clock(data);
+}
+
+static unsigned int rtc_read_databit(void)
+{
+	unsigned int data;
+
+	data = (rtc_datareg_read() & (1 << ds1603->data_read_shift)) 
+		>> ds1603->data_read_shift;
+	rtc_cycle_clock(rtc_reg_read());
+	return data;
+}
+
+static void rtc_write_byte(unsigned int byte)
+{
+	int i;
+
+	for (i = 0; i<=7; i++) {
+		rtc_write_databit(byte & 1L);
+		byte >>= 1;
+	}
+}
+
+static void rtc_write_word(unsigned long word)
+{
+	int i;
+
+	for (i = 0; i<=31; i++) {
+		rtc_write_databit(word & 1L);
+		word >>= 1;
+	}
+}
+
+static unsigned long rtc_read_word(void)
+{
+	int i;
+	unsigned long word = 0;
+	unsigned long shift = 0;
+
+	for (i = 0; i<=31; i++) {
+		word |= rtc_read_databit() << shift;
+		shift++;
+	}
+	return word;
+}
+
+static void rtc_init_op(void)
+{
+	rtc_nrst_high();
+
+	rtc_reg_write(rtc_reg_read() & ~ds1603->clk);
+
+	ndelay(50);
+}
+
+static void rtc_end_op(void)
+{
+	rtc_nrst_low();
+	ndelay(1000);
+}
+
+/* interface */
+unsigned long ds1603_read(void)
+{
+	unsigned long word;
+	rtc_init_op();
+	rtc_write_byte(READ_TIME_CMD);
+	word = rtc_read_word();
+	rtc_end_op();
+	return word;
+}
+
+int ds1603_set(unsigned long time)
+{
+	rtc_init_op();
+	rtc_write_byte(SET_TIME_CMD);
+	rtc_write_word(time);
+	rtc_end_op();
+
+	return 0;
+}
+
+void ds1603_set_trimmer(unsigned int trimval)
+{
+	rtc_init_op();
+	rtc_write_byte(((trimval << TRIMMER_SHIFT) & TRIMMER_VALUE_MASK)
+			| (TRIMMER_SET_CMD));
+	rtc_end_op();
+}
+
+void ds1603_disable(void)
+{
+	ds1603_set_trimmer(TRIMMER_DISABLE_RTC);
+}
+
+void ds1603_enable(void)
+{
+	ds1603_set_trimmer(TRIMMER_DEFAULT);
+}
diff -urNd -urNd linux-2.4.20/arch/mips/lasat/ds1603.h linux-2.4.20-mipscvs-20050106/arch/mips/lasat/ds1603.h
--- linux-2.4.20/arch/mips/lasat/ds1603.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/ds1603.h	2003-02-24 15:26:19.000000000 -0600
@@ -0,0 +1,33 @@
+/* 
+ * Dallas Semiconductors 1603 RTC driver 
+ *
+ * Brian Murphy <brian@murphy.dk> 
+ *
+ */
+#ifndef __DS1603_H
+#define __DS1603_H
+
+struct ds_defs {
+	volatile u32 *reg;
+	volatile u32 *data_reg;
+	u32 rst;
+	u32 clk;
+	u32 data;
+	u32 data_read_shift;
+	char data_reversed;
+	u32 huge_delay;
+};
+
+extern struct ds_defs *ds1603;
+
+unsigned long ds1603_read(void);
+int ds1603_set(unsigned long);
+void ds1603_set_trimmer(unsigned int);
+void ds1603_enable(void);
+void ds1603_disable(void);
+void ds1603_init(struct ds_defs *);
+
+#define TRIMMER_DEFAULT	3
+#define TRIMMER_DISABLE_RTC 0
+
+#endif
diff -urNd -urNd linux-2.4.20/arch/mips/lasat/image/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/lasat/image/CVS/Entries
--- linux-2.4.20/arch/mips/lasat/image/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/image/CVS/Entries	2005-01-06 23:00:06.000000000 -0600
@@ -0,0 +1,5 @@
+/.cvsignore/1.1.2.1/Sun Oct  6 02:01:33 2002/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.3/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
+/head.S/1.1.2.1/Sun Oct  6 02:01:33 2002/-ko/Tlinux_2_4_20
+/romscript.normal/1.1.2.1/Sun Oct  6 02:01:33 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/lasat/image/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/lasat/image/CVS/Repository
--- linux-2.4.20/arch/mips/lasat/image/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/image/CVS/Repository	2005-01-06 23:00:06.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/lasat/image
diff -urNd -urNd linux-2.4.20/arch/mips/lasat/image/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/lasat/image/CVS/Root
--- linux-2.4.20/arch/mips/lasat/image/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/image/CVS/Root	2005-01-06 23:00:06.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/lasat/image/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/lasat/image/CVS/Tag
--- linux-2.4.20/arch/mips/lasat/image/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/image/CVS/Tag	2005-01-06 23:00:06.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/lasat/image/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/lasat/image/.cvsignore
--- linux-2.4.20/arch/mips/lasat/image/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/image/.cvsignore	2002-10-05 21:01:33.000000000 -0500
@@ -0,0 +1,6 @@
+.depend
+.*.flags
+rom
+rom.bin
+rom.sw
+kImage.bin
diff -urNd -urNd linux-2.4.20/arch/mips/lasat/image/head.S linux-2.4.20-mipscvs-20050106/arch/mips/lasat/image/head.S
--- linux-2.4.20/arch/mips/lasat/image/head.S	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/image/head.S	2002-10-05 21:01:33.000000000 -0500
@@ -0,0 +1,31 @@
+#include <asm/lasat/head.h>
+
+	.text
+	.section .text.start, "ax"
+	.set noreorder
+	.set mips3
+
+	/* Magic words identifying a software image */
+	.word	LASAT_K_MAGIC0_VAL
+	.word 	LASAT_K_MAGIC1_VAL
+
+	/* Image header version */
+	.word	0x00000002
+
+	/* image start and size */
+	.word	_image_start
+	.word	_image_size
+
+	/* start of kernel and entrypoint in uncompressed image */
+	.word	_kernel_start
+	.word	_kernel_entry
+
+	/* Here we have room for future flags */
+
+	.org	0x40
+reldate:
+	.word	TIMESTAMP
+
+	.org	0x50
+release:	
+	.string VERSION
diff -urNd -urNd linux-2.4.20/arch/mips/lasat/image/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/lasat/image/Makefile
--- linux-2.4.20/arch/mips/lasat/image/Makefile	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/image/Makefile	2003-02-24 15:26:19.000000000 -0600
@@ -0,0 +1,59 @@
+#
+# MAKEFILE FOR THE MIPS LINUX BOOTLOADER AND ROM DEBUGGER
+#
+# i-data Networks
+#
+# Author: Thomas Horsten <thh@i-data.com>
+#
+
+ifndef Version
+ Version = "$(USER)-test"
+endif
+
+MKLASATIMG = mklasatimg
+MKLASATIMG_ARCH = mq2,mqpro,sp100,sp200
+ifdef CONFIG_LASAT_SERVICE
+MKLASATIMG_FLAG = -s
+else
+MKLASATIMG_FLAG = -k
+endif
+
+KERNEL_IMAGE = $(TOPDIR)/vmlinux
+KERNEL_START = $(shell $(NM) $(KERNEL_IMAGE) | grep _ftext | cut -f1 -d\ )
+KERNEL_ENTRY = $(shell $(NM) $(KERNEL_IMAGE) | grep kernel_entry | cut -f1 -d\ )
+
+LDSCRIPT= -Tromscript.normal
+
+AFLAGS_head.o = -D_kernel_start=0x$(KERNEL_START) \
+		-D_kernel_entry=0x$(KERNEL_ENTRY) \
+		-D VERSION="\"$(Version)\"" \
+		-D TIMESTAMP=$(shell date +%s) 
+
+head.o: $(KERNEL_IMAGE)
+
+OBJECTS= head.o kImage.o
+
+rom.sw:	rom.bin
+	$(MKLASATIMG) -o rom.sw $(MKLASATIMG_FLAG) rom.bin -m $(MKLASATIMG_ARCH)
+
+rom.bin: rom
+	$(OBJCOPY) -O binary -S rom rom.bin
+
+# Rule to make the bootloader
+rom:	$(OBJECTS)
+	$(LD) $(LDFLAGS) $(LDSCRIPT) -o rom $(OBJECTS) 
+
+%.o: %.gz
+	$(LD) -r -o $@ -b binary $<
+
+%.gz: %.bin
+	gzip -cf -9 $< > $@
+
+kImage.bin: $(KERNEL_IMAGE)
+	$(OBJCOPY) -O binary -S $(TOPDIR)/vmlinux kImage.bin
+
+clean:
+	rm -f rom rom.bin rom.sw kImage.bin
+
+USE_STANDARD_AS_RULE = 1
+include $(TOPDIR)/Rules.make
diff -urNd -urNd linux-2.4.20/arch/mips/lasat/image/romscript.normal linux-2.4.20-mipscvs-20050106/arch/mips/lasat/image/romscript.normal
--- linux-2.4.20/arch/mips/lasat/image/romscript.normal	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/image/romscript.normal	2002-10-05 21:01:33.000000000 -0500
@@ -0,0 +1,22 @@
+OUTPUT_ARCH(mips)
+
+SECTIONS
+{
+  .text :
+  {
+    *(.text.start)
+  }
+
+  /* Data in ROM */
+
+  .data ALIGN(0x10) :
+  {
+    *(.data)
+  }
+  _image_start = ADDR(.data);
+  _image_size = SIZEOF(.data);
+
+  .other : {
+  	*(.*)
+  }
+}
diff -urNd -urNd linux-2.4.20/arch/mips/lasat/interrupt.c linux-2.4.20-mipscvs-20050106/arch/mips/lasat/interrupt.c
--- linux-2.4.20/arch/mips/lasat/interrupt.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/interrupt.c	2003-02-24 15:26:19.000000000 -0600
@@ -0,0 +1,193 @@
+/*
+ * Carsten Langgaard, carstenl@mips.com
+ * Copyright (C) 1999,2000 MIPS Technologies, Inc.  All rights reserved.
+ *
+ * ########################################################################
+ *
+ *  This program is free software; you can distribute it and/or modify it
+ *  under the terms of the GNU General Public License (Version 2) as
+ *  published by the Free Software Foundation.
+ *
+ *  This program is distributed in the hope it will be useful, but WITHOUT
+ *  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ *  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ *  for more details.
+ *
+ *  You should have received a copy of the GNU General Public License along
+ *  with this program; if not, write to the Free Software Foundation, Inc.,
+ *  59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
+ *
+ * ########################################################################
+ *
+ * Routines for generic manipulation of the interrupts found on the 
+ * Lasat boards.
+ *
+ */
+#include <linux/config.h>
+#include <linux/init.h>
+#include <linux/sched.h>
+#include <linux/slab.h>
+#include <linux/interrupt.h>
+#include <linux/kernel_stat.h>
+
+#include <asm/bootinfo.h>
+#include <asm/irq.h>
+#include <asm/lasat/lasatint.h>
+#include <asm/gdb-stub.h>
+
+static volatile int *lasat_int_status = NULL;
+static volatile int *lasat_int_mask = NULL;
+static volatile int lasat_int_mask_shift;
+
+extern asmlinkage void mipsIRQ(void);
+extern void do_IRQ(int irq, struct pt_regs *regs);
+
+#if 0
+#define DEBUG_INT(x...) printk(x)
+#else
+#define DEBUG_INT(x...)
+#endif
+
+void disable_lasat_irq(unsigned int irq_nr)
+{
+	unsigned long flags;
+	DEBUG_INT("disable_lasat_irq: %d", irq_nr);
+
+	local_irq_save(flags);
+	*lasat_int_mask &= ~(1 << irq_nr) << lasat_int_mask_shift;
+	local_irq_restore(flags);
+}
+
+void enable_lasat_irq(unsigned int irq_nr)
+{
+	unsigned long flags;
+	DEBUG_INT("enable_lasat_irq: %d", irq_nr);
+
+	local_irq_save(flags);
+	*lasat_int_mask |= (1 << irq_nr) << lasat_int_mask_shift;
+	local_irq_restore(flags);
+}
+
+static unsigned int startup_lasat_irq(unsigned int irq)
+{
+	enable_lasat_irq(irq);
+	return 0; /* never anything pending */
+}
+
+#define shutdown_lasat_irq	disable_lasat_irq
+
+#define mask_and_ack_lasat_irq disable_lasat_irq
+
+static void end_lasat_irq(unsigned int irq)
+{
+	if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
+		enable_lasat_irq(irq);
+}
+
+static struct hw_interrupt_type lasat_irq_type = {
+	"Lasat",
+	startup_lasat_irq,
+	shutdown_lasat_irq,
+	enable_lasat_irq,
+	disable_lasat_irq,
+	mask_and_ack_lasat_irq,
+	end_lasat_irq,
+	NULL
+};
+
+static inline int ls1bit32(unsigned int x)
+{
+	int b = 31, s;
+
+	s = 16; if (x << 16 == 0) s = 0; b -= s; x <<= s;
+	s =  8; if (x <<  8 == 0) s = 0; b -= s; x <<= s;
+	s =  4; if (x <<  4 == 0) s = 0; b -= s; x <<= s;
+	s =  2; if (x <<  2 == 0) s = 0; b -= s; x <<= s;
+	s =  1; if (x <<  1 == 0) s = 0; b -= s;
+
+	return b;
+}
+
+static unsigned long (* get_int_status)(void);
+
+static unsigned long get_int_status_100(void)
+{
+	return (*lasat_int_status & *lasat_int_mask);
+}
+
+static unsigned long get_int_status_200(void) 
+{
+	unsigned long int_status;
+
+	int_status = *lasat_int_status;
+	int_status &= (int_status >> LASATINT_MASK_SHIFT_200) & 0xffff;
+	return int_status;
+}
+
+void lasat_hw0_irqdispatch(struct pt_regs *regs)
+{
+	struct irqaction *action;
+	unsigned long int_status;
+	int irq, cpu = smp_processor_id();
+
+	int_status = get_int_status();
+
+	/* if int_status == 0, then the interrupt has already been cleared */
+	if (int_status == 0)
+		return;
+
+	irq = ls1bit32(int_status);
+	action = irq_desc[irq].action;
+
+	DEBUG_INT("lasat_hw0_irqdispatch: irq=%d\n", irq);
+
+	/* if action == NULL, then we don't have a handler for the irq */
+	if (action == NULL) {
+		printk("No handler for hw0 irq: %i\n", irq);
+		atomic_inc(&irq_err_count);
+		return;
+	}
+
+	irq_enter(cpu, irq);
+	kstat.irqs[0][irq]++;
+	action->handler(irq, action->dev_id, regs);
+	irq_exit(cpu, irq);
+
+	return;		
+}
+
+void __init init_IRQ(void)
+{
+	int i;
+
+	init_generic_irq();
+
+	switch (mips_machtype) {
+	case MACH_LASAT_100:
+		lasat_int_status = (void *)LASAT_INT_STATUS_REG_100;
+		lasat_int_mask = (void *)LASAT_INT_MASK_REG_100;
+		lasat_int_mask_shift = LASATINT_MASK_SHIFT_100;
+		get_int_status = get_int_status_100;
+		*lasat_int_mask = 0;
+		break;
+	case MACH_LASAT_200:
+		lasat_int_status = (void *)LASAT_INT_STATUS_REG_200;
+		lasat_int_mask = (void *)LASAT_INT_MASK_REG_200;
+		lasat_int_mask_shift = LASATINT_MASK_SHIFT_200;
+		get_int_status = get_int_status_200;
+		*lasat_int_mask &= 0xffff;
+		break;
+	default:
+		panic("init_IRQ: mips_machtype incorrect");
+	}
+
+	/* Now safe to set the exception vector. */
+	set_except_vector(0, mipsIRQ);
+
+	for (i = 0; i <= LASATINT_END; i++) {
+		irq_desc[i].status	= IRQ_DISABLED;
+		irq_desc[i].action	= 0;
+		irq_desc[i].depth	= 1;
+		irq_desc[i].handler	= &lasat_irq_type;
+	}
+}
diff -urNd -urNd linux-2.4.20/arch/mips/lasat/lasat_board.c linux-2.4.20-mipscvs-20050106/arch/mips/lasat/lasat_board.c
--- linux-2.4.20/arch/mips/lasat/lasat_board.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/lasat_board.c	2003-02-24 15:26:19.000000000 -0600
@@ -0,0 +1,279 @@
+/*
+ * lasat_board.c
+ *
+ * Thomas Horsten <thh@lasat.com>
+ * Copyright (C) 2000 LASAT Networks A/S.
+ *
+ * ########################################################################
+ *
+ *  This program is free software; you can distribute it and/or modify it
+ *  under the terms of the GNU General Public License (Version 2) as
+ *  published by the Free Software Foundation.
+ *
+ *  This program is distributed in the hope it will be useful, but WITHOUT
+ *  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ *  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ *  for more details.
+ *
+ *  You should have received a copy of the GNU General Public License along
+ *  with this program; if not, write to the Free Software Foundation, Inc.,
+ *  59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
+ *
+ * ########################################################################
+ *
+ * Routines specific to the LASAT boards
+ */
+#include <linux/types.h>
+#include <asm/lasat/lasat.h>
+#include <linux/kernel.h>
+#include <linux/string.h>
+#include <linux/ctype.h>
+#include <asm/bootinfo.h>
+#include <asm/addrspace.h>
+#include "at93c.h"
+/* New model description table */
+#include "lasat_models.h"
+struct lasat_info lasat_board_info;
+
+unsigned long crc32(unsigned long, unsigned char *, int);
+void update_bcastaddr(void);
+
+int EEPROMRead(unsigned int pos, unsigned char *data, int len)
+{
+	int i;
+
+	for (i=0; i<len; i++)
+		*data++ = at93c_read(pos++);
+
+	return 0;
+}
+int EEPROMWrite(unsigned int pos, unsigned char *data, int len)
+{
+	int i;
+
+	for (i=0; i<len; i++)
+		at93c_write(pos++, *data++);
+
+	return 0;
+}
+
+static void init_flash_sizes(void)
+{
+	int i;
+	unsigned long *lb = lasat_board_info.li_flashpart_base;
+	unsigned long *ls = lasat_board_info.li_flashpart_size;
+
+	ls[LASAT_MTD_BOOTLOADER] = 0x40000;
+	ls[LASAT_MTD_SERVICE] = 0xC0000;
+	ls[LASAT_MTD_NORMAL] = 0x100000;
+
+	if (mips_machtype == MACH_LASAT_100) {
+		lasat_board_info.li_flash_base = KSEG1ADDR(0x1e000000);
+		
+		lb[LASAT_MTD_BOOTLOADER] = KSEG1ADDR(0x1e400000);
+
+		if (lasat_board_info.li_flash_size > 0x200000) {
+			ls[LASAT_MTD_CONFIG] = 0x100000;
+			ls[LASAT_MTD_FS] = 0x500000;
+		}
+	} else {
+		lasat_board_info.li_flash_base = KSEG1ADDR(0x10000000);
+
+		if (lasat_board_info.li_flash_size < 0x1000000) {
+			lb[LASAT_MTD_BOOTLOADER] = KSEG1ADDR(0x10000000);
+			ls[LASAT_MTD_CONFIG] = 0x100000;
+			if (lasat_board_info.li_flash_size >= 0x400000) {
+				ls[LASAT_MTD_FS] = lasat_board_info.li_flash_size - 0x300000;
+			}
+		}
+	}
+
+	for (i = 1; i < LASAT_MTD_LAST; i++)
+		lb[i] = lb[i-1] + ls[i-1];
+}
+
+int lasat_init_board_info(void)
+{
+	int c;
+	unsigned long crc;
+	unsigned long cfg0, cfg1;
+	const product_info_t   *ppi;
+	int i_n_base_models = N_BASE_MODELS;
+	const char * const * i_txt_base_models = txt_base_models;
+	int i_n_prids = N_PRIDS;
+
+	memset(&lasat_board_info, 0, sizeof(lasat_board_info));
+
+	/* First read the EEPROM info */
+	EEPROMRead(0, (unsigned char *)&lasat_board_info.li_eeprom_info, 
+		   sizeof(struct lasat_eeprom_struct));
+
+	/* Check the CRC */
+	crc = crc32(0x0, (unsigned char *)(&lasat_board_info.li_eeprom_info),
+		    sizeof(struct lasat_eeprom_struct) - 4);
+
+	if (crc != lasat_board_info.li_eeprom_info.crc32) {
+		prom_printf("WARNING...\nWARNING...\nEEPROM CRC does not match calculated, attempting to soldier on...\n");
+	}
+
+	if (lasat_board_info.li_eeprom_info.version != LASAT_EEPROM_VERSION)
+	{
+		prom_printf("WARNING...\nWARNING...\nEEPROM version %d, wanted version %d, attempting to soldier on...\n",
+		       (unsigned int)lasat_board_info.li_eeprom_info.version,
+		       LASAT_EEPROM_VERSION);
+	}
+
+	cfg0 = lasat_board_info.li_eeprom_info.cfg[0];
+	cfg1 = lasat_board_info.li_eeprom_info.cfg[1];
+
+	if ( LASAT_W0_DSCTYPE(cfg0) != 1) {
+		prom_printf("WARNING...\nWARNING...\nInvalid configuration read from EEPROM, attempting to soldier on...");
+	}
+	/* We have a valid configuration */
+
+	switch (LASAT_W0_SDRAMBANKSZ(cfg0)) {
+	case 0:
+		lasat_board_info.li_memsize = 0x0800000;
+		break;
+	case 1:
+		lasat_board_info.li_memsize = 0x1000000;
+		break;
+	case 2:
+		lasat_board_info.li_memsize = 0x2000000;
+		break;
+	case 3:
+		lasat_board_info.li_memsize = 0x4000000;
+		break;
+	case 4:
+		lasat_board_info.li_memsize = 0x8000000;
+		break;
+	default:
+		lasat_board_info.li_memsize = 0;
+	}
+
+	switch (LASAT_W0_SDRAMBANKS(cfg0)) {
+	case 0:
+		break;
+	case 1:
+		lasat_board_info.li_memsize *= 2;
+		break;
+	default:
+		break;
+	}
+
+	switch (LASAT_W0_BUSSPEED(cfg0)) {
+	case 0x0:
+		lasat_board_info.li_bus_hz = 60000000;
+		break;
+	case 0x1:
+		lasat_board_info.li_bus_hz = 66000000;
+		break;
+	case 0x2:
+		lasat_board_info.li_bus_hz = 66666667;
+		break;
+	case 0x3:
+		lasat_board_info.li_bus_hz = 80000000;
+		break;
+	case 0x4:
+		lasat_board_info.li_bus_hz = 83333333;
+		break;
+	case 0x5:
+		lasat_board_info.li_bus_hz = 100000000;
+		break;
+	}
+
+	switch (LASAT_W0_CPUCLK(cfg0)) {
+	case 0x0:
+		lasat_board_info.li_cpu_hz =
+			lasat_board_info.li_bus_hz;
+		break;
+	case 0x1:
+		lasat_board_info.li_cpu_hz =
+			lasat_board_info.li_bus_hz +
+			(lasat_board_info.li_bus_hz >> 1);	
+		break;
+	case 0x2:
+		lasat_board_info.li_cpu_hz =
+			lasat_board_info.li_bus_hz +
+			lasat_board_info.li_bus_hz;
+		break;
+	case 0x3:
+		lasat_board_info.li_cpu_hz =
+			lasat_board_info.li_bus_hz +
+			lasat_board_info.li_bus_hz +
+			(lasat_board_info.li_bus_hz >> 1);
+		break;
+	case 0x4:
+		lasat_board_info.li_cpu_hz =
+			lasat_board_info.li_bus_hz +
+			lasat_board_info.li_bus_hz +
+			lasat_board_info.li_bus_hz;
+		break;
+	}
+
+	/* Flash size */
+	switch (LASAT_W1_FLASHSIZE(cfg1)) {
+	case 0:
+		lasat_board_info.li_flash_size = 0x200000;
+		break;
+	case 1:
+		lasat_board_info.li_flash_size = 0x400000;
+		break;
+	case 2:
+		lasat_board_info.li_flash_size = 0x800000;
+		break;
+	case 3:
+		lasat_board_info.li_flash_size = 0x1000000;
+		break;
+	case 4:
+		lasat_board_info.li_flash_size = 0x2000000;
+		break;
+	}
+
+	init_flash_sizes();
+
+	lasat_board_info.li_bmid = LASAT_W0_BMID(cfg0);
+	lasat_board_info.li_prid = lasat_board_info.li_eeprom_info.prid;
+	if (lasat_board_info.li_prid == 0xffff || lasat_board_info.li_prid == 0)
+		lasat_board_info.li_prid = lasat_board_info.li_bmid;
+
+	/* Base model stuff */
+	if (lasat_board_info.li_bmid > i_n_base_models)
+		lasat_board_info.li_bmid = i_n_base_models;
+	strcpy(lasat_board_info.li_bmstr, i_txt_base_models[lasat_board_info.li_bmid]);
+
+	/* Product ID dependent values */
+	c = lasat_board_info.li_prid;
+	if (c >= i_n_prids) {
+		strcpy(lasat_board_info.li_namestr, "Unknown Model");
+		strcpy(lasat_board_info.li_typestr, "Unknown Type");
+	} else {
+		ppi = &vendor_info_table[0].vi_product_info[c];
+		strcpy(lasat_board_info.li_namestr, ppi->pi_name);
+		if (ppi->pi_type)
+			strcpy(lasat_board_info.li_typestr, ppi->pi_type);
+		else
+			sprintf(lasat_board_info.li_typestr, "%d",10*c);
+	}
+
+#if defined(CONFIG_INET) && defined(CONFIG_SYSCTL)
+	update_bcastaddr();
+#endif
+
+	return 0;
+}
+
+void lasat_write_eeprom_info(void)
+{
+	unsigned long crc;
+
+	/* Generate the CRC */
+	crc = crc32(0x0, (unsigned char *)(&lasat_board_info.li_eeprom_info),
+		    sizeof(struct lasat_eeprom_struct) - 4);
+	lasat_board_info.li_eeprom_info.crc32 = crc;
+
+	/* Write the EEPROM info */
+	EEPROMWrite(0, (unsigned char *)&lasat_board_info.li_eeprom_info, 
+		    sizeof(struct lasat_eeprom_struct));
+}
+
diff -urNd -urNd linux-2.4.20/arch/mips/lasat/lasatIRQ.S linux-2.4.20-mipscvs-20050106/arch/mips/lasat/lasatIRQ.S
--- linux-2.4.20/arch/mips/lasat/lasatIRQ.S	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/lasatIRQ.S	2002-12-13 13:45:36.000000000 -0600
@@ -0,0 +1,75 @@
+/*
+ * Carsten Langgaard, carstenl@mips.com
+ * Copyright (C) 1999, 2000 MIPS Technologies, Inc.  All rights reserved.
+ *
+ * ########################################################################
+ *
+ *  This program is free software; you can distribute it and/or modify it
+ *  under the terms of the GNU General Public License (Version 2) as
+ *  published by the Free Software Foundation.
+ *
+ *  This program is distributed in the hope it will be useful, but WITHOUT
+ *  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ *  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ *  for more details.
+ *
+ *  You should have received a copy of the GNU General Public License along
+ *  with this program; if not, write to the Free Software Foundation, Inc.,
+ *  59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
+ *
+ * ########################################################################
+ *
+ * Interrupt exception dispatch code.
+ *
+ */
+#include <linux/config.h>
+
+#include <asm/asm.h>
+#include <asm/mipsregs.h>
+#include <asm/regdef.h>
+#include <asm/stackframe.h>
+
+	.text
+	.set	noreorder
+	.set	noat
+	.align	5
+	NESTED(mipsIRQ, PT_SIZE, sp)
+	SAVE_ALL
+	CLI
+	.set	at
+
+	mfc0	s0, CP0_CAUSE		# get irq mask
+
+	/* First we check for r4k counter/timer IRQ. */
+	andi	a0, s0, CAUSEF_IP7
+	beq	a0, zero, 1f
+	 andi	a0, s0, CAUSEF_IP2	# delay slot, check hw0 interrupt
+
+	/* Wheee, a timer interrupt. */
+	move	a0, sp
+	jal	lasat_timer_interrupt
+	 nop
+
+	j	ret_from_irq
+	 nop
+
+1:
+	/* Wheee, combined hardware level zero interrupt. */
+	jal	lasat_hw0_irqdispatch
+	 move	a0, sp			# delay slot
+
+	j	ret_from_irq
+	 nop				# delay slot
+
+1:
+	/*
+	 * Here by mistake?  This is possible, what can happen is that by the
+	 * time we take the exception the IRQ pin goes low, so just leave if
+	 * this is the case.
+	 */
+	move	a1,s0
+	mfc0	a1, CP0_EPC
+
+	j	ret_from_irq
+	 nop
+	END(mipsIRQ)
diff -urNd -urNd linux-2.4.20/arch/mips/lasat/lasat_models.h linux-2.4.20-mipscvs-20050106/arch/mips/lasat/lasat_models.h
--- linux-2.4.20/arch/mips/lasat/lasat_models.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/lasat_models.h	2002-10-05 21:01:33.000000000 -0500
@@ -0,0 +1,63 @@
+/*
+ * Model description tables
+ */
+
+typedef struct product_info_t {
+	const char     *pi_name;
+	const char     *pi_type;
+} product_info_t;
+
+typedef struct vendor_info_t {
+	const char     *vi_name;
+	const product_info_t *vi_product_info;
+} vendor_info_t;
+
+/*
+ * Base models
+ */
+static const char * const txt_base_models[] = {
+  "MQ 2", "MQ Pro", "SP 25", "SP 50", "SP 100", "SP 5000", "SP 7000", "SP 1000", "Unknown"
+};
+#define N_BASE_MODELS (sizeof(txt_base_models)/sizeof(char*)-1)
+
+/*
+ * Eicon Networks
+ */
+static const char txt_en_mq[] = "Masquerade";
+static const char txt_en_sp[] = "Safepipe";
+
+static const product_info_t product_info_eicon[] = {
+  { txt_en_mq, "II"   }, /*  0 */
+  { txt_en_mq, "Pro"  }, /*  1 */
+  { txt_en_sp, "25"   }, /*  2 */
+  { txt_en_sp, "50"   }, /*  3 */
+  { txt_en_sp, "100"  }, /*  4 */
+  { txt_en_sp, "5000" }, /*  5 */
+  { txt_en_sp, "7000" }, /*  6 */
+  { txt_en_sp, "30"   }, /*  7 */
+  { txt_en_sp, "5100" }, /*  8 */
+  { txt_en_sp, "7100" }, /*  9 */
+  { txt_en_sp, "1110" }, /* 10 */
+  { txt_en_sp, "3020" }, /* 11 */
+  { txt_en_sp, "3030" }, /* 12 */
+  { txt_en_sp, "5020" }, /* 13 */
+  { txt_en_sp, "5030" }, /* 14 */
+  { txt_en_sp, "1120" }, /* 15 */
+  { txt_en_sp, "1130" }, /* 16 */
+  { txt_en_sp, "6010" }, /* 17 */
+  { txt_en_sp, "6110" }, /* 18 */
+  { txt_en_sp, "6210" }, /* 19 */
+  { txt_en_sp, "1020" }, /* 20 */
+  { txt_en_sp, "1040" }, /* 21 */
+  { txt_en_sp, "1050" }, /* 22 */
+  { txt_en_sp, "1060" }, /* 23 */
+};
+#define N_PRIDS (sizeof(product_info_eicon)/sizeof(product_info_t))
+
+/*
+ * The vendor table
+ */
+static vendor_info_t const vendor_info_table[] = {
+  { "Eicon Networks",	product_info_eicon   },
+};
+#define N_VENDORS (sizeof(vendor_info_table)/sizeof(vendor_info_t))
diff -urNd -urNd linux-2.4.20/arch/mips/lasat/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/lasat/Makefile
--- linux-2.4.20/arch/mips/lasat/Makefile	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/Makefile	2002-12-13 13:45:36.000000000 -0600
@@ -0,0 +1,25 @@
+#
+# Makefile for the LASAT specific kernel interface routines under Linux.
+#
+USE_STANDARD_AS_RULE := 1
+
+O_TARGET := lasatkern.o
+obj-y	 := reset.o setup.o prom.o lasat_board.o \
+		crc32.o at93c.o interrupt.o lasatIRQ.o
+
+subdir-$(CONFIG_LASAT_SERVICE) += service
+obj-$(CONFIG_LASAT_SERVICE) += service/service.o
+
+obj-$(CONFIG_LASAT_SYSCTL) += sysctl.o
+
+obj-$(CONFIG_DS1603) += ds1603.o
+
+obj-$(CONFIG_PICVUE) += picvue.o
+obj-$(CONFIG_PICVUE_PROC) += picvue_proc.o
+
+obj-$(CONFIG_PCI) += pci.o
+
+include $(TOPDIR)/Rules.make
+
+clean:
+	make -C image clean
diff -urNd -urNd linux-2.4.20/arch/mips/lasat/pci.c linux-2.4.20-mipscvs-20050106/arch/mips/lasat/pci.c
--- linux-2.4.20/arch/mips/lasat/pci.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/pci.c	2003-02-24 15:26:19.000000000 -0600
@@ -0,0 +1,348 @@
+#include <linux/config.h>
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/pci.h>
+#include <asm/bootinfo.h>
+
+#include <asm/lasat/lasat.h>
+#include <asm/gt64120.h>
+#include <asm/nile4.h>
+
+#define PCI_ACCESS_READ  0
+#define PCI_ACCESS_WRITE 1
+
+#undef DEBUG_PCI
+#ifdef DEBUG_PCI
+#define Dprintk(fmt...) printk(fmt)
+#else
+#define Dprintk(fmt...)
+#endif
+
+static int (*lasat_pcibios_config_access)(unsigned char access_type,
+				       struct pci_dev *dev,
+				       unsigned char reg,
+				       u32 *data);
+
+/*
+ * Because of an error/peculiarity in the Galileo chip, we need to swap the 
+ * bytes when running bigendian.
+ */
+#define GT_WRITE(ofs, data)  \
+             *(volatile u32 *)(LASAT_GT_BASE+ofs) = cpu_to_le32(data)
+#define GT_READ(ofs, data)   \
+             data = le32_to_cpu(*(volatile u32 *)(LASAT_GT_BASE+ofs))
+
+
+static int lasat_pcibios_config_access_100(unsigned char access_type,
+				       struct pci_dev *dev,
+				       unsigned char reg,
+				       u32 *data)
+{
+	unsigned char bus = dev->bus->number;
+	unsigned char dev_fn = dev->devfn;
+        u32 intr;
+
+	if ((bus == 0) && (dev_fn >= PCI_DEVFN(31,0)))
+	        return -1; /* Because of a bug in the Galileo (for slot 31). */
+
+	/* Clear cause register bits */
+	GT_WRITE( GT_INTRCAUSE_OFS, ~(GT_INTRCAUSE_MASABORT0_BIT | 
+				      GT_INTRCAUSE_TARABORT0_BIT) );
+
+	/* Setup address */
+	GT_WRITE( GT_PCI0_CFGADDR_OFS, 
+		  (bus       << GT_PCI0_CFGADDR_BUSNUM_SHF) |
+		  (dev_fn    << GT_PCI0_CFGADDR_FUNCTNUM_SHF) |
+		  ((reg / 4) << GT_PCI0_CFGADDR_REGNUM_SHF)   |
+		  GT_PCI0_CFGADDR_CONFIGEN_BIT );
+
+	if (access_type == PCI_ACCESS_WRITE) {
+	        GT_WRITE( GT_PCI0_CFGDATA_OFS, *data );
+	} else {
+	        GT_READ( GT_PCI0_CFGDATA_OFS, *data );
+	}
+
+	/* Check for master or target abort */
+	GT_READ( GT_INTRCAUSE_OFS, intr );
+
+	if( intr & (GT_INTRCAUSE_MASABORT0_BIT | GT_INTRCAUSE_TARABORT0_BIT) )
+	{
+	        /* Error occured */
+
+	        /* Clear bits */
+	        GT_WRITE( GT_INTRCAUSE_OFS, ~(GT_INTRCAUSE_MASABORT0_BIT | 
+					      GT_INTRCAUSE_TARABORT0_BIT) );
+
+		return -1;
+	}
+
+	return 0;
+}
+
+#define LO(reg) (reg / 4)
+#define HI(reg) (reg / 4 + 1)
+
+volatile unsigned long * const vrc_pciregs = (void *)Vrc5074_BASE;
+
+static int lasat_pcibios_config_access_200(unsigned char access_type,
+				       struct pci_dev *dev,
+				       unsigned char reg,
+				       u32 *data)
+{
+	unsigned char bus = dev->bus->number;
+	unsigned char dev_fn = dev->devfn;
+	u32 adr, mask, err;
+
+	if ((bus == 0) && (PCI_SLOT(dev_fn) > 8))
+		/* The addressing scheme chosen leaves room for just
+		 * 8 devices on the first bus (besides the PCI
+		 * controller itself) */
+		return -1;
+
+	if ((bus == 0) && (dev_fn == PCI_DEVFN(0,0))) {
+		/* Access controller registers directly */
+		if (access_type == PCI_ACCESS_WRITE) {
+			vrc_pciregs[(0x200+reg) >> 2] = *data;
+		} else {
+			*data = vrc_pciregs[(0x200+reg) >> 2];
+		}
+	        return 0;
+	}
+
+	/* Temporarily map PCI Window 1 to config space */
+	mask = vrc_pciregs[LO(NILE4_PCIINIT1)];
+	vrc_pciregs[LO(NILE4_PCIINIT1)] = 0x0000001a | (bus ? 0x200 : 0);
+
+	/* Clear PCI Error register. This also clears the Error Type
+	 * bits in the Control register */
+	vrc_pciregs[LO(NILE4_PCIERR)] = 0;
+	vrc_pciregs[HI(NILE4_PCIERR)] = 0;
+
+	/* Setup address */
+	if (bus == 0)
+	        adr = KSEG1ADDR(PCI_WINDOW1) + ((1 << (PCI_SLOT(dev_fn) + 15)) | (PCI_FUNC(dev_fn) << 8) | (reg & ~3));
+	else
+	        adr = KSEG1ADDR(PCI_WINDOW1) | (bus << 16) | (dev_fn << 8) | (reg & ~3);
+
+#ifdef DEBUG_PCI
+	printk("PCI config %s: adr %x", access_type == PCI_ACCESS_WRITE ? "write" : "read", adr);
+#endif
+
+	if (access_type == PCI_ACCESS_WRITE) {
+	        *(u32 *)adr = *data;
+	} else {
+	        *data = *(u32 *)adr;
+	}
+
+#ifdef DEBUG_PCI
+	printk(" value = %x\n", *data);
+#endif
+
+	/* Check for master or target abort */
+	err = (vrc_pciregs[HI(NILE4_PCICTRL)] >> 5) & 0x7;
+
+	/* Restore PCI Window 1 */
+	vrc_pciregs[LO(NILE4_PCIINIT1)] = mask;
+
+	if (err)
+	{
+		/* Error occured */
+#ifdef DEBUG_PCI
+	        printk("\terror %x at adr %x\n", err, vrc_pciregs[LO(PCIERR)]);
+#endif
+		return -1;
+	}
+
+	return 0;
+}
+
+/*
+ * We can't address 8 and 16 bit words directly.  Instead we have to
+ * read/write a 32bit word and mask/modify the data we actually want.
+ */
+static int lasat_pcibios_read_config_byte(struct pci_dev *dev, int reg, u8 *val)
+{
+        u32 data=0, flags;
+
+	local_irq_save(flags);
+
+	if (lasat_pcibios_config_access(PCI_ACCESS_READ, dev, reg, &data)) {
+		local_irq_restore(flags);
+		return -1;
+	}
+
+	*val = (data >> ((reg & 3) << 3)) & 0xff;
+
+	local_irq_restore(flags);
+	return PCIBIOS_SUCCESSFUL;
+}
+
+
+static int lasat_pcibios_read_config_word(struct pci_dev *dev, int reg, u16 *val)
+{
+        u32 data=0, flags;
+
+	if (reg & 1)
+		return PCIBIOS_BAD_REGISTER_NUMBER;
+
+	local_irq_save(flags);
+
+	if (lasat_pcibios_config_access(PCI_ACCESS_READ, dev, reg, &data)) {
+		local_irq_restore(flags);
+		return -1;
+	}
+
+	*val = (data >> ((reg & 3) << 3)) & 0xffff;
+
+	local_irq_restore(flags);
+	return PCIBIOS_SUCCESSFUL;
+}
+
+static int lasat_pcibios_read_config_dword(struct pci_dev *dev, int reg, u32 *val)
+{
+        u32 data=0, flags;
+
+	if (reg & 3)
+		return PCIBIOS_BAD_REGISTER_NUMBER;
+
+	local_irq_save(flags);
+
+	if (lasat_pcibios_config_access(PCI_ACCESS_READ, dev, reg, &data)) {
+		local_irq_restore(flags);
+		return -1;
+	}
+
+	*val = data;
+
+	local_irq_restore(flags);
+	return PCIBIOS_SUCCESSFUL;
+}
+
+
+static int lasat_pcibios_write_config_byte(struct pci_dev *dev, int reg, u8 val)
+{
+        u32 data=0, flags, err;
+
+	local_irq_save(flags);
+
+        err = lasat_pcibios_config_access(PCI_ACCESS_READ, dev, reg, &data);
+        if (err)
+		goto out;
+
+	data = (data & ~(0xff << ((reg & 3) << 3))) |
+		(val << ((reg & 3) << 3));
+
+	err = lasat_pcibios_config_access(PCI_ACCESS_WRITE, dev, reg, &data);
+out:
+	local_irq_restore(flags);
+
+	if (err)
+		return -1;
+	else
+		return PCIBIOS_SUCCESSFUL;
+}
+
+static int lasat_pcibios_write_config_word(struct pci_dev *dev, int reg, u16 val)
+{
+	u32 data=0, flags, err;
+
+	if (reg & 1)
+		return PCIBIOS_BAD_REGISTER_NUMBER;
+       
+	local_irq_save(flags);
+
+        err = lasat_pcibios_config_access(PCI_ACCESS_READ, dev, reg, &data);
+        if (err)
+	       goto out;
+
+	data = (data & ~(0xffff << ((reg & 3) << 3))) | 
+	       (val << ((reg & 3) << 3));
+
+	err = lasat_pcibios_config_access(PCI_ACCESS_WRITE, dev, reg, &data);
+out:
+	local_irq_restore(flags);
+
+	if (err)
+		return -1;
+	else
+		return PCIBIOS_SUCCESSFUL;
+}
+
+static int lasat_pcibios_write_config_dword(struct pci_dev *dev, int reg, u32 val)
+{
+        u32 flags, err;
+
+	if (reg & 3)
+		return PCIBIOS_BAD_REGISTER_NUMBER;
+
+	local_irq_save(flags);
+
+	err = lasat_pcibios_config_access(PCI_ACCESS_WRITE, dev, reg, &val);
+	local_irq_restore(flags);
+
+	if (err)
+		return -1;
+	else
+		return PCIBIOS_SUCCESSFUL;
+}
+
+struct pci_ops lasat_pci_ops = {
+	lasat_pcibios_read_config_byte,
+	lasat_pcibios_read_config_word,
+	lasat_pcibios_read_config_dword,
+	lasat_pcibios_write_config_byte,
+	lasat_pcibios_write_config_word,
+	lasat_pcibios_write_config_dword
+};
+
+char * __init pcibios_setup(char *str)
+{
+	return str;
+}
+
+void __init pcibios_init(void)
+{
+	switch (mips_machtype) {
+	case MACH_LASAT_100:
+		lasat_pcibios_config_access = &lasat_pcibios_config_access_100;
+		break;
+	case MACH_LASAT_200:
+		lasat_pcibios_config_access = &lasat_pcibios_config_access_200;
+		break;
+	default:
+		panic("pcibios_init: mips_machtype incorrect");
+	}
+
+	Dprintk("pcibios_init()\n");
+	pci_scan_bus(0, &lasat_pci_ops, NULL);
+}
+
+void __init pcibios_fixup_bus(struct pci_bus *b)
+{
+	Dprintk("pcibios_fixup_bus()\n");
+}
+
+void pcibios_update_resource(struct pci_dev *dev, struct resource *root,
+			     struct resource *res, int resource)
+{
+}
+
+int __init pcibios_enable_device(struct pci_dev *dev, int mask)
+{
+	/* Not needed, since we enable all devices at startup.  */
+	return 0;
+}
+
+void __init pcibios_align_resource(void *data, struct resource *res,
+	unsigned long size, unsigned long align)
+{
+}
+
+unsigned __init int pcibios_assign_all_busses(void)
+{
+	return 1;
+}
+
+struct pci_fixup pcibios_fixups[] = {
+	{ 0 }
+};
diff -urNd -urNd linux-2.4.20/arch/mips/lasat/picvue.c linux-2.4.20-mipscvs-20050106/arch/mips/lasat/picvue.c
--- linux-2.4.20/arch/mips/lasat/picvue.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/picvue.c	2003-02-24 15:26:19.000000000 -0600
@@ -0,0 +1,241 @@
+/* 
+ * Picvue PVC160206 display driver
+ *
+ * Brian Murphy <brian@murphy.dk> 
+ *
+ */
+#include <linux/kernel.h>
+#include <linux/delay.h>
+#include <asm/bootinfo.h>
+#include <asm/lasat/lasat.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/errno.h>
+#include <linux/string.h>
+
+#include "picvue.h"
+
+#define PVC_BUSY		0x80
+#define PVC_NLINES		2
+#define PVC_DISPMEM		80
+#define PVC_LINELEN		PVC_DISPMEM / PVC_NLINES
+
+struct pvc_defs *picvue = NULL;
+
+DECLARE_MUTEX(pvc_sem);
+
+static void pvc_reg_write(u32 val) 
+{
+	*picvue->reg = val;
+}
+
+static u32 pvc_reg_read(void) 
+{
+	u32 tmp = *picvue->reg;
+	return tmp;
+}
+
+static void pvc_write_byte(u32 data, u8 byte)
+{
+	data |= picvue->e;
+	pvc_reg_write(data);
+	data &= ~picvue->data_mask;
+	data |= byte << picvue->data_shift;
+	pvc_reg_write(data);
+	ndelay(220);
+	pvc_reg_write(data & ~picvue->e);
+	ndelay(220);
+}
+
+static u8 pvc_read_byte(u32 data)
+{
+	u8 byte;
+
+	data |= picvue->e;
+	pvc_reg_write(data);
+	ndelay(220);
+	byte = (pvc_reg_read() & picvue->data_mask) >> picvue->data_shift;
+	data &= ~picvue->e;
+	pvc_reg_write(data);
+	ndelay(220);
+	return byte;
+}
+
+static u8 pvc_read_data(void)
+{
+	u32 data = pvc_reg_read();
+	u8 byte;
+	data |= picvue->rw; 
+	data &= ~picvue->rs;
+	pvc_reg_write(data);
+	ndelay(40);
+	byte = pvc_read_byte(data);
+	data |= picvue->rs; 
+	pvc_reg_write(data);
+	return byte;
+}
+
+#define TIMEOUT 1000
+static int pvc_wait(void)
+{
+	int i = TIMEOUT;
+	int err = 0;
+
+	while ((pvc_read_data() & PVC_BUSY) && i)
+		i--;
+	if (i == 0)
+		err = -ETIME;
+
+	return err;
+}
+
+#define MODE_INST 0
+#define MODE_DATA 1
+static void pvc_write(u8 byte, int mode)
+{
+	u32 data = pvc_reg_read();
+	data &= ~picvue->rw;
+	if (mode == MODE_DATA)
+		data |= picvue->rs;
+	else
+		data &= ~picvue->rs;
+	pvc_reg_write(data);
+	ndelay(40);
+	pvc_write_byte(data, byte);
+	if (mode == MODE_DATA)
+		data &= ~picvue->rs;
+	else
+		data |= picvue->rs;
+	pvc_reg_write(data);
+	pvc_wait();
+}
+
+void pvc_write_string(const unsigned char *str, u8 addr, int line)
+{
+	int i = 0;
+
+	if (line > 0 && (PVC_NLINES > 1))
+		addr += 0x40 * line;
+	pvc_write(0x80 | addr, MODE_INST);
+
+	while (*str != 0 && i < PVC_LINELEN) {
+		pvc_write(*str++, MODE_DATA);
+		i++;
+	}
+}
+
+void pvc_write_string_centered(const unsigned char *str, int line)
+{
+	int len = strlen(str);
+	u8 addr;
+
+	if (len > PVC_VISIBLE_CHARS)
+		addr = 0;
+	else
+		addr = (PVC_VISIBLE_CHARS - strlen(str))/2;
+
+	pvc_write_string(str, addr, line);
+}
+
+void pvc_dump_string(const unsigned char *str)
+{
+	int len = strlen(str);
+
+	pvc_clear();
+	pvc_write_string(str, 0, 0);
+	if (len > PVC_VISIBLE_CHARS)
+		pvc_write_string(&str[PVC_VISIBLE_CHARS], 0, 1);
+}
+
+#define BM_SIZE			8
+#define MAX_PROGRAMMABLE_CHARS	8
+int pvc_program_cg(int charnum, u8 bitmap[BM_SIZE])
+{
+	int i;
+	int addr;
+
+	if (charnum > MAX_PROGRAMMABLE_CHARS)
+		return -ENOENT;
+
+	addr = charnum * 8;
+	pvc_write(0x40 | addr, MODE_INST);
+
+	for (i=0; i<BM_SIZE; i++)
+		pvc_write(bitmap[i], MODE_DATA);
+	return 0;
+}
+
+#define FUNC_SET_CMD	0x20
+#define  EIGHT_BYTE	(1 << 4)
+#define  FOUR_BYTE	0
+#define  TWO_LINES	(1 << 3)
+#define  ONE_LINE	0
+#define  LARGE_FONT	(1 << 2)
+#define  SMALL_FONT	0
+static void pvc_funcset(u8 cmd)
+{
+	pvc_write(FUNC_SET_CMD | (cmd & (EIGHT_BYTE|TWO_LINES|LARGE_FONT)), MODE_INST);
+}
+
+#define ENTRYMODE_CMD		0x4
+#define  AUTO_INC		(1 << 1)
+#define  AUTO_DEC		0
+#define  CURSOR_FOLLOWS_DISP	(1 << 0)
+static void pvc_entrymode(u8 cmd)
+{
+	pvc_write(ENTRYMODE_CMD | (cmd & (AUTO_INC|CURSOR_FOLLOWS_DISP)), MODE_INST);
+}
+
+#define DISP_CNT_CMD	0x08
+#define  DISP_OFF	0
+#define  DISP_ON	(1 << 2)
+#define  CUR_ON		(1 << 1)
+#define  CUR_BLINK	(1 << 0)
+void pvc_dispcnt(u8 cmd)
+{
+	pvc_write(DISP_CNT_CMD | (cmd & (DISP_ON|CUR_ON|CUR_BLINK)), MODE_INST);
+}
+
+#define MOVE_CMD	0x10
+#define  DISPLAY	(1 << 3)
+#define  CURSOR		0
+#define  RIGHT		(1 << 2)
+#define  LEFT		0
+void pvc_move(u8 cmd)
+{
+	pvc_write(MOVE_CMD | (cmd & (DISPLAY|RIGHT)), MODE_INST);
+}
+
+#define CLEAR_CMD	0x1
+void pvc_clear(void)
+{
+	pvc_write(CLEAR_CMD, MODE_INST);
+}
+
+#define HOME_CMD	0x2
+void pvc_home(void)
+{
+	pvc_write(HOME_CMD, MODE_INST);
+}
+
+int pvc_init(void)
+{
+	u8 cmd = EIGHT_BYTE;
+
+	if (PVC_NLINES == 2)
+		cmd |= (SMALL_FONT|TWO_LINES);
+	else
+		cmd |= (LARGE_FONT|ONE_LINE);
+	pvc_funcset(cmd);
+	pvc_dispcnt(DISP_ON);
+	pvc_entrymode(AUTO_INC);
+
+	pvc_clear();
+	pvc_write_string_centered("Display", 0);
+	pvc_write_string_centered("Initialized", 1);
+
+	return 0;
+}
+
+module_init(pvc_init);
+MODULE_LICENSE("GPL");
diff -urNd -urNd linux-2.4.20/arch/mips/lasat/picvue.h linux-2.4.20-mipscvs-20050106/arch/mips/lasat/picvue.h
--- linux-2.4.20/arch/mips/lasat/picvue.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/picvue.h	2003-02-24 15:26:19.000000000 -0600
@@ -0,0 +1,48 @@
+/* 
+ * Picvue PVC160206 display driver
+ *
+ * Brian Murphy <brian.murphy@eicon.com> 
+ *
+ */
+#include <asm/semaphore.h>
+
+struct pvc_defs {
+	volatile u32 *reg;
+	u32 data_shift;
+	u32 data_mask;
+	u32 e;
+	u32 rw;
+	u32 rs;
+};
+
+extern struct pvc_defs *picvue;
+
+#define PVC_NLINES		2
+#define PVC_DISPMEM		80
+#define PVC_LINELEN		PVC_DISPMEM / PVC_NLINES
+#define PVC_VISIBLE_CHARS	16
+
+void pvc_write_string(const unsigned char *str, u8 addr, int line);
+void pvc_write_string_centered(const unsigned char *str, int line);
+void pvc_dump_string(const unsigned char *str);
+
+#define BM_SIZE			8
+#define MAX_PROGRAMMABLE_CHARS	8
+int pvc_program_cg(int charnum, u8 bitmap[BM_SIZE]);
+
+void pvc_dispcnt(u8 cmd);
+#define  DISP_OFF	0
+#define  DISP_ON	(1 << 2)
+#define  CUR_ON		(1 << 1)
+#define  CUR_BLINK	(1 << 0)
+
+void pvc_move(u8 cmd);
+#define  DISPLAY	(1 << 3)
+#define  CURSOR		0
+#define  RIGHT		(1 << 2)
+#define  LEFT		0
+
+void pvc_clear(void);
+void pvc_home(void);
+
+extern struct semaphore pvc_sem;
diff -urNd -urNd linux-2.4.20/arch/mips/lasat/picvue_proc.c linux-2.4.20-mipscvs-20050106/arch/mips/lasat/picvue_proc.c
--- linux-2.4.20/arch/mips/lasat/picvue_proc.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/picvue_proc.c	2003-02-24 15:26:19.000000000 -0600
@@ -0,0 +1,186 @@
+/* 
+ * Picvue PVC160206 display driver
+ *
+ * Brian Murphy <brian.murphy@eicon.com> 
+ *
+ */
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/errno.h>
+
+#include <linux/proc_fs.h>
+#include <linux/interrupt.h>
+
+#include <linux/timer.h>
+
+#include "picvue.h"
+
+static char pvc_lines[PVC_NLINES][PVC_LINELEN+1];
+static int pvc_linedata[PVC_NLINES];
+static struct proc_dir_entry *pvc_display_dir;
+static char *pvc_linename[PVC_NLINES] = {"line1", "line2"};
+#define DISPLAY_DIR_NAME "display"
+static int scroll_dir = 0, scroll_interval = 0;
+
+static struct timer_list timer;
+
+static void pvc_display(unsigned long data) {
+	int i;
+
+	pvc_clear();
+	for (i=0; i<PVC_NLINES; i++)
+		pvc_write_string(pvc_lines[i], 0, i);
+}
+
+static DECLARE_TASKLET(pvc_display_tasklet, &pvc_display, 0);
+
+static int pvc_proc_read_line(char *page, char **start,
+                             off_t off, int count,
+                             int *eof, void *data)
+{
+        char *origpage = page;
+	int lineno = *(int *)data;
+
+	if (lineno < 0 || lineno > PVC_NLINES) {
+		printk("proc_read_line: invalid lineno %d\n", lineno);
+		return 0;
+	}
+
+	down(&pvc_sem);
+        page += sprintf(page, "%s\n", pvc_lines[lineno]);
+	up(&pvc_sem);
+
+        return page - origpage; 
+}
+
+static int pvc_proc_write_line(struct file *file, const char *buffer,            
+                           unsigned long count, void *data)
+{
+        int origcount = count;
+	int lineno = *(int *)data;
+
+	if (lineno < 0 || lineno > PVC_NLINES) {
+		printk("proc_write_line: invalid lineno %d\n", lineno);
+		return origcount;
+	}
+
+	if (count > PVC_LINELEN)
+		count = PVC_LINELEN;
+
+	if (buffer[count-1] == '\n')
+		count--;
+
+	down(&pvc_sem);
+	strncpy(pvc_lines[lineno], buffer, count);
+	pvc_lines[lineno][count] = '\0';
+	up(&pvc_sem);
+
+	tasklet_schedule(&pvc_display_tasklet);
+
+        return origcount;
+}
+
+static int pvc_proc_write_scroll(struct file *file, const char *buffer,
+                           unsigned long count, void *data)
+{
+        int origcount = count;
+	int cmd = simple_strtol(buffer, NULL, 10);
+
+	down(&pvc_sem);
+	if (scroll_interval != 0)
+		del_timer(&timer);
+
+	if (cmd == 0) {
+		scroll_dir = 0;
+		scroll_interval = 0;
+	} else {
+		if (cmd < 0) {
+			scroll_dir = -1;
+			scroll_interval = -cmd;
+		} else {
+			scroll_dir = 1;
+			scroll_interval = cmd;
+		}
+		add_timer(&timer);
+	}
+	up(&pvc_sem);
+
+        return origcount;
+}
+
+static int pvc_proc_read_scroll(char *page, char **start,
+                             off_t off, int count,
+                             int *eof, void *data)
+{
+        char *origpage = page;
+
+	down(&pvc_sem);
+        page += sprintf(page, "%d\n", scroll_dir * scroll_interval);
+	up(&pvc_sem);
+
+        return page - origpage; 
+}
+
+
+void pvc_proc_timerfunc(unsigned long data)
+{
+	if (scroll_dir < 0)
+		pvc_move(DISPLAY|RIGHT);
+	else if (scroll_dir > 0)
+		pvc_move(DISPLAY|LEFT);
+
+	timer.expires = jiffies + scroll_interval;
+	add_timer(&timer);
+}
+
+static void pvc_proc_cleanup(void)
+{
+	int i;
+	for (i=0; i<PVC_NLINES; i++)
+		remove_proc_entry(pvc_linename[i], pvc_display_dir);
+	remove_proc_entry("scroll", pvc_display_dir);
+	remove_proc_entry(DISPLAY_DIR_NAME, NULL);
+
+	del_timer(&timer);
+}
+
+static int __init pvc_proc_init(void)
+{
+	struct proc_dir_entry *proc_entry;
+	int i;
+
+	pvc_display_dir = proc_mkdir(DISPLAY_DIR_NAME, NULL);
+	if (pvc_display_dir == NULL)
+		goto error;
+
+	for (i=0; i<PVC_NLINES; i++) {
+		strcpy(pvc_lines[i], "");
+		pvc_linedata[i] = i;
+	}
+	for (i=0; i<PVC_NLINES; i++) {
+		proc_entry = create_proc_entry(pvc_linename[i], 0644, pvc_display_dir);
+		if (proc_entry == NULL)
+			goto error;
+		proc_entry->read_proc = pvc_proc_read_line;
+		proc_entry->write_proc = pvc_proc_write_line;
+		proc_entry->data = &pvc_linedata[i];
+	}
+	proc_entry = create_proc_entry("scroll", 0644, pvc_display_dir);
+	if (proc_entry == NULL)
+		goto error;
+	proc_entry->write_proc = pvc_proc_write_scroll;
+	proc_entry->read_proc = pvc_proc_read_scroll;
+
+	init_timer(&timer);
+	timer.function = pvc_proc_timerfunc;
+
+	return 0;
+error:
+	pvc_proc_cleanup();
+	return -ENOMEM;
+}
+
+module_init(pvc_proc_init);
+module_exit(pvc_proc_cleanup);
+MODULE_LICENSE("GPL");
diff -urNd -urNd linux-2.4.20/arch/mips/lasat/prom.c linux-2.4.20-mipscvs-20050106/arch/mips/lasat/prom.c
--- linux-2.4.20/arch/mips/lasat/prom.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/prom.c	2003-02-24 15:26:19.000000000 -0600
@@ -0,0 +1,135 @@
+/*
+ * PROM interface routines.
+ */
+#include <linux/types.h>
+#include <linux/config.h>
+#include <linux/init.h>
+#include <linux/string.h>
+#include <linux/ctype.h>
+#include <linux/kernel.h>
+#include <linux/mm.h>
+#include <linux/bootmem.h>
+#include <linux/ioport.h>
+#include <asm/bootinfo.h>
+#include <asm/lasat/lasat.h>
+#include <asm/cpu.h>
+
+#include "at93c.h"
+#include <asm/lasat/eeprom.h>
+#include "prom.h"
+
+#define RESET_VECTOR	0xbfc00000
+#define PROM_JUMP_TABLE_ENTRY(n) (*((u32 *)(RESET_VECTOR + 0x20) + n))
+#define PROM_DISPLAY_ADDR	PROM_JUMP_TABLE_ENTRY(0)
+#define PROM_PUTC_ADDR		PROM_JUMP_TABLE_ENTRY(1)
+#define PROM_MONITOR_ADDR	PROM_JUMP_TABLE_ENTRY(2)
+
+static void null_prom_printf(const char * fmt, ...)
+{
+}
+
+static void null_prom_display(const char *string, int pos, int clear)
+{
+}
+
+static void null_prom_monitor(void)
+{
+}
+
+static void null_prom_putc(char c)
+{
+}
+
+/* these are functions provided by the bootloader */
+static void (* prom_putc)(char c) = null_prom_putc;
+void (* prom_printf)(const char * fmt, ...) = null_prom_printf;
+void (* prom_display)(const char *string, int pos, int clear) = 
+		null_prom_display;
+void (* prom_monitor)(void) = null_prom_monitor;
+
+#define PROM_PRINTFBUF_SIZE 256
+static char prom_printfbuf[PROM_PRINTFBUF_SIZE];
+
+static void real_prom_printf(const char * fmt, ...)
+{
+	va_list ap;
+	int len;
+	char *c = prom_printfbuf;
+	int i;
+
+	va_start(ap, fmt);
+	len = vsnprintf(prom_printfbuf, PROM_PRINTFBUF_SIZE, fmt, ap);
+	va_end(ap);
+
+	/* output overflowed the buffer */
+	if (len < 0 || len > PROM_PRINTFBUF_SIZE)
+		len = PROM_PRINTFBUF_SIZE;
+
+	for (i=0; i < len; i++) {
+		if (*c == '\n')
+			prom_putc('\r');
+		prom_putc(*c++);
+	}
+}
+
+static void setup_prom_vectors(void)
+{
+	u32 version = *(u32 *)(RESET_VECTOR + 0x90);
+
+	if (version == 306) {
+		prom_display = (void *)PROM_DISPLAY_ADDR;
+		prom_putc = (void *)PROM_PUTC_ADDR;
+		prom_printf = real_prom_printf;
+		prom_monitor = (void *)PROM_MONITOR_ADDR;
+	}
+	prom_printf("prom vectors set up\n");
+}
+
+char arcs_cmdline[CL_SIZE];
+
+static struct at93c_defs at93c_defs[N_MACHTYPES] = {
+	{(void *)AT93C_REG_100, (void *)AT93C_RDATA_REG_100, AT93C_RDATA_SHIFT_100,
+	AT93C_WDATA_SHIFT_100, AT93C_CS_M_100, AT93C_CLK_M_100},
+	{(void *)AT93C_REG_200, (void *)AT93C_RDATA_REG_200, AT93C_RDATA_SHIFT_200,
+	AT93C_WDATA_SHIFT_200, AT93C_CS_M_200, AT93C_CLK_M_200},
+};
+
+void __init prom_init(int argc, char **argv, char **envp, int *prom_vec)
+{
+	setup_prom_vectors();
+
+	if (mips_cpu.cputype == CPU_R5000)
+		mips_machtype = MACH_LASAT_200;
+	else
+		mips_machtype = MACH_LASAT_100;
+
+	at93c = &at93c_defs[mips_machtype];
+
+	lasat_init_board_info();		/* Read info from EEPROM */
+
+	mips_machgroup = MACH_GROUP_LASAT;
+
+	/* Get the command line */
+	if (argc>0) {
+		strncpy(arcs_cmdline, argv[0], CL_SIZE-1);
+		arcs_cmdline[CL_SIZE-1] = '\0';
+	}
+
+	/* Set the I/O base address */
+	set_io_port_base(KSEG1);
+
+	/* Set memory regions */
+	ioport_resource.start = 0;		/* Should be KSEGx ???	*/
+	ioport_resource.end = 0xffffffff;	/* Should be ???	*/
+
+	add_memory_region(0, lasat_board_info.li_memsize, BOOT_MEM_RAM);
+}
+
+void prom_free_prom_memory(void)
+{
+}
+
+const char *get_system_type(void)
+{
+	return lasat_board_info.li_bmstr;
+}
diff -urNd -urNd linux-2.4.20/arch/mips/lasat/prom.h linux-2.4.20-mipscvs-20050106/arch/mips/lasat/prom.h
--- linux-2.4.20/arch/mips/lasat/prom.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/prom.h	2003-02-24 15:26:19.000000000 -0600
@@ -0,0 +1,6 @@
+#ifndef PROM_H
+#define PROM_H
+extern void (* prom_display)(const char *string, int pos, int clear);
+extern void (* prom_monitor)(void);
+extern void (* prom_printf)(const char * fmt, ...);
+#endif
diff -urNd -urNd linux-2.4.20/arch/mips/lasat/reset.c linux-2.4.20-mipscvs-20050106/arch/mips/lasat/reset.c
--- linux-2.4.20/arch/mips/lasat/reset.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/reset.c	2003-02-24 15:26:19.000000000 -0600
@@ -0,0 +1,73 @@
+/* 
+ *
+ * Thomas Horsten <thh@lasat.com>
+ * Copyright (C) 2000 LASAT Networks A/S.
+ *
+ * ########################################################################
+ *
+ *  This program is free software; you can distribute it and/or modify it
+ *  under the terms of the GNU General Public License (Version 2) as
+ *  published by the Free Software Foundation.
+ *
+ *  This program is distributed in the hope it will be useful, but WITHOUT
+ *  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ *  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ *  for more details.
+ *
+ *  You should have received a copy of the GNU General Public License along
+ *  with this program; if not, write to the Free Software Foundation, Inc.,
+ *  59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
+ *
+ * ########################################################################
+ *
+ * Reset the LASAT board.
+ *
+ */
+
+#include <linux/kernel.h>
+#include <asm/reboot.h>
+#include <asm/system.h>
+#include <asm/lasat/lasat.h>
+#include "picvue.h"
+#include "prom.h"
+
+static void lasat_machine_restart(char *command);
+static void lasat_machine_halt(void);
+
+/* Used to set machine to boot in service mode via /proc interface */
+int lasat_boot_to_service = 0;
+
+static void lasat_machine_restart(char *command)
+{
+	local_irq_disable();
+
+	if (lasat_boot_to_service) {
+		printk("machine_restart: Rebooting to service mode\n");
+		*(volatile unsigned int *)0xa0000024 = 0xdeadbeef;
+		*(volatile unsigned int *)0xa00000fc = 0xfedeabba;
+	}
+	*lasat_misc->reset_reg = 0xbedead;
+	for (;;) ;
+}
+
+#define MESSAGE "System halted"
+static void lasat_machine_halt(void)
+{
+	local_irq_disable();
+
+	/* Disable interrupts and loop forever */
+	printk(KERN_NOTICE MESSAGE "\n");
+#ifdef CONFIG_PICVUE
+	pvc_clear();
+	pvc_write_string(MESSAGE, 0, 0);
+#endif
+	prom_monitor();
+	for (;;) ;
+}
+
+void lasat_reboot_setup(void)
+{
+	_machine_restart = lasat_machine_restart;
+	_machine_halt = lasat_machine_halt;
+	_machine_power_off = lasat_machine_halt;
+}
diff -urNd -urNd linux-2.4.20/arch/mips/lasat/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/lasat/setup.c
--- linux-2.4.20/arch/mips/lasat/setup.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/setup.c	2003-02-24 15:26:19.000000000 -0600
@@ -0,0 +1,225 @@
+/*
+ * setup.c
+ *
+ * Carsten Langgaard, carstenl@mips.com
+ * Copyright (C) 1999 MIPS Technologies, Inc.  All rights reserved.
+ *
+ * Thomas Horsten <thh@lasat.com>
+ * Copyright (C) 2000 LASAT Networks A/S.
+ *
+ * Brian Murphy <brian@murphy.dk>
+ *
+ * ########################################################################
+ *
+ *  This program is free software; you can distribute it and/or modify it
+ *  under the terms of the GNU General Public License (Version 2) as
+ *  published by the Free Software Foundation.
+ *
+ *  This program is distributed in the hope it will be useful, but WITHOUT
+ *  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ *  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ *  for more details.
+ *
+ *  You should have received a copy of the GNU General Public License along
+ *  with this program; if not, write to the Free Software Foundation, Inc.,
+ *  59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
+ *
+ * ########################################################################
+ *
+ * Lasat specific setup.
+ */
+#include <linux/config.h>
+#include <linux/init.h>
+#include <linux/sched.h>
+#include <linux/pci.h>
+#include <linux/ide.h>
+
+#include <linux/interrupt.h>
+#include <asm/time.h>
+
+#include <asm/cpu.h>
+#include <asm/bootinfo.h>
+#include <asm/irq.h>
+#include <asm/lasat/lasat.h>
+
+#include <linux/serial.h>
+#include <asm/serial.h>
+#include <asm/lasat/serial.h>
+
+#if CONFIG_PICVUE
+#include <linux/notifier.h>
+#endif
+
+#include "ds1603.h"
+#include "at93c.h"
+#include <asm/lasat/ds1603.h>
+#include <asm/lasat/picvue.h>
+#include <asm/lasat/eeprom.h>
+
+#include "prom.h"
+
+int lasat_command_line = 0;
+void lasatint_init(void);
+
+#ifdef CONFIG_BLK_DEV_IDE
+extern struct ide_ops std_ide_ops;
+extern struct ide_ops *ide_ops;
+#endif
+
+extern char arcs_cmdline[CL_SIZE];
+
+extern void lasat_reboot_setup(void);
+extern void pcisetup(void);
+extern void edhac_init(void *, void *, void *);
+extern void addrflt_init(void);
+
+void __init bus_error_init(void) { /* nothing */ }
+
+struct lasat_misc lasat_misc_info[N_MACHTYPES] = {
+	{(void *)KSEG1ADDR(0x1c840000), (void *)KSEG1ADDR(0x1c800000), 2},
+	{(void *)KSEG1ADDR(0x11080000), (void *)KSEG1ADDR(0x11000000), 6}
+};
+
+struct lasat_misc *lasat_misc = NULL;
+
+#ifdef CONFIG_DS1603
+static struct ds_defs ds_defs[N_MACHTYPES] = {
+	{ (void *)DS1603_REG_100, (void *)DS1603_REG_100,
+		DS1603_RST_100, DS1603_CLK_100, DS1603_DATA_100,
+		DS1603_DATA_SHIFT_100, 0, 0 },
+	{ (void *)DS1603_REG_200, (void *)DS1603_DATA_REG_200,
+		DS1603_RST_200, DS1603_CLK_200, DS1603_DATA_200,
+		DS1603_DATA_READ_SHIFT_200, 1, 2000 }
+};
+#endif
+
+#ifdef CONFIG_PICVUE
+#include "picvue.h"
+static struct pvc_defs pvc_defs[N_MACHTYPES] = {
+	{ (void *)PVC_REG_100, PVC_DATA_SHIFT_100, PVC_DATA_M_100,
+		PVC_E_100, PVC_RW_100, PVC_RS_100 },
+	{ (void *)PVC_REG_200, PVC_DATA_SHIFT_200, PVC_DATA_M_200,
+		PVC_E_200, PVC_RW_200, PVC_RS_200 }
+};
+#endif
+
+static int lasat_panic_display(struct notifier_block *this,
+			     unsigned long event, void *ptr)
+{
+#ifdef CONFIG_PICVUE
+	unsigned char *string = ptr;
+	if (string == NULL)
+		string = "Kernel Panic";
+	pvc_dump_string(string);
+#endif
+	return NOTIFY_DONE;
+}
+
+static int lasat_panic_prom_monitor(struct notifier_block *this,
+			     unsigned long event, void *ptr)
+{
+	prom_monitor();
+	return NOTIFY_DONE;
+}
+
+static struct notifier_block lasat_panic_block[] = 
+{
+	{ lasat_panic_display, NULL, INT_MAX },
+	{ lasat_panic_prom_monitor, NULL, INT_MIN }
+};
+
+#ifdef CONFIG_BLK_DEV_IDE
+static int lasat_ide_default_irq(ide_ioreg_t base) {
+	return 0;
+}
+
+static ide_ioreg_t lasat_ide_default_io_base(int index) {
+	return 0;
+}
+#endif
+
+static void lasat_time_init(void)
+{
+	mips_counter_frequency = lasat_board_info.li_cpu_hz / 2;
+}
+
+static void lasat_timer_setup(struct irqaction *irq)
+{
+
+	write_c0_compare(
+		read_c0_count() + 
+		mips_counter_frequency / HZ);
+	change_c0_status(ST0_IM, IE_IRQ0 | IE_IRQ5);
+}
+
+#define MIPS_CPU_TIMER_IRQ 7
+asmlinkage void lasat_timer_interrupt(struct pt_regs *regs)
+{
+	ll_timer_interrupt(MIPS_CPU_TIMER_IRQ, regs);
+}
+
+void __init serial_init(void)
+{
+#ifdef CONFIG_SERIAL
+	struct serial_struct s;
+
+	memset(&s, 0, sizeof(s));
+
+	s.flags = STD_COM_FLAGS;
+	s.io_type = SERIAL_IO_MEM;
+
+	if (mips_machtype == MACH_LASAT_100) {
+		s.baud_base = LASAT_BASE_BAUD_100;
+		s.irq = LASATINT_UART_100;
+		s.iomem_reg_shift = LASAT_UART_REGS_SHIFT_100;
+		s.iomem_base = (u8 *)KSEG1ADDR(LASAT_UART_REGS_BASE_100);
+	} else {
+		s.baud_base = LASAT_BASE_BAUD_200;
+		s.irq = LASATINT_UART_200;
+		s.iomem_reg_shift = LASAT_UART_REGS_SHIFT_200;
+		s.iomem_base = (u8 *)KSEG1ADDR(LASAT_UART_REGS_BASE_200);
+	}
+
+	if (early_serial_setup(&s) != 0)
+		printk(KERN_ERR "Serial setup failed!\n");
+#endif
+}
+
+void __init lasat_setup(void)
+{
+	int i;
+	lasat_misc  = &lasat_misc_info[mips_machtype];
+#ifdef CONFIG_PICVUE
+	picvue = &pvc_defs[mips_machtype];
+#endif
+
+	/* Set up panic notifier */
+	for (i = 0; i < sizeof(lasat_panic_block) / sizeof(struct notifier_block); i++)
+		notifier_chain_register(&panic_notifier_list, &lasat_panic_block[i]);
+
+#ifdef CONFIG_BLK_DEV_IDE
+	ide_ops = &std_ide_ops;
+	ide_ops->ide_default_irq = &lasat_ide_default_irq;
+	ide_ops->ide_default_io_base = &lasat_ide_default_io_base;
+#endif
+
+	lasat_reboot_setup();
+
+	board_time_init = lasat_time_init;
+	board_timer_setup = lasat_timer_setup;
+
+#ifdef CONFIG_DS1603
+	ds1603 = &ds_defs[mips_machtype];
+	rtc_get_time = ds1603_read;
+	rtc_set_time = ds1603_set;
+#endif
+
+	serial_init();
+
+	/* Switch from prom exception handler to normal mode */
+	change_c0_status(ST0_BEV,0);
+
+	prom_printf("Lasat specific initialization complete\n");
+}
+
+
diff -urNd -urNd linux-2.4.20/arch/mips/lasat/sysctl.c linux-2.4.20-mipscvs-20050106/arch/mips/lasat/sysctl.c
--- linux-2.4.20/arch/mips/lasat/sysctl.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/sysctl.c	2003-02-24 15:26:19.000000000 -0600
@@ -0,0 +1,359 @@
+/*
+ * sysctl.c
+ *
+ * Thomas Horsten <thh@lasat.com>
+ * Copyright (C) 2000 LASAT Networks A/S.
+ *
+ * ########################################################################
+ *
+ *  This program is free software; you can distribute it and/or modify it
+ *  under the terms of the GNU General Public License (Version 2) as
+ *  published by the Free Software Foundation.
+ *
+ *  This program is distributed in the hope it will be useful, but WITHOUT
+ *  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ *  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ *  for more details.
+ *
+ *  You should have received a copy of the GNU General Public License along
+ *  with this program; if not, write to the Free Software Foundation, Inc.,
+ *  59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
+ *
+ * ########################################################################
+ *
+ * Routines specific to the LASAT boards
+ */
+#include <linux/types.h>
+#include <asm/lasat/lasat.h>
+
+#include <linux/config.h>
+#include <linux/module.h>
+#include <linux/sysctl.h>
+#include <linux/stddef.h>
+#include <linux/init.h>
+#include <linux/ctype.h>
+#include <linux/string.h>
+#include <linux/net.h>
+#include <linux/inet.h>
+#include <asm/uaccess.h>
+
+#include "sysctl.h"
+#include "ds1603.h"
+
+static DECLARE_MUTEX(lasat_info_sem);
+
+/* Strategy function to write EEPROM after changing string entry */ 
+int sysctl_lasatstring(ctl_table *table, int *name, int nlen,
+		void *oldval, size_t *oldlenp,
+		void *newval, size_t newlen, void **context)
+{
+	int r;
+	down(&lasat_info_sem);
+	r = sysctl_string(table, name, 
+			  nlen, oldval, oldlenp, newval, newlen, context);
+	if (r < 0) {
+		up(&lasat_info_sem);
+		return r;
+	}
+	if (newval && newlen) {
+		lasat_write_eeprom_info();
+	}
+	up(&lasat_info_sem);
+	return 1;
+}
+
+
+/* And the same for proc */
+int proc_dolasatstring(ctl_table *table, int write, struct file *filp,
+		       void *buffer, size_t *lenp)
+{
+	int r;
+	down(&lasat_info_sem);
+	r = proc_dostring(table, write, filp, buffer, lenp);
+	if ( (!write) || r) {
+		up(&lasat_info_sem);
+		return r;
+	}
+	lasat_write_eeprom_info();
+	up(&lasat_info_sem);
+	return 0;
+}
+
+/* proc function to write EEPROM after changing int entry */ 
+int proc_dolasatint(ctl_table *table, int write, struct file *filp,
+		       void *buffer, size_t *lenp)
+{
+	int r;
+	down(&lasat_info_sem);
+	r = proc_dointvec(table, write, filp, buffer, lenp);
+	if ( (!write) || r) {
+		up(&lasat_info_sem);
+		return r;
+	}
+	lasat_write_eeprom_info();
+	up(&lasat_info_sem);
+	return 0;
+}
+
+static int rtctmp;
+
+#ifdef CONFIG_DS1603
+/* proc function to read/write RealTime Clock */ 
+int proc_dolasatrtc(ctl_table *table, int write, struct file *filp,
+		       void *buffer, size_t *lenp)
+{
+	int r;
+	down(&lasat_info_sem);
+	if (!write) {
+		rtctmp = ds1603_read();
+		/* check for time < 0 and set to 0 */
+		if (rtctmp < 0)
+			rtctmp = 0;
+	}
+	r = proc_dointvec(table, write, filp, buffer, lenp);
+	if ( (!write) || r) {
+		up(&lasat_info_sem);
+		return r;
+	}
+	ds1603_set(rtctmp);
+	up(&lasat_info_sem);
+	return 0;
+}
+#endif
+
+/* Sysctl for setting the IP addresses */
+int sysctl_lasat_intvec(ctl_table *table, int *name, int nlen,
+		    void *oldval, size_t *oldlenp,
+		    void *newval, size_t newlen, void **context)
+{
+	int r;
+	down(&lasat_info_sem);
+	r = sysctl_intvec(table, name, nlen, oldval, oldlenp, newval, newlen, context);
+	if (r < 0) {
+		up(&lasat_info_sem);
+		return r;
+	}
+	if (newval && newlen) {
+		lasat_write_eeprom_info();
+	}
+	up(&lasat_info_sem);
+	return 1;
+}
+
+#if CONFIG_DS1603
+/* Same for RTC */
+int sysctl_lasat_rtc(ctl_table *table, int *name, int nlen,
+		    void *oldval, size_t *oldlenp,
+		    void *newval, size_t newlen, void **context)
+{
+	int r;
+	down(&lasat_info_sem);
+	rtctmp = ds1603_read();
+	if (rtctmp < 0)
+		rtctmp = 0;
+	r = sysctl_intvec(table, name, nlen, oldval, oldlenp, newval, newlen, context);
+	if (r < 0) {
+		up(&lasat_info_sem);
+		return r;
+	}
+	if (newval && newlen) {
+		ds1603_set(rtctmp);
+	}
+	up(&lasat_info_sem);
+	return 1;
+}
+#endif
+
+#ifdef CONFIG_INET
+static char lasat_bcastaddr[16];
+
+void update_bcastaddr(void)
+{
+	unsigned int ip;
+	
+	ip = lasat_board_info.li_eeprom_info.ipaddr |
+		~lasat_board_info.li_eeprom_info.netmask;
+
+	sprintf(lasat_bcastaddr, "%d.%d.%d.%d",
+			(ip      ) & 0xff,
+			(ip >>  8) & 0xff,
+			(ip >> 16) & 0xff,
+			(ip >> 24) & 0xff);
+}
+
+static char proc_lasat_ipbuf[32];
+/* Parsing of IP address */
+int proc_lasat_ip(ctl_table *table, int write, struct file *filp,
+		       void *buffer, size_t *lenp)
+{
+	int len;
+        unsigned int ip;
+	char *p, c;
+
+	if (!table->data || !table->maxlen || !*lenp ||
+	    (filp->f_pos && !write)) {
+		*lenp = 0;
+		return 0;
+	}
+
+	down(&lasat_info_sem);
+	if (write) {
+		len = 0;
+		p = buffer;
+		while (len < *lenp) {
+			if(get_user(c, p++)) {
+				up(&lasat_info_sem);
+				return -EFAULT;
+			}
+			if (c == 0 || c == '\n')
+				break;
+			len++;
+		}
+		if (len >= sizeof(proc_lasat_ipbuf)-1) 
+			len = sizeof(proc_lasat_ipbuf) - 1;
+		if (copy_from_user(proc_lasat_ipbuf, buffer, len))
+		{
+			up(&lasat_info_sem);
+			return -EFAULT;
+		}
+		proc_lasat_ipbuf[len] = 0;
+		filp->f_pos += *lenp;
+		/* Now see if we can convert it to a valid IP */
+		ip = in_aton(proc_lasat_ipbuf);
+		*(unsigned int *)(table->data) = ip;
+		lasat_write_eeprom_info();
+	} else {
+		ip = *(unsigned int *)(table->data);
+		sprintf(proc_lasat_ipbuf, "%d.%d.%d.%d",
+			(ip      ) & 0xff,
+			(ip >>  8) & 0xff,
+			(ip >> 16) & 0xff,
+			(ip >> 24) & 0xff);
+		len = strlen(proc_lasat_ipbuf);
+		if (len > *lenp)
+			len = *lenp;
+		if (len)
+			if(copy_to_user(buffer, proc_lasat_ipbuf, len)) {
+				up(&lasat_info_sem);
+				return -EFAULT;
+			}
+		if (len < *lenp) {
+			if(put_user('\n', ((char *) buffer) + len)) {
+				up(&lasat_info_sem);
+				return -EFAULT;
+			}
+			len++;
+		}
+		*lenp = len;
+		filp->f_pos += len;
+	}
+	update_bcastaddr();
+	up(&lasat_info_sem);
+	return 0;
+}
+#endif /* defined(CONFIG_INET) */
+
+static int sysctl_lasat_eeprom_value(ctl_table *table, int *name, int nlen, 
+				     void *oldval, size_t *oldlenp, 
+				     void *newval, size_t newlen,
+				     void **context)
+{
+	int r;
+
+	down(&lasat_info_sem);
+	r = sysctl_intvec(table, name, nlen, oldval, oldlenp, newval, newlen, context);
+	if (r < 0) {
+		up(&lasat_info_sem);
+		return r;
+	}
+
+	if (newval && newlen)
+	{
+		if (name && *name == LASAT_PRID)
+			lasat_board_info.li_eeprom_info.prid = *(int*)newval;
+
+		lasat_write_eeprom_info();
+		lasat_init_board_info();
+	}
+	up(&lasat_info_sem);
+
+	return 0;
+}
+
+int proc_lasat_eeprom_value(ctl_table *table, int write, struct file *filp,
+		       void *buffer, size_t *lenp)
+{
+	int r;
+	down(&lasat_info_sem);
+	r = proc_dointvec(table, write, filp, buffer, lenp);
+	if ( (!write) || r) {
+		up(&lasat_info_sem);
+		return r;
+	}
+	if (filp && filp->f_dentry)
+	{
+		if (!strcmp(filp->f_dentry->d_name.name, "prid"))
+			lasat_board_info.li_eeprom_info.prid = lasat_board_info.li_prid;
+		if (!strcmp(filp->f_dentry->d_name.name, "debugaccess"))
+			lasat_board_info.li_eeprom_info.debugaccess = lasat_board_info.li_debugaccess;
+	}
+	lasat_write_eeprom_info();	
+	up(&lasat_info_sem);
+	return 0;
+}
+
+extern int lasat_boot_to_service;
+
+#ifdef CONFIG_SYSCTL
+
+static ctl_table lasat_table[] = {
+	{LASAT_CPU_HZ, "cpu-hz", &lasat_board_info.li_cpu_hz, sizeof(int),
+	 0444, NULL, &proc_dointvec, &sysctl_intvec},
+	{LASAT_BUS_HZ, "bus-hz", &lasat_board_info.li_bus_hz, sizeof(int),
+	 0444, NULL, &proc_dointvec, &sysctl_intvec},
+	{LASAT_MODEL, "bmid", &lasat_board_info.li_bmid, sizeof(int),
+	 0444, NULL, &proc_dointvec, &sysctl_intvec},
+	{LASAT_PRID, "prid", &lasat_board_info.li_prid, sizeof(int),
+	 0644, NULL, &proc_lasat_eeprom_value, &sysctl_lasat_eeprom_value},
+#ifdef CONFIG_INET
+	{LASAT_IPADDR, "ipaddr", &lasat_board_info.li_eeprom_info.ipaddr, sizeof(int),
+	 0644, NULL, &proc_lasat_ip, &sysctl_lasat_intvec},
+	{LASAT_NETMASK, "netmask", &lasat_board_info.li_eeprom_info.netmask, sizeof(int),
+	 0644, NULL, &proc_lasat_ip, &sysctl_lasat_intvec},
+	{LASAT_BCAST, "bcastaddr", &lasat_bcastaddr, 
+		sizeof(lasat_bcastaddr), 0600, NULL, 
+		&proc_dostring, &sysctl_string},
+#endif
+	{LASAT_PASSWORD, "passwd_hash", &lasat_board_info.li_eeprom_info.passwd_hash, sizeof(lasat_board_info.li_eeprom_info.passwd_hash),
+	 0600, NULL, &proc_dolasatstring, &sysctl_lasatstring},
+	{LASAT_SBOOT, "boot-service", &lasat_boot_to_service, sizeof(int),
+	 0644, NULL, &proc_dointvec, &sysctl_intvec},
+#if CONFIG_DS1603
+	{LASAT_RTC, "rtc", &rtctmp, sizeof(int),
+	 0644, NULL, &proc_dolasatrtc, &sysctl_lasat_rtc},
+#endif
+	{LASAT_NAMESTR, "namestr", &lasat_board_info.li_namestr, sizeof(lasat_board_info.li_namestr),
+	 0444, NULL, &proc_dostring, &sysctl_string},
+	{LASAT_TYPESTR, "typestr", &lasat_board_info.li_typestr, sizeof(lasat_board_info.li_typestr),
+	 0444, NULL, &proc_dostring, &sysctl_string},
+	{0}
+};
+
+#define CTL_LASAT 1	// CTL_ANY ???
+static ctl_table lasat_root_table[] = {
+	{ CTL_LASAT, "lasat", NULL, 0, 0555, lasat_table },
+	{ 0 }
+};
+
+static int __init lasat_register_sysctl(void)
+{
+	struct ctl_table_header *lasat_table_header;
+
+	lasat_table_header =
+		register_sysctl_table(lasat_root_table, 0);
+
+	return 0;
+}
+
+__initcall(lasat_register_sysctl);
+#endif /* CONFIG_SYSCTL */
diff -urNd -urNd linux-2.4.20/arch/mips/lasat/sysctl.h linux-2.4.20-mipscvs-20050106/arch/mips/lasat/sysctl.h
--- linux-2.4.20/arch/mips/lasat/sysctl.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/sysctl.h	2003-02-24 15:26:19.000000000 -0600
@@ -0,0 +1,24 @@
+/*
+ * LASAT sysctl values
+ */
+
+#ifndef _LASAT_SYSCTL_H
+#define _LASAT_SYSCTL_H
+
+/* /proc/sys/lasat */
+enum {
+	LASAT_CPU_HZ=1,
+	LASAT_BUS_HZ,
+	LASAT_MODEL,
+	LASAT_PRID,
+	LASAT_IPADDR,
+	LASAT_NETMASK,
+	LASAT_BCAST,
+	LASAT_PASSWORD,
+	LASAT_SBOOT,
+	LASAT_RTC,
+	LASAT_NAMESTR,
+	LASAT_TYPESTR,
+};
+
+#endif /* _LASAT_SYSCTL_H */
diff -urNd -urNd linux-2.4.20/arch/mips/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/lib/CVS/Entries
--- linux-2.4.20/arch/mips/lib/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lib/CVS/Entries	2005-01-06 23:00:07.000000000 -0600
@@ -0,0 +1,23 @@
+/.cvsignore/1.2/Tue Mar 17 22:07:39 1998/-ko/Tlinux_2_4_20
+/Makefile/1.20.2.4/Tue Jan 28 02:31:33 2003/-ko/Tlinux_2_4_20
+/csum_partial.S/1.3/Thu Sep  6 13:12:02 2001/-ko/Tlinux_2_4_20
+/csum_partial_copy.c/1.4.2.1/Mon Aug  5 23:53:34 2002/-ko/Tlinux_2_4_20
+/dump_tlb.c/1.8.2.7/Thu Dec 19 14:02:56 2002/-ko/Tlinux_2_4_20
+/floppy-no.c/1.2/Thu Sep  6 13:12:02 2001/-ko/Tlinux_2_4_20
+/floppy-std.c/1.4.2.1/Mon Aug  5 23:53:34 2002/-ko/Tlinux_2_4_20
+/ide-no.c/1.4.2.1/Mon Aug  5 23:53:34 2002/-ko/Tlinux_2_4_20
+/ide-std.c/1.5.2.1/Mon Aug  5 23:53:34 2002/-ko/Tlinux_2_4_20
+/kbd-no.c/1.2/Thu Sep  6 13:12:02 2001/-ko/Tlinux_2_4_20
+/kbd-std.c/1.5.2.1/Wed May 29 03:03:17 2002/-ko/Tlinux_2_4_20
+/memcpy.S/1.6.2.4/Thu Sep 19 14:01:24 2002/-ko/Tlinux_2_4_20
+/memset.S/1.3.2.2/Tue Aug  6 00:56:51 2002/-ko/Tlinux_2_4_20
+/promlib.c/1.1.2.2/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
+/r3k_dump_tlb.c/1.5.2.1/Mon Dec  2 00:24:49 2002/-ko/Tlinux_2_4_20
+/rtc-no.c/1.5.2.1/Thu Nov  7 01:47:45 2002/-ko/Tlinux_2_4_20
+/rtc-std.c/1.3/Sun Mar 18 04:30:28 2001/-ko/Tlinux_2_4_20
+/strlen_user.S/1.6.2.1/Mon Jul  1 15:27:23 2002/-ko/Tlinux_2_4_20
+/strncpy_user.S/1.5/Thu Sep  6 13:12:02 2001/-ko/Tlinux_2_4_20
+/strnlen_user.S/1.3.2.1/Mon Jul  1 15:27:23 2002/-ko/Tlinux_2_4_20
+/tinycon.c/1.1.1.1.8.1/Mon Aug  5 23:53:34 2002/-ko/Tlinux_2_4_20
+/watch.S/1.4/Thu Sep  6 13:12:02 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/lib/CVS/Repository
--- linux-2.4.20/arch/mips/lib/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lib/CVS/Repository	2005-01-06 23:00:06.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/lib
diff -urNd -urNd linux-2.4.20/arch/mips/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/lib/CVS/Root
--- linux-2.4.20/arch/mips/lib/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lib/CVS/Root	2005-01-06 23:00:06.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/lib/CVS/Tag
--- linux-2.4.20/arch/mips/lib/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lib/CVS/Tag	2005-01-06 23:00:07.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/lib/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/lib/.cvsignore
--- linux-2.4.20/arch/mips/lib/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lib/.cvsignore	1998-03-17 16:07:39.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/lib/dump_tlb.c linux-2.4.20-mipscvs-20050106/arch/mips/lib/dump_tlb.c
--- linux-2.4.20/arch/mips/lib/dump_tlb.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lib/dump_tlb.c	2002-12-19 08:02:56.000000000 -0600
@@ -41,11 +41,11 @@
 	unsigned long long entrylo0, entrylo1;
 	unsigned long entryhi;
 
-	asid = get_entryhi() & 0xff;
+	asid = read_c0_entryhi() & 0xff;
 
 	printk("\n");
 	for(i=first;i<=last;i++) {
-		write_32bit_cp0_register(CP0_INDEX, i);
+		write_c0_index(i);
 		__asm__ __volatile__(
 			".set\tmips3\n\t"
 			".set\tnoreorder\n\t"
@@ -54,10 +54,10 @@
 			"nop;nop;nop;nop\n\t"
 			".set\treorder\n\t"
 			".set\tmips0\n\t");
-		pagemask = read_32bit_cp0_register(CP0_PAGEMASK);
-		entryhi  = read_32bit_cp0_register(CP0_ENTRYHI);
-		entrylo0 = get_entrylo0();
-		entrylo1 = get_entrylo1();
+		pagemask = read_c0_pagemask();
+		entryhi  = read_c0_entryhi();
+		entrylo0 = read_c0_entrylo0();
+		entrylo1 = read_c0_entrylo1();
 
 		/* Unused entries have a virtual address in KSEG0.  */
 		if ((entryhi & 0xf0000000) != 0x80000000
@@ -86,7 +86,7 @@
 		}
 	}
 
-	set_entryhi(asid);
+	write_c0_entryhi(asid);
 }
 
 void dump_tlb_all(void)
@@ -98,9 +98,9 @@
 {
 	int	wired;
 
-	wired = read_32bit_cp0_register(CP0_WIRED);
+	wired = read_c0_wired();
 	printk("Wired: %d", wired);
-	dump_tlb(0, read_32bit_cp0_register(CP0_WIRED));
+	dump_tlb(0, read_c0_wired());
 }
 
 #define BARRIER						\
@@ -116,14 +116,14 @@
 	int index;
 
 	__save_and_cli(flags);
-	oldpid = get_entryhi() & 0xff;
+	oldpid = read_c0_entryhi() & 0xff;
 	BARRIER;
-	set_entryhi((addr & PAGE_MASK) | oldpid);
+	write_c0_entryhi((addr & PAGE_MASK) | oldpid);
 	BARRIER;
 	tlb_probe();
 	BARRIER;
-	index = get_index();
-	set_entryhi(oldpid);
+	index = read_c0_index();
+	write_c0_entryhi(oldpid);
 	__restore_flags(flags);
 
 	if (index < 0) {
@@ -138,7 +138,7 @@
 void
 dump_tlb_nonwired(void)
 {
-	dump_tlb(read_32bit_cp0_register(CP0_WIRED), mips_cpu.tlbsize - 1);
+	dump_tlb(read_c0_wired(), mips_cpu.tlbsize - 1);
 }
 
 void
@@ -177,9 +177,9 @@
 
 	page = *pte;
 #ifdef CONFIG_64BIT_PHYS_ADDR
-	printk("page == %08Lx\n", (unsigned long long) pte_val(page));
+	printk("page == %08Lx\n", pte_val(page));
 #else
-	printk("page == %08lx\n", (unsigned int) pte_val(page));
+	printk("page == %08lx\n", pte_val(page));
 #endif
 
 	val = pte_val(page);
@@ -225,9 +225,7 @@
 
 	for(i=0;i<8;i++)
 	{
-		printk("*%08lx == %08lx, ",
-		       (unsigned long)p, (unsigned long)*p++);
-		printk("*%08lx == %08lx\n",
-		       (unsigned long)p, (unsigned long)*p++);
+		printk("*%8p = %08lx, ", p, *p); p++;
+		printk("*%8p = %08lx\n", p, *p); p++;
 	}
 }
diff -urNd -urNd linux-2.4.20/arch/mips/lib/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/lib/Makefile
--- linux-2.4.20/arch/mips/lib/Makefile	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lib/Makefile	2003-01-27 20:31:33.000000000 -0600
@@ -7,9 +7,9 @@
 L_TARGET = lib.a
 
 obj-y				+= csum_partial.o csum_partial_copy.o \
-				   rtc-std.o rtc-no.o memcpy.o memset.o \
-				   watch.o strlen_user.o strncpy_user.o \
-				   strnlen_user.o
+				   promlib.o rtc-std.o rtc-no.o memcpy.o \
+				   memset.o watch.o strlen_user.o \
+				   strncpy_user.o strnlen_user.o
 
 ifeq ($(CONFIG_CPU_R3000)$(CONFIG_CPU_TX39XX),y)
   obj-y	+= r3k_dump_tlb.o
@@ -18,7 +18,7 @@
 endif
 
 obj-$(CONFIG_BLK_DEV_FD)	+= floppy-no.o floppy-std.o
-obj-$(CONFIG_IDE)		+= ide-std.o ide-no.o
+obj-$(subst m,y,$(CONFIG_IDE))	+= ide-std.o ide-no.o	# needed for ide module
 obj-$(CONFIG_PC_KEYB)		+= kbd-std.o kbd-no.o
 
 include $(TOPDIR)/Rules.make
diff -urNd -urNd linux-2.4.20/arch/mips/lib/memcpy.S linux-2.4.20-mipscvs-20050106/arch/mips/lib/memcpy.S
--- linux-2.4.20/arch/mips/lib/memcpy.S	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lib/memcpy.S	2002-09-19 09:01:24.000000000 -0500
@@ -77,11 +77,13 @@
 	.previous
 
 /*
- * In the mips (not mips64) tree, so we can't use doubles
+ * Only on the 64-bit kernel we can made use of 64-bit registers.
  */
-#undef USE_DOUBLE
+#ifdef CONFIG_MIPS64
+#define USE_DOUBLE
+#endif
 
-#if defined(USE_DOUBLE)
+#ifdef USE_DOUBLE
 
 #define LOAD   ld
 #define LOADL  ldl
@@ -99,6 +101,24 @@
 #define NBYTES 8
 #define LOG_NBYTES 3
 
+/* 
+ * As we are sharing code base with the mips32 tree (which use the o32 ABI
+ * register definitions). We need to redefine the register definitions from
+ * the n64 ABI register naming to the o32 ABI register naming.
+ */
+#undef t0
+#undef t1
+#undef t2
+#undef t3
+#define t0	$8
+#define t1	$9
+#define t2	$10
+#define t3	$11
+#define t4	$12
+#define t5	$13
+#define t6	$14
+#define t7	$15
+	
 #else
 
 #define LOAD   lw
@@ -385,7 +405,7 @@
 	 *
 	 * Assumes src < THREAD_BUADDR($28)
 	 */
-	lw	t0, THREAD_BUADDR($28)
+	LOAD	t0, THREAD_BUADDR($28)
 1:
 EXC(	lb	t1, 0(src),	l_exc)
 	ADD	src, src, 1
@@ -393,16 +413,16 @@
 	bne	src, t0, 1b
 	 ADD	dst, dst, 1
 l_exc:
-	lw	t0, THREAD_BUADDR($28)	# t0 is just past last good address
+	LOAD	t0, THREAD_BUADDR($28)	# t0 is just past last good address
 	 nop
-	subu	len, AT, t0		# len number of uncopied bytes
+	SUB	len, AT, t0		# len number of uncopied bytes
 	/*
 	 * Here's where we rely on src and dst being incremented in tandem,
 	 *   See (3) above.
 	 * dst += (fault addr - src) to put dst at first byte to clear
 	 */
-	addu	dst, t0			# compute start address in a1
-	subu	dst, src
+	ADD	dst, t0			# compute start address in a1
+	SUB	dst, src
 	/*
 	 * Clear len bytes starting at dst.  Can't call __bzero because it
 	 * might modify len.  An inefficient loop for these rare times...
@@ -440,8 +460,8 @@
 
 	.align	5
 LEAF(memmove)
-	addu	t0, a0, a2
-	addu	t1, a1, a2
+	ADD	t0, a0, a2
+	ADD	t1, a1, a2
 	sltu	t0, a1, t0			# dst + len <= src -> memcpy
 	sltu	t1, a0, t1			# dst >= src + len -> memcpy
 	and	t0, t1
@@ -455,16 +475,16 @@
 	 sltu	t0, a1, a0
 	beqz	t0, r_end_bytes_up		# src >= dst
 	 nop
-	addu	a0, a2				# dst = dst + len
-	addu	a1, a2				# src = src + len
+	ADD	a0, a2				# dst = dst + len
+	ADD	a1, a2				# src = src + len
 
 r_end_bytes:
 	lb	t0, -1(a1)
-	subu	a2, a2, 0x1
+	SUB	a2, a2, 0x1
 	sb	t0, -1(a0)
-	subu	a1, a1, 0x1
+	SUB	a1, a1, 0x1
 	bnez	a2, r_end_bytes
-	 subu	a0, a0, 0x1
+	 SUB	a0, a0, 0x1
 
 r_out:
 	jr	ra
@@ -472,11 +492,11 @@
 
 r_end_bytes_up:
 	lb	t0, (a1)
-	subu	a2, a2, 0x1
+	SUB	a2, a2, 0x1
 	sb	t0, (a0)
-	addu	a1, a1, 0x1
+	ADD	a1, a1, 0x1
 	bnez	a2, r_end_bytes_up
-	 addu	a0, a0, 0x1
+	 ADD	a0, a0, 0x1
 
 	jr	ra
 	 move	a2, zero
diff -urNd -urNd linux-2.4.20/arch/mips/lib/promlib.c linux-2.4.20-mipscvs-20050106/arch/mips/lib/promlib.c
--- linux-2.4.20/arch/mips/lib/promlib.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lib/promlib.c	2003-01-21 23:11:38.000000000 -0600
@@ -0,0 +1,24 @@
+#include <stdarg.h>
+#include <linux/kernel.h>
+
+extern void prom_putchar(char);
+
+void prom_printf(char *fmt, ...)
+{
+	va_list args;
+	char ppbuf[1024];
+	char *bptr;
+
+	va_start(args, fmt);
+	vsprintf(ppbuf, fmt, args);
+
+	bptr = ppbuf;
+
+	while (*bptr != 0) {
+		if (*bptr == '\n')
+			prom_putchar('\r');
+
+		prom_putchar(*bptr++);
+	}
+	va_end(args);
+}
diff -urNd -urNd linux-2.4.20/arch/mips/lib/r3k_dump_tlb.c linux-2.4.20-mipscvs-20050106/arch/mips/lib/r3k_dump_tlb.c
--- linux-2.4.20/arch/mips/lib/r3k_dump_tlb.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lib/r3k_dump_tlb.c	2002-12-01 18:24:49.000000000 -0600
@@ -26,18 +26,18 @@
 	unsigned int asid;
 	unsigned long entryhi, entrylo0;
 
-	asid = get_entryhi() & 0xfc0;
+	asid = read_c0_entryhi() & 0xfc0;
 
 	for(i=first;i<=last;i++)
 	{
-		write_32bit_cp0_register(CP0_INDEX, i<<8);
+		write_c0_index(i<<8);
 		__asm__ __volatile__(
 			".set\tnoreorder\n\t"
 			"tlbr\n\t"
 			"nop\n\t"
 			".set\treorder");
-		entryhi  = read_32bit_cp0_register(CP0_ENTRYHI);
-		entrylo0 = read_32bit_cp0_register(CP0_ENTRYLO0);
+		entryhi  = read_c0_entryhi();
+		entrylo0 = read_c0_entrylo0();
 
 		/* Unused entries have a virtual address of KSEG0.  */
 		if ((entryhi & 0xffffe000) != 0x80000000
@@ -60,7 +60,7 @@
 	}
 	printk("\n");
 
-	set_entryhi(asid);
+	write_c0_entryhi(asid);
 }
 
 void
@@ -72,7 +72,7 @@
 void
 dump_tlb_wired(void)
 {
-	int wired = r3k_have_wired_reg ? get_wired() : 8;
+	int wired = r3k_have_wired_reg ? read_c0_wired() : 8;
 
 	printk("Wired: %d", wired);
 	dump_tlb(0, wired - 1);
@@ -85,11 +85,11 @@
 	int index;
 
 	__save_and_cli(flags);
-	oldpid = get_entryhi() & 0xff;
-	set_entryhi((addr & PAGE_MASK) | oldpid);
+	oldpid = read_c0_entryhi() & 0xff;
+	write_c0_entryhi((addr & PAGE_MASK) | oldpid);
 	tlb_probe();
-	index = get_index();
-	set_entryhi(oldpid);
+	index = read_c0_index();
+	write_c0_entryhi(oldpid);
 	__restore_flags(flags);
 
 	if (index < 0) {
@@ -104,7 +104,7 @@
 void
 dump_tlb_nonwired(void)
 {
-	int wired = r3k_have_wired_reg ? get_wired() : 8;
+	int wired = r3k_have_wired_reg ? read_c0_wired() : 8;
 	dump_tlb(wired, mips_cpu.tlbsize - 1);
 }
 
diff -urNd -urNd linux-2.4.20/arch/mips/lib/rtc-no.c linux-2.4.20-mipscvs-20050106/arch/mips/lib/rtc-no.c
--- linux-2.4.20/arch/mips/lib/rtc-no.c	2001-07-02 15:56:40.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/lib/rtc-no.c	2002-11-06 19:47:45.000000000 -0600
@@ -24,7 +24,7 @@
 }
 
 struct rtc_ops no_rtc_ops = {
-    rtc_read_data:  (void *) &shouldnt_happen,
-    rtc_write_data: (void *) &shouldnt_happen,
-    rtc_bcd_mode:   (void *) &shouldnt_happen
+    .rtc_read_data  = (void *) &shouldnt_happen,
+    .rtc_write_data = (void *) &shouldnt_happen,
+    .rtc_bcd_mode   = (void *) &shouldnt_happen
 };
diff -urNd -urNd linux-2.4.20/arch/mips/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/Makefile
--- linux-2.4.20/arch/mips/Makefile	2002-11-28 17:53:09.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/Makefile	2003-02-20 12:53:37.000000000 -0600
@@ -43,7 +43,12 @@
 
 ifdef CONFIG_REMOTE_DEBUG
 GCCFLAGS	+= -g
+ifdef CONFIG_SB1XXX_CORELIS
+GCCFLAGS	+= -mno-sched-prolog -fno-omit-frame-pointer
 endif
+endif
+
+check_gcc = $(shell if $(CC) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi)
 
 #
 # CPU-dependent compiler/assembler options for optimization.
@@ -89,7 +94,8 @@
 GCCFLAGS	+= -mcpu=r5000 -mips2 -Wa,--trap
 endif
 ifdef CONFIG_CPU_SB1
-GCCFLAGS	+= -mcpu=sb1 -mips2 -Wa,--trap
+GCCFLAGS	+= $(call check_gcc, -mcpu=sb1, -mcpu=r5000) \
+		   -mips2 -Wa,--trap
 ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
 MODFLAGS	+= -msb1-pass1-workarounds
 endif
@@ -161,6 +167,30 @@
 endif
 
 #
+# Au1x00 (AMD/Alchemy) eval boards
+#
+ifdef CONFIG_MIPS_DB1000
+LIBS          += arch/mips/au1000/db1x00/db1x00.o \
+                 arch/mips/au1000/common/au1000.o
+SUBDIRS       += arch/mips/au1000/db1x00 arch/mips/au1000/common
+LOADADDR      += 0x80100000
+endif
+
+ifdef CONFIG_MIPS_DB1500
+LIBS          += arch/mips/au1000/db1x00/db1x00.o \
+                 arch/mips/au1000/common/au1000.o
+SUBDIRS       += arch/mips/au1000/db1x00 arch/mips/au1000/common
+LOADADDR      += 0x80100000
+endif
+
+ifdef CONFIG_MIPS_DB1100
+LIBS          += arch/mips/au1000/db1x00/db1x00.o \
+                 arch/mips/au1000/common/au1000.o
+SUBDIRS       += arch/mips/au1000/db1x00 arch/mips/au1000/common
+LOADADDR      += 0x80100000
+endif
+
+#
 # Algorithmics P4032
 #
 ifdef CONFIG_ALGOR_P4032
@@ -328,6 +358,11 @@
 LOADADDR	:= 0x80100000
 endif
 
+ifdef CONFIG_LASAT
+LIBS          += arch/mips/lasat/lasatkern.o
+SUBDIRS       += arch/mips/lasat
+LOADADDR      += 0x80000000
+endif
 #
 # NEC Osprey (vr4181) board
 #
@@ -361,6 +396,50 @@
 endif
 
 #
+# Victor MP-C303/304 (VR4122)
+#
+ifdef CONFIG_VICTOR_MPC30X
+SUBDIRS		+= arch/mips/vr41xx/common \
+		   arch/mips/vr41xx/victor-mpc30x
+LIBS		+= arch/mips/vr41xx/common/vr41xx.o \
+		   arch/mips/vr41xx/victor-mpc30x/mpc30x.o
+LOADADDR	:= 0x80001000
+endif
+
+#
+# IBM WorkPad z50 (VR4121)
+#
+ifdef CONFIG_IBM_WORKPAD
+SUBDIRS		+= arch/mips/vr41xx/common \
+		   arch/mips/vr41xx/ibm-workpad
+LIBS		+= arch/mips/vr41xx/common/vr41xx.o \
+		   arch/mips/vr41xx/ibm-workpad/workpad.o
+LOADADDR	+= 0x80004000
+endif
+
+#
+# CASIO CASSIPEIA E-55/65 (VR4111)
+#
+ifdef CONFIG_CASIO_E55
+SUBDIRS		+= arch/mips/vr41xx/common \
+		   arch/mips/vr41xx/casio-e55
+LIBS		+= arch/mips/vr41xx/common/vr41xx.o \
+		   arch/mips/vr41xx/casio-e55/e55.o
+LOADADDR	+= 0x80004000
+endif
+
+#
+# TANBAC TB0226 Mbase (VR4131)
+#
+ifdef CONFIG_TANBAC_TB0226
+SUBDIRS		+= arch/mips/vr41xx/common \
+		   arch/mips/vr41xx/tanbac-tb0226
+LIBS		+= arch/mips/vr41xx/common/vr41xx.o \
+		   arch/mips/vr41xx/tanbac-tb0226/tb0226.o
+LOADADDR	:= 0x80000000
+endif
+
+#
 # Philips Nino
 #
 ifdef CONFIG_NINO
@@ -385,23 +464,30 @@
 endif
 
 #
-# Sibyte SB1250 SOC
+# Sibyte SB1250 SOC and Broadcom (SiByte) BCM112x SOCs
 #
-ifdef CONFIG_SIBYTE_SB1250
+ifneq ($(CONFIG_SIBYTE_SB1250)$(CONFIG_SIBYTE_BCM112X),)
 # This is a LIB so that it links at the end, and initcalls are later
 # the sequence; but it is built as an object so that modules don't get
 # removed (as happens, even if they have __initcall/module_init)
 LIBS		+= arch/mips/sibyte/sb1250/sb1250.o
 SUBDIRS		+= arch/mips/sibyte/sb1250
+LOADADDR	:= 0x80100000
 endif
 
 #
-# Sibyte SWARM board
+# Sibyte boards:
 #
-ifdef CONFIG_SIBYTE_SWARM
+# BCM91250A (SWARM),
+# BCM91250E (Sentosa),
+# BCM91120C (CRhine),
+# BCM91120x (Carmel),
+# BCM91125C (CRhone),
+# BCM91125E (Rhone).
+#
+ifdef CONFIG_SIBYTE_BOARD
 LIBS		+= arch/mips/sibyte/swarm/sbswarm.a
 SUBDIRS		+= arch/mips/sibyte/swarm
-LOADADDR	:= 0x80100000
 endif
 
 #
@@ -413,14 +499,6 @@
 endif
 
 #
-# SB1 Cache Error handler
-#
-ifdef CONFIG_SB1_CACHE_ERROR
-LIBS		+= arch/mips/sibyte/sb1/sb1kern.a
-SUBDIRS		+= arch/mips/sibyte/sb1
-endif
-
-#
 # SNI RM200 PCI
 #
 ifdef CONFIG_SNI_RM200_PCI
@@ -468,12 +546,15 @@
 endif
 
 ifdef CONFIG_MIPS_EV64120
-GALILEOBOOT = $(MAKE) -C arch/$(ARCH)/galileo-boards/ev64120
-
 gboot: vmlinux
 	$(MAKE) -C arch/$(ARCH)/galileo-boards/ev64120/compressed
 endif
 
+ifdef CONFIG_LASAT
+rom.bin rom.sw: vmlinux
+	$(MAKE) -C arch/$(ARCH)/lasat/image $@
+endif
+
 MAKEBOOT = $(MAKE) -C arch/$(ARCH)/boot
 
 vmlinux.ecoff: vmlinux
@@ -484,6 +565,7 @@
 	rm -f arch/$(ARCH)/ld.script
 	$(MAKE) -C arch/$(ARCH)/tools clean
 	$(MAKE) -C arch/mips/baget clean
+	$(MAKE) -C arch/mips/lasat clean
 
 archmrproper:
 	@$(MAKEBOOT) mrproper
diff -urNd -urNd linux-2.4.20/arch/mips/math-emu/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/CVS/Entries
--- linux-2.4.20/arch/mips/math-emu/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/CVS/Entries	2005-01-06 23:00:07.000000000 -0600
@@ -0,0 +1,49 @@
+/.cvsignore/1.1/Sat Nov 25 04:49:46 2000/-ko/Tlinux_2_4_20
+/Makefile/1.3.2.2/Mon Aug  5 14:18:22 2002/-ko/Tlinux_2_4_20
+/cp1emu.c/1.13.2.10/Tue Sep 10 15:43:18 2002/-ko/Tlinux_2_4_20
+/dp_add.c/1.4.2.1/Mon Aug  5 23:53:34 2002/-ko/Tlinux_2_4_20
+/dp_cmp.c/1.4.2.2/Thu Dec 19 00:30:30 2002/-ko/Tlinux_2_4_20
+/dp_div.c/1.4.2.2/Mon Aug  5 23:53:34 2002/-ko/Tlinux_2_4_20
+/dp_fint.c/1.3/Sat Jan 13 16:15:24 2001/-ko/Tlinux_2_4_20
+/dp_flong.c/1.3.2.1/Mon Aug  5 14:18:22 2002/-ko/Tlinux_2_4_20
+/dp_frexp.c/1.3.2.1/Mon Aug  5 23:53:34 2002/-ko/Tlinux_2_4_20
+/dp_fsp.c/1.4.2.1/Mon Aug  5 14:18:22 2002/-ko/Tlinux_2_4_20
+/dp_logb.c/1.3/Sat Jan 13 16:15:24 2001/-ko/Tlinux_2_4_20
+/dp_modf.c/1.3.2.1/Mon Aug  5 23:53:34 2002/-ko/Tlinux_2_4_20
+/dp_mul.c/1.4.2.1/Mon Aug  5 14:18:22 2002/-ko/Tlinux_2_4_20
+/dp_scalb.c/1.3/Sat Jan 13 16:15:24 2001/-ko/Tlinux_2_4_20
+/dp_simple.c/1.4/Thu Oct  4 13:19:44 2001/-ko/Tlinux_2_4_20
+/dp_sqrt.c/1.4.2.1/Mon Aug  5 14:18:22 2002/-ko/Tlinux_2_4_20
+/dp_sub.c/1.5.2.1/Mon Aug  5 23:53:34 2002/-ko/Tlinux_2_4_20
+/dp_tint.c/1.4.2.2/Mon Aug  5 14:18:22 2002/-ko/Tlinux_2_4_20
+/dp_tlong.c/1.5.2.3/Mon Aug  5 23:53:34 2002/-ko/Tlinux_2_4_20
+/dsemul.c/1.1.2.2/Mon Aug  5 23:53:34 2002/-ko/Tlinux_2_4_20
+/dsemul.h/1.1.2.1/Mon Aug  5 14:18:22 2002/-ko/Tlinux_2_4_20
+/ieee754.c/1.4.2.3/Tue Aug 13 03:29:54 2002/-ko/Tlinux_2_4_20
+/ieee754.h/1.3.2.2/Mon Aug  5 23:53:34 2002/-ko/Tlinux_2_4_20
+/ieee754d.c/1.3.2.3/Mon Aug  5 23:53:34 2002/-ko/Tlinux_2_4_20
+/ieee754dp.c/1.5.2.4/Thu Dec 19 00:30:30 2002/-ko/Tlinux_2_4_20
+/ieee754dp.h/1.3.2.2/Mon Aug  5 23:53:34 2002/-ko/Tlinux_2_4_20
+/ieee754int.h/1.3.2.3/Thu Dec 19 00:30:30 2002/-ko/Tlinux_2_4_20
+/ieee754m.c/1.2/Sat Nov 25 04:49:46 2000/-ko/Tlinux_2_4_20
+/ieee754sp.c/1.6.2.3/Thu Dec 19 00:30:30 2002/-ko/Tlinux_2_4_20
+/ieee754sp.h/1.3.2.2/Mon Aug  5 23:53:34 2002/-ko/Tlinux_2_4_20
+/ieee754xcpt.c/1.3.2.1/Mon Aug  5 23:53:34 2002/-ko/Tlinux_2_4_20
+/kernel_linkage.c/1.5.2.1/Mon Aug  5 23:53:34 2002/-ko/Tlinux_2_4_20
+/sp_add.c/1.4.2.1/Mon Aug  5 23:53:34 2002/-ko/Tlinux_2_4_20
+/sp_cmp.c/1.4.2.2/Thu Dec 19 00:30:30 2002/-ko/Tlinux_2_4_20
+/sp_div.c/1.4.2.1/Mon Aug  5 23:53:34 2002/-ko/Tlinux_2_4_20
+/sp_fdp.c/1.5.2.3/Mon Aug  5 23:53:34 2002/-ko/Tlinux_2_4_20
+/sp_fint.c/1.3.2.1/Mon Aug  5 23:53:34 2002/-ko/Tlinux_2_4_20
+/sp_flong.c/1.4.2.2/Mon Aug  5 23:53:34 2002/-ko/Tlinux_2_4_20
+/sp_frexp.c/1.3.2.1/Mon Aug  5 23:53:34 2002/-ko/Tlinux_2_4_20
+/sp_logb.c/1.3/Sat Jan 13 16:15:24 2001/-ko/Tlinux_2_4_20
+/sp_modf.c/1.3.2.1/Mon Aug  5 23:53:34 2002/-ko/Tlinux_2_4_20
+/sp_mul.c/1.4/Thu Oct  4 13:19:44 2001/-ko/Tlinux_2_4_20
+/sp_scalb.c/1.3/Sat Jan 13 16:15:24 2001/-ko/Tlinux_2_4_20
+/sp_simple.c/1.4/Thu Oct  4 13:19:44 2001/-ko/Tlinux_2_4_20
+/sp_sqrt.c/1.4.2.1/Wed Dec 18 22:33:05 2002/-ko/Tlinux_2_4_20
+/sp_sub.c/1.4.2.2/Wed Dec 18 19:19:30 2002/-ko/Tlinux_2_4_20
+/sp_tint.c/1.4.2.2/Mon Aug  5 14:18:23 2002/-ko/Tlinux_2_4_20
+/sp_tlong.c/1.4.2.2/Mon Aug  5 14:18:23 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/math-emu/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/CVS/Repository
--- linux-2.4.20/arch/mips/math-emu/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/CVS/Repository	2005-01-06 23:00:07.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/math-emu
diff -urNd -urNd linux-2.4.20/arch/mips/math-emu/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/CVS/Root
--- linux-2.4.20/arch/mips/math-emu/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/CVS/Root	2005-01-06 23:00:07.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/math-emu/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/CVS/Tag
--- linux-2.4.20/arch/mips/math-emu/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/CVS/Tag	2005-01-06 23:00:07.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/math-emu/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/.cvsignore
--- linux-2.4.20/arch/mips/math-emu/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/.cvsignore	2000-11-24 22:49:46.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/math-emu/dp_cmp.c linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/dp_cmp.c
--- linux-2.4.20/arch/mips/math-emu/dp_cmp.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/dp_cmp.c	2002-12-18 18:30:30.000000000 -0600
@@ -44,7 +44,7 @@
 		if (cmp & IEEE754_CUN)
 			return 1;
 		if (cmp & (IEEE754_CLT | IEEE754_CGT)) {
-			if (sig && SETCX(IEEE754_INVALID_OPERATION))
+			if (sig && SETANDTESTCX(IEEE754_INVALID_OPERATION))
 				return ieee754si_xcpt(0, "fcmpf", x);
 		}
 		return 0;
diff -urNd -urNd linux-2.4.20/arch/mips/math-emu/ieee754dp.c linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/ieee754dp.c
--- linux-2.4.20/arch/mips/math-emu/ieee754dp.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/ieee754dp.c	2002-12-18 18:30:30.000000000 -0600
@@ -69,7 +69,7 @@
 	if (!ieee754dp_issnan(r))	/* QNAN does not cause invalid op !! */
 		return r;
 
-	if (!SETCX(IEEE754_INVALID_OPERATION)) {
+	if (!SETANDTESTCX(IEEE754_INVALID_OPERATION)) {
 		/* not enabled convert to a quiet NaN */
 		DPMANT(r) &= (~DP_MBIT(DP_MBITS-1));
 		if (ieee754dp_isnan(r))
diff -urNd -urNd linux-2.4.20/arch/mips/math-emu/ieee754int.h linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/ieee754int.h
--- linux-2.4.20/arch/mips/math-emu/ieee754int.h	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/ieee754int.h	2002-12-18 18:30:30.000000000 -0600
@@ -61,7 +61,10 @@
   (ieee754_csr.cx = 0)
 
 #define SETCX(x) \
-  (ieee754_csr.cx |= (x),ieee754_csr.sx |= (x),ieee754_csr.mx & (x))
+  (ieee754_csr.cx |= (x),ieee754_csr.sx |= (x))
+
+#define SETANDTESTCX(x) \
+  (SETCX(x),ieee754_csr.mx & (x))
 
 #define TSTX()	\
 	(ieee754_csr.cx & ieee754_csr.mx)
diff -urNd -urNd linux-2.4.20/arch/mips/math-emu/ieee754sp.c linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/ieee754sp.c
--- linux-2.4.20/arch/mips/math-emu/ieee754sp.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/ieee754sp.c	2002-12-18 18:30:30.000000000 -0600
@@ -70,7 +70,7 @@
 	if (!ieee754sp_issnan(r))	/* QNAN does not cause invalid op !! */
 		return r;
 
-	if (!SETCX(IEEE754_INVALID_OPERATION)) {
+	if (!SETANDTESTCX(IEEE754_INVALID_OPERATION)) {
 		/* not enabled convert to a quiet NaN */
 		SPMANT(r) &= (~SP_MBIT(SP_MBITS-1));
 		if (ieee754sp_isnan(r))
diff -urNd -urNd linux-2.4.20/arch/mips/math-emu/sp_cmp.c linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/sp_cmp.c
--- linux-2.4.20/arch/mips/math-emu/sp_cmp.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/sp_cmp.c	2002-12-18 18:30:30.000000000 -0600
@@ -44,7 +44,7 @@
 		if (cmp & IEEE754_CUN)
 			return 1;
 		if (cmp & (IEEE754_CLT | IEEE754_CGT)) {
-			if (sig && SETCX(IEEE754_INVALID_OPERATION))
+			if (sig && SETANDTESTCX(IEEE754_INVALID_OPERATION))
 				return ieee754si_xcpt(0, "fcmpf", x);
 		}
 		return 0;
diff -urNd -urNd linux-2.4.20/arch/mips/math-emu/sp_sqrt.c linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/sp_sqrt.c
--- linux-2.4.20/arch/mips/math-emu/sp_sqrt.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/sp_sqrt.c	2002-12-18 16:33:05.000000000 -0600
@@ -29,7 +29,6 @@
 
 ieee754sp ieee754sp_sqrt(ieee754sp x)
 {
-	int sign = (int) 0x80000000;
 	int ix, s, q, m, t, i;
 	unsigned int r;
 	COMPXSP;
diff -urNd -urNd linux-2.4.20/arch/mips/math-emu/sp_sub.c linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/sp_sub.c
--- linux-2.4.20/arch/mips/math-emu/sp_sub.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/sp_sub.c	2002-12-18 13:19:30.000000000 -0600
@@ -167,12 +167,12 @@
 			xe = xe;
 			xs = ys;
 		}
-		if (xm == 0)
+		if (xm == 0) {
 			if (ieee754_csr.rm == IEEE754_RD)
 				return ieee754sp_zero(1);	/* round negative inf. => sign = -1 */
 			else
 				return ieee754sp_zero(0);	/* other round modes   => sign = 1 */
-
+		}
 		/* normalize to rounding precision
 		 */
 		while ((xm >> (SP_MBITS + 3)) == 0) {
diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/atlas/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/atlas/CVS/Entries
--- linux-2.4.20/arch/mips/mips-boards/atlas/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/atlas/CVS/Entries	2005-01-06 23:00:07.000000000 -0600
@@ -0,0 +1,6 @@
+/.cvsignore/1.1/Mon Oct  9 00:46:00 2000/-ko/Tlinux_2_4_20
+/Makefile/1.3.2.2/Mon Aug  5 23:53:34 2002/-ko/Tlinux_2_4_20
+/atlas_int.c/1.8.2.4/Mon Aug  5 23:53:34 2002/-ko/Tlinux_2_4_20
+/atlas_rtc.c/1.3/Sun Mar 18 04:30:28 2001/-ko/Tlinux_2_4_20
+/atlas_setup.c/1.7.2.5/Mon Aug  5 23:53:34 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/atlas/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/atlas/CVS/Repository
--- linux-2.4.20/arch/mips/mips-boards/atlas/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/atlas/CVS/Repository	2005-01-06 23:00:07.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/mips-boards/atlas
diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/atlas/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/atlas/CVS/Root
--- linux-2.4.20/arch/mips/mips-boards/atlas/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/atlas/CVS/Root	2005-01-06 23:00:07.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/atlas/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/atlas/CVS/Tag
--- linux-2.4.20/arch/mips/mips-boards/atlas/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/atlas/CVS/Tag	2005-01-06 23:00:07.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/atlas/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/atlas/.cvsignore
--- linux-2.4.20/arch/mips/mips-boards/atlas/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/atlas/.cvsignore	2000-10-08 19:46:00.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/CVS/Entries
--- linux-2.4.20/arch/mips/mips-boards/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/CVS/Entries	2005-01-06 23:08:20.000000000 -0600
@@ -0,0 +1,4 @@
+D/atlas////
+D/generic////
+D/malta////
+D/sead////
diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/CVS/Repository
--- linux-2.4.20/arch/mips/mips-boards/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/CVS/Repository	2005-01-06 23:00:07.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/mips-boards
diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/CVS/Root
--- linux-2.4.20/arch/mips/mips-boards/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/CVS/Root	2005-01-06 23:00:07.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/CVS/Tag
--- linux-2.4.20/arch/mips/mips-boards/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/CVS/Tag	2005-01-06 23:00:07.000000000 -0600
@@ -0,0 +1 @@
+Tlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/generic/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/CVS/Entries
--- linux-2.4.20/arch/mips/mips-boards/generic/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/CVS/Entries	2005-01-06 23:00:07.000000000 -0600
@@ -0,0 +1,13 @@
+/.cvsignore/1.1/Mon Oct  9 00:46:00 2000/-ko/Tlinux_2_4_20
+/Makefile/1.6.2.4/Mon Aug  5 23:53:34 2002/-ko/Tlinux_2_4_20
+/cmdline.c/1.3.4.3/Wed May 29 03:03:17 2002/-ko/Tlinux_2_4_20
+/display.c/1.1.4.2/Mon Aug  5 23:53:34 2002/-ko/Tlinux_2_4_20
+/gdb_hook.c/1.3.2.2/Mon Aug  5 23:53:34 2002/-ko/Tlinux_2_4_20
+/init.c/1.4.2.4/Tue Nov  5 17:58:00 2002/-ko/Tlinux_2_4_20
+/memory.c/1.6.2.2/Wed Dec 11 14:25:14 2002/-ko/Tlinux_2_4_20
+/mipsIRQ.S/1.2.4.4/Mon Aug  5 23:53:34 2002/-ko/Tlinux_2_4_20
+/pci.c/1.5.2.7/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/printf.c/1.3.2.5/Wed Nov  6 05:27:22 2002/-ko/Tlinux_2_4_20
+/reset.c/1.1/Mon Oct  9 00:36:07 2000/-ko/Tlinux_2_4_20
+/time.c/1.9.2.5/Mon Dec  2 00:24:49 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/generic/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/CVS/Repository
--- linux-2.4.20/arch/mips/mips-boards/generic/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/CVS/Repository	2005-01-06 23:00:07.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/mips-boards/generic
diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/generic/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/CVS/Root
--- linux-2.4.20/arch/mips/mips-boards/generic/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/CVS/Root	2005-01-06 23:00:07.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/generic/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/CVS/Tag
--- linux-2.4.20/arch/mips/mips-boards/generic/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/CVS/Tag	2005-01-06 23:00:07.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/generic/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/.cvsignore
--- linux-2.4.20/arch/mips/mips-boards/generic/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/.cvsignore	2000-10-08 19:46:00.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/generic/init.c linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/init.c
--- linux-2.4.20/arch/mips/mips-boards/generic/init.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/init.c	2002-11-05 11:58:00.000000000 -0600
@@ -199,7 +199,6 @@
 		while(1);   /* We die here... */
 	}
 #endif
-	setup_prom_printf(0);
 	prom_printf("\nLINUX started...\n");
 	prom_init_cmdline();
 	prom_meminit();
diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/generic/memory.c linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/memory.c
--- linux-2.4.20/arch/mips/mips-boards/generic/memory.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/memory.c	2002-12-11 08:25:14.000000000 -0600
@@ -168,7 +168,7 @@
 			      + boot_mem_map.map[i].size) {
 			ClearPageReserved(virt_to_page(__va(addr)));
 			set_page_count(virt_to_page(__va(addr)), 1);
-			free_page(__va(addr));
+			free_page((unsigned long)__va(addr));
 			addr += PAGE_SIZE;
 			freed += PAGE_SIZE;
 		}
diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/generic/pci.c linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/pci.c
--- linux-2.4.20/arch/mips/mips-boards/generic/pci.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/pci.c	2003-01-11 11:53:10.000000000 -0600
@@ -1,6 +1,6 @@
 /*
  * Carsten Langgaard, carstenl@mips.com
- * Copyright (C) 1999,2000 MIPS Technologies, Inc.  All rights reserved.
+ * Copyright (C) 1999, 2000 MIPS Technologies, Inc.  All rights reserved.
  *
  *  This program is free software; you can distribute it and/or modify it
  *  under the terms of the GNU General Public License (Version 2) as
@@ -51,9 +51,8 @@
 #define PCI_CFG_TYPE1_DEV_SHF           11
 #define PCI_CFG_TYPE1_BUS_SHF           16
 
-static int
-mips_pcibios_config_access(unsigned char access_type, struct pci_dev *dev,
-                           unsigned char where, u32 *data)
+static int mips_pcibios_config_access(unsigned char access_type,
+	struct pci_dev *dev, unsigned char where, u32 *data)
 {
 	unsigned char bus = dev->bus->number;
 	unsigned char dev_fn = dev->devfn;
@@ -167,12 +166,7 @@
 
 		/* Flush Bonito register block */
 		dummy = BONITO_PCIMAP_CFG;
-		__asm__ __volatile__(
-				     ".set\tnoreorder\n\t"
-				     ".set\tnoat\n\t"
-				     "sync\n\t"
-				     ".set\tat\n\t"
-				     ".set\treorder");
+		iob();    /* sync */
 
 		/* Perform access */
 		if (access_type == PCI_ACCESS_WRITE) {
@@ -263,8 +257,8 @@
  * We can't address 8 and 16 bit words directly.  Instead we have to
  * read/write a 32bit word and mask/modify the data we actually want.
  */
-static int
-mips_pcibios_read_config_byte (struct pci_dev *dev, int where, u8 *val)
+static int mips_pcibios_read_config_byte (struct pci_dev *dev, int where,
+	u8 *val)
 {
 	u32 data = 0;
 
@@ -276,9 +270,8 @@
 	return PCIBIOS_SUCCESSFUL;
 }
 
-
-static int
-mips_pcibios_read_config_word (struct pci_dev *dev, int where, u16 *val)
+static int mips_pcibios_read_config_word (struct pci_dev *dev, int where,
+	u16 *val)
 {
 	u32 data = 0;
 
@@ -293,8 +286,8 @@
 	return PCIBIOS_SUCCESSFUL;
 }
 
-static int
-mips_pcibios_read_config_dword (struct pci_dev *dev, int where, u32 *val)
+static int mips_pcibios_read_config_dword (struct pci_dev *dev, int where,
+	u32 *val)
 {
 	u32 data = 0;
 
@@ -309,9 +302,8 @@
 	return PCIBIOS_SUCCESSFUL;
 }
 
-
-static int
-mips_pcibios_write_config_byte (struct pci_dev *dev, int where, u8 val)
+static int mips_pcibios_write_config_byte (struct pci_dev *dev, int where,
+	u8 val)
 {
 	u32 data = 0;
 
@@ -327,8 +319,8 @@
 	return PCIBIOS_SUCCESSFUL;
 }
 
-static int
-mips_pcibios_write_config_word (struct pci_dev *dev, int where, u16 val)
+static int mips_pcibios_write_config_word (struct pci_dev *dev, int where,
+	u16 val)
 {
         u32 data = 0;
 
@@ -348,8 +340,8 @@
 	return PCIBIOS_SUCCESSFUL;
 }
 
-static int
-mips_pcibios_write_config_dword(struct pci_dev *dev, int where, u32 val)
+static int mips_pcibios_write_config_dword(struct pci_dev *dev, int where,
+	u32 val)
 {
 	if (where & 3)
 		return PCIBIOS_BAD_REGISTER_NUMBER;
@@ -400,14 +392,10 @@
 
 		/* Flush Bonito register block */
 		dummy = BONITO_PCIMAP_CFG;
-		__asm__ __volatile__(
-			".set\tnoreorder\n\t"
-			".set\tnoat\n\t"
-			"sync\n\t"
-			".set\tat\n\t"
-			".set\treorder");
+		iob();    /* sync */
 
 		irq = *(volatile u32 *)(KSEG1ADDR(BONITO_PCICFG_BASE));
+		iob();    /* sync */
 		irq &= 0xff;
 		BONITO_PCIMAP_CFG = 0;
 		break;
@@ -497,21 +485,18 @@
 #endif
 }
 
-int __init
-pcibios_enable_device(struct pci_dev *dev)
+int pcibios_enable_device(struct pci_dev *dev, int mask)
 {
 	/* Not needed, since we enable all devices at startup.  */
 	return 0;
 }
 
-void __init
-pcibios_align_resource(void *data, struct resource *res, unsigned long size,
-		       unsigned long align)
+void pcibios_align_resource(void *data, struct resource *res,
+	unsigned long size, unsigned long align)
 {
 }
 
-char * __init
-pcibios_setup(char *str)
+char * __init pcibios_setup(char *str)
 {
 	/* Nothing to do for now.  */
 
@@ -522,9 +507,8 @@
 	{ 0 }
 };
 
-void __init
-pcibios_update_resource(struct pci_dev *dev, struct resource *root,
-                        struct resource *res, int resource)
+void pcibios_update_resource(struct pci_dev *dev, struct resource *root,
+	struct resource *res, int resource)
 {
 	unsigned long where, size;
 	u32 reg;
@@ -540,12 +524,12 @@
  *  Called after each bus is probed, but before its children
  *  are examined.
  */
-void __init pcibios_fixup_bus(struct pci_bus *b)
+void __devinit pcibios_fixup_bus(struct pci_bus *b)
 {
 	pci_read_bridge_bases(b);
 }
 
-unsigned __init int pcibios_assign_all_busses(void)
+unsigned int pcibios_assign_all_busses(void)
 {
 	return 1;
 }
diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/generic/printf.c linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/printf.c
--- linux-2.4.20/arch/mips/mips-boards/generic/printf.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/printf.c	2002-11-05 23:27:22.000000000 -0600
@@ -2,8 +2,6 @@
  * Carsten Langgaard, carstenl@mips.com
  * Copyright (C) 1999,2000 MIPS Technologies, Inc.  All rights reserved.
  *
- * ########################################################################
- *
  *  This program is free software; you can distribute it and/or modify it
  *  under the terms of the GNU General Public License (Version 2) as
  *  published by the Free Software Foundation.
@@ -17,101 +15,84 @@
  *  with this program; if not, write to the Free Software Foundation, Inc.,
  *  59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
  *
- * ########################################################################
- *
  * Putting things on the screen/serial line using YAMONs facilities.
- *
  */
 #include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
-#include <linux/serialP.h>
 #include <linux/serial_reg.h>
-#include <asm/system.h>
+#include <linux/spinlock.h>
 #include <asm/io.h>
-#include <asm/serial.h>
 
+#ifdef CONFIG_MIPS_ATLAS
+
+#include <asm/mips-boards/atlas.h>
 
-#if defined(CONFIG_MIPS_ATLAS) || defined(CONFIG_MIPS_SEAD)
 /*
  * Atlas registers are memory mapped on 64-bit aligned boundaries and
  * only word access are allowed.
  * When reading the UART 8 bit registers only the LSB are valid.
  */
-unsigned int atlas_serial_in(struct async_struct *info, int offset)
+static inline unsigned int serial_in(int offset)
 {
-	return (*(volatile unsigned int *)(info->port + mips_io_port_base + offset*8) & 0xff);
+	return (*(volatile unsigned int *)(mips_io_port_base + ATLAS_UART_REGS_BASE + offset*8) & 0xff);
 }
 
-void atlas_serial_out(struct async_struct *info, int offset, int value)
+static inline void serial_out(int offset, int value)
 {
-	*(volatile unsigned int *)(info->port + mips_io_port_base + offset*8) = value;
+	*(volatile unsigned int *)(mips_io_port_base + ATLAS_UART_REGS_BASE + offset*8) = value;
 }
 
-#define serial_in  atlas_serial_in
-#define serial_out atlas_serial_out
+#elif defined(CONFIG_MIPS_SEAD)
 
-#else
+#include <asm/mips-boards/sead.h>
 
-static unsigned int serial_in(struct async_struct *info, int offset)
+/*
+ * SEAD registers are just like Atlas registers.
+ */
+static inline unsigned int serial_in(int offset)
 {
-	return inb(info->port + offset);
+	return (*(volatile unsigned int *)(mips_io_port_base + SEAD_UART0_REGS_BASE + offset*8) & 0xff);
 }
 
-static void serial_out(struct async_struct *info, int offset,
-				int value)
+static inline void serial_out(int offset, int value)
 {
-	outb(value, info->port + offset);
+	*(volatile unsigned int *)(mips_io_port_base + SEAD_UART0_REGS_BASE + offset*8) = value;
 }
-#endif
 
-static struct serial_state rs_table[] = {
-	SERIAL_PORT_DFNS	/* Defined in serial.h */
-};
-
-/*
- * Hooks to fake "prom" console I/O before devices
- * are fully initialized.
- */
-static struct async_struct prom_port_info = {0};
-
-void __init setup_prom_printf(int tty_no) {
-	struct serial_state *ser = &rs_table[tty_no];
+#else
 
-	prom_port_info.state = ser;
-	prom_port_info.magic = SERIAL_MAGIC;
-	prom_port_info.port = ser->port;
-	prom_port_info.flags = ser->flags;
+static inline unsigned int serial_in(int offset)
+{
+	return inb(0x3f8 + offset);
+}
 
-	/* No setup of UART - assume YAMON left in sane state */
+static inline void serial_out(int offset, int value)
+{
+	outb(value, 0x3f8 + offset);
 }
+#endif
 
 int putPromChar(char c)
 {
-        if (!prom_port_info.state) { 	/* need to init device first */
-		return 0;
-	}
-
-	while ((serial_in(&prom_port_info, UART_LSR) & UART_LSR_THRE) == 0)
+	while ((serial_in(UART_LSR) & UART_LSR_THRE) == 0)
 		;
 
-	serial_out(&prom_port_info, UART_TX, c);
+	serial_out(UART_TX, c);
 
 	return 1;
 }
 
 char getPromChar(void)
 {
-	if (!prom_port_info.state) { 	/* need to init device first */
-		return 0;
-	}
-
-	while (!(serial_in(&prom_port_info, UART_LSR) & 1))
+	while (!(serial_in(UART_LSR) & 1))
 		;
 
-	return(serial_in(&prom_port_info, UART_RX));
+	return serial_in(UART_RX);
 }
 
+static spinlock_t con_lock = SPIN_LOCK_UNLOCKED;
+
 static char buf[1024];
 
 void __init prom_printf(char *fmt, ...)
@@ -123,8 +104,7 @@
 
 	int putPromChar(char);
 
-	/* Low level, brute force, not SMP safe... */
-	save_and_cli(flags);
+	spin_lock_irqsave(con_lock, flags);
 	va_start(args, fmt);
 	l = vsprintf(buf, fmt, args); /* hopefully i < sizeof(buf) */
 	va_end(args);
@@ -133,8 +113,9 @@
 
 	for (p = buf; p < buf_end; p++) {
 		/* Crude cr/nl handling is better than none */
-		if(*p == '\n')putPromChar('\r');
+		if (*p == '\n')
+			putPromChar('\r');
 		putPromChar(*p);
 	}
-	restore_flags(flags);
+	spin_unlock_irqrestore(con_lock, flags);
 }
diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/generic/time.c linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/time.c
--- linux-2.4.20/arch/mips/mips-boards/generic/time.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/time.c	2002-12-01 18:24:49.000000000 -0600
@@ -65,7 +65,7 @@
 
 static inline void ack_r4ktimer(unsigned int newval)
 {
-	write_32bit_cp0_register(CP0_COMPARE, newval);
+	write_c0_compare(newval);
 }
 
 void mips_timer_interrupt(struct pt_regs *regs)
@@ -96,13 +96,13 @@
 	while (!(CMOS_READ(RTC_REG_A) & RTC_UIP));
 
 	/* Start r4k counter. */
-	write_32bit_cp0_register(CP0_COUNT, 0);
+	write_c0_count(0);
 
 	/* Read counter exactly on falling edge of update flag */
 	while (CMOS_READ(RTC_REG_A) & RTC_UIP);
 	while (!(CMOS_READ(RTC_REG_A) & RTC_UIP));
 
-	mips_counter_frequency = read_32bit_cp0_register(CP0_COUNT);
+	mips_counter_frequency = read_c0_count();
 
 	/* restore interrupts */
 	__restore_flags(flags);
@@ -158,7 +158,7 @@
 	r4k_offset = cal_r4koff();
 	printk("%08x(%d)\n", r4k_offset, r4k_offset);
 
-        if ((read_32bit_cp0_register(CP0_PRID) & 0xffff00) ==
+        if ((read_c0_prid() & 0xffff00) ==
 	    (PRID_COMP_MIPS | PRID_IMP_20KC))
 		est_freq = r4k_offset*HZ;
 	else
@@ -179,7 +179,7 @@
 	setup_irq(MIPS_CPU_TIMER_IRQ, irq);
 
         /* to generate the first timer interrupt */
-	r4k_cur = (read_32bit_cp0_register(CP0_COUNT) + r4k_offset);
-	write_32bit_cp0_register(CP0_COMPARE, r4k_cur);
-	set_cp0_status(ALLINTS);
+	r4k_cur = (read_c0_count() + r4k_offset);
+	write_c0_compare(r4k_cur);
+	set_c0_status(ALLINTS);
 }
diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/malta/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/malta/CVS/Entries
--- linux-2.4.20/arch/mips/mips-boards/malta/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/malta/CVS/Entries	2005-01-06 23:00:07.000000000 -0600
@@ -0,0 +1,6 @@
+/.cvsignore/1.1/Mon Oct  9 00:46:00 2000/-ko/Tlinux_2_4_20
+/Makefile/1.3.2.2/Mon Aug  5 23:53:34 2002/-ko/Tlinux_2_4_20
+/malta_int.c/1.8.2.8/Fri Feb 14 18:48:04 2003/-ko/Tlinux_2_4_20
+/malta_rtc.c/1.3/Sun Mar 18 04:30:28 2001/-ko/Tlinux_2_4_20
+/malta_setup.c/1.7.2.7/Fri Feb 14 18:48:04 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/malta/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/malta/CVS/Repository
--- linux-2.4.20/arch/mips/mips-boards/malta/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/malta/CVS/Repository	2005-01-06 23:00:07.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/mips-boards/malta
diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/malta/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/malta/CVS/Root
--- linux-2.4.20/arch/mips/mips-boards/malta/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/malta/CVS/Root	2005-01-06 23:00:07.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/malta/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/malta/CVS/Tag
--- linux-2.4.20/arch/mips/mips-boards/malta/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/malta/CVS/Tag	2005-01-06 23:00:07.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/malta/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/malta/.cvsignore
--- linux-2.4.20/arch/mips/mips-boards/malta/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/malta/.cvsignore	2000-10-08 19:46:00.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/malta/malta_int.c linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/malta/malta_int.c
--- linux-2.4.20/arch/mips/mips-boards/malta/malta_int.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/malta/malta_int.c	2003-02-14 12:48:04.000000000 -0600
@@ -43,6 +43,12 @@
 extern void init_i8259_irqs (void);
 extern int mips_pcibios_iack(void);
 
+#ifdef CONFIG_REMOTE_DEBUG
+extern void breakpoint(void);
+extern void set_debug_traps(void);
+extern int remote_debug;
+#endif
+
 static spinlock_t mips_irq_lock = SPIN_LOCK_UNLOCKED;
 
 static inline int get_int(int *irq)
@@ -91,6 +97,9 @@
 {
         unsigned int data,datahi;
 
+	/* Mask out corehi interrupt. */
+	clear_c0_status(IE_IRQ3);
+
         printk("CoreHI interrupt, shouldn't happen, so we die here!!!\n");
         printk("epc   : %08lx\nStatus: %08lx\nCause : %08lx\nbadVaddr : %08lx\n"
 , regs->cp0_epc, regs->cp0_status, regs->cp0_cause, regs->cp0_badvaddr);
@@ -125,7 +134,6 @@
 
         /* We die here*/
         die("CoreHi interrupt", regs);
-        while (1) ;
 }
 
 void __init init_IRQ(void)
diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/malta/malta_setup.c linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/malta/malta_setup.c
--- linux-2.4.20/arch/mips/mips-boards/malta/malta_setup.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/malta/malta_setup.c	2003-02-14 12:48:04.000000000 -0600
@@ -51,10 +51,8 @@
 #endif
 
 #ifdef CONFIG_REMOTE_DEBUG
-extern void set_debug_traps(void);
 extern void rs_kgdb_hook(int);
-extern void breakpoint(void);
-static int remote_debug = 0;
+int remote_debug = 0;
 #endif
 
 extern struct ide_ops std_ide_ops;
@@ -64,9 +62,6 @@
 
 extern void mips_reboot_setup(void);
 
-extern void (*board_time_init)(void);
-extern void (*board_timer_setup)(struct irqaction *irq);
-extern unsigned long (*rtc_get_time)(void);
 extern void mips_time_init(void);
 extern void mips_timer_setup(struct irqaction *irq);
 extern unsigned long mips_rtc_get_time(void);
@@ -94,8 +89,8 @@
 #ifdef CONFIG_REMOTE_DEBUG
 	int rs_putDebugChar(char);
 	char rs_getDebugChar(void);
-	extern int (*putDebugChar)(char);
-	extern char (*getDebugChar)(void);
+	extern int (*generic_putDebugChar)(char);
+	extern char (*generic_getDebugChar)(void);
 #endif
 	char *argptr;
 	int i;
@@ -130,8 +125,8 @@
 		       line ? 1 : 0);
 
 		rs_kgdb_hook(line);
-		putDebugChar = rs_putDebugChar;
-		getDebugChar = rs_getDebugChar;
+		generic_putDebugChar = rs_putDebugChar;
+		generic_getDebugChar = rs_getDebugChar;
 
 		prom_printf("KGDB: Using serial line /dev/ttyS%d for session, "
 			    "please connect your debugger\n", line ? 1 : 0);
diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/sead/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/sead/CVS/Entries
--- linux-2.4.20/arch/mips/mips-boards/sead/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/sead/CVS/Entries	2005-01-06 23:00:07.000000000 -0600
@@ -0,0 +1,6 @@
+/.cvsignore/1.1.2.1/Wed Jul 24 13:51:48 2002/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.2/Mon Aug  5 23:53:35 2002/-ko/Tlinux_2_4_20
+/sead_int.c/1.1.2.3/Mon Dec  2 00:24:49 2002/-ko/Tlinux_2_4_20
+/sead_setup.c/1.1.2.2/Mon Aug  5 23:53:35 2002/-ko/Tlinux_2_4_20
+/sead_time.c/1.1.2.3/Mon Dec  2 00:24:49 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/sead/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/sead/CVS/Repository
--- linux-2.4.20/arch/mips/mips-boards/sead/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/sead/CVS/Repository	2005-01-06 23:00:07.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/mips-boards/sead
diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/sead/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/sead/CVS/Root
--- linux-2.4.20/arch/mips/mips-boards/sead/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/sead/CVS/Root	2005-01-06 23:00:07.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/sead/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/sead/CVS/Tag
--- linux-2.4.20/arch/mips/mips-boards/sead/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/sead/CVS/Tag	2005-01-06 23:00:07.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/sead/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/sead/.cvsignore
--- linux-2.4.20/arch/mips/mips-boards/sead/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/sead/.cvsignore	2002-07-24 08:51:48.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/sead/sead_int.c linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/sead/sead_int.c
--- linux-2.4.20/arch/mips/mips-boards/sead/sead_int.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/sead/sead_int.c	2002-12-01 18:24:49.000000000 -0600
@@ -40,19 +40,19 @@
 void disable_sead_irq(unsigned int irq_nr)
 {
 	if (irq_nr == SEADINT_UART0)
-		clear_cp0_status(0x00000400);
+		clear_c0_status(0x00000400);
 	else
 		if (irq_nr == SEADINT_UART1)
-			clear_cp0_status(0x00000800);
+			clear_c0_status(0x00000800);
 }
 
 void enable_sead_irq(unsigned int irq_nr)
 {
 	if (irq_nr == SEADINT_UART0)
-		set_cp0_status(0x00000400);
+		set_c0_status(0x00000400);
 	else
 		if (irq_nr == SEADINT_UART1)
-			set_cp0_status(0x00000800);
+			set_c0_status(0x00000800);
 }
 
 static unsigned int startup_sead_irq(unsigned int irq)
@@ -99,7 +99,7 @@
         /*
          * Mask out all interrupt
 	 */
-	clear_cp0_status(0x0000ff00);
+	clear_c0_status(0x0000ff00);
 
 	/* Now safe to set the exception vector. */
 	set_except_vector(0, mipsIRQ);
diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/sead/sead_time.c linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/sead/sead_time.c
--- linux-2.4.20/arch/mips/mips-boards/sead/sead_time.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/sead/sead_time.c	2002-12-01 18:24:49.000000000 -0600
@@ -59,7 +59,7 @@
 
 static inline void ack_r4ktimer(unsigned long newval)
 {
-	write_32bit_cp0_register(CP0_COMPARE, newval);
+	write_c0_compare(newval);
 }
 
 /*
@@ -87,7 +87,7 @@
 		r4k_cur += r4k_offset;
 		ack_r4ktimer(r4k_cur);
 
-	} while (((unsigned long)read_32bit_cp0_register(CP0_COUNT)
+	} while (((unsigned long)read_c0_count()
 	         - r4k_cur) < 0x7fffffff);
 
 	irq_exit(cpu, irq);
@@ -116,13 +116,13 @@
 	__save_and_cli(flags);
 
         /* Start r4k counter. */
-        write_32bit_cp0_register(CP0_COUNT, 0);
+        write_c0_count(0);
 
 	printk("calculating r4koff... ");
 	r4k_offset = cal_r4koff();
 	printk("%08lx(%d)\n", r4k_offset, (int) r4k_offset);
 
-        if ((read_32bit_cp0_register(CP0_PRID) & 0xffff00) ==
+        if ((read_c0_prid() & 0xffff00) ==
 	    (PRID_COMP_MIPS | PRID_IMP_20KC))
 		est_freq = r4k_offset*HZ;
 	else
@@ -143,7 +143,7 @@
 	setup_irq(MIPS_CPU_TIMER_IRQ, irq);
 
         /* to generate the first timer interrupt */
-	r4k_cur = (read_32bit_cp0_register(CP0_COUNT) + r4k_offset);
-	write_32bit_cp0_register(CP0_COMPARE, r4k_cur);
-	set_cp0_status(ALLINTS);
+	r4k_cur = (read_c0_count() + r4k_offset);
+	write_c0_compare(r4k_cur);
+	set_c0_status(ALLINTS);
 }
diff -urNd -urNd linux-2.4.20/arch/mips/mm/c-andes.c linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-andes.c
--- linux-2.4.20/arch/mips/mm/c-andes.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-andes.c	2003-02-09 16:03:23.000000000 -0600
@@ -15,7 +15,6 @@
 #include <asm/pgtable.h>
 #include <asm/r10kcache.h>
 #include <asm/system.h>
-#include <asm/sgialib.h>
 #include <asm/mmu_context.h>
 
 static int scache_lsz64;
@@ -94,6 +93,11 @@
 
 void __init ld_mmu_andes(void)
 {
+	/* Default cache error handler for R10000 */
+	extern char except_vec2_generic;
+
+	memcpy((void *)(KSEG0 + 0x100), &except_vec2_generic, 0x80);
+	memcpy((void *)(KSEG1 + 0x100), &except_vec2_generic, 0x80);
 	printk("Primary instruction cache %dkb, linesize %d bytes\n",
 	       icache_size >> 10, ic_lsize);
 	printk("Primary data cache %dkb, linesize %d bytes\n",
diff -urNd -urNd linux-2.4.20/arch/mips/mm/cerr-sb1.c linux-2.4.20-mipscvs-20050106/arch/mips/mm/cerr-sb1.c
--- linux-2.4.20/arch/mips/mm/cerr-sb1.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/cerr-sb1.c	2003-02-06 17:25:13.000000000 -0600
@@ -0,0 +1,540 @@
+/*
+ * Copyright (C) 2001 Broadcom Corporation
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+#include <linux/sched.h>
+#include <asm/mipsregs.h>
+
+/* SB1 definitions */
+
+/* XXX should come from config1 XXX */
+#define SB1_CACHE_INDEX_MASK   0x1fe0
+
+#define CP0_ERRCTL_RECOVERABLE (1 << 31)
+#define CP0_ERRCTL_DCACHE      (1 << 30)
+#define CP0_ERRCTL_ICACHE      (1 << 29)
+#define CP0_ERRCTL_MULTIBUS    (1 << 23)
+#define CP0_ERRCTL_MC_TLB      (1 << 15)
+#define CP0_ERRCTL_MC_TIMEOUT  (1 << 14)
+
+#define CP0_CERRI_TAG_PARITY   (1 << 29)
+#define CP0_CERRI_DATA_PARITY  (1 << 28)
+#define CP0_CERRI_EXTERNAL     (1 << 26)
+
+#define CP0_CERRI_IDX_VALID(c) (!((c) & CP0_CERRI_EXTERNAL))
+#define CP0_CERRI_DATA         (CP0_CERRI_DATA_PARITY)
+
+#define CP0_CERRD_MULTIPLE     (1 << 31)
+#define CP0_CERRD_TAG_STATE    (1 << 30)
+#define CP0_CERRD_TAG_ADDRESS  (1 << 29)
+#define CP0_CERRD_DATA_SBE     (1 << 28)
+#define CP0_CERRD_DATA_DBE     (1 << 27)
+#define CP0_CERRD_EXTERNAL     (1 << 26)
+#define CP0_CERRD_LOAD         (1 << 25)
+#define CP0_CERRD_STORE        (1 << 24)
+#define CP0_CERRD_FILLWB       (1 << 23)
+#define CP0_CERRD_COHERENCY    (1 << 22)
+#define CP0_CERRD_DUPTAG       (1 << 21)
+
+#define CP0_CERRD_DPA_VALID(c) (!((c) & CP0_CERRD_EXTERNAL))
+#define CP0_CERRD_IDX_VALID(c) \
+   (((c) & (CP0_CERRD_LOAD | CP0_CERRD_STORE)) ? (!((c) & CP0_CERRD_EXTERNAL)) : 0)
+#define CP0_CERRD_CAUSES \
+   (CP0_CERRD_LOAD | CP0_CERRD_STORE | CP0_CERRD_FILLWB | CP0_CERRD_COHERENCY | CP0_CERRD_DUPTAG)
+#define CP0_CERRD_TYPES \
+   (CP0_CERRD_TAG_STATE | CP0_CERRD_TAG_ADDRESS | CP0_CERRD_DATA_SBE | CP0_CERRD_DATA_DBE | CP0_CERRD_EXTERNAL)
+#define CP0_CERRD_DATA         (CP0_CERRD_DATA_SBE | CP0_CERRD_DATA_DBE)
+
+static uint32_t	extract_ic(unsigned short addr, int data);
+static uint32_t	extract_dc(unsigned short addr, int data);
+
+static inline void breakout_errctl(unsigned int val)
+{
+	if (val & CP0_ERRCTL_RECOVERABLE)
+		prom_printf(" recoverable");
+	if (val & CP0_ERRCTL_DCACHE)
+		prom_printf(" dcache");
+	if (val & CP0_ERRCTL_ICACHE)
+		prom_printf(" icache");
+	if (val & CP0_ERRCTL_MULTIBUS)
+		prom_printf(" multiple-buserr");
+	prom_printf("\n");
+}
+
+static inline void breakout_cerri(unsigned int val)
+{
+	if (val & CP0_CERRI_TAG_PARITY)
+		prom_printf(" tag-parity");
+	if (val & CP0_CERRI_DATA_PARITY)
+		prom_printf(" data-parity");
+	if (val & CP0_CERRI_EXTERNAL)
+		prom_printf(" external");
+	prom_printf("\n");
+}
+
+static inline void breakout_cerrd(unsigned int val)
+{
+	switch (val & CP0_CERRD_CAUSES) {
+	case CP0_CERRD_LOAD:
+		prom_printf(" load,");
+		break;
+	case CP0_CERRD_STORE:
+		prom_printf(" store,");
+		break;
+	case CP0_CERRD_FILLWB:
+		prom_printf(" fill/wb,");
+		break;
+	case CP0_CERRD_COHERENCY:
+		prom_printf(" coherency,");
+		break;
+	case CP0_CERRD_DUPTAG:
+		prom_printf(" duptags,");
+		break;
+	default:
+		prom_printf(" NO CAUSE,");
+		break;
+	}
+	if (!(val & CP0_CERRD_TYPES))
+		prom_printf(" NO TYPE");
+	else {
+		if (val & CP0_CERRD_MULTIPLE)
+			prom_printf(" multi-err");
+		if (val & CP0_CERRD_TAG_STATE)
+			prom_printf(" tag-state");
+		if (val & CP0_CERRD_TAG_ADDRESS)
+			prom_printf(" tag-address");
+		if (val & CP0_CERRD_DATA_SBE)
+			prom_printf(" data-SBE");
+		if (val & CP0_CERRD_DATA_DBE)
+			prom_printf(" data-DBE");
+		if (val & CP0_CERRD_EXTERNAL)
+			prom_printf(" external");
+	}
+	prom_printf("\n");
+}
+
+#ifndef CONFIG_SIBYTE_BUS_WATCHER
+
+#include <asm/io.h>
+#include <asm/sibyte/sb1250.h>
+#include <asm/sibyte/sb1250_regs.h>
+#include <asm/sibyte/sb1250_scd.h>
+#include <asm/sibyte/64bit.h>
+
+static void check_bus_watcher(void)              
+{                               
+	uint32_t status, l2_err, memio_err;
+
+	/* Destructive read, clears register and interrupt */
+	status = csr_in32(IO_SPACE_BASE | A_SCD_BUS_ERR_STATUS);
+	/* Bit 31 is always on, but there's no #define for that */
+	if (status & ~(1UL << 31)) {  
+		l2_err = csr_in32(IO_SPACE_BASE | A_BUS_L2_ERRORS);
+		memio_err = csr_in32(IO_SPACE_BASE | A_BUS_MEM_IO_ERRORS);
+		prom_printf("Bus watcher error counters: %08x %08x\n", l2_err, memio_err);
+		prom_printf("\nLast recorded signature:\n");
+		prom_printf("Request %02x from %d, answered by %d with Dcode %d\n",
+		       (unsigned int)(G_SCD_BERR_TID(status) & 0x3f),
+		       (int)(G_SCD_BERR_TID(status) >> 6),
+		       (int)G_SCD_BERR_RID(status),
+		       (int)G_SCD_BERR_DCODE(status));
+	} else {		
+		prom_printf("Bus watcher indicates no error\n"); 
+	}			
+}                                       
+#else                                                    
+extern void check_bus_watcher(void);    
+#endif                                          
+                                
+asmlinkage void sb1_cache_error(void)
+{
+	uint64_t cerr_dpa;
+	uint32_t errctl, cerr_i, cerr_d, dpalo, dpahi, eepc, res;
+
+	prom_printf("Cache error exception on CPU %x:\n",
+		    (read_c0_prid() >> 25) & 0x7);
+
+	__asm__ __volatile__ (
+	"	.set	push\n\t"
+	"	.set	mips64\n\t"
+	"	.set	noat\n\t"
+	"	mfc0	%0, $26\n\t"
+	"	mfc0	%1, $27\n\t"
+	"	mfc0	%2, $27, 1\n\t"
+	"	dmfc0	$1, $27, 3\n\t"
+	"	dsrl32	%3, $1, 0 \n\t"
+	"	sll	%4, $1, 0 \n\t"
+	"	mfc0	%5, $30\n\t"
+	"	.set	pop"
+	: "=r" (errctl), "=r" (cerr_i), "=r" (cerr_d),
+	  "=r" (dpahi), "=r" (dpalo), "=r" (eepc));
+
+	cerr_dpa = (((uint64_t)dpahi) << 32) | dpalo;
+	prom_printf(" cp0_errorepc ==   %08x\n", eepc);
+	prom_printf(" cp0_errctl   ==   %08x", errctl);
+	breakout_errctl(errctl);
+	if (errctl & CP0_ERRCTL_ICACHE) {
+		prom_printf(" cp0_cerr_i   ==   %08x", cerr_i);
+		breakout_cerri(cerr_i);
+		if (CP0_CERRI_IDX_VALID(cerr_i)) {
+			if ((eepc & SB1_CACHE_INDEX_MASK) != (cerr_i & SB1_CACHE_INDEX_MASK))
+				prom_printf(" cerr_i idx doesn't match eepc\n");
+			else {
+				res = extract_ic(cerr_i & SB1_CACHE_INDEX_MASK,
+						 (cerr_i & CP0_CERRI_DATA) != 0);
+				if (!(res & cerr_i))
+					prom_printf("...didn't see indicated icache problem\n");
+			}
+		}
+	}
+	if (errctl & CP0_ERRCTL_DCACHE) {
+		prom_printf(" cp0_cerr_d   ==   %08x", cerr_d);
+		breakout_cerrd(cerr_d);
+		if (CP0_CERRD_DPA_VALID(cerr_d)) {
+			prom_printf(" cp0_cerr_dpa == %010llx\n", cerr_dpa);
+			if (!CP0_CERRD_IDX_VALID(cerr_d)) {
+				res = extract_dc(cerr_dpa & SB1_CACHE_INDEX_MASK,
+						 (cerr_d & CP0_CERRD_DATA) != 0);
+				if (!(res & cerr_d))
+					prom_printf("...didn't see indicated dcache problem\n");
+			} else {
+				if ((cerr_dpa & SB1_CACHE_INDEX_MASK) != (cerr_d & SB1_CACHE_INDEX_MASK))
+					prom_printf(" cerr_d idx doesn't match cerr_dpa\n");
+				else {
+					res = extract_dc(cerr_d & SB1_CACHE_INDEX_MASK,
+							 (cerr_d & CP0_CERRD_DATA) != 0);
+					if (!(res & cerr_d))
+						prom_printf("...didn't see indicated problem\n");
+				}
+			}
+		}
+	}
+
+	check_bus_watcher();
+
+	while (1);
+	/*
+	 * This tends to make things get really ugly; let's just stall instead.
+	 *    panic("Can't handle the cache error!");
+	 */
+}
+
+
+/* Parity lookup table. */
+static const uint8_t parity[256] = {
+	0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,
+	1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,
+	1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,
+	0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,
+	1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,
+	0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,
+	0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,
+	1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0
+};
+
+/* Masks to select bits for Hamming parity, mask_72_64[i] for bit[i] */
+static const uint64_t mask_72_64[8] = {
+	0x0738C808099264FFL,
+	0x38C808099264FF07L,
+	0xC808099264FF0738L,
+	0x08099264FF0738C8L,
+	0x099264FF0738C808L,
+	0x9264FF0738C80809L,
+	0x64FF0738C8080992L,
+	0xFF0738C808099264L
+};
+
+/* Calculate the parity on a range of bits */
+static char range_parity(uint64_t dword, int max, int min)
+{
+	char parity = 0;
+	int i;
+	dword >>= min;
+	for (i=max-min; i>=0; i--) {
+		if (dword & 0x1)
+			parity = !parity;
+		dword >>= 1;
+	}
+	return parity;
+}
+
+/* Calculate the 4-bit even byte-parity for an instruction */
+static unsigned char inst_parity(uint32_t word)
+{
+	int i, j;
+	char parity = 0;
+	for (j=0; j<4; j++) {
+		char byte_parity = 0;
+		for (i=0; i<8; i++) {
+			if (word & 0x80000000)
+				byte_parity = !byte_parity;
+			word <<= 1;
+		}
+		parity <<= 1;
+		parity |= byte_parity;
+	}
+	return parity;
+}
+
+static uint32_t extract_ic(unsigned short addr, int data)
+{
+	unsigned short way;
+	int valid;
+	uint64_t taglo, va, tlo_tmp;
+	uint32_t taghi, taglolo, taglohi;
+	uint8_t lru;
+	int res = 0;
+
+	prom_printf("Icache index 0x%04x  ", addr);
+	for (way = 0; way < 4; way++) {
+		/* Index-load-tag-I */
+		__asm__ __volatile__ (
+		"	.set	push		\n\t"
+		"	.set	noreorder	\n\t"
+		"	.set	mips64		\n\t"
+		"	.set	noat		\n\t"
+		"	cache	4, 0(%3)	\n\t"
+		"	mfc0	%0, $29		\n\t"
+		"	dmfc0	$1, $28		\n\t"
+		"	dsrl32	%1, $1, 0	\n\t"
+		"	sll	%2, $1, 0	\n\t"
+		"	.set	pop"
+		: "=r" (taghi), "=r" (taglohi), "=r" (taglolo)
+		: "r" ((way << 13) | addr));
+
+		taglo = ((unsigned long long)taglohi << 32) | taglolo;
+		if (way == 0) {
+			lru = (taghi >> 14) & 0xff;
+			prom_printf("[Bank %d Set 0x%02x]  LRU > %d %d %d %d > MRU\n",
+				    ((addr >> 5) & 0x3), /* bank */
+				    ((addr >> 7) & 0x3f), /* index */
+				    (lru & 0x3),
+				    ((lru >> 2) & 0x3),
+				    ((lru >> 4) & 0x3),
+				    ((lru >> 6) & 0x3));
+		}
+		va = (taglo & 0xC0000FFFFFFFE000) | addr;
+		if ((taglo & (1 << 31)) && (((taglo >> 62) & 0x3) == 3))
+			va |= 0x3FFFF00000000000;
+		valid = ((taghi >> 29) & 1);
+		if (valid) {
+			tlo_tmp = taglo & 0xfff3ff;
+			if (((taglo >> 10) & 1) ^ range_parity(tlo_tmp, 23, 0)) {
+				prom_printf("   ** bad parity in VTag0/G/ASID\n");
+				res |= CP0_CERRI_TAG_PARITY;
+			}
+			if (((taglo >> 11) & 1) ^ range_parity(taglo, 63, 24)) {
+				prom_printf("   ** bad parity in R/VTag1\n");
+				res |= CP0_CERRI_TAG_PARITY;
+			}
+		}
+		if (valid ^ ((taghi >> 27) & 1)) {
+			prom_printf("   ** bad parity for valid bit\n");
+			res |= CP0_CERRI_TAG_PARITY;
+		}
+		prom_printf(" %d  [VA %016llx]  [Vld? %d]  raw tags: %08X-%016llX\n",
+			    way, va, valid, taghi, taglo);
+
+		if (data) {
+			uint32_t datahi, insta, instb;
+			uint8_t predecode;
+			int offset;
+
+			/* (hit all banks and ways) */
+			for (offset = 0; offset < 4; offset++) {
+				/* Index-load-data-I */
+				__asm__ __volatile__ (
+				"	.set	push\n\t"
+				"	.set	noreorder\n\t"
+				"	.set	mips64\n\t"
+				"	.set	noat\n\t"
+				"	cache	6, 0(%3)  \n\t"
+				"	mfc0	%0, $29, 1\n\t"
+				"	dmfc0  $1, $28, 1\n\t"
+				"	dsrl32 %1, $1, 0 \n\t"
+				"	sll    %2, $1, 0 \n\t"
+				"	.set	pop         \n"
+				: "=r" (datahi), "=r" (insta), "=r" (instb)
+				: "r" ((way << 13) | addr | (offset << 3)));
+				predecode = (datahi >> 8) & 0xff;
+				if (((datahi >> 16) & 1) != (uint32_t)range_parity(predecode, 7, 0)) {
+					prom_printf("   ** bad parity in predecode\n");
+					res |= CP0_CERRI_DATA_PARITY;
+				}
+				/* XXXKW should/could check predecode bits themselves */
+				if (((datahi >> 4) & 0xf) ^ inst_parity(insta)) {
+					prom_printf("   ** bad parity in instruction a\n");
+					res |= CP0_CERRI_DATA_PARITY;
+				}
+				if ((datahi & 0xf) ^ inst_parity(instb)) {
+					prom_printf("   ** bad parity in instruction b\n");
+					res |= CP0_CERRI_DATA_PARITY;
+				}
+				prom_printf("  %05X-%08X%08X", datahi, insta, instb);
+			}
+			prom_printf("\n");
+		}
+	}
+	return res;
+}
+
+/* Compute the ECC for a data doubleword */
+static uint8_t dc_ecc(uint64_t dword)
+{
+	uint64_t t;
+	uint32_t w;
+	uint8_t  p;
+	int      i;
+
+	p = 0;
+	for (i = 7; i >= 0; i--)
+	{
+		p <<= 1;
+		t = dword & mask_72_64[i];
+		w = (uint32_t)(t >> 32);
+		p ^= (parity[w>>24] ^ parity[(w>>16) & 0xFF]
+		      ^ parity[(w>>8) & 0xFF] ^ parity[w & 0xFF]);
+		w = (uint32_t)(t & 0xFFFFFFFF);
+		p ^= (parity[w>>24] ^ parity[(w>>16) & 0xFF]
+		      ^ parity[(w>>8) & 0xFF] ^ parity[w & 0xFF]);
+	}
+	return p;
+}
+
+struct dc_state {
+	unsigned char val;
+	char *name;
+};
+
+static struct dc_state dc_states[] = {
+	{ 0x00, "INVALID" },
+	{ 0x0f, "COH-SHD" },
+	{ 0x13, "NCO-E-C" },
+	{ 0x19, "NCO-E-D" },
+	{ 0x16, "COH-E-C" },
+	{ 0x1c, "COH-E-D" },
+	{ 0xff, "*ERROR*" }
+};
+
+#define DC_TAG_VALID(state) \
+    (((state) == 0xf) || ((state) == 0x13) || ((state) == 0x19) || ((state == 0x16)) || ((state) == 0x1c))
+
+static char *dc_state_str(unsigned char state)
+{
+	struct dc_state *dsc = dc_states;
+	while (dsc->val != 0xff) {
+		if (dsc->val == state)
+			break;
+		dsc++;
+	}
+	return dsc->name;
+}
+
+static uint32_t extract_dc(unsigned short addr, int data)
+{
+	int valid, way;
+	unsigned char state;
+	uint64_t taglo, pa;
+	uint32_t taghi, taglolo, taglohi;
+	uint8_t ecc, lru;
+	int res = 0;
+
+	prom_printf("Dcache index 0x%04x  ", addr);
+	for (way = 0; way < 4; way++) {
+		__asm__ __volatile__ (
+		"	.set	push\n\t"
+		"	.set	noreorder\n\t"
+		"	.set	mips64\n\t"
+		"	.set	noat\n\t"
+		"	cache	5, 0(%3)\n\t"	/* Index-load-tag-D */
+		"	mfc0	%0, $29, 2\n\t"
+		"	dmfc0	$1, $28, 2\n\t"
+		"	dsrl32	%1, $1, 0\n\t"
+		"	sll	%2, $1, 0\n\t"
+		"	.set	pop"
+		: "=r" (taghi), "=r" (taglohi), "=r" (taglolo)
+		: "r" ((way << 13) | addr));
+
+		taglo = ((unsigned long long)taglohi << 32) | taglolo;
+		pa = (taglo & 0xFFFFFFE000) | addr;
+		if (way == 0) {
+			lru = (taghi >> 14) & 0xff;
+			prom_printf("[Bank %d Set 0x%02x]  LRU > %d %d %d %d > MRU\n",
+				    ((addr >> 11) & 0x2) | ((addr >> 5) & 1), /* bank */
+				    ((addr >> 6) & 0x3f), /* index */
+				    (lru & 0x3),
+				    ((lru >> 2) & 0x3),
+				    ((lru >> 4) & 0x3),
+				    ((lru >> 6) & 0x3));
+		}
+		state = (taghi >> 25) & 0x1f;
+		valid = DC_TAG_VALID(state);
+		prom_printf(" %d  [PA %010llx]  [state %s (%02x)]  raw tags: %08X-%016llX\n",
+			    way, pa, dc_state_str(state), state, taghi, taglo);
+		if (valid) {
+			if (((taglo >> 11) & 1) ^ range_parity(taglo, 39, 26)) {
+				prom_printf("   ** bad parity in PTag1\n");
+				res |= CP0_CERRD_TAG_ADDRESS;
+			}
+			if (((taglo >> 10) & 1) ^ range_parity(taglo, 25, 13)) {
+				prom_printf("   ** bad parity in PTag0\n");
+				res |= CP0_CERRD_TAG_ADDRESS;
+			}
+		} else {
+			res |= CP0_CERRD_TAG_STATE;
+		}
+
+		if (data) {
+			uint64_t datalo;
+			uint32_t datalohi, datalolo, datahi;
+			int offset;
+
+			for (offset = 0; offset < 4; offset++) {
+				/* Index-load-data-D */
+				__asm__ __volatile__ (
+				"	.set	push\n\t"
+				"	.set	noreorder\n\t"
+				"	.set	mips64\n\t"
+				"	.set	noat\n\t"
+				"	cache	7, 0(%3)\n\t" /* Index-load-data-D */
+				"	mfc0	%0, $29, 3\n\t"
+				"	dmfc0	$1, $28, 3\n\t"
+				"	dsrl32	%1, $1, 0 \n\t"
+				"	sll	%2, $1, 0 \n\t"
+				"	.set	pop"
+				: "=r" (datahi), "=r" (datalohi), "=r" (datalolo)
+				: "r" ((way << 13) | addr | (offset << 3)));
+				datalo = ((unsigned long long)datalohi << 32) | datalolo;
+				ecc = dc_ecc(datalo);
+				if (ecc != datahi) {
+					int bits = 0;
+					prom_printf("  ** bad ECC (%02x %02x) ->",
+						    datahi, ecc);
+					ecc ^= datahi;
+					while (ecc) {
+						if (ecc & 1) bits++;
+						ecc >>= 1;
+					}
+					res |= (bits == 1) ? CP0_CERRD_DATA_SBE : CP0_CERRD_DATA_DBE;
+				}
+				prom_printf("  %02X-%016llX", datahi, datalo);
+			}
+			prom_printf("\n");
+		}
+	}
+	return res;
+}
diff -urNd -urNd linux-2.4.20/arch/mips/mm/cex-sb1.S linux-2.4.20-mipscvs-20050106/arch/mips/mm/cex-sb1.S
--- linux-2.4.20/arch/mips/mm/cex-sb1.S	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/cex-sb1.S	2003-02-07 14:33:37.000000000 -0600
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2001,2002,2003 Broadcom Corporation
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+#include <linux/config.h>
+#include <linux/init.h>
+
+#include <asm/asm.h>
+#include <asm/regdef.h>
+#include <asm/mipsregs.h>
+#include <asm/stackframe.h>
+#include <asm/sibyte/board.h>
+
+	.text
+	.set	noat
+	.set	mips4
+
+        __INIT
+        
+	/* Cache Error handler for SB1 */
+	LEAF(except_vec2_sb1)
+	mfc0	k1, $26
+	# check if error was recoverable
+	bltz	k1, leave_cerr
+#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
+	# look for signature of spurious CErr
+	lui	k0, 0x4000
+	bne	k0, k1, 1f
+	.word	0x401Bd801			# mfc0	k1, $27, 1
+	lui	k0, 0xffe0
+	and	k1, k0, k1
+	lui	k0, 0x0200
+	beq	k0, k1, leave_cerr
+1:
+#endif
+	j	handle_vec2_sb1
+
+leave_cerr:
+	# clear/unlock the registers
+	mtc0	zero, $26
+	mtc0	zero, $27
+	.word	0x4080d801			# mtc0	zero, $27, 1
+	.word	0x4080d803			# mtc0	zero, $27, 3
+	eret
+	END(except_vec2_sb1)
+
+	__FINIT
+
+	LEAF(handle_vec2_sb1)
+	mfc0	k0,CP0_CONFIG
+	li	k1,~CONF_CM_CMASK
+	and	k0,k0,k1
+	ori	k0,k0,CONF_CM_UNCACHED
+	mtc0	k0,CP0_CONFIG
+
+	SSNOP
+	SSNOP
+	SSNOP
+	SSNOP
+	bnezl	$0, 1f
+1:
+	mfc0	k0, CP0_STATUS
+	sll	k0, k0, 3			# check CU0 (kernel?)
+	bltz	k0, 2f
+	GET_SAVED_SP
+	move	sp, k0				# want Kseg SP (so uncached)
+2:
+	j	sb1_cache_error
+
+	END(handle_vec2_sb1)
diff -urNd -urNd linux-2.4.20/arch/mips/mm/c-mips32.c linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-mips32.c
--- linux-2.4.20/arch/mips/mm/c-mips32.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-mips32.c	2003-02-09 16:03:23.000000000 -0600
@@ -65,18 +65,18 @@
 {
 	unsigned long flags;
 
-	__save_and_cli(flags);
+	local_irq_save(flags);
 	blast_dcache(); blast_icache(); blast_scache();
-	__restore_flags(flags);
+	local_irq_restore(flags);
 }
 
 static inline void mips32_flush_cache_all_pc(void)
 {
 	unsigned long flags;
 
-	__save_and_cli(flags);
+	local_irq_save(flags);
 	blast_dcache(); blast_icache();
-	__restore_flags(flags);
+	local_irq_restore(flags);
 }
 
 static void
@@ -103,7 +103,7 @@
 			pmd_t *pmd;
 			pte_t *pte;
 
-			__save_and_cli(flags);
+			local_irq_save(flags);
 			while(start < end) {
 				pgd = pgd_offset(mm, start);
 				pmd = pmd_offset(pgd, start);
@@ -113,7 +113,7 @@
 					blast_scache_page(start);
 				start += PAGE_SIZE;
 			}
-			__restore_flags(flags);
+			local_irq_restore(flags);
 		}
 	}
 }
@@ -128,9 +128,9 @@
 #ifdef DEBUG_CACHE
 		printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
 #endif
-		__save_and_cli(flags);
+		local_irq_save(flags);
 		blast_dcache(); blast_icache();
-		__restore_flags(flags);
+		local_irq_restore(flags);
 	}
 }
 
@@ -178,7 +178,6 @@
 #ifdef DEBUG_CACHE
 	printk("cpage[%d,%08lx]", (int)mm->context, page);
 #endif
-	__save_and_cli(flags);
 	page &= PAGE_MASK;
 	pgdp = pgd_offset(mm, page);
 	pmdp = pmd_offset(pgdp, page);
@@ -189,7 +188,7 @@
 	 * in the cache.
 	 */
 	if (!(pte_val(*ptep) & _PAGE_VALID))
-		goto out;
+		return;
 
 	/*
 	 * Doing flushes for another ASID than the current one is
@@ -207,8 +206,6 @@
 		blast_scache_page_indexed(page);
 	} else
 		blast_scache_page(page);
-out:
-	__restore_flags(flags);
 }
 
 static void mips32_flush_cache_page_pc(struct vm_area_struct *vma,
@@ -230,7 +227,6 @@
 #ifdef DEBUG_CACHE
 	printk("cpage[%d,%08lx]", (int)mm->context, page);
 #endif
-	__save_and_cli(flags);
 	page &= PAGE_MASK;
 	pgdp = pgd_offset(mm, page);
 	pmdp = pmd_offset(pgdp, page);
@@ -241,7 +237,7 @@
 	 * in the cache.
 	 */
 	if (!(pte_val(*ptep) & _PAGE_VALID))
-		goto out;
+		return;
 
 	/*
 	 * Doing flushes for another ASID than the current one is
@@ -258,8 +254,6 @@
 		page = (KSEG0 + (page & (dcache_size - 1)));
 		blast_dcache_page_indexed(page);
 	}
-out:
-	__restore_flags(flags);
 }
 
 /* If the addresses passed to these routines are valid, they are
@@ -298,13 +292,18 @@
 static void
 mips32_flush_icache_page(struct vm_area_struct *vma, struct page *page)
 {
-	int address;
-
+	/*
+	 * If there's no context yet, or the page isn't executable, no icache 
+	 * flush is needed.
+	 */
 	if (!(vma->vm_flags & VM_EXEC))
 		return;
 
-	address = KSEG0 + ((unsigned long)page_address(page) & PAGE_MASK & (dcache_size - 1));
-	blast_icache_page_indexed(address);
+	/*
+	 * We're not sure of the virtual address(es) involved here, so
+	 * conservatively flush the entire caches.
+	 */
+	flush_cache_all();
 }
 
 /*
@@ -317,17 +316,17 @@
 	unsigned int flags;
 
 	if (size >= dcache_size) {
-		flush_cache_all();
+		blast_dcache();
 	} else {
-	        __save_and_cli(flags);
+	        local_irq_save(flags);
 		a = addr & ~(dc_lsize - 1);
-		end = (addr + size) & ~(dc_lsize - 1);
+		end = (addr + size - 1) & ~(dc_lsize - 1);
 		while (1) {
 			flush_dcache_line(a); /* Hit_Writeback_Inv_D */
 			if (a == end) break;
 			a += dc_lsize;
 		}
-		__restore_flags(flags);
+		local_irq_restore(flags);
 	}
 	bc_wback_inv(addr, size);
 }
@@ -338,12 +337,12 @@
 	unsigned long end, a;
 
 	if (size >= scache_size) {
-		flush_cache_all();
+		blast_scache();
 		return;
 	}
 
 	a = addr & ~(sc_lsize - 1);
-	end = (addr + size) & ~(sc_lsize - 1);
+	end = (addr + size - 1) & ~(sc_lsize - 1);
 	while (1) {
 		flush_scache_line(a);	/* Hit_Writeback_Inv_SD */
 		if (a == end) break;
@@ -358,17 +357,17 @@
 	unsigned int flags;
 
 	if (size >= dcache_size) {
-		flush_cache_all();
+		blast_dcache();
 	} else {
-	        __save_and_cli(flags);
+	        local_irq_save(flags);
 		a = addr & ~(dc_lsize - 1);
-		end = (addr + size) & ~(dc_lsize - 1);
+		end = (addr + size - 1) & ~(dc_lsize - 1);
 		while (1) {
-			flush_dcache_line(a); /* Hit_Writeback_Inv_D */
+			invalidate_dcache_line(a); /* Hit_Inv_D */
 			if (a == end) break;
 			a += dc_lsize;
 		}
-		__restore_flags(flags);
+		local_irq_restore(flags);
 	}
 
 	bc_inv(addr, size);
@@ -380,14 +379,14 @@
 	unsigned long end, a;
 
 	if (size >= scache_size) {
-		flush_cache_all();
+		blast_scache();
 		return;
 	}
 
 	a = addr & ~(sc_lsize - 1);
-	end = (addr + size) & ~(sc_lsize - 1);
+	end = (addr + size - 1) & ~(sc_lsize - 1);
 	while (1) {
-		flush_scache_line(a); /* Hit_Writeback_Inv_SD */
+		invalidate_scache_line(a); /* Hit_Inv_SD */
 		if (a == end) break;
 		a += sc_lsize;
 	}
@@ -412,7 +411,7 @@
 
 static void mips32_flush_icache_all(void)
 {
-	if (mips_cpu.cputype == CPU_20KC) {
+	if (mips_cpu.icache.flags | MIPS_CACHE_VTAG_CACHE) {
 		blast_icache();
 	}
 }
@@ -423,6 +422,7 @@
         unsigned long config1;
 	unsigned int lsize;
 
+	mips_cpu.icache.flags = 0;
         if (!(config & (1 << 31))) {
 	        /*
 		 * Not a MIPS32 complainant CPU.
@@ -440,7 +440,7 @@
 		mips_cpu.icache.sets =
 			(icache_size / ic_lsize) / mips_cpu.icache.ways;
 	} else {
-	       config1 = read_mips32_cp0_config1();
+	       config1 = read_c0_config1();
 
 	       if ((lsize = ((config1 >> 19) & 7)))
 		       mips_cpu.icache.linesz = 2 << lsize;
@@ -452,6 +452,16 @@
 	       ic_lsize = mips_cpu.icache.linesz;
 	       icache_size = mips_cpu.icache.sets * mips_cpu.icache.ways *
 		             ic_lsize;
+
+	       if ((config & 0x8) || (mips_cpu.cputype == CPU_20KC)) {
+		       /* 
+			* The CPU has a virtually tagged I-cache.
+			* Some older 20Kc chips doesn't have the 'VI' bit in
+			* the config register, so we also check for 20Kc.
+			*/
+		       mips_cpu.icache.flags = MIPS_CACHE_VTAG_CACHE;
+		       printk("Virtually tagged I-cache detected\n");
+	       }
 	}
 	printk("Primary instruction cache %dkb, linesize %d bytes (%d ways)\n",
 	       icache_size >> 10, ic_lsize, mips_cpu.icache.ways);
@@ -462,6 +472,7 @@
         unsigned long config1;
 	unsigned int lsize;
 
+	mips_cpu.dcache.flags = 0;
         if (!(config & (1 << 31))) {
 	        /*
 		 * Not a MIPS32 complainant CPU.
@@ -478,7 +489,7 @@
 		mips_cpu.dcache.sets =
 			(dcache_size / dc_lsize) / mips_cpu.dcache.ways;
 	} else {
-	        config1 = read_mips32_cp0_config1();
+	        config1 = read_c0_config1();
 
 		if ((lsize = ((config1 >> 10) & 7)))
 		        mips_cpu.dcache.linesz = 2 << lsize;
@@ -537,7 +548,7 @@
 	/* This is such a bitch, you'd think they would make it
 	 * easy to do this.  Away you daemons of stupidity!
 	 */
-	__save_and_cli(flags);
+	local_irq_save(flags);
 
 	/* Fill each size-multiple cache line with a valid tag. */
 	pow2 = (64 * 1024);
@@ -548,8 +559,8 @@
 	}
 
 	/* Load first line with zero (therefore invalid) tag. */
-	set_taglo(0);
-	set_taghi(0);
+	write_c0_taglo(0);
+	write_c0_taghi(0);
 	__asm__ __volatile__("nop; nop; nop; nop;"); /* avoid the hazard */
 	__asm__ __volatile__("\n\t.set noreorder\n\t"
 			     ".set mips3\n\t"
@@ -577,11 +588,11 @@
 				     ".set mips0\n\t"
 				     ".set reorder\n\t" : : "r" (addr));
 		__asm__ __volatile__("nop; nop; nop; nop;"); /* hazard... */
-		if(!get_taglo())
+		if(!read_c0_taglo())
 			break;
 		pow2 <<= 1;
 	}
-	__restore_flags(flags);
+	local_irq_restore(flags);
 	addr -= begin;
 	printk("Secondary cache sized at %dK linesize %d bytes.\n",
 	       (int) (addr >> 10), sc_lsize);
@@ -655,9 +666,14 @@
 
 void __init ld_mmu_mips32(void)
 {
-	unsigned long config = read_32bit_cp0_register(CP0_CONFIG);
+	unsigned long config = read_c0_config();
+	extern char except_vec2_generic;
 
-	change_cp0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
+	/* Default cache error handler for MIPS32 */
+	memcpy((void *)(KSEG0 + 0x100), &except_vec2_generic, 0x80);
+	memcpy((void *)(KSEG1 + 0x100), &except_vec2_generic, 0x80);
+
+	change_c0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
 
 	probe_icache(config);
 	probe_dcache(config);
diff -urNd -urNd linux-2.4.20/arch/mips/mm/c-r3k.c linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-r3k.c
--- linux-2.4.20/arch/mips/mm/c-r3k.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-r3k.c	2002-12-01 18:24:49.000000000 -0600
@@ -34,14 +34,14 @@
 
 	p = (volatile unsigned long *) KSEG0;
 
-	flags = read_32bit_cp0_register(CP0_STATUS);
+	flags = read_c0_status();
 
 	/* isolate cache space */
-	write_32bit_cp0_register(CP0_STATUS, (ca_flags|flags)&~ST0_IEC);
+	write_c0_status((ca_flags|flags)&~ST0_IEC);
 
 	*p = 0xa5a55a5a;
 	dummy = *p;
-	status = read_32bit_cp0_register(CP0_STATUS);
+	status = read_c0_status();
 
 	if (dummy != 0xa5a55a5a || (status & ST0_CM)) {
 		size = 0;
@@ -57,7 +57,7 @@
 			size = 0;
 	}
 
-	write_32bit_cp0_register(CP0_STATUS, flags);
+	write_c0_status(flags);
 
 	return size * sizeof(*p);
 }
@@ -69,24 +69,24 @@
 
 	p = (volatile unsigned long *) KSEG0;
 
-	flags = read_32bit_cp0_register(CP0_STATUS);
+	flags = read_c0_status();
 
 	/* isolate cache space */
-	write_32bit_cp0_register(CP0_STATUS, (ca_flags|flags)&~ST0_IEC);
+	write_c0_status((ca_flags|flags)&~ST0_IEC);
 
 	for (i = 0; i < 128; i++)
 		*(p + i) = 0;
 	*(volatile unsigned char *)p = 0;
 	for (lsize = 1; lsize < 128; lsize <<= 1) {
 		*(p + lsize);
-		status = read_32bit_cp0_register(CP0_STATUS);
+		status = read_c0_status();
 		if (!(status & ST0_CM))
 			break;
 	}
 	for (i = 0; i < 128; i += lsize)
 		*(volatile unsigned char *)(p + i) = 0;
 
-	write_32bit_cp0_register(CP0_STATUS, flags);
+	write_c0_status(flags);
 
 	return lsize * sizeof(*p);
 }
@@ -115,10 +115,10 @@
 	}
 	p = (char *)start;
 
-	flags = read_32bit_cp0_register(CP0_STATUS);
+	flags = read_c0_status();
 
 	/* isolate cache space */
-	write_32bit_cp0_register(CP0_STATUS, (ST0_ISC|ST0_SWC|flags)&~ST0_IEC);
+	write_c0_status((ST0_ISC|ST0_SWC|flags)&~ST0_IEC);
 
 	for (i = 0; i < size; i += 0x080) {
 		asm ( 	"sb\t$0, 0x000(%0)\n\t"
@@ -157,7 +157,7 @@
 		p += 0x080;
 	}
 
-	write_32bit_cp0_register(CP0_STATUS, flags);
+	write_c0_status(flags);
 }
 
 static void r3k_flush_dcache_range(unsigned long start, unsigned long end)
@@ -172,10 +172,10 @@
 	}
 	p = (char *)start;
 
-	flags = read_32bit_cp0_register(CP0_STATUS);
+	flags = read_c0_status();
 
 	/* isolate cache space */
-	write_32bit_cp0_register(CP0_STATUS, (ST0_ISC|flags)&~ST0_IEC);
+	write_c0_status((ST0_ISC|flags)&~ST0_IEC);
 
 	for (i = 0; i < size; i += 0x080) {
 		asm ( 	"sb\t$0, 0x000(%0)\n\t"
@@ -214,7 +214,7 @@
 		p += 0x080;
 	}
 
-	write_32bit_cp0_register(CP0_STATUS,flags);
+	write_c0_status(flags);
 }
 
 static inline unsigned long get_phys_page (unsigned long addr,
@@ -293,22 +293,22 @@
 	printk("csigtramp[%08lx]", addr);
 #endif
 
-	flags = read_32bit_cp0_register(CP0_STATUS);
+	flags = read_c0_status();
 
-	write_32bit_cp0_register(CP0_STATUS, flags&~ST0_IEC);
+	write_c0_status(flags&~ST0_IEC);
 
 	/* Fill the TLB to avoid an exception with caches isolated. */
 	asm ( 	"lw\t$0, 0x000(%0)\n\t"
 		"lw\t$0, 0x004(%0)\n\t"
 		: : "r" (addr) );
 
-	write_32bit_cp0_register(CP0_STATUS, (ST0_ISC|ST0_SWC|flags)&~ST0_IEC);
+	write_c0_status((ST0_ISC|ST0_SWC|flags)&~ST0_IEC);
 
 	asm ( 	"sb\t$0, 0x000(%0)\n\t"
 		"sb\t$0, 0x004(%0)\n\t"
 		: : "r" (addr) );
 
-	write_32bit_cp0_register(CP0_STATUS, flags);
+	write_c0_status(flags);
 }
 
 static void r3k_dma_cache_wback_inv(unsigned long start, unsigned long size)
diff -urNd -urNd linux-2.4.20/arch/mips/mm/c-r4k.c linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-r4k.c
--- linux-2.4.20/arch/mips/mm/c-r4k.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-r4k.c	2003-02-09 16:03:23.000000000 -0600
@@ -6,13 +6,8 @@
  * r4xx0.c: R4000 processor variant specific MMU/Cache routines.
  *
  * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
- * Copyright (C) 1997, 1998, 1999, 2000 Ralf Baechle ralf@gnu.org
- *
- * To do:
- *
- *  - this code is a overbloated pig
- *  - many of the bug workarounds are not efficient at all, but at
- *    least they are functional ...
+ * Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Ralf Baechle (ralf@gnu.org)
+ * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
  */
 #include <linux/config.h>
 #include <linux/init.h>
@@ -20,9 +15,9 @@
 #include <linux/sched.h>
 #include <linux/mm.h>
 
+#include <asm/bcache.h>
 #include <asm/bootinfo.h>
 #include <asm/cpu.h>
-#include <asm/bcache.h>
 #include <asm/io.h>
 #include <asm/page.h>
 #include <asm/pgtable.h>
@@ -31,17 +26,15 @@
 #include <asm/war.h>
 
 /* Primary cache parameters. */
-static int icache_size, dcache_size; /* Size in bytes */
-static int ic_lsize, dc_lsize;       /* LineSize in bytes */
+static unsigned long icache_size, dcache_size; /* Size in bytes */
+static unsigned long ic_lsize, dc_lsize;       /* LineSize in bytes */
 
 /* Secondary cache (if present) parameters. */
-static unsigned int scache_size, sc_lsize;	/* Again, in bytes */
+static unsigned long scache_size, sc_lsize;	/* Again, in bytes */
 
 #include <asm/cacheops.h>
 #include <asm/r4kcache.h>
 
-#undef DEBUG_CACHE
-
 /*
  * Dummy cache handling routines for machines without boardcaches
  */
@@ -120,23 +113,19 @@
 	blast_dcache32(); blast_icache32();
 }
 
-static void
-r4k_flush_cache_range_s16d16i16(struct mm_struct *mm,
-                                unsigned long start,
-                                unsigned long end)
+static void r4k_flush_cache_range_s16d16i16(struct mm_struct *mm,
+	unsigned long start, unsigned long end)
 {
 	struct vm_area_struct *vma;
 
-	if (mm->context == 0)
+	if (cpu_context(smp_processor_id(), mm) == 0)
 		return;
 
 	start &= PAGE_MASK;
-#ifdef DEBUG_CACHE
-	printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
-#endif
 	vma = find_vma(mm, start);
 	if (vma) {
-		if (mm->context != current->active_mm->context) {
+		if (cpu_context(smp_processor_id(), mm) !=
+		    cpu_context(smp_processor_id(), current->mm)) {
 			r4k_flush_cache_all_s16d16i16();
 		} else {
 			pgd_t *pgd;
@@ -148,7 +137,7 @@
 				pmd = pmd_offset(pgd, start);
 				pte = pte_offset(pmd, start);
 
-				if(pte_val(*pte) & _PAGE_VALID)
+				if (pte_val(*pte) & _PAGE_VALID)
 					blast_scache16_page(start);
 				start += PAGE_SIZE;
 			}
@@ -156,23 +145,19 @@
 	}
 }
 
-static void
-r4k_flush_cache_range_s32d16i16(struct mm_struct *mm,
-                                unsigned long start,
-                                unsigned long end)
+static void r4k_flush_cache_range_s32d16i16(struct mm_struct *mm,
+	unsigned long start, unsigned long end)
 {
 	struct vm_area_struct *vma;
 
-	if (mm->context == 0)
+	if (cpu_context(smp_processor_id(), mm) == 0)
 		return;
 
 	start &= PAGE_MASK;
-#ifdef DEBUG_CACHE
-	printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
-#endif
 	vma = find_vma(mm, start);
 	if (vma) {
-		if (mm->context != current->active_mm->context) {
+		if (cpu_context(smp_processor_id(), mm) !=
+		    cpu_context(smp_processor_id(), current->mm)) {
 			r4k_flush_cache_all_s32d16i16();
 		} else {
 			pgd_t *pgd;
@@ -193,21 +178,18 @@
 }
 
 static void r4k_flush_cache_range_s64d16i16(struct mm_struct *mm,
-					    unsigned long start,
-					    unsigned long end)
+	unsigned long start, unsigned long end)
 {
 	struct vm_area_struct *vma;
 
-	if (mm->context == 0)
+	if (cpu_context(smp_processor_id(), mm) == 0)
 		return;
 
 	start &= PAGE_MASK;
-#ifdef DEBUG_CACHE
-	printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
-#endif
 	vma = find_vma(mm, start);
-	if(vma) {
-		if (mm->context != current->active_mm->context) {
+	if (vma) {
+		if (cpu_context(smp_processor_id(), mm) !=
+		    cpu_context(smp_processor_id(), current->mm)) {
 			r4k_flush_cache_all_s64d16i16();
 		} else {
 			pgd_t *pgd;
@@ -228,21 +210,18 @@
 }
 
 static void r4k_flush_cache_range_s128d16i16(struct mm_struct *mm,
-					     unsigned long start,
-					     unsigned long end)
+	unsigned long start, unsigned long end)
 {
 	struct vm_area_struct *vma;
 
-	if (mm->context == 0)
+	if (cpu_context(smp_processor_id(), mm) == 0)
 		return;
 
 	start &= PAGE_MASK;
-#ifdef DEBUG_CACHE
-	printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
-#endif
 	vma = find_vma(mm, start);
 	if (vma) {
-		if (mm->context != current->active_mm->context) {
+		if (cpu_context(smp_processor_id(), mm) !=
+		    cpu_context(smp_processor_id(), current->mm)) {
 			r4k_flush_cache_all_s128d16i16();
 		} else {
 			pgd_t *pgd;
@@ -263,21 +242,18 @@
 }
 
 static void r4k_flush_cache_range_s32d32i32(struct mm_struct *mm,
-					    unsigned long start,
-					    unsigned long end)
+	unsigned long start, unsigned long end)
 {
 	struct vm_area_struct *vma;
 
-	if (mm->context == 0)
+	if (cpu_context(smp_processor_id(), mm) == 0)
 		return;
 
 	start &= PAGE_MASK;
-#ifdef DEBUG_CACHE
-	printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
-#endif
 	vma = find_vma(mm, start);
 	if (vma) {
-		if (mm->context != current->active_mm->context) {
+		if (cpu_context(smp_processor_id(), mm) !=
+		    cpu_context(smp_processor_id(), current->mm)) {
 			r4k_flush_cache_all_s32d32i32();
 		} else {
 			pgd_t *pgd;
@@ -298,21 +274,18 @@
 }
 
 static void r4k_flush_cache_range_s64d32i32(struct mm_struct *mm,
-					    unsigned long start,
-					    unsigned long end)
+	unsigned long start, unsigned long end)
 {
 	struct vm_area_struct *vma;
 
-	if (mm->context == 0)
+	if (cpu_context(smp_processor_id(), mm) == 0)
 		return;
 
 	start &= PAGE_MASK;
-#ifdef DEBUG_CACHE
-	printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
-#endif
 	vma = find_vma(mm, start);
 	if (vma) {
-		if (mm->context != current->active_mm->context) {
+		if (cpu_context(smp_processor_id(), mm) !=
+		    cpu_context(smp_processor_id(), current->mm)) {
 			r4k_flush_cache_all_s64d32i32();
 		} else {
 			pgd_t *pgd;
@@ -333,21 +306,18 @@
 }
 
 static void r4k_flush_cache_range_s128d32i32(struct mm_struct *mm,
-					     unsigned long start,
-					     unsigned long end)
+	unsigned long start, unsigned long end)
 {
 	struct vm_area_struct *vma;
 
-	if (mm->context == 0)
+	if (cpu_context(smp_processor_id(), mm) == 0)
 		return;
 
 	start &= PAGE_MASK;
-#ifdef DEBUG_CACHE
-	printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
-#endif
 	vma = find_vma(mm, start);
 	if (vma) {
-		if (mm->context != current->active_mm->context) {
+		if (cpu_context(smp_processor_id(), mm) !=
+		    cpu_context(smp_processor_id(), current->mm)) {
 			r4k_flush_cache_all_s128d32i32();
 		} else {
 			pgd_t *pgd;
@@ -368,25 +338,17 @@
 }
 
 static void r4k_flush_cache_range_d16i16(struct mm_struct *mm,
-					 unsigned long start,
-					 unsigned long end)
+	unsigned long start, unsigned long end)
 {
-	if (mm->context != 0) {
-#ifdef DEBUG_CACHE
-		printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
-#endif
+	if (cpu_context(smp_processor_id(), mm) != 0) {
 		blast_dcache16(); blast_icache16();
 	}
 }
 
 static void r4k_flush_cache_range_d32i32(struct mm_struct *mm,
-					 unsigned long start,
-					 unsigned long end)
+	unsigned long start, unsigned long end)
 {
-	if (mm->context != 0) {
-#ifdef DEBUG_CACHE
-		printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
-#endif
+	if (cpu_context(smp_processor_id(), mm) != 0) {
 		blast_dcache32(); blast_icache32();
 	}
 }
@@ -398,90 +360,63 @@
  */
 static void r4k_flush_cache_mm_s16d16i16(struct mm_struct *mm)
 {
-	if (mm->context != 0) {
-#ifdef DEBUG_CACHE
-		printk("cmm[%d]", (int)mm->context);
-#endif
+	if (cpu_context(smp_processor_id(), mm) != 0) {
 		r4k_flush_cache_all_s16d16i16();
 	}
 }
 
 static void r4k_flush_cache_mm_s32d16i16(struct mm_struct *mm)
 {
-	if (mm->context != 0) {
-#ifdef DEBUG_CACHE
-		printk("cmm[%d]", (int)mm->context);
-#endif
+	if (cpu_context(smp_processor_id(), mm) != 0) {
 		r4k_flush_cache_all_s32d16i16();
 	}
 }
 
 static void r4k_flush_cache_mm_s64d16i16(struct mm_struct *mm)
 {
-	if (mm->context != 0) {
-#ifdef DEBUG_CACHE
-		printk("cmm[%d]", (int)mm->context);
-#endif
+	if (cpu_context(smp_processor_id(), mm) != 0) {
 		r4k_flush_cache_all_s64d16i16();
 	}
 }
 
 static void r4k_flush_cache_mm_s128d16i16(struct mm_struct *mm)
 {
-	if (mm->context != 0) {
-#ifdef DEBUG_CACHE
-		printk("cmm[%d]", (int)mm->context);
-#endif
+	if (cpu_context(smp_processor_id(), mm) != 0) {
 		r4k_flush_cache_all_s128d16i16();
 	}
 }
 
 static void r4k_flush_cache_mm_s32d32i32(struct mm_struct *mm)
 {
-	if (mm->context != 0) {
-#ifdef DEBUG_CACHE
-		printk("cmm[%d]", (int)mm->context);
-#endif
+	if (cpu_context(smp_processor_id(), mm) != 0) {
 		r4k_flush_cache_all_s32d32i32();
 	}
 }
 
 static void r4k_flush_cache_mm_s64d32i32(struct mm_struct *mm)
 {
-	if (mm->context != 0) {
-#ifdef DEBUG_CACHE
-		printk("cmm[%d]", (int)mm->context);
-#endif
+	if (cpu_context(smp_processor_id(), mm) != 0) {
 		r4k_flush_cache_all_s64d32i32();
 	}
 }
 
 static void r4k_flush_cache_mm_s128d32i32(struct mm_struct *mm)
 {
-	if (mm->context != 0) {
-#ifdef DEBUG_CACHE
-		printk("cmm[%d]", (int)mm->context);
-#endif
+	if (cpu_context(smp_processor_id(), mm) != 0) {
 		r4k_flush_cache_all_s128d32i32();
 	}
 }
 
 static void r4k_flush_cache_mm_d16i16(struct mm_struct *mm)
 {
-	if (mm->context != 0) {
-#ifdef DEBUG_CACHE
-		printk("cmm[%d]", (int)mm->context);
-#endif
+	if (cpu_context(smp_processor_id(), mm) != 0) {
 		r4k_flush_cache_all_d16i16();
 	}
 }
 
 static void r4k_flush_cache_mm_d32i32(struct mm_struct *mm)
 {
-	if (mm->context != 0) {
-#ifdef DEBUG_CACHE
-		printk("cmm[%d]", (int)mm->context);
-#endif
+	if (cpu_context(smp_processor_id(), mm) != 0) {
 		r4k_flush_cache_all_d32i32();
 	}
 }
@@ -498,12 +433,9 @@
 	 * If ownes no valid ASID yet, cannot possibly have gotten
 	 * this page into the cache.
 	 */
-	if (mm->context == 0)
+	if (cpu_context(smp_processor_id(), mm) == 0)
 		return;
 
-#ifdef DEBUG_CACHE
-	printk("cpage[%d,%08lx]", (int)mm->context, page);
-#endif
 	page &= PAGE_MASK;
 	pgdp = pgd_offset(mm, page);
 	pmdp = pmd_offset(pgdp, page);
@@ -514,7 +446,7 @@
 	 * in the cache.
 	 */
 	if (!(pte_val(*ptep) & _PAGE_VALID))
-		goto out;
+		return;
 
 	/*
 	 * Doing flushes for another ASID than the current one is
@@ -522,7 +454,8 @@
 	 * for every cache flush operation.  So we do indexed flushes
 	 * in that case, which doesn't overly flush the cache too much.
 	 */
-	if (mm->context != current->active_mm->context) {
+	if (cpu_context(smp_processor_id(), mm) !=
+	    cpu_context(smp_processor_id(), current->mm)) {
 		/*
 		 * Do indexed flush, too much work to get the (possible)
 		 * tlb refills to work correctly.
@@ -532,7 +465,6 @@
 		blast_scache16_page_indexed(page);
 	} else
 		blast_scache16_page(page);
-out:
 }
 
 static void r4k_flush_cache_page_s32d16i16(struct vm_area_struct *vma,
@@ -547,12 +479,9 @@
 	 * If ownes no valid ASID yet, cannot possibly have gotten
 	 * this page into the cache.
 	 */
-	if (mm->context == 0)
+	if (cpu_context(smp_processor_id(), mm) == 0)
 		return;
 
-#ifdef DEBUG_CACHE
-	printk("cpage[%d,%08lx]", (int)mm->context, page);
-#endif
 	page &= PAGE_MASK;
 	pgdp = pgd_offset(mm, page);
 	pmdp = pmd_offset(pgdp, page);
@@ -562,7 +491,7 @@
 	 * in the cache.
 	 */
 	if (!(pte_val(*ptep) & _PAGE_VALID))
-		goto out;
+		return;
 
 	/*
 	 * Doing flushes for another ASID than the current one is
@@ -570,7 +499,8 @@
 	 * for every cache flush operation.  So we do indexed flushes
 	 * in that case, which doesn't overly flush the cache too much.
 	 */
-	if (mm->context != current->active_mm->context) {
+	if (cpu_context(smp_processor_id(), mm) !=
+	    cpu_context(smp_processor_id(), current->mm)) {
 		/*
 		 * Do indexed flush, too much work to get the (possible)
 		 * tlb refills to work correctly.
@@ -580,7 +510,6 @@
 		blast_scache32_page_indexed(page);
 	} else
 		blast_scache32_page(page);
-out:
 }
 
 static void r4k_flush_cache_page_s64d16i16(struct vm_area_struct *vma,
@@ -595,12 +524,9 @@
 	 * If ownes no valid ASID yet, cannot possibly have gotten
 	 * this page into the cache.
 	 */
-	if (mm->context == 0)
+	if (cpu_context(smp_processor_id(), mm) == 0)
 		return;
 
-#ifdef DEBUG_CACHE
-	printk("cpage[%d,%08lx]", (int)mm->context, page);
-#endif
 	page &= PAGE_MASK;
 	pgdp = pgd_offset(mm, page);
 	pmdp = pmd_offset(pgdp, page);
@@ -610,7 +536,7 @@
 	 * in the cache.
 	 */
 	if (!(pte_val(*ptep) & _PAGE_VALID))
-		goto out;
+		return;
 
 	/*
 	 * Doing flushes for another ASID than the current one is
@@ -618,7 +544,8 @@
 	 * for every cache flush operation.  So we do indexed flushes
 	 * in that case, which doesn't overly flush the cache too much.
 	 */
-	if (mm->context != current->active_mm->context) {
+	if (cpu_context(smp_processor_id(), mm) !=
+	    cpu_context(smp_processor_id(), current->mm)) {
 		/*
 		 * Do indexed flush, too much work to get the (possible)
 		 * tlb refills to work correctly.
@@ -628,7 +555,6 @@
 		blast_scache64_page_indexed(page);
 	} else
 		blast_scache64_page(page);
-out:
 }
 
 static void r4k_flush_cache_page_s128d16i16(struct vm_area_struct *vma,
@@ -643,12 +569,9 @@
 	 * If ownes no valid ASID yet, cannot possibly have gotten
 	 * this page into the cache.
 	 */
-	if (mm->context == 0)
+	if (cpu_context(smp_processor_id(), mm) == 0)
 		return;
 
-#ifdef DEBUG_CACHE
-	printk("cpage[%d,%08lx]", (int)mm->context, page);
-#endif
 	page &= PAGE_MASK;
 	pgdp = pgd_offset(mm, page);
 	pmdp = pmd_offset(pgdp, page);
@@ -659,7 +582,7 @@
 	 * in the cache.
 	 */
 	if (!(pte_val(*ptep) & _PAGE_VALID))
-		goto out;
+		return;
 
 	/*
 	 * Doing flushes for another ASID than the current one is
@@ -667,7 +590,8 @@
 	 * for every cache flush operation.  So we do indexed flushes
 	 * in that case, which doesn't overly flush the cache too much.
 	 */
-	if (mm->context != current->active_mm->context) {
+	if (cpu_context(smp_processor_id(), mm) !=
+	    cpu_context(smp_processor_id(), current->mm)) {
 		/*
 		 * Do indexed flush, too much work to get the (possible)
 		 * tlb refills to work correctly.
@@ -677,7 +601,6 @@
 		blast_scache128_page_indexed(page);
 	} else
 		blast_scache128_page(page);
-out:
 }
 
 static void r4k_flush_cache_page_s32d32i32(struct vm_area_struct *vma,
@@ -692,12 +615,9 @@
 	 * If ownes no valid ASID yet, cannot possibly have gotten
 	 * this page into the cache.
 	 */
-	if (mm->context == 0)
+	if (cpu_context(smp_processor_id(), mm) == 0)
 		return;
 
-#ifdef DEBUG_CACHE
-	printk("cpage[%d,%08lx]", (int)mm->context, page);
-#endif
 	page &= PAGE_MASK;
 	pgdp = pgd_offset(mm, page);
 	pmdp = pmd_offset(pgdp, page);
@@ -708,7 +628,7 @@
 	 * in the cache.
 	 */
 	if (!(pte_val(*ptep) & _PAGE_VALID))
-		goto out;
+		return;
 
 	/*
 	 * Doing flushes for another ASID than the current one is
@@ -716,7 +636,8 @@
 	 * for every cache flush operation.  So we do indexed flushes
 	 * in that case, which doesn't overly flush the cache too much.
 	 */
-	if (mm->context != current->active_mm->context) {
+	if (cpu_context(smp_processor_id(), mm) !=
+	    cpu_context(smp_processor_id(), current->mm)) {
 		/*
 		 * Do indexed flush, too much work to get the (possible)
 		 * tlb refills to work correctly.
@@ -726,7 +647,6 @@
 		blast_scache32_page_indexed(page);
 	} else
 		blast_scache32_page(page);
-out:
 }
 
 static void r4k_flush_cache_page_s64d32i32(struct vm_area_struct *vma,
@@ -741,12 +661,9 @@
 	 * If ownes no valid ASID yet, cannot possibly have gotten
 	 * this page into the cache.
 	 */
-	if (mm->context == 0)
+	if (cpu_context(smp_processor_id(), mm) == 0)
 		return;
 
-#ifdef DEBUG_CACHE
-	printk("cpage[%d,%08lx]", (int)mm->context, page);
-#endif
 	page &= PAGE_MASK;
 	pgdp = pgd_offset(mm, page);
 	pmdp = pmd_offset(pgdp, page);
@@ -757,7 +674,7 @@
 	 * in the cache.
 	 */
 	if (!(pte_val(*ptep) & _PAGE_VALID))
-		goto out;
+		return;
 
 	/*
 	 * Doing flushes for another ASID than the current one is
@@ -765,7 +682,8 @@
 	 * for every cache flush operation.  So we do indexed flushes
 	 * in that case, which doesn't overly flush the cache too much.
 	 */
-	if (mm->context != current->active_mm->context) {
+	if (cpu_context(smp_processor_id(), mm) !=
+	    cpu_context(smp_processor_id(), current->mm)) {
 		/*
 		 * Do indexed flush, too much work to get the (possible)
 		 * tlb refills to work correctly.
@@ -775,7 +693,6 @@
 		blast_scache64_page_indexed(page);
 	} else
 		blast_scache64_page(page);
-out:
 }
 
 static void r4k_flush_cache_page_s128d32i32(struct vm_area_struct *vma,
@@ -790,12 +707,9 @@
 	 * If ownes no valid ASID yet, cannot possibly have gotten
 	 * this page into the cache.
 	 */
-	if (mm->context == 0)
+	if (cpu_context(smp_processor_id(), mm) == 0)
 		return;
 
-#ifdef DEBUG_CACHE
-	printk("cpage[%d,%08lx]", (int)mm->context, page);
-#endif
 	page &= PAGE_MASK;
 	pgdp = pgd_offset(mm, page);
 	pmdp = pmd_offset(pgdp, page);
@@ -806,7 +720,7 @@
 	 * in the cache.
 	 */
 	if (!(pte_val(*ptep) & _PAGE_VALID))
-		goto out;
+		return;
 
 	/*
 	 * Doing flushes for another ASID than the current one is
@@ -814,7 +728,8 @@
 	 * for every cache flush operation.  So we do indexed flushes
 	 * in that case, which doesn't overly flush the cache too much.
 	 */
-	if (mm->context != current->active_mm->context) {
+	if (cpu_context(smp_processor_id(), mm) !=
+	    cpu_context(smp_processor_id(), current->mm)) {
 		/* Do indexed flush, too much work to get the (possible)
 		 * tlb refills to work correctly.
 		 */
@@ -823,7 +738,6 @@
 		blast_scache128_page_indexed(page);
 	} else
 		blast_scache128_page(page);
-out:
 }
 
 static void r4k_flush_cache_page_d16i16(struct vm_area_struct *vma,
@@ -838,12 +752,9 @@
 	 * If ownes no valid ASID yet, cannot possibly have gotten
 	 * this page into the cache.
 	 */
-	if (mm->context == 0)
+	if (cpu_context(smp_processor_id(), mm) == 0)
 		return;
 
-#ifdef DEBUG_CACHE
-	printk("cpage[%d,%08lx]", (int)mm->context, page);
-#endif
 	page &= PAGE_MASK;
 	pgdp = pgd_offset(mm, page);
 	pmdp = pmd_offset(pgdp, page);
@@ -854,7 +765,7 @@
 	 * in the cache.
 	 */
 	if (!(pte_val(*ptep) & _PAGE_VALID))
-		goto out;
+		return;
 
 	/*
 	 * Doing flushes for another ASID than the current one is
@@ -871,7 +782,6 @@
 		page = (KSEG0 + (page & (dcache_size - 1)));
 		blast_dcache16_page_indexed(page);
 	}
-out:
 }
 
 static void r4k_flush_cache_page_d32i32(struct vm_area_struct *vma,
@@ -886,12 +796,9 @@
 	 * If ownes no valid ASID yet, cannot possibly have gotten
 	 * this page into the cache.
 	 */
-	if (mm->context == 0)
+	if (cpu_context(smp_processor_id(), mm) == 0)
 		return;
 
-#ifdef DEBUG_CACHE
-	printk("cpage[%d,%08lx]", (int)mm->context, page);
-#endif
 	page &= PAGE_MASK;
 	pgdp = pgd_offset(mm, page);
 	pmdp = pmd_offset(pgdp, page);
@@ -902,7 +809,7 @@
 	 * in the cache.
 	 */
 	if (!(pte_val(*ptep) & _PAGE_PRESENT))
-		goto out;
+		return;
 
 	/*
 	 * Doing flushes for another ASID than the current one is
@@ -920,7 +827,6 @@
 		page = (KSEG0 + (page & (dcache_size - 1)));
 		blast_dcache32_page_indexed(page);
 	}
-out:
 }
 
 static void r4k_flush_cache_page_d32i32_r4600(struct vm_area_struct *vma,
@@ -935,12 +841,9 @@
 	 * If ownes no valid ASID yet, cannot possibly have gotten
 	 * this page into the cache.
 	 */
-	if (mm->context == 0)
+	if (cpu_context(smp_processor_id(), mm) == 0)
 		return;
 
-#ifdef DEBUG_CACHE
-	printk("cpage[%d,%08lx]", (int)mm->context, page);
-#endif
 	page &= PAGE_MASK;
 	pgdp = pgd_offset(mm, page);
 	pmdp = pmd_offset(pgdp, page);
@@ -951,7 +854,7 @@
 	 * in the cache.
 	 */
 	if (!(pte_val(*ptep) & _PAGE_PRESENT))
-		goto out;
+		return;
 
 	/*
 	 * Doing flushes for another ASID than the current one is
@@ -969,18 +872,8 @@
 		blast_dcache32_page_indexed(page);
 		blast_dcache32_page_indexed(page ^ dcache_waybit);
 	}
-out:
 }
 
-/* If the addresses passed to these routines are valid, they are
- * either:
- *
- * 1) In KSEG0, so we can do a direct flush of the page.
- * 2) In KSEG2, and since every process can translate those
- *    addresses all the time in kernel mode we can do a direct
- *    flush.
- * 3) In KSEG1, no flush necessary.
- */
 static void r4k_flush_page_to_ram_s16(struct page *page)
 {
 	blast_scache16_page((unsigned long)page_address(page));
@@ -1016,27 +909,26 @@
 #ifdef R4600_V1_HIT_DCACHE_WAR
 	unsigned long flags;
 
-	__save_and_cli(flags);
+	local_irq_save(flags);
 	__asm__ __volatile__("nop;nop;nop;nop");
 #endif
 	blast_dcache32_page((unsigned long)page_address(page));
 #ifdef R4600_V1_HIT_DCACHE_WAR
-	__restore_flags(flags);
+	local_irq_restore(flags);
 #endif
 }
 
-static void
-r4k_flush_icache_page_s(struct vm_area_struct *vma, struct page *page)
+static void r4k_flush_icache_range(unsigned long start, unsigned long end)
 {
-	/*
-	 * We did an scache flush therefore PI is already clean.
-	 */
+	flush_cache_all();
 }
 
-static void
-r4k_flush_icache_range(unsigned long start, unsigned long end)
+static void r4k_flush_icache_page_s(struct vm_area_struct *vma,
+	struct page *page)
 {
-	flush_cache_all();
+	/*
+	 * We did an scache flush therefore PI is already clean.
+	 */
 }
 
 /*
@@ -1044,8 +936,8 @@
  * know the virtual address, so we have to blast away the whole icache
  * which is significantly more expensive than the real thing.
  */
-static void
-r4k_flush_icache_page_p(struct vm_area_struct *vma, struct page *page)
+static void r4k_flush_icache_page_p(struct vm_area_struct *vma,
+	struct page *page)
 {
 	if (!(vma->vm_flags & VM_EXEC))
 		return;
@@ -1053,37 +945,37 @@
 	flush_cache_all();
 }
 
-static void
-r4k_dma_cache_wback_inv_pc(unsigned long addr, unsigned long size)
+static void r4k_dma_cache_wback_inv_pc(unsigned long addr, unsigned long size)
 {
 	unsigned long end, a;
-	unsigned int flags;
 
 	if (size >= dcache_size) {
 		flush_cache_all();
 	} else {
 #ifdef R4600_V2_HIT_CACHEOP_WAR
+		unsigned long flags;
+
 		/* Workaround for R4600 bug.  See comment in <asm/war>. */
-		__save_and_cli(flags);
+		local_irq_save(flags);
 		*(volatile unsigned long *)KSEG1;
 #endif
 
 		a = addr & ~(dc_lsize - 1);
-		end = (addr + size) & ~(dc_lsize - 1);
+		end = (addr + size - 1) & ~(dc_lsize - 1);
 		while (1) {
-			flush_dcache_line(a); /* Hit_Writeback_Inv_D */
+			flush_dcache_line(a);	/* Hit_Writeback_Inv_D */
 			if (a == end) break;
 			a += dc_lsize;
 		}
 #ifdef R4600_V2_HIT_CACHEOP_WAR
-		__restore_flags(flags);
+		local_irq_restore(flags);
 #endif
 	}
+
 	bc_wback_inv(addr, size);
 }
 
-static void
-r4k_dma_cache_wback_inv_sc(unsigned long addr, unsigned long size)
+static void r4k_dma_cache_wback_inv_sc(unsigned long addr, unsigned long size)
 {
 	unsigned long end, a;
 
@@ -1093,7 +985,7 @@
 	}
 
 	a = addr & ~(sc_lsize - 1);
-	end = (addr + size) & ~(sc_lsize - 1);
+	end = (addr + size - 1) & ~(sc_lsize - 1);
 	while (1) {
 		flush_scache_line(a);	/* Hit_Writeback_Inv_SD */
 		if (a == end) break;
@@ -1101,38 +993,37 @@
 	}
 }
 
-static void
-r4k_dma_cache_inv_pc(unsigned long addr, unsigned long size)
+static void r4k_dma_cache_inv_pc(unsigned long addr, unsigned long size)
 {
 	unsigned long end, a;
-	unsigned int flags;
 
 	if (size >= dcache_size) {
 		flush_cache_all();
 	} else {
 #ifdef R4600_V2_HIT_CACHEOP_WAR
-		/* Workaround for R4600 bug.  See comment above. */
-		__save_and_cli(flags);
+		unsigned long flags;
+
+		/* Workaround for R4600 bug.  See comment in <asm/war>. */
+		local_irq_save(flags);
 		*(volatile unsigned long *)KSEG1;
 #endif
 
 		a = addr & ~(dc_lsize - 1);
-		end = (addr + size) & ~(dc_lsize - 1);
+		end = (addr + size - 1) & ~(dc_lsize - 1);
 		while (1) {
-			flush_dcache_line(a); /* Hit_Writeback_Inv_D */
+			flush_dcache_line(a);	/* Hit_Writeback_Inv_D */
 			if (a == end) break;
 			a += dc_lsize;
 		}
 #ifdef R4600_V2_HIT_CACHEOP_WAR
-		__restore_flags(flags);
+		local_irq_restore(flags);
 #endif
 	}
 
 	bc_inv(addr, size);
 }
 
-static void
-r4k_dma_cache_inv_sc(unsigned long addr, unsigned long size)
+static void r4k_dma_cache_inv_sc(unsigned long addr, unsigned long size)
 {
 	unsigned long end, a;
 
@@ -1142,9 +1033,9 @@
 	}
 
 	a = addr & ~(sc_lsize - 1);
-	end = (addr + size) & ~(sc_lsize - 1);
+	end = (addr + size - 1) & ~(sc_lsize - 1);
 	while (1) {
-		flush_scache_line(a); /* Hit_Writeback_Inv_SD */
+		flush_scache_line(a);	/* Hit_Writeback_Inv_SD */
 		if (a == end) break;
 		a += sc_lsize;
 	}
@@ -1160,22 +1051,24 @@
 #ifdef R4600_V1_HIT_DCACHE_WAR
 	unsigned long flags;
 
-	__save_and_cli(flags);
+	local_irq_save(flags);
 	__asm__ __volatile__("nop;nop;nop;nop");
 #endif
+
 	protected_writeback_dcache_line(addr & ~(dc_lsize - 1));
 	protected_flush_icache_line(addr & ~(ic_lsize - 1));
+
 #ifdef R4600_V1_HIT_DCACHE_WAR
-	__restore_flags(flags);
+	local_irq_restore(flags);
 #endif
 }
 
 static void r4600v20k_flush_cache_sigtramp(unsigned long addr)
 {
-	unsigned int flags;
-
 #ifdef R4600_V2_HIT_CACHEOP_WAR
-	__save_and_cli(flags);
+	unsigned long flags;
+
+	local_irq_save(flags);
 
 	/* Clear internal cache refill buffer */
 	*(volatile unsigned int *)KSEG1;
@@ -1185,60 +1078,59 @@
 	protected_flush_icache_line(addr & ~(ic_lsize - 1));
 
 #ifdef R4600_V2_HIT_CACHEOP_WAR
-	__restore_flags(flags);
+	local_irq_restore(flags);
 #endif
 }
 
-/* Detect and size the various r4k caches. */
 static void __init probe_icache(unsigned long config)
 {
-        switch (mips_cpu.cputype) {
-        case CPU_VR41XX:
-        case CPU_VR4111:
-        case CPU_VR4121:
-        case CPU_VR4122:
-        case CPU_VR4131:
-        case CPU_VR4181:
-        case CPU_VR4181A:
-                icache_size = 1 << (10 + ((config >> 9) & 7));
-                break;
-        default:
-                icache_size = 1 << (12 + ((config >> 9) & 7));
-                break;
-        }
+	switch (mips_cpu.cputype) {
+	case CPU_VR41XX:
+	case CPU_VR4111:
+	case CPU_VR4121:
+	case CPU_VR4122:
+	case CPU_VR4131:
+	case CPU_VR4181:
+	case CPU_VR4181A:
+		icache_size = 1 << (10 + ((config >> 9) & 7));
+		break;
+	default:
+		icache_size = 1 << (12 + ((config >> 9) & 7));
+		break;
+	}
 	ic_lsize = 16 << ((config >> 5) & 1);
 
-	printk("Primary instruction cache %dkb, linesize %d bytes.\n",
+	printk("Primary instruction cache %ldK, linesize %ld bytes.\n",
 	       icache_size >> 10, ic_lsize);
 }
 
 static void __init probe_dcache(unsigned long config)
 {
-        switch (mips_cpu.cputype) {
-        case CPU_VR41XX:
-        case CPU_VR4111:
-        case CPU_VR4121:
-        case CPU_VR4122:
-        case CPU_VR4131:
-        case CPU_VR4181:
-        case CPU_VR4181A:
-                dcache_size = 1 << (10 + ((config >> 6) & 7));
-                break;
-        default:
-                dcache_size = 1 << (12 + ((config >> 6) & 7));
-                break;
-        }
+	switch (mips_cpu.cputype) {
+	case CPU_VR41XX:
+	case CPU_VR4111:
+	case CPU_VR4121:
+	case CPU_VR4122:
+	case CPU_VR4131:
+	case CPU_VR4181:
+	case CPU_VR4181A:
+		dcache_size = 1 << (10 + ((config >> 6) & 7));
+		break;
+	default:
+		dcache_size = 1 << (12 + ((config >> 6) & 7));
+		break;
+	}
 	dc_lsize = 16 << ((config >> 4) & 1);
 
-	printk("Primary data cache %dkb, linesize %d bytes.\n",
+	printk("Primary data cache %ldK, linesize %ld bytes.\n",
 	       dcache_size >> 10, dc_lsize);
 }
 
-
-/* If you even _breathe_ on this function, look at the gcc output
- * and make sure it does not pop things on and off the stack for
- * the cache sizing loop that executes in KSEG1 space or else
- * you will crash and burn badly.  You have been warned.
+/*
+ * If you even _breathe_ on this function, look at the gcc output and make sure
+ * it does not pop things on and off the stack for the cache sizing loop that
+ * executes in KSEG1 space or else you will crash and burn badly.  You have
+ * been warned.
  */
 static int __init probe_scache(unsigned long config)
 {
@@ -1269,57 +1161,42 @@
 	begin &= ~((4 * 1024 * 1024) - 1);
 	end = begin + (4 * 1024 * 1024);
 
-	/* This is such a bitch, you'd think they would make it
-	 * easy to do this.  Away you daemons of stupidity!
+	/*
+	 * This is such a bitch, you'd think they would make it easy to do
+	 * this.  Away you daemons of stupidity!
 	 */
-	__save_and_cli(flags);
+	local_irq_save(flags);
 
 	/* Fill each size-multiple cache line with a valid tag. */
 	pow2 = (64 * 1024);
-	for(addr = begin; addr < end; addr = (begin + pow2)) {
+	for (addr = begin; addr < end; addr = (begin + pow2)) {
 		unsigned long *p = (unsigned long *) addr;
 		__asm__ __volatile__("nop" : : "r" (*p)); /* whee... */
 		pow2 <<= 1;
 	}
 
 	/* Load first line with zero (therefore invalid) tag. */
-	set_taglo(0);
-	set_taghi(0);
+	write_c0_taglo(0);
+	write_c0_taghi(0);
 	__asm__ __volatile__("nop; nop; nop; nop;"); /* avoid the hazard */
-	__asm__ __volatile__("\n\t.set noreorder\n\t"
-			     ".set mips3\n\t"
-			     "cache 8, (%0)\n\t"
-			     ".set mips0\n\t"
-			     ".set reorder\n\t" : : "r" (begin));
-	__asm__ __volatile__("\n\t.set noreorder\n\t"
-			     ".set mips3\n\t"
-			     "cache 9, (%0)\n\t"
-			     ".set mips0\n\t"
-			     ".set reorder\n\t" : : "r" (begin));
-	__asm__ __volatile__("\n\t.set noreorder\n\t"
-			     ".set mips3\n\t"
-			     "cache 11, (%0)\n\t"
-			     ".set mips0\n\t"
-			     ".set reorder\n\t" : : "r" (begin));
+	cache_op(Index_Store_Tag_I, begin);
+	cache_op(Index_Store_Tag_D, begin);
+	cache_op(Index_Store_Tag_SD, begin);
 
 	/* Now search for the wrap around point. */
 	pow2 = (128 * 1024);
 	tmp = 0;
-	for(addr = (begin + (128 * 1024)); addr < (end); addr = (begin + pow2)) {
-		__asm__ __volatile__("\n\t.set noreorder\n\t"
-				     ".set mips3\n\t"
-				     "cache 7, (%0)\n\t"
-				     ".set mips0\n\t"
-				     ".set reorder\n\t" : : "r" (addr));
+	for (addr = begin + (128 * 1024); addr < end; addr = begin + pow2) {
+		cache_op(Index_Load_Tag_SD, addr);
 		__asm__ __volatile__("nop; nop; nop; nop;"); /* hazard... */
-		if(!get_taglo())
+		if (!read_c0_taglo())
 			break;
 		pow2 <<= 1;
 	}
-	__restore_flags(flags);
+	local_irq_restore(flags);
 	addr -= begin;
-	printk("Secondary cache sized at %dK linesize %d bytes.\n",
-	       (int) (addr >> 10), sc_lsize);
+	printk("Secondary cache sized at %ldK, linesize %ld bytes.\n",
+	       addr >> 10, sc_lsize);
 	scache_size = addr;
 	return 1;
 }
@@ -1339,7 +1216,7 @@
 		_flush_page_to_ram = r4k_flush_page_to_ram_d16;
 		break;
 	case 32:
-		prid = read_32bit_cp0_register(CP0_PRID) & 0xfff0;
+		prid = read_c0_prid() & 0xfff0;
 		if (prid == 0x2010) {			/* R4600 V1.7 */
 			_clear_page = r4k_clear_page_r4600_v1;
 			_copy_page = r4k_copy_page_r4600_v1;
@@ -1359,10 +1236,10 @@
 		_flush_cache_page = r4k_flush_cache_page_d32i32;
 		break;
 	}
-	___flush_cache_all = _flush_cache_all;
-
 	_flush_icache_page = r4k_flush_icache_page_p;
 
+	___flush_cache_all = _flush_cache_all;
+
 	_dma_cache_wback_inv = r4k_dma_cache_wback_inv_pc;
 	_dma_cache_wback = r4k_dma_cache_wback_inv_pc;
 	_dma_cache_inv = r4k_dma_cache_inv_pc;
@@ -1370,9 +1247,9 @@
 
 static void __init setup_scache_funcs(void)
 {
-	switch(sc_lsize) {
+	switch (sc_lsize) {
 	case 16:
-		switch(dc_lsize) {
+		switch (dc_lsize) {
 		case 16:
 			_flush_cache_all = r4k_flush_cache_all_s16d16i16;
 			_flush_cache_mm = r4k_flush_cache_mm_s16d16i16;
@@ -1387,7 +1264,7 @@
 		_copy_page = r4k_copy_page_s16;
 		break;
 	case 32:
-		switch(dc_lsize) {
+		switch (dc_lsize) {
 		case 16:
 			_flush_cache_all = r4k_flush_cache_all_s32d16i16;
 			_flush_cache_mm = r4k_flush_cache_mm_s32d16i16;
@@ -1406,7 +1283,7 @@
 		_copy_page = r4k_copy_page_s32;
 		break;
 	case 64:
-		switch(dc_lsize) {
+		switch (dc_lsize) {
 		case 16:
 			_flush_cache_all = r4k_flush_cache_all_s64d16i16;
 			_flush_cache_mm = r4k_flush_cache_mm_s64d16i16;
@@ -1425,7 +1302,7 @@
 		_copy_page = r4k_copy_page_s64;
 		break;
 	case 128:
-		switch(dc_lsize) {
+		switch (dc_lsize) {
 		case 16:
 			_flush_cache_all = r4k_flush_cache_all_s128d16i16;
 			_flush_cache_mm = r4k_flush_cache_mm_s128d16i16;
@@ -1444,14 +1321,17 @@
 		_copy_page = r4k_copy_page_s128;
 		break;
 	}
-	___flush_cache_all = _flush_cache_all;
 	_flush_icache_page = r4k_flush_icache_page_s;
+
+	___flush_cache_all = _flush_cache_all;
+
 	_dma_cache_wback_inv = r4k_dma_cache_wback_inv_sc;
 	_dma_cache_wback = r4k_dma_cache_wback_inv_sc;
 	_dma_cache_inv = r4k_dma_cache_inv_sc;
 }
 
 typedef int (*probe_func_t)(unsigned long);
+extern int r5k_sc_init(void);
 
 static inline void __init setup_scache(unsigned int config)
 {
@@ -1471,22 +1351,26 @@
 	case CPU_R5000:
 	case CPU_NEVADA:
 			setup_noscache_funcs();
-#if defined(CONFIG_CPU_R5000) || defined(CONFIG_CPU_NEVADA)
+#ifdef CONFIG_R5000_CPU_SCACHE
 			r5k_sc_init();
 #endif
 			break;
 	default:
 			setup_scache_funcs();
 	}
-
-
 }
 
 void __init ld_mmu_r4xx0(void)
 {
-	unsigned long config = read_32bit_cp0_register(CP0_CONFIG);
+	unsigned long config = read_c0_config();
+	extern char except_vec2_generic;
 
-	change_cp0_config(CONF_CM_CMASK | CONF_CU, CONF_CM_DEFAULT);
+	/* Default cache error handler for R4000 family */
+
+	memcpy((void *)(KSEG0 + 0x100), &except_vec2_generic, 0x80);
+	memcpy((void *)(KSEG1 + 0x100), &except_vec2_generic, 0x80);
+
+	change_c0_config(CONF_CM_CMASK | CONF_CU, CONF_CM_DEFAULT);
 
 	probe_icache(config);
 	probe_dcache(config);
@@ -1501,10 +1385,10 @@
 	}
 
 	_flush_cache_sigtramp = r4k_flush_cache_sigtramp;
-	_flush_icache_range = r4k_flush_icache_range;	/* Ouch */
-	if ((read_32bit_cp0_register(CP0_PRID) & 0xfff0) == 0x2020) {
+	if ((read_c0_prid() & 0xfff0) == 0x2020) {
 		_flush_cache_sigtramp = r4600v20k_flush_cache_sigtramp;
 	}
+	_flush_icache_range = r4k_flush_icache_range;	/* Ouch */
 
 	__flush_cache_all();
 }
diff -urNd -urNd linux-2.4.20/arch/mips/mm/c-r5432.c linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-r5432.c
--- linux-2.4.20/arch/mips/mm/c-r5432.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-r5432.c	2003-02-09 16:03:23.000000000 -0600
@@ -384,7 +384,7 @@
 		flush_cache_all();
 	} else {
 		a = addr & ~(dc_lsize - 1);
-		end = (addr + size) & ~(dc_lsize - 1);
+		end = (addr + size - 1) & ~(dc_lsize - 1);
 		while (1) {
 			flush_dcache_line(a); /* Hit_Writeback_Inv_D */
 			if (a == end) break;
@@ -403,7 +403,7 @@
 		flush_cache_all();
 	} else {
 		a = addr & ~(dc_lsize - 1);
-		end = (addr + size) & ~(dc_lsize - 1);
+		end = (addr + size - 1) & ~(dc_lsize - 1);
 		while (1) {
 			flush_dcache_line(a); /* Hit_Writeback_Inv_D */
 			if (a == end) break;
@@ -453,9 +453,14 @@
 
 void __init ld_mmu_r5432(void)
 {
-	unsigned long config = read_32bit_cp0_register(CP0_CONFIG);
+	unsigned long config = read_c0_config();
+	extern char except_vec2_generic;
 
-	change_cp0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
+	/* Default cache error handler for R5432 */
+	memcpy((void *)(KSEG0 + 0x100), &except_vec2_generic, 0x80);
+	memcpy((void *)(KSEG1 + 0x100), &except_vec2_generic, 0x80);
+
+	change_c0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
 
 	probe_icache(config);
 	probe_dcache(config);
diff -urNd -urNd linux-2.4.20/arch/mips/mm/c-rm7k.c linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-rm7k.c
--- linux-2.4.20/arch/mips/mm/c-rm7k.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-rm7k.c	2003-02-09 16:03:23.000000000 -0600
@@ -131,7 +131,7 @@
 	unsigned long end, a;
 
 	a = addr & ~(sc_lsize - 1);
-	end = (addr + size) & ~(sc_lsize - 1);
+	end = (addr + size - 1) & ~(sc_lsize - 1);
 	while (1) {
 		flush_dcache_line(a);	/* Hit_Writeback_Inv_D */
 		flush_scache_line(a);	/* Hit_Writeback_Inv_SD */
@@ -143,7 +143,7 @@
 		return;
 
 	a = addr & ~(tc_pagesize - 1);
-	end = (addr + size) & ~(tc_pagesize - 1);
+	end = (addr + size - 1) & ~(tc_pagesize - 1);
 	while(1) {
 		invalidate_tcache_page(a);	/* Page_Invalidate_T */
 		if (a == end) break;
@@ -157,7 +157,7 @@
 	unsigned long end, a;
 
 	a = addr & ~(sc_lsize - 1);
-	end = (addr + size) & ~(sc_lsize - 1);
+	end = (addr + size - 1) & ~(sc_lsize - 1);
 	while (1) {
 		invalidate_dcache_line(a);	/* Hit_Invalidate_D */
 		invalidate_scache_line(a);	/* Hit_Invalidate_SD */
@@ -169,7 +169,7 @@
 		return;
 
 	a = addr & ~(tc_pagesize - 1);
-	end = (addr + size) & ~(tc_pagesize - 1);
+	end = (addr + size - 1) & ~(tc_pagesize - 1);
 	while(1) {
 		invalidate_tcache_page(a);	/* Page_Invalidate_T */
 		if (a == end) break;
@@ -229,10 +229,10 @@
 {
 	int register i;
 
-	set_cp0_config(1<<3 /* CONF_SE */);
+	set_c0_config(1<<3 /* CONF_SE */);
 
-	set_taglo(0);
-	set_taghi(0);
+	write_c0_taglo(0);
+	write_c0_taghi(0);
 
 	for (i=0; i<scache_size; i+=sc_lsize) {
 		__asm__ __volatile__ (
@@ -289,14 +289,18 @@
 
 void __init ld_mmu_rm7k(void)
 {
-	unsigned long config = read_32bit_cp0_register(CP0_CONFIG);
+	unsigned long config = read_c0_config();
+	extern char except_vec2_generic;
 	unsigned long addr;
 
-        change_cp0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);
+	/* Default cache error handler for RM7000 */
+	memcpy((void *)(KSEG0 + 0x100), &except_vec2_generic, 0x80);
+	memcpy((void *)(KSEG1 + 0x100), &except_vec2_generic, 0x80);
+        change_c0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);
 
 	/* RM7000 erratum #31. The icache is screwed at startup. */
-	set_taglo(0);
-	set_taghi(0);
+	write_c0_taglo(0);
+	write_c0_taghi(0);
 	for (addr = KSEG0; addr <= KSEG0 + 4096; addr += ic_lsize) {
 		__asm__ __volatile__ (
 			".set noreorder\n\t"
@@ -319,7 +323,7 @@
 			: "r" (addr), "i" (Index_Store_Tag_I), "i" (Fill));
 	}
 
-	change_cp0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
+	change_c0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
 
 	probe_icache(config);
 	probe_dcache(config);
diff -urNd -urNd linux-2.4.20/arch/mips/mm/c-sb1.c linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-sb1.c
--- linux-2.4.20/arch/mips/mm/c-sb1.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-sb1.c	2003-02-18 17:38:36.000000000 -0600
@@ -26,20 +26,24 @@
 #include <asm/uaccess.h>
 
 /* These are probed at ld_mmu time */
-static unsigned int icache_size;
-static unsigned int dcache_size;
+static unsigned long icache_size;
+static unsigned long dcache_size;
 
-static unsigned int icache_line_size;
-static unsigned int dcache_line_size;
+static unsigned long icache_line_size;
+static unsigned long dcache_line_size;
 
 static unsigned int icache_index_mask;
+static unsigned int dcache_index_mask;
 
-static unsigned int icache_assoc;
-static unsigned int dcache_assoc;
+static unsigned long icache_assoc;
+static unsigned long dcache_assoc;
 
 static unsigned int icache_sets;
 static unsigned int dcache_sets;
 
+static unsigned int icache_range_cutoff;
+static unsigned int dcache_range_cutoff;
+
 void pgd_init(unsigned long page)
 {
 	unsigned long *p = (unsigned long *) page;
@@ -70,59 +74,168 @@
  * to flush it
  */
 
-static void sb1_flush_cache_all(void)
-{
-}
-
-static void local_sb1___flush_cache_all(void)
+/*
+ * Writeback and invalidate the entire dcache
+ */
+static inline void __sb1_writeback_inv_dcache_all(void)
 {
-	/*
-	 * Haven't worried too much about speed here; given that we're flushing
-	 * the icache, the time to invalidate is dwarfed by the time it's going
-	 * to take to refill it.  Register usage:
-	 *
-	 * $1 - moving cache index
-	 * $2 - set count
-	 */
 	__asm__ __volatile__ (
 		".set push                  \n"
 		".set noreorder             \n"
 		".set noat                  \n"
 		".set mips4                 \n"
-		"     move   $1, %2         \n" /* Start at index 0 */
-		"1:   cache  %3, 0($1)      \n" /* WB/Invalidate this index */
+		"     move   $1, $0         \n" /* Start at index 0 */
+		"1:   cache  %2, 0($1)      \n" /* Invalidate this index */
+		"     cache  %2, (1<<13)($1)\n" /* Invalidate this index */
+		"     cache  %2, (2<<13)($1)\n" /* Invalidate this index */
+		"     cache  %2, (3<<13)($1)\n" /* Invalidate this index */
 		"     addiu  %1, %1, -1     \n" /* Decrement loop count */
 		"     bnez   %1, 1b         \n" /* loop test */
-		"      addu   $1, $1, %0    \n" /* Next address */
+		"      addu  $1, $1, %0     \n" /* Next address */
 		".set pop                   \n"
 		:
-		: "r" (dcache_line_size), "r" (dcache_sets * dcache_assoc),
-		  "r" (KSEG0), "i" (Index_Writeback_Inv_D));
+		: "r" (dcache_line_size), "r" (dcache_sets),
+		  "i" (Index_Writeback_Inv_D));
+}
 
+/*
+ * Writeback and invalidate a range of the dcache.  The addresses are
+ * virtual, and since we're using index ops and bit 12 is part of both
+ * the virtual frame and physical index, we have to clear both sets
+ * (bit 12 set and cleared).
+ */
+static inline void __sb1_writeback_inv_dcache_range(unsigned long start,
+	unsigned long end)
+{
 	__asm__ __volatile__ (
-		".set push                  \n"
-		".set noreorder             \n"
-		".set mips2                 \n"
-		"sync                       \n"
-#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS		/* Bug 1384 */
-		"sync                       \n"
-#endif
-		".set pop                   \n");
+	"	.set	push		\n"
+	"	.set	noreorder	\n"
+	"	.set	noat		\n"
+	"	.set	mips4		\n"
+	"	and	$1, %0, %3	\n" /* mask non-index bits */
+	"1:	cache	%4, (0<<13)($1)	\n" /* Index-WB-inval this address */
+	"	cache	%4, (1<<13)($1)	\n" /* Index-WB-inval this address */
+	"	cache	%4, (2<<13)($1)	\n" /* Index-WB-inval this address */
+	"	cache	%4, (3<<13)($1)	\n" /* Index-WB-inval this address */
+	"	xori	$1, $1, 1<<12 	\n" /* flip bit 12 (va/pa alias) */
+	"	cache	%4, (0<<13)($1)	\n" /* Index-WB-inval this address */
+	"	cache	%4, (1<<13)($1)	\n" /* Index-WB-inval this address */
+	"	cache	%4, (2<<13)($1)	\n" /* Index-WB-inval this address */
+	"	cache	%4, (3<<13)($1)	\n" /* Index-WB-inval this address */
+	"	addu	%0, %0, %2	\n" /* next line */
+	"	bne	%0, %1, 1b	\n" /* loop test */
+	"	 and	$1, %0, %3	\n" /* mask non-index bits */
+	"	sync			\n"
+	"	.set pop		\n"
+	:
+	: "r" (start & ~(dcache_line_size - 1)),
+	  "r" ((end + dcache_line_size - 1) & ~(dcache_line_size - 1)),
+	  "r" (dcache_line_size),
+	  "r" (dcache_index_mask),
+	  "i" (Index_Writeback_Inv_D));
+}
 
+/*
+ * Writeback and invalidate a range of the dcache.  With physical
+ * addresseses, we don't have to worry about possible bit 12 aliasing.
+ * XXXKW is it worth turning on KX and using hit ops with xkphys?
+ */
+static inline void __sb1_writeback_inv_dcache_phys_range(unsigned long start,
+	unsigned long end)
+{
+	__asm__ __volatile__ (
+		"	.set	push		\n"
+		"	.set	noreorder	\n"
+		"	.set	noat		\n"
+		"	.set	mips4		\n"
+		"	and	$1, %0, %3	\n" /* mask non-index bits */
+		"1:	cache	%4, (0<<13)($1)	\n" /* Index-WB-inval this address */
+		"	cache	%4, (1<<13)($1)	\n" /* Index-WB-inval this address */
+		"	cache	%4, (2<<13)($1)	\n" /* Index-WB-inval this address */
+		"	cache	%4, (3<<13)($1)	\n" /* Index-WB-inval this address */
+		"	addu	%0, %0, %2	\n" /* next line */
+		"	bne	%0, %1, 1b	\n" /* loop test */
+		"	 and	$1, %0, %3	\n" /* mask non-index bits */
+		"	sync			\n"
+		"	.set pop		\n"
+		:
+		: "r" (start  & ~(dcache_line_size - 1)),
+		  "r" ((end + dcache_line_size - 1) & ~(dcache_line_size - 1)),
+		  "r" (dcache_line_size),
+		  "r" (dcache_index_mask),
+		  "i" (Index_Writeback_Inv_D));
+}
+
+
+/*
+ * Invalidate the entire icache
+ */
+static inline void __sb1_flush_icache_all(void)
+{
 	__asm__ __volatile__ (
 		".set push                  \n"
 		".set noreorder             \n"
 		".set noat                  \n"
 		".set mips4                 \n"
-		"     move   $1, %2         \n" /* Start at index 0 */
-		"1:   cache  %3, 0($1)       \n" /* Invalidate this index */
+		"     move   $1, $0         \n" /* Start at index 0 */
+		"1:   cache  %2, 0($1)      \n" /* Invalidate this index */
+		"     cache  %2, (1<<13)($1)\n" /* Invalidate this index */
+		"     cache  %2, (2<<13)($1)\n" /* Invalidate this index */
+		"     cache  %2, (3<<13)($1)\n" /* Invalidate this index */
 		"     addiu  %1, %1, -1     \n" /* Decrement loop count */
 		"     bnez   %1, 1b         \n" /* loop test */
-		"      addu   $1, $1, %0    \n" /* Next address */
+		"      addu  $1, $1, %0     \n" /* Next address */
+		"     bnezl  $0, 2f         \n" /* Force mispredict */
+		"      nop                  \n"
+		"2:   sync                  \n"
 		".set pop                   \n"
 		:
-		: "r" (icache_line_size), "r" (icache_sets * icache_assoc),
-		  "r" (KSEG0), "i" (Index_Invalidate_I));
+		: "r" (icache_line_size), "r" (icache_sets),
+		  "i" (Index_Invalidate_I));
+}
+
+/*
+ * Invalidate a range of the icache.  The addresses are virtual, and
+ * the cache is virtually indexed and tagged.  However, we don't
+ * necessarily have the right ASID context, so use index ops instead
+ * of hit ops.
+ */
+static inline void __sb1_flush_icache_range(unsigned long start,
+	unsigned long end)
+{
+	__asm__ __volatile__ (
+		".set push                  \n"
+		".set noreorder             \n"
+		".set noat                  \n"
+		".set mips4                 \n"
+		"     and    $1, %0, %3     \n" /* mask non-index bits */
+		"1:   cache  %4, (0<<13)($1) \n" /* Index-inval this address */
+		"     cache  %4, (1<<13)($1) \n" /* Index-inval this address */
+		"     cache  %4, (2<<13)($1) \n" /* Index-inval this address */
+		"     cache  %4, (3<<13)($1) \n" /* Index-inval this address */
+		"     addu   %0, %0, %2     \n" /* next line */
+		"     bne    %0, %1, 1b     \n" /* loop test */
+		"      and   $1, %0, %3     \n" /* mask non-index bits */
+		"     bnezl  $0, 2f         \n" /* Force mispredict */
+		"      nop                  \n"
+		"2:   sync                  \n"
+		".set pop                   \n"
+		:
+		: "r" (start  & ~(icache_line_size - 1)),
+		  "r" ((end + icache_line_size - 1) & ~(icache_line_size - 1)),
+		  "r" (icache_line_size),
+		  "r" (icache_index_mask),
+		  "i" (Index_Invalidate_I));
+}
+
+
+/*
+ * Invalidate all caches on this CPU
+ */
+static void local_sb1___flush_cache_all(void)
+{
+	__sb1_writeback_inv_dcache_all();
+	__sb1_flush_icache_all();
 }
 
 #ifdef CONFIG_SMP
@@ -139,80 +252,28 @@
 asm("sb1___flush_cache_all = local_sb1___flush_cache_all");
 #endif
 
-
 /*
  * When flushing a range in the icache, we have to first writeback
  * the dcache for the same range, so new ifetches will see any
  * data that was dirty in the dcache.
  *
- * The start/end arguments are expected to be Kseg addresses.
+ * The start/end arguments are Kseg addresses (possibly mapped Kseg).
  */
 
-static void local_sb1_flush_icache_range(unsigned long start, unsigned long end)
+static void local_sb1_flush_icache_range(unsigned long start,
+	unsigned long end)
 {
-#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-	unsigned long flags;
-	local_irq_save(flags);
-#endif
-
-	__asm__ __volatile__ (
-		".set push                  \n"
-		".set noreorder             \n"
-		".set noat                  \n"
-		".set mips4                 \n"
-		"     move   $1, %0         \n"
-		"1:                         \n"
-#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-		".align 3                   \n"
-		"     lw     $0,   0($1)    \n" /* Bug 1370, 1368            */
-		"     sync                  \n"
-#endif
-		"     cache  %3, 0($1)      \n" /* Hit-WB{,-inval} this address */
-		"     bne    $1, %1, 1b     \n" /* loop test */
-		"      addu  $1, $1, %2     \n" /* next line */
-		".set pop                   \n"
-		:
-		: "r" (start  & ~(dcache_line_size - 1)),
-		  "r" ((end - 1) & ~(dcache_line_size - 1)),
-		  "r" (dcache_line_size),
-#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-		  "i" (Hit_Writeback_Inv_D)
-#else
-		  "i" (Hit_Writeback_D)
-#endif
-		);
-	__asm__ __volatile__ (
-		".set push                  \n"
-		".set noreorder             \n"
-		".set mips2                 \n"
-		"sync                       \n"
-#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS		/* Bug 1384 */
-		"sync                       \n"
-#endif
-		".set pop                   \n");
-#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-	local_irq_restore(flags);
-#endif
-
-	__asm__ __volatile__ (
-		".set push                  \n"
-		".set noreorder             \n"
-		".set noat                  \n"
-		".set mips4                 \n"
-		"     move   $1, %0         \n"
-		".align 3                   \n"
-		"1:   cache  %3, (0<<13)($1) \n" /* Index-inval this address */
-		"     cache  %3, (1<<13)($1) \n" /* Index-inval this address */
-		"     cache  %3, (2<<13)($1) \n" /* Index-inval this address */
-		"     cache  %3, (3<<13)($1) \n" /* Index-inval this address */
-		"     bne    $1, %1, 1b     \n" /* loop test */
-		"      addu  $1, $1, %2     \n" /* next line */
-		".set pop                   \n"
-		:
-		: "r" (start & ~(icache_line_size - 1)),
-		  "r" ((end - 1) & ~(icache_line_size - 1)),
-		  "r" (icache_line_size),
-		  "i" (Index_Invalidate_I));
+	/* Just wb-inv the whole dcache if the range is big enough */
+	if ((end - start) > dcache_range_cutoff)
+		__sb1_writeback_inv_dcache_all();
+	else
+		__sb1_writeback_inv_dcache_range(start, end);
+	
+	/* Just flush the whole icache if the range is big enough */
+	if ((end - start) > icache_range_cutoff)
+		__sb1_flush_icache_all();
+	else
+		__sb1_flush_icache_range(start, end);
 }
 
 #ifdef CONFIG_SMP
@@ -243,186 +304,123 @@
 #endif
 
 /*
- * If there's no context yet, or the page isn't executable, no icache flush
- * is needed
+ * Flush the icache for a given physical page.  Need to writeback the
+ * dcache first, then invalidate the icache.  If the page isn't
+ * executable, nothing is required.
  */
-static void sb1_flush_icache_page(struct vm_area_struct *vma,
+static void local_sb1_flush_icache_page(struct vm_area_struct *vma,
 	struct page *page)
 {
+	unsigned long start;
+	int cpu = smp_processor_id();
+
+#ifndef CONFIG_SMP
 	if (!(vma->vm_flags & VM_EXEC))
 		return;
+#endif
 
+	/* Need to writeback any dirty data for that page, we have the PA */
+	start = (unsigned long)(page-mem_map) << PAGE_SHIFT;
+	__sb1_writeback_inv_dcache_phys_range(start, start + PAGE_SIZE);
 	/*
-	 * We're not sure of the virtual address(es) involved here, so
-	 * conservatively flush the entire caches on all processors
-	 * (ouch).
+	 * If there's a context, bump the ASID (cheaper than a flush,
+	 * since we don't know VAs!)
 	 */
-	sb1___flush_cache_all();
+	if (cpu_context(cpu, vma->vm_mm) != 0) {
+		drop_mmu_context(vma->vm_mm, cpu);
+	}
 }
 
-static inline void protected_flush_icache_line(unsigned long addr)
+#ifdef CONFIG_SMP
+struct flush_icache_page_args {
+	struct vm_area_struct *vma;
+	struct page *page;
+};
+
+static void sb1_flush_icache_page_ipi(void *info)
 {
-	__asm__ __volatile__(
-		"    .set push                \n"
-		"    .set noreorder           \n"
-		"    .set mips4               \n"
-		"1:  cache %1, (%0)           \n"
-		"2:  .set pop                 \n"
-		"    .section __ex_table,\"a\"\n"
-		"     .word  1b, 2b          \n"
-		"     .previous"
-		:
-		: "r" (addr),
-		  "i" (Hit_Invalidate_I));
+	struct flush_icache_page_args *args = info;
+	local_sb1_flush_icache_page(args->vma, args->page);
 }
 
-static inline void protected_writeback_dcache_line(unsigned long addr)
+/* Dirty dcache could be on another CPU, so do the IPIs */
+static void sb1_flush_icache_page(struct vm_area_struct *vma,
+	struct page *page)
 {
-#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-	/* Have to be sure the TLB entry exists for the cache op,
-	   so we have to be sure that nothing happens in between the
-	   lw and the cache op
-	*/
-	unsigned long flags;
-	local_irq_save(flags);
-#endif
-	__asm__ __volatile__(
-		"    .set push                \n"
-		"    .set noreorder           \n"
-		"    .set mips4               \n"
-		"1:                           \n"
-#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-		"     lw    $0,   (%0)        \n"
-		"     sync                  \n"
-#endif
-		"     cache  %1, 0(%0)    \n" /* Hit-WB{-inval} this address */
-		/* XXX: should be able to do this after both dcache cache
-		   ops, but there's no guarantee that this will be inlined,
-		   and the pass1 restriction checker can't detect syncs
-		   following cache ops except in the following basic block.
-		*/
-		"     sync                    \n"
-#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS		/* Bug 1384 */
-		"     sync                    \n"
-#endif
-		"2:  .set pop                 \n"
-		"    .section __ex_table,\"a\"\n"
-		"     .word  1b, 2b          \n"
-		"     .previous"
-		:
-		: "r" (addr),
-#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-		  "i" (Hit_Writeback_Inv_D)
+	struct flush_icache_page_args args;
+
+	if (!(vma->vm_flags & VM_EXEC))
+		return;
+	args.vma = vma;
+	args.page = page;
+	smp_call_function(sb1_flush_icache_page_ipi, (void *) &args, 1, 1);
+	local_sb1_flush_icache_page(vma, page);
+}
 #else
-		  "i" (Hit_Writeback_D)
-#endif
-		  );
-#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-	local_irq_restore(flags);
+void sb1_flush_icache_page(struct vm_area_struct *vma, struct page *page);
+asm("sb1_flush_icache_page = local_sb1_flush_icache_page");
 #endif
-}
 
 /*
  * A signal trampoline must fit into a single cacheline.
  */
 static void local_sb1_flush_cache_sigtramp(unsigned long addr)
 {
-	unsigned long daddr, iaddr;
-
-	daddr = addr & ~(dcache_line_size - 1);
-	protected_writeback_dcache_line(daddr);
-	iaddr = addr & ~(icache_line_size - 1);
-	protected_flush_icache_line(iaddr);
+	__asm__ __volatile__ (
+	"	.set	push		\n"
+	"	.set	noreorder	\n"
+	"	.set	noat		\n"
+	"	.set	mips4		\n"
+	"	cache	%2, (0<<13)(%0)	\n" /* Index-inval this address */
+	"	cache	%2, (1<<13)(%0)	\n" /* Index-inval this address */
+	"	cache	%2, (2<<13)(%0)	\n" /* Index-inval this address */
+	"	cache	%2, (3<<13)(%0)	\n" /* Index-inval this address */
+	"	xori	$1, %0, 1<<12	\n" /* Flip index bit 12	*/
+	"	cache	%2, (0<<13)($1)	\n" /* Index-inval this address */
+	"	cache	%2, (1<<13)($1)	\n" /* Index-inval this address */
+	"	cache	%2, (2<<13)($1)	\n" /* Index-inval this address */
+	"	cache	%2, (3<<13)($1)	\n" /* Index-inval this address */
+	"	cache	%3, (0<<13)(%1)	\n" /* Index-inval this address */
+	"	cache	%3, (1<<13)(%1)	\n" /* Index-inval this address */
+	"	cache	%3, (2<<13)(%1)	\n" /* Index-inval this address */
+	"	cache	%3, (3<<13)(%1)	\n" /* Index-inval this address */
+	"	bnezl	$0, 1f		\n" /* Force mispredict */
+	"	 nop			\n"
+	"1:                             \n"
+	"	.set	pop		\n"
+	:
+	: "r" (addr & dcache_index_mask), "r" (addr & icache_index_mask),
+	  "i" (Index_Writeback_Inv_D), "i" (Index_Invalidate_I));
 }
 
 #ifdef CONFIG_SMP
-
 static void sb1_flush_cache_sigtramp_ipi(void *info)
 {
 	unsigned long iaddr = (unsigned long) info;
-
-	iaddr = iaddr & ~(icache_line_size - 1);
-	protected_flush_icache_line(iaddr);
+	local_sb1_flush_cache_sigtramp(iaddr);
 }
 
 static void sb1_flush_cache_sigtramp(unsigned long addr)
 {
-	unsigned long tmp;
-
-	/*
-	 * Flush the local dcache, then load the instruction back into a
-	 * register.  That will make sure that any remote CPU also has
-	 * written back it's data cache to memory.
-	 */
 	local_sb1_flush_cache_sigtramp(addr);
-	__get_user(tmp, (unsigned long *)addr);
-
 	smp_call_function(sb1_flush_cache_sigtramp_ipi, (void *) addr, 1, 1);
 }
-
 #else
 void sb1_flush_cache_sigtramp(unsigned long addr);
 asm("sb1_flush_cache_sigtramp = local_sb1_flush_cache_sigtramp");
 #endif
 
-static void sb1_flush_icache_all(void)
-{
-	/*
-	 * Haven't worried too much about speed here; given that we're flushing
-	 * the icache, the time to invalidate is dwarfed by the time it's going
-	 * to take to refill it.  Register usage:
-	 *
-	 * $1 - moving cache index
-	 * $2 - set count
-	 */
-	__asm__ __volatile__ (
-		".set push                  \n"
-		".set noreorder             \n"
-		".set noat                  \n"
-		".set mips4                 \n"
-		"     move   $1, %2         \n" /* Start at index 0 */
-		"1:   cache  %3, 0($1)      \n" /* Invalidate this index */
-		"     addiu  %1, %1, -1     \n" /* Decrement loop count */
-		"     bnez   %1, 1b         \n" /* loop test */
-		"      addu   $1, $1, %0    \n" /* Next address */
-		".set pop                   \n"
-		:
-		: "r" (icache_line_size), "r" (icache_sets * icache_assoc),
-		  "r" (KSEG0), "i" (Index_Invalidate_I));
-}
 
 /*
  * Anything that just flushes dcache state can be ignored, as we're always
  * coherent in dcache space.  This is just a dummy function that all the
  * nop'ed routines point to
  */
-
 static void sb1_nop(void)
 {
 }
 
 /*
- * This only needs to make sure stores done up to this
- * point are visible to other agents outside the CPU.  Given
- * the coherent nature of the ZBbus, all that's required here is
- * a sync to make sure the data gets out to the caches and is
- * visible to an arbitrary A Phase from an external agent
- *
- * Actually, I'm not even sure that's necessary; the semantics
- * of this function aren't clear.  If it's supposed to serve as
- * a memory barrier, this is needed.  If it's only meant to
- * prevent data from being invisible to non-cpu memory accessors
- * for some indefinite period of time (e.g. in a non-coherent
- * dcache) then this function would be a complete nop.
- */
-static void sb1_flush_page_to_ram(struct page *page)
-{
-	__asm__ __volatile__(
-		"     sync  \n"  /* Short pipe */
-		:::"memory");
-}
-
-/*
  *  Cache set values (from the mips64 spec)
  * 0 - 64
  * 1 - 128
@@ -481,7 +479,7 @@
 {
 	u32 config1;
 
-	config1 = read_mips32_cp0_config1();
+	config1 = read_c0_config1();
 	icache_line_size = decode_cache_line_size((config1 >> 19) & 0x7);
 	dcache_line_size = decode_cache_line_size((config1 >> 10) & 0x7);
 	icache_sets = decode_cache_sets((config1 >> 22) & 0x7);
@@ -490,7 +488,17 @@
 	dcache_assoc = ((config1 >> 7) & 0x7) + 1;
 	icache_size = icache_line_size * icache_sets * icache_assoc;
 	dcache_size = dcache_line_size * dcache_sets * dcache_assoc;
+	/* Need to remove non-index bits for index ops */
 	icache_index_mask = (icache_sets - 1) * icache_line_size;
+	dcache_index_mask = (dcache_sets - 1) * dcache_line_size;
+	/*
+	 * These are for choosing range (index ops) versus all.
+	 * icache flushes all ways for each set, so drop icache_assoc.
+	 * dcache flushes all ways and each setting of bit 12 for each
+	 * index, so drop dcache_assoc and halve the dcache_sets.
+	 */
+	icache_range_cutoff = icache_sets * icache_line_size;
+	dcache_range_cutoff = (dcache_sets / 2) * icache_line_size;
 }
 
 /*
@@ -500,25 +508,50 @@
  */
 void ld_mmu_sb1(void)
 {
+	extern char except_vec2_sb1;
+	unsigned long temp;
+
+	/* Special cache error handler for SB1 */
+	memcpy((void *)(KSEG0 + 0x100), &except_vec2_sb1, 0x80);
+	memcpy((void *)(KSEG1 + 0x100), &except_vec2_sb1, 0x80);
+
 	probe_cache_sizes();
 
 	_clear_page = sb1_clear_page;
 	_copy_page = sb1_copy_page;
 
-	_flush_cache_all = sb1_flush_cache_all;
-	___flush_cache_all = sb1___flush_cache_all;
-	_flush_cache_mm = (void (*)(struct mm_struct *))sb1_nop;
+	/*
+	 * None of these are needed for the SB1 - the Dcache is
+	 * physically indexed and tagged, so no virtual aliasing can
+	 * occur
+	 */
 	_flush_cache_range = (void *) sb1_nop;
-	_flush_page_to_ram = sb1_flush_page_to_ram;
-	_flush_icache_page = sb1_flush_icache_page;
-	_flush_icache_range = sb1_flush_icache_range;
-
-	/* None of these are needed for the sb1 */
-	_flush_cache_page = (void *) sb1_nop;
+	_flush_cache_page = (void (*)(struct vm_area_struct *, unsigned long))sb1_nop;
+	_flush_cache_mm = (void (*)(struct mm_struct *))sb1_nop;
+	_flush_cache_all = sb1_nop;
+	_flush_page_to_ram = (void (*)(struct page *)) sb1_nop;
 
+	/* These routines are for Icache coherence with the Dcache */
+	_flush_icache_range = sb1_flush_icache_range;
+	_flush_icache_page = sb1_flush_icache_page;
+	_flush_icache_all = __sb1_flush_icache_all; /* local only */
 	_flush_cache_sigtramp = sb1_flush_cache_sigtramp;
-	_flush_icache_all = sb1_flush_icache_all;
 
-	change_cp0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
+	/* Full flush */
+	___flush_cache_all = sb1___flush_cache_all;
+
+	change_c0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
+	/*
+	 * This is the only way to force the update of K0 to complete
+	 * before subsequent instruction fetch.
+	 */
+	__asm__ __volatile__ (
+	"	.set	push		\n"
+	"	.set	mips4		\n"
+	"	la	%0, 1f		\n"
+	"	mtc0	%0, $14		\n"
+	"	eret			\n"
+	"1:	.set	pop		\n"
+	: "=r" (temp));
 	flush_cache_all();
 }
diff -urNd -urNd linux-2.4.20/arch/mips/mm/c-tx39.c linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-tx39.c
--- linux-2.4.20/arch/mips/mm/c-tx39.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-tx39.c	2003-01-24 06:58:30.000000000 -0600
@@ -46,8 +46,8 @@
 	unsigned long flags, config;
 
 	/* disable icache (set ICE#) */
-	__save_and_cli(flags);
-	config = read_32bit_cp0_register(CP0_CONF);
+	local_irq_save(flags);
+	config = read_c0_conf();
 
 	/* invalidate icache */
 	while (start < end) {
@@ -55,8 +55,8 @@
 		start += 0x200;
 	}
 
-	write_32bit_cp0_register(CP0_CONF, config);
-	__restore_flags(flags);
+	write_c0_conf(config);
+	local_irq_restore(flags);
 }
 
 static void tx39h_dma_cache_wback_inv(unsigned long addr, unsigned long size)
@@ -65,7 +65,7 @@
 
 	iob();
 	a = addr & ~(dcache_lsize - 1);
-	end = (addr + size) & ~(dcache_lsize - 1);
+	end = (addr + size - 1) & ~(dcache_lsize - 1);
 	while (1) {
 		invalidate_dcache_line(a); /* Hit_Invalidate_D */
 		if (a == end) break;
@@ -79,14 +79,14 @@
 {
 	unsigned long flags, config;
 
-	__save_and_cli(flags);
+	local_irq_save(flags);
 	blast_dcache16_wayLSB();
 	/* disable icache (set ICE#) */
-	config = read_32bit_cp0_register(CP0_CONF);
-	write_32bit_cp0_register(CP0_CONF, config&~TX39_CONF_ICE);
+	config = read_c0_conf();
+	write_c0_conf(config & ~TX39_CONF_ICE);
 	blast_icache16_wayLSB();
-	write_32bit_cp0_register(CP0_CONF, config);
-	__restore_flags(flags);
+	write_c0_conf(config);
+	local_irq_restore(flags);
 }
 
 static void tx39_flush_cache_mm(struct mm_struct *mm)
@@ -109,14 +109,14 @@
 #ifdef DEBUG_CACHE
 		printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
 #endif
-		__save_and_cli(flags);
+		local_irq_save(flags);
 		blast_dcache16_wayLSB();
 		/* disable icache (set ICE#) */
-		config = read_32bit_cp0_register(CP0_CONF);
-		write_32bit_cp0_register(CP0_CONF, config&~TX39_CONF_ICE);
+		config = read_c0_conf();
+		write_c0_conf(config & ~TX39_CONF_ICE);
 		blast_icache16_wayLSB();
-		write_32bit_cp0_register(CP0_CONF, config);
-		__restore_flags(flags);
+		write_c0_conf(config);
+		local_irq_restore(flags);
 	}
 }
 
@@ -139,7 +139,6 @@
 #ifdef DEBUG_CACHE
 	printk("cpage[%d,%08lx]", (int)mm->context, page);
 #endif
-	__save_and_cli(flags);
 	page &= PAGE_MASK;
 	pgdp = pgd_offset(mm, page);
 	pmdp = pmd_offset(pgdp, page);
@@ -150,7 +149,7 @@
 	 * in the cache.
 	 */
 	if(!(pte_val(*ptep) & _PAGE_PRESENT))
-		goto out;
+		return;
 
 	/*
 	 * Doing flushes for another ASID than the current one is
@@ -168,8 +167,6 @@
 		page = (KSEG0 + (page & (dcache_size - 1)));
 		blast_dcache16_page_indexed_wayLSB(page);
 	}
-out:
-	__restore_flags(flags);
 }
 
 static void tx39_flush_page_to_ram(struct page * page)
@@ -198,7 +195,7 @@
 		flush_cache_all();
 	} else {
 		a = addr & ~(dcache_lsize - 1);
-		end = (addr + size) & ~(dcache_lsize - 1);
+		end = (addr + size - 1) & ~(dcache_lsize - 1);
 		while (1) {
 			flush_dcache_line(a); /* Hit_Writeback_Inv_D */
 			if (a == end) break;
@@ -215,7 +212,7 @@
 		flush_cache_all();
 	} else {
 		a = addr & ~(dcache_lsize - 1);
-		end = (addr + size) & ~(dcache_lsize - 1);
+		end = (addr + size - 1) & ~(dcache_lsize - 1);
 		while (1) {
 			invalidate_dcache_line(a); /* Hit_Invalidate_D */
 			if (a == end) break;
@@ -234,22 +231,22 @@
 	unsigned long config;
 	unsigned int flags;
 
-	__save_and_cli(flags);
+	local_irq_save(flags);
 	protected_writeback_dcache_line(addr & ~(dcache_lsize - 1));
 
 	/* disable icache (set ICE#) */
-	config = read_32bit_cp0_register(CP0_CONF);
-	write_32bit_cp0_register(CP0_CONF, config&~TX39_CONF_ICE);
+	config = read_c0_conf();
+	write_c0_conf(config & ~TX39_CONF_ICE);
 	protected_flush_icache_line(addr & ~(icache_lsize - 1));
-	write_32bit_cp0_register(CP0_CONF, config);
-	__restore_flags(flags);
+	write_c0_conf(config);
+	local_irq_restore(flags);
 }
 
 static __init void tx39_probe_cache(void)
 {
 	unsigned long config;
 
-	config = read_32bit_cp0_register(CP0_CONF);
+	config = read_c0_conf();
 
 	icache_size = 1 << (10 + ((config >> 19) & 3));
 	dcache_size = 1 << (10 + ((config >> 16) & 3));
@@ -275,9 +272,9 @@
 	_clear_page = r3k_clear_page;
 	_copy_page = r3k_copy_page;
 
-	config = read_32bit_cp0_register(CP0_CONF);
+	config = read_c0_conf();
 	config &= ~TX39_CONF_WBON;
-	write_32bit_cp0_register(CP0_CONF, config);
+	write_c0_conf(config);
 
 	tx39_probe_cache();
 
@@ -302,7 +299,7 @@
 	default:
 		/* TX39/H2,H3 core (writeback 2way-set-associative cache) */
 		r3k_have_wired_reg = 1;
-		set_wired (0);	/* set 8 on reset... */
+		write_c0_wired(0);	/* set 8 on reset... */
 		/* board-dependent init code may set WBON */
 
 		_flush_cache_all = tx39_flush_cache_all;
diff -urNd -urNd linux-2.4.20/arch/mips/mm/c-tx49.c linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-tx49.c
--- linux-2.4.20/arch/mips/mm/c-tx49.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-tx49.c	2003-02-09 16:03:23.000000000 -0600
@@ -62,28 +62,28 @@
 {
 	unsigned long flags, config;
 
-	__save_and_cli(flags);
+	local_irq_save(flags);
 	blast_dcache16_wayLSB();
 	/* disable icache (set ICE#) */
-	config = read_32bit_cp0_register(CP0_CONFIG);
-	write_32bit_cp0_register(CP0_CONFIG, config|TX49_CONF_IC);
+	config = read_c0_config();
+	write_c0_config(config | TX49_CONF_IC);
 	blast_icache32_wayLSB();
-	write_32bit_cp0_register(CP0_CONFIG, config);
-	__restore_flags(flags);
+	write_c0_config(config);
+	local_irq_restore(flags);
 }
 
 static inline void r49_flush_cache_all_d32i32(void)
 {
 	unsigned long flags, config;
 
-	__save_and_cli(flags);
+	local_irq_save(flags);
 	blast_dcache32_wayLSB();
 	/* disable icache (set ICE#) */
-	config = read_32bit_cp0_register(CP0_CONFIG);
-	write_32bit_cp0_register(CP0_CONFIG, config|TX49_CONF_IC);
+	config = read_c0_config();
+	write_c0_config(config | TX49_CONF_IC);
 	blast_icache32_wayLSB();
-	write_32bit_cp0_register(CP0_CONFIG, config);
-	__restore_flags(flags);
+	write_c0_config(config);
+	local_irq_restore(flags);
 }
 
 static void r49_flush_cache_range_d16i32(struct mm_struct *mm,
@@ -96,14 +96,14 @@
 #ifdef DEBUG_CACHE
 		printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
 #endif
-		__save_and_cli(flags);
+		local_irq_save(flags);
 		blast_dcache16_wayLSB();
 		/* disable icache (set ICE#) */
-		config = read_32bit_cp0_register(CP0_CONFIG);
-		write_32bit_cp0_register(CP0_CONFIG, config|TX49_CONF_IC);
+		config = read_c0_config();
+		write_c0_config(config | TX49_CONF_IC);
 		blast_icache32_wayLSB();
-		write_32bit_cp0_register(CP0_CONFIG, config);
-		__restore_flags(flags);
+		write_c0_config(config);
+		local_irq_restore(flags);
 	}
 }
 
@@ -117,14 +117,14 @@
 #ifdef DEBUG_CACHE
 		printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
 #endif
-		__save_and_cli(flags);
+		local_irq_save(flags);
 		blast_dcache32_wayLSB();
 		/* disable icache (set ICE#) */
-		config = read_32bit_cp0_register(CP0_CONFIG);
-		write_32bit_cp0_register(CP0_CONFIG, config|TX49_CONF_IC);
+		config = read_c0_config();
+		write_c0_config(config | TX49_CONF_IC);
 		blast_icache32_wayLSB();
-		write_32bit_cp0_register(CP0_CONFIG, config);
-		__restore_flags(flags);
+		write_c0_config(config);
+		local_irq_restore(flags);
 	}
 }
 
@@ -172,7 +172,6 @@
 #ifdef DEBUG_CACHE
 	printk("cpage[%d,%08lx]", (int)mm->context, page);
 #endif
-	__save_and_cli(flags);
 	page &= PAGE_MASK;
 	pgdp = pgd_offset(mm, page);
 	pmdp = pmd_offset(pgdp, page);
@@ -183,7 +182,7 @@
 	 * in the cache.
 	 */
 	if (!(pte_val(*ptep) & _PAGE_PRESENT))
-		goto out;
+		return;
 
 	/*
 	 * Doing flushes for another ASID than the current one is
@@ -201,8 +200,6 @@
 		page = (KSEG0 + (page & (dcache_size - 1)));
 		blast_dcache16_page_indexed_wayLSB(page);
 	}
-out:
-	__restore_flags(flags);
 }
 
 static void r49_flush_cache_page_d32i32(struct vm_area_struct *vma,
@@ -224,7 +221,6 @@
 #ifdef DEBUG_CACHE
 	printk("cpage[%d,%08lx]", (int)mm->context, page);
 #endif
-	__save_and_cli(flags);
 	page &= PAGE_MASK;
 	pgdp = pgd_offset(mm, page);
 	pmdp = pmd_offset(pgdp, page);
@@ -235,7 +231,7 @@
 	 * in the cache.
 	 */
 	if (!(pte_val(*ptep) & _PAGE_PRESENT))
-		goto out;
+		return;
 
 	/*
 	 * Doing flushes for another ASID than the current one is
@@ -253,8 +249,6 @@
 		page = (KSEG0 + (page & (dcache_size - 1)));
 		blast_dcache32_page_indexed_wayLSB(page);
 	}
-out:
-	__restore_flags(flags);
 }
 
 /* If the addresses passed to these routines are valid, they are
@@ -308,16 +302,16 @@
 	if (size >= dcache_size) {
 		flush_cache_all();
 	} else {
-		__save_and_cli(flags);
+		local_irq_save(flags);
 
 		a = addr & ~(dc_lsize - 1);
-		end = (addr + size) & ~(dc_lsize - 1);
+		end = (addr + size - 1) & ~(dc_lsize - 1);
 		while (1) {
 			flush_dcache_line(a); /* Hit_Writeback_Inv_D */
 			if (a == end) break;
 			a += dc_lsize;
 		}
-		__restore_flags(flags);
+		local_irq_restore(flags);
 	}
 }
 
@@ -330,16 +324,16 @@
 	if (size >= dcache_size) {
 		flush_cache_all();
 	} else {
-		__save_and_cli(flags);
+		local_irq_save(flags);
 
 		a = addr & ~(dc_lsize - 1);
-		end = (addr + size) & ~(dc_lsize - 1);
+		end = (addr + size - 1) & ~(dc_lsize - 1);
 		while (1) {
 			flush_dcache_line(a); /* Hit_Writeback_Inv_D */
 			if (a == end) break;
 			a += dc_lsize;
 		}
-		__restore_flags(flags);
+		local_irq_restore(flags);
 	}
 }
 
@@ -382,12 +376,18 @@
 int mips_configk0 = -1;	/* board-specific setup routine can override this */
 void __init ld_mmu_tx49(void)
 {
-	unsigned long config = read_32bit_cp0_register(CP0_CONFIG);
+	unsigned long config = read_c0_config();
+
+	/* Default cache error handler for SB1 */
+	extern char except_vec2_generic;
+
+	memcpy((void *)(KSEG0 + 0x100), &except_vec2_generic, 0x80);
+	memcpy((void *)(KSEG1 + 0x100), &except_vec2_generic, 0x80);
 
 	if (mips_configk0 != -1)
-		change_cp0_config(CONF_CM_CMASK, mips_configk0);
+		change_c0_config(CONF_CM_CMASK, mips_configk0);
 	else
-		change_cp0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
+		change_c0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
 
 	probe_icache(config);
 	probe_dcache(config);
diff -urNd -urNd linux-2.4.20/arch/mips/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/mm/CVS/Entries
--- linux-2.4.20/arch/mips/mm/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/CVS/Entries	2005-01-06 23:00:08.000000000 -0600
@@ -0,0 +1,33 @@
+/.cvsignore/1.2/Tue Mar 17 22:07:39 1998/-ko/Tlinux_2_4_20
+/Makefile/1.27.2.5/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
+/c-andes.c/1.3.2.4/Sun Feb  9 22:03:23 2003/-ko/Tlinux_2_4_20
+/c-mips32.c/1.3.2.11/Sun Feb  9 22:03:23 2003/-ko/Tlinux_2_4_20
+/c-r3k.c/1.4.2.4/Mon Dec  2 00:24:49 2002/-ko/Tlinux_2_4_20
+/c-r4k.c/1.3.2.19/Sun Feb  9 22:03:23 2003/-ko/Tlinux_2_4_20
+/c-r5432.c/1.4.2.5/Sun Feb  9 22:03:23 2003/-ko/Tlinux_2_4_20
+/c-rm7k.c/1.4.2.7/Sun Feb  9 22:03:23 2003/-ko/Tlinux_2_4_20
+/c-sb1.c/1.11.2.20/Tue Feb 18 23:38:36 2003/-ko/Tlinux_2_4_20
+/c-tx39.c/1.4.2.6/Fri Jan 24 12:58:30 2003/-ko/Tlinux_2_4_20
+/c-tx49.c/1.3.2.7/Sun Feb  9 22:03:23 2003/-ko/Tlinux_2_4_20
+/cerr-sb1.c/1.1.2.5/Thu Feb  6 23:25:13 2003/-ko/Tlinux_2_4_20
+/cex-sb1.S/1.1.2.4/Fri Feb  7 20:33:37 2003/-ko/Tlinux_2_4_20
+/extable.c/1.5.2.2/Tue Aug  6 01:40:40 2002/-ko/Tlinux_2_4_20
+/fault.c/1.25.2.10/Wed Dec 18 19:04:09 2002/-ko/Tlinux_2_4_20
+/init.c/1.38.2.7/Mon Aug  5 23:53:35 2002/-ko/Tlinux_2_4_20
+/ioremap.c/1.2.2.4/Mon Aug  5 23:53:35 2002/-ko/Tlinux_2_4_20
+/loadmmu.c/1.45.2.1/Tue Aug  6 01:46:58 2002/-ko/Tlinux_2_4_20
+/pg-andes.S/1.1.2.1/Mon Apr 15 07:37:50 2002/-ko/Tlinux_2_4_20
+/pg-mips32.c/1.2/Tue Oct 23 01:02:46 2001/-ko/Tlinux_2_4_20
+/pg-r3k.c/1.2.2.1/Wed Jan 16 09:52:44 2002/-ko/Tlinux_2_4_20
+/pg-r4k.S/1.2.2.3/Mon Aug  5 23:53:35 2002/-ko/Tlinux_2_4_20
+/pg-r5432.c/1.2/Tue Oct 23 01:02:46 2001/-ko/Tlinux_2_4_20
+/pg-rm7k.c/1.2/Tue Oct 23 01:02:46 2001/-ko/Tlinux_2_4_20
+/pg-sb1.c/1.3.2.3/Tue Jan  7 23:51:51 2003/-ko/Tlinux_2_4_20
+/r5k-sc.c/1.1.2.3/Fri Jan 24 12:58:30 2003/-ko/Tlinux_2_4_20
+/tlb-r3k.c/1.5.2.10/Thu Feb  6 22:53:43 2003/-ko/Tlinux_2_4_20
+/tlb-r4k.c/1.6.2.12/Thu Feb  6 22:53:43 2003/-ko/Tlinux_2_4_20
+/tlb-sb1.c/1.5.2.15/Fri Feb  7 01:06:34 2003/-ko/Tlinux_2_4_20
+/tlbex-r3k.S/1.1.2.5/Mon Aug  5 23:53:35 2002/-ko/Tlinux_2_4_20
+/tlbex-r4k.S/1.2.2.11/Fri Feb  7 01:06:34 2003/-ko/Tlinux_2_4_20
+/umap.c/1.10.2.1/Mon Aug  5 23:53:35 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/mm/CVS/Repository
--- linux-2.4.20/arch/mips/mm/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/CVS/Repository	2005-01-06 23:00:07.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/mm
diff -urNd -urNd linux-2.4.20/arch/mips/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/mm/CVS/Root
--- linux-2.4.20/arch/mips/mm/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/CVS/Root	2005-01-06 23:00:07.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/mm/CVS/Tag
--- linux-2.4.20/arch/mips/mm/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/CVS/Tag	2005-01-06 23:00:08.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/mm/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/mm/.cvsignore
--- linux-2.4.20/arch/mips/mm/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/.cvsignore	1998-03-17 16:07:39.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/mm/fault.c linux-2.4.20-mipscvs-20050106/arch/mips/mm/fault.c
--- linux-2.4.20/arch/mips/mm/fault.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/fault.c	2002-12-18 13:04:09.000000000 -0600
@@ -159,7 +159,6 @@
 bad_area:
 	up_read(&mm->mmap_sem);
 
-bad_area_nosemaphore:
 	/* User mode accesses just cause a SIGSEGV */
 	if (user_mode(regs)) {
 		tsk->thread.cp0_badvaddr = address;
@@ -246,26 +245,31 @@
 		/*
 		 * Synchronize this task's top level page-table
 		 * with the 'reference' page table.
+		 *
+		 * Do _not_ use "tsk" here. We might be inside
+		 * an interrupt in the middle of a task switch..
 		 */
-		int offset = pgd_index(address);
+		int offset = __pgd_offset(address);
 		pgd_t *pgd, *pgd_k;
 		pmd_t *pmd, *pmd_k;
+		pte_t *pte_k;
 
-		pgd = tsk->active_mm->pgd + offset;
+		pgd = (pgd_t *) pgd_current[smp_processor_id()] + offset;
 		pgd_k = init_mm.pgd + offset;
 
-		if (!pgd_present(*pgd)) {
-			if (!pgd_present(*pgd_k))
-				goto bad_area_nosemaphore;
-			set_pgd(pgd, *pgd_k);
-			return;
-		}
+		if (!pgd_present(*pgd_k))
+			goto no_context;
+		set_pgd(pgd, *pgd_k);
 
 		pmd = pmd_offset(pgd, address);
 		pmd_k = pmd_offset(pgd_k, address);
-
-		if (pmd_present(*pmd) || !pmd_present(*pmd_k))
-			goto bad_area_nosemaphore;
+		if (!pmd_present(*pmd_k))
+			goto no_context;
 		set_pmd(pmd, *pmd_k);
+
+		pte_k = pte_offset(pmd_k, address);
+		if (!pte_present(*pte_k))
+			goto no_context;
+		return;
 	}
 }
diff -urNd -urNd linux-2.4.20/arch/mips/mm/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/mm/Makefile
--- linux-2.4.20/arch/mips/mm/Makefile	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/Makefile	2003-01-21 23:11:38.000000000 -0600
@@ -20,16 +20,16 @@
 obj-$(CONFIG_CPU_R4300)		+= pg-r4k.o c-r4k.o tlb-r4k.o tlbex-r4k.o
 obj-$(CONFIG_CPU_R4X00)		+= pg-r4k.o c-r4k.o tlb-r4k.o tlbex-r4k.o
 obj-$(CONFIG_CPU_VR41XX)	+= pg-r4k.o c-r4k.o tlb-r4k.o tlbex-r4k.o
-obj-$(CONFIG_CPU_R5000)		+= pg-r4k.o c-r4k.o tlb-r4k.o tlbex-r4k.o \
-				   r5k-sc.o
-obj-$(CONFIG_CPU_NEVADA)	+= pg-r4k.o c-r4k.o tlb-r4k.o tlbex-r4k.o \
-				   r5k-sc.o
+obj-$(CONFIG_CPU_R5000)		+= pg-r4k.o c-r4k.o tlb-r4k.o tlbex-r4k.o
+obj-$(CONFIG_CPU_NEVADA)	+= pg-r4k.o c-r4k.o tlb-r4k.o tlbex-r4k.o
 obj-$(CONFIG_CPU_R5432)		+= pg-r5432.o c-r5432.o tlb-r4k.o tlbex-r4k.o
 obj-$(CONFIG_CPU_RM7000)	+= pg-rm7k.o c-rm7k.o tlb-r4k.o tlbex-r4k.o
 obj-$(CONFIG_CPU_R10000)	+= pg-andes.o c-andes.o tlb-r4k.o tlbex-r4k.o
 obj-$(CONFIG_CPU_MIPS32)	+= pg-mips32.o c-mips32.o tlb-r4k.o tlbex-r4k.o
 obj-$(CONFIG_CPU_MIPS64)	+= pg-mips32.o c-mips32.o tlb-r4k.o tlbex-r4k.o
-obj-$(CONFIG_CPU_SB1)		+= pg-sb1.o c-sb1.o tlb-sb1.o tlbex-r4k.o
+obj-$(CONFIG_CPU_SB1)		+= pg-sb1.o c-sb1.o tlb-sb1.o tlbex-r4k.o cex-sb1.o cerr-sb1.o
+
+obj-$(CONFIG_R5000_CPU_SCACHE)	+= r5k-sc.o
 
 obj-$(CONFIG_SGI_IP22)		+= umap.o
 obj-$(CONFIG_BAGET_MIPS)	+= umap.o
diff -urNd -urNd linux-2.4.20/arch/mips/mm/pg-sb1.c linux-2.4.20-mipscvs-20050106/arch/mips/mm/pg-sb1.c
--- linux-2.4.20/arch/mips/mm/pg-sb1.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/pg-sb1.c	2003-01-07 17:51:51.000000000 -0600
@@ -34,13 +34,15 @@
 /* These are the functions hooked by the memory management function pointers */
 void sb1_clear_page(void *page)
 {
-	/* JDCXXX - This should be bottlenecked by the write buffer, but these
-	   things tend to be mildly unpredictable...should check this on the
-	   performance model */
-
-	/* We prefetch 4 lines ahead.  We're also "cheating" slightly here...
-	   since we know we're on an SB1, we force the assembler to take
-	   64-bit operands to speed things up */
+	/*
+	 * JDCXXX - This should be bottlenecked by the write buffer, but these
+	 * things tend to be mildly unpredictable...should check this on the
+	 * performance model
+	 *
+	 * We prefetch 4 lines ahead.  We're also "cheating" slightly here...
+	 * since we know we're on an SB1, we force the assembler to take
+	 * 64-bit operands to speed things up
+	 */
 	__asm__ __volatile__(
 		".set push                  \n"
 		".set noreorder             \n"
@@ -63,22 +65,21 @@
 		"     bne       $1, %0, 1b  \n"
 		"     addiu     %0, %0, 32  \n"  /* Next cacheline (This instruction better be short piped!) */
 		".set pop                   \n"
-		:"=r" (page)
-		:"0" (page),
-		 "I" (PAGE_SIZE-32)
-		:"$1","memory");
+		: "=r" (page)
+		: "0" (page), "I" (PAGE_SIZE-32)
+		: "memory");
 
 }
 
 void sb1_copy_page(void *to, void *from)
 {
 
-	/* This should be optimized in assembly...can't use ld/sd, though,
+	/*
+	 * This should be optimized in assembly...can't use ld/sd, though,
 	 * because the top 32 bits could be nuked if we took an interrupt
 	 * during the routine.	And this is not a good place to be cli()'ing
-	 */
-
-	/* The pref's used here are using "streaming" hints, which cause the
+	 *
+	 * The pref's used here are using "streaming" hints, which cause the
 	 * copied data to be kicked out of the cache sooner.  A page copy often
 	 * ends up copying a lot more data than is commonly used, so this seems
 	 * to make sense in terms of reducing cache pollution, but I've no real
@@ -125,19 +126,7 @@
 		"     bne       $1, %0, 1b  \n"
 		"     addiu     %0, %0, 32  \n"  /* Next cacheline */
 		".set pop                   \n"
-		:"=r" (to),
-		"=r" (from)
-		:
-		"0" (from),
-		"1" (to),
-		"I" (PAGE_SIZE-32)
-		:"$1","$2","$3","$4","$5","$6","$7","$8","$9","memory");
-/*
-	unsigned long *src = from;
-	unsigned long *dest = to;
-	unsigned long *target = (unsigned long *) (((unsigned long)src) + PAGE_SIZE);
-	while (src != target) {
-		*dest++ = *src++;
-	}
-*/
+		: "=r" (to), "=r" (from)
+		: "0" (from), "1" (to), "I" (PAGE_SIZE-32)
+		: "$2","$3","$4","$5","$6","$7","$8","$9","memory");
 }
diff -urNd -urNd linux-2.4.20/arch/mips/mm/r5k-sc.c linux-2.4.20-mipscvs-20050106/arch/mips/mm/r5k-sc.c
--- linux-2.4.20/arch/mips/mm/r5k-sc.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/r5k-sc.c	2003-01-24 06:58:30.000000000 -0600
@@ -68,25 +68,25 @@
 {
         unsigned long flags;
 
-	__save_and_cli(flags);
-	change_cp0_config(CONF_SE, CONF_SE);
+	local_irq_save(flags);
+	change_c0_config(CONF_SE, CONF_SE);
 	blast_r5000_scache();
-	__restore_flags(flags);
+	local_irq_restore(flags);
 }
 
 static void r5k_sc_disable(void)
 {
         unsigned long flags;
 
-	__save_and_cli(flags);
+	local_irq_save(flags);
 	blast_r5000_scache();
-	change_cp0_config(CONF_SE, 0);
-	__restore_flags(flags);
+	change_c0_config(CONF_SE, 0);
+	local_irq_restore(flags);
 }
 
 static inline int __init r5k_sc_probe(void)
 {
-	unsigned long config = read_32bit_cp0_register(CP0_CONFIG);
+	unsigned long config = read_c0_config();
 
 	if(config & CONF_SC)
 		return(0);
diff -urNd -urNd linux-2.4.20/arch/mips/mm/tlbex-r4k.S linux-2.4.20-mipscvs-20050106/arch/mips/mm/tlbex-r4k.S
--- linux-2.4.20/arch/mips/mm/tlbex-r4k.S	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/tlbex-r4k.S	2003-02-06 19:06:34.000000000 -0600
@@ -23,6 +23,7 @@
 #include <asm/processor.h>
 #include <asm/regdef.h>
 #include <asm/stackframe.h>
+#include <asm/war.h>
 
 #define TLB_OPTIMIZE /* If you are paranoid, disable this. */
 
@@ -46,6 +47,100 @@
 #define PTE_INDX_SHIFT	10
 #endif
 
+/*
+ * ABUSE of CPP macros 101.
+ *
+ * After this macro runs, the pte faulted on is
+ * in register PTE, a ptr into the table in which
+ * the pte belongs is in PTR.
+ */
+
+#ifdef CONFIG_SMP
+#define GET_PGD(scratch, ptr)        \
+	mfc0    ptr, CP0_CONTEXT;    \
+	la      scratch, pgd_current;\
+	srl     ptr, 23;             \
+	sll     ptr, 2;              \
+	addu    ptr, scratch, ptr;   \
+	lw      ptr, (ptr);
+#else
+#define GET_PGD(scratch, ptr)    \
+	lw	ptr, pgd_current;
+#endif
+
+#define LOAD_PTE(pte, ptr) \
+	GET_PGD(pte, ptr)          \
+	mfc0	pte, CP0_BADVADDR; \
+	srl	pte, pte, _PGDIR_SHIFT; \
+	sll	pte, pte, 2; \
+	addu	ptr, ptr, pte; \
+	mfc0	pte, CP0_BADVADDR; \
+	lw	ptr, (ptr); \
+	srl	pte, pte, PTE_INDX_SHIFT; \
+	and	pte, pte, PTE_INDX_MSK; \
+	addu	ptr, ptr, pte; \
+	PTE_L	pte, (ptr);
+
+	/* This places the even/odd pte pair in the page
+	 * table at PTR into ENTRYLO0 and ENTRYLO1 using
+	 * TMP as a scratch register.
+	 */
+#define PTE_RELOAD(ptr, tmp) \
+	ori	ptr, ptr, PTE_SIZE; \
+	xori	ptr, ptr, PTE_SIZE; \
+	PTE_L	tmp, PTE_SIZE(ptr); \
+	PTE_L	ptr, 0(ptr); \
+	PTE_SRL	tmp, tmp, 6; \
+	P_MTC0	tmp, CP0_ENTRYLO1; \
+	PTE_SRL	ptr, ptr, 6; \
+	P_MTC0	ptr, CP0_ENTRYLO0;
+
+#define DO_FAULT(write) \
+	.set	noat; \
+	SAVE_ALL; \
+	mfc0	a2, CP0_BADVADDR; \
+	KMODE; \
+	.set	at; \
+	move	a0, sp; \
+	jal	do_page_fault; \
+	 li	a1, write; \
+	j	ret_from_exception; \
+	 nop; \
+	.set	noat;
+
+	/* Check is PTE is present, if not then jump to LABEL.
+	 * PTR points to the page table where this PTE is located,
+	 * when the macro is done executing PTE will be restored
+	 * with it's original value.
+	 */
+#define PTE_PRESENT(pte, ptr, label) \
+	andi	pte, pte, (_PAGE_PRESENT | _PAGE_READ); \
+	xori	pte, pte, (_PAGE_PRESENT | _PAGE_READ); \
+	bnez	pte, label; \
+	 PTE_L	pte, (ptr);
+
+	/* Make PTE valid, store result in PTR. */
+#define PTE_MAKEVALID(pte, ptr) \
+	ori	pte, pte, (_PAGE_VALID | _PAGE_ACCESSED); \
+	PTE_S	pte, (ptr);
+
+	/* Check if PTE can be written to, if not branch to LABEL.
+	 * Regardless restore PTE with value from PTR when done.
+	 */
+#define PTE_WRITABLE(pte, ptr, label) \
+	andi	pte, pte, (_PAGE_PRESENT | _PAGE_WRITE); \
+	xori	pte, pte, (_PAGE_PRESENT | _PAGE_WRITE); \
+	bnez	pte, label; \
+	 PTE_L	pte, (ptr);
+
+	/* Make PTE writable, update software status bits as well,
+	 * then store at PTR.
+	 */
+#define PTE_MAKEWRITE(pte, ptr) \
+	ori	pte, pte, (_PAGE_ACCESSED | _PAGE_MODIFIED | \
+			   _PAGE_VALID | _PAGE_DIRTY); \
+	PTE_S	pte, (ptr);
+
 	__INIT
 
 #ifdef CONFIG_64BIT_PHYS_ADDR
@@ -67,16 +162,7 @@
 	.set	noat
 	LEAF(except_vec0_r4000)
 	.set	mips3
-#ifdef CONFIG_SMP
-	mfc0	k1, CP0_CONTEXT
-	la	k0, pgd_current
-	srl	k1, 23
-	sll	k1, 2				# log2(sizeof(pgd_t)
-	addu	k1, k0, k1
-	lw	k1, (k1)
-#else
-	lw	k1, pgd_current			# get pgd pointer
-#endif
+	GET_PGD(k0, k1)				# get pgd pointer
 	mfc0	k0, CP0_BADVADDR		# Get faulting address
 	srl	k0, k0, _PGDIR_SHIFT		# get pgd only bits
 
@@ -103,16 +189,14 @@
 	/* TLB refill, EXL == 0, R4600 version */
 	LEAF(except_vec0_r4600)
 	.set	mips3
+	GET_PGD(k0, k1)				# get pgd pointer
 	mfc0	k0, CP0_BADVADDR
 	srl	k0, k0, _PGDIR_SHIFT
-	lw	k1, pgd_current			# get pgd pointer
 	sll	k0, k0, 2			# log2(sizeof(pgd_t)
 	addu	k1, k1, k0
 	mfc0	k0, CP0_CONTEXT
 	lw	k1, (k1)
-#ifndef CONFIG_64BIT_PHYS_ADDR
-	srl	k0, k0, 1
-#endif
+	GET_PTE_OFF(k0)				# get pte offset
 	and	k0, k0, PTEP_INDX_MSK
 	addu	k1, k1, k0
 	PTE_L	k0, 0(k1)
@@ -148,9 +232,7 @@
 	addu	k1, k1, k0			# add in pgd offset
 	lw	k1, (k1)
 	mfc0	k0, CP0_CONTEXT			# get context reg
-#ifndef CONFIG_64BIT_PHYS_ADDR
-	srl	k0, k0, 1			# get pte offset
-#endif
+	GET_PTE_OFF(k0)				# get pte offset
 	and	k0, k0, PTEP_INDX_MSK
 	addu	k1, k1, k0			# add in offset
 	PTE_L	k0, 0(k1)			# get even pte
@@ -166,12 +248,41 @@
 	eret					# return from trap
 	END(except_vec0_nevada)
 
+	/* TLB refill, EXL == 0, SB1 with M3 errata handling version */
+	LEAF(except_vec0_sb1)
+#ifdef BCM1250_M3_WAR
+	mfc0	k0, CP0_BADVADDR
+	mfc0	k1, CP0_ENTRYHI
+	xor	k0, k1
+	srl	k0, k0, PAGE_SHIFT+1
+	bnez	k0, 1f
+#endif
+	GET_PGD(k0, k1)				# get pgd pointer
+	mfc0	k0, CP0_BADVADDR		# Get faulting address
+	srl	k0, k0, _PGDIR_SHIFT		# get pgd only bits
+	sll	k0, k0, 2
+	addu	k1, k1, k0			# add in pgd offset
+	mfc0	k0, CP0_CONTEXT			# get context reg
+	lw	k1, (k1)
+	GET_PTE_OFF(k0)				# get pte offset
+	and	k0, k0, PTEP_INDX_MSK
+	addu	k1, k1, k0			# add in offset
+	PTE_L	k0, 0(k1)			# get even pte
+	PTE_L	k1, PTE_SIZE(k1)		# get odd pte
+	PTE_SRL	k0, k0, 6			# convert to entrylo0
+	P_MTC0	k0, CP0_ENTRYLO0		# load it
+	PTE_SRL	k1, k1, 6			# convert to entrylo1
+	P_MTC0	k1, CP0_ENTRYLO1		# load it
+	tlbwr					# write random tlb entry
+1:	eret					# return from trap
+	END(except_vec0_sb1)
+
 	/* TLB refill, EXL == 0, R4[40]00/R5000 badvaddr hwbug version */
 	LEAF(except_vec0_r45k_bvahwbug)
 	.set	mips3
+	GET_PGD(k0, k1)				# get pgd pointer
 	mfc0	k0, CP0_BADVADDR
 	srl	k0, k0, _PGDIR_SHIFT
-	lw	k1, pgd_current			# get pgd pointer
 	sll	k0, k0, 2			# log2(sizeof(pgd_t)
 	addu	k1, k1, k0
 	mfc0	k0, CP0_CONTEXT
@@ -201,9 +312,9 @@
 	/* TLB refill, EXL == 0, R4000 MP badvaddr hwbug version */
 	LEAF(except_vec0_r4k_mphwbug)
 	.set	mips3
+	GET_PGD(k0, k1)				# get pgd pointer
 	mfc0	k0, CP0_BADVADDR
 	srl	k0, k0, _PGDIR_SHIFT
-	lw	k1, pgd_current			# get pgd pointer
 	sll	k0, k0, 2			# log2(sizeof(pgd_t)
 	addu	k1, k1, k0
 	mfc0	k0, CP0_CONTEXT
@@ -233,9 +344,9 @@
 	/* TLB refill, EXL == 0, R4000 UP 250MHZ entrylo[01] hwbug version */
 	LEAF(except_vec0_r4k_250MHZhwbug)
 	.set	mips3
+	GET_PGD(k0, k1)				# get pgd pointer
 	mfc0	k0, CP0_BADVADDR
 	srl	k0, k0, _PGDIR_SHIFT
-	lw	k1, pgd_current			# get pgd pointer
 	sll	k0, k0, 2			# log2(sizeof(pgd_t)
 	addu	k1, k1, k0
 	mfc0	k0, CP0_CONTEXT
@@ -264,9 +375,9 @@
 	/* TLB refill, EXL == 0, R4000 MP 250MHZ entrylo[01]+badvaddr bug version */
 	LEAF(except_vec0_r4k_MP250MHZhwbug)
 	.set	mips3
+	GET_PGD(k0, k1)				# get pgd pointer
 	mfc0	k0, CP0_BADVADDR
 	srl	k0, k0, _PGDIR_SHIFT
-	lw	k1, pgd_current			# get pgd pointer
 	sll	k0, k0, 2			# log2(sizeof(pgd_t)
 	addu	k1, k1, k0
 	mfc0	k0, CP0_CONTEXT
@@ -295,104 +406,8 @@
 	END(except_vec0_r4k_MP250MHZhwbug)
 #endif
 
-
-
 	__FINIT
 
-/*
- * ABUSE of CPP macros 101.
- *
- * After this macro runs, the pte faulted on is
- * in register PTE, a ptr into the table in which
- * the pte belongs is in PTR.
- */
-
-#ifdef CONFIG_SMP
-#define GET_PGD(scratch, ptr)        \
-	mfc0    ptr, CP0_CONTEXT;    \
-	la      scratch, pgd_current;\
-	srl     ptr, 23;             \
-	sll     ptr, 2;              \
-	addu    ptr, scratch, ptr;   \
-	lw      ptr, (ptr);
-#else
-#define GET_PGD(scratch, ptr)    \
-	lw	ptr, pgd_current;
-#endif
-
-#define LOAD_PTE(pte, ptr) \
-	GET_PGD(pte, ptr)          \
-	mfc0	pte, CP0_BADVADDR; \
-	srl	pte, pte, _PGDIR_SHIFT; \
-	sll	pte, pte, 2; \
-	addu	ptr, ptr, pte; \
-	mfc0	pte, CP0_BADVADDR; \
-	lw	ptr, (ptr); \
-	srl	pte, pte, PTE_INDX_SHIFT; \
-	and	pte, pte, PTE_INDX_MSK; \
-	addu	ptr, ptr, pte; \
-	PTE_L	pte, (ptr);
-
-	/* This places the even/odd pte pair in the page
-	 * table at PTR into ENTRYLO0 and ENTRYLO1 using
-	 * TMP as a scratch register.
-	 */
-#define PTE_RELOAD(ptr, tmp) \
-	ori	ptr, ptr, PTE_SIZE; \
-	xori	ptr, ptr, PTE_SIZE; \
-	PTE_L	tmp, PTE_SIZE(ptr); \
-	PTE_L	ptr, 0(ptr); \
-	PTE_SRL	tmp, tmp, 6; \
-	P_MTC0	tmp, CP0_ENTRYLO1; \
-	PTE_SRL	ptr, ptr, 6; \
-	P_MTC0	ptr, CP0_ENTRYLO0;
-
-#define DO_FAULT(write) \
-	.set	noat; \
-	SAVE_ALL; \
-	mfc0	a2, CP0_BADVADDR; \
-	KMODE; \
-	.set	at; \
-	move	a0, sp; \
-	jal	do_page_fault; \
-	 li	a1, write; \
-	j	ret_from_exception; \
-	 nop; \
-	.set	noat;
-
-	/* Check is PTE is present, if not then jump to LABEL.
-	 * PTR points to the page table where this PTE is located,
-	 * when the macro is done executing PTE will be restored
-	 * with it's original value.
-	 */
-#define PTE_PRESENT(pte, ptr, label) \
-	andi	pte, pte, (_PAGE_PRESENT | _PAGE_READ); \
-	xori	pte, pte, (_PAGE_PRESENT | _PAGE_READ); \
-	bnez	pte, label; \
-	 PTE_L	pte, (ptr);
-
-	/* Make PTE valid, store result in PTR. */
-#define PTE_MAKEVALID(pte, ptr) \
-	ori	pte, pte, (_PAGE_VALID | _PAGE_ACCESSED); \
-	PTE_S	pte, (ptr);
-
-	/* Check if PTE can be written to, if not branch to LABEL.
-	 * Regardless restore PTE with value from PTR when done.
-	 */
-#define PTE_WRITABLE(pte, ptr, label) \
-	andi	pte, pte, (_PAGE_PRESENT | _PAGE_WRITE); \
-	xori	pte, pte, (_PAGE_PRESENT | _PAGE_WRITE); \
-	bnez	pte, label; \
-	 PTE_L	pte, (ptr);
-
-	/* Make PTE writable, update software status bits as well,
-	 * then store at PTR.
-	 */
-#define PTE_MAKEWRITE(pte, ptr) \
-	ori	pte, pte, (_PAGE_ACCESSED | _PAGE_MODIFIED | \
-			   _PAGE_VALID | _PAGE_DIRTY); \
-	PTE_S	pte, (ptr);
-
 	.set	noreorder
 
 /*
diff -urNd -urNd linux-2.4.20/arch/mips/mm/tlb-r3k.c linux-2.4.20-mipscvs-20050106/arch/mips/mm/tlb-r3k.c
--- linux-2.4.20/arch/mips/mm/tlb-r3k.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/tlb-r3k.c	2003-02-06 16:53:43.000000000 -0600
@@ -7,6 +7,8 @@
  * Tx39XX R4k style caches added. HK
  * Copyright (C) 1998, 1999, 2000 Harald Koerfgen
  * Copyright (C) 1998 Gleb Raiko & Vladimir Roganov
+ * Copyright (C) 2002  Ralf Baechle
+ * Copyright (C) 2002  Maciej W. Rozycki
  */
 #include <linux/config.h>
 #include <linux/init.h>
@@ -23,11 +25,19 @@
 #include <asm/bootinfo.h>
 #include <asm/cpu.h>
 
+#undef DEBUG_TLB
+
 extern char except_vec0_r2300;
 
-#undef DEBUG_TLB
+/* CP0 hazard avoidance. */
+#define BARRIER				\
+	__asm__ __volatile__(		\
+		".set	push\n\t"	\
+		".set	noreorder\n\t"	\
+		"nop\n\t"		\
+		".set	pop\n\t")
 
-int r3k_have_wired_reg = 0;	/* should be in mips_cpu? */
+int r3k_have_wired_reg;		/* should be in mips_cpu? */
 
 /* TLB operations. */
 void local_flush_tlb_all(void)
@@ -40,117 +50,110 @@
 	printk("[tlball]");
 #endif
 
-	save_and_cli(flags);
-	old_ctx = (get_entryhi() & 0xfc0);
-	write_32bit_cp0_register(CP0_ENTRYLO0, 0);
-#ifdef CONFIG_CPU_TX39XX
-	entry = r3k_have_wired_reg ? get_wired() : 8;
-#else
-	entry = 8;
-#endif
+	local_irq_save(flags);
+	old_ctx = read_c0_entryhi() & ASID_MASK;
+	write_c0_entrylo0(0);
+	entry = r3k_have_wired_reg ? read_c0_wired() : 8;
 	for (; entry < mips_cpu.tlbsize; entry++) {
-		write_32bit_cp0_register(CP0_INDEX, entry << 8);
-		write_32bit_cp0_register(CP0_ENTRYHI, ((entry | 0x80000) << 12));
-		__asm__ __volatile__("tlbwi");
+		write_c0_index(entry << 8);
+		write_c0_entryhi((entry | 0x80000) << 12);
+		BARRIER;
+		tlb_write_indexed();
 	}
-	set_entryhi(old_ctx);
-	restore_flags(flags);
+	write_c0_entryhi(old_ctx);
+	local_irq_restore(flags);
 }
 
 void local_flush_tlb_mm(struct mm_struct *mm)
 {
-	if (mm->context != 0) {
-		unsigned long flags;
+	int cpu = smp_processor_id();
 
+	if (cpu_context(cpu, mm) != 0) {
 #ifdef DEBUG_TLB
-		printk("[tlbmm<%lu>]", (unsigned long) mm->context);
+		printk("[tlbmm<%lu>]", (unsigned long)cpu_context(cpu, mm));
 #endif
-		save_and_cli(flags);
-		get_new_mmu_context(mm, smp_processor_id());
-		if (mm == current->active_mm)
-			set_entryhi(mm->context & 0xfc0);
-		restore_flags(flags);
+		drop_mmu_context(mm, cpu);
 	}
 }
 
 void local_flush_tlb_range(struct mm_struct *mm, unsigned long start,
-                     unsigned long end)
+			   unsigned long end)
 {
-	if (mm->context != 0) {
+	int cpu = smp_processor_id();
+
+	if (cpu_context(cpu, mm) != 0) {
 		unsigned long flags;
 		int size;
 
 #ifdef DEBUG_TLB
 		printk("[tlbrange<%lu,0x%08lx,0x%08lx>]",
-			(mm->context & 0xfc0), start, end);
+			cpu_asid(cpu, mm), start, end);
 #endif
-		save_and_cli(flags);
+		local_irq_save(flags);
 		size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
 		if (size <= mips_cpu.tlbsize) {
-			int oldpid = (get_entryhi() & 0xfc0);
-			int newpid = (mm->context & 0xfc0);
+			int oldpid = read_c0_entryhi() & ASID_MASK;
+			int newpid = cpu_asid(cpu, mm);
 
 			start &= PAGE_MASK;
-			end += (PAGE_SIZE - 1);
+			end += PAGE_SIZE - 1;
 			end &= PAGE_MASK;
 			while (start < end) {
 				int idx;
 
-				set_entryhi(start | newpid);
-				start += PAGE_SIZE;
+				write_c0_entryhi(start | newpid);
+				start += PAGE_SIZE;	/* BARRIER */
 				tlb_probe();
-				idx = get_index();
-				set_entrylo0(0);
-				set_entryhi(KSEG0);
-				if (idx < 0)
+				idx = read_c0_index();
+				write_c0_entrylo0(0);
+				write_c0_entryhi(KSEG0);
+				if (idx < 0)		/* BARRIER */
 					continue;
 				tlb_write_indexed();
 			}
-			set_entryhi(oldpid);
+			write_c0_entryhi(oldpid);
 		} else {
-			get_new_mmu_context(mm, smp_processor_id());
-			if (mm == current->active_mm)
-				set_entryhi(mm->context & 0xfc0);
+			drop_mmu_context(mm, cpu);
 		}
-		restore_flags(flags);
+		local_irq_restore(flags);
 	}
 }
 
 void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
 {
-	if (!vma || vma->vm_mm->context != 0) {
+	int cpu = smp_processor_id();
+
+	if (!vma || cpu_context(cpu, vma->vm_mm) != 0) {
 		unsigned long flags;
 		int oldpid, newpid, idx;
 
 #ifdef DEBUG_TLB
-		printk("[tlbpage<%lu,0x%08lx>]", vma->vm_mm->context, page);
+		printk("[tlbpage<%lu,0x%08lx>]", cpu_context(cpu, vma->vm_mm), page);
 #endif
-		newpid = (vma->vm_mm->context & 0xfc0);
+		newpid = cpu_asid(cpu, vma->vm_mm);
 		page &= PAGE_MASK;
-		save_and_cli(flags);
-		oldpid = (get_entryhi() & 0xfc0);
-		set_entryhi(page | newpid);
+		local_irq_save(flags);
+		oldpid = read_c0_entryhi() & ASID_MASK;
+		write_c0_entryhi(page | newpid);
+		BARRIER;
 		tlb_probe();
-		idx = get_index();
-		set_entrylo0(0);
-		set_entryhi(KSEG0);
-		if (idx < 0)
+		idx = read_c0_index();
+		write_c0_entrylo0(0);
+		write_c0_entryhi(KSEG0);
+		if (idx < 0)				/* BARRIER */
 			goto finish;
 		tlb_write_indexed();
 
 finish:
-		set_entryhi(oldpid);
-		restore_flags(flags);
+		write_c0_entryhi(oldpid);
+		local_irq_restore(flags);
 	}
 }
 
-void update_mmu_cache(struct vm_area_struct * vma, unsigned long address,
-                      pte_t pte)
+void update_mmu_cache(struct vm_area_struct *vma, unsigned long address,
+		      pte_t pte)
 {
 	unsigned long flags;
-	pgd_t *pgdp;
-	pmd_t *pmdp;
-	pte_t *ptep;
 	int idx, pid;
 
 	/*
@@ -159,92 +162,86 @@
 	if (current->active_mm != vma->vm_mm)
 		return;
 
-	pid = get_entryhi() & 0xfc0;
+	pid = read_c0_entryhi() & ASID_MASK;
 
 #ifdef DEBUG_TLB
-	if ((pid != (vma->vm_mm->context & 0xfc0)) || (vma->vm_mm->context == 0)) {
+	if ((pid != cpu_asid(cpu, vma->vm_mm)) || (cpu_context(cpu, vma->vm_mm) == 0)) {
 		printk("update_mmu_cache: Wheee, bogus tlbpid mmpid=%lu tlbpid=%d\n",
-		       (vma->vm_mm->context & 0xfc0), pid);
+		       (cpu_context(cpu, vma->vm_mm)), pid);
 	}
 #endif
 
-	save_and_cli(flags);
+	local_irq_save(flags);
 	address &= PAGE_MASK;
-	set_entryhi(address | (pid));
-	pgdp = pgd_offset(vma->vm_mm, address);
+	write_c0_entryhi(address | pid);
+	BARRIER;
 	tlb_probe();
-	pmdp = pmd_offset(pgdp, address);
-	idx = get_index();
-	ptep = pte_offset(pmdp, address);
-	set_entrylo0(pte_val(*ptep));
-	set_entryhi(address | (pid));
-	if (idx < 0) {
+	idx = read_c0_index();
+	write_c0_entrylo0(pte_val(pte));
+	write_c0_entryhi(address | pid);
+	if (idx < 0) {					/* BARRIER */
 		tlb_write_random();
-#if 0
-		printk("[MISS]");
-#endif
 	} else {
 		tlb_write_indexed();
-#if 0
-		printk("[HIT]");
-#endif
 	}
-	set_entryhi(pid);
-	restore_flags(flags);
+	write_c0_entryhi(pid);
+	local_irq_restore(flags);
 }
 
 void __init add_wired_entry(unsigned long entrylo0, unsigned long entrylo1,
-                     unsigned long entryhi, unsigned long pagemask)
+			    unsigned long entryhi, unsigned long pagemask)
 {
 	unsigned long flags;
 	unsigned long old_ctx;
 	static unsigned long wired = 0;
 
-#ifdef CONFIG_CPU_TX39XX
-	if (r3k_have_wired_reg) {
+	if (r3k_have_wired_reg) {			/* TX39XX */
 		unsigned long old_pagemask;
 		unsigned long w;
 
 #ifdef DEBUG_TLB
-		printk("[tlbwired]");
-		printk("ently lo0 %8x, hi %8x\n, pagemask %8x\n",
+		printk("[tlbwired<entry lo0 %8x, hi %8x\n, pagemask %8x>]\n",
 		       entrylo0, entryhi, pagemask);
 #endif
-		save_and_cli(flags);
+
+		local_irq_save(flags);
 		/* Save old context and create impossible VPN2 value */
-		old_ctx = (get_entryhi() & 0xff);
-		old_pagemask = get_pagemask();
-		w = get_wired();
-		set_wired (w + 1);
-		if (get_wired() != w + 1) {
+		old_ctx = read_c0_entryhi() & ASID_MASK;
+		old_pagemask = read_c0_pagemask();
+		w = read_c0_wired();
+		write_c0_wired(w + 1);
+		if (read_c0_wired() != w + 1) {
 			printk("[tlbwired] No WIRED reg?\n");
 			return;
 		}
-		set_index (w << 8);
-		set_pagemask (pagemask);
-		set_entryhi(entryhi);
-		set_entrylo0(entrylo0);
+		write_c0_index(w << 8);
+		write_c0_pagemask(pagemask);
+		write_c0_entryhi(entryhi);
+		write_c0_entrylo0(entrylo0);
+		BARRIER;
 		tlb_write_indexed();
 
-		set_entryhi(old_ctx);
-		set_pagemask (old_pagemask);
+		write_c0_entryhi(old_ctx);
+		write_c0_pagemask(old_pagemask);
 		local_flush_tlb_all();
-		restore_flags(flags);
-		return;
-	}
+		local_irq_restore(flags);
+
+	} else if (wired < 8) {
+#ifdef DEBUG_TLB
+		printk("[tlbwired<entry lo0 %8x, hi %8x\n>]\n",
+		       entrylo0, entryhi);
 #endif
 
-	if (wired < 8) {
-		__save_and_cli(flags);
-		old_ctx = get_entryhi() & 0xfc0;
-		set_entrylo0(entrylo0);
-		set_entryhi(entryhi);
-		set_index(wired);
-		wired++;
+		local_irq_save(flags);
+		old_ctx = read_c0_entryhi() & ASID_MASK;
+		write_c0_entrylo0(entrylo0);
+		write_c0_entryhi(entryhi);
+		write_c0_index(wired);
+		wired++;				/* BARRIER */
 		tlb_write_indexed();
-		set_entryhi(old_ctx);
-	        local_flush_tlb_all();
-		__restore_flags(flags);
+		write_c0_entryhi(old_ctx);
+		local_flush_tlb_all();
+		local_irq_restore(flags);
 	}
 }
 
diff -urNd -urNd linux-2.4.20/arch/mips/mm/tlb-r4k.c linux-2.4.20-mipscvs-20050106/arch/mips/mm/tlb-r4k.c
--- linux-2.4.20/arch/mips/mm/tlb-r4k.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/tlb-r4k.c	2003-02-06 16:53:43.000000000 -0600
@@ -44,14 +44,14 @@
 	printk("[tlball]");
 #endif
 
-	__save_and_cli(flags);
+	local_irq_save(flags);
 	/* Save old context and create impossible VPN2 value */
-	old_ctx = (get_entryhi() & 0xff);
-	set_entrylo0(0);
-	set_entrylo1(0);
+	old_ctx = (read_c0_entryhi() & 0xff);
+	write_c0_entrylo0(0);
+	write_c0_entrylo1(0);
 	BARRIER;
 
-	entry = get_wired();
+	entry = read_c0_wired();
 
 	/* Blast 'em all away. */
 	while (entry < mips_cpu.tlbsize) {
@@ -59,51 +59,49 @@
 		 * Make sure all entries differ.  If they're not different
 		 * MIPS32 will take revenge ...
 		 */
-		set_entryhi(KSEG0 + entry*0x2000);
-		set_index(entry);
+		write_c0_entryhi(KSEG0 + entry*0x2000);
+		write_c0_index(entry);
 		BARRIER;
 		tlb_write_indexed();
 		BARRIER;
 		entry++;
 	}
 	BARRIER;
-	set_entryhi(old_ctx);
-	__restore_flags(flags);
+	write_c0_entryhi(old_ctx);
+	local_irq_restore(flags);
 }
 
 void local_flush_tlb_mm(struct mm_struct *mm)
 {
-	if (mm->context != 0) {
-		unsigned long flags;
+	int cpu = smp_processor_id();
 
+	if (cpu_context(cpu, mm) != 0) {
 #ifdef DEBUG_TLB
-		printk("[tlbmm<%d>]", mm->context);
+		printk("[tlbmm<%d>]", cpu_context(cpu, mm));
 #endif
-		__save_and_cli(flags);
-		get_new_mmu_context(mm, smp_processor_id());
-		if (mm == current->active_mm)
-			set_entryhi(mm->context & 0xff);
-		__restore_flags(flags);
+		drop_mmu_context(mm,cpu);
 	}
 }
 
 void local_flush_tlb_range(struct mm_struct *mm, unsigned long start,
 				unsigned long end)
 {
-	if (mm->context != 0) {
+	int cpu = smp_processor_id();
+
+	if (cpu_context(cpu, mm) != 0) {
 		unsigned long flags;
 		int size;
 
 #ifdef DEBUG_TLB
-		printk("[tlbrange<%02x,%08lx,%08lx>]", (mm->context & 0xff),
-		       start, end);
+		printk("[tlbrange<%02x,%08lx,%08lx>]",
+		       cpu_asid(cpu, mm), start, end);
 #endif
-		__save_and_cli(flags);
+		local_irq_save(flags);
 		size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
 		size = (size + 1) >> 1;
 		if (size <= mips_cpu.tlbsize/2) {
-			int oldpid = (get_entryhi() & 0xff);
-			int newpid = (mm->context & 0xff);
+			int oldpid = read_c0_entryhi() & ASID_MASK;
+			int newpid = cpu_asid(cpu, mm);
 
 			start &= (PAGE_MASK << 1);
 			end += ((PAGE_SIZE << 1) - 1);
@@ -111,63 +109,64 @@
 			while (start < end) {
 				int idx;
 
-				set_entryhi(start | newpid);
+				write_c0_entryhi(start | newpid);
 				start += (PAGE_SIZE << 1);
 				BARRIER;
 				tlb_probe();
 				BARRIER;
-				idx = get_index();
-				set_entrylo0(0);
-				set_entrylo1(0);
+				idx = read_c0_index();
+				write_c0_entrylo0(0);
+				write_c0_entrylo1(0);
 				if (idx < 0)
 					continue;
 				/* Make sure all entries differ. */
-				set_entryhi(KSEG0 + idx*0x2000);
+				write_c0_entryhi(KSEG0 + idx*0x2000);
 				BARRIER;
 				tlb_write_indexed();
 				BARRIER;
 			}
-			set_entryhi(oldpid);
+			write_c0_entryhi(oldpid);
 		} else {
-			get_new_mmu_context(mm, smp_processor_id());
-			if (mm == current->active_mm)
-				set_entryhi(mm->context & 0xff);
+			drop_mmu_context(mm, cpu);
 		}
-		__restore_flags(flags);
+		local_irq_restore(flags);
 	}
 }
 
 void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
 {
-	if (!vma || vma->vm_mm->context != 0) {
+	int cpu = smp_processor_id();
+
+	if (!vma || cpu_context(cpu, vma->vm_mm) != 0) {
 		unsigned long flags;
 		int oldpid, newpid, idx;
 
 #ifdef DEBUG_TLB
-		printk("[tlbpage<%d,%08lx>]", vma->vm_mm->context, page);
+		printk("[tlbpage<%d,%08lx>]", cpu_context(cpu, vma->vm_mm),
+		       page);
 #endif
-		newpid = (vma->vm_mm->context & 0xff);
+		newpid = cpu_asid(cpu, vma->vm_mm);
 		page &= (PAGE_MASK << 1);
-		__save_and_cli(flags);
-		oldpid = (get_entryhi() & 0xff);
-		set_entryhi(page | newpid);
+		local_irq_save(flags);
+		oldpid = (read_c0_entryhi() & 0xff);
+		write_c0_entryhi(page | newpid);
 		BARRIER;
 		tlb_probe();
 		BARRIER;
-		idx = get_index();
-		set_entrylo0(0);
-		set_entrylo1(0);
+		idx = read_c0_index();
+		write_c0_entrylo0(0);
+		write_c0_entrylo1(0);
 		if(idx < 0)
 			goto finish;
 		/* Make sure all entries differ. */
-		set_entryhi(KSEG0+idx*0x2000);
+		write_c0_entryhi(KSEG0+idx*0x2000);
 		BARRIER;
 		tlb_write_indexed();
 
 	finish:
 		BARRIER;
-		set_entryhi(oldpid);
-		__restore_flags(flags);
+		write_c0_entryhi(oldpid);
+		local_irq_restore(flags);
 	}
 }
 
@@ -190,29 +189,30 @@
 	if (current->active_mm != vma->vm_mm)
 		return;
 
-	pid = get_entryhi() & 0xff;
+	pid = read_c0_entryhi() & ASID_MASK;
 
 #ifdef DEBUG_TLB
-	if((pid != (vma->vm_mm->context & 0xff)) || (vma->vm_mm->context == 0)) {
+	if ((pid != cpu_asid(cpu, vma->vm_mm)) ||
+	    (cpu_context(vma->vm_mm) == 0)) {
 		printk("update_mmu_cache: Wheee, bogus tlbpid mmpid=%d tlbpid=%d\n",
-		       (int) (vma->vm_mm->context & 0xff), pid);
+		       (int) (cpu_asid(cpu, vma->vm_mm)), pid);
 	}
 #endif
 
-	__save_and_cli(flags);
+	local_irq_save(flags);
 	address &= (PAGE_MASK << 1);
-	set_entryhi(address | (pid));
+	write_c0_entryhi(address | pid);
 	pgdp = pgd_offset(vma->vm_mm, address);
 	BARRIER;
 	tlb_probe();
 	BARRIER;
 	pmdp = pmd_offset(pgdp, address);
-	idx = get_index();
+	idx = read_c0_index();
 	ptep = pte_offset(pmdp, address);
 	BARRIER;
-	set_entrylo0(pte_val(*ptep++) >> 6);
-	set_entrylo1(pte_val(*ptep) >> 6);
-	set_entryhi(address | (pid));
+	write_c0_entrylo0(pte_val(*ptep++) >> 6);
+	write_c0_entrylo1(pte_val(*ptep) >> 6);
+	write_c0_entryhi(address | pid);
 	BARRIER;
 	if (idx < 0) {
 		tlb_write_random();
@@ -220,9 +220,9 @@
 		tlb_write_indexed();
 	}
 	BARRIER;
-	set_entryhi(pid);
+	write_c0_entryhi(pid);
 	BARRIER;
-	__restore_flags(flags);
+	local_irq_restore(flags);
 }
 
 #if 0
@@ -235,23 +235,23 @@
 	pte_t *ptep;
 	int idx;
 
-	__save_and_cli(flags);
+	local_irq_save(flags);
 	address &= (PAGE_MASK << 1);
-	set_entryhi(address | (get_entryhi() & 0xff));
+	write_c0_entryhi(address | (read_c0_entryhi() & 0xff));
 	pgdp = pgd_offset(vma->vm_mm, address);
 	tlb_probe();
 	pmdp = pmd_offset(pgdp, address);
-	idx = get_index();
+	idx = read_c0_index();
 	ptep = pte_offset(pmdp, address);
-	set_entrylo0(pte_val(*ptep++) >> 6);
-	set_entrylo1(pte_val(*ptep) >> 6);
+	write_c0_entrylo0(pte_val(*ptep++) >> 6);
+	write_c0_entrylo1(pte_val(*ptep) >> 6);
 	BARRIER;
 	if (idx < 0)
 		tlb_write_random();
 	else
 		tlb_write_indexed();
 	BARRIER;
-	__restore_flags(flags);
+	local_irq_restore(flags);
 }
 #endif
 
@@ -263,27 +263,27 @@
 	unsigned long old_pagemask;
 	unsigned long old_ctx;
 
-	__save_and_cli(flags);
+	local_irq_save(flags);
 	/* Save old context and create impossible VPN2 value */
-	old_ctx = get_entryhi() & 0xff;
-	old_pagemask = get_pagemask();
-	wired = get_wired();
-	set_wired(wired + 1);
-	set_index(wired);
+	old_ctx = read_c0_entryhi() & 0xff;
+	old_pagemask = read_c0_pagemask();
+	wired = read_c0_wired();
+	write_c0_wired(wired + 1);
+	write_c0_index(wired);
 	BARRIER;
-	set_pagemask(pagemask);
-	set_entryhi(entryhi);
-	set_entrylo0(entrylo0);
-	set_entrylo1(entrylo1);
+	write_c0_pagemask(pagemask);
+	write_c0_entryhi(entryhi);
+	write_c0_entrylo0(entrylo0);
+	write_c0_entrylo1(entrylo1);
 	BARRIER;
 	tlb_write_indexed();
 	BARRIER;
 
-	set_entryhi(old_ctx);
+	write_c0_entryhi(old_ctx);
 	BARRIER;
-	set_pagemask(old_pagemask);
+	write_c0_pagemask(old_pagemask);
 	local_flush_tlb_all();
-	__restore_flags(flags);
+	local_irq_restore(flags);
 }
 
 /*
@@ -303,32 +303,32 @@
 	unsigned long old_pagemask;
 	unsigned long old_ctx;
 
-	__save_and_cli(flags);
+	local_irq_save(flags);
 	/* Save old context and create impossible VPN2 value */
-	old_ctx = get_entryhi() & 0xff;
-	old_pagemask = get_pagemask();
-	wired = get_wired();
+	old_ctx = read_c0_entryhi() & 0xff;
+	old_pagemask = read_c0_pagemask();
+	wired = read_c0_wired();
 	if (--temp_tlb_entry < wired) {
 		printk(KERN_WARNING "No TLB space left for add_temporary_entry\n");
 		ret = -ENOSPC;
 		goto out;
 	}
 
-	set_index(temp_tlb_entry);
+	write_c0_index(temp_tlb_entry);
 	BARRIER;
-	set_pagemask(pagemask);
-	set_entryhi(entryhi);
-	set_entrylo0(entrylo0);
-	set_entrylo1(entrylo1);
+	write_c0_pagemask(pagemask);
+	write_c0_entryhi(entryhi);
+	write_c0_entrylo0(entrylo0);
+	write_c0_entrylo1(entrylo1);
 	BARRIER;
 	tlb_write_indexed();
 	BARRIER;
 
-	set_entryhi(old_ctx);
+	write_c0_entryhi(old_ctx);
 	BARRIER;
-	set_pagemask(old_pagemask);
+	write_c0_pagemask(old_pagemask);
 out:
-	__restore_flags(flags);
+	local_irq_restore(flags);
 	return ret;
 }
 
@@ -336,7 +336,7 @@
 {
 	unsigned int prid, config1;
 
-	prid = read_32bit_cp0_register(CP0_PRID) & 0xff00;
+	prid = read_c0_prid() & 0xff00;
 	if (prid == PRID_IMP_RM7000 || !(config & (1 << 31)))
 		/*
 		 * Not a MIPS32 complianant CPU.  Config 1 register not
@@ -345,16 +345,18 @@
 		 */
 		return;
 
-	config1 = read_mips32_cp0_config1();
+#if defined(CONFIG_CPU_MIPS32) || defined (CONFIG_CPU_MIPS64)
+	config1 = read_c0_config1();
 	if (!((config >> 7) & 3))
 		panic("No MMU present");
 	else
 		mips_cpu.tlbsize = ((config1 >> 25) & 0x3f) + 1;
+#endif
 }
 
 void __init r4k_tlb_init(void)
 {
-	u32 config = read_32bit_cp0_register(CP0_CONFIG);
+	u32 config = read_c0_config();
 
 	/*
 	 * You should never change this register:
@@ -364,8 +366,8 @@
 	 *     be set for 4kb pages.
 	 */
 	probe_tlb(config);
-	set_pagemask(PM_4K);
-	write_32bit_cp0_register(CP0_WIRED, 0);
+	write_c0_pagemask(PM_4K);
+	write_c0_wired(0);
 	temp_tlb_entry = mips_cpu.tlbsize - 1;
 	local_flush_tlb_all();
 
diff -urNd -urNd linux-2.4.20/arch/mips/mm/tlb-sb1.c linux-2.4.20-mipscvs-20050106/arch/mips/mm/tlb-sb1.c
--- linux-2.4.20/arch/mips/mm/tlb-sb1.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/tlb-sb1.c	2003-02-06 19:06:34.000000000 -0600
@@ -22,7 +22,7 @@
 #include <asm/bootinfo.h>
 #include <asm/cpu.h>
 
-extern char except_vec0_r4000[];
+extern char except_vec0_sb1[];
 
 /* Dump the current entry* and pagemask registers */
 static inline void dump_cur_tlb_regs(void)
@@ -35,7 +35,6 @@
 		".set noreorder        \n"
 		".set mips64           \n"
 		".set noat             \n"
-		"     tlbr             \n"
 		"     dmfc0  $1, $10   \n"
 		"     dsrl32 %0, $1, 0 \n"
 		"     sll    %1, $1, 0 \n"
@@ -47,13 +46,11 @@
 		"     sll    %5, $1, 0 \n"
 		"     mfc0   %6, $5    \n"
 		".set pop              \n"
-		: "=r" (entryhihi),
-		"=r" (entryhilo),
-		"=r" (entrylo0hi),
-		"=r" (entrylo0lo),
-		"=r" (entrylo1hi),
-		"=r" (entrylo1lo),
-		"=r" (pagemask));
+		: "=r" (entryhihi), "=r" (entryhilo),
+		  "=r" (entrylo0hi), "=r" (entrylo0lo),
+		  "=r" (entrylo1hi), "=r" (entrylo1lo),
+		  "=r" (pagemask));
+
 	printk("%08X%08X %08X%08X %08X%08X %08X",
 	       entryhihi, entryhilo,
 	       entrylo0hi, entrylo0lo,
@@ -66,29 +63,25 @@
 	unsigned long old_ctx;
 	unsigned long flags;
 	int entry;
-	__save_and_cli(flags);
-	old_ctx = get_entryhi();
+	local_irq_save(flags);
+	old_ctx = read_c0_entryhi();
 	printk("Current TLB registers state:\n"
 	       "      EntryHi       EntryLo0          EntryLo1     PageMask  Index\n"
 	       "--------------------------------------------------------------------\n");
 	dump_cur_tlb_regs();
-	printk(" %08X\n", read_32bit_cp0_register(CP0_INDEX));
+	printk(" %08X\n", read_c0_index());
 	printk("\n\nFull TLB Dump:\n"
 	       "Idx      EntryHi       EntryLo0          EntryLo1     PageMask\n"
 	       "--------------------------------------------------------------\n");
 	for (entry = 0; entry < mips_cpu.tlbsize; entry++) {
-		set_index(entry);
+		write_c0_index(entry);
 		printk("\n%02i ", entry);
-		__asm__ __volatile__ (
-			".set push             \n"
-			".set mips64           \n"
-			"     tlbr             \n"
-			".set pop              \n");
+		tlb_read();
 		dump_cur_tlb_regs();
 	}
 	printk("\n");
-	set_entryhi(old_ctx);
-	__restore_flags(flags);
+	write_c0_entryhi(old_ctx);
+	local_irq_restore(flags);
 }
 
 void local_flush_tlb_all(void)
@@ -97,18 +90,18 @@
 	unsigned long old_ctx;
 	int entry;
 
-	__save_and_cli(flags);
+	local_irq_save(flags);
 	/* Save old context and create impossible VPN2 value */
-	old_ctx = (get_entryhi() & 0xff);
-	set_entrylo0(0);
-	set_entrylo1(0);
+	old_ctx = read_c0_entryhi() & ASID_MASK;
+	write_c0_entrylo0(0);
+	write_c0_entrylo1(0);
 	for (entry = 0; entry < mips_cpu.tlbsize; entry++) {
-		set_entryhi(KSEG0 + (PAGE_SIZE << 1) * entry);
-		set_index(entry);
+		write_c0_entryhi(KSEG0 + (PAGE_SIZE << 1) * entry);
+		write_c0_index(entry);
 		tlb_write_indexed();
 	}
-	set_entryhi(old_ctx);
-	__restore_flags(flags);
+	write_c0_entryhi(old_ctx);
+	local_irq_restore(flags);
 }
 
 
@@ -126,15 +119,15 @@
 
 	long inc = 1<<24;  /* 16MB */
 	/* Save old context and create impossible VPN2 value */
-	set_entrylo0(0);
-	set_entrylo1(0);
+	write_c0_entrylo0(0);
+	write_c0_entrylo1(0);
 	for (entry = 0; entry < mips_cpu.tlbsize; entry++) {
 		do {
 			addr += inc;
-			set_entryhi(addr);
+			write_c0_entryhi(addr);
 			tlb_probe();
-		} while ((int)(get_index()) >= 0);
-		set_index(entry);
+		} while ((int)(read_c0_index()) >= 0);
+		write_c0_index(entry);
 		tlb_write_indexed();
 	}
 	/* Now that we know we're safe from collisions, we can safely flush
@@ -149,41 +142,39 @@
 	unsigned long flags;
 	int cpu;
 
-	__save_and_cli(flags);
+	local_irq_save(flags);
 	cpu = smp_processor_id();
-	if(CPU_CONTEXT(cpu, mm) != 0) {
+	if (cpu_context(cpu, mm) != 0) {
 		int size;
 		size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
 		size = (size + 1) >> 1;
-		if(size <= (mips_cpu.tlbsize/2)) {
-			int oldpid = (get_entryhi() & 0xff);
-			int newpid = (CPU_CONTEXT(cpu, mm) & 0xff);
+		if (size <= (mips_cpu.tlbsize/2)) {
+			int oldpid = read_c0_entryhi() & ASID_MASK;
+			int newpid = cpu_asid(cpu, mm);
 
 			start &= (PAGE_MASK << 1);
 			end += ((PAGE_SIZE << 1) - 1);
 			end &= (PAGE_MASK << 1);
-			while(start < end) {
+			while (start < end) {
 				int idx;
 
-				set_entryhi(start | newpid);
+				write_c0_entryhi(start | newpid);
 				start += (PAGE_SIZE << 1);
 				tlb_probe();
-				idx = get_index();
-				set_entrylo0(0);
-				set_entrylo1(0);
-				set_entryhi(KSEG0 + (idx << (PAGE_SHIFT+1)));
-				if(idx < 0)
+				idx = read_c0_index();
+				write_c0_entrylo0(0);
+				write_c0_entrylo1(0);
+				write_c0_entryhi(KSEG0 + (idx << (PAGE_SHIFT+1)));
+				if (idx < 0)
 					continue;
 				tlb_write_indexed();
 			}
-			set_entryhi(oldpid);
+			write_c0_entryhi(oldpid);
 		} else {
-			get_new_mmu_context(mm, cpu);
-			if (mm == current->active_mm)
-				set_entryhi(CPU_CONTEXT(cpu, mm) & 0xff);
+			drop_mmu_context(mm, cpu);
 		}
 	}
-	__restore_flags(flags);
+	local_irq_restore(flags);
 }
 
 void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
@@ -192,36 +183,33 @@
 
 #ifdef CONFIG_SMP
 	/*
-	 * This variable is eliminated from CPU_CONTEXT() if SMP isn't defined,
+	 * This variable is eliminated from cpu_context() if SMP isn't defined,
 	 * so conditional it to get rid of silly "unused variable" compiler
 	 * complaints
 	 */
 	int cpu = smp_processor_id();
 #endif
 
-	__save_and_cli(flags);
-	if (CPU_CONTEXT(cpu, vma->vm_mm) != 0) {
+	local_irq_save(flags);
+	if (cpu_context(cpu, vma->vm_mm) != 0) {
 		int oldpid, newpid, idx;
-#ifdef DEBUG_TLB
-		printk("[tlbpage<%d,%08lx>]", CPU_CONTEXT(cpu, vma->vm_mm), page);
-#endif
-		newpid = (CPU_CONTEXT(cpu, vma->vm_mm) & 0xff);
+		newpid = cpu_asid(cpu, vma->vm_mm);
 		page &= (PAGE_MASK << 1);
-		oldpid = (get_entryhi() & 0xff);
-		set_entryhi	(page | newpid);
+		oldpid = read_c0_entryhi() & ASID_MASK;
+		write_c0_entryhi(page | newpid);
 		tlb_probe();
-		idx = get_index();
-		set_entrylo0(0);
-		set_entrylo1(0);
-		if(idx < 0)
+		idx = read_c0_index();
+		write_c0_entrylo0(0);
+		write_c0_entrylo1(0);
+		if (idx < 0)
 			goto finish;
 		/* Make sure all entries differ. */
-		set_entryhi(KSEG0+(idx<<(PAGE_SHIFT+1)));
+		write_c0_entryhi(KSEG0+(idx<<(PAGE_SHIFT+1)));
 		tlb_write_indexed();
 	finish:
-		set_entryhi(oldpid);
+		write_c0_entryhi(oldpid);
 	}
-	__restore_flags(flags);
+	local_irq_restore(flags);
 }
 
 
@@ -229,17 +217,10 @@
    these entries, we just bump the asid. */
 void local_flush_tlb_mm(struct mm_struct *mm)
 {
-	unsigned long flags;
-	int cpu;
-	__save_and_cli(flags);
-	cpu = smp_processor_id();
-	if (CPU_CONTEXT(cpu, mm) != 0) {
-		get_new_mmu_context(mm, smp_processor_id());
-		if (mm == current->active_mm) {
-			set_entryhi(CPU_CONTEXT(cpu, mm) & 0xff);
-		}
+	int cpu = smp_processor_id();
+	if (cpu_context(cpu, mm) != 0) {
+		drop_mmu_context(mm, cpu);
 	}
-	__restore_flags(flags);
 }
 
 /* Stolen from mips32 routines */
@@ -259,35 +240,24 @@
 	if (current->active_mm != vma->vm_mm)
 		return;
 
-	__save_and_cli(flags);
-
-
-	pid = get_entryhi() & 0xff;
-
-#ifdef DEBUG_TLB
-	if((pid != (CPU_CONTEXT(cpu, vma->vm_mm) & 0xff)) || (CPU_CONTEXT(cpu, vma->vm_mm) == 0)) {
-		printk("update_mmu_cache: Wheee, bogus tlbpid mmpid=%d tlbpid=%d\n",
-		       (int) (CPU_CONTEXT(cpu, vma->vm_mm) & 0xff), pid);
-	}
-#endif
+	local_irq_save(flags);
 
+	pid = read_c0_entryhi() & ASID_MASK;
 	address &= (PAGE_MASK << 1);
-	set_entryhi(address | (pid));
+	write_c0_entryhi(address | (pid));
 	pgdp = pgd_offset(vma->vm_mm, address);
 	tlb_probe();
 	pmdp = pmd_offset(pgdp, address);
-	idx = get_index();
+	idx = read_c0_index();
 	ptep = pte_offset(pmdp, address);
-	set_entrylo0(pte_val(*ptep++) >> 6);
-	set_entrylo1(pte_val(*ptep) >> 6);
-	set_entryhi(address | (pid));
-	if(idx < 0) {
+	write_c0_entrylo0(pte_val(*ptep++) >> 6);
+	write_c0_entrylo1(pte_val(*ptep) >> 6);
+	if (idx < 0) {
 		tlb_write_random();
 	} else {
 		tlb_write_indexed();
 	}
-	set_entryhi(pid);
-	__restore_flags(flags);
+	local_irq_restore(flags);
 }
 
 /*
@@ -299,7 +269,8 @@
 {
 	u32 config1;
 
-	config1 = read_mips32_cp0_config1();
+	write_c0_pagemask(PM_4K);
+	config1 = read_c0_config1();
 	mips_cpu.tlbsize = ((config1 >> 25) & 0x3f) + 1;
 
 	/*
@@ -309,6 +280,6 @@
 	 */
 	sb1_sanitize_tlb();
 
-	memcpy((void *)KSEG0, except_vec0_r4000, 0x80);
+	memcpy((void *)KSEG0, except_vec0_sb1, 0x80);
 	flush_icache_range(KSEG0, KSEG0 + 0x80);
 }
diff -urNd -urNd linux-2.4.20/arch/mips/momentum/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/momentum/CVS/Entries
--- linux-2.4.20/arch/mips/momentum/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/CVS/Entries	2005-01-06 23:08:20.000000000 -0600
@@ -0,0 +1,2 @@
+D/ocelot_c////
+D/ocelot_g////
diff -urNd -urNd linux-2.4.20/arch/mips/momentum/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/momentum/CVS/Repository
--- linux-2.4.20/arch/mips/momentum/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/CVS/Repository	2005-01-06 23:00:08.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/momentum
diff -urNd -urNd linux-2.4.20/arch/mips/momentum/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/momentum/CVS/Root
--- linux-2.4.20/arch/mips/momentum/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/CVS/Root	2005-01-06 23:00:08.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/momentum/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/momentum/CVS/Tag
--- linux-2.4.20/arch/mips/momentum/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/CVS/Tag	2005-01-06 23:00:08.000000000 -0600
@@ -0,0 +1 @@
+Tlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/cpci-irq.c linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/cpci-irq.c
--- linux-2.4.20/arch/mips/momentum/ocelot_c/cpci-irq.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/cpci-irq.c	2002-11-11 17:05:46.000000000 -0600
@@ -0,0 +1,156 @@
+/*
+ * Copyright 2002 Momentum Computer
+ * Author: mdharm@momenco.com
+ *
+ * arch/mips/momentum/ocelot_c/cpci-irq.c
+ *     Interrupt routines for cpci.  Interrupt numbers are assigned from
+ *     CPCI_IRQ_BASE to CPCI_IRQ_BASE+8 (8 interrupt sources).
+ *
+ * Note that the high-level software will need to be careful about using
+ * these interrupts.  If this board is asserting a cPCI interrupt, it will
+ * also see the asserted interrupt.  Care must be taken to avoid an
+ * interrupt flood.
+ *
+ * This program is free software; you can redistribute  it and/or modify it
+ * under  the terms of  the GNU General  Public License as published by the
+ * Free Software Foundation;  either version 2 of the  License, or (at your
+ * option) any later version.
+ */
+
+#include <linux/module.h>
+#include <linux/interrupt.h>
+#include <linux/kernel.h>
+#include <asm/ptrace.h>
+#include <linux/config.h>
+#include <linux/sched.h>
+#include <linux/kernel_stat.h>
+#include <asm/io.h>
+#include <asm/irq.h>
+#include "ocelot_c_fpga.h"
+
+extern unsigned int do_IRQ(int irq, struct pt_regs *regs);
+
+#define CPCI_IRQ_BASE	8
+
+static inline int ls1bit8(unsigned int x)
+{
+        int b = 7, s;
+
+        s =  4; if (((unsigned char)(x <<  4)) == 0) s = 0; b -= s; x <<= s;
+        s =  2; if (((unsigned char)(x <<  2)) == 0) s = 0; b -= s; x <<= s;
+        s =  1; if (((unsigned char)(x <<  1)) == 0) s = 0; b -= s;
+
+        return b;
+}
+
+/* mask off an interrupt -- 0 is enable, 1 is disable */
+static inline void mask_cpci_irq(unsigned int irq)
+{
+	uint32_t value;
+
+	value = OCELOT_FPGA_READ(INTMASK);
+	value |= 1 << (irq - CPCI_IRQ_BASE);
+	OCELOT_FPGA_WRITE(value, INTMASK);
+
+	/* read the value back to assure that it's really been written */
+	value = OCELOT_FPGA_READ(INTMASK);
+}
+
+/* unmask an interrupt -- 0 is enable, 1 is disable */
+static inline void unmask_cpci_irq(unsigned int irq)
+{
+	uint32_t value;
+
+	value = OCELOT_FPGA_READ(INTMASK);
+	value &= ~(1 << (irq - CPCI_IRQ_BASE));
+	OCELOT_FPGA_WRITE(value, INTMASK);
+
+	/* read the value back to assure that it's really been written */
+	value = OCELOT_FPGA_READ(INTMASK);
+}
+
+/*
+ * Enables the IRQ in the FPGA
+ */
+static void enable_cpci_irq(unsigned int irq)
+{
+	unmask_cpci_irq(irq);
+}
+
+/*
+ * Initialize the IRQ in the FPGA
+ */
+static unsigned int startup_cpci_irq(unsigned int irq)
+{
+	unmask_cpci_irq(irq);
+	return 0;
+}
+
+/*
+ * Disables the IRQ in the FPGA
+ */
+static void disable_cpci_irq(unsigned int irq)
+{
+	mask_cpci_irq(irq);
+}
+
+/*
+ * Masks and ACKs an IRQ
+ */
+static void mask_and_ack_cpci_irq(unsigned int irq)
+{
+	mask_cpci_irq(irq);
+}
+
+/*
+ * End IRQ processing
+ */
+static void end_cpci_irq(unsigned int irq)
+{
+	if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
+		unmask_cpci_irq(irq);
+}
+
+/*
+ * Interrupt handler for interrupts coming from the FPGA chip.
+ * It could be built in ethernet ports etc...
+ */
+void ll_cpci_irq(struct pt_regs *regs)
+{
+	unsigned int irq_src, irq_mask;
+
+	/* read the interrupt status registers */
+	irq_src = OCELOT_FPGA_READ(INTSTAT);
+	irq_mask = OCELOT_FPGA_READ(INTMASK);
+
+	/* mask for just the interrupts we want */
+	irq_src &= ~irq_mask;
+
+	do_IRQ(ls1bit8(irq_src) + CPCI_IRQ_BASE, regs);
+}
+
+#define shutdown_cpci_irq	disable_cpci_irq
+
+struct hw_interrupt_type cpci_irq_type = {
+	"CPCI/FPGA",
+	startup_cpci_irq,
+	shutdown_cpci_irq,
+	enable_cpci_irq,
+	disable_cpci_irq,
+	mask_and_ack_cpci_irq,
+	end_cpci_irq,
+	NULL
+};
+
+void cpci_irq_init(void)
+{
+	int i;
+
+	/* Reset irq handlers pointers to NULL */
+	for (i = CPCI_IRQ_BASE; i < (CPCI_IRQ_BASE + 8); i++) {
+		irq_desc[i].status = IRQ_DISABLED;
+		irq_desc[i].action = 0;
+		irq_desc[i].depth = 2;
+		irq_desc[i].handler = &cpci_irq_type;
+	}
+}
diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/CVS/Entries
--- linux-2.4.20/arch/mips/momentum/ocelot_c/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/CVS/Entries	2005-01-06 23:00:08.000000000 -0600
@@ -0,0 +1,15 @@
+/.cvsignore/1.1.2.1/Mon Nov 11 23:05:46 2002/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.2/Wed Nov 13 10:00:14 2002/-ko/Tlinux_2_4_20
+/cpci-irq.c/1.1.2.1/Mon Nov 11 23:05:46 2002/-ko/Tlinux_2_4_20
+/dbg_io.c/1.1.2.1/Mon Nov 11 23:05:46 2002/-ko/Tlinux_2_4_20
+/int-handler.S/1.1.2.1/Mon Nov 11 23:05:46 2002/-ko/Tlinux_2_4_20
+/irq.c/1.1.2.2/Mon Dec  2 00:24:50 2002/-ko/Tlinux_2_4_20
+/mv-irq.c/1.1.2.1/Mon Nov 11 23:05:46 2002/-ko/Tlinux_2_4_20
+/ocelot_c_fpga.h/1.1.2.1/Mon Nov 11 23:05:46 2002/-ko/Tlinux_2_4_20
+/pci-irq.c/1.1.2.1/Mon Nov 11 23:05:46 2002/-ko/Tlinux_2_4_20
+/pci.c/1.1.2.2/Sat Jan 11 17:53:10 2003//Tlinux_2_4_20
+/prom.c/1.1.2.1/Mon Nov 11 23:05:46 2002/-ko/Tlinux_2_4_20
+/reset.c/1.1.2.1/Mon Nov 11 23:05:46 2002/-ko/Tlinux_2_4_20
+/setup.c/1.1.2.1/Mon Nov 11 23:05:46 2002/-ko/Tlinux_2_4_20
+/uart-irq.c/1.1.2.1/Mon Nov 11 23:05:46 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/CVS/Repository
--- linux-2.4.20/arch/mips/momentum/ocelot_c/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/CVS/Repository	2005-01-06 23:00:08.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/momentum/ocelot_c
diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/CVS/Root
--- linux-2.4.20/arch/mips/momentum/ocelot_c/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/CVS/Root	2005-01-06 23:00:08.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/CVS/Tag
--- linux-2.4.20/arch/mips/momentum/ocelot_c/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/CVS/Tag	2005-01-06 23:00:08.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/.cvsignore
--- linux-2.4.20/arch/mips/momentum/ocelot_c/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/.cvsignore	2002-11-11 17:05:46.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/dbg_io.c linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/dbg_io.c
--- linux-2.4.20/arch/mips/momentum/ocelot_c/dbg_io.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/dbg_io.c	2002-11-11 17:05:46.000000000 -0600
@@ -0,0 +1,126 @@
+#include <linux/config.h>
+
+#if defined(CONFIG_REMOTE_DEBUG)
+
+#include <asm/serial.h> /* For the serial port location and base baud */
+
+/* --- CONFIG --- */
+
+typedef unsigned char uint8;
+typedef unsigned int uint32;
+
+/* --- END OF CONFIG --- */
+
+#define         UART16550_BAUD_2400             2400
+#define         UART16550_BAUD_4800             4800
+#define         UART16550_BAUD_9600             9600
+#define         UART16550_BAUD_19200            19200
+#define         UART16550_BAUD_38400            38400
+#define         UART16550_BAUD_57600            57600
+#define         UART16550_BAUD_115200           115200
+
+#define         UART16550_PARITY_NONE           0
+#define         UART16550_PARITY_ODD            0x08
+#define         UART16550_PARITY_EVEN           0x18
+#define         UART16550_PARITY_MARK           0x28
+#define         UART16550_PARITY_SPACE          0x38
+
+#define         UART16550_DATA_5BIT             0x0
+#define         UART16550_DATA_6BIT             0x1
+#define         UART16550_DATA_7BIT             0x2
+#define         UART16550_DATA_8BIT             0x3
+
+#define         UART16550_STOP_1BIT             0x0
+#define         UART16550_STOP_2BIT             0x4
+
+/* ----------------------------------------------------- */
+
+/* === CONFIG === */
+
+/* [jsun] we use the second serial port for kdb */
+#define         BASE                    OCELOT_SERIAL1_BASE
+#define         MAX_BAUD                OCELOT_BASE_BAUD
+
+/* === END OF CONFIG === */
+
+#define         REG_OFFSET              4
+
+/* register offset */
+#define         OFS_RCV_BUFFER          0
+#define         OFS_TRANS_HOLD          0
+#define         OFS_SEND_BUFFER         0
+#define         OFS_INTR_ENABLE         (1*REG_OFFSET)
+#define         OFS_INTR_ID             (2*REG_OFFSET)
+#define         OFS_DATA_FORMAT         (3*REG_OFFSET)
+#define         OFS_LINE_CONTROL        (3*REG_OFFSET)
+#define         OFS_MODEM_CONTROL       (4*REG_OFFSET)
+#define         OFS_RS232_OUTPUT        (4*REG_OFFSET)
+#define         OFS_LINE_STATUS         (5*REG_OFFSET)
+#define         OFS_MODEM_STATUS        (6*REG_OFFSET)
+#define         OFS_RS232_INPUT         (6*REG_OFFSET)
+#define         OFS_SCRATCH_PAD         (7*REG_OFFSET)
+
+#define         OFS_DIVISOR_LSB         (0*REG_OFFSET)
+#define         OFS_DIVISOR_MSB         (1*REG_OFFSET)
+
+
+/* memory-mapped read/write of the port */
+#define         UART16550_READ(y)    (*((volatile uint8*)(BASE + y)))
+#define         UART16550_WRITE(y, z)  ((*((volatile uint8*)(BASE + y))) = z)
+
+void debugInit(uint32 baud, uint8 data, uint8 parity, uint8 stop)
+{
+	/* disable interrupts */
+	UART16550_WRITE(OFS_INTR_ENABLE, 0);
+
+	/* set up buad rate */
+	{
+		uint32 divisor;
+
+		/* set DIAB bit */
+		UART16550_WRITE(OFS_LINE_CONTROL, 0x80);
+
+		/* set divisor */
+		divisor = MAX_BAUD / baud;
+		UART16550_WRITE(OFS_DIVISOR_LSB, divisor & 0xff);
+		UART16550_WRITE(OFS_DIVISOR_MSB, (divisor & 0xff00) >> 8);
+
+		/* clear DIAB bit */
+		UART16550_WRITE(OFS_LINE_CONTROL, 0x0);
+	}
+
+	/* set data format */
+	UART16550_WRITE(OFS_DATA_FORMAT, data | parity | stop);
+}
+
+static int remoteDebugInitialized = 0;
+
+uint8 getDebugChar(void)
+{
+	if (!remoteDebugInitialized) {
+		remoteDebugInitialized = 1;
+		debugInit(UART16550_BAUD_38400,
+			  UART16550_DATA_8BIT,
+			  UART16550_PARITY_NONE, UART16550_STOP_1BIT);
+	}
+
+	while ((UART16550_READ(OFS_LINE_STATUS) & 0x1) == 0);
+	return UART16550_READ(OFS_RCV_BUFFER);
+}
+
+
+int putDebugChar(uint8 byte)
+{
+	if (!remoteDebugInitialized) {
+		remoteDebugInitialized = 1;
+		debugInit(UART16550_BAUD_38400,
+			  UART16550_DATA_8BIT,
+			  UART16550_PARITY_NONE, UART16550_STOP_1BIT);
+	}
+
+	while ((UART16550_READ(OFS_LINE_STATUS) & 0x20) == 0);
+	UART16550_WRITE(OFS_SEND_BUFFER, byte);
+	return 1;
+}
+
+#endif
diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/int-handler.S linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/int-handler.S
--- linux-2.4.20/arch/mips/momentum/ocelot_c/int-handler.S	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/int-handler.S	2002-11-11 17:05:46.000000000 -0600
@@ -0,0 +1,104 @@
+/*
+ * Copyright 2002 Momentum Computer Inc.
+ * Author: Matthew Dharm <mdharm@momenco.com>
+ *
+ * Copyright 2001 MontaVista Software Inc.
+ * Author: jsun@mvista.com or jsun@junsun.net
+ *
+ * First-level interrupt dispatcher for Ocelot-CS board.
+ *
+ * This program is free software; you can redistribute  it and/or modify it
+ * under  the terms of  the GNU General  Public License as published by the
+ * Free Software Foundation;  either version 2 of the  License, or (at your
+ * option) any later version.
+ */
+#define __ASSEMBLY__
+#include <linux/config.h>
+#include <asm/asm.h>
+#include <asm/mipsregs.h>
+#include <asm/addrspace.h>
+#include <asm/regdef.h>
+#include <asm/stackframe.h>
+#include "ocelot_c_fpga.h"
+
+/*
+ * First level interrupt dispatcher for Ocelot-CS board
+ */
+		.align	5
+		NESTED(ocelot_handle_int, PT_SIZE, sp)
+		SAVE_ALL
+		CLI
+		.set	at
+		mfc0	t0, CP0_CAUSE  
+		mfc0	t2, CP0_STATUS
+
+		and	t0, t2
+        
+		andi	t1, t0, STATUSF_IP0	/* sw0 software interrupt */
+		bnez	t1, ll_sw0_irq
+		andi	t1, t0, STATUSF_IP1	/* sw1 software interrupt */
+		bnez	t1, ll_sw1_irq
+		andi	t1, t0, STATUSF_IP2	/* int0 hardware line */
+		bnez	t1, ll_scsi_irq
+		andi	t1, t0, STATUSF_IP3	/* int1 hardware line */
+		bnez	t1, ll_uart_decode_irq
+		andi	t1, t0, STATUSF_IP4	/* int2 hardware line */
+		bnez	t1, ll_pmc_irq
+		andi	t1, t0, STATUSF_IP5	/* int3 hardware line */
+		bnez	t1, ll_cpci_decode_irq
+		andi	t1, t0, STATUSF_IP6	/* int4 hardware line */
+		bnez	t1, ll_mv64340_decode_irq
+		andi	t1, t0, STATUSF_IP7	/* cpu timer */
+		bnez	t1, ll_cputimer_irq
+
+		.set	reorder
+
+		/* wrong alarm or masked ... */
+		j	spurious_interrupt
+		nop
+		END(ocelot_handle_int)
+
+		.align	5
+ll_sw0_irq:
+		li	a0, 0
+		move	a1, sp
+		jal	do_IRQ
+		j	ret_from_irq
+ll_sw1_irq:
+		li	a0, 1
+		move	a1, sp
+		jal	do_IRQ
+		j	ret_from_irq
+ll_scsi_irq:
+		li	a0, 2
+		move	a1, sp
+		jal	do_IRQ
+		j	ret_from_irq
+
+ll_uart_decode_irq:
+		move	a0, sp
+		jal	ll_uart_irq
+		j	ret_from_irq
+
+ll_pmc_irq:
+		li	a0, 4
+		move	a1, sp
+		jal	do_IRQ
+		j	ret_from_irq
+	
+ll_cpci_decode_irq:
+		move	a0, sp
+		jal	ll_cpci_irq
+		j	ret_from_irq
+
+ll_mv64340_decode_irq:
+		move	a0, sp
+		jal	ll_mv64340_irq
+		j	ret_from_irq
+
+ll_cputimer_irq:
+		li	a0, 7
+		move	a1, sp
+		jal	do_IRQ
+		j	ret_from_irq
+	
diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/irq.c
--- linux-2.4.20/arch/mips/momentum/ocelot_c/irq.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/irq.c	2002-12-01 18:24:50.000000000 -0600
@@ -0,0 +1,182 @@
+/*
+ * Copyright (C) 2000 RidgeRun, Inc.
+ * Author: RidgeRun, Inc.
+ *   glonnon@ridgerun.com, skranz@ridgerun.com, stevej@ridgerun.com
+ *
+ * Copyright 2001 MontaVista Software Inc.
+ * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net
+ * Copyright (C) 2000, 2001 Ralf Baechle (ralf@gnu.org)
+ *
+ *  This program is free software; you can redistribute  it and/or modify it
+ *  under  the terms of  the GNU General  Public License as published by the
+ *  Free Software Foundation;  either version 2 of the  License, or (at your
+ *  option) any later version.
+ *
+ *  THIS  SOFTWARE  IS PROVIDED   ``AS  IS'' AND   ANY  EXPRESS OR IMPLIED
+ *  WARRANTIES,   INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
+ *  NO  EVENT  SHALL   THE AUTHOR  BE    LIABLE FOR ANY   DIRECT, INDIRECT,
+ *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ *  NOT LIMITED   TO, PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS OF
+ *  USE, DATA,  OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ *  ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *  You should have received a copy of the  GNU General Public License along
+ *  with this program; if not, write  to the Free Software Foundation, Inc.,
+ *  675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+#include <linux/errno.h>
+#include <linux/init.h>
+#include <linux/kernel_stat.h>
+#include <linux/module.h>
+#include <linux/signal.h>
+#include <linux/sched.h>
+#include <linux/types.h>
+#include <linux/interrupt.h>
+#include <linux/ioport.h>
+#include <linux/timex.h>
+#include <linux/slab.h>
+#include <linux/random.h>
+#include <asm/bitops.h>
+#include <asm/bootinfo.h>
+#include <asm/io.h>
+#include <asm/irq.h>
+#include <asm/mipsregs.h>
+#include <asm/system.h>
+
+
+static spinlock_t irq_lock = SPIN_LOCK_UNLOCKED;
+
+/* Function for careful CP0 interrupt mask access */
+static inline void modify_cp0_intmask(unsigned clr_mask_in, unsigned set_mask_in)
+{
+	unsigned long status;
+	unsigned clr_mask;
+	unsigned set_mask;
+
+	/* do the low 8 bits first */
+	clr_mask = 0xff & clr_mask_in;
+	set_mask = 0xff & set_mask_in;
+	status = read_c0_status();
+	status &= ~((clr_mask & 0xFF) << 8);
+	status |= (set_mask & 0xFF) << 8;
+	write_c0_status(status);
+}
+
+static inline void mask_irq(unsigned int irq)
+{
+	modify_cp0_intmask(irq, 0);
+}
+
+static inline void unmask_irq(unsigned int irq)
+{
+	modify_cp0_intmask(0, irq);
+}
+
+static void enable_cp7000_irq(unsigned int irq)
+{
+	unsigned long flags;
+
+	spin_lock_irqsave(&irq_lock, flags);
+	unmask_irq(1 << irq);
+	spin_unlock_irqrestore(&irq_lock, flags);
+}
+
+static unsigned int startup_cp7000_irq(unsigned int irq)
+{
+	enable_cp7000_irq(irq);
+
+	return 0;				/* never anything pending */
+}
+
+static void disable_cp7000_irq(unsigned int irq)
+{
+	unsigned long flags;
+
+	spin_lock_irqsave(&irq_lock, flags);
+	mask_irq(1 << irq);
+	spin_unlock_irqrestore(&irq_lock, flags);
+}
+
+#define shutdown_cp7000_irq disable_cp7000_irq
+
+static void mask_and_ack_cp7000_irq(unsigned int irq)
+{
+	mask_irq(1 << irq);
+}
+
+static void end_cp7000_irq(unsigned int irq)
+{
+	if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
+		unmask_irq(1 << irq);
+}
+
+static struct hw_interrupt_type cp7000_hpcdma_irq_type = {
+#ifdef CONFIG_CPU_SR71000
+	"SR71000",
+#else
+	"RM7000",
+#endif
+	startup_cp7000_irq,
+	shutdown_cp7000_irq,
+	enable_cp7000_irq,
+	disable_cp7000_irq,
+	mask_and_ack_cp7000_irq,
+	end_cp7000_irq,
+	NULL
+};
+
+extern asmlinkage void ocelot_handle_int(void);
+extern void mv64340_irq_init(void);
+extern void uart_irq_init(void);
+extern void cpci_irq_init(void);
+
+static struct irqaction cascade_fpga =
+	{ no_action, SA_INTERRUPT, 0, "cascade via FPGA", NULL, NULL };
+static struct irqaction cascade_mv64340 =
+	{ no_action, SA_INTERRUPT, 0, "cascade via MV64340", NULL, NULL };
+
+void __init init_IRQ(void)
+{
+	int i;
+
+	/*
+	 * Clear all of the interrupts while we change the able around a bit.
+	 * int-handler is not on bootstrap
+	 */
+	clear_c0_status(ST0_IM | ST0_BEV);
+	__cli();
+
+	/* Sets the first-level interrupt dispatcher. */
+	set_except_vector(0, ocelot_handle_int);
+	init_generic_irq();
+
+	/* set up handler for first 8 IRQs as the CPU */
+	for (i = 0; i < 8; i++) {
+		irq_desc[i].status	= IRQ_DISABLED;
+		irq_desc[i].action	= 0;
+		irq_desc[i].depth	= 1;
+		irq_desc[i].handler	= &cp7000_hpcdma_irq_type;
+	}
+
+	/* set up the cascading interrupts */
+	setup_irq(3, &cascade_fpga);
+	setup_irq(5, &cascade_fpga);
+	setup_irq(6, &cascade_mv64340);
+
+	mv64340_irq_init();
+	uart_irq_init();
+	cpci_irq_init();
+
+#ifdef CONFIG_REMOTE_DEBUG
+	printk("start kgdb ...\n");
+	set_debug_traps();
+	breakpoint();	/* you may move this line to whereever you want :-) */
+#endif
+#ifdef CONFIG_GDB_CONSOLE
+	register_gdb_console();
+#endif
+}
diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/Makefile
--- linux-2.4.20/arch/mips/momentum/ocelot_c/Makefile	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/Makefile	2002-11-13 04:00:14.000000000 -0600
@@ -0,0 +1,18 @@
+#
+# Makefile for Momentum Computer's Ocelot-C and -CS boards.
+#
+# Note! Dependencies are done automagically by 'make dep', which also
+# removes any old dependencies. DON'T put your own dependencies here
+# unless it's something special (ie not a .c file).
+#
+
+USE_STANDARD_AS_RULE := true
+
+O_TARGET:= ocelot_c.o
+
+obj-y	 += mv-irq.o cpci-irq.o uart-irq.o int-handler.o irq.o
+obj-y    += pci-irq.o pci.o prom.o reset.o setup.o 
+
+obj-$(CONFIG_REMOTE_DEBUG) += dbg_io.o
+
+include $(TOPDIR)/Rules.make
diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/mv-irq.c linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/mv-irq.c
--- linux-2.4.20/arch/mips/momentum/ocelot_c/mv-irq.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/mv-irq.c	2002-11-11 17:05:46.000000000 -0600
@@ -0,0 +1,166 @@
+/*
+ * Copyright 2002 Momentum Computer
+ * Author: mdharm@momenco.com
+ *
+ * arch/mips/momentum/ocelot_c/mv-irq.c
+ *     Interrupt routines for mv64340.  Interrupt numbers are assigned from
+ *     MV64340_IRQ_BASE to MV64340_IRQ_BASE+64.
+ *
+ * This program is free software; you can redistribute  it and/or modify it
+ * under  the terms of  the GNU General  Public License as published by the
+ * Free Software Foundation;  either version 2 of the  License, or (at your
+ * option) any later version.
+ */
+
+#include <linux/module.h>
+#include <linux/interrupt.h>
+#include <linux/kernel.h>
+#include <asm/ptrace.h>
+#include <linux/config.h>
+#include <linux/sched.h>
+#include <linux/kernel_stat.h>
+#include <asm/io.h>
+#include <asm/irq.h>
+#include <asm/mv64340.h>
+
+extern unsigned int do_IRQ(int irq, struct pt_regs *regs);
+
+#define MV64340_IRQ_BASE	16
+
+static inline int ls1bit32(unsigned int x)
+{
+        int b = 31, s;
+
+        s = 16; if (x << 16 == 0) s = 0; b -= s; x <<= s;
+        s =  8; if (x <<  8 == 0) s = 0; b -= s; x <<= s;
+        s =  4; if (x <<  4 == 0) s = 0; b -= s; x <<= s;
+        s =  2; if (x <<  2 == 0) s = 0; b -= s; x <<= s;
+        s =  1; if (x <<  1 == 0) s = 0; b -= s;
+
+        return b;
+}
+
+/* mask off an interrupt -- 1 is enable, 0 is disable */
+static inline void mask_mv64340_irq(unsigned int irq)
+{
+	uint32_t value;
+
+	if (irq < (MV64340_IRQ_BASE + 32)) {
+		MV_READ(MV64340_INTERRUPT0_MASK_0_LOW, &value);
+		value &= ~(1 << (irq - MV64340_IRQ_BASE));
+		MV_WRITE(MV64340_INTERRUPT0_MASK_0_LOW, value);
+	} else {
+		MV_READ(MV64340_INTERRUPT0_MASK_0_HIGH, &value);
+		value &= ~(1 << (irq - (MV64340_IRQ_BASE - 32)));
+		MV_WRITE(MV64340_INTERRUPT0_MASK_0_HIGH, value);
+	}
+}
+
+/* unmask an interrupt -- 1 is enable, 0 is disable */
+static inline void unmask_mv64340_irq(unsigned int irq)
+{
+	uint32_t value;
+
+	if (irq < (MV64340_IRQ_BASE + 32)) {
+		MV_READ(MV64340_INTERRUPT0_MASK_0_LOW, &value);
+		value |= 1 << (irq - MV64340_IRQ_BASE);
+		MV_WRITE(MV64340_INTERRUPT0_MASK_0_LOW, value);
+	} else {
+		MV_READ(MV64340_INTERRUPT0_MASK_0_HIGH, &value);
+		value |= 1 << (irq - (MV64340_IRQ_BASE - 32));
+		MV_WRITE(MV64340_INTERRUPT0_MASK_0_HIGH, value);
+	}
+}
+
+/*
+ * Enables the IRQ on Marvell Chip
+ */
+static void enable_mv64340_irq(unsigned int irq)
+{
+	unmask_mv64340_irq(irq);
+}
+
+/*
+ * Initialize the IRQ on Marvell Chip
+ */
+static unsigned int startup_mv64340_irq(unsigned int irq)
+{
+	unmask_mv64340_irq(irq);
+	return 0;
+}
+
+/*
+ * Disables the IRQ on Marvell Chip
+ */
+static void disable_mv64340_irq(unsigned int irq)
+{
+	mask_mv64340_irq(irq);
+}
+
+/*
+ * Masks and ACKs an IRQ
+ */
+static void mask_and_ack_mv64340_irq(unsigned int irq)
+{
+	mask_mv64340_irq(irq);
+}
+
+/*
+ * End IRQ processing
+ */
+static void end_mv64340_irq(unsigned int irq)
+{
+	if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
+		unmask_mv64340_irq(irq);
+}
+
+/*
+ * Interrupt handler for interrupts coming from the Marvell chip.
+ * It could be built in ethernet ports etc...
+ */
+void ll_mv64340_irq(struct pt_regs *regs)
+{
+	unsigned int irq_src_low, irq_src_high;
+ 	unsigned int irq_mask_low, irq_mask_high;
+
+	/* read the interrupt status registers */
+	MV_READ(MV64340_INTERRUPT0_MASK_0_LOW, &irq_mask_low);
+	MV_READ(MV64340_INTERRUPT0_MASK_0_HIGH, &irq_mask_high);
+	MV_READ(MV64340_MAIN_INTERRUPT_CAUSE_LOW, &irq_src_low);
+	MV_READ(MV64340_MAIN_INTERRUPT_CAUSE_HIGH, &irq_src_high);
+
+	/* mask for just the interrupts we want */
+	irq_src_low &= irq_mask_low;
+	irq_src_high &= irq_mask_high;
+
+	if (irq_src_low) 
+		do_IRQ(ls1bit32(irq_src_low) + MV64340_IRQ_BASE, regs);
+	else
+		do_IRQ(ls1bit32(irq_src_high) + MV64340_IRQ_BASE + 32, regs);
+}
+
+#define shutdown_mv64340_irq	disable_mv64340_irq
+
+struct hw_interrupt_type mv64340_irq_type = {
+	"MV-64340",
+	startup_mv64340_irq,
+	shutdown_mv64340_irq,
+	enable_mv64340_irq,
+	disable_mv64340_irq,
+	mask_and_ack_mv64340_irq,
+	end_mv64340_irq,
+	NULL
+};
+
+void mv64340_irq_init(void)
+{
+	int i;
+
+	/* Reset irq handlers pointers to NULL */
+	for (i = MV64340_IRQ_BASE; i < (MV64340_IRQ_BASE + 64); i++) {
+		irq_desc[i].status = IRQ_DISABLED;
+		irq_desc[i].action = 0;
+		irq_desc[i].depth = 2;
+		irq_desc[i].handler = &mv64340_irq_type;
+	}
+}
diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/ocelot_c_fpga.h linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/ocelot_c_fpga.h
--- linux-2.4.20/arch/mips/momentum/ocelot_c/ocelot_c_fpga.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/ocelot_c_fpga.h	2002-11-11 17:05:46.000000000 -0600
@@ -0,0 +1,50 @@
+/*
+ * Ocelot-C Board Register Definitions
+ *
+ * (C) 2002 Momentum Computer Inc.
+ *
+ *  This program is free software; you can redistribute  it and/or modify it
+ *  under  the terms of  the GNU General  Public License as published by the
+ *  Free Software Foundation;  either version 2 of the  License, or (at your
+ *  option) any later version.
+ *
+ *  THIS  SOFTWARE  IS PROVIDED   ``AS  IS'' AND   ANY  EXPRESS OR IMPLIED
+ *  WARRANTIES,   INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
+ *  NO  EVENT  SHALL   THE AUTHOR  BE    LIABLE FOR ANY   DIRECT, INDIRECT,
+ *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ *  NOT LIMITED   TO, PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS OF
+ *  USE, DATA,  OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ *  ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *  You should have received a copy of the  GNU General Public License along
+ *  with this program; if not, write  to the Free Software Foundation, Inc.,
+ *  675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+#ifndef __OCELOT_C_FPGA_H__
+#define __OCELOT_C_FPGA_H__
+
+#define OCELOT_C_CS0_ADDR (0xfc000000)
+
+#define OCELOT_C_REG_BOARDREV		0x0
+#define OCELOT_C_REG_FPGA_REV		0x1
+#define OCELOT_C_REG_FPGA_TYPE		0x2
+#define OCELOT_C_REG_RESET_STATUS	0x3
+#define OCELOT_C_REG_BOARD_STATUS	0x4
+#define OCELOT_C_REG_CPCI_ID		0x5
+#define OCELOT_C_REG_SET		0x6
+#define OCELOT_C_REG_CLR		0x7
+#define OCELOT_C_REG_EEPROM_MODE	0x9
+#define OCELOT_C_REG_INTMASK		0xa
+#define OCELOT_C_REG_INTSTAT		0xb
+#define OCELOT_C_REG_UART_INTMASK	0xc
+#define OCELOT_C_REG_UART_INTSTAT	0xd
+#define OCELOT_C_REG_INTSET		0xe
+#define OCELOT_C_REG_INTCLR		0xf
+
+#define OCELOT_FPGA_WRITE(x, y) writeb(x, OCELOT_C_CS0_ADDR + OCELOT_C_REG_##y)
+#define OCELOT_FPGA_READ(x) readb(OCELOT_C_CS0_ADDR + OCELOT_C_REG_##x)
+
+#endif
diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/pci.c linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/pci.c
--- linux-2.4.20/arch/mips/momentum/ocelot_c/pci.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/pci.c	2003-01-11 11:53:10.000000000 -0600
@@ -0,0 +1,495 @@
+/*
+ * Copyright 2002 Momentum Computer
+ * Author: Matthew Dharm <mdharm@momenco.com>
+ *
+ *  This program is free software; you can redistribute  it and/or modify it
+ *  under  the terms of  the GNU General  Public License as published by the
+ *  Free Software Foundation;  either version 2 of the  License, or (at your
+ *  option) any later version.
+ *
+ *  THIS  SOFTWARE  IS PROVIDED   ``AS  IS'' AND   ANY  EXPRESS OR IMPLIED
+ *  WARRANTIES,   INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
+ *  NO  EVENT  SHALL   THE AUTHOR  BE    LIABLE FOR ANY   DIRECT, INDIRECT,
+ *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ *  NOT LIMITED   TO, PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS OF
+ *  USE, DATA,  OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ *  ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *  You should have received a copy of the  GNU General Public License along
+ *  with this program; if not, write  to the Free Software Foundation, Inc.,
+ *  675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+#include <linux/config.h>
+#include <linux/types.h>
+#include <linux/pci.h>
+#include <linux/kernel.h>
+#include <linux/slab.h>
+#include <linux/version.h>
+#include <asm/pci.h>
+#include <asm/io.h>
+#include <asm/mv64340.h>
+
+#include <linux/init.h>
+
+#ifdef CONFIG_PCI
+
+/*
+ * These functions and structures provide the BIOS scan and mapping of the PCI
+ * devices.
+ */
+
+#define MAX_PCI_DEVS 10
+
+void mv64340_board_pcibios_fixup_bus(struct pci_bus* c);
+
+/*  Functions to implement "pci ops"  */
+static int marvell_pcibios_read_config_word(struct pci_dev *dev,
+					    int offset, u16 * val);
+static int marvell_pcibios_read_config_byte(struct pci_dev *dev,
+					    int offset, u8 * val);
+static int marvell_pcibios_read_config_dword(struct pci_dev *dev,
+					     int offset, u32 * val);
+static int marvell_pcibios_write_config_byte(struct pci_dev *dev,
+					     int offset, u8 val);
+static int marvell_pcibios_write_config_word(struct pci_dev *dev,
+					     int offset, u16 val);
+static int marvell_pcibios_write_config_dword(struct pci_dev *dev,
+					      int offset, u32 val);
+static void marvell_pcibios_set_master(struct pci_dev *dev);
+
+/*
+ *  General-purpose PCI functions.
+ */
+
+
+/*
+ * pci_range_ck -
+ *
+ * Check if the pci device that are trying to access does really exists
+ * on the evaluation board.  
+ *
+ * Inputs :
+ * bus - bus number (0 for PCI 0 ; 1 for PCI 1)
+ * dev - number of device on the specific pci bus
+ *
+ * Outpus :
+ * 0 - if OK , 1 - if failure
+ */
+static __inline__ int pci_range_ck(unsigned char bus, unsigned char dev)
+{
+	/* Accessing device 31 crashes the MV-64340. */
+	if (dev < 5)
+		return 0;
+	return -1;
+}
+
+/*
+ * marvell_pcibios_(read/write)_config_(dword/word/byte) -
+ *
+ * reads/write a dword/word/byte register from the configuration space
+ * of a device.
+ *
+ * Note that bus 0 and bus 1 are local, and we assume all other busses are
+ * bridged from bus 1.  This is a safe assumption, since any other
+ * configuration will require major modifications to the CP7000G
+ *
+ * Inputs :
+ * bus - bus number
+ * dev - device number
+ * offset - register offset in the configuration space
+ * val - value to be written / read
+ *
+ * Outputs :
+ * PCIBIOS_SUCCESSFUL when operation was succesfull
+ * PCIBIOS_DEVICE_NOT_FOUND when the bus or dev is errorneous
+ * PCIBIOS_BAD_REGISTER_NUMBER when accessing non aligned
+ */
+
+static int marvell_pcibios_read_config_dword(struct pci_dev *device,
+					      int offset, u32* val)
+{
+	int dev, bus, func;
+	uint32_t address_reg, data_reg;
+	uint32_t address;
+
+	bus = device->bus->number;
+	dev = PCI_SLOT(device->devfn);
+	func = PCI_FUNC(device->devfn);
+
+	/* verify the range */
+	if (pci_range_ck(bus, dev))
+		return PCIBIOS_DEVICE_NOT_FOUND;
+
+	/* select the MV-64340 registers to communicate with the PCI bus */
+	if (bus == 0) {
+		address_reg = MV64340_PCI_0_CONFIG_ADDR;
+		data_reg = MV64340_PCI_0_CONFIG_DATA_VIRTUAL_REG;
+	} else {
+		address_reg = MV64340_PCI_1_CONFIG_ADDR;
+		data_reg = MV64340_PCI_1_CONFIG_DATA_VIRTUAL_REG;
+	}
+
+	address = (bus << 16) | (dev << 11) | (func << 8) |
+		(offset & 0xfc) | 0x80000000;
+
+	/* start the configuration cycle */
+	MV_WRITE(address_reg, address);
+
+	/* read the data */
+	MV_READ(data_reg, val);
+
+	return PCIBIOS_SUCCESSFUL;
+}
+
+
+static int marvell_pcibios_read_config_word(struct pci_dev *device,
+					     int offset, u16* val)
+{
+	int dev, bus, func;
+	uint32_t address_reg, data_reg;
+	uint32_t address;
+
+	bus = device->bus->number;
+	dev = PCI_SLOT(device->devfn);
+	func = PCI_FUNC(device->devfn);
+
+	/* verify the range */
+	if (pci_range_ck(bus, dev))
+		return PCIBIOS_DEVICE_NOT_FOUND;
+
+	/* select the MV-64340 registers to communicate with the PCI bus */
+	if (bus == 0) {
+		address_reg = MV64340_PCI_0_CONFIG_ADDR;
+		data_reg = MV64340_PCI_0_CONFIG_DATA_VIRTUAL_REG;
+	} else {
+		address_reg = MV64340_PCI_1_CONFIG_ADDR;
+		data_reg = MV64340_PCI_1_CONFIG_DATA_VIRTUAL_REG;
+	}
+
+	address = (bus << 16) | (dev << 11) | (func << 8) |
+		(offset & 0xfc) | 0x80000000;
+
+	/* start the configuration cycle */
+	MV_WRITE(address_reg, address);
+
+	/* read the data */
+	MV_READ_16(data_reg + (offset & 0x3), val);
+
+	return PCIBIOS_SUCCESSFUL;
+}
+
+static int marvell_pcibios_read_config_byte(struct pci_dev *device,
+					     int offset, u8* val)
+{
+	int dev, bus, func;
+	uint32_t address_reg, data_reg;
+	uint32_t address;
+
+	bus = device->bus->number;
+	dev = PCI_SLOT(device->devfn);
+	func = PCI_FUNC(device->devfn);
+
+	/* verify the range */
+	if (pci_range_ck(bus, dev))
+		return PCIBIOS_DEVICE_NOT_FOUND;
+
+	/* select the MV-64340 registers to communicate with the PCI bus */
+	if (bus == 0) {
+		address_reg = MV64340_PCI_0_CONFIG_ADDR;
+		data_reg = MV64340_PCI_0_CONFIG_DATA_VIRTUAL_REG;
+	} else {
+		address_reg = MV64340_PCI_1_CONFIG_ADDR;
+		data_reg = MV64340_PCI_1_CONFIG_DATA_VIRTUAL_REG;
+	}
+
+	address = (bus << 16) | (dev << 11) | (func << 8) |
+		(offset & 0xfc) | 0x80000000;
+
+	/* start the configuration cycle */
+	MV_WRITE(address_reg, address);
+
+	/* write the data */
+	MV_READ_8(data_reg + (offset & 0x3), val);
+
+	return PCIBIOS_SUCCESSFUL;
+}
+
+static int marvell_pcibios_write_config_dword(struct pci_dev *device,
+					      int offset, u32 val)
+{
+	int dev, bus, func;
+	uint32_t address_reg, data_reg;
+	uint32_t address;
+
+	bus = device->bus->number;
+	dev = PCI_SLOT(device->devfn);
+	func = PCI_FUNC(device->devfn);
+
+	/* verify the range */
+	if (pci_range_ck(bus, dev))
+		return PCIBIOS_DEVICE_NOT_FOUND;
+
+	/* select the MV-64340 registers to communicate with the PCI bus */
+	if (bus == 0) {
+		address_reg = MV64340_PCI_0_CONFIG_ADDR;
+		data_reg = MV64340_PCI_0_CONFIG_DATA_VIRTUAL_REG;
+	} else {
+		address_reg = MV64340_PCI_1_CONFIG_ADDR;
+		data_reg = MV64340_PCI_1_CONFIG_DATA_VIRTUAL_REG;
+	}
+
+	address = (bus << 16) | (dev << 11) | (func << 8) |
+		(offset & 0xfc) | 0x80000000;
+
+	/* start the configuration cycle */
+	MV_WRITE(address_reg, address);
+
+	/* write the data */
+	MV_WRITE(data_reg, val);
+
+	return PCIBIOS_SUCCESSFUL;
+}
+
+
+static int marvell_pcibios_write_config_word(struct pci_dev *device,
+					     int offset, u16 val)
+{
+	int dev, bus, func;
+	uint32_t address_reg, data_reg;
+	uint32_t address;
+
+	bus = device->bus->number;
+	dev = PCI_SLOT(device->devfn);
+	func = PCI_FUNC(device->devfn);
+
+	/* verify the range */
+	if (pci_range_ck(bus, dev))
+		return PCIBIOS_DEVICE_NOT_FOUND;
+
+	/* select the MV-64340 registers to communicate with the PCI bus */
+	if (bus == 0) {
+		address_reg = MV64340_PCI_0_CONFIG_ADDR;
+		data_reg = MV64340_PCI_0_CONFIG_DATA_VIRTUAL_REG;
+	} else {
+		address_reg = MV64340_PCI_1_CONFIG_ADDR;
+		data_reg = MV64340_PCI_1_CONFIG_DATA_VIRTUAL_REG;
+	}
+
+	address = (bus << 16) | (dev << 11) | (func << 8) |
+		(offset & 0xfc) | 0x80000000;
+
+	/* start the configuration cycle */
+	MV_WRITE(address_reg, address);
+
+	/* write the data */
+	MV_WRITE_16(data_reg + (offset & 0x3), val);
+
+	return PCIBIOS_SUCCESSFUL;
+}
+
+static int marvell_pcibios_write_config_byte(struct pci_dev *device,
+					     int offset, u8 val)
+{
+	int dev, bus, func;
+	uint32_t address_reg, data_reg;
+	uint32_t address;
+
+	bus = device->bus->number;
+	dev = PCI_SLOT(device->devfn);
+	func = PCI_FUNC(device->devfn);
+
+	/* verify the range */
+	if (pci_range_ck(bus, dev))
+		return PCIBIOS_DEVICE_NOT_FOUND;
+
+	/* select the MV-64340 registers to communicate with the PCI bus */
+	if (bus == 0) {
+		address_reg = MV64340_PCI_0_CONFIG_ADDR;
+		data_reg = MV64340_PCI_0_CONFIG_DATA_VIRTUAL_REG;
+	} else {
+		address_reg = MV64340_PCI_1_CONFIG_ADDR;
+		data_reg = MV64340_PCI_1_CONFIG_DATA_VIRTUAL_REG;
+	}
+
+	address = (bus << 16) | (dev << 11) | (func << 8) |
+		(offset & 0xfc) | 0x80000000;
+
+	/* start the configuration cycle */
+	MV_WRITE(address_reg, address);
+
+	/* write the data */
+	MV_WRITE_8(data_reg + (offset & 0x3), val);
+
+	return PCIBIOS_SUCCESSFUL;
+}
+
+static void marvell_pcibios_set_master(struct pci_dev *dev)
+{
+	u16 cmd;
+
+	marvell_pcibios_read_config_word(dev, PCI_COMMAND, &cmd);
+	cmd |= PCI_COMMAND_MASTER;
+	marvell_pcibios_write_config_word(dev, PCI_COMMAND, cmd);
+}
+
+/*  Externally-expected functions.  Do not change function names  */
+
+int pcibios_enable_resources(struct pci_dev *dev)
+{
+	u16 cmd, old_cmd;
+	u8 tmp1;
+	int idx;
+	struct resource *r;
+
+	marvell_pcibios_read_config_word(dev, PCI_COMMAND, &cmd);
+	old_cmd = cmd;
+	for (idx = 0; idx < 6; idx++) {
+		r = &dev->resource[idx];
+		if (!r->start && r->end) {
+			printk(KERN_ERR
+			       "PCI: Device %s not available because of "
+			       "resource collisions\n", dev->slot_name);
+			return -EINVAL;
+		}
+		if (r->flags & IORESOURCE_IO)
+			cmd |= PCI_COMMAND_IO;
+		if (r->flags & IORESOURCE_MEM)
+			cmd |= PCI_COMMAND_MEMORY;
+	}
+	if (cmd != old_cmd) {
+		marvell_pcibios_write_config_word(dev, PCI_COMMAND, cmd);
+	}
+
+	/*
+	 * Let's fix up the latency timer and cache line size here.  Cache
+	 * line size = 32 bytes / sizeof dword (4) = 8.
+	 * Latency timer must be > 8.  32 is random but appears to work.
+	 */
+	marvell_pcibios_read_config_byte(dev, PCI_CACHE_LINE_SIZE, &tmp1);
+	if (tmp1 != 8) {
+		printk(KERN_WARNING "PCI setting cache line size to 8 from "
+		       "%d\n", tmp1);
+		marvell_pcibios_write_config_byte(dev, PCI_CACHE_LINE_SIZE,
+						  8);
+	}
+	marvell_pcibios_read_config_byte(dev, PCI_LATENCY_TIMER, &tmp1);
+	if (tmp1 < 32) {
+		printk(KERN_WARNING "PCI setting latency timer to 32 from %d\n",
+		       tmp1);
+		marvell_pcibios_write_config_byte(dev, PCI_LATENCY_TIMER,
+						  32);
+	}
+
+	return 0;
+}
+
+int pcibios_enable_device(struct pci_dev *dev, int mask)
+{
+	return pcibios_enable_resources(dev);
+}
+
+void pcibios_update_resource(struct pci_dev *dev, struct resource *root,
+			     struct resource *res, int resource)
+{
+	u32 new, check;
+	int reg;
+
+	return;
+
+	new = res->start | (res->flags & PCI_REGION_FLAG_MASK);
+	if (resource < 6) {
+		reg = PCI_BASE_ADDRESS_0 + 4 * resource;
+	} else if (resource == PCI_ROM_RESOURCE) {
+		res->flags |= PCI_ROM_ADDRESS_ENABLE;
+		reg = dev->rom_base_reg;
+	} else {
+		/*
+		 * Somebody might have asked allocation of a non-standard
+		 * resource
+		 */
+		return;
+	}
+
+	pci_write_config_dword(dev, reg, new);
+	pci_read_config_dword(dev, reg, &check);
+	if ((new ^ check) &
+	    ((new & PCI_BASE_ADDRESS_SPACE_IO) ? PCI_BASE_ADDRESS_IO_MASK :
+	     PCI_BASE_ADDRESS_MEM_MASK)) {
+		printk(KERN_ERR "PCI: Error while updating region "
+		       "%s/%d (%08x != %08x)\n", dev->slot_name, resource,
+		       new, check);
+	}
+}
+
+void pcibios_align_resource(void *data, struct resource *res,
+			    unsigned long size, unsigned long align)
+{
+	struct pci_dev *dev = data;
+
+	if (res->flags & IORESOURCE_IO) {
+		unsigned long start = res->start;
+
+		/* We need to avoid collisions with `mirrored' VGA ports
+		   and other strange ISA hardware, so we always want the
+		   addresses kilobyte aligned.  */
+		if (size > 0x100) {
+			printk(KERN_ERR "PCI: I/O Region %s/%d too large"
+			       " (%ld bytes)\n", dev->slot_name,
+			        dev->resource - res, size);
+		}
+
+		start = (start + 1024 - 1) & ~(1024 - 1);
+		res->start = start;
+	}
+}
+
+struct pci_ops marvell_pci_ops = {
+	marvell_pcibios_read_config_byte,
+	marvell_pcibios_read_config_word,
+	marvell_pcibios_read_config_dword,
+	marvell_pcibios_write_config_byte,
+	marvell_pcibios_write_config_word,
+	marvell_pcibios_write_config_dword
+};
+
+struct pci_fixup pcibios_fixups[] = {
+	{0}
+};
+
+void __init pcibios_fixup_bus(struct pci_bus *c)
+{
+	mv64340_board_pcibios_fixup_bus(c);
+}
+
+void __init pcibios_init(void)
+{
+	/* Reset PCI I/O and PCI MEM values */
+	ioport_resource.start = 0xe0000000;
+	ioport_resource.end   = 0xe0000000 + 0x20000000 - 1;
+	iomem_resource.start  = 0xc0000000;
+	iomem_resource.end    = 0xc0000000 + 0x20000000 - 1;
+
+	pci_scan_bus(0, &marvell_pci_ops, NULL);
+	pci_scan_bus(1, &marvell_pci_ops, NULL);
+}
+
+/*
+ * for parsing "pci=" kernel boot arguments.
+ */
+char *pcibios_setup(char *str)
+{
+        printk(KERN_INFO "rr: pcibios_setup\n");
+        /* Nothing to do for now.  */
+
+        return str;
+}
+
+unsigned __init int pcibios_assign_all_busses(void)
+{
+	return 1;
+}
+
+#endif	/* CONFIG_PCI */
diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/pci-irq.c linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/pci-irq.c
--- linux-2.4.20/arch/mips/momentum/ocelot_c/pci-irq.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/pci-irq.c	2002-11-11 17:05:46.000000000 -0600
@@ -0,0 +1,73 @@
+/*
+ * Copyright 2002 Momentum Computer Inc.
+ * Author: Matthew Dharm <mdharm@momenco.com> 
+ *
+ * Based on work for the Linux port to the Ocelot board, which is
+ * Copyright 2001 MontaVista Software Inc.
+ * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net
+ *
+ * arch/mips/momentum/ocelot_g/pci.c
+ *     Board-specific PCI routines for mv64340 controller.
+ *
+ * This program is free software; you can redistribute  it and/or modify it
+ * under  the terms of  the GNU General  Public License as published by the
+ * Free Software Foundation;  either version 2 of the  License, or (at your
+ * option) any later version.
+ */
+#include <linux/types.h>
+#include <linux/pci.h>
+#include <linux/kernel.h>
+#include <linux/version.h>
+#include <linux/init.h>
+#include <asm/pci.h>
+
+
+void __init mv64340_board_pcibios_fixup_bus(struct pci_bus *bus)
+{
+	struct pci_bus *current_bus = bus;
+	struct pci_dev *devices;
+	struct list_head *devices_link;
+	u16 cmd;
+
+	/* loop over all known devices on this bus */
+	list_for_each(devices_link, &(current_bus->devices)) {
+
+		devices = pci_dev_b(devices_link);
+		if (devices == NULL)
+			continue;
+
+		if ((current_bus->number == 0) &&
+			(PCI_SLOT(devices->devfn) == 1) &&
+			(PCI_FUNC(devices->devfn) == 0)) {
+			/* LSI 53C10101R SCSI (A) */
+			devices->irq = 2;
+		} else if ((current_bus->number == 0) &&
+			(PCI_SLOT(devices->devfn) == 1) &&
+			(PCI_FUNC(devices->devfn) == 1)) {
+			/* LSI 53C10101R SCSI (B) */
+			devices->irq = 2;
+		} else if ((current_bus->number == 1) &&
+			(PCI_SLOT(devices->devfn) == 1)) {
+			/* Intel 21555 bridge */
+			devices->irq = 12;
+		} else if ((current_bus->number == 1) &&
+			(PCI_SLOT(devices->devfn) == 2)) {
+			/* PMC Slot */
+			devices->irq = 4;
+		} else {
+			/* We don't have assign interrupts for other devices. */
+			devices->irq = 0xff;
+		}
+
+		/* Assign an interrupt number for the device */
+		bus->ops->write_byte(devices, PCI_INTERRUPT_LINE, devices->irq);
+
+		/* enable master for everything but the MV-64340 */
+		if (((current_bus->number != 0) && (current_bus->number != 1))
+				|| (PCI_SLOT(devices->devfn) != 0)) {
+			bus->ops->read_word(devices, PCI_COMMAND, &cmd);
+			cmd |= PCI_COMMAND_MASTER;
+			bus->ops->write_word(devices, PCI_COMMAND, cmd);
+		}
+	}
+}
diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/prom.c linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/prom.c
--- linux-2.4.20/arch/mips/momentum/ocelot_c/prom.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/prom.c	2002-11-11 17:05:46.000000000 -0600
@@ -0,0 +1,151 @@
+/*
+ * Copyright 2002 Momentum Computer Inc.
+ * Author: Matthew Dharm <mdharm@momenco.com>
+ *
+ * Based on Ocelot Linux port, which is
+ * Copyright 2001 MontaVista Software Inc.
+ * Author: jsun@mvista.com or jsun@junsun.net
+ *
+ * This program is free software; you can redistribute  it and/or modify it
+ * under  the terms of  the GNU General  Public License as published by the
+ * Free Software Foundation;  either version 2 of the  License, or (at your
+ * option) any later version.
+ */
+#include <linux/config.h>
+#include <linux/init.h>
+#include <linux/mm.h>
+#include <linux/sched.h>
+#include <linux/bootmem.h>
+
+#include <asm/addrspace.h>
+#include <asm/bootinfo.h>
+#include <asm/mv64340.h>
+
+#include "ocelot_c_fpga.h"
+
+struct callvectors {
+	int	(*open) (char*, int, int);
+	int	(*close) (int);
+	int	(*read) (int, void*, int);
+	int	(*write) (int, void*, int);
+	off_t	(*lseek) (int, off_t, int);
+	int	(*printf) (const char*, ...);
+	void	(*cacheflush) (void);
+	char*	(*gets) (char*);
+};
+
+struct callvectors* debug_vectors;
+char arcs_cmdline[CL_SIZE];
+
+extern unsigned long mv64340_base;
+extern unsigned long cpu_clock;
+
+#ifdef CONFIG_MV64340_ETH
+extern unsigned char prom_mac_addr_base[6];
+#endif
+
+const char *get_system_type(void)
+{
+#ifdef CONFIG_CPU_SR71000
+	return "Momentum Ocelot-CS";
+#else
+	return "Momentum Ocelot-C";
+#endif
+}
+
+#ifdef CONFIG_MV64340_ETH
+static void burn_clocks(void)
+{
+	int i;
+
+	/* this loop should burn at least 1us -- this should be plenty */
+	for (i = 0; i < 0x10000; i++)
+		;
+}
+
+static u8 exchange_bit(u8 val, u8 cs)
+{
+	/* place the data */
+	OCELOT_FPGA_WRITE((val << 2) | cs, EEPROM_MODE);
+	burn_clocks();
+
+	/* turn the clock on */
+	OCELOT_FPGA_WRITE((val << 2) | cs | 0x2, EEPROM_MODE);
+	burn_clocks();
+
+	/* turn the clock off and read-strobe */
+	OCELOT_FPGA_WRITE((val << 2) | cs | 0x10, EEPROM_MODE);
+	
+	/* return the data */
+	return ((OCELOT_FPGA_READ(EEPROM_MODE) >> 3) & 0x1);
+}
+
+void get_mac(char dest[6])
+{
+	u8 read_opcode[12] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+	int i,j;
+
+	for (i = 0; i < 12; i++)
+		exchange_bit(read_opcode[i], 1);
+
+	for (j = 0; j < 6; j++) {
+		dest[j] = 0;
+		for (i = 0; i < 8; i++) {
+			dest[j] <<= 1;
+			dest[j] |= exchange_bit(0, 1);
+		}
+	}
+
+	/* turn off CS */
+	exchange_bit(0,0);
+}
+#endif
+
+/* [jsun@junsun.net] PMON passes arguments in C main() style */
+void __init prom_init(int argc, char **arg, char** env, struct callvectors *cv)
+{
+	int i;
+
+	/* save the PROM vectors for debugging use */
+	debug_vectors = cv;
+
+	/* arg[0] is "g", the rest is boot parameters */
+	arcs_cmdline[0] = '\0';
+	for (i = 1; i < argc; i++) {
+		if (strlen(arcs_cmdline) + strlen(arg[i] + 1)
+		    >= sizeof(arcs_cmdline))
+			break;
+		strcat(arcs_cmdline, arg[i]);
+		strcat(arcs_cmdline, " ");
+	}
+
+	mips_machgroup = MACH_GROUP_MOMENCO;
+	mips_machtype = MACH_MOMENCO_OCELOT_C;
+
+	while (*env) {
+		if (strncmp("gtbase", *env, strlen("gtbase")) == 0) {
+			mv64340_base = simple_strtol(*env + strlen("gtbase="),
+							NULL, 16);
+		}
+		if (strncmp("cpuclock", *env, strlen("cpuclock")) == 0) {
+			cpu_clock = simple_strtol(*env + strlen("cpuclock="),
+							NULL, 10);
+		}
+		env++;
+	}
+
+#ifdef CONFIG_MV64340_ETH
+	/* get the base MAC address for on-board ethernet ports */
+	get_mac(prom_mac_addr_base);
+#endif
+
+	debug_vectors->printf("Booting Linux kernel...\n");
+}
+
+void __init prom_free_prom_memory(void)
+{
+}
+
+void __init prom_fixup_mem_map(unsigned long start, unsigned long end)
+{
+}
diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/reset.c linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/reset.c
--- linux-2.4.20/arch/mips/momentum/ocelot_c/reset.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/reset.c	2002-11-11 17:05:46.000000000 -0600
@@ -0,0 +1,50 @@
+/*
+ * This program is free software; you can redistribute  it and/or modify it
+ * under  the terms of  the GNU General  Public License as published by the
+ * Free Software Foundation;  either version 2 of the  License, or (at your
+ * option) any later version.
+ *
+ * Copyright (C) 1997, 2001 Ralf Baechle
+ * Copyright 2001 MontaVista Software Inc.
+ * Author: jsun@mvista.com or jsun@junsun.net
+ *
+ * Copyright (C) 2002 Momentum Computer Inc.
+ * Author: Matthew Dharm <mdharm@momenco.com>
+ */
+#include <linux/sched.h>
+#include <linux/mm.h>
+#include <asm/io.h>
+#include <asm/pgtable.h>
+#include <asm/processor.h>
+#include <asm/reboot.h>
+#include <asm/system.h>
+#include <linux/delay.h>
+
+void momenco_ocelot_restart(char *command)
+{
+	/* base address of timekeeper portion of part */
+	void *nvram = (void*) 0xfc807000;
+
+ 	/* Ask the NVRAM/RTC/watchdog chip to assert reset in 1/16 second */
+	writeb(0x84, nvram + 0xff7);
+
+	/* wait for the watchdog to go off */
+	mdelay(100+(1000/16));
+
+	/* if the watchdog fails for some reason, let people know */
+	printk(KERN_NOTICE "Watchdog reset failed\n");
+}
+
+void momenco_ocelot_halt(void)
+{
+	printk(KERN_NOTICE "\n** You can safely turn off the power\n");
+	while (1)
+		__asm__(".set\tmips3\n\t"
+	                "wait\n\t"
+			".set\tmips0");
+}
+
+void momenco_ocelot_power_off(void)
+{
+	momenco_ocelot_halt();
+}
diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/setup.c
--- linux-2.4.20/arch/mips/momentum/ocelot_c/setup.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/setup.c	2002-11-11 17:05:46.000000000 -0600
@@ -0,0 +1,332 @@
+/*
+ * setup.c
+ *
+ * BRIEF MODULE DESCRIPTION
+ * Momentum Computer Ocelot-C and -CS board dependent boot routines
+ *
+ * Copyright (C) 1996, 1997, 2001  Ralf Baechle
+ * Copyright (C) 2000 RidgeRun, Inc.
+ * Copyright (C) 2001 Red Hat, Inc.
+ * Copyright (C) 2002 Momentum Computer
+ *
+ * Author: Matthew Dharm, Momentum Computer
+ *   mdharm@momenco.com
+ *
+ * Author: RidgeRun, Inc.
+ *   glonnon@ridgerun.com, skranz@ridgerun.com, stevej@ridgerun.com
+ *
+ * Copyright 2001 MontaVista Software Inc.
+ * Author: jsun@mvista.com or jsun@junsun.net
+ *
+ *  This program is free software; you can redistribute  it and/or modify it
+ *  under  the terms of  the GNU General  Public License as published by the
+ *  Free Software Foundation;  either version 2 of the  License, or (at your
+ *  option) any later version.
+ *
+ *  THIS  SOFTWARE  IS PROVIDED   ``AS  IS'' AND   ANY  EXPRESS OR IMPLIED
+ *  WARRANTIES,   INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
+ *  NO  EVENT  SHALL   THE AUTHOR  BE    LIABLE FOR ANY   DIRECT, INDIRECT,
+ *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ *  NOT LIMITED   TO, PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS OF
+ *  USE, DATA,  OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ *  ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *  You should have received a copy of the  GNU General Public License along
+ *  with this program; if not, write  to the Free Software Foundation, Inc.,
+ *  675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/types.h>
+#include <linux/mc146818rtc.h>
+#include <linux/mm.h>
+#include <linux/swap.h>
+#include <linux/ioport.h>
+#include <linux/sched.h>
+#include <linux/interrupt.h>
+#include <linux/pci.h>
+#include <linux/timex.h>
+#include <linux/vmalloc.h>
+#include <asm/time.h>
+#include <asm/bootinfo.h>
+#include <asm/page.h>
+#include <asm/bootinfo.h>
+#include <asm/io.h>
+#include <asm/irq.h>
+#include <asm/pci.h>
+#include <asm/processor.h>
+#include <asm/ptrace.h>
+#include <asm/reboot.h>
+#include <asm/mc146818rtc.h>
+#include <linux/version.h>
+#include <linux/bootmem.h>
+#include <linux/blk.h>
+#include <asm/mv64340.h>
+#include "ocelot_c_fpga.h"
+
+unsigned long mv64340_base;
+unsigned long cpu_clock;
+
+/* These functions are used for rebooting or halting the machine*/
+extern void momenco_ocelot_restart(char *command);
+extern void momenco_ocelot_halt(void);
+extern void momenco_ocelot_power_off(void);
+
+void momenco_time_init(void);
+
+static char reset_reason;
+
+#define ENTRYLO(x) ((pte_val(mk_pte_phys((x), PAGE_KERNEL_UNCACHED)) >> 6)|1)
+
+void __init bus_error_init(void) { /* nothing */ }
+
+/* setup code for a handoff from a version 2 PMON 2000 PROM */
+void PMON_v2_setup(void)
+{
+	/* Some wired TLB entries for the MV64340 and perhiperals. The
+	   MV64340 is going to be hit on every IRQ anyway - there's
+	   absolutely no point in letting it be a random TLB entry, as
+	   it'll just cause needless churning of the TLB. And we use
+	   the other half for the serial port, which is just a PITA
+	   otherwise :)
+
+		Device			Physical	Virtual
+		MV64340 Internal Regs	0xf4000000	0xf4000000
+		Ocelot-C[S] PLD (CS0)	0xfc000000	0xfc000000
+		NVRAM (CS1)		0xfc800000	0xfc800000
+		UARTs (CS2)		0xfd000000	0xfd000000
+		Internal SRAM		0xfe000000	0xfe000000
+		M-Systems DOC (CS3)	0xff000000	0xff000000
+	*/
+
+	/* marvell and extra space */
+	add_wired_entry(ENTRYLO(0xf4000000), ENTRYLO(0xf4010000), 0xf4000000, PM_64K);
+	/* fpga, rtc, and uart */
+	add_wired_entry(ENTRYLO(0xfc000000), ENTRYLO(0xfd000000), 0xfc000000, PM_16M);
+	/* m-sys and internal SRAM */
+	add_wired_entry(ENTRYLO(0xfe000000), ENTRYLO(0xff000000), 0xfe000000, PM_16M);
+
+	mv64340_base = 0xf4000000;
+}
+
+#define CONV_BCD_TO_BIN(val)	(((val) & 0xf) + (((val) >> 4) * 10))
+#define CONV_BIN_TO_BCD(val)	(((val) % 10) + (((val) / 10) << 4))
+
+unsigned long m48t37y_get_time(void)
+{
+	unsigned char* rtc_base = (unsigned char*)0xfc800000;
+	unsigned int year, month, day, hour, min, sec;
+
+	/* stop the update */
+	rtc_base[0x7ff8] = 0x40;
+
+	year = CONV_BCD_TO_BIN(rtc_base[0x7fff]);
+	year += CONV_BCD_TO_BIN(rtc_base[0x7ff1]) * 100;
+
+	month = CONV_BCD_TO_BIN(rtc_base[0x7ffe]);
+
+	day = CONV_BCD_TO_BIN(rtc_base[0x7ffd]);
+
+	hour = CONV_BCD_TO_BIN(rtc_base[0x7ffb]);
+	min = CONV_BCD_TO_BIN(rtc_base[0x7ffa]);
+	sec = CONV_BCD_TO_BIN(rtc_base[0x7ff9]);
+
+	/* start the update */
+	rtc_base[0x7ff8] = 0x00;
+
+	return mktime(year, month, day, hour, min, sec);
+}
+
+int m48t37y_set_time(unsigned long sec)
+{
+	unsigned char* rtc_base = (unsigned char*)0xfc800000;
+	struct rtc_time tm;
+
+	/* convert to a more useful format -- note months count from 0 */
+	to_tm(sec, &tm);
+	tm.tm_mon += 1;
+
+	/* enable writing */
+	rtc_base[0x7ff8] = 0x80;
+
+	/* year */
+	rtc_base[0x7fff] = CONV_BIN_TO_BCD(tm.tm_year % 100);
+	rtc_base[0x7ff1] = CONV_BIN_TO_BCD(tm.tm_year / 100);
+
+	/* month */
+	rtc_base[0x7ffe] = CONV_BIN_TO_BCD(tm.tm_mon);
+
+	/* day */
+	rtc_base[0x7ffd] = CONV_BIN_TO_BCD(tm.tm_mday);
+
+	/* hour/min/sec */
+	rtc_base[0x7ffb] = CONV_BIN_TO_BCD(tm.tm_hour);
+	rtc_base[0x7ffa] = CONV_BIN_TO_BCD(tm.tm_min);
+	rtc_base[0x7ff9] = CONV_BIN_TO_BCD(tm.tm_sec);
+
+	/* day of week -- not really used, but let's keep it up-to-date */
+	rtc_base[0x7ffc] = CONV_BIN_TO_BCD(tm.tm_wday + 1);
+
+	/* disable writing */
+	rtc_base[0x7ff8] = 0x00;
+
+	return 0;
+}
+
+void momenco_timer_setup(struct irqaction *irq)
+{
+	setup_irq(7, irq);
+}
+
+void momenco_time_init(void)
+{
+#ifdef CONFIG_CPU_SR71000
+	mips_counter_frequency = cpu_clock;
+#elif defined(CONFIG_CPU_RM7000)
+	mips_counter_frequency = cpu_clock / 2;
+#else
+#error Unknown CPU for this board
+#endif
+	board_timer_setup = momenco_timer_setup;
+
+	rtc_get_time = m48t37y_get_time;
+	rtc_set_time = m48t37y_set_time;
+}
+
+void __init momenco_ocelot_c_setup(void)
+{
+	unsigned int tmpword;
+
+	board_time_init = momenco_time_init;
+
+	_machine_restart = momenco_ocelot_restart;
+	_machine_halt = momenco_ocelot_halt;
+	_machine_power_off = momenco_ocelot_power_off;
+
+	/*
+	 * initrd_start = (ulong)ocelot_initrd_start;
+	 * initrd_end = (ulong)ocelot_initrd_start + (ulong)ocelot_initrd_size;
+	 * initrd_below_start_ok = 1;
+	 */
+
+	/* do handoff reconfiguration */
+	PMON_v2_setup();
+
+	/* shut down ethernet ports, just to be sure our memory doesn't get
+	 * corrupted by random ethernet traffic.
+	 */
+	MV_WRITE(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(0), 0xff << 8);
+	MV_WRITE(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(1), 0xff << 8);
+	MV_WRITE(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(0), 0xff << 8);
+	MV_WRITE(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(1), 0xff << 8);
+	do {}
+	  while (MV_READ_DATA(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(0)) & 0xff);
+	do {}
+	  while (MV_READ_DATA(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(1)) & 0xff);
+	do {}
+	  while (MV_READ_DATA(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(0)) & 0xff);
+	do {}
+	  while (MV_READ_DATA(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(1)) & 0xff);
+	MV_WRITE(MV64340_ETH_PORT_SERIAL_CONTROL_REG(0), MV_READ_DATA(MV64340_ETH_PORT_SERIAL_CONTROL_REG(0)) & ~1);
+	MV_WRITE(MV64340_ETH_PORT_SERIAL_CONTROL_REG(1), MV_READ_DATA(MV64340_ETH_PORT_SERIAL_CONTROL_REG(1)) & ~1);
+
+	/* Turn off the Bit-Error LED */
+	OCELOT_FPGA_WRITE(0x80, CLR);
+
+	tmpword = OCELOT_FPGA_READ(BOARDREV);
+#ifdef CONFIG_CPU_SR71000
+	if (tmpword < 26)
+		printk("Momenco Ocelot-CS: Board Assembly Rev. %c\n",
+			'A'+tmpword);
+	else
+		printk("Momenco Ocelot-CS: Board Assembly Revision #0x%x\n",
+			tmpword);
+#else
+	if (tmpword < 26)
+		printk("Momenco Ocelot-C: Board Assembly Rev. %c\n",
+			'A'+tmpword);
+	else
+		printk("Momenco Ocelot-C: Board Assembly Revision #0x%x\n",
+			tmpword);
+#endif
+
+	tmpword = OCELOT_FPGA_READ(FPGA_REV);
+	printk("FPGA Rev: %d.%d\n", tmpword>>4, tmpword&15);
+	tmpword = OCELOT_FPGA_READ(RESET_STATUS);
+	printk("Reset reason: 0x%x\n", tmpword);
+	switch (tmpword) {
+		case 0x1:
+			printk("  - Power-up reset\n");
+			break;
+		case 0x2:
+			printk("  - Push-button reset\n");
+			break;
+		case 0x4:
+			printk("  - cPCI bus reset\n");
+			break;
+		case 0x8:
+			printk("  - Watchdog reset\n");
+			break;
+		case 0x10:
+			printk("  - Software reset\n");
+			break;
+		default:
+			printk("  - Unknown reset cause\n");
+	}
+	reset_reason = tmpword;
+	OCELOT_FPGA_WRITE(0xff, RESET_STATUS);
+
+	tmpword = OCELOT_FPGA_READ(CPCI_ID);
+	printk("cPCI ID register: 0x%02x\n", tmpword);
+	printk("  - Slot number: %d\n", tmpword & 0x1f);
+	printk("  - PCI bus present: %s\n", tmpword & 0x40 ? "yes" : "no");
+	printk("  - System Slot: %s\n", tmpword & 0x20 ? "yes" : "no");
+
+	tmpword = OCELOT_FPGA_READ(BOARD_STATUS);
+	printk("Board Status register: 0x%02x\n", tmpword);
+	printk("  - User jumper: %s\n", (tmpword & 0x80)?"installed":"absent");
+	printk("  - Boot flash write jumper: %s\n", (tmpword&0x40)?"installed":"absent");
+	printk("  - L3 Cache size: %d MiB\n", (1<<((tmpword&12) >> 2))&~1);
+	printk("  - SDRAM size: %d MiB\n", 1<<(6+(tmpword&3)));
+
+	switch(tmpword &3) {
+	case 3:
+		/* 512MiB */
+		add_memory_region(0x0, 0x200<<20, BOOT_MEM_RAM);
+		break;
+	case 2:
+		/* 256MiB */
+		add_memory_region(0x0, 0x100<<20, BOOT_MEM_RAM);
+		break;
+	case 1:
+		/* 128MiB */
+		add_memory_region(0x0,  0x80<<20, BOOT_MEM_RAM);
+		break;
+	case 0:
+		/* 1GiB -- needs CONFIG_HIGHMEM */
+		add_memory_region(0x0, 0x400<<20, BOOT_MEM_RAM);
+		break;
+	}
+}
+
+/* This needs to be one of the first initcalls, because no I/O port access
+   can work before this */
+static int io_base_ioremap(void)
+{
+	/* we're mapping PCI accesses from 0xc0000000 to 0xf0000000 */
+	void *io_remap_range = ioremap(0xc0000000, 0x30000000);
+
+	if (!io_remap_range) {
+		panic("Could not ioremap I/O port range");
+	}
+	printk("io_remap_range set at 0x%08x\n", (uint32_t)io_remap_range);
+	set_io_port_base(io_remap_range - 0xc0000000);
+
+	return 0;
+}
+
+module_init(io_base_ioremap);
diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/uart-irq.c linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/uart-irq.c
--- linux-2.4.20/arch/mips/momentum/ocelot_c/uart-irq.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/uart-irq.c	2002-11-11 17:05:46.000000000 -0600
@@ -0,0 +1,149 @@
+/*
+ * Copyright 2002 Momentum Computer
+ * Author: mdharm@momenco.com
+ *
+ * arch/mips/momentum/ocelot_c/uart-irq.c
+ *     Interrupt routines for UARTs.  Interrupt numbers are assigned from
+ *     80 to 81 (2 interrupt sources).
+ *
+ * This program is free software; you can redistribute  it and/or modify it
+ * under  the terms of  the GNU General  Public License as published by the
+ * Free Software Foundation;  either version 2 of the  License, or (at your
+ * option) any later version.
+ */
+
+#include <linux/module.h>
+#include <linux/interrupt.h>
+#include <linux/kernel.h>
+#include <asm/ptrace.h>
+#include <linux/config.h>
+#include <linux/sched.h>
+#include <linux/kernel_stat.h>
+#include <asm/io.h>
+#include <asm/irq.h>
+#include "ocelot_c_fpga.h"
+
+extern unsigned int do_IRQ(int irq, struct pt_regs *regs);
+
+static inline int ls1bit8(unsigned int x)
+{
+        int b = 7, s;
+
+        s =  4; if (((unsigned char)(x << 4)) == 0) s = 0; b -= s; x <<= s;
+        s =  2; if (((unsigned char)(x << 2)) == 0) s = 0; b -= s; x <<= s;
+        s =  1; if (((unsigned char)(x << 1)) == 0) s = 0; b -= s;
+
+        return b;
+}
+
+/* mask off an interrupt -- 0 is enable, 1 is disable */
+static inline void mask_uart_irq(unsigned int irq)
+{
+	uint8_t value;
+
+	value = OCELOT_FPGA_READ(UART_INTMASK);
+	value |= 1 << (irq - 74);
+	OCELOT_FPGA_WRITE(value, UART_INTMASK);
+
+	/* read the value back to assure that it's really been written */
+	value = OCELOT_FPGA_READ(UART_INTMASK);
+}
+
+/* unmask an interrupt -- 0 is enable, 1 is disable */
+static inline void unmask_uart_irq(unsigned int irq)
+{
+	uint8_t value;
+
+	value = OCELOT_FPGA_READ(UART_INTMASK);
+	value &= ~(1 << (irq - 74));
+	OCELOT_FPGA_WRITE(value, UART_INTMASK);
+
+	/* read the value back to assure that it's really been written */
+	value = OCELOT_FPGA_READ(UART_INTMASK);
+}
+
+/*
+ * Enables the IRQ in the FPGA
+ */
+static void enable_uart_irq(unsigned int irq)
+{
+	unmask_uart_irq(irq);
+}
+
+/*
+ * Initialize the IRQ in the FPGA
+ */
+static unsigned int startup_uart_irq(unsigned int irq)
+{
+	unmask_uart_irq(irq);
+	return 0;
+}
+
+/*
+ * Disables the IRQ in the FPGA
+ */
+static void disable_uart_irq(unsigned int irq)
+{
+	mask_uart_irq(irq);
+}
+
+/*
+ * Masks and ACKs an IRQ
+ */
+static void mask_and_ack_uart_irq(unsigned int irq)
+{
+	mask_uart_irq(irq);
+}
+
+/*
+ * End IRQ processing
+ */
+static void end_uart_irq(unsigned int irq)
+{
+	if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
+		unmask_uart_irq(irq);
+}
+
+/*
+ * Interrupt handler for interrupts coming from the FPGA chip.
+ */
+void ll_uart_irq(struct pt_regs *regs)
+{
+	unsigned int irq_src, irq_mask;
+
+	/* read the interrupt status registers */
+	irq_src = OCELOT_FPGA_READ(UART_INTSTAT);
+	irq_mask = OCELOT_FPGA_READ(UART_INTMASK);
+
+	/* mask for just the interrupts we want */
+	irq_src &= ~irq_mask;
+
+	do_IRQ(ls1bit8(irq_src) + 74, regs);
+}
+
+#define shutdown_uart_irq	disable_uart_irq
+
+struct hw_interrupt_type uart_irq_type = {
+	"UART/FPGA",
+	startup_uart_irq,
+	shutdown_uart_irq,
+	enable_uart_irq,
+	disable_uart_irq,
+	mask_and_ack_uart_irq,
+	end_uart_irq,
+	NULL
+};
+
+void uart_irq_init(void)
+{
+	/* Reset irq handlers pointers to NULL */
+	irq_desc[80].status = IRQ_DISABLED;
+	irq_desc[80].action = 0;
+	irq_desc[80].depth = 2;
+	irq_desc[80].handler = &uart_irq_type;
+
+	irq_desc[81].status = IRQ_DISABLED;
+	irq_desc[81].action = 0;
+	irq_desc[81].depth = 2;
+	irq_desc[81].handler = &uart_irq_type;
+}
diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_g/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/CVS/Entries
--- linux-2.4.20/arch/mips/momentum/ocelot_g/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/CVS/Entries	2005-01-06 23:00:09.000000000 -0600
@@ -0,0 +1,15 @@
+/.cvsignore/1.1.2.1/Thu Nov  7 00:06:20 2002/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.3/Wed Nov 13 10:00:14 2002/-ko/Tlinux_2_4_20
+/dbg_io.c/1.1.2.1/Mon Sep  2 16:11:44 2002/-ko/Tlinux_2_4_20
+/gt-irq.c/1.1.2.2/Mon Sep  2 22:14:42 2002/-ko/Tlinux_2_4_20
+/gt64240.h/1.1.2.2/Mon Sep  2 22:14:42 2002/-ko/Tlinux_2_4_20
+/gt64240_dep.h/1.1.2.2/Mon Sep  2 22:14:42 2002/-ko/Tlinux_2_4_20
+/int-handler.S/1.1.2.2/Mon Sep  2 22:14:42 2002/-ko/Tlinux_2_4_20
+/irq.c/1.1.2.2/Mon Dec  2 00:24:50 2002/-ko/Tlinux_2_4_20
+/ocelot_pld.h/1.1.2.2/Thu Nov  7 00:06:20 2002/-ko/Tlinux_2_4_20
+/pci-irq.c/1.1.2.2/Mon Sep  2 22:14:42 2002/-ko/Tlinux_2_4_20
+/pci.c/1.1.2.4/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/prom.c/1.1.2.1/Mon Sep  2 16:11:44 2002/-ko/Tlinux_2_4_20
+/reset.c/1.1.2.1/Mon Sep  2 16:11:44 2002/-ko/Tlinux_2_4_20
+/setup.c/1.1.2.4/Mon Dec  2 00:24:50 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_g/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/CVS/Repository
--- linux-2.4.20/arch/mips/momentum/ocelot_g/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/CVS/Repository	2005-01-06 23:00:08.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/momentum/ocelot_g
diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_g/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/CVS/Root
--- linux-2.4.20/arch/mips/momentum/ocelot_g/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/CVS/Root	2005-01-06 23:00:08.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_g/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/CVS/Tag
--- linux-2.4.20/arch/mips/momentum/ocelot_g/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/CVS/Tag	2005-01-06 23:00:09.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_g/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/.cvsignore
--- linux-2.4.20/arch/mips/momentum/ocelot_g/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/.cvsignore	2002-11-06 18:06:20.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_g/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/irq.c
--- linux-2.4.20/arch/mips/momentum/ocelot_g/irq.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/irq.c	2002-12-01 18:24:50.000000000 -0600
@@ -60,18 +60,18 @@
 	/* do the low 8 bits first */
 	clr_mask = 0xff & clr_mask_in;
 	set_mask = 0xff & set_mask_in;
-	status = read_32bit_cp0_register(CP0_STATUS);
+	status = read_c0_status();
 	status &= ~((clr_mask & 0xFF) << 8);
 	status |= (set_mask & 0xFF) << 8;
-	write_32bit_cp0_register(CP0_STATUS, status);
+	write_c0_status(status);
 
 	/* do the high 8 bits */
 	clr_mask = 0xff & (clr_mask_in >> 8);
 	set_mask = 0xff & (set_mask_in >> 8);
-	status = read_32bit_cp0_set1_register(CP0_S1_INTCONTROL);
+	status = read_c0_intcontrol();
 	status &= ~((clr_mask & 0xFF) << 8);
 	status |= (set_mask & 0xFF) << 8;
-	write_32bit_cp0_set1_register(CP0_S1_INTCONTROL, status);
+	write_c0_intrcontrol(status);
 }
 
 static inline void mask_irq(unsigned int irq)
@@ -145,7 +145,7 @@
 	 * Clear all of the interrupts while we change the able around a bit.
 	 * int-handler is not on bootstrap
 	 */
-	clear_cp0_status(ST0_IM | ST0_BEV);
+	clear_c0_status(ST0_IM | ST0_BEV);
 	__cli();
 
 	/* Sets the first-level interrupt dispatcher. */
diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_g/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/Makefile
--- linux-2.4.20/arch/mips/momentum/ocelot_g/Makefile	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/Makefile	2002-11-13 04:00:14.000000000 -0600
@@ -6,10 +6,7 @@
 # unless it's something special (ie not a .c file).
 #
 
-.S.s:
-	$(CPP) $(CFLAGS) $< -o $*.s
-.S.o:
-	$(CC) $(CFLAGS) -c $< -o $*.o
+USE_STANDARD_AS_RULE := true
 
 O_TARGET:= ocelot_g.o
 
diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_g/ocelot_pld.h linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/ocelot_pld.h
--- linux-2.4.20/arch/mips/momentum/ocelot_g/ocelot_pld.h	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/ocelot_pld.h	2002-11-06 18:06:20.000000000 -0600
@@ -8,11 +8,7 @@
 #ifndef __MOMENCO_OCELOT_PLD_H__
 #define __MOMENCO_OCELOT_PLD_H__
 
-#if 0
-#define OCELOT_CS0_ADDR (0xe0020000)
-#else
 #define OCELOT_CS0_ADDR (0xfc000000)
-#endif
 
 #define OCELOT_REG_BOARDREV (0)
 #define OCELOT_REG_PLD1_ID (1)
diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_g/pci.c linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/pci.c
--- linux-2.4.20/arch/mips/momentum/ocelot_g/pci.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/pci.c	2003-01-11 11:53:10.000000000 -0600
@@ -405,7 +405,7 @@
 	return 0;
 }
 
-int pcibios_enable_device(struct pci_dev *dev)
+int pcibios_enable_device(struct pci_dev *dev, int mask)
 {
 	return pcibios_enable_resources(dev);
 }
diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_g/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/setup.c
--- linux-2.4.20/arch/mips/momentum/ocelot_g/setup.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/setup.c	2002-12-01 18:24:50.000000000 -0600
@@ -70,6 +70,10 @@
 
 extern struct rtc_ops no_rtc_ops;
 
+#ifdef CONFIG_GALILLEO_GT64240_ETH
+extern unsigned char prom_mac_addr_base[6];
+#endif
+
 unsigned long gt64240_base;
 
 /* These functions are used for rebooting or halting the machine*/
@@ -139,6 +143,11 @@
 	/* do handoff reconfiguration */
 	PMON_v2_setup();
 
+#ifdef CONFIG_GALILLEO_GT64240_ETH
+	/* get the mac addr */
+	memcpy(prom_mac_addr_base, (void*)0xfc807cf2, 6);
+#endif
+
 	/* Turn off the Bit-Error LED */
 	OCELOT_PLD_WRITE(0x80, INTCLR);
 
@@ -213,11 +222,11 @@
 	GT_WRITE(0, tmp | (1<<14));
 
 	/* Enable the L3 cache in the CPU */
-	set_cp0_config(1<<12 /* CONF_TE */);
+	set_c0_config(1<<12 /* CONF_TE */);
 
 	/* Clear the cache */
-	set_taglo(0);
-	set_taghi(0);
+	write_c0_taglo(0);
+	write_c0_taghi(0);
 
 	for (i=0; i < size; i+= 4096) {
 		__asm__ __volatile__ (
diff -urNd -urNd linux-2.4.20/arch/mips/philips/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/philips/CVS/Entries
--- linux-2.4.20/arch/mips/philips/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/philips/CVS/Entries	2005-01-06 23:08:20.000000000 -0600
@@ -0,0 +1 @@
+D/nino////
diff -urNd -urNd linux-2.4.20/arch/mips/philips/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/philips/CVS/Repository
--- linux-2.4.20/arch/mips/philips/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/philips/CVS/Repository	2005-01-06 23:00:09.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/philips
diff -urNd -urNd linux-2.4.20/arch/mips/philips/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/philips/CVS/Root
--- linux-2.4.20/arch/mips/philips/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/philips/CVS/Root	2005-01-06 23:00:09.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/philips/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/philips/CVS/Tag
--- linux-2.4.20/arch/mips/philips/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/philips/CVS/Tag	2005-01-06 23:00:09.000000000 -0600
@@ -0,0 +1 @@
+Tlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/philips/nino/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/CVS/Entries
--- linux-2.4.20/arch/mips/philips/nino/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/CVS/Entries	2005-01-06 23:08:20.000000000 -0600
@@ -0,0 +1,9 @@
+/.cvsignore/1.1/Thu Feb 22 04:12:12 2001/-ko/Tlinux_2_4_20
+/Makefile/1.7.2.1/Tue Jun 25 15:47:00 2002/-ko/Tlinux_2_4_20
+/TODO/1.2/Sat Nov 24 14:03:19 2001/-ko/Tlinux_2_4_20
+/int-handler.S/1.4/Wed Oct 31 04:18:24 2001/-ko/Tlinux_2_4_20
+/irq.c/1.9.2.4/Mon Dec  2 00:24:50 2002/-ko/Tlinux_2_4_20
+/power.c/1.4.2.1/Mon Aug  5 23:53:35 2002/-ko/Tlinux_2_4_20
+/prom.c/1.6.2.2/Mon Aug  5 23:53:35 2002/-ko/Tlinux_2_4_20
+/setup.c/1.10.2.2/Wed Jun 26 12:22:42 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/philips/nino/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/CVS/Repository
--- linux-2.4.20/arch/mips/philips/nino/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/CVS/Repository	2005-01-06 23:00:09.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/philips/nino
diff -urNd -urNd linux-2.4.20/arch/mips/philips/nino/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/CVS/Root
--- linux-2.4.20/arch/mips/philips/nino/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/CVS/Root	2005-01-06 23:00:09.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/philips/nino/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/CVS/Tag
--- linux-2.4.20/arch/mips/philips/nino/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/CVS/Tag	2005-01-06 23:00:09.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/philips/nino/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/.cvsignore
--- linux-2.4.20/arch/mips/philips/nino/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/.cvsignore	2001-02-21 22:12:12.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/philips/nino/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/irq.c
--- linux-2.4.20/arch/mips/philips/nino/irq.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/irq.c	2002-12-01 18:24:50.000000000 -0600
@@ -9,6 +9,7 @@
  *
  *  Interrupt service routines for Philips Nino
  */
+#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/sched.h>
 #include <linux/interrupt.h>
@@ -112,7 +113,7 @@
 
 static void enable_irq4(unsigned int irq)
 {
-	set_cp0_status(STATUSF_IP4);
+	set_c0_status(STATUSF_IP4);
 	if (irq == 2) {
 		outl(inl(TX3912_INT2_CLEAR) | TX3912_INT2_UARTA_TX_BITS,
 			TX3912_INT2_CLEAR);
@@ -130,7 +131,7 @@
 
 static void disable_irq4(unsigned int irq)
 {
-	clear_cp0_status(STATUSF_IP4);
+	clear_c0_status(STATUSF_IP4);
 }
 
 #define shutdown_irq4		disable_irq4
@@ -198,7 +199,7 @@
 	unsigned int i;
 
 	/* Disable all hardware interrupts */
-	change_cp0_status(ST0_IM, 0x00);
+	change_c0_status(ST0_IM, 0x00);
 
 	/* Clear interrupts */
 	outl(0xffffffff, TX3912_INT1_CLEAR);
@@ -243,7 +244,7 @@
 		TX3912_INT6_ENABLE);
 
 	/* Enable all interrupts */
-	change_cp0_status(ST0_IM, ALLINTS);
+	change_c0_status(ST0_IM, ALLINTS);
 }
 
 void (*irq_setup)(void);
diff -urNd -urNd linux-2.4.20/arch/mips/philips/nino/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/Makefile
--- linux-2.4.20/arch/mips/philips/nino/Makefile	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/Makefile	2002-06-25 10:47:00.000000000 -0500
@@ -6,10 +6,7 @@
 # unless it's something special (ie not a .c file).
 #
 
-.S.s:
-	$(CPP) $(AFLAGS) $< -o $@
-.S.o:
-	$(CC) $(AFLAGS) -c $< -o $@
+USE_STANDARD_AS_RULE := true
 
 O_TARGET	:= nino.o
 
diff -urNd -urNd linux-2.4.20/arch/mips/philips/nino/power.c linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/power.c
--- linux-2.4.20/arch/mips/philips/nino/power.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/power.c	2002-08-05 18:53:35.000000000 -0500
@@ -19,7 +19,7 @@
 	outl(inl(TX3912_POWER_CTRL) | TX3912_POWER_CTRL_STOPCPU,
 		 TX3912_POWER_CTRL);
 
-	/* 
+	/*
 	 * We wait until an interrupt happens...
 	 */
 
diff -urNd -urNd linux-2.4.20/arch/mips/philips/nino/prom.c linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/prom.c
--- linux-2.4.20/arch/mips/philips/nino/prom.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/prom.c	2002-08-05 18:53:35.000000000 -0500
@@ -6,7 +6,7 @@
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
- *  
+ *
  *  Early initialization code for the Philips Nino
  */
 #include <linux/config.h>
@@ -60,8 +60,8 @@
 	 * memory and mark it as reserved.
 	 */
 	free_end = (mem_size - tx3912fb_size) & PAGE_MASK;
-	add_memory_region(0, free_end, BOOT_MEM_RAM); 
-	add_memory_region(free_end, (mem_size - free_end), BOOT_MEM_RESERVED); 
+	add_memory_region(0, free_end, BOOT_MEM_RAM);
+	add_memory_region(free_end, (mem_size - free_end), BOOT_MEM_RESERVED);
 
 	/*
 	 * Calculate physical and virtual addresses for
@@ -71,7 +71,7 @@
 	tx3912fb_vaddr = KSEG1ADDR(free_end);
 }
 #else
-	add_memory_region(0, mem_size, BOOT_MEM_RAM); 
+	add_memory_region(0, mem_size, BOOT_MEM_RAM);
 #endif
 }
 
diff -urNd -urNd linux-2.4.20/arch/mips/philips/nino/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/setup.c
--- linux-2.4.20/arch/mips/philips/nino/setup.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/setup.c	2002-06-26 07:22:42.000000000 -0500
@@ -9,6 +9,7 @@
  *
  *  Interrupt and exception initialization for Philips Nino
  */
+#include <linux/config.h>
 #include <linux/console.h>
 #include <linux/init.h>
 #include <linux/interrupt.h>
@@ -18,6 +19,7 @@
 #include <asm/irq.h>
 #include <asm/reboot.h>
 #include <asm/time.h>
+#include <asm/traps.h>
 #include <asm/tx3912.h>
 
 static void nino_machine_restart(char *command)
@@ -80,6 +82,10 @@
 	setup_irq(0, irq);
 }
 
+
+void __init bus_error_init(void) { /* nothing */ }
+
+
 void __init nino_setup(void)
 {
 	extern void nino_irq_setup(void);
diff -urNd -urNd linux-2.4.20/arch/mips/ramdisk/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/ramdisk/CVS/Entries
--- linux-2.4.20/arch/mips/ramdisk/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ramdisk/CVS/Entries	2005-01-06 23:00:09.000000000 -0600
@@ -0,0 +1,4 @@
+/.cvsignore/1.1/Tue Nov 13 05:35:54 2001/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.1/Thu Oct  3 01:27:58 2002/-ko/Tlinux_2_4_20
+/ld.script/1.1/Tue Nov 13 05:35:54 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/ramdisk/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/ramdisk/CVS/Repository
--- linux-2.4.20/arch/mips/ramdisk/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ramdisk/CVS/Repository	2005-01-06 23:00:09.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/ramdisk
diff -urNd -urNd linux-2.4.20/arch/mips/ramdisk/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/ramdisk/CVS/Root
--- linux-2.4.20/arch/mips/ramdisk/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ramdisk/CVS/Root	2005-01-06 23:00:09.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/ramdisk/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/ramdisk/CVS/Tag
--- linux-2.4.20/arch/mips/ramdisk/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ramdisk/CVS/Tag	2005-01-06 23:00:09.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/ramdisk/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/ramdisk/.cvsignore
--- linux-2.4.20/arch/mips/ramdisk/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ramdisk/.cvsignore	2001-11-12 23:35:54.000000000 -0600
@@ -0,0 +1 @@
+ramdisk.gz
diff -urNd -urNd linux-2.4.20/arch/mips/ramdisk/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/ramdisk/Makefile
--- linux-2.4.20/arch/mips/ramdisk/Makefile	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/ramdisk/Makefile	2002-10-02 20:27:58.000000000 -0500
@@ -7,9 +7,9 @@
 #
 
 O_FORMAT = $(shell $(OBJDUMP) -i | head -2 | grep elf32)
+img = $(CONFIG_EMBEDDED_RAMDISK_IMAGE)
 ramdisk.o: ramdisk.gz ld.script
 	echo "O_FORMAT:  " $(O_FORMAT)
-	$(LD) -T ld.script -b binary --oformat $(O_FORMAT) -o $@ ramdisk.gz
+	$(LD) -T ld.script -b binary --oformat $(O_FORMAT) -o $@ $(img)
 
 include $(TOPDIR)/Rules.make
-
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip22/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/CVS/Entries
--- linux-2.4.20/arch/mips/sgi-ip22/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/CVS/Entries	2005-01-06 23:00:09.000000000 -0600
@@ -0,0 +1,15 @@
+/.cvsignore/1.1/Tue Nov 27 15:57:11 2001/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.6/Thu Jan  9 13:25:37 2003/-ko/Tlinux_2_4_20
+/ip22-berr.c/1.1.2.3/Tue Jan 28 05:36:27 2003/-ko/Tlinux_2_4_20
+/ip22-eisa.c/1.1.2.2/Wed Dec 18 19:11:09 2002/-ko/Tlinux_2_4_20
+/ip22-hpc.c/1.1.2.3/Tue Jan 28 11:55:51 2003/-ko/Tlinux_2_4_20
+/ip22-int.c/1.2.2.7/Wed Dec 18 19:11:09 2002/-ko/Tlinux_2_4_20
+/ip22-irq.S/1.1.2.3/Mon Aug  5 23:53:35 2002/-ko/Tlinux_2_4_20
+/ip22-mc.c/1.1.2.5/Mon Aug  5 23:53:35 2002/-ko/Tlinux_2_4_20
+/ip22-reset.c/1.1.2.5/Wed Dec 18 19:11:09 2002/-ko/Tlinux_2_4_20
+/ip22-rtc.c/1.1/Tue Nov 27 15:57:11 2001/-ko/Tlinux_2_4_20
+/ip22-sc.c/1.1.2.1/Tue Jul  2 11:46:32 2002/-ko/Tlinux_2_4_20
+/ip22-setup.c/1.1.2.15/Thu Jan  9 13:25:37 2003/-ko/Tlinux_2_4_20
+/ip22-system.c/1.1.2.8/Wed Dec 18 19:11:09 2002/-ko/Tlinux_2_4_20
+/ip22-time.c/1.1.2.12/Thu Jan  9 13:25:37 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip22/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/CVS/Repository
--- linux-2.4.20/arch/mips/sgi-ip22/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/CVS/Repository	2005-01-06 23:00:09.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/sgi-ip22
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip22/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/CVS/Root
--- linux-2.4.20/arch/mips/sgi-ip22/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/CVS/Root	2005-01-06 23:00:09.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip22/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/CVS/Tag
--- linux-2.4.20/arch/mips/sgi-ip22/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/CVS/Tag	2005-01-06 23:00:09.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip22/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/.cvsignore
--- linux-2.4.20/arch/mips/sgi-ip22/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/.cvsignore	2001-11-27 09:57:11.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip22/ip22-berr.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-berr.c
--- linux-2.4.20/arch/mips/sgi-ip22/ip22-berr.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-berr.c	2003-01-27 23:36:27.000000000 -0600
@@ -15,12 +15,11 @@
 #include <asm/sgi/sgimc.h>
 #include <asm/sgi/sgihpc.h>
 
-unsigned int cpu_err_stat;	/* Status reg for CPU */
-unsigned int gio_err_stat;	/* Status reg for GIO */
-unsigned int cpu_err_addr;	/* Error address reg for CPU */
-unsigned int gio_err_addr;	/* Error address reg for GIO */
 
-volatile int nofault;
+static unsigned int cpu_err_stat;	/* Status reg for CPU */
+static unsigned int gio_err_stat;	/* Status reg for GIO */
+static unsigned int cpu_err_addr;	/* Error address reg for CPU */
+static unsigned int gio_err_addr;	/* Error address reg for GIO */
 
 static void save_and_clear_buserr(void)
 {
@@ -33,6 +32,35 @@
 	mcmisc_regs->cstat = mcmisc_regs->gstat = 0;
 }
 
+#define GIO_ERRMASK	0xff00
+#define CPU_ERRMASK	0x3f00
+
+static void print_buserr(void)
+{
+	if (cpu_err_stat & CPU_ERRMASK)
+		printk(KERN_ALERT "CPU error 0x%x<%s%s%s%s%s%s> @ 0x%08x\n",
+			cpu_err_stat,
+			cpu_err_stat & SGIMC_CSTAT_RD ? "RD " : "",
+			cpu_err_stat & SGIMC_CSTAT_PAR ? "PAR " : "",
+			cpu_err_stat & SGIMC_CSTAT_ADDR ? "ADDR " : "",
+			cpu_err_stat & SGIMC_CSTAT_SYSAD_PAR ? "SYSAD " : "",
+			cpu_err_stat & SGIMC_CSTAT_SYSCMD_PAR ? "SYSCMD " : "",
+			cpu_err_stat & SGIMC_CSTAT_BAD_DATA ? "BAD_DATA " : "",
+			cpu_err_addr);
+	if (gio_err_stat & GIO_ERRMASK)
+		printk(KERN_ALERT "GIO error 0x%x:<%s%s%s%s%s%s%s%s> @ 0x08%x\n",
+			gio_err_stat,
+			gio_err_stat & SGIMC_GSTAT_RD ? "RD " : "",
+			gio_err_stat & SGIMC_GSTAT_WR ? "WR " : "",
+			gio_err_stat & SGIMC_GSTAT_TIME ? "TIME " : "",
+			gio_err_stat & SGIMC_GSTAT_PROM ? "PROM " : "",
+			gio_err_stat & SGIMC_GSTAT_ADDR ? "ADDR " : "",
+			gio_err_stat & SGIMC_GSTAT_BC ? "BC " : "",
+			gio_err_stat & SGIMC_GSTAT_PIO_RD ? "PIO_RD " : "",
+			gio_err_stat & SGIMC_GSTAT_PIO_WR ? "PIO_WR " : "",
+			gio_err_addr);
+}
+
 /*
  * MC sends an interrupt whenever bus or parity errors occur. In addition,
  * if the error happened during a CPU read, it also asserts the bus error
@@ -43,33 +71,18 @@
 void be_ip22_interrupt(int irq, struct pt_regs *regs)
 {
 	save_and_clear_buserr();
-	printk(KERN_ALERT "Bus error, epc == %08lx, ra == %08lx\n",
-	       regs->cp0_epc, regs->regs[31]);
-	die_if_kernel("Oops", regs);
-	force_sig(SIGBUS, current);
+	print_buserr();
+	panic("Bus error, epc == %08lx, ra == %08lx",
+	      regs->cp0_epc, regs->regs[31]);
 }
 
 int be_ip22_handler(struct pt_regs *regs, int is_fixup)
 {
 	save_and_clear_buserr();
-	if (nofault) {
-		nofault = 0;
-		compute_return_epc(regs);
-		return MIPS_BE_DISCARD;
-	}
-	return MIPS_BE_FIXUP;
-}
-
-int ip22_baddr(unsigned int *val, unsigned long addr)
-{
-	nofault = 1;
-	*val = *(volatile unsigned int *) addr;
-	__asm__ __volatile__("nop;nop;nop;nop");
-	if (nofault) {
-		nofault = 0;
-		return 0;
-	}
-	return -EFAULT;
+	if (is_fixup)
+		return MIPS_BE_FIXUP;
+	print_buserr();
+	return MIPS_BE_FATAL;
 }
 
 void __init bus_error_init(void)
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip22/ip22-eisa.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-eisa.c
--- linux-2.4.20/arch/mips/sgi-ip22/ip22-eisa.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-eisa.c	2002-12-18 13:11:09.000000000 -0600
@@ -153,14 +153,13 @@
 }
 
 static struct hw_interrupt_type ip22_eisa1_irq_type = {
-	"IP22 EISA",
-	startup_eisa1_irq,
-	shutdown_eisa1_irq,
-	enable_eisa1_irq,
-	disable_eisa1_irq,
-	mask_and_ack_eisa1_irq,
-	end_eisa1_irq,
-	NULL
+	.typename	= "IP22 EISA",
+	.startup	= startup_eisa1_irq,
+	.shutdown	= shutdown_eisa1_irq,
+	.enable		= enable_eisa1_irq,
+	.disable	= disable_eisa1_irq,
+	.ack		= mask_and_ack_eisa1_irq,
+	.end		= end_eisa1_irq,
 };
 
 static void enable_eisa2_irq(unsigned int irq)
@@ -217,22 +216,23 @@
 }
 
 static struct hw_interrupt_type ip22_eisa2_irq_type = {
-	"IP22 EISA",
-	startup_eisa2_irq,
-	shutdown_eisa2_irq,
-	enable_eisa2_irq,
-	disable_eisa2_irq,
-	mask_and_ack_eisa2_irq,
-	end_eisa2_irq,
-	NULL
+	.typename	= "IP22 EISA",
+	.startup	= startup_eisa2_irq,
+	.shutdown	= shutdown_eisa2_irq,
+	.enable		= enable_eisa2_irq,
+	.disable	= disable_eisa2_irq,
+	.ack		= mask_and_ack_eisa2_irq,
+	.end		= end_eisa2_irq,
 };
 
 static struct irqaction eisa_action = {
-	ip22_eisa_intr, 0, 0, "EISA", NULL, NULL
+	.handler	= ip22_eisa_intr,
+	.name		= "EISA",
 };
 
 static struct irqaction cascade_action = {
-	no_action, 0, 0, "EISA cascade", NULL, NULL
+	.handler	= no_action,
+	.name		= "EISA cascade",
 };
 
 int __init ip22_eisa_init(void)
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip22/ip22-gio.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-gio.c
--- linux-2.4.20/arch/mips/sgi-ip22/ip22-gio.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-gio.c	1969-12-31 18:00:00.000000000 -0600
@@ -1,153 +0,0 @@
-/*
- * ip22-gio.c: Support for GIO64 bus (inspired by PCI code)
- *
- * Copyright (C) 2002 Ladislav Michl
- */
-
-#include <linux/kernel.h>
-#include <linux/types.h>
-#include <linux/slab.h>
-#include <linux/init.h>
-#include <linux/proc_fs.h>
-
-#include <asm/addrspace.h>
-#include <asm/sgi/sgimc.h>
-#include <asm/sgi/sgigio.h>
-
-#define GIO_PIO_MAP_BASE	0x1f000000L
-#define GIO_PIO_MAP_SIZE	(16 * 1024*1024)
-
-#define GIO_ADDR_GFX		0x1f000000L
-#define GIO_ADDR_GIO1		0x1f400000L
-#define GIO_ADDR_GIO2		0x1f600000L
-
-#define GIO_GFX_MAP_SIZE	(4 * 1024*1024)
-#define GIO_GIO1_MAP_SIZE	(2 * 1024*1024)
-#define GIO_GIO2_MAP_SIZE	(4 * 1024*1024)
-
-#define GIO_NO_DEVICE		0x80
-
-static struct gio_dev gio_slot[GIO_NUM_SLOTS] = {
-	{
-		0,
-		0,
-		0,
-		GIO_NO_DEVICE,
-		GIO_SLOT_GFX,
-		GIO_ADDR_GFX,
-		GIO_GFX_MAP_SIZE,
-		NULL,
-		"GFX"
-	},
-	{
-		0,
-		0,
-		0,
-		GIO_NO_DEVICE,
-		GIO_SLOT_GIO1,
-		GIO_ADDR_GIO1,
-		GIO_GIO1_MAP_SIZE,
-		NULL,
-		"EXP0"
-	},
-	{
-		0,
-		0,
-		0,
-		GIO_NO_DEVICE,
-		GIO_SLOT_GIO2,
-		GIO_ADDR_GIO2,
-		GIO_GIO2_MAP_SIZE,
-		NULL,
-		"EXP1"
-	}
-};
-
-static int gio_read_proc(char *buf, char **start, off_t off,
-			 int count, int *eof, void *data)
-{
-	int i;
-	char *p = buf;
-
-	p += sprintf(p, "GIO devices found:\n");
-	for (i = 0; i < GIO_NUM_SLOTS; i++) {
-		if (gio_slot[i].flags & GIO_NO_DEVICE)
-			continue;
-		p += sprintf(p, "  Slot %s, DeviceId 0x%02x\n",
-			     gio_slot[i].slot_name, gio_slot[i].device);
-		p += sprintf(p, "    BaseAddr 0x%08lx, MapSize 0x%08x\n",
-			     gio_slot[i].base_addr, gio_slot[i].map_size);
-	}
-
-	return p - buf;
-}
-
-void create_gio_proc_entry(void)
-{
-	create_proc_read_entry("gio", 0, NULL, gio_read_proc, NULL);
-}
-
-/**
- * gio_find_device - begin or continue searching for a GIO device by device id
- * @device: GIO device id to match, or %GIO_ANY_ID to match all device ids
- * @from: Previous GIO device found in search, or %NULL for new search.
- *
- * Iterates through the list of known GIO devices. If a GIO device is found
- * with a matching @device, a pointer to its device structure is returned.
- * Otherwise, %NULL is returned.
- * A new search is initiated by passing %NULL to the @from argument.
- * Otherwise if @from is not %NULL, searches continue from next device.
- */
-struct gio_dev *
-gio_find_device(unsigned char device, const struct gio_dev *from)
-{
-	int i;
-
-	for (i = (from) ? from->slot_number : 0; i < GIO_NUM_SLOTS; i++)
-		if (!(gio_slot[i].flags & GIO_NO_DEVICE) &&
-		   (device == GIO_ANY_ID || device == gio_slot[i].device))
-			return &gio_slot[i];
-
-	return NULL;
-}
-
-#define GIO_IDCODE(x)		(x & 0x7f)
-#define GIO_ALL_BITS_VALID	0x80
-#define GIO_REV(x)		((x >> 8) & 0xff)
-#define GIO_GIO_SIZE_64		0x10000
-#define GIO_ROM_PRESENT		0x20000
-#define GIO_VENDOR_CODE(x)	((x >> 18) & 0x3fff)
-
-extern int ip22_baddr(unsigned int *val, unsigned long addr);
-
-/**
- * sgigio_init - scan the GIO space and figure out what hardware is actually
- * present.
- */
-void __init sgigio_init(void)
-{
-	unsigned int i, id, found = 0;
-
-	printk("GIO: Scanning for GIO cards...\n");
-	for (i = 0; i < GIO_NUM_SLOTS; i++) {
-		if (ip22_baddr(&id, KSEG1ADDR(gio_slot[i].base_addr)))
-			continue;
-
-		found = 1;
-		gio_slot[i].device = GIO_IDCODE(id);
-		if (id & GIO_ALL_BITS_VALID) {
-			gio_slot[i].revision = GIO_REV(id);
-			gio_slot[i].vendor = GIO_VENDOR_CODE(id);
-			gio_slot[i].flags =
-				(id & GIO_GIO_SIZE_64) ? GIO_IFACE_64 : 0 |
-				(id & GIO_ROM_PRESENT) ? GIO_HAS_ROM : 0;
-		} else
-			gio_slot[i].flags = GIO_VALID_ID_ONLY;
-
-		printk("GIO: Card 0x%02x @ 0x%08lx\n", gio_slot[i].device,
-			gio_slot[i].base_addr);
-	}
-
-	if (!found)
-		printk("GIO: No GIO cards present.\n");
-}
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip22/ip22-hpc.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-hpc.c
--- linux-2.4.20/arch/mips/sgi-ip22/ip22-hpc.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-hpc.c	2003-01-28 05:55:51.000000000 -0600
@@ -52,11 +52,9 @@
 	if ((sid & 1) == 0 ) {
 		HPC_DEBUG("GUINESS ");
 		sgi_guiness = 1;
-		mips_machtype = MACH_SGI_INDY;
-		system_type =  "SGI Indy";
+		system_type = "SGI Indy";
 	} else {
 		HPC_DEBUG("FULLHOUSE ");
-		mips_machtype = MACH_SGI_INDIGO2;
 		sgi_guiness = 0;
 		system_type = "SGI Indigo2";
 	}
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip22/ip22-int.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-int.c
--- linux-2.4.20/arch/mips/sgi-ip22/ip22-int.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-int.c	2002-12-18 13:11:09.000000000 -0600
@@ -79,14 +79,13 @@
 }
 
 static struct hw_interrupt_type ip22_local0_irq_type = {
-	"IP22 local 0",
-	startup_local0_irq,
-	shutdown_local0_irq,
-	enable_local0_irq,
-	disable_local0_irq,
-	mask_and_ack_local0_irq,
-	end_local0_irq,
-	NULL
+	.typename	= "IP22 local 0",
+	.startup	= startup_local0_irq,
+	.shutdown	= shutdown_local0_irq,
+	.enable		= enable_local0_irq,
+	.disable	= disable_local0_irq,
+	.ack		= mask_and_ack_local0_irq,
+	.end		= end_local0_irq,
 };
 
 static void enable_local1_irq(unsigned int irq)
@@ -126,14 +125,13 @@
 }
 
 static struct hw_interrupt_type ip22_local1_irq_type = {
-	"IP22 local 1",
-	startup_local1_irq,
-	shutdown_local1_irq,
-	enable_local1_irq,
-	disable_local1_irq,
-	mask_and_ack_local1_irq,
-	end_local1_irq,
-	NULL
+	.typename	= "IP22 local 1",
+	.startup	= startup_local1_irq,
+	.shutdown	= shutdown_local1_irq,
+	.enable		= enable_local1_irq,
+	.disable	= disable_local1_irq,
+	.ack		= mask_and_ack_local1_irq,
+	.end		= end_local1_irq,
 };
 
 static void enable_local2_irq(unsigned int irq)
@@ -173,14 +171,13 @@
 }
 
 static struct hw_interrupt_type ip22_local2_irq_type = {
-	"IP22 local 2",
-	startup_local2_irq,
-	shutdown_local2_irq,
-	enable_local2_irq,
-	disable_local2_irq,
-	mask_and_ack_local2_irq,
-	end_local2_irq,
-	NULL
+	.typename	= "IP22 local 2",
+	.startup	= startup_local2_irq,
+	.shutdown	= shutdown_local2_irq,
+	.enable		= enable_local2_irq,
+	.disable	= disable_local2_irq,
+	.ack		= mask_and_ack_local2_irq,
+	.end		= end_local2_irq,
 };
 
 static void enable_local3_irq(unsigned int irq)
@@ -224,14 +221,13 @@
 }
 
 static struct hw_interrupt_type ip22_local3_irq_type = {
-	"IP22 local 3",
-	startup_local3_irq,
-	shutdown_local3_irq,
-	enable_local3_irq,
-	disable_local3_irq,
-	mask_and_ack_local3_irq,
-	end_local3_irq,
-	NULL
+	.typename	= "IP22 local 3",
+	.startup	= startup_local3_irq,
+	.shutdown	= shutdown_local3_irq,
+	.enable		= enable_local3_irq,
+	.disable	= disable_local3_irq,
+	.ack		= mask_and_ack_local3_irq,
+	.end		= end_local3_irq,
 };
 
 void indy_local0_irqdispatch(struct pt_regs *regs)
@@ -292,17 +288,36 @@
 	irq_exit(cpu, irq);
 }
 
-static struct irqaction local0_cascade =
-	{ no_action, SA_INTERRUPT, 0, "local0 cascade", NULL, NULL };
-static struct irqaction local1_cascade =
-	{ no_action, SA_INTERRUPT, 0, "local1 cascade", NULL, NULL };
-static struct irqaction buserr =
-	{ no_action, SA_INTERRUPT, 0, "Bus Error", NULL, NULL };
-static struct irqaction map0_cascade =
-	{ no_action, SA_INTERRUPT, 0, "mappable0 cascade", NULL, NULL };
+static struct irqaction local0_cascade = { 
+	.handler	= no_action,
+	.flags		= SA_INTERRUPT,
+	.name		= "local0 cascade",
+};
+
+static struct irqaction local1_cascade = { 
+	.handler	= no_action,
+	.flags		= SA_INTERRUPT,
+	.name		= "local1 cascade",
+};
+
+static struct irqaction buserr = { 
+	.handler	= no_action,
+	.flags		= SA_INTERRUPT,
+	.name		= "Bus Error",
+};
+
+static struct irqaction map0_cascade = { 
+	.handler	= no_action,
+	.flags		= SA_INTERRUPT,
+	.name		= "mapable0 cascade",
+};
+
 #ifdef I_REALLY_NEED_THIS_IRQ
-static struct irqaction map1_cascade =
-	{ no_action, SA_INTERRUPT, 0, "mappable1 cascade", NULL, NULL };
+static struct irqaction map1_cascade = { 
+	.handler	= no_action,
+	.flags		= SA_INTERRUPT,
+	.name		= "mapable1 cascade",
+};
 #endif
 
 extern void mips_cpu_irq_init(unsigned int irq_base);
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip22/ip22-reset.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-reset.c
--- linux-2.4.20/arch/mips/sgi-ip22/ip22-reset.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-reset.c	2002-12-18 13:11:09.000000000 -0600
@@ -220,9 +220,7 @@
 }
 
 static struct notifier_block panic_block = {
-	panic_event,
-	NULL,
-	0
+	.notifier_call	= panic_event,
 };
 
 void indy_reboot_setup(void)
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip22/ip22-setup.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-setup.c
--- linux-2.4.20/arch/mips/sgi-ip22/ip22-setup.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-setup.c	2003-01-09 07:25:37.000000000 -0600
@@ -47,7 +47,6 @@
 extern struct rtc_ops indy_rtc_ops;
 extern void indy_reboot_setup(void);
 extern void sgi_volume_set(unsigned char);
-extern void create_gio_proc_entry(void);
 
 #define sgi_kh ((struct hpc_keyb *) &(hpc3mregs->kbdmouse0))
 
@@ -70,11 +69,6 @@
 	 */
 	indy_reboot_setup();
 
-	/* Ehm, well... once David used hack above, let's add yet another.
-	 * Register GIO bus proc entry here.
-	 */
-	create_gio_proc_entry();
-
 	return request_irq(SGI_KEYBD_IRQ, handler, 0, "keyboard", NULL);
 }
 
@@ -162,19 +156,22 @@
 	 * line and "d2" for the second serial line.
 	 */
 	ctype = ArcGetEnvironmentVariable("console");
-	if (*ctype == 'd') {
+	if (ctype && *ctype == 'd') {
 #ifdef CONFIG_SERIAL_CONSOLE
 		if(*(ctype + 1) == '2')
 			console_setup("ttyS1");
 		else
 			console_setup("ttyS0");
 #endif
-	} else {
+	}
 #ifdef CONFIG_ARC_CONSOLE
-		prom_flags &= PROM_FLAG_USE_AS_CONSOLE;
-		console_setup("ttyS0");
-#endif
+	else if (!ctype || *ctype != 'g') {
+		/* Use ARC if we don't want serial ('d') or
+		 * Newport ('g'). */
+		prom_flags |= PROM_FLAG_USE_AS_CONSOLE;
+		console_setup("arc");
 	}
+#endif
 
 #ifdef CONFIG_REMOTE_DEBUG
 	kgdb_ttyd = prom_getcmdline();
@@ -201,7 +198,7 @@
 
 #ifdef CONFIG_VT
 #ifdef CONFIG_SGI_NEWPORT_CONSOLE
-	{
+	if (ctype && *ctype == 'g'){
 		unsigned long *gfxinfo;
 		long (*__vec)(void) = (void *) *(long *)((PROMBLOCK)->pvector + 0x20);
 
@@ -209,29 +206,29 @@
 		sgi_gfxaddr = ((gfxinfo[1] >= 0xa0000000
 			       && gfxinfo[1] <= 0xc0000000)
 			       ? gfxinfo[1] - 0xa0000000 : 0);
-	}
-	/* newport addresses? */
-	if (sgi_gfxaddr == 0x1f0f0000 || sgi_gfxaddr == 0x1f4f0000) {
-		conswitchp = &newport_con;
 
-		screen_info = (struct screen_info) {
-			0, 0,		/* orig-x, orig-y */
-			0,		/* unused */
-			0,		/* orig_video_page */
-			0,		/* orig_video_mode */
-			160,		/* orig_video_cols */
-			0, 0, 0,	/* unused, ega_bx, unused */
-			64,		/* orig_video_lines */
-			0,		/* orig_video_isVGA */
-			16		/* orig_video_points */
-		};
-	} else {
-		conswitchp = &dummy_con;
+		/* newport addresses? */
+		if (sgi_gfxaddr == 0x1f0f0000 || sgi_gfxaddr == 0x1f4f0000) {
+			conswitchp = &newport_con;
+
+			screen_info = (struct screen_info) {
+				0, 0,		/* orig-x, orig-y */
+				0,		/* unused */
+				0,		/* orig_video_page */
+				0,		/* orig_video_mode */
+				160,		/* orig_video_cols */
+				0, 0, 0,	/* unused, ega_bx, unused */
+				64,		/* orig_video_lines */
+				0,		/* orig_video_isVGA */
+				16		/* orig_video_points */
+			};
+		}
 	}
-#else
-#ifdef CONFIG_DUMMY_CONSOLE
-	conswitchp = &dummy_con;
 #endif
+#ifdef CONFIG_DUMMY_CONSOLE
+	/* Either if newport console wasn't used or failed to initialize. */
+	if(conswitchp != &newport_con)
+		conswitchp = &dummy_con;
 #endif
 #endif
 
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip22/ip22-system.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-system.c
--- linux-2.4.20/arch/mips/sgi-ip22/ip22-system.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-system.c	2002-12-18 13:11:09.000000000 -0600
@@ -19,18 +19,37 @@
 	int type;
 };
 
-static struct smatch sgi_cputable[] = {
-	{ "MIPS-R2000", CPU_R2000 },
-	{ "MIPS-R3000", CPU_R3000 },
-	{ "MIPS-R3000A", CPU_R3000A },
-	{ "MIPS-R4000", CPU_R4000SC },
-	{ "MIPS-R4400", CPU_R4400SC },
-	{ "MIPS-R4600", CPU_R4600 },
-	{ "MIPS-R8000", CPU_R8000 },
-	{ "MIPS-R5000", CPU_R5000 },
-	{ "MIPS-R5000A", CPU_R5000A },
-	{ "MIPS-R10000", CPU_R10000 }
-};
+static struct smatch sgi_cputable[] = {{ 
+	.name	= "MIPS-R2000",
+	.type	= CPU_R2000,
+},{
+	.name	= "MIPS-R3000",
+	.type	= CPU_R3000,
+},{
+	.name	= "MIPS-R3000A",
+	.type	= CPU_R3000A,
+},{
+	.name	= "MIPS-4000",
+	.type	= CPU_R4000SC,
+},{
+	.name	= "MIPS-R4400",
+	.type	= CPU_R4400SC,
+},{
+	.name	= "MIPS-R4600",
+	.type	= CPU_R4600,
+},{
+	.name	= "MIPS-R8000",
+	.type	= CPU_R8000,
+},{
+	.name	= "MIPS-R5000",
+	.type	= CPU_R5000,
+},{
+	.name	= "MIPS-R5000A",
+	.type	= CPU_R5000A,
+},{
+	.name	= "MIPS-R10000",
+	.type	= CPU_R10000,
+}};
 
 static int __init string_to_cpu(char *s)
 {
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip22/ip22-time.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-time.c
--- linux-2.4.20/arch/mips/sgi-ip22/ip22-time.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-time.c	2003-01-09 07:25:37.000000000 -0600
@@ -106,14 +106,14 @@
 	*tc2p = (SGINT_TCSAMP_COUNTER >> 8);
 
 	/* Get initial counter invariant */
-	ct0 = read_32bit_cp0_register(CP0_COUNT);
+	ct0 = read_c0_count();
 
 	/* Latch and spin until top byte of counter2 is zero */
 	do {
 		*tcwp = (SGINT_TCWORD_CNT2 | SGINT_TCWORD_CLAT);
 		lsb = *tc2p;
 		msb = *tc2p;
-		ct1 = read_32bit_cp0_register(CP0_COUNT);
+		ct1 = read_c0_count();
 	} while(msb);
 
 	/* Stop the counter. */
@@ -180,14 +180,6 @@
 		(int) (r4k_tick / 5000), (int) (r4k_tick % 5000) / 50);
 
 	mips_counter_frequency = r4k_tick * HZ;
-
-	/* HACK ALERT! This get's called after traps initialization
-	 * We piggyback the initialization of GIO bus here even though
-	 * it is technically not related with the timer in any way.
-	 * Doing it from ip22_setup wouldn't work since traps aren't
-	 * initialized yet.
-	 */
-	sgigio_init();
 }
 
 /* Generic SGI handler for (spurious) 8254 interrupts */
@@ -195,7 +187,7 @@
 {
 	int cpu = smp_processor_id();
 	int irq = SGI_8254_0_IRQ;
-	long cnt;
+	ULONG cnt;
 	char c;
 
 	irq_enter(cpu, irq);
@@ -230,9 +222,9 @@
 	irq->handler = no_action;
 
 	/* set time for first interrupt */
-	count = read_32bit_cp0_register(CP0_COUNT);
+	count = read_c0_count();
 	count += mips_counter_frequency / HZ;
-	write_32bit_cp0_register(CP0_COMPARE, count);
+	write_c0_compare(count);
 
 	/* setup irqaction */
 	setup_irq(SGI_TIMER_IRQ, irq);
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip22/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/Makefile
--- linux-2.4.20/arch/mips/sgi-ip22/Makefile	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/Makefile	2003-01-09 07:25:37.000000000 -0600
@@ -14,8 +14,9 @@
 
 all: ip22-kern.o ip22-irq.o
 
-obj-y += ip22-mc.o ip22-hpc.o ip22-int.o ip22-irq.o ip22-time.o ip22-berr.o \
-         ip22-gio.o ip22-rtc.o ip22-reset.o ip22-system.o ip22-setup.o
+obj-y				+= ip22-mc.o ip22-hpc.o ip22-int.o ip22-irq.o \
+				   ip22-time.o ip22-berr.o ip22-rtc.o \
+				   ip22-reset.o ip22-system.o ip22-setup.o
 
 obj-$(CONFIG_BOARD_SCACHE)	+= ip22-sc.o
 obj-$(CONFIG_IP22_EISA)		+= ip22-eisa.o
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip27/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/CVS/Entries
--- linux-2.4.20/arch/mips/sgi-ip27/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/CVS/Entries	2005-01-06 23:00:10.000000000 -0600
@@ -0,0 +1,18 @@
+/.cvsignore/1.1.2.1/Thu Jul 25 19:31:23 2002/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.3/Fri Nov 29 02:13:32 2002/-ko/Tlinux_2_4_20
+/TODO/1.1.2.2/Mon Aug  5 23:53:35 2002/-ko/Tlinux_2_4_20
+/ip27-berr.c/1.1.2.3/Sun Sep 15 23:37:48 2002/-ko/Tlinux_2_4_20
+/ip27-console.c/1.1.2.4/Tue Nov 26 12:39:36 2002/-ko/Tlinux_2_4_20
+/ip27-init.c/1.1.2.5/Mon Dec  2 00:24:51 2002/-ko/Tlinux_2_4_20
+/ip27-irq-glue.S/1.1.2.1/Thu Jul 25 19:31:23 2002/-ko/Tlinux_2_4_20
+/ip27-irq.c/1.1.2.2/Mon Aug  5 23:53:35 2002/-ko/Tlinux_2_4_20
+/ip27-klconfig.c/1.1.2.2/Mon Aug  5 23:53:35 2002/-ko/Tlinux_2_4_20
+/ip27-klnuma.c/1.1.2.2/Mon Aug  5 23:53:35 2002/-ko/Tlinux_2_4_20
+/ip27-memory.c/1.1.2.2/Mon Aug  5 23:53:35 2002/-ko/Tlinux_2_4_20
+/ip27-nmi.c/1.1.2.2/Mon Aug  5 23:53:35 2002/-ko/Tlinux_2_4_20
+/ip27-pci.c/1.1.2.4/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/ip27-reset.c/1.1.2.2/Mon Aug  5 23:53:35 2002/-ko/Tlinux_2_4_20
+/ip27-rtc.c/1.1.2.5/Fri Nov 29 02:13:33 2002/-ko/Tlinux_2_4_20
+/ip27-setup.c/1.1.2.4/Fri Nov 29 00:06:30 2002/-ko/Tlinux_2_4_20
+/ip27-timer.c/1.1.2.4/Mon Dec  2 00:24:51 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip27/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/CVS/Repository
--- linux-2.4.20/arch/mips/sgi-ip27/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/CVS/Repository	2005-01-06 23:00:09.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/sgi-ip27
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip27/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/CVS/Root
--- linux-2.4.20/arch/mips/sgi-ip27/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/CVS/Root	2005-01-06 23:00:09.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip27/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/CVS/Tag
--- linux-2.4.20/arch/mips/sgi-ip27/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/CVS/Tag	2005-01-06 23:00:10.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip27/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/.cvsignore
--- linux-2.4.20/arch/mips/sgi-ip27/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/.cvsignore	2002-07-25 14:31:23.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip27/ip27-berr.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/ip27-berr.c
--- linux-2.4.20/arch/mips/sgi-ip27/ip27-berr.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/ip27-berr.c	2002-09-15 18:37:48.000000000 -0500
@@ -17,9 +17,7 @@
 #include <asm/sn/sn0/hub.h>
 #include <asm/traps.h>
 #include <asm/uaccess.h>
-
-extern void dump_tlb_addr(unsigned long addr);
-extern void dump_tlb_all(void);
+#include <asm/tlbdebug.h>
 
 static void dump_hub_information(unsigned long errst0, unsigned long errst1)
 {
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip27/ip27-console.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/ip27-console.c
--- linux-2.4.20/arch/mips/sgi-ip27/ip27-console.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/ip27-console.c	2002-11-26 06:39:36.000000000 -0600
@@ -3,25 +3,35 @@
  * License.  See the file "COPYING" in the main directory of this archive
  * for more details.
  *
- * Copyright (C) 2001 Ralf Baechle
+ * Copyright (C) 2001, 2002 Ralf Baechle
  */
 #include <linux/init.h>
 #include <linux/console.h>
 #include <linux/kdev_t.h>
 #include <linux/major.h>
+#include <linux/serial.h>
+#include <asm/page.h>
 #include <asm/sn/addrs.h>
 #include <asm/sn/sn0/hub.h>
 #include <asm/sn/klconfig.h>
 #include <asm/sn/ioc3.h>
 #include <asm/sn/sn_private.h>
 
-void prom_putchar(char c)
+#define IOC3_BAUD (22000000 / (3*16))
+#define IOC3_COM_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST)
+
+static inline struct ioc3_uartregs *console_uart(void)
 {
 	struct ioc3 *ioc3;
-	struct ioc3_uartregs *uart;
 
-	ioc3 = (struct ioc3 *)KL_CONFIG_CH_CONS_INFO(master_nasid)->memory_base;
-	uart = &ioc3->sregs.uarta;
+	ioc3 = (struct ioc3 *)KL_CONFIG_CH_CONS_INFO(get_nasid())->memory_base;
+
+	return &ioc3->sregs.uarta;
+}
+
+void prom_putchar(char c)
+{
+	struct ioc3_uartregs *uart = console_uart();
 
 	while ((uart->iu_lsr & 0x20) == 0);
 	uart->iu_thr = c;
@@ -32,27 +42,24 @@
 	return 0;
 }
 
-static void
-ip27prom_console_write(struct console *con, const char *s, unsigned n)
+static void inline ioc3_console_probe(void)
 {
-	prom_printf("%s", s);
-}
+	struct serial_struct req;
 
-static kdev_t
-ip27prom_console_dev(struct console *c)
-{
-	return MKDEV(TTY_MAJOR, 64 + c->index);
-}
+	/* Register to interrupt zero because we share the interrupt with
+	   the serial driver which we don't properly support yet.  */
+	memset(&req, 0, sizeof(req));
+	req.irq             = 0;
+	req.flags           = IOC3_COM_FLAGS;
+	req.io_type         = SERIAL_IO_MEM;
+	req.iomem_reg_shift = 0;
+	req.baud_base       = IOC3_BAUD;
 
-static struct console ip27_prom_console = {
-    name:	"prom",
-    write:	ip27prom_console_write,
-    device:	ip27prom_console_dev,
-    flags:	CON_PRINTBUFFER,
-    index:	-1,
-};
+	req.iomem_base      = (unsigned char *) console_uart();
+	register_serial(&req);
+}
 
 __init void ip27_setup_console(void)
 {
-	register_console(&ip27_prom_console);
+	ioc3_console_probe();
 }
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip27/ip27-init.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/ip27-init.c
--- linux-2.4.20/arch/mips/sgi-ip27/ip27-init.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/ip27-init.c	2002-12-01 18:24:51.000000000 -0600
@@ -193,7 +193,6 @@
 	void init_topology_matrix(void);
 	void dump_topology(void);
 
-
 	master_nasid = get_nasid();
 	fine_mode = is_fine_dirmode();
 
@@ -203,7 +202,7 @@
 	 */
 	CPUMASK_CLRALL(boot_cpumask);
 	maxcpus = cpu_node_probe(&boot_cpumask, &numnodes);
-	printk("Discovered %d cpus on %d nodes\n", maxcpus, numnodes);
+	printk(KERN_INFO "Discovered %d cpus on %d nodes\n", maxcpus, numnodes);
 
 	init_topology_matrix();
 	dump_topology();
@@ -364,7 +363,7 @@
 #if 0
 	intr_init();
 #endif
-	clear_cp0_status(ST0_IM);
+	clear_c0_status(ST0_IM);
 	per_hub_init(cnode);
 	cpu_time_init();
 	if (smp_processor_id())	/* master can't do this early, no kmalloc */
@@ -374,13 +373,8 @@
 #if 0
 	install_tlbintr(cpu);
 #endif
-	set_cp0_status(SRB_DEV0 | SRB_DEV1);
+	set_c0_status(SRB_DEV0 | SRB_DEV1);
 	if (is_slave) {
-		clear_cp0_status(ST0_BEV);
-		if (mips_cpu.isa_level == MIPS_CPU_ISA_IV)
-			set_cp0_status(ST0_XX);
-		set_cp0_status(ST0_KX|ST0_SX|ST0_UX);
-		sti();
 		load_mmu();
 		atomic_inc(&numstarted);
 	} else {
@@ -422,8 +416,13 @@
 
 static volatile cpumask_t boot_barrier;
 
+extern atomic_t cpus_booted;
+
 void __init start_secondary(void)
 {
+	unsigned int cpu = smp_processor_id();
+	extern atomic_t smp_commenced;
+
 	CPUMASK_CLRB(boot_barrier, getcpuid());	/* needs atomicity */
 	per_cpu_init();
 	per_cpu_trap_init();
@@ -435,7 +434,32 @@
 	local_flush_tlb_all();
 	flush_cache_l1();
 	flush_cache_l2();
-	start_secondary();
+
+	local_irq_enable();
+#if 0
+	/*
+	 * Get our bogomips.
+	 */
+        calibrate_delay();
+        smp_store_cpu_info(cpuid);
+	prom_smp_finish();
+#endif
+	printk("Slave cpu booted successfully\n");
+	CPUMASK_SETB(cpu_online_map, cpu);
+	atomic_inc(&cpus_booted);
+
+	while (!atomic_read(&smp_commenced));
+	return cpu_idle();
+}
+
+static int __init fork_by_hand(void)
+{
+	struct pt_regs regs;
+	/*
+	 * don't care about the epc and regs settings since
+	 * we'll never reschedule the forked task.
+	 */
+	return do_fork(CLONE_VM|CLONE_PID, 0, &regs, 0);
 }
 
 __init void allowboot(void)
@@ -457,68 +481,79 @@
 	boot_barrier = boot_cpumask;
 	/* Launch slaves. */
 	for (cpu = 0; cpu < maxcpus; cpu++) {
+		struct task_struct *idle;
+
 		if (cpu == mycpuid) {
 			alloc_cpupda(cpu, num_cpus);
 			num_cpus++;
 			/* We're already started, clear our bit */
+			CPUMASK_SETB(cpu_online_map, cpu);
 			CPUMASK_CLRB(boot_barrier, cpu);
 			continue;
 		}
 
 		/* Skip holes in CPU space */
-		if (CPUMASK_TSTB(boot_cpumask, cpu)) {
-			struct task_struct *p;
+		if (!CPUMASK_TSTB(boot_cpumask, cpu))
+			continue;
 
-			/*
-			 * The following code is purely to make sure
-			 * Linux can schedule processes on this slave.
-			 */
-			kernel_thread(0, NULL, CLONE_PID);
-			p = init_task.prev_task;
-			sprintf(p->comm, "%s%d", "Idle", num_cpus);
-			init_tasks[num_cpus] = p;
-			alloc_cpupda(cpu, num_cpus);
-			del_from_runqueue(p);
-			p->processor = num_cpus;
-			p->cpus_runnable = 1 << num_cpus; /* we schedule the first task manually */
-			unhash_process(p);
-			/* Attach to the address space of init_task. */
-			atomic_inc(&init_mm.mm_count);
-			p->active_mm = &init_mm;
+		/*
+		 * We can't use kernel_thread since we must avoid to
+		 * reschedule the child.
+		 */
+		if (fork_by_hand() < 0)
+			panic("failed fork for CPU %d", num_cpus);
 
-			/*
-		 	 * Launch a slave into smp_bootstrap().
-		 	 * It doesn't take an argument, and we
-			 * set sp to the kernel stack of the newly
-			 * created idle process, gp to the proc struct
-			 * (so that current-> works).
-		 	 */
-			LAUNCH_SLAVE(cputonasid(num_cpus),cputoslice(num_cpus),
-				(launch_proc_t)MAPPED_KERN_RW_TO_K0(smp_bootstrap),
-				0, (void *)((unsigned long)p +
-				KERNEL_STACK_SIZE - 32), (void *)p);
+		/*
+		 * We remove it from the pidhash and the runqueue
+		 * once we got the process:
+		 */
+		idle = init_task.prev_task;
+		if (!idle)
+			panic("No idle process for CPU %d", num_cpus);
 
-			/*
-			 * Now optimistically set the mapping arrays. We
-			 * need to wait here, verify the cpu booted up, then
-			 * fire up the next cpu.
-			 */
-			__cpu_number_map[cpu] = num_cpus;
-			__cpu_logical_map[num_cpus] = cpu;
-			CPUMASK_SETB(cpu_online_map, cpu);
-			num_cpus++;
-			/*
-			 * Wait this cpu to start up and initialize its hub,
-			 * and discover the io devices it will control.
-			 *
-			 * XXX: We really want to fire up launch all the CPUs
-			 * at once.  We have to preserve the order of the
-			 * devices on the bridges first though.
-			 */
-			while(atomic_read(&numstarted) != num_cpus);
-		}
-	}
+		idle->processor = num_cpus;
+		idle->cpus_runnable = 1 << cpu; /* we schedule the first task manually */
 
+		alloc_cpupda(cpu, num_cpus);
+
+		idle->thread.reg31 = (unsigned long) start_secondary;
+
+		del_from_runqueue(idle);
+		unhash_process(idle);
+		init_tasks[num_cpus] = idle;
+
+		/*
+	 	 * Launch a slave into smp_bootstrap().
+	 	 * It doesn't take an argument, and we
+		 * set sp to the kernel stack of the newly
+		 * created idle process, gp to the proc struct
+		 * (so that current-> works).
+	 	 */
+		LAUNCH_SLAVE(cputonasid(num_cpus),cputoslice(num_cpus),
+			(launch_proc_t)MAPPED_KERN_RW_TO_K0(smp_bootstrap),
+			0, (void *)((unsigned long)idle +
+			KERNEL_STACK_SIZE - 32), (void *)idle);
+
+		/*
+		 * Now optimistically set the mapping arrays. We
+		 * need to wait here, verify the cpu booted up, then
+		 * fire up the next cpu.
+		 */
+		__cpu_number_map[cpu] = num_cpus;
+		__cpu_logical_map[num_cpus] = cpu;
+		CPUMASK_SETB(cpu_online_map, cpu);
+		num_cpus++;
+
+		/*
+		 * Wait this cpu to start up and initialize its hub,
+		 * and discover the io devices it will control.
+		 *
+		 * XXX: We really want to fire up launch all the CPUs
+		 * at once.  We have to preserve the order of the
+		 * devices on the bridges first though.
+		 */
+		while (atomic_read(&numstarted) != num_cpus);
+	}
 
 #ifdef LATER
 	Wait logic goes here.
@@ -545,7 +580,7 @@
 	init_new_context(current, &init_mm);
 	current->processor = 0;
 	init_idle();
-	smp_tune_scheduling();
+	/* smp_tune_scheduling();  XXX */
 	allowboot();
 }
 
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip27/ip27-pci.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/ip27-pci.c
--- linux-2.4.20/arch/mips/sgi-ip27/ip27-pci.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/ip27-pci.c	2003-01-11 11:53:10.000000000 -0600
@@ -70,20 +70,20 @@
 	return PCIBIOS_SUCCESSFUL;					\
 } while (0)
 
-static int
-pci_conf0_read_config_byte(struct pci_dev *dev, int where, u8 *value)
+static int pci_conf0_read_config_byte(struct pci_dev *dev, int where,
+	u8 *value)
 {
 	CF0_READ_PCI_CFG(dev,where,value,3,0xff);
 }
 
-static int
-pci_conf0_read_config_word(struct pci_dev *dev, int where, u16 *value)
+static int pci_conf0_read_config_word(struct pci_dev *dev, int where,
+	u16 *value)
 {
 	CF0_READ_PCI_CFG(dev,where,value,2,0xffff);
 }
 
-static int
-pci_conf0_read_config_dword(struct pci_dev *dev, int where, u32 *value)
+static int pci_conf0_read_config_dword(struct pci_dev *dev, int where,
+	u32 *value)
 {
 	CF0_READ_PCI_CFG(dev,where,value,0,0xffffffff);
 }
@@ -115,20 +115,20 @@
 	return PCIBIOS_SUCCESSFUL;					\
 } while (0)
 
-static int
-pci_conf0_write_config_byte(struct pci_dev *dev, int where, u8 value)
+static int pci_conf0_write_config_byte(struct pci_dev *dev, int where,
+	u8 value)
 {
 	CF0_WRITE_PCI_CFG(dev,where,value,3,0xff);
 }
 
-static int
-pci_conf0_write_config_word(struct pci_dev *dev, int where, u16 value)
+static int pci_conf0_write_config_word(struct pci_dev *dev, int where,
+	u16 value)
 {
 	CF0_WRITE_PCI_CFG(dev,where,value,2,0xffff);
 }
 
-static int
-pci_conf0_write_config_dword(struct pci_dev *dev, int where, u32 value)
+static int pci_conf0_write_config_dword(struct pci_dev *dev, int where,
+	u32 value)
 {
 	CF0_WRITE_PCI_CFG(dev,where,value,0,0xffffffff);
 }
@@ -157,14 +157,12 @@
 	}
 }
 
-static inline u8
-bridge_swizzle(u8 pin, u8 slot)
+static inline u8 bridge_swizzle(u8 pin, u8 slot)
 {
 	return (((pin-1) + slot) % 4) + 1;
 }
 
-static u8 __init
-pci_swizzle(struct pci_dev *dev, u8 *pinp)
+static u8 __devinit pci_swizzle(struct pci_dev *dev, u8 *pinp)
 {
 	u8 pin = *pinp;
 
@@ -186,8 +184,7 @@
  * A given PCI device, in general, should be able to intr any of the cpus
  * on any one of the hubs connected to its xbow.
  */
-static int __init
-pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
+static int __devinit pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
 {
 	if ((dev->bus->number >= MAX_PCI_BUSSES)
 	    || (pin != 1)
@@ -208,15 +205,13 @@
 	return lastirq - 1;
 }
 
-void __init
-pcibios_update_irq(struct pci_dev *dev, int irq)
+void __init pcibios_update_irq(struct pci_dev *dev, int irq)
 {
 	pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq);
 }
 
-void __init
-pcibios_update_resource(struct pci_dev *dev, struct resource *root,
-                        struct resource *res, int resource)
+void pcibios_update_resource(struct pci_dev *dev, struct resource *root,
+	struct resource *res, int resource)
 {
 	unsigned long where, size;
 	u32 reg;
@@ -228,15 +223,13 @@
 	pci_write_config_dword(dev, where, reg);
 }
 
-void __init
-pcibios_fixup_bus(struct pci_bus *b)
+void __devinit pcibios_fixup_bus(struct pci_bus *b)
 {
 	pci_fixup_irqs(pci_swizzle, pci_map_irq);
 }
 
-void __init
-pcibios_fixup_pbus_ranges(struct pci_bus * bus,
-                          struct pbus_set_ranges_data * ranges)
+void __init pcibios_fixup_pbus_ranges(struct pci_bus * bus,
+	struct pbus_set_ranges_data * ranges)
 {
 	ranges->io_start  -= bus->resource[0]->start;
 	ranges->io_end    -= bus->resource[0]->start;
@@ -244,26 +237,23 @@
 	ranges->mem_end   -= bus->resource[1]->start;
 }
 
-int __init
-pcibios_enable_device(struct pci_dev *dev)
+int pcibios_enable_device(struct pci_dev *dev, int mask)
 {
 	/* Not needed, since we enable all devices at startup.  */
 	return 0;
 }
 
-void __init
-pcibios_align_resource(void *data, struct resource *res, unsigned long size,
-		       unsigned long align)
+void pcibios_align_resource(void *data, struct resource *res,
+	unsigned long size, unsigned long align)
 {
 }
 
-unsigned __init int pcibios_assign_all_busses(void)
+unsigned int pcibios_assign_all_busses(void)
 {
 	return 0;
 }
 
-char * __init
-pcibios_setup(char *str)
+char * __devinit pcibios_setup(char *str)
 {
 	/* Nothing to do for now.  */
 
@@ -277,8 +267,7 @@
  * settings.
  */
 
-static void __init
-pci_disable_swapping(struct pci_dev *dev)
+static void __init pci_disable_swapping(struct pci_dev *dev)
 {
 	unsigned int bus_id = (unsigned) dev->bus->number;
 	bridge_t *bridge = (bridge_t *) NODE_SWIN_BASE(bus_to_nid[bus_id],
@@ -290,8 +279,7 @@
 	bridge->b_widget.w_tflush;		/* Flush */
 }
 
-static void __init
-pci_enable_swapping(struct pci_dev *dev)
+static void __init pci_enable_swapping(struct pci_dev *dev)
 {
 	unsigned int bus_id = (unsigned) dev->bus->number;
 	bridge_t *bridge = (bridge_t *) NODE_SWIN_BASE(bus_to_nid[bus_id],
@@ -303,8 +291,7 @@
 	bridge->b_widget.w_tflush;		/* Flush */
 }
 
-static void __init
-pci_fixup_ioc3(struct pci_dev *d)
+static void __init pci_fixup_ioc3(struct pci_dev *d)
 {
 	unsigned long bus_id = (unsigned) d->bus->number;
 
@@ -316,8 +303,7 @@
 	pci_disable_swapping(d);
 }
 
-static void __init
-pci_fixup_isp1020(struct pci_dev *d)
+static void __init pci_fixup_isp1020(struct pci_dev *d)
 {
 	unsigned short command;
 
@@ -341,8 +327,7 @@
 	pci_enable_swapping(d);
 }
 
-static void __init
-pci_fixup_isp2x00(struct pci_dev *d)
+static void __init pci_fixup_isp2x00(struct pci_dev *d)
 {
 	unsigned int bus_id = (unsigned) d->bus->number;
 	bridge_t *bridge = (bridge_t *) NODE_SWIN_BASE(bus_to_nid[bus_id],
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip27/ip27-rtc.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/ip27-rtc.c
--- linux-2.4.20/arch/mips/sgi-ip27/ip27-rtc.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/ip27-rtc.c	2002-11-28 20:13:33.000000000 -0600
@@ -61,7 +61,6 @@
 #define RTC_TIMER_ON		0x02	/* missed irq timer active	*/
 
 static unsigned char rtc_status;	/* bitmapped status byte.	*/
-static spinlock_t rtc_status_lock = SPIN_LOCK_UNLOCKED;
 static unsigned long rtc_freq;	/* Current periodic IRQ rate	*/
 static struct m48t35_rtc *rtc;
 
@@ -92,7 +91,6 @@
 		struct rtc_time rtc_tm;
 		unsigned char mon, day, hrs, min, sec, leap_yr;
 		unsigned int yrs;
-		unsigned long flags;
 
 		if (!capable(CAP_SYS_TIME))
 			return -EACCES;
@@ -125,10 +123,7 @@
 		if ((yrs -= epoch) > 255)    /* They are unsigned */
 			return -EINVAL;
 
-		save_flags(flags);
-		cli();
 		if (yrs > 169) {
-			restore_flags(flags);
 			return -EINVAL;
 		}
 		if (yrs >= 100)
@@ -141,7 +136,8 @@
 		BIN_TO_BCD(mon);
 		BIN_TO_BCD(yrs);
 
-		rtc->control &= ~M48T35_RTC_SET;
+		spin_lock_irq(&rtc_lock);
+		rtc->control |= M48T35_RTC_SET;
 		rtc->year = yrs;
 		rtc->month = mon;
 		rtc->date = day;
@@ -149,8 +145,8 @@
 		rtc->min = min;
 		rtc->sec = sec;
 		rtc->control &= ~M48T35_RTC_SET;
+		spin_unlock_irq(&rtc_lock);
 
-		restore_flags(flags);
 		return 0;
 	}
 	default:
@@ -167,15 +163,15 @@
 
 static int rtc_open(struct inode *inode, struct file *file)
 {
-	spin_lock(rtc_status_lock);
+	spin_lock_irq(&rtc_lock);
 
 	if (rtc_status & RTC_IS_OPEN) {
-		spin_unlock(rtc_status_lock);
+		spin_unlock_irq(&rtc_lock);
 		return -EBUSY;
 	}
 
 	rtc_status |= RTC_IS_OPEN;
-	spin_unlock(rtc_status_lock);
+	spin_unlock_irq(&rtc_lock);
 
 	return 0;
 }
@@ -183,13 +179,10 @@
 static int rtc_release(struct inode *inode, struct file *file)
 {
 	/*
-	 * Turn off all interrupts once the device is no longer
-	 * in use, and clear the data.
+	 * No need for locking -- nobody else can do anything until this rmw
+	 * is committed, and no timer is running.
 	 */
-
-	spin_lock(rtc_status_lock);
 	rtc_status &= ~RTC_IS_OPEN;
-	spin_unlock(rtc_status_lock);
 
 	return 0;
 }
@@ -199,10 +192,11 @@
  */
 
 static struct file_operations rtc_fops = {
-	owner:		THIS_MODULE,
-	ioctl:		rtc_ioctl,
-	open:		rtc_open,
-	release:	rtc_release,
+	.owner		= THIS_MODULE,
+	.llseek		= no_llseek,
+	.ioctl		= rtc_ioctl,
+	.open		= rtc_open,
+	.release	= rtc_release,
 };
 
 static struct miscdevice rtc_dev=
@@ -214,21 +208,17 @@
 
 static int __init rtc_init(void)
 {
-	unsigned long flags;
 	nasid_t nid;
 
 	nid = get_nasid();
 	rtc = (struct m48t35_rtc *)
-	    KL_CONFIG_CH_CONS_INFO(nid)->memory_base + IOC3_BYTEBUS_DEV0;
+	    (KL_CONFIG_CH_CONS_INFO(nid)->memory_base + IOC3_BYTEBUS_DEV0);
 
 	printk(KERN_INFO "Real Time Clock Driver v%s\n", RTC_VERSION);
 	if (misc_register(&rtc_dev))
 		return -ENODEV;
-	create_proc_read_entry ("rtc", 0, NULL, rtc_read_proc, NULL);
+	create_proc_read_entry("driver/rtc", 0, NULL, rtc_read_proc, NULL);
 
-	save_flags(flags);
-	cli();
-	restore_flags(flags);
 	rtc_freq = 1024;
 	return 0;
 }
@@ -291,9 +281,6 @@
 
 static void get_rtc_time(struct rtc_time *rtc_tm)
 {
-
-	unsigned long flags;
-
 	/*
 	 * Do we need to wait for the last update to finish?
 	 */
@@ -304,9 +291,8 @@
 	 * RTC has RTC_DAY_OF_WEEK, we ignore it, as it is only updated
 	 * by the RTC when initially set to a non-zero value.
 	 */
-	save_flags(flags);
-	cli();
-        rtc->control |= M48T35_RTC_READ;
+	spin_lock_irq(&rtc_lock);
+	rtc->control |= M48T35_RTC_READ;
 	rtc_tm->tm_sec = rtc->sec;
 	rtc_tm->tm_min = rtc->min;
 	rtc_tm->tm_hour = rtc->hour;
@@ -314,7 +300,7 @@
 	rtc_tm->tm_mon = rtc->month;
 	rtc_tm->tm_year = rtc->year;
 	rtc->control &= ~M48T35_RTC_READ;
-	restore_flags(flags);
+	spin_unlock_irq(&rtc_lock);
 
 	BCD_TO_BIN(rtc_tm->tm_sec);
 	BCD_TO_BIN(rtc_tm->tm_min);
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip27/ip27-setup.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/ip27-setup.c
--- linux-2.4.20/arch/mips/sgi-ip27/ip27-setup.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/ip27-setup.c	2002-11-28 18:06:30.000000000 -0600
@@ -276,6 +276,7 @@
 
 extern void ip27_setup_console(void);
 extern void ip27_time_init(void);
+extern void ip27_reboot_setup(void);
 
 void __init ip27_setup(void)
 {
@@ -283,6 +284,7 @@
 	hubreg_t p, e;
 
 	ip27_setup_console();
+	ip27_reboot_setup();
 
 	num_bridges = 0;
 	/*
@@ -309,6 +311,6 @@
 	ioc3_eth_init();
 	per_cpu_init();
 
-	mips_io_port_base = IO_BASE;
+	set_io_port_base(IO_BASE);
 	board_time_init = ip27_time_init;
 }
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip27/ip27-timer.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/ip27-timer.c
--- linux-2.4.20/arch/mips/sgi-ip27/ip27-timer.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/ip27-timer.c	2002-12-01 18:24:51.000000000 -0600
@@ -1,5 +1,5 @@
 /*
- * Copytight (C) 1999, 2000 Ralf Baechle (ralf@gnu.org)
+ * Copytight (C) 1999, 2000, 2002 Ralf Baechle (ralf@gnu.org)
  * Copytight (C) 1999, 2000 Silicon Graphics, Inc.
  */
 #include <linux/config.h>
@@ -55,6 +55,7 @@
 	rtc = (struct m48t35_rtc *)(KL_CONFIG_CH_CONS_INFO(nid)->memory_base +
 							IOC3_BYTEBUS_DEV0);
 
+	spin_lock(&rtc_lock);
 	rtc->control |= M48T35_RTC_READ;
 	cmos_minutes = rtc->min;
 	BCD_TO_BIN(cmos_minutes);
@@ -84,15 +85,18 @@
 		       cmos_minutes, real_minutes);
 		retval = -1;
 	}
+	spin_unlock(&rtc_lock);
 
 	return retval;
 }
 
+#define IP27_TIMER_IRQ	9			/* XXX Assign number */
+
 void rt_timer_interrupt(struct pt_regs *regs)
 {
 	int cpu = smp_processor_id();
 	int cpuA = ((cputoslice(cpu)) == 0);
-	int irq = 9;				/* XXX Assign number */
+	int irq = IP27_TIMER_IRQ;
 
 	irq_enter(cpu, irq);
 	write_lock(&xtime_lock);
@@ -157,7 +161,7 @@
 
 static __init unsigned long get_m48t35_time(void)
 {
-        unsigned int year, month, date, hour, min, sec;
+	unsigned int year, month, date, hour, min, sec;
 	struct m48t35_rtc *rtc;
 	nasid_t nid;
 
@@ -165,6 +169,7 @@
 	rtc = (struct m48t35_rtc *)(KL_CONFIG_CH_CONS_INFO(nid)->memory_base +
 							IOC3_BYTEBUS_DEV0);
 
+	spin_lock(&rtc_lock);
 	rtc->control |= M48T35_RTC_READ;
 	sec = rtc->sec;
 	min = rtc->min;
@@ -173,17 +178,27 @@
 	month = rtc->month;
 	year = rtc->year;
 	rtc->control &= ~M48T35_RTC_READ;
+	spin_unlock(&rtc_lock);
 
-        BCD_TO_BIN(sec);
-        BCD_TO_BIN(min);
-        BCD_TO_BIN(hour);
-        BCD_TO_BIN(date);
-        BCD_TO_BIN(month);
-        BCD_TO_BIN(year);
+	BCD_TO_BIN(sec);
+	BCD_TO_BIN(min);
+	BCD_TO_BIN(hour);
+	BCD_TO_BIN(date);
+	BCD_TO_BIN(month);
+	BCD_TO_BIN(year);
 
-        year += 1970;
+	year += 1970;
 
-        return mktime(year, month, date, hour, min, sec);
+	return mktime(year, month, date, hour, min, sec);
+}
+
+static void ip27_timer_setup(struct irqaction *irq)
+{
+	/* over-write the handler, we use our own way */
+	irq->handler = no_action;
+
+	/* setup irqaction */
+//	setup_irq(IP27_TIMER_IRQ, irq);		/* XXX Can't do this yet.  */
 }
 
 void __init ip27_time_init(void)
@@ -192,6 +207,9 @@
 	xtime.tv_usec = 0;
 
 	do_gettimeoffset = ip27_do_gettimeoffset;
+
+	// board_time_init = ip27_time_init;
+	board_timer_setup = ip27_timer_setup;
 }
 
 void __init cpu_time_init(void)
@@ -212,7 +230,7 @@
 
 	printk("CPU %d clock is %dMHz.\n", smp_processor_id(), cpu->cpu_speed);
 
-	set_cp0_status(SRB_TIMOCLK);
+	set_c0_status(SRB_TIMOCLK);
 }
 
 void __init hub_rtc_init(cnodeid_t cnode)
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip27/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/Makefile
--- linux-2.4.20/arch/mips/sgi-ip27/Makefile	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/Makefile	2002-11-28 20:13:32.000000000 -0600
@@ -10,6 +10,6 @@
 
 obj-y	:= ip27-berr.o ip27-console.o ip27-irq.o ip27-init.o ip27-irq-glue.o \
 	   ip27-klconfig.o ip27-klnuma.o ip27-memory.o ip27-nmi.o ip27-pci.o \
-	   ip27-reset.o ip27-setup.o ip27-timer.o
+	   ip27-reset.o ip27-rtc.o ip27-setup.o ip27-timer.o
 
 include $(TOPDIR)/Rules.make
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip32/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/CVS/Entries
--- linux-2.4.20/arch/mips/sgi-ip32/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/CVS/Entries	2005-01-06 23:00:10.000000000 -0600
@@ -0,0 +1,12 @@
+/.cvsignore/1.1.2.1/Thu Jul 25 19:31:23 2002/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.1/Thu Jul 25 19:31:23 2002/-ko/Tlinux_2_4_20
+/crime.c/1.1.2.2/Mon Aug  5 23:53:35 2002/-ko/Tlinux_2_4_20
+/ip32-berr.c/1.1.2.3/Sat Sep 28 22:28:38 2002/-ko/Tlinux_2_4_20
+/ip32-irq-glue.S/1.1.2.1/Thu Jul 25 19:31:23 2002/-ko/Tlinux_2_4_20
+/ip32-irq.c/1.1.2.3/Mon Dec  2 00:24:51 2002/-ko/Tlinux_2_4_20
+/ip32-pci.c/1.1.2.4/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/ip32-reset.c/1.1.2.1/Thu Jul 25 19:31:23 2002/-ko/Tlinux_2_4_20
+/ip32-rtc.c/1.1.2.1/Thu Jul 25 19:31:23 2002/-ko/Tlinux_2_4_20
+/ip32-setup.c/1.1.2.2/Sat Sep 21 21:21:28 2002/-ko/Tlinux_2_4_20
+/ip32-timer.c/1.1.2.3/Mon Dec  2 00:24:51 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip32/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/CVS/Repository
--- linux-2.4.20/arch/mips/sgi-ip32/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/CVS/Repository	2005-01-06 23:00:10.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/sgi-ip32
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip32/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/CVS/Root
--- linux-2.4.20/arch/mips/sgi-ip32/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/CVS/Root	2005-01-06 23:00:10.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip32/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/CVS/Tag
--- linux-2.4.20/arch/mips/sgi-ip32/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/CVS/Tag	2005-01-06 23:00:10.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip32/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/.cvsignore
--- linux-2.4.20/arch/mips/sgi-ip32/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/.cvsignore	2002-07-25 14:31:23.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip32/ip32-berr.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/ip32-berr.c
--- linux-2.4.20/arch/mips/sgi-ip32/ip32-berr.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/ip32-berr.c	2002-09-28 17:28:38.000000000 -0500
@@ -13,9 +13,9 @@
 #include <asm/uaccess.h>
 #include <asm/addrspace.h>
 #include <asm/ptrace.h>
+#include <asm/tlbdebug.h>
 
-int
-be_ip32_handler(struct pt_regs *regs, int is_fixup)
+int be_ip32_handler(struct pt_regs *regs, int is_fixup)
 {
 	int data = regs->cp0_cause & 4;
 
@@ -29,8 +29,7 @@
 	force_sig(SIGBUS, current);
 }
 
-void __init
-bus_error_init(void)
+void __init bus_error_init(void)
 {
 	be_board_handler = be_ip32_handler;
 }
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip32/ip32-irq.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/ip32-irq.c
--- linux-2.4.20/arch/mips/sgi-ip32/ip32-irq.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/ip32-irq.c	2002-12-01 18:24:51.000000000 -0600
@@ -124,7 +124,7 @@
 
 static void enable_cpu_irq(unsigned int irq)
 {
-	set_cp0_status(STATUSF_IP7);
+	set_c0_status(STATUSF_IP7);
 }
 
 static unsigned int startup_cpu_irq(unsigned int irq)
@@ -135,7 +135,7 @@
 
 static void disable_cpu_irq(unsigned int irq)
 {
-	clear_cp0_status(STATUSF_IP7);
+	clear_c0_status(STATUSF_IP7);
 }
 
 static void end_cpu_irq(unsigned int irq)
@@ -447,8 +447,8 @@
 
 	printk ("Unknown interrupt occurred!\n");
 	printk ("cp0_status: %08x\tcp0_cause: %08x\n",
-		read_32bit_cp0_register (CP0_STATUS),
-		read_32bit_cp0_register (CP0_CAUSE));
+		read_c0_status(),
+		read_c0_cause());
 	crime = crime_read_64 (CRIME_INT_MASK);
 	printk ("CRIME interrupt mask: %016lx\n", crime);
 	crime = crime_read_64 (CRIME_INT_STAT);
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip32/ip32-pci.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/ip32-pci.c
--- linux-2.4.20/arch/mips/sgi-ip32/ip32-pci.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/ip32-pci.c	2003-01-11 11:53:10.000000000 -0600
@@ -270,7 +270,7 @@
  * irqs.  I suppose a device without a pin A will thank us for doing it
  * right if there exists such a broken piece of crap.
  */
-static int __init macepci_map_irq (struct pci_dev *dev, u8 slot, u8 pin)
+static int __devinit macepci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
 {
 	chkslot (dev);
 	if (pin == 0)
@@ -326,7 +326,7 @@
  * It's not entirely clear what this does in a system with no bridges.
  * In any case, bridges are not supported by Linux in O2.
  */
-static u8 __init macepci_swizzle (struct pci_dev *dev, u8 *pinp)
+static u8 __init macepci_swizzle(struct pci_dev *dev, u8 *pinp)
 {
 	if (PCI_SLOT (dev->devfn) == 2)
 		*pinp = 2;
@@ -336,39 +336,39 @@
 }
 
 /* All devices are enabled during initialization. */
-int pcibios_enable_device (struct pci_dev *dev)
+int pcibios_enable_device(struct pci_dev *dev, int flags)
 {
 	return PCIBIOS_SUCCESSFUL;
-}
+} 
 
 char * __init pcibios_setup (char *str)
 {
 	return str;
 }
 
-void __init pcibios_align_resource (void *data, struct resource *res,
-				    unsigned long size, unsigned long align)
+void pcibios_align_resource(void *data, struct resource *res,
+	unsigned long size, unsigned long align)
 {
 }
 
-void __init pcibios_update_resource (struct pci_dev *dev, struct resource *root,
-				     struct resource *res, int resource)
+void pcibios_update_resource(struct pci_dev *dev, struct resource *root,
+	struct resource *res, int resource)
 {
 }
 
-void __init pcibios_update_irq (struct pci_dev *dev, int irq)
+void __init pcibios_update_irq(struct pci_dev *dev, int irq)
 {
 	pci_write_config_byte (dev, PCI_INTERRUPT_LINE, irq);
 }
 
-void __init pcibios_fixup_bus (struct pci_bus *b)
+void __devinit pcibios_fixup_bus (struct pci_bus *b)
 {
 	pci_fixup_irqs (macepci_swizzle, macepci_map_irq);
 }
 
 /* XXX anybody know what this is supposed to do? */
 void __init pcibios_fixup_pbus_ranges(struct pci_bus * bus,
-				      struct pbus_set_ranges_data * ranges)
+	struct pbus_set_ranges_data * ranges)
 {
 	ranges->io_start -= bus->resource[0]->start;
 	ranges->io_end -= bus->resource[0]->start;
@@ -382,7 +382,8 @@
  * registered on the bridge error irq.  It's conceivable that some of these
  * conditions warrant a panic.  Anybody care to say which ones?
  */
-void macepci_error (int irq, void *dev, struct pt_regs *regs) {
+void macepci_error(int irq, void *dev, struct pt_regs *regs)
+{
 	u32 flags, error_addr;
 	char space;
 
@@ -454,7 +455,8 @@
 			       & ~MACEPCI_ERROR_INTERRUPT_TEST);
 	}
 }
-unsigned __init int pcibios_assign_all_busses(void)
+
+unsigned int pcibios_assign_all_busses(void)
 {
 	return 0;
 }
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip32/ip32-setup.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/ip32-setup.c
--- linux-2.4.20/arch/mips/sgi-ip32/ip32-setup.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/ip32-setup.c	2002-09-21 16:21:28.000000000 -0500
@@ -59,6 +59,7 @@
 #endif
 
 extern void ip32_time_init(void);
+extern void ip32_reboot_setup(void);
 
 void __init ip32_setup(void)
 {
@@ -89,6 +90,8 @@
 	conswitchp = &dummy_con;
 #endif
 
+	ip32_reboot_setup();
+
 	rtc_ops = &ip32_rtc_ops;
 	board_time_init = ip32_time_init;
 
diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip32/ip32-timer.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/ip32-timer.c
--- linux-2.4.20/arch/mips/sgi-ip32/ip32-timer.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/ip32-timer.c	2002-12-01 18:24:51.000000000 -0600
@@ -53,12 +53,12 @@
 	printk("Calibrating system timer... ");
 
 	crime_time = crime_read_64 (CRIME_TIME) & CRIME_TIME_MASK;
-	cc_tick = read_32bit_cp0_register (CP0_COUNT);
+	cc_tick = read_c0_count();
 
 	while ((crime_read_64 (CRIME_TIME) & CRIME_TIME_MASK) - crime_time
 		< WAIT_MS * 1000000 / CRIME_NS_PER_TICK)
 		;
-	cc_tick = read_32bit_cp0_register (CP0_COUNT) - cc_tick;
+	cc_tick = read_c0_count() - cc_tick;
 	cc_interval = cc_tick / HZ * (1000 / WAIT_MS);
 	/* The round-off seems unnecessary; in testing, the error of the
 	 * above procedure is < 100 ticks, which means it gets filtered
@@ -82,11 +82,11 @@
 	 * The cycle counter is only 32 bit which is good for about
 	 * a minute at current count rates of upto 150MHz or so.
 	 */
-	count = read_32bit_cp0_register(CP0_COUNT);
+	count = read_c0_count();
 	timerhi += (count < timerlo);	/* Wrap around */
 	timerlo = count;
 
-	write_32bit_cp0_register (CP0_COMPARE,
+	write_c0_compare(
 				  (u32) (count + cc_interval));
 	kstat.irqs[0][irq]++;
 	do_timer (regs);
@@ -153,7 +153,7 @@
 	}
 
 	/* Get last timer tick in absolute kernel time */
-	count = read_32bit_cp0_register(CP0_COUNT);
+	count = read_c0_count();
 
 	/* .. relative to previous jiffy (32 bits is enough) */
 	count -= timerlo;
@@ -223,16 +223,16 @@
 	xtime.tv_usec = 0;
 	write_unlock_irq (&xtime_lock);
 
-	write_32bit_cp0_register(CP0_COUNT, 0);
+	write_c0_count(0);
 	irq0.handler = cc_timer_interrupt;
 
 	ip32_timer_setup (&irq0);
 
 #define ALLINTS (IE_IRQ0 | IE_IRQ1 | IE_IRQ2 | IE_IRQ3 | IE_IRQ4 | IE_IRQ5)
 	/* Set ourselves up for future interrupts */
-        write_32bit_cp0_register(CP0_COMPARE,
-				 read_32bit_cp0_register(CP0_COUNT)
+        write_c0_compare(
+				 read_c0_count()
 				 + cc_interval);
-        change_cp0_status(ST0_IM, ALLINTS);
+        change_c0_status(ST0_IM, ALLINTS);
 	sti ();
 }
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/cfe/cfe_api.c linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/cfe_api.c
--- linux-2.4.20/arch/mips/sibyte/cfe/cfe_api.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/cfe_api.c	2002-09-27 10:49:09.000000000 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2000, 2001 Broadcom Corporation
+ * Copyright (C) 2000, 2001, 2002 Broadcom Corporation
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -17,6 +17,7 @@
  */
 
 /*  *********************************************************************
+    *
     *  Broadcom Common Firmware Environment (CFE)
     *
     *  Device Function stubs			File: cfe_api.c
@@ -25,196 +26,218 @@
     *  call the standard "iocb" interface entry point to CFE).
     *  There should be one routine here per iocb function call.
     *
-    *  Author:  Mitch Lichtenberg (mpl@broadcom.com)
+    *  Authors:  Mitch Lichtenberg, Chris Demetriou
     *
     ********************************************************************* */
 
-
-#include "cfe_xiocb.h"
 #include "cfe_api.h"
+#include "cfe_api_int.h"
 
-static long cfe_console_handle = -1;
-static int (*cfe_dispfunc)(long handle,cfe_xiocb_t *xiocb) = 0;
-static cfe_xuint_t cfe_handle = 0;
+/* Cast from a native pointer to a cfe_xptr_t and back.	 */
+#define XPTR_FROM_NATIVE(n)	((cfe_xptr_t) (intptr_t) (n))
+#define NATIVE_FROM_XPTR(x)	((void *) (intptr_t) (x))
 
+#ifdef CFE_API_IMPL_NAMESPACE
+#define cfe_iocb_dispatch(a)		__cfe_iocb_dispatch(a)
+#endif
+int cfe_iocb_dispatch(cfe_xiocb_t * xiocb);
+
+#if defined(CFE_API_common) || defined(CFE_API_ALL)
 /*
- * This macro makes a "signed 64-bit pointer" - basically extending a regular
- * pointer to its 64-bit compatibility space equivalent.
+ * Declare the dispatch function with args of "intptr_t".
+ * This makes sure whatever model we're compiling in
+ * puts the pointers in a single register.  For example,
+ * combining -mlong64 and -mips1 or -mips2 would lead to
+ * trouble, since the handle and IOCB pointer will be
+ * passed in two registers each, and CFE expects one.
  */
-#define BIGPTR(x) (long long) (long) (x)
 
-typedef unsigned long intptr_t;
+static int (*cfe_dispfunc) (intptr_t handle, intptr_t xiocb) = 0;
+static cfe_xuint_t cfe_handle = 0;
 
-int cfe_init(cfe_xuint_t handle)
+int cfe_init(cfe_xuint_t handle, cfe_xuint_t ept)
 {
-	if ((*((unsigned int *) (int) CFE_APISEAL) == CFE_EPTSEAL) ||
-	    (*((unsigned int *) (int) CFE_APISEAL_RE) == CFE_EPTSEAL) ||
-	    (*((unsigned int *) (int) CFE_APISEAL_OLD) == CFE_EPTSEAL)) {
-		cfe_dispfunc = (cfe_xptr_t) (int) CFE_APIENTRY;
-		if (handle) cfe_handle = handle;
-		return 0;
-	} else {
-		return -1;
-	}
+	cfe_dispfunc = NATIVE_FROM_XPTR(ept);
+	cfe_handle = handle;
+	return 0;
 }
 
-int cfe_iocb_dispatch(cfe_xiocb_t *xiocb);
-int cfe_iocb_dispatch(cfe_xiocb_t *xiocb)
+int cfe_iocb_dispatch(cfe_xiocb_t * xiocb)
 {
-	if (!cfe_dispfunc) return -1;
-	return (*cfe_dispfunc)(cfe_handle,xiocb);
+	if (!cfe_dispfunc)
+		return -1;
+	return (*cfe_dispfunc) ((intptr_t) cfe_handle, (intptr_t) xiocb);
 }
+#endif				/* CFE_API_common || CFE_API_ALL */
 
-static int cfe_strlen(char *name)
+#if defined(CFE_API_close) || defined(CFE_API_ALL)
+int cfe_close(int handle)
 {
-	int count = 0;
+	cfe_xiocb_t xiocb;
 
-	while (*name) {
-		count++;
-		name++;
-	}
+	xiocb.xiocb_fcode = CFE_CMD_DEV_CLOSE;
+	xiocb.xiocb_status = 0;
+	xiocb.xiocb_handle = handle;
+	xiocb.xiocb_flags = 0;
+	xiocb.xiocb_psize = 0;
+
+	cfe_iocb_dispatch(&xiocb);
+
+	return xiocb.xiocb_status;
 
-	return count;
 }
+#endif				/* CFE_API_close || CFE_API_ALL */
 
-int cfe_open(char *name)
+#if defined(CFE_API_cpu_start) || defined(CFE_API_ALL)
+int cfe_cpu_start(int cpu, void (*fn) (void), long sp, long gp, long a1)
 {
 	cfe_xiocb_t xiocb;
 
-	xiocb.xiocb_fcode = CFE_CMD_DEV_OPEN;
+	xiocb.xiocb_fcode = CFE_CMD_FW_CPUCTL;
 	xiocb.xiocb_status = 0;
 	xiocb.xiocb_handle = 0;
 	xiocb.xiocb_flags = 0;
-	xiocb.xiocb_psize = sizeof(xiocb_buffer_t);
-	xiocb.plist.xiocb_buffer.buf_offset = 0;
-	xiocb.plist.xiocb_buffer.buf_ptr = BIGPTR(name);
-	xiocb.plist.xiocb_buffer.buf_length = cfe_strlen(name);
+	xiocb.xiocb_psize = sizeof(xiocb_cpuctl_t);
+	xiocb.plist.xiocb_cpuctl.cpu_number = cpu;
+	xiocb.plist.xiocb_cpuctl.cpu_command = CFE_CPU_CMD_START;
+	xiocb.plist.xiocb_cpuctl.gp_val = gp;
+	xiocb.plist.xiocb_cpuctl.sp_val = sp;
+	xiocb.plist.xiocb_cpuctl.a1_val = a1;
+	xiocb.plist.xiocb_cpuctl.start_addr = (long) fn;
 
 	cfe_iocb_dispatch(&xiocb);
 
-	return (xiocb.xiocb_status < 0) ? xiocb.xiocb_status : xiocb.xiocb_handle;
+	return xiocb.xiocb_status;
 }
+#endif				/* CFE_API_cpu_start || CFE_API_ALL */
 
-int cfe_close(int handle)
+#if defined(CFE_API_cpu_stop) || defined(CFE_API_ALL)
+int cfe_cpu_stop(int cpu)
 {
 	cfe_xiocb_t xiocb;
 
-	xiocb.xiocb_fcode = CFE_CMD_DEV_CLOSE;
+	xiocb.xiocb_fcode = CFE_CMD_FW_CPUCTL;
 	xiocb.xiocb_status = 0;
-	xiocb.xiocb_handle = handle;
+	xiocb.xiocb_handle = 0;
 	xiocb.xiocb_flags = 0;
-	xiocb.xiocb_psize = 0;
+	xiocb.xiocb_psize = sizeof(xiocb_cpuctl_t);
+	xiocb.plist.xiocb_cpuctl.cpu_number = cpu;
+	xiocb.plist.xiocb_cpuctl.cpu_command = CFE_CPU_CMD_STOP;
 
 	cfe_iocb_dispatch(&xiocb);
 
-	return (xiocb.xiocb_status);
-
+	return xiocb.xiocb_status;
 }
+#endif				/* CFE_API_cpu_stop || CFE_API_ALL */
 
-int cfe_readblk(int handle,cfe_xint_t offset,unsigned char *buffer,int length)
+#if defined(CFE_API_enumenv) || defined(CFE_API_ALL)
+int cfe_enumenv(int idx, char *name, int namelen, char *val, int vallen)
 {
 	cfe_xiocb_t xiocb;
 
-	xiocb.xiocb_fcode = CFE_CMD_DEV_READ;
+	xiocb.xiocb_fcode = CFE_CMD_ENV_SET;
 	xiocb.xiocb_status = 0;
-	xiocb.xiocb_handle = handle;
+	xiocb.xiocb_handle = 0;
 	xiocb.xiocb_flags = 0;
-	xiocb.xiocb_psize = sizeof(xiocb_buffer_t);
-	xiocb.plist.xiocb_buffer.buf_offset = offset;
-	xiocb.plist.xiocb_buffer.buf_ptr = BIGPTR(buffer);
-	xiocb.plist.xiocb_buffer.buf_length = length;
+	xiocb.xiocb_psize = sizeof(xiocb_envbuf_t);
+	xiocb.plist.xiocb_envbuf.enum_idx = idx;
+	xiocb.plist.xiocb_envbuf.name_ptr = XPTR_FROM_NATIVE(name);
+	xiocb.plist.xiocb_envbuf.name_length = namelen;
+	xiocb.plist.xiocb_envbuf.val_ptr = XPTR_FROM_NATIVE(val);
+	xiocb.plist.xiocb_envbuf.val_length = vallen;
 
 	cfe_iocb_dispatch(&xiocb);
 
-	return (xiocb.xiocb_status < 0) ? xiocb.xiocb_status : xiocb.plist.xiocb_buffer.buf_retlen;
-}
-
-int cfe_read(int handle,unsigned char *buffer,int length)
-{
-	return cfe_readblk(handle,0,buffer,length);
+	return xiocb.xiocb_status;
 }
+#endif				/* CFE_API_enumenv || CFE_API_ALL */
 
-
-int cfe_writeblk(int handle,cfe_xint_t offset,unsigned char *buffer,int length)
+#if defined(CFE_API_enummem) || defined(CFE_API_ALL)
+int
+cfe_enummem(int idx, int flags, cfe_xuint_t * start, cfe_xuint_t * length,
+	    cfe_xuint_t * type)
 {
 	cfe_xiocb_t xiocb;
 
-	xiocb.xiocb_fcode = CFE_CMD_DEV_WRITE;
+	xiocb.xiocb_fcode = CFE_CMD_FW_MEMENUM;
 	xiocb.xiocb_status = 0;
-	xiocb.xiocb_handle = handle;
-	xiocb.xiocb_flags = 0;
-	xiocb.xiocb_psize = sizeof(xiocb_buffer_t);
-	xiocb.plist.xiocb_buffer.buf_offset = offset;
-	xiocb.plist.xiocb_buffer.buf_ptr = BIGPTR(buffer);
-	xiocb.plist.xiocb_buffer.buf_length = length;
+	xiocb.xiocb_handle = 0;
+	xiocb.xiocb_flags = flags;
+	xiocb.xiocb_psize = sizeof(xiocb_meminfo_t);
+	xiocb.plist.xiocb_meminfo.mi_idx = idx;
 
 	cfe_iocb_dispatch(&xiocb);
 
-	return (xiocb.xiocb_status < 0) ? xiocb.xiocb_status : xiocb.plist.xiocb_buffer.buf_retlen;
-}
+	if (xiocb.xiocb_status < 0)
+		return xiocb.xiocb_status;
 
-int cfe_write(int handle,unsigned char *buffer,int length)
-{
-	return cfe_writeblk(handle,0,buffer,length);
-}
+	*start = xiocb.plist.xiocb_meminfo.mi_addr;
+	*length = xiocb.plist.xiocb_meminfo.mi_size;
+	*type = xiocb.plist.xiocb_meminfo.mi_type;
 
+	return 0;
+}
+#endif				/* CFE_API_enummem || CFE_API_ALL */
 
-int cfe_ioctl(int handle,unsigned int ioctlnum,unsigned char *buffer,int length,int *retlen)
+#if defined(CFE_API_exit) || defined(CFE_API_ALL)
+int cfe_exit(int warm, int status)
 {
 	cfe_xiocb_t xiocb;
 
-	xiocb.xiocb_fcode = CFE_CMD_DEV_IOCTL;
+	xiocb.xiocb_fcode = CFE_CMD_FW_RESTART;
 	xiocb.xiocb_status = 0;
-	xiocb.xiocb_handle = handle;
-	xiocb.xiocb_flags = 0;
-	xiocb.xiocb_psize = sizeof(xiocb_buffer_t);
-	xiocb.plist.xiocb_buffer.buf_ioctlcmd = (cfe_xint_t) ioctlnum;
-	xiocb.plist.xiocb_buffer.buf_ptr = BIGPTR(buffer);
-	xiocb.plist.xiocb_buffer.buf_length = length;
+	xiocb.xiocb_handle = 0;
+	xiocb.xiocb_flags = warm ? CFE_FLG_WARMSTART : 0;
+	xiocb.xiocb_psize = sizeof(xiocb_exitstat_t);
+	xiocb.plist.xiocb_exitstat.status = status;
 
 	cfe_iocb_dispatch(&xiocb);
 
-	if (retlen) *retlen = xiocb.plist.xiocb_buffer.buf_retlen;
 	return xiocb.xiocb_status;
 }
+#endif				/* CFE_API_exit || CFE_API_ALL */
 
-int cfe_inpstat(int handle)
+#if defined(CFE_API_flushcache) || defined(CFE_API_ALL)
+int cfe_flushcache(int flg)
 {
 	cfe_xiocb_t xiocb;
 
-	xiocb.xiocb_fcode = CFE_CMD_DEV_INPSTAT;
+	xiocb.xiocb_fcode = CFE_CMD_FW_FLUSHCACHE;
 	xiocb.xiocb_status = 0;
-	xiocb.xiocb_handle = handle;
-	xiocb.xiocb_flags = 0;
-	xiocb.xiocb_psize = sizeof(xiocb_inpstat_t);
-	xiocb.plist.xiocb_inpstat.inp_status = 0;
+	xiocb.xiocb_handle = 0;
+	xiocb.xiocb_flags = flg;
+	xiocb.xiocb_psize = 0;
 
 	cfe_iocb_dispatch(&xiocb);
 
-	if (xiocb.xiocb_status < 0) return xiocb.xiocb_status;
-
-	return xiocb.plist.xiocb_inpstat.inp_status;
-
+	return xiocb.xiocb_status;
 }
+#endif				/* CFE_API_flushcache || CFE_API_ALL */
 
-long long cfe_getticks(void)
+#if defined(CFE_API_getdevinfo) || defined(CFE_API_ALL)
+int cfe_getdevinfo(char *name)
 {
 	cfe_xiocb_t xiocb;
 
-	xiocb.xiocb_fcode = CFE_CMD_FW_GETTIME;
+	xiocb.xiocb_fcode = CFE_CMD_DEV_GETINFO;
 	xiocb.xiocb_status = 0;
 	xiocb.xiocb_handle = 0;
 	xiocb.xiocb_flags = 0;
-	xiocb.xiocb_psize = sizeof(xiocb_time_t);
-	xiocb.plist.xiocb_time.ticks = 0;
+	xiocb.xiocb_psize = sizeof(xiocb_buffer_t);
+	xiocb.plist.xiocb_buffer.buf_offset = 0;
+	xiocb.plist.xiocb_buffer.buf_ptr = XPTR_FROM_NATIVE(name);
+	xiocb.plist.xiocb_buffer.buf_length = cfe_strlen(name);
 
 	cfe_iocb_dispatch(&xiocb);
 
-	return xiocb.plist.xiocb_time.ticks;
-
+	if (xiocb.xiocb_status < 0)
+		return xiocb.xiocb_status;
+	return xiocb.plist.xiocb_buffer.buf_devflags;
 }
+#endif				/* CFE_API_getdevinfo || CFE_API_ALL */
 
-int cfe_getenv(char *name,char *dest,int destlen)
+#if defined(CFE_API_getenv) || defined(CFE_API_ALL)
+int cfe_getenv(char *name, char *dest, int destlen)
 {
 	cfe_xiocb_t xiocb;
 
@@ -226,179 +249,254 @@
 	xiocb.xiocb_flags = 0;
 	xiocb.xiocb_psize = sizeof(xiocb_envbuf_t);
 	xiocb.plist.xiocb_envbuf.enum_idx = 0;
-	xiocb.plist.xiocb_envbuf.name_ptr = BIGPTR(name);
+	xiocb.plist.xiocb_envbuf.name_ptr = XPTR_FROM_NATIVE(name);
 	xiocb.plist.xiocb_envbuf.name_length = cfe_strlen(name);
-	xiocb.plist.xiocb_envbuf.val_ptr = BIGPTR(dest);
+	xiocb.plist.xiocb_envbuf.val_ptr = XPTR_FROM_NATIVE(dest);
 	xiocb.plist.xiocb_envbuf.val_length = destlen;
 
 	cfe_iocb_dispatch(&xiocb);
 
 	return xiocb.xiocb_status;
 }
+#endif				/* CFE_API_getenv || CFE_API_ALL */
 
-int cfe_setenv(char *name,char *val)
+#if defined(CFE_API_getfwinfo) || defined(CFE_API_ALL)
+int cfe_getfwinfo(cfe_fwinfo_t * info)
 {
 	cfe_xiocb_t xiocb;
 
-	xiocb.xiocb_fcode = CFE_CMD_ENV_SET;
+	xiocb.xiocb_fcode = CFE_CMD_FW_GETINFO;
 	xiocb.xiocb_status = 0;
 	xiocb.xiocb_handle = 0;
 	xiocb.xiocb_flags = 0;
-	xiocb.xiocb_psize = sizeof(xiocb_envbuf_t);
-	xiocb.plist.xiocb_envbuf.enum_idx = 0;
-	xiocb.plist.xiocb_envbuf.name_ptr = BIGPTR(name);
-	xiocb.plist.xiocb_envbuf.name_length = cfe_strlen(name);
-	xiocb.plist.xiocb_envbuf.val_ptr = BIGPTR(val);
-	xiocb.plist.xiocb_envbuf.val_length = cfe_strlen(val);
+	xiocb.xiocb_psize = sizeof(xiocb_fwinfo_t);
 
 	cfe_iocb_dispatch(&xiocb);
 
-	return xiocb.xiocb_status;
+	if (xiocb.xiocb_status < 0)
+		return xiocb.xiocb_status;
+
+	info->fwi_version = xiocb.plist.xiocb_fwinfo.fwi_version;
+	info->fwi_totalmem = xiocb.plist.xiocb_fwinfo.fwi_totalmem;
+	info->fwi_flags = xiocb.plist.xiocb_fwinfo.fwi_flags;
+	info->fwi_boardid = xiocb.plist.xiocb_fwinfo.fwi_boardid;
+	info->fwi_bootarea_va = xiocb.plist.xiocb_fwinfo.fwi_bootarea_va;
+	info->fwi_bootarea_pa = xiocb.plist.xiocb_fwinfo.fwi_bootarea_pa;
+	info->fwi_bootarea_size =
+	    xiocb.plist.xiocb_fwinfo.fwi_bootarea_size;
+#if 0
+	info->fwi_reserved1 = xiocb.plist.xiocb_fwinfo.fwi_reserved1;
+	info->fwi_reserved2 = xiocb.plist.xiocb_fwinfo.fwi_reserved2;
+	info->fwi_reserved3 = xiocb.plist.xiocb_fwinfo.fwi_reserved3;
+#endif
+
+	return 0;
 }
+#endif				/* CFE_API_getfwinfo || CFE_API_ALL */
 
-int cfe_enummem(long idx, unsigned long long *addr, unsigned long long *size, long *type)
+#if defined(CFE_API_getstdhandle) || defined(CFE_API_ALL)
+int cfe_getstdhandle(int flg)
 {
 	cfe_xiocb_t xiocb;
-	xiocb.xiocb_fcode = CFE_CMD_FW_MEMENUM;
+
+	xiocb.xiocb_fcode = CFE_CMD_DEV_GETHANDLE;
 	xiocb.xiocb_status = 0;
 	xiocb.xiocb_handle = 0;
-	xiocb.xiocb_flags = 0;
-	xiocb.xiocb_psize = sizeof(xiocb_meminfo_t);
-	xiocb.plist.xiocb_meminfo.mi_idx = idx;
+	xiocb.xiocb_flags = flg;
+	xiocb.xiocb_psize = 0;
 
 	cfe_iocb_dispatch(&xiocb);
 
-	(*addr) = xiocb.plist.xiocb_meminfo.mi_addr;
-	(*size) = xiocb.plist.xiocb_meminfo.mi_size;
-	(*type) = xiocb.plist.xiocb_meminfo.mi_type;
-
-	return xiocb.xiocb_status;
+	if (xiocb.xiocb_status < 0)
+		return xiocb.xiocb_status;
+	return xiocb.xiocb_handle;
 }
+#endif				/* CFE_API_getstdhandle || CFE_API_ALL */
 
-
-int cfe_enumenv(int idx,char *name,int namelen,char *val,int vallen)
+#if defined(CFE_API_getticks) || defined(CFE_API_ALL)
+int64_t
+#ifdef CFE_API_IMPL_NAMESPACE
+__cfe_getticks(void)
+#else
+cfe_getticks(void)
+#endif
 {
 	cfe_xiocb_t xiocb;
 
-	xiocb.xiocb_fcode = CFE_CMD_ENV_SET;
+	xiocb.xiocb_fcode = CFE_CMD_FW_GETTIME;
 	xiocb.xiocb_status = 0;
 	xiocb.xiocb_handle = 0;
 	xiocb.xiocb_flags = 0;
-	xiocb.xiocb_psize = sizeof(xiocb_envbuf_t);
-	xiocb.plist.xiocb_envbuf.enum_idx = idx;
-	xiocb.plist.xiocb_envbuf.name_ptr = BIGPTR(name);
-	xiocb.plist.xiocb_envbuf.name_length = namelen;
-	xiocb.plist.xiocb_envbuf.val_ptr = BIGPTR(val);
-	xiocb.plist.xiocb_envbuf.val_length = vallen;
+	xiocb.xiocb_psize = sizeof(xiocb_time_t);
+	xiocb.plist.xiocb_time.ticks = 0;
 
 	cfe_iocb_dispatch(&xiocb);
 
-	return xiocb.xiocb_status;
+	return xiocb.plist.xiocb_time.ticks;
+
 }
+#endif				/* CFE_API_getticks || CFE_API_ALL */
 
-int cfe_exit(int warm, int status)
+#if defined(CFE_API_inpstat) || defined(CFE_API_ALL)
+int cfe_inpstat(int handle)
 {
 	cfe_xiocb_t xiocb;
 
-	xiocb.xiocb_fcode = CFE_CMD_FW_RESTART;
+	xiocb.xiocb_fcode = CFE_CMD_DEV_INPSTAT;
 	xiocb.xiocb_status = 0;
-	xiocb.xiocb_handle = 0;
-	xiocb.xiocb_flags = warm ? CFE_FLG_WARMSTART : 0;
-	xiocb.xiocb_psize = sizeof(xiocb_exitstat_t);
-	xiocb.plist.xiocb_exitstat.status = (cfe_xint_t) status;
+	xiocb.xiocb_handle = handle;
+	xiocb.xiocb_flags = 0;
+	xiocb.xiocb_psize = sizeof(xiocb_inpstat_t);
+	xiocb.plist.xiocb_inpstat.inp_status = 0;
 
 	cfe_iocb_dispatch(&xiocb);
 
-	return (xiocb.xiocb_status);
+	if (xiocb.xiocb_status < 0)
+		return xiocb.xiocb_status;
+	return xiocb.plist.xiocb_inpstat.inp_status;
 }
+#endif				/* CFE_API_inpstat || CFE_API_ALL */
 
-int cfe_flushcache(int flg)
+#if defined(CFE_API_ioctl) || defined(CFE_API_ALL)
+int
+cfe_ioctl(int handle, unsigned int ioctlnum, unsigned char *buffer,
+	  int length, int *retlen, cfe_xuint_t offset)
 {
 	cfe_xiocb_t xiocb;
 
-	xiocb.xiocb_fcode = CFE_CMD_FW_FLUSHCACHE;
+	xiocb.xiocb_fcode = CFE_CMD_DEV_IOCTL;
 	xiocb.xiocb_status = 0;
-	xiocb.xiocb_handle = 0;
-	xiocb.xiocb_flags = flg;
-	xiocb.xiocb_psize = 0;
+	xiocb.xiocb_handle = handle;
+	xiocb.xiocb_flags = 0;
+	xiocb.xiocb_psize = sizeof(xiocb_buffer_t);
+	xiocb.plist.xiocb_buffer.buf_offset = offset;
+	xiocb.plist.xiocb_buffer.buf_ioctlcmd = ioctlnum;
+	xiocb.plist.xiocb_buffer.buf_ptr = XPTR_FROM_NATIVE(buffer);
+	xiocb.plist.xiocb_buffer.buf_length = length;
 
 	cfe_iocb_dispatch(&xiocb);
 
+	if (retlen)
+		*retlen = xiocb.plist.xiocb_buffer.buf_retlen;
 	return xiocb.xiocb_status;
 }
+#endif				/* CFE_API_ioctl || CFE_API_ALL */
 
-int cfe_getstdhandle(int flg)
+#if defined(CFE_API_open) || defined(CFE_API_ALL)
+int cfe_open(char *name)
 {
 	cfe_xiocb_t xiocb;
 
-	xiocb.xiocb_fcode = CFE_CMD_DEV_GETHANDLE;
+	xiocb.xiocb_fcode = CFE_CMD_DEV_OPEN;
 	xiocb.xiocb_status = 0;
 	xiocb.xiocb_handle = 0;
-	xiocb.xiocb_flags = flg;
-	xiocb.xiocb_psize = 0;
+	xiocb.xiocb_flags = 0;
+	xiocb.xiocb_psize = sizeof(xiocb_buffer_t);
+	xiocb.plist.xiocb_buffer.buf_offset = 0;
+	xiocb.plist.xiocb_buffer.buf_ptr = XPTR_FROM_NATIVE(name);
+	xiocb.plist.xiocb_buffer.buf_length = cfe_strlen(name);
 
 	cfe_iocb_dispatch(&xiocb);
 
-	return (xiocb.xiocb_status < 0) ? xiocb.xiocb_status : xiocb.xiocb_handle;
+	if (xiocb.xiocb_status < 0)
+		return xiocb.xiocb_status;
+	return xiocb.xiocb_handle;
+}
+#endif				/* CFE_API_open || CFE_API_ALL */
 
+#if defined(CFE_API_read) || defined(CFE_API_ALL)
+int cfe_read(int handle, unsigned char *buffer, int length)
+{
+	return cfe_readblk(handle, 0, buffer, length);
 }
+#endif				/* CFE_API_read || CFE_API_ALL */
 
-int cfe_start_cpu(int cpu, void (*fn)(void), long sp, long gp, long a1)
+#if defined(CFE_API_readblk) || defined(CFE_API_ALL)
+int
+cfe_readblk(int handle, cfe_xint_t offset, unsigned char *buffer,
+	    int length)
 {
 	cfe_xiocb_t xiocb;
 
-	xiocb.xiocb_fcode = CFE_CMD_FW_CPUCTL;
+	xiocb.xiocb_fcode = CFE_CMD_DEV_READ;
 	xiocb.xiocb_status = 0;
-	xiocb.xiocb_handle = 0;
-	xiocb.xiocb_flags  = 0;
-	xiocb.xiocb_psize = sizeof(xiocb_cpuctl_t);
-	xiocb.plist.xiocb_cpuctl.cpu_number = cpu;
-	xiocb.plist.xiocb_cpuctl.cpu_command = CFE_CPU_CMD_START;
-	xiocb.plist.xiocb_cpuctl.gp_val = gp;
-	xiocb.plist.xiocb_cpuctl.sp_val = sp;
-	xiocb.plist.xiocb_cpuctl.a1_val = a1;
-	xiocb.plist.xiocb_cpuctl.start_addr = (long)fn;
+	xiocb.xiocb_handle = handle;
+	xiocb.xiocb_flags = 0;
+	xiocb.xiocb_psize = sizeof(xiocb_buffer_t);
+	xiocb.plist.xiocb_buffer.buf_offset = offset;
+	xiocb.plist.xiocb_buffer.buf_ptr = XPTR_FROM_NATIVE(buffer);
+	xiocb.plist.xiocb_buffer.buf_length = length;
 
 	cfe_iocb_dispatch(&xiocb);
 
-	return xiocb.xiocb_status;
+	if (xiocb.xiocb_status < 0)
+		return xiocb.xiocb_status;
+	return xiocb.plist.xiocb_buffer.buf_retlen;
 }
+#endif				/* CFE_API_readblk || CFE_API_ALL */
 
-
-int cfe_stop_cpu(int cpu)
+#if defined(CFE_API_setenv) || defined(CFE_API_ALL)
+int cfe_setenv(char *name, char *val)
 {
 	cfe_xiocb_t xiocb;
 
-	xiocb.xiocb_fcode = CFE_CMD_FW_CPUCTL;
+	xiocb.xiocb_fcode = CFE_CMD_ENV_SET;
 	xiocb.xiocb_status = 0;
 	xiocb.xiocb_handle = 0;
-	xiocb.xiocb_flags  = 0;
-	xiocb.xiocb_psize = sizeof(xiocb_cpuctl_t);
-	xiocb.plist.xiocb_cpuctl.cpu_number = cpu;
-	xiocb.plist.xiocb_cpuctl.cpu_command = CFE_CPU_CMD_STOP;
+	xiocb.xiocb_flags = 0;
+	xiocb.xiocb_psize = sizeof(xiocb_envbuf_t);
+	xiocb.plist.xiocb_envbuf.enum_idx = 0;
+	xiocb.plist.xiocb_envbuf.name_ptr = XPTR_FROM_NATIVE(name);
+	xiocb.plist.xiocb_envbuf.name_length = cfe_strlen(name);
+	xiocb.plist.xiocb_envbuf.val_ptr = XPTR_FROM_NATIVE(val);
+	xiocb.plist.xiocb_envbuf.val_length = cfe_strlen(val);
 
 	cfe_iocb_dispatch(&xiocb);
 
 	return xiocb.xiocb_status;
 }
+#endif				/* CFE_API_setenv || CFE_API_ALL */
 
-void cfe_open_console()
+#if (defined(CFE_API_strlen) || defined(CFE_API_ALL)) \
+    && !defined(CFE_API_STRLEN_CUSTOM)
+int cfe_strlen(char *name)
 {
-	cfe_console_handle = cfe_getstdhandle(CFE_STDHANDLE_CONSOLE);
+	int count = 0;
+
+	while (*name++)
+		count++;
+
+	return count;
 }
+#endif				/* CFE_API_strlen || CFE_API_ALL */
 
-void cfe_console_print(const char *str, int len)
+#if defined(CFE_API_write) || defined(CFE_API_ALL)
+int cfe_write(int handle, unsigned char *buffer, int length)
 {
-	int res;
-
-	if (cfe_console_handle != -1) {
-		do {
-			res = cfe_writeblk(cfe_console_handle, 0, str, len);
-			if (res < 0)
-				break;
-			str += res;
-			len -= res;
-		} while (len);
-	}
+	return cfe_writeblk(handle, 0, buffer, length);
 }
+#endif				/* CFE_API_write || CFE_API_ALL */
+
+#if defined(CFE_API_writeblk) || defined(CFE_API_ALL)
+int
+cfe_writeblk(int handle, cfe_xint_t offset, unsigned char *buffer,
+	     int length)
+{
+	cfe_xiocb_t xiocb;
+
+	xiocb.xiocb_fcode = CFE_CMD_DEV_WRITE;
+	xiocb.xiocb_status = 0;
+	xiocb.xiocb_handle = handle;
+	xiocb.xiocb_flags = 0;
+	xiocb.xiocb_psize = sizeof(xiocb_buffer_t);
+	xiocb.plist.xiocb_buffer.buf_offset = offset;
+	xiocb.plist.xiocb_buffer.buf_ptr = XPTR_FROM_NATIVE(buffer);
+	xiocb.plist.xiocb_buffer.buf_length = length;
 
+	cfe_iocb_dispatch(&xiocb);
+
+	if (xiocb.xiocb_status < 0)
+		return xiocb.xiocb_status;
+	return xiocb.plist.xiocb_buffer.buf_retlen;
+}
+#endif				/* CFE_API_writeblk || CFE_API_ALL */
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/cfe/cfe_api.h linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/cfe_api.h
--- linux-2.4.20/arch/mips/sibyte/cfe/cfe_api.h	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/cfe_api.h	2002-09-27 10:49:09.000000000 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2000, 2001 Broadcom Corporation
+ * Copyright (C) 2000, 2001, 2002 Broadcom Corporation
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -17,55 +17,169 @@
  */
 
 /*  *********************************************************************
+    *
     *  Broadcom Common Firmware Environment (CFE)
     *
     *  Device function prototypes		File: cfe_api.h
     *
-    *  This module contains prototypes for cfe_devfuncs.c, a set
-    *  of wrapper routines to the IOCB interface.  This file,
-    *  along with cfe_api.c, can be incorporated into programs
-    *  that need to call CFE.
+    *  This file contains declarations for doing callbacks to
+    *  cfe from an application.  It should be the only header
+    *  needed by the application to use this library
     *
-    *  Author:  Mitch Lichtenberg (mpl@broadcom.com)
+    *  Authors:  Mitch Lichtenberg, Chris Demetriou
     *
     ********************************************************************* */
 
-#include <linux/config.h>
+#ifndef CFE_API_H
+#define CFE_API_H
+
+/*
+ * Apply customizations here for different OSes.  These need to:
+ *	* typedef uint64_t, int64_t, intptr_t, uintptr_t.
+ *	* define cfe_strlen() if use of an existing function is desired.
+ *	* define CFE_API_IMPL_NAMESPACE if API functions are to use
+ *	  names in the implementation namespace.
+ * Also, optionally, if the build environment does not do so automatically,
+ * CFE_API_* can be defined here as desired.
+ */
+/* Begin customization. */
+#include <linux/types.h>
+#include <linux/string.h>
+
+typedef long intptr_t;
+
+#define cfe_strlen strlen
 
+#define CFE_API_ALL
+#define CFE_API_STRLEN_CUSTOM
+/* End customization. */
+
+
+/*  *********************************************************************
+    *  Constants
+    ********************************************************************* */
+
+/* Seal indicating CFE's presence, passed to user program. */
 #define CFE_EPTSEAL 0x43464531
-#ifdef CONFIG_MIPS_UNCACHED
-#define CFE_APIENTRY    0xBFC00500
-#define CFE_APISEAL     0xBFC004E0
-#define CFE_APISEAL_RE  0xBFC004E8
-#define CFE_APISEAL_OLD 0xBFC00508
+
+#define CFE_MI_RESERVED	0	/* memory is reserved, do not use */
+#define CFE_MI_AVAILABLE 1	/* memory is available */
+
+#define CFE_FLG_WARMSTART     0x00000001
+#define CFE_FLG_FULL_ARENA    0x00000001
+#define CFE_FLG_ENV_PERMANENT 0x00000001
+
+#define CFE_CPU_CMD_START 1
+#define CFE_CPU_CMD_STOP 0
+
+#define CFE_STDHANDLE_CONSOLE	0
+
+#define CFE_DEV_NETWORK 	1
+#define CFE_DEV_DISK		2
+#define CFE_DEV_FLASH		3
+#define CFE_DEV_SERIAL		4
+#define CFE_DEV_CPU		5
+#define CFE_DEV_NVRAM		6
+#define CFE_DEV_CLOCK           7
+#define CFE_DEV_OTHER		8
+#define CFE_DEV_MASK		0x0F
+
+#define CFE_CACHE_FLUSH_D	1
+#define CFE_CACHE_INVAL_I	2
+#define CFE_CACHE_INVAL_D	4
+#define CFE_CACHE_INVAL_L2	8
+
+#define CFE_FWI_64BIT		0x00000001
+#define CFE_FWI_32BIT		0x00000002
+#define CFE_FWI_RELOC		0x00000004
+#define CFE_FWI_UNCACHED	0x00000008
+#define CFE_FWI_MULTICPU	0x00000010
+#define CFE_FWI_FUNCSIM		0x00000020
+#define CFE_FWI_RTLSIM		0x00000040
+
+typedef struct {
+	int64_t fwi_version;		/* major, minor, eco version */
+	int64_t fwi_totalmem;		/* total installed mem */
+	int64_t fwi_flags;		/* various flags */
+	int64_t fwi_boardid;		/* board ID */
+	int64_t fwi_bootarea_va;	/* VA of boot area */
+	int64_t fwi_bootarea_pa;	/* PA of boot area */
+	int64_t fwi_bootarea_size;	/* size of boot area */
+} cfe_fwinfo_t;
+
+
+/*
+ * cfe_strlen is handled specially: If already defined, it has been
+ * overridden in this environment with a standard strlen-like function.
+ */
+#ifdef cfe_strlen
+# define CFE_API_STRLEN_CUSTOM
 #else
-#define CFE_APIENTRY    0x9FC00500
-#define CFE_APISEAL     0x9FC004E0
-#define CFE_APISEAL_RE  0x9FC004E8
-#define CFE_APISEAL_OLD 0x9FC00508
+# ifdef CFE_API_IMPL_NAMESPACE
+#  define cfe_strlen(a)			__cfe_strlen(a)
+# endif
+int cfe_strlen(char *name);
 #endif
 
-#ifndef __ASSEMBLER__
-int cfe_init(cfe_xuint_t handle);
-int cfe_open(char *name);
+/*
+ * Defines and prototypes for functions which take no arguments.
+ */
+#ifdef CFE_API_IMPL_NAMESPACE
+int64_t __cfe_getticks(void);
+#define cfe_getticks()			__cfe_getticks()
+#else
+int64_t cfe_getticks(void);
+#endif
+
+/*
+ * Defines and prototypes for the rest of the functions.
+ */
+#ifdef CFE_API_IMPL_NAMESPACE
+#define cfe_close(a)			__cfe_close(a)
+#define cfe_cpu_start(a,b,c,d,e)	__cfe_cpu_start(a,b,c,d,e)
+#define cfe_cpu_stop(a)			__cfe_cpu_stop(a)
+#define cfe_enumenv(a,b,d,e,f)		__cfe_enumenv(a,b,d,e,f)
+#define cfe_enummem(a,b,c,d,e)		__cfe_enummem(a,b,c,d,e)
+#define cfe_exit(a,b)			__cfe_exit(a,b)
+#define cfe_flushcache(a)		__cfe_cacheflush(a)
+#define cfe_getdevinfo(a)		__cfe_getdevinfo(a)
+#define cfe_getenv(a,b,c)		__cfe_getenv(a,b,c)
+#define cfe_getfwinfo(a)		__cfe_getfwinfo(a)
+#define cfe_getstdhandle(a)		__cfe_getstdhandle(a)
+#define cfe_init(a,b)			__cfe_init(a,b)
+#define cfe_inpstat(a)			__cfe_inpstat(a)
+#define cfe_ioctl(a,b,c,d,e,f)		__cfe_ioctl(a,b,c,d,e,f)
+#define cfe_open(a)			__cfe_open(a)
+#define cfe_read(a,b,c)			__cfe_read(a,b,c)
+#define cfe_readblk(a,b,c,d)		__cfe_readblk(a,b,c,d)
+#define cfe_setenv(a,b)			__cfe_setenv(a,b)
+#define cfe_write(a,b,c)		__cfe_write(a,b,c)
+#define cfe_writeblk(a,b,c,d)		__cfe_writeblk(a,b,c,d)
+#endif				/* CFE_API_IMPL_NAMESPACE */
+
 int cfe_close(int handle);
-int cfe_readblk(int handle,cfe_xint_t offset,unsigned char *buffer,int length);
-int cfe_read(int handle,unsigned char *buffer,int length);
-int cfe_writeblk(int handle,cfe_xint_t offset,unsigned char *buffer,int length);
-int cfe_write(int handle,unsigned char *buffer,int length);
-int cfe_ioctl(int handle,unsigned int ioctlnum,unsigned char *buffer,int length,int *retlen);
-int cfe_inpstat(int handle);
-int cfe_enumenv(int idx,char *name,int namelen,char *val,int vallen);
-int cfe_enummem(long idx, unsigned long long *addr, unsigned long long *size, long *type);
-int cfe_setenv(char *name,char *val);
-int cfe_getenv(char *name,char *dest,int destlen);
-long long cfe_getticks(void);
+int cfe_cpu_start(int cpu, void (*fn) (void), long sp, long gp, long a1);
+int cfe_cpu_stop(int cpu);
+int cfe_enumenv(int idx, char *name, int namelen, char *val, int vallen);
+int cfe_enummem(int idx, int flags, uint64_t * start, uint64_t * length,
+		uint64_t * type);
 int cfe_exit(int warm, int status);
 int cfe_flushcache(int flg);
+int cfe_getdevinfo(char *name);
+int cfe_getenv(char *name, char *dest, int destlen);
+int cfe_getfwinfo(cfe_fwinfo_t * info);
 int cfe_getstdhandle(int flg);
-int cfe_start_cpu(int cpu, void (*fn)(void), long sp, long gp, long a1);
-int cfe_stop_cpu(int cpu);
+int cfe_init(uint64_t handle, uint64_t ept);
+int cfe_inpstat(int handle);
+int cfe_ioctl(int handle, unsigned int ioctlnum, unsigned char *buffer,
+	      int length, int *retlen, uint64_t offset);
+int cfe_open(char *name);
+int cfe_read(int handle, unsigned char *buffer, int length);
+int cfe_readblk(int handle, int64_t offset, unsigned char *buffer,
+		int length);
+int cfe_setenv(char *name, char *val);
+int cfe_write(int handle, unsigned char *buffer, int length);
+int cfe_writeblk(int handle, int64_t offset, unsigned char *buffer,
+		 int length);
 
-void cfe_open_console(void);
-void cfe_console_print(const char *, int);
-#endif
+#endif				/* CFE_API_H */
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/cfe/cfe_api_int.h linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/cfe_api_int.h
--- linux-2.4.20/arch/mips/sibyte/cfe/cfe_api_int.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/cfe_api_int.h	2002-09-27 12:20:57.000000000 -0500
@@ -0,0 +1,152 @@
+/*
+ * Copyright (C) 2000, 2001, 2002 Broadcom Corporation
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+/*  *********************************************************************
+    *
+    *  Broadcom Common Firmware Environment (CFE)
+    *
+    *  Device function prototypes		File: cfe_api_int.h
+    *
+    *  This header defines all internal types and macros for the
+    *  library.  This is stuff that's not exported to an app
+    *  using the library.
+    *
+    *  Authors:  Mitch Lichtenberg, Chris Demetriou
+    *
+    ********************************************************************* */
+
+#ifndef CFE_API_INT_H
+#define CFE_API_INT_H
+
+/*  *********************************************************************
+    *  Constants
+    ********************************************************************* */
+
+#define CFE_CMD_FW_GETINFO	0
+#define CFE_CMD_FW_RESTART	1
+#define CFE_CMD_FW_BOOT		2
+#define CFE_CMD_FW_CPUCTL	3
+#define CFE_CMD_FW_GETTIME      4
+#define CFE_CMD_FW_MEMENUM	5
+#define CFE_CMD_FW_FLUSHCACHE	6
+
+#define CFE_CMD_DEV_GETHANDLE	9
+#define CFE_CMD_DEV_ENUM	10
+#define CFE_CMD_DEV_OPEN	11
+#define CFE_CMD_DEV_INPSTAT	12
+#define CFE_CMD_DEV_READ	13
+#define CFE_CMD_DEV_WRITE	14
+#define CFE_CMD_DEV_IOCTL	15
+#define CFE_CMD_DEV_CLOSE	16
+#define CFE_CMD_DEV_GETINFO	17
+
+#define CFE_CMD_ENV_ENUM	20
+#define CFE_CMD_ENV_GET		22
+#define CFE_CMD_ENV_SET		23
+#define CFE_CMD_ENV_DEL		24
+
+#define CFE_CMD_MAX		32
+
+#define CFE_CMD_VENDOR_USE	0x8000	/* codes above this are for customer use */
+
+/*  *********************************************************************
+    *  Structures
+    ********************************************************************* */
+
+typedef uint64_t cfe_xuint_t;
+typedef int64_t cfe_xint_t;
+typedef int64_t cfe_xptr_t;
+
+typedef struct xiocb_buffer_s {
+	cfe_xuint_t buf_offset;		/* offset on device (bytes) */
+	cfe_xptr_t  buf_ptr;		/* pointer to a buffer */
+	cfe_xuint_t buf_length;		/* length of this buffer */
+	cfe_xuint_t buf_retlen;		/* returned length (for read ops) */
+	cfe_xuint_t buf_ioctlcmd;	/* IOCTL command (used only for IOCTLs) */
+} xiocb_buffer_t;
+
+#define buf_devflags buf_ioctlcmd	/* returned device info flags */
+
+typedef struct xiocb_inpstat_s {
+	cfe_xuint_t inp_status;		/* 1 means input available */
+} xiocb_inpstat_t;
+
+typedef struct xiocb_envbuf_s {
+	cfe_xint_t enum_idx;		/* 0-based enumeration index */
+	cfe_xptr_t name_ptr;		/* name string buffer */
+	cfe_xint_t name_length;		/* size of name buffer */
+	cfe_xptr_t val_ptr;		/* value string buffer */
+	cfe_xint_t val_length;		/* size of value string buffer */
+} xiocb_envbuf_t;
+
+typedef struct xiocb_cpuctl_s {
+	cfe_xuint_t cpu_number;		/* cpu number to control */
+	cfe_xuint_t cpu_command;	/* command to issue to CPU */
+	cfe_xuint_t start_addr;		/* CPU start address */
+	cfe_xuint_t gp_val;		/* starting GP value */
+	cfe_xuint_t sp_val;		/* starting SP value */
+	cfe_xuint_t a1_val;		/* starting A1 value */
+} xiocb_cpuctl_t;
+
+typedef struct xiocb_time_s {
+	cfe_xint_t ticks;		/* current time in ticks */
+} xiocb_time_t;
+
+typedef struct xiocb_exitstat_s {
+	cfe_xint_t status;
+} xiocb_exitstat_t;
+
+typedef struct xiocb_meminfo_s {
+	cfe_xint_t mi_idx;		/* 0-based enumeration index */
+	cfe_xint_t mi_type;		/* type of memory block */
+	cfe_xuint_t mi_addr;		/* physical start address */
+	cfe_xuint_t mi_size;		/* block size */
+} xiocb_meminfo_t;
+
+typedef struct xiocb_fwinfo_s {
+	cfe_xint_t fwi_version;		/* major, minor, eco version */
+	cfe_xint_t fwi_totalmem;	/* total installed mem */
+	cfe_xint_t fwi_flags;		/* various flags */
+	cfe_xint_t fwi_boardid;		/* board ID */
+	cfe_xint_t fwi_bootarea_va;	/* VA of boot area */
+	cfe_xint_t fwi_bootarea_pa;	/* PA of boot area */
+	cfe_xint_t fwi_bootarea_size;	/* size of boot area */
+	cfe_xint_t fwi_reserved1;
+	cfe_xint_t fwi_reserved2;
+	cfe_xint_t fwi_reserved3;
+} xiocb_fwinfo_t;
+
+typedef struct cfe_xiocb_s {
+	cfe_xuint_t xiocb_fcode;	/* IOCB function code */
+	cfe_xint_t xiocb_status;	/* return status */
+	cfe_xint_t xiocb_handle;	/* file/device handle */
+	cfe_xuint_t xiocb_flags;	/* flags for this IOCB */
+	cfe_xuint_t xiocb_psize;	/* size of parameter list */
+	union {
+		xiocb_buffer_t xiocb_buffer;	/* buffer parameters */
+		xiocb_inpstat_t xiocb_inpstat;	/* input status parameters */
+		xiocb_envbuf_t xiocb_envbuf;	/* environment function parameters */
+		xiocb_cpuctl_t xiocb_cpuctl;	/* CPU control parameters */
+		xiocb_time_t xiocb_time;	/* timer parameters */
+		xiocb_meminfo_t xiocb_meminfo;	/* memory arena info parameters */
+		xiocb_fwinfo_t xiocb_fwinfo;	/* firmware information */
+		xiocb_exitstat_t xiocb_exitstat;	/* Exit Status */
+	} plist;
+} cfe_xiocb_t;
+
+#endif				/* CFE_API_INT_H */
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/cfe/cfe_error.h linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/cfe_error.h
--- linux-2.4.20/arch/mips/sibyte/cfe/cfe_error.h	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/cfe_error.h	2002-09-27 10:49:09.000000000 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2000, 2001 Broadcom Corporation
+ * Copyright (C) 2000, 2001, 2002 Broadcom Corporation
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -17,19 +17,18 @@
  */
 
 /*  *********************************************************************
+    *  
     *  Broadcom Common Firmware Environment (CFE)
-    *
+    *  
     *  Error codes				File: cfe_error.h
-    *
+    *  
     *  CFE's global error code list is here.
-    *
-    *  Author:  Mitch Lichtenberg (mpl@broadcom.com)
-    *
+    *  
+    *  Author:  Mitch Lichtenberg
+    *  
     ********************************************************************* */
 
 
-
-
 #define CFE_OK			 0
 #define CFE_ERR                 -1	/* generic error */
 #define CFE_ERR_INV_COMMAND	-2
@@ -74,3 +73,13 @@
 #define CFE_ERR_WRONGDEVTYPE	-32
 #define CFE_ERR_BBCHECKSUM	-33
 #define CFE_ERR_BOOTPROGCHKSUM	-34
+
+#define CFE_ERR_LDRNOTAVAIL	-35
+
+#define CFE_ERR_NOTREADY	-36
+
+#define CFE_ERR_GETMEM          -37
+#define CFE_ERR_SETMEM          -38
+
+#define CFE_ERR_NOTCONN		-39
+#define CFE_ERR_ADDRINUSE	-40
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/cfe/cfe_xiocb.h linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/cfe_xiocb.h
--- linux-2.4.20/arch/mips/sibyte/cfe/cfe_xiocb.h	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/cfe_xiocb.h	1969-12-31 18:00:00.000000000 -0600
@@ -1,177 +0,0 @@
-/*
- * Copyright (C) 2000, 2001 Broadcom Corporation
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- */
-
-/*  *********************************************************************
-    *  Broadcom Common Firmware Environment (CFE)
-    *
-    *  IOCB definitions				File: cfe_iocb.h
-    *
-    *  This module describes CFE's IOCB structure, the main
-    *  data structure used to communicate API requests with CFE.
-    *
-    *  Author:  Mitch Lichtenberg (mpl@broadcom.com)
-    *
-    ********************************************************************* */
-
-/*  *********************************************************************
-    *  Constants
-    ********************************************************************* */
-
-#define CFE_CMD_FW_GETINFO	0
-#define CFE_CMD_FW_RESTART	1
-#define CFE_CMD_FW_BOOT		2
-#define CFE_CMD_FW_CPUCTL	3
-#define CFE_CMD_FW_GETTIME      4
-#define CFE_CMD_FW_MEMENUM	5
-#define CFE_CMD_FW_FLUSHCACHE	6
-
-#define CFE_CMD_DEV_GETHANDLE	9
-#define CFE_CMD_DEV_ENUM	10
-#define CFE_CMD_DEV_OPEN	11
-#define CFE_CMD_DEV_INPSTAT	12
-#define CFE_CMD_DEV_READ	13
-#define CFE_CMD_DEV_WRITE	14
-#define CFE_CMD_DEV_IOCTL	15
-#define CFE_CMD_DEV_CLOSE	16
-#define CFE_CMD_DEV_GETINFO	17
-
-#define CFE_CMD_ENV_ENUM	20
-#define CFE_CMD_ENV_GET		22
-#define CFE_CMD_ENV_SET		23
-#define CFE_CMD_ENV_DEL		24
-
-#define CFE_CMD_MAX		32
-
-#define CFE_MI_RESERVED	0		/* memory is reserved, do not use */
-#define CFE_MI_AVAILABLE 1		/* memory is available */
-
-#define CFE_FLG_WARMSTART 0x00000001
-
-#define CFE_FLG_ENV_PERMANENT 0x00000001
-
-#define CFE_CPU_CMD_START 1
-#define CFE_CPU_CMD_STOP 0
-
-#define CFE_STDHANDLE_CONSOLE	0
-
-#define CFE_DEV_NETWORK 	1
-#define CFE_DEV_DISK		2
-#define CFE_DEV_FLASH		3
-#define CFE_DEV_SERIAL		4
-#define CFE_DEV_CPU		5
-#define CFE_DEV_NVRAM		6
-#define CFE_DEV_OTHER		7
-#define CFE_DEV_MASK		0x0F
-
-#define CFE_CACHE_FLUSH_D	1
-#define CFE_CACHE_INVAL_I	2
-#define CFE_CACHE_INVAL_D	4
-#define CFE_CACHE_INVAL_L2	8
-
-/*  *********************************************************************
-    *  Structures
-    ********************************************************************* */
-
-typedef unsigned long long cfe_xuint_t;
-typedef long long cfe_xint_t;
-typedef long long cfe_xptr_t;
-
-typedef struct xiocb_buffer_s {
-    cfe_xuint_t   buf_offset;		/* offset on device (bytes) */
-    cfe_xptr_t 	  buf_ptr;		/* pointer to a buffer */
-    cfe_xuint_t   buf_length;		/* length of this buffer */
-    cfe_xuint_t   buf_retlen;		/* returned length (for read ops) */
-    cfe_xuint_t   buf_ioctlcmd;		/* IOCTL command (used only for IOCTLs) */
-} xiocb_buffer_t;
-
-#define buf_devflags buf_ioctlcmd	/* returned device info flags */
-
-typedef struct xiocb_inpstat_s {
-    cfe_xuint_t inp_status;		/* 1 means input available */
-} xiocb_inpstat_t;
-
-typedef struct xiocb_envbuf_s {
-    cfe_xint_t enum_idx;		/* 0-based enumeration index */
-    cfe_xptr_t name_ptr;		/* name string buffer */
-    cfe_xint_t name_length;		/* size of name buffer */
-    cfe_xptr_t val_ptr;			/* value string buffer */
-    cfe_xint_t val_length;		/* size of value string buffer */
-} xiocb_envbuf_t;
-
-typedef struct xiocb_cpuctl_s {
-    cfe_xuint_t  cpu_number;		/* cpu number to control */
-    cfe_xuint_t  cpu_command;		/* command to issue to CPU */
-    cfe_xuint_t  start_addr;		/* CPU start address */
-    cfe_xuint_t  gp_val;		/* starting GP value */
-    cfe_xuint_t  sp_val;		/* starting SP value */
-    cfe_xuint_t  a1_val;		/* starting A1 value */
-} xiocb_cpuctl_t;
-
-typedef struct xiocb_time_s {
-    cfe_xint_t ticks;			/* current time in ticks */
-} xiocb_time_t;
-
-typedef struct xiocb_exitstat_s {
-    cfe_xint_t status;
-} xiocb_exitstat_t;
-
-typedef struct xiocb_meminfo_s {
-    cfe_xint_t  mi_idx;			/* 0-based enumeration index */
-    cfe_xint_t  mi_type;		/* type of memory block */
-    cfe_xuint_t mi_addr;		/* physical start address */
-    cfe_xuint_t mi_size;		/* block size */
-} xiocb_meminfo_t;
-
-#define CFE_FWI_64BIT		0x00000001
-#define CFE_FWI_32BIT		0x00000002
-#define CFE_FWI_RELOC		0x00000004
-#define CFE_FWI_UNCACHED	0x00000008
-#define CFE_FWI_MULTICPU	0x00000010
-#define CFE_FWI_FUNCSIM		0x00000020
-#define CFE_FWI_RTLSIM		0x00000040
-
-typedef struct xiocb_fwinfo_s {
-    cfe_xint_t fwi_version;		/* major, minor, eco version */
-    cfe_xint_t fwi_totalmem;		/* total installed mem */
-    cfe_xint_t fwi_flags;		/* various flags */
-    cfe_xint_t fwi_boardid;		/* board ID */
-    cfe_xint_t fwi_bootarea_va;		/* VA of boot area */
-    cfe_xint_t fwi_bootarea_pa;		/* PA of boot area */
-    cfe_xint_t fwi_bootarea_size;	/* size of boot area */
-    cfe_xint_t fwi_reserved1;
-    cfe_xint_t fwi_reserved2;
-    cfe_xint_t fwi_reserved3;
-} xiocb_fwinfo_t,cfe_fwinfo_t;
-
-typedef struct cfe_xiocb_s {
-    cfe_xuint_t xiocb_fcode;		/* IOCB function code */
-    cfe_xint_t  xiocb_status;		/* return status */
-    cfe_xint_t  xiocb_handle;		/* file/device handle */
-    cfe_xuint_t xiocb_flags;		/* flags for this IOCB */
-    cfe_xuint_t xiocb_psize;		/* size of parameter list */
-    union {
-	xiocb_buffer_t  xiocb_buffer;	/* buffer parameters */
-	xiocb_inpstat_t xiocb_inpstat;	/* input status parameters */
-	xiocb_envbuf_t  xiocb_envbuf;	/* environment function parameters */
-	xiocb_cpuctl_t  xiocb_cpuctl;	/* CPU control parameters */
-	xiocb_time_t    xiocb_time;	/* timer parameters */
-	xiocb_meminfo_t xiocb_meminfo;	/* memory arena info parameters */
-	xiocb_fwinfo_t  xiocb_fwinfo;	/* firmware information */
-	xiocb_exitstat_t xiocb_exitstat; /* Exit status */
-    } plist;
-} cfe_xiocb_t;
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/cfe/console.c linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/console.c
--- linux-2.4.20/arch/mips/sibyte/cfe/console.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/console.c	2003-01-21 23:11:38.000000000 -0600
@@ -0,0 +1,91 @@
+#include <linux/init.h>
+#include <linux/major.h>
+#include <linux/errno.h>
+#include <linux/console.h>
+
+#include <asm/sibyte/board.h>
+
+#include "cfe_api.h"
+#include "cfe_error.h"
+
+extern int cfe_cons_handle;
+static kdev_t cfe_consdev;
+
+#define SB1250_DUART_MINOR_BASE		192
+
+static void cfe_console_write(struct console *cons, const char *str,
+		       unsigned int count)
+{
+	int i, last, written;
+
+	for (i=0,last=0; i<count; i++) {
+		if (!str[i])
+			/* XXXKW can/should this ever happen? */
+			return;
+		if (str[i] == '\n') {
+			do {
+				written = cfe_write(cfe_cons_handle, &str[last], i-last);
+				if (written < 0)
+					;
+				last += written;
+			} while (last < i);
+			while (cfe_write(cfe_cons_handle, "\r", 1) <= 0)
+				;
+		}
+	}
+	if (last != count) {
+		do {
+			written = cfe_write(cfe_cons_handle, &str[last], count-last);
+			if (written < 0)
+				;
+			last += written;
+		} while (last < count);
+	}
+			
+}
+
+static kdev_t cfe_console_device(struct console *c)
+{
+	return cfe_consdev;
+}
+
+static int cfe_console_setup(struct console *cons, char *str)
+{
+	char consdev[32];
+	/* XXXKW think about interaction with 'console=' cmdline arg */
+	/* If none of the console options are configured, the build will break. */
+	if (cfe_getenv("BOOT_CONSOLE", consdev, 32) >= 0) {
+#ifdef CONFIG_SIBYTE_SB1250_DUART
+		if (!strcmp(consdev, "uart0")) {
+			setleds("u0cn");
+			cfe_consdev = MKDEV(TTY_MAJOR, SB1250_DUART_MINOR_BASE + 0);
+#ifndef CONFIG_SIBYTE_SB1250_DUART_NO_PORT_1
+		} else if (!strcmp(consdev, "uart1")) {
+			setleds("u1cn");
+			cfe_consdev = MKDEV(TTY_MAJOR, SB1250_DUART_MINOR_BASE + 1);
+#endif
+#endif
+#ifdef CONFIG_VGA_CONSOLE
+		} else if (!strcmp(consdev, "pcconsole0")) {
+			setleds("pccn");
+			cfe_consdev = MKDEV(TTY_MAJOR, 0);
+#endif
+		} else
+			return -ENODEV;
+	}
+	return 0;
+}
+
+static struct console sb1250_cfe_cons = {
+	name:		"cfe",
+	write:		cfe_console_write,
+	device:		cfe_console_device,
+	setup:		cfe_console_setup,
+	flags:		CON_PRINTBUFFER,
+	index:		-1,
+};
+
+void __init sb1250_cfe_console_init(void)
+{
+	register_console(&sb1250_cfe_cons);
+}
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/cfe/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/CVS/Entries
--- linux-2.4.20/arch/mips/sibyte/cfe/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/CVS/Entries	2005-01-06 23:00:10.000000000 -0600
@@ -0,0 +1,10 @@
+/.cvsignore/1.1.2.1/Tue Aug 27 12:00:53 2002/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.2/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
+/cfe_api.c/1.1.2.3/Fri Sep 27 15:49:09 2002/-ko/Tlinux_2_4_20
+/cfe_api.h/1.1.2.3/Fri Sep 27 15:49:09 2002/-ko/Tlinux_2_4_20
+/cfe_api_int.h/1.1.2.1/Fri Sep 27 17:20:57 2002/-ko/Tlinux_2_4_20
+/cfe_error.h/1.1.2.3/Fri Sep 27 15:49:09 2002/-ko/Tlinux_2_4_20
+/console.c/1.1.2.1/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
+/setup.c/1.1.2.6/Tue Jan 28 02:13:58 2003/-ko/Tlinux_2_4_20
+/smp.c/1.1.2.4/Mon Dec  2 00:24:51 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/cfe/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/CVS/Repository
--- linux-2.4.20/arch/mips/sibyte/cfe/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/CVS/Repository	2005-01-06 23:00:10.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/sibyte/cfe
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/cfe/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/CVS/Root
--- linux-2.4.20/arch/mips/sibyte/cfe/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/CVS/Root	2005-01-06 23:00:10.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/cfe/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/CVS/Tag
--- linux-2.4.20/arch/mips/sibyte/cfe/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/CVS/Tag	2005-01-06 23:00:10.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/cfe/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/.cvsignore
--- linux-2.4.20/arch/mips/sibyte/cfe/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/.cvsignore	2002-08-27 07:00:53.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/cfe/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/Makefile
--- linux-2.4.20/arch/mips/sibyte/cfe/Makefile	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/Makefile	2003-01-21 23:11:38.000000000 -0600
@@ -4,5 +4,6 @@
 
 obj-y			= cfe_api.o setup.o
 obj-$(CONFIG_SMP)	+= smp.o
+obj-$(CONFIG_SIBYTE_CFE_CONSOLE)	+= console.o
 
 include $(TOPDIR)/Rules.make
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/cfe/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/setup.c
--- linux-2.4.20/arch/mips/sibyte/cfe/setup.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/setup.c	2003-01-27 20:13:58.000000000 -0600
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2000, 2001 Broadcom Corporation
+ * Copyright (C) 2000, 2001, 2002 Broadcom Corporation
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -23,13 +23,11 @@
 #include <linux/blk.h>
 #include <linux/bootmem.h>
 #include <linux/smp.h>
-#include <linux/console.h>
 
 #include <asm/bootinfo.h>
 #include <asm/reboot.h>
 #include <asm/sibyte/board.h>
 
-#include "cfe_xiocb.h"
 #include "cfe_api.h"
 #include "cfe_error.h"
 
@@ -48,10 +46,6 @@
 #endif
 #endif
 
-#define SB1250_DUART_MINOR_BASE		192 /* XXXKW put this somewhere sane */
-#define SB1250_PROMICE_MINOR_BASE	191 /* XXXKW put this somewhere sane */
-kdev_t cfe_consdev;
-
 #define SIBYTE_MAX_MEM_REGIONS 8
 phys_t board_mem_region_addrs[SIBYTE_MAX_MEM_REGIONS];
 phys_t board_mem_region_sizes[SIBYTE_MAX_MEM_REGIONS];
@@ -62,6 +56,8 @@
    quite redundant.  But not something to fix just now */
 extern char arcs_cmdline[];
 
+int cfe_cons_handle;
+
 #ifdef CONFIG_EMBEDDED_RAMDISK
 /* These are symbols defined by the ramdisk linker script */
 extern unsigned char __rd_start;
@@ -95,8 +91,8 @@
 
 static __init void prom_meminit(void)
 {
-	u64 addr, size; /* regardless of 64BIT_PHYS_ADDR */
-	long type;
+	u64 addr, size, type; /* regardless of 64BIT_PHYS_ADDR */
+	int mem_flags = 0;
 	unsigned int idx;
 	int rd_flag;
 #ifdef CONFIG_BLK_DEV_INITRD
@@ -114,8 +110,8 @@
 	}
 #endif
 
-	initrd_pstart = __pa(initrd_start);
-	initrd_pend = __pa(initrd_end);
+	initrd_pstart = CPHYSADDR(initrd_start);
+	initrd_pend = CPHYSADDR(initrd_end);
 	if (initrd_start &&
 	    ((initrd_pstart > MAX_RAM_SIZE)
 	     || (initrd_pend > MAX_RAM_SIZE))) {
@@ -124,7 +120,7 @@
 
 #endif /* INITRD */
 
-	for (idx = 0; cfe_enummem(idx, &addr, &size, &type) != CFE_ERR_NOMORE;
+	for (idx = 0; cfe_enummem(idx, mem_flags, &addr, &size, &type) != CFE_ERR_NOMORE;
 	     idx++) {
 		rd_flag = 0;
 		if (type == CFE_MI_AVAILABLE) {
@@ -205,13 +201,13 @@
 	if (!*tmp) {
 		goto fail;
 	}
-	initrd_size = simple_strtol(str, &endptr, 16);
+	initrd_size = simple_strtoul(str, &endptr, 16);
 	if (*endptr) {
 		*(tmp-1) = '@';
 		goto fail;
 	}
 	*(tmp-1) = '@';
-	initrd_start = simple_strtol(tmp, &endptr, 16);
+	initrd_start = simple_strtoul(tmp, &endptr, 16);
 	if (*endptr) {
 		goto fail;
 	}
@@ -232,21 +228,51 @@
  */
 __init int prom_init(int argc, char **argv, char **envp, int *prom_vec)
 {
+	uint64_t cfe_ept, cfe_handle;
+	unsigned int cfe_eptseal;
+
 	_machine_restart   = (void (*)(char *))cfe_linux_exit;
 	_machine_halt      = cfe_linux_exit;
 	_machine_power_off = cfe_linux_exit;
 
 	/*
-	 * This should go away.  Detect if we're booting
-	 * straight from cfe without a loader.  If we
-	 * are, then we've got a prom vector in a0.  Otherwise,
-	 * argc (and argv and envp, for that matter) will be 0)
+	 * Check if a loader was used; if NOT, the 4 arguments are
+	 * what CFE gives us (handle, 0, EPT and EPTSEAL)
 	 */
 	if (argc < 0) {
-		prom_vec = (int *)argc;
+		cfe_handle = (uint64_t)(long)argc;
+		cfe_ept = (long)envp;
+		cfe_eptseal = (uint32_t)(unsigned long)prom_vec;
+	} else {
+		if ((int32_t)(long)prom_vec < 0) {
+			/*
+			 * Old loader; all it gives us is the handle,
+			 * so use the "known" entrypoint and assume
+			 * the seal.
+			 */
+			cfe_handle = (uint64_t)(long)prom_vec;
+			cfe_ept = (uint64_t)((int32_t)0x9fc00500);
+			cfe_eptseal = CFE_EPTSEAL;
+		} else {
+			/*
+			 * Newer loaders bundle the handle/ept/eptseal
+			 * Note: prom_vec is in the loader's useg
+			 * which is still alive in the TLB.
+			 */
+			cfe_handle = (uint64_t)((int32_t *)prom_vec)[0];
+			cfe_ept = (uint64_t)((int32_t *)prom_vec)[2];
+			cfe_eptseal = (unsigned int)((uint32_t *)prom_vec)[3];
+		}
 	}
-	cfe_init((long)prom_vec);
-	cfe_open_console();
+	if (cfe_eptseal != CFE_EPTSEAL) {
+		/* XXXKW what?  way too early to panic... */
+	}
+	cfe_init(cfe_handle, cfe_ept);
+	/* 
+	 * Get the handle for (at least) prom_putchar, possibly for
+	 * boot console
+	 */
+	cfe_cons_handle = cfe_getstdhandle(CFE_STDHANDLE_CONSOLE);
 	if (cfe_getenv("LINUX_CMDLINE", arcs_cmdline, CL_SIZE) < 0) {
 		if (argc < 0) {
 			/*
@@ -311,77 +337,10 @@
 	return 0;
 }
 
-#ifdef CONFIG_SIBYTE_CFE_CONSOLE
-
-static void cfe_console_write(struct console *cons, const char *str,
-                              unsigned int count)
-{
-	int i, last;
-
-	for (i=0,last=0; i<count; i++) {
-		if (!str[i])
-			/* XXXKW can/should this ever happen? */
-			panic("cfe_console_write with NULL");
-		if (str[i] == '\n') {
-			cfe_console_print(&str[last], i-last);
-			cfe_console_print("\r", 1);
-			last = i;
-		}
-	}
-	if (last != count)
-		cfe_console_print(&str[last], count-last);
-}
-
-static kdev_t cfe_console_device(struct console *c)
-{
-	return cfe_consdev;
-}
-
-static int cfe_console_setup(struct console *cons, char *str)
+void prom_putchar(char c)
 {
-	char consdev[32];
-	cfe_open_console();
-	/* XXXKW think about interaction with 'console=' cmdline arg */
-	/* If none of the console options are configured, the build will break. */
-	if (cfe_getenv("BOOT_CONSOLE", consdev, 32) >= 0) {
-#ifdef CONFIG_SIBYTE_SB1250_DUART
-		if (!strcmp(consdev, "uart0")) {
-			setleds("u0cn");
-			cfe_consdev = MKDEV(TTY_MAJOR, SB1250_DUART_MINOR_BASE + 0);
-#ifndef CONFIG_SIBYTE_SB1250_DUART_NO_PORT_1
-		} else if (!strcmp(consdev, "uart1")) {
-			setleds("u1cn");
-			cfe_consdev = MKDEV(TTY_MAJOR, SB1250_DUART_MINOR_BASE + 1);
-#endif
-#endif
-#ifdef CONFIG_VGA_CONSOLE
-		} else if (!strcmp(consdev, "pcconsole0")) {
-			setleds("pccn");
-			cfe_consdev = MKDEV(TTY_MAJOR, 0);
-#endif
-#ifdef CONFIG_PROMICE
-		} else if (!strcmp(consdev, "promice0")) {
-			setleds("picn");
-			cfe_consdev = MKDEV(TTY_MAJOR, SB1250_PROMICE_MINOR_BASE);
-#endif
-		} else
-			return -ENODEV;
-	}
-	return 0;
-}
-
-static struct console sb1250_cfe_cons = {
-	name:		"cfe",
-	write:		cfe_console_write,
-	device:		cfe_console_device,
-	setup:		cfe_console_setup,
-	flags:		CON_PRINTBUFFER,
-	index:		-1,
-};
+	int ret;
 
-void __init sb1250_cfe_console_init(void)
-{
-	register_console(&sb1250_cfe_cons);
+	while ((ret = cfe_write(cfe_cons_handle, &c, 1)) == 0)
+		;
 }
-
-#endif /* CONFIG_SIBYTE_CFE_CONSOLE */
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/cfe/smp.c linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/smp.c
--- linux-2.4.20/arch/mips/sibyte/cfe/smp.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/smp.c	2002-12-01 18:24:51.000000000 -0600
@@ -21,7 +21,6 @@
 
 #include <asm/mipsregs.h>
 
-#include "cfe_xiocb.h"
 #include "cfe_api.h"
 #include "cfe_error.h"
 
@@ -32,8 +31,8 @@
 int prom_boot_secondary(int cpu, unsigned long sp, unsigned long gp)
 {
 	int retval;
-
-	retval = cfe_start_cpu(cpu, &smp_bootstrap, sp, gp, 0);
+	
+	retval = cfe_cpu_start(cpu, &smp_bootstrap, sp, gp, 0);
 	if (retval != 0) {
 		printk("cfe_start_cpu(%i) returned %i\n" , cpu, retval);
 		return 0;
@@ -45,12 +44,12 @@
 void prom_init_secondary(void)
 {
 	/* Set up kseg0 to be cachable coherent */
-	clear_cp0_config(CONF_CM_CMASK);
-	set_cp0_config(0x5);
+	clear_c0_config(CONF_CM_CMASK);
+	set_c0_config(0x5);
 
 	/* Enable interrupts for lines 0-4 */
-	clear_cp0_status(0xe000);
-	set_cp0_status(0x1f01);
+	clear_c0_status(0xe000);
+	set_c0_status(0x1f01);
 }
 
 /*
@@ -64,7 +63,7 @@
 
 	/* Use CFE to find out how many CPUs are available */
 	for (i=1; i<NR_CPUS; i++) {
-		if (cfe_stop_cpu(i) == 0) {
+		if (cfe_cpu_stop(i) == 0) {
 			num_cpus++;
 		}
 	}
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/CVS/Entries
--- linux-2.4.20/arch/mips/sibyte/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/CVS/Entries	2005-01-06 23:08:19.000000000 -0600
@@ -0,0 +1,4 @@
+/.cvsignore/1.1/Thu Nov  8 01:54:47 2001/-ko/Tlinux_2_4_20
+D/cfe////
+D/sb1250////
+D/swarm////
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/CVS/Repository
--- linux-2.4.20/arch/mips/sibyte/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/CVS/Repository	2005-01-06 23:00:10.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/sibyte
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/CVS/Root
--- linux-2.4.20/arch/mips/sibyte/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/CVS/Root	2005-01-06 23:00:10.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/CVS/Tag
--- linux-2.4.20/arch/mips/sibyte/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/CVS/Tag	2005-01-06 23:00:10.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/.cvsignore
--- linux-2.4.20/arch/mips/sibyte/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/.cvsignore	2001-11-07 19:54:47.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1/cache_err_handler.S linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1/cache_err_handler.S
--- linux-2.4.20/arch/mips/sibyte/sb1/cache_err_handler.S	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1/cache_err_handler.S	1969-12-31 18:00:00.000000000 -0600
@@ -1,90 +0,0 @@
-/*
- * Copyright (C) 2001 Broadcom Corporation
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- */
-#include <linux/config.h>
-
-#include <asm/asm.h>
-#include <asm/regdef.h>
-#include <asm/mipsregs.h>
-#include <asm/sibyte/board.h>
-
-	.text
-	/* Special Cache Error handler for SB1 for now */
-	LEAF(except_vec2_sb1)
-	.set	noat
-	.set	mips0
-	/*
-	 * This is a very bad place to be.  Our cache error detection has
-	 * triggered.  If we have write-back data in the cache, we may not be
-	 * able to recover.  As a first-order desperate measure, turn off KSEG0
-	 * cacheing.
-	 */
-	.set	push
-	#.set	mips64
-	.set	mips4
-	.set	reorder
-#ifdef CONFIG_SB1_CERR_IGNORE_RECOVERABLE
-	mfc0	k1, $26				# mfc0	k1, $26, 0
-	# check if error was recoverable
-	# XXXKW - count them
-	bltz	k1, leave_cerr
-#endif
-#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-	# look for signature of spurious CErr
-	lui	k0, 0x4000
-	bne	k0, k1, real_cerr
-	.word	0x401Bd801			# mfc0	k1, $27, 1
-	lui	k0, 0xffe0
-	and	k1, k0, k1
-	lui	k0, 0x0200
-	beq	k0, k1, leave_cerr
-	# XXXKW - count them
-#endif
-
-real_cerr:
-#ifdef CONFIG_SB1_CERR_SPIN
-        setleds(k0,k1,'C','E','R','R')
-
-1:	b	1b
-#else
-	mfc0	k0,CP0_CONFIG
-	li	k1,~CONF_CM_CMASK
-	and	k0,k0,k1
-	ori	k0,k0,CONF_CM_UNCACHED
-	mtc0	k0,CP0_CONFIG
-
-	SSNOP
-	SSNOP
-	SSNOP
-	SSNOP
-	bnezl	$0, 1f
-1:
-	j	sb1_cache_error
-#endif
-
-#if defined(CONFIG_SB1_PASS_1_WORKAROUNDS) || defined(CONFIG_SB1_CERR_IGNORE_RECOVERABLE)
-leave_cerr:
-	# clear/unlock the registers
-	mtc0	zero, $26			# mtc0	zero, $26, 0
-	mtc0	zero, $27			# mtc0	zero, $27, 0
-	.word	0x4080d801			# mtc0	zero, $27, 1
-	.word	0x4080d803			# mtc0	zero, $27, 3
-	eret
-#endif
-
-	.set	pop
-	END(except_vec2_sb1)
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1/cache_error.c linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1/cache_error.c
--- linux-2.4.20/arch/mips/sibyte/sb1/cache_error.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1/cache_error.c	1969-12-31 18:00:00.000000000 -0600
@@ -1,511 +0,0 @@
-/*
- * Copyright (C) 2001 Broadcom Corporation
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- */
-
-#include <linux/sched.h>
-#include <asm/mipsregs.h>
-
-/* SB1 definitions */
-
-/* XXX should come from config1 XXX */
-#define SB1_CACHE_INDEX_MASK   0x1fe0
-
-#define CP0_ERRCTL_RECOVERABLE (1 << 31)
-#define CP0_ERRCTL_DCACHE      (1 << 30)
-#define CP0_ERRCTL_ICACHE      (1 << 29)
-#define CP0_ERRCTL_MULTIBUS    (1 << 23)
-#define CP0_ERRCTL_MC_TLB      (1 << 15)
-#define CP0_ERRCTL_MC_TIMEOUT  (1 << 14)
-
-#define CP0_CERRI_TAG_PARITY   (1 << 29)
-#define CP0_CERRI_DATA_PARITY  (1 << 28)
-#define CP0_CERRI_EXTERNAL     (1 << 26)
-
-#define CP0_CERRI_IDX_VALID(c) (!((c) & CP0_CERRI_EXTERNAL))
-#define CP0_CERRI_DATA         (CP0_CERRI_DATA_PARITY)
-
-#define CP0_CERRD_MULTIPLE     (1 << 31)
-#define CP0_CERRD_TAG_STATE    (1 << 30)
-#define CP0_CERRD_TAG_ADDRESS  (1 << 29)
-#define CP0_CERRD_DATA_SBE     (1 << 28)
-#define CP0_CERRD_DATA_DBE     (1 << 27)
-#define CP0_CERRD_EXTERNAL     (1 << 26)
-#define CP0_CERRD_LOAD         (1 << 25)
-#define CP0_CERRD_STORE        (1 << 24)
-#define CP0_CERRD_FILLWB       (1 << 23)
-#define CP0_CERRD_COHERENCY    (1 << 22)
-#define CP0_CERRD_DUPTAG       (1 << 21)
-
-#define CP0_CERRD_DPA_VALID(c) (!((c) & CP0_CERRD_EXTERNAL))
-#define CP0_CERRD_IDX_VALID(c) \
-   (((c) & (CP0_CERRD_LOAD | CP0_CERRD_STORE)) ? (!((c) & CP0_CERRD_EXTERNAL)) : 0)
-#define CP0_CERRD_CAUSES \
-   (CP0_CERRD_LOAD | CP0_CERRD_STORE | CP0_CERRD_FILLWB | CP0_CERRD_COHERENCY | CP0_CERRD_DUPTAG)
-#define CP0_CERRD_TYPES \
-   (CP0_CERRD_TAG_STATE | CP0_CERRD_TAG_ADDRESS | CP0_CERRD_DATA_SBE | CP0_CERRD_DATA_DBE | CP0_CERRD_EXTERNAL)
-#define CP0_CERRD_DATA         (CP0_CERRD_DATA_SBE | CP0_CERRD_DATA_DBE)
-
-static uint32_t	extract_ic(unsigned short addr, int data);
-static uint32_t	extract_dc(unsigned short addr, int data);
-
-spinlock_t in_cacheerr = SPIN_LOCK_UNLOCKED;
-
-static inline void breakout_errctl(unsigned int val)
-{
-	if (val & CP0_ERRCTL_RECOVERABLE)
-		printk(" recoverable");
-	if (val & CP0_ERRCTL_DCACHE)
-		printk(" dcache");
-	if (val & CP0_ERRCTL_ICACHE)
-		printk(" icache");
-	if (val & CP0_ERRCTL_MULTIBUS)
-		printk(" multiple-buserr");
-	printk("\n");
-}
-
-static inline void breakout_cerri(unsigned int val)
-{
-	if (val & CP0_CERRI_TAG_PARITY)
-		printk(" tag-parity");
-	if (val & CP0_CERRI_DATA_PARITY)
-		printk(" data-parity");
-	if (val & CP0_CERRI_EXTERNAL)
-		printk(" external");
-	printk("\n");
-}
-
-static inline void breakout_cerrd(unsigned int val)
-{
-	switch (val & CP0_CERRD_CAUSES) {
-	case CP0_CERRD_LOAD:
-		printk(" load,");
-		break;
-	case CP0_CERRD_STORE:
-		printk(" store,");
-		break;
-	case CP0_CERRD_FILLWB:
-		printk(" fill/wb,");
-		break;
-	case CP0_CERRD_COHERENCY:
-		printk(" coherency,");
-		break;
-	case CP0_CERRD_DUPTAG:
-		printk(" duptags,");
-		break;
-	default:
-		printk(" NO CAUSE,");
-		break;
-	}
-	if (!(val & CP0_CERRD_TYPES))
-		printk(" NO TYPE");
-	else {
-		if (val & CP0_CERRD_MULTIPLE)
-			printk(" multi-err");
-		if (val & CP0_CERRD_TAG_STATE)
-			printk(" tag-state");
-		if (val & CP0_CERRD_TAG_ADDRESS)
-			printk(" tag-address");
-		if (val & CP0_CERRD_DATA_SBE)
-			printk(" data-SBE");
-		if (val & CP0_CERRD_DATA_DBE)
-			printk(" data-DBE");
-		if (val & CP0_CERRD_EXTERNAL)
-			printk(" external");
-	}
-	printk("\n");
-}
-
-asmlinkage void sb1_cache_error(void)
-{
-	uint64_t cerr_dpa;
-	uint32_t errctl, cerr_i, cerr_d, dpalo, dpahi, eepc, res;
-
-	/* Prevent re-entrance in the SMP case */
-	spin_lock(&in_cacheerr);
-	printk("Cache error exception on CPU %x:\n",
-	       (read_32bit_cp0_register(CP0_PRID) >> 25) & 0x7);
-	__asm__ __volatile__ (
-		".set push\n\t"
-		".set mips64\n\t"
-		".set noat\n\t"
-		"mfc0   %0, $26, 0\n\t"
-		"mfc0   %1, $27, 0\n\t"
-		"mfc0   %2, $27, 1\n\t"
-		"dmfc0  $1, $27, 3\n\t"
-		"dsrl32 %3, $1, 0 \n\t"
-		"sll    %4, $1, 0 \n\t"
-		"mfc0   %5, $30\n\t"
-		".set pop\n"
-		: "=r" (errctl), "=r" (cerr_i), "=r" (cerr_d),
-		  "=r" (dpahi), "=r" (dpalo), "=r" (eepc));
-	cerr_dpa = (((uint64_t)dpahi) << 32) | dpalo;
-	printk(" cp0_errorepc ==   %08x\n", eepc);
-	printk(" cp0_errctl   ==   %08x", errctl);
-	breakout_errctl(errctl);
-	if (errctl & CP0_ERRCTL_ICACHE) {
-		printk(" cp0_cerr_i   ==   %08x", cerr_i);
-		breakout_cerri(cerr_i);
-		if (CP0_CERRI_IDX_VALID(cerr_i)) {
-			if ((eepc & SB1_CACHE_INDEX_MASK) != (cerr_i & SB1_CACHE_INDEX_MASK))
-				printk(" cerr_i idx doesn't match eepc\n");
-			else {
-				res = extract_ic(cerr_i & SB1_CACHE_INDEX_MASK,
-						 (cerr_i & CP0_CERRI_DATA) != 0);
-				if (!(res & cerr_i))
-					printk("...didn't see indicated icache problem\n");
-			}
-		}
-	}
-	if (errctl & CP0_ERRCTL_DCACHE) {
-		printk(" cp0_cerr_d   ==   %08x", cerr_d);
-		breakout_cerrd(cerr_d);
-		if (CP0_CERRD_DPA_VALID(cerr_d)) {
-			printk(" cp0_cerr_dpa == %010llx\n", cerr_dpa);
-			if (!CP0_CERRD_IDX_VALID(cerr_d)) {
-				res = extract_dc(cerr_dpa & SB1_CACHE_INDEX_MASK,
-						 (cerr_d & CP0_CERRD_DATA) != 0);
-				if (!(res & cerr_d))
-					printk("...didn't see indicated dcache problem\n");
-			} else {
-				if ((cerr_dpa & SB1_CACHE_INDEX_MASK) != (cerr_d & SB1_CACHE_INDEX_MASK))
-					printk(" cerr_d idx doesn't match cerr_dpa\n");
-				else {
-					res = extract_dc(cerr_d & SB1_CACHE_INDEX_MASK,
-							 (cerr_d & CP0_CERRD_DATA) != 0);
-					if (!(res & cerr_d))
-						printk("...didn't see indicated problem\n");
-				}
-			}
-		}
-	}
-
-	while (1);
-	/*
-	 * This tends to make things get really ugly; let's just stall instead.
-	 *    panic("Can't handle the cache error!");
-	 */
-}
-
-
-/* Parity lookup table. */
-static const uint8_t parity[256] = {
-	0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,
-	1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,
-	1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,
-	0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,
-	1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,
-	0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,
-	0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,
-	1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0
-};
-
-/* Masks to select bits for Hamming parity, mask_72_64[i] for bit[i] */
-static const uint64_t mask_72_64[8] = {
-	0x0738C808099264FFL,
-	0x38C808099264FF07L,
-	0xC808099264FF0738L,
-	0x08099264FF0738C8L,
-	0x099264FF0738C808L,
-	0x9264FF0738C80809L,
-	0x64FF0738C8080992L,
-	0xFF0738C808099264L
-};
-
-/* Calculate the parity on a range of bits */
-static char range_parity(uint64_t dword, int max, int min)
-{
-	char parity = 0;
-	int i;
-	dword >>= min;
-	for (i=max-min; i>=0; i--) {
-		if (dword & 0x1)
-			parity = !parity;
-		dword >>= 1;
-	}
-	return parity;
-}
-
-/* Calculate the 4-bit even byte-parity for an instruction */
-static unsigned char inst_parity(uint32_t word)
-{
-	int i, j;
-	char parity = 0;
-	for (j=0; j<4; j++) {
-		char byte_parity = 0;
-		for (i=0; i<8; i++) {
-			if (word & 0x80000000)
-				byte_parity = !byte_parity;
-			word <<= 1;
-		}
-		parity <<= 1;
-		parity |= byte_parity;
-	}
-	return parity;
-}
-
-static uint32_t extract_ic(unsigned short addr, int data)
-{
-	unsigned short way;
-	int valid;
-	uint64_t taglo, va, tlo_tmp;
-	uint32_t taghi, taglolo, taglohi;
-	uint8_t lru;
-	int res = 0;
-
-	printk("Icache index 0x%04x  ", addr);
-	for (way = 0; way < 4; way++) {
-		/* Index-load-tag-I */
-		__asm__ __volatile__ (
-			".set push        \n\t"
-			".set noreorder   \n\t"
-			".set mips64      \n\t"
-			".set noat        \n\t"
-			"cache  4, 0(%3)  \n\t"
-			"mfc0   %0, $29, 0\n\t"
-			"dmfc0  $1, $28, 0\n\t"
-			"dsrl32 %1, $1, 0 \n\t"
-			"sll    %2, $1, 0 \n\t"
-			".set pop         \n"
-			: "=r" (taghi), "=r" (taglohi),
-			  "=r" (taglolo)
-			: "r" ((way << 13) | addr));
-		taglo = ((unsigned long long)taglohi << 32) | taglolo;
-		if (way == 0) {
-			lru = (taghi >> 14) & 0xff;
-			printk("[Bank %d Set 0x%02x]  LRU > %d %d %d %d > MRU\n",
-			       ((addr >> 5) & 0x3), /* bank */
-			       ((addr >> 7) & 0x3f), /* index */
-			       (lru & 0x3),
-			       ((lru >> 2) & 0x3),
-			       ((lru >> 4) & 0x3),
-			       ((lru >> 6) & 0x3));
-		}
-		va = (taglo & 0xC0000FFFFFFFE000) | addr;
-		if ((taglo & (1 << 31)) && (((taglo >> 62) & 0x3) == 3))
-			va |= 0x3FFFF00000000000;
-		valid = ((taghi >> 29) & 1);
-		if (valid) {
-			tlo_tmp = taglo & 0xfff3ff;
-			if (((taglo >> 10) & 1) ^ range_parity(tlo_tmp, 23, 0)) {
-				printk("   ** bad parity in VTag0/G/ASID\n");
-				res |= CP0_CERRI_TAG_PARITY;
-			}
-			if (((taglo >> 11) & 1) ^ range_parity(taglo, 63, 24)) {
-				printk("   ** bad parity in R/VTag1\n");
-				res |= CP0_CERRI_TAG_PARITY;
-			}
-		}
-		if (valid ^ ((taghi >> 27) & 1)) {
-			printk("   ** bad parity for valid bit\n");
-			res |= CP0_CERRI_TAG_PARITY;
-		}
-		printk(" %d  [VA %016llx]  [Vld? %d]  raw tags: %08X-%016llX\n",
-		       way, va, valid, taghi, taglo);
-
-		if (data) {
-			uint32_t datahi, insta, instb;
-			uint8_t predecode;
-			int offset;
-
-			/* (hit all banks and ways) */
-			for (offset = 0; offset < 4; offset++) {
-				/* Index-load-data-I */
-				__asm__ __volatile__ (
-					".set push        \n\t"
-					".set noreorder   \n\t"
-					".set mips64      \n\t"
-					".set noat        \n\t"
-					"cache  6, 0(%3)  \n\t"
-					"mfc0   %0, $29, 1\n\t"
-					"dmfc0  $1, $28, 1\n\t"
-					"dsrl32 %1, $1, 0 \n\t"
-					"sll    %2, $1, 0 \n\t"
-					".set pop         \n"
-					: "=r" (datahi), "=r" (insta),
-					  "=r" (instb)
-					: "r" ((way << 13) | addr | (offset << 3)));
-				predecode = (datahi >> 8) & 0xff;
-				if (((datahi >> 16) & 1) != (uint32_t)range_parity(predecode, 7, 0)) {
-					printk("   ** bad parity in predecode\n");
-					res |= CP0_CERRI_DATA_PARITY;
-				}
-				/* XXXKW should/could check predecode bits themselves */
-				if (((datahi >> 4) & 0xf) ^ inst_parity(insta)) {
-					printk("   ** bad parity in instruction a\n");
-					res |= CP0_CERRI_DATA_PARITY;
-				}
-				if ((datahi & 0xf) ^ inst_parity(instb)) {
-					printk("   ** bad parity in instruction b\n");
-					res |= CP0_CERRI_DATA_PARITY;
-				}
-				printk("  %05X-%08X%08X", datahi, insta, instb);
-			}
-			printk("\n");
-		}
-	}
-	return res;
-}
-
-/* Compute the ECC for a data doubleword */
-static uint8_t dc_ecc(uint64_t dword)
-{
-	uint64_t t;
-	uint32_t w;
-	uint8_t  p;
-	int      i;
-
-	p = 0;
-	for (i = 7; i >= 0; i--)
-	{
-		p <<= 1;
-		t = dword & mask_72_64[i];
-		w = (uint32_t)(t >> 32);
-		p ^= (parity[w>>24] ^ parity[(w>>16) & 0xFF]
-		      ^ parity[(w>>8) & 0xFF] ^ parity[w & 0xFF]);
-		w = (uint32_t)(t & 0xFFFFFFFF);
-		p ^= (parity[w>>24] ^ parity[(w>>16) & 0xFF]
-		      ^ parity[(w>>8) & 0xFF] ^ parity[w & 0xFF]);
-	}
-	return p;
-}
-
-struct dc_state {
-	unsigned char val;
-	char *name;
-};
-
-static struct dc_state dc_states[] = {
-	{ 0x00, "INVALID" },
-	{ 0x0f, "COH-SHD" },
-	{ 0x13, "NCO-E-C" },
-	{ 0x19, "NCO-E-D" },
-	{ 0x16, "COH-E-C" },
-	{ 0x1c, "COH-E-D" },
-	{ 0xff, "*ERROR*" }
-};
-
-#define DC_TAG_VALID(state) \
-    (((state) == 0xf) || ((state) == 0x13) || ((state) == 0x19) || ((state == 0x16)) || ((state) == 0x1c))
-
-static char *dc_state_str(unsigned char state)
-{
-	struct dc_state *dsc = dc_states;
-	while (dsc->val != 0xff) {
-		if (dsc->val == state)
-			break;
-		dsc++;
-	}
-	return dsc->name;
-}
-
-static uint32_t extract_dc(unsigned short addr, int data)
-{
-	int valid, way;
-	unsigned char state;
-	uint64_t taglo, pa;
-	uint32_t taghi, taglolo, taglohi;
-	uint8_t ecc, lru;
-	int res = 0;
-
-	printk("Dcache index 0x%04x  ", addr);
-	for (way = 0; way < 4; way++) {
-		/* Index-load-tag-D */
-		__asm__ __volatile__ (
-			".set push        \n\t"
-			".set noreorder   \n\t"
-			".set mips64      \n\t"
-			".set noat        \n\t"
-			"cache  5, 0(%3)  \n\t"
-			"mfc0   %0, $29, 2\n\t"
-			"dmfc0  $1, $28, 2\n\t"
-			"dsrl32 %1, $1, 0 \n\t"
-			"sll    %2, $1, 0 \n\t"
-			".set pop         \n"
-			: "=r" (taghi), "=r" (taglohi),
-			  "=r" (taglolo)
-			: "r" ((way << 13) | addr));
-
-		taglo = ((unsigned long long)taglohi << 32) | taglolo;
-		pa = (taglo & 0xFFFFFFE000) | addr;
-		if (way == 0) {
-			lru = (taghi >> 14) & 0xff;
-			printk("[Bank %d Set 0x%02x]  LRU > %d %d %d %d > MRU\n",
-			       ((addr >> 11) & 0x2) | ((addr >> 5) & 1), /* bank */
-			       ((addr >> 6) & 0x3f), /* index */
-			       (lru & 0x3),
-			       ((lru >> 2) & 0x3),
-			       ((lru >> 4) & 0x3),
-			       ((lru >> 6) & 0x3));
-		}
-		state = (taghi >> 25) & 0x1f;
-		valid = DC_TAG_VALID(state);
-		printk(" %d  [PA %010llx]  [state %s (%02x)]  raw tags: %08X-%016llX\n",
-		       way, pa, dc_state_str(state), state, taghi, taglo);
-		if (valid) {
-			if (((taglo >> 11) & 1) ^ range_parity(taglo, 39, 26)) {
-				printk("   ** bad parity in PTag1\n");
-				res |= CP0_CERRD_TAG_ADDRESS;
-			}
-			if (((taglo >> 10) & 1) ^ range_parity(taglo, 25, 13)) {
-				printk("   ** bad parity in PTag0\n");
-				res |= CP0_CERRD_TAG_ADDRESS;
-			}
-		} else {
-			res |= CP0_CERRD_TAG_STATE;
-		}
-
-		if (data) {
-			uint64_t datalo;
-			uint32_t datalohi, datalolo, datahi;
-			int offset;
-
-			for (offset = 0; offset < 4; offset++) {
-				/* Index-load-data-D */
-				__asm__ __volatile__ (
-					".set push        \n\t"
-					".set noreorder   \n\t"
-					".set mips64      \n\t"
-					".set noat        \n\t"
-					"cache  7, 0(%3)  \n\t"
-					"mfc0   %0, $29, 3\n\t"
-					"dmfc0  $1, $28, 3\n\t"
-					"dsrl32 %1, $1, 0 \n\t"
-					"sll    %2, $1, 0 \n\t"
-					".set pop         \n"
-					: "=r" (datahi), "=r" (datalohi),
-					"=r" (datalolo)
-					: "r" ((way << 13) | addr | (offset << 3)));
-				datalo = ((unsigned long long)datalohi << 32) | datalolo;
-				ecc = dc_ecc(datalo);
-				if (ecc != datahi) {
-					int bits = 0;
-					printk("  ** bad ECC (%02x %02x) ->",
-					       datahi, ecc);
-					ecc ^= datahi;
-					while (ecc) {
-						if (ecc & 1) bits++;
-						ecc >>= 1;
-					}
-					res |= (bits == 1) ? CP0_CERRD_DATA_SBE : CP0_CERRD_DATA_DBE;
-				}
-				printk("  %02X-%016llX", datahi, datalo);
-			}
-			printk("\n");
-		}
-	}
-	return res;
-}
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1/Makefile
--- linux-2.4.20/arch/mips/sibyte/sb1/Makefile	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1/Makefile	1969-12-31 18:00:00.000000000 -0600
@@ -1,7 +0,0 @@
-USE_STANDARD_AS_RULE := true
-
-L_TARGET = sb1kern.a
-
-obj-$(CONFIG_SB1_CACHE_ERROR) += cache_err_handler.o cache_error.o
-
-include $(TOPDIR)/Rules.make
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/bcm1250_tbprof.c linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/bcm1250_tbprof.c
--- linux-2.4.20/arch/mips/sibyte/sb1250/bcm1250_tbprof.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/bcm1250_tbprof.c	2003-02-07 16:00:22.000000000 -0600
@@ -34,11 +34,11 @@
 #include <asm/sibyte/sb1250_scd.h>
 #include <asm/sibyte/sb1250_int.h>
 #include <asm/sibyte/64bit.h>
-#include "bcm1250_tbprof.h"
+#include <asm/sibyte/trace_prof.h>
 
-#define DEVNAME "sb1250_tbprof"
+static struct sbprof_tb sbp;
 
-static struct sbprof_tb *sbp;
+#define TB_FULL (sbp.next_tb_sample == MAX_TB_SAMPLES)
 
 /************************************************************************
  * Support for ZBbus sampling using the trace buffer
@@ -53,13 +53,13 @@
  *
  ************************************************************************/
 
-/* 100 samples per second on a 500 Mhz 1250 */
-#define TB_PERIOD 2500000ULL
+/* 100 samples per second on a 500 Mhz 1250 (default) */
+static u_int64_t tb_period = 2500000ULL;
 
 static void arm_tb(void)
 {
-        unsigned long long scdperfcnt;
-	unsigned long long next = (1ULL << 40) - TB_PERIOD;
+        u_int64_t scdperfcnt;
+	u_int64_t next = (1ULL << 40) - tb_period;
 	/* Generate an SCD_PERFCNT interrupt in TB_PERIOD Zclks to
 	   trigger start of trace.  XXX vary sampling period */
 	out64(0, KSEG1 + A_SCD_PERF_CNT_1);
@@ -75,17 +75,22 @@
 	out64(next, KSEG1 + A_SCD_PERF_CNT_1);
 	/* Reset the trace buffer */
 	out64(M_SCD_TRACE_CFG_RESET, KSEG1 + A_SCD_TRACE_CFG);
-	out64(M_SCD_TRACE_CFG_FREEZE_FULL, KSEG1 + A_SCD_TRACE_CFG);
-	sbp->tb_armed = 1;
+	out64(M_SCD_TRACE_CFG_FREEZE_FULL
+#if 0 && defined(M_SCD_TRACE_CFG_FORCECNT)
+	      /* XXXKW may want to expose control to the data-collector */
+	      | M_SCD_TRACE_CFG_FORCECNT
+#endif
+	      , KSEG1 + A_SCD_TRACE_CFG);
+	sbp.tb_armed = 1;
 }
 
 static void sbprof_tb_intr(int irq, void *dev_id, struct pt_regs *regs)
 {
 	int i;
 	DBG(printk(DEVNAME ": tb_intr\n"));
-	if (sbp->next_tb_sample < MAX_TB_SAMPLES) {
+	if (sbp.next_tb_sample < MAX_TB_SAMPLES) {
 		/* XXX should use XKPHYS to make writes bypass L2 */
-		unsigned long long *p = sbp->sbprof_tbbuf[sbp->next_tb_sample++];
+		u_int64_t *p = sbp.sbprof_tbbuf[sbp.next_tb_sample++];
 		/* Read out trace */
 		out64(M_SCD_TRACE_CFG_START_READ, KSEG1 + A_SCD_TRACE_CFG);
 		__asm__ __volatile__ ("sync" : : : "memory");
@@ -100,11 +105,11 @@
 			p[i-5] = in64(KSEG1 + A_SCD_TRACE_READ); // read t0 hi
 			p[i-6] = in64(KSEG1 + A_SCD_TRACE_READ); // read t0 lo
 		}
-		if (!sbp->tb_enable) {
+		if (!sbp.tb_enable) {
 			DBG(printk(DEVNAME ": tb_intr shutdown\n"));
 			out64(M_SCD_TRACE_CFG_RESET, KSEG1 + A_SCD_TRACE_CFG);
-			sbp->tb_armed = 0;
-			wake_up(&sbp->tb_sync);
+			sbp.tb_armed = 0;
+			wake_up(&sbp.tb_sync);
 		} else {
 			arm_tb();	// knock down current interrupt and get another one later
 		}
@@ -112,36 +117,51 @@
 		/* No more trace buffer samples */
 		DBG(printk(DEVNAME ": tb_intr full\n"));
 		out64(M_SCD_TRACE_CFG_RESET, KSEG1 + A_SCD_TRACE_CFG);
-		sbp->tb_armed = 0;
-		if (!sbp->tb_enable) {
-			wake_up(&sbp->tb_sync);
+		sbp.tb_armed = 0;
+		if (!sbp.tb_enable) {
+			wake_up(&sbp.tb_sync);
 		}
+		wake_up(&sbp.tb_read);
 	}
 }
 
 static void sbprof_pc_intr(int irq, void *dev_id, struct pt_regs *regs)
 {
-	panic(DEVNAME ": pc_intr");
+	printk(DEVNAME ": unexpected pc_intr");
 }
 
 static int sbprof_zbprof_start(struct file *filp)
 {
-	if (sbp->tb_enable)
+	u_int64_t scdperfcnt;
+
+	if (sbp.tb_enable)
 		return -EBUSY;
 
 	DBG(printk(DEVNAME ": starting\n"));
 
-	sbp->tb_enable = 1;
-	sbp->next_tb_sample = 0;
+	sbp.tb_enable = 1;
+	sbp.next_tb_sample = 0;
 	filp->f_pos = 0;
 
 	if (request_irq
-	    (K_INT_TRACE_FREEZE, sbprof_tb_intr, 0, "sbprof_tb trace freeze", sbp)) {
+	    (K_INT_TRACE_FREEZE, sbprof_tb_intr, 0, DEVNAME " trace freeze", &sbp)) {
 		return -EBUSY;
 	}
+	/* Make sure there isn't a perf-cnt interrupt waiting */
+	scdperfcnt = in64(KSEG1 + A_SCD_PERF_CNT_CFG);
+	/* Disable and clear counters, override SRC_1 */
+	out64((scdperfcnt & ~(M_SPC_CFG_SRC1 | M_SPC_CFG_ENABLE)) |
+		   M_SPC_CFG_ENABLE |
+		   M_SPC_CFG_CLEAR |
+		   V_SPC_CFG_SRC1(1),
+	      KSEG1 + A_SCD_PERF_CNT_CFG);
+
+	/* We grab this interrupt to prevent others from trying to use
+           it, even though we don't want to service the interrupts
+           (they only feed into the trace-on-interrupt mechanism) */
 	if (request_irq
-	    (K_INT_PERF_CNT, sbprof_pc_intr, 0, "sbprof_tb scd perfcnt", sbp)) {
-		free_irq(K_INT_TRACE_FREEZE, sbp);
+	    (K_INT_PERF_CNT, sbprof_pc_intr, 0, DEVNAME " scd perfcnt", &sbp)) {
+		free_irq(K_INT_TRACE_FREEZE, &sbp);
 		return -EBUSY;
 	}
 
@@ -206,18 +226,18 @@
 {
 	DBG(printk(DEVNAME ": stopping\n"));
 
-	if (sbp->tb_enable) {
-		sbp->tb_enable = 0;
+	if (sbp.tb_enable) {
+		sbp.tb_enable = 0;
 		/* XXXKW there is a window here where the intr handler
 		   may run, see the disable, and do the wake_up before
 		   this sleep happens. */
-		if (sbp->tb_armed) {
+		if (sbp.tb_armed) {
 			DBG(printk(DEVNAME ": wait for disarm\n"));
-			interruptible_sleep_on(&sbp->tb_sync);
+			interruptible_sleep_on(&sbp.tb_sync);
 			DBG(printk(DEVNAME ": disarm complete\n"));
 		}
-		free_irq(K_INT_TRACE_FREEZE, sbp);
-		free_irq(K_INT_PERF_CNT, sbp);
+		free_irq(K_INT_TRACE_FREEZE, &sbp);
+		free_irq(K_INT_PERF_CNT, &sbp);
 	}
 
 	DBG(printk(DEVNAME ": done stopping\n"));
@@ -233,24 +253,19 @@
 	if (minor != 0) {
 		return -ENODEV;
 	}
-	if (sbp != NULL) {
+	if (sbp.open) {
 		return -EBUSY;
 	}
 
-	/* XXXKW spinlock? */
-	sbp = kmalloc(sizeof(struct sbprof_tb), GFP_KERNEL);
-	if (!sbp) {
-		return -ENOMEM;
-	}
-	memset(sbp, 0, sizeof(struct sbprof_tb));
-	sbp->sbprof_tbbuf = vmalloc(MAX_TBSAMPLE_BYTES);
-	if (!sbp->sbprof_tbbuf) {
-		kfree(sbp);
-		sbp = NULL;
+	memset(&sbp, 0, sizeof(struct sbprof_tb));
+	sbp.sbprof_tbbuf = vmalloc(MAX_TBSAMPLE_BYTES);
+	if (!sbp.sbprof_tbbuf) {
 		return -ENOMEM;
 	}
-	memset(sbp->sbprof_tbbuf, 0, MAX_TBSAMPLE_BYTES);
-	init_waitqueue_head(&sbp->tb_sync);
+	memset(sbp.sbprof_tbbuf, 0, MAX_TBSAMPLE_BYTES);
+	init_waitqueue_head(&sbp.tb_sync);
+	init_waitqueue_head(&sbp.tb_read);
+	sbp.open = 1;
 
 	return 0;
 }
@@ -260,23 +275,22 @@
 	int minor;
 
 	minor = MINOR(inode->i_rdev);
-	if (minor != 0 || sbp == NULL) {
+	if (minor != 0 || !sbp.open) {
 		return -ENODEV;
 	}
 
-	if (sbp->tb_armed || sbp->tb_enable) {
+	if (sbp.tb_armed || sbp.tb_enable) {
 		sbprof_zbprof_stop();
 	}
 
-	vfree(sbp->sbprof_tbbuf);
-	kfree(sbp);
-	sbp = NULL;
+	vfree(sbp.sbprof_tbbuf);
+	sbp.open = 0;
 
 	return 0;
 }
 
 static ssize_t sbprof_tb_read(struct file *filp, char *buf,
-			   size_t size, loff_t *offp)
+			      size_t size, loff_t *offp)
 {
 	int cur_sample, sample_off, cur_count, sample_left;
 	char *src;
@@ -288,9 +302,9 @@
 	cur_sample = cur_off / TB_SAMPLE_SIZE;
 	sample_off = cur_off % TB_SAMPLE_SIZE;
 	sample_left = TB_SAMPLE_SIZE - sample_off;
-	while (size && (cur_sample < sbp->next_tb_sample)) {
+	while (size && (cur_sample < sbp.next_tb_sample)) {
 		cur_count = size < sample_left ? size : sample_left;
-		src = (char *)(((long)sbp->sbprof_tbbuf[cur_sample])+sample_off);
+		src = (char *)(((long)sbp.sbprof_tbbuf[cur_sample])+sample_off);
 		copy_to_user(dest, src, cur_count);
 		DBG(printk(DEVNAME ": read from sample %d, %d bytes\n", cur_sample, cur_count));
 		size -= cur_count;
@@ -311,17 +325,12 @@
 	return count;
 }
 
-#define SBPROF_ZBSTART	_IOW('s', 0, int)
-#define SBPROF_ZBSTOP	_IOW('s', 1, int)
-#define SBPROF_ZBFULL	_IOW('s', 2, int)
-
 static int sbprof_tb_ioctl(struct inode *inode,
-			struct file *filp,
-			unsigned int command,
-			unsigned long arg)
+			   struct file *filp,
+			   unsigned int command,
+			   unsigned long arg)
 {
 	int error = 0;
-	int full;
 
 	switch (command) {
 	case SBPROF_ZBSTART:
@@ -330,9 +339,10 @@
 	case SBPROF_ZBSTOP:
 		error = sbprof_zbprof_stop();
 		break;
-	case SBPROF_ZBFULL:
-		full = (sbp->next_tb_sample == MAX_TB_SAMPLES);
-		return put_user(full, (int *) arg);
+	case SBPROF_ZBWAITFULL:
+		interruptible_sleep_on(&sbp.tb_read);
+		/* XXXKW check if interrupted? */
+		return put_user(TB_FULL, (int *) arg);
 	default:
 		error = -EINVAL;
 		break;
@@ -342,18 +352,56 @@
 }
 
 static struct file_operations sbprof_tb_fops = {
-	owner:		THIS_MODULE,
-	open:		sbprof_tb_open,
-	release:	sbprof_tb_release,
-	read:		sbprof_tb_read,
-	ioctl:		sbprof_tb_ioctl,
-	mmap:		NULL,
+	.owner		= THIS_MODULE,
+	.open		= sbprof_tb_open,
+	.release	= sbprof_tb_release,
+	.read		= sbprof_tb_read,
+	.ioctl		= sbprof_tb_ioctl,
+	.mmap		= NULL,
 };
 
 static devfs_handle_t devfs_handle;
 
+#define UNDEF 0
+static unsigned long long pll_div_to_mhz[32] = {
+  UNDEF,
+  UNDEF,
+  UNDEF,
+  UNDEF,
+  200,
+  250,
+  300,
+  350,
+  400,
+  450,
+  500,
+  550,
+  600,
+  650,
+  700,
+  750,
+  800, 
+  850, 
+  900,
+  950,
+  1000,
+  1050,
+  1100,
+  UNDEF,
+  UNDEF,
+  UNDEF,
+  UNDEF, 
+  UNDEF, 
+  UNDEF,
+  UNDEF,
+  UNDEF,
+  UNDEF
+};
+
 static int __init sbprof_tb_init(void)
 {
+	unsigned int pll_div;
+
 	if (devfs_register_chrdev(SBPROF_TB_MAJOR, DEVNAME, &sbprof_tb_fops)) {
 		printk(KERN_WARNING DEVNAME ": initialization failed (dev %d)\n",
 		       SBPROF_TB_MAJOR);
@@ -363,8 +411,14 @@
 				      DEVFS_FL_DEFAULT, SBPROF_TB_MAJOR, 0,
 				      S_IFCHR | S_IRUGO | S_IWUGO,
 				      &sbprof_tb_fops, NULL);
-	sbp = NULL;
-	printk(KERN_INFO DEVNAME ": initialized\n");
+	sbp.open = 0;
+	pll_div = pll_div_to_mhz[G_SYS_PLL_DIV(in64(KSEG1 + A_SCD_SYSTEM_CFG))];
+	if (pll_div != UNDEF) {
+		tb_period = (pll_div / 2) * 10000;
+	} else {
+		printk(KERN_INFO DEVNAME ": strange PLL divide\n");
+	}
+	printk(KERN_INFO DEVNAME ": initialized - tb_period = %lld\n", tb_period);
 	return 0;
 }
 
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/bcm1250_tbprof.h linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/bcm1250_tbprof.h
--- linux-2.4.20/arch/mips/sibyte/sb1250/bcm1250_tbprof.h	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/bcm1250_tbprof.h	1969-12-31 18:00:00.000000000 -0600
@@ -1,100 +0,0 @@
-/*
- * Copyright (C) 2001 Broadcom Corporation
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- */
-
-#ifndef BCM1250_TBPROF_H
-
-#if SBPROF_TB_DEBUG
-#define DBG(a) a
-#else
-#define DBG(a)
-#endif
-
-#define SBPROF_TB_MAJOR 240
-
-typedef u_int64_t tb_sample_t[6*256];
-
-struct sbprof_tb {
-	tb_sample_t *sbprof_tbbuf;
-	int          next_tb_sample;
-
-	volatile int tb_enable;
-	volatile int tb_armed;
-
-	wait_queue_head_t tb_sync;
-};
-
-#define MAX_SAMPLE_BYTES (24*1024*1024)
-#define MAX_TBSAMPLE_BYTES (12*1024*1024)
-
-#define MAX_SAMPLES (MAX_SAMPLE_BYTES/sizeof(u_int32_t))
-#define TB_SAMPLE_SIZE (sizeof(tb_sample_t))
-#define MAX_TB_SAMPLES (MAX_TBSAMPLE_BYTES/TB_SAMPLE_SIZE)
-
-/***************************************************************************
- * Routines for gathering ZBbus profiles using trace buffer
- ***************************************************************************/
-
-/* Requires: Already called zclk_timer_init with a value that won't
-	     saturate 40 bits.  No subsequent use of SCD performance counters
-	     or trace buffer.
-   Effect:   Starts gathering random ZBbus profiles using trace buffer. */
-static int sbprof_zbprof_start(struct file *filp);
-
-/* Effect: Stops collection of ZBbus profiles */
-static int sbprof_zbprof_stop(void);
-
-
-/***************************************************************************
- * Routines for using 40-bit SCD cycle counter
- *
- * Client responsible for either handling interrupts or making sure
- * the cycles counter never saturates, e.g., by doing
- * zclk_timer_init(0) at least every 2^40 - 1 ZCLKs.
- ***************************************************************************/
-
-/* Configures SCD counter 0 to count ZCLKs starting from val;
-   Configures SCD counters1,2,3 to count nothing.
-   Must not be called while gathering ZBbus profiles.
-
-unsigned long long val; */
-#define zclk_timer_init(val) \
-  __asm__ __volatile__ (".set push;" \
-			".set mips64;" \
-			"la   $8, 0xb00204c0;" /* SCD perf_cnt_cfg */ \
-			"sd   %0, 0x10($8);"   /* write val to counter0 */ \
-			"sd   %1, 0($8);"      /* config counter0 for zclks*/ \
-			".set pop" \
-			: /* no outputs */ \
-						     /* enable, counter0 */ \
-			: /* inputs */ "r"(val), "r" ((1ULL << 33) | 1ULL) \
-			: /* modifies */ "$8" )
-
-
-/* Reads SCD counter 0 and puts result in value
-   unsigned long long val; */
-#define zclk_get(val) \
-  __asm__ __volatile__ (".set push;" \
-			".set mips64;" \
-			"la   $8, 0xb00204c0;" /* SCD perf_cnt_cfg */ \
-			"ld   %0, 0x10($8);"   /* write val to counter0 */ \
-			".set pop" \
-			: /* outputs */ "=r"(val) \
-			: /* inputs */ \
-			: /* modifies */ "$8" )
-
-#endif
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/bus_watcher.c linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/bus_watcher.c
--- linux-2.4.20/arch/mips/sibyte/sb1250/bus_watcher.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/bus_watcher.c	2003-02-06 10:37:54.000000000 -0600
@@ -0,0 +1,233 @@
+/*
+ * Copyright (C) 2002,2003 Broadcom Corporation
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+/* 
+ * The Bus Watcher monitors internal bus transactions and maintains
+ * counts of transactions with error status, logging details and
+ * causing one of several interrupts.  This driver provides a handler
+ * for those interrupts which aggregates the counts (to avoid
+ * saturating the 8-bit counters) and provides a presence in
+ * /proc/bus_watcher if PROC_FS is on.
+ */
+
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/sched.h>
+#include <linux/proc_fs.h>
+#include <asm/system.h>
+
+#include <asm/sibyte/sb1250.h>
+#include <asm/sibyte/sb1250_regs.h>
+#include <asm/sibyte/sb1250_int.h>
+#include <asm/sibyte/sb1250_scd.h>
+#include <asm/sibyte/64bit.h>
+
+
+struct bw_stats_struct {
+	uint64_t status;
+	uint32_t l2_err;
+	uint32_t memio_err;
+	int status_printed;
+	unsigned long l2_cor_d;
+	unsigned long l2_bad_d;
+	unsigned long l2_cor_t;
+	unsigned long l2_bad_t;
+	unsigned long mem_cor_d;
+	unsigned long mem_bad_d;
+	unsigned long bus_error;
+} bw_stats;
+
+
+static void print_summary(uint32_t status, uint32_t l2_err,
+			  uint32_t memio_err)
+{
+	printk("Bus watcher error counters: %08x %08x\n", l2_err, memio_err);
+	printk("\nLast recorded signature:\n");
+	printk("Request %02x from %d, answered by %d with Dcode %d\n",
+	       (unsigned int)(G_SCD_BERR_TID(status) & 0x3f),
+	       (int)(G_SCD_BERR_TID(status) >> 6),
+	       (int)G_SCD_BERR_RID(status),
+	       (int)G_SCD_BERR_DCODE(status));
+}
+
+/*
+ * check_bus_watcher is exported for use in situations where we want
+ * to see the most recent status of the bus watcher, which might have
+ * already been destructively read out of the registers.
+ *
+ * notes: this is currently used by the cache error handler
+ *        should provide locking against the interrupt handler
+ */
+void check_bus_watcher(void)
+{
+	u32 status, l2_err, memio_err;
+	unsigned long flags;
+
+#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
+	/* Destructive read, clears register and interrupt */
+	status = csr_in32(IO_SPACE_BASE | A_SCD_BUS_ERR_STATUS);
+#else
+	/* Use non-destructive register */
+	status = csr_in32(IO_SPACE_BASE | A_SCD_BUS_ERR_STATUS_DEBUG);
+#endif
+	if (!(status & 0x7fffffff)) {
+		printk("Using last values reaped by bus watcher driver\n");
+		status = bw_stats.status;
+		l2_err = bw_stats.l2_err;
+		memio_err = bw_stats.memio_err;
+	} else {
+		l2_err = csr_in32(IO_SPACE_BASE | A_BUS_L2_ERRORS);
+		memio_err = csr_in32(IO_SPACE_BASE | A_BUS_MEM_IO_ERRORS);
+	}
+	if (status & ~(1UL << 31))
+		print_summary(status, l2_err, memio_err);
+	else
+		printk("Bus watcher indicates no error\n");
+}
+
+static int bw_print_buffer(char *page, struct bw_stats_struct *stats)
+{
+	int len;
+
+	len = sprintf(page, "SiByte Bus Watcher statistics\n");
+	len += sprintf(page+len, "-----------------------------\n");
+	len += sprintf(page+len, "L2-d-cor %8ld\nL2-d-bad %8ld\n",
+		       stats->l2_cor_d, stats->l2_bad_d);
+	len += sprintf(page+len, "L2-t-cor %8ld\nL2-t-bad %8ld\n",
+		       stats->l2_cor_t, stats->l2_bad_t);
+	len += sprintf(page+len, "MC-d-cor %8ld\nMC-d-bad %8ld\n",
+		       stats->mem_cor_d, stats->mem_bad_d);
+	len += sprintf(page+len, "IO-err   %8ld\n", stats->bus_error);
+	len += sprintf(page+len, "\nLast recorded signature:\n");
+	len += sprintf(page+len, "Request %02x from %d, answered by %d with Dcode %d\n",
+		       (unsigned int)(G_SCD_BERR_TID(stats->status) & 0x3f),
+		       (int)(G_SCD_BERR_TID(stats->status) >> 6),
+		       (int)G_SCD_BERR_RID(stats->status),
+		       (int)G_SCD_BERR_DCODE(stats->status));
+	/* XXXKW indicate multiple errors between printings, or stats
+           collection (or both)? */
+	if (stats->status & M_SCD_BERR_MULTERRS)
+		len += sprintf(page+len, "Multiple errors observed since last check.\n");
+	if (stats->status_printed) {
+		len += sprintf(page+len, "(no change since last printing)\n");
+	} else {
+		stats->status_printed = 1;
+	}
+
+	return len;
+}
+
+#ifdef CONFIG_PROC_FS
+
+/* For simplicity, I want to assume a single read is required each
+   time */
+static int bw_read_proc(char *page, char **start, off_t off,
+			int count, int *eof, void *data)
+{
+	int len;
+
+	if (off == 0) {
+		len = bw_print_buffer(page, data);
+		*start = page;
+	} else {
+		len = 0;
+		*eof = 1;
+	}
+	return len;
+}
+
+static void create_proc_decoder(struct bw_stats_struct *stats)
+{
+	struct proc_dir_entry *ent;
+	
+	ent = create_proc_read_entry("bus_watcher", S_IWUSR | S_IRUGO, NULL,
+				     bw_read_proc, stats);
+	if (!ent) {
+		printk(KERN_INFO "Unable to initialize bus_watcher /proc entry\n");
+		return;
+	}
+}
+
+#endif /* CONFIG_PROC_FS */
+
+/*
+ * sibyte_bw_int - handle bus watcher interrupts and accumulate counts
+ *
+ * notes: possible re-entry due to multiple sources
+ *        should check/indicate saturation
+ */
+static void sibyte_bw_int(int irq, void *data, struct pt_regs *regs)
+{
+	struct bw_stats_struct *stats = data;
+	unsigned long cntr;
+#ifndef CONFIG_PROC_FS
+	char bw_buf[1024];
+#endif
+
+	/* Destructive read, clears register and interrupt */
+	stats->status = csr_in32(IO_SPACE_BASE | A_SCD_BUS_ERR_STATUS);
+	stats->status_printed = 0;
+
+	stats->l2_err = cntr = csr_in32(IO_SPACE_BASE | A_BUS_L2_ERRORS);
+	stats->l2_cor_d += G_SCD_L2ECC_CORR_D(cntr);
+	stats->l2_bad_d += G_SCD_L2ECC_BAD_D(cntr);
+	stats->l2_cor_t += G_SCD_L2ECC_CORR_T(cntr);
+	stats->l2_bad_t += G_SCD_L2ECC_BAD_T(cntr);
+	csr_out32(0, IO_SPACE_BASE | A_BUS_L2_ERRORS);
+
+	stats->memio_err = cntr = csr_in32(IO_SPACE_BASE | A_BUS_MEM_IO_ERRORS);
+	stats->mem_cor_d += G_SCD_MEM_ECC_CORR(cntr);
+	stats->mem_bad_d += G_SCD_MEM_ECC_BAD(cntr);
+	stats->bus_error += G_SCD_MEM_BUSERR(cntr);
+	csr_out32(0, IO_SPACE_BASE | A_BUS_MEM_IO_ERRORS);
+
+#ifndef CONFIG_PROC_FS
+	bw_print_buffer(bw_buf, stats);
+	printk(bw_buf);
+#endif
+}
+
+int __init sibyte_bus_watcher(void)
+{
+	memset(&bw_stats, 0, sizeof(struct bw_stats_struct));
+	bw_stats.status_printed = 1;
+
+	if (request_irq(K_INT_BAD_ECC, sibyte_bw_int, 0, "Bus watcher", &bw_stats)) {
+		printk("Failed to register bus watcher BAD_ECC irq\n");
+		return -1;
+	}
+	if (request_irq(K_INT_COR_ECC, sibyte_bw_int, 0, "Bus watcher", &bw_stats)) {
+		free_irq(K_INT_BAD_ECC, &bw_stats);
+		printk("Failed to register bus watcher COR_ECC irq\n");
+		return -1;
+	}
+	if (request_irq(K_INT_IO_BUS, sibyte_bw_int, 0, "Bus watcher", &bw_stats)) {
+		free_irq(K_INT_BAD_ECC, &bw_stats);
+		free_irq(K_INT_COR_ECC, &bw_stats);
+		printk("Failed to register bus watcher IO_BUS irq\n");
+		return -1;
+	}
+
+#ifdef CONFIG_PROC_FS
+	create_proc_decoder(&bw_stats);
+#endif
+
+	return 0;
+}
+
+__initcall(sibyte_bus_watcher);
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/CVS/Entries
--- linux-2.4.20/arch/mips/sibyte/sb1250/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/CVS/Entries	2005-01-06 23:00:10.000000000 -0600
@@ -0,0 +1,13 @@
+/.cvsignore/1.1/Thu Nov  8 01:54:47 2001/-ko/Tlinux_2_4_20
+/Makefile/1.4.2.7/Fri Feb  7 22:00:22 2003/-ko/Tlinux_2_4_20
+/bcm1250_tbprof.c/1.2.2.4/Fri Feb  7 22:00:22 2003/-ko/Tlinux_2_4_20
+/bus_watcher.c/1.1.2.1/Thu Feb  6 16:37:54 2003/-ko/Tlinux_2_4_20
+/ide.c/1.1.2.1/Fri Feb  7 20:53:26 2003//Tlinux_2_4_20
+/irq.c/1.4.2.13/Fri Feb  7 15:42:12 2003/-ko/Tlinux_2_4_20
+/irq_handler.S/1.4.2.6/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
+/pci.c/1.3.2.9/Thu Feb  6 21:34:14 2003/-ko/Tlinux_2_4_20
+/prom.c/1.1.2.2/Mon Sep  2 22:14:42 2002/-ko/Tlinux_2_4_20
+/setup.c/1.1.2.5/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
+/smp.c/1.2.2.7/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
+/time.c/1.2.2.8/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/CVS/Repository
--- linux-2.4.20/arch/mips/sibyte/sb1250/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/CVS/Repository	2005-01-06 23:00:10.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/sibyte/sb1250
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/CVS/Root
--- linux-2.4.20/arch/mips/sibyte/sb1250/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/CVS/Root	2005-01-06 23:00:10.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/CVS/Tag
--- linux-2.4.20/arch/mips/sibyte/sb1250/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/CVS/Tag	2005-01-06 23:00:10.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/.cvsignore
--- linux-2.4.20/arch/mips/sibyte/sb1250/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/.cvsignore	2001-11-07 19:54:47.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/ide.c linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/ide.c
--- linux-2.4.20/arch/mips/sibyte/sb1250/ide.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/ide.c	2003-02-07 14:53:26.000000000 -0600
@@ -0,0 +1,251 @@
+/*
+ * Copyright (C) 2001, 2002, 2003 Broadcom Corporation
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+/*  Derived loosely from ide-pmac.c, so:
+ *  
+ *  Copyright (C) 1998 Paul Mackerras.
+ *  Copyright (C) 1995-1998 Mark Lord
+ */
+#include <linux/kernel.h>
+#include <linux/ide.h>
+
+#include <asm/sibyte/board.h>
+
+extern struct ide_ops std_ide_ops;
+unsigned long ide_base;
+
+#ifdef CONFIG_BLK_DEV_IDE_SIBYTE
+extern ide_hwif_t *sb_ide_hwif;
+static inline int is_sibyte_ide(ide_ioreg_t from)
+{
+	return ((sb_ide_hwif &&
+		((from == sb_ide_hwif->io_ports[IDE_DATA_OFFSET]) ||
+		 (from == sb_ide_hwif->io_ports[IDE_ERROR_OFFSET]) ||
+		 (from == sb_ide_hwif->io_ports[IDE_NSECTOR_OFFSET]) ||
+		 (from == sb_ide_hwif->io_ports[IDE_SECTOR_OFFSET]) ||
+		 (from == sb_ide_hwif->io_ports[IDE_LCYL_OFFSET]) ||
+		 (from == sb_ide_hwif->io_ports[IDE_HCYL_OFFSET]) ||
+		 (from == sb_ide_hwif->io_ports[IDE_SELECT_OFFSET]) ||
+		 (from == sb_ide_hwif->io_ports[IDE_STATUS_OFFSET]) ||
+		 (from == sb_ide_hwif->io_ports[IDE_CONTROL_OFFSET]))));
+}
+#else
+#define is_sibyte_ide(f) (0)
+#endif
+
+/*
+ * We are limiting the number of PCI-IDE devices to leave room for
+ * GenBus IDE (and possibly PCMCIA/CF?)
+ */
+static int sibyte_ide_default_irq(ide_ioreg_t base)
+{
+	return 0;
+}
+
+static ide_ioreg_t sibyte_ide_default_io_base(int index)
+{
+	return 0;
+}
+
+static void sibyte_ide_init_hwif_ports (hw_regs_t *hw, ide_ioreg_t data_port,
+				       ide_ioreg_t ctrl_port, int *irq)
+{
+	std_ide_ops.ide_init_hwif_ports(hw, data_port, ctrl_port, irq);
+}
+
+static int sibyte_ide_request_irq(unsigned int irq,
+                                void (*handler)(int,void *, struct pt_regs *),
+                                unsigned long flags, const char *device,
+                                void *dev_id)
+{
+	return request_irq(irq, handler, flags, device, dev_id);
+}
+
+static void sibyte_ide_free_irq(unsigned int irq, void *dev_id)
+{
+	free_irq(irq, dev_id);
+}
+
+static int sibyte_ide_check_region(ide_ioreg_t from, unsigned int extent)
+{
+	/* Figure out if it's the SiByte IDE; if so, don't do anything
+           since our I/O space is in a weird place. */
+	if (is_sibyte_ide(from))
+		return 0;
+	else
+#ifdef CONFIG_BLK_DEV_IDE
+		return std_ide_ops.ide_check_region(from, extent);
+#else
+		return 0;
+#endif
+}
+
+static void sibyte_ide_request_region(ide_ioreg_t from, unsigned int extent,
+				     const char *name)
+{
+#ifdef CONFIG_BLK_DEV_IDE
+	if (!is_sibyte_ide(from))
+		std_ide_ops.ide_request_region(from, extent, name);
+#endif
+}
+
+static void sibyte_ide_release_region(ide_ioreg_t from, unsigned int extent)
+{
+#ifdef CONFIG_BLK_DEV_IDE
+	if (!is_sibyte_ide(from))
+		std_ide_ops.ide_release_region(from, extent);
+#endif
+}
+
+struct ide_ops sibyte_ide_ops = {
+	&sibyte_ide_default_irq,
+	&sibyte_ide_default_io_base,
+	&sibyte_ide_init_hwif_ports,
+	&sibyte_ide_request_irq,
+	&sibyte_ide_free_irq,
+	&sibyte_ide_check_region,
+	&sibyte_ide_request_region,
+	&sibyte_ide_release_region
+};
+
+/*
+ * I/O operations. The FPGA for SiByte generic bus IDE deals with
+ * byte-swapping for us, so we can't share the I/O macros with other
+ * IDE (e.g. PCI-IDE) devices.
+ */
+
+#define sibyte_outb(val,port)					\
+do {								\
+	*(volatile u8 *)(mips_io_port_base + (port)) = val;	\
+} while(0)
+
+#define sibyte_outw(val,port)					\
+do {								\
+	*(volatile u16 *)(mips_io_port_base + (port)) = val;	\
+} while(0)
+
+#define sibyte_outl(val,port)					\
+do {								\
+	*(volatile u32 *)(mips_io_port_base + (port)) = val;	\
+} while(0)
+
+static inline unsigned char sibyte_inb(unsigned long port)
+{
+	return (*(volatile u8 *)(mips_io_port_base + (port)));
+}
+
+static inline unsigned short sibyte_inw(unsigned long port)
+{
+	return (*(volatile u16 *)(mips_io_port_base + (port)));
+}
+
+static inline unsigned int sibyte_inl(unsigned long port)
+{
+	return (*(volatile u32 *)(mips_io_port_base + (port)));
+}
+
+
+static inline void sibyte_outsb(unsigned long port, void *addr, unsigned int count)
+{
+	while (count--) {
+		sibyte_outb(*(u8 *)addr, port);
+		addr++;
+	}
+}
+
+static inline void sibyte_insb(unsigned long port, void *addr, unsigned int count)
+{
+	while (count--) {
+		*(u8 *)addr = sibyte_inb(port);
+		addr++;
+	}
+}
+
+static inline void sibyte_outsw(unsigned long port, void *addr, unsigned int count)
+{
+	while (count--) {
+		sibyte_outw(*(u16 *)addr, port);
+		addr += 2;
+	}
+}
+
+static inline void sibyte_insw(unsigned long port, void *addr, unsigned int count)
+{
+	while (count--) {
+		*(u16 *)addr = sibyte_inw(port);
+		addr += 2;
+	}
+}
+
+static inline void sibyte_outsl(unsigned long port, void *addr, unsigned int count)
+{
+	while (count--) {
+		sibyte_outl(*(u32 *)addr, port);
+		addr += 4;
+	}
+}
+
+static inline void sibyte_insl(unsigned long port, void *addr, unsigned int count)
+{
+	while (count--) {
+		*(u32 *)addr = sibyte_inl(port);
+		addr += 4;
+	}
+}
+
+void sibyte_ideproc(ide_ide_action_t action, ide_drive_t *drive,
+		    void *buffer, unsigned int count)
+{
+	/*  slow? vlb_sync? */
+	switch (action) {
+	case ideproc_ide_input_data:
+		if (drive->io_32bit) {
+			sibyte_insl(IDE_DATA_REG, buffer, count);
+		} else {
+			sibyte_insw(IDE_DATA_REG, buffer, count<<1);
+		}
+		break;
+	case ideproc_ide_output_data:
+		if (drive->io_32bit) {
+			sibyte_outsl(IDE_DATA_REG, buffer, count);
+		} else {
+			sibyte_outsw(IDE_DATA_REG, buffer, count<<1);
+		}
+		break;
+	case ideproc_atapi_input_bytes:
+		count++;
+		if (drive->io_32bit) {
+			sibyte_insl(IDE_DATA_REG, buffer, count>>2);
+		} else {
+			sibyte_insw(IDE_DATA_REG, buffer, count>>1);
+		}
+		if ((count & 3) >= 2)
+			sibyte_insw(IDE_DATA_REG, (char *)buffer + (count & ~3), 1);
+		break;
+	case ideproc_atapi_output_bytes:
+		count++;
+		if (drive->io_32bit) {
+			sibyte_outsl(IDE_DATA_REG, buffer, count>>2);
+		} else {
+			sibyte_outsw(IDE_DATA_REG, buffer, count>>1);
+		}
+		if ((count & 3) >= 2)
+			sibyte_outsw(IDE_DATA_REG, (char *)buffer + (count & ~3), 1);
+		break;
+	}
+}
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/irq.c
--- linux-2.4.20/arch/mips/sibyte/sb1250/irq.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/irq.c	2003-02-07 09:42:12.000000000 -0600
@@ -50,6 +50,13 @@
 static void disable_sb1250_irq(unsigned int irq);
 static unsigned int startup_sb1250_irq(unsigned int irq);
 static void ack_sb1250_irq(unsigned int irq);
+#ifdef CONFIG_SMP
+static void sb1250_set_affinity(unsigned int irq, unsigned long mask);
+#endif
+
+#ifdef CONFIG_SIBYTE_HAS_LDT
+extern unsigned long ldt_eoi_space;
+#endif
 
 #ifdef CONFIG_REMOTE_DEBUG
 extern void breakpoint(void);
@@ -64,8 +71,6 @@
 __setup("nokgdb", nokgdb);
 #endif
 
-#define NR_IRQS 64
-
 static struct hw_interrupt_type sb1250_irq_type = {
 	"SB1250-IMR",
 	startup_sb1250_irq,
@@ -74,9 +79,16 @@
 	disable_sb1250_irq,
 	ack_sb1250_irq,
 	end_sb1250_irq,
+#ifdef CONFIG_SMP
+	sb1250_set_affinity
+#else
 	NULL
+#endif
 };
 
+/* Store the CPU id (not the logical number) */
+int sb1250_irq_owner[SB1250_NR_IRQS];
+
 spinlock_t sb1250_imr_lock = SPIN_LOCK_UNLOCKED;
 
 void sb1250_mask_irq(int cpu, int irq)
@@ -85,9 +97,9 @@
 	u64 cur_ints;
 
 	spin_lock_irqsave(&sb1250_imr_lock, flags);
-	cur_ints = in64(KSEG1 + A_IMR_MAPPER(cpu) + R_IMR_INTERRUPT_MASK);
+	cur_ints = __in64(KSEG1 + A_IMR_MAPPER(cpu) + R_IMR_INTERRUPT_MASK);
 	cur_ints |= (((u64) 1) << irq);
-	out64(cur_ints, KSEG1 + A_IMR_MAPPER(cpu) + R_IMR_INTERRUPT_MASK);
+	__out64(cur_ints, KSEG1 + A_IMR_MAPPER(cpu) + R_IMR_INTERRUPT_MASK);
 	spin_unlock_irqrestore(&sb1250_imr_lock, flags);
 }
 
@@ -97,12 +109,61 @@
 	u64 cur_ints;
 
 	spin_lock_irqsave(&sb1250_imr_lock, flags);
-	cur_ints = in64(KSEG1 + A_IMR_MAPPER(cpu) + R_IMR_INTERRUPT_MASK);
+	cur_ints = __in64(KSEG1 + A_IMR_MAPPER(cpu) + R_IMR_INTERRUPT_MASK);
 	cur_ints &= ~(((u64) 1) << irq);
-	out64(cur_ints, KSEG1 + A_IMR_MAPPER(cpu) + R_IMR_INTERRUPT_MASK);
+	__out64(cur_ints, KSEG1 + A_IMR_MAPPER(cpu) + R_IMR_INTERRUPT_MASK);
 	spin_unlock_irqrestore(&sb1250_imr_lock, flags);
 }
 
+#ifdef CONFIG_SMP
+static void sb1250_set_affinity(unsigned int irq, unsigned long mask)
+{
+	int i = 0, old_cpu, cpu, int_on;
+	u64 cur_ints;
+	irq_desc_t *desc = irq_desc + irq;
+	unsigned int flags;
+
+	while (mask) {
+		if (mask & 1) {
+			mask >>= 1;
+			break;
+		}
+		mask >>= 1;
+		i++;
+	}
+
+	if (mask) {
+		printk("attempted to set irq affinity for irq %d to multiple CPUs\n", irq);
+		return;
+	}
+
+	/* Convert logical CPU to physical CPU */
+	cpu = cpu_logical_map(i);
+
+	/* Protect against other affinity changers and IMR manipulation */
+	spin_lock_irqsave(&desc->lock, flags);
+	spin_lock(&sb1250_imr_lock);
+
+	/* Swizzle each CPU's IMR (but leave the IP selection alone) */
+	old_cpu = sb1250_irq_owner[irq];
+	cur_ints = __in64(KSEG1 + A_IMR_MAPPER(old_cpu) + R_IMR_INTERRUPT_MASK);
+	int_on = !(cur_ints & (((u64) 1) << irq));
+	if (int_on) {
+		/* If it was on, mask it */
+		cur_ints |= (((u64) 1) << irq);
+		__out64(cur_ints, KSEG1 + A_IMR_MAPPER(old_cpu) + R_IMR_INTERRUPT_MASK);
+	}
+	sb1250_irq_owner[irq] = cpu;
+	if (int_on) {
+		/* unmask for the new CPU */
+		cur_ints = __in64(KSEG1 + A_IMR_MAPPER(cpu) + R_IMR_INTERRUPT_MASK);
+		cur_ints &= ~(((u64) 1) << irq);
+		__out64(cur_ints, KSEG1 + A_IMR_MAPPER(cpu) + R_IMR_INTERRUPT_MASK);
+	}
+	spin_unlock(&sb1250_imr_lock);
+	spin_unlock_irqrestore(&desc->lock, flags);
+}
+#endif
 
 
 /* Defined in arch/mips/sibyte/sb1250/irq_handler.S */
@@ -112,7 +173,7 @@
 
 static unsigned int startup_sb1250_irq(unsigned int irq)
 {
-	sb1250_unmask_irq(0, irq);
+	sb1250_unmask_irq(sb1250_irq_owner[irq], irq);
 
 	return 0;		/* never anything pending */
 }
@@ -120,36 +181,58 @@
 
 static void disable_sb1250_irq(unsigned int irq)
 {
-	sb1250_mask_irq(0, irq);
+	sb1250_mask_irq(sb1250_irq_owner[irq], irq);
 }
 
 static void enable_sb1250_irq(unsigned int irq)
 {
-	sb1250_unmask_irq(0, irq);
+	sb1250_unmask_irq(sb1250_irq_owner[irq], irq);
 }
 
 
 static void ack_sb1250_irq(unsigned int irq)
 {
+#ifdef CONFIG_SIBYTE_HAS_LDT
 	u64 pending;
 
 	/*
-	 * If the interrupt was an LDT interrupt, now is the time
-	 * to clear it.
+	 * If the interrupt was an HT interrupt, now is the time to
+	 * clear it.  NOTE: we assume the HT bridge was set up to
+	 * deliver the interrupts to all CPUs (which makes affinity
+	 * changing easier for us)
 	 */
-	pending = in64(KSEG1 + A_IMR_REGISTER(0,R_IMR_LDT_INTERRUPT));
+	pending = in64(KSEG1 + A_IMR_REGISTER(sb1250_irq_owner[irq],
+					      R_IMR_LDT_INTERRUPT));
 	pending &= ((u64)1 << (irq));
-	if (pending)
-		out64(pending, KSEG1+A_IMR_REGISTER(0,R_IMR_LDT_INTERRUPT_CLR));
+	if (pending) {
+		int i;
+		for (i=0; i<smp_num_cpus; i++) {
+			/*
+			 * Clear for all CPUs so an affinity switch
+			 * doesn't find an old status
+			 */
+			out64(pending, 
+			      KSEG1+A_IMR_REGISTER(cpu_logical_map(i),
+						   R_IMR_LDT_INTERRUPT_CLR));
+		}
 
-	sb1250_mask_irq(0, irq);
+		/*
+		 * Generate EOI.  For Pass 1 parts, EOI is a nop.  For
+		 * Pass 2, the LDT world may be edge-triggered, but
+		 * this EOI shouldn't hurt.  If they are
+		 * level-sensitive, the EOI is required.
+		 */
+		*(uint32_t *)(ldt_eoi_space+(irq<<16)+(7<<2)) = 0;
+	}
+#endif
+	sb1250_mask_irq(sb1250_irq_owner[irq], irq);
 }
 
 
 static void end_sb1250_irq(unsigned int irq)
 {
 	if (!(irq_desc[irq].status & (IRQ_DISABLED | IRQ_INPROGRESS))) {
-		sb1250_unmask_irq(0, irq);
+		sb1250_unmask_irq(sb1250_irq_owner[irq], irq);
 	}
 }
 
@@ -162,7 +245,12 @@
 		irq_desc[i].status = IRQ_DISABLED;
 		irq_desc[i].action = 0;
 		irq_desc[i].depth = 1;
-		irq_desc[i].handler = &sb1250_irq_type;
+		if (i < SB1250_NR_IRQS) {
+			irq_desc[i].handler = &sb1250_irq_type;
+			sb1250_irq_owner[i] = 0;
+		} else {
+			irq_desc[i].handler = &no_irq_type;
+		}
 	}
 }
 
@@ -172,12 +260,12 @@
 }
 
 static struct irqaction sb1250_dummy_action = {
-	handler: sb1250_dummy_handler,
-	flags:   0,
-	mask:    0,
-	name:    "sb1250-private",
-	next:    NULL,
-	dev_id:  0
+	.handler = sb1250_dummy_handler,
+	.flags   = 0,
+	.mask    = 0,
+	.name    = "sb1250-private",
+	.next    = NULL,
+	.dev_id  = 0
 };
 
 int sb1250_steal_irq(int irq)
@@ -186,7 +274,7 @@
 	unsigned long flags;
 	int retval = 0;
 
-	if (irq >= NR_IRQS)
+	if (irq >= SB1250_NR_IRQS)
 		return -EINVAL;
 
 	spin_lock_irqsave(&desc->lock,flags);
@@ -198,6 +286,7 @@
 		desc->depth = 0;
 	}
 	spin_unlock_irqrestore(&desc->lock,flags);
+	return 0;
 }
 
 /*
@@ -235,7 +324,7 @@
 		STATUSF_IP1 | STATUSF_IP0;
 
 	/* Default everything to IP2 */
-	for (i = 0; i < NR_IRQS; i++) {	/* was I0 */
+	for (i = 0; i < SB1250_NR_IRQS; i++) {	/* was I0 */
 		out64(IMR_IP2_VAL,
 		      KSEG1 + A_IMR_REGISTER(0,
 					     R_IMR_INTERRUPT_MAP_BASE) +
@@ -283,7 +372,7 @@
 	imask |= STATUSF_IP6;
 #endif
 	/* Enable necessary IPs, disable the rest */
-	change_cp0_status(ST0_IM, imask);
+	change_c0_status(ST0_IM, imask);
 	set_except_vector(0, sb1250_irq_handler);
 
 #ifdef CONFIG_REMOTE_DEBUG
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/irq_handler.S linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/irq_handler.S
--- linux-2.4.20/arch/mips/sibyte/sb1250/irq_handler.S	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/irq_handler.S	2003-01-21 23:11:38.000000000 -0600
@@ -100,7 +100,7 @@
 	/* Mailbox interrupt is routed to IP[3] */
 	andi	 t1, s0, CAUSEF_IP3
 	beqz	 t1, 2f
-         nop
+	 nop
 	jal	 sb1250_mailbox_interrupt
 	 move    a0, sp
 	j	ret_from_irq
@@ -127,8 +127,14 @@
 	/*
 	 * Default...we've hit an IP[2] interrupt, which means we've got to
 	 * check the 1250 interrupt registers to figure out what to do
+	 * Need to detect which CPU we're on, now that smp_affinity is supported.
 	 */
 	la	v0, KSEG1 + A_IMR_CPU0_BASE
+#ifdef CONFIG_SMP
+	lw	t1, TASK_PROCESSOR($28)
+	sll	t1, IMR_REGISTER_SPACING_SHIFT
+	addu	v0, t1
+#endif
 	ld	s0, R_IMR_INTERRUPT_STATUS_BASE(v0)	/* read IP[2] status */
 
 	beqz	s0, 4f		/* No interrupts.  Return */
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/lib_hssubr.h linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/lib_hssubr.h
--- linux-2.4.20/arch/mips/sibyte/sb1250/lib_hssubr.h	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/lib_hssubr.h	1969-12-31 18:00:00.000000000 -0600
@@ -1,81 +0,0 @@
-/*
- * Copyright (C) 2000, 2001 Broadcom Corporation
- * Copyright (C) 2002 Ralf Baechle
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- */
-#ifndef _LIB_HSSUBR_H
-#define _LIB_HSSUBR_H
-
-#include <linux/config.h>
-#include <asm/addrspace.h>
-
-typedef long hsaddr_t;
-
-#ifdef CONFIG_MIPS64
-
-static inline void hs_write8(hsaddr_t a, uint8_t b)
-{
-	*(volatile uint8_t *) a = PHYS_TO_XKSEG_UNCACHED(b);
-}
-
-static inline void hs_write16(hsaddr_t a, uint16_t b)
-{
-	*(volatile uint16_t *) a = PHYS_TO_XKSEG_UNCACHED(b);
-}
-
-static inline void hs_write32(hsaddr_t a, uint32_t b)
-{
-	*(volatile uint32_t *) a = PHYS_TO_XKSEG_UNCACHED(b);
-}
-
-static inline void hs_write64(hsaddr_t a, uint64_t b)
-{
-	*(volatile uint32_t *) a = PHYS_TO_XKSEG_UNCACHED(b);
-}
-
-static inline uint8_t hs_read8(hsaddr_t a)
-{
-	return *(volatile uint8_t *) a;
-}
-
-static inline uint16_t hs_read16(hsaddr_t a)
-{
-	return *(volatile uint16_t *) a;
-}
-
-static inline uint32_t hs_read32(hsaddr_t a)
-{
-	return *(volatile uint32_t *) a;
-}
-
-static inline uint64_t hs_read64(hsaddr_t a)
-{
-	return *(volatile uint64_t *) a;
-}
-
-#else	/* just CONFIG_MIPS32 */
-
-extern void hs_write8(hsaddr_t a, uint8_t b);
-extern void hs_write16(hsaddr_t a, uint16_t b);
-extern void hs_write32(hsaddr_t a, uint32_t b);
-extern void hs_write64(hsaddr_t a, uint64_t b);
-extern uint8_t hs_read8(hsaddr_t a);
-extern uint16_t hs_read16(hsaddr_t a);
-extern uint32_t hs_read32(hsaddr_t a);
-extern uint64_t hs_read64(hsaddr_t a);
-#endif
-
-#endif /* _LIB_HSSUBR_H */
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/lib_hssubr.S linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/lib_hssubr.S
--- linux-2.4.20/arch/mips/sibyte/sb1250/lib_hssubr.S	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/lib_hssubr.S	1969-12-31 18:00:00.000000000 -0600
@@ -1,198 +0,0 @@
-/*
- * Copyright (C) 2000, 2001 Broadcom Corporation
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- */
-#include <asm/asm.h>
-#include <asm/addrspace.h>
-#include <asm/mipsregs.h>
-#include <asm/regdef.h>
-
-		 .set mips64
-
-#define HAZARD SSNOP ; SSNOP ; SSNOP ; SSNOP ; SSNOP ; SSNOP ; SSNOP
-
-
-/*  *********************************************************************
-    *  hs_read8 - read 8-bit bytes
-    ********************************************************************* */
-
-
-LEAF(hs_read8)
-		mfc0	t2, CP0_STATUS
-		or	t1, t2, ST0_KX
-		mtc0	t1, CP0_STATUS
-		HAZARD
-
-		dli	v0, PHYS_TO_XKSEG_UNCACHED(0)
-		dsll	a0, a0, 32
-		dsrl	a0, a0, 32
-		or	a0, a0,v0
-		lb	v0, (a0)
-		and	v0, 0xFF
-
-		mtc0	t2, CP0_STATUS
-		HAZARD
-		j	ra
-END(hs_read8)
-
-/*  *********************************************************************
-    *  hs_read16 - read 16-bit shorts
-    ********************************************************************* */
-
-LEAF(hs_read16)
-		mfc0	t2, CP0_STATUS
-		or	t1, t2, ST0_KX
-		mtc0	t1, CP0_STATUS
-		HAZARD
-
-		dli	v0, PHYS_TO_XKSEG_UNCACHED(0)
-		dsll	a0, a0, 32
-		dsrl	a0, a0, 32
-		or	a0, a0, v0
-		lh	v0, (a0)
-		and	v0, 0xFFFF
-
-		mtc0	t2, CP0_STATUS
-		HAZARD
-		j	ra
-END(hs_read16)
-
-/*  *********************************************************************
-    *  hs_read32 - read 32-bit ints
-    ********************************************************************* */
-
-LEAF(hs_read32)
-		mfc0	t2, CP0_STATUS
-		or	t1, t2, ST0_KX
-		mtc0	t1, CP0_STATUS
-		HAZARD
-
-		dli	v0, PHYS_TO_XKSEG_UNCACHED(0)
-		dsll	a0, a0, 32
-		dsrl	a0, a0, 32
-		or	a0, a0, v0
-		lw	v0, (a0)
-		and	v0, 0xFFFFFFFF
-
-		mtc0	t2, CP0_STATUS
-		HAZARD
-		j	ra
-END(hs_read32)
-
-/*  *********************************************************************
-    *  hs_read64 - read 64-bit longs
-    ********************************************************************* */
-
-LEAF(hs_read64)
-		mfc0	t2, CP0_STATUS
-		or	t1, t2, ST0_KX
-		mtc0	t1, CP0_STATUS
-		HAZARD
-
-		dli	v0, PHYS_TO_XKSEG_UNCACHED(0)
-		dsll	a0, a0, 32
-		dsrl	a0, a0, 32
-		or	a0, a0, v0
-		ld	v0, (a0)
-
-		mtc0	t2, CP0_STATUS
-		HAZARD
-		j	ra
-END(hs_read64)
-
-/*  *********************************************************************
-    *  hs_write8 - write 8-bit bytes
-    ********************************************************************* */
-
-LEAF(hs_write8)
-		mfc0	t2, CP0_STATUS
-		or	t1, t2, ST0_KX
-		mtc0	t1, CP0_STATUS
-		HAZARD
-
-		dli	v0, PHYS_TO_XKSEG_UNCACHED(0)
-		dsll	a0, a0, 32
-		dsrl	a0, a0, 32
-		or	a0, a0, v0
-		sb	a1, (a0)
-
-		mtc0	t2, CP0_STATUS
-		HAZARD
-		j	ra
-END(hs_write8)
-
-/*  *********************************************************************
-    *  hs_write16 - write 16-bit shorts
-    ********************************************************************* */
-
-LEAF(hs_write16)
-		mfc0	t2, CP0_STATUS
-		or	t1, t2, ST0_KX
-		mtc0	t1, CP0_STATUS
-		HAZARD
-
-		dli	v0, PHYS_TO_XKSEG_UNCACHED(0)
-		dsll	a0, a0, 32
-		dsrl	a0, a0, 32
-		or	a0, a0, v0
-		sh	a1, (a0)
-
-		mtc0	t2, CP0_STATUS
-		HAZARD
-		j	ra
-END(hs_write16)
-
-/*  *********************************************************************
-    *  hs_write32 - write 32-bit longs
-    ********************************************************************* */
-
-LEAF(hs_write32)
-		mfc0	t2, CP0_STATUS
-		or	t1, t2, ST0_KX
-		mtc0	t1, CP0_STATUS
-		HAZARD
-
-		dli	v0, PHYS_TO_XKSEG_UNCACHED(0)
-		dsll	a0, a0, 32
-		dsrl	a0, a0, 32
-		or	a0, a0, v0
-		sw	a1, (a0)
-
-		mtc0	t2, CP0_STATUS
-		HAZARD
-		j	ra
-END(hs_write32)
-
-/*  *********************************************************************
-    *  hs_write64 - write 64-bit longs
-    ********************************************************************* */
-
-LEAF(hs_write64)
-		mfc0	t2, CP0_STATUS
-		or	t1, t2, ST0_KX
-		mtc0	t1, CP0_STATUS
-		HAZARD
-
-		dli	v0, PHYS_TO_XKSEG_UNCACHED(0)
-		dsll	a0, a0, 32
-		dsrl	a0, a0, 32
-		or	a0, a0, v0
-		sd	a1, (a0)
-
-		mtc0	t2, CP0_STATUS
-		HAZARD
-		j	ra
-END(hs_write64)
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/Makefile
--- linux-2.4.20/arch/mips/sibyte/sb1250/Makefile	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/Makefile	2003-02-07 16:00:22.000000000 -0600
@@ -4,10 +4,11 @@
 
 obj-y := setup.o irq.o irq_handler.o time.o
 
-obj-$(CONFIG_PCI)		+= pci.o
-obj-$(CONFIG_SMP)		+= smp.o
-obj-$(CONFIG_BCM1250_TBPROF)	+= bcm1250_tbprof.o
-obj-$(CONFIG_MIPS32)		+= lib_hssubr.o
-obj-$(CONFIG_SIBYTE_STANDALONE)	+= prom.o
+obj-$(CONFIG_PCI)			+= pci.o
+obj-$(CONFIG_BLK_DEV_IDE)		+= ide.o
+obj-$(CONFIG_SMP)			+= smp.o
+obj-$(CONFIG_SIBYTE_TBPROF)		+= bcm1250_tbprof.o
+obj-$(CONFIG_SIBYTE_STANDALONE)		+= prom.o
+obj-$(CONFIG_SIBYTE_BUS_WATCHER)	+= bus_watcher.o
 
 include $(TOPDIR)/Rules.make
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/pci.c linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/pci.c
--- linux-2.4.20/arch/mips/sibyte/sb1250/pci.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/pci.c	2003-02-06 15:34:14.000000000 -0600
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2001 Broadcom Corporation
+ * Copyright (C) 2001,2002 Broadcom Corporation
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -24,17 +24,10 @@
  * configuration space, and set up the translation for I/O
  * space accesses.
  *
- * To access configuration space, we call some assembly-level
- * stubs that flip the KX bit on and off in the status
- * register, and do XKSEG addressed memory accesses there.
- * It's slow (7 SSNOPs to guarantee that KX is set!) but
- * fortunately, config space accesses are rare.
- *
- * We could use the ioremap functionality for the confguration
- * space as well as I/O space, but I'm not sure of the
- * implications of setting aside 16MB of KSEG2 for something
- * that is used so rarely (how much space in the page tables?)
- *
+ * To access configuration space, we use ioremap.  In the 32-bit
+ * kernel, this consumes either 4 or 8 page table pages, and 16MB of
+ * kernel mapped memory.  Hopefully neither of these should be a huge
+ * problem.
  */
 #include <linux/types.h>
 #include <linux/pci.h>
@@ -48,56 +41,74 @@
 #include <asm/sibyte/sb1250_scd.h>
 #include <asm/io.h>
 
-#include "lib_hssubr.h"
-
 /*
- * This macro calculates the offset into config space where
- * a given bus, device/function, and offset live on the sb1250
+ * Macros for calculating offsets into config space given a device
+ * structure or dev/fun/reg
  */
-
 #define CFGOFFSET(bus,devfn,where) (((bus)<<16)+((devfn)<<8)+(where))
+#define CFGADDR(dev,where)         CFGOFFSET((dev)->bus->number,(dev)->devfn,where)
 
+static void *cfg_space;
+
+#define PCI_BUS_ENABLED	1
+#define LDT_BUS_ENABLED	2
+#define PCI_DEVICE_MODE	4
+
+static int sb1250_bus_status = 0;
+
+#define PCI_BRIDGE_DEVICE  0
+#define LDT_BRIDGE_DEVICE  1
+
+#ifdef CONFIG_SIBYTE_HAS_LDT
 /*
- * Using the above offset, this macro calcuates the physical address in the
- * config space.
+ * HT's level-sensitive interrupts require EOI, which is generated
+ * through a 4MB memory-mapped region
  */
-#define CFGADDR(dev,where) (A_PHYS_LDTPCI_CFG_MATCH_BITS + \
-			    CFGOFFSET(dev->bus->number,dev->devfn,where))
+unsigned long ldt_eoi_space;
+#endif
 
 /*
  * Read/write 32-bit values in config space.
  */
 static inline u32 READCFG32(u32 addr)
 {
-	hs_read32(addr & ~3);
+	return *(u32 *)(cfg_space + (addr&~3));
 }
 
 static inline void WRITECFG32(u32 addr, u32 data)
 {
-	return hs_write32(addr & ~3,(data));
+	*(u32 *)(cfg_space + (addr & ~3)) = data;
 }
 
 /*
- * This variable is the KSEG2 (kernel virtual) mapping of the ISA/PCI I/O
- * space area.  We map 64K here and the offsets from this address get treated
- * with "match bytes" policy to make everything look little-endian.  So, you
- * need to also set CONFIG_SWAP_IO_SPACE, but this is the combination that
- * works correctly with most of Linux's drivers.
+ * Some checks before doing config cycles:
+ * In PCI Device Mode, hide everything on bus 0 except the LDT host
+ * bridge.  Otherwise, access is controlled by bridge MasterEn bits.
  */
+static int
+sb1250_pci_can_access(struct pci_dev *dev)
+{
+	u32 devno;
 
-#define PCI_BUS_ENABLED	1
-#define LDT_BUS_ENABLED	2
-
-static int sb1250_bus_status = 0;
-
-#define MATCH_BITS	0x20000000	/* really belongs in an include file */
+	if (!(sb1250_bus_status & (PCI_BUS_ENABLED | PCI_DEVICE_MODE)))
+		return 0;
 
-#define LDT_BRIDGE_START ((A_PCI_TYPE01_HEADER|MATCH_BITS)+0x00)
-#define LDT_BRIDGE_END   ((A_PCI_TYPE01_HEADER|MATCH_BITS)+0x20)
+	if (dev->bus->number == 0) {
+		devno = PCI_SLOT(dev->devfn);
+		if (devno == LDT_BRIDGE_DEVICE)
+		        return (sb1250_bus_status & LDT_BUS_ENABLED) != 0;
+ 		else if (sb1250_bus_status & PCI_DEVICE_MODE)
+			return 0;
+		else
+			return 1;
+	} else
+		return 1;
+}
 
 /*
  * Read/write access functions for various sizes of values
- * in config space.
+ * in config space.  Return all 1's for disallowed accesses
+ * for a kludgy but adequate simulation of master aborts.
  */
 
 static int
@@ -106,23 +117,16 @@
 	u32 data = 0;
 	u32 cfgaddr = CFGADDR(dev, where);
 
-	data = READCFG32(cfgaddr);
-
-	/*
-	 * If the LDT was not configured, make it look like the bridge
-	 * header is not there.
-	 */
-	if (!(sb1250_bus_status & LDT_BUS_ENABLED) &&
-	    (cfgaddr >= LDT_BRIDGE_START) && (cfgaddr < LDT_BRIDGE_END)) {
+	if (sb1250_pci_can_access(dev))
+		data = READCFG32(cfgaddr);
+	else
 		data = 0xFFFFFFFF;
-	}
 
 	*val = (data >> ((where & 3) << 3)) & 0xff;
 
 	return PCIBIOS_SUCCESSFUL;
 }
 
-
 static int
 sb1250_pci_read_config_word(struct pci_dev *dev, int where, u16 * val)
 {
@@ -132,16 +136,10 @@
 	if (where & 1)
 		return PCIBIOS_BAD_REGISTER_NUMBER;
 
-	data = READCFG32(cfgaddr);
-
-	/*
-	 * If the LDT was not configured, make it look like the bridge
-	 * header is not there.
-	 */
-	if (!(sb1250_bus_status & LDT_BUS_ENABLED) &&
-	    (cfgaddr >= LDT_BRIDGE_START) && (cfgaddr < LDT_BRIDGE_END)) {
+	if (sb1250_pci_can_access(dev))
+		data = READCFG32(cfgaddr);
+	else
 		data = 0xFFFFFFFF;
-	}
 
 	*val = (data >> ((where & 3) << 3)) & 0xffff;
 
@@ -157,16 +155,10 @@
 	if (where & 3)
 		return PCIBIOS_BAD_REGISTER_NUMBER;
 
-	data = READCFG32(cfgaddr);
-
-	/*
-	 * If the LDT was not configured, make it look like the bridge
-	 * header is not there.
-	 */
-	if (!(sb1250_bus_status & LDT_BUS_ENABLED) &&
-	    (cfgaddr >= LDT_BRIDGE_START) && (cfgaddr < LDT_BRIDGE_END)) {
+	if (sb1250_pci_can_access(dev))
+		data = READCFG32(cfgaddr);
+	else
 		data = 0xFFFFFFFF;
-	}
 
 	*val = data;
 
@@ -180,12 +172,14 @@
 	u32 data = 0;
 	u32 cfgaddr = CFGADDR(dev, where);
 
-	data = READCFG32(cfgaddr);
+	if (sb1250_pci_can_access(dev)) {
+		data = READCFG32(cfgaddr);
 
-	data = (data & ~(0xff << ((where & 3) << 3))) |
-	    (val << ((where & 3) << 3));
+		data = (data & ~(0xff << ((where & 3) << 3))) |
+		    (val << ((where & 3) << 3));
 
-	WRITECFG32(cfgaddr, data);
+		WRITECFG32(cfgaddr, data);
+	}
 
 	return PCIBIOS_SUCCESSFUL;
 }
@@ -199,12 +193,14 @@
 	if (where & 1)
 		return PCIBIOS_BAD_REGISTER_NUMBER;
 
-	data = READCFG32(cfgaddr);
+	if (sb1250_pci_can_access(dev)) {
+		data = READCFG32(cfgaddr);
 
-	data = (data & ~(0xffff << ((where & 3) << 3))) |
-	    (val << ((where & 3) << 3));
+		data = (data & ~(0xffff << ((where & 3) << 3))) |
+		    (val << ((where & 3) << 3));
 
-	WRITECFG32(cfgaddr, data);
+		WRITECFG32(cfgaddr, data);
+	}
 
 	return PCIBIOS_SUCCESSFUL;
 }
@@ -217,7 +213,8 @@
 	if (where & 3)
 		return PCIBIOS_BAD_REGISTER_NUMBER;
 
-	WRITECFG32(cfgaddr, val);
+	if (sb1250_pci_can_access(dev))
+		WRITECFG32(cfgaddr, val);
 
 	return PCIBIOS_SUCCESSFUL;
 }
@@ -237,48 +234,60 @@
 	uint32_t cmdreg;
 	uint64_t reg;
 
+	cfg_space = ioremap(A_PHYS_LDTPCI_CFG_MATCH_BITS, 16*1024*1024);
+
 	/*
 	 * See if the PCI bus has been configured by the firmware.
 	 */
-
-	cmdreg = READCFG32((A_PCI_TYPE00_HEADER | MATCH_BITS) +
-			   PCI_COMMAND);
-
-	if (!(cmdreg & PCI_COMMAND_MASTER)) {
-		printk
-		    ("PCI: Skipping PCI probe.  Bus is not initialized.\n");
-		return;
-	}
-
 	reg = *((volatile uint64_t *) KSEG1ADDR(A_SCD_SYSTEM_CFG));
 	if (!(reg & M_SYS_PCI_HOST)) {
-		printk("PCI: Skipping PCI probe.  Processor is in PCI device mode.\n");
-		return;
+		sb1250_bus_status |= PCI_DEVICE_MODE;
+	} else {
+		cmdreg = READCFG32(CFGOFFSET(0, PCI_DEVFN(PCI_BRIDGE_DEVICE, 0),
+					     PCI_COMMAND));
+		if (!(cmdreg & PCI_COMMAND_MASTER)) {
+			printk
+			    ("PCI: Skipping PCI probe.  Bus is not initialized.\n");
+			iounmap(cfg_space);
+			return;
+		}
+		sb1250_bus_status |= PCI_BUS_ENABLED;
 	}
 
-	sb1250_bus_status |= PCI_BUS_ENABLED;
-
 	/*
-	 * Establish a mapping from KSEG2 (kernel virtual) to PCI I/O space
-	 * Use "match bytes", even though this exposes endianness.
-	 * big-endian Linuxes will have CONFIG_SWAP_IO_SPACE set.
+	 * Establish mappings in KSEG2 (kernel virtual) to PCI I/O
+	 * space.  Use "match bytes" policy to make everything look
+	 * little-endian.  So, you need to also set
+	 * CONFIG_SWAP_IO_SPACE, but this is the combination that
+	 * works correctly with most of Linux's drivers.
+	 * XXX ehs: Should this happen in PCI Device mode?
 	 */
 
-	set_io_port_base(ioremap(A_PHYS_LDTPCI_IO_MATCH_BYTES, 65536));
+	set_io_port_base((unsigned long)
+		ioremap(A_PHYS_LDTPCI_IO_MATCH_BYTES, 65536));
 	isa_slot_offset = (unsigned long)
 		ioremap(A_PHYS_LDTPCI_IO_MATCH_BYTES_32, 1024*1024);
 
+#ifdef CONFIG_SIBYTE_HAS_LDT
 	/*
 	 * Also check the LDT bridge's enable, just in case we didn't
 	 * initialize that one.
 	 */
 
-	cmdreg = READCFG32((A_PCI_TYPE01_HEADER | MATCH_BITS) +
-			   PCI_COMMAND);
-
+	cmdreg = READCFG32(CFGOFFSET(0, PCI_DEVFN(LDT_BRIDGE_DEVICE, 0),
+				     PCI_COMMAND));
 	if (cmdreg & PCI_COMMAND_MASTER) {
 		sb1250_bus_status |= LDT_BUS_ENABLED;
+
+		/*
+		 * Need bits 23:16 to convey vector number.  Note that
+		 * this consumes 4MB of kernel-mapped memory
+		 * (Kseg2/Kseg3) for 32-bit kernel.
+		 */
+		ldt_eoi_space = (unsigned long)
+			ioremap(A_PHYS_LDT_SPECIAL_MATCH_BYTES, 4*1024*1024);
 	}
+#endif
 
 	/* Probe for PCI hardware */
 
@@ -290,7 +299,7 @@
 #endif
 }
 
-int pcibios_enable_device(struct pci_dev *dev)
+int pcibios_enable_device(struct pci_dev *dev, int mask)
 {
 	/* Not needed, since we enable all devices at startup.  */
 	return 0;
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/setup.c
--- linux-2.4.20/arch/mips/sibyte/sb1250/setup.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/setup.c	2003-01-21 23:11:38.000000000 -0600
@@ -16,39 +16,146 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  */
 
+#include <linux/kernel.h>
+#include <linux/reboot.h>
+#include <linux/string.h>
+
+#include <asm/bootinfo.h>
+#include <asm/mipsregs.h>
+#include <asm/io.h>
 #include <asm/sibyte/sb1250.h>
 #include <asm/sibyte/sb1250_regs.h>
 #include <asm/sibyte/sb1250_scd.h>
 #include <asm/sibyte/64bit.h>
 
+extern void prom_printf(char *fmt, ...);
+
 /* Setup code likely to be common to all BCM1250 platforms */
 
-unsigned int sb1250_pass;
+static inline const char *soc_type_string(unsigned int soc_type)
+{
+	switch (soc_type) {
+	case K_SYS_SOC_TYPE_BCM1250:
+		return "BCM1250";
+	case K_SYS_SOC_TYPE_BCM1120:
+		return "BCM1120";
+	case K_SYS_SOC_TYPE_BCM1125:
+		return "BCM1125";
+	case K_SYS_SOC_TYPE_BCM1125H:
+		return "BCM1125H";
+	default:
+		return "unknown SOC";
+	}
+}
+
+static inline const char *soc_pass_string(unsigned int soc_type, unsigned int soc_pass)
+{
+	switch (soc_type) {
+	case K_SYS_SOC_TYPE_BCM1250:
+		switch (soc_pass) {
+		case K_SYS_REVISION_BCM1250_PASS1:
+			return "Pass 1";
+		case 11:
+			return "A8/A10";
+		case K_SYS_REVISION_BCM1250_PASS2_2:
+			return "B1";
+		default:
+			if (soc_pass < K_SYS_REVISION_BCM1250_PASS2_2)
+				return "pre-A8";
+			else
+				return "unknown rev";
+		}
+	case K_SYS_SOC_TYPE_BCM1120:
+	case K_SYS_SOC_TYPE_BCM1125:
+	case K_SYS_SOC_TYPE_BCM1125H:
+		switch (soc_pass) {
+		case K_SYS_REVISION_BCM112x_A1:
+			return "A1";
+		case K_SYS_REVISION_BCM112x_A2:
+			return "A2";
+		default:
+			return "unknown rev";
+		}
+	default:
+		return "";
+	}
+}
+
+unsigned int sb1_pass;
+unsigned int soc_pass;
+unsigned int soc_type;
 
 void sb1250_setup(void)
 {
+	uint64_t sys_rev;
 	int bad_config = 0;
+	unsigned int soc_war_pass;
 
-	sb1250_pass = G_SYS_REVISION(in64(IO_SPACE_BASE | A_SCD_SYSTEM_REVISION));
-	/* sb1250_pass is more specific than "1", "2" etc.  There are
-           many revision numbers corresponding to "Pass 2". */
-	switch(sb1250_pass) {
-	case 1:
+	sys_rev = in64(IO_SPACE_BASE | A_SCD_SYSTEM_REVISION);
+	soc_type = SYS_SOC_TYPE(sys_rev);
+	soc_pass = G_SYS_REVISION(sys_rev);
+	soc_war_pass = soc_pass;
+
+	switch (soc_type) {
+	case K_SYS_SOC_TYPE_BCM1250:
+		/* Combine pass2 variants. */
+		if ((soc_pass > K_SYS_REVISION_BCM1250_PASS1) &&
+		    (soc_pass < K_SYS_REVISION_BCM1250_PASS2_2))
+			soc_war_pass = K_SYS_REVISION_BCM1250_PASS2;
+		break;
+
+	case K_SYS_SOC_TYPE_BCM1120:
+	case K_SYS_SOC_TYPE_BCM1125:
+	case K_SYS_SOC_TYPE_BCM1125H:
+		/* First silicon seems to not have the revid set */
+		if (soc_pass == 0)
+			soc_war_pass = K_SYS_REVISION_BCM112x_A1;
+		break;
+	}
+	sb1_pass = read_c0_prid() & 0xff;
+
+	/* XXXKW translate the soc_pass into "customer" terminology */
+	prom_printf("SiByte %s %s (SB1 rev %d)\n",
+		    soc_type_string(soc_type),
+		    soc_pass_string(soc_type, soc_pass),
+		    sb1_pass);
+	prom_printf("Board type: %s\n", get_system_type());
+
+	switch(soc_war_pass) {
+	case K_SYS_REVISION_BCM1250_PASS1:
 #ifndef CONFIG_SB1_PASS_1_WORKAROUNDS
-		printk("@@@@ This is a pass 1 board, and the kernel doesn't have the proper workarounds compiled in. @@@@");
+		prom_printf("@@@@ This is a BCM1250 A0-A2 (Pass 1) board, and the kernel doesn't have the proper workarounds compiled in. @@@@\n");
 		bad_config = 1;
 #endif
 		break;
-	default:
-#if defined(CONFIG_CPU_HAS_PREFETCH) || !defined(CONFIG_SB1_PASS_2_WORKAROUNDS)
-		printk("@@@@ This is a pass 2 board, and the kernel doesn't have the proper workarounds compiled in. @@@@");
-		printk("@@@@ Prefetches are enabled in this kernel, but are buggy on this board.  @@@@");
+	case K_SYS_REVISION_BCM1250_PASS2:
+		/* Pass 2 - easiest as default for now - so many numbers */
+#ifndef CONFIG_SB1_PASS_2_WORKAROUNDS
+		prom_printf("@@@@ This is a BCM1250 A3-A10 board, and the kernel doesn't have the proper workarounds compiled in. @@@@\n");
+		bad_config = 1;
+#endif
+#ifdef CONFIG_CPU_HAS_PREFETCH
+		prom_printf("@@@@ Prefetches may be enabled in this kernel, but are buggy on this board.  @@@@\n");
 		bad_config = 1;
 #endif
 		break;
+	case K_SYS_REVISION_BCM1250_PASS2_2:
+#ifndef CONFIG_SB1_PASS_2_WORKAROUNDS
+		prom_printf("@@@@ This is a BCM1250 B1. board, and the kernel doesn't have the proper workarounds compiled in. @@@@\n");
+		bad_config = 1;
+#endif
+		break;
+	case K_SYS_REVISION_BCM112x_A1:
+	case K_SYS_REVISION_BCM112x_A2:
+		/* No workarounds yet */
+		break;
+	default:
+		prom_printf("@@@ This is an unknown SOC pass. @@@@\n");
+		bad_config = 1;
+		break;
 	}
-	/* XXXKW this is too early for panic/printk to actually do much! */
 	if (bad_config) {
-		panic("Invalid configuration for this pass.");
+		prom_printf("Invalid configuration for this chip.\n");
+		machine_restart(NULL);
 	}
 }
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/smp.c linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/smp.c
--- linux-2.4.20/arch/mips/sibyte/sb1250/smp.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/smp.c	2003-01-21 23:11:38.000000000 -0600
@@ -108,6 +108,9 @@
 	CPUMASK_SETB(cpu_online_map, 0);
 	atomic_set(&cpus_booted, 1);  /* Master CPU is already booted... */
 	init_idle();
+	__cpu_number_map[0] = 0;
+	__cpu_logical_map[0] = 0;
+	/* smp_tune_scheduling();  XXX */
 
 	/*
 	 * This loop attempts to compensate for "holes" in the CPU
@@ -128,9 +131,6 @@
 		p->processor = i;
 		p->cpus_runnable = 1 << i; /* we schedule the first task manually */
 
-		/* Attach to the address space of init_task. */
-		atomic_inc(&init_mm.mm_count);
-		p->active_mm = &init_mm;
 		init_tasks[i] = p;
 
 		del_from_runqueue(p);
@@ -144,6 +144,8 @@
 					    (unsigned long)p);
 		} while (!retval && (cur_cpu < NR_CPUS));
 		if (retval) {
+			__cpu_number_map[cur_cpu] = i;
+			__cpu_logical_map[i] = cur_cpu;
 			i++;
 		} else {
 			panic("CPU discovery disaster");
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/time.c linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/time.c
--- linux-2.4.20/arch/mips/sibyte/sb1250/time.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/time.c	2003-01-21 23:11:38.000000000 -0600
@@ -52,6 +52,7 @@
 void sb1250_time_init(void)
 {
 	int cpu = smp_processor_id();
+	int irq = K_INT_TIMER_0+cpu;
 
 	/* Only have 4 general purpose timers */
 	if (cpu > 3) {
@@ -63,11 +64,11 @@
 		do_gettimeoffset = sb1250_gettimeoffset;
 	}
 
-	sb1250_mask_irq(cpu, K_INT_TIMER_0 + cpu);
+	sb1250_mask_irq(cpu, irq);
 
 	/* Map the timer interrupt to ip[4] of this cpu */
 	out64(IMR_IP4_VAL, KSEG1 + A_IMR_REGISTER(cpu, R_IMR_INTERRUPT_MAP_BASE)
-	      + ((K_INT_TIMER_0 + cpu)<<3));
+	      + (irq<<3));
 
 	/* the general purpose timer ticks at 1 Mhz independent if the rest of the system */
 	/* Disable the timer and set up the count */
@@ -84,8 +85,8 @@
 	out64(M_SCD_TIMER_ENABLE|M_SCD_TIMER_MODE_CONTINUOUS,
 	      KSEG1 + A_SCD_TIMER_REGISTER(cpu, R_SCD_TIMER_CFG));
 
-	sb1250_unmask_irq(cpu, K_INT_TIMER_0 + cpu);
-	sb1250_steal_irq(K_INT_TIMER_0 + cpu);
+	sb1250_unmask_irq(cpu, irq);
+	sb1250_steal_irq(irq);
 	/*
 	 * This interrupt is "special" in that it doesn't use the request_irq
 	 * way to hook the irq line.  The timer interrupt is initialized early
@@ -99,8 +100,9 @@
 void sb1250_timer_interrupt(struct pt_regs *regs)
 {
 	int cpu = smp_processor_id();
+	int irq = K_INT_TIMER_0+cpu;
 
-	kstat.irqs[cpu][K_INT_TIMER_0+cpu]++;
+	kstat.irqs[cpu][irq]++;
 	/* Reset the timer */
 	out64(M_SCD_TIMER_ENABLE|M_SCD_TIMER_MODE_CONTINUOUS,
 	      KSEG1 + A_SCD_TIMER_REGISTER(cpu, R_SCD_TIMER_CFG));
@@ -109,13 +111,13 @@
 	 * CPU 0 handles the global timer interrupt job
 	 */
 	if (cpu == 0) {
-		ll_timer_interrupt(0, regs);
+		ll_timer_interrupt(irq, regs);
 	}
 
 	/*
 	 * every CPU should do profiling and process accouting
 	 */
-	ll_local_timer_interrupt(0, regs);
+	ll_local_timer_interrupt(irq, regs);
 }
 
 /*
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/swarm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/CVS/Entries
--- linux-2.4.20/arch/mips/sibyte/swarm/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/CVS/Entries	2005-01-06 23:00:11.000000000 -0600
@@ -0,0 +1,8 @@
+/.cvsignore/1.1/Thu Nov  8 01:54:47 2001/-ko/Tlinux_2_4_20
+/Makefile/1.3.2.5/Fri Feb  7 21:06:07 2003/-ko/Tlinux_2_4_20
+/cmdline.c/1.2.2.2/Mon Aug  5 23:53:36 2002/-ko/Tlinux_2_4_20
+/dbg_io.c/1.1.2.1/Thu Apr 11 22:10:54 2002/-ko/Tlinux_2_4_20
+/rtc_m41t81.c/1.1.2.1/Fri Feb  7 18:02:30 2003/-ko/Tlinux_2_4_20
+/rtc_xicor1241.c/1.1.2.3/Fri Feb  7 18:02:30 2003/-ko/Tlinux_2_4_20
+/setup.c/1.3.2.18/Fri Feb  7 21:06:07 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/swarm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/CVS/Repository
--- linux-2.4.20/arch/mips/sibyte/swarm/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/CVS/Repository	2005-01-06 23:00:10.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/sibyte/swarm
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/swarm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/CVS/Root
--- linux-2.4.20/arch/mips/sibyte/swarm/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/CVS/Root	2005-01-06 23:00:10.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/swarm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/CVS/Tag
--- linux-2.4.20/arch/mips/sibyte/swarm/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/CVS/Tag	2005-01-06 23:00:11.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/swarm/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/.cvsignore
--- linux-2.4.20/arch/mips/sibyte/swarm/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/.cvsignore	2001-11-07 19:54:47.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/swarm/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/Makefile
--- linux-2.4.20/arch/mips/sibyte/swarm/Makefile	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/Makefile	2003-02-07 15:06:07.000000000 -0600
@@ -2,27 +2,12 @@
 
 all: sbswarm.a
 
-OBJS-y                   = setup.o cmdline.o rtc_xicor1241.o
+OBJS-y                   = setup.o cmdline.o rtc_xicor1241.o rtc_m41t81.o
 
-OBJS-$(CONFIG_L3DEMO)   += procl3switch.o l3procbootstrap.o l3proc.o
 OBJS-$(CONFIG_REMOTE_DEBUG) += dbg_io.o
 
-#XMITTER=1
-
-ifdef XMITTER
-l3proc.bin: xmitter
-	ln xmitter l3proc.bin
-else
-l3proc.bin: l3proc
-	ln l3proc l3proc.bin
-endif
-
-l3proc.o: l3proc.bin
-	mips-linux-ld -Tl3proc.lds -bbinary -o l3proc.o l3proc.bin
-
 sbswarm.a: $(OBJS-y)
 	$(AR) rcs sbswarm.a $^
-	rm -f l3proc.o l3proc.bin
 
 include $(TOPDIR)/Rules.make
 
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/swarm/rtc_m41t81.c linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/rtc_m41t81.c
--- linux-2.4.20/arch/mips/sibyte/swarm/rtc_m41t81.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/rtc_m41t81.c	2003-02-07 12:02:30.000000000 -0600
@@ -0,0 +1,225 @@
+/*
+ * Copyright (C) 2000, 2001 Broadcom Corporation
+ *
+ * Copyright (C) 2002 MontaVista Software Inc.
+ * Author: jsun@mvista.com or jsun@junsun.net
+ *
+ * This program is free software; you can redistribute	it and/or modify it
+ * under  the terms of	the GNU General	 Public License as published by the
+ * Free Software Foundation;  either version 2 of the  License, or (at your
+ * option) any later version.
+ *
+ */
+
+#include <linux/types.h>
+#include <linux/time.h>
+
+#include <asm/time.h>
+#include <asm/addrspace.h>
+
+#include <asm/sibyte/64bit.h>
+#include <asm/sibyte/sb1250.h>
+#include <asm/sibyte/sb1250_regs.h>
+#include <asm/sibyte/sb1250_smbus.h>
+
+
+/* M41T81 definitions */
+
+/*
+ * Register bits
+ */
+
+#define M41T81REG_SC_ST		0x80		/* stop bit */
+#define M41T81REG_HR_CB		0x40		/* century bit */
+#define M41T81REG_HR_CEB	0x80		/* century enable bit */
+#define M41T81REG_CTL_S		0x20		/* sign bit */
+#define M41T81REG_CTL_FT	0x40		/* frequency test bit */
+#define M41T81REG_CTL_OUT	0x80		/* output level */
+#define M41T81REG_WD_RB0	0x01		/* watchdog resolution bit 0 */
+#define M41T81REG_WD_RB1	0x02		/* watchdog resolution bit 1 */
+#define M41T81REG_WD_BMB0	0x04		/* watchdog multiplier bit 0 */
+#define M41T81REG_WD_BMB1	0x08		/* watchdog multiplier bit 1 */
+#define M41T81REG_WD_BMB2	0x10		/* watchdog multiplier bit 2 */
+#define M41T81REG_WD_BMB3	0x20		/* watchdog multiplier bit 3 */
+#define M41T81REG_WD_BMB4	0x40		/* watchdog multiplier bit 4 */
+#define M41T81REG_AMO_ABE	0x20		/* alarm in "battery back-up mode" enable bit */
+#define M41T81REG_AMO_SQWE	0x40		/* square wave enable */
+#define M41T81REG_AMO_AFE	0x80		/* alarm flag enable flag */
+#define M41T81REG_ADT_RPT5	0x40		/* alarm repeat mode bit 5 */
+#define M41T81REG_ADT_RPT4	0x80		/* alarm repeat mode bit 4 */
+#define M41T81REG_AHR_RPT3	0x80		/* alarm repeat mode bit 3 */
+#define M41T81REG_AHR_HT	0x40		/* halt update bit */
+#define M41T81REG_AMN_RPT2	0x80		/* alarm repeat mode bit 2 */
+#define M41T81REG_ASC_RPT1	0x80		/* alarm repeat mode bit 1 */
+#define M41T81REG_FLG_AF	0x40		/* alarm flag (read only) */
+#define M41T81REG_FLG_WDF	0x80		/* watchdog flag (read only) */
+#define M41T81REG_SQW_RS0	0x10		/* sqw frequency bit 0 */
+#define M41T81REG_SQW_RS1	0x20		/* sqw frequency bit 1 */
+#define M41T81REG_SQW_RS2	0x40		/* sqw frequency bit 2 */
+#define M41T81REG_SQW_RS3	0x80		/* sqw frequency bit 3 */
+
+
+/*
+ * Register numbers
+ */
+
+#define M41T81REG_TSC	0x00		/* tenths/hundredths of second */
+#define M41T81REG_SC	0x01		/* seconds */
+#define M41T81REG_MN	0x02		/* minute */
+#define M41T81REG_HR	0x03		/* hour/century */
+#define M41T81REG_DY	0x04		/* day of week */
+#define M41T81REG_DT	0x05		/* date of month */
+#define M41T81REG_MO	0x06		/* month */
+#define M41T81REG_YR	0x07		/* year */
+#define M41T81REG_CTL	0x08		/* control */
+#define M41T81REG_WD	0x09		/* watchdog */
+#define M41T81REG_AMO	0x0A		/* alarm: month */
+#define M41T81REG_ADT	0x0B		/* alarm: date */
+#define M41T81REG_AHR	0x0C		/* alarm: hour */
+#define M41T81REG_AMN	0x0D		/* alarm: minute */
+#define M41T81REG_ASC	0x0E		/* alarm: second */
+#define M41T81REG_FLG	0x0F		/* flags */
+#define M41T81REG_SQW	0x13		/* square wave register */
+
+#define M41T81_CCR_ADDRESS	0x68
+#define SMB_CSR(reg) (KSEG1 | A_SMB_REGISTER(1, reg))
+
+static int m41t81_read(uint8_t addr)
+{
+	while (in64(SMB_CSR(R_SMB_STATUS)) & M_SMB_BUSY)
+		;
+
+	out64(addr & 0xff, SMB_CSR(R_SMB_CMD));
+	out64((V_SMB_ADDR(M41T81_CCR_ADDRESS) | V_SMB_TT_WR1BYTE), SMB_CSR(R_SMB_START));
+
+	while (in64(SMB_CSR(R_SMB_STATUS)) & M_SMB_BUSY)
+		;
+
+	out64((V_SMB_ADDR(M41T81_CCR_ADDRESS) | V_SMB_TT_RD1BYTE), SMB_CSR(R_SMB_START));
+
+	while (in64(SMB_CSR(R_SMB_STATUS)) & M_SMB_BUSY)
+		;
+
+	if (in64(SMB_CSR(R_SMB_STATUS)) & M_SMB_ERROR) {
+		/* Clear error bit by writing a 1 */
+		out64(M_SMB_ERROR, SMB_CSR(R_SMB_STATUS));
+		return -1;
+	}
+
+	return (in64(SMB_CSR(R_SMB_DATA)) & 0xff);
+}
+
+static int m41t81_write(uint8_t addr, int b)
+{
+	while (in64(SMB_CSR(R_SMB_STATUS)) & M_SMB_BUSY)
+		;
+
+	out64((addr & 0xFF), SMB_CSR(R_SMB_CMD));
+	out64((b & 0xff), SMB_CSR(R_SMB_DATA));
+	out64(V_SMB_ADDR(M41T81_CCR_ADDRESS) | V_SMB_TT_WR2BYTE,
+	      SMB_CSR(R_SMB_START));
+
+	while (in64(SMB_CSR(R_SMB_STATUS)) & M_SMB_BUSY)
+		;
+
+	if (in64(SMB_CSR(R_SMB_STATUS)) & M_SMB_ERROR) {
+		/* Clear error bit by writing a 1 */
+		out64(M_SMB_ERROR, SMB_CSR(R_SMB_STATUS));
+		return -1;
+	} 
+
+	/* read the same byte again to make sure it is written */
+	out64(V_SMB_ADDR(M41T81_CCR_ADDRESS) | V_SMB_TT_RD1BYTE,
+	      SMB_CSR(R_SMB_START));
+
+	while (in64(SMB_CSR(R_SMB_STATUS)) & M_SMB_BUSY)
+		;
+	
+	return 0;
+}
+
+#define BCD_TO_BIN(val) ((val)=((val)&15) + ((val)>>4)*10)
+#define BIN_TO_BCD(val) ((val)=(((val)/10)<<4) + (val)%10)
+
+int m41t81_set_time(unsigned long t)
+{
+	struct rtc_time tm;
+
+	to_tm(t, &tm);
+
+	/*
+	 * Note the write order matters as it ensures the correctness.
+	 * When we write sec, 10th sec is clear.  It is reasonable to 
+	 * believe we should finish writing min within a second.
+	 */
+
+	BIN_TO_BCD(tm.tm_sec);
+	m41t81_write(M41T81REG_SC, tm.tm_sec);
+	
+	BIN_TO_BCD(tm.tm_min);
+	m41t81_write(M41T81REG_MN, tm.tm_min);
+
+	BIN_TO_BCD(tm.tm_hour);
+	tm.tm_hour = (tm.tm_hour & 0x3f) | (m41t81_read(M41T81REG_HR) & 0xc0);
+	m41t81_write(M41T81REG_HR, tm.tm_hour);
+
+	/* tm_wday starts from 0 to 6 */
+	if (tm.tm_wday == 0) tm.tm_wday = 7;
+	BIN_TO_BCD(tm.tm_wday);
+	m41t81_write(M41T81REG_DY, tm.tm_wday);
+
+	BIN_TO_BCD(tm.tm_mday);
+	m41t81_write(M41T81REG_DT, tm.tm_mday);
+
+	/* tm_mon starts from 0, *ick* */
+	tm.tm_mon ++;
+	BIN_TO_BCD(tm.tm_mon);
+	m41t81_write(M41T81REG_MO, tm.tm_mon);
+
+	/* we don't do century, everything is beyond 2000 */
+	tm.tm_year %= 100;
+	BIN_TO_BCD(tm.tm_year);
+	m41t81_write(M41T81REG_YR, tm.tm_year);
+
+	return 0;
+}
+
+unsigned long m41t81_get_time(void)
+{
+	unsigned int year, mon, day, hour, min, sec;
+
+	/* 
+	 * min is valid if two reads of sec are the same.
+	 */
+	for (;;) {
+		sec = m41t81_read(M41T81REG_SC);
+		min = m41t81_read(M41T81REG_MN);
+		if (sec == m41t81_read(M41T81REG_SC)) break;
+	}
+	hour = m41t81_read(M41T81REG_HR) & 0x3f;
+	day = m41t81_read(M41T81REG_DT);
+	mon = m41t81_read(M41T81REG_MO);
+	year = m41t81_read(M41T81REG_YR);
+
+	BCD_TO_BIN(sec);
+	BCD_TO_BIN(min);
+	BCD_TO_BIN(hour);
+	BCD_TO_BIN(day);
+	BCD_TO_BIN(mon);
+	BCD_TO_BIN(year);
+
+	year += 2000;
+
+	return mktime(year, mon, day, hour, min, sec);
+}
+
+int m41t81_probe(void)
+{
+	unsigned int tmp;
+
+	/* enable chip if it is not enabled yet */
+	tmp = m41t81_read(M41T81REG_SC);
+	m41t81_write(M41T81REG_SC, tmp & 0x7f);
+
+	return (m41t81_read(M41T81REG_SC) != -1);
+}
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/swarm/rtc_xicor1241.c linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/rtc_xicor1241.c
--- linux-2.4.20/arch/mips/sibyte/swarm/rtc_xicor1241.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/rtc_xicor1241.c	2003-02-07 12:02:30.000000000 -0600
@@ -181,15 +181,14 @@
 			hour = (hour & 0xf) + 0x12;
 	}
 
-	BCD_TO_BIN(sec);
-	BCD_TO_BIN(min);
-	BCD_TO_BIN(hour);
-
 	day = xicor_read(X1241REG_DT);
 	mon = xicor_read(X1241REG_MO);
 	year = xicor_read(X1241REG_YR);
 	y2k = xicor_read(X1241REG_Y2K);
 
+	BCD_TO_BIN(sec);
+	BCD_TO_BIN(min);
+	BCD_TO_BIN(hour);
 	BCD_TO_BIN(day);
 	BCD_TO_BIN(mon);
 	BCD_TO_BIN(year);
@@ -200,3 +199,7 @@
 	return mktime(year, mon, day, hour, min, sec);
 }
 
+int xicor_probe(void)
+{
+	return (xicor_read(X1241REG_SC) != -1);
+}
diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/swarm/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/setup.c
--- linux-2.4.20/arch/mips/sibyte/swarm/setup.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/setup.c	2003-02-07 15:06:07.000000000 -0600
@@ -37,29 +37,18 @@
 #include <asm/sibyte/sb1250_regs.h>
 #include <asm/sibyte/sb1250_genbus.h>
 #include <asm/sibyte/64bit.h>
-#include <asm/sibyte/swarm.h>
+#include <asm/sibyte/board.h>
 
 extern struct rtc_ops *rtc_ops;
 extern struct rtc_ops swarm_rtc_ops;
 
 #ifdef CONFIG_BLK_DEV_IDE
-extern struct ide_ops std_ide_ops;
-#ifdef CONFIG_BLK_DEV_IDE_SIBYTE
 extern struct ide_ops sibyte_ide_ops;
 #endif
-#endif
-
-#ifdef CONFIG_L3DEMO
-extern void *l3info;
-#endif
-
-static unsigned char *led_ptr;
-#define LED_BASE_ADDR (A_IO_EXT_REG(R_IO_EXT_REG(R_IO_EXT_START_ADDR, LEDS_CS)))
-#define setled(index, c) led_ptr[(3-((index)&3)) << 3] = (c)
 
 const char *get_system_type(void)
 {
-	return "SiByte Swarm";
+	return "SiByte " SIBYTE_BOARD_NAME;
 }
 
 
@@ -78,9 +67,15 @@
         sb1250_time_init();
 }
 
+extern void sb1250_setup(void);
+
+extern int xicor_probe(void);
 extern int xicor_set_time(unsigned long);
 extern unsigned long xicor_get_time(void);
-extern void sb1250_setup(void);
+
+extern int m41t81_probe(void);
+extern int m41t81_set_time(unsigned long);
+extern unsigned long m41t81_get_time(void);
 
 void __init swarm_setup(void)
 {
@@ -90,16 +85,20 @@
 
 	panic_timeout = 5;  /* For debug.  */
 
-        board_timer_setup = swarm_timer_setup;
-
-        rtc_get_time = xicor_get_time;
-        rtc_set_time = xicor_set_time;
+	board_timer_setup = swarm_timer_setup;
 
-#ifdef CONFIG_L3DEMO
-	if (l3info != NULL) {
-		printk("\n");
+	if (xicor_probe()) {
+		printk("swarm setup: Xicor 1241 RTC detected.\n");
+		rtc_get_time = xicor_get_time;
+		rtc_set_time = xicor_set_time;
 	}
-#endif
+ 
+	if (m41t81_probe()) {
+		printk("swarm setup: M41T81 RTC detected.\n");
+		rtc_get_time = m41t81_get_time;
+		rtc_set_time = m41t81_set_time;
+	}
+
 	printk("This kernel optimized for "
 #ifdef CONFIG_SIMULATION
 	       "simulation"
@@ -115,23 +114,8 @@
 	       " CFE\n");
 
 #ifdef CONFIG_BLK_DEV_IDE
-#ifdef CONFIG_BLK_DEV_IDE_SIBYTE
 	ide_ops = &sibyte_ide_ops;
-#else
-	ide_ops = &std_ide_ops;
-#endif
-#endif
-
-	/* Set up the LED base address */
-#ifdef __MIPSEL__
-	/* Pass1 workaround (bug 1624) */
-	if (sb1250_pass == K_SYS_REVISION_PASS1)
-		led_ptr = (unsigned char *)
-			((unsigned long)(KSEG1 | (G_IO_START_ADDR(csr_in32(4+(KSEG1|LED_BASE_ADDR))) << S_IO_ADDRBASE))+0x20);
-	else
 #endif
-		led_ptr = (unsigned char *)
-			((unsigned long)(KSEG1 | (G_IO_START_ADDR(csr_in32(KSEG1|LED_BASE_ADDR)) << S_IO_ADDRBASE))+0x20);
 
 #ifdef CONFIG_VT
 #ifdef CONFIG_DUMMY_CONSOLE
@@ -152,60 +136,25 @@
 #endif
 }
 
+#ifdef LEDS_PHYS
+
+#ifdef CONFIG_SIBYTE_CARMEL
+/* XXXKW need to detect Monterey/LittleSur/etc */
+#undef LEDS_PHYS
+#define LEDS_PHYS MLEDS_PHYS
+#endif
+
+#define setled(index, c) \
+  ((unsigned char *)(LEDS_PHYS|IO_SPACE_BASE|0x20))[(3-(index))<<3] = (c)
 void setleds(char *str)
 {
 	int i;
 	for (i = 0; i < 4; i++) {
 		if (!str[i]) {
-			for (; i < 4; i++) {
-				setled(' ', str[i]);
-			}
+			setled(i, ' ');
 		} else {
 			setled(i, str[i]);
 		}
 	}
 }
-
-#include <linux/timer.h>
-
-static struct timer_list led_timer;
-static unsigned char default_led_msg[] =
-	"Today: the CSWARM.  Tomorrow: the WORLD!!!!           ";
-static unsigned char *led_msg = default_led_msg;
-static unsigned char *led_msg_ptr = default_led_msg;
-
-void set_led_msg(char *new_msg)
-{
-	led_msg = new_msg;
-	led_msg_ptr = new_msg;
-	setleds("    ");
-}
-
-static void move_leds(unsigned long arg)
-{
-	int i;
-	unsigned char *tmp = led_msg_ptr;
-	for (i = 0; i < 4; i++) {
-		setled(i, *tmp);
-		tmp++;
-		if (!*tmp) {
-			tmp = led_msg;
-		}
-	}
-	led_msg_ptr++;
-	if (!*led_msg_ptr) {
- 		led_msg_ptr = led_msg;
-	}
-	del_timer(&led_timer);
-	led_timer.expires = jiffies + (HZ/8);
-	add_timer(&led_timer);
-}
-
-void hack_leds(void)
-{
-	init_timer(&led_timer);
-	led_timer.expires = jiffies + (HZ/8);
-	led_timer.data = 0;
-	led_timer.function = move_leds;
-	add_timer(&led_timer);
-}
+#endif
diff -urNd -urNd linux-2.4.20/arch/mips/sni/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/sni/CVS/Entries
--- linux-2.4.20/arch/mips/sni/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sni/CVS/Entries	2005-01-06 23:00:11.000000000 -0600
@@ -0,0 +1,10 @@
+/.cvsignore/1.2/Tue Mar 17 22:07:43 1998/-ko/Tlinux_2_4_20
+/Makefile/1.8.2.1/Tue Jun 25 15:47:00 2002/-ko/Tlinux_2_4_20
+/int-handler.S/1.7.2.1/Tue Aug 20 00:32:39 2002/-ko/Tlinux_2_4_20
+/io.c/1.6/Thu Sep  6 13:12:02 2001/-ko/Tlinux_2_4_20
+/irq.c/1.3.2.1/Mon Dec 17 20:14:47 2001/-ko/Tlinux_2_4_20
+/pci.c/1.12.2.4/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/pcimt_scache.c/1.8/Thu Sep  6 13:12:02 2001/-ko/Tlinux_2_4_20
+/reset.c/1.1.1.1/Sun Jun  1 03:16:41 1997/-ko/Tlinux_2_4_20
+/setup.c/1.21.2.1/Wed Jun 26 12:22:42 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/sni/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/sni/CVS/Repository
--- linux-2.4.20/arch/mips/sni/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sni/CVS/Repository	2005-01-06 23:00:11.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/sni
diff -urNd -urNd linux-2.4.20/arch/mips/sni/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/sni/CVS/Root
--- linux-2.4.20/arch/mips/sni/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sni/CVS/Root	2005-01-06 23:00:11.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/sni/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/sni/CVS/Tag
--- linux-2.4.20/arch/mips/sni/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sni/CVS/Tag	2005-01-06 23:00:11.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/sni/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/sni/.cvsignore
--- linux-2.4.20/arch/mips/sni/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sni/.cvsignore	1998-03-17 16:07:43.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/sni/int-handler.S linux-2.4.20-mipscvs-20050106/arch/mips/sni/int-handler.S
--- linux-2.4.20/arch/mips/sni/int-handler.S	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sni/int-handler.S	2002-08-19 19:32:39.000000000 -0500
@@ -47,7 +47,7 @@
 		bnez	t1, _hwint0
 		 nop
 
-		j	restore_all			# spurious interrupt
+		j	ret_from_irq			# spurious interrupt
 		 nop
 
  ##############################################################################
diff -urNd -urNd linux-2.4.20/arch/mips/sni/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/sni/Makefile
--- linux-2.4.20/arch/mips/sni/Makefile	2001-04-13 22:26:07.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sni/Makefile	2002-06-25 10:47:00.000000000 -0500
@@ -6,10 +6,7 @@
 # unless it's something special (ie not a .c file).
 #
 
-.S.s:
-	$(CPP) $(CFLAGS) $< -o $*.s
-.S.o:
-	$(CC) $(CFLAGS) -c $< -o $*.o
+USE_STANDARD_AS_RULE := true
 
 all:	sni.o int-handler.o
 
diff -urNd -urNd linux-2.4.20/arch/mips/sni/pci.c linux-2.4.20-mipscvs-20050106/arch/mips/sni/pci.c
--- linux-2.4.20/arch/mips/sni/pci.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sni/pci.c	2003-01-11 11:53:10.000000000 -0600
@@ -40,7 +40,7 @@
 		 */
 		if (dev->devfn == PCI_DEVFN(1, 0)) {
 			/* Evil hack ...  */
-			set_cp0_config(CONF_CM_CMASK, CONF_CM_CACHABLE_NO_WA);
+			set_c0_config(CONF_CM_CMASK, CONF_CM_CACHABLE_NO_WA);
 			dev->irq = PCIMT_IRQ_SCSI;
 			continue;
 		}
@@ -175,7 +175,7 @@
 		/* Somebody might have asked allocation of a non-standard resource */
 		return;
 	}
-	
+
 	pci_write_config_dword(dev, reg, new);
 	pci_read_config_dword(dev, reg, &check);
 	if ((new ^ check) & ((new & PCI_BASE_ADDRESS_SPACE_IO) ? PCI_BASE_ADDRESS_IO_MASK : PCI_BASE_ADDRESS_MEM_MASK)) {
@@ -192,7 +192,7 @@
 	pci_scan_bus(0, ops, NULL);
 }
 
-int __init pcibios_enable_device(struct pci_dev *dev)
+int __init pcibios_enable_device(struct pci_dev *dev, int mask)
 {
 	/* Not needed, since we enable all devices at startup.  */
 	return 0;
diff -urNd -urNd linux-2.4.20/arch/mips/sni/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/sni/setup.c
--- linux-2.4.20/arch/mips/sni/setup.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/sni/setup.c	2002-06-26 07:22:42.000000000 -0500
@@ -31,6 +31,7 @@
 #include <asm/reboot.h>
 #include <asm/sni.h>
 #include <asm/time.h>
+#include <asm/traps.h>
 
 extern void sni_machine_restart(char *command);
 extern void sni_machine_halt(void);
@@ -49,6 +50,10 @@
 	setup_irq(0, irq);
 }
 
+
+void __init bus_error_init(void) { /* nothing */ }
+
+
 extern unsigned char sni_map_isa_cache;
 
 /*
diff -urNd -urNd linux-2.4.20/arch/mips/tools/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/tools/CVS/Entries
--- linux-2.4.20/arch/mips/tools/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/tools/CVS/Entries	2005-01-06 23:00:11.000000000 -0600
@@ -0,0 +1,4 @@
+/.cvsignore/1.2/Tue Mar 17 22:07:44 1998/-ko/Tlinux_2_4_20
+/Makefile/1.7.2.3/Mon Aug  5 23:53:36 2002/-ko/Tlinux_2_4_20
+/offset.c/1.16.4.6/Mon Nov  4 19:39:56 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/tools/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/tools/CVS/Repository
--- linux-2.4.20/arch/mips/tools/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/tools/CVS/Repository	2005-01-06 23:00:11.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/tools
diff -urNd -urNd linux-2.4.20/arch/mips/tools/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/tools/CVS/Root
--- linux-2.4.20/arch/mips/tools/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/tools/CVS/Root	2005-01-06 23:00:11.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/tools/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/tools/CVS/Tag
--- linux-2.4.20/arch/mips/tools/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/tools/CVS/Tag	2005-01-06 23:00:11.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/tools/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/tools/.cvsignore
--- linux-2.4.20/arch/mips/tools/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/tools/.cvsignore	1998-03-17 16:07:44.000000000 -0600
@@ -0,0 +1,3 @@
+.depend
+.*.flags
+offset.s offset.h
diff -urNd -urNd linux-2.4.20/arch/mips/tools/offset.c linux-2.4.20-mipscvs-20050106/arch/mips/tools/offset.c
--- linux-2.4.20/arch/mips/tools/offset.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/tools/offset.c	2002-11-04 13:39:56.000000000 -0600
@@ -151,7 +151,6 @@
 	offset("#define SC_MDLO       ", struct sigcontext, sc_mdlo);
 	offset("#define SC_PC         ", struct sigcontext, sc_pc);
 	offset("#define SC_STATUS     ", struct sigcontext, sc_status);
-	offset("#define SC_OWNEDFP    ", struct sigcontext, sc_ownedfp);
 	offset("#define SC_FPC_CSR    ", struct sigcontext, sc_fpc_csr);
 	offset("#define SC_FPC_EIR    ", struct sigcontext, sc_fpc_eir);
 	offset("#define SC_CAUSE      ", struct sigcontext, sc_cause);
diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/common/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/common/CVS/Entries
--- linux-2.4.20/arch/mips/vr4181/common/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/common/CVS/Entries	2005-01-06 23:00:11.000000000 -0600
@@ -0,0 +1,7 @@
+/.cvsignore/1.1/Mon Nov  5 20:15:26 2001/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.1/Tue Jun 25 15:47:01 2002/-ko/Tlinux_2_4_20
+/int_handler.S/1.1/Tue Oct  2 23:27:11 2001/-ko/Tlinux_2_4_20
+/irq.c/1.4.2.2/Mon Aug  5 23:53:36 2002/-ko/Tlinux_2_4_20
+/serial.c/1.2.2.1/Mon Aug  5 23:53:36 2002/-ko/Tlinux_2_4_20
+/time.c/1.1.2.3/Sun Dec  1 21:20:14 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/common/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/common/CVS/Repository
--- linux-2.4.20/arch/mips/vr4181/common/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/common/CVS/Repository	2005-01-06 23:00:11.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/vr4181/common
diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/common/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/common/CVS/Root
--- linux-2.4.20/arch/mips/vr4181/common/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/common/CVS/Root	2005-01-06 23:00:11.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/common/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/common/CVS/Tag
--- linux-2.4.20/arch/mips/vr4181/common/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/common/CVS/Tag	2005-01-06 23:00:11.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/common/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/common/.cvsignore
--- linux-2.4.20/arch/mips/vr4181/common/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/common/.cvsignore	2001-11-05 14:15:26.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/common/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/common/irq.c
--- linux-2.4.20/arch/mips/vr4181/common/irq.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/common/irq.c	2002-08-05 18:53:36.000000000 -0500
@@ -7,7 +7,7 @@
  *
  * Credits to Bradley D. LaRonde and Michael Klar for writing the original
  * irq.c file which was derived from the common irq.c file.
- *	
+ *
  * This file is subject to the terms and conditions of the GNU General Public
  * License.  See the file "COPYING" in the main directory of this archive
  * for more details.
@@ -180,9 +180,9 @@
 extern int setup_irq(unsigned int irq, struct irqaction *irqaction);
 extern void mips_cpu_irq_init(u32 irq_base);
 
-static struct irqaction cascade = 
+static struct irqaction cascade =
 	{ no_action, SA_INTERRUPT, 0, "cascade", NULL, NULL };
-static struct irqaction reserved = 
+static struct irqaction reserved =
 	{ no_action, SA_INTERRUPT, 0, "cascade", NULL, NULL };
 
 void __init init_IRQ(void)
@@ -216,7 +216,7 @@
 	/* Default all ICU IRQs to off ... */
 	*VR4181_MSYSINT1REG = 0;
 	*VR4181_MSYSINT2REG = 0;
- 
+
 	/* We initialize the level 2 ICU registers to all bits disabled. */
 	*VR4181_MPIUINTREG = 0;
 	*VR4181_MAIUINTREG = 0;
@@ -229,7 +229,7 @@
 	setup_irq(VR4181_IRQ_INT0, &cascade);
 	setup_irq(VR4181_IRQ_GIU, &cascade);
 
-	/* 
+	/*
 	 * RTC interrupts are interesting.  They have two destinations.
 	 * One is at sys irq controller, and the other is at CPU IP3 and IP4.
 	 * RTC timer is used as system timer.
diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/common/serial.c linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/common/serial.c
--- linux-2.4.20/arch/mips/vr4181/common/serial.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/common/serial.c	2002-08-05 18:53:36.000000000 -0500
@@ -14,7 +14,7 @@
 
 /*
  * [jsun, 010925]
- * You need to make sure rs_table has at least one element in 
+ * You need to make sure rs_table has at least one element in
  * drivers/char/serial.c file.	There is no good way to do it right
  * now.	 A workaround is to include CONFIG_SERIAL_MANY_PORTS in your
  * configure file, which would gives you 64 ports and wastes 11K ram.
diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/common/time.c linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/common/time.c
--- linux-2.4.20/arch/mips/vr4181/common/time.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/common/time.c	2002-12-01 15:20:14.000000000 -0600
@@ -2,7 +2,7 @@
  * Copyright 2001 MontaVista Software Inc.
  * Author: jsun@mvista.com or jsun@junsun.net
  *
- * rtc and time ops for vr4181.	 Part of code is drived from 
+ * rtc and time ops for vr4181.	 Part of code is drived from
  * linux-vr, originally written	 by Bradley D. LaRonde & Michael Klar.
  *
  * This program is free software; you can redistribute	it and/or modify it
@@ -29,10 +29,10 @@
  * RTC ops
  */
 
-spinlock_t rtc_lock = SPIN_LOCK_UNLOCKED;
+extern spinlock_t rtc_lock;
 
 /* per VR41xx docs, bad data can be read if between 2 counts */
-static inline unsigned short 
+static inline unsigned short
 read_time_reg(volatile unsigned short *reg)
 {
 	unsigned short value;
@@ -43,7 +43,7 @@
 	return value;
 }
 
-static unsigned long 
+static unsigned long
 vr4181_rtc_get_time(void)
 {
 	unsigned short regh, regm, regl;
@@ -60,7 +60,7 @@
 	return ((regh << 17) | (regm << 1) | (regl >> 15));
 }
 
-static int 
+static int
 vr4181_rtc_set_time(unsigned long timeval)
 {
 	unsigned short intreg;
@@ -82,13 +82,13 @@
 }
 
 
-/* 
+/*
  * timer interrupt routine (wrapper)
  *
  * we need our own interrupt routine because we need to clear
  * RTC1 interrupt.
  */
-static void 
+static void
 vr4181_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
 	/* Clear the interrupt. */
@@ -115,7 +115,7 @@
 
 extern int setup_irq(unsigned int irq, struct irqaction *irqaction);
 
-static void 
+static void
 vr4181_timer_setup(struct irqaction *irq)
 {
 	/* over-write the handler to be our own one */
diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/CVS/Entries
--- linux-2.4.20/arch/mips/vr4181/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/CVS/Entries	2005-01-06 23:08:19.000000000 -0600
@@ -0,0 +1,2 @@
+D/common////
+D/osprey////
diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/CVS/Repository
--- linux-2.4.20/arch/mips/vr4181/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/CVS/Repository	2005-01-06 23:00:11.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/vr4181
diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/CVS/Root
--- linux-2.4.20/arch/mips/vr4181/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/CVS/Root	2005-01-06 23:00:11.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/CVS/Tag
--- linux-2.4.20/arch/mips/vr4181/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/CVS/Tag	2005-01-06 23:00:11.000000000 -0600
@@ -0,0 +1 @@
+Tlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/osprey/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/osprey/CVS/Entries
--- linux-2.4.20/arch/mips/vr4181/osprey/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/osprey/CVS/Entries	2005-01-06 23:00:11.000000000 -0600
@@ -0,0 +1,7 @@
+/.cvsignore/1.1/Mon Nov  5 20:15:27 2001/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.2/Tue Jun 25 15:47:01 2002/-ko/Tlinux_2_4_20
+/dbg_io.c/1.1.2.1/Sat Feb  2 21:33:52 2002/-ko/Tlinux_2_4_20
+/prom.c/1.1.2.3/Mon Aug  5 23:53:36 2002/-ko/Tlinux_2_4_20
+/reset.c/1.1.2.2/Mon Dec  2 00:24:51 2002/-ko/Tlinux_2_4_20
+/setup.c/1.2.2.2/Sun Dec  1 21:17:02 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/osprey/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/osprey/CVS/Repository
--- linux-2.4.20/arch/mips/vr4181/osprey/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/osprey/CVS/Repository	2005-01-06 23:00:11.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/vr4181/osprey
diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/osprey/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/osprey/CVS/Root
--- linux-2.4.20/arch/mips/vr4181/osprey/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/osprey/CVS/Root	2005-01-06 23:00:11.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/osprey/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/osprey/CVS/Tag
--- linux-2.4.20/arch/mips/vr4181/osprey/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/osprey/CVS/Tag	2005-01-06 23:00:11.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/osprey/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/osprey/.cvsignore
--- linux-2.4.20/arch/mips/vr4181/osprey/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/osprey/.cvsignore	2001-11-05 14:15:27.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/osprey/prom.c linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/osprey/prom.c
--- linux-2.4.20/arch/mips/vr4181/osprey/prom.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/osprey/prom.c	2002-08-05 18:53:36.000000000 -0500
@@ -26,7 +26,7 @@
 	return "NEC_Vr41xx Osprey";
 }
 
-/* 
+/*
  * [jsun] right now we assume it is the nec debug monitor, which does
  * not pass any arguments.
  */
diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/osprey/reset.c linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/osprey/reset.c
--- linux-2.4.20/arch/mips/vr4181/osprey/reset.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/osprey/reset.c	2002-12-01 18:24:51.000000000 -0600
@@ -18,10 +18,10 @@
 
 void nec_osprey_restart(char *command)
 {
-	set_cp0_status(ST0_ERL);
-	change_cp0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);
+	set_c0_status(ST0_ERL);
+	change_c0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);
 	flush_cache_all();
-	write_32bit_cp0_register(CP0_WIRED, 0);
+	write_c0_wired(0);
 	__asm__ __volatile__("jr\t%0"::"r"(0xbfc00000));
 }
 
diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/osprey/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/osprey/setup.c
--- linux-2.4.20/arch/mips/vr4181/osprey/setup.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/osprey/setup.c	2002-12-01 15:17:02.000000000 -0600
@@ -32,6 +32,10 @@
 extern void vr4181_init_serial(void);
 extern void vr4181_init_time(void);
 
+void __init bus_error_init(void)
+{
+}
+
 void __init nec_osprey_setup(void)
 {
 	set_io_port_base(VR4181_PORT_BASE);
@@ -43,7 +47,7 @@
 #ifdef CONFIG_FB
 	conswitchp = &dummy_con;
 #endif
- 
+
 	_machine_restart = nec_osprey_restart;
 	_machine_halt = nec_osprey_halt;
 	_machine_power_off = nec_osprey_power_off;
@@ -64,7 +68,7 @@
 	// *VR4181_GPMD0REG = 0x00c0;
 	// *VR4181_GPINTEN	 = 1<<6;
 
-	/* [jsun] I believe this will get the interrupt type right 
+	/* [jsun] I believe this will get the interrupt type right
 	 * for the ether port.
 	 */
 	*VR4181_GPINTTYPL = 0x3000;
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/casio-e55/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/CVS/Entries
--- linux-2.4.20/arch/mips/vr41xx/casio-e55/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/CVS/Entries	2005-01-06 23:00:11.000000000 -0600
@@ -0,0 +1,6 @@
+/.cvsignore/1.1.2.1/Thu Oct  3 16:58:02 2002/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.2/Wed Nov 13 10:00:14 2002/-ko/Tlinux_2_4_20
+/ide-e55.c/1.1.2.1/Thu Oct  3 16:58:02 2002/-ko/Tlinux_2_4_20
+/init.c/1.1.2.1/Thu Oct  3 16:58:02 2002/-ko/Tlinux_2_4_20
+/setup.c/1.1.2.1/Thu Oct  3 16:58:02 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/casio-e55/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/CVS/Repository
--- linux-2.4.20/arch/mips/vr41xx/casio-e55/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/CVS/Repository	2005-01-06 23:00:11.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/vr41xx/casio-e55
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/casio-e55/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/CVS/Root
--- linux-2.4.20/arch/mips/vr41xx/casio-e55/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/CVS/Root	2005-01-06 23:00:11.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/casio-e55/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/CVS/Tag
--- linux-2.4.20/arch/mips/vr41xx/casio-e55/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/CVS/Tag	2005-01-06 23:00:11.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/casio-e55/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/.cvsignore
--- linux-2.4.20/arch/mips/vr41xx/casio-e55/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/.cvsignore	2002-10-03 11:58:02.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/casio-e55/ide-e55.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/ide-e55.c
--- linux-2.4.20/arch/mips/vr41xx/casio-e55/ide-e55.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/ide-e55.c	2002-10-03 11:58:02.000000000 -0500
@@ -0,0 +1,99 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * IDE routines for typical pc-like standard configurations
+ * for the CASIO CASSIOPEIA E-55/65.
+ *
+ * Copyright (C) 1998, 1999, 2001 by Ralf Baechle
+ */
+/*
+ * Changes:
+ *  Yoichi Yuasa <yuasa@hh.iij4u.or.jp>  Sun, 24 Feb 2002
+ *  - Added CASIO CASSIOPEIA E-55/65 support.
+ */
+#include <linux/sched.h>
+#include <linux/ide.h>
+#include <linux/ioport.h>
+#include <linux/hdreg.h>
+#include <asm/ptrace.h>
+#include <asm/hdreg.h>
+
+static int e55_ide_default_irq(ide_ioreg_t base)
+{
+	return 40;
+}
+
+static ide_ioreg_t e55_ide_default_io_base(int index)
+{
+	switch (index) {
+		case 0: return 0xc1f0;
+		case 1: return 0xc170;
+		case 2: return 0xc1e8;
+		case 3: return 0xc168;
+		case 4: return 0xc1e0;
+		case 5: return 0xc160;
+	}
+	return 0;
+}
+
+static void e55_ide_init_hwif_ports(hw_regs_t *hw, ide_ioreg_t data_port,
+                                    ide_ioreg_t ctrl_port, int *irq)
+{
+	ide_ioreg_t reg = data_port;
+	int i;
+
+	for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++) {
+		hw->io_ports[i] = reg;
+		reg += 1;
+	}
+	if (ctrl_port) {
+		hw->io_ports[IDE_CONTROL_OFFSET] = ctrl_port;
+	} else {
+		hw->io_ports[IDE_CONTROL_OFFSET] = hw->io_ports[IDE_DATA_OFFSET] + 0x206;
+	}
+	if (irq != NULL)
+		*irq = 0;
+	hw->io_ports[IDE_IRQ_OFFSET] = 0;
+}
+
+static int e55_ide_request_irq(unsigned int irq,
+                               void (*handler)(int,void *, struct pt_regs *),
+                               unsigned long flags, const char *device,
+                               void *dev_id)
+{
+	return request_irq(irq, handler, flags, device, dev_id);
+}			
+
+static void e55_ide_free_irq(unsigned int irq, void *dev_id)
+{
+	free_irq(irq, dev_id);
+}
+
+static int e55_ide_check_region(ide_ioreg_t from, unsigned int extent)
+{
+	return check_region(from, extent);
+}
+
+static void e55_ide_request_region(ide_ioreg_t from, unsigned int extent,
+                                   const char *name)
+{
+	request_region(from, extent, name);
+}
+
+static void e55_ide_release_region(ide_ioreg_t from, unsigned int extent)
+{
+	release_region(from, extent);
+}
+
+struct ide_ops e55_ide_ops = {
+	&e55_ide_default_irq,
+	&e55_ide_default_io_base,
+	&e55_ide_init_hwif_ports,
+	&e55_ide_request_irq,
+	&e55_ide_free_irq,
+	&e55_ide_check_region,
+	&e55_ide_request_region,
+	&e55_ide_release_region
+};
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/casio-e55/init.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/init.c
--- linux-2.4.20/arch/mips/vr41xx/casio-e55/init.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/init.c	2002-10-03 11:58:02.000000000 -0500
@@ -0,0 +1,53 @@
+/*
+ * FILE NAME
+ *	arch/mips/vr41xx/casio-e55/init.c
+ *
+ * BRIEF MODULE DESCRIPTION
+ *	Initialisation code for the CASIO CASSIOPEIA E-55/65.
+ *
+ * Copyright 2002 Yoichi Yuasa
+ *                yuasa@hh.iij4u.or.jp
+ *
+ *  This program is free software; you can redistribute it and/or modify it
+ *  under the terms of the GNU General Public License as published by the
+ *  Free Software Foundation; either version 2 of the License, or (at your
+ *  option) any later version.
+ */
+#include <linux/config.h>
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/string.h>
+
+#include <asm/bootinfo.h>
+
+char arcs_cmdline[CL_SIZE];
+
+const char *get_system_type(void)
+{
+	return "CASIO CASSIOPEIA E-11/15/55/65";
+}
+
+void __init bus_error_init(void)
+{
+}
+
+void __init prom_init(int argc, char **argv, unsigned long magic, int *prom_vec)
+{
+	int i;
+
+	/*
+	 * collect args and prepare cmd_line
+	 */
+	for (i = 1; i < argc; i++) {
+		strcat(arcs_cmdline, argv[i]);
+		if (i < (argc - 1))
+			strcat(arcs_cmdline, " ");
+	}
+
+	mips_machgroup = MACH_GROUP_NEC_VR41XX;
+	mips_machtype = MACH_CASIO_E55;
+}
+
+void __init prom_free_prom_memory (void)
+{
+}
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/casio-e55/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/Makefile
--- linux-2.4.20/arch/mips/vr41xx/casio-e55/Makefile	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/Makefile	2002-11-13 04:00:14.000000000 -0600
@@ -0,0 +1,19 @@
+#
+# Makefile for the CASIO CASSIOPEIA E-55/65 specific parts of the kernel
+#
+# Note! Dependencies are done automagically by 'make dep', which also
+# removes any old dependencies. DON'T put your own dependencies here
+# unless it's something special (ie not a .c file).
+#
+
+USE_STANDARD_AS_RULE := true
+
+O_TARGET := e55.o
+
+all: e55.o
+
+obj-y	:= init.o setup.o
+
+obj-$(CONFIG_IDE)	+= ide-e55.o
+
+include $(TOPDIR)/Rules.make
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/casio-e55/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/setup.c
--- linux-2.4.20/arch/mips/vr41xx/casio-e55/setup.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/setup.c	2002-10-03 11:58:02.000000000 -0500
@@ -0,0 +1,69 @@
+/*
+ * FILE NAME
+ *	arch/mips/vr41xx/casio-e55/setup.c
+ *
+ * BRIEF MODULE DESCRIPTION
+ *	Setup for the CASIO CASSIOPEIA E-11/15/55/65.
+ *
+ * Copyright 2002 Yoichi Yuasa
+ *                yuasa@hh.iij4u.or.jp
+ *
+ *  This program is free software; you can redistribute it and/or modify it
+ *  under the terms of the GNU General Public License as published by the
+ *  Free Software Foundation; either version 2 of the License, or (at your
+ *  option) any later version.
+ */
+#include <linux/config.h>
+#include <linux/init.h>
+#include <linux/console.h>
+#include <linux/ide.h>
+#include <linux/ioport.h>
+
+#include <asm/reboot.h>
+#include <asm/time.h>
+#include <asm/vr41xx/e55.h>
+
+#ifdef CONFIG_BLK_DEV_INITRD
+extern unsigned long initrd_start, initrd_end;
+extern void * __rd_start, * __rd_end;
+#endif
+
+#ifdef CONFIG_BLK_DEV_IDE
+extern struct ide_ops e55_ide_ops;
+#endif
+
+void __init casio_e55_setup(void)
+{
+	set_io_port_base(IO_PORT_BASE);
+	ioport_resource.start = IO_PORT_RESOURCE_START;
+	ioport_resource.end = IO_PORT_RESOURCE_END;
+	iomem_resource.start = IO_MEM_RESOURCE_START;
+	iomem_resource.end = IO_MEM_RESOURCE_END;
+
+#ifdef CONFIG_BLK_DEV_INITRD
+	ROOT_DEV = MKDEV(RAMDISK_MAJOR, 0);
+	initrd_start = (unsigned long)&__rd_start;
+	initrd_end = (unsigned long)&__rd_end;
+#endif
+
+	_machine_restart = vr41xx_restart;
+	_machine_halt = vr41xx_halt;
+	_machine_power_off = vr41xx_power_off;
+
+	board_time_init = vr41xx_time_init;
+	board_timer_setup = vr41xx_timer_setup;
+
+#ifdef CONFIG_FB
+	conswitchp = &dummy_con;
+#endif
+
+#ifdef CONFIG_BLK_DEV_IDE
+	ide_ops = &e55_ide_ops;
+#endif
+
+	vr41xx_bcu_init();
+
+	vr41xx_cmu_init(0);
+
+	vr41xx_siu_init(SIU_RS232C, 0);
+}
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/common/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/CVS/Entries
--- linux-2.4.20/arch/mips/vr41xx/common/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/CVS/Entries	2005-01-06 23:00:12.000000000 -0600
@@ -0,0 +1,14 @@
+/.cvsignore/1.1.2.1/Thu Oct  3 16:58:02 2002/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.2/Thu Dec 12 01:10:09 2002/-ko/Tlinux_2_4_20
+/bcu.c/1.1.2.1/Mon Jul 15 00:02:56 2002/-ko/Tlinux_2_4_20
+/cmu.c/1.1.2.2/Wed Jul 31 02:18:39 2002/-ko/Tlinux_2_4_20
+/giu.c/1.1.2.3/Fri Feb 21 14:23:25 2003/-ko/Tlinux_2_4_20
+/icu.c/1.1.2.3/Thu Oct  3 16:58:02 2002/-ko/Tlinux_2_4_20
+/int-handler.S/1.1.2.1/Mon Jul 15 00:02:56 2002/-ko/Tlinux_2_4_20
+/pciu.c/1.1.2.1/Mon Jul 15 00:02:56 2002/-ko/Tlinux_2_4_20
+/pciu.h/1.1.2.1/Mon Jul 15 00:02:56 2002/-ko/Tlinux_2_4_20
+/reset.c/1.1.2.2/Mon Dec  2 00:24:51 2002/-ko/Tlinux_2_4_20
+/serial.c/1.1.2.1/Mon Jul 15 00:02:56 2002/-ko/Tlinux_2_4_20
+/time.c/1.1.2.2/Mon Dec  2 00:24:52 2002/-ko/Tlinux_2_4_20
+/vrc4173.c/1.1.2.1/Thu Dec 12 01:10:09 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/common/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/CVS/Repository
--- linux-2.4.20/arch/mips/vr41xx/common/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/CVS/Repository	2005-01-06 23:00:11.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/vr41xx/common
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/common/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/CVS/Root
--- linux-2.4.20/arch/mips/vr41xx/common/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/CVS/Root	2005-01-06 23:00:11.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/common/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/CVS/Tag
--- linux-2.4.20/arch/mips/vr41xx/common/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/CVS/Tag	2005-01-06 23:00:12.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/common/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/.cvsignore
--- linux-2.4.20/arch/mips/vr41xx/common/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/.cvsignore	2002-10-03 11:58:02.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/common/giu.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/giu.c
--- linux-2.4.20/arch/mips/vr41xx/common/giu.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/giu.c	2003-02-21 08:23:25.000000000 -0600
@@ -89,7 +89,7 @@
 	return res;
 }
 
-void vr41xx_enable_giuint(u8 pin)
+void vr41xx_enable_giuint(int pin)
 {
 	if (pin < 16)
 		set_giuint(GIUINTENL, (u16)1 << pin);
@@ -97,7 +97,7 @@
 		set_giuint(GIUINTENH, (u16)1 << (pin - 16));
 }
 
-void vr41xx_disable_giuint(u8 pin)
+void vr41xx_disable_giuint(int pin)
 {
 	if (pin < 16)
 		clear_giuint(GIUINTENL, (u16)1 << pin);
@@ -105,15 +105,15 @@
 		clear_giuint(GIUINTENH, (u16)1 << (pin - 16));
 }
 
-void vr41xx_clear_giuint(u8 pin)
+void vr41xx_clear_giuint(int pin)
 {
 	if (pin < 16)
-		write_giuint(GIUINTSTATL, (u16)1 << pin);
+		write_giuint((u16)1 << pin, GIUINTSTATL);
 	else
-		write_giuint(GIUINTSTATH, (u16)1 << (pin - 16));
+		write_giuint((u16)1 << (pin - 16), GIUINTSTATH);
 }
 
-void vr41xx_set_irq_trigger(u8 pin, u8 trigger, u8 hold)
+void vr41xx_set_irq_trigger(int pin, int trigger, int hold)
 {
 	u16 mask;
 
@@ -146,7 +146,7 @@
 	vr41xx_clear_giuint(pin);
 }
 
-void vr41xx_set_irq_level(u8 pin, u8 level)
+void vr41xx_set_irq_level(int pin, int level)
 {
 	u16 mask;
 
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/common/icu.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/icu.c
--- linux-2.4.20/arch/mips/vr41xx/common/icu.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/icu.c	2002-10-03 11:58:02.000000000 -0500
@@ -224,13 +224,9 @@
 
 /*=======================================================================*/
 
-extern void vr41xx_enable_giuint(u8 pin);
-extern void vr41xx_disable_giuint(u8 pin);
-extern void vr41xx_clear_giuint(u8 pin);
-
 static void enable_giuint_irq(unsigned int irq)
 {
-	u8 pin;
+	int pin;
 
 	pin = irq - GIUINT_IRQ_BASE;
 	if (pin < 16)
@@ -243,7 +239,7 @@
 
 static void disable_giuint_irq(unsigned int irq)
 {
-	u8 pin;
+	int pin;
 
 	pin = irq - GIUINT_IRQ_BASE;
 	vr41xx_disable_giuint(pin);
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/common/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/Makefile
--- linux-2.4.20/arch/mips/vr41xx/common/Makefile	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/Makefile	2002-12-11 19:10:09.000000000 -0600
@@ -14,8 +14,11 @@
 
 obj-y := bcu.o cmu.o giu.o icu.o int-handler.o reset.o
 
+export-objs := vrc4173.o
+
 obj-$(CONFIG_PCI)		+= pciu.o
 obj-$(CONFIG_SERIAL)		+= serial.o
 obj-$(CONFIG_VR41XX_TIME_C)	+= time.o
+obj-$(CONFIG_VRC4173)		+= vrc4173.o
 
 include $(TOPDIR)/Rules.make
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/common/reset.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/reset.c
--- linux-2.4.20/arch/mips/vr41xx/common/reset.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/reset.c	2002-12-01 18:24:51.000000000 -0600
@@ -18,10 +18,10 @@
 
 void vr41xx_restart(char *command)
 {
-	change_cp0_status((ST0_BEV | ST0_ERL), (ST0_BEV | ST0_ERL));
-	change_cp0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);
+	change_c0_status((ST0_BEV | ST0_ERL), (ST0_BEV | ST0_ERL));
+	change_c0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);
 	flush_cache_all();
-	write_32bit_cp0_register(CP0_WIRED, 0);
+	write_c0_wired(0);
 	__asm__ __volatile__("jr\t%0"::"r"(0xbfc00000));
 }
 
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/common/time.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/time.c
--- linux-2.4.20/arch/mips/vr41xx/common/time.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/time.c	2002-12-01 18:24:52.000000000 -0600
@@ -89,6 +89,6 @@
 
 	setup_irq(MIPS_COUNTER_TIMER_IRQ, irq);
 
-	count = read_32bit_cp0_register(CP0_COUNT);
-	write_32bit_cp0_register (CP0_COMPARE, count + (mips_counter_frequency / HZ));
+	count = read_c0_count();
+	write_c0_compare(count + (mips_counter_frequency / HZ));
 }
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/common/vrc4173.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/vrc4173.c
--- linux-2.4.20/arch/mips/vr41xx/common/vrc4173.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/vrc4173.c	2002-12-11 19:10:09.000000000 -0600
@@ -0,0 +1,279 @@
+/*
+ * FILE NAME
+ *	drivers/char/vrc4173.c
+ * 
+ * BRIEF MODULE DESCRIPTION
+ *	NEC VRC4173 driver for NEC VR4122/VR4131.
+ *
+ * Author: Yoichi Yuasa
+ *         yyuasa@mvista.com or source@mvista.com
+ *
+ * Copyright 2001,2002 MontaVista Software Inc.
+ *
+ *  This program is free software; you can redistribute it and/or modify it
+ *  under the terms of the GNU General Public License as published by the
+ *  Free Software Foundation; either version 2 of the License, or (at your
+ *  option) any later version.
+ *
+ *  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ *  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ *  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ *  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ *  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+ *  TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ *  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *  You should have received a copy of the GNU General Public License along
+ *  with this program; if not, write to the Free Software Foundation, Inc.,
+ *  675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+#include <linux/config.h>
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/interrupt.h>
+#include <linux/irq.h>
+#include <linux/pci.h>
+#include <linux/types.h>
+
+#include <asm/vr41xx/vr41xx.h>
+#include <asm/vr41xx/vrc4173.h>
+
+MODULE_DESCRIPTION("NEC VRC4173 driver for NEC VR4122/4131");
+MODULE_AUTHOR("Yoichi Yuasa <yyuasa@mvista.com>");
+MODULE_LICENSE("GPL");
+
+#define VRC4173_CMUCLKMSK	0x040
+#define VRC4173_CMUSRST		0x042
+
+#define VRC4173_SELECTREG	0x09e
+
+#define VRC4173_SYSINT1REG	0x060
+#define VRC4173_MSYSINT1REG	0x06c
+
+static struct pci_device_id vrc4173_table[] __devinitdata = {
+	{PCI_VENDOR_ID_NEC, PCI_DEVICE_ID_NEC_VRC4173, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
+	{0, }
+};
+
+unsigned long vrc4173_io_offset = 0;
+
+EXPORT_SYMBOL(vrc4173_io_offset);
+
+static u16 vrc4173_cmuclkmsk;
+static int vrc4173_initialized;
+
+void vrc4173_clock_supply(u16 mask)
+{
+	if (vrc4173_initialized) {
+		vrc4173_cmuclkmsk |= mask;
+		vrc4173_outw(vrc4173_cmuclkmsk, VRC4173_CMUCLKMSK);
+	}
+}
+
+void vrc4173_clock_mask(u16 mask)
+{
+	if (vrc4173_initialized) {
+		vrc4173_cmuclkmsk &= ~mask;
+		vrc4173_outw(vrc4173_cmuclkmsk, VRC4173_CMUCLKMSK);
+	}
+}
+
+static inline void vrc4173_cmu_init(void)
+{
+	vrc4173_cmuclkmsk = vrc4173_inw(VRC4173_CMUCLKMSK);
+}
+
+EXPORT_SYMBOL(vrc4173_clock_supply);
+EXPORT_SYMBOL(vrc4173_clock_mask);
+
+void vrc4173_select_function(int func)
+{
+	u16 val;
+
+	if (vrc4173_initialized) {
+		val = vrc4173_inw(VRC4173_SELECTREG);
+		switch(func) {
+		case PS2CH1_SELECT:
+			val |= 0x0004;
+			break;
+		case PS2CH2_SELECT:
+			val |= 0x0002;
+			break;
+		case TOUCHPANEL_SELECT:
+			val &= 0x0007;
+			break;
+		case KIU8_SELECT:
+			val &= 0x000e;
+			break;
+		case KIU10_SELECT:
+			val &= 0x000c;
+			break;
+		case KIU12_SELECT:
+			val &= 0x0008;
+			break;
+		case GPIO_SELECT:
+			val |= 0x0008;
+			break;
+		}
+		vrc4173_outw(val, VRC4173_SELECTREG);
+	}
+}
+
+EXPORT_SYMBOL(vrc4173_select_function);
+
+static void enable_vrc4173_irq(unsigned int irq)
+{
+	u16 val;
+
+	val = vrc4173_inw(VRC4173_MSYSINT1REG);
+	val |= (u16)1 << (irq - VRC4173_IRQ_BASE);
+	vrc4173_outw(val, VRC4173_MSYSINT1REG);
+}
+
+static void disable_vrc4173_irq(unsigned int irq)
+{
+	u16 val;
+
+	val = vrc4173_inw(VRC4173_MSYSINT1REG);
+	val &= ~((u16)1 << (irq - VRC4173_IRQ_BASE));
+	vrc4173_outw(val, VRC4173_MSYSINT1REG);
+}
+
+static unsigned int startup_vrc4173_irq(unsigned int irq)
+{
+	enable_vrc4173_irq(irq);
+	return 0; /* never anything pending */
+}
+
+#define shutdown_vrc4173_irq	disable_vrc4173_irq
+#define ack_vrc4173_irq		disable_vrc4173_irq
+
+static void end_vrc4173_irq(unsigned int irq)
+{
+	if (!(irq_desc[irq].status & (IRQ_DISABLED | IRQ_INPROGRESS)))
+		enable_vrc4173_irq(irq);
+}
+
+static struct hw_interrupt_type vrc4173_irq_type = {
+	"VRC4173",
+	startup_vrc4173_irq,
+	shutdown_vrc4173_irq,
+	enable_vrc4173_irq,
+	disable_vrc4173_irq,
+	ack_vrc4173_irq,
+	end_vrc4173_irq,
+	NULL
+};
+
+static int vrc4173_get_irq_number(int irq)
+{
+	u16 status, mask;
+	int i;
+
+        status = vrc4173_inw(VRC4173_SYSINT1REG);
+        mask = vrc4173_inw(VRC4173_MSYSINT1REG);
+
+	status &= mask;
+	if (status) {
+		for (i = 0; i < 16; i++)
+			if (status & (0x0001 << i))
+				return VRC4173_IRQ_BASE + i;
+	}
+
+	return -EINVAL;
+}
+
+static inline void vrc4173_icu_init(int cascade_irq)
+{
+	int i;
+
+	if (cascade_irq < GIU_IRQ(0) || cascade_irq > GIU_IRQ(15))
+		return;
+	
+	vrc4173_outw(0, VRC4173_MSYSINT1REG);
+
+	vr41xx_set_irq_trigger(cascade_irq - GIU_IRQ(0), TRIGGER_LEVEL, SIGNAL_THROUGH);
+	vr41xx_set_irq_level(cascade_irq - GIU_IRQ(0), LEVEL_LOW);
+
+	for (i = VRC4173_IRQ_BASE; i <= VRC4173_IRQ_LAST; i++)
+                irq_desc[i].handler = &vrc4173_irq_type;
+}
+
+static int __devinit vrc4173_probe(struct pci_dev *pdev,
+                                   const struct pci_device_id *ent)
+{
+	unsigned long start, flags;
+	int err;
+
+	if ((err = pci_enable_device(pdev)) < 0) {
+		printk(KERN_ERR "vrc4173: failed to enable device -- err=%d\n", err);
+		return err;
+	}
+
+	pci_set_master(pdev);
+
+	start = pci_resource_start(pdev, 0);
+	if (!start) {
+		printk(KERN_ERR "vrc4173:No PCI I/O resources, aborting\n");
+		return -ENODEV;
+	}
+
+	if (!start || (((flags = pci_resource_flags(pdev, 0)) & IORESOURCE_IO) == 0)) {
+		printk(KERN_ERR "vrc4173: No PCI I/O resources, aborting\n");
+		return -ENODEV;
+	}
+
+	if ((err = pci_request_regions(pdev, "NEC VRC4173")) < 0) {
+		printk(KERN_ERR "vrc4173: PCI resources are busy, aborting\n");
+		return err;
+	}
+
+	set_vrc4173_io_offset(start);
+
+	vrc4173_cmu_init();
+
+	vrc4173_icu_init(pdev->irq);
+
+	if ((err = vr41xx_cascade_irq(pdev->irq, vrc4173_get_irq_number)) < 0) {
+		printk(KERN_ERR
+		       "vrc4173: IRQ resource %d is busy, aborting\n", pdev->irq);
+		return err;
+	}
+
+	printk(KERN_INFO
+	       "NEC VRC4173 at 0x%#08lx, IRQ is cascaded to %d\n", start, pdev->irq);
+
+	return 0;
+}
+
+static struct pci_driver vrc4173_driver = {
+	name:		"NEC VRC4173",
+	probe:		vrc4173_probe,
+	remove:		NULL,
+	id_table:	vrc4173_table,
+};
+
+static int __devinit vrc4173_init(void)
+{
+	int err;
+
+	if ((err = pci_module_init(&vrc4173_driver)) < 0)
+		return err;
+
+	vrc4173_initialized = 1;
+
+	return 0;
+}
+
+static void __devexit vrc4173_exit(void)
+{
+	vrc4173_initialized = 0;
+
+	pci_unregister_driver(&vrc4173_driver);
+}
+
+module_init(vrc4173_init);
+module_exit(vrc4173_exit);
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/CVS/Entries
--- linux-2.4.20/arch/mips/vr41xx/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/CVS/Entries	2005-01-06 23:08:19.000000000 -0600
@@ -0,0 +1,7 @@
+D/casio-e55////
+D/common////
+D/ibm-workpad////
+D/nec-eagle////
+D/tanbac-tb0226////
+D/victor-mpc30x////
+D/zao-capcella////
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/CVS/Repository
--- linux-2.4.20/arch/mips/vr41xx/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/CVS/Repository	2005-01-06 23:00:11.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/vr41xx
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/CVS/Root
--- linux-2.4.20/arch/mips/vr41xx/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/CVS/Root	2005-01-06 23:00:11.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/CVS/Tag
--- linux-2.4.20/arch/mips/vr41xx/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/CVS/Tag	2005-01-06 23:00:11.000000000 -0600
@@ -0,0 +1 @@
+Tlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/ibm-workpad/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/CVS/Entries
--- linux-2.4.20/arch/mips/vr41xx/ibm-workpad/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/CVS/Entries	2005-01-06 23:00:12.000000000 -0600
@@ -0,0 +1,6 @@
+/.cvsignore/1.1.2.1/Thu Oct  3 16:58:02 2002/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.2/Wed Nov 13 10:00:14 2002/-ko/Tlinux_2_4_20
+/ide-workpad.c/1.1.2.1/Thu Oct  3 16:58:02 2002/-ko/Tlinux_2_4_20
+/init.c/1.1.2.1/Thu Oct  3 16:58:02 2002/-ko/Tlinux_2_4_20
+/setup.c/1.1.2.1/Thu Oct  3 16:58:02 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/ibm-workpad/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/CVS/Repository
--- linux-2.4.20/arch/mips/vr41xx/ibm-workpad/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/CVS/Repository	2005-01-06 23:00:12.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/vr41xx/ibm-workpad
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/ibm-workpad/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/CVS/Root
--- linux-2.4.20/arch/mips/vr41xx/ibm-workpad/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/CVS/Root	2005-01-06 23:00:12.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/ibm-workpad/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/CVS/Tag
--- linux-2.4.20/arch/mips/vr41xx/ibm-workpad/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/CVS/Tag	2005-01-06 23:00:12.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/ibm-workpad/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/.cvsignore
--- linux-2.4.20/arch/mips/vr41xx/ibm-workpad/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/.cvsignore	2002-10-03 11:58:02.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/ibm-workpad/ide-workpad.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/ide-workpad.c
--- linux-2.4.20/arch/mips/vr41xx/ibm-workpad/ide-workpad.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/ide-workpad.c	2002-10-03 11:58:02.000000000 -0500
@@ -0,0 +1,98 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * IDE routines for typical pc-like standard configurations for the IBM WorkPad z50.
+ *
+ * Copyright (C) 1998, 1999, 2001 by Ralf Baechle
+ */
+/*
+ * Changes:
+ *  Yoichi Yuasa <yuasa@hh.iij4u.or.jp>  Sun, 24 Feb 2002
+ *  - Added IBM WorkPad z50 support.
+ */
+#include <linux/sched.h>
+#include <linux/ide.h>
+#include <linux/ioport.h>
+#include <linux/hdreg.h>
+#include <asm/ptrace.h>
+#include <asm/hdreg.h>
+
+static int workpad_ide_default_irq(ide_ioreg_t base)
+{
+	return 49;
+}
+
+static ide_ioreg_t workpad_ide_default_io_base(int index)
+{
+	switch (index) {
+		case 0: return 0x1f0;
+		case 1: return 0x170;
+		case 2: return 0x1e8;
+		case 3: return 0x168;
+		case 4: return 0x1e0;
+		case 5: return 0x160;
+	}
+	return 0;
+}
+
+static void workpad_ide_init_hwif_ports(hw_regs_t *hw, ide_ioreg_t data_port,
+                                        ide_ioreg_t ctrl_port, int *irq)
+{
+	ide_ioreg_t reg = data_port;
+	int i;
+
+	for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++) {
+		hw->io_ports[i] = reg;
+		reg += 1;
+	}
+	if (ctrl_port) {
+		hw->io_ports[IDE_CONTROL_OFFSET] = ctrl_port;
+	} else {
+		hw->io_ports[IDE_CONTROL_OFFSET] = hw->io_ports[IDE_DATA_OFFSET] + 0x206;
+	}
+	if (irq != NULL)
+		*irq = 0;
+	hw->io_ports[IDE_IRQ_OFFSET] = 0;
+}
+
+static int workpad_ide_request_irq(unsigned int irq,
+                                   void (*handler)(int,void *, struct pt_regs *),
+                                   unsigned long flags, const char *device,
+                                   void *dev_id)
+{
+	return request_irq(irq, handler, SA_SHIRQ, device, dev_id);
+}			
+
+static void workpad_ide_free_irq(unsigned int irq, void *dev_id)
+{
+	free_irq(irq, dev_id);
+}
+
+static int workpad_ide_check_region(ide_ioreg_t from, unsigned int extent)
+{
+	return check_region(from, extent);
+}
+
+static void workpad_ide_request_region(ide_ioreg_t from, unsigned int extent,
+                                       const char *name)
+{
+	request_region(from, extent, name);
+}
+
+static void workpad_ide_release_region(ide_ioreg_t from, unsigned int extent)
+{
+	release_region(from, extent);
+}
+
+struct ide_ops workpad_ide_ops = {
+	&workpad_ide_default_irq,
+	&workpad_ide_default_io_base,
+	&workpad_ide_init_hwif_ports,
+	&workpad_ide_request_irq,
+	&workpad_ide_free_irq,
+	&workpad_ide_check_region,
+	&workpad_ide_request_region,
+	&workpad_ide_release_region
+};
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/ibm-workpad/init.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/init.c
--- linux-2.4.20/arch/mips/vr41xx/ibm-workpad/init.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/init.c	2002-10-03 11:58:02.000000000 -0500
@@ -0,0 +1,53 @@
+/*
+ * FILE NAME
+ *	arch/mips/vr41xx/ibm-workpad/init.c
+ *
+ * BRIEF MODULE DESCRIPTION
+ *	Initialisation code for the IBM WorkPad z50.
+ *
+ * Copyright 2002 Yoichi Yuasa
+ *                yuasa@hh.iij4u.or.jp
+ *
+ *  This program is free software; you can redistribute it and/or modify it
+ *  under the terms of the GNU General Public License as published by the
+ *  Free Software Foundation; either version 2 of the License, or (at your
+ *  option) any later version.
+ */
+#include <linux/config.h>
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/string.h>
+
+#include <asm/bootinfo.h>
+
+char arcs_cmdline[CL_SIZE];
+
+const char *get_system_type(void)
+{
+	return "IBM WorkPad z50";
+}
+
+void __init bus_error_init(void)
+{
+}
+
+void __init prom_init(int argc, char **argv, unsigned long magic, int *prom_vec)
+{
+	int i;
+
+	/*
+	 * collect args and prepare cmd_line
+	 */
+	for (i = 1; i < argc; i++) {
+		strcat(arcs_cmdline, argv[i]);
+		if (i < (argc - 1))
+			strcat(arcs_cmdline, " ");
+	}
+
+	mips_machgroup = MACH_GROUP_NEC_VR41XX;
+	mips_machtype = MACH_IBM_WORKPAD;
+}
+
+void __init prom_free_prom_memory (void)
+{
+}
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/ibm-workpad/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/Makefile
--- linux-2.4.20/arch/mips/vr41xx/ibm-workpad/Makefile	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/Makefile	2002-11-13 04:00:14.000000000 -0600
@@ -0,0 +1,19 @@
+#
+# Makefile for the IBM WorkPad z50 specific parts of the kernel
+#
+# Note! Dependencies are done automagically by 'make dep', which also
+# removes any old dependencies. DON'T put your own dependencies here
+# unless it's something special (ie not a .c file).
+#
+
+USE_STANDARD_AS_RULE := true
+
+O_TARGET := workpad.o
+
+all: workpad.o
+
+obj-y	:= init.o setup.o
+
+obj-$(CONFIG_IDE)	+= ide-workpad.o
+
+include $(TOPDIR)/Rules.make
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/ibm-workpad/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/setup.c
--- linux-2.4.20/arch/mips/vr41xx/ibm-workpad/setup.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/setup.c	2002-10-03 11:58:02.000000000 -0500
@@ -0,0 +1,69 @@
+/*
+ * FILE NAME
+ *	arch/mips/vr41xx/workpad/setup.c
+ *
+ * BRIEF MODULE DESCRIPTION
+ *	Setup for the IBM WorkPad z50.
+ *
+ * Copyright 2002 Yoichi Yuasa
+ *                yuasa@hh.iij4u.or.jp
+ *
+ *  This program is free software; you can redistribute it and/or modify it
+ *  under the terms of the GNU General Public License as published by the
+ *  Free Software Foundation; either version 2 of the License, or (at your
+ *  option) any later version.
+ */
+#include <linux/config.h>
+#include <linux/init.h>
+#include <linux/console.h>
+#include <linux/ide.h>
+#include <linux/ioport.h>
+
+#include <asm/reboot.h>
+#include <asm/time.h>
+#include <asm/vr41xx/workpad.h>
+
+#ifdef CONFIG_BLK_DEV_INITRD
+extern unsigned long initrd_start, initrd_end;
+extern void * __rd_start, * __rd_end;
+#endif
+
+#ifdef CONFIG_BLK_DEV_IDE
+extern struct ide_ops workpad_ide_ops;
+#endif
+
+void __init ibm_workpad_setup(void)
+{
+	set_io_port_base(IO_PORT_BASE);
+	ioport_resource.start = IO_PORT_RESOURCE_START;
+	ioport_resource.end = IO_PORT_RESOURCE_END;
+	iomem_resource.start = IO_MEM_RESOURCE_START;
+	iomem_resource.end = IO_MEM_RESOURCE_END;
+
+#ifdef CONFIG_BLK_DEV_INITRD
+	ROOT_DEV = MKDEV(RAMDISK_MAJOR, 0);
+	initrd_start = (unsigned long)&__rd_start;
+	initrd_end = (unsigned long)&__rd_end;
+#endif
+
+	_machine_restart = vr41xx_restart;
+	_machine_halt = vr41xx_halt;
+	_machine_power_off = vr41xx_power_off;
+
+	board_time_init = vr41xx_time_init;
+	board_timer_setup = vr41xx_timer_setup;
+
+#ifdef CONFIG_FB
+	conswitchp = &dummy_con;
+#endif
+
+#ifdef CONFIG_BLK_DEV_IDE
+	ide_ops = &workpad_ide_ops;
+#endif
+
+	vr41xx_bcu_init();
+
+	vr41xx_cmu_init(0);
+
+	vr41xx_siu_init(SIU_RS232C, 0);
+}
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/nec-eagle/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/CVS/Entries
--- linux-2.4.20/arch/mips/vr41xx/nec-eagle/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/CVS/Entries	2005-01-06 23:00:12.000000000 -0600
@@ -0,0 +1,9 @@
+/.cvsignore/1.1.2.1/Thu Oct  3 16:58:02 2002/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.2/Thu Dec 12 01:10:09 2002/-ko/Tlinux_2_4_20
+/ide-eagle.c/1.1.2.2/Mon Aug  5 23:53:36 2002/-ko/Tlinux_2_4_20
+/init.c/1.1.2.1/Mon Jul 15 00:02:56 2002/-ko/Tlinux_2_4_20
+/irq.c/1.1.2.2/Thu Dec 12 01:10:09 2002/-ko/Tlinux_2_4_20
+/pci_fixup.c/1.1.2.3/Thu Dec 12 01:10:09 2002/-ko/Tlinux_2_4_20
+/setup.c/1.1.2.3/Thu Dec 12 01:10:09 2002/-ko/Tlinux_2_4_20
+/vrc4173.c/1.1.2.1/Thu Dec 12 01:10:09 2002//Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/nec-eagle/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/CVS/Repository
--- linux-2.4.20/arch/mips/vr41xx/nec-eagle/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/CVS/Repository	2005-01-06 23:00:12.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/vr41xx/nec-eagle
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/nec-eagle/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/CVS/Root
--- linux-2.4.20/arch/mips/vr41xx/nec-eagle/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/CVS/Root	2005-01-06 23:00:12.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/nec-eagle/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/CVS/Tag
--- linux-2.4.20/arch/mips/vr41xx/nec-eagle/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/CVS/Tag	2005-01-06 23:00:12.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/nec-eagle/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/.cvsignore
--- linux-2.4.20/arch/mips/vr41xx/nec-eagle/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/.cvsignore	2002-10-03 11:58:02.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/nec-eagle/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/irq.c
--- linux-2.4.20/arch/mips/vr41xx/nec-eagle/irq.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/irq.c	2002-12-11 19:10:09.000000000 -0600
@@ -164,9 +164,6 @@
 	writeb(0, NEC_EAGLE_SDBINTMSK);
 	writeb(0, NEC_EAGLE_PCIINTMSKREG);
 
-	vr41xx_set_irq_trigger(VRC4173_PIN, TRIGGER_LEVEL, SIGNAL_THROUGH);
-	vr41xx_set_irq_level(VRC4173_PIN, LEVEL_LOW);
-
 	vr41xx_set_irq_trigger(PCISLOT_PIN, TRIGGER_LEVEL, SIGNAL_THROUGH);
 	vr41xx_set_irq_level(PCISLOT_PIN, LEVEL_HIGH);
 
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/nec-eagle/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/Makefile
--- linux-2.4.20/arch/mips/vr41xx/nec-eagle/Makefile	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/Makefile	2002-12-11 19:10:09.000000000 -0600
@@ -20,6 +20,6 @@
 obj-y	:= init.o irq.o setup.o
 
 obj-$(CONFIG_IDE)	+= ide-eagle.o
-obj-$(CONFIG_PCI)	+= pci_fixup.o
+obj-$(CONFIG_PCI)	+= pci_fixup.o vrc4173.o
 
 include $(TOPDIR)/Rules.make
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/nec-eagle/pci_fixup.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/pci_fixup.c
--- linux-2.4.20/arch/mips/vr41xx/nec-eagle/pci_fixup.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/pci_fixup.c	2002-12-11 19:10:09.000000000 -0600
@@ -47,9 +47,7 @@
 #include <linux/pci.h>
 
 #include <asm/vr41xx/eagle.h>
-#ifdef CONFIG_VRC4173
 #include <asm/vr41xx/vrc4173.h>
-#endif
 
 void __init pcibios_fixup_resources(struct pci_dev *dev)
 {
@@ -119,41 +117,44 @@
 				break;
 			}
 			break;
-#ifdef CONFIG_VRC4173
 		case 12:
-			dev->irq = VRC4173_CARDU1_IRQ;
+			dev->irq = VRC4173_PCMCIA1_IRQ;
 			break;
 		case 13:
-			dev->irq = VRC4173_CARDU2_IRQ;
-			break;
-		case 24:
-			dev->irq = VRC4173_CARDU1_IRQ;
-			break;
-		case 25:
-			dev->irq = VRC4173_CARDU2_IRQ;
+			dev->irq = VRC4173_PCMCIA2_IRQ;
 			break;
-#endif
 		case 28:
 			dev->irq = LANINTA_IRQ;
 			break;
 		case 29:
-			dev->irq = PCISLOT_IRQ;
+			switch (pin) {
+			case 1:
+				dev->irq = PCISLOT_IRQ;
+				break;
+			case 2:
+				dev->irq = CP_INTB_IRQ;
+				break;
+			case 3:
+				dev->irq = CP_INTC_IRQ;
+				break;
+			case 4:
+				dev->irq = CP_INTD_IRQ;
+				break;
+			}
 			break;
-#ifdef CONFIG_VRC4173
 		case 30:
 			switch (func) {
 			case 0:
-				dev->irq = VRC4173_IRQ;
+				dev->irq = VRC4173_CASCADE_IRQ;
 				break;
 			case 1:
-				dev->irq = VRC4173_AC97U_IRQ;
+				dev->irq = VRC4173_AC97_IRQ;
 				break;
 			case 2:
-				dev->irq = VRC4173_USBU_IRQ;
+				dev->irq = VRC4173_USB_IRQ;
 				break;
 			}
 			break;
-#endif
 		}
 
 		pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq);
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/nec-eagle/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/setup.c
--- linux-2.4.20/arch/mips/vr41xx/nec-eagle/setup.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/setup.c	2002-12-11 19:10:09.000000000 -0600
@@ -62,6 +62,9 @@
 extern void eagle_irq_init(void);
 
 #ifdef CONFIG_PCI
+
+extern void vrc4173_preinit(void);
+
 static struct resource vr41xx_pci_io_resource = {
 	"PCI I/O space",
 	VR41XX_PCI_IO_START,
@@ -143,14 +146,14 @@
 
 	vr41xx_cmu_init(0);
 
+#ifdef CONFIG_SERIAL
 	vr41xx_dsiu_init();
 	vr41xx_siu_init(SIU_RS232C, 0);
+#endif
 
 #ifdef CONFIG_PCI
 	vr41xx_pciu_init(&pci_address_map);
-#endif
 
-#ifdef CONFIG_VRC4173
-	vrc4173_init();
+	vrc4173_preinit();
 #endif
 }
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/nec-eagle/vrc4173.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/vrc4173.c
--- linux-2.4.20/arch/mips/vr41xx/nec-eagle/vrc4173.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/vrc4173.c	2002-12-11 19:10:09.000000000 -0600
@@ -0,0 +1,126 @@
+/*
+ * FILE NAME
+ *	arch/mips/vr41xx/nec-eagle/vrc4173.c
+ *
+ * BRIEF MODULE DESCRIPTION
+ *	Pre-setup for NEC VRC4173.
+ *
+ * Author: Yoichi Yuasa
+ *         yyuasa@mvista.com or source@mvista.com
+ *
+ * Copyright 2001,2002 MontaVista Software Inc.
+ *
+ *  This program is free software; you can redistribute it and/or modify it
+ *  under the terms of the GNU General Public License as published by the
+ *  Free Software Foundation; either version 2 of the License, or (at your
+ *  option) any later version.
+ *
+ *  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ *  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ *  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ *  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ *  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+ *  TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ *  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *  You should have received a copy of the GNU General Public License along
+ *  with this program; if not, write to the Free Software Foundation, Inc.,
+ *  675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+#include <linux/config.h>
+
+#ifdef CONFIG_PCI
+#include <linux/init.h>
+#include <linux/pci.h>
+#include <linux/module.h>
+
+#include <asm/io.h>
+#include <asm/vr41xx/eagle.h>
+#include <asm/vr41xx/vrc4173.h>
+
+#define PCI_CONFIG_ADDR	KSEG1ADDR(0x0f000c18)
+#define PCI_CONFIG_DATA	KSEG1ADDR(0x0f000c14)
+	
+static inline void config_writeb(u8 reg, u8 val)
+{
+	u32 data;
+	int shift;
+
+	writel((1UL << 0x1e) | (reg & 0xfc), PCI_CONFIG_ADDR);
+        data = readl(PCI_CONFIG_DATA);
+
+	shift = (reg & 3) << 3;
+	data &= ~(0xff << shift);
+	data |= (((u32)val) << shift);
+
+	writel(data, PCI_CONFIG_DATA);
+}
+
+static inline u16 config_readw(u8 reg)
+{
+	u32 data;
+
+	writel(((1UL << 30) | (reg & 0xfc)) , PCI_CONFIG_ADDR);
+	data = readl(PCI_CONFIG_DATA);
+
+	return (u16)(data >> ((reg & 2) << 3));
+}
+
+static inline u32 config_readl(u8 reg)
+{
+	writel(((1UL << 30) | (reg & 0xfc)) , PCI_CONFIG_ADDR);
+
+	return readl(PCI_CONFIG_DATA);
+}
+
+static inline void config_writel(u8 reg, u32 val)
+{
+	writel((1UL << 0x1e) | (reg & 0xfc), PCI_CONFIG_ADDR);
+	writel(val, PCI_CONFIG_DATA);
+}
+
+void __init vrc4173_preinit(void)
+{
+	u32 cmdsts, base;
+	u16 cmu_mask;
+
+
+	if ((config_readw(PCI_VENDOR_ID) == PCI_VENDOR_ID_NEC) &&
+	    (config_readw(PCI_DEVICE_ID) == PCI_DEVICE_ID_NEC_VRC4173)) {
+		/*
+		 * Initialized NEC VRC4173 Bus Control Unit
+		 */
+		cmdsts = config_readl(PCI_COMMAND);
+		config_writel(PCI_COMMAND,
+		              cmdsts |
+		              PCI_COMMAND_IO |
+		              PCI_COMMAND_MEMORY |
+		              PCI_COMMAND_MASTER);
+
+		config_writeb(PCI_LATENCY_TIMER, 0x80);
+
+		config_writel(PCI_BASE_ADDRESS_0, VR41XX_PCI_IO_START);
+		base = config_readl(PCI_BASE_ADDRESS_0);
+		base &= PCI_BASE_ADDRESS_IO_MASK;
+		config_writeb(0x40, 0x01);
+
+		/* CARDU1 IDSEL = AD12, CARDU2 IDSEL = AD13 */
+		config_writeb(0x41, 0);
+
+		cmu_mask = 0x1000;
+		outw(cmu_mask, base + 0x040);
+		cmu_mask |= 0x0800;
+		outw(cmu_mask, base + 0x040);
+
+		outw(0x000f, base + 0x042);	/* Soft reset of CMU */
+		cmu_mask |= 0x05e0;
+		outw(cmu_mask, base + 0x040);
+		cmu_mask = inw(base + 0x040);	/* dummy read */
+		outw(0x0000, base + 0x042);
+	}
+}
+
+#endif
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/tanbac-tb0226/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/tanbac-tb0226/CVS/Entries
--- linux-2.4.20/arch/mips/vr41xx/tanbac-tb0226/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/tanbac-tb0226/CVS/Entries	2005-01-06 23:00:12.000000000 -0600
@@ -0,0 +1,5 @@
+/Makefile/1.1.2.1/Tue Feb  4 12:43:06 2003/-ko/Tlinux_2_4_20
+/init.c/1.1.2.1/Tue Feb  4 12:43:06 2003/-ko/Tlinux_2_4_20
+/pci_fixup.c/1.1.2.1/Tue Feb  4 12:43:06 2003/-ko/Tlinux_2_4_20
+/setup.c/1.1.2.1/Tue Feb  4 12:43:06 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/tanbac-tb0226/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/tanbac-tb0226/CVS/Repository
--- linux-2.4.20/arch/mips/vr41xx/tanbac-tb0226/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/tanbac-tb0226/CVS/Repository	2005-01-06 23:00:12.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/vr41xx/tanbac-tb0226
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/tanbac-tb0226/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/tanbac-tb0226/CVS/Root
--- linux-2.4.20/arch/mips/vr41xx/tanbac-tb0226/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/tanbac-tb0226/CVS/Root	2005-01-06 23:00:12.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/tanbac-tb0226/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/tanbac-tb0226/CVS/Tag
--- linux-2.4.20/arch/mips/vr41xx/tanbac-tb0226/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/tanbac-tb0226/CVS/Tag	2005-01-06 23:00:12.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/tanbac-tb0226/init.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/tanbac-tb0226/init.c
--- linux-2.4.20/arch/mips/vr41xx/tanbac-tb0226/init.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/tanbac-tb0226/init.c	2003-02-04 06:43:06.000000000 -0600
@@ -0,0 +1,68 @@
+/*
+ * FILE NAME
+ *	arch/mips/vr41xx/tanbac-tb0226/init.c
+ *
+ * BRIEF MODULE DESCRIPTION
+ *	Initialisation code for the TANBAC TB0226.
+ *
+ * Copyright 2002,2003 Yoichi Yuasa
+ *                yuasa@hh.iij4u.or.jp
+ *
+ *  This program is free software; you can redistribute it and/or modify it
+ *  under the terms of the GNU General Public License as published by the
+ *  Free Software Foundation; either version 2 of the License, or (at your
+ *  option) any later version.
+ */
+#include <linux/config.h>
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/string.h>
+
+#include <asm/bootinfo.h>
+#include <asm/cpu.h>
+#include <asm/mipsregs.h>
+#include <asm/vr41xx/vr41xx.h>
+
+char arcs_cmdline[CL_SIZE];
+
+const char *get_system_type(void)
+{
+	return "TANBAC TB0226";
+}
+
+void __init bus_error_init(void)
+{
+}
+
+void __init prom_init(int argc, char **argv, unsigned long magic, int *prom_vec)
+{
+	u32 config;
+	int i;
+
+	/*
+	 * collect args and prepare cmd_line
+	 */
+	for (i = 1; i < argc; i++) {
+		strcat(arcs_cmdline, argv[i]);
+		if (i < (argc - 1))
+			strcat(arcs_cmdline, " ");
+	}
+
+	mips_machgroup = MACH_GROUP_NEC_VR41XX;
+	mips_machtype = MACH_TANBAC_TB0226;
+
+	switch (mips_cpu.processor_id) {
+	case PRID_VR4131_REV1_2:
+		config = read_c0_config();
+		config &= ~0x00000030UL;
+		config |= 0x00410000UL;
+		write_c0_config(config);
+		break;
+	default:
+		break;
+	}
+}
+
+void __init prom_free_prom_memory (void)
+{
+}
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/tanbac-tb0226/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/tanbac-tb0226/Makefile
--- linux-2.4.20/arch/mips/vr41xx/tanbac-tb0226/Makefile	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/tanbac-tb0226/Makefile	2003-02-04 06:43:06.000000000 -0600
@@ -0,0 +1,19 @@
+#
+# Makefile for the TANBAC TB0226 specific parts of the kernel
+#
+# Note! Dependencies are done automagically by 'make dep', which also
+# removes any old dependencies. DON'T put your own dependencies here
+# unless it's something special (ie not a .c file).
+#
+
+USE_STANDARD_AS_RULE := true
+
+O_TARGET := tb0226.o
+
+all: tb0226.o
+
+obj-y	:= init.o setup.o
+
+obj-$(CONFIG_PCI)	+= pci_fixup.o
+
+include $(TOPDIR)/Rules.make
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/tanbac-tb0226/pci_fixup.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/tanbac-tb0226/pci_fixup.c
--- linux-2.4.20/arch/mips/vr41xx/tanbac-tb0226/pci_fixup.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/tanbac-tb0226/pci_fixup.c	2003-02-04 06:43:06.000000000 -0600
@@ -0,0 +1,87 @@
+/*
+ * FILE NAME
+ *	arch/mips/vr41xx/tanbac-tb0226/pci_fixup.c
+ *
+ * BRIEF MODULE DESCRIPTION
+ *	The TANBAC TB0226 specific PCI fixups.
+ *
+ * Copyright 2002,2003 Yoichi Yuasa
+ *                yuasa@hh.iij4u.or.jp
+ *
+ *  This program is free software; you can redistribute it and/or modify it
+ *  under the terms of the GNU General Public License as published by the
+ *  Free Software Foundation; either version 2 of the License, or (at your
+ *  option) any later version.
+ */
+#include <linux/config.h>
+#include <linux/init.h>
+#include <linux/pci.h>
+
+#include <asm/vr41xx/tb0226.h>
+
+void __init pcibios_fixup_resources(struct pci_dev *dev)
+{
+}
+
+void __init pcibios_fixup(void)
+{
+}
+
+void __init pcibios_fixup_irqs(void)
+{
+	struct pci_dev *dev;
+	u8 slot, pin;
+
+	pci_for_each_dev(dev) {
+		slot = PCI_SLOT(dev->devfn);
+		dev->irq = 0;
+
+		switch (slot) {
+		case 12:
+			vr41xx_set_irq_trigger(GD82559_1_PIN, TRIGGER_LEVEL,
+			                       SIGNAL_THROUGH);
+			vr41xx_set_irq_level(GD82559_1_PIN, LEVEL_LOW);
+			dev->irq = GD82559_1_IRQ;
+			break;
+		case 13:
+			vr41xx_set_irq_trigger(GD82559_2_PIN, TRIGGER_LEVEL,
+			                       SIGNAL_THROUGH);
+			vr41xx_set_irq_level(GD82559_2_PIN, LEVEL_LOW);
+			dev->irq = GD82559_2_IRQ;
+			break;
+		case 14:
+			pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin);
+			switch (pin) {
+			case 1:
+				vr41xx_set_irq_trigger(UPD720100_INTA_PIN,
+				                       TRIGGER_LEVEL,
+				                       SIGNAL_THROUGH);
+				vr41xx_set_irq_level(UPD720100_INTA_PIN, LEVEL_LOW);
+				dev->irq = UPD720100_INTA_IRQ;
+				break;
+			case 2:
+				vr41xx_set_irq_trigger(UPD720100_INTB_PIN,
+				                       TRIGGER_LEVEL,
+				                       SIGNAL_THROUGH);
+				vr41xx_set_irq_level(UPD720100_INTB_PIN, LEVEL_LOW);
+				dev->irq = UPD720100_INTB_IRQ;
+				break;
+			case 3:
+				vr41xx_set_irq_trigger(UPD720100_INTC_PIN,
+				                       TRIGGER_LEVEL,
+				                       SIGNAL_THROUGH);
+				vr41xx_set_irq_level(UPD720100_INTC_PIN, LEVEL_LOW);
+				dev->irq = UPD720100_INTC_IRQ;
+				break;
+			}
+			break;
+		}
+
+		pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq);
+	}
+}
+
+unsigned int pcibios_assign_all_busses(void)
+{
+	return 0;
+}
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/tanbac-tb0226/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/tanbac-tb0226/setup.c
--- linux-2.4.20/arch/mips/vr41xx/tanbac-tb0226/setup.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/tanbac-tb0226/setup.c	2003-02-04 06:43:06.000000000 -0600
@@ -0,0 +1,113 @@
+/*
+ * FILE NAME
+ *	arch/mips/vr41xx/tanbac-tb0226/setup.c
+ *
+ * BRIEF MODULE DESCRIPTION
+ *	Setup for the TANBAC TB0226.
+ *
+ * Copyright 2002,2003 Yoichi Yuasa
+ *                yuasa@hh.iij4u.or.jp
+ *
+ *  This program is free software; you can redistribute it and/or modify it
+ *  under the terms of the GNU General Public License as published by the
+ *  Free Software Foundation; either version 2 of the License, or (at your
+ *  option) any later version.
+ */
+#include <linux/config.h>
+#include <linux/init.h>
+#include <linux/console.h>
+#include <linux/ide.h>
+#include <linux/ioport.h>
+
+#include <asm/pci_channel.h>
+#include <asm/reboot.h>
+#include <asm/time.h>
+#include <asm/vr41xx/tb0226.h>
+
+#ifdef CONFIG_BLK_DEV_INITRD
+extern unsigned long initrd_start, initrd_end;
+extern void * __rd_start, * __rd_end;
+#endif
+
+#ifdef CONFIG_PCI
+static struct resource vr41xx_pci_io_resource = {
+	"PCI I/O space",
+	VR41XX_PCI_IO_START,
+	VR41XX_PCI_IO_END,
+	IORESOURCE_IO
+};
+
+static struct resource vr41xx_pci_mem_resource = {
+	"PCI memory space",
+	VR41XX_PCI_MEM_START,
+	VR41XX_PCI_MEM_END,
+	IORESOURCE_MEM
+};
+
+extern struct pci_ops vr41xx_pci_ops;
+
+struct pci_channel mips_pci_channels[] = {
+	{&vr41xx_pci_ops, &vr41xx_pci_io_resource, &vr41xx_pci_mem_resource, 0, 256},
+	{NULL, NULL, NULL, 0, 0}
+};
+
+struct vr41xx_pci_address_space vr41xx_pci_mem1 = {
+	VR41XX_PCI_MEM1_BASE,
+	VR41XX_PCI_MEM1_MASK,
+	IO_MEM1_RESOURCE_START
+};
+
+struct vr41xx_pci_address_space vr41xx_pci_mem2 = {
+	VR41XX_PCI_MEM2_BASE,
+	VR41XX_PCI_MEM2_MASK,
+	IO_MEM2_RESOURCE_START
+};
+
+struct vr41xx_pci_address_space vr41xx_pci_io = {
+	VR41XX_PCI_IO_BASE,
+	VR41XX_PCI_IO_MASK,
+	IO_PORT_RESOURCE_START
+};
+
+static struct vr41xx_pci_address_map pci_address_map = {
+	&vr41xx_pci_mem1,
+	&vr41xx_pci_mem2,
+	&vr41xx_pci_io
+};
+#endif
+
+void __init tanbac_tb0226_setup(void)
+{
+	set_io_port_base(IO_PORT_BASE);
+	ioport_resource.start = IO_PORT_RESOURCE_START;
+	ioport_resource.end = IO_PORT_RESOURCE_END;
+	iomem_resource.start = IO_MEM1_RESOURCE_START;
+	iomem_resource.end = IO_MEM2_RESOURCE_END;
+
+#ifdef CONFIG_BLK_DEV_INITRD
+	ROOT_DEV = MKDEV(RAMDISK_MAJOR, 0);
+	initrd_start = (unsigned long)&__rd_start;
+	initrd_end = (unsigned long)&__rd_end;
+#endif
+
+	_machine_restart = vr41xx_restart;
+	_machine_halt = vr41xx_halt;
+	_machine_power_off = vr41xx_power_off;
+
+	board_time_init = vr41xx_time_init;
+	board_timer_setup = vr41xx_timer_setup;
+
+#ifdef CONFIG_FB
+	conswitchp = &dummy_con;
+#endif
+
+	vr41xx_bcu_init();
+
+	vr41xx_cmu_init(0);
+
+	vr41xx_siu_init(SIU_RS232C, 0);
+
+#ifdef CONFIG_PCI
+	vr41xx_pciu_init(&pci_address_map);
+#endif
+}
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/CVS/Entries
--- linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/CVS/Entries	2005-01-06 23:00:12.000000000 -0600
@@ -0,0 +1,7 @@
+/.cvsignore/1.1.2.1/Thu Oct  3 16:58:02 2002/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.1/Thu Oct  3 16:58:02 2002/-ko/Tlinux_2_4_20
+/ide-mpc30x.c/1.1.2.1/Thu Oct  3 16:58:02 2002/-ko/Tlinux_2_4_20
+/init.c/1.1.2.1/Thu Oct  3 16:58:02 2002/-ko/Tlinux_2_4_20
+/pci_fixup.c/1.1.2.2/Thu Dec 12 01:10:09 2002/-ko/Tlinux_2_4_20
+/setup.c/1.1.2.1/Thu Oct  3 16:58:02 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/CVS/Repository
--- linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/CVS/Repository	2005-01-06 23:00:12.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/vr41xx/victor-mpc30x
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/CVS/Root
--- linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/CVS/Root	2005-01-06 23:00:12.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/CVS/Tag
--- linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/CVS/Tag	2005-01-06 23:00:12.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/.cvsignore
--- linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/.cvsignore	2002-10-03 11:58:02.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/ide-mpc30x.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/ide-mpc30x.c
--- linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/ide-mpc30x.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/ide-mpc30x.c	2002-10-03 11:58:02.000000000 -0500
@@ -0,0 +1,91 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * IDE routines for typical pc-like standard configurations
+ * for the ZAO Networks Capcella.
+ *
+ * Copyright (C) 1998, 1999, 2001 by Ralf Baechle
+ */
+/*
+ * Changes:
+ *  Yoichi Yuasa <yuasa@hh.iij4u.or.jp>  Fri, 23 Aug 2002
+ *  - Added Victor MP-C303/304 support.
+ */
+#include <linux/sched.h>
+#include <linux/ide.h>
+#include <linux/ioport.h>
+#include <linux/hdreg.h>
+#include <asm/ptrace.h>
+#include <asm/hdreg.h>
+
+static int mpc30x_ide_default_irq(ide_ioreg_t base)
+{
+	return 0;
+}
+
+static ide_ioreg_t mpc30x_ide_default_io_base(int index)
+{
+	return 0;
+}
+
+static void mpc30x_ide_init_hwif_ports(hw_regs_t *hw, ide_ioreg_t data_port,
+                                       ide_ioreg_t ctrl_port, int *irq)
+{
+	ide_ioreg_t reg = data_port;
+	int i;
+
+	for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++) {
+		hw->io_ports[i] = reg;
+		reg += 1;
+	}
+	if (ctrl_port) {
+		hw->io_ports[IDE_CONTROL_OFFSET] = ctrl_port;
+	} else {
+		hw->io_ports[IDE_CONTROL_OFFSET] = hw->io_ports[IDE_DATA_OFFSET] + 0x206;
+	}
+	if (irq != NULL)
+		*irq = 0;
+	hw->io_ports[IDE_IRQ_OFFSET] = 0;
+}
+
+static int mpc30x_ide_request_irq(unsigned int irq,
+                                  void (*handler)(int,void *, struct pt_regs *),
+                                  unsigned long flags, const char *device,
+                                  void *dev_id)
+{
+	return request_irq(irq, handler, flags, device, dev_id);
+}
+
+static void mpc30x_ide_free_irq(unsigned int irq, void *dev_id)
+{
+	free_irq(irq, dev_id);
+}
+
+static int mpc30x_ide_check_region(ide_ioreg_t from, unsigned int extent)
+{
+	return check_region(from, extent);
+}
+
+static void mpc30x_ide_request_region(ide_ioreg_t from, unsigned int extent,
+                                      const char *name)
+{
+	request_region(from, extent, name);
+}
+
+static void mpc30x_ide_release_region(ide_ioreg_t from, unsigned int extent)
+{
+	release_region(from, extent);
+}
+
+struct ide_ops mpc30x_ide_ops = {
+	&mpc30x_ide_default_irq,
+	&mpc30x_ide_default_io_base,
+	&mpc30x_ide_init_hwif_ports,
+	&mpc30x_ide_request_irq,
+	&mpc30x_ide_free_irq,
+	&mpc30x_ide_check_region,
+	&mpc30x_ide_request_region,
+	&mpc30x_ide_release_region
+};
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/init.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/init.c
--- linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/init.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/init.c	2002-10-03 11:58:02.000000000 -0500
@@ -0,0 +1,58 @@
+/*
+ * FILE NAME
+ *	arch/mips/vr41xx/victor-mpc30x/init.c
+ *
+ * BRIEF MODULE DESCRIPTION
+ *	Initialisation code for the Victor MP-C303/304.
+ *
+ * Copyright 2002 Yoichi Yuasa
+ *                yuasa@hh.iij4u.or.jp
+ *
+ *  This program is free software; you can redistribute it and/or modify it
+ *  under the terms of the GNU General Public License as published by the
+ *  Free Software Foundation; either version 2 of the License, or (at your
+ *  option) any later version.
+ */
+#include <linux/config.h>
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/string.h>
+
+#include <asm/bootinfo.h>
+#include <asm/cpu.h>
+#include <asm/mipsregs.h>
+#include <asm/vr41xx/vr41xx.h>
+
+char arcs_cmdline[CL_SIZE];
+
+const char *get_system_type(void)
+{
+	return "Victor MP-C303/304";
+}
+
+void __init bus_error_init(void)
+{
+}
+
+void __init prom_init(int argc, char **argv, unsigned long magic, int *prom_vec)
+{
+	int i;
+
+	/*
+	 * collect args and prepare cmd_line
+	 */
+	for (i = 1; i < argc; i++) {
+		strcat(arcs_cmdline, argv[i]);
+		if (i < (argc - 1))
+			strcat(arcs_cmdline, " ");
+	}
+
+	mips_machgroup = MACH_GROUP_NEC_VR41XX;
+	mips_machtype = MACH_VICTOR_MPC30X;
+
+	add_memory_region(0, 32 << 20, BOOT_MEM_RAM);
+}
+
+void __init prom_free_prom_memory (void)
+{
+}
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/Makefile
--- linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/Makefile	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/Makefile	2002-10-03 11:58:02.000000000 -0500
@@ -0,0 +1,20 @@
+#
+# Makefile for the Victor MP-C303/304 specific parts of the kernel
+#
+# Note! Dependencies are done automagically by 'make dep', which also
+# removes any old dependencies. DON'T put your own dependencies here
+# unless it's something special (ie not a .c file).
+#
+
+USE_STANDARD_AS_RULE := true
+
+O_TARGET := mpc30x.o
+
+all: mpc30x.o
+
+obj-y	:= init.o setup.o
+
+obj-$(CONFIG_IDE)	+= ide-mpc30x.o
+obj-$(CONFIG_PCI)	+= pci_fixup.o
+
+include $(TOPDIR)/Rules.make
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/pci_fixup.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/pci_fixup.c
--- linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/pci_fixup.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/pci_fixup.c	2002-12-11 19:10:09.000000000 -0600
@@ -0,0 +1,73 @@
+/*
+ * FILE NAME
+ *	arch/mips/vr41xx/victor-mpc30x/pci_fixup.c
+ *
+ * BRIEF MODULE DESCRIPTION
+ *	The Victor MP-C303/304 specific PCI fixups.
+ *
+ * Copyright 2002 Yoichi Yuasa
+ *                yuasa@hh.iij4u.or.jp
+ *
+ *  This program is free software; you can redistribute it and/or modify it
+ *  under the terms of the GNU General Public License as published by the
+ *  Free Software Foundation; either version 2 of the License, or (at your
+ *  option) any later version.
+ */
+#include <linux/config.h>
+#include <linux/init.h>
+#include <linux/pci.h>
+
+#include <asm/vr41xx/vrc4173.h>
+#include <asm/vr41xx/mpc30x.h>
+
+void __init pcibios_fixup_resources(struct pci_dev *dev)
+{
+}
+
+void __init pcibios_fixup(void)
+{
+}
+
+void __init pcibios_fixup_irqs(void)
+{
+	struct pci_dev *dev;
+	u8 slot, func;
+
+	pci_for_each_dev(dev) {
+		slot = PCI_SLOT(dev->devfn);
+		func = PCI_FUNC(dev->devfn);
+		dev->irq = 0;
+
+		switch (slot) {
+		case 12:	/* NEC VRC4173 CARDU1 */
+			dev->irq = VRC4173_PCMCIA1_IRQ;
+			break;
+		case 13:	/* NEC VRC4173 CARDU2 */
+			dev->irq = VRC4173_PCMCIA2_IRQ;
+			break;
+		case 29:	/* mediaQ MQ-200 */
+			dev->irq = MQ200_IRQ;
+			break;
+		case 30:
+			switch (func) {
+			case 0:	/* NEC VRC4173 */
+				dev->irq = VRC4173_CASCADE_IRQ;
+				break;
+			case 1:	/* NEC VRC4173 AC97U */
+				dev->irq = VRC4173_AC97_IRQ;
+				break;
+			case 2:	/* NEC VRC4173 USBU */
+				dev->irq = VRC4173_USB_IRQ;
+				break;
+			}
+			break;
+		}
+
+		pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq);
+	}
+}
+
+unsigned int pcibios_assign_all_busses(void)
+{
+	return 0;
+}
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/setup.c
--- linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/setup.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/setup.c	2002-10-03 11:58:02.000000000 -0500
@@ -0,0 +1,121 @@
+/*
+ * FILE NAME
+ *	arch/mips/vr41xx/victor-mpc30x/setup.c
+ *
+ * BRIEF MODULE DESCRIPTION
+ *	Setup for the Victor MP-C303/304.
+ *
+ * Copyright 2002 Yoichi Yuasa
+ *                yuasa@hh.iij4u.or.jp
+ *
+ *  This program is free software; you can redistribute it and/or modify it
+ *  under the terms of the GNU General Public License as published by the
+ *  Free Software Foundation; either version 2 of the License, or (at your
+ *  option) any later version.
+ */
+#include <linux/config.h>
+#include <linux/init.h>
+#include <linux/console.h>
+#include <linux/ide.h>
+#include <linux/ioport.h>
+
+#include <asm/pci_channel.h>
+#include <asm/reboot.h>
+#include <asm/time.h>
+#include <asm/vr41xx/mpc30x.h>
+
+#ifdef CONFIG_BLK_DEV_INITRD
+extern unsigned long initrd_start, initrd_end;
+extern void * __rd_start, * __rd_end;
+#endif
+
+#ifdef CONFIG_BLK_DEV_IDE
+extern struct ide_ops mpc30x_ide_ops;
+#endif
+
+#ifdef CONFIG_PCI
+static struct resource vr41xx_pci_io_resource = {
+	"PCI I/O space",
+	VR41XX_PCI_IO_START,
+	VR41XX_PCI_IO_END,
+	IORESOURCE_IO
+};
+
+static struct resource vr41xx_pci_mem_resource = {
+	"PCI memory space",
+	VR41XX_PCI_MEM_START,
+	VR41XX_PCI_MEM_END,
+	IORESOURCE_MEM
+};
+
+extern struct pci_ops vr41xx_pci_ops;
+
+struct pci_channel mips_pci_channels[] = {
+	{&vr41xx_pci_ops, &vr41xx_pci_io_resource, &vr41xx_pci_mem_resource, 0, 256},
+	{NULL, NULL, NULL, 0, 0}
+};
+
+struct vr41xx_pci_address_space vr41xx_pci_mem1 = {
+	VR41XX_PCI_MEM1_BASE,
+	VR41XX_PCI_MEM1_MASK,
+	IO_MEM1_RESOURCE_START
+};
+
+struct vr41xx_pci_address_space vr41xx_pci_mem2 = {
+	VR41XX_PCI_MEM2_BASE,
+	VR41XX_PCI_MEM2_MASK,
+	IO_MEM2_RESOURCE_START
+};
+
+struct vr41xx_pci_address_space vr41xx_pci_io = {
+	VR41XX_PCI_IO_BASE,
+	VR41XX_PCI_IO_MASK,
+	IO_PORT_RESOURCE_START
+};
+
+static struct vr41xx_pci_address_map pci_address_map = {
+	&vr41xx_pci_mem1,
+	&vr41xx_pci_mem2,
+	&vr41xx_pci_io
+};
+#endif
+
+void __init victor_mpc30x_setup(void)
+{
+	set_io_port_base(IO_PORT_BASE);
+	ioport_resource.start = IO_PORT_RESOURCE_START;
+	ioport_resource.end = IO_PORT_RESOURCE_END;
+	iomem_resource.start = IO_MEM1_RESOURCE_START;
+	iomem_resource.end = IO_MEM2_RESOURCE_END;
+
+#ifdef CONFIG_BLK_DEV_INITRD
+	ROOT_DEV = MKDEV(RAMDISK_MAJOR, 0);
+	initrd_start = (unsigned long)&__rd_start;
+	initrd_end = (unsigned long)&__rd_end;
+#endif
+
+	_machine_restart = vr41xx_restart;
+	_machine_halt = vr41xx_halt;
+	_machine_power_off = vr41xx_power_off;
+
+	board_time_init = vr41xx_time_init;
+	board_timer_setup = vr41xx_timer_setup;
+
+#ifdef CONFIG_FB
+	conswitchp = &dummy_con;
+#endif
+
+#ifdef CONFIG_BLK_DEV_IDE
+	ide_ops = &mpc30x_ide_ops;
+#endif
+
+	vr41xx_bcu_init();
+
+	vr41xx_cmu_init(0);
+
+	vr41xx_siu_init(SIU_RS232C, 0);
+
+#ifdef CONFIG_PCI
+	vr41xx_pciu_init(&pci_address_map);
+#endif
+}
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/zao-capcella/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/zao-capcella/CVS/Entries
--- linux-2.4.20/arch/mips/vr41xx/zao-capcella/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/zao-capcella/CVS/Entries	2005-01-06 23:00:12.000000000 -0600
@@ -0,0 +1,7 @@
+/.cvsignore/1.1.2.1/Thu Oct  3 16:58:02 2002/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.1/Mon Jul 15 00:02:56 2002/-ko/Tlinux_2_4_20
+/ide-capcella.c/1.1.2.2/Mon Aug  5 23:53:36 2002/-ko/Tlinux_2_4_20
+/init.c/1.1.2.2/Mon Dec  2 00:24:52 2002/-ko/Tlinux_2_4_20
+/pci_fixup.c/1.1.2.1/Mon Jul 15 00:02:56 2002/-ko/Tlinux_2_4_20
+/setup.c/1.1.2.2/Thu Oct  3 16:58:02 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/zao-capcella/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/zao-capcella/CVS/Repository
--- linux-2.4.20/arch/mips/vr41xx/zao-capcella/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/zao-capcella/CVS/Repository	2005-01-06 23:00:12.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips/vr41xx/zao-capcella
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/zao-capcella/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/zao-capcella/CVS/Root
--- linux-2.4.20/arch/mips/vr41xx/zao-capcella/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/zao-capcella/CVS/Root	2005-01-06 23:00:12.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/zao-capcella/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/zao-capcella/CVS/Tag
--- linux-2.4.20/arch/mips/vr41xx/zao-capcella/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/zao-capcella/CVS/Tag	2005-01-06 23:00:12.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/zao-capcella/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/zao-capcella/.cvsignore
--- linux-2.4.20/arch/mips/vr41xx/zao-capcella/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/zao-capcella/.cvsignore	2002-10-03 11:58:02.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/zao-capcella/init.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/zao-capcella/init.c
--- linux-2.4.20/arch/mips/vr41xx/zao-capcella/init.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/zao-capcella/init.c	2002-12-01 18:24:52.000000000 -0600
@@ -53,10 +53,10 @@
 
 	switch (mips_cpu.processor_id) {
 	case PRID_VR4131_REV1_2:
-		config = read_32bit_cp0_register(CP0_CONFIG);
+		config = read_c0_config();
 		config &= ~0x00000030UL;
 		config |= 0x00410000UL;
-		write_32bit_cp0_register(CP0_CONFIG, config);
+		write_c0_config(config);
 		break;
 	default:
 		break;
diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/zao-capcella/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/zao-capcella/setup.c
--- linux-2.4.20/arch/mips/vr41xx/zao-capcella/setup.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/zao-capcella/setup.c	2002-10-03 11:58:02.000000000 -0500
@@ -114,6 +114,7 @@
 	vr41xx_cmu_init(0x0102);
 
 	vr41xx_siu_init(SIU_RS232C, 0);
+	vr41xx_dsiu_init();
 
 #ifdef CONFIG_PCI
 	vr41xx_pciu_init(&pci_address_map);
diff -urNd -urNd linux-2.4.20/arch/mips64/boot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips64/boot/CVS/Entries
--- linux-2.4.20/arch/mips64/boot/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/boot/CVS/Entries	2005-01-06 23:00:12.000000000 -0600
@@ -0,0 +1,2 @@
+/Makefile/1.5.2.2/Fri Jan 10 19:14:35 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips64/boot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips64/boot/CVS/Repository
--- linux-2.4.20/arch/mips64/boot/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/boot/CVS/Repository	2005-01-06 23:00:12.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips64/boot
diff -urNd -urNd linux-2.4.20/arch/mips64/boot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips64/boot/CVS/Root
--- linux-2.4.20/arch/mips64/boot/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/boot/CVS/Root	2005-01-06 23:00:12.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips64/boot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips64/boot/CVS/Tag
--- linux-2.4.20/arch/mips64/boot/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/boot/CVS/Tag	2005-01-06 23:00:12.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips64/boot/Makefile linux-2.4.20-mipscvs-20050106/arch/mips64/boot/Makefile
--- linux-2.4.20/arch/mips64/boot/Makefile	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/boot/Makefile	2003-01-10 13:14:35.000000000 -0600
@@ -22,11 +22,11 @@
 vmlinux.ecoff:	$(CONFIGURE) elf2ecoff $(TOPDIR)/vmlinux
 	./elf2ecoff $(TOPDIR)/vmlinux vmlinux.ecoff $(E2EFLAGS)
 
-elf2ecoff: elf2ecoff.c
-	$(HOSTCC) -o $@ $^
+elf2ecoff: $(TOPDIR)/arch/mips/boot/elf2ecoff.c
+	$(HOSTCC) -I$(TOPDIR)/arch/mips/boot -I- -o $@ $^
 
-addinitrd: addinitrd.c
-	$(HOSTCC) -o $@ $^
+addinitrd: $(TOPDIR)/arch/mips/boot/addinitrd.c
+	$(HOSTCC) -I$(TOPDIR)/arch/mips/boot -I- -o $@ $^
 
 # Don't build dependencies, this may die if $(CC) isn't gcc
 dep:
diff -urNd -urNd linux-2.4.20/arch/mips64/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips64/CVS/Entries
--- linux-2.4.20/arch/mips64/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/CVS/Entries	2005-01-06 23:08:19.000000000 -0600
@@ -0,0 +1,18 @@
+/.cvsignore/1.1/Mon Oct  2 20:32:46 2000/-ko/Tlinux_2_4_20
+/Makefile/1.22.2.26/Thu Feb 20 18:53:40 2003/-ko/Tlinux_2_4_20
+/config.in/1.50.2.15/Thu Jul 25 18:48:47 2002/-ko/Tlinux_2_4_20
+/defconfig/1.73.2.30/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-atlas/1.1.2.32/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-decstation/1.1.2.5/Fri Feb  7 23:39:40 2003//Tlinux_2_4_20
+/defconfig-ip22/1.56.2.36/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-ip27/1.67.2.30/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-ip32/1.10.2.33/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-malta/1.1.2.30/Fri Feb 14 18:48:04 2003/-ko/Tlinux_2_4_20
+/defconfig-sb1250-swarm/1.6.2.39/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/defconfig-sead/1.1.2.20/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
+/ld.script.elf32.S/1.5.2.4/Thu Oct  3 01:27:58 2002//Tlinux_2_4_20
+/ld.script.elf64/1.8.2.4/Thu Oct  3 01:27:58 2002/-ko/Tlinux_2_4_20
+D/boot////
+D/kernel////
+D/lib////
+D/mm////
diff -urNd -urNd linux-2.4.20/arch/mips64/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips64/CVS/Repository
--- linux-2.4.20/arch/mips64/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/CVS/Repository	2005-01-06 23:00:12.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips64
diff -urNd -urNd linux-2.4.20/arch/mips64/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips64/CVS/Root
--- linux-2.4.20/arch/mips64/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/CVS/Root	2005-01-06 23:00:12.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips64/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips64/CVS/Tag
--- linux-2.4.20/arch/mips64/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/CVS/Tag	2005-01-06 23:00:12.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips64/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips64/.cvsignore
--- linux-2.4.20/arch/mips64/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/.cvsignore	2000-10-02 15:32:46.000000000 -0500
@@ -0,0 +1 @@
+ld.script.elf32
diff -urNd -urNd linux-2.4.20/arch/mips64/defconfig linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig
--- linux-2.4.20/arch/mips64/defconfig	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig	2003-02-24 15:17:03.000000000 -0600
@@ -19,17 +19,22 @@
 # Machine selection
 #
 # CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
 # CONFIG_MIPS_PB1000 is not set
 # CONFIG_MIPS_PB1100 is not set
 # CONFIG_MIPS_PB1500 is not set
-# CONFIG_ALGOR_P4032 is not set
 # CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
 # CONFIG_MIPS_COBALT is not set
 # CONFIG_DECSTATION is not set
 # CONFIG_MIPS_EV64120 is not set
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MAGNUM_4000 is not set
@@ -52,20 +57,23 @@
 # CONFIG_MAPPED_KERNEL is not set
 # CONFIG_REPLICATE_KTEXT is not set
 # CONFIG_REPLICATE_EXHANDLERS is not set
-CONFIG_SMP=y
+CONFIG_SMP_CAPABLE=y
 # CONFIG_SGI_IP32 is not set
 # CONFIG_SIBYTE_SB1xxx_SOC is not set
 # CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
 # CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
 # CONFIG_ZAO_CAPCELLA is not set
 # CONFIG_HIGHMEM is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
 CONFIG_BOOT_ELF64=y
 CONFIG_ARC64=y
+CONFIG_L1_CACHE_SHIFT=7
+CONFIG_NEW_TIME_C=y
 CONFIG_PCI=y
 CONFIG_QL_ISP_A64=y
-CONFIG_L1_CACHE_SHIFT=7
 # CONFIG_MIPS_AU1000 is not set
 
 #
@@ -87,6 +95,7 @@
 CONFIG_CPU_R10000=y
 # CONFIG_CPU_RM7000 is not set
 # CONFIG_CPU_SB1 is not set
+CONFIG_SMP=y
 # CONFIG_64BIT_PHYS_ADDR is not set
 # CONFIG_CPU_ADVANCED is not set
 CONFIG_CPU_HAS_LLSC=y
@@ -119,6 +128,8 @@
 # CONFIG_BINFMT_AOUT is not set
 CONFIG_BINFMT_ELF=y
 CONFIG_MIPS32_COMPAT=y
+CONFIG_MIPS32_O32=y
+# CONFIG_MIPS32_N32 is not set
 CONFIG_BINFMT_ELF32=y
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_PM is not set
@@ -438,6 +449,7 @@
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
+# CONFIG_AMD_PM768 is not set
 # CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_DTLK is not set
@@ -467,8 +479,8 @@
 # CONFIG_BEFS_FS is not set
 # CONFIG_BEFS_DEBUG is not set
 # CONFIG_BFS_FS is not set
-# CONFIG_EXT3_FS is not set
-# CONFIG_JBD is not set
+CONFIG_EXT3_FS=y
+CONFIG_JBD=y
 # CONFIG_JBD_DEBUG is not set
 # CONFIG_FAT_FS is not set
 # CONFIG_MSDOS_FS is not set
@@ -578,9 +590,9 @@
 # Kernel hacking
 #
 CONFIG_CROSSCOMPILE=y
+# CONFIG_DEBUG is not set
 # CONFIG_REMOTE_DEBUG is not set
 # CONFIG_GDB_CONSOLE is not set
-# CONFIG_DEBUG is not set
 # CONFIG_MAGIC_SYSRQ is not set
 
 #
diff -urNd -urNd linux-2.4.20/arch/mips64/defconfig-atlas linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig-atlas
--- linux-2.4.20/arch/mips64/defconfig-atlas	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig-atlas	2003-02-24 15:17:03.000000000 -0600
@@ -19,17 +19,22 @@
 # Machine selection
 #
 # CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
 # CONFIG_MIPS_PB1000 is not set
 # CONFIG_MIPS_PB1100 is not set
 # CONFIG_MIPS_PB1500 is not set
-# CONFIG_ALGOR_P4032 is not set
 # CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
 # CONFIG_MIPS_COBALT is not set
 # CONFIG_DECSTATION is not set
 # CONFIG_MIPS_EV64120 is not set
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
 # CONFIG_MIPS_ITE8172 is not set
 CONFIG_MIPS_ATLAS=y
 # CONFIG_MIPS_MAGNUM_4000 is not set
@@ -49,18 +54,20 @@
 # CONFIG_SGI_IP32 is not set
 # CONFIG_SIBYTE_SB1xxx_SOC is not set
 # CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
 # CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
 # CONFIG_ZAO_CAPCELLA is not set
 # CONFIG_HIGHMEM is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
 CONFIG_BOOT_ELF32=y
 CONFIG_L1_CACHE_SHIFT=5
-CONFIG_NEW_IRQ=y
 CONFIG_NEW_TIME_C=y
 CONFIG_NONCOHERENT_IO=y
 CONFIG_PCI=y
-CONFIG_SWAP_IO_SPACE=y
+CONFIG_SWAP_IO_SPACE_W=y
+CONFIG_SWAP_IO_SPACE_L=y
 # CONFIG_MIPS_AU1000 is not set
 
 #
@@ -82,7 +89,6 @@
 # CONFIG_CPU_R10000 is not set
 # CONFIG_CPU_RM7000 is not set
 # CONFIG_CPU_SB1 is not set
-CONFIG_BOARD_SCACHE=y
 # CONFIG_64BIT_PHYS_ADDR is not set
 # CONFIG_CPU_ADVANCED is not set
 CONFIG_CPU_HAS_LLSC=y
@@ -114,6 +120,8 @@
 # CONFIG_BINFMT_AOUT is not set
 CONFIG_BINFMT_ELF=y
 CONFIG_MIPS32_COMPAT=y
+CONFIG_MIPS32_O32=y
+# CONFIG_MIPS32_N32 is not set
 CONFIG_BINFMT_ELF32=y
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_PM is not set
@@ -450,6 +458,7 @@
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
+# CONFIG_AMD_PM768 is not set
 # CONFIG_NVRAM is not set
 CONFIG_RTC=y
 # CONFIG_DTLK is not set
@@ -575,9 +584,9 @@
 # Kernel hacking
 #
 CONFIG_CROSSCOMPILE=y
+# CONFIG_DEBUG is not set
 # CONFIG_REMOTE_DEBUG is not set
 # CONFIG_GDB_CONSOLE is not set
-# CONFIG_DEBUG is not set
 # CONFIG_MAGIC_SYSRQ is not set
 # CONFIG_MIPS_UNCACHED is not set
 
diff -urNd -urNd linux-2.4.20/arch/mips64/defconfig-decstation linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig-decstation
--- linux-2.4.20/arch/mips64/defconfig-decstation	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig-decstation	2003-02-07 17:39:40.000000000 -0600
@@ -0,0 +1,609 @@
+#
+# Automatically generated make config: don't edit
+#
+CONFIG_MIPS=y
+# CONFIG_MIPS32 is not set
+CONFIG_MIPS64=y
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+
+#
+# Loadable module support
+#
+# CONFIG_MODULES is not set
+
+#
+# Machine selection
+#
+# CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
+# CONFIG_MIPS_PB1000 is not set
+# CONFIG_MIPS_PB1100 is not set
+# CONFIG_MIPS_PB1500 is not set
+# CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
+# CONFIG_MIPS_COBALT is not set
+CONFIG_DECSTATION=y
+# CONFIG_MIPS_EV64120 is not set
+# CONFIG_MIPS_EV96100 is not set
+# CONFIG_MIPS_IVR is not set
+# CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
+# CONFIG_MIPS_ITE8172 is not set
+# CONFIG_MIPS_ATLAS is not set
+# CONFIG_MIPS_MAGNUM_4000 is not set
+# CONFIG_MIPS_MALTA is not set
+# CONFIG_MIPS_SEAD is not set
+# CONFIG_MOMENCO_OCELOT is not set
+# CONFIG_MOMENCO_OCELOT_G is not set
+# CONFIG_DDB5074 is not set
+# CONFIG_DDB5476 is not set
+# CONFIG_DDB5477 is not set
+# CONFIG_NEC_OSPREY is not set
+# CONFIG_NEC_EAGLE is not set
+# CONFIG_OLIVETTI_M700 is not set
+# CONFIG_NINO is not set
+# CONFIG_SGI_IP22 is not set
+# CONFIG_SGI_IP27 is not set
+# CONFIG_SGI_IP32 is not set
+# CONFIG_SIBYTE_SB1xxx_SOC is not set
+# CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
+# CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
+# CONFIG_ZAO_CAPCELLA is not set
+# CONFIG_HIGHMEM is not set
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
+CONFIG_BOOT_ELF32=y
+CONFIG_IRQ_CPU=y
+CONFIG_L1_CACHE_SHIFT=4
+CONFIG_NONCOHERENT_IO=y
+# CONFIG_MIPS_AU1000 is not set
+
+#
+# CPU selection
+#
+# CONFIG_CPU_MIPS32 is not set
+# CONFIG_CPU_MIPS64 is not set
+# CONFIG_CPU_R3000 is not set
+# CONFIG_CPU_TX39XX is not set
+# CONFIG_CPU_VR41XX is not set
+# CONFIG_CPU_R4300 is not set
+CONFIG_CPU_R4X00=y
+# CONFIG_CPU_TX49XX is not set
+# CONFIG_CPU_R5000 is not set
+# CONFIG_CPU_R5432 is not set
+# CONFIG_CPU_R6000 is not set
+# CONFIG_CPU_NEVADA is not set
+# CONFIG_CPU_R8000 is not set
+# CONFIG_CPU_R10000 is not set
+# CONFIG_CPU_RM7000 is not set
+# CONFIG_CPU_SB1 is not set
+# CONFIG_64BIT_PHYS_ADDR is not set
+# CONFIG_CPU_ADVANCED is not set
+CONFIG_CPU_HAS_LLSC=y
+CONFIG_CPU_HAS_LLDSCD=y
+# CONFIG_CPU_HAS_WB is not set
+CONFIG_CPU_HAS_SYNC=y
+
+#
+# General setup
+#
+CONFIG_CPU_LITTLE_ENDIAN=y
+CONFIG_NET=y
+# CONFIG_PCI is not set
+# CONFIG_ISA is not set
+# CONFIG_EISA is not set
+CONFIG_TC=y
+# CONFIG_MCA is not set
+# CONFIG_SBUS is not set
+# CONFIG_HOTPLUG is not set
+# CONFIG_PCMCIA is not set
+# CONFIG_HOTPLUG_PCI is not set
+CONFIG_SYSVIPC=y
+# CONFIG_BSD_PROCESS_ACCT is not set
+CONFIG_SYSCTL=y
+CONFIG_KCORE_ELF=y
+# CONFIG_KCORE_AOUT is not set
+# CONFIG_BINFMT_AOUT is not set
+CONFIG_BINFMT_ELF=y
+CONFIG_MIPS32_COMPAT=y
+CONFIG_MIPS32_O32=y
+# CONFIG_MIPS32_N32 is not set
+CONFIG_BINFMT_ELF32=y
+# CONFIG_BINFMT_MISC is not set
+# CONFIG_PM is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+# CONFIG_MTD is not set
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Plug and Play configuration
+#
+# CONFIG_PNP is not set
+# CONFIG_ISAPNP is not set
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_FD is not set
+# CONFIG_BLK_DEV_XD is not set
+# CONFIG_PARIDE is not set
+# CONFIG_BLK_CPQ_DA is not set
+# CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_CISS_SCSI_TAPE is not set
+# CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_LOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_RAM is not set
+# CONFIG_BLK_DEV_INITRD is not set
+# CONFIG_BLK_STATS is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD is not set
+# CONFIG_BLK_DEV_MD is not set
+# CONFIG_MD_LINEAR is not set
+# CONFIG_MD_RAID0 is not set
+# CONFIG_MD_RAID1 is not set
+# CONFIG_MD_RAID5 is not set
+# CONFIG_MD_MULTIPATH is not set
+# CONFIG_BLK_DEV_LVM is not set
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+# CONFIG_NETLINK_DEV is not set
+# CONFIG_NETFILTER is not set
+# CONFIG_FILTER is not set
+CONFIG_UNIX=y
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_PNP=y
+# CONFIG_IP_PNP_DHCP is not set
+CONFIG_IP_PNP_BOOTP=y
+# CONFIG_IP_PNP_RARP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_INET_ECN is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_IPV6 is not set
+# CONFIG_KHTTPD is not set
+# CONFIG_ATM is not set
+# CONFIG_VLAN_8021Q is not set
+
+#
+#  
+#
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+
+#
+# Appletalk devices
+#
+# CONFIG_DEV_APPLETALK is not set
+# CONFIG_DECNET is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_LLC is not set
+# CONFIG_NET_DIVERT is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_FASTROUTE is not set
+# CONFIG_NET_HW_FLOWCONTROL is not set
+
+#
+# QoS and/or fair queueing
+#
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+
+#
+# Telephony Support
+#
+# CONFIG_PHONE is not set
+# CONFIG_PHONE_IXJ is not set
+# CONFIG_PHONE_IXJ_PCMCIA is not set
+
+#
+# ATA/IDE/MFM/RLL support
+#
+# CONFIG_IDE is not set
+# CONFIG_BLK_DEV_IDE_MODES is not set
+# CONFIG_BLK_DEV_HD is not set
+
+#
+# SCSI support
+#
+CONFIG_SCSI=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+CONFIG_SD_EXTRA_DEVS=40
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+# CONFIG_BLK_DEV_SR is not set
+# CONFIG_CHR_DEV_SG is not set
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+# CONFIG_SCSI_DEBUG_QUEUES is not set
+# CONFIG_SCSI_MULTI_LUN is not set
+CONFIG_SCSI_CONSTANTS=y
+# CONFIG_SCSI_LOGGING is not set
+
+#
+# SCSI low-level drivers
+#
+CONFIG_SCSI_DECNCR=y
+# CONFIG_SCSI_DECSII is not set
+# CONFIG_SCSI_7000FASST is not set
+# CONFIG_SCSI_ACARD is not set
+# CONFIG_SCSI_AHA152X is not set
+# CONFIG_SCSI_AHA1542 is not set
+# CONFIG_SCSI_AHA1740 is not set
+# CONFIG_SCSI_AACRAID is not set
+# CONFIG_SCSI_AIC7XXX is not set
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+# CONFIG_SCSI_DPT_I2O is not set
+# CONFIG_SCSI_ADVANSYS is not set
+# CONFIG_SCSI_IN2000 is not set
+# CONFIG_SCSI_AM53C974 is not set
+# CONFIG_SCSI_MEGARAID is not set
+# CONFIG_SCSI_BUSLOGIC is not set
+# CONFIG_SCSI_DMX3191D is not set
+# CONFIG_SCSI_DTC3280 is not set
+# CONFIG_SCSI_EATA is not set
+# CONFIG_SCSI_EATA_DMA is not set
+# CONFIG_SCSI_EATA_PIO is not set
+# CONFIG_SCSI_FUTURE_DOMAIN is not set
+# CONFIG_SCSI_GDTH is not set
+# CONFIG_SCSI_GENERIC_NCR5380 is not set
+# CONFIG_SCSI_INITIO is not set
+# CONFIG_SCSI_INIA100 is not set
+# CONFIG_SCSI_NCR53C406A is not set
+# CONFIG_SCSI_NCR53C7xx is not set
+# CONFIG_SCSI_PAS16 is not set
+# CONFIG_SCSI_PCI2000 is not set
+# CONFIG_SCSI_PCI2220I is not set
+# CONFIG_SCSI_PSI240I is not set
+# CONFIG_SCSI_QLOGIC_FAS is not set
+# CONFIG_SCSI_SIM710 is not set
+# CONFIG_SCSI_SYM53C416 is not set
+# CONFIG_SCSI_T128 is not set
+# CONFIG_SCSI_U14_34F is not set
+# CONFIG_SCSI_DEBUG is not set
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_ETHERTAP is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+# CONFIG_SUNLANCE is not set
+# CONFIG_SUNBMAC is not set
+# CONFIG_SUNQE is not set
+# CONFIG_SUNGEM is not set
+# CONFIG_NET_VENDOR_3COM is not set
+# CONFIG_LANCE is not set
+# CONFIG_NET_VENDOR_SMC is not set
+# CONFIG_NET_VENDOR_RACAL is not set
+# CONFIG_NET_ISA is not set
+# CONFIG_NET_PCI is not set
+# CONFIG_NET_POCKET is not set
+CONFIG_DECLANCE=y
+
+#
+# Ethernet (1000 Mbit)
+#
+# CONFIG_ACENIC is not set
+# CONFIG_DL2K is not set
+# CONFIG_E1000 is not set
+# CONFIG_MYRI_SBUS is not set
+# CONFIG_NS83820 is not set
+# CONFIG_HAMACHI is not set
+# CONFIG_YELLOWFIN is not set
+# CONFIG_SK98LIN is not set
+# CONFIG_TIGON3 is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+# CONFIG_PLIP is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+# CONFIG_NET_RADIO is not set
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+# CONFIG_NET_FC is not set
+# CONFIG_RCPCI is not set
+# CONFIG_SHAPER is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+
+#
+# Amateur Radio support
+#
+# CONFIG_HAMRADIO is not set
+
+#
+# IrDA (infrared) support
+#
+# CONFIG_IRDA is not set
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Input core support
+#
+# CONFIG_INPUT is not set
+# CONFIG_INPUT_KEYBDEV is not set
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+
+#
+# Character devices
+#
+# CONFIG_VT is not set
+# CONFIG_SERIAL is not set
+# CONFIG_SERIAL_EXTENDED is not set
+CONFIG_SERIAL_NONSTANDARD=y
+# CONFIG_COMPUTONE is not set
+# CONFIG_ROCKETPORT is not set
+# CONFIG_CYCLADES is not set
+# CONFIG_DIGIEPCA is not set
+# CONFIG_DIGI is not set
+# CONFIG_ESPSERIAL is not set
+# CONFIG_MOXA_INTELLIO is not set
+# CONFIG_MOXA_SMARTIO is not set
+# CONFIG_SYNCLINK is not set
+# CONFIG_SYNCLINKMP is not set
+# CONFIG_N_HDLC is not set
+# CONFIG_RISCOM8 is not set
+# CONFIG_SPECIALIX is not set
+# CONFIG_SX is not set
+# CONFIG_RIO is not set
+# CONFIG_STALDRV is not set
+# CONFIG_SERIAL_TX3912 is not set
+# CONFIG_SERIAL_TX3912_CONSOLE is not set
+# CONFIG_TXX927_SERIAL is not set
+CONFIG_SERIAL_DEC=y
+CONFIG_SERIAL_DEC_CONSOLE=y
+# CONFIG_DZ is not set
+CONFIG_ZS=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_UNIX98_PTY_COUNT=256
+
+#
+# I2C support
+#
+# CONFIG_I2C is not set
+
+#
+# Mice
+#
+# CONFIG_BUSMOUSE is not set
+# CONFIG_MOUSE is not set
+
+#
+# Joysticks
+#
+# CONFIG_INPUT_GAMEPORT is not set
+
+#
+# Input core support is needed for gameports
+#
+
+#
+# Input core support is needed for joysticks
+#
+# CONFIG_QIC02_TAPE is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+# CONFIG_AMD_PM768 is not set
+# CONFIG_NVRAM is not set
+# CONFIG_RTC is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# CONFIG_FTAPE is not set
+# CONFIG_AGP is not set
+# CONFIG_DRM is not set
+
+#
+# File systems
+#
+# CONFIG_QUOTA is not set
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_REISERFS_FS is not set
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+# CONFIG_ADFS_FS is not set
+# CONFIG_ADFS_FS_RW is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BEFS_DEBUG is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EXT3_FS is not set
+# CONFIG_JBD is not set
+# CONFIG_JBD_DEBUG is not set
+# CONFIG_FAT_FS is not set
+# CONFIG_MSDOS_FS is not set
+# CONFIG_UMSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_JFFS_FS is not set
+# CONFIG_JFFS2_FS is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_TMPFS is not set
+CONFIG_RAMFS=y
+# CONFIG_ISO9660_FS is not set
+# CONFIG_JOLIET is not set
+# CONFIG_ZISOFS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_NTFS_FS is not set
+# CONFIG_NTFS_RW is not set
+# CONFIG_HPFS_FS is not set
+CONFIG_PROC_FS=y
+# CONFIG_DEVFS_FS is not set
+# CONFIG_DEVFS_MOUNT is not set
+# CONFIG_DEVFS_DEBUG is not set
+CONFIG_DEVPTS_FS=y
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_QNX4FS_RW is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_EXT2_FS=y
+# CONFIG_SYSV_FS is not set
+# CONFIG_UDF_FS is not set
+# CONFIG_UDF_RW is not set
+# CONFIG_UFS_FS is not set
+# CONFIG_UFS_FS_WRITE is not set
+
+#
+# Network File Systems
+#
+# CONFIG_CODA_FS is not set
+# CONFIG_INTERMEZZO_FS is not set
+# CONFIG_NFS_FS is not set
+# CONFIG_NFS_V3 is not set
+# CONFIG_ROOT_NFS is not set
+# CONFIG_NFSD is not set
+# CONFIG_NFSD_V3 is not set
+# CONFIG_NFSD_TCP is not set
+# CONFIG_SUNRPC is not set
+# CONFIG_LOCKD is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_NCPFS_PACKET_SIGNING is not set
+# CONFIG_NCPFS_IOCTL_LOCKING is not set
+# CONFIG_NCPFS_STRONG is not set
+# CONFIG_NCPFS_NFS_NS is not set
+# CONFIG_NCPFS_OS2_NS is not set
+# CONFIG_NCPFS_SMALLDOS is not set
+# CONFIG_NCPFS_NLS is not set
+# CONFIG_NCPFS_EXTRAS is not set
+# CONFIG_ZISOFS_FS is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+CONFIG_OSF_PARTITION=y
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_BSD_DISKLABEL is not set
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+# CONFIG_LDM_PARTITION is not set
+# CONFIG_SGI_PARTITION is not set
+CONFIG_ULTRIX_PARTITION=y
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+# CONFIG_SMB_NLS is not set
+# CONFIG_NLS is not set
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# Sound
+#
+# CONFIG_SOUND is not set
+
+#
+# USB support
+#
+# CONFIG_USB is not set
+
+#
+# Bluetooth support
+#
+# CONFIG_BLUEZ is not set
+
+#
+# Kernel hacking
+#
+CONFIG_CROSSCOMPILE=y
+# CONFIG_DEBUG is not set
+# CONFIG_REMOTE_DEBUG is not set
+# CONFIG_GDB_CONSOLE is not set
+# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_MIPS_UNCACHED is not set
+
+#
+# Library routines
+#
+# CONFIG_ZLIB_INFLATE is not set
+# CONFIG_ZLIB_DEFLATE is not set
diff -urNd -urNd linux-2.4.20/arch/mips64/defconfig-ip22 linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig-ip22
--- linux-2.4.20/arch/mips64/defconfig-ip22	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig-ip22	2003-02-24 15:17:03.000000000 -0600
@@ -21,17 +21,22 @@
 # Machine selection
 #
 # CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
 # CONFIG_MIPS_PB1000 is not set
 # CONFIG_MIPS_PB1100 is not set
 # CONFIG_MIPS_PB1500 is not set
-# CONFIG_ALGOR_P4032 is not set
 # CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
 # CONFIG_MIPS_COBALT is not set
 # CONFIG_DECSTATION is not set
 # CONFIG_MIPS_EV64120 is not set
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MAGNUM_4000 is not set
@@ -51,21 +56,22 @@
 # CONFIG_SGI_IP32 is not set
 # CONFIG_SIBYTE_SB1xxx_SOC is not set
 # CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
 # CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
 # CONFIG_ZAO_CAPCELLA is not set
 # CONFIG_HIGHMEM is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
 CONFIG_ARC32=y
-CONFIG_ARC_CONSOLE=y
 CONFIG_ARC_MEMORY=y
+CONFIG_ARC_PROMLIB=y
 CONFIG_BOARD_SCACHE=y
 CONFIG_BOOT_ELF32=y
-CONFIG_SWAP_IO_SPACE=y
+# CONFIG_SWAP_IO_SPACE_W is not set
+CONFIG_SWAP_IO_SPACE_L=y
 CONFIG_IRQ_CPU=y
 CONFIG_L1_CACHE_SHIFT=5
-CONFIG_NONCOHERENT_IO=y
-CONFIG_NEW_IRQ=y
 CONFIG_NEW_TIME_C=y
 CONFIG_NONCOHERENT_IO=y
 CONFIG_PC_KEYB=y
@@ -91,7 +97,6 @@
 # CONFIG_CPU_R10000 is not set
 # CONFIG_CPU_RM7000 is not set
 # CONFIG_CPU_SB1 is not set
-CONFIG_BOARD_SCACHE=y
 # CONFIG_64BIT_PHYS_ADDR is not set
 # CONFIG_CPU_ADVANCED is not set
 CONFIG_CPU_HAS_LLSC=y
@@ -125,6 +130,8 @@
 # CONFIG_BINFMT_AOUT is not set
 CONFIG_BINFMT_ELF=y
 CONFIG_MIPS32_COMPAT=y
+CONFIG_MIPS32_O32=y
+# CONFIG_MIPS32_N32 is not set
 CONFIG_BINFMT_ELF32=y
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_PM is not set
@@ -464,6 +471,7 @@
 # CONFIG_MACHZ_WDT is not set
 CONFIG_INDYDOG=y
 # CONFIG_AMD7XX_TCO is not set
+# CONFIG_AMD_PM768 is not set
 # CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_DTLK is not set
@@ -610,8 +618,8 @@
 #
 # SGI devices
 #
-CONFIG_SGI_SERIAL=y
-# CONFIG_SERIAL_CONSOLE is not set
+CONFIG_IP22_SERIAL=y
+# CONFIG_IP22_SERIAL_CONSOLE is not set
 CONFIG_SGI_DS1286=y
 # CONFIG_SGI_NEWPORT_GFX is not set
 
@@ -630,6 +638,8 @@
 #
 CONFIG_CROSSCOMPILE=y
 # CONFIG_DEBUG is not set
+# CONFIG_REMOTE_DEBUG is not set
+# CONFIG_GDB_CONSOLE is not set
 # CONFIG_MAGIC_SYSRQ is not set
 # CONFIG_MIPS_UNCACHED is not set
 
diff -urNd -urNd linux-2.4.20/arch/mips64/defconfig-ip27 linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig-ip27
--- linux-2.4.20/arch/mips64/defconfig-ip27	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig-ip27	2003-02-24 15:17:03.000000000 -0600
@@ -19,17 +19,22 @@
 # Machine selection
 #
 # CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
 # CONFIG_MIPS_PB1000 is not set
 # CONFIG_MIPS_PB1100 is not set
 # CONFIG_MIPS_PB1500 is not set
-# CONFIG_ALGOR_P4032 is not set
 # CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
 # CONFIG_MIPS_COBALT is not set
 # CONFIG_DECSTATION is not set
 # CONFIG_MIPS_EV64120 is not set
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MAGNUM_4000 is not set
@@ -52,20 +57,23 @@
 # CONFIG_MAPPED_KERNEL is not set
 # CONFIG_REPLICATE_KTEXT is not set
 # CONFIG_REPLICATE_EXHANDLERS is not set
-CONFIG_SMP=y
+CONFIG_SMP_CAPABLE=y
 # CONFIG_SGI_IP32 is not set
 # CONFIG_SIBYTE_SB1xxx_SOC is not set
 # CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
 # CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
 # CONFIG_ZAO_CAPCELLA is not set
 # CONFIG_HIGHMEM is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
 CONFIG_BOOT_ELF64=y
 CONFIG_ARC64=y
+CONFIG_L1_CACHE_SHIFT=7
+CONFIG_NEW_TIME_C=y
 CONFIG_PCI=y
 CONFIG_QL_ISP_A64=y
-CONFIG_L1_CACHE_SHIFT=7
 # CONFIG_MIPS_AU1000 is not set
 
 #
@@ -87,6 +95,7 @@
 CONFIG_CPU_R10000=y
 # CONFIG_CPU_RM7000 is not set
 # CONFIG_CPU_SB1 is not set
+CONFIG_SMP=y
 # CONFIG_64BIT_PHYS_ADDR is not set
 # CONFIG_CPU_ADVANCED is not set
 CONFIG_CPU_HAS_LLSC=y
@@ -119,6 +128,8 @@
 # CONFIG_BINFMT_AOUT is not set
 CONFIG_BINFMT_ELF=y
 CONFIG_MIPS32_COMPAT=y
+CONFIG_MIPS32_O32=y
+# CONFIG_MIPS32_N32 is not set
 CONFIG_BINFMT_ELF32=y
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_PM is not set
@@ -438,6 +449,7 @@
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
+# CONFIG_AMD_PM768 is not set
 # CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_DTLK is not set
@@ -467,8 +479,8 @@
 # CONFIG_BEFS_FS is not set
 # CONFIG_BEFS_DEBUG is not set
 # CONFIG_BFS_FS is not set
-# CONFIG_EXT3_FS is not set
-# CONFIG_JBD is not set
+CONFIG_EXT3_FS=y
+CONFIG_JBD=y
 # CONFIG_JBD_DEBUG is not set
 # CONFIG_FAT_FS is not set
 # CONFIG_MSDOS_FS is not set
@@ -578,9 +590,9 @@
 # Kernel hacking
 #
 CONFIG_CROSSCOMPILE=y
+# CONFIG_DEBUG is not set
 # CONFIG_REMOTE_DEBUG is not set
 # CONFIG_GDB_CONSOLE is not set
-# CONFIG_DEBUG is not set
 # CONFIG_MAGIC_SYSRQ is not set
 
 #
diff -urNd -urNd linux-2.4.20/arch/mips64/defconfig-ip32 linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig-ip32
--- linux-2.4.20/arch/mips64/defconfig-ip32	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig-ip32	2003-02-24 15:17:03.000000000 -0600
@@ -19,17 +19,22 @@
 # Machine selection
 #
 # CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
 # CONFIG_MIPS_PB1000 is not set
 # CONFIG_MIPS_PB1100 is not set
 # CONFIG_MIPS_PB1500 is not set
-# CONFIG_ALGOR_P4032 is not set
 # CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
 # CONFIG_MIPS_COBALT is not set
 # CONFIG_DECSTATION is not set
 # CONFIG_MIPS_EV64120 is not set
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MAGNUM_4000 is not set
@@ -49,15 +54,21 @@
 CONFIG_SGI_IP32=y
 # CONFIG_SIBYTE_SB1xxx_SOC is not set
 # CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
 # CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
 # CONFIG_ZAO_CAPCELLA is not set
 # CONFIG_HIGHMEM is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
 CONFIG_ARC_MEMORY=y
+CONFIG_ARC_PROMLIB=y
 CONFIG_ARC32=y
+CONFIG_BOARD_SCACHE=y
+CONFIG_R5000_CPU_SCACHE=y
 CONFIG_BOOT_ELF32=y
 CONFIG_L1_CACHE_SHIFT=5
+CONFIG_NEW_TIME_C=y
 CONFIG_NONCOHERENT_IO=y
 CONFIG_PC_KEYB=y
 CONFIG_PCI=y
@@ -82,7 +93,6 @@
 # CONFIG_CPU_R10000 is not set
 # CONFIG_CPU_RM7000 is not set
 # CONFIG_CPU_SB1 is not set
-CONFIG_BOARD_SCACHE=y
 # CONFIG_64BIT_PHYS_ADDR is not set
 # CONFIG_CPU_ADVANCED is not set
 CONFIG_CPU_HAS_LLSC=y
@@ -115,6 +125,8 @@
 # CONFIG_BINFMT_AOUT is not set
 CONFIG_BINFMT_ELF=y
 CONFIG_MIPS32_COMPAT=y
+CONFIG_MIPS32_O32=y
+# CONFIG_MIPS32_N32 is not set
 CONFIG_BINFMT_ELF32=y
 CONFIG_BINFMT_MISC=y
 # CONFIG_PM is not set
@@ -460,6 +472,7 @@
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
+# CONFIG_AMD_PM768 is not set
 # CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_DTLK is not set
@@ -596,9 +609,9 @@
 # Kernel hacking
 #
 CONFIG_CROSSCOMPILE=y
+# CONFIG_DEBUG is not set
 # CONFIG_REMOTE_DEBUG is not set
 # CONFIG_GDB_CONSOLE is not set
-# CONFIG_DEBUG is not set
 CONFIG_MAGIC_SYSRQ=y
 CONFIG_MIPS_UNCACHED=y
 
diff -urNd -urNd linux-2.4.20/arch/mips64/defconfig-malta linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig-malta
--- linux-2.4.20/arch/mips64/defconfig-malta	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig-malta	2003-02-14 12:48:04.000000000 -0600
@@ -13,23 +13,30 @@
 #
 # Loadable module support
 #
-# CONFIG_MODULES is not set
+CONFIG_MODULES=y
+# CONFIG_MODVERSIONS is not set
+CONFIG_KMOD=y
 
 #
 # Machine selection
 #
 # CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
 # CONFIG_MIPS_PB1000 is not set
 # CONFIG_MIPS_PB1100 is not set
 # CONFIG_MIPS_PB1500 is not set
-# CONFIG_ALGOR_P4032 is not set
 # CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
 # CONFIG_MIPS_COBALT is not set
 # CONFIG_DECSTATION is not set
 # CONFIG_MIPS_EV64120 is not set
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MAGNUM_4000 is not set
@@ -49,7 +56,9 @@
 # CONFIG_SGI_IP32 is not set
 # CONFIG_SIBYTE_SB1xxx_SOC is not set
 # CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
 # CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
 # CONFIG_ZAO_CAPCELLA is not set
 # CONFIG_HIGHMEM is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
@@ -58,10 +67,10 @@
 CONFIG_HAVE_STD_PC_SERIAL_PORT=y
 CONFIG_I8259=y
 CONFIG_L1_CACHE_SHIFT=5
-CONFIG_NEW_IRQ=y
 CONFIG_NEW_TIME_C=y
 CONFIG_NONCOHERENT_IO=y
-CONFIG_SWAP_IO_SPACE=y
+CONFIG_SWAP_IO_SPACE_W=y
+CONFIG_SWAP_IO_SPACE_L=y
 CONFIG_PC_KEYB=y
 CONFIG_PCI=y
 # CONFIG_MIPS_AU1000 is not set
@@ -114,6 +123,8 @@
 # CONFIG_BINFMT_AOUT is not set
 CONFIG_BINFMT_ELF=y
 CONFIG_MIPS32_COMPAT=y
+CONFIG_MIPS32_O32=y
+# CONFIG_MIPS32_N32 is not set
 CONFIG_BINFMT_ELF32=y
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_PM is not set
@@ -176,8 +187,8 @@
 # CONFIG_IP_MULTICAST is not set
 # CONFIG_IP_ADVANCED_ROUTER is not set
 CONFIG_IP_PNP=y
-# CONFIG_IP_PNP_DHCP is not set
-# CONFIG_IP_PNP_BOOTP is not set
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
 # CONFIG_IP_PNP_RARP is not set
 # CONFIG_NET_IPIP is not set
 # CONFIG_NET_IPGRE is not set
@@ -449,6 +460,7 @@
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
+# CONFIG_AMD_PM768 is not set
 # CONFIG_NVRAM is not set
 CONFIG_RTC=y
 # CONFIG_DTLK is not set
@@ -523,13 +535,14 @@
 # CONFIG_CODA_FS is not set
 # CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=y
-# CONFIG_NFS_V3 is not set
+CONFIG_NFS_V3=y
 CONFIG_ROOT_NFS=y
-# CONFIG_NFSD is not set
-# CONFIG_NFSD_V3 is not set
+CONFIG_NFSD=y
+CONFIG_NFSD_V3=y
 # CONFIG_NFSD_TCP is not set
 CONFIG_SUNRPC=y
 CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
 # CONFIG_SMB_FS is not set
 # CONFIG_NCP_FS is not set
 # CONFIG_NCPFS_PACKET_SIGNING is not set
@@ -574,9 +587,9 @@
 # Kernel hacking
 #
 CONFIG_CROSSCOMPILE=y
+# CONFIG_DEBUG is not set
 # CONFIG_REMOTE_DEBUG is not set
 # CONFIG_GDB_CONSOLE is not set
-# CONFIG_DEBUG is not set
 # CONFIG_MAGIC_SYSRQ is not set
 # CONFIG_MIPS_UNCACHED is not set
 
diff -urNd -urNd linux-2.4.20/arch/mips64/defconfig-sb1250-swarm linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig-sb1250-swarm
--- linux-2.4.20/arch/mips64/defconfig-sb1250-swarm	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig-sb1250-swarm	2003-02-24 15:17:03.000000000 -0600
@@ -21,17 +21,22 @@
 # Machine selection
 #
 # CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
 # CONFIG_MIPS_PB1000 is not set
 # CONFIG_MIPS_PB1100 is not set
 # CONFIG_MIPS_PB1500 is not set
-# CONFIG_ALGOR_P4032 is not set
 # CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
 # CONFIG_MIPS_COBALT is not set
 # CONFIG_DECSTATION is not set
 # CONFIG_MIPS_EV64120 is not set
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MAGNUM_4000 is not set
@@ -50,25 +55,38 @@
 # CONFIG_SGI_IP27 is not set
 # CONFIG_SGI_IP32 is not set
 CONFIG_SIBYTE_SB1xxx_SOC=y
+CONFIG_SIBYTE_SWARM=y
+# CONFIG_SIBYTE_SENTOSA is not set
+# CONFIG_SIBYTE_CRHINE is not set
+# CONFIG_SIBYTE_CARMEL is not set
+# CONFIG_SIBYTE_CRHONE is not set
+# CONFIG_SIBYTE_RHONE is not set
+# CONFIG_SIBYTE_UNKNOWN is not set
+CONFIG_SIBYTE_BOARD=y
 CONFIG_SIBYTE_SB1250=y
-# CONFIG_SIMULATION is not set
+CONFIG_CPU_SB1_PASS_1=y
+# CONFIG_CPU_SB1_PASS_2 is not set
+# CONFIG_CPU_SB1_PASS_2_2 is not set
 CONFIG_SIBYTE_CFE=y
 # CONFIG_SIBYTE_CFE_CONSOLE is not set
+# CONFIG_SIBYTE_BUS_WATCHER is not set
 # CONFIG_SIBYTE_SB1250_PROF is not set
-# CONFIG_BCM1250_TBPROF is not set
-CONFIG_SMP=y
+# CONFIG_SIBYTE_TBPROF is not set
 # CONFIG_PCI is not set
-CONFIG_SIBYTE_SWARM=y
+CONFIG_SIBYTE_GENBUS_IDE=y
+CONFIG_SMP_CAPABLE=y
 # CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
 # CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
 # CONFIG_ZAO_CAPCELLA is not set
 # CONFIG_HIGHMEM is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
-CONFIG_NEW_IRQ=y
 CONFIG_NEW_TIME_C=y
 CONFIG_DUMMY_KEYB=y
-CONFIG_SWAP_IO_SPACE=y
+CONFIG_SWAP_IO_SPACE_W=y
+CONFIG_SWAP_IO_SPACE_L=y
 CONFIG_BOOT_ELF32=y
 # CONFIG_MIPS_AU1000 is not set
 
@@ -91,14 +109,9 @@
 # CONFIG_CPU_R10000 is not set
 # CONFIG_CPU_RM7000 is not set
 CONFIG_CPU_SB1=y
-CONFIG_CPU_SB1_PASS_1=y
-# CONFIG_CPU_SB1_PASS_2 is not set
-# CONFIG_CPU_SB1_PASS_2_2 is not set
+CONFIG_SMP=y
 CONFIG_SB1_PASS_1_WORKAROUNDS=y
 CONFIG_CPU_HAS_PREFETCH=y
-CONFIG_SB1_CACHE_ERROR=y
-CONFIG_SB1_CERR_IGNORE_RECOVERABLE=y
-# CONFIG_SB1_CERR_SPIN is not set
 CONFIG_VTAG_ICACHE=y
 # CONFIG_64BIT_PHYS_ADDR is not set
 # CONFIG_CPU_ADVANCED is not set
@@ -130,8 +143,10 @@
 # CONFIG_KCORE_AOUT is not set
 # CONFIG_BINFMT_AOUT is not set
 CONFIG_BINFMT_ELF=y
-# CONFIG_MIPS32_COMPAT is not set
-# CONFIG_BINFMT_ELF32 is not set
+CONFIG_MIPS32_COMPAT=y
+CONFIG_MIPS32_O32=y
+# CONFIG_MIPS32_N32 is not set
+CONFIG_BINFMT_ELF32=y
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_PM is not set
 
@@ -183,8 +198,9 @@
 #
 # Networking options
 #
-# CONFIG_PACKET is not set
-# CONFIG_NETLINK_DEV is not set
+CONFIG_PACKET=y
+CONFIG_PACKET_MMAP=y
+CONFIG_NETLINK_DEV=y
 # CONFIG_NETFILTER is not set
 # CONFIG_FILTER is not set
 CONFIG_UNIX=y
@@ -374,8 +390,6 @@
 CONFIG_SIBYTE_SB1250_DUART=y
 CONFIG_SIBYTE_SB1250_DUART_CONSOLE=y
 CONFIG_SERIAL_CONSOLE=y
-CONFIG_SB1250_DUART_OUTPUT_BUF_SIZE=1024
-# CONFIG_SIBYTE_SB1250_DUART_NO_PORT_1 is not set
 CONFIG_UNIX98_PTYS=y
 CONFIG_UNIX98_PTY_COUNT=256
 
@@ -408,6 +422,7 @@
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
+# CONFIG_AMD_PM768 is not set
 # CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_DTLK is not set
@@ -535,6 +550,9 @@
 #
 CONFIG_CROSSCOMPILE=y
 # CONFIG_DEBUG is not set
+# CONFIG_REMOTE_DEBUG is not set
+# CONFIG_GDB_CONSOLE is not set
+# CONFIG_SB1XXX_CORELIS is not set
 # CONFIG_MAGIC_SYSRQ is not set
 
 #
diff -urNd -urNd linux-2.4.20/arch/mips64/defconfig-sead linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig-sead
--- linux-2.4.20/arch/mips64/defconfig-sead	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig-sead	2003-02-24 15:17:03.000000000 -0600
@@ -19,17 +19,22 @@
 # Machine selection
 #
 # CONFIG_ACER_PICA_61 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
 # CONFIG_MIPS_PB1000 is not set
 # CONFIG_MIPS_PB1100 is not set
 # CONFIG_MIPS_PB1500 is not set
-# CONFIG_ALGOR_P4032 is not set
 # CONFIG_BAGET_MIPS is not set
+# CONFIG_CASIO_E55 is not set
 # CONFIG_MIPS_COBALT is not set
 # CONFIG_DECSTATION is not set
 # CONFIG_MIPS_EV64120 is not set
 # CONFIG_MIPS_EV96100 is not set
 # CONFIG_MIPS_IVR is not set
 # CONFIG_HP_LASERJET is not set
+# CONFIG_IBM_WORKPAD is not set
+# CONFIG_LASAT is not set
 # CONFIG_MIPS_ITE8172 is not set
 # CONFIG_MIPS_ATLAS is not set
 # CONFIG_MIPS_MAGNUM_4000 is not set
@@ -49,13 +54,14 @@
 # CONFIG_SGI_IP32 is not set
 # CONFIG_SIBYTE_SB1xxx_SOC is not set
 # CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TANBAC_TB0226 is not set
 # CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_VICTOR_MPC30X is not set
 # CONFIG_ZAO_CAPCELLA is not set
 # CONFIG_HIGHMEM is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
 CONFIG_L1_CACHE_SHIFT=5
-CONFIG_NEW_IRQ=y
 CONFIG_NEW_TIME_C=y
 CONFIG_NONCOHERENT_IO=y
 # CONFIG_PCI is not set
@@ -109,6 +115,8 @@
 # CONFIG_BINFMT_AOUT is not set
 CONFIG_BINFMT_ELF=y
 CONFIG_MIPS32_COMPAT=y
+CONFIG_MIPS32_O32=y
+# CONFIG_MIPS32_N32 is not set
 CONFIG_BINFMT_ELF32=y
 # CONFIG_BINFMT_MISC is not set
 # CONFIG_PM is not set
@@ -236,6 +244,7 @@
 # Watchdog Cards
 #
 # CONFIG_WATCHDOG is not set
+# CONFIG_AMD_PM768 is not set
 # CONFIG_NVRAM is not set
 # CONFIG_RTC is not set
 # CONFIG_DTLK is not set
@@ -348,9 +357,9 @@
 # Kernel hacking
 #
 CONFIG_CROSSCOMPILE=y
+# CONFIG_DEBUG is not set
 # CONFIG_REMOTE_DEBUG is not set
 # CONFIG_GDB_CONSOLE is not set
-# CONFIG_DEBUG is not set
 # CONFIG_MAGIC_SYSRQ is not set
 # CONFIG_MIPS_UNCACHED is not set
 
diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/binfmt_elf32.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/binfmt_elf32.c
--- linux-2.4.20/arch/mips64/kernel/binfmt_elf32.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/binfmt_elf32.c	1969-12-31 18:00:00.000000000 -0600
@@ -1,118 +0,0 @@
-/*
- * Support for 32-bit Linux/MIPS ELF binaries.
- *
- * Copyright (C) 1999, 2001 Ralf Baechle
- * Copyright (C) 1999, 2001 Silicon Graphics, Inc.
- *
- * Heavily inspired by the 32-bit Sparc compat code which is
- * Copyright (C) 1995, 1996, 1997, 1998 David S. Miller (davem@redhat.com)
- * Copyright (C) 1995, 1996, 1997, 1998 Jakub Jelinek   (jj@ultra.linux.cz)
- */
-
-#define ELF_ARCH		EM_MIPS
-#define ELF_CLASS		ELFCLASS32
-#ifdef __MIPSEB__
-#define ELF_DATA		ELFDATA2MSB;
-#else /* __MIPSEL__ */
-#define ELF_DATA		ELFDATA2LSB;
-#endif
-
-/* ELF register definitions */
-#define ELF_NGREG	45
-#define ELF_NFPREG	33
-
-typedef unsigned int elf_greg_t;
-typedef elf_greg_t elf_gregset_t[ELF_NGREG];
-
-typedef double elf_fpreg_t;
-typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
-
-/*
- * This is used to ensure we don't load something for the wrong architecture.
- */
-#define elf_check_arch(hdr)						\
-({									\
-	int __res = 1;							\
-	struct elfhdr *__h = (hdr);					\
-									\
-	if (__h->e_machine != EM_MIPS)					\
-		__res = 0;						\
-	if (__h->e_ident[EI_CLASS] != ELFCLASS32)			\
-		__res = 0;						\
-	if ((__h->e_flags & EF_MIPS_ABI2) != 0)				\
-		__res = 0;						\
-	if (((__h->e_flags & EF_MIPS_ABI) != 0) &&			\
-	    ((__h->e_flags & EF_MIPS_ABI) != EF_MIPS_ABI_O32))		\
-		__res = 0;						\
-									\
-	__res;								\
-})
-
-#define TASK32_SIZE		0x80000000UL
-#undef ELF_ET_DYN_BASE
-#define ELF_ET_DYN_BASE         (TASK32_SIZE / 3 * 2)
-
-#include <asm/processor.h>
-#include <linux/module.h>
-#include <linux/config.h>
-#include <linux/elfcore.h>
-
-struct timeval32
-{
-	int tv_sec, tv_usec;
-};
-
-#define elf_prstatus elf_prstatus32
-struct elf_prstatus32
-{
-	struct elf_siginfo pr_info;	/* Info associated with signal */
-	short	pr_cursig;		/* Current signal */
-	unsigned int pr_sigpend;	/* Set of pending signals */
-	unsigned int pr_sighold;	/* Set of held signals */
-	pid_t	pr_pid;
-	pid_t	pr_ppid;
-	pid_t	pr_pgrp;
-	pid_t	pr_sid;
-	struct timeval32 pr_utime;	/* User time */
-	struct timeval32 pr_stime;	/* System time */
-	struct timeval32 pr_cutime;	/* Cumulative user time */
-	struct timeval32 pr_cstime;	/* Cumulative system time */
-	elf_gregset_t pr_reg;	/* GP registers */
-	int pr_fpvalid;		/* True if math co-processor being used.  */
-};
-
-#define elf_prpsinfo elf_prpsinfo32
-struct elf_prpsinfo32
-{
-	char	pr_state;	/* numeric process state */
-	char	pr_sname;	/* char for pr_state */
-	char	pr_zomb;	/* zombie */
-	char	pr_nice;	/* nice val */
-	unsigned int pr_flag;	/* flags */
-	u16	pr_uid;
-	u16	pr_gid;
-	pid_t	pr_pid, pr_ppid, pr_pgrp, pr_sid;
-	/* Lots missing */
-	char	pr_fname[16];	/* filename of executable */
-	char	pr_psargs[ELF_PRARGSZ];	/* initial part of arg list */
-};
-
-#define elf_addr_t	u32
-#define elf_caddr_t	u32
-#define init_elf_binfmt init_elf32_binfmt
-#undef CONFIG_BINFMT_ELF
-#ifdef CONFIG_BINFMT_ELF32
-#define CONFIG_BINFMT_ELF CONFIG_BINFMT_ELF32
-#endif
-#undef CONFIG_BINFMT_ELF_MODULE
-#ifdef CONFIG_BINFMT_ELF32_MODULE
-#define CONFIG_BINFMT_ELF_MODULE CONFIG_BINFMT_ELF32_MODULE
-#endif
-
-MODULE_DESCRIPTION("Binary format loader for compatibility with 32bit Linux/MIPS binaries");
-MODULE_AUTHOR("Ralf Baechle (ralf@oss.sgi.com)");
-
-#undef MODULE_DESCRIPTION
-#undef MODULE_AUTHOR
-
-#include "../../../fs/binfmt_elf.c"
diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/binfmt_elfn32.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/binfmt_elfn32.c
--- linux-2.4.20/arch/mips64/kernel/binfmt_elfn32.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/binfmt_elfn32.c	2002-12-19 18:48:16.000000000 -0600
@@ -0,0 +1,119 @@
+/*
+ * Support for n32 Linux/MIPS ELF binaries.
+ *
+ * Copyright (C) 1999, 2001 Ralf Baechle
+ * Copyright (C) 1999, 2001 Silicon Graphics, Inc.
+ *
+ * Heavily inspired by the 32-bit Sparc compat code which is
+ * Copyright (C) 1995, 1996, 1997, 1998 David S. Miller (davem@redhat.com)
+ * Copyright (C) 1995, 1996, 1997, 1998 Jakub Jelinek   (jj@ultra.linux.cz)
+ */
+
+#define ELF_ARCH		EM_MIPS
+#define ELF_CLASS		ELFCLASS32
+#ifdef __MIPSEB__
+#define ELF_DATA		ELFDATA2MSB;
+#else /* __MIPSEL__ */
+#define ELF_DATA		ELFDATA2LSB;
+#endif
+
+/* ELF register definitions */
+#define ELF_NGREG	45
+#define ELF_NFPREG	33
+
+typedef unsigned long elf_greg_t;
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+typedef double elf_fpreg_t;
+typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
+
+/*
+ * This is used to ensure we don't load something for the wrong architecture.
+ */
+#define elf_check_arch(hdr)						\
+({									\
+	int __res = 1;							\
+	struct elfhdr *__h = (hdr);					\
+									\
+	if (__h->e_machine != EM_MIPS)					\
+		__res = 0;						\
+	if (__h->e_ident[EI_CLASS] != ELFCLASS32)			\
+		__res = 0;						\
+	if (((__h->e_flags & EF_MIPS_ABI2) == 0) ||			\
+	    ((__h->e_flags & EF_MIPS_ABI) != 0))			\
+		__res = 0;						\
+									\
+	__res;								\
+})
+
+#define TASK32_SIZE		0x7fff8000UL
+#undef ELF_ET_DYN_BASE
+#define ELF_ET_DYN_BASE         (TASK32_SIZE / 3 * 2)
+
+#include <asm/processor.h>
+#include <linux/module.h>
+#include <linux/config.h>
+#include <linux/elfcore.h>
+
+struct timeval32
+{
+	int tv_sec, tv_usec;
+};
+
+#define elf_prstatus elf_prstatus32
+struct elf_prstatus32
+{
+	struct elf_siginfo pr_info;	/* Info associated with signal */
+	short	pr_cursig;		/* Current signal */
+	unsigned int pr_sigpend;	/* Set of pending signals */
+	unsigned int pr_sighold;	/* Set of held signals */
+	pid_t	pr_pid;
+	pid_t	pr_ppid;
+	pid_t	pr_pgrp;
+	pid_t	pr_sid;
+	struct timeval32 pr_utime;	/* User time */
+	struct timeval32 pr_stime;	/* System time */
+	struct timeval32 pr_cutime;	/* Cumulative user time */
+	struct timeval32 pr_cstime;	/* Cumulative system time */
+	elf_gregset_t pr_reg;	/* GP registers */
+	int pr_fpvalid;		/* True if math co-processor being used.  */
+};
+
+#define elf_prpsinfo elf_prpsinfo32
+struct elf_prpsinfo32
+{
+	char	pr_state;	/* numeric process state */
+	char	pr_sname;	/* char for pr_state */
+	char	pr_zomb;	/* zombie */
+	char	pr_nice;	/* nice val */
+	unsigned int pr_flag;	/* flags */
+	__kernel_uid_t	pr_uid;
+	__kernel_gid_t	pr_gid;
+	pid_t	pr_pid, pr_ppid, pr_pgrp, pr_sid;
+	/* Lots missing */
+	char	pr_fname[16];	/* filename of executable */
+	char	pr_psargs[ELF_PRARGSZ];	/* initial part of arg list */
+};
+
+#define elf_addr_t	u32
+#define elf_caddr_t	u32
+#define init_elf_binfmt init_elfn32_binfmt
+
+#define ELF_CORE_EFLAGS EF_MIPS_ABI2
+
+#undef CONFIG_BINFMT_ELF
+#ifdef CONFIG_BINFMT_ELF32
+#define CONFIG_BINFMT_ELF CONFIG_BINFMT_ELF32
+#endif
+#undef CONFIG_BINFMT_ELF_MODULE
+#ifdef CONFIG_BINFMT_ELF32_MODULE
+#define CONFIG_BINFMT_ELF_MODULE CONFIG_BINFMT_ELF32_MODULE
+#endif
+
+MODULE_DESCRIPTION("Binary format loader for compatibility with n32 Linux/MIPS binaries");
+MODULE_AUTHOR("Ralf Baechle (ralf@linux-mips.org)");
+
+#undef MODULE_DESCRIPTION
+#undef MODULE_AUTHOR
+
+#include "../../../fs/binfmt_elf.c"
diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/binfmt_elfo32.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/binfmt_elfo32.c
--- linux-2.4.20/arch/mips64/kernel/binfmt_elfo32.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/binfmt_elfo32.c	2002-12-03 08:23:05.000000000 -0600
@@ -0,0 +1,140 @@
+/*
+ * Support for o32 Linux/MIPS ELF binaries.
+ *
+ * Copyright (C) 1999, 2001 Ralf Baechle
+ * Copyright (C) 1999, 2001 Silicon Graphics, Inc.
+ *
+ * Heavily inspired by the 32-bit Sparc compat code which is
+ * Copyright (C) 1995, 1996, 1997, 1998 David S. Miller (davem@redhat.com)
+ * Copyright (C) 1995, 1996, 1997, 1998 Jakub Jelinek   (jj@ultra.linux.cz)
+ */
+
+#define ELF_ARCH		EM_MIPS
+#define ELF_CLASS		ELFCLASS32
+#ifdef __MIPSEB__
+#define ELF_DATA		ELFDATA2MSB;
+#else /* __MIPSEL__ */
+#define ELF_DATA		ELFDATA2LSB;
+#endif
+
+/* ELF register definitions */
+#define ELF_NGREG	45
+#define ELF_NFPREG	33
+
+typedef unsigned int elf_greg_t;
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+typedef double elf_fpreg_t;
+typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
+
+/*
+ * This is used to ensure we don't load something for the wrong architecture.
+ */
+#define elf_check_arch(hdr)						\
+({									\
+	int __res = 1;							\
+	struct elfhdr *__h = (hdr);					\
+									\
+	if (__h->e_machine != EM_MIPS)					\
+		__res = 0;						\
+	if (__h->e_ident[EI_CLASS] != ELFCLASS32)			\
+		__res = 0;						\
+	if ((__h->e_flags & EF_MIPS_ABI2) != 0)				\
+		__res = 0;						\
+	if (((__h->e_flags & EF_MIPS_ABI) != 0) &&			\
+	    ((__h->e_flags & EF_MIPS_ABI) != EF_MIPS_ABI_O32))		\
+		__res = 0;						\
+									\
+	__res;								\
+})
+
+#define TASK32_SIZE		0x7fff8000UL
+#undef ELF_ET_DYN_BASE
+#define ELF_ET_DYN_BASE         (TASK32_SIZE / 3 * 2)
+
+#include <asm/processor.h>
+#include <linux/module.h>
+#include <linux/config.h>
+#include <linux/elfcore.h>
+
+struct timeval32
+{
+	int tv_sec, tv_usec;
+};
+
+#define elf_prstatus elf_prstatus32
+struct elf_prstatus32
+{
+	struct elf_siginfo pr_info;	/* Info associated with signal */
+	short	pr_cursig;		/* Current signal */
+	unsigned int pr_sigpend;	/* Set of pending signals */
+	unsigned int pr_sighold;	/* Set of held signals */
+	pid_t	pr_pid;
+	pid_t	pr_ppid;
+	pid_t	pr_pgrp;
+	pid_t	pr_sid;
+	struct timeval32 pr_utime;	/* User time */
+	struct timeval32 pr_stime;	/* System time */
+	struct timeval32 pr_cutime;	/* Cumulative user time */
+	struct timeval32 pr_cstime;	/* Cumulative system time */
+	elf_gregset_t pr_reg;	/* GP registers */
+	int pr_fpvalid;		/* True if math co-processor being used.  */
+};
+
+#define elf_prpsinfo elf_prpsinfo32
+struct elf_prpsinfo32
+{
+	char	pr_state;	/* numeric process state */
+	char	pr_sname;	/* char for pr_state */
+	char	pr_zomb;	/* zombie */
+	char	pr_nice;	/* nice val */
+	unsigned int pr_flag;	/* flags */
+	__kernel_uid_t	pr_uid;
+	__kernel_gid_t	pr_gid;
+	pid_t	pr_pid, pr_ppid, pr_pgrp, pr_sid;
+	/* Lots missing */
+	char	pr_fname[16];	/* filename of executable */
+	char	pr_psargs[ELF_PRARGSZ];	/* initial part of arg list */
+};
+
+#define elf_addr_t	u32
+#define elf_caddr_t	u32
+#define init_elf_binfmt init_elf32_binfmt
+
+
+#undef ELF_CORE_COPY_REGS
+#define ELF_CORE_COPY_REGS(_dest,_regs) elf32_core_copy_regs(_dest,_regs);
+
+void elf32_core_copy_regs(elf_gregset_t _dest, struct pt_regs *_regs)
+{
+	int i;
+
+	memset(_dest, 0, sizeof(elf_gregset_t));
+
+	/* XXXKW the 6 is from EF_REG0 in gdb/gdb/mips-linux-tdep.c, include/asm-mips/reg.h */
+	for (i=6; i<38; i++)
+		_dest[i] = (elf_greg_t) _regs->regs[i-6];
+	_dest[i++] = (elf_greg_t) _regs->lo;
+	_dest[i++] = (elf_greg_t) _regs->hi;
+	_dest[i++] = (elf_greg_t) _regs->cp0_epc;
+	_dest[i++] = (elf_greg_t) _regs->cp0_badvaddr;
+	_dest[i++] = (elf_greg_t) _regs->cp0_status;
+	_dest[i++] = (elf_greg_t) _regs->cp0_cause;
+}
+
+#undef CONFIG_BINFMT_ELF
+#ifdef CONFIG_BINFMT_ELF32
+#define CONFIG_BINFMT_ELF CONFIG_BINFMT_ELF32
+#endif
+#undef CONFIG_BINFMT_ELF_MODULE
+#ifdef CONFIG_BINFMT_ELF32_MODULE
+#define CONFIG_BINFMT_ELF_MODULE CONFIG_BINFMT_ELF32_MODULE
+#endif
+
+MODULE_DESCRIPTION("Binary format loader for compatibility with o32 Linux/MIPS binaries");
+MODULE_AUTHOR("Ralf Baechle (ralf@linux-mips.org)");
+
+#undef MODULE_DESCRIPTION
+#undef MODULE_AUTHOR
+
+#include "../../../fs/binfmt_elf.c"
diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/branch.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/branch.c
--- linux-2.4.20/arch/mips64/kernel/branch.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/branch.c	2003-01-10 06:18:00.000000000 -0600
@@ -167,7 +167,7 @@
 		if (!(mips_cpu.options & MIPS_CPU_FPU))
 			fcr31 = current->thread.fpu.soft.sr;
 		else
-			asm("cfc1\t%0,$31":"=r" (fcr31));
+			asm volatile("cfc1\t%0,$31" : "=r" (fcr31));
 		bit = (insn.i_format.rt >> 2);
 		bit += (bit != 0);
 		bit += 23;
diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/cpu-probe.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/cpu-probe.c
--- linux-2.4.20/arch/mips64/kernel/cpu-probe.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/cpu-probe.c	2003-02-03 11:11:41.000000000 -0600
@@ -1,9 +1,27 @@
+/*
+ *	arch/mips64/kernel/cpu-probe.c
+ *
+ *	Processor capabilities determination functions.
+ *
+ *	Copyright (C) xxxx  the Anonymous
+ *	Copyright (C) 2003  Maciej W. Rozycki
+ *
+ *	This program is free software; you can redistribute it and/or
+ *	modify it under the terms of the GNU General Public License
+ *	as published by the Free Software Foundation; either version
+ *	2 of the License, or (at your option) any later version.
+ */
+
 #include <linux/init.h>
 #include <linux/kernel.h>
+#include <linux/ptrace.h>
 #include <linux/stddef.h>
+
 #include <asm/bugs.h>
 #include <asm/cpu.h>
+#include <asm/fpu.h>
 #include <asm/mipsregs.h>
+#include <asm/system.h>
 
 /*
  * Not all of the MIPS CPUs have the "wait" instruction available. Moreover,
@@ -16,14 +34,14 @@
 
 static void r3081_wait(void)
 {
-	unsigned long cfg = read_32bit_cp0_register(CP0_CONF);
-	write_32bit_cp0_register(CP0_CONF, cfg|CONF_HALT);
+	unsigned long cfg = read_c0_conf();
+	write_c0_conf(cfg | CONF_HALT);
 }
 
 static void r39xx_wait(void)
 {
-	unsigned long cfg = read_32bit_cp0_register(CP0_CONF);
-	write_32bit_cp0_register(CP0_CONF, cfg|TX39_CONF_HALT);
+	unsigned long cfg = read_c0_conf();
+	write_c0_conf(cfg | TX39_CONF_HALT);
 }
 
 static void r4k_wait(void)
@@ -89,9 +107,231 @@
 	}
 }
 
+static inline void check_mult_sh(void)
+{
+	unsigned long flags;
+	int m1, m2;
+	long p, s, v;
+
+	/* Instead of clobbers; for egcs 1.1.2 sake.  */
+	long __d0, __d1, __d2;
+
+	printk("Checking for the multiply/shift bug... ");
+
+	local_irq_save(flags);
+	/*
+	 * The following code leads to a wrong result of dsll32 when
+	 * executed on R4000 rev. 2.2 or 3.0.
+	 *
+	 * See "MIPS R4000PC/SC Errata, Processor Revision 2.2 and
+	 * 3.0" by MIPS Technologies, Inc., errata #16 and #28 for
+	 * details.  I got no permission to duplicate them here,
+	 * sigh... --macro
+	 */
+	asm volatile(
+		".set	push\n\t"
+		".set	noat\n\t"
+		".set	noreorder\n\t"
+		".set	nomacro\n\t"
+		"mult	%4, %5\n\t"
+		"dsll32	%0, %6, %7\n\t"
+		"mflo	$0\n\t"
+		".set	pop"
+		: "=r" (v), "=&h" (__d0), "=&l" (__d1), "=&a" (__d2)
+		: "r" (5), "r" (8), "r" (5), "I" (0));
+	local_irq_restore(flags);
+
+	if (v == 5L << 32) {
+		printk("no.\n");
+		return;
+	}
+
+	printk("yes, workaround... ");
+	local_irq_save(flags);
+	/*
+	 * We want the multiply and the shift to be isolated from the
+	 * rest of the code to disable gcc optimizations.  Hence the
+	 * asm statements that execute nothing, but make gcc not know
+	 * what the values of m1, m2 and s are and what v and p are
+	 * used for.
+	 *
+	 * We have to use single integers for m1 and m2 and a double
+	 * one for p to be sure the mulsidi3 gcc's RTL multiplication
+	 * instruction has the workaround applied.  Older versions of
+	 * gcc have correct mulsi3, but other multiplication variants
+	 * lack the workaround.
+	 */
+	asm volatile(
+		""
+		: "=r" (m1), "=r" (m2), "=r" (s)
+		: "0" (5), "1" (8), "2" (5));
+	p = m1 * m2;
+	v = s << 32;
+	asm volatile(
+		""
+		: "=r" (v)
+		: "0" (v), "r" (p));
+	local_irq_restore(flags);
+
+	if (v == 5L << 32) {
+		printk("yes.\n");
+		return;
+	}
+
+	printk("no.\n");
+	panic("Reliable operation impossible!\n"
+#ifndef CONFIG_CPU_R4000
+	      "Configure for R4000 to enable the workaround."
+#else
+	      "Please report to <linux-mips@linux-mips.org>."
+#endif
+	      );
+}
+
+static volatile int daddi_ov __initdata = 0;
+
+asmlinkage void __init do_daddi_ov(struct pt_regs *regs)
+{
+	daddi_ov = 1;
+	regs->cp0_epc += 4;
+}
+
+static inline void check_daddi(void)
+{
+	extern asmlinkage void handle_daddi_ov(void);
+	unsigned long flags;
+	void *handler;
+	long v;
+
+	printk("Checking for the daddi bug... ");
+
+	local_irq_save(flags);
+	handler = set_except_vector(12, handle_daddi_ov);
+	/*
+	 * The following code fails to trigger an overflow exception
+	 * when executed on R4000 rev. 2.2 or 3.0.
+	 *
+	 * See "MIPS R4000PC/SC Errata, Processor Revision 2.2 and
+	 * 3.0" by MIPS Technologies, Inc., erratum #23 for details.
+	 * I got no permission to duplicate it here, sigh... --macro
+	 */
+	asm volatile(
+		".set	push\n\t"
+		".set	noat\n\t"
+		".set	noreorder\n\t"
+		".set	nomacro\n\t"
+#ifdef HAVE_AS_SET_DADDI
+		".set	daddi\n\t"
+#endif
+		"daddi	%0, %1, %2\n\t"
+		".set	pop"
+		: "=r" (v)
+		: "r" (0x7fffffffffffedcd), "I" (0x1234));
+	set_except_vector(12, handler);
+	local_irq_restore(flags);
+
+	if (daddi_ov) {
+		printk("no.\n");
+		return;
+	}
+
+	printk("yes, workaround... ");
+
+	local_irq_save(flags);
+	handler = set_except_vector(12, handle_daddi_ov);
+	asm volatile(
+		"daddi	%0, %1, %2"
+		: "=r" (v)
+		: "r" (0x7fffffffffffedcd), "I" (0x1234));
+	set_except_vector(12, handler);
+	local_irq_restore(flags);
+
+	if (daddi_ov) {
+		printk("yes.\n");
+		return;
+	}
+
+	printk("no.\n");
+	panic("Reliable operation impossible!\n"
+#if !defined(CONFIG_CPU_R4000) && !defined(CONFIG_CPU_R4400)
+	      "Configure for R4000 or R4400 to enable the workaround."
+#else
+	      "Please report to <linux-mips@linux-mips.org>."
+#endif
+	      );
+}
+
+static inline void check_daddiu(void)
+{
+	long v, w;
+
+	printk("Checking for the daddiu bug... ");
+
+	/*
+	 * The following code leads to a wrong result of daddiu when
+	 * executed on R4400 rev. 1.0.
+	 *
+	 * See "MIPS R4400PC/SC Errata, Processor Revision 1.0" by
+	 * MIPS Technologies, Inc., erratum #7 for details.
+	 *
+	 * According to "MIPS R4000PC/SC Errata, Processor Revision
+	 * 2.2 and 3.0" by MIPS Technologies, Inc., erratum #41 this
+	 * problem affects R4000 rev. 2.2 and 3.0, too.  Testing
+	 * failed to trigger it so far.
+	 *
+	 * I got no permission to duplicate the errata here, sigh...
+	 * --macro
+	 */
+	asm volatile(
+		".set	push\n\t"
+		".set	noat\n\t"
+		".set	noreorder\n\t"
+		".set	nomacro\n\t"
+#ifdef HAVE_AS_SET_DADDI
+		".set	daddi\n\t"
+#endif
+		"daddiu	%0, %2, %3\n\t"
+		"addiu	%1, $0, %3\n\t"
+		"daddu	%1, %2\n\t"
+		".set	pop"
+		: "=&r" (v), "=&r" (w)
+		: "r" (0x7fffffffffffedcd), "I" (0x1234));
+
+	if (v == w) {
+		printk("no.\n");
+		return;
+	}
+
+	printk("yes, workaround... ");
+
+	asm volatile(
+		"daddiu	%0, %2, %3\n\t"
+		"addiu	%1, $0, %3\n\t"
+		"daddu	%1, %2"
+		: "=&r" (v), "=&r" (w)
+		: "r" (0x7fffffffffffedcd), "I" (0x1234));
+
+	if (v == w) {
+		printk("yes.\n");
+		return;
+	}
+
+	printk("no.\n");
+	panic("Reliable operation impossible!\n"
+#if !defined(CONFIG_CPU_R4000) && !defined(CONFIG_CPU_R4400)
+	      "Configure for R4000 or R4400 to enable the workaround."
+#else
+	      "Please report to <linux-mips@linux-mips.org>."
+#endif
+	      );
+}
+
 void __init check_bugs(void)
 {
 	check_wait();
+	check_mult_sh();
+	check_daddi();
+	check_daddiu();
 }
 
 /*
@@ -104,12 +344,12 @@
 #ifdef CONFIG_CPU_R3000
 	extern unsigned long r3k_cache_size(unsigned long);
 	unsigned long size1, size2;
-	unsigned long cfg = read_32bit_cp0_register(CP0_CONF);
+	unsigned long cfg = read_c0_conf();
 
 	size1 = r3k_cache_size(ST0_ISC);
-	write_32bit_cp0_register(CP0_CONF, cfg^CONF_AC);
+	write_c0_conf(cfg ^ CONF_AC);
 	size2 = r3k_cache_size(ST0_ISC);
-	write_32bit_cp0_register(CP0_CONF, cfg);
+	write_c0_conf(cfg);
 	return size1 != size2;
 #else
 	return 0;
@@ -123,10 +363,10 @@
 {
 	unsigned long tmp, fpu_id;
 
-	tmp = read_32bit_cp0_register(CP0_STATUS);
+	tmp = read_c0_status();
 	__enable_fpu();
 	fpu_id = read_32bit_cp1_register(CP1_REVISION);
-	write_32bit_cp0_register(CP0_STATUS, tmp);
+	write_c0_status(tmp);
 	return fpu_id;
 }
 
@@ -140,9 +380,9 @@
 
 /* declaration of the global struct */
 struct mips_cpu mips_cpu = {
-    processor_id:	PRID_IMP_UNKNOWN,
-    fpu_id:		FPIR_IMP_NONE,
-    cputype:		CPU_UNKNOWN
+    .processor_id	= PRID_IMP_UNKNOWN,
+    .fpu_id		= FPIR_IMP_NONE,
+    .cputype		= CPU_UNKNOWN
 };
 
 /* Shortcut for assembler access to mips_cpu.options */
@@ -154,14 +394,14 @@
 __init void cpu_probe(void)
 {
 #if defined(CONFIG_CPU_MIPS32) || defined(CONFIG_CPU_MIPS64)
-	unsigned long config0 = read_32bit_cp0_register(CP0_CONFIG);
+	unsigned long config0 = read_c0_config();
 	unsigned long config1;
 
         if (config0 & (1 << 31)) {
 		/* MIPS32 or MIPS64 compliant CPU. Read Config 1 register. */
 		mips_cpu.options = MIPS_CPU_TLB | MIPS_CPU_4KEX |
 			MIPS_CPU_4KTLB | MIPS_CPU_COUNTER | MIPS_CPU_DIVEC;
-		config1 = read_mips32_cp0_config1();
+		config1 = read_c0_config1();
 		if (config1 & (1 << 3))
 			mips_cpu.options |= MIPS_CPU_WATCH;
 		if (config1 & (1 << 2))
@@ -177,7 +417,7 @@
 		mips_cpu.scache.flags = MIPS_CACHE_NOT_PRESENT;
 	}
 #endif
-	mips_cpu.processor_id = read_32bit_cp0_register(CP0_PRID);
+	mips_cpu.processor_id = read_c0_prid();
 	switch (mips_cpu.processor_id & 0xff0000) {
 	case PRID_COMP_LEGACY:
 		switch (mips_cpu.processor_id & 0xff00) {
@@ -204,7 +444,7 @@
 			mips_cpu.tlbsize = 64;
 			break;
 		case PRID_IMP_R4000:
-			if ((mips_cpu.processor_id & 0xff) == PRID_REV_R4400)
+			if ((mips_cpu.processor_id & 0xff) >= PRID_REV_R4400)
 				mips_cpu.cputype = CPU_R4400SC;
 			else
 				mips_cpu.cputype = CPU_R4000SC;
@@ -372,7 +612,7 @@
 			 * 29      1 =>    64 entry JTLB
 			 *         0 =>    48 entry JTLB
 			 */
-			mips_cpu.tlbsize = (get_info() & (1 << 29)) ? 64 : 48;
+			mips_cpu.tlbsize = (read_c0_info() & (1 << 29)) ? 64 : 48;
 			break;
 		case PRID_IMP_R8000:
 			mips_cpu.cputype = CPU_R8000;
@@ -463,7 +703,7 @@
 			mips_cpu.isa_level = MIPS_CPU_ISA_M64;
 			mips_cpu.options = MIPS_CPU_TLB | MIPS_CPU_4KEX |
 			                   MIPS_CPU_COUNTER | MIPS_CPU_DIVEC |
-			                   MIPS_CPU_MCHECK;
+			                   MIPS_CPU_MCHECK | MIPS_CPU_EJTAG;
 #ifndef CONFIG_SB1_PASS_1_WORKAROUNDS
 			/* FPU in pass1 is known to have issues. */
 			mips_cpu.options |= MIPS_CPU_FPU;
diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/CVS/Entries
--- linux-2.4.20/arch/mips64/kernel/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/CVS/Entries	2005-01-06 23:00:14.000000000 -0600
@@ -0,0 +1,37 @@
+/.cvsignore/1.1/Sat Aug 21 22:19:14 1999/-ko/Tlinux_2_4_20
+/Makefile/1.11.2.16/Mon Jan 20 20:21:42 2003/-ko/Tlinux_2_4_20
+/binfmt_elfn32.c/1.1.2.2/Fri Dec 20 00:48:16 2002/-ko/Tlinux_2_4_20
+/binfmt_elfo32.c/1.1.2.1/Tue Dec  3 14:23:05 2002/-ko/Tlinux_2_4_20
+/branch.c/1.4.2.1/Fri Jan 10 12:18:00 2003/-ko/Tlinux_2_4_20
+/cpu-probe.c/1.1.2.13/Mon Feb  3 17:11:41 2003/-ko/Tlinux_2_4_20
+/entry.S/1.11.2.9/Thu Jan  9 19:25:46 2003/-ko/Tlinux_2_4_20
+/head.S/1.34.2.10/Fri Nov 29 04:02:31 2002/-ko/Tlinux_2_4_20
+/i8259.c/1.1.2.2/Mon Aug  5 23:53:36 2002/-ko/Tlinux_2_4_20
+/init_task.c/1.4/Fri Oct 19 01:23:38 2001/-ko/Tlinux_2_4_20
+/ioctl32.c/1.10.2.9/Fri Feb  7 22:00:22 2003//Tlinux_2_4_20
+/irq.c/1.1.2.11/Tue Aug 13 03:29:54 2002/-ko/Tlinux_2_4_20
+/irq_cpu.c/1.1.2.3/Mon Dec  2 00:24:52 2002/-ko/Tlinux_2_4_20
+/linux32.c/1.42.2.24/Fri Feb 21 02:57:51 2003/-ko/Tlinux_2_4_20
+/mips64_ksyms.c/1.19.2.6/Wed Sep 11 20:04:00 2002/-ko/Tlinux_2_4_20
+/pci-dma.c/1.1.2.6/Sat Sep 28 22:28:38 2002/-ko/Tlinux_2_4_20
+/proc.c/1.10.2.9/Thu Nov  7 01:47:46 2002/-ko/Tlinux_2_4_20
+/process.c/1.18.2.12/Thu Feb 20 19:46:34 2003/-ko/Tlinux_2_4_20
+/ptrace.c/1.15.2.5/Mon Jan 27 18:14:34 2003/-ko/Tlinux_2_4_20
+/r4k_cache.S/1.2/Mon Jul  9 00:25:37 2001/-ko/Tlinux_2_4_20
+/r4k_fpu.S/1.3.2.1/Wed Jul 31 02:41:21 2002/-ko/Tlinux_2_4_20
+/r4k_genex.S/1.7.2.10/Thu Jan 16 14:40:58 2003/-ko/Tlinux_2_4_20
+/r4k_switch.S/1.5.2.10/Mon Nov  4 19:39:56 2002/-ko/Tlinux_2_4_20
+/reset.c/1.1.2.1/Thu Jan 24 23:14:25 2002/-ko/Tlinux_2_4_20
+/scall_64.S/1.20.2.12/Tue Dec  3 14:23:05 2002/-ko/Tlinux_2_4_20
+/scall_n32.S/1.2.2.5/Thu Dec  5 03:03:43 2002/-ko/Tlinux_2_4_20
+/scall_o32.S/1.48.2.23/Thu Jan 23 02:12:59 2003/-ko/Tlinux_2_4_20
+/semaphore.c/1.4/Wed Jun 13 17:27:43 2001/-ko/Tlinux_2_4_20
+/setup.c/1.31.2.26/Fri Feb 21 03:26:16 2003/-ko/Tlinux_2_4_20
+/signal.c/1.19.2.7/Thu Feb 20 19:46:34 2003/-ko/Tlinux_2_4_20
+/signal32.c/1.20.2.11/Mon Nov  4 19:39:56 2002/-ko/Tlinux_2_4_20
+/smp.c/1.26.2.19/Thu Nov 28 23:29:37 2002/-ko/Tlinux_2_4_20
+/syscall.c/1.16.2.8/Fri Dec 20 02:57:03 2002/-ko/Tlinux_2_4_20
+/time.c/1.1.2.8/Mon Dec  2 00:24:52 2002/-ko/Tlinux_2_4_20
+/traps.c/1.30.2.44/Mon Feb 10 22:50:48 2003/-ko/Tlinux_2_4_20
+/unaligned.c/1.6.2.16/Fri Feb 21 01:09:19 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/CVS/Repository
--- linux-2.4.20/arch/mips64/kernel/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/CVS/Repository	2005-01-06 23:00:12.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips64/kernel
diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/CVS/Root
--- linux-2.4.20/arch/mips64/kernel/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/CVS/Root	2005-01-06 23:00:12.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/CVS/Tag
--- linux-2.4.20/arch/mips64/kernel/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/CVS/Tag	2005-01-06 23:00:14.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/.cvsignore
--- linux-2.4.20/arch/mips64/kernel/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/.cvsignore	1999-08-21 17:19:14.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/entry.S linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/entry.S
--- linux-2.4.20/arch/mips64/kernel/entry.S	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/entry.S	2003-01-09 13:25:46.000000000 -0600
@@ -18,7 +18,7 @@
 #define KU_USER 0x10
 
 		.text
-		.align 4
+		.align	5
 FEXPORT(ret_from_fork)
 		move	a0, v0			# prev
 		jal	schedule_tail
diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/head.S linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/head.S
--- linux-2.4.20/arch/mips64/kernel/head.S	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/head.S	2002-11-28 22:02:31.000000000 -0600
@@ -168,13 +168,10 @@
 
 	declare_saved_sp
 
-#undef PAGE_SIZE
-#define PAGE_SIZE	0x1000
-
 	.macro	page name, order=0
 	.globl	\name
-\name:	.size	\name, (PAGE_SIZE << \order)
-	.org	. + (PAGE_SIZE << \order)
+\name:	.size	\name, (_PAGE_SIZE << \order)
+	.org	. + (_PAGE_SIZE << \order)
 	.type	\name, @object
 	.endm
 
diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/ioctl32.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/ioctl32.c
--- linux-2.4.20/arch/mips64/kernel/ioctl32.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/ioctl32.c	2003-02-07 16:00:22.000000000 -0600
@@ -4,6 +4,7 @@
  * Copyright (C) 2000 Silicon Graphics, Inc.
  * Written by Ulf Carlsson (ulfc@engr.sgi.com)
  * Copyright (C) 2000 Ralf Baechle
+ * Copyright (C) 2002  Maciej W. Rozycki
  *
  * Mostly stolen from the sparc64 ioctl32 implementation.
  */
@@ -22,6 +23,7 @@
 #include <linux/if_pppox.h>
 #include <linux/cdrom.h>
 #include <linux/loop.h>
+#include <linux/fb.h>
 #include <linux/vt.h>
 #include <linux/kd.h>
 #include <linux/netdevice.h>
@@ -31,6 +33,7 @@
 #include <linux/blkdev.h>
 #include <linux/elevator.h>
 #include <linux/auto_fs.h>
+#include <linux/auto_fs4.h>
 #include <linux/ext2_fs.h>
 #include <linux/raid/md_u.h>
 
@@ -38,11 +41,17 @@
 #undef __KERNEL__		/* This file was born to be ugly ...  */
 #include <scsi/scsi_ioctl.h>
 #define __KERNEL__
+#include <scsi/sg.h>
+
 #include <asm/types.h>
 #include <asm/uaccess.h>
 
 #include <linux/rtc.h>
 
+#ifdef CONFIG_SIBYTE_TBPROF
+#include <asm/sibyte/trace_prof.h>
+#endif
+
 long sys_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg);
 
 static int w_long(unsigned int fd, unsigned int cmd, unsigned long arg)
@@ -77,6 +86,166 @@
 
 #define A(__x) ((unsigned long)(__x))
 
+
+#ifdef CONFIG_FB
+
+struct fb_fix_screeninfo32 {
+	char id[16];			/* identification string eg "TT Builtin" */
+	__u32 smem_start;		/* Start of frame buffer mem */
+					/* (physical address) */
+	__u32 smem_len;			/* Length of frame buffer mem */
+	__u32 type;			/* see FB_TYPE_*		*/
+	__u32 type_aux;			/* Interleave for interleaved Planes */
+	__u32 visual;			/* see FB_VISUAL_*		*/ 
+	__u16 xpanstep;			/* zero if no hardware panning  */
+	__u16 ypanstep;			/* zero if no hardware panning  */
+	__u16 ywrapstep;		/* zero if no hardware ywrap    */
+	__u32 line_length;		/* length of a line in bytes    */
+	__u32 mmio_start;		/* Start of Memory Mapped I/O   */
+					/* (physical address) */
+	__u32 mmio_len;			/* Length of Memory Mapped I/O  */
+	__u32 accel;			/* Type of acceleration available */
+	__u16 reserved[3];		/* Reserved for future compatibility */
+};
+
+static int do_fbioget_fscreeninfo_ioctl(unsigned int fd, unsigned int cmd,
+					unsigned long arg)
+{
+	mm_segment_t old_fs = get_fs();
+	struct fb_fix_screeninfo fix;
+	struct fb_fix_screeninfo32 *fix32 = (struct fb_fix_screeninfo32 *)arg;
+	int err;
+
+	set_fs(KERNEL_DS);
+	err = sys_ioctl(fd, cmd, (unsigned long)&fix);
+	set_fs(old_fs);
+
+	if (err == 0) {
+		err = __copy_to_user((char *)fix32->id, (char *)fix.id,
+				     sizeof(fix.id));
+		err |= __put_user((__u32)(unsigned long)fix.smem_start,
+				  &fix32->smem_start);
+		err |= __put_user(fix.smem_len, &fix32->smem_len);
+		err |= __put_user(fix.type, &fix32->type);
+		err |= __put_user(fix.type_aux, &fix32->type_aux);
+		err |= __put_user(fix.visual, &fix32->visual);
+		err |= __put_user(fix.xpanstep, &fix32->xpanstep);
+		err |= __put_user(fix.ypanstep, &fix32->ypanstep);
+		err |= __put_user(fix.ywrapstep, &fix32->ywrapstep);
+		err |= __put_user(fix.line_length, &fix32->line_length);
+		err |= __put_user((__u32)(unsigned long)fix.mmio_start,
+				  &fix32->mmio_start);
+		err |= __put_user(fix.mmio_len, &fix32->mmio_len);
+		err |= __put_user(fix.accel, &fix32->accel);
+		err |= __copy_to_user((char *)fix32->reserved,
+				      (char *)fix.reserved,
+				      sizeof(fix.reserved));
+		if (err)
+			err = -EFAULT;
+	}
+
+	return err;
+}
+
+struct fb_cmap32 {
+	__u32 start;			/* First entry  */
+	__u32 len;			/* Number of entries */
+	__u32 red;			/* Red values   */
+	__u32 green;
+	__u32 blue;
+	__u32 transp;			/* transparency, can be NULL */
+};
+
+static int do_fbiocmap_ioctl(unsigned int fd, unsigned int cmd,
+			     unsigned long arg)
+{
+	mm_segment_t old_fs = get_fs();
+	u32 red = 0, green = 0, blue = 0, transp = 0;
+	struct fb_cmap cmap;
+	struct fb_cmap32 *cmap32 = (struct fb_cmap32 *)arg;
+	int err;
+
+	memset(&cmap, 0, sizeof(cmap));
+
+	err = __get_user(cmap.start, &cmap32->start);
+	err |= __get_user(cmap.len, &cmap32->len);
+	err |= __get_user(red, &cmap32->red);
+	err |= __get_user(green, &cmap32->green);
+	err |= __get_user(blue, &cmap32->blue);
+	err |= __get_user(transp, &cmap32->transp);
+	if (err)
+		return -EFAULT;
+
+	err = -ENOMEM;
+	cmap.red = kmalloc(cmap.len * sizeof(__u16), GFP_KERNEL);
+	if (!cmap.red)
+		goto out;
+	cmap.green = kmalloc(cmap.len * sizeof(__u16), GFP_KERNEL);
+	if (!cmap.green)
+		goto out;
+	cmap.blue = kmalloc(cmap.len * sizeof(__u16), GFP_KERNEL);
+	if (!cmap.blue)
+		goto out;
+	if (transp) {
+		cmap.transp = kmalloc(cmap.len * sizeof(__u16), GFP_KERNEL);
+		if (!cmap.transp)
+			goto out;
+	}
+			
+	if (cmd == FBIOPUTCMAP) {
+		err = __copy_from_user(cmap.red, (char *)A(red),
+				       cmap.len * sizeof(__u16));
+		err |= __copy_from_user(cmap.green, (char *)A(green),
+					cmap.len * sizeof(__u16));
+		err |= __copy_from_user(cmap.blue, (char *)A(blue),
+					cmap.len * sizeof(__u16));
+		if (cmap.transp)
+			err |= __copy_from_user(cmap.transp, (char *)A(transp),
+						cmap.len * sizeof(__u16));
+		if (err) {
+			err = -EFAULT;
+			goto out;
+		}
+	}
+
+	set_fs(KERNEL_DS);
+	err = sys_ioctl(fd, cmd, (unsigned long)&cmap);
+	set_fs(old_fs);
+	if (err)
+		goto out;
+
+	if (cmd == FBIOGETCMAP) {
+		err = __copy_to_user((char *)A(red), cmap.red,
+				     cmap.len * sizeof(__u16));
+		err |= __copy_to_user((char *)A(green), cmap.blue,
+				      cmap.len * sizeof(__u16));
+		err |= __copy_to_user((char *)A(blue), cmap.blue,
+				      cmap.len * sizeof(__u16));
+		if (cmap.transp)
+			err |= __copy_to_user((char *)A(transp), cmap.transp,
+					      cmap.len * sizeof(__u16));
+		if (err) {
+			err = -EFAULT;
+			goto out;
+		}
+	}
+
+out:
+	if (cmap.red)
+		kfree(cmap.red);
+	if (cmap.green)
+		kfree(cmap.green);
+	if (cmap.blue)
+		kfree(cmap.blue);
+	if (cmap.transp)
+		kfree(cmap.transp);
+
+	return err;
+}
+
+#endif /* CONFIG_FB */
+
+
 struct timeval32 {
 	int tv_sec;
 	int tv_usec;
@@ -630,6 +799,16 @@
 	IOCTL32_DEFAULT(FIONBIO),
 	IOCTL32_DEFAULT(FIONREAD),
 
+#ifdef CONFIG_FB
+	/* Big F */
+	IOCTL32_DEFAULT(FBIOGET_VSCREENINFO),
+	IOCTL32_DEFAULT(FBIOPUT_VSCREENINFO),
+	IOCTL32_HANDLER(FBIOGET_FSCREENINFO, do_fbioget_fscreeninfo_ioctl),
+	IOCTL32_HANDLER(FBIOGETCMAP, do_fbiocmap_ioctl),
+	IOCTL32_HANDLER(FBIOPUTCMAP, do_fbiocmap_ioctl),
+	IOCTL32_DEFAULT(FBIOPAN_DISPLAY),
+#endif /* CONFIG_FB */
+
 	/* Big K */
 	IOCTL32_DEFAULT(PIO_FONT),
 	IOCTL32_DEFAULT(GIO_FONT),
@@ -651,6 +830,7 @@
 	IOCTL32_DEFAULT(KDSKBSENT),
 	IOCTL32_DEFAULT(KDGKBDIACR),
 	IOCTL32_DEFAULT(KDSKBDIACR),
+	IOCTL32_DEFAULT(KDKBDREP),
 	IOCTL32_DEFAULT(KDGKBLED),
 	IOCTL32_DEFAULT(KDSKBLED),
 	IOCTL32_DEFAULT(KDGETLED),
@@ -915,6 +1095,12 @@
 	IOCTL32_DEFAULT(RESTART_ARRAY_RW),
 #endif /* CONFIG_MD */
 
+#ifdef CONFIG_SIBYTE_TBPROF
+	IOCTL32_DEFAULT(SBPROF_ZBSTART),
+	IOCTL32_DEFAULT(SBPROF_ZBSTOP),
+	IOCTL32_DEFAULT(SBPROF_ZBWAITFULL),
+#endif /* CONFIG_SIBYTE_TBPROF */
+
 	IOCTL32_DEFAULT(MTIOCTOP),			/* mtio.h ioctls  */
 	IOCTL32_HANDLER(MTIOCGET32, mt_ioctl_trans),
 	IOCTL32_HANDLER(MTIOCPOS32, mt_ioctl_trans),
@@ -933,6 +1119,7 @@
 	IOCTL32_DEFAULT(AUTOFS_IOC_PROTOVER),
 	IOCTL32_HANDLER(AUTOFS_IOC_SETTIMEOUT32, ioc_settimeout),
 	IOCTL32_DEFAULT(AUTOFS_IOC_EXPIRE),
+	IOCTL32_DEFAULT(AUTOFS_IOC_EXPIRE_MULTI),
 
 	/* Little p (/dev/rtc, /dev/envctrl, etc.) */
 	IOCTL32_DEFAULT(_IOR('p', 20, int[7])), /* RTCGET */
diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/irq_cpu.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/irq_cpu.c
--- linux-2.4.20/arch/mips64/kernel/irq_cpu.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/irq_cpu.c	2002-12-01 18:24:52.000000000 -0600
@@ -35,13 +35,13 @@
 
 static inline void unmask_mips_irq(unsigned int irq)
 {
-	clear_cp0_cause(0x100 << (irq - mips_cpu_irq_base));
-	set_cp0_status(0x100 << (irq - mips_cpu_irq_base));
+	clear_c0_cause(0x100 << (irq - mips_cpu_irq_base));
+	set_c0_status(0x100 << (irq - mips_cpu_irq_base));
 }
 
 static inline void mask_mips_irq(unsigned int irq)
 {
-	clear_cp0_status(0x100 << (irq - mips_cpu_irq_base));
+	clear_c0_status(0x100 << (irq - mips_cpu_irq_base));
 }
 
 static inline void mips_cpu_irq_enable(unsigned int irq)
@@ -78,7 +78,7 @@
 static void mips_cpu_irq_ack(unsigned int irq)
 {
 	/* Only necessary for soft interrupts */
-	clear_cp0_cause(1 << (irq - mips_cpu_irq_base + 8));
+	clear_c0_cause(1 << (irq - mips_cpu_irq_base + 8));
 
 	mask_mips_irq(irq);
 }
diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/linux32.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/linux32.c
--- linux-2.4.20/arch/mips64/kernel/linux32.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/linux32.c	2003-02-20 20:57:51.000000000 -0600
@@ -13,7 +13,6 @@
 #include <linux/highuid.h>
 #include <linux/dirent.h>
 #include <linux/resource.h>
-#include <linux/filter.h>
 #include <linux/highmem.h>
 #include <linux/time.h>
 #include <linux/poll.h>
@@ -32,6 +31,7 @@
 #include <linux/dnotify.h>
 #include <linux/module.h>
 #include <net/sock.h>
+#include <net/scm.h>
 
 #include <asm/uaccess.h>
 #include <asm/mman.h>
@@ -179,7 +179,32 @@
 	return err;
 }
 
-asmlinkage int sys_mmap2(void) {return 0;}
+asmlinkage unsigned long
+sys32_mmap2(unsigned long addr, size_t len, unsigned long prot,
+         unsigned long flags, unsigned long fd, unsigned long pgoff)
+{
+	struct file * file = NULL;
+	unsigned long error;
+
+	error = -EINVAL;
+	if (!(flags & MAP_ANONYMOUS)) {
+		error = -EBADF;
+		file = fget(fd);
+		if (!file)
+			goto out;
+	}
+	flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE);
+
+	down_write(&current->mm->mmap_sem);
+	error = do_mmap_pgoff(file, addr, len, prot, flags, pgoff);
+	up_write(&current->mm->mmap_sem);
+	if (file)
+		fput(file);
+
+out:
+	return error;
+}
+
 
 asmlinkage long sys_truncate(const char * path, unsigned long length);
 
@@ -427,10 +452,10 @@
 		/* egcs is stupid */
 		if (!access_ok(VERIFY_READ, arg, sizeof (unsigned int)))
 			return -EFAULT;
-		if (IS_ERR(ret = __get_user((long)ptr,(int *)A(arg))))
+		if ((ret = __get_user((long)ptr,(int *)A(arg))))
 			return ret;
 		if (ap)		/* no access_ok needed, we allocated */
-			if (IS_ERR(ret = __put_user(ptr, ap++)))
+			if ((ret = __put_user(ptr, ap++)))
 				return ret;
 		arg += sizeof(unsigned int);
 		n++;
@@ -451,19 +476,20 @@
 	char * filename;
 
 	na = nargs(argv, NULL);
-	if (IS_ERR(na))
-		return(na);
+	if (na < 0)
+		return na;
 	ne = nargs(envp, NULL);
-	if (IS_ERR(ne))
-		return(ne);
+	if (ne < 0)
+		return ne;
 	len = (na + ne + 2) * sizeof(*av);
+
 	/*
 	 *  kmalloc won't work because the `sys_exec' code will attempt
 	 *  to do a `get_user' on the arg list and `get_user' will fail
 	 *  on a kernel address (simplifies `get_user').  Instead we
 	 *  do an mmap to get a user address.  Note that since a successful
 	 *  `execve' frees all current memory we only have to do an
-	 *  `munmap' if the `execve' failes.
+	 *  `munmap' if the `execve' fails.
 	 */
 	down_write(&current->mm->mmap_sem);
 	av = (char **) do_mmap_pgoff(0, 0, len, PROT_READ | PROT_WRITE,
@@ -473,13 +499,15 @@
 	if (IS_ERR(av))
 		return (long) av;
 	ae = av + na + 1;
-	if (IS_ERR(r = __put_user(0, (av + na))))
-		goto out;
-	if (IS_ERR(r = __put_user(0, (ae + ne))))
+	r = __put_user(0, (av + na));
+	r |= __put_user(0, (ae + ne));
+	if (r)
 		goto out;
-	if (IS_ERR(r = nargs(argv, av)))
+	r = nargs(argv, av);
+	if (r < 0)
 		goto out;
-	if (IS_ERR(r = nargs(envp, ae)))
+	r = nargs(envp, ae);
+	if (r < 0)
 		goto out;
 	filename = getname((char *) (long)regs.regs[4]);
 	r = PTR_ERR(filename);
@@ -488,10 +516,10 @@
 
 	r = do_execve(filename, av, ae, &regs);
 	putname(filename);
-	if (IS_ERR(r))
+	if (r)
 out:
 		sys_munmap((unsigned long)av, len);
-	return(r);
+	return r ;
 }
 #endif
 
@@ -635,6 +663,52 @@
 	return sys32_wait4(pid, stat_addr, options, NULL);
 }
 
+struct sysinfo32 {
+        s32 uptime;
+        u32 loads[3];
+        u32 totalram;
+        u32 freeram;
+        u32 sharedram;
+        u32 bufferram;
+        u32 totalswap;
+        u32 freeswap;
+        u16 procs;
+	u32 totalhigh;
+	u32 freehigh;
+	u32 mem_unit;
+	char _f[8];
+};
+
+extern asmlinkage int sys_sysinfo(struct sysinfo *info);
+
+asmlinkage int sys32_sysinfo(struct sysinfo32 *info)
+{
+	struct sysinfo s;
+	int ret, err;
+	mm_segment_t old_fs = get_fs ();
+	
+	set_fs (KERNEL_DS);
+	ret = sys_sysinfo(&s);
+	set_fs (old_fs);
+	err = put_user (s.uptime, &info->uptime);
+	err |= __put_user (s.loads[0], &info->loads[0]);
+	err |= __put_user (s.loads[1], &info->loads[1]);
+	err |= __put_user (s.loads[2], &info->loads[2]);
+	err |= __put_user (s.totalram, &info->totalram);
+	err |= __put_user (s.freeram, &info->freeram);
+	err |= __put_user (s.sharedram, &info->sharedram);
+	err |= __put_user (s.bufferram, &info->bufferram);
+	err |= __put_user (s.totalswap, &info->totalswap);
+	err |= __put_user (s.freeswap, &info->freeswap);
+	err |= __put_user (s.procs, &info->procs);
+	err |= __put_user (s.totalhigh, &info->totalhigh);
+	err |= __put_user (s.freehigh, &info->freehigh);
+	err |= __put_user (s.mem_unit, &info->mem_unit);
+	if (err)
+		return -EFAULT;
+	return ret;
+}
+
 #define RLIM_INFINITY32	0x7fffffff
 #define RESOURCE32(x) ((x > RLIM_INFINITY32) ? RLIM_INFINITY32 : x)
 
@@ -725,12 +799,17 @@
 	int ret;
 	struct statfs s;
 	mm_segment_t old_fs = get_fs();
-
-	set_fs (KERNEL_DS);
-	ret = sys_statfs((const char *)path, &s);
-	set_fs (old_fs);
-	if (put_statfs(buf, &s))
-		return -EFAULT;
+	char *pth;
+	
+	pth = getname (path);
+	ret = PTR_ERR(pth);
+	if (!IS_ERR(pth)) {
+		set_fs (KERNEL_DS);
+		ret = sys_statfs((const char *)path, &s);
+		set_fs (old_fs);
+		if (!ret && put_statfs(buf, &s))
+			return -EFAULT;
+	}
 	return ret;
 }
 
@@ -751,6 +830,38 @@
 	return ret;
 }
 
+#ifdef __MIPSEB__
+asmlinkage long sys32_truncate64(const char * path, unsigned long __dummy,
+	int length_hi, int length_lo)
+#endif
+#ifdef __MIPSEL__
+asmlinkage long sys32_truncate64(const char * path, unsigned long __dummy,
+	int length_lo, int length_hi)
+#endif
+{
+	loff_t length;
+
+	length = ((unsigned long) length_hi << 32) | (unsigned int) length_lo;
+
+	return sys_truncate(path, length);
+}
+
+#ifdef __MIPSEB__
+asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned long __dummy,
+	int length_hi, int length_lo)
+#endif
+#ifdef __MIPSEL__
+asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned long __dummy,
+	int length_lo, int length_hi)
+#endif
+{
+	loff_t length;
+
+	length = ((unsigned long) length_hi << 32) | (unsigned int) length_lo;
+
+	return sys_ftruncate(fd, length);
+}
+
 extern asmlinkage int
 sys_getrusage(int who, struct rusage *ru);
 
@@ -1572,6 +1683,15 @@
         unsigned short  sem_nsems;              /* no. of semaphores in array */
 };
 
+struct semid64_ds32 {
+	struct ipc64_perm32 sem_perm;
+	__kernel_time_t32 sem_otime;
+	__kernel_time_t32 sem_ctime;
+	unsigned int sem_nsems;
+	unsigned int __unused1;
+	unsigned int __unused2;
+};
+
 struct msqid_ds32
 {
         struct ipc_perm32 msg_perm;
@@ -1617,6 +1737,19 @@
         unsigned short          shm_nattch;
 };
 
+struct shmid64_ds32 {
+	struct ipc64_perm32 shm_perm;
+	__kernel_size_t32 shm_segsz;
+	__kernel_time_t32 shm_atime;
+	__kernel_time_t32 shm_dtime;
+	__kernel_time_t32 shm_ctime;
+	__kernel_pid_t32 shm_cpid;
+	__kernel_pid_t32 shm_lpid;
+	unsigned int shm_nattch;
+	unsigned int __unused1;
+	unsigned int __unused2;
+};
+
 struct ipc_kludge32 {
 	u32 msgp;
 	s32 msgtyp;
@@ -1629,7 +1762,6 @@
 	u32 pad;
 	int err, err2;
 	struct semid64_ds s;
-	struct semid_ds32 *usp;
 	mm_segment_t old_fs;
 
 	if (!uptr)
@@ -1642,7 +1774,6 @@
 	else
 		fourth.__pad = (void *)A(pad);
 	switch (third & ~IPC_64) {
-
 	case IPC_INFO:
 	case IPC_RMID:
 	case IPC_SET:
@@ -1659,34 +1790,60 @@
 
 	case IPC_STAT:
 	case SEM_STAT:
-		usp = (struct semid_ds32 *)A(pad);
 		fourth.__pad = &s;
 		old_fs = get_fs ();
 		set_fs (KERNEL_DS);
 		err = sys_semctl (first, second, third, fourth);
 		set_fs (old_fs);
-		err2 = put_user(s.sem_perm.key, &usp->sem_perm.key);
-		err2 |= __put_user(s.sem_perm.uid, &usp->sem_perm.uid);
-		err2 |= __put_user(s.sem_perm.gid, &usp->sem_perm.gid);
-		err2 |= __put_user(s.sem_perm.cuid,
-				   &usp->sem_perm.cuid);
-		err2 |= __put_user (s.sem_perm.cgid,
-				    &usp->sem_perm.cgid);
-		err2 |= __put_user (s.sem_perm.mode,
-				    &usp->sem_perm.mode);
-		err2 |= __put_user (s.sem_perm.seq, &usp->sem_perm.seq);
-		err2 |= __put_user (s.sem_otime, &usp->sem_otime);
-		err2 |= __put_user (s.sem_ctime, &usp->sem_ctime);
-		err2 |= __put_user (s.sem_nsems, &usp->sem_nsems);
+
+		if (third & IPC_64) {
+			struct semid64_ds32 *usp64 = (struct semid64_ds32 *) A(pad);
+
+			if (!access_ok(VERIFY_WRITE, usp64, sizeof(*usp64))) {
+				err = -EFAULT;
+				break;
+			}
+			err2 = __put_user(s.sem_perm.key, &usp64->sem_perm.key);
+			err2 |= __put_user(s.sem_perm.uid, &usp64->sem_perm.uid);
+			err2 |= __put_user(s.sem_perm.gid, &usp64->sem_perm.gid);
+			err2 |= __put_user(s.sem_perm.cuid, &usp64->sem_perm.cuid);
+			err2 |= __put_user(s.sem_perm.cgid, &usp64->sem_perm.cgid);
+			err2 |= __put_user(s.sem_perm.mode, &usp64->sem_perm.mode);
+			err2 |= __put_user(s.sem_perm.seq, &usp64->sem_perm.seq);
+			err2 |= __put_user(s.sem_otime, &usp64->sem_otime);
+			err2 |= __put_user(s.sem_ctime, &usp64->sem_ctime);
+			err2 |= __put_user(s.sem_nsems, &usp64->sem_nsems);
+		} else {
+			struct semid_ds32 *usp32 = (struct semid_ds32 *) A(pad);
+
+			if (!access_ok(VERIFY_WRITE, usp32, sizeof(*usp32))) {
+				err = -EFAULT;
+				break;
+			}
+			err2 = __put_user(s.sem_perm.key, &usp32->sem_perm.key);
+			err2 |= __put_user(s.sem_perm.uid, &usp32->sem_perm.uid);
+			err2 |= __put_user(s.sem_perm.gid, &usp32->sem_perm.gid);
+			err2 |= __put_user(s.sem_perm.cuid, &usp32->sem_perm.cuid);
+			err2 |= __put_user(s.sem_perm.cgid, &usp32->sem_perm.cgid);
+			err2 |= __put_user(s.sem_perm.mode, &usp32->sem_perm.mode);
+			err2 |= __put_user(s.sem_perm.seq, &usp32->sem_perm.seq);
+			err2 |= __put_user(s.sem_otime, &usp32->sem_otime);
+			err2 |= __put_user(s.sem_ctime, &usp32->sem_ctime);
+			err2 |= __put_user(s.sem_nsems, &usp32->sem_nsems);
+		}
 		if (err2)
 			err = -EFAULT;
 		break;
 
+	default:
+		err = - EINVAL;
+		break;
 	}
 
 	return err;
 }
 
+static int
 do_sys32_msgsnd (int first, int second, int third, void *uptr)
 {
 	struct msgbuf32 *up = (struct msgbuf32 *)uptr;
@@ -1886,7 +2043,8 @@
 	int err = -EFAULT, err2;
 	struct shmid_ds s;
 	struct shmid64_ds s64;
-	struct shmid_ds32 *up = (struct shmid_ds32 *)uptr;
+	struct shmid_ds32 *up32 = (struct shmid_ds32 *)uptr;
+	struct shmid64_ds32 *up64 = (struct shmid64_ds32 *)uptr;
 	mm_segment_t old_fs;
 	struct shm_info32 {
 		int used_ids;
@@ -1895,18 +2053,24 @@
 	} *uip = (struct shm_info32 *)uptr;
 	struct shm_info si;
 
-	switch (second) {
-
+	switch (second & ~IPC_64) {
 	case IPC_INFO:
+		second = IPC_INFO; /* So that we don't have to translate it */
 	case IPC_RMID:
 	case SHM_LOCK:
 	case SHM_UNLOCK:
 		err = sys_shmctl (first, second, (struct shmid_ds *)uptr);
 		break;
 	case IPC_SET:
-		err = get_user (s.shm_perm.uid, &up->shm_perm.uid);
-		err |= __get_user (s.shm_perm.gid, &up->shm_perm.gid);
-		err |= __get_user (s.shm_perm.mode, &up->shm_perm.mode);
+		if (second & IPC_64) {
+			err = get_user(s.shm_perm.uid, &up64->shm_perm.uid);
+			err |= get_user(s.shm_perm.gid, &up64->shm_perm.gid);
+			err |= get_user(s.shm_perm.mode, &up64->shm_perm.mode);
+		} else {
+			err = get_user(s.shm_perm.uid, &up32->shm_perm.uid);
+			err |= get_user(s.shm_perm.gid, &up32->shm_perm.gid);
+			err |= get_user(s.shm_perm.mode, &up32->shm_perm.mode);
+		}
 		if (err)
 			break;
 		old_fs = get_fs ();
@@ -1923,23 +2087,45 @@
 		set_fs (old_fs);
 		if (err < 0)
 			break;
-		err2 = put_user (s64.shm_perm.key, &up->shm_perm.key);
-		err2 |= __put_user (s64.shm_perm.uid, &up->shm_perm.uid);
-		err2 |= __put_user (s64.shm_perm.gid, &up->shm_perm.gid);
-		err2 |= __put_user (s64.shm_perm.cuid,
-				    &up->shm_perm.cuid);
-		err2 |= __put_user (s64.shm_perm.cgid,
-				    &up->shm_perm.cgid);
-		err2 |= __put_user (s64.shm_perm.mode,
-				    &up->shm_perm.mode);
-		err2 |= __put_user (s64.shm_perm.seq, &up->shm_perm.seq);
-		err2 |= __put_user (s64.shm_atime, &up->shm_atime);
-		err2 |= __put_user (s64.shm_dtime, &up->shm_dtime);
-		err2 |= __put_user (s64.shm_ctime, &up->shm_ctime);
-		err2 |= __put_user (s64.shm_segsz, &up->shm_segsz);
-		err2 |= __put_user (s64.shm_nattch, &up->shm_nattch);
-		err2 |= __put_user (s64.shm_cpid, &up->shm_cpid);
-		err2 |= __put_user (s64.shm_lpid, &up->shm_lpid);
+		if (second & IPC_64) {
+			if (!access_ok(VERIFY_WRITE, up64, sizeof(*up64))) {
+				err = -EFAULT;
+				break;
+			}
+			err2 = __put_user(s64.shm_perm.key, &up64->shm_perm.key);
+			err2 |= __put_user(s64.shm_perm.uid, &up64->shm_perm.uid);
+			err2 |= __put_user(s64.shm_perm.gid, &up64->shm_perm.gid);
+			err2 |= __put_user(s64.shm_perm.cuid, &up64->shm_perm.cuid);
+			err2 |= __put_user(s64.shm_perm.cgid, &up64->shm_perm.cgid);
+			err2 |= __put_user(s64.shm_perm.mode, &up64->shm_perm.mode);
+			err2 |= __put_user(s64.shm_perm.seq, &up64->shm_perm.seq);
+			err2 |= __put_user(s64.shm_atime, &up64->shm_atime);
+			err2 |= __put_user(s64.shm_dtime, &up64->shm_dtime);
+			err2 |= __put_user(s64.shm_ctime, &up64->shm_ctime);
+			err2 |= __put_user(s64.shm_segsz, &up64->shm_segsz);
+			err2 |= __put_user(s64.shm_nattch, &up64->shm_nattch);
+			err2 |= __put_user(s64.shm_cpid, &up64->shm_cpid);
+			err2 |= __put_user(s64.shm_lpid, &up64->shm_lpid);
+		} else {
+			if (!access_ok(VERIFY_WRITE, up32, sizeof(*up32))) {
+				err = -EFAULT;
+				break;
+			}
+			err2 = __put_user(s64.shm_perm.key, &up32->shm_perm.key);
+			err2 |= __put_user(s64.shm_perm.uid, &up32->shm_perm.uid);
+			err2 |= __put_user(s64.shm_perm.gid, &up32->shm_perm.gid);
+			err2 |= __put_user(s64.shm_perm.cuid, &up32->shm_perm.cuid);
+			err2 |= __put_user(s64.shm_perm.cgid, &up32->shm_perm.cgid);
+			err2 |= __put_user(s64.shm_perm.mode, &up32->shm_perm.mode);
+			err2 |= __put_user(s64.shm_perm.seq, &up32->shm_perm.seq);
+			err2 |= __put_user(s64.shm_atime, &up32->shm_atime);
+			err2 |= __put_user(s64.shm_dtime, &up32->shm_dtime);
+			err2 |= __put_user(s64.shm_ctime, &up32->shm_ctime);
+			err2 |= __put_user(s64.shm_segsz, &up32->shm_segsz);
+			err2 |= __put_user(s64.shm_nattch, &up32->shm_nattch);
+			err2 |= __put_user(s64.shm_cpid, &up32->shm_cpid);
+			err2 |= __put_user(s64.shm_lpid, &up32->shm_lpid);
+		}
 		if (err2)
 			err = -EFAULT;
 		break;
@@ -1963,7 +2149,11 @@
 			err = -EFAULT;
 		break;
 
+	default:
+		err = - EINVAL;
+		break;
 	}
+
 	return err;
 }
 
@@ -2037,83 +2227,55 @@
 	unsigned int __unused[4];
 };
 
-asmlinkage long sys32_sysctl(struct sysctl_args32 *uargs32)
-{
-	struct __sysctl_args kargs;
-	struct sysctl_args32 kargs32;
-	mm_segment_t old_fs;
-	int name[CTL_MAXNAME];
-	size_t oldlen[1];
-	int err, ret;
-
-	ret = -EFAULT;
-
-	memset(&kargs, 0, sizeof (kargs));
-
-	err = get_user(kargs32.name, &uargs32->name);
-	err |= __get_user(kargs32.nlen, &uargs32->nlen);
-	err |= __get_user(kargs32.oldval, &uargs32->oldval);
-	err |= __get_user(kargs32.oldlenp, &uargs32->oldlenp);
-	err |= __get_user(kargs32.newval, &uargs32->newval);
-	err |= __get_user(kargs32.newlen, &uargs32->newlen);
-	if (err)
-		goto out;
+#ifdef CONFIG_SYSCTL
 
-	if (kargs32.nlen == 0 || kargs32.nlen >= CTL_MAXNAME) {
-		ret = -ENOTDIR;
-		goto out;
-	}
+asmlinkage long sys32_sysctl(struct sysctl_args32 *args)
+{
+	struct sysctl_args32 tmp;
+	int error;
+	size_t oldlen, *oldlenp = NULL;
+	unsigned long addr = (((long)&args->__unused[0]) + 7) & ~7;
 
-	kargs.name = name;
-	kargs.nlen = kargs32.nlen;
-	if (copy_from_user(kargs.name, (int *)A(kargs32.name),
-			   kargs32.nlen * sizeof(name) / sizeof(name[0])))
-		goto out;
+	if (copy_from_user(&tmp, args, sizeof(tmp)))
+		return -EFAULT;
 
-	if (kargs32.oldval) {
-		if (!kargs32.oldlenp || get_user(oldlen[0],
-						 (int *)A(kargs32.oldlenp)))
+	if (tmp.oldval && tmp.oldlenp) {
+		/* Duh, this is ugly and might not work if sysctl_args
+		   is in read-only memory, but do_sysctl does indirectly
+		   a lot of uaccess in both directions and we'd have to
+		   basically copy the whole sysctl.c here, and
+		   glibc's __sysctl uses rw memory for the structure
+		   anyway.  */
+		if (get_user(oldlen, (u32 *)A(tmp.oldlenp)) ||
+		    put_user(oldlen, (size_t *)addr))
 			return -EFAULT;
-		kargs.oldlenp = oldlen;
-		kargs.oldval = kmalloc(oldlen[0], GFP_KERNEL);
-		if (!kargs.oldval) {
-			ret = -ENOMEM;
-			goto out;
-		}
+		oldlenp = (size_t *)addr;
 	}
 
-	if (kargs32.newval && kargs32.newlen) {
-		kargs.newval = kmalloc(kargs32.newlen, GFP_KERNEL);
-		if (!kargs.newval) {
-			ret = -ENOMEM;
-			goto out;
+	lock_kernel();
+	error = do_sysctl((int *)A(tmp.name), tmp.nlen, (void *)A(tmp.oldval),
+			  oldlenp, (void *)A(tmp.newval), tmp.newlen);
+	unlock_kernel();
+	if (oldlenp) {
+		if (!error) {
+			if (get_user(oldlen, (size_t *)addr) ||
+			    put_user(oldlen, (u32 *)A(tmp.oldlenp)))
+				error = -EFAULT;
 		}
-		if (copy_from_user(kargs.newval, (int *)A(kargs32.newval),
-				   kargs32.newlen))
-			goto out;
+		copy_to_user(args->__unused, tmp.__unused, sizeof(tmp.__unused));
 	}
+	return error;
+}
 
-	old_fs = get_fs(); set_fs (KERNEL_DS);
-	ret = sys_sysctl(&kargs);
-	set_fs (old_fs);
-
-	if (ret)
-		goto out;
+#else /* CONFIG_SYSCTL */
 
-	if (kargs.oldval) {
-		if (put_user(oldlen[0], (int *)A(kargs32.oldlenp)) ||
-		    copy_to_user((int *)A(kargs32.oldval), kargs.oldval,
-				 oldlen[0]))
-			ret = -EFAULT;
-	}
-out:
-	if (kargs.oldval)
-		kfree(kargs.oldval);
-	if (kargs.newval)
-		kfree(kargs.newval);
-	return ret;
+asmlinkage long sys32_sysctl(struct sysctl_args32 *args)
+{
+	return -ENOSYS;
 }
 
+#endif /* CONFIG_SYSCTL */
+
 asmlinkage long sys32_newuname(struct new_utsname * name)
 {
 	int ret = 0;
@@ -2219,7 +2381,7 @@
 /*
  *  Declare the 32-bit version of the msghdr
  */
-
+ 
 struct msghdr32 {
 	unsigned int    msg_name;	/* Socket name			*/
 	int		msg_namelen;	/* Length of name		*/
@@ -2230,74 +2392,132 @@
 	unsigned	msg_flags;
 };
 
-static inline int
-shape_msg(struct msghdr *mp, struct msghdr32 *mp32)
+struct cmsghdr32 {
+        __kernel_size_t32 cmsg_len;
+        int               cmsg_level;
+        int               cmsg_type;
+};
+
+/* Bleech... */
+#define __CMSG32_NXTHDR(ctl, len, cmsg, cmsglen) __cmsg32_nxthdr((ctl),(len),(cmsg),(cmsglen))
+#define CMSG32_NXTHDR(mhdr, cmsg, cmsglen) cmsg32_nxthdr((mhdr), (cmsg), (cmsglen))
+
+#define CMSG32_ALIGN(len) ( ((len)+sizeof(int)-1) & ~(sizeof(int)-1) )
+
+#define CMSG32_DATA(cmsg)	((void *)((char *)(cmsg) + CMSG32_ALIGN(sizeof(struct cmsghdr32))))
+#define CMSG32_SPACE(len) (CMSG32_ALIGN(sizeof(struct cmsghdr32)) + CMSG32_ALIGN(len))
+#define CMSG32_LEN(len) (CMSG32_ALIGN(sizeof(struct cmsghdr32)) + (len))
+
+#define __CMSG32_FIRSTHDR(ctl,len) ((len) >= sizeof(struct cmsghdr32) ? \
+				    (struct cmsghdr32 *)(ctl) : \
+				    (struct cmsghdr32 *)NULL)
+#define CMSG32_FIRSTHDR(msg)	__CMSG32_FIRSTHDR((msg)->msg_control, (msg)->msg_controllen)
+
+__inline__ struct cmsghdr32 *__cmsg32_nxthdr(void *__ctl, __kernel_size_t __size,
+					      struct cmsghdr32 *__cmsg, int __cmsg_len)
 {
-	int ret;
-	unsigned int i;
+	struct cmsghdr32 * __ptr;
 
-	if (!access_ok(VERIFY_READ, mp32, sizeof(*mp32)))
-		return(-EFAULT);
-	ret = __get_user(i, &mp32->msg_name);
-	mp->msg_name = (void *)A(i);
-	ret |= __get_user(mp->msg_namelen, &mp32->msg_namelen);
-	ret |= __get_user(i, &mp32->msg_iov);
-	mp->msg_iov = (struct iovec *)A(i);
-	ret |= __get_user(mp->msg_iovlen, &mp32->msg_iovlen);
-	ret |= __get_user(i, &mp32->msg_control);
-	mp->msg_control = (void *)A(i);
-	ret |= __get_user(mp->msg_controllen, &mp32->msg_controllen);
-	ret |= __get_user(mp->msg_flags, &mp32->msg_flags);
-	return(ret ? -EFAULT : 0);
+	__ptr = (struct cmsghdr32 *)(((unsigned char *) __cmsg) +
+				     CMSG32_ALIGN(__cmsg_len));
+	if ((unsigned long)((char*)(__ptr+1) - (char *) __ctl) > __size)
+		return NULL;
+
+	return __ptr;
 }
 
-/*
- *	Verify & re-shape IA32 iovec. The caller must ensure that the
- *      iovec is big enough to hold the re-shaped message iovec.
- *
- *	Save time not doing verify_area. copy_*_user will make this work
- *	in any case.
- *
- *	Don't need to check the total size for overflow (cf net/core/iovec.c),
- *	32-bit sizes can't overflow a 64-bit count.
- */
+__inline__ struct cmsghdr32 *cmsg32_nxthdr (struct msghdr *__msg,
+					    struct cmsghdr32 *__cmsg,
+					    int __cmsg_len)
+{
+	return __cmsg32_nxthdr(__msg->msg_control, __msg->msg_controllen,
+			       __cmsg, __cmsg_len);
+}
 
-static inline int
-verify_iovec32(struct msghdr *m, struct iovec *iov, char *address, int mode)
+static inline int iov_from_user32_to_kern(struct iovec *kiov,
+					  struct iovec32 *uiov32,
+					  int niov)
 {
-	int size, err, ct;
-	struct iovec32 *iov32;
+	int tot_len = 0;
 
-	if(m->msg_namelen)
-	{
-		if(mode==VERIFY_READ)
-		{
-			err=move_addr_to_kernel(m->msg_name, m->msg_namelen, address);
-			if(err<0)
-				goto out;
+	while(niov > 0) {
+		u32 len, buf;
+
+		if(get_user(len, &uiov32->iov_len) ||
+		   get_user(buf, &uiov32->iov_base)) {
+			tot_len = -EFAULT;
+			break;
 		}
+		tot_len += len;
+		kiov->iov_base = (void *)AA(buf);
+		kiov->iov_len = (__kernel_size_t) len;
+		uiov32++;
+		kiov++;
+		niov--;
+	}
+	return tot_len;
+}
 
-		m->msg_name = address;
-	} else
-		m->msg_name = NULL;
+static inline int msghdr_from_user32_to_kern(struct msghdr *kmsg,
+					     struct msghdr32 *umsg)
+{
+	u32 tmp1, tmp2, tmp3;
+	int err;
 
-	err = -EFAULT;
-	size = m->msg_iovlen * sizeof(struct iovec32);
-	if (copy_from_user(iov, m->msg_iov, size))
-		goto out;
-	m->msg_iov=iov;
+	err = get_user(tmp1, &umsg->msg_name);
+	err |= __get_user(tmp2, &umsg->msg_iov);
+	err |= __get_user(tmp3, &umsg->msg_control);
+	if (err)
+		return -EFAULT;
 
-	err = 0;
-	iov32 = (struct iovec32 *)iov;
-	for (ct = m->msg_iovlen; ct-- > 0; ) {
-		iov[ct].iov_len = (__kernel_size_t)iov32[ct].iov_len;
-		iov[ct].iov_base = (void *) A(iov32[ct].iov_base);
-		err += iov[ct].iov_len;
-	}
-out:
+	kmsg->msg_name = (void *)AA(tmp1);
+	kmsg->msg_iov = (struct iovec *)AA(tmp2);
+	kmsg->msg_control = (void *)AA(tmp3);
+
+	err = get_user(kmsg->msg_namelen, &umsg->msg_namelen);
+	err |= get_user(kmsg->msg_iovlen, &umsg->msg_iovlen);
+	err |= get_user(kmsg->msg_controllen, &umsg->msg_controllen);
+	err |= get_user(kmsg->msg_flags, &umsg->msg_flags);
+	
 	return err;
 }
 
+/* I've named the args so it is easy to tell whose space the pointers are in. */
+static int verify_iovec32(struct msghdr *kern_msg, struct iovec *kern_iov,
+			  char *kern_address, int mode)
+{
+	int tot_len;
+
+	if(kern_msg->msg_namelen) {
+		if(mode==VERIFY_READ) {
+			int err = move_addr_to_kernel(kern_msg->msg_name,
+						      kern_msg->msg_namelen,
+						      kern_address);
+			if(err < 0)
+				return err;
+		}
+		kern_msg->msg_name = kern_address;
+	} else
+		kern_msg->msg_name = NULL;
+
+	if(kern_msg->msg_iovlen > UIO_FASTIOV) {
+		kern_iov = kmalloc(kern_msg->msg_iovlen * sizeof(struct iovec),
+				   GFP_KERNEL);
+		if(!kern_iov)
+			return -ENOMEM;
+	}
+
+	tot_len = iov_from_user32_to_kern(kern_iov,
+					  (struct iovec32 *)kern_msg->msg_iov,
+					  kern_msg->msg_iovlen);
+	if(tot_len >= 0)
+		kern_msg->msg_iov = kern_iov;
+	else if(kern_msg->msg_iovlen > UIO_FASTIOV)
+		kfree(kern_iov);
+
+	return tot_len;
+}
+
 extern __inline__ void
 sockfd_put(struct socket *sock)
 {
@@ -2305,179 +2525,408 @@
 }
 
 /* XXX This really belongs in some header file... -DaveM */
-#define MAX_SOCK_ADDR	128		/* 108 for Unix domain -
+#define MAX_SOCK_ADDR	128		/* 108 for Unix domain - 
 					   16 for IP, 16 for IPX,
 					   24 for IPv6,
 					   about 80 for AX.25 */
 
 extern struct socket *sockfd_lookup(int fd, int *err);
 
-/*
- *	BSD sendmsg interface
+/* There is a lot of hair here because the alignment rules (and
+ * thus placement) of cmsg headers and length are different for
+ * 32-bit apps.  -DaveM
  */
-
-int sys32_sendmsg(int fd, struct msghdr32 *msg, unsigned flags)
+static int cmsghdr_from_user32_to_kern(struct msghdr *kmsg,
+				       unsigned char *stackbuf, int stackbuf_size)
 {
-	struct socket *sock;
-	char address[MAX_SOCK_ADDR];
-	struct iovec iovstack[UIO_FASTIOV], *iov = iovstack;
-	unsigned char ctl[sizeof(struct cmsghdr) + 20];	/* 20 is size of ipv6_pktinfo */
-	unsigned char *ctl_buf = ctl;
-	struct msghdr msg_sys;
-	int err, ctl_len, iov_size, total_len;
-
-	err = -EFAULT;
-	if (shape_msg(&msg_sys, msg))
-		goto out;
+	struct cmsghdr32 *ucmsg;
+	struct cmsghdr *kcmsg, *kcmsg_base;
+	__kernel_size_t32 ucmlen;
+	__kernel_size_t kcmlen, tmp;
 
-	sock = sockfd_lookup(fd, &err);
-	if (!sock)
-		goto out;
+	kcmlen = 0;
+	kcmsg_base = kcmsg = (struct cmsghdr *)stackbuf;
+	ucmsg = CMSG32_FIRSTHDR(kmsg);
+	while(ucmsg != NULL) {
+		if(get_user(ucmlen, &ucmsg->cmsg_len))
+			return -EFAULT;
 
-	/* do not move before msg_sys is valid */
-	err = -EINVAL;
-	if (msg_sys.msg_iovlen > UIO_MAXIOV)
-		goto out_put;
+		/* Catch bogons. */
+		if(CMSG32_ALIGN(ucmlen) <
+		   CMSG32_ALIGN(sizeof(struct cmsghdr32)))
+			return -ENOBUFS;
+		if((unsigned long)(((char *)ucmsg - (char *)kmsg->msg_control)
+				   + ucmlen) > kmsg->msg_controllen)
+			return -EINVAL;
 
-	/* Check whether to allocate the iovec area*/
-	err = -ENOMEM;
-	iov_size = msg_sys.msg_iovlen * sizeof(struct iovec32);
-	if (msg_sys.msg_iovlen > UIO_FASTIOV) {
-		iov = sock_kmalloc(sock->sk, iov_size, GFP_KERNEL);
-		if (!iov)
-			goto out_put;
+		tmp = ((ucmlen - CMSG32_ALIGN(sizeof(*ucmsg))) +
+		       CMSG_ALIGN(sizeof(struct cmsghdr)));
+		kcmlen += tmp;
+		ucmsg = CMSG32_NXTHDR(kmsg, ucmsg, ucmlen);
 	}
+	if(kcmlen == 0)
+		return -EINVAL;
 
-	/* This will also move the address data into kernel space */
-	err = verify_iovec32(&msg_sys, iov, address, VERIFY_READ);
-	if (err < 0)
-		goto out_freeiov;
-	total_len = err;
+	/* The kcmlen holds the 64-bit version of the control length.
+	 * It may not be modified as we do not stick it into the kmsg
+	 * until we have successfully copied over all of the data
+	 * from the user.
+	 */
+	if(kcmlen > stackbuf_size)
+		kcmsg_base = kcmsg = kmalloc(kcmlen, GFP_KERNEL);
+	if(kcmsg == NULL)
+		return -ENOBUFS;
 
-	err = -ENOBUFS;
+	/* Now copy them over neatly. */
+	memset(kcmsg, 0, kcmlen);
+	ucmsg = CMSG32_FIRSTHDR(kmsg);
+	while(ucmsg != NULL) {
+		__get_user(ucmlen, &ucmsg->cmsg_len);
+		tmp = ((ucmlen - CMSG32_ALIGN(sizeof(*ucmsg))) +
+		       CMSG_ALIGN(sizeof(struct cmsghdr)));
+		kcmsg->cmsg_len = tmp;
+		__get_user(kcmsg->cmsg_level, &ucmsg->cmsg_level);
+		__get_user(kcmsg->cmsg_type, &ucmsg->cmsg_type);
 
-	if (msg_sys.msg_controllen > INT_MAX)
-		goto out_freeiov;
-	ctl_len = msg_sys.msg_controllen;
-	if (ctl_len)
-	{
-		if (ctl_len > sizeof(ctl))
-		{
-			err = -ENOBUFS;
-			ctl_buf = sock_kmalloc(sock->sk, ctl_len, GFP_KERNEL);
-			if (ctl_buf == NULL)
-				goto out_freeiov;
-		}
-		err = -EFAULT;
-		if (copy_from_user(ctl_buf, msg_sys.msg_control, ctl_len))
-			goto out_freectl;
-		msg_sys.msg_control = ctl_buf;
+		/* Copy over the data. */
+		if(copy_from_user(CMSG_DATA(kcmsg),
+				  CMSG32_DATA(ucmsg),
+				  (ucmlen - CMSG32_ALIGN(sizeof(*ucmsg)))))
+			goto out_free_efault;
+
+		/* Advance. */
+		kcmsg = (struct cmsghdr *)((char *)kcmsg + CMSG_ALIGN(tmp));
+		ucmsg = CMSG32_NXTHDR(kmsg, ucmsg, ucmlen);
 	}
-	msg_sys.msg_flags = flags;
 
-	if (sock->file->f_flags & O_NONBLOCK)
-		msg_sys.msg_flags |= MSG_DONTWAIT;
-	err = sock_sendmsg(sock, &msg_sys, total_len);
+	/* Ok, looks like we made it.  Hook it up and return success. */
+	kmsg->msg_control = kcmsg_base;
+	kmsg->msg_controllen = kcmlen;
+	return 0;
 
-out_freectl:
-	if (ctl_buf != ctl)
-		sock_kfree_s(sock->sk, ctl_buf, ctl_len);
-out_freeiov:
-	if (iov != iovstack)
-		sock_kfree_s(sock->sk, iov, iov_size);
-out_put:
-	sockfd_put(sock);
-out:
-	return err;
+out_free_efault:
+	if(kcmsg_base != (struct cmsghdr *)stackbuf)
+		kfree(kcmsg_base);
+	return -EFAULT;
 }
 
-/*
- *	BSD recvmsg interface
- */
-
-int
-sys32_recvmsg (int fd, struct msghdr32 *msg, unsigned int flags)
+static void put_cmsg32(struct msghdr *kmsg, int level, int type,
+		       int len, void *data)
 {
-	struct socket *sock;
-	struct iovec iovstack[UIO_FASTIOV];
-	struct iovec *iov=iovstack;
-	struct msghdr msg_sys;
-	unsigned long cmsg_ptr;
-	int err, iov_size, total_len, len;
+	struct cmsghdr32 *cm = (struct cmsghdr32 *) kmsg->msg_control;
+	struct cmsghdr32 cmhdr;
+	int cmlen = CMSG32_LEN(len);
 
-	/* kernel mode address */
-	char addr[MAX_SOCK_ADDR];
+	if(cm == NULL || kmsg->msg_controllen < sizeof(*cm)) {
+		kmsg->msg_flags |= MSG_CTRUNC;
+		return;
+	}
 
-	/* user mode address pointers */
-	struct sockaddr *uaddr;
-	int *uaddr_len;
+	if(kmsg->msg_controllen < cmlen) {
+		kmsg->msg_flags |= MSG_CTRUNC;
+		cmlen = kmsg->msg_controllen;
+	}
+	cmhdr.cmsg_level = level;
+	cmhdr.cmsg_type = type;
+	cmhdr.cmsg_len = cmlen;
 
-	err=-EFAULT;
-	if (shape_msg(&msg_sys, msg))
-		goto out;
+	if(copy_to_user(cm, &cmhdr, sizeof cmhdr))
+		return;
+	if(copy_to_user(CMSG32_DATA(cm), data, cmlen - sizeof(struct cmsghdr32)))
+		return;
+	cmlen = CMSG32_SPACE(len);
+	kmsg->msg_control += cmlen;
+	kmsg->msg_controllen -= cmlen;
+}
 
-	sock = sockfd_lookup(fd, &err);
-	if (!sock)
-		goto out;
+static void scm_detach_fds32(struct msghdr *kmsg, struct scm_cookie *scm)
+{
+	struct cmsghdr32 *cm = (struct cmsghdr32 *) kmsg->msg_control;
+	int fdmax = (kmsg->msg_controllen - sizeof(struct cmsghdr32)) / sizeof(int);
+	int fdnum = scm->fp->count;
+	struct file **fp = scm->fp->fp;
+	int *cmfptr;
+	int err = 0, i;
 
-	err = -EINVAL;
-	if (msg_sys.msg_iovlen > UIO_MAXIOV)
-		goto out_put;
+	if (fdnum < fdmax)
+		fdmax = fdnum;
 
-	/* Check whether to allocate the iovec area*/
-	err = -ENOMEM;
-	iov_size = msg_sys.msg_iovlen * sizeof(struct iovec);
-	if (msg_sys.msg_iovlen > UIO_FASTIOV) {
-		iov = sock_kmalloc(sock->sk, iov_size, GFP_KERNEL);
-		if (!iov)
-			goto out_put;
+	for (i = 0, cmfptr = (int *) CMSG32_DATA(cm); i < fdmax; i++, cmfptr++) {
+		int new_fd;
+		err = get_unused_fd();
+		if (err < 0)
+			break;
+		new_fd = err;
+		err = put_user(new_fd, cmfptr);
+		if (err) {
+			put_unused_fd(new_fd);
+			break;
+		}
+		/* Bump the usage count and install the file. */
+		get_file(fp[i]);
+		fd_install(new_fd, fp[i]);
 	}
 
+	if (i > 0) {
+		int cmlen = CMSG32_LEN(i * sizeof(int));
+		if (!err)
+			err = put_user(SOL_SOCKET, &cm->cmsg_level);
+		if (!err)
+			err = put_user(SCM_RIGHTS, &cm->cmsg_type);
+		if (!err)
+			err = put_user(cmlen, &cm->cmsg_len);
+		if (!err) {
+			cmlen = CMSG32_SPACE(i * sizeof(int));
+			kmsg->msg_control += cmlen;
+			kmsg->msg_controllen -= cmlen;
+		}
+	}
+	if (i < fdnum)
+		kmsg->msg_flags |= MSG_CTRUNC;
+
 	/*
-	 *	Save the user-mode address (verify_iovec will change the
-	 *	kernel msghdr to use the kernel address space)
+	 * All of the files that fit in the message have had their
+	 * usage counts incremented, so we just free the list.
 	 */
+	__scm_destroy(scm);
+}
 
-	uaddr = msg_sys.msg_name;
-	uaddr_len = &msg->msg_namelen;
-	err = verify_iovec32(&msg_sys, iov, addr, VERIFY_WRITE);
-	if (err < 0)
-		goto out_freeiov;
-	total_len=err;
+/* In these cases we (currently) can just copy to data over verbatim
+ * because all CMSGs created by the kernel have well defined types which
+ * have the same layout in both the 32-bit and 64-bit API.  One must add
+ * some special cased conversions here if we start sending control messages
+ * with incompatible types.
+ *
+ * SCM_RIGHTS and SCM_CREDENTIALS are done by hand in recvmsg32 right after
+ * we do our work.  The remaining cases are:
+ *
+ * SOL_IP	IP_PKTINFO	struct in_pktinfo	32-bit clean
+ *		IP_TTL		int			32-bit clean
+ *		IP_TOS		__u8			32-bit clean
+ *		IP_RECVOPTS	variable length		32-bit clean
+ *		IP_RETOPTS	variable length		32-bit clean
+ *		(these last two are clean because the types are defined
+ *		 by the IPv4 protocol)
+ *		IP_RECVERR	struct sock_extended_err +
+ *				struct sockaddr_in	32-bit clean
+ * SOL_IPV6	IPV6_RECVERR	struct sock_extended_err +
+ *				struct sockaddr_in6	32-bit clean
+ *		IPV6_PKTINFO	struct in6_pktinfo	32-bit clean
+ *		IPV6_HOPLIMIT	int			32-bit clean
+ *		IPV6_FLOWINFO	u32			32-bit clean
+ *		IPV6_HOPOPTS	ipv6 hop exthdr		32-bit clean
+ *		IPV6_DSTOPTS	ipv6 dst exthdr(s)	32-bit clean
+ *		IPV6_RTHDR	ipv6 routing exthdr	32-bit clean
+ *		IPV6_AUTHHDR	ipv6 auth exthdr	32-bit clean
+ */
+static void cmsg32_recvmsg_fixup(struct msghdr *kmsg, unsigned long orig_cmsg_uptr)
+{
+	unsigned char *workbuf, *wp;
+	unsigned long bufsz, space_avail;
+	struct cmsghdr *ucmsg;
 
-	cmsg_ptr = (unsigned long)msg_sys.msg_control;
-	msg_sys.msg_flags = 0;
+	bufsz = ((unsigned long)kmsg->msg_control) - orig_cmsg_uptr;
+	space_avail = kmsg->msg_controllen + bufsz;
+	wp = workbuf = kmalloc(bufsz, GFP_KERNEL);
+	if(workbuf == NULL)
+		goto fail;
 
-	if (sock->file->f_flags & O_NONBLOCK)
-		flags |= MSG_DONTWAIT;
-	err = sock_recvmsg(sock, &msg_sys, total_len, flags);
+	/* To make this more sane we assume the kernel sends back properly
+	 * formatted control messages.  Because of how the kernel will truncate
+	 * the cmsg_len for MSG_TRUNC cases, we need not check that case either.
+	 */
+	ucmsg = (struct cmsghdr *) orig_cmsg_uptr;
+	while(((unsigned long)ucmsg) <=
+	      (((unsigned long)kmsg->msg_control) - sizeof(struct cmsghdr))) {
+		struct cmsghdr32 *kcmsg32 = (struct cmsghdr32 *) wp;
+		int clen64, clen32;
+
+		/* UCMSG is the 64-bit format CMSG entry in user-space.
+		 * KCMSG32 is within the kernel space temporary buffer
+		 * we use to convert into a 32-bit style CMSG.
+		 */
+		__get_user(kcmsg32->cmsg_len, &ucmsg->cmsg_len);
+		__get_user(kcmsg32->cmsg_level, &ucmsg->cmsg_level);
+		__get_user(kcmsg32->cmsg_type, &ucmsg->cmsg_type);
+
+		clen64 = kcmsg32->cmsg_len;
+		copy_from_user(CMSG32_DATA(kcmsg32), CMSG_DATA(ucmsg),
+			       clen64 - CMSG_ALIGN(sizeof(*ucmsg)));
+		clen32 = ((clen64 - CMSG_ALIGN(sizeof(*ucmsg))) +
+			  CMSG32_ALIGN(sizeof(struct cmsghdr32)));
+		kcmsg32->cmsg_len = clen32;
+
+		ucmsg = (struct cmsghdr *) (((char *)ucmsg) + CMSG_ALIGN(clen64));
+		wp = (((char *)kcmsg32) + CMSG32_ALIGN(clen32));
+	}
+
+	/* Copy back fixed up data, and adjust pointers. */
+	bufsz = (wp - workbuf);
+	copy_to_user((void *)orig_cmsg_uptr, workbuf, bufsz);
+
+	kmsg->msg_control = (struct cmsghdr *)
+		(((char *)orig_cmsg_uptr) + bufsz);
+	kmsg->msg_controllen = space_avail - bufsz;
+
+	kfree(workbuf);
+	return;
+
+fail:
+	/* If we leave the 64-bit format CMSG chunks in there,
+	 * the application could get confused and crash.  So to
+	 * ensure greater recovery, we report no CMSGs.
+	 */
+	kmsg->msg_controllen += bufsz;
+	kmsg->msg_control = (void *) orig_cmsg_uptr;
+}
+
+asmlinkage int sys32_sendmsg(int fd, struct msghdr32 *user_msg, unsigned user_flags)
+{
+	struct socket *sock;
+	char address[MAX_SOCK_ADDR];
+	struct iovec iov[UIO_FASTIOV];
+	unsigned char ctl[sizeof(struct cmsghdr) + 20];
+	unsigned char *ctl_buf = ctl;
+	struct msghdr kern_msg;
+	int err, total_len;
+
+	if(msghdr_from_user32_to_kern(&kern_msg, user_msg))
+		return -EFAULT;
+	if(kern_msg.msg_iovlen > UIO_MAXIOV)
+		return -EINVAL;
+	err = verify_iovec32(&kern_msg, iov, address, VERIFY_READ);
 	if (err < 0)
-		goto out_freeiov;
-	len = err;
+		goto out;
+	total_len = err;
 
-	if (uaddr != NULL) {
-		err = move_addr_to_user(addr, msg_sys.msg_namelen, uaddr, uaddr_len);
-		if (err < 0)
+	if(kern_msg.msg_controllen) {
+		err = cmsghdr_from_user32_to_kern(&kern_msg, ctl, sizeof(ctl));
+		if(err)
 			goto out_freeiov;
+		ctl_buf = kern_msg.msg_control;
+	}
+	kern_msg.msg_flags = user_flags;
+
+	sock = sockfd_lookup(fd, &err);
+	if (sock != NULL) {
+		if (sock->file->f_flags & O_NONBLOCK)
+			kern_msg.msg_flags |= MSG_DONTWAIT;
+		err = sock_sendmsg(sock, &kern_msg, total_len);
+		sockfd_put(sock);
 	}
-	err = __put_user(msg_sys.msg_flags, &msg->msg_flags);
-	if (err)
-		goto out_freeiov;
-	err = __put_user((unsigned long)msg_sys.msg_control-cmsg_ptr,
-							 &msg->msg_controllen);
-	if (err)
-		goto out_freeiov;
-	err = len;
 
+	/* N.B. Use kfree here, as kern_msg.msg_controllen might change? */
+	if(ctl_buf != ctl)
+		kfree(ctl_buf);
 out_freeiov:
-	if (iov != iovstack)
-		sock_kfree_s(sock->sk, iov, iov_size);
-out_put:
-	sockfd_put(sock);
+	if(kern_msg.msg_iov != iov)
+		kfree(kern_msg.msg_iov);
 out:
 	return err;
 }
 
+asmlinkage int sys32_recvmsg(int fd, struct msghdr32 *user_msg, unsigned int user_flags)
+{
+	struct iovec iovstack[UIO_FASTIOV];
+	struct msghdr kern_msg;
+	char addr[MAX_SOCK_ADDR];
+	struct socket *sock;
+	struct iovec *iov = iovstack;
+	struct sockaddr *uaddr;
+	int *uaddr_len;
+	unsigned long cmsg_ptr;
+	int err, total_len, len = 0;
+
+	if(msghdr_from_user32_to_kern(&kern_msg, user_msg))
+		return -EFAULT;
+	if(kern_msg.msg_iovlen > UIO_MAXIOV)
+		return -EINVAL;
+
+	uaddr = kern_msg.msg_name;
+	uaddr_len = &user_msg->msg_namelen;
+	err = verify_iovec32(&kern_msg, iov, addr, VERIFY_WRITE);
+	if (err < 0)
+		goto out;
+	total_len = err;
+
+	cmsg_ptr = (unsigned long) kern_msg.msg_control;
+	kern_msg.msg_flags = 0;
+
+	sock = sockfd_lookup(fd, &err);
+	if (sock != NULL) {
+		struct scm_cookie scm;
+
+		if (sock->file->f_flags & O_NONBLOCK)
+			user_flags |= MSG_DONTWAIT;
+		memset(&scm, 0, sizeof(scm));
+		err = sock->ops->recvmsg(sock, &kern_msg, total_len,
+					 user_flags, &scm);
+		if(err >= 0) {
+			len = err;
+			if(!kern_msg.msg_control) {
+				if(sock->passcred || scm.fp)
+					kern_msg.msg_flags |= MSG_CTRUNC;
+				if(scm.fp)
+					__scm_destroy(&scm);
+			} else {
+				/* If recvmsg processing itself placed some
+				 * control messages into user space, it's is
+				 * using 64-bit CMSG processing, so we need
+				 * to fix it up before we tack on more stuff.
+				 */
+				if((unsigned long) kern_msg.msg_control != cmsg_ptr)
+					cmsg32_recvmsg_fixup(&kern_msg, cmsg_ptr);
+
+				/* Wheee... */
+				if(sock->passcred)
+					put_cmsg32(&kern_msg,
+						   SOL_SOCKET, SCM_CREDENTIALS,
+						   sizeof(scm.creds), &scm.creds);
+				if(scm.fp != NULL)
+					scm_detach_fds32(&kern_msg, &scm);
+			}
+		}
+		sockfd_put(sock);
+	}
+
+	if(uaddr != NULL && kern_msg.msg_namelen && err >= 0)
+		err = move_addr_to_user(addr, kern_msg.msg_namelen, uaddr, uaddr_len);
+	if(cmsg_ptr != 0 && err >= 0) {
+		unsigned long ucmsg_ptr = ((unsigned long)kern_msg.msg_control);
+		__kernel_size_t32 uclen = (__kernel_size_t32) (ucmsg_ptr - cmsg_ptr);
+		err |= __put_user(uclen, &user_msg->msg_controllen);
+	}
+	if(err >= 0)
+		err = __put_user(kern_msg.msg_flags, &user_msg->msg_flags);
+	if(kern_msg.msg_iov != iov)
+		kfree(kern_msg.msg_iov);
+out:
+	if(err < 0)
+		return err;
+	return len;
+}
+
+extern asmlinkage ssize_t sys_sendfile(int out_fd, int in_fd, off_t *offset, size_t count);
+
+asmlinkage int sys32_sendfile(int out_fd, int in_fd, __kernel_off_t32 *offset, s32 count)
+{
+	mm_segment_t old_fs = get_fs();
+	int ret;
+	off_t of;
+	
+	if (offset && get_user(of, offset))
+		return -EFAULT;
+		
+	set_fs(KERNEL_DS);
+	ret = sys_sendfile(out_fd, in_fd, offset ? &of : NULL, count);
+	set_fs(old_fs);
+	
+	if (offset && put_user(of, offset))
+		return -EFAULT;
+		
+	return ret;
+}
+
 asmlinkage ssize_t sys_readahead(int fd, loff_t offset, size_t count);
 
 asmlinkage ssize_t sys32_readahead(int fd, u32 pad0, u64 a2, u64 a3,
@@ -2520,7 +2969,37 @@
         return i;
 }
 
-#else
+#else /* CONFIG_MODULES */
+
+asmlinkage unsigned long
+sys32_create_module(const char *name_user, size_t size)
+{
+	return -ENOSYS;
+}
+
+asmlinkage int
+sys32_init_module(const char *name_user, struct module *mod_user)
+{
+	return -ENOSYS;
+}
+
+asmlinkage int
+sys32_delete_module(const char *name_user)
+{
+	return -ENOSYS;
+}
+
+asmlinkage int
+sys32_query_module(const char *name_user, int which, char *buf, size_t bufsize,
+		 size_t *ret)
+{
+	/* Let the program know about the new interface.  Not that
+	   it'll do them much good.  */
+	if (which == 0)
+		return 0;
+
+	return -ENOSYS;
+}
 
 asmlinkage long
 sys32_get_kernel_syms(struct kernel_sym *table)
@@ -2528,4 +3007,4 @@
 	return -ENOSYS;
 }
 
-#endif
+#endif /* CONFIG_MODULES */
diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/Makefile linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/Makefile
--- linux-2.4.20/arch/mips64/kernel/Makefile	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/Makefile	2003-01-20 14:21:42.000000000 -0600
@@ -12,25 +12,28 @@
 
 O_TARGET := kernel.o
 
-export-objs	= irq.o mips64_ksyms.o pci-dma.o setup.o smp.o
+export-objs	= irq.o mips64_ksyms.o pci-dma.o setup.o smp.o time.o
 
 obj-y		:= branch.o cpu-probe.o entry.o irq.o proc.o process.o \
 		   ptrace.o r4k_cache.o r4k_fpu.o r4k_genex.o r4k_switch.o \
 		   reset.o scall_64.o semaphore.o setup.o signal.o syscall.o \
-		   time.o traps.o unaligned.o
+		   traps.o unaligned.o
 
 obj-$(CONFIG_I8259)		+= i8259.o
 obj-$(CONFIG_IRQ_CPU)		+= irq_cpu.o
+obj-$(CONFIG_NEW_TIME_C)	+= time.o
 
 obj-$(CONFIG_MODULES)		+= mips64_ksyms.o
-obj-$(CONFIG_MIPS32_COMPAT)	+= linux32.o scall_o32.o signal32.o ioctl32.o
-obj-$(CONFIG_BINFMT_ELF32)	+= binfmt_elf32.o
+obj-$(CONFIG_MIPS32_COMPAT)	+= linux32.o signal32.o ioctl32.o
+obj-$(CONFIG_MIPS32_N32)	+= binfmt_elfn32.o scall_n32.o
+obj-$(CONFIG_MIPS32_O32)	+= binfmt_elfo32.o scall_o32.o
 obj-$(CONFIG_SMP)		+= smp.o
 
 ifndef CONFIG_MAPPED_PCI_IO
 obj-y				+= pci-dma.o
 endif
 
-AFLAGS_r4k_genex.o := -P
+CFLAGS_cpu-probe.o	= $(shell if $(CC) $(CFLAGS) -Wa,-mdaddi -c -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-DHAVE_AS_SET_DADDI"; fi)
+AFLAGS_r4k_genex.o	= -P
 
 include $(TOPDIR)/Rules.make
diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/pci-dma.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/pci-dma.c
--- linux-2.4.20/arch/mips64/kernel/pci-dma.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/pci-dma.c	2002-09-28 17:28:38.000000000 -0500
@@ -30,7 +30,7 @@
 
 	if (ret != NULL) {
 		memset(ret, 0, size);
-		*dma_handle = bus_to_baddr(hwdev->bus->number, __pa(ret));
+		*dma_handle = bus_to_baddr(hwdev->bus, __pa(ret));
 #ifdef CONFIG_NONCOHERENT_IO
 		dma_cache_wback_inv((unsigned long) ret, size);
 		ret = UNCAC_ADDR(ret);
diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/proc.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/proc.c
--- linux-2.4.20/arch/mips64/kernel/proc.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/proc.c	2002-11-06 19:47:46.000000000 -0600
@@ -145,8 +145,8 @@
 }
 
 struct seq_operations cpuinfo_op = {
-	start:	c_start,
-	next:	c_next,
-	stop:	c_stop,
-	show:	show_cpuinfo,
+	.start	= c_start,
+	.next	= c_next,
+	.stop	= c_stop,
+	.show	= show_cpuinfo,
 };
diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/process.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/process.c
--- linux-2.4.20/arch/mips64/kernel/process.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/process.c	2003-02-20 13:46:34.000000000 -0600
@@ -30,6 +30,7 @@
 #include <asm/io.h>
 #include <asm/elf.h>
 #include <asm/cpu.h>
+#include <asm/fpu.h>
 
 ATTRIB_NORET void cpu_idle(void)
 {
@@ -46,32 +47,30 @@
 	}
 }
 
-struct task_struct *last_task_used_math = NULL;
-
 asmlinkage void ret_from_fork(void);
 
+void start_thread(struct pt_regs * regs, unsigned long pc, unsigned long sp)
+{
+	unsigned long status;
+
+	/* New thread looses kernel privileges. */
+	status = regs->cp0_status & ~(ST0_CU0|ST0_FR|ST0_KSU);
+	status |= KSU_USER;
+	status |= (current->thread.mflags & MF_32BIT_REGS) ? 0 : ST0_FR;
+	regs->cp0_status = status;
+	current->used_math = 0;
+	loose_fpu();
+	regs->cp0_epc = pc;
+	regs->regs[29] = sp;
+	current->thread.current_ds = USER_DS;
+}
+
 void exit_thread(void)
 {
-	/* Forget lazy fpu state */
-	if (IS_FPU_OWNER()) {
-		if (mips_cpu.options & MIPS_CPU_FPU) {
-			__enable_fpu();
-			__asm__ __volatile__("cfc1\t$0,$31");
-		}
-		CLEAR_FPU_OWNER();
-	}
 }
 
 void flush_thread(void)
 {
-	/* Forget lazy fpu state */
-	if (IS_FPU_OWNER()) {
-		if (mips_cpu.options & MIPS_CPU_FPU) {
-			__enable_fpu();
-			__asm__ __volatile__("cfc1\t$0,$31");
-		}
-		CLEAR_FPU_OWNER();
-	}
 }
 
 int copy_thread(int nr, unsigned long clone_flags, unsigned long usp,
@@ -83,10 +82,10 @@
 
 	childksp = (unsigned long)p + KERNEL_STACK_SIZE - 32;
 
-	if (IS_FPU_OWNER()) {
-		if (mips_cpu.options & MIPS_CPU_FPU)
-			save_fp(p);
+	if (is_fpu_owner()) {
+		save_fp(p);
 	}
+
 	/* set up new TSS. */
 	childregs = (struct pt_regs *) childksp - 1;
 	*childregs = *regs;
@@ -107,11 +106,11 @@
 
 	/*
 	 * New tasks loose permission to use the fpu. This accelerates context
-	 * switching for most programs since they don't use the fpu.
+	 * switching for most programs since they don't use the fpu.  Most
+	 * MIPS IV CPUs use ST0_CU3 as ST0_XX flag so we leave it unchanged.
 	 */
-	p->thread.cp0_status = read_32bit_cp0_register(CP0_STATUS) &
-                            ~(ST0_CU3|ST0_CU2|ST0_CU1|ST0_KSU);
-	childregs->cp0_status &= ~(ST0_CU3|ST0_CU2|ST0_CU1);
+	p->thread.cp0_status = read_c0_status() & ~(ST0_CU2|ST0_CU1|ST0_KSU);
+	childregs->cp0_status &= ~(ST0_CU2|ST0_CU1);
 
 	return 0;
 }
@@ -119,33 +118,8 @@
 /* Fill in the fpu structure for a core dump.. */
 int dump_fpu(struct pt_regs *regs, elf_fpregset_t *r)
 {
-	/* We actually store the FPU info in the task->thread
-	 * area.
-	 */
-	if (regs->cp0_status & ST0_CU1) {
-		memcpy(r, &current->thread.fpu, sizeof(current->thread.fpu));
-		return 1;
-	}
-
-	return 0; /* Task didn't use the fpu at all. */
-}
-
-/* Fill in the user structure for a core dump.. */
-void dump_thread(struct pt_regs *regs, struct user *dump)
-{
-	dump->magic = CMAGIC;
-	dump->start_code  = current->mm->start_code;
-	dump->start_data  = current->mm->start_data;
-	dump->start_stack = regs->regs[29] & ~(PAGE_SIZE - 1);
-	dump->u_tsize = (current->mm->end_code - dump->start_code)
-	                >> PAGE_SHIFT;
-	dump->u_dsize = (current->mm->brk + (PAGE_SIZE - 1) - dump->start_data)
-	                >> PAGE_SHIFT;
-	dump->u_ssize = (current->mm->start_stack - dump->start_stack +
-	                 PAGE_SIZE - 1) >> PAGE_SHIFT;
-	memcpy(&dump->regs[0], regs, sizeof(struct pt_regs));
-	memcpy(&dump->regs[EF_SIZE/4], &current->thread.fpu,
-	       sizeof(current->thread.fpu));
+	memcpy(r, &current->thread.fpu, sizeof(current->thread.fpu));
+	return 1;
 }
 
 /*
@@ -156,25 +130,26 @@
 	int retval;
 
 	__asm__ __volatile__(
-		"move\t$6, $sp\n\t"
-		"move\t$4, %5\n\t"
-		"li\t$2, %1\n\t"
-		"syscall\n\t"
-		"beq\t$6, $sp, 1f\n\t"
-		"move\t$4, %3\n\t"
-		"jalr\t%4\n\t"
-		"move\t$4, $2\n\t"
-		"li\t$2, %2\n\t"
-		"syscall\n"
-		"1:\tmove\t%0, $2"
-		:"=r" (retval)
-		:"i" (__NR_clone), "i" (__NR_exit), "r" (arg), "r" (fn),
-		 "r" (flags | CLONE_VM)
-
-		 /* The called subroutine might have destroyed any of the
-		  * at, result, argument or temporary registers ...  */
+		"	move	$6, $sp		\n"
+		"	move	$4, %5		\n"
+		"	li	$2, %1		\n"
+		"	syscall			\n"
+		"	beq	$6, $sp, 1f	\n"
+		"	move	$4, %3		\n"
+		"	jalr	%4		\n"
+		"	move	$4, $2		\n"
+		"	li	$2, %2		\n"
+		"	syscall			\n"
+		"1:	move	%0, $2		\n"
+		: "=r" (retval)
+		: "i" (__NR_clone), "i" (__NR_exit), "r" (arg), "r" (fn),
+		  "r" (flags | CLONE_VM)
+		 /*
+		  * The called subroutine might have destroyed any of the
+		  * at, result, argument or temporary registers ...
+		 */
 		: "$2", "$3", "$4", "$5", "$6", "$7", "$8",
-		  "$9","$10","$11","$12","$13","$14","$15","$24","$25");
+		  "$9","$10","$11","$12","$13","$14","$15","$24","$25","$31");
 
 	return retval;
 }
@@ -230,7 +205,7 @@
 	}
 
 out:
-	if (current->thread.mflags & MF_32BIT)	/* Kludge for 32-bit ps  */
+	if (current->thread.mflags & MF_32BIT_ADDR) /* Kludge for 32-bit ps  */
 		pc &= 0xffffffff;
 
 	return pc;
diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/ptrace.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/ptrace.c
--- linux-2.4.20/arch/mips64/kernel/ptrace.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/ptrace.c	2003-01-27 12:14:34.000000000 -0600
@@ -23,6 +23,7 @@
 #include <linux/user.h>
 
 #include <asm/cpu.h>
+#include <asm/fpu.h>
 #include <asm/mipsregs.h>
 #include <asm/pgtable.h>
 #include <asm/page.h>
@@ -112,32 +113,8 @@
 			break;
 		case FPR_BASE ... FPR_BASE + 31:
 			if (child->used_math) {
-				unsigned long long *fregs
-					= (unsigned long long *)
-					    &child->thread.fpu.hard.fp_regs[0];
-				if (mips_cpu.options & MIPS_CPU_FPU) {
-#ifndef CONFIG_SMP
-					if (last_task_used_math == child) {
-						__enable_fpu();
-						save_fp(child);
-						__disable_fpu();
-						last_task_used_math = NULL;
-					}
-#endif
-				} else {
-					fregs = (unsigned long long *)
-						child->thread.fpu.soft.regs;
-				}
-
-				/*
-				 * The odd registers are actually the high
-				 * order bits of the values stored in the even
-				 * registers.
-				 */
-				if (addr & 1)
-					tmp = (unsigned long) (fregs[((addr & ~1) - 32)] >> 32);
-				else
-					tmp = (unsigned long) (fregs[(addr - 32)] & 0xffffffff);
+				unsigned long *fregs = get_fpu_regs(child);
+				tmp = fregs[addr - FPR_BASE];
 			} else {
 				tmp = -EIO;
 			}
@@ -199,40 +176,14 @@
 			regs->regs[addr] = data;
 			break;
 		case FPR_BASE ... FPR_BASE + 31: {
-			unsigned long long *fregs;
-			fregs = (unsigned long long *)&child->thread.fpu.hard.fp_regs[0];
-			if (child->used_math) {
-#ifndef CONFIG_SMP
-				if (last_task_used_math == child)
-					if (mips_cpu.options & MIPS_CPU_FPU) {
-						__enable_fpu();
-						save_fp(child);
-						__disable_fpu();
-						last_task_used_math = NULL;
-						regs->cp0_status &= ~ST0_CU1;
-					} else {
-						fregs = (unsigned long long *)
-						child->thread.fpu.soft.regs;
-					}
-#endif
-			} else {
+			unsigned long *fregs = get_fpu_regs(child);
+			if (!child->used_math) {
 				/* FP not yet used  */
 				memset(&child->thread.fpu.hard, ~0,
 				       sizeof(child->thread.fpu.hard));
 				child->thread.fpu.hard.control = 0;
 			}
-			/*
-			 * The odd registers are actually the high order bits
-			 * of the values stored in the even registers - unless
-			 * we're using r2k_switch.S.
-			 */
-			if (addr & 1) {
-				fregs[(addr & ~1) - FPR_BASE] &= 0xffffffff;
-				fregs[(addr & ~1) - FPR_BASE] |= ((unsigned long) data) << 32;
-			} else {
-				fregs[addr - FPR_BASE] &= ~0xffffffffLL;
-				fregs[addr - FPR_BASE] |= data;
-			}
+			fregs[addr - FPR_BASE] = data;
 			break;
 		}
 		case PC:
@@ -383,32 +334,8 @@
 			break;
 		case FPR_BASE ... FPR_BASE + 31:
 			if (child->used_math) {
-				unsigned long long *fregs
-					= (unsigned long long *)
-					&child->thread.fpu.hard.fp_regs[0];
-				if (mips_cpu.options & MIPS_CPU_FPU) {
-#ifndef CONFIG_SMP
-					if (last_task_used_math == child) {
-						__enable_fpu();
-						save_fp(child);
-						__disable_fpu();
-						last_task_used_math = NULL;
-					}
-#endif
-				} else {
-					fregs = (unsigned long long *)
-						child->thread.fpu.soft.regs;
-				}
-
-				/*
-				 * The odd registers are actually the high
-				 * order bits of the values stored in the even
-				 * registers.
-				 */
-				if (addr & 1)
-					tmp = (unsigned long) (fregs[((addr & ~1) - 32)] >> 32);
-				else
-					tmp = (unsigned long) (fregs[(addr - 32)] & 0xffffffff);
+				unsigned long *fregs = get_fpu_regs(child);
+				tmp = fregs[addr - FPR_BASE];
 			} else {
 				tmp = -EIO;
 			}
@@ -470,42 +397,14 @@
 			regs->regs[addr] = data;
 			break;
 		case FPR_BASE ... FPR_BASE + 31: {
-			unsigned long long *fregs = (unsigned long long *)
-				&child->thread.fpu.hard.fp_regs[0];
-
-			if (child->used_math) {
-#ifndef CONFIG_SMP
-				if (mips_cpu.options & MIPS_CPU_FPU) {
-					if (last_task_used_math == child) {
-						__enable_fpu();
-						save_fp(child);
-						__disable_fpu();
-						last_task_used_math = NULL;
-						regs->cp0_status &= ~ST0_CU1;
-					} else {
-						fregs = (unsigned long long *)
-						child->thread.fpu.soft.regs;
-					}
-				}
-#endif
-			} else {
+			unsigned long *fregs = get_fpu_regs(child);
+			if (!child->used_math) {
 				/* FP not yet used  */
 				memset(&child->thread.fpu.hard, ~0,
 				       sizeof(child->thread.fpu.hard));
 				child->thread.fpu.hard.control = 0;
 			}
-			/*
-			 * The odd registers are actually the high order bits
-			 * of the values stored in the even registers - unless
-			 * we're using r2k_switch.S.
-			 */
-			if (addr & 1) {
-				fregs[(addr & ~1) - FPR_BASE] &= 0xffffffff;
-				fregs[(addr & ~1) - FPR_BASE] |= ((unsigned long) data) << 32;
-			} else {
-				fregs[addr - FPR_BASE] &= ~0xffffffffLL;
-				fregs[addr - FPR_BASE] |= data;
-			}
+			fregs[addr - FPR_BASE] = data;
 			break;
 		}
 		case PC:
diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/r4k_genex.S linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/r4k_genex.S
--- linux-2.4.20/arch/mips64/kernel/r4k_genex.S	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/r4k_genex.S	2003-01-16 08:40:58.000000000 -0600
@@ -5,6 +5,7 @@
  *
  * Copyright (C) 1994 - 1999 by Ralf Baechle
  * Copyright (C) 1999 Silicon Graphics
+ * Copyright (C) 2002  Maciej W. Rozycki
  *
  * Low level exception handling
  */
@@ -15,7 +16,7 @@
 #include <asm/mipsregs.h>
 #include <asm/stackframe.h>
 #include <asm/exception.h>
-#include <asm/r4kcacheops.h>
+#include <asm/cacheops.h>
 
 	BUILD_HANDLER adel ade ade silent		/* #4  */
 	BUILD_HANDLER ades ade ade silent		/* #5  */
@@ -27,29 +28,38 @@
 	BUILD_HANDLER ov ov sti silent			/* #12 */
 	BUILD_HANDLER tr tr sti silent			/* #13 */
 	BUILD_HANDLER fpe fpe fpe silent		/* #15 */
+	BUILD_HANDLER mdmx mdmx sti silent		/* #22 */
 	BUILD_HANDLER watch watch sti verbose		/* #23 */
 	BUILD_HANDLER mcheck mcheck cli verbose		/* #24 */
 	BUILD_HANDLER reserved reserved sti verbose	/* others */
 
+
 	__INIT
 
+/* A temporary overflow handler used by check_daddi(). */
+
+	BUILD_HANDLER  daddi_ov daddi_ov none silent	/* #12 */
+
+
 /* General exception handler for CPUs with virtual coherency exception.
  *
- * Be careful when changing this, it has to be at most 128 bytes to fit
- * into space reserved for the exception handler.
+ * Be careful when changing this, it has to be at most 256 (as a special
+ * exception) bytes to fit into space reserved for the exception handler.
  */
-	NESTED(except_vec3_r4000, 0, sp)
+	.set	push
 	.set	noat
-#if defined(R5432_CP0_INTERRUPT_WAR)
-	mfc0    k0, CP0_INDEX
-#endif
+NESTED(except_vec3_r4000, 0, sp)
 	mfc0	k1, CP0_CAUSE
-	andi	k1, k1, 0x7c
 	li	k0, 31<<2
+	andi	k1, k1, 0x7c
+	.set	push
+	.set	noreorder
+	.set	nomacro
 	beq	k1, k0, handle_vced
 	 li	k0, 14<<2
 	beq	k1, k0, handle_vcei
 	 dsll	k1, k1, 1
+	.set	pop
 	ld	k0, exception_handlers(k1)
 	jr	k0
 
@@ -60,51 +70,61 @@
  * store will be re-executed.
  */
 handle_vced:
-	mfc0	k0, CP0_BADVADDR
+	dmfc0	k0, CP0_BADVADDR
 	li	k1, -4					# Is this ...
 	and	k0, k1					# ... really needed?
 	mtc0	zero, CP0_TAGLO
 	cache	Index_Store_Tag_D,(k0)
 	cache	Hit_Writeback_Inv_SD,(k0)
-	lui	k0, %hi(vced_count)
-	lw	k1, %lo(vced_count)(k0)
+	dla	k0, vced_count
+	lw	k1, (k0)
 	addiu	k1, 1
-	sw	k1, %lo(vced_count)(k0)
+	sw	k1, (k0)
 	eret
 
 handle_vcei:
-	mfc0	k0, CP0_BADVADDR
+	dmfc0	k0, CP0_BADVADDR
 	cache	Hit_Writeback_Inv_SD,(k0)		# also cleans pi
-	lui	k0, %hi(vcei_count)
-	lw	k1, %lo(vcei_count)(k0)
+	dla	k0, vcei_count
+	lw	k1, (k0)
 	addiu	k1, 1
-	sw	k1, %lo(vcei_count)(k0)
+	sw	k1, (k0)
 	eret
+END(except_vec3_r4000)
+	.set	pop
 
-	END(except_vec3_r4000)
-	.set	at
 
-	/* General exception vector for all other CPUs. */
-	NESTED(except_vec3_generic, 0, sp)
+/* General exception vector for all other CPUs.
+ *
+ * Be careful when changing this, it has to be at most 128 bytes
+ * to fit into space reserved for the exception handler.
+ */
+	.set	push
 	.set	noat
+NESTED(except_vec3_generic, 0, sp)
+#if defined(R5432_CP0_INTERRUPT_WAR)
+	mfc0    k0, CP0_INDEX
+#endif
 	mfc0	k1, CP0_CAUSE
 	andi	k1, k1, 0x7c
 	dsll	k1, k1, 1
 	ld	k0, exception_handlers(k1)
 	jr	k0
-	 nop
-	END(except_vec3_generic)
-	.set	at
+END(except_vec3_generic)
+	.set	pop
+
 
 /*
- * Special interrupt vector for embedded MIPS.  This is a dedicated interrupt
- * vector which reduces interrupt processing overhead.  The jump instruction
- * will be inserted here at initialization time.  This handler may only be 8
- * bytes in size!
+ * Special interrupt vector for MIPS64 ISA & embedded MIPS processors.
+ * This is a dedicated interrupt exception vector which reduces the
+ * interrupt processing overhead.  The jump instruction will be replaced
+ * at the initialization time.
+ *
+ * Be careful when changing this, it has to be at most 128 bytes
+ * to fit into space reserved for the exception handler.
  */
 NESTED(except_vec4, 0, sp)
 1:	j	1b			/* Dummy, will be replaced */
-	 nop
-	END(except_vec4)
+END(except_vec4)
 
 	__FINIT
diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/r4k_switch.S linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/r4k_switch.S
--- linux-2.4.20/arch/mips64/kernel/r4k_switch.S	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/r4k_switch.S	2002-11-04 13:39:56.000000000 -0600
@@ -23,6 +23,19 @@
 
 	.set	mips3
 
+#define PF_USEDFPU      0x00100000      /* task used FPU this quantum (SMP) */
+#define ST_OFF (KERNEL_STACK_SIZE - 32 - PT_SIZE + PT_STATUS)
+
+/*
+ * [jsun] FPU context is saved if and only if the process has used FPU in 
+ * the current run (PF_USEDFPU).  In any case, the CU1 bit for user space 
+ * STATUS register should be 0, so that a process *always* starts its 
+ * userland with FPU disabled after each context switch.
+ *
+ * FPU will be enabled as soon as the process accesses FPU again, through
+ * do_cpu() trap.
+ */
+
 /*
  * task_struct *resume(task_struct *prev, task_struct *next)
  */
@@ -35,6 +48,38 @@
 	sd	ra, THREAD_REG31(a0)
 
 	/*
+	 * check if we need to save FPU registers
+	 */
+	ld	t0, TASK_FLAGS(a0)
+	li	t1, PF_USEDFPU
+	and	t2, t0, t1
+	beqz	t2, 1f
+	nor	t1, zero, t1
+
+	/*
+	 * clear PF_USEDFPU bit in task flags
+	 */
+	and	t0, t0, t1
+	sd	t0, TASK_FLAGS(a0)
+
+	/*
+	 * clear saved user stack CU1 bit
+	 */
+	ld	t0, ST_OFF(a0)
+	li	t1, ~ST0_CU1
+	and	t0, t0, t1
+	sd	t0, ST_OFF(a0)
+
+	
+	sll	t2, t0, 5
+	bgez	t2, 2f
+	sdc1	$f0, (THREAD_FPU + 0x00)(a0)
+        fpu_save_16odd a0
+2:
+        fpu_save_16even a0 t1                   # clobbers t1
+1:
+
+	/*
 	 * The order of restoring the registers takes care of the race
 	 * updating $28, $29 and kernelsp without disabling ints.
 	 */
@@ -57,51 +102,10 @@
 	END(resume)
 
 /*
- * Do lazy fpu context switch.  Saves FPU context to the process in a0
- * and loads the new context of the current process.
- */
-
-#define ST_OFF (KERNEL_STACK_SIZE - 32 - PT_SIZE + PT_STATUS)
-
-LEAF(lazy_fpu_switch)
-	mfc0	t0, CP0_STATUS			# enable cp1
-	li	t3, ST0_CU1
-	or	t0, t3
-	mtc0	t0, CP0_STATUS
-	FPU_ENABLE_HAZARD
-
-	beqz	a0, 2f				# Save floating point state
-	 nor	t3, zero, t3
-
-	ld	t1, ST_OFF(a0)			# last thread looses fpu
-	and	t1, t3
-	sd	t1, ST_OFF(a0)
-	sll	t2, t1, 5
-	bgez	t2, 1f
-	 sdc1	$f0, (THREAD_FPU + 0x00)(a0)
-	fpu_save_16odd a0
-1:
-	fpu_save_16even a0 t1			# clobbers t1
-2:
-
-	beqz	a1, 3f
-
-	sll	t0, t0, 5			# load new fp state
-	bgez	t0, 1f
-	 ldc1	$f0, (THREAD_FPU + 0x00)(a1)
-	fpu_restore_16odd a1
-1:
-	.set	reorder
-	fpu_restore_16even a1, t0		# clobbers t0
-3:
-	jr	ra
-	END(lazy_fpu_switch)
-
-/*
  * Save a thread's fp context.
  */
 	.set	noreorder
-LEAF(save_fp)
+LEAF(_save_fp)
 	mfc0	t0, CP0_STATUS
 	sll	t1, t0, 5
 	bgez	t1, 1f				# 16 register mode?
@@ -111,12 +115,12 @@
 	fpu_save_16even a0 t1			# clobbers t1
 	jr	ra
 	 sdc1	$f0, (THREAD_FPU + 0x00)(a0)
-	END(save_fp)
+	END(_save_fp)
 
 /*
  * Restore a thread's fp context.
  */
-LEAF(restore_fp)
+LEAF(_restore_fp)
 	mfc0	t0, CP0_STATUS
 	sll	t1, t0, 5
 	bgez	t1, 1f				# 16 register mode?
@@ -128,7 +132,7 @@
 
 	jr	ra
 	 ldc1	$f0, (THREAD_FPU + 0x00)(a0)
-	END(restore_fp)
+	END(_restore_fp)
 
 /*
  * Load the FPU with signalling NANS.  This bit pattern we're using has
@@ -140,7 +144,7 @@
 
 #define FPU_DEFAULT  0x00000000
 
-LEAF(init_fpu)
+LEAF(_init_fpu)
 	mfc0	t0, CP0_STATUS
 	li	t1, ST0_CU1
 	or	t0, t1
@@ -188,4 +192,4 @@
 	dmtc1	t0, $f28
 	jr	ra
 	 dmtc1	t0, $f30
-	END(init_fpu)
+	END(_init_fpu)
diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/scall_64.S linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/scall_64.S
--- linux-2.4.20/arch/mips64/kernel/scall_64.S	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/scall_64.S	2002-12-03 08:23:05.000000000 -0600
@@ -17,7 +17,8 @@
 #include <asm/unistd.h>
 #include <asm/offset.h>
 
-#ifndef CONFIG_MIPS32_COMPAT
+#ifndef CONFIG_BINFMT_ELF32
+/* Neither O32 nor N32, so define handle_sys here */
 #define handle_sys64 handle_sys
 #endif
 
@@ -130,237 +131,203 @@
 
 	.align	3
 sys_call_table:
-	PTR	sys_syscall				/* 5000 */
-	PTR	sys_exit
-	PTR	sys_fork
-	PTR	sys_read
+	PTR	sys_read			/* 5000 */
 	PTR	sys_write
-	PTR	sys_open				/* 5005 */
+	PTR	sys_open
 	PTR	sys_close
-	PTR	sys_waitpid
-	PTR	sys_creat
-	PTR	sys_link
-	PTR	sys_unlink				/* 5010 */
-	PTR	sys_execve
-	PTR	sys_chdir
-	PTR	sys_time
-	PTR	sys_mknod
-	PTR	sys_chmod				/* 5015 */
-	PTR	sys_lchown
-	PTR	sys_ni_syscall
-	PTR	sys_stat
+	PTR	sys_newstat
+	PTR	sys_newfstat			/* 5005 */
+	PTR	sys_newlstat
+	PTR	sys_poll
 	PTR	sys_lseek
-	PTR	sys_getpid				/* 5020 */
-	PTR	sys_mount
-	PTR	sys_oldumount
-	PTR	sys_setuid
-	PTR	sys_getuid
-	PTR	sys_stime				/* 5025 */
-	PTR	sys_ni_syscall		/* ptrace */
-	PTR	sys_alarm
-	PTR	sys_fstat
+	PTR	sys_mmap
+	PTR	sys_mprotect			/* 5010 */
+	PTR	sys_munmap
+	PTR	sys_brk
+	PTR	sys_rt_sigaction
+	PTR	sys_rt_sigprocmask
+	PTR	sys_ioctl			/* 5015 */
+	PTR	sys_pread
+	PTR	sys_pwrite
+	PTR	sys_readv
+	PTR	sys_writev
+	PTR	sys_access			/* 5020 */
+	PTR	sys_pipe
+	PTR	sys_select
+	PTR	sys_sched_yield
+	PTR	sys_mremap
+	PTR	sys_msync			/* 5025 */
+	PTR	sys_mincore
+	PTR	sys_madvise
+	PTR	sys_shmget
+	PTR	sys_shmat
+	PTR	sys_shmctl			/* 5030 */
+	PTR	sys_dup
+	PTR	sys_dup2
 	PTR	sys_pause
-	PTR	sys_utime				/* 5030 */
-	PTR	sys_ni_syscall
-	PTR	sys_ni_syscall
-	PTR	sys_access
-	PTR	sys_nice
-	PTR	sys_ni_syscall				/* 5035 */
-	PTR	sys_sync
-	PTR	sys_kill
-	PTR	sys_rename
+	PTR	sys_nanosleep
+	PTR	sys_getitimer			/* 5035 */
+	PTR	sys_setitimer
+	PTR	sys_alarm
+	PTR	sys_getpid
+	PTR	sys_sendfile
+	PTR	sys_socket			/* 5040 */
+	PTR	sys_connect
+	PTR	sys_accept
+	PTR	sys_sendto
+	PTR	sys_recvfrom
+	PTR	sys_sendmsg			/* 5045 */
+	PTR	sys_recvmsg
+	PTR	sys_shutdown
+	PTR	sys_bind
+	PTR	sys_listen
+	PTR	sys_getsockname			/* 5050 */
+	PTR	sys_getpeername
+	PTR	sys_socketpair
+	PTR	sys_setsockopt
+	PTR	sys_getsockopt
+	PTR	sys_clone			/* 5055 */
+	PTR	sys_fork
+	PTR	sys_execve
+	PTR	sys_exit
+	PTR	sys_wait4
+	PTR	sys_kill			/* 5060 */
+	PTR	sys_newuname
+	PTR	sys_semget
+	PTR	sys_semop
+	PTR	sys_semctl
+	PTR	sys_shmdt			/* 5065 */
+	PTR	sys_msgget
+	PTR	sys_msgsnd
+	PTR	sys_msgrcv
+	PTR	sys_msgctl
+	PTR	sys_fcntl			/* 5070 */
+	PTR	sys_flock
+	PTR	sys_fsync
+	PTR	sys_fdatasync
+	PTR	sys_truncate
+	PTR	sys_ftruncate			/* 5075 */
+	PTR	sys_getdents
+	PTR	sys_getcwd
+	PTR	sys_chdir
+	PTR	sys_fchdir
+	PTR	sys_rename			/* 5080 */
 	PTR	sys_mkdir
-	PTR	sys_rmdir				/* 5040 */
-	PTR	sys_dup
-	PTR	sys_pipe
+	PTR	sys_rmdir
+	PTR	sys_creat
+	PTR	sys_link
+	PTR	sys_unlink			/* 5085 */
+	PTR	sys_symlink
+	PTR	sys_readlink
+	PTR	sys_chmod
+	PTR	sys_fchmod
+	PTR	sys_chown			/* 5090 */
+	PTR	sys_fchown
+	PTR	sys_lchown
+	PTR	sys_umask
+	PTR	sys_gettimeofday
+	PTR	sys_getrlimit			/* 5095 */
+	PTR	sys_getrusage
+	PTR	sys_sysinfo
 	PTR	sys_times
-	PTR	sys_ni_syscall
-	PTR	sys_brk					/* 5045 */
-	PTR	sys_setgid
+	PTR	sys_ptrace
+	PTR	sys_getuid			/* 5100 */
+	PTR	sys_syslog
 	PTR	sys_getgid
-	PTR	sys_ni_syscall		/* was signal	2 */
-	PTR	sys_geteuid
-	PTR	sys_getegid				/* 5050 */
-	PTR	sys_acct
-	PTR	sys_umount
-	PTR	sys_ni_syscall
-	PTR	sys_ioctl
-	PTR	sys_fcntl				/* 5055 */
-	PTR	sys_ni_syscall
+	PTR	sys_setuid
+	PTR	sys_setgid
+	PTR	sys_geteuid			/* 5105 */
+	PTR	sys_getegid
 	PTR	sys_setpgid
-	PTR	sys_ni_syscall
-	PTR	sys_ni_syscall
-	PTR	sys_umask				/* 5060 */
-	PTR	sys_chroot
-	PTR	sys_ustat
-	PTR	sys_dup2
 	PTR	sys_getppid
-	PTR	sys_getpgrp				/* 5065 */
-	PTR	sys_setsid
-	PTR	sys_sigaction
-	PTR	sys_sgetmask
-	PTR	sys_ssetmask
-	PTR	sys_setreuid				/* 5070 */
+	PTR	sys_getpgrp
+	PTR	sys_setsid			/* 5110 */
+	PTR	sys_setreuid
 	PTR	sys_setregid
-	PTR	sys_sigsuspend
-	PTR	sys_sigpending
-	PTR	sys_sethostname
-	PTR	sys_setrlimit				/* 5075 */
-	PTR	sys_getrlimit
-	PTR	sys_getrusage
-	PTR	sys_gettimeofday
-	PTR	sys_settimeofday
-	PTR	sys_getgroups				/* 5080 */
+	PTR	sys_getgroups
 	PTR	sys_setgroups
-	PTR	sys_ni_syscall			/* old_select */
-	PTR	sys_symlink
-	PTR	sys_lstat
-	PTR	sys_readlink				/* 5085 */
-	PTR	sys_uselib
-	PTR	sys_swapon
-	PTR	sys_reboot
-	PTR	sys_ni_syscall			/* old_readdir */
-	PTR	sys_mmap				/* 5090 */
-	PTR	sys_munmap
-	PTR	sys_truncate
-	PTR	sys_ftruncate
-	PTR	sys_fchmod
-	PTR	sys_fchown				/* 5095 */
-	PTR	sys_getpriority
-	PTR	sys_setpriority
-	PTR	sys_ni_syscall
-	PTR	sys_statfs
-	PTR	sys_fstatfs				/* 5100 */
-	PTR	sys_ni_syscall		/* sys_ioperm */
-	PTR	sys_socketcall
-	PTR	sys_syslog
-	PTR	sys_setitimer
-	PTR	sys_getitimer				/* 5105 */
-	PTR	sys_newstat
-	PTR	sys_newlstat
-	PTR	sys_newfstat
-	PTR	sys_ni_syscall
-	PTR	sys_ni_syscall		/* sys_ioperm  *//* 5110 */
-	PTR	sys_vhangup
-	PTR	sys_ni_syscall		/* was sys_idle	 */
-	PTR	sys_ni_syscall		/* sys_vm86 */
-	PTR	sys_wait4
-	PTR	sys_swapoff				/* 5115 */
-	PTR	sys_sysinfo
-	PTR	sys_ipc
-	PTR	sys_fsync
-	PTR	sys_sigreturn
-	PTR	sys_clone				/* 5120 */
-	PTR	sys_setdomainname
-	PTR	sys_newuname
-	PTR	sys_ni_syscall		/* sys_modify_ldt */
-	PTR	sys_adjtimex
-	PTR	sys_mprotect				/* 5125 */
-	PTR	sys_sigprocmask
-	PTR	sys_create_module
-	PTR	sys_init_module
-	PTR	sys_delete_module
-	PTR	sys_get_kernel_syms 			/* 5130 */
-	PTR	sys_quotactl
+	PTR	sys_setresuid			/* 5115 */
+	PTR	sys_getresuid
+	PTR	sys_setresgid
+	PTR	sys_getresgid
 	PTR	sys_getpgid
-	PTR	sys_fchdir
-	PTR	sys_bdflush
-	PTR	sys_sysfs				/* 5135 */
-	PTR	sys_personality
-	PTR	sys_ni_syscall		/* for afs_syscall */
-	PTR	sys_setfsuid
+	PTR	sys_setfsuid			/* 5120 */
 	PTR	sys_setfsgid
-	PTR	sys_llseek				/* 5140 */
-	PTR	sys_getdents
-	PTR	sys_select
-	PTR	sys_flock
-	PTR	sys_msync
-	PTR	sys_readv				/* 5145 */
-	PTR	sys_writev
-	PTR	sys_cacheflush
-	PTR	sys_cachectl
-	PTR	sys_sysmips
-	PTR	sys_ni_syscall				/* 5150 */
 	PTR	sys_getsid
-	PTR	sys_fdatasync
-	PTR	sys_sysctl
-	PTR	sys_mlock
-	PTR	sys_munlock				/* 5155 */
-	PTR	sys_mlockall
-	PTR	sys_munlockall
+	PTR	sys_capget
+	PTR	sys_capset
+	PTR	sys_rt_sigpending		/* 5125 */
+	PTR	sys_rt_sigtimedwait
+	PTR	sys_rt_sigqueueinfo
+	PTR	sys_rt_sigsuspend
+	PTR	sys_sigaltstack
+	PTR	sys_utime			/* 5130 */
+	PTR	sys_mknod
+	PTR	sys_personality
+	PTR	sys_ustat
+	PTR	sys_statfs
+	PTR	sys_fstatfs			/* 5135 */
+	PTR	sys_sysfs
+	PTR	sys_getpriority
+	PTR	sys_setpriority
 	PTR	sys_sched_setparam
-	PTR	sys_sched_getparam
-	PTR	sys_sched_setscheduler			/* 5160 */
+	PTR	sys_sched_getparam		/* 5140 */
+	PTR	sys_sched_setscheduler
 	PTR	sys_sched_getscheduler
-	PTR	sys_sched_yield
 	PTR	sys_sched_get_priority_max
 	PTR	sys_sched_get_priority_min
-	PTR	sys_sched_rr_get_interval		/* 5165 */
-	PTR	sys_nanosleep
-	PTR	sys_mremap
-	PTR	sys_accept
-	PTR	sys_bind
-	PTR	sys_connect				/* 5170 */
-	PTR	sys_getpeername
-	PTR	sys_getsockname
-	PTR	sys_getsockopt
-	PTR	sys_listen
-	PTR	sys_recv				/* 5175 */
-	PTR	sys_recvfrom
-	PTR	sys_recvmsg
-	PTR	sys_send
-	PTR	sys_sendmsg
-	PTR	sys_sendto				/* 5180 */
-	PTR	sys_setsockopt
-	PTR	sys_shutdown
-	PTR	sys_socket
-	PTR	sys_socketpair
-	PTR	sys_setresuid				/* 5185 */
-	PTR	sys_getresuid
+	PTR	sys_sched_rr_get_interval	/* 5145 */
+	PTR	sys_mlock
+	PTR	sys_munlock
+	PTR	sys_mlockall
+	PTR	sys_munlockall
+	PTR	sys_vhangup			/* 5150 */
+	PTR	sys_pivot_root
+	PTR	sys_sysctl
+	PTR	sys_prctl
+	PTR	sys_adjtimex
+	PTR	sys_setrlimit			/* 5155 */
+	PTR	sys_chroot
+	PTR	sys_sync
+	PTR	sys_acct
+	PTR	sys_settimeofday
+	PTR	sys_mount			/* 5160 */
+	PTR	sys_umount
+	PTR	sys_swapon
+	PTR	sys_swapoff
+	PTR	sys_reboot
+	PTR	sys_sethostname			/* 5165 */
+	PTR	sys_setdomainname
+	PTR	sys_create_module
+	PTR	sys_init_module
+	PTR	sys_delete_module
+	PTR	sys_get_kernel_syms		/* 5170 */
 	PTR	sys_query_module
-	PTR	sys_poll
+	PTR	sys_quotactl
 	PTR	sys_nfsservctl
-	PTR	sys_setresgid				/* 5190 */
-	PTR	sys_getresgid
-	PTR	sys_prctl
-	PTR	sys_rt_sigreturn
-	PTR	sys_rt_sigaction
-	PTR	sys_rt_sigprocmask 			/* 5195 */
-	PTR	sys_rt_sigpending
-	PTR	sys_rt_sigtimedwait
-	PTR	sys_rt_sigqueueinfo
-	PTR	sys_rt_sigsuspend
-	PTR	sys_pread				/* 5200 */
-	PTR	sys_pwrite
-	PTR	sys_chown
-	PTR	sys_getcwd
-	PTR	sys_capget
-	PTR	sys_capset				/* 5205 */
-	PTR	sys_sigaltstack
-	PTR	sys_sendfile
-	PTR	sys_ni_syscall
-	PTR	sys_ni_syscall
-	PTR	sys_pivot_root				/* 5210 */
-	PTR	sys_mincore
-	PTR	sys_madvise
-	PTR	sys_getdents64
-	PTR	sys_ni_syscall
-	PTR	sys_gettid				/* 5215 */
+	PTR	sys_ni_syscall			/* res. for getpmsg */
+	PTR	sys_ni_syscall			/* 5175  for putpmsg */
+	PTR	sys_ni_syscall			/* res. for afs_syscall */
+	PTR	sys_ni_syscall			/* res. for security */
+	PTR	sys_gettid
 	PTR	sys_readahead
-	PTR	sys_setxattr
+	PTR	sys_setxattr			/* 5180 */
 	PTR	sys_lsetxattr
 	PTR	sys_fsetxattr
-	PTR	sys_getxattr				/* 5220 */
+	PTR	sys_getxattr
 	PTR	sys_lgetxattr
-	PTR	sys_fgetxattr
+	PTR	sys_fgetxattr			/* 5185 */
 	PTR	sys_listxattr
 	PTR	sys_llistxattr
-	PTR	sys_flistxattr				/* 5225 */
+	PTR	sys_flistxattr
 	PTR	sys_removexattr
-	PTR	sys_lremovexattr
+	PTR	sys_lremovexattr		/* 5190 */
 	PTR	sys_fremovexattr
-	PTR	sys_tkill, 2
-	PTR	sys_ni_syscall, 0		/* 5230 res. for sendfile64 */
-	PTR	sys_ni_syscall, 0		/* res. for futex */
-	PTR	sys_ni_syscall, 0		/* res. for sched_setaffinity */
-	PTR	sys_ni_syscall, 0		/* res. for sched_getaffinity */
+	PTR	sys_tkill
+	PTR	sys_time
+	PTR	sys_ni_syscall			/* res. for futex */
+	PTR	sys_ni_syscall			/* 5195 rs. sched_setaffinity */
+	PTR	sys_ni_syscall			/* res. f. sched_getaffinity */
+	PTR	sys_cacheflush
+	PTR	sys_cachectl
+	PTR	sys_sysmips
diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/scall_n32.S linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/scall_n32.S
--- linux-2.4.20/arch/mips64/kernel/scall_n32.S	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/scall_n32.S	2002-12-04 21:03:43.000000000 -0600
@@ -0,0 +1,327 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * Copyright (C) 1995, 96, 97, 98, 99, 2000, 01 by Ralf Baechle
+ * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
+ * Copyright (C) 2001 MIPS Technologies, Inc.
+ */
+#include <linux/config.h>
+#include <asm/asm.h>
+#include <linux/errno.h>
+#include <asm/current.h>
+#include <asm/mipsregs.h>
+#include <asm/regdef.h>
+#include <asm/stackframe.h>
+#include <asm/unistd.h>
+
+/* This duplicates the definition from <linux/sched.h> */
+#define PT_TRACESYS	0x00000002	/* tracing system calls */
+
+/* This duplicates the definition from <asm/signal.h> */
+#define SIGILL		4		/* Illegal instruction (ANSI).  */
+
+#ifndef CONFIG_MIPS32_O32
+/* No O32, so define handle_sys here */
+#define handle_sysn32 handle_sys
+#endif
+
+	.align  5
+NESTED(handle_sysn32, PT_SIZE, sp)
+	ld	t1, PT_EPC(sp)		# skip syscall on return
+
+	subu	t0, v0, __NR_N32_Linux	# check syscall number
+	sltiu	t0, t0,	__NR_N32_Linux_syscalls + 1
+	daddiu	t1, 4			# skip to next instruction
+	beqz	t0, not_n32_scall
+	sd	t1, PT_EPC(sp)
+
+	dsll	t0, v0, 3		# offset into table
+	ld	t2, (sysn32_call_table - (__NR_N32_Linux * 8))(t0)
+
+	sd	a3, PT_R26(sp)		# save a3 for syscall restarting
+
+	ld	t0, TASK_PTRACE($28)	# syscall tracing enabled?
+	andi	t0, PT_TRACESYS
+	bnez	t0, trace_a_syscall
+
+	jalr	t2			# Do The Real Thing (TM)
+
+	li	t0, -EMAXERRNO - 1	# error?
+	sltu	t0, t0, v0
+	sd	t0, PT_R7(sp)		# set error flag
+	beqz	t0, 1f
+
+	negu	v0			# error
+	sd	v0, PT_R0(sp)		# set flag for syscall restarting
+1:	sd	v0, PT_R2(sp)		# result
+
+ret_from_sys_call:
+	mfc0	t0, CP0_STATUS
+	xori	t0, t0, 1
+	ori	t0, t0, 1
+	mtc0	t0, CP0_STATUS
+
+	ld	t2, TASK_NEED_RESCHED($28)
+	bnez	t2, reschedule
+	lw	v0, TASK_SIGPENDING($28)
+	bnez	v0, signal_return
+
+restore_all:
+	RESTORE_SOME
+	RESTORE_SP
+	eret
+
+/* Put this behind restore_all for the sake of the branch prediction.  */
+signal_return:
+	.type	signal_return, @function
+
+	mfc0	t0, CP0_STATUS
+	ori	t0, t0, 1
+	mtc0	t0, CP0_STATUS
+
+	move	a0, zero
+	move	a1, sp
+	jal	do_signal
+	b	restore_all
+
+reschedule:
+	SAVE_STATIC
+	jal	schedule
+	b	ret_from_sys_call
+
+/* ------------------------------------------------------------------------ */
+
+trace_a_syscall:
+	SAVE_STATIC
+	sd	t2,PT_R1(sp)
+	jal	syscall_trace
+	ld	t2,PT_R1(sp)
+
+	ld	a0, PT_R4(sp)		# Restore argument registers
+	ld	a1, PT_R5(sp)
+	ld	a2, PT_R6(sp)
+	ld	a3, PT_R7(sp)
+	jalr	t2
+
+	li	t0, -EMAXERRNO - 1	# error?
+	sltu	t0, t0, v0
+	sd	t0, PT_R7(sp)		# set error flag
+	beqz	t0, 1f
+
+	negu	v0			# error
+	sd	v0, PT_R0(sp)		# set flag for syscall restarting
+1:	sd	v0, PT_R2(sp)		# result
+
+	jal	syscall_trace
+	j	ret_from_sys_call
+
+not_n32_scall:
+	/* This is not an n32 compatibility syscall, pass it on to
+	   the n64 syscall handlers.  */
+	j	handle_sys64
+
+	END(handle_sysn32)
+
+EXPORT(sysn32_call_table)
+	PTR	sys_read			/* 6000 */
+	PTR	sys_write
+	PTR	sys_open
+	PTR	sys_close
+	PTR	sys32_newstat
+	PTR	sys32_newfstat			/* 6005 */
+	PTR	sys32_newlstat
+	PTR	sys_poll
+	PTR	sys_lseek
+	PTR	sys_mmap
+	PTR	sys_mprotect			/* 6010 */
+	PTR	sys_munmap
+	PTR	sys_brk
+	PTR	sys32_rt_sigaction
+	PTR	sys32_rt_sigprocmask
+	PTR	sys32_ioctl			/* 6015 */
+	PTR	sys_pread
+	PTR	sys_pwrite
+	PTR	sys32_readv
+	PTR	sys32_writev
+	PTR	sys_access			/* 6020 */
+	PTR	sys_pipe
+	PTR	sys32_select
+	PTR	sys_sched_yield
+	PTR	sys_mremap
+	PTR	sys_msync			/* 6025 */
+	PTR	sys_mincore
+	PTR	sys_madvise
+	PTR	sys_shmget
+	PTR	sys_shmat
+	PTR	sys_shmctl			/* 6030 */
+	PTR	sys_dup
+	PTR	sys_dup2
+	PTR	sys_pause
+	PTR	sys32_nanosleep
+	PTR	sys32_getitimer			/* 6035 */
+	PTR	sys32_setitimer
+	PTR	sys32_alarm
+	PTR	sys_getpid
+	PTR	sys32_sendfile
+	PTR	sys_socket			/* 6040 */
+	PTR	sys_connect
+	PTR	sys_accept
+	PTR	sys_sendto
+	PTR	sys_recvfrom
+	PTR	sys32_sendmsg			/* 6045 */
+	PTR	sys32_recvmsg
+	PTR	sys_shutdown
+	PTR	sys_bind
+	PTR	sys_listen
+	PTR	sys_getsockname			/* 6050 */
+	PTR	sys_getpeername
+	PTR	sys_socketpair
+	PTR	sys32_setsockopt
+	PTR	sys_getsockopt
+	PTR	sys_clone			/* 6055 */
+	PTR	sys_fork
+	PTR	sys32_execve
+	PTR	sys_exit
+	PTR	sys32_wait4
+	PTR	sys_kill			/* 6060 */
+	PTR	sys32_newuname
+	PTR	sys_semget
+	PTR	sys_semop
+	PTR	sys_semctl
+	PTR	sys_shmdt			/* 6065 */
+	PTR	sys_msgget
+	PTR	sys_msgsnd
+	PTR	sys_msgrcv
+	PTR	sys_msgctl
+	PTR	sys32_fcntl			/* 6070 */
+	PTR	sys_flock
+	PTR	sys_fsync
+	PTR	sys_fdatasync
+	PTR	sys_truncate
+	PTR	sys_ftruncate			/* 6075 */
+	PTR	sys32_getdents
+	PTR	sys_getcwd
+	PTR	sys_chdir
+	PTR	sys_fchdir
+	PTR	sys_rename			/* 6080 */
+	PTR	sys_mkdir
+	PTR	sys_rmdir
+	PTR	sys_creat
+	PTR	sys_link
+	PTR	sys_unlink			/* 6085 */
+	PTR	sys_symlink
+	PTR	sys_readlink
+	PTR	sys_chmod
+	PTR	sys_fchmod
+	PTR	sys_chown			/* 6090 */
+	PTR	sys_fchown
+	PTR	sys_lchown
+	PTR	sys_umask
+	PTR	sys32_gettimeofday
+	PTR	sys32_getrlimit			/* 6095 */
+	PTR	sys32_getrusage
+	PTR	sys32_sysinfo
+	PTR	sys32_times
+	PTR	sys_ptrace
+	PTR	sys_getuid			/* 6100 */
+	PTR	sys_syslog
+	PTR	sys_getgid
+	PTR	sys_setuid
+	PTR	sys_setgid
+	PTR	sys_geteuid			/* 6105 */
+	PTR	sys_getegid
+	PTR	sys_setpgid
+	PTR	sys_getppid
+	PTR	sys_getpgrp
+	PTR	sys_setsid			/* 6110 */
+	PTR	sys_setreuid
+	PTR	sys_setregid
+	PTR	sys_getgroups
+	PTR	sys_setgroups
+	PTR	sys_setresuid			/* 6115 */
+	PTR	sys_getresuid
+	PTR	sys_setresgid
+	PTR	sys_getresgid
+	PTR	sys_getpgid
+	PTR	sys_setfsuid			/* 6120 */
+	PTR	sys_setfsgid
+	PTR	sys_getsid
+	PTR	sys_capget
+	PTR	sys_capset
+	PTR	sys32_rt_sigpending		/* 6125 */
+	PTR	sys32_rt_sigtimedwait
+	PTR	sys32_rt_sigqueueinfo
+	PTR	sys32_rt_sigsuspend
+	PTR	sys32_sigaltstack
+	PTR	sys32_utime			/* 6130 */
+	PTR	sys_mknod
+	PTR	sys32_personality
+	PTR	sys_ustat
+	PTR	sys32_statfs
+	PTR	sys32_fstatfs			/* 6135 */
+	PTR	sys_sysfs
+	PTR	sys_getpriority
+	PTR	sys_setpriority
+	PTR	sys_sched_setparam
+	PTR	sys_sched_getparam		/* 6140 */
+	PTR	sys_sched_setscheduler
+	PTR	sys_sched_getscheduler
+	PTR	sys_sched_get_priority_max
+	PTR	sys_sched_get_priority_min
+	PTR	sys32_sched_rr_get_interval	/* 6145 */
+	PTR	sys_mlock
+	PTR	sys_munlock
+	PTR	sys_mlockall
+	PTR	sys_munlockall
+	PTR	sys_vhangup			/* 6150 */
+	PTR	sys_pivot_root
+	PTR	sys32_sysctl
+	PTR	sys_prctl
+	PTR	sys32_adjtimex
+	PTR	sys32_setrlimit			/* 6155 */
+	PTR	sys_chroot
+	PTR	sys_sync
+	PTR	sys_acct
+	PTR	sys32_settimeofday
+	PTR	sys_mount			/* 6160 */
+	PTR	sys_umount
+	PTR	sys_swapon
+	PTR	sys_swapoff
+	PTR	sys_reboot
+	PTR	sys_sethostname			/* 6165 */
+	PTR	sys_setdomainname
+	PTR	sys_create_module
+	PTR	sys_init_module
+	PTR	sys_delete_module
+	PTR	sys_get_kernel_syms		/* 6170 */
+	PTR	sys_query_module
+	PTR	sys_quotactl
+	PTR	sys_nfsservctl
+	PTR	sys_ni_syscall			/* res. for getpmsg */
+	PTR	sys_ni_syscall			/* 6175  for putpmsg */
+	PTR	sys_ni_syscall			/* res. for afs_syscall */
+	PTR	sys_ni_syscall			/* res. for security */
+	PTR	sys_gettid
+	PTR	sys32_readahead
+	PTR	sys_setxattr			/* 6180 */
+	PTR	sys_lsetxattr
+	PTR	sys_fsetxattr
+	PTR	sys_getxattr
+	PTR	sys_lgetxattr
+	PTR	sys_fgetxattr			/* 6185 */
+	PTR	sys_listxattr
+	PTR	sys_llistxattr
+	PTR	sys_flistxattr
+	PTR	sys_removexattr
+	PTR	sys_lremovexattr		/* 6190 */
+	PTR	sys_fremovexattr
+	PTR	sys_tkill
+	PTR	sys_time
+	PTR	sys_ni_syscall			/* res. for futex */
+	PTR	sys_ni_syscall			/* 5195 rs. sched_setaffinity */
+	PTR	sys_ni_syscall			/* res. f. sched_getaffinity */
+	PTR	sys_cacheflush
+	PTR	sys_cachectl
+	PTR	sys_sysmips
diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/scall_o32.S linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/scall_o32.S
--- linux-2.4.20/arch/mips64/kernel/scall_o32.S	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/scall_o32.S	2003-01-22 20:12:59.000000000 -0600
@@ -33,8 +33,8 @@
 	.set	at
 	ld	t1, PT_EPC(sp)		# skip syscall on return
 
-	subu	t0, v0, __NR_Linux32	# check syscall number
-	sltiu	t0, t0, __NR_Linux32_syscalls + 1
+	subu	t0, v0, __NR_O32_Linux	# check syscall number
+	sltiu	t0, t0, __NR_O32_Linux_syscalls + 1
 	daddiu	t1, 4			# skip to next instruction
 	beqz	t0, not_o32_scall
 	sd	t1, PT_EPC(sp)
@@ -47,8 +47,8 @@
 
 	/* XXX Put both in one cacheline, should save a bit. */
 	dsll	t0, v0, 3		# offset into table
-	ld	t2, (sys_call_table - (__NR_Linux32 * 8))(t0) # syscall routine
-	lbu	t3, (sys_narg_table - __NR_Linux32)(v0)	# number of arguments
+	ld	t2, (sys_call_table - (__NR_O32_Linux * 8))(t0)
+	lbu	t3, (sys_narg_table - __NR_O32_Linux)(v0)
 
 	subu	t0, t3, 5		# 5 or more arguments?
 	sd	a3, PT_R26(sp)		# save a3 for syscall restarting
@@ -184,9 +184,13 @@
 	j	ret_from_sys_call
 
 not_o32_scall:
-	/* This is not an 32-bit compatibility syscall, pass it on to
+	/* This is not an o32 compatibility syscall, pass it on to
 	   the 64-bit syscall handlers.  */
+#ifdef CONFIG_MIPS32_N32
+	j	handle_sysn32
+#else
 	j	handle_sys64
+#endif
 
 illegal_syscall:
 	/* This also isn't a 64-bit syscall, throw an error.  */
@@ -197,7 +201,7 @@
 	j	ret_from_sys_call
 	END(handle_sys)
 
-	LEAF(mips_atomic_set)
+LEAF(mips_atomic_set)
 	andi	v0, a1, 3			# must be word aligned
 	bnez	v0, bad_alignment
 
@@ -205,7 +209,7 @@
 	daddiu	a0, a1, 4
 	or	a0, a0, a1
 	and	a0, a0, v1
-	bltz	a0, bad_address
+	bnez	a0, bad_address
 
 	/* Ok, this is the ll/sc case.  World is sane :-)  */
 1:	ll	v0, (a1)
@@ -240,12 +244,12 @@
 	jr	ra
 	END(mips_atomic_set)
 
-	LEAF(sys32_sysmips)
+LEAF(sys32_sysmips)
 	beq	a0, MIPS_ATOMIC_SET, mips_atomic_set
 	j	sys_sysmips
 	END(sys32_sysmips)
 
-	LEAF(sys32_syscall)
+LEAF(sys32_syscall)
 	ld	t0, PT_R29(sp)		# user sp
 
 	sltu	v0, a0, __NR_Linux + __NR_Linux_syscalls + 1
@@ -253,8 +257,8 @@
 
 	dsll	v0, a0, 3
 	dla	v1, sys32_syscall
-	ld	t2, (sys_call_table - (__NR_Linux32 * 8))(v0)	# function pointer
-	lbu	t3, (sys_narg_table - __NR_Linux32)(a0)	# number of arguments
+	ld	t2, (sys_call_table - (__NR_O32_Linux * 8))(v0)
+	lbu	t3, (sys_narg_table - __NR_O32_Linux)(a0)
 
 	li	v0, -EINVAL
 	beq	t2, v1, out		# do not recurse
@@ -269,7 +273,7 @@
 	ld	v1, THREAD_CURDS($28)
 	or	v0, v0, t1
 	and	v1, v1, v0
-	bltz	v1, efault
+	bnez	v1, efault
 
 	move	a0, a1			# shift argument registers
 	move	a1, a2
@@ -330,7 +334,7 @@
 	sys	sys_chmod	2			/* 4015 */
 	sys	sys_lchown	3
 	sys	sys_ni_syscall	0
-	sys	sys_stat	2
+	sys	sys_ni_syscall	0			/* was sys_stat */
 	sys	sys_lseek	3
 	sys	sys_getpid	0			/* 4020 */
 	sys	sys_mount	5
@@ -340,7 +344,7 @@
 	sys	sys_stime	1			/* 4025 */
 	sys	sys32_ptrace	4
 	sys	sys32_alarm	1
-	sys	sys_fstat	2
+	sys	sys_ni_syscall	0			/* was sys_fstat */
 	sys	sys_pause	0
 	sys	sys32_utime	2			/* 4030 */
 	sys	sys_ni_syscall	0
@@ -394,9 +398,9 @@
 	sys	sys32_settimeofday 2
 	sys	sys_getgroups	2			/* 4080 */
 	sys	sys_setgroups	2
-	sys	sys_ni_syscall	0 /* old_select */
+	sys	sys_ni_syscall	0			/* old_select */
 	sys	sys_symlink	2
-	sys	sys_lstat	2
+	sys	sys_ni_syscall	0			/* was sys_lstat */
 	sys	sys_readlink	3			/* 4085 */
 	sys	sys_uselib	1
 	sys	sys_swapon	2
@@ -428,7 +432,7 @@
 	sys	sys_ni_syscall	0	/* sys_vm86 */
 	sys	sys32_wait4	4
 	sys	sys_swapoff	1			/* 4115 */
-	sys	sys_sysinfo	1
+	sys	sys32_sysinfo	1
 	sys	sys32_ipc		6
 	sys	sys_fsync	1
 	sys	sys32_sigreturn	0
@@ -519,12 +523,12 @@
 	sys	sys_capget	2
 	sys	sys_capset	2			/* 4205 */
 	sys	sys32_sigaltstack	0
-	sys	sys_sendfile	4
+	sys	sys32_sendfile	4
 	sys	sys_ni_syscall	0
 	sys	sys_ni_syscall	0
-	sys	sys_mmap2	6			/* 4210 */
-	sys	sys_truncate64	2
-	sys	sys_ftruncate64	2
+	sys	sys32_mmap2	6			/* 4210 */
+	sys	sys32_truncate64	4
+	sys	sys32_ftruncate64	4
 	sys	sys_newstat	2
 	sys	sys_newlstat	2
 	sys	sys_newfstat	2			/* 4215 */
diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/setup.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/setup.c
--- linux-2.4.20/arch/mips64/kernel/setup.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/setup.c	2003-02-20 21:26:16.000000000 -0600
@@ -13,6 +13,7 @@
 #include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/init.h>
+#include <linux/ioport.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
@@ -71,6 +72,8 @@
 struct ide_ops *ide_ops;
 #endif
 
+extern void * __rd_start, * __rd_end;
+
 extern struct rtc_ops no_rtc_ops;
 struct rtc_ops *rtc_ops;
 
@@ -89,7 +92,7 @@
 
 unsigned char aux_device_present;
 
-extern void load_mmu(void);
+extern char _ftext, _etext, _fdata, _edata, _end;
 
 static char command_line[CL_SIZE] = { 0, };
        char saved_command_line[CL_SIZE];
@@ -102,12 +105,8 @@
 const unsigned long mips_io_port_base = -1;
 EXPORT_SYMBOL(mips_io_port_base);
 
-extern void ip22_setup(void);
-extern void ip27_setup(void);
-extern void ip32_setup(void);
-
 /*
- * isa_slot_offset is the address where E(ISA) busaddress 0 is is mapped
+ * isa_slot_offset is the address where E(ISA) busaddress 0 is mapped
  * for the processor.
  */
 unsigned long isa_slot_offset;
@@ -119,6 +118,9 @@
 extern ATTRIB_NORET asmlinkage void start_kernel(void);
 extern void prom_init(int, char **, char **, int *);
 
+static struct resource code_resource = { "Kernel code" };
+static struct resource data_resource = { "Kernel data" };
+
 asmlinkage void __init init_arch(int argc, char **argv, char **envp,
 	int *prom_vec)
 {
@@ -145,8 +147,8 @@
 	 * Maybe because the kernel is in ckseg0 and not xkphys? Clear it
 	 * anyway ...
 	 */
-	clear_cp0_status(ST0_BEV|ST0_TS|ST0_CU1|ST0_CU2|ST0_CU3);
-	set_cp0_status(ST0_CU0|ST0_KX|ST0_SX|ST0_FR);
+	clear_c0_status(ST0_BEV|ST0_TS|ST0_CU1|ST0_CU2|ST0_CU3);
+	set_c0_status(ST0_CU0|ST0_KX|ST0_SX|ST0_FR);
 
 	start_kernel();
 }
@@ -243,7 +245,12 @@
 	}
 }
 
-void bootmem_init(void)
+
+#define PFN_UP(x)	(((x) + PAGE_SIZE - 1) >> PAGE_SHIFT)
+#define PFN_DOWN(x)	((x) >> PAGE_SHIFT)
+#define PFN_PHYS(x)	((x) << PAGE_SHIFT)
+
+static inline void bootmem_init(void)
 {
 #ifdef CONFIG_BLK_DEV_INITRD
 	unsigned long tmp;
@@ -252,19 +259,26 @@
 	unsigned long bootmap_size;
 	unsigned long start_pfn, max_pfn;
 	int i;
-	extern int _end;
-
-#define PFN_UP(x)	(((x) + PAGE_SIZE - 1) >> PAGE_SHIFT)
-#define PFN_DOWN(x)	((x) >> PAGE_SHIFT)
-#define PFN_PHYS(x)	((x) << PAGE_SHIFT)
 
+#ifdef CONFIG_BLK_DEV_INITRD
+	tmp = (((unsigned long)&_end + PAGE_SIZE-1) & PAGE_MASK) - 8;
+	if (tmp < (unsigned long)&_end)
+		tmp += PAGE_SIZE;
+	initrd_header = (unsigned long *)tmp;
+	if (initrd_header[0] == 0x494E5244) {
+		initrd_start = (unsigned long)&initrd_header[2];
+		initrd_end = initrd_start + initrd_header[1];
+	}
+	start_pfn = PFN_UP(CPHYSADDR((&_end)+(initrd_end - initrd_start) + PAGE_SIZE));
+#else
 	/*
 	 * Partially used pages are not usable - thus
 	 * we are rounding upwards.
-	 * start_pfn = PFN_UP(__pa(&_end));
 	 */
-	start_pfn = PFN_UP((unsigned long)&_end - KSEG0);
+	start_pfn = PFN_UP(CPHYSADDR(&_end));
+#endif	/* CONFIG_BLK_DEV_INITRD */
 
+#ifndef CONFIG_SGI_IP27
 	/* Find the highest page frame number we have available.  */
 	max_pfn = 0;
 	for (i = 0; i < boot_mem_map.nr_map; i++) {
@@ -329,35 +343,95 @@
 
 	/* Reserve the bootmap memory.  */
 	reserve_bootmem(PFN_PHYS(start_pfn), bootmap_size);
+#endif
 
 #ifdef CONFIG_BLK_DEV_INITRD
-#error "Initrd is broken, please fit it."
-	tmp = (((unsigned long)&_end + PAGE_SIZE-1) & PAGE_MASK) - 8;
-	if (tmp < (unsigned long)&_end)
-		tmp += PAGE_SIZE;
-	initrd_header = (unsigned long *)tmp;
-	if (initrd_header[0] == 0x494E5244) {
-		initrd_start = (unsigned long)&initrd_header[2];
-		initrd_end = initrd_start + initrd_header[1];
-		initrd_below_start_ok = 1;
-		if (initrd_end > memory_end) {
+	/* Board specific code should have set up initrd_start and initrd_end */
+	ROOT_DEV = MKDEV(RAMDISK_MAJOR, 0);
+	if (&__rd_start != &__rd_end) {
+		initrd_start = (unsigned long)&__rd_start;
+		initrd_end = (unsigned long)&__rd_end;
+	}
+	initrd_below_start_ok = 1;
+	if (initrd_start) {
+		unsigned long initrd_size = ((unsigned char *)initrd_end) - ((unsigned char *)initrd_start);
+		printk("Initial ramdisk at: 0x%p (%lu bytes)\n",
+		       (void *)initrd_start,
+		       initrd_size);
+/* FIXME: is this right? */
+#ifndef CONFIG_SGI_IP27
+		if (CPHYSADDR(initrd_end) > PFN_PHYS(max_pfn)) {
 			printk("initrd extends beyond end of memory "
-			       "(0x%08lx > 0x%08lx)\ndisabling initrd\n",
-			       initrd_end,memory_end);
+			       "(0x%p > 0x%p)\ndisabling initrd\n",
+			       (void *)CPHYSADDR(initrd_end),
+			       (void *)PFN_PHYS(max_pfn));
 			initrd_start = 0;
-		} else
-			*memory_start_p = initrd_end;
+		}
+#endif /* !CONFIG_SGI_IP27 */
 	}
 #endif
+}
+
+static inline void resource_init(void)
+{
+	int i;
+
+	code_resource.start = virt_to_bus(&_ftext);
+	code_resource.end = virt_to_bus(&_etext) - 1;
+	data_resource.start = virt_to_bus(&_fdata);
+	data_resource.end = virt_to_bus(&_edata) - 1;
+
+	/*
+	 * Request address space for all standard RAM.
+	 */
+	for (i = 0; i < boot_mem_map.nr_map; i++) {
+		struct resource *res;
+
+		res = alloc_bootmem(sizeof(struct resource));
+		switch (boot_mem_map.map[i].type) {
+		case BOOT_MEM_RAM:
+		case BOOT_MEM_ROM_DATA:
+			res->name = "System RAM";
+			break;
+		case BOOT_MEM_RESERVED:
+		default:
+			res->name = "reserved";
+		}
+
+		res->start = boot_mem_map.map[i].addr;
+		res->end = boot_mem_map.map[i].addr +
+			   boot_mem_map.map[i].size - 1;
+
+		res->flags = IORESOURCE_MEM | IORESOURCE_BUSY;
+		request_resource(&iomem_resource, res);
+
+		/*
+		 *  We dont't know which RAM region contains kernel data,
+		 *  so we try it repeatedly and let the resource manager
+		 *  test it.
+		 */
+		request_resource(res, &code_resource);
+		request_resource(res, &data_resource);
+	}
+}
 
 #undef PFN_UP
 #undef PFN_DOWN
 #undef PFN_PHYS
 
-}
 
 void __init setup_arch(char **cmdline_p)
 {
+	extern void decstation_setup(void);
+	extern void ip22_setup(void);
+	extern void ip27_setup(void);
+	extern void ip32_setup(void);
+	extern void swarm_setup(void);
+	extern void malta_setup(void);
+
+#ifdef CONFIG_DECSTATION
+	decstation_setup();
+#endif
 #ifdef CONFIG_SGI_IP22
 	ip22_setup();
 #endif
@@ -367,7 +441,7 @@
 #ifdef CONFIG_SGI_IP32
 	ip32_setup();
 #endif
-#ifdef CONFIG_SIBYTE_SWARM
+#ifdef CONFIG_SIBYTE_BOARD
 	swarm_setup();
 #endif
 #ifdef CONFIG_MIPS_MALTA
@@ -385,6 +459,8 @@
 	bootmem_init();
 
 	paging_init();
+
+	resource_init();
 }
 
 int __init fpu_disable(char *s)
diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/signal32.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/signal32.c
--- linux-2.4.20/arch/mips64/kernel/signal32.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/signal32.c	2002-11-04 13:39:56.000000000 -0600
@@ -25,14 +25,13 @@
 #include <asm/uaccess.h>
 #include <asm/ucontext.h>
 #include <asm/system.h>
+#include <asm/fpu.h>
 
 #define DEBUG_SIG 0
 
 #define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP)))
 
 extern asmlinkage int do_signal32(sigset_t *oldset, struct pt_regs *regs);
-extern asmlinkage int (*save_fp_context)(struct sigcontext *sc);
-extern asmlinkage int (*restore_fp_context)(struct sigcontext *sc);
 
 extern asmlinkage void syscall_trace(void);
 
@@ -257,58 +256,9 @@
 	return ret;
 }
 
-static inline int restore_thread_fp_context(struct sigcontext *sc)
-{
-	u64 *pfreg = &current->thread.fpu.soft.regs[0];
-	int err = 0;
-
-	/*
-	 * Copy all 32 64-bit values.
-	 */
-
-#define restore_fpr(i) 						\
-	do { err |= __get_user(pfreg[i], &sc->sc_fpregs[i]); } while(0)
-
-	restore_fpr( 0); restore_fpr( 1); restore_fpr( 2); restore_fpr( 3);
-	restore_fpr( 4); restore_fpr( 5); restore_fpr( 6); restore_fpr( 7);
-	restore_fpr( 8); restore_fpr( 9); restore_fpr(10); restore_fpr(11);
-	restore_fpr(12); restore_fpr(13); restore_fpr(14); restore_fpr(15);
-	restore_fpr(16); restore_fpr(17); restore_fpr(18); restore_fpr(19);
-	restore_fpr(20); restore_fpr(21); restore_fpr(22); restore_fpr(23);
-	restore_fpr(24); restore_fpr(25); restore_fpr(26); restore_fpr(27);
-	restore_fpr(28); restore_fpr(29); restore_fpr(30); restore_fpr(31);
-
-	err |= __get_user(current->thread.fpu.soft.sr, &sc->sc_fpc_csr);
-
-	return err;
-}
-
-static inline int save_thread_fp_context(struct sigcontext *sc)
-{
-	u64 *pfreg = &current->thread.fpu.soft.regs[0];
-	int err = 0;
-
-#define save_fpr(i) 							\
-	do { err |= __put_user(pfreg[i], &sc->sc_fpregs[i]); } while(0)
-
-	save_fpr( 0); save_fpr( 1); save_fpr( 2); save_fpr( 3);
-	save_fpr( 4); save_fpr( 5); save_fpr( 6); save_fpr( 7);
-	save_fpr( 8); save_fpr( 9); save_fpr(10); save_fpr(11);
-	save_fpr(12); save_fpr(13); save_fpr(14); save_fpr(15);
-	save_fpr(16); save_fpr(17); save_fpr(18); save_fpr(19);
-	save_fpr(20); save_fpr(21); save_fpr(22); save_fpr(23);
-	save_fpr(24); save_fpr(25); save_fpr(26); save_fpr(27);
-	save_fpr(28); save_fpr(29); save_fpr(30); save_fpr(31);
-
-	err |= __put_user(current->thread.fpu.soft.sr, &sc->sc_fpc_csr);
-
-	return err;
-}
-
 static asmlinkage int restore_sigcontext(struct pt_regs *regs,
 					 struct sigcontext *sc)
 {
-	int owned_fp;
 	int err = 0;
 
 	err |= __get_user(regs->cp0_epc, &sc->sc_pc);
@@ -331,25 +281,17 @@
 	restore_gp_reg(31);
 #undef restore_gp_reg
 
-	err |= __get_user(owned_fp, &sc->sc_ownedfp);
 	err |= __get_user(current->used_math, &sc->sc_used_math);
 
-	if (owned_fp) {
-		err |= restore_fp_context(sc);
-		goto out;
-	}
-
-	if (IS_FPU_OWNER()) {
-		/* Signal handler acquired FPU - give it back */
-		CLEAR_FPU_OWNER();
-		regs->cp0_status &= ~ST0_CU1;
-	}
 	if (current->used_math) {
-		/* Undo possible contamination of thread state */
-		err |= restore_thread_fp_context(sc);
+		/* restore fpu context if we have used it before */
+		own_fpu();
+		err |= restore_fp_context(sc);
+	} else {
+		/* signal handler may have used FPU.  Give it up. */
+		loose_fpu();
 	}
 
-out:
 	return err;
 }
 
@@ -489,7 +431,6 @@
 static int inline setup_sigcontext(struct pt_regs *regs,
 				   struct sigcontext *sc)
 {
-	int owned_fp;
 	int err = 0;
 
 	err |= __put_user(regs->cp0_epc, &sc->sc_pc);
@@ -514,25 +455,20 @@
 	err |= __put_user(regs->cp0_cause, &sc->sc_cause);
 	err |= __put_user(regs->cp0_badvaddr, &sc->sc_badvaddr);
 
-	owned_fp = IS_FPU_OWNER();
-	err |= __put_user(owned_fp, &sc->sc_ownedfp);
 	err |= __put_user(current->used_math, &sc->sc_used_math);
 
 	if (!current->used_math)
 		goto out;
 
-	/* There exists FP thread state that may be trashed by signal */
-	if (owned_fp) {
-		/* fp is active.  Save context from FPU */
-		err |= save_fp_context(sc);
-		goto out;
-	}
-
-	/*
-	 * Someone else has FPU.
-	 * Copy Thread context into signal context
+	/* 
+	 * Save FPU state to signal context.  Signal handler will "inherit"
+	 * current FPU state.
 	 */
-	err |= save_thread_fp_context(sc);
+	if (!is_fpu_owner()) {
+		own_fpu();
+		restore_fp(current);
+	}
+	err |= save_fp_context(sc);
 
 out:
 	return err;
@@ -581,10 +517,10 @@
 		/*
 		 * Set up the return code ...
 		 *
-		 *         li      v0, __NR_Linux32_sigreturn
+		 *         li      v0, __NR_O32_sigreturn
 		 *         syscall
 		 */
-		err |= __put_user(0x24020000 + __NR_Linux32_sigreturn,
+		err |= __put_user(0x24020000 + __NR_O32_sigreturn,
 		                  frame->sf_code + 0);
 		err |= __put_user(0x0000000c                 ,
 		                  frame->sf_code + 1);
@@ -645,10 +581,10 @@
 		/*
 		 * Set up the return code ...
 		 *
-		 *         li      v0, __NR_Linux32_rt_sigreturn
+		 *         li      v0, __NR_O32_rt_sigreturn
 		 *         syscall
 		 */
-		err |= __put_user(0x24020000 + __NR_Linux32_rt_sigreturn,
+		err |= __put_user(0x24020000 + __NR_O32_rt_sigreturn,
 		                  frame->rs_code + 0);
 		err |= __put_user(0x0000000c                 ,
 		                  frame->rs_code + 1);
@@ -991,12 +927,114 @@
 	return ret;
 }
 
-asmlinkage void sys32_rt_sigtimedwait(void)
+struct timespec32 {
+	int	tv_sec;
+	int	tv_nsec;
+};
+
+asmlinkage int sys32_rt_sigtimedwait(sigset_t32 *uthese, siginfo_t32 *uinfo,
+	struct timespec32 *uts, __kernel_size_t32 sigsetsize)
 {
-	panic("%s called.", __FUNCTION__);
+	int ret, sig;
+	sigset_t these;
+	sigset_t32 these32;
+	struct timespec ts;
+	siginfo_t info;
+	long timeout = 0;
+
+	/*
+	 * As the result of a brainfarting competition a few years ago the
+	 * size of sigset_t for the 32-bit kernel was choosen to be 128 bits
+	 * but nothing so far is actually using that many, 64 are enough.  So
+	 * for now we just drop the high bits.
+	 */
+	if (copy_from_user (&these32, uthese, sizeof(old_sigset_t32)))
+		return -EFAULT;
+
+	switch (_NSIG_WORDS) {
+#ifdef __MIPSEB__
+	case 4: these.sig[3] = these32.sig[6] | (((long)these32.sig[7]) << 32);
+	case 3: these.sig[2] = these32.sig[4] | (((long)these32.sig[5]) << 32);
+	case 2: these.sig[1] = these32.sig[2] | (((long)these32.sig[3]) << 32);
+	case 1: these.sig[0] = these32.sig[0] | (((long)these32.sig[1]) << 32);
+#endif
+#ifdef __MIPSEL__
+	case 4: these.sig[3] = these32.sig[7] | (((long)these32.sig[6]) << 32);
+	case 3: these.sig[2] = these32.sig[5] | (((long)these32.sig[4]) << 32);
+	case 2: these.sig[1] = these32.sig[3] | (((long)these32.sig[2]) << 32);
+	case 1: these.sig[0] = these32.sig[1] | (((long)these32.sig[0]) << 32);
+#endif
+	}
+
+	/*
+	 * Invert the set of allowed signals to get those we
+	 * want to block.
+	 */
+	sigdelsetmask(&these, sigmask(SIGKILL)|sigmask(SIGSTOP));
+	signotset(&these);
+
+	if (uts) {
+		if (get_user (ts.tv_sec, &uts->tv_sec) ||
+		    get_user (ts.tv_nsec, &uts->tv_nsec))
+			return -EINVAL;
+		if (ts.tv_nsec >= 1000000000L || ts.tv_nsec < 0
+		    || ts.tv_sec < 0)
+			return -EINVAL;
+	}
+
+	spin_lock_irq(&current->sigmask_lock);
+	sig = dequeue_signal(&these, &info);
+	if (!sig) {
+		/* None ready -- temporarily unblock those we're interested
+		   in so that we'll be awakened when they arrive.  */
+		sigset_t oldblocked = current->blocked;
+		sigandsets(&current->blocked, &current->blocked, &these);
+		recalc_sigpending(current);
+		spin_unlock_irq(&current->sigmask_lock);
+
+		timeout = MAX_SCHEDULE_TIMEOUT;
+		if (uts)
+			timeout = (timespec_to_jiffies(&ts)
+				   + (ts.tv_sec || ts.tv_nsec));
+
+		current->state = TASK_INTERRUPTIBLE;
+		timeout = schedule_timeout(timeout);
+
+		spin_lock_irq(&current->sigmask_lock);
+		sig = dequeue_signal(&these, &info);
+		current->blocked = oldblocked;
+		recalc_sigpending(current);
+	}
+	spin_unlock_irq(&current->sigmask_lock);
+
+	if (sig) {
+		ret = sig;
+		if (uinfo) {
+			if (copy_siginfo_to_user32(uinfo, &info))
+				ret = -EFAULT;
+		}
+	} else {
+		ret = -EAGAIN;
+		if (timeout)
+			ret = -EINTR;
+	}
+
+	return ret;
 }
 
-asmlinkage void sys32_rt_sigqueueinfo(void)
+extern asmlinkage int sys_rt_sigqueueinfo(int pid, int sig, siginfo_t *uinfo);
+
+asmlinkage int sys32_rt_sigqueueinfo(int pid, int sig, siginfo_t32 *uinfo)
 {
-	panic("%s called.", __FUNCTION__);
+	siginfo_t info;
+	int ret;
+	mm_segment_t old_fs = get_fs();
+
+	if (copy_from_user (&info, uinfo, 3*sizeof(int)) ||
+	    copy_from_user (info._sifields._pad, uinfo->_sifields._pad, SI_PAD_SIZE))
+		return -EFAULT;
+	set_fs (KERNEL_DS);
+	ret = sys_rt_sigqueueinfo(pid, sig, &info);
+	set_fs (old_fs);
+	return ret;
 }
diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/signal.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/signal.c
--- linux-2.4.20/arch/mips64/kernel/signal.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/signal.c	2003-02-20 13:46:34.000000000 -0600
@@ -26,14 +26,13 @@
 #include <asm/uaccess.h>
 #include <asm/ucontext.h>
 #include <asm/system.h>
+#include <asm/fpu.h>
 
 #define DEBUG_SIG 0
 
 #define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP)))
 
 extern asmlinkage int do_signal(sigset_t *oldset, struct pt_regs *regs);
-extern asmlinkage int (*save_fp_context)(struct sigcontext *sc);
-extern asmlinkage int (*restore_fp_context)(struct sigcontext *sc);
 
 extern asmlinkage void syscall_trace(void);
 
@@ -75,35 +74,7 @@
 /*
  * Atomically swap in the new signal mask, and wait for a signal.
  */
-asmlinkage inline int
-sys_sigsuspend(abi64_no_regargs, struct pt_regs regs)
-{
-	sigset_t *uset, saveset, newset;
-
-	save_static(&regs);
-	uset = (sigset_t *) regs.regs[4];
-	if (copy_from_user(&newset, uset, sizeof(sigset_t)))
-		return -EFAULT;
-	sigdelsetmask(&newset, ~_BLOCKABLE);
-
-	spin_lock_irq(&current->sigmask_lock);
-	saveset = current->blocked;
-	current->blocked = newset;
-	recalc_sigpending(current);
-	spin_unlock_irq(&current->sigmask_lock);
-
-	regs.regs[2] = EINTR;
-	regs.regs[7] = 1;
-	while (1) {
-		current->state = TASK_INTERRUPTIBLE;
-		schedule();
-		if (do_signal(&saveset, &regs))
-			return -EINTR;
-	}
-}
-
-asmlinkage int
-sys_rt_sigsuspend(abi64_no_regargs, struct pt_regs regs)
+asmlinkage int sys_rt_sigsuspend(abi64_no_regargs, struct pt_regs regs)
 {
 	sigset_t *unewset, saveset, newset;
         size_t sigsetsize;
@@ -136,47 +107,7 @@
 	}
 }
 
-asmlinkage int
-sys_sigaction(int sig, const struct sigaction *act, struct sigaction *oact)
-{
-	struct k_sigaction new_ka, old_ka;
-	int ret;
-	int err = 0;
-
-	if (act) {
-		old_sigset_t mask;
-
-		if (!access_ok(VERIFY_READ, act, sizeof(*act)))
-			return -EFAULT;
-		err |= __get_user(new_ka.sa.sa_handler, &act->sa_handler);
-		err |= __get_user(new_ka.sa.sa_flags, &act->sa_flags);
-		err |= __get_user(mask, &act->sa_mask.sig[0]);
-		err |= __get_user(new_ka.sa.sa_restorer, &act->sa_restorer);
-		if (err)
-			return -EFAULT;
-
-		siginitset(&new_ka.sa.sa_mask, mask);
-	}
-
-	ret = do_sigaction(sig, act ? &new_ka : NULL, oact ? &old_ka : NULL);
-
-	if (!ret && oact) {
-		if (!access_ok(VERIFY_WRITE, oact, sizeof(*oact)))
-                        return -EFAULT;
-		err |= __put_user(old_ka.sa.sa_flags, &oact->sa_flags);
-		err |= __put_user(old_ka.sa.sa_handler, &oact->sa_handler);
-		err |= __put_user(old_ka.sa.sa_mask.sig[0], oact->sa_mask.sig);
-                err |= __put_user(0, &oact->sa_mask.sig[1]);
-		err |= __put_user(old_ka.sa.sa_restorer, &oact->sa_restorer);
-                if (err)
-			return -EFAULT;
-	}
-
-	return ret;
-}
-
-asmlinkage int
-sys_sigaltstack(abi64_no_regargs, struct pt_regs regs)
+asmlinkage int sys_sigaltstack(abi64_no_regargs, struct pt_regs regs)
 {
 	const stack_t *uss = (const stack_t *) regs.regs[4];
 	stack_t *uoss = (stack_t *) regs.regs[5];
@@ -185,58 +116,8 @@
 	return do_sigaltstack(uss, uoss, usp);
 }
 
-static inline int restore_thread_fp_context(struct sigcontext *sc)
-{
-     u64 *pfreg = &current->thread.fpu.soft.regs[0];
-     int err = 0;
-
-     /*
-      * Copy all 32 64-bit values.
-      */
-
-#define restore_fpr(i)                          \
-     do { err |= __get_user(pfreg[i], &sc->sc_fpregs[i]); } while(0)
-
-     restore_fpr( 0); restore_fpr( 1); restore_fpr( 2); restore_fpr( 3);
-     restore_fpr( 4); restore_fpr( 5); restore_fpr( 6); restore_fpr( 7);
-     restore_fpr( 8); restore_fpr( 9); restore_fpr(10); restore_fpr(11);
-     restore_fpr(12); restore_fpr(13); restore_fpr(14); restore_fpr(15);
-     restore_fpr(16); restore_fpr(17); restore_fpr(18); restore_fpr(19);
-     restore_fpr(20); restore_fpr(21); restore_fpr(22); restore_fpr(23);
-     restore_fpr(24); restore_fpr(25); restore_fpr(26); restore_fpr(27);
-     restore_fpr(28); restore_fpr(29); restore_fpr(30); restore_fpr(31);
-
-     err |= __get_user(current->thread.fpu.soft.sr, &sc->sc_fpc_csr);
-
-     return err;
-}
-
-static inline int save_thread_fp_context(struct sigcontext *sc)
-{
-     u64 *pfreg = &current->thread.fpu.soft.regs[0];
-     int err = 0;
-
-#define save_fpr(i)                                     \
-     do { err |= __put_user(pfreg[i], &sc->sc_fpregs[i]); } while(0)
-
-     save_fpr( 0); save_fpr( 1); save_fpr( 2); save_fpr( 3);
-     save_fpr( 4); save_fpr( 5); save_fpr( 6); save_fpr( 7);
-     save_fpr( 8); save_fpr( 9); save_fpr(10); save_fpr(11);
-     save_fpr(12); save_fpr(13); save_fpr(14); save_fpr(15);
-     save_fpr(16); save_fpr(17); save_fpr(18); save_fpr(19);
-     save_fpr(20); save_fpr(21); save_fpr(22); save_fpr(23);
-     save_fpr(24); save_fpr(25); save_fpr(26); save_fpr(27);
-     save_fpr(28); save_fpr(29); save_fpr(30); save_fpr(31);
-
-     err |= __put_user(current->thread.fpu.soft.sr, &sc->sc_fpc_csr);
-
-     return err;
-}
-
-asmlinkage int
-restore_sigcontext(struct pt_regs *regs, struct sigcontext *sc)
+asmlinkage int restore_sigcontext(struct pt_regs *regs, struct sigcontext *sc)
 {
-	int owned_fp;
 	int err = 0;
 
 	err |= __get_user(regs->cp0_epc, &sc->sc_pc);
@@ -259,25 +140,17 @@
 	restore_gp_reg(31);
 #undef restore_gp_reg
 
-	err |= __get_user(owned_fp, &sc->sc_ownedfp);
 	err |= __get_user(current->used_math, &sc->sc_used_math);
 
-	if (owned_fp) {
-		err |= restore_fp_context(sc);
-		goto out;
-	}
-
-	if (IS_FPU_OWNER()) {
-		/* Signal handler acquired FPU - give it back */
-		CLEAR_FPU_OWNER();
-		regs->cp0_status &= ~ST0_CU1;
-	}
 	if (current->used_math) {
-		/* Undo possible contamination of thread state */
-		err |= restore_thread_fp_context(sc);
+		/* restore fpu context if we have used it before */
+		own_fpu();
+		err |= restore_fp_context(sc);
+	} else {
+		/* signal handler may have used FPU.  Give it up. */
+		loose_fpu();
 	}
 
-out:
 	return err;
 }
 
@@ -295,87 +168,9 @@
 	struct ucontext rs_uc;
 };
 
-asmlinkage void sys_sigreturn(abi64_no_regargs, struct pt_regs regs)
-{
-	struct sigframe *frame;
-	sigset_t blocked;
-
-	frame = (struct sigframe *) regs.regs[29];
-	if (!access_ok(VERIFY_READ, frame, sizeof(*frame)))
-		goto badframe;
-	if (__copy_from_user(&blocked, &frame->sf_mask, sizeof(blocked)))
-		goto badframe;
-
-	sigdelsetmask(&blocked, ~_BLOCKABLE);
-	spin_lock_irq(&current->sigmask_lock);
-	current->blocked = blocked;
-	recalc_sigpending(current);
-	spin_unlock_irq(&current->sigmask_lock);
-
-	if (restore_sigcontext(&regs, &frame->sf_sc))
-		goto badframe;
-
-	/*
-	 * Don't let your children do this ...
-	 */
-	if (current->ptrace & PT_TRACESYS)
-		syscall_trace();
-	__asm__ __volatile__(
-		"move\t$29, %0\n\t"
-		"j\tret_from_sys_call"
-		:/* no outputs */
-		:"r" (&regs));
-	/* Unreached */
-
-badframe:
-	force_sig(SIGSEGV, current);
-}
-
-asmlinkage void sys_rt_sigreturn(abi64_no_regargs, struct pt_regs regs)
-{
-	struct rt_sigframe *frame;
-	sigset_t set;
-	stack_t st;
-
-	frame = (struct rt_sigframe *) regs.regs[29];
-	if (!access_ok(VERIFY_READ, frame, sizeof(*frame)))
-		goto badframe;
-	if (__copy_from_user(&set, &frame->rs_uc.uc_sigmask, sizeof(set)))
-		goto badframe;
-
-	sigdelsetmask(&set, ~_BLOCKABLE);
-	spin_lock_irq(&current->sigmask_lock);
-	current->blocked = set;
-	recalc_sigpending(current);
-	spin_unlock_irq(&current->sigmask_lock);
-
-	if (restore_sigcontext(&regs, &frame->rs_uc.uc_mcontext))
-		goto badframe;
-
-	if (__copy_from_user(&st, &frame->rs_uc.uc_stack, sizeof(st)))
-		goto badframe;
-	/* It is more difficult to avoid calling this function than to
-	   call it and ignore errors.  */
-	do_sigaltstack(&st, NULL, regs.regs[29]);
-
-	/*
-	 * Don't let your children do this ...
-	 */
-	__asm__ __volatile__(
-		"move\t$29, %0\n\t"
-		"j\tret_from_sys_call"
-		:/* no outputs */
-		:"r" (&regs));
-	/* Unreached */
-
-badframe:
-	force_sig(SIGSEGV, current);
-}
-
 static int inline setup_sigcontext(struct pt_regs *regs,
-				   struct sigcontext *sc)
+	struct sigcontext *sc)
 {
-	int owned_fp;
 	int err = 0;
 
 	err |= __put_user(regs->cp0_epc, &sc->sc_pc);
@@ -400,25 +195,20 @@
 	err |= __put_user(regs->cp0_cause, &sc->sc_cause);
 	err |= __put_user(regs->cp0_badvaddr, &sc->sc_badvaddr);
 
-	owned_fp = IS_FPU_OWNER();
-	err |= __put_user(owned_fp, &sc->sc_ownedfp);
 	err |= __put_user(current->used_math, &sc->sc_used_math);
 
 	if (!current->used_math)
 		goto out;
 
-	/* There exists FP thread state that may be trashed by signal */
-	if (owned_fp) {
-		/* fp is active.  Save context from FPU */
-		err |= save_fp_context(sc);
-		goto out;
-	}
-
-	/*
-	 * Someone else has FPU.
-	 * Copy Thread context into signal context
+	/* 
+	 * Save FPU state to signal context.  Signal handler will "inherit"
+	 * current FPU state.
 	 */
-	err |= save_thread_fp_context(sc);
+	if (!is_fpu_owner()) {
+		own_fpu();
+		restore_fp(current);
+	}
+	err |= save_fp_context(sc);
 
 out:
 	return err;
@@ -428,7 +218,7 @@
  * Determine which stack to use..
  */
 static inline void *get_sigframe(struct k_sigaction *ka, struct pt_regs *regs,
-				 size_t frame_size)
+	size_t frame_size)
 {
 	unsigned long sp;
 
@@ -450,7 +240,7 @@
 }
 
 static void inline setup_frame(struct k_sigaction * ka, struct pt_regs *regs,
-			       int signr, sigset_t *set)
+	int signr, sigset_t *set)
 {
 	struct sigframe *frame;
 	int err = 0;
@@ -459,23 +249,11 @@
 	if (!access_ok(VERIFY_WRITE, frame, sizeof (*frame)))
 		goto give_sigsegv;
 
-	/* Set up to return from userspace.  If provided, use a stub already
-	   in userspace.  */
-	if (ka->sa.sa_flags & SA_RESTORER)
-		regs->regs[31] = (unsigned long) ka->sa.sa_restorer;
-	else {
-		/*
-		 * Set up the return code ...
-		 *
-		 *         li      v0, __NR_sigreturn
-		 *         syscall
-		 */
-		err |= __put_user(0x24020000 + __NR_sigreturn,
-		                  frame->sf_code + 0);
-		err |= __put_user(0x0000000c                 ,
-		                  frame->sf_code + 1);
-		flush_cache_sigtramp((unsigned long) frame->sf_code);
-	}
+	/*
+	 * Set up to return from userspace.  On mips64 we always use a stub 
+	 * already provided by userspace and ignore SA_RESTORER.
+	 */
+	regs->regs[31] = (unsigned long) ka->sa.sa_restorer;
 
 	err |= setup_sigcontext(regs, &frame->sf_sc);
 	err |= __copy_to_user(&frame->sf_mask, set, sizeof(*set));
@@ -513,8 +291,7 @@
 }
 
 static void inline setup_rt_frame(struct k_sigaction * ka,
-				  struct pt_regs *regs, int signr,
-				  sigset_t *set, siginfo_t *info)
+	struct pt_regs *regs, int signr, sigset_t *set, siginfo_t *info)
 {
 	struct rt_sigframe *frame;
 	int err = 0;
@@ -523,23 +300,11 @@
 	if (!access_ok(VERIFY_WRITE, frame, sizeof (*frame)))
 		goto give_sigsegv;
 
-	/* Set up to return from userspace.  If provided, use a stub already
-	   in userspace.  */
-	if (ka->sa.sa_flags & SA_RESTORER)
-		regs->regs[31] = (unsigned long) ka->sa.sa_restorer;
-	else {
-		/*
-		 * Set up the return code ...
-		 *
-		 *         li      v0, __NR_rt_sigreturn
-		 *         syscall
-		 */
-		err |= __put_user(0x24020000 + __NR_rt_sigreturn,
-		                  frame->rs_code + 0);
-		err |= __put_user(0x0000000c                 ,
-		                  frame->rs_code + 1);
-		flush_cache_sigtramp((unsigned long) frame->rs_code);
-	}
+	/*
+	 * Set up to return from userspace.  On mips64 we always use a stub 
+	 * already provided by userspace and ignore SA_RESTORER.
+	 */
+	regs->regs[31] = (unsigned long) ka->sa.sa_restorer;
 
 	/* Create siginfo.  */
 	err |= copy_siginfo_to_user(&frame->rs_info, info);
@@ -590,8 +355,7 @@
 }
 
 static inline void handle_signal(unsigned long sig, struct k_sigaction *ka,
-				 siginfo_t *info, sigset_t *oldset,
-				 struct pt_regs *regs)
+	siginfo_t *info, sigset_t *oldset, struct pt_regs *regs)
 {
 	if (ka->sa.sa_flags & SA_SIGINFO)
 		setup_rt_frame(ka, regs, sig, oldset, info);
@@ -609,8 +373,7 @@
 	}
 }
 
-static inline void syscall_restart(struct pt_regs *regs,
-				   struct k_sigaction *ka)
+static inline void syscall_restart(struct pt_regs *regs, struct k_sigaction *ka)
 {
 	switch(regs->regs[0]) {
 	case ERESTARTNOHAND:
@@ -639,7 +402,7 @@
 	siginfo_t info;
 
 #ifdef CONFIG_BINFMT_ELF32
-	if (current->thread.mflags & MF_32BIT) {
+	if (current->thread.mflags & MF_32BIT_REGS) {
 		return do_signal32(oldset, regs);
 	}
 #endif
diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/smp.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/smp.c
--- linux-2.4.20/arch/mips64/kernel/smp.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/smp.c	2002-11-28 17:29:37.000000000 -0600
@@ -45,7 +45,6 @@
 atomic_t smp_commenced = ATOMIC_INIT(0);
 struct cpuinfo_mips cpu_data[NR_CPUS];
 
-// static atomic_t cpus_booted = ATOMIC_INIT(0);
 atomic_t cpus_booted = ATOMIC_INIT(0);
 
 int smp_num_cpus = 1;			/* Number that came online.  */
@@ -282,7 +281,7 @@
 		int i;
 		for (i = 0; i < smp_num_cpus; i++)
 			if (smp_processor_id() != i)
-				CPU_CONTEXT(i, mm) = 0;
+				cpu_context(i, mm) = 0;
 	}
 	local_flush_tlb_mm(mm);
 }
@@ -314,7 +313,7 @@
 		int i;
 		for (i = 0; i < smp_num_cpus; i++)
 			if (smp_processor_id() != i)
-				CPU_CONTEXT(i, mm) = 0;
+				cpu_context(i, mm) = 0;
 	}
 	local_flush_tlb_range(mm, start, end);
 }
@@ -338,7 +337,7 @@
 		int i;
 		for (i = 0; i < smp_num_cpus; i++)
 			if (smp_processor_id() != i)
-				CPU_CONTEXT(i, vma->vm_mm) = 0;
+				cpu_context(i, vma->vm_mm) = 0;
 	}
 	local_flush_tlb_page(vma, page);
 }
diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/syscall.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/syscall.c
--- linux-2.4.20/arch/mips64/kernel/syscall.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/syscall.c	2002-12-19 20:57:03.000000000 -0600
@@ -186,12 +186,10 @@
 	return -ENOSYS;
 }
 
-asmlinkage int
-sys_sysmips(int cmd, long arg1, int arg2, int arg3)
+asmlinkage int sys_sysmips(int cmd, long arg1, int arg2, int arg3)
 {
-	int	*p;
+	int	tmp, len;
 	char	*name;
-	int	tmp, len, errno;
 
 	switch(cmd) {
 	case SETNAME: {
diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/time.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/time.c
--- linux-2.4.20/arch/mips64/kernel/time.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/time.c	2002-12-01 18:24:52.000000000 -0600
@@ -21,6 +21,7 @@
 #include <linux/kernel_stat.h>
 #include <linux/spinlock.h>
 #include <linux/interrupt.h>
+#include <linux/module.h>
 
 #include <asm/bootinfo.h>
 #include <asm/cpu.h>
@@ -38,6 +39,8 @@
 extern rwlock_t xtime_lock;
 extern volatile unsigned long wall_jiffies;
 
+spinlock_t rtc_lock = SPIN_LOCK_UNLOCKED;
+
 /*
  * whether we emulate local_timer_interrupts for SMP machines.
  */
@@ -154,7 +157,7 @@
 	unsigned long res;
 
 	/* Get last timer tick in absolute kernel time */
-	count = read_32bit_cp0_register(CP0_COUNT);
+	count = read_c0_count();
 
 	/* .. relative to previous jiffy (32 bits is enough) */
 	count -= timerlo;
@@ -210,7 +213,7 @@
 	}
 
 	/* Get last timer tick in absolute kernel time */
-	count = read_32bit_cp0_register(CP0_COUNT);
+	count = read_c0_count();
 
 	/* .. relative to previous jiffy (32 bits is enough) */
 	count -= timerlo;
@@ -265,7 +268,7 @@
 	}
 
 	/* Get last timer tick in absolute kernel time */
-	count = read_32bit_cp0_register(CP0_COUNT);
+	count = read_c0_count();
 
 	/* .. relative to previous jiffy (32 bits is enough) */
 	count -= timerlo;
@@ -299,7 +302,7 @@
  */
 void local_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	if(!user_mode(regs)) {
+	if (!user_mode(regs)) {
 		if (prof_buffer && current->pid) {
 			extern int _stext;
 			unsigned long pc = regs->cp0_epc;
@@ -317,7 +320,7 @@
 		}
 	}
 
-#if defined(CONFIG_SMP)
+#ifdef CONFIG_SMP
 	/* in UP mode, update_process_times() is invoked by do_timer() */
 	update_process_times(user_mode(regs));
 #endif
@@ -336,7 +339,7 @@
 		 * The cycle counter is only 32 bit which is good for about
 		 * a minute at current count rates of upto 150MHz or so.
 		 */
-		count = read_32bit_cp0_register(CP0_COUNT);
+		count = read_c0_count();
 		timerhi += (count < timerlo);   /* Wrap around */
 		timerlo = count;
 
@@ -345,7 +348,7 @@
 		 * is using another timer interrupt source.
 		 * Note that writing to COMPARE register clears the interrupt
 		 */
-		write_32bit_cp0_register (CP0_COMPARE,
+		write_c0_compare(
 					  count + cycles_per_jiffy);
 
 	}
@@ -469,7 +472,8 @@
 	0,
 	"timer",
 	NULL,
-	NULL};
+	NULL
+};
 
 void __init time_init(void)
 {
@@ -514,8 +518,8 @@
 		 * For those using cpu counter as timer,  this sets up the
 		 * first interrupt
 		 */
-		count = read_32bit_cp0_register(CP0_COUNT);
-		write_32bit_cp0_register (CP0_COMPARE,
+		count = read_c0_count();
+		write_c0_compare(
 					  count + cycles_per_jiffy);
 	}
 
@@ -579,3 +583,5 @@
 	 */
 	tm->tm_wday = (gday + 4) % 7; /* 1970/1/1 was Thursday */
 }
+
+EXPORT_SYMBOL(rtc_lock);
diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/traps.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/traps.c
--- linux-2.4.20/arch/mips64/kernel/traps.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/traps.c	2003-02-10 16:50:48.000000000 -0600
@@ -21,12 +21,14 @@
 #include <asm/bootinfo.h>
 #include <asm/branch.h>
 #include <asm/cpu.h>
+#include <asm/fpu.h>
 #include <asm/module.h>
 #include <asm/pgtable.h>
 #include <asm/io.h>
 #include <asm/ptrace.h>
 #include <asm/watch.h>
 #include <asm/system.h>
+#include <asm/tlbdebug.h>
 #include <asm/traps.h>
 #include <asm/uaccess.h>
 #include <asm/mmu_context.h>
@@ -47,6 +49,7 @@
 extern asmlinkage void handle_ov(void);
 extern asmlinkage void handle_tr(void);
 extern asmlinkage void handle_fpe(void);
+extern asmlinkage void handle_mdmx(void);
 extern asmlinkage void handle_watch(void);
 extern asmlinkage void handle_mcheck(void);
 extern asmlinkage void handle_reserved(void);
@@ -190,7 +193,6 @@
 	show_trace((long *)tsk->thread.reg29);
 }
 
-
 void show_code(unsigned int *pc)
 {
 	long i;
@@ -399,9 +401,6 @@
 {
 	siginfo_t info;
 
-	if (compute_return_epc(regs))
-		return;
-
 	info.si_code = FPE_INTOVF;
 	info.si_signo = SIGFPE;
 	info.si_errno = 0;
@@ -444,30 +443,21 @@
 
 		/* If something went wrong, signal */
 		if (sig)
-		{
-			/*
-			 * Return EPC is not calculated in the FPU emulator,
-			 * if a signal is being send. So we calculate it here.
-			 */
-			compute_return_epc(regs);
 			force_sig(sig, current);
-		}
 
 		return;
 	}
 
-	if (compute_return_epc(regs))
-		return;
 	force_sig(SIGFPE, current);
 }
 
 static inline int get_insn_opcode(struct pt_regs *regs, unsigned int *opcode)
 {
-	unsigned long *epc;
+	unsigned int *epc;
 
-	epc = (unsigned long *) regs->cp0_epc +
+	epc = (unsigned int *) regs->cp0_epc +
 	      ((regs->cp0_cause & CAUSEF_BD) != 0);
-	if (!get_user(opcode, epc))
+	if (!get_user(*opcode, epc))
 		return 0;
 
 	force_sig(SIGSEGV, current);
@@ -551,84 +541,52 @@
 {
 	die_if_kernel("Reserved instruction in kernel code", regs);
 
-	if (compute_return_epc(regs))
-		return;
-
 	force_sig(SIGILL, current);
 }
 
 asmlinkage void do_cpu(struct pt_regs *regs)
 {
 	unsigned int cpid;
-	void fpu_emulator_init_fpu(void);
-	int sig;
 
 	cpid = (regs->cp0_cause >> CAUSEB_CE) & 3;
 	if (cpid != 1)
 		goto bad_cid;
 
-	if (!(mips_cpu.options & MIPS_CPU_FPU))
-		goto fp_emul;
-
-	regs->cp0_status |= ST0_CU1;
+	die_if_kernel("do_cpu invoked from kernel context!", regs);
 
-#ifdef CONFIG_SMP
-	if (current->used_math) {
-		lazy_fpu_switch(0, current);
+	own_fpu();
+	if (current->used_math) {               /* Using the FPU again.  */
+		restore_fp(current);
 	} else {
 		init_fpu();
 		current->used_math = 1;
 	}
-	current->flags |= PF_USEDFPU;
-#else
-	if (last_task_used_math == current)
-		return;
 
-	if (current->used_math) {		/* Using the FPU again.  */
-		lazy_fpu_switch(last_task_used_math, current);
-	} else {				/* First time FPU user.  */
-		lazy_fpu_switch(last_task_used_math, 0);
-		init_fpu();
-		current->used_math = 1;
+	if (!(mips_cpu.options & MIPS_CPU_FPU)) {
+		int sig = fpu_emulator_cop1Handler(0, regs, &current->thread.fpu.soft);
+		if (sig)
+			force_sig(sig, current);
 	}
-	last_task_used_math = current;
-#endif
-	return;
 
-fp_emul:
-	if (last_task_used_math != current) {
-		if (!current->used_math) {
-			fpu_emulator_init_fpu();
-			current->used_math = 1;
-		}
-	}
-	sig = fpu_emulator_cop1Handler(0, regs, &current->thread.fpu.soft);
-	last_task_used_math = current;
-	if (sig) {
-		/*
-		 * Return EPC is not calculated in the FPU emulator, if
-		 * a signal is being send. So we calculate it here.
-		 */
-		compute_return_epc(regs);
-		force_sig(sig, current);
-	}
 	return;
 
 bad_cid:
-	compute_return_epc(regs);
 	force_sig(SIGILL, current);
 }
 
-asmlinkage void do_watch(struct pt_regs *regs)
+asmlinkage void do_mdmx(struct pt_regs *regs)
 {
-	extern void dump_tlb_all(void);
+	force_sig(SIGILL, current);
+}
 
+asmlinkage void do_watch(struct pt_regs *regs)
+{
 	/*
 	 * We use the watch exception where available to detect stack
 	 * overflows.
 	 */
-	dump_tlb_all();
 	show_regs(regs);
+	dump_tlb_all();
 	panic("Caught WATCH exception - probably caused by stack overflow.");
 }
 
@@ -653,24 +611,14 @@
 	 * hard/software error.
 	 */
 	panic("Caught reserved exception %ld - should not happen.",
-	      (regs->cp0_cause & 0x1f) >> 2);
+	      (regs->cp0_cause & 0x7f) >> 2);
 }
 
-static inline void watch_init(unsigned long cputype)
+static inline void watch_init(void)
 {
-	switch(cputype) {
-	case CPU_R10000:
-	case CPU_R4000MC:
-	case CPU_R4400MC:
-	case CPU_R4000SC:
-	case CPU_R4400SC:
-	case CPU_R4000PC:
-	case CPU_R4400PC:
-	case CPU_R4200:
-	case CPU_R4300:
+	if (mips_cpu.options & MIPS_CPU_WATCH) {
 		set_except_vector(23, handle_watch);
 		watch_available = 1;
-		break;
 	}
 }
 
@@ -697,6 +645,7 @@
 
 asmlinkage int (*save_fp_context)(struct sigcontext *sc);
 asmlinkage int (*restore_fp_context)(struct sigcontext *sc);
+
 extern asmlinkage int _save_fp_context(struct sigcontext *sc);
 extern asmlinkage int _restore_fp_context(struct sigcontext *sc);
 
@@ -708,58 +657,63 @@
 	unsigned int cpu = smp_processor_id();
 
 	/* Some firmware leaves the BEV flag set, clear it.  */
-	clear_cp0_status(ST0_CU1|ST0_CU2|ST0_CU3|ST0_BEV);
-	set_cp0_status(ST0_CU0|ST0_FR|ST0_KX|ST0_SX|ST0_UX);
+	clear_c0_status(ST0_CU1|ST0_CU2|ST0_CU3|ST0_BEV);
+	set_c0_status(ST0_CU0|ST0_FR|ST0_KX|ST0_SX|ST0_UX);
+
+	if (mips_cpu.isa_level == MIPS_CPU_ISA_IV)
+		set_c0_status(ST0_XX);
 
 	/*
 	 * Some MIPS CPUs have a dedicated interrupt vector which reduces the
 	 * interrupt processing overhead.  Use it where available.
 	 */
 	if (mips_cpu.options & MIPS_CPU_DIVEC)
-		set_cp0_cause(CAUSEF_IV);
+		set_c0_cause(CAUSEF_IV);
 
 	cpu_data[cpu].asid_cache = ASID_FIRST_VERSION;
-	set_context(((long)(&pgd_current[cpu])) << 23);
-	set_wired(0);
+	write_c0_context(((long)(&pgd_current[cpu])) << 23);
+	write_c0_wired(0);
+
+	atomic_inc(&init_mm.mm_count);
+	current->active_mm = &init_mm;
+	if (current->mm)
+		BUG();
+	enter_lazy_tlb(&init_mm, current, cpu);
 }
 
 void __init trap_init(void)
 {
-	extern char except_vec0;
-	extern char except_vec1_r4k;
-	extern char except_vec1_r10k;
-	extern char except_vec2_generic;
+	extern char except_vec0_generic;
 	extern char except_vec3_generic, except_vec3_r4000;
 	extern char except_vec4;
 	unsigned long i;
-	int dummy;
 
 	per_cpu_trap_init();
 
 	/* Copy the generic exception handlers to their final destination. */
-	memcpy((void *)(KSEG0 + 0x100), &except_vec2_generic, 0x80);
+	memcpy((void *) KSEG0         , &except_vec0_generic, 0x80);
 	memcpy((void *)(KSEG0 + 0x180), &except_vec3_generic, 0x80);
 
 	/*
 	 * Setup default vectors
 	 */
-	for(i = 0; i <= 31; i++)
+	for (i = 0; i <= 31; i++)
 		set_except_vector(i, handle_reserved);
 
 	/*
 	 * Only some CPUs have the watch exceptions or a dedicated
 	 * interrupt vector.
 	 */
-	watch_init(mips_cpu.cputype);
+	watch_init();
 
 	/*
 	 * Some MIPS CPUs have a dedicated interrupt vector which reduces the
 	 * interrupt processing overhead.  Use it where available.
 	 */
-	memcpy((void *)(KSEG0 + 0x200), &except_vec4, 8);
-
-	if (mips_cpu.options & MIPS_CPU_MCHECK)
-		set_except_vector(24, handle_mcheck);
+	if (mips_cpu.options & MIPS_CPU_DIVEC) {
+		memcpy((void *)(KSEG0 + 0x200), &except_vec4, 0x80);
+		set_c0_cause(CAUSEF_IV);
+	}
 
 	/*
 	 * The Data Bus Errors / Instruction Bus Errors are signaled
@@ -768,82 +722,52 @@
 	 */
 	bus_error_init();
 
-	/*
-	 * Handling the following exceptions depends mostly of the cpu type
-	 */
-	switch(mips_cpu.cputype) {
-        case CPU_SB1:
-#ifdef CONFIG_SB1_CACHE_ERROR
-		{
-		/* Special cache error handler for SB1 */
-		extern char except_vec2_sb1;
-		memcpy((void *)(KSEG0 + 0x100), &except_vec2_sb1, 0x80);
-		memcpy((void *)(KSEG1 + 0x100), &except_vec2_sb1, 0x80);
-		}
-#endif
-		/* Enable timer interrupt and scd mapped interrupt */
-		clear_cp0_status(0xf000);
-		set_cp0_status(0xc00);
-
-		/* Fall through. */
-	case CPU_R10000:
-	case CPU_R4000MC:
-	case CPU_R4400MC:
-	case CPU_R4000SC:
-	case CPU_R4400SC:
-	case CPU_R4000PC:
-	case CPU_R4400PC:
-	case CPU_R4200:
-	case CPU_R4300:
-	case CPU_R4600:
-	case CPU_R5000:
-	case CPU_NEVADA:
-	case CPU_5KC:
-	case CPU_20KC:
-	case CPU_RM7000:
-		/* Debug TLB refill handler.  */
-		memcpy((void *)KSEG0, &except_vec0, 0x80);
-		if ((mips_cpu.options & MIPS_CPU_4KEX)
-		    && (mips_cpu.options & MIPS_CPU_4KTLB)) {
-			memcpy((void *)KSEG0 + 0x080, &except_vec1_r4k, 0x80);
-		} else {
-			memcpy((void *)KSEG0 + 0x080, &except_vec1_r10k, 0x80);
-		}
-		if (mips_cpu.options & MIPS_CPU_VCE) {
-			memcpy((void *)(KSEG0 + 0x180), &except_vec3_r4000,
-			       0x80);
-		} else {
-			memcpy((void *)(KSEG0 + 0x180), &except_vec3_generic,
-			       0x80);
-		}
+	set_except_vector(1, __xtlb_mod);
+	set_except_vector(2, __xtlb_tlbl);
+	set_except_vector(3, __xtlb_tlbs);
+	set_except_vector(4, handle_adel);
+	set_except_vector(5, handle_ades);
 
-		set_except_vector(1, __xtlb_mod);
-		set_except_vector(2, __xtlb_tlbl);
-		set_except_vector(3, __xtlb_tlbs);
-		set_except_vector(4, handle_adel);
-		set_except_vector(5, handle_ades);
+	set_except_vector(6, handle_ibe);
+	set_except_vector(7, handle_dbe);
 
-		set_except_vector(6, handle_ibe);
-		set_except_vector(7, handle_dbe);
+	set_except_vector(8, handle_sys);
+	set_except_vector(9, handle_bp);
+	set_except_vector(10, handle_ri);
+	set_except_vector(11, handle_cpu);
+	set_except_vector(12, handle_ov);
+	set_except_vector(13, handle_tr);
+	set_except_vector(22, handle_mdmx);
 
-		set_except_vector(8, handle_sys);
-		set_except_vector(9, handle_bp);
-		set_except_vector(10, handle_ri);
-		set_except_vector(11, handle_cpu);
-		set_except_vector(12, handle_ov);
-		set_except_vector(13, handle_tr);
+	if ((mips_cpu.options & MIPS_CPU_FPU) &&
+	    !(mips_cpu.options & MIPS_CPU_NOFPUEX))
 		set_except_vector(15, handle_fpe);
-		break;
 
-	case CPU_R8000:
-		panic("R8000 is unsupported");
-		break;
+	if (mips_cpu.options & MIPS_CPU_MCHECK)
+		set_except_vector(24, handle_mcheck);
 
-	case CPU_UNKNOWN:
-	default:
-		panic("Unknown CPU type");
+	if (mips_cpu.options & MIPS_CPU_VCE) {
+		/* VCE and DIVEC are mutually exclusive. */
+		if (mips_cpu.options & MIPS_CPU_DIVEC)
+			BUG();
+		memcpy((void *)(KSEG0 + 0x180), &except_vec3_r4000, 0x100);
+	} else if (mips_cpu.options & MIPS_CPU_4KEX)
+		memcpy((void *)(KSEG0 + 0x180), &except_vec3_generic, 0x80);
+	else
+		memcpy((void *)(KSEG0 + 0x080), &except_vec3_generic, 0x80);
+
+	if (mips_cpu.cputype == CPU_R6000 || mips_cpu.cputype == CPU_R6000A) {
+		/*
+		 * The R6000 is the only R-series CPU that features a machine
+		 * check exception (similar to the R4000 cache error) and
+		 * unaligned ldc1/sdc1 exception.  The handlers have not been
+		 * written yet.  Well, anyway there is no R6000 machine on the
+		 * current list of targets for Linux/MIPS.
+		 * (Duh, crap, there is someone with a tripple R6k machine)
+		 */
+		//set_except_vector(14, handle_mc);
+		//set_except_vector(15, handle_ndc);
 	}
-	flush_icache_range(KSEG0, KSEG0 + 0x200);
 
 	if (mips_cpu.options & MIPS_CPU_FPU) {
 	        save_fp_context = _save_fp_context;
@@ -853,8 +777,7 @@
 		restore_fp_context = fpu_emulator_restore_context;
 	}
 
-	if (mips_cpu.isa_level == MIPS_CPU_ISA_IV)
-		set_cp0_status(ST0_XX);
+	flush_icache_range(KSEG0, KSEG0 + 0x400);
 
 	atomic_inc(&init_mm.mm_count);	/* XXX UP?  */
 	current->active_mm = &init_mm;
diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/unaligned.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/unaligned.c
--- linux-2.4.20/arch/mips64/kernel/unaligned.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/unaligned.c	2003-02-20 19:09:19.000000000 -0600
@@ -88,21 +88,21 @@
 #define STR(x)  __STR(x)
 #define __STR(x)  #x
 
-/*
- * User code may only access USEG; kernel code may access the
- * entire address space.
- */
-#define check_axs(pc,a,s)				\
-	if ((long)(~(pc) & ((a) | ((a)+(s)))) < 0)	\
-		goto sigbus;
+#ifdef CONFIG_PROC_FS
+unsigned long unaligned_instructions;
+#endif
 
 static inline int emulate_load_store_insn(struct pt_regs *regs,
-	unsigned long addr, unsigned long pc)
+	void *addr, unsigned long pc,
+	unsigned long **regptr, unsigned long *newvalue)
 {
 	union mips_instruction insn;
 	unsigned long value, fixup;
+	unsigned int res;
 
 	regs->regs[0] = 0;
+	*regptr=NULL;
+
 	/*
 	 * This load never faults.
 	 */
@@ -142,183 +142,295 @@
 	 * The remaining opcodes are the ones that are really of interest.
 	 */
 	case lh_op:
-		check_axs(pc, addr, 2);
-		__asm__(
-			".set\tnoat\n"
+		if (verify_area(VERIFY_READ, addr, 2))
+			goto sigbus;
+
+		__asm__ __volatile__ (".set\tnoat\n"
 #ifdef __BIG_ENDIAN
-			"1:\tlb\t%0,0(%1)\n"
-			"2:\tlbu\t$1,1(%1)\n\t"
+			"1:\tlb\t%0, 0(%2)\n"
+			"2:\tlbu\t$1, 1(%2)\n\t"
 #endif
 #ifdef __LITTLE_ENDIAN
-			"1:\tlb\t%0,1(%1)\n"
-			"2:\tlbu\t$1,0(%1)\n\t"
+			"1:\tlb\t%0, 1(%2)\n"
+			"2:\tlbu\t$1, 0(%2)\n\t"
 #endif
-			"sll\t%0,0x8\n\t"
-			"or\t%0,$1\n\t"
-			".set\tat\n\t"
+			"sll\t%0, 0x8\n\t"
+			"or\t%0, $1\n\t"
+			"li\t%1, 0\n"
+			"3:\t.set\tat\n\t"
+			".section\t.fixup,\"ax\"\n\t"
+			"4:\tli\t%1, %3\n\t"
+			"j\t3b\n\t"
+			".previous\n\t"
 			".section\t__ex_table,\"a\"\n\t"
-			STR(PTR)"\t1b,%2\n\t"
-			STR(PTR)"\t2b,%2\n\t"
+			STR(PTR)"\t1b, 4b\n\t"
+			STR(PTR)"\t2b, 4b\n\t"
 			".previous"
-			:"=&r" (value)
-			:"r" (addr), "i" (&&fault));
-		regs->regs[insn.i_format.rt] = value;
-		return 0;
+			: "=&r" (value), "=r" (res)
+			: "r" (addr), "i" (-EFAULT));
+		if (res)
+			goto fault;
+		*newvalue = value;
+		*regptr = &regs->regs[insn.i_format.rt];
+		break;
 
 	case lw_op:
-		check_axs(pc, addr, 4);
-		__asm__(
+		if (verify_area(VERIFY_READ, addr, 4))
+			goto sigbus;
+
+		__asm__ __volatile__ (
 #ifdef __BIG_ENDIAN
-			"1:\tlwl\t%0,(%1)\n"
-			"2:\tlwr\t%0,3(%1)\n\t"
+			"1:\tlwl\t%0, (%2)\n"
+			"2:\tlwr\t%0, 3(%2)\n\t"
 #endif
 #ifdef __LITTLE_ENDIAN
-			"1:\tlwl\t%0,3(%1)\n"
-			"2:\tlwr\t%0,(%1)\n\t"
+			"1:\tlwl\t%0, 3(%2)\n"
+			"2:\tlwr\t%0, (%2)\n\t"
 #endif
+			"li\t%1, 0\n"
+			"3:\t.section\t.fixup,\"ax\"\n\t"
+			"4:\tli\t%1, %3\n\t"
+			"j\t3b\n\t"
+			".previous\n\t"
 			".section\t__ex_table,\"a\"\n\t"
-			STR(PTR)"\t1b,%2\n\t"
-			STR(PTR)"\t2b,%2\n\t"
+			STR(PTR)"\t1b, 4b\n\t"
+			STR(PTR)"\t2b, 4b\n\t"
 			".previous"
-			:"=&r" (value)
-			:"r" (addr), "i" (&&fault));
-			regs->regs[insn.i_format.rt] = value;
-			return 0;
+			: "=&r" (value), "=r" (res)
+			: "r" (addr), "i" (-EFAULT));
+		if (res)
+			goto fault;
+		*newvalue = value;
+		*regptr = &regs->regs[insn.i_format.rt];
+		break;
 
 	case lhu_op:
-		check_axs(pc, addr, 2);
-		__asm__(
+		if (verify_area(VERIFY_READ, addr, 2))
+			goto sigbus;
+
+		__asm__ __volatile__ (
 			".set\tnoat\n"
 #ifdef __BIG_ENDIAN
-			"1:\tlbu\t%0,0(%1)\n"
-			"2:\tlbu\t$1,1(%1)\n\t"
+			"1:\tlbu\t%0, 0(%2)\n"
+			"2:\tlbu\t$1, 1(%2)\n\t"
 #endif
 #ifdef __LITTLE_ENDIAN
-			"1:\tlbu\t%0,1(%1)\n"
-			"2:\tlbu\t$1,0(%1)\n\t"
+			"1:\tlbu\t%0, 1(%2)\n"
+			"2:\tlbu\t$1, 0(%2)\n\t"
 #endif
-			"sll\t%0,0x8\n\t"
-			"or\t%0,$1\n\t"
-			".set\tat\n\t"
+			"sll\t%0, 0x8\n\t"
+			"or\t%0, $1\n\t"
+			"li\t%1, 0\n"
+			"3:\t.set\tat\n\t"
+			".section\t.fixup,\"ax\"\n\t"
+			"4:\tli\t%1, %3\n\t"
+			"j\t3b\n\t"
+			".previous\n\t"
 			".section\t__ex_table,\"a\"\n\t"
-			STR(PTR)"\t1b,%2\n\t"
-			STR(PTR)"\t2b,%2\n\t"
+			STR(PTR)"\t1b, 4b\n\t"
+			STR(PTR)"\t2b, 4b\n\t"
 			".previous"
-			:"=&r" (value)
-			:"r" (addr), "i" (&&fault));
-		regs->regs[insn.i_format.rt] = value;
-		return 0;
+			: "=&r" (value), "=r" (res)
+			: "r" (addr), "i" (-EFAULT));
+		if (res)
+			goto fault;
+		*newvalue = value;
+		*regptr = &regs->regs[insn.i_format.rt];
+		break;
 
 	case lwu_op:
-		check_axs(pc, addr, 4);
-		__asm__(
+#ifdef CONFIG_MIPS64
+		/*
+		 * A 32-bit kernel might be running on a 64-bit processor.  But
+		 * if we're on a 32-bit processor and an i-cache incoherency
+		 * or race makes us see a 64-bit instruction here the sdl/sdr
+		 * would blow up, so for now we don't handle unaligned 64-bit
+		 * instructions on 32-bit kernels.
+		 */
+		if (verify_area(VERIFY_READ, addr, 4))
+			goto sigbus;
+
+		__asm__ __volatile__ (
 #ifdef __BIG_ENDIAN
-			"1:\tlwl\t%0,(%1)\n"
-			"2:\tlwr\t%0,3(%1)\n\t"
+			"1:\tlwl\t%0, (%2)\n"
+			"2:\tlwr\t%0, 3(%2)\n\t"
 #endif
 #ifdef __LITTLE_ENDIAN
-			"1:\tlwl\t%0,3(%1)\n"
-			"2:\tlwr\t%0,(%1)\n\t"
+			"1:\tlwl\t%0, 3(%2)\n"
+			"2:\tlwr\t%0, (%2)\n\t"
 #endif
+			"dsll\t%0, %0, 32\n\t"
+			"dsrl\t%0, %0, 32\n\t"
+			"li\t%1, 0\n"
+			"3:\t.section\t.fixup,\"ax\"\n\t"
+			"4:\tli\t%1, %3\n\t"
+			"j\t3b\n\t"
+			".previous\n\t"
 			".section\t__ex_table,\"a\"\n\t"
-			STR(PTR)"\t1b,%2\n\t"
-			STR(PTR)"\t2b,%2\n\t"
+			STR(PTR)"\t1b, 4b\n\t"
+			STR(PTR)"\t2b, 4b\n\t"
 			".previous"
-			:"=&r" (value)
-			:"r" (addr), "i" (&&fault));
-		value &= 0xffffffff;
-		regs->regs[insn.i_format.rt] = value;
-		return 0;
+			: "=&r" (value), "=r" (res)
+			: "r" (addr), "i" (-EFAULT));
+		if (res)
+			goto fault;
+		*newvalue = value;
+		*regptr = &regs->regs[insn.i_format.rt];
+		break;
+#endif /* CONFIG_MIPS64 */
+
+		/* Cannot handle 64-bit instructions in 32-bit kernel */
+		goto sigill;
 
 	case ld_op:
-		check_axs(pc, addr, 8);
-		__asm__(
-			".set\tmips3\n"
+#ifdef CONFIG_MIPS64
+		/*
+		 * A 32-bit kernel might be running on a 64-bit processor.  But
+		 * if we're on a 32-bit processor and an i-cache incoherency
+		 * or race makes us see a 64-bit instruction here the sdl/sdr
+		 * would blow up, so for now we don't handle unaligned 64-bit
+		 * instructions on 32-bit kernels.
+		 */
+		if (verify_area(VERIFY_READ, addr, 8))
+			goto sigbus;
+
+		__asm__ __volatile__ (
 #ifdef __BIG_ENDIAN
-			"1:\tldl\t%0,(%1)\n"
-			"2:\tldr\t%0,7(%1)\n\t"
+			"1:\tldl\t%0, (%2)\n"
+			"2:\tldr\t%0, 7(%2)\n\t"
 #endif
 #ifdef __LITTLE_ENDIAN
-			"1:\tldl\t%0,7(%1)\n"
-			"2:\tldr\t%0,(%1)\n\t"
+			"1:\tldl\t%0, 7(%2)\n"
+			"2:\tldr\t%0, (%2)\n\t"
 #endif
-			".set\tmips0\n\t"
+			"li\t%1, 0\n"
+			"3:\t.section\t.fixup,\"ax\"\n\t"
+			"4:\tli\t%1, %3\n\t"
+			"j\t3b\n\t"
+			".previous\n\t"
 			".section\t__ex_table,\"a\"\n\t"
-			STR(PTR)"\t1b,%2\n\t"
-			STR(PTR)"\t2b,%2\n\t"
+			STR(PTR)"\t1b, 4b\n\t"
+			STR(PTR)"\t2b, 4b\n\t"
 			".previous"
-			:"=&r" (value)
-			:"r" (addr), "i" (&&fault));
-		regs->regs[insn.i_format.rt] = value;
-		return 0;
+			: "=&r" (value), "=r" (res)
+			: "r" (addr), "i" (-EFAULT));
+		if (res)
+			goto fault;
+		*newvalue = value;
+		*regptr = &regs->regs[insn.i_format.rt];
+		break;
+#endif /* CONFIG_MIPS64 */
+
+		/* Cannot handle 64-bit instructions in 32-bit kernel */
+		goto sigill;
 
 	case sh_op:
-		check_axs(pc, addr, 2);
+		if (verify_area(VERIFY_WRITE, addr, 2))
+			goto sigbus;
+
 		value = regs->regs[insn.i_format.rt];
-		__asm__(
+		__asm__ __volatile__ (
 #ifdef __BIG_ENDIAN
 			".set\tnoat\n"
-			"1:\tsb\t%0,1(%1)\n\t"
-			"srl\t$1,%0,0x8\n"
-			"2:\tsb\t$1,0(%1)\n\t"
+			"1:\tsb\t%1, 1(%2)\n\t"
+			"srl\t$1, %1, 0x8\n"
+			"2:\tsb\t$1, 0(%2)\n\t"
 			".set\tat\n\t"
 #endif
 #ifdef __LITTLE_ENDIAN
 			".set\tnoat\n"
-			"1:\tsb\t%0,0(%1)\n\t"
-			"srl\t$1,%0,0x8\n"
-			"2:\tsb\t$1,1(%1)\n\t"
+			"1:\tsb\t%1, 0(%2)\n\t"
+			"srl\t$1,%1, 0x8\n"
+			"2:\tsb\t$1, 1(%2)\n\t"
 			".set\tat\n\t"
 #endif
+			"li\t%0, 0\n"
+			"3:\n\t"
+			".section\t.fixup,\"ax\"\n\t"
+			"4:\tli\t%0, %3\n\t"
+			"j\t3b\n\t"
+			".previous\n\t"
 			".section\t__ex_table,\"a\"\n\t"
-			STR(PTR)"\t1b,%2\n\t"
-			STR(PTR)"\t2b,%2\n\t"
+			STR(PTR)"\t1b, 4b\n\t"
+			STR(PTR)"\t2b, 4b\n\t"
 			".previous"
-			: /* no outputs */
-			:"r" (value), "r" (addr), "i" (&&fault));
-		return 0;
+			: "=r" (res)
+			: "r" (value), "r" (addr), "i" (-EFAULT));
+		if (res)
+			goto fault;
+		break;
 
 	case sw_op:
-		check_axs(pc, addr, 4);
+		if (verify_area(VERIFY_WRITE, addr, 4))
+			goto sigbus;
+
 		value = regs->regs[insn.i_format.rt];
-		__asm__(
+		__asm__ __volatile__ (
 #ifdef __BIG_ENDIAN
-			"1:\tswl\t%0,(%1)\n"
-			"2:\tswr\t%0,3(%1)\n\t"
+			"1:\tswl\t%1,(%2)\n"
+			"2:\tswr\t%1, 3(%2)\n\t"
 #endif
 #ifdef __LITTLE_ENDIAN
-			"1:\tswl\t%0,3(%1)\n"
-			"2:\tswr\t%0,(%1)\n\t"
+			"1:\tswl\t%1, 3(%2)\n"
+			"2:\tswr\t%1, (%2)\n\t"
 #endif
+			"li\t%0, 0\n"
+			"3:\n\t"
+			".section\t.fixup,\"ax\"\n\t"
+			"4:\tli\t%0, %3\n\t"
+			"j\t3b\n\t"
+			".previous\n\t"
 			".section\t__ex_table,\"a\"\n\t"
-			STR(PTR)"\t1b,%2\n\t"
-			STR(PTR)"\t2b,%2\n\t"
+			STR(PTR)"\t1b, 4b\n\t"
+			STR(PTR)"\t2b, 4b\n\t"
 			".previous"
-			: /* no outputs */
-			:"r" (value), "r" (addr), "i" (&&fault));
-		return 0;
+		: "=r" (res)
+		: "r" (value), "r" (addr), "i" (-EFAULT));
+		if (res)
+			goto fault;
+		break;
 
 	case sd_op:
-		check_axs(pc, addr, 8);
+#ifdef CONFIG_MIPS64
+		/*
+		 * A 32-bit kernel might be running on a 64-bit processor.  But
+		 * if we're on a 32-bit processor and an i-cache incoherency
+		 * or race makes us see a 64-bit instruction here the sdl/sdr
+		 * would blow up, so for now we don't handle unaligned 64-bit
+		 * instructions on 32-bit kernels.
+		 */
+		if (verify_area(VERIFY_WRITE, addr, 8))
+			goto sigbus;
+
 		value = regs->regs[insn.i_format.rt];
-		__asm__(
-			".set\tmips3\n"
+		__asm__ __volatile__ (
 #ifdef __BIG_ENDIAN
-			"1:\tsdl\t%0,(%1)\n"
-			"2:\tsdr\t%0,7(%1)\n\t"
+			"1:\tsdl\t%1,(%2)\n"
+			"2:\tsdr\t%1, 7(%2)\n\t"
 #endif
 #ifdef __LITTLE_ENDIAN
-			"1:\tsdl\t%0,7(%1)\n"
-			"2:\tsdr\t%0,(%1)\n\t"
+			"1:\tsdl\t%1, 7(%2)\n"
+			"2:\tsdr\t%1, (%2)\n\t"
 #endif
-			".set\tmips0\n\t"
+			"li\t%0, 0\n"
+			"3:\n\t"
+			".section\t.fixup,\"ax\"\n\t"
+			"4:\tli\t%0, %3\n\t"
+			"j\t3b\n\t"
+			".previous\n\t"
 			".section\t__ex_table,\"a\"\n\t"
-			STR(PTR)"\t1b,%2\n\t"
-			STR(PTR)"\t2b,%2\n\t"
+			STR(PTR)"\t1b, 4b\n\t"
+			STR(PTR)"\t2b, 4b\n\t"
 			".previous"
-			: /* no outputs */
-			:"r" (value), "r" (addr), "i" (&&fault));
-		return 0;
+		: "=r" (res)
+		: "r" (value), "r" (addr), "i" (-EFAULT));
+		if (res)
+			goto fault;
+		break;
+#endif /* CONFIG_MIPS64 */
+
+		/* Cannot handle 64-bit instructions in 32-bit kernel */
+		goto sigill;
 
 	case lwc1_op:
 	case ldc1_op:
@@ -347,6 +459,11 @@
 		 */
 		goto sigill;
 	}
+
+#ifdef CONFIG_PROC_FS
+	unaligned_instructions++;
+#endif
+
 	return 0;
 
 fault:
@@ -363,52 +480,48 @@
 
 	die_if_kernel ("Unhandled kernel unaligned access", regs);
 	send_sig(SIGSEGV, current, 1);
+
 	return 0;
+
 sigbus:
-	die_if_kernel ("Unhandled kernel unaligned access", regs);
+	die_if_kernel("Unhandled kernel unaligned access", regs);
 	send_sig(SIGBUS, current, 1);
+
 	return 0;
+
 sigill:
-	die_if_kernel ("Unhandled kernel unaligned access or invalid instruction", regs);
+	die_if_kernel("Unhandled kernel unaligned access or invalid instruction", regs);
 	send_sig(SIGILL, current, 1);
+
 	return 0;
 }
 
-#ifdef CONFIG_PROC_FS
-unsigned long unaligned_instructions;
-#endif
-
 asmlinkage void do_ade(struct pt_regs *regs)
 {
-	unsigned long pc;
+	unsigned long *regptr, newval;
 	extern int do_dsemulret(struct pt_regs *);
-
-#if 0
-        printk("ade: Cpu%d[%s:%d:%0lx:%0lx]\n", smp_processor_id(),
-                current->comm, current->pid, regs->cp0_badvaddr, regs->cp0_epc);
-#endif
+	mm_segment_t seg;
+	unsigned long pc;
 
 	/*
-	 * Address errors may be deliberately induced
-	 * by the FPU emulator to take retake control
-	 * of the CPU after executing the instruction
-	 * in the delay slot of an emulated branch.
+	 * Address errors may be deliberately induced by the FPU emulator to
+	 * retake control of the CPU after executing the instruction in the
+	 * delay slot of an emulated branch.
 	 */
 	/* Terminate if exception was recognized as a delay slot return */
 	if (do_dsemulret(regs))
 		return;
 
-        /* Otherwise handle as normal */
+	/* Otherwise handle as normal */
 
 	/*
 	 * Did we catch a fault trying to load an instruction?
-	 * This also catches attempts to activate MIPS16 code on
-	 * CPUs which don't support it.
+	 * Or are we running in MIPS16 mode?
 	 */
-	if (regs->cp0_badvaddr == regs->cp0_epc)
+	if ((regs->cp0_badvaddr == regs->cp0_epc) || (regs->cp0_epc & 0x1))
 		goto sigbus;
 
-	pc = regs->cp0_epc + ((regs->cp0_cause & CAUSEF_BD) ? 4 : 0);
+	pc = exception_epc(regs);
 	if ((current->thread.mflags & MF_FIXADE) == 0)
 		goto sigbus;
 
@@ -416,16 +529,28 @@
 	 * Do branch emulation only if we didn't forward the exception.
 	 * This is all so but ugly ...
 	 */
-	if (!emulate_load_store_insn(regs, regs->cp0_badvaddr, pc))
+	seg = get_fs();
+	if (!user_mode(regs))
+		set_fs(KERNEL_DS);
+	if (!emulate_load_store_insn(regs, (void *)regs->cp0_badvaddr, pc,
+	                             &regptr, &newval)) {
 		compute_return_epc(regs);
-
-#ifdef CONFIG_PROC_FS
-	unaligned_instructions++;
-#endif
+		/*
+		 * Now that branch is evaluated, update the dest
+		 * register if necessary
+		 */
+		if (regptr)
+			*regptr = newval;
+	}
+	set_fs(seg);
 
 	return;
 
 sigbus:
 	die_if_kernel("Kernel unaligned instruction access", regs);
 	force_sig(SIGBUS, current);
+
+	/*
+	 * XXX On return from the signal handler we should advance the epc
+	 */
 }
diff -urNd -urNd linux-2.4.20/arch/mips64/ld.script.elf32.S linux-2.4.20-mipscvs-20050106/arch/mips64/ld.script.elf32.S
--- linux-2.4.20/arch/mips64/ld.script.elf32.S	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/ld.script.elf32.S	2002-10-02 20:27:58.000000000 -0500
@@ -77,6 +77,14 @@
   {
     _fdata = . ;
     *(.data)
+
+    /* Align the initial ramdisk image (INITRD) on page boundaries. */
+    . = ALIGN(4096);
+    __rd_start = .;
+    *(.initrd)
+    __rd_end = .;
+    . = ALIGN(4096);
+
     CONSTRUCTORS
   }
   .data1   : { *(.data1) }
diff -urNd -urNd linux-2.4.20/arch/mips64/ld.script.elf64 linux-2.4.20-mipscvs-20050106/arch/mips64/ld.script.elf64
--- linux-2.4.20/arch/mips64/ld.script.elf64	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/ld.script.elf64	2002-10-02 20:27:58.000000000 -0500
@@ -86,6 +86,14 @@
   {
     _fdata = . ;
     *(.data)
+
+    /* Align the initial ramdisk image (INITRD) on page boundaries. */
+    . = ALIGN(4096);
+    __rd_start = .;
+    *(.initrd)
+    __rd_end = .;
+    . = ALIGN(4096);
+
     CONSTRUCTORS
   }
   .data1   : { *(.data1) }
diff -urNd -urNd linux-2.4.20/arch/mips64/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips64/lib/CVS/Entries
--- linux-2.4.20/arch/mips64/lib/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/lib/CVS/Entries	2005-01-06 23:00:14.000000000 -0600
@@ -0,0 +1,21 @@
+/.cvsignore/1.1/Sat Aug 21 22:19:15 1999/-ko/Tlinux_2_4_20
+/Makefile/1.6.2.3/Tue Jan 28 02:31:33 2003/-ko/Tlinux_2_4_20
+/csum_partial.S/1.3/Mon Jul  9 00:25:37 2001/-ko/Tlinux_2_4_20
+/csum_partial_copy.c/1.4.2.1/Mon Aug  5 23:53:36 2002/-ko/Tlinux_2_4_20
+/dump_tlb.c/1.8.2.4/Wed Dec 18 22:47:37 2002/-ko/Tlinux_2_4_20
+/floppy-no.c/1.3/Mon Jul  9 00:25:37 2001/-ko/Tlinux_2_4_20
+/floppy-std.c/1.3.4.2/Mon Aug  5 23:53:36 2002/-ko/Tlinux_2_4_20
+/ide-no.c/1.3.2.1/Mon Aug  5 23:53:36 2002/-ko/Tlinux_2_4_20
+/ide-std.c/1.4.2.1/Mon Aug  5 23:53:36 2002/-ko/Tlinux_2_4_20
+/kbd-no.c/1.3/Mon Jul  9 00:25:37 2001/-ko/Tlinux_2_4_20
+/kbd-std.c/1.3/Mon Jul  9 00:25:37 2001/-ko/Tlinux_2_4_20
+/memcpy.S/1.9.2.3/Thu Sep 19 14:01:24 2002/-ko/Tlinux_2_4_20
+/memset.S/1.5.2.2/Tue Aug  6 00:56:51 2002/-ko/Tlinux_2_4_20
+/promlib.c/1.1.2.2/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
+/rtc-no.c/1.4/Sun Mar 18 04:30:28 2001/-ko/Tlinux_2_4_20
+/rtc-std.c/1.4/Sun Mar 18 04:30:28 2001/-ko/Tlinux_2_4_20
+/strlen_user.S/1.4.2.2/Mon Dec  9 21:24:13 2002/-ko/Tlinux_2_4_20
+/strncpy_user.S/1.4.2.1/Mon Dec  9 21:24:13 2002/-ko/Tlinux_2_4_20
+/strnlen_user.S/1.2.2.3/Mon Dec  9 21:24:13 2002/-ko/Tlinux_2_4_20
+/watch.S/1.3/Sun Feb 25 09:40:17 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips64/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips64/lib/CVS/Repository
--- linux-2.4.20/arch/mips64/lib/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/lib/CVS/Repository	2005-01-06 23:00:14.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips64/lib
diff -urNd -urNd linux-2.4.20/arch/mips64/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips64/lib/CVS/Root
--- linux-2.4.20/arch/mips64/lib/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/lib/CVS/Root	2005-01-06 23:00:14.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips64/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips64/lib/CVS/Tag
--- linux-2.4.20/arch/mips64/lib/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/lib/CVS/Tag	2005-01-06 23:00:14.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips64/lib/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips64/lib/.cvsignore
--- linux-2.4.20/arch/mips64/lib/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/lib/.cvsignore	1999-08-21 17:19:15.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips64/lib/dump_tlb.c linux-2.4.20-mipscvs-20050106/arch/mips64/lib/dump_tlb.c
--- linux-2.4.20/arch/mips64/lib/dump_tlb.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/lib/dump_tlb.c	2002-12-18 16:47:37.000000000 -0600
@@ -36,22 +36,22 @@
 	unsigned long s_entryhi, entryhi, entrylo0, entrylo1, asid;
 	unsigned int s_index, pagemask, c0, c1, i;
 
-	s_entryhi = get_entryhi();
-	s_index = get_index();
+	s_entryhi = read_c0_entryhi();
+	s_index = read_c0_index();
 	asid = s_entryhi & 0xff;
 
 	for (i = first; i <= last; i++) {
-		write_32bit_cp0_register(CP0_INDEX, i);
+		write_c0_index(i);
 		__asm__ __volatile__(
 			".set\tnoreorder\n\t"
 			"nop;nop;nop;nop\n\t"
 			"tlbr\n\t"
 			"nop;nop;nop;nop\n\t"
 			".set\treorder");
-		pagemask = read_32bit_cp0_register(CP0_PAGEMASK);
-		entryhi  = get_entryhi();
-		entrylo0 = get_entrylo0();
-		entrylo1 = get_entrylo1();
+		pagemask = read_c0_pagemask();
+		entryhi  = read_c0_entryhi();
+		entrylo0 = read_c0_entrylo0();
+		entrylo1 = read_c0_entrylo1();
 
 		/* Unused entries have a virtual address of CKSEG0.  */
 		if ((entryhi & ~0x1ffffUL) != CKSEG0
@@ -81,8 +81,8 @@
 	}
 	printk("\n");
 
-	set_entryhi(s_entryhi);
-	set_index(s_index);
+	write_c0_entryhi(s_entryhi);
+	write_c0_index(s_index);
 }
 
 void dump_tlb_all(void)
@@ -94,9 +94,9 @@
 {
 	int	wired;
 
-	wired = read_32bit_cp0_register(CP0_WIRED);
+	wired = read_c0_wired();
 	printk("Wired: %d", wired);
-	dump_tlb(0, read_32bit_cp0_register(CP0_WIRED));
+	dump_tlb(0, read_c0_wired());
 }
 
 #define BARRIER						\
@@ -111,14 +111,14 @@
 	int index;
 
 	__save_and_cli(flags);
-	oldpid = get_entryhi() & 0xff;
+	oldpid = read_c0_entryhi() & 0xff;
 	BARRIER;
-	set_entryhi((addr & PAGE_MASK) | oldpid);
+	write_c0_entryhi((addr & PAGE_MASK) | oldpid);
 	BARRIER;
 	tlb_probe();
 	BARRIER;
-	index = get_index();
-	set_entryhi(oldpid);
+	index = read_c0_index();
+	write_c0_entryhi(oldpid);
 	__restore_flags(flags);
 
 	if (index < 0) {
@@ -132,7 +132,7 @@
 
 void dump_tlb_nonwired(void)
 {
-	dump_tlb(read_32bit_cp0_register(CP0_WIRED), mips_cpu.tlbsize - 1);
+	dump_tlb(read_c0_wired(), mips_cpu.tlbsize - 1);
 }
 
 void dump_list_process(struct task_struct *t, void *address)
@@ -161,7 +161,7 @@
 	printk("pte == %08lx, ", (unsigned long) pte);
 
 	page = *pte;
-	printk("page == %08lx\n", (unsigned long) pte_val(page));
+	printk("page == %08lx\n", pte_val(page));
 
 	val = pte_val(page);
 	if (val & _PAGE_PRESENT) printk("present ");
diff -urNd -urNd linux-2.4.20/arch/mips64/lib/Makefile linux-2.4.20-mipscvs-20050106/arch/mips64/lib/Makefile
--- linux-2.4.20/arch/mips64/lib/Makefile	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/lib/Makefile	2003-01-27 20:31:33.000000000 -0600
@@ -6,12 +6,12 @@
 
 L_TARGET = lib.a
 
-obj-y	+= csum_partial.o csum_partial_copy.o dump_tlb.o rtc-std.o \
+obj-y	+= csum_partial.o csum_partial_copy.o dump_tlb.o promlib.o rtc-std.o \
 	  rtc-no.o memset.o memcpy.o strlen_user.o strncpy_user.o \
 	  strnlen_user.o watch.o
 
 obj-$(CONFIG_BLK_DEV_FD)	+= floppy-no.o floppy-std.o
-obj-$(CONFIG_IDE)		+= ide-std.o ide-no.o
+obj-$(subst m,y,$(CONFIG_IDE))	+= ide-std.o ide-no.o	# needed for ide module
 obj-$(CONFIG_PC_KEYB)		+= kbd-std.o kbd-no.o
 
 include $(TOPDIR)/Rules.make
diff -urNd -urNd linux-2.4.20/arch/mips64/lib/memcpy.S linux-2.4.20-mipscvs-20050106/arch/mips64/lib/memcpy.S
--- linux-2.4.20/arch/mips64/lib/memcpy.S	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/lib/memcpy.S	2002-09-19 09:01:24.000000000 -0500
@@ -5,776 +5,499 @@
  *
  * Unified implementation of memcpy, memmove and the __copy_user backend.
  *
- * Copyright (C) 1998, 1999, 2000, 2001 Ralf Baechle
- * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
+ * Copyright (C) 1998, 99, 2000, 01, 2002 Ralf Baechle (ralf@gnu.org)
+ * Copyright (C) 1999, 2000, 01, 2002 Silicon Graphics, Inc.
+ * Copyright (C) 2002 Broadcom, Inc.
+ *   memcpy/copy_user author: Mark Vandevoorde
  *
- * For __rmemcpy and memmove an exception is always a kernel bug, therefore
- * they're not protected.  In order to keep the exception fixup routine
- * simple all memory accesses in __copy_user to src rsp. dst are stricly
- * incremental.  The fixup routine depends on $at not being changed.
+ * Mnemonic names for arguments to memcpy/__copy_user
  */
+#include <linux/config.h>
 #include <asm/asm.h>
 #include <asm/offset.h>
 #include <asm/regdef.h>
 
+#define dst a0
+#define src a1
+#define len a2
+
 /*
- * The fixup routine for copy_to_user depends on copying strictly in
- * increasing order.  Gas expands the ulw/usw macros in the wrong order for
- * little endian machines, so we cannot depend on them.
+ * Spec
+ *
+ * memcpy copies len bytes from src to dst and sets v0 to dst.
+ * It assumes that
+ *   - src and dst don't overlap
+ *   - src is readable
+ *   - dst is writable
+ * memcpy uses the standard calling convention
+ *
+ * __copy_user copies up to len bytes from src to dst and sets a2 (len) to
+ * the number of uncopied bytes due to an exception caused by a read or write.
+ * __copy_user assumes that src and dst don't overlap, and that the call is
+ * implementing one of the following:
+ *   copy_to_user
+ *     - src is readable  (no exceptions when reading src)
+ *   copy_from_user
+ *     - dst is writable  (no exceptions when writing dst)
+ * __copy_user uses a non-standard calling convention; see
+ * include/asm-mips/uaccess.h
+ *
+ * When an exception happens on a load, the handler must
+ # ensure that all of the destination buffer is overwritten to prevent
+ * leaking information to user mode programs.
  */
-#ifdef __MIPSEB__
-#define uswL	swl
-#define uswU	swr
-#define ulwL	lwl
-#define ulwU	lwr
-#define usdL	sdl
-#define usdU	sdr
-#define uldL	ldl
-#define uldU	ldr
-#endif
-#ifdef __MIPSEL__
-#define uswL	swr
-#define uswU	swl
-#define ulwL	lwr
-#define ulwU	lwl
-#define usdL	sdr
-#define usdU	sdl
-#define uldL	ldr
-#define uldU	ldl
-#endif
 
-#define EX(insn,reg,addr,handler)			\
-9:	insn	reg, addr;				\
-	.section __ex_table,"a"; 			\
-	PTR	9b, handler; 				\
-	.previous
+/*
+ * Implementation
+ */
 
-#define UEX(insn,reg,addr,handler)			\
-9:	insn ## L reg, addr;				\
-10:	insn ## U reg, 3 + addr;			\
-	.section __ex_table,"a"; 			\
-	PTR	9b, handler; 				\
-	PTR	10b, handler; 				\
-	.previous
+/*
+ * The exception handler for loads requires that:
+ *  1- AT contain the address of the byte just past the end of the source
+ *     of the copy,
+ *  2- src_entry <= src < AT, and
+ *  3- (dst - src) == (dst_entry - src_entry),
+ * The _entry suffix denotes values when __copy_user was called.
+ *
+ * (1) is set up up by uaccess.h and maintained by not writing AT in copy_user
+ * (2) is met by incrementing src by the number of bytes copied
+ * (3) is met by not doing loads between a pair of increments of dst and src
+ *
+ * The exception handlers for stores adjust len (if necessary) and return.
+ * These handlers do not need to overwrite any data.
+ *
+ * For __rmemcpy and memmove an exception is always a kernel bug, therefore
+ * they're not protected.
+ */
 
-#define UEXD(insn,reg,addr,handler)			\
-9:	insn ## L reg, addr;				\
-10:	insn ## U reg, 7 + addr;			\
-	.section __ex_table,"a"; 			\
-	PTR	9b, handler; 				\
-	PTR	10b, handler; 				\
+#define EXC(inst_reg,addr,handler)		\
+9:	inst_reg, addr;				\
+	.section __ex_table,"a";		\
+	PTR	9b, handler;			\
 	.previous
 
-/* ascending order, destination aligned  */
-#define MOVE_BIGGERCHUNK(src, dst, offset, t0, t1, t2, t3) \
-	EX(ld, t0, (offset + 0x00)(src), l_fixup); \
-	EX(ld, t1, (offset + 0x08)(src), l_fixup); \
-	EX(ld, t2, (offset + 0x10)(src), l_fixup); \
-	EX(ld, t3, (offset + 0x18)(src), l_fixup); \
-	EX(sd, t0, (offset + 0x00)(dst), s_fixup); \
-	EX(sd, t1, (offset + 0x08)(dst), s_fixup); \
-	EX(sd, t2, (offset + 0x10)(dst), s_fixup); \
-	EX(sd, t3, (offset + 0x18)(dst), s_fixup); \
-	EX(ld, t0, (offset + 0x20)(src), l_fixup); \
-	EX(ld, t1, (offset + 0x28)(src), l_fixup); \
-	EX(ld, t2, (offset + 0x30)(src), l_fixup); \
-	EX(ld, t3, (offset + 0x38)(src), l_fixup); \
-	EX(sd, t0, (offset + 0x20)(dst), s_fixup); \
-	EX(sd, t1, (offset + 0x28)(dst), s_fixup); \
-	EX(sd, t2, (offset + 0x30)(dst), s_fixup); \
-	EX(sd, t3, (offset + 0x38)(dst), s_fixup)
+/*
+ * Only on the 64-bit kernel we can made use of 64-bit registers.
+ */
+#ifdef CONFIG_MIPS64
+#define USE_DOUBLE
+#endif
 
-/* ascending order, destination aligned  */
-#define MOVE_BIGCHUNK(src, dst, offset, t0, t1, t2, t3) \
-	EX(lw, t0, (offset + 0x00)(src), l_fixup); \
-	EX(lw, t1, (offset + 0x04)(src), l_fixup); \
-	EX(lw, t2, (offset + 0x08)(src), l_fixup); \
-	EX(lw, t3, (offset + 0x0c)(src), l_fixup); \
-	EX(sw, t0, (offset + 0x00)(dst), s_fixup); \
-	EX(sw, t1, (offset + 0x04)(dst), s_fixup); \
-	EX(sw, t2, (offset + 0x08)(dst), s_fixup); \
-	EX(sw, t3, (offset + 0x0c)(dst), s_fixup); \
-	EX(lw, t0, (offset + 0x10)(src), l_fixup); \
-	EX(lw, t1, (offset + 0x14)(src), l_fixup); \
-	EX(lw, t2, (offset + 0x18)(src), l_fixup); \
-	EX(lw, t3, (offset + 0x1c)(src), l_fixup); \
-	EX(sw, t0, (offset + 0x10)(dst), s_fixup); \
-	EX(sw, t1, (offset + 0x14)(dst), s_fixup); \
-	EX(sw, t2, (offset + 0x18)(dst), s_fixup); \
-	EX(sw, t3, (offset + 0x1c)(dst), s_fixup)
+#ifdef USE_DOUBLE
 
-/* ascending order, destination unaligned  */
-#define UMOVE_BIGGERCHUNK(src, dst, offset, t0, t1, t2, t3) \
-	EX(ld, t0, (offset + 0x00)(src), l_fixup); \
-	EX(ld, t1, (offset + 0x08)(src), l_fixup); \
-	EX(ld, t2, (offset + 0x10)(src), l_fixup); \
-	EX(ld, t3, (offset + 0x18)(src), l_fixup); \
-	UEXD(usd, t0, (offset + 0x00)(dst), s_fixup); \
-	UEXD(usd, t1, (offset + 0x08)(dst), s_fixup); \
-	UEXD(usd, t2, (offset + 0x10)(dst), s_fixup); \
-	UEXD(usd, t3, (offset + 0x18)(dst), s_fixup); \
-	EX(ld, t0, (offset + 0x20)(src), l_fixup); \
-	EX(ld, t1, (offset + 0x28)(src), l_fixup); \
-	EX(ld, t2, (offset + 0x30)(src), l_fixup); \
-	EX(ld, t3, (offset + 0x38)(src), l_fixup); \
-	UEXD(usd, t0, (offset + 0x20)(dst), s_fixup); \
-	UEXD(usd, t1, (offset + 0x28)(dst), s_fixup); \
-	UEXD(usd, t2, (offset + 0x30)(dst), s_fixup); \
-	UEXD(usd, t3, (offset + 0x38)(dst), s_fixup)
+#define LOAD   ld
+#define LOADL  ldl
+#define LOADR  ldr
+#define STOREL sdl
+#define STORER sdr
+#define STORE  sd
+#define ADD    daddu
+#define SUB    dsubu
+#define SRL    dsrl
+#define SRA    dsra
+#define SLL    dsll
+#define SLLV   dsllv
+#define SRLV   dsrlv
+#define NBYTES 8
+#define LOG_NBYTES 3
 
-/* ascending order, destination unaligned  */
-#define UMOVE_BIGCHUNK(src, dst, offset, t0, t1, t2, t3) \
-	EX(lw, t0, (offset + 0x00)(src), l_fixup); \
-	EX(lw, t1, (offset + 0x04)(src), l_fixup); \
-	EX(lw, t2, (offset + 0x08)(src), l_fixup); \
-	EX(lw, t3, (offset + 0x0c)(src), l_fixup); \
-	UEX(usw, t0, (offset + 0x00)(dst), s_fixup); \
-	UEX(usw, t1, (offset + 0x04)(dst), s_fixup); \
-	UEX(usw, t2, (offset + 0x08)(dst), s_fixup); \
-	UEX(usw, t3, (offset + 0x0c)(dst), s_fixup); \
-	EX(lw, t0, (offset + 0x10)(src), l_fixup); \
-	EX(lw, t1, (offset + 0x14)(src), l_fixup); \
-	EX(lw, t2, (offset + 0x18)(src), l_fixup); \
-	EX(lw, t3, (offset + 0x1c)(src), l_fixup); \
-	UEX(usw, t0, (offset + 0x10)(dst), s_fixup); \
-	UEX(usw, t1, (offset + 0x14)(dst), s_fixup); \
-	UEX(usw, t2, (offset + 0x18)(dst), s_fixup); \
-	UEX(usw, t3, (offset + 0x1c)(dst), s_fixup)
+/* 
+ * As we are sharing code base with the mips32 tree (which use the o32 ABI
+ * register definitions). We need to redefine the register definitions from
+ * the n64 ABI register naming to the o32 ABI register naming.
+ */
+#undef t0
+#undef t1
+#undef t2
+#undef t3
+#define t0	$8
+#define t1	$9
+#define t2	$10
+#define t3	$11
+#define t4	$12
+#define t5	$13
+#define t6	$14
+#define t7	$15
+	
+#else
+
+#define LOAD   lw
+#define LOADL  lwl
+#define LOADR  lwr
+#define STOREL swl
+#define STORER swr
+#define STORE  sw
+#define ADD    addu
+#define SUB    subu
+#define SRL    srl
+#define SLL    sll
+#define SRA    sra
+#define SLLV   sllv
+#define SRLV   srlv
+#define NBYTES 4
+#define LOG_NBYTES 2
+
+#endif /* USE_DOUBLE */
+
+#ifdef CONFIG_CPU_LITTLE_ENDIAN
+#define LDFIRST LOADR
+#define LDREST  LOADL
+#define STFIRST STORER
+#define STREST  STOREL
+#define SHIFT_DISCARD SLLV
+#else
+#define LDFIRST LOADL
+#define LDREST  LOADR
+#define STFIRST STOREL
+#define STREST  STORER
+#define SHIFT_DISCARD SRLV
+#endif
+
+#define FIRST(unit) ((unit)*NBYTES)
+#define REST(unit)  (FIRST(unit)+NBYTES-1)
+#define UNIT(unit)  FIRST(unit)
+
+#define ADDRMASK (NBYTES-1)
 
 	.text
 	.set	noreorder
 	.set	noat
 
+/*
+ * A combined memcpy/__copy_user
+ * __copy_user sets len to 0 for success; else to an upper bound of
+ * the number of uncopied bytes.
+ * memcpy sets v0 to dst.
+ */
 	.align	5
 LEAF(memcpy)					/* a0=dst a1=src a2=len */
-	move	v0, a0				/* return value */
+	move	v0, dst				/* return value */
 __memcpy:
 FEXPORT(__copy_user)
-	xor	ta0, a0, a1
-	andi	ta0, ta0, 0x7
-	move	t3, a0
-	beqz	ta0, can_align
-	 sltiu	t8, a2, 0x8
-
-	b	memcpy_u_src			# bad alignment
-	 move	ta2, a2
-
-can_align:
-	bnez	t8, small_memcpy		# < 8 bytes to copy
-	 move	ta2, a2
-
-	beqz	a2, out
-	 andi	t8, a1, 0x1
-
-hword_align:
-	beqz	t8, word_align
-	 andi	t8, a1, 0x2
-
-	EX(lb, ta0, (a1), l_fixup)
-	dsubu	a2, a2, 0x1
-	EX(sb, ta0, (a0), s_fixup)
-	daddu	a1, a1, 0x1
-	daddu	a0, a0, 0x1
-	andi	t8, a1, 0x2
-
-word_align:
-	beqz	t8, dword_align
-	 sltiu	t8, a2, 56
-
-	EX(lh, ta0, (a1), l_fixup)
-	dsubu	a2, a2, 0x2
-	EX(sh, ta0, (a0), s_fixup)
-	sltiu	t8, a2, 56
-	daddu	a0, a0, 0x2
-	daddu	a1, a1, 0x2
-
-dword_align:
-	bnez	t8, do_end_words
-	 move	t8, a2
-
-	andi	t8, a1, 0x4
-	beqz	t8, qword_align
-	 andi	t8, a1, 0x8
-
-	EX(lw, ta0, 0x00(a1), l_fixup)
-	dsubu	a2, a2, 0x4
-	EX(sw, ta0, 0x00(a0), s_fixup)
-	daddu	a1, a1, 0x4
-	daddu	a0, a0, 0x4
-	andi	t8, a1, 0x8
-
-qword_align:
-	beqz	t8, oword_align
-	 andi	t8, a1, 0x10
-
-	EX(lw, ta0, 0x00(a1), l_fixup)
-	EX(lw, ta1, 0x04(a1), l_fixup)
-	dsubu	a2, a2, 0x8
-	EX(sw, ta0, 0x00(a0), s_fixup)
-	EX(sw, ta1, 0x04(a0), s_fixup)
-	daddu	a1, a1, 0x8
-	andi	t8, a1, 0x10
-	daddu	a0, a0, 0x8
-
-oword_align:
-	beqz	t8, begin_movement
-	 srl	t8, a2, 0x7
-
-	EX(lw, ta3, 0x00(a1), l_fixup)
-	EX(lw, t0, 0x04(a1), l_fixup)
-	EX(lw, ta0, 0x08(a1), l_fixup)
-	EX(lw, ta1, 0x0c(a1), l_fixup)
-	EX(sw, ta3, 0x00(a0), s_fixup)
-	EX(sw, t0, 0x04(a0), s_fixup)
-	EX(sw, ta0, 0x08(a0), s_fixup)
-	EX(sw, ta1, 0x0c(a0), s_fixup)
-	dsubu	a2, a2, 0x10
-	daddu	a1, a1, 0x10
-	srl	t8, a2, 0x7
-	daddu	a0, a0, 0x10
-
-begin_movement:
-	beqz	t8, 0f
-	 andi	ta2, a2, 0x40
-
-move_128bytes:
-	PREF	(0, 2*128(a0))
-	PREF	(1, 2*128(a1))
-	MOVE_BIGGERCHUNK(a1, a0, 0x00, ta0, ta1, ta3, t0)
-	MOVE_BIGGERCHUNK(a1, a0, 0x40, ta0, ta1, ta3, t0)
-	dsubu	t8, t8, 0x01
-	daddu	a1, a1, 0x80
-	bnez	t8, move_128bytes
-	 daddu	a0, a0, 0x80
-
-0:
-	beqz	ta2, 1f
-	 andi	ta2, a2, 0x20
-
-move_64bytes:
-	MOVE_BIGGERCHUNK(a1, a0, 0x00, ta0, ta1, ta3, t0)
-	daddu	a1, a1, 0x40
-	daddu	a0, a0, 0x40
+	/*
+	 * Note: dst & src may be unaligned, len may be 0
+	 * Temps
+	 */
+#define rem t8
 
+	/*
+	 * The "issue break"s below are very approximate.
+	 * Issue delays for dcache fills will perturb the schedule, as will
+	 * load queue full replay traps, etc.
+	 *
+	 * If len < NBYTES use byte operations.
+	 */
+	PREF(	0, 0(src) )
+	PREF(	1, 0(dst) )
+	sltu	t2, len, NBYTES
+	and	t1, dst, ADDRMASK
+	PREF(	0, 1*32(src) )
+	PREF(	1, 1*32(dst) )
+	bnez	t2, copy_bytes_checklen
+	 and	t0, src, ADDRMASK
+	PREF(	0, 2*32(src) )
+	PREF(	1, 2*32(dst) )
+	bnez	t1, dst_unaligned
+	 nop
+	bnez	t0, src_unaligned_dst_aligned
+	/*
+	 * use delay slot for fall-through
+	 * src and dst are aligned; need to compute rem
+	 */
+both_aligned:
+	 SRL	t0, len, LOG_NBYTES+3    # +3 for 8 units/iter
+	beqz	t0, cleanup_both_aligned # len < 8*NBYTES
+	 and	rem, len, (8*NBYTES-1)	 # rem = len % (8*NBYTES)
+	PREF(	0, 3*32(src) )
+	PREF(	1, 3*32(dst) )
+	.align	4
 1:
-	beqz	ta2, do_end_words
-	 andi	t8, a2, 0x1c
-
-move_32bytes:
-	MOVE_BIGCHUNK(a1, a0, 0x00, ta0, ta1, ta3, t0)
-	andi	t8, a2, 0x1c
-	daddu	a1, a1, 0x20
-	daddu	a0, a0, 0x20
-
-do_end_words:
-	beqz	t8, maybe_end_cruft
-	 srl	t8, t8, 0x2
-
-end_words:
-	EX(lw, ta0, (a1), l_fixup)
-	dsubu	t8, t8, 0x1
-	EX(sw, ta0, (a0), s_fixup)
-	daddu	a1, a1, 0x4
-	bnez	t8, end_words
-	 daddu	a0, a0, 0x4
-
-maybe_end_cruft:
-	andi	ta2, a2, 0x3
-
-small_memcpy:
-	beqz	ta2, out
-	 move	a2, ta2
-
-end_bytes:
-	EX(lb, ta0, (a1), l_fixup)
-	dsubu	a2, a2, 0x1
-	EX(sb, ta0, (a0), s_fixup)
-	daddu	a1, a1, 0x1
-	bnez	a2, end_bytes
-	 daddu	a0, a0, 0x1
-
-out:	jr	ra
-	 move	a2, zero
-
-/* ------------------------------------------------------------------------- */
-
-/* Bad, bad.  At least try to align the source  */
-
-memcpy_u_src:
-	bnez	t8, small_memcpy		# < 8 bytes?
-	 move	ta2, a2
-
-	daddiu	ta0, a1, 7			# ta0: how much to align
-	ori	ta0, 7
-	xori	ta0, 7
-	dsubu	ta0, a1
-
-	UEXD(uld, ta1, 0(a1), l_fixup)		# dword alignment
-	UEXD(usd, ta1, 0(a0), s_fixup)
-
-	daddu	a1, ta0				# src
-	daddu	a0, ta0				# dst
-	dsubu	a2, ta0				# len
-
-	sltiu	t8, a2, 56
-	bnez	t8, u_do_end_words
-	 andi	t8, a2, 0x3c
-
-	andi	t8, a1, 8			# now qword aligned?
-
-u_qword_align:
-	beqz	t8, u_oword_align
-	 andi	t8, a1, 0x10
-
-	EX(ld, ta0, 0x00(a1), l_fixup)
-	dsubu	a2, a2, 0x8
-	UEXD(usd, ta0, 0x00(a0), s_fixup)
-	daddu	a1, a1, 0x8
-	andi	t8, a1, 0x10
-	daddu	a0, a0, 0x8
-
-u_oword_align:
-	beqz	t8, u_begin_movement
-	 srl	t8, a2, 0x7
-
-	EX(lw, ta3, 0x08(a1), l_fixup)
-	EX(lw, t0, 0x0c(a1), l_fixup)
-	EX(lw, ta0, 0x00(a1), l_fixup)
-	EX(lw, ta1, 0x04(a1), l_fixup)
-	UEX(usw, ta3, 0x08(a0), s_fixup)
-	UEX(usw, t0, 0x0c(a0), s_fixup)
-	UEX(usw, ta0, 0x00(a0), s_fixup)
-	UEX(usw, ta1, 0x04(a0), s_fixup)
-	dsubu	a2, a2, 0x10
-	daddu	a1, a1, 0x10
-	srl	t8, a2, 0x7
-	daddu	a0, a0, 0x10
-
-u_begin_movement:
-	beqz	t8, 0f
-	 andi	ta2, a2, 0x40
+EXC(	LOAD	t0, UNIT(0)(src),	l_exc)
+EXC(	LOAD	t1, UNIT(1)(src),	l_exc_copy)
+EXC(	LOAD	t2, UNIT(2)(src),	l_exc_copy)
+EXC(	LOAD	t3, UNIT(3)(src),	l_exc_copy)
+	SUB	len, len, 8*NBYTES
+EXC(	LOAD	t4, UNIT(4)(src),	l_exc_copy)
+EXC(	LOAD	t7, UNIT(5)(src),	l_exc_copy)
+EXC(	STORE	t0, UNIT(0)(dst),	s_exc_p8u)
+EXC(	STORE	t1, UNIT(1)(dst),	s_exc_p7u)
+EXC(	LOAD	t0, UNIT(6)(src),	l_exc_copy)
+EXC(	LOAD	t1, UNIT(7)(src),	l_exc_copy)
+	ADD	src, src, 8*NBYTES
+	ADD	dst, dst, 8*NBYTES
+EXC(	STORE	t2, UNIT(-6)(dst),	s_exc_p6u)
+EXC(	STORE	t3, UNIT(-5)(dst),	s_exc_p5u)
+EXC(	STORE	t4, UNIT(-4)(dst),	s_exc_p4u)
+EXC(	STORE	t7, UNIT(-3)(dst),	s_exc_p3u)
+EXC(	STORE	t0, UNIT(-2)(dst),	s_exc_p2u)
+EXC(	STORE	t1, UNIT(-1)(dst),	s_exc_p1u)
+	PREF(	0, 8*32(src) )
+	PREF(	1, 8*32(dst) )
+	bne	len, rem, 1b
+	 nop
 
-u_move_128bytes:
-	UMOVE_BIGGERCHUNK(a1, a0, 0x00, ta0, ta1, ta3, t0)
-	UMOVE_BIGGERCHUNK(a1, a0, 0x40, ta0, ta1, ta3, t0)
-	dsubu	t8, t8, 0x01
-	daddu	a1, a1, 0x80
-	bnez	t8, u_move_128bytes
-	 daddu	a0, a0, 0x80
+	/*
+	 * len == rem == the number of bytes left to copy < 8*NBYTES
+	 */
+cleanup_both_aligned:
+	beqz	len, done
+	 sltu	t0, len, 4*NBYTES
+	bnez	t0, less_than_4units
+	 and	rem, len, (NBYTES-1)	# rem = len % NBYTES
+	/*
+	 * len >= 4*NBYTES
+	 */
+EXC(	LOAD	t0, UNIT(0)(src),	l_exc)
+EXC(	LOAD	t1, UNIT(1)(src),	l_exc_copy)
+EXC(	LOAD	t2, UNIT(2)(src),	l_exc_copy)
+EXC(	LOAD	t3, UNIT(3)(src),	l_exc_copy)
+	SUB	len, len, 4*NBYTES
+	ADD	src, src, 4*NBYTES
+EXC(	STORE	t0, UNIT(0)(dst),	s_exc_p4u)
+EXC(	STORE	t1, UNIT(1)(dst),	s_exc_p3u)
+EXC(	STORE	t2, UNIT(2)(dst),	s_exc_p2u)
+EXC(	STORE	t3, UNIT(3)(dst),	s_exc_p1u)
+	beqz	len, done
+	 ADD	dst, dst, 4*NBYTES
+less_than_4units:
+	/*
+	 * rem = len % NBYTES
+	 */
+	beq	rem, len, copy_bytes
+	 nop
+1:
+EXC(	LOAD	 t0, 0(src),		l_exc)
+	ADD	src, src, NBYTES
+	SUB	len, len, NBYTES
+EXC(	STORE	t0, 0(dst),		s_exc_p1u)
+	bne	rem, len, 1b
+	 ADD	dst, dst, NBYTES
 
-0:
-	beqz	ta2, 1f
-	 andi	ta2, a2, 0x20
+	/*
+	 * src and dst are aligned, need to copy rem bytes (rem < NBYTES)
+	 * A loop would do only a byte at a time with possible branch
+	 * mispredicts.  Can't do an explicit LOAD dst,mask,or,STORE
+	 * because can't assume read-access to dst.  Instead, use
+	 * STREST dst, which doesn't require read access to dst.
+	 *
+	 * This code should perform better than a simple loop on modern,
+	 * wide-issue mips processors because the code has fewer branches and
+	 * more instruction-level parallelism.
+	 */
+#define bits t2
+	beqz	len, done
+	 ADD	t1, dst, len	# t1 is just past last byte of dst
+	li	bits, 8*NBYTES
+	SLL	rem, len, 3	# rem = number of bits to keep
+EXC(	LOAD	t0, 0(src),		l_exc)
+	SUB	bits, bits, rem	# bits = number of bits to discard
+	SHIFT_DISCARD t0, t0, bits
+EXC(	STREST	t0, -1(t1),		s_exc)
+	jr	ra
+	 move	len, zero
+dst_unaligned:
+	/*
+	 * dst is unaligned
+	 * t0 = src & ADDRMASK
+	 * t1 = dst & ADDRMASK; T1 > 0
+	 * len >= NBYTES
+	 *
+	 * Copy enough bytes to align dst
+	 * Set match = (src and dst have same alignment)
+	 */
+#define match rem
+EXC(	LDFIRST	t3, FIRST(0)(src),	l_exc)
+	ADD	t2, zero, NBYTES
+EXC(	LDREST	t3, REST(0)(src),	l_exc_copy)
+	SUB	t2, t2, t1	# t2 = number of bytes copied
+	xor	match, t0, t1
+EXC(	STFIRST t3, FIRST(0)(dst),	s_exc)
+	beq	len, t2, done
+	 SUB	len, len, t2
+	ADD	dst, dst, t2
+	beqz	match, both_aligned
+	 ADD	src, src, t2
 
-u_move_64bytes:
-	UMOVE_BIGGERCHUNK(a1, a0, 0x00, ta0, ta1, ta3, t0)
-	daddu	a1, a1, 0x40
-	daddu	a0, a0, 0x40
+src_unaligned_dst_aligned:
+	SRL	t0, len, LOG_NBYTES+2    # +2 for 4 units/iter
+	PREF(	0, 3*32(src) )
+	beqz	t0, cleanup_src_unaligned
+	 and	rem, len, (4*NBYTES-1)   # rem = len % 4*NBYTES
+	PREF(	1, 3*32(dst) )
+1:
+/*
+ * Avoid consecutive LD*'s to the same register since some mips
+ * implementations can't issue them in the same cycle.
+ * It's OK to load FIRST(N+1) before REST(N) because the two addresses
+ * are to the same unit (unless src is aligned, but it's not).
+ */
+EXC(	LDFIRST	t0, FIRST(0)(src),	l_exc)
+EXC(	LDFIRST	t1, FIRST(1)(src),	l_exc_copy)
+	SUB     len, len, 4*NBYTES
+EXC(	LDREST	t0, REST(0)(src),	l_exc_copy)
+EXC(	LDREST	t1, REST(1)(src),	l_exc_copy)
+EXC(	LDFIRST	t2, FIRST(2)(src),	l_exc_copy)
+EXC(	LDFIRST	t3, FIRST(3)(src),	l_exc_copy)
+EXC(	LDREST	t2, REST(2)(src),	l_exc_copy)
+EXC(	LDREST	t3, REST(3)(src),	l_exc_copy)
+	PREF(	0, 9*32(src) )	   	# 0 is PREF_LOAD  (not streamed)
+	ADD	src, src, 4*NBYTES
+#ifdef CONFIG_CPU_SB1
+	nop			   	# improves slotting
+#endif
+EXC(	STORE	t0, UNIT(0)(dst),	s_exc_p4u)
+EXC(	STORE	t1, UNIT(1)(dst),	s_exc_p3u)
+EXC(	STORE	t2, UNIT(2)(dst),	s_exc_p2u)
+EXC(	STORE	t3, UNIT(3)(dst),	s_exc_p1u)
+	PREF(	1, 9*32(dst) )     	# 1 is PREF_STORE (not streamed)
+	bne	len, rem, 1b
+	 ADD	dst, dst, 4*NBYTES
 
+cleanup_src_unaligned:
+	beqz	len, done
+	 and	rem, len, NBYTES-1  # rem = len % NBYTES
+	beq	rem, len, copy_bytes
 1:
-	beqz	ta2, u_do_end_words
-	 andi	t8, a2, 0x1c
+EXC(	 LDFIRST t0, FIRST(0)(src),	l_exc)
+EXC(	LDREST	t0, REST(0)(src),	l_exc_copy)
+	ADD	src, src, NBYTES
+	SUB	len, len, NBYTES
+EXC(	STORE	t0, 0(dst),		s_exc_p1u)
+	bne	len, rem, 1b
+	 ADD	dst, dst, NBYTES
 
-u_move_32bytes:
-	UMOVE_BIGCHUNK(a1, a0, 0x00, ta0, ta1, ta3, t0)
-	andi	t8, a2, 0x1c
-	daddu	a1, a1, 0x20
-	daddu	a0, a0, 0x20
+copy_bytes_checklen:
+	beqz	len, done
+	 nop
+copy_bytes:
+	/* 0 < len < NBYTES  */
+#define COPY_BYTE(N)			\
+EXC(	lb	t0, N(src), l_exc);	\
+	SUB	len, len, 1;		\
+	beqz	len, done;		\
+EXC(	 sb	t0, N(dst), s_exc_p1)
 
-u_do_end_words:
-	beqz	t8, u_maybe_end_cruft
-	 srl	t8, t8, 0x2
+	COPY_BYTE(0)
+	COPY_BYTE(1)
+#ifdef USE_DOUBLE
+	COPY_BYTE(2)
+	COPY_BYTE(3)
+	COPY_BYTE(4)
+	COPY_BYTE(5)
+#endif
+EXC(	lb	t0, NBYTES-2(src), l_exc)
+	SUB	len, len, 1
+	jr	ra
+EXC(	 sb	t0, NBYTES-2(dst), s_exc_p1)
+done:
+	jr	ra
+	 nop
+	END(memcpy)
 
-u_end_words:
-	EX(lw, ta0, 0x00(a1), l_fixup)
-	dsubu	t8, t8, 0x1
-	UEX(usw, ta0, 0x00(a0), s_fixup)
-	daddu	a1, a1, 0x4
-	bnez	t8, u_end_words
-	 daddu	a0, a0, 0x4
+l_exc_copy:
+	/*
+	 * Copy bytes from src until faulting load address (or until a
+	 * lb faults)
+	 *
+	 * When reached by a faulting LDFIRST/LDREST, THREAD_BUADDR($28)
+	 * may be more than a byte beyond the last address.
+	 * Hence, the lb below may get an exception.
+	 *
+	 * Assumes src < THREAD_BUADDR($28)
+	 */
+	LOAD	t0, THREAD_BUADDR($28)
+1:
+EXC(	lb	t1, 0(src),	l_exc)
+	ADD	src, src, 1
+	sb	t1, 0(dst)	# can't fault -- we're copy_from_user
+	bne	src, t0, 1b
+	 ADD	dst, dst, 1
+l_exc:
+	LOAD	t0, THREAD_BUADDR($28)	# t0 is just past last good address
+	 nop
+	SUB	len, AT, t0		# len number of uncopied bytes
+	/*
+	 * Here's where we rely on src and dst being incremented in tandem,
+	 *   See (3) above.
+	 * dst += (fault addr - src) to put dst at first byte to clear
+	 */
+	ADD	dst, t0			# compute start address in a1
+	SUB	dst, src
+	/*
+	 * Clear len bytes starting at dst.  Can't call __bzero because it
+	 * might modify len.  An inefficient loop for these rare times...
+	 */
+	beqz	len, done
+	 SUB	src, len, 1
+1:	sb	zero, 0(dst)
+	ADD	dst, dst, 1
+	bnez	src, 1b
+	 SUB	src, src, 1
+	jr	ra
+	 nop
 
-u_maybe_end_cruft:
-	andi	ta2, a2, 0x3
 
-u_cannot_optimize:
-	beqz	ta2, out
-	 move	a2, ta2
+#define SEXC(n)				\
+s_exc_p ## n ## u:			\
+	jr	ra;			\
+	 ADD	len, len, n*NBYTES
 
-u_end_bytes:
-	EX(lb, ta0, (a1), l_fixup)
-	dsubu	a2, a2, 0x1
-	EX(sb, ta0, (a0), s_fixup)
-	daddu	a1, a1, 0x1
-	bnez	a2, u_end_bytes
-	 daddu	a0, a0, 0x1
+SEXC(8)
+SEXC(7)
+SEXC(6)
+SEXC(5)
+SEXC(4)
+SEXC(3)
+SEXC(2)
+SEXC(1)
 
+s_exc_p1:
 	jr	ra
-	 move	a2, zero
-	END(memcpy)
-
-/* descending order, destination aligned  */
-#define RMOVE_BIGCHUNK(src, dst, offset, t0, t1, t2, t3) \
-	lw	t0, (offset + 0x10)(src); \
-	lw	t1, (offset + 0x14)(src); \
-	lw	t2, (offset + 0x18)(src); \
-	lw	t3, (offset + 0x1c)(src); \
-	sw	t0, (offset + 0x10)(dst); \
-	sw	t1, (offset + 0x14)(dst); \
-	sw	t2, (offset + 0x18)(dst); \
-	sw	t3, (offset + 0x1c)(dst); \
-	lw	t0, (offset + 0x00)(src); \
-	lw	t1, (offset + 0x04)(src); \
-	lw	t2, (offset + 0x08)(src); \
-	lw	t3, (offset + 0x0c)(src); \
-	sw	t0, (offset + 0x00)(dst); \
-	sw	t1, (offset + 0x04)(dst); \
-	sw	t2, (offset + 0x08)(dst); \
-	sw	t3, (offset + 0x0c)(dst)
-
-/* descending order, destination ununaligned  */
-#define RUMOVE_BIGCHUNK(src, dst, offset, t0, t1, t2, t3) \
-	lw	t0, (offset + 0x10)(src); \
-	lw	t1, (offset + 0x14)(src); \
-	lw	t2, (offset + 0x18)(src); \
-	lw	t3, (offset + 0x1c)(src); \
-	usw	t0, (offset + 0x10)(dst); \
-	usw	t1, (offset + 0x14)(dst); \
-	usw	t2, (offset + 0x18)(dst); \
-	usw	t3, (offset + 0x1c)(dst); \
-	lw	t0, (offset + 0x00)(src); \
-	lw	t1, (offset + 0x04)(src); \
-	lw	t2, (offset + 0x08)(src); \
-	lw	t3, (offset + 0x0c)(src); \
-	usw	t0, (offset + 0x00)(dst); \
-	usw	t1, (offset + 0x04)(dst); \
-	usw	t2, (offset + 0x08)(dst); \
-	usw	t3, (offset + 0x0c)(dst)
+	 ADD	len, len, 1
+s_exc:
+	jr	ra
+	 nop
 
 	.align	5
 LEAF(memmove)
-	daddu	t0, a0, a2
+	ADD	t0, a0, a2
+	ADD	t1, a1, a2
 	sltu	t0, a1, t0			# dst + len <= src -> memcpy
-	daddu	t1, a1, a2
 	sltu	t1, a0, t1			# dst >= src + len -> memcpy
 	and	t0, t1
 	beqz	t0, __memcpy
-
 	 move	v0, a0				/* return value */
 	beqz	a2, r_out
 	END(memmove)
 
+	/* fall through to __rmemcpy */
 LEAF(__rmemcpy)					/* a0=dst a1=src a2=len */
-	sltu	t0, a1, a0
+	 sltu	t0, a1, a0
 	beqz	t0, r_end_bytes_up		# src >= dst
 	 nop
-	daddu	a0, a2				# dst = dst + len
-	daddu	a1, a2				# src = src + len
-
-#if 0 /* Horror fix */
-	xor	ta0, a0, a1
-	andi	ta0, ta0, 0x3
-	move	t3, a0
-	beqz	ta0, r_can_align
-	 sltiu	t8, a2, 0x8
-
-	b	r_memcpy_u_src			# bad alignment
-	 move	ta2, a2
-
-r_can_align:
-	bnez	t8, r_small_memcpy		# < 8 bytes to copy
-	 move	ta2, a2
-
-	beqz	a2, r_out
-	 andi	t8, a1, 0x1
-
-r_hword_align:
-	beqz	t8, r_word_align
-	 andi	t8, a1, 0x2
-
-	lb	ta0, -1(a1)
-	dsubu	a2, a2, 0x1
-	sb	ta0, -1(a0)
-	dsubu	a1, a1, 0x1
-	dsubu	a0, a0, 0x1
-	andi	t8, a1, 0x2
-
-r_word_align:
-	beqz	t8, r_dword_align
-	 sltiu	t8, a2, 56
-
-	lh	ta0, -2(a1)
-	dsubu	a2, a2, 0x2
-	sh	ta0, -2(a0)
-	sltiu	t8, a2, 56
-	dsubu	a0, a0, 0x2
-	dsubu	a1, a1, 0x2
-
-r_dword_align:
-	bnez	t8, r_do_end_words
-	 move	t8, a2
-
-	andi	t8, a1, 0x4
-	beqz	t8, r_qword_align
-	 andi	t8, a1, 0x8
-
-	lw	ta0, -4(a1)
-	dsubu	a2, a2, 0x4
-	sw	ta0, -4(a0)
-	dsubu	a1, a1, 0x4
-	dsubu	a0, a0, 0x4
-	andi	t8, a1, 0x8
-
-r_qword_align:
-	beqz	t8, r_oword_align
-	 andi	t8, a1, 0x10
-
-	dsubu	a1, a1, 0x8
-	lw	ta0, 0x04(a1)
-	lw	ta1, 0x00(a1)
-	dsubu	a0, a0, 0x8
-	sw	ta0, 0x04(a0)
-	sw	ta1, 0x00(a0)
-	dsubu	a2, a2, 0x8
-
-	andi	t8, a1, 0x10
-
-r_oword_align:
-	beqz	t8, r_begin_movement
-	 srl	t8, a2, 0x7
-
-	dsubu	a1, a1, 0x10
-	lw	ta3, 0x08(a1)			# assumes subblock ordering
-	lw	t0, 0x0c(a1)
-	lw	ta0, 0x00(a1)
-	lw	ta1, 0x04(a1)
-	dsubu	a0, a0, 0x10
-	sw	ta3, 0x08(a0)
-	sw	t0, 0x0c(a0)
-	sw	ta0, 0x00(a0)
-	sw	ta1, 0x04(a0)
-	dsubu	a2, a2, 0x10
-	srl	t8, a2, 0x7
-
-r_begin_movement:
-	beqz	t8, 0f
-	 andi	ta2, a2, 0x40
-
-r_move_128bytes:
-	RMOVE_BIGCHUNK(a1, a0, -0x80, ta0, ta1, ta3, t0)
-	RMOVE_BIGCHUNK(a1, a0, -0x60, ta0, ta1, ta3, t0)
-	RMOVE_BIGCHUNK(a1, a0, -0x40, ta0, ta1, ta3, t0)
-	RMOVE_BIGCHUNK(a1, a0, -0x20, ta0, ta1, ta3, t0)
-	dsubu	t8, t8, 0x01
-	dsubu	a1, a1, 0x80
-	bnez	t8, r_move_128bytes
-	 dsubu	a0, a0, 0x80
-
-0:
-	beqz	ta2, 1f
-	 andi	ta2, a2, 0x20
-
-r_move_64bytes:
-	dsubu	a1, a1, 0x40
-	dsubu	a0, a0, 0x40
-	RMOVE_BIGCHUNK(a1, a0, 0x20, ta0, ta1, ta3, t0)
-	RMOVE_BIGCHUNK(a1, a0, 0x00, ta0, ta1, ta3, t0)
-
-1:
-	beqz	ta2, r_do_end_words
-	 andi	t8, a2, 0x1c
-
-r_move_32bytes:
-	dsubu	a1, a1, 0x20
-	dsubu	a0, a0, 0x20
-	RMOVE_BIGCHUNK(a1, a0, 0x00, ta0, ta1, ta3, t0)
-	andi	t8, a2, 0x1c
-
-r_do_end_words:
-	beqz	t8, r_maybe_end_cruft
-	 srl	t8, t8, 0x2
-
-r_end_words:
-	lw	ta0, -4(a1)
-	dsubu	t8, t8, 0x1
-	sw	ta0, -4(a0)
-	dsubu	a1, a1, 0x4
-	bnez	t8, r_end_words
-	 dsubu	a0, a0, 0x4
-
-r_maybe_end_cruft:
-	andi	ta2, a2, 0x3
-
-r_small_memcpy:
-	beqz	ta2, r_out
-	 move	a2, ta2
-#endif /* Horror fix */
+	ADD	a0, a2				# dst = dst + len
+	ADD	a1, a2				# src = src + len
 
 r_end_bytes:
-	lb	ta0, -1(a1)
-	dsubu	a2, a2, 0x1
-	sb	ta0, -1(a0)
-	dsubu	a1, a1, 0x1
+	lb	t0, -1(a1)
+	SUB	a2, a2, 0x1
+	sb	t0, -1(a0)
+	SUB	a1, a1, 0x1
 	bnez	a2, r_end_bytes
-	 dsubu	a0, a0, 0x1
+	 SUB	a0, a0, 0x1
 
 r_out:
-	jr      ra
-	 move   a2, zero
+	jr	ra
+	 move	a2, zero
 
 r_end_bytes_up:
 	lb	t0, (a1)
-	dsubu	a2, a2, 0x1
+	SUB	a2, a2, 0x1
 	sb	t0, (a0)
-	daddu	a1, a1, 0x1
+	ADD	a1, a1, 0x1
 	bnez	a2, r_end_bytes_up
-	 daddu	a0, a0, 0x1
-
-	jr	ra
-	 move	a2, zero
-
-#if 0 /* Horror fix */
-/* ------------------------------------------------------------------------- */
-
-/* Bad, bad.  At least try to align the source  */
-
-r_memcpy_u_src:
-	bnez	t8, r_small_memcpy		# < 8 bytes?
-	 move	ta2, a2
-
-	andi	ta0, a1, 7			# ta0: how much to align
-
-	ulw	ta1, -8(a1)			# dword alignment
-	ulw	ta2, -4(a1)
-	usw	ta1, -8(a0)
-	usw	ta2, -4(a0)
-
-	dsubu	a1, ta0				# src
-	dsubu	a0, ta0				# dst
-	dsubu	a2, ta0				# len
-
-	sltiu	t8, a2, 56
-	bnez	t8, ru_do_end_words
-	 andi	t8, a2, 0x3c
-
-	andi	t8, a1, 8			# now qword aligned?
-
-ru_qword_align:
-	beqz	t8, ru_oword_align
-	 andi	t8, a1, 0x10
-
-	dsubu	a1, a1, 0x8
-	lw	ta0, 0x00(a1)
-	lw	ta1, 0x04(a1)
-	dsubu	a0, a0, 0x8
-	usw	ta0, 0x00(a0)
-	usw	ta1, 0x04(a0)
-	dsubu	a2, a2, 0x8
-
-	andi	t8, a1, 0x10
-
-ru_oword_align:
-	beqz	t8, ru_begin_movement
-	 srl	t8, a2, 0x7
-
-	dsubu	a1, a1, 0x10
-	lw	ta3, 0x08(a1)			# assumes subblock ordering
-	lw	t0, 0x0c(a1)
-	lw	ta0, 0x00(a1)
-	lw	ta1, 0x04(a1)
-	dsubu	a0, a0, 0x10
-	usw	ta3, 0x08(a0)
-	usw	t0, 0x0c(a0)
-	usw	ta0, 0x00(a0)
-	usw	ta1, 0x04(a0)
-	dsubu	a2, a2, 0x10
-
-	srl	t8, a2, 0x7
-
-ru_begin_movement:
-	beqz	t8, 0f
-	 andi	ta2, a2, 0x40
-
-ru_move_128bytes:
-	RUMOVE_BIGCHUNK(a1, a0, -0x80, ta0, ta1, ta3, t0)
-	RUMOVE_BIGCHUNK(a1, a0, -0x60, ta0, ta1, ta3, t0)
-	RUMOVE_BIGCHUNK(a1, a0, -0x40, ta0, ta1, ta3, t0)
-	RUMOVE_BIGCHUNK(a1, a0, -0x20, ta0, ta1, ta3, t0)
-	dsubu	t8, t8, 0x01
-	dsubu	a1, a1, 0x80
-	bnez	t8, ru_move_128bytes
-	 dsubu	a0, a0, 0x80
-
-0:
-	beqz	ta2, 1f
-	 andi	ta2, a2, 0x20
-
-ru_move_64bytes:
-	dsubu	a1, a1, 0x40
-	dsubu	a0, a0, 0x40
-	RUMOVE_BIGCHUNK(a1, a0, 0x20, ta0, ta1, ta3, t0)
-	RUMOVE_BIGCHUNK(a1, a0, 0x00, ta0, ta1, ta3, t0)
-
-1:
-	beqz	ta2, ru_do_end_words
-	 andi	t8, a2, 0x1c
-
-ru_move_32bytes:
-	dsubu	a1, a1, 0x20
-	dsubu	a0, a0, 0x20
-	RUMOVE_BIGCHUNK(a1, a0, 0x00, ta0, ta1, ta3, t0)
-	andi	t8, a2, 0x1c
-
-ru_do_end_words:
-	beqz	t8, ru_maybe_end_cruft
-	 srl	t8, t8, 0x2
-
-ru_end_words:
-	lw	ta0, -4(a1)
-	usw	ta0, -4(a0)
-	dsubu	t8, t8, 0x1
-	dsubu	a1, a1, 0x4
-	bnez	t8, ru_end_words
-	 dsubu	a0, a0, 0x4
-
-ru_maybe_end_cruft:
-	andi	ta2, a2, 0x3
-
-ru_cannot_optimize:
-	beqz	ta2, r_out
-	 move	a2, ta2
-
-ru_end_bytes:
-	lb	ta0, -1(a1)
-	dsubu	a2, a2, 0x1
-	sb	ta0, -1(a0)
-	dsubu	a1, a1, 0x1
-	bnez	a2, ru_end_bytes
-	 dsubu	a0, a0, 0x1
+	 ADD	a0, a0, 0x1
 
 	jr	ra
 	 move	a2, zero
-#endif /* Horror fix */
 	END(__rmemcpy)
-
-l_fixup:					# clear the rest of the buffer
-	ld	ta0, THREAD_BUADDR($28)
-	 nop
-	dsubu	a2, AT, ta0			# a2 bytes to go
-	daddu	a0, ta0				# compute start address in a1
-	dsubu	a0, a1
-	/*
-	 * Clear len bytes starting at dst.  Can't call __bzero because it
-	 * might modify len.  An inefficient loop for these rare times...
-	 */
-	beqz	a2, 2f
-	 dsubu	a1, a2, 1
-1:	sb	zero, 0(a0)
-	daddu	a0, a0, 1
-	bnez	a1, 1b
-	 dsubu	a1, a1, 1
-2:	jr	ra
-	 nop
-
-s_fixup:
-	jr	ra
-	 nop
diff -urNd -urNd linux-2.4.20/arch/mips64/lib/promlib.c linux-2.4.20-mipscvs-20050106/arch/mips64/lib/promlib.c
--- linux-2.4.20/arch/mips64/lib/promlib.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/lib/promlib.c	2003-01-21 23:11:38.000000000 -0600
@@ -0,0 +1,24 @@
+#include <stdarg.h>
+#include <linux/kernel.h>
+
+extern void prom_putchar(char);
+
+void prom_printf(char *fmt, ...)
+{
+	va_list args;
+	char ppbuf[1024];
+	char *bptr;
+
+	va_start(args, fmt);
+	vsprintf(ppbuf, fmt, args);
+
+	bptr = ppbuf;
+
+	while (*bptr != 0) {
+		if (*bptr == '\n')
+			prom_putchar('\r');
+
+		prom_putchar(*bptr++);
+	}
+	va_end(args);
+}
diff -urNd -urNd linux-2.4.20/arch/mips64/lib/strlen_user.S linux-2.4.20-mipscvs-20050106/arch/mips64/lib/strlen_user.S
--- linux-2.4.20/arch/mips64/lib/strlen_user.S	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/lib/strlen_user.S	2002-12-09 15:24:13.000000000 -0600
@@ -25,7 +25,7 @@
 LEAF(__strlen_user_asm)
 	ld	v0, THREAD_CURDS($28)			# pointer ok?
 	and	v0, a0
-	bltz	v0, fault
+	bnez	v0, fault
 
 FEXPORT(__strlen_user_nocheck_asm)
 	move	v0, a0
diff -urNd -urNd linux-2.4.20/arch/mips64/lib/strncpy_user.S linux-2.4.20-mipscvs-20050106/arch/mips64/lib/strncpy_user.S
--- linux-2.4.20/arch/mips64/lib/strncpy_user.S	2001-09-09 12:43:02.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/lib/strncpy_user.S	2002-12-09 15:24:13.000000000 -0600
@@ -30,7 +30,7 @@
 LEAF(__strncpy_from_user_asm)
 	ld	v0, THREAD_CURDS($28)		# pointer ok?
 	and	v0, a1
-	bltz	v0, fault
+	bnez	v0, fault
 
 FEXPORT(__strncpy_from_user_nocheck_asm)
 	move	v0, zero
diff -urNd -urNd linux-2.4.20/arch/mips64/lib/strnlen_user.S linux-2.4.20-mipscvs-20050106/arch/mips64/lib/strnlen_user.S
--- linux-2.4.20/arch/mips64/lib/strnlen_user.S	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/lib/strnlen_user.S	2002-12-09 15:24:13.000000000 -0600
@@ -25,7 +25,7 @@
 LEAF(__strnlen_user_asm)
 	ld	v0, THREAD_CURDS($28)	# pointer ok?
 	and	v0, a0
-	bltz	v0, fault
+	bnez	v0, fault
 
 FEXPORT(__strnlen_user_nocheck_asm)
 	move	v0, a0
diff -urNd -urNd linux-2.4.20/arch/mips64/Makefile linux-2.4.20-mipscvs-20050106/arch/mips64/Makefile
--- linux-2.4.20/arch/mips64/Makefile	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/Makefile	2003-02-20 12:53:40.000000000 -0600
@@ -41,8 +41,13 @@
 
 ifdef CONFIG_REMOTE_DEBUG
 GCCFLAGS	+= -g
+ifdef CONFIG_SB1XXX_CORELIS
+GCCFLAGS	+= -mno-sched-prolog -fno-omit-frame-pointer
+endif
 endif
 
+check_gcc = $(shell if $(CC) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi)
+
 #
 # CPU-dependent compiler/assembler options for optimization.
 #
@@ -65,7 +70,10 @@
 GCCFLAGS	+= -mcpu=r8000 -mips4
 endif
 ifdef CONFIG_CPU_SB1
-GCCFLAGS	+= -mcpu=r8000 -mips4
+GCCFLAGS	+= $(call check_gcc, -mcpu=sb1, -mcpu=r5000) -mips4
+ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
+MODFLAGS	+= -msb1-pass1-workarounds
+endif
 endif
 ifdef CONFIG_CPU_MIPS64
 #CFLAGS		+= -mips64	# Should be used then we get a MIPS64 compiler
@@ -78,12 +86,32 @@
 CORE_FILES	+= arch/mips/math-emu/fpu_emulator.o
 SUBDIRS		+= arch/mips/math-emu
 
+#
+# ramdisk/initrd support
+# You need a compressed ramdisk image, named ramdisk.gz in
+# arch/mips/ramdisk
+#
+ifdef CONFIG_EMBEDDED_RAMDISK
+CORE_FILES	+= arch/mips/ramdisk/ramdisk.o
+SUBDIRS		+= arch/mips/ramdisk
+endif
+
 
 #
 # Board-dependent options and extra files
 #
 
 #
+# DECstation family
+#
+ifdef CONFIG_DECSTATION
+CORE_FILES	+= arch/mips/dec/dec.o
+SUBDIRS		+= arch/mips/dec arch/mips/dec/prom
+LIBS		+= arch/mips/dec/prom/rexlib.a
+LOADADDR	:= 0x80040000
+endif
+
+#
 # MIPS Atlas board
 #
 ifdef CONFIG_MIPS_ATLAS
@@ -164,23 +192,34 @@
 endif
 
 #
-# Sibyte SB1250 SOC
+# Sibyte SB1250 SOC and Broadcom (SiByte) BCM112x SOCs
 #
-ifdef CONFIG_SIBYTE_SB1250
+ifneq ($(CONFIG_SIBYTE_SB1250)$(CONFIG_SIBYTE_BCM112X),)
 # This is a LIB so that it links at the end, and initcalls are later
 # the sequence; but it is built as an object so that modules don't get
 # removed (as happens, even if they have __initcall/module_init)
 LIBS		+= arch/mips/sibyte/sb1250/sb1250.o
 SUBDIRS		+= arch/mips/sibyte/sb1250
+ifdef CONFIG_MIPS_UNCACHED
+LOADADDR	:= 0xa0100000
+else
+LOADADDR	:= 0x80100000
+endif
 endif
 
 #
-# Sibyte SWARM board
+# Sibyte boards:
 #
-ifdef CONFIG_SIBYTE_SWARM
+# BCM91250A (SWARM),
+# BCM91250E (Sentosa),
+# BCM91120C (CRhine),
+# BCM91120x (Carmel),
+# BCM91125C (CRhone),
+# BCM91125E (Rhone).
+#
+ifdef CONFIG_SIBYTE_BOARD
 LIBS		+= arch/mips/sibyte/swarm/sbswarm.a
 SUBDIRS		+= arch/mips/sibyte/swarm
-LOADADDR	:= 0x80100000
 endif
 
 #
@@ -192,21 +231,12 @@
 endif
 
 #
-# SB1 Cache Error handler
-#
-ifdef CONFIG_SB1_CACHE_ERROR
-LIBS		+= arch/mips/sibyte/sb1/sb1kern.a
-SUBDIRS		+= arch/mips/sibyte/sb1
-endif
-
-
-#
 # Some machines like the Indy need 32-bit ELF binaries for booting purposes.
 # Other need ECOFF, so we build a 32-bit ELF binary for them which we then
 # convert to ECOFF using elf2ecoff.
 #
 ifdef CONFIG_BOOT_ELF32
-GCCFLAGS += -Wa,-32
+GCCFLAGS += -Wa,-32 $(shell if $(CC) -Wa,-mgp64 -c -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "-Wa,-mgp64"; fi)
 LINKFLAGS += -T arch/mips64/ld.script.elf32
 endif
 #
@@ -214,7 +244,7 @@
 # ELF files from 32-bit files by conversion.
 #
 ifdef CONFIG_BOOT_ELF64
-GCCFLAGS += -Wa,-32
+GCCFLAGS += -Wa,-32 $(shell if $(CC) -Wa,-mgp64 -c -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "-Wa,-mgp64"; fi)
 LINKFLAGS += -T arch/mips64/ld.script.elf32
 #AS += -64
 #LD += -m elf64bmip
@@ -237,9 +267,9 @@
 MAKEBOOT = $(MAKE) -C arch/$(ARCH)/boot
 
 ifdef CONFIG_CPU_LITTLE_ENDIAN
-64bit-bfd = elf64-littlemips
+64bit-bfd = elf64-tradlittlemips
 else
-64bit-bfd = elf64-bigmips
+64bit-bfd = elf64-tradbigmips
 endif
 
 vmlinux: arch/mips64/ld.script.elf32
@@ -248,19 +278,14 @@
 
 ifdef CONFIG_MAPPED_KERNEL
 vmlinux.64: vmlinux
-	$(OBJCOPY) -O $(64bit-bfd) --change-addresses=0xbfffffff40000000 $< $@
+	$(OBJCOPY) -O $(64bit-bfd) --remove-section=.reginfo --change-addresses=0xbfffffff40000000 $< $@
 else
 vmlinux.64: vmlinux
-	$(OBJCOPY) -O $(64bit-bfd) --change-addresses=0xa7ffffff80000000 $< $@
+	$(OBJCOPY) -O $(64bit-bfd) --remove-section=.reginfo --change-addresses=0xa800000080000000 $< $@
 endif
 
-zImage: vmlinux
-	@$(MAKEBOOT) zImage
-
-compressed: zImage
-
-zdisk: vmlinux
-	@$(MAKEBOOT) zdisk
+vmlinux.ecoff: vmlinux
+	@$(MAKEBOOT) $@
 
 archclean:
 	@$(MAKEBOOT) clean
diff -urNd -urNd linux-2.4.20/arch/mips64/mm/andes.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/andes.c
--- linux-2.4.20/arch/mips64/mm/andes.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/andes.c	1969-12-31 18:00:00.000000000 -0600
@@ -1,350 +0,0 @@
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 1997, 1998, 1999 Ralf Baechle (ralf@gnu.org)
- * Copyright (C) 1999 Silicon Graphics, Inc.
- * Copyright (C) 2000 Kanoj Sarcar (kanoj@sgi.com)
- */
-#include <linux/init.h>
-#include <linux/kernel.h>
-#include <linux/sched.h>
-#include <linux/mm.h>
-#include <asm/page.h>
-#include <asm/pgtable.h>
-#include <asm/r10kcache.h>
-#include <asm/system.h>
-#include <asm/mmu_context.h>
-
-static int scache_lsz64;
-
-/*
- * This version has been tuned on an Origin.  For other machines the arguments
- * of the pref instructin may have to be tuned differently.
- */
-static void andes_clear_page(void * page)
-{
-	__asm__ __volatile__(
-		".set\tnoreorder\n\t"
-		".set\tnoat\n\t"
-		"daddiu\t$1,%0,%2\n"
-		"1:\tpref 7,512(%0)\n\t"
-		"sd\t$0,(%0)\n\t"
-		"sd\t$0,8(%0)\n\t"
-		"sd\t$0,16(%0)\n\t"
-		"sd\t$0,24(%0)\n\t"
-		"daddiu\t%0,64\n\t"
-		"sd\t$0,-32(%0)\n\t"
-		"sd\t$0,-24(%0)\n\t"
-		"sd\t$0,-16(%0)\n\t"
-		"bne\t$1,%0,1b\n\t"
-		"sd\t$0,-8(%0)\n\t"
-		".set\tat\n\t"
-		".set\treorder"
-		: "=r" (page)
-		: "0" (page), "I" (PAGE_SIZE)
-		: "memory");
-}
-
-/* R10000 has no Create_Dirty type cacheops.  */
-static void andes_copy_page(void * to, void * from)
-{
-	unsigned long dummy1, dummy2, reg1, reg2, reg3, reg4;
-
-	__asm__ __volatile__(
-		".set\tnoreorder\n\t"
-		".set\tnoat\n\t"
-		"daddiu\t$1,%0,%8\n"
-		"1:\tpref\t0,2*128(%1)\n\t"
-		"pref\t1,2*128(%0)\n\t"
-		"ld\t%2,(%1)\n\t"
-		"ld\t%3,8(%1)\n\t"
-		"ld\t%4,16(%1)\n\t"
-		"ld\t%5,24(%1)\n\t"
-		"sd\t%2,(%0)\n\t"
-		"sd\t%3,8(%0)\n\t"
-		"sd\t%4,16(%0)\n\t"
-		"sd\t%5,24(%0)\n\t"
-		"daddiu\t%0,64\n\t"
-		"daddiu\t%1,64\n\t"
-		"ld\t%2,-32(%1)\n\t"
-		"ld\t%3,-24(%1)\n\t"
-		"ld\t%4,-16(%1)\n\t"
-		"ld\t%5,-8(%1)\n\t"
-		"sd\t%2,-32(%0)\n\t"
-		"sd\t%3,-24(%0)\n\t"
-		"sd\t%4,-16(%0)\n\t"
-		"bne\t$1,%0,1b\n\t"
-		" sd\t%5,-8(%0)\n\t"
-		".set\tat\n\t"
-		".set\treorder"
-		:"=r" (dummy1), "=r" (dummy2), "=&r" (reg1), "=&r" (reg2),
-		 "=&r" (reg3), "=&r" (reg4)
-		:"0" (to), "1" (from), "I" (PAGE_SIZE));
-}
-
-/* Cache operations.  These are only used with the virtual memory system,
-   not for non-coherent I/O so it's ok to ignore the secondary caches.  */
-static void
-andes_flush_cache_l1(void)
-{
-	blast_dcache32(); blast_icache64();
-}
-
-/*
- * This is only used during initialization time. vmalloc() also calls
- * this, but that will be changed pretty soon.
- */
-static void andes_flush_cache_l2(void)
-{
-	switch (sc_lsize()) {
-		case 64:
-			blast_scache64();
-			break;
-		case 128:
-			blast_scache128();
-			break;
-		default:
-			printk(KERN_EMERG "Unknown L2 line size\n");
-			while(1);
-	}
-}
-
-void
-andes_flush_icache_page(unsigned long page)
-{
-	if (scache_lsz64)
-		blast_scache64_page(page);
-	else
-		blast_scache128_page(page);
-}
-
-static void
-andes_flush_cache_sigtramp(unsigned long addr)
-{
-	protected_writeback_dcache_line(addr & ~(dc_lsize - 1));
-	protected_flush_icache_line(addr & ~(ic_lsize - 1));
-}
-
-#define NTLB_ENTRIES       64
-#define NTLB_ENTRIES_HALF  32
-
-void local_flush_tlb_all(void)
-{
-	unsigned long flags;
-	unsigned long old_ctx;
-	unsigned long entry;
-
-#ifdef DEBUG_TLB
-	printk("[tlball]");
-#endif
-
-	__save_and_cli(flags);
-	/* Save old context and create impossible VPN2 value */
-	old_ctx = get_entryhi() & ASID_MASK;
-	set_entryhi(CKSEG0);
-	set_entrylo0(0);
-	set_entrylo1(0);
-
-	entry = get_wired();
-
-	/* Blast 'em all away. */
-	while (entry < NTLB_ENTRIES) {
-		set_index(entry);
-		tlb_write_indexed();
-		entry++;
-	}
-	set_entryhi(old_ctx);
-	__restore_flags(flags);
-}
-
-void local_flush_tlb_mm(struct mm_struct *mm)
-{
-	if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
-		unsigned long flags;
-
-#ifdef DEBUG_TLB
-		printk("[tlbmm<%d>]", mm->context);
-#endif
-		__save_and_cli(flags);
-		get_new_mmu_context(mm, smp_processor_id());
-		if(mm == current->mm)
-			set_entryhi(CPU_CONTEXT(smp_processor_id(), mm)
-				    & ASID_MASK);
-		__restore_flags(flags);
-	}
-}
-
-void local_flush_tlb_range(struct mm_struct *mm, unsigned long start,
-                           unsigned long end)
-{
-	if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
-		unsigned long flags;
-		int size;
-
-#ifdef DEBUG_TLB
-		printk("[tlbrange<%02x,%08lx,%08lx>]",
-		       (mm->context & ASID_MASK), start, end);
-#endif
-		__save_and_cli(flags);
-		size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
-		size = (size + 1) >> 1;
-		if (size <= NTLB_ENTRIES_HALF) {
-			int oldpid = (get_entryhi() & ASID_MASK);
-			int newpid = (CPU_CONTEXT(smp_processor_id(), mm)
-				      & ASID_MASK);
-
-			start &= (PAGE_MASK << 1);
-			end += ((PAGE_SIZE << 1) - 1);
-			end &= (PAGE_MASK << 1);
-			while(start < end) {
-				int idx;
-
-				set_entryhi(start | newpid);
-				start += (PAGE_SIZE << 1);
-				tlb_probe();
-				idx = get_index();
-				set_entrylo0(0);
-				set_entrylo1(0);
-				set_entryhi(KSEG0);
-				if(idx < 0)
-					continue;
-				tlb_write_indexed();
-			}
-			set_entryhi(oldpid);
-		} else {
-			get_new_mmu_context(mm, smp_processor_id());
-			if(mm == current->mm)
-				set_entryhi(CPU_CONTEXT(smp_processor_id(), mm)
-					    & ASID_MASK);
-		}
-		__restore_flags(flags);
-	}
-}
-
-void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
-{
-	if (CPU_CONTEXT(smp_processor_id(), vma->vm_mm) != 0) {
-		unsigned long flags;
-		int oldpid, newpid, idx;
-
-#ifdef DEBUG_TLB
-		printk("[tlbpage<%d,%08lx>]", vma->vm_mm->context, page);
-#endif
-		newpid = (CPU_CONTEXT(smp_processor_id(), vma->vm_mm) &
-			  ASID_MASK);
-		page &= (PAGE_MASK << 1);
-		__save_and_cli(flags);
-		oldpid = (get_entryhi() & ASID_MASK);
-		set_entryhi(page | newpid);
-		tlb_probe();
-		idx = get_index();
-		set_entrylo0(0);
-		set_entrylo1(0);
-		set_entryhi(KSEG0);
-		if (idx < 0)
-			goto finish;
-		tlb_write_indexed();
-
-	finish:
-		set_entryhi(oldpid);
-		__restore_flags(flags);
-	}
-}
-
-/* XXX Simplify this.  On the R10000 writing a TLB entry for an virtual
-   address that already exists will overwrite the old entry and not result
-   in TLB malfunction or TLB shutdown.  */
-static void andes_update_mmu_cache(struct vm_area_struct * vma,
-                                   unsigned long address, pte_t pte)
-{
-	unsigned long flags;
-	pgd_t *pgdp;
-	pmd_t *pmdp;
-	pte_t *ptep;
-	int idx, pid;
-
-	/*
-	 * Handle debugger faulting in for debugee.
-	 */
-	if (current->active_mm != vma->vm_mm)
-		return;
-
-	pid = get_entryhi() & ASID_MASK;
-
-	if ((pid != (CPU_CONTEXT(smp_processor_id(), vma->vm_mm) & ASID_MASK))
-	    || (CPU_CONTEXT(smp_processor_id(), vma->vm_mm) == 0)) {
-		printk(KERN_WARNING
-		       "%s: Wheee, bogus tlbpid mmpid=%d tlbpid=%d\n",
-		       __FUNCTION__, (int) (CPU_CONTEXT(smp_processor_id(),
-		       vma->vm_mm) & ASID_MASK), pid);
-	}
-
-	__save_and_cli(flags);
-	address &= (PAGE_MASK << 1);
-	set_entryhi(address | (pid));
-	pgdp = pgd_offset(vma->vm_mm, address);
-	tlb_probe();
-	pmdp = pmd_offset(pgdp, address);
-	idx = get_index();
-	ptep = pte_offset(pmdp, address);
-	set_entrylo0(pte_val(*ptep++) >> 6);
-	set_entrylo1(pte_val(*ptep) >> 6);
-	set_entryhi(address | (pid));
-	if (idx < 0) {
-		tlb_write_random();
-	} else {
-		tlb_write_indexed();
-	}
-	set_entryhi(pid);
-	__restore_flags(flags);
-}
-
-void __init ld_mmu_andes(void)
-{
-	printk("Primary instruction cache %dkb, linesize %d bytes\n",
-	       icache_size >> 10, ic_lsize);
-	printk("Primary data cache %dkb, linesize %d bytes\n",
-	       dcache_size >> 10, dc_lsize);
-	printk("Secondary cache sized at %ldK, linesize %ld\n",
-	       scache_size() >> 10, sc_lsize());
-
-	_clear_page = andes_clear_page;
-	_copy_page = andes_copy_page;
-
-	_flush_cache_l1 = andes_flush_cache_l1;
-	_flush_cache_l2 = andes_flush_cache_l2;
-	_flush_cache_sigtramp = andes_flush_cache_sigtramp;
-
-	switch (sc_lsize()) {
-		case 64:
-			scache_lsz64 = 1;
-			break;
-		case 128:
-			scache_lsz64 = 0;
-			break;
-		default:
-			printk(KERN_EMERG "Unknown L2 line size\n");
-			while(1);
-	}
-
-	_update_mmu_cache = andes_update_mmu_cache;
-
-        flush_cache_l1();
-
-	/*
-	 * You should never change this register:
-	 *   - On R4600 1.7 the tlbp never hits for pages smaller than
-	 *     the value in the c0_pagemask register.
-	 *   - The entire mm handling assumes the c0_pagemask register to
-	 *     be set for 4kb pages.
-	 */
-	write_32bit_cp0_register(CP0_PAGEMASK, PM_4K);
-	write_32bit_cp0_register(CP0_FRAMEMASK, 0);
-
-        /* From this point on the ARC firmware is dead.  */
-	local_flush_tlb_all();
-
-	/* Did I tell you that ARC SUCKS?  */
-}
diff -urNd -urNd linux-2.4.20/arch/mips64/mm/c-andes.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/c-andes.c
--- linux-2.4.20/arch/mips64/mm/c-andes.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/c-andes.c	2003-02-13 19:58:54.000000000 -0600
@@ -0,0 +1,112 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * Copyright (C) 1997, 1998, 1999 Ralf Baechle (ralf@gnu.org)
+ * Copyright (C) 1999 Silicon Graphics, Inc.
+ * Copyright (C) 2000 Kanoj Sarcar (kanoj@sgi.com)
+ */
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/sched.h>
+#include <linux/mm.h>
+#include <asm/page.h>
+#include <asm/pgtable.h>
+#include <asm/r10kcache.h>
+#include <asm/system.h>
+#include <asm/mmu_context.h>
+
+static int scache_lsz64;
+
+extern void andes_clear_page(void * page);
+extern void andes_copy_page(void * to, void * from);
+
+/* Cache operations.  These are only used with the virtual memory system,
+   not for non-coherent I/O so it's ok to ignore the secondary caches.  */
+static void andes_flush_cache_l1(void)
+{
+	blast_dcache32(); blast_icache64();
+}
+
+/*
+ * This is only used during initialization time. vmalloc() also calls
+ * this, but that will be changed pretty soon.
+ */
+static void andes_flush_cache_l2(void)
+{
+	switch (sc_lsize()) {
+		case 64:
+			blast_scache64();
+			break;
+		case 128:
+			blast_scache128();
+			break;
+		default:
+			printk(KERN_EMERG "Unknown L2 line size\n");
+			while(1);
+	}
+}
+
+static void andes___flush_cache_all(void)
+{
+}
+
+static void andes_flush_cache_all(void)
+{
+	andes_flush_cache_l1();
+	andes_flush_cache_l2();
+}
+
+void andes_flush_icache_page(unsigned long page)
+{
+	if (scache_lsz64)
+		blast_scache64_page(page);
+	else
+		blast_scache128_page(page);
+}
+
+static void andes_flush_cache_sigtramp(unsigned long addr)
+{
+	protected_writeback_dcache_line(addr & ~(dc_lsize - 1));
+	protected_flush_icache_line(addr & ~(ic_lsize - 1));
+}
+
+void __init ld_mmu_andes(void)
+{
+	/* Default cache error handler for SB1 */
+	extern char except_vec2_generic;
+
+	memcpy((void *)(KSEG0 + 0x100), &except_vec2_generic, 0x80);
+	memcpy((void *)(KSEG1 + 0x100), &except_vec2_generic, 0x80);
+
+	printk("Primary instruction cache %dkb, linesize %d bytes\n",
+	       icache_size >> 10, ic_lsize);
+	printk("Primary data cache %dkb, linesize %d bytes\n",
+	       dcache_size >> 10, dc_lsize);
+	printk("Secondary cache sized at %ldK, linesize %ld\n",
+	       scache_size() >> 10, sc_lsize());
+
+	_clear_page = andes_clear_page;
+	_copy_page = andes_copy_page;
+
+	_flush_cache_all = andes_flush_cache_all;
+	___flush_cache_all = andes___flush_cache_all;
+	_flush_cache_l1 = andes_flush_cache_l1;
+	_flush_cache_l2 = andes_flush_cache_l2;
+	_flush_cache_sigtramp = andes_flush_cache_sigtramp;
+
+	switch (sc_lsize()) {
+		case 64:
+			scache_lsz64 = 1;
+			break;
+		case 128:
+			scache_lsz64 = 0;
+			break;
+		default:
+			printk(KERN_EMERG "Unknown L2 line size\n");
+			while(1);
+	}
+
+        flush_cache_l1();
+}
diff -urNd -urNd linux-2.4.20/arch/mips64/mm/cerr-sb1.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/cerr-sb1.c
--- linux-2.4.20/arch/mips64/mm/cerr-sb1.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/cerr-sb1.c	2003-02-06 17:25:13.000000000 -0600
@@ -0,0 +1,540 @@
+/*
+ * Copyright (C) 2001 Broadcom Corporation
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+#include <linux/sched.h>
+#include <asm/mipsregs.h>
+
+/* SB1 definitions */
+
+/* XXX should come from config1 XXX */
+#define SB1_CACHE_INDEX_MASK   0x1fe0
+
+#define CP0_ERRCTL_RECOVERABLE (1 << 31)
+#define CP0_ERRCTL_DCACHE      (1 << 30)
+#define CP0_ERRCTL_ICACHE      (1 << 29)
+#define CP0_ERRCTL_MULTIBUS    (1 << 23)
+#define CP0_ERRCTL_MC_TLB      (1 << 15)
+#define CP0_ERRCTL_MC_TIMEOUT  (1 << 14)
+
+#define CP0_CERRI_TAG_PARITY   (1 << 29)
+#define CP0_CERRI_DATA_PARITY  (1 << 28)
+#define CP0_CERRI_EXTERNAL     (1 << 26)
+
+#define CP0_CERRI_IDX_VALID(c) (!((c) & CP0_CERRI_EXTERNAL))
+#define CP0_CERRI_DATA         (CP0_CERRI_DATA_PARITY)
+
+#define CP0_CERRD_MULTIPLE     (1 << 31)
+#define CP0_CERRD_TAG_STATE    (1 << 30)
+#define CP0_CERRD_TAG_ADDRESS  (1 << 29)
+#define CP0_CERRD_DATA_SBE     (1 << 28)
+#define CP0_CERRD_DATA_DBE     (1 << 27)
+#define CP0_CERRD_EXTERNAL     (1 << 26)
+#define CP0_CERRD_LOAD         (1 << 25)
+#define CP0_CERRD_STORE        (1 << 24)
+#define CP0_CERRD_FILLWB       (1 << 23)
+#define CP0_CERRD_COHERENCY    (1 << 22)
+#define CP0_CERRD_DUPTAG       (1 << 21)
+
+#define CP0_CERRD_DPA_VALID(c) (!((c) & CP0_CERRD_EXTERNAL))
+#define CP0_CERRD_IDX_VALID(c) \
+   (((c) & (CP0_CERRD_LOAD | CP0_CERRD_STORE)) ? (!((c) & CP0_CERRD_EXTERNAL)) : 0)
+#define CP0_CERRD_CAUSES \
+   (CP0_CERRD_LOAD | CP0_CERRD_STORE | CP0_CERRD_FILLWB | CP0_CERRD_COHERENCY | CP0_CERRD_DUPTAG)
+#define CP0_CERRD_TYPES \
+   (CP0_CERRD_TAG_STATE | CP0_CERRD_TAG_ADDRESS | CP0_CERRD_DATA_SBE | CP0_CERRD_DATA_DBE | CP0_CERRD_EXTERNAL)
+#define CP0_CERRD_DATA         (CP0_CERRD_DATA_SBE | CP0_CERRD_DATA_DBE)
+
+static uint32_t	extract_ic(unsigned short addr, int data);
+static uint32_t	extract_dc(unsigned short addr, int data);
+
+static inline void breakout_errctl(unsigned int val)
+{
+	if (val & CP0_ERRCTL_RECOVERABLE)
+		prom_printf(" recoverable");
+	if (val & CP0_ERRCTL_DCACHE)
+		prom_printf(" dcache");
+	if (val & CP0_ERRCTL_ICACHE)
+		prom_printf(" icache");
+	if (val & CP0_ERRCTL_MULTIBUS)
+		prom_printf(" multiple-buserr");
+	prom_printf("\n");
+}
+
+static inline void breakout_cerri(unsigned int val)
+{
+	if (val & CP0_CERRI_TAG_PARITY)
+		prom_printf(" tag-parity");
+	if (val & CP0_CERRI_DATA_PARITY)
+		prom_printf(" data-parity");
+	if (val & CP0_CERRI_EXTERNAL)
+		prom_printf(" external");
+	prom_printf("\n");
+}
+
+static inline void breakout_cerrd(unsigned int val)
+{
+	switch (val & CP0_CERRD_CAUSES) {
+	case CP0_CERRD_LOAD:
+		prom_printf(" load,");
+		break;
+	case CP0_CERRD_STORE:
+		prom_printf(" store,");
+		break;
+	case CP0_CERRD_FILLWB:
+		prom_printf(" fill/wb,");
+		break;
+	case CP0_CERRD_COHERENCY:
+		prom_printf(" coherency,");
+		break;
+	case CP0_CERRD_DUPTAG:
+		prom_printf(" duptags,");
+		break;
+	default:
+		prom_printf(" NO CAUSE,");
+		break;
+	}
+	if (!(val & CP0_CERRD_TYPES))
+		prom_printf(" NO TYPE");
+	else {
+		if (val & CP0_CERRD_MULTIPLE)
+			prom_printf(" multi-err");
+		if (val & CP0_CERRD_TAG_STATE)
+			prom_printf(" tag-state");
+		if (val & CP0_CERRD_TAG_ADDRESS)
+			prom_printf(" tag-address");
+		if (val & CP0_CERRD_DATA_SBE)
+			prom_printf(" data-SBE");
+		if (val & CP0_CERRD_DATA_DBE)
+			prom_printf(" data-DBE");
+		if (val & CP0_CERRD_EXTERNAL)
+			prom_printf(" external");
+	}
+	prom_printf("\n");
+}
+
+#ifndef CONFIG_SIBYTE_BUS_WATCHER
+
+#include <asm/io.h>
+#include <asm/sibyte/sb1250.h>
+#include <asm/sibyte/sb1250_regs.h>
+#include <asm/sibyte/sb1250_scd.h>
+#include <asm/sibyte/64bit.h>
+
+static void check_bus_watcher(void)              
+{                               
+	uint32_t status, l2_err, memio_err;
+
+	/* Destructive read, clears register and interrupt */
+	status = csr_in32(IO_SPACE_BASE | A_SCD_BUS_ERR_STATUS);
+	/* Bit 31 is always on, but there's no #define for that */
+	if (status & ~(1UL << 31)) {  
+		l2_err = csr_in32(IO_SPACE_BASE | A_BUS_L2_ERRORS);
+		memio_err = csr_in32(IO_SPACE_BASE | A_BUS_MEM_IO_ERRORS);
+		prom_printf("Bus watcher error counters: %08x %08x\n", l2_err, memio_err);
+		prom_printf("\nLast recorded signature:\n");
+		prom_printf("Request %02x from %d, answered by %d with Dcode %d\n",
+		       (unsigned int)(G_SCD_BERR_TID(status) & 0x3f),
+		       (int)(G_SCD_BERR_TID(status) >> 6),
+		       (int)G_SCD_BERR_RID(status),
+		       (int)G_SCD_BERR_DCODE(status));
+	} else {		
+		prom_printf("Bus watcher indicates no error\n"); 
+	}			
+}                                       
+#else                                                    
+extern void check_bus_watcher(void);    
+#endif                                          
+                                
+asmlinkage void sb1_cache_error(void)
+{
+	uint64_t cerr_dpa;
+	uint32_t errctl, cerr_i, cerr_d, dpalo, dpahi, eepc, res;
+
+	prom_printf("Cache error exception on CPU %x:\n",
+		    (read_c0_prid() >> 25) & 0x7);
+
+	__asm__ __volatile__ (
+	"	.set	push\n\t"
+	"	.set	mips64\n\t"
+	"	.set	noat\n\t"
+	"	mfc0	%0, $26\n\t"
+	"	mfc0	%1, $27\n\t"
+	"	mfc0	%2, $27, 1\n\t"
+	"	dmfc0	$1, $27, 3\n\t"
+	"	dsrl32	%3, $1, 0 \n\t"
+	"	sll	%4, $1, 0 \n\t"
+	"	mfc0	%5, $30\n\t"
+	"	.set	pop"
+	: "=r" (errctl), "=r" (cerr_i), "=r" (cerr_d),
+	  "=r" (dpahi), "=r" (dpalo), "=r" (eepc));
+
+	cerr_dpa = (((uint64_t)dpahi) << 32) | dpalo;
+	prom_printf(" c0_errorepc ==   %08x\n", eepc);
+	prom_printf(" c0_errctl   ==   %08x", errctl);
+	breakout_errctl(errctl);
+	if (errctl & CP0_ERRCTL_ICACHE) {
+		prom_printf(" c0_cerr_i   ==   %08x", cerr_i);
+		breakout_cerri(cerr_i);
+		if (CP0_CERRI_IDX_VALID(cerr_i)) {
+			if ((eepc & SB1_CACHE_INDEX_MASK) != (cerr_i & SB1_CACHE_INDEX_MASK))
+				prom_printf(" cerr_i idx doesn't match eepc\n");
+			else {
+				res = extract_ic(cerr_i & SB1_CACHE_INDEX_MASK,
+						 (cerr_i & CP0_CERRI_DATA) != 0);
+				if (!(res & cerr_i))
+					prom_printf("...didn't see indicated icache problem\n");
+			}
+		}
+	}
+	if (errctl & CP0_ERRCTL_DCACHE) {
+		prom_printf(" c0_cerr_d   ==   %08x", cerr_d);
+		breakout_cerrd(cerr_d);
+		if (CP0_CERRD_DPA_VALID(cerr_d)) {
+			prom_printf(" c0_cerr_dpa == %010llx\n", cerr_dpa);
+			if (!CP0_CERRD_IDX_VALID(cerr_d)) {
+				res = extract_dc(cerr_dpa & SB1_CACHE_INDEX_MASK,
+						 (cerr_d & CP0_CERRD_DATA) != 0);
+				if (!(res & cerr_d))
+					prom_printf("...didn't see indicated dcache problem\n");
+			} else {
+				if ((cerr_dpa & SB1_CACHE_INDEX_MASK) != (cerr_d & SB1_CACHE_INDEX_MASK))
+					prom_printf(" cerr_d idx doesn't match cerr_dpa\n");
+				else {
+					res = extract_dc(cerr_d & SB1_CACHE_INDEX_MASK,
+							 (cerr_d & CP0_CERRD_DATA) != 0);
+					if (!(res & cerr_d))
+						prom_printf("...didn't see indicated problem\n");
+				}
+			}
+		}
+	}
+
+	check_bus_watcher();
+
+	while (1);
+	/*
+	 * This tends to make things get really ugly; let's just stall instead.
+	 *    panic("Can't handle the cache error!");
+	 */
+}
+
+
+/* Parity lookup table. */
+static const uint8_t parity[256] = {
+	0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,
+	1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,
+	1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,
+	0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,
+	1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,
+	0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,
+	0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,
+	1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0
+};
+
+/* Masks to select bits for Hamming parity, mask_72_64[i] for bit[i] */
+static const uint64_t mask_72_64[8] = {
+	0x0738C808099264FFL,
+	0x38C808099264FF07L,
+	0xC808099264FF0738L,
+	0x08099264FF0738C8L,
+	0x099264FF0738C808L,
+	0x9264FF0738C80809L,
+	0x64FF0738C8080992L,
+	0xFF0738C808099264L
+};
+
+/* Calculate the parity on a range of bits */
+static char range_parity(uint64_t dword, int max, int min)
+{
+	char parity = 0;
+	int i;
+	dword >>= min;
+	for (i=max-min; i>=0; i--) {
+		if (dword & 0x1)
+			parity = !parity;
+		dword >>= 1;
+	}
+	return parity;
+}
+
+/* Calculate the 4-bit even byte-parity for an instruction */
+static unsigned char inst_parity(uint32_t word)
+{
+	int i, j;
+	char parity = 0;
+	for (j=0; j<4; j++) {
+		char byte_parity = 0;
+		for (i=0; i<8; i++) {
+			if (word & 0x80000000)
+				byte_parity = !byte_parity;
+			word <<= 1;
+		}
+		parity <<= 1;
+		parity |= byte_parity;
+	}
+	return parity;
+}
+
+static uint32_t extract_ic(unsigned short addr, int data)
+{
+	unsigned short way;
+	int valid;
+	uint64_t taglo, va, tlo_tmp;
+	uint32_t taghi, taglolo, taglohi;
+	uint8_t lru;
+	int res = 0;
+
+	prom_printf("Icache index 0x%04x  ", addr);
+	for (way = 0; way < 4; way++) {
+		/* Index-load-tag-I */
+		__asm__ __volatile__ (
+		"	.set	push		\n\t"
+		"	.set	noreorder	\n\t"
+		"	.set	mips64		\n\t"
+		"	.set	noat		\n\t"
+		"	cache	4, 0(%3)	\n\t"
+		"	mfc0	%0, $29		\n\t"
+		"	dmfc0	$1, $28		\n\t"
+		"	dsrl32	%1, $1, 0	\n\t"
+		"	sll	%2, $1, 0	\n\t"
+		"	.set	pop"
+		: "=r" (taghi), "=r" (taglohi), "=r" (taglolo)
+		: "r" ((way << 13) | addr));
+
+		taglo = ((unsigned long long)taglohi << 32) | taglolo;
+		if (way == 0) {
+			lru = (taghi >> 14) & 0xff;
+			prom_printf("[Bank %d Set 0x%02x]  LRU > %d %d %d %d > MRU\n",
+				    ((addr >> 5) & 0x3), /* bank */
+				    ((addr >> 7) & 0x3f), /* index */
+				    (lru & 0x3),
+				    ((lru >> 2) & 0x3),
+				    ((lru >> 4) & 0x3),
+				    ((lru >> 6) & 0x3));
+		}
+		va = (taglo & 0xC0000FFFFFFFE000) | addr;
+		if ((taglo & (1 << 31)) && (((taglo >> 62) & 0x3) == 3))
+			va |= 0x3FFFF00000000000;
+		valid = ((taghi >> 29) & 1);
+		if (valid) {
+			tlo_tmp = taglo & 0xfff3ff;
+			if (((taglo >> 10) & 1) ^ range_parity(tlo_tmp, 23, 0)) {
+				prom_printf("   ** bad parity in VTag0/G/ASID\n");
+				res |= CP0_CERRI_TAG_PARITY;
+			}
+			if (((taglo >> 11) & 1) ^ range_parity(taglo, 63, 24)) {
+				prom_printf("   ** bad parity in R/VTag1\n");
+				res |= CP0_CERRI_TAG_PARITY;
+			}
+		}
+		if (valid ^ ((taghi >> 27) & 1)) {
+			prom_printf("   ** bad parity for valid bit\n");
+			res |= CP0_CERRI_TAG_PARITY;
+		}
+		prom_printf(" %d  [VA %016llx]  [Vld? %d]  raw tags: %08X-%016llX\n",
+			    way, va, valid, taghi, taglo);
+
+		if (data) {
+			uint32_t datahi, insta, instb;
+			uint8_t predecode;
+			int offset;
+
+			/* (hit all banks and ways) */
+			for (offset = 0; offset < 4; offset++) {
+				/* Index-load-data-I */
+				__asm__ __volatile__ (
+				"	.set	push\n\t"
+				"	.set	noreorder\n\t"
+				"	.set	mips64\n\t"
+				"	.set	noat\n\t"
+				"	cache	6, 0(%3)  \n\t"
+				"	mfc0	%0, $29, 1\n\t"
+				"	dmfc0  $1, $28, 1\n\t"
+				"	dsrl32 %1, $1, 0 \n\t"
+				"	sll    %2, $1, 0 \n\t"
+				"	.set	pop         \n"
+				: "=r" (datahi), "=r" (insta), "=r" (instb)
+				: "r" ((way << 13) | addr | (offset << 3)));
+				predecode = (datahi >> 8) & 0xff;
+				if (((datahi >> 16) & 1) != (uint32_t)range_parity(predecode, 7, 0)) {
+					prom_printf("   ** bad parity in predecode\n");
+					res |= CP0_CERRI_DATA_PARITY;
+				}
+				/* XXXKW should/could check predecode bits themselves */
+				if (((datahi >> 4) & 0xf) ^ inst_parity(insta)) {
+					prom_printf("   ** bad parity in instruction a\n");
+					res |= CP0_CERRI_DATA_PARITY;
+				}
+				if ((datahi & 0xf) ^ inst_parity(instb)) {
+					prom_printf("   ** bad parity in instruction b\n");
+					res |= CP0_CERRI_DATA_PARITY;
+				}
+				prom_printf("  %05X-%08X%08X", datahi, insta, instb);
+			}
+			prom_printf("\n");
+		}
+	}
+	return res;
+}
+
+/* Compute the ECC for a data doubleword */
+static uint8_t dc_ecc(uint64_t dword)
+{
+	uint64_t t;
+	uint32_t w;
+	uint8_t  p;
+	int      i;
+
+	p = 0;
+	for (i = 7; i >= 0; i--)
+	{
+		p <<= 1;
+		t = dword & mask_72_64[i];
+		w = (uint32_t)(t >> 32);
+		p ^= (parity[w>>24] ^ parity[(w>>16) & 0xFF]
+		      ^ parity[(w>>8) & 0xFF] ^ parity[w & 0xFF]);
+		w = (uint32_t)(t & 0xFFFFFFFF);
+		p ^= (parity[w>>24] ^ parity[(w>>16) & 0xFF]
+		      ^ parity[(w>>8) & 0xFF] ^ parity[w & 0xFF]);
+	}
+	return p;
+}
+
+struct dc_state {
+	unsigned char val;
+	char *name;
+};
+
+static struct dc_state dc_states[] = {
+	{ 0x00, "INVALID" },
+	{ 0x0f, "COH-SHD" },
+	{ 0x13, "NCO-E-C" },
+	{ 0x19, "NCO-E-D" },
+	{ 0x16, "COH-E-C" },
+	{ 0x1c, "COH-E-D" },
+	{ 0xff, "*ERROR*" }
+};
+
+#define DC_TAG_VALID(state) \
+    (((state) == 0xf) || ((state) == 0x13) || ((state) == 0x19) || ((state == 0x16)) || ((state) == 0x1c))
+
+static char *dc_state_str(unsigned char state)
+{
+	struct dc_state *dsc = dc_states;
+	while (dsc->val != 0xff) {
+		if (dsc->val == state)
+			break;
+		dsc++;
+	}
+	return dsc->name;
+}
+
+static uint32_t extract_dc(unsigned short addr, int data)
+{
+	int valid, way;
+	unsigned char state;
+	uint64_t taglo, pa;
+	uint32_t taghi, taglolo, taglohi;
+	uint8_t ecc, lru;
+	int res = 0;
+
+	prom_printf("Dcache index 0x%04x  ", addr);
+	for (way = 0; way < 4; way++) {
+		__asm__ __volatile__ (
+		"	.set	push\n\t"
+		"	.set	noreorder\n\t"
+		"	.set	mips64\n\t"
+		"	.set	noat\n\t"
+		"	cache	5, 0(%3)\n\t"	/* Index-load-tag-D */
+		"	mfc0	%0, $29, 2\n\t"
+		"	dmfc0	$1, $28, 2\n\t"
+		"	dsrl32	%1, $1, 0\n\t"
+		"	sll	%2, $1, 0\n\t"
+		"	.set	pop"
+		: "=r" (taghi), "=r" (taglohi), "=r" (taglolo)
+		: "r" ((way << 13) | addr));
+
+		taglo = ((unsigned long long)taglohi << 32) | taglolo;
+		pa = (taglo & 0xFFFFFFE000) | addr;
+		if (way == 0) {
+			lru = (taghi >> 14) & 0xff;
+			prom_printf("[Bank %d Set 0x%02x]  LRU > %d %d %d %d > MRU\n",
+				    ((addr >> 11) & 0x2) | ((addr >> 5) & 1), /* bank */
+				    ((addr >> 6) & 0x3f), /* index */
+				    (lru & 0x3),
+				    ((lru >> 2) & 0x3),
+				    ((lru >> 4) & 0x3),
+				    ((lru >> 6) & 0x3));
+		}
+		state = (taghi >> 25) & 0x1f;
+		valid = DC_TAG_VALID(state);
+		prom_printf(" %d  [PA %010llx]  [state %s (%02x)]  raw tags: %08X-%016llX\n",
+			    way, pa, dc_state_str(state), state, taghi, taglo);
+		if (valid) {
+			if (((taglo >> 11) & 1) ^ range_parity(taglo, 39, 26)) {
+				prom_printf("   ** bad parity in PTag1\n");
+				res |= CP0_CERRD_TAG_ADDRESS;
+			}
+			if (((taglo >> 10) & 1) ^ range_parity(taglo, 25, 13)) {
+				prom_printf("   ** bad parity in PTag0\n");
+				res |= CP0_CERRD_TAG_ADDRESS;
+			}
+		} else {
+			res |= CP0_CERRD_TAG_STATE;
+		}
+
+		if (data) {
+			uint64_t datalo;
+			uint32_t datalohi, datalolo, datahi;
+			int offset;
+
+			for (offset = 0; offset < 4; offset++) {
+				/* Index-load-data-D */
+				__asm__ __volatile__ (
+				"	.set	push\n\t"
+				"	.set	noreorder\n\t"
+				"	.set	mips64\n\t"
+				"	.set	noat\n\t"
+				"	cache	7, 0(%3)\n\t" /* Index-load-data-D */
+				"	mfc0	%0, $29, 3\n\t"
+				"	dmfc0	$1, $28, 3\n\t"
+				"	dsrl32	%1, $1, 0 \n\t"
+				"	sll	%2, $1, 0 \n\t"
+				"	.set	pop"
+				: "=r" (datahi), "=r" (datalohi), "=r" (datalolo)
+				: "r" ((way << 13) | addr | (offset << 3)));
+				datalo = ((unsigned long long)datalohi << 32) | datalolo;
+				ecc = dc_ecc(datalo);
+				if (ecc != datahi) {
+					int bits = 0;
+					prom_printf("  ** bad ECC (%02x %02x) ->",
+						    datahi, ecc);
+					ecc ^= datahi;
+					while (ecc) {
+						if (ecc & 1) bits++;
+						ecc >>= 1;
+					}
+					res |= (bits == 1) ? CP0_CERRD_DATA_SBE : CP0_CERRD_DATA_DBE;
+				}
+				prom_printf("  %02X-%016llX", datahi, datalo);
+			}
+			prom_printf("\n");
+		}
+	}
+	return res;
+}
diff -urNd -urNd linux-2.4.20/arch/mips64/mm/cex-sb1.S linux-2.4.20-mipscvs-20050106/arch/mips64/mm/cex-sb1.S
--- linux-2.4.20/arch/mips64/mm/cex-sb1.S	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/cex-sb1.S	2003-02-07 14:33:33.000000000 -0600
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2001,2002,2003 Broadcom Corporation
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+#include <linux/config.h>
+#include <linux/init.h>
+
+#include <asm/asm.h>
+#include <asm/regdef.h>
+#include <asm/mipsregs.h>
+#include <asm/stackframe.h>
+#include <asm/sibyte/board.h>
+
+	.text
+	.set	noat
+	.set	mips4
+
+        __INIT
+        
+	/* Cache Error handler for SB1 */
+	LEAF(except_vec2_sb1)
+	mfc0	k1, $26
+	# check if error was recoverable
+	bltz	k1, leave_cerr
+#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
+	# look for signature of spurious CErr
+	lui	k0, 0x4000
+	bne	k0, k1, 1f
+	.word	0x401Bd801			# mfc0	k1, $27, 1
+	lui	k0, 0xffe0
+	and	k1, k0, k1
+	lui	k0, 0x0200
+	beq	k0, k1, leave_cerr
+1:
+#endif
+	j	handle_vec2_sb1
+
+leave_cerr:
+	# clear/unlock the registers
+	mtc0	zero, $26
+	mtc0	zero, $27
+	.word	0x4080d801			# mtc0	zero, $27, 1
+	.word	0x4080d803			# mtc0	zero, $27, 3
+	eret
+	END(except_vec2_sb1)
+
+	__FINIT
+
+	LEAF(handle_vec2_sb1)
+	mfc0	k0,CP0_CONFIG
+	li	k1,~CONF_CM_CMASK
+	and	k0,k0,k1
+	ori	k0,k0,CONF_CM_UNCACHED
+	mtc0	k0,CP0_CONFIG
+
+	SSNOP
+	SSNOP
+	SSNOP
+	SSNOP
+	bnezl	$0, 1f
+1:
+	mfc0	k0, CP0_STATUS
+	sll	k0, k0, 3			# check CU0 (kernel?)
+	bltz	k0, 2f
+	get_saved_sp
+	move	sp, k1				# want Kseg SP (so uncached)
+2:
+	j	sb1_cache_error
+
+	END(handle_vec2_sb1)
diff -urNd -urNd linux-2.4.20/arch/mips64/mm/c-mips64.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/c-mips64.c
--- linux-2.4.20/arch/mips64/mm/c-mips64.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/c-mips64.c	2003-02-09 16:03:23.000000000 -0600
@@ -68,18 +68,18 @@
 {
 	unsigned long flags;
 
-	__save_and_cli(flags);
+	local_irq_save(flags);
 	blast_dcache(); blast_icache(); blast_scache();
-	__restore_flags(flags);
+	local_irq_restore(flags);
 }
 
 static inline void mips64_flush_cache_all_pc(void)
 {
 	unsigned long flags;
 
-	__save_and_cli(flags);
+	local_irq_save(flags);
 	blast_dcache(); blast_icache();
-	__restore_flags(flags);
+	local_irq_restore(flags);
 }
 
 static void
@@ -106,7 +106,7 @@
 			pmd_t *pmd;
 			pte_t *pte;
 
-			__save_and_cli(flags);
+			local_irq_save(flags);
 			while(start < end) {
 				pgd = pgd_offset(mm, start);
 				pmd = pmd_offset(pgd, start);
@@ -116,7 +116,7 @@
 					blast_scache_page(start);
 				start += PAGE_SIZE;
 			}
-			__restore_flags(flags);
+			local_irq_restore(flags);
 		}
 	}
 }
@@ -131,9 +131,9 @@
 #ifdef DEBUG_CACHE
 		printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
 #endif
-		__save_and_cli(flags);
+		local_irq_save(flags);
 		blast_dcache(); blast_icache();
-		__restore_flags(flags);
+		local_irq_restore(flags);
 	}
 }
 
@@ -181,7 +181,6 @@
 #ifdef DEBUG_CACHE
 	printk("cpage[%d,%08lx]", (int)mm->context, page);
 #endif
-	__save_and_cli(flags);
 	page &= PAGE_MASK;
 	pgdp = pgd_offset(mm, page);
 	pmdp = pmd_offset(pgdp, page);
@@ -192,7 +191,7 @@
 	 * in the cache.
 	 */
 	if (!(pte_val(*ptep) & _PAGE_VALID))
-		goto out;
+		return;
 
 	/*
 	 * Doing flushes for another ASID than the current one is
@@ -210,8 +209,6 @@
 		blast_scache_page_indexed(page);
 	} else
 		blast_scache_page(page);
-out:
-	__restore_flags(flags);
 }
 
 static void mips64_flush_cache_page_pc(struct vm_area_struct *vma,
@@ -233,7 +230,6 @@
 #ifdef DEBUG_CACHE
 	printk("cpage[%d,%08lx]", (int)mm->context, page);
 #endif
-	__save_and_cli(flags);
 	page &= PAGE_MASK;
 	pgdp = pgd_offset(mm, page);
 	pmdp = pmd_offset(pgdp, page);
@@ -244,7 +240,7 @@
 	 * in the cache.
 	 */
 	if (!(pte_val(*ptep) & _PAGE_VALID))
-		goto out;
+		return;
 
 	/*
 	 * Doing flushes for another ASID than the current one is
@@ -261,8 +257,6 @@
 		page = (KSEG0 + (page & ((unsigned long)dcache_size - 1)));
 		blast_dcache_page_indexed(page);
 	}
-out:
-	__restore_flags(flags);
 }
 
 /* If the addresses passed to these routines are valid, they are
@@ -301,13 +295,18 @@
 static void
 mips64_flush_icache_page(struct vm_area_struct *vma, struct page *page)
 {
-	unsigned long address;
-
+	/*
+	 * If there's no context yet, or the page isn't executable, no icache 
+	 * flush is needed.
+	 */
 	if (!(vma->vm_flags & VM_EXEC))
 		return;
 
-	address = KSEG0 + ((unsigned long)page_address(page) & PAGE_MASK & ((unsigned long)icache_size - 1));
-	blast_icache_page_indexed(address);
+	/*
+	 * We're not sure of the virtual address(es) involved here, so
+	 * conservatively flush the entire caches.
+	 */
+	flush_cache_all();
 }
 
 /*
@@ -322,15 +321,15 @@
 	if (size >= (unsigned long)dcache_size) {
 		blast_dcache();
 	} else {
-	        __save_and_cli(flags);
+	        local_irq_save(flags);
 		a = addr & ~(dc_lsize - 1);
-		end = (addr + size) & ~((unsigned long)dc_lsize - 1);
+		end = (addr + size - 1) & ~((unsigned long)dc_lsize - 1);
 		while (1) {
 			flush_dcache_line(a); /* Hit_Writeback_Inv_D */
 			if (a == end) break;
 			a += dc_lsize;
 		}
-		__restore_flags(flags);
+		local_irq_restore(flags);
 	}
 	bc_wback_inv(addr, size);
 }
@@ -346,7 +345,7 @@
 	}
 
 	a = addr & ~(sc_lsize - 1);
-	end = (addr + size) & ~(sc_lsize - 1);
+	end = (addr + size - 1) & ~(sc_lsize - 1);
 	while (1) {
 		flush_scache_line(a);	/* Hit_Writeback_Inv_SD */
 		if (a == end) break;
@@ -363,15 +362,15 @@
 	if (size >= (unsigned long)dcache_size) {
 		blast_dcache();
 	} else {
-	        __save_and_cli(flags);
+	        local_irq_save(flags);
 		a = addr & ~((unsigned long)dc_lsize - 1);
-		end = (addr + size) & ~((unsigned long)dc_lsize - 1);
+		end = (addr + size - 1) & ~((unsigned long)dc_lsize - 1);
 		while (1) {
 			invalidate_dcache_line(a); /* Hit_Inv_D */
 			if (a == end) break;
 			a += (unsigned long)dc_lsize;
 		}
-		__restore_flags(flags);
+		local_irq_restore(flags);
 	}
 
 	bc_inv(addr, size);
@@ -388,7 +387,7 @@
 	}
 
 	a = addr & ~(sc_lsize - 1);
-	end = (addr + size) & ~(sc_lsize - 1);
+	end = (addr + size - 1) & ~(sc_lsize - 1);
 	while (1) {
 		invalidate_scache_line(a); /* Hit_Writeback_Inv_SD */
 		if (a == end) break;
@@ -416,7 +415,7 @@
 static void
 mips64_flush_icache_all(void)
 {
-	if (mips_cpu.cputype == CPU_20KC) {
+	if (mips_cpu.icache.flags | MIPS_CACHE_VTAG_CACHE) {
 		blast_icache();
 	}
 }
@@ -428,6 +427,7 @@
         unsigned long config1;
 	unsigned int lsize;
 
+	mips_cpu.icache.flags = 0;
         if (!(config & (1 << 31))) {
 	        /*
 		 * Not a MIPS64 complainant CPU.
@@ -445,7 +445,7 @@
 		mips_cpu.icache.sets =
 			(icache_size / ic_lsize) / mips_cpu.icache.ways;
 	} else {
-	       config1 = read_mips32_cp0_config1();
+	       config1 = read_c0_config1();
 
 	       if ((lsize = ((config1 >> 19) & 7)))
 		       mips_cpu.icache.linesz = 2 << lsize;
@@ -457,6 +457,16 @@
 	       ic_lsize = mips_cpu.icache.linesz;
 	       icache_size = mips_cpu.icache.sets * mips_cpu.icache.ways *
 		             ic_lsize;
+
+	       if ((config & 0x8) || (mips_cpu.cputype == CPU_20KC)) {
+		       /* 
+			* The CPU has a virtually tagged I-cache.
+			* Some older 20Kc chips doesn't have the 'VI' bit in
+			* the config register, so we also check for 20Kc.
+			*/
+		       mips_cpu.icache.flags = MIPS_CACHE_VTAG_CACHE;
+		       printk("Virtually tagged I-cache detected\n");
+	       }
 	}
 	printk("Primary instruction cache %dkb, linesize %d bytes (%d ways)\n",
 	       icache_size >> 10, ic_lsize, mips_cpu.icache.ways);
@@ -467,6 +477,7 @@
         unsigned long config1;
 	unsigned int lsize;
 
+	mips_cpu.dcache.flags = 0;
         if (!(config & (1 << 31))) {
 	        /*
 		 * Not a MIPS64 complainant CPU.
@@ -483,7 +494,7 @@
 		mips_cpu.dcache.sets =
 			(dcache_size / dc_lsize) / mips_cpu.dcache.ways;
 	} else {
-	        config1 = read_mips32_cp0_config1();
+	        config1 = read_c0_config1();
 
 		if ((lsize = ((config1 >> 10) & 7)))
 		        mips_cpu.dcache.linesz = 2 << lsize;
@@ -542,7 +553,7 @@
 	/* This is such a bitch, you'd think they would make it
 	 * easy to do this.  Away you daemons of stupidity!
 	 */
-	__save_and_cli(flags);
+	local_irq_save(flags);
 
 	/* Fill each size-multiple cache line with a valid tag. */
 	pow2 = (64 * 1024);
@@ -553,8 +564,8 @@
 	}
 
 	/* Load first line with zero (therefore invalid) tag. */
-	set_taglo(0);
-	set_taghi(0);
+	write_c0_taglo(0);
+	write_c0_taghi(0);
 	__asm__ __volatile__("nop; nop; nop; nop;"); /* avoid the hazard */
 	__asm__ __volatile__("\n\t.set noreorder\n\t"
 			     "cache 8, (%0)\n\t"
@@ -574,11 +585,11 @@
 				     "cache 7, (%0)\n\t"
 				     ".set reorder\n\t" : : "r" (addr));
 		__asm__ __volatile__("nop; nop; nop; nop;"); /* hazard... */
-		if(!get_taglo())
+		if(!read_c0_taglo())
 			break;
 		pow2 <<= 1;
 	}
-	__restore_flags(flags);
+	local_irq_restore(flags);
 	addr -= begin;
 	printk("Secondary cache sized at %dK linesize %d bytes.\n",
 	       (int) (addr >> 10), sc_lsize);
@@ -652,9 +663,14 @@
 
 void __init ld_mmu_mips64(void)
 {
-	unsigned long config = read_32bit_cp0_register(CP0_CONFIG);
+	unsigned long config = read_c0_config();
+	extern char except_vec2_generic;
 
-	change_cp0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
+	/* Default cache error handler for SB1 */
+	memcpy((void *)(KSEG0 + 0x100), &except_vec2_generic, 0x80);
+	memcpy((void *)(KSEG1 + 0x100), &except_vec2_generic, 0x80);
+
+	change_c0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
 
 	probe_icache(config);
 	probe_dcache(config);
diff -urNd -urNd linux-2.4.20/arch/mips64/mm/c-r4k.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/c-r4k.c
--- linux-2.4.20/arch/mips64/mm/c-r4k.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/c-r4k.c	2003-02-09 16:03:23.000000000 -0600
@@ -0,0 +1,1409 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * r4xx0.c: R4000 processor variant specific MMU/Cache routines.
+ *
+ * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
+ * Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Ralf Baechle (ralf@gnu.org)
+ * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
+ */
+#include <linux/config.h>
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/sched.h>
+#include <linux/mm.h>
+
+#include <asm/bcache.h>
+#include <asm/bootinfo.h>
+#include <asm/cpu.h>
+#include <asm/io.h>
+#include <asm/page.h>
+#include <asm/pgtable.h>
+#include <asm/system.h>
+#include <asm/mmu_context.h>
+#include <asm/war.h>
+
+/* Primary cache parameters. */
+static unsigned long icache_size, dcache_size; /* Size in bytes */
+static unsigned long ic_lsize, dc_lsize;       /* LineSize in bytes */
+
+/* Secondary cache (if present) parameters. */
+static unsigned long scache_size, sc_lsize;	/* Again, in bytes */
+
+#include <asm/cacheops.h>
+#include <asm/r4kcache.h>
+
+/*
+ * Dummy cache handling routines for machines without boardcaches
+ */
+static void no_sc_noop(void) {}
+
+static struct bcache_ops no_sc_ops = {
+	(void *)no_sc_noop, (void *)no_sc_noop,
+	(void *)no_sc_noop, (void *)no_sc_noop
+};
+
+struct bcache_ops *bcops = &no_sc_ops;
+
+/*
+ * On processors with QED R4600 style two set assosicative cache
+ * this is the bit which selects the way in the cache for the
+ * indexed cachops.
+ */
+#define icache_waybit (icache_size >> 1)
+#define dcache_waybit (dcache_size >> 1)
+
+/*
+ * If you think for one second that this stuff coming up is a lot
+ * of bulky code eating too many kernel cache lines.  Think _again_.
+ *
+ * Consider:
+ * 1) Taken branches have a 3 cycle penalty on R4k
+ * 2) The branch itself is a real dead cycle on even R4600/R5000.
+ * 3) Only one of the following variants of each type is even used by
+ *    the kernel based upon the cache parameters we detect at boot time.
+ *
+ * QED.
+ */
+
+static inline void r4k_flush_cache_all_s16d16i16(void)
+{
+	blast_dcache16(); blast_icache16(); blast_scache16();
+}
+
+static inline void r4k_flush_cache_all_s32d16i16(void)
+{
+	blast_dcache16(); blast_icache16(); blast_scache32();
+}
+
+static inline void r4k_flush_cache_all_s64d16i16(void)
+{
+	blast_dcache16(); blast_icache16(); blast_scache64();
+}
+
+static inline void r4k_flush_cache_all_s128d16i16(void)
+{
+	blast_dcache16(); blast_icache16(); blast_scache128();
+}
+
+static inline void r4k_flush_cache_all_s32d32i32(void)
+{
+	blast_dcache32(); blast_icache32(); blast_scache32();
+}
+
+static inline void r4k_flush_cache_all_s64d32i32(void)
+{
+	blast_dcache32(); blast_icache32(); blast_scache64();
+}
+
+static inline void r4k_flush_cache_all_s128d32i32(void)
+{
+	blast_dcache32(); blast_icache32(); blast_scache128();
+}
+
+static inline void r4k_flush_cache_all_d16i16(void)
+{
+	blast_dcache16(); blast_icache16();
+}
+
+static inline void r4k_flush_cache_all_d32i32(void)
+{
+	blast_dcache32(); blast_icache32();
+}
+
+static void r4k_flush_cache_range_s16d16i16(struct mm_struct *mm,
+	unsigned long start, unsigned long end)
+{
+	struct vm_area_struct *vma;
+
+	if (cpu_context(smp_processor_id(), mm) == 0)
+		return;
+
+	start &= PAGE_MASK;
+	vma = find_vma(mm, start);
+	if (vma) {
+		if (cpu_context(smp_processor_id(), mm) !=
+		    cpu_context(smp_processor_id(), current->mm)) {
+			r4k_flush_cache_all_s16d16i16();
+		} else {
+			pgd_t *pgd;
+			pmd_t *pmd;
+			pte_t *pte;
+
+			while (start < end) {
+				pgd = pgd_offset(mm, start);
+				pmd = pmd_offset(pgd, start);
+				pte = pte_offset(pmd, start);
+
+				if (pte_val(*pte) & _PAGE_VALID)
+					blast_scache16_page(start);
+				start += PAGE_SIZE;
+			}
+		}
+	}
+}
+
+static void r4k_flush_cache_range_s32d16i16(struct mm_struct *mm,
+	unsigned long start, unsigned long end)
+{
+	struct vm_area_struct *vma;
+
+	if (cpu_context(smp_processor_id(), mm) == 0)
+		return;
+
+	start &= PAGE_MASK;
+	vma = find_vma(mm, start);
+	if (vma) {
+		if (cpu_context(smp_processor_id(), mm) !=
+		    cpu_context(smp_processor_id(), current->mm)) {
+			r4k_flush_cache_all_s32d16i16();
+		} else {
+			pgd_t *pgd;
+			pmd_t *pmd;
+			pte_t *pte;
+
+			while(start < end) {
+				pgd = pgd_offset(mm, start);
+				pmd = pmd_offset(pgd, start);
+				pte = pte_offset(pmd, start);
+
+				if(pte_val(*pte) & _PAGE_VALID)
+					blast_scache32_page(start);
+				start += PAGE_SIZE;
+			}
+		}
+	}
+}
+
+static void r4k_flush_cache_range_s64d16i16(struct mm_struct *mm,
+	unsigned long start, unsigned long end)
+{
+	struct vm_area_struct *vma;
+
+	if (cpu_context(smp_processor_id(), mm) == 0)
+		return;
+
+	start &= PAGE_MASK;
+	vma = find_vma(mm, start);
+	if (vma) {
+		if (cpu_context(smp_processor_id(), mm) !=
+		    cpu_context(smp_processor_id(), current->mm)) {
+			r4k_flush_cache_all_s64d16i16();
+		} else {
+			pgd_t *pgd;
+			pmd_t *pmd;
+			pte_t *pte;
+
+			while(start < end) {
+				pgd = pgd_offset(mm, start);
+				pmd = pmd_offset(pgd, start);
+				pte = pte_offset(pmd, start);
+
+				if(pte_val(*pte) & _PAGE_VALID)
+					blast_scache64_page(start);
+				start += PAGE_SIZE;
+			}
+		}
+	}
+}
+
+static void r4k_flush_cache_range_s128d16i16(struct mm_struct *mm,
+	unsigned long start, unsigned long end)
+{
+	struct vm_area_struct *vma;
+
+	if (cpu_context(smp_processor_id(), mm) == 0)
+		return;
+
+	start &= PAGE_MASK;
+	vma = find_vma(mm, start);
+	if (vma) {
+		if (cpu_context(smp_processor_id(), mm) !=
+		    cpu_context(smp_processor_id(), current->mm)) {
+			r4k_flush_cache_all_s128d16i16();
+		} else {
+			pgd_t *pgd;
+			pmd_t *pmd;
+			pte_t *pte;
+
+			while(start < end) {
+				pgd = pgd_offset(mm, start);
+				pmd = pmd_offset(pgd, start);
+				pte = pte_offset(pmd, start);
+
+				if(pte_val(*pte) & _PAGE_VALID)
+					blast_scache128_page(start);
+				start += PAGE_SIZE;
+			}
+		}
+	}
+}
+
+static void r4k_flush_cache_range_s32d32i32(struct mm_struct *mm,
+	unsigned long start, unsigned long end)
+{
+	struct vm_area_struct *vma;
+
+	if (cpu_context(smp_processor_id(), mm) == 0)
+		return;
+
+	start &= PAGE_MASK;
+	vma = find_vma(mm, start);
+	if (vma) {
+		if (cpu_context(smp_processor_id(), mm) !=
+		    cpu_context(smp_processor_id(), current->mm)) {
+			r4k_flush_cache_all_s32d32i32();
+		} else {
+			pgd_t *pgd;
+			pmd_t *pmd;
+			pte_t *pte;
+
+			while(start < end) {
+				pgd = pgd_offset(mm, start);
+				pmd = pmd_offset(pgd, start);
+				pte = pte_offset(pmd, start);
+
+				if(pte_val(*pte) & _PAGE_VALID)
+					blast_scache32_page(start);
+				start += PAGE_SIZE;
+			}
+		}
+	}
+}
+
+static void r4k_flush_cache_range_s64d32i32(struct mm_struct *mm,
+	unsigned long start, unsigned long end)
+{
+	struct vm_area_struct *vma;
+
+	if (cpu_context(smp_processor_id(), mm) == 0)
+		return;
+
+	start &= PAGE_MASK;
+	vma = find_vma(mm, start);
+	if (vma) {
+		if (cpu_context(smp_processor_id(), mm) !=
+		    cpu_context(smp_processor_id(), current->mm)) {
+			r4k_flush_cache_all_s64d32i32();
+		} else {
+			pgd_t *pgd;
+			pmd_t *pmd;
+			pte_t *pte;
+
+			while(start < end) {
+				pgd = pgd_offset(mm, start);
+				pmd = pmd_offset(pgd, start);
+				pte = pte_offset(pmd, start);
+
+				if(pte_val(*pte) & _PAGE_VALID)
+					blast_scache64_page(start);
+				start += PAGE_SIZE;
+			}
+		}
+	}
+}
+
+static void r4k_flush_cache_range_s128d32i32(struct mm_struct *mm,
+	unsigned long start, unsigned long end)
+{
+	struct vm_area_struct *vma;
+
+	if (cpu_context(smp_processor_id(), mm) == 0)
+		return;
+
+	start &= PAGE_MASK;
+	vma = find_vma(mm, start);
+	if (vma) {
+		if (cpu_context(smp_processor_id(), mm) !=
+		    cpu_context(smp_processor_id(), current->mm)) {
+			r4k_flush_cache_all_s128d32i32();
+		} else {
+			pgd_t *pgd;
+			pmd_t *pmd;
+			pte_t *pte;
+
+			while(start < end) {
+				pgd = pgd_offset(mm, start);
+				pmd = pmd_offset(pgd, start);
+				pte = pte_offset(pmd, start);
+
+				if(pte_val(*pte) & _PAGE_VALID)
+					blast_scache128_page(start);
+				start += PAGE_SIZE;
+			}
+		}
+	}
+}
+
+static void r4k_flush_cache_range_d16i16(struct mm_struct *mm,
+	unsigned long start, unsigned long end)
+{
+	if (cpu_context(smp_processor_id(), mm) != 0) {
+		blast_dcache16(); blast_icache16();
+	}
+}
+
+static void r4k_flush_cache_range_d32i32(struct mm_struct *mm,
+	unsigned long start, unsigned long end)
+{
+	if (cpu_context(smp_processor_id(), mm) != 0) {
+		blast_dcache32(); blast_icache32();
+	}
+}
+
+/*
+ * On architectures like the Sparc, we could get rid of lines in
+ * the cache created only by a certain context, but on the MIPS
+ * (and actually certain Sparc's) we cannot.
+ */
+static void r4k_flush_cache_mm_s16d16i16(struct mm_struct *mm)
+{
+	if (cpu_context(smp_processor_id(), mm) != 0) {
+		r4k_flush_cache_all_s16d16i16();
+	}
+}
+
+static void r4k_flush_cache_mm_s32d16i16(struct mm_struct *mm)
+{
+	if (cpu_context(smp_processor_id(), mm) != 0) {
+		r4k_flush_cache_all_s32d16i16();
+	}
+}
+
+static void r4k_flush_cache_mm_s64d16i16(struct mm_struct *mm)
+{
+	if (cpu_context(smp_processor_id(), mm) != 0) {
+		r4k_flush_cache_all_s64d16i16();
+	}
+}
+
+static void r4k_flush_cache_mm_s128d16i16(struct mm_struct *mm)
+{
+	if (cpu_context(smp_processor_id(), mm) != 0) {
+		r4k_flush_cache_all_s128d16i16();
+	}
+}
+
+static void r4k_flush_cache_mm_s32d32i32(struct mm_struct *mm)
+{
+	if (cpu_context(smp_processor_id(), mm) != 0) {
+		r4k_flush_cache_all_s32d32i32();
+	}
+}
+
+static void r4k_flush_cache_mm_s64d32i32(struct mm_struct *mm)
+{
+	if (cpu_context(smp_processor_id(), mm) != 0) {
+		r4k_flush_cache_all_s64d32i32();
+	}
+}
+
+static void r4k_flush_cache_mm_s128d32i32(struct mm_struct *mm)
+{
+	if (cpu_context(smp_processor_id(), mm) != 0) {
+		r4k_flush_cache_all_s128d32i32();
+	}
+}
+
+static void r4k_flush_cache_mm_d16i16(struct mm_struct *mm)
+{
+	if (cpu_context(smp_processor_id(), mm) != 0) {
+		r4k_flush_cache_all_d16i16();
+	}
+}
+
+static void r4k_flush_cache_mm_d32i32(struct mm_struct *mm)
+{
+	if (cpu_context(smp_processor_id(), mm) != 0) {
+		r4k_flush_cache_all_d32i32();
+	}
+}
+
+static void r4k_flush_cache_page_s16d16i16(struct vm_area_struct *vma,
+					   unsigned long page)
+{
+	struct mm_struct *mm = vma->vm_mm;
+	pgd_t *pgdp;
+	pmd_t *pmdp;
+	pte_t *ptep;
+
+	/*
+	 * If ownes no valid ASID yet, cannot possibly have gotten
+	 * this page into the cache.
+	 */
+	if (cpu_context(smp_processor_id(), mm) == 0)
+		return;
+
+	page &= PAGE_MASK;
+	pgdp = pgd_offset(mm, page);
+	pmdp = pmd_offset(pgdp, page);
+	ptep = pte_offset(pmdp, page);
+
+	/*
+	 * If the page isn't marked valid, the page cannot possibly be
+	 * in the cache.
+	 */
+	if (!(pte_val(*ptep) & _PAGE_VALID))
+		return;
+
+	/*
+	 * Doing flushes for another ASID than the current one is
+	 * too difficult since stupid R4k caches do a TLB translation
+	 * for every cache flush operation.  So we do indexed flushes
+	 * in that case, which doesn't overly flush the cache too much.
+	 */
+	if (cpu_context(smp_processor_id(), mm) !=
+	    cpu_context(smp_processor_id(), current->mm)) {
+		/*
+		 * Do indexed flush, too much work to get the (possible)
+		 * tlb refills to work correctly.
+		 */
+		page = (KSEG0 + (page & (scache_size - 1)));
+		blast_dcache16_page_indexed(page);
+		blast_scache16_page_indexed(page);
+	} else
+		blast_scache16_page(page);
+}
+
+static void r4k_flush_cache_page_s32d16i16(struct vm_area_struct *vma,
+					   unsigned long page)
+{
+	struct mm_struct *mm = vma->vm_mm;
+	pgd_t *pgdp;
+	pmd_t *pmdp;
+	pte_t *ptep;
+
+	/*
+	 * If ownes no valid ASID yet, cannot possibly have gotten
+	 * this page into the cache.
+	 */
+	if (cpu_context(smp_processor_id(), mm) == 0)
+		return;
+
+	page &= PAGE_MASK;
+	pgdp = pgd_offset(mm, page);
+	pmdp = pmd_offset(pgdp, page);
+	ptep = pte_offset(pmdp, page);
+
+	/* If the page isn't marked valid, the page cannot possibly be
+	 * in the cache.
+	 */
+	if (!(pte_val(*ptep) & _PAGE_VALID))
+		return;
+
+	/*
+	 * Doing flushes for another ASID than the current one is
+	 * too difficult since stupid R4k caches do a TLB translation
+	 * for every cache flush operation.  So we do indexed flushes
+	 * in that case, which doesn't overly flush the cache too much.
+	 */
+	if (cpu_context(smp_processor_id(), mm) !=
+	    cpu_context(smp_processor_id(), current->mm)) {
+		/*
+		 * Do indexed flush, too much work to get the (possible)
+		 * tlb refills to work correctly.
+		 */
+		page = (KSEG0 + (page & (scache_size - 1)));
+		blast_dcache16_page_indexed(page);
+		blast_scache32_page_indexed(page);
+	} else
+		blast_scache32_page(page);
+}
+
+static void r4k_flush_cache_page_s64d16i16(struct vm_area_struct *vma,
+					   unsigned long page)
+{
+	struct mm_struct *mm = vma->vm_mm;
+	pgd_t *pgdp;
+	pmd_t *pmdp;
+	pte_t *ptep;
+
+	/*
+	 * If ownes no valid ASID yet, cannot possibly have gotten
+	 * this page into the cache.
+	 */
+	if (cpu_context(smp_processor_id(), mm) == 0)
+		return;
+
+	page &= PAGE_MASK;
+	pgdp = pgd_offset(mm, page);
+	pmdp = pmd_offset(pgdp, page);
+	ptep = pte_offset(pmdp, page);
+
+	/* If the page isn't marked valid, the page cannot possibly be
+	 * in the cache.
+	 */
+	if (!(pte_val(*ptep) & _PAGE_VALID))
+		return;
+
+	/*
+	 * Doing flushes for another ASID than the current one is
+	 * too difficult since stupid R4k caches do a TLB translation
+	 * for every cache flush operation.  So we do indexed flushes
+	 * in that case, which doesn't overly flush the cache too much.
+	 */
+	if (cpu_context(smp_processor_id(), mm) !=
+	    cpu_context(smp_processor_id(), current->mm)) {
+		/*
+		 * Do indexed flush, too much work to get the (possible)
+		 * tlb refills to work correctly.
+		 */
+		page = (KSEG0 + (page & (scache_size - 1)));
+		blast_dcache16_page_indexed(page);
+		blast_scache64_page_indexed(page);
+	} else
+		blast_scache64_page(page);
+}
+
+static void r4k_flush_cache_page_s128d16i16(struct vm_area_struct *vma,
+					    unsigned long page)
+{
+	struct mm_struct *mm = vma->vm_mm;
+	pgd_t *pgdp;
+	pmd_t *pmdp;
+	pte_t *ptep;
+
+	/*
+	 * If ownes no valid ASID yet, cannot possibly have gotten
+	 * this page into the cache.
+	 */
+	if (cpu_context(smp_processor_id(), mm) == 0)
+		return;
+
+	page &= PAGE_MASK;
+	pgdp = pgd_offset(mm, page);
+	pmdp = pmd_offset(pgdp, page);
+	ptep = pte_offset(pmdp, page);
+
+	/*
+	 * If the page isn't marked valid, the page cannot possibly be
+	 * in the cache.
+	 */
+	if (!(pte_val(*ptep) & _PAGE_VALID))
+		return;
+
+	/*
+	 * Doing flushes for another ASID than the current one is
+	 * too difficult since stupid R4k caches do a TLB translation
+	 * for every cache flush operation.  So we do indexed flushes
+	 * in that case, which doesn't overly flush the cache too much.
+	 */
+	if (cpu_context(smp_processor_id(), mm) !=
+	    cpu_context(smp_processor_id(), current->mm)) {
+		/*
+		 * Do indexed flush, too much work to get the (possible)
+		 * tlb refills to work correctly.
+		 */
+		page = (KSEG0 + (page & (scache_size - 1)));
+		blast_dcache16_page_indexed(page);
+		blast_scache128_page_indexed(page);
+	} else
+		blast_scache128_page(page);
+}
+
+static void r4k_flush_cache_page_s32d32i32(struct vm_area_struct *vma,
+					   unsigned long page)
+{
+	struct mm_struct *mm = vma->vm_mm;
+	pgd_t *pgdp;
+	pmd_t *pmdp;
+	pte_t *ptep;
+
+	/*
+	 * If ownes no valid ASID yet, cannot possibly have gotten
+	 * this page into the cache.
+	 */
+	if (cpu_context(smp_processor_id(), mm) == 0)
+		return;
+
+	page &= PAGE_MASK;
+	pgdp = pgd_offset(mm, page);
+	pmdp = pmd_offset(pgdp, page);
+	ptep = pte_offset(pmdp, page);
+
+	/*
+	 * If the page isn't marked valid, the page cannot possibly be
+	 * in the cache.
+	 */
+	if (!(pte_val(*ptep) & _PAGE_VALID))
+		return;
+
+	/*
+	 * Doing flushes for another ASID than the current one is
+	 * too difficult since stupid R4k caches do a TLB translation
+	 * for every cache flush operation.  So we do indexed flushes
+	 * in that case, which doesn't overly flush the cache too much.
+	 */
+	if (cpu_context(smp_processor_id(), mm) !=
+	    cpu_context(smp_processor_id(), current->mm)) {
+		/*
+		 * Do indexed flush, too much work to get the (possible)
+		 * tlb refills to work correctly.
+		 */
+		page = (KSEG0 + (page & (scache_size - 1)));
+		blast_dcache32_page_indexed(page);
+		blast_scache32_page_indexed(page);
+	} else
+		blast_scache32_page(page);
+}
+
+static void r4k_flush_cache_page_s64d32i32(struct vm_area_struct *vma,
+					   unsigned long page)
+{
+	struct mm_struct *mm = vma->vm_mm;
+	pgd_t *pgdp;
+	pmd_t *pmdp;
+	pte_t *ptep;
+
+	/*
+	 * If ownes no valid ASID yet, cannot possibly have gotten
+	 * this page into the cache.
+	 */
+	if (cpu_context(smp_processor_id(), mm) == 0)
+		return;
+
+	page &= PAGE_MASK;
+	pgdp = pgd_offset(mm, page);
+	pmdp = pmd_offset(pgdp, page);
+	ptep = pte_offset(pmdp, page);
+
+	/*
+	 * If the page isn't marked valid, the page cannot possibly be
+	 * in the cache.
+	 */
+	if (!(pte_val(*ptep) & _PAGE_VALID))
+		return;
+
+	/*
+	 * Doing flushes for another ASID than the current one is
+	 * too difficult since stupid R4k caches do a TLB translation
+	 * for every cache flush operation.  So we do indexed flushes
+	 * in that case, which doesn't overly flush the cache too much.
+	 */
+	if (cpu_context(smp_processor_id(), mm) !=
+	    cpu_context(smp_processor_id(), current->mm)) {
+		/*
+		 * Do indexed flush, too much work to get the (possible)
+		 * tlb refills to work correctly.
+		 */
+		page = (KSEG0 + (page & (scache_size - 1)));
+		blast_dcache32_page_indexed(page);
+		blast_scache64_page_indexed(page);
+	} else
+		blast_scache64_page(page);
+}
+
+static void r4k_flush_cache_page_s128d32i32(struct vm_area_struct *vma,
+					    unsigned long page)
+{
+	struct mm_struct *mm = vma->vm_mm;
+	pgd_t *pgdp;
+	pmd_t *pmdp;
+	pte_t *ptep;
+
+	/*
+	 * If ownes no valid ASID yet, cannot possibly have gotten
+	 * this page into the cache.
+	 */
+	if (cpu_context(smp_processor_id(), mm) == 0)
+		return;
+
+	page &= PAGE_MASK;
+	pgdp = pgd_offset(mm, page);
+	pmdp = pmd_offset(pgdp, page);
+	ptep = pte_offset(pmdp, page);
+
+	/*
+	 * If the page isn't marked valid, the page cannot possibly be
+	 * in the cache.
+	 */
+	if (!(pte_val(*ptep) & _PAGE_VALID))
+		return;
+
+	/*
+	 * Doing flushes for another ASID than the current one is
+	 * too difficult since stupid R4k caches do a TLB translation
+	 * for every cache flush operation.  So we do indexed flushes
+	 * in that case, which doesn't overly flush the cache too much.
+	 */
+	if (cpu_context(smp_processor_id(), mm) !=
+	    cpu_context(smp_processor_id(), current->mm)) {
+		/* Do indexed flush, too much work to get the (possible)
+		 * tlb refills to work correctly.
+		 */
+		page = (KSEG0 + (page & (scache_size - 1)));
+		blast_dcache32_page_indexed(page);
+		blast_scache128_page_indexed(page);
+	} else
+		blast_scache128_page(page);
+}
+
+static void r4k_flush_cache_page_d16i16(struct vm_area_struct *vma,
+					unsigned long page)
+{
+	struct mm_struct *mm = vma->vm_mm;
+	pgd_t *pgdp;
+	pmd_t *pmdp;
+	pte_t *ptep;
+
+	/*
+	 * If ownes no valid ASID yet, cannot possibly have gotten
+	 * this page into the cache.
+	 */
+	if (cpu_context(smp_processor_id(), mm) == 0)
+		return;
+
+	page &= PAGE_MASK;
+	pgdp = pgd_offset(mm, page);
+	pmdp = pmd_offset(pgdp, page);
+	ptep = pte_offset(pmdp, page);
+
+	/*
+	 * If the page isn't marked valid, the page cannot possibly be
+	 * in the cache.
+	 */
+	if (!(pte_val(*ptep) & _PAGE_VALID))
+		return;
+
+	/*
+	 * Doing flushes for another ASID than the current one is
+	 * too difficult since stupid R4k caches do a TLB translation
+	 * for every cache flush operation.  So we do indexed flushes
+	 * in that case, which doesn't overly flush the cache too much.
+	 */
+	if (mm == current->active_mm) {
+		blast_dcache16_page(page);
+	} else {
+		/* Do indexed flush, too much work to get the (possible)
+		 * tlb refills to work correctly.
+		 */
+		page = (KSEG0 + (page & (dcache_size - 1)));
+		blast_dcache16_page_indexed(page);
+	}
+}
+
+static void r4k_flush_cache_page_d32i32(struct vm_area_struct *vma,
+					unsigned long page)
+{
+	struct mm_struct *mm = vma->vm_mm;
+	pgd_t *pgdp;
+	pmd_t *pmdp;
+	pte_t *ptep;
+
+	/*
+	 * If ownes no valid ASID yet, cannot possibly have gotten
+	 * this page into the cache.
+	 */
+	if (cpu_context(smp_processor_id(), mm) == 0)
+		return;
+
+	page &= PAGE_MASK;
+	pgdp = pgd_offset(mm, page);
+	pmdp = pmd_offset(pgdp, page);
+	ptep = pte_offset(pmdp, page);
+
+	/*
+	 * If the page isn't marked valid, the page cannot possibly be
+	 * in the cache.
+	 */
+	if (!(pte_val(*ptep) & _PAGE_PRESENT))
+		return;
+
+	/*
+	 * Doing flushes for another ASID than the current one is
+	 * too difficult since stupid R4k caches do a TLB translation
+	 * for every cache flush operation.  So we do indexed flushes
+	 * in that case, which doesn't overly flush the cache too much.
+	 */
+	if ((mm == current->active_mm) && (pte_val(*ptep) & _PAGE_VALID)) {
+		blast_dcache32_page(page);
+	} else {
+		/*
+		 * Do indexed flush, too much work to get the (possible)
+		 * tlb refills to work correctly.
+		 */
+		page = (KSEG0 + (page & (dcache_size - 1)));
+		blast_dcache32_page_indexed(page);
+	}
+}
+
+static void r4k_flush_cache_page_d32i32_r4600(struct vm_area_struct *vma,
+					      unsigned long page)
+{
+	struct mm_struct *mm = vma->vm_mm;
+	pgd_t *pgdp;
+	pmd_t *pmdp;
+	pte_t *ptep;
+
+	/*
+	 * If ownes no valid ASID yet, cannot possibly have gotten
+	 * this page into the cache.
+	 */
+	if (cpu_context(smp_processor_id(), mm) == 0)
+		return;
+
+	page &= PAGE_MASK;
+	pgdp = pgd_offset(mm, page);
+	pmdp = pmd_offset(pgdp, page);
+	ptep = pte_offset(pmdp, page);
+
+	/*
+	 * If the page isn't marked valid, the page cannot possibly be
+	 * in the cache.
+	 */
+	if (!(pte_val(*ptep) & _PAGE_PRESENT))
+		return;
+
+	/*
+	 * Doing flushes for another ASID than the current one is
+	 * too difficult since stupid R4k caches do a TLB translation
+	 * for every cache flush operation.  So we do indexed flushes
+	 * in that case, which doesn't overly flush the cache too much.
+	 */
+	if ((mm == current->active_mm) && (pte_val(*ptep) & _PAGE_VALID)) {
+		blast_dcache32_page(page);
+	} else {
+		/* Do indexed flush, too much work to get the (possible)
+		 * tlb refills to work correctly.
+		 */
+		page = (KSEG0 + (page & (dcache_size - 1)));
+		blast_dcache32_page_indexed(page);
+		blast_dcache32_page_indexed(page ^ dcache_waybit);
+	}
+}
+
+static void r4k_flush_page_to_ram_s16(struct page *page)
+{
+	blast_scache16_page((unsigned long)page_address(page));
+}
+
+static void r4k_flush_page_to_ram_s32(struct page *page)
+{
+	blast_scache32_page((unsigned long)page_address(page));
+}
+
+static void r4k_flush_page_to_ram_s64(struct page *page)
+{
+	blast_scache64_page((unsigned long)page_address(page));
+}
+
+static void r4k_flush_page_to_ram_s128(struct page *page)
+{
+	blast_scache128_page((unsigned long)page_address(page));
+}
+
+static void r4k_flush_page_to_ram_d16(struct page *page)
+{
+	blast_dcache16_page((unsigned long)page_address(page));
+}
+
+static void r4k_flush_page_to_ram_d32(struct page *page)
+{
+	blast_dcache32_page((unsigned long)page_address(page));
+}
+
+static void r4k_flush_page_to_ram_d32_r4600(struct page *page)
+{
+#ifdef R4600_V1_HIT_DCACHE_WAR
+	unsigned long flags;
+
+	local_irq_save(flags);
+	__asm__ __volatile__("nop;nop;nop;nop");
+#endif
+	blast_dcache32_page((unsigned long)page_address(page));
+#ifdef R4600_V1_HIT_DCACHE_WAR
+	local_irq_restore(flags);
+#endif
+}
+
+static void r4k_flush_icache_range(unsigned long start, unsigned long end)
+{
+	flush_cache_all();
+}
+
+static void r4k_flush_icache_page_s(struct vm_area_struct *vma,
+	struct page *page)
+{
+	/*
+	 * We did an scache flush therefore PI is already clean.
+	 */
+}
+
+/*
+ * Ok, this seriously sucks.  We use them to flush a user page but don't
+ * know the virtual address, so we have to blast away the whole icache
+ * which is significantly more expensive than the real thing.
+ */
+static void r4k_flush_icache_page_p(struct vm_area_struct *vma,
+	struct page *page)
+{
+	if (!(vma->vm_flags & VM_EXEC))
+		return;
+
+	flush_cache_all();
+}
+
+static void r4k_dma_cache_wback_inv_pc(unsigned long addr, unsigned long size)
+{
+	unsigned long end, a;
+
+	if (size >= dcache_size) {
+		flush_cache_all();
+	} else {
+#ifdef R4600_V2_HIT_CACHEOP_WAR
+		unsigned long flags;
+
+		/* Workaround for R4600 bug.  See comment in <asm/war>. */
+		local_irq_save(flags);
+		*(volatile unsigned long *)KSEG1;
+#endif
+
+		a = addr & ~(dc_lsize - 1);
+		end = (addr + size - 1) & ~(dc_lsize - 1);
+		while (1) {
+			flush_dcache_line(a);	/* Hit_Writeback_Inv_D */
+			if (a == end) break;
+			a += dc_lsize;
+		}
+#ifdef R4600_V2_HIT_CACHEOP_WAR
+		local_irq_restore(flags);
+#endif
+	}
+
+	bc_wback_inv(addr, size);
+}
+
+static void r4k_dma_cache_wback_inv_sc(unsigned long addr, unsigned long size)
+{
+	unsigned long end, a;
+
+	if (size >= scache_size) {
+		flush_cache_all();
+		return;
+	}
+
+	a = addr & ~(sc_lsize - 1);
+	end = (addr + size - 1) & ~(sc_lsize - 1);
+	while (1) {
+		flush_scache_line(a);	/* Hit_Writeback_Inv_SD */
+		if (a == end) break;
+		a += sc_lsize;
+	}
+}
+
+static void r4k_dma_cache_inv_pc(unsigned long addr, unsigned long size)
+{
+	unsigned long end, a;
+
+	if (size >= dcache_size) {
+		flush_cache_all();
+	} else {
+#ifdef R4600_V2_HIT_CACHEOP_WAR
+		unsigned long flags;
+
+		/* Workaround for R4600 bug.  See comment in <asm/war>. */
+		local_irq_save(flags);
+		*(volatile unsigned long *)KSEG1;
+#endif
+
+		a = addr & ~(dc_lsize - 1);
+		end = (addr + size - 1) & ~(dc_lsize - 1);
+		while (1) {
+			flush_dcache_line(a);	/* Hit_Writeback_Inv_D */
+			if (a == end) break;
+			a += dc_lsize;
+		}
+#ifdef R4600_V2_HIT_CACHEOP_WAR
+		local_irq_restore(flags);
+#endif
+	}
+
+	bc_inv(addr, size);
+}
+
+static void r4k_dma_cache_inv_sc(unsigned long addr, unsigned long size)
+{
+	unsigned long end, a;
+
+	if (size >= scache_size) {
+		flush_cache_all();
+		return;
+	}
+
+	a = addr & ~(sc_lsize - 1);
+	end = (addr + size - 1) & ~(sc_lsize - 1);
+	while (1) {
+		flush_scache_line(a);	/* Hit_Writeback_Inv_SD */
+		if (a == end) break;
+		a += sc_lsize;
+	}
+}
+
+/*
+ * While we're protected against bad userland addresses we don't care
+ * very much about what happens in that case.  Usually a segmentation
+ * fault will dump the process later on anyway ...
+ */
+static void r4k_flush_cache_sigtramp(unsigned long addr)
+{
+#ifdef R4600_V1_HIT_DCACHE_WAR
+	unsigned long flags;
+
+	local_irq_save(flags);
+	__asm__ __volatile__("nop;nop;nop;nop");
+#endif
+
+	protected_writeback_dcache_line(addr & ~(dc_lsize - 1));
+	protected_flush_icache_line(addr & ~(ic_lsize - 1));
+
+#ifdef R4600_V1_HIT_DCACHE_WAR
+	local_irq_restore(flags);
+#endif
+}
+
+static void r4600v20k_flush_cache_sigtramp(unsigned long addr)
+{
+#ifdef R4600_V2_HIT_CACHEOP_WAR
+	unsigned long flags;
+
+	local_irq_save(flags);
+
+	/* Clear internal cache refill buffer */
+	*(volatile unsigned int *)KSEG1;
+#endif
+
+	protected_writeback_dcache_line(addr & ~(dc_lsize - 1));
+	protected_flush_icache_line(addr & ~(ic_lsize - 1));
+
+#ifdef R4600_V2_HIT_CACHEOP_WAR
+	local_irq_restore(flags);
+#endif
+}
+
+static void r4k_flush_cache_l2(void)
+{
+}
+
+static void __init probe_icache(unsigned long config)
+{
+	switch (mips_cpu.cputype) {
+	case CPU_VR41XX:
+	case CPU_VR4111:
+	case CPU_VR4121:
+	case CPU_VR4122:
+	case CPU_VR4131:
+	case CPU_VR4181:
+	case CPU_VR4181A:
+		icache_size = 1 << (10 + ((config >> 9) & 7));
+		break;
+	default:
+		icache_size = 1 << (12 + ((config >> 9) & 7));
+		break;
+	}
+	ic_lsize = 16 << ((config >> 5) & 1);
+
+	printk("Primary instruction cache %ldK, linesize %ld bytes.\n",
+	       icache_size >> 10, ic_lsize);
+}
+
+static void __init probe_dcache(unsigned long config)
+{
+	switch (mips_cpu.cputype) {
+	case CPU_VR41XX:
+	case CPU_VR4111:
+	case CPU_VR4121:
+	case CPU_VR4122:
+	case CPU_VR4131:
+	case CPU_VR4181:
+	case CPU_VR4181A:
+		dcache_size = 1 << (10 + ((config >> 6) & 7));
+		break;
+	default:
+		dcache_size = 1 << (12 + ((config >> 6) & 7));
+		break;
+	}
+	dc_lsize = 16 << ((config >> 4) & 1);
+
+	printk("Primary data cache %ldK, linesize %ld bytes.\n",
+	       dcache_size >> 10, dc_lsize);
+}
+
+/*
+ * If you even _breathe_ on this function, look at the gcc output and make sure
+ * it does not pop things on and off the stack for the cache sizing loop that
+ * executes in KSEG1 space or else you will crash and burn badly.  You have
+ * been warned.
+ */
+static int __init probe_scache(unsigned long config)
+{
+	extern unsigned long stext;
+	unsigned long flags, addr, begin, end, pow2;
+	int tmp;
+
+	tmp = ((config >> 17) & 1);
+	if(tmp)
+		return 0;
+	tmp = ((config >> 22) & 3);
+	switch(tmp) {
+	case 0:
+		sc_lsize = 16;
+		break;
+	case 1:
+		sc_lsize = 32;
+		break;
+	case 2:
+		sc_lsize = 64;
+		break;
+	case 3:
+		sc_lsize = 128;
+		break;
+	}
+
+	begin = (unsigned long) &stext;
+	begin &= ~((4 * 1024 * 1024) - 1);
+	end = begin + (4 * 1024 * 1024);
+
+	/*
+	 * This is such a bitch, you'd think they would make it easy to do
+	 * this.  Away you daemons of stupidity!
+	 */
+	local_irq_save(flags);
+
+	/* Fill each size-multiple cache line with a valid tag. */
+	pow2 = (64 * 1024);
+	for (addr = begin; addr < end; addr = (begin + pow2)) {
+		unsigned long *p = (unsigned long *) addr;
+		__asm__ __volatile__("nop" : : "r" (*p)); /* whee... */
+		pow2 <<= 1;
+	}
+
+	/* Load first line with zero (therefore invalid) tag. */
+	write_c0_taglo(0);
+	write_c0_taghi(0);
+	__asm__ __volatile__("nop; nop; nop; nop;"); /* avoid the hazard */
+	cache_op(Index_Store_Tag_I, begin);
+	cache_op(Index_Store_Tag_D, begin);
+	cache_op(Index_Store_Tag_SD, begin);
+
+	/* Now search for the wrap around point. */
+	pow2 = (128 * 1024);
+	tmp = 0;
+	for (addr = begin + (128 * 1024); addr < end; addr = begin + pow2) {
+		cache_op(Index_Load_Tag_SD, addr);
+		__asm__ __volatile__("nop; nop; nop; nop;"); /* hazard... */
+		if (!read_c0_taglo())
+			break;
+		pow2 <<= 1;
+	}
+	local_irq_restore(flags);
+	addr -= begin;
+	printk("Secondary cache sized at %ldK, linesize %ld bytes.\n",
+	       addr >> 10, sc_lsize);
+	scache_size = addr;
+	return 1;
+}
+
+static void __init setup_noscache_funcs(void)
+{
+	unsigned int prid;
+
+	switch(dc_lsize) {
+	case 16:
+		_clear_page = r4k_clear_page_d16;
+		_copy_page = r4k_copy_page_d16;
+		_flush_cache_all = r4k_flush_cache_all_d16i16;
+		_flush_cache_l1 = r4k_flush_cache_all_d16i16;
+		_flush_cache_mm = r4k_flush_cache_mm_d16i16;
+		_flush_cache_range = r4k_flush_cache_range_d16i16;
+		_flush_cache_page = r4k_flush_cache_page_d16i16;
+		_flush_page_to_ram = r4k_flush_page_to_ram_d16;
+		break;
+	case 32:
+		prid = read_c0_prid() & 0xfff0;
+		if (prid == 0x2010) {			/* R4600 V1.7 */
+			_clear_page = r4k_clear_page_r4600_v1;
+			_copy_page = r4k_copy_page_r4600_v1;
+			_flush_page_to_ram = r4k_flush_page_to_ram_d32_r4600;
+		} else if (prid == 0x2020) {		/* R4600 V2.0 */
+			_clear_page = r4k_clear_page_r4600_v2;
+			_copy_page = r4k_copy_page_r4600_v2;
+			_flush_page_to_ram = r4k_flush_page_to_ram_d32;
+		} else {
+			_clear_page = r4k_clear_page_d32;
+			_copy_page = r4k_copy_page_d32;
+			_flush_page_to_ram = r4k_flush_page_to_ram_d32;
+		}
+		_flush_cache_all = r4k_flush_cache_all_d32i32;
+		_flush_cache_l1 = r4k_flush_cache_all_d32i32;
+		_flush_cache_mm = r4k_flush_cache_mm_d32i32;
+		_flush_cache_range = r4k_flush_cache_range_d32i32;
+		_flush_cache_page = r4k_flush_cache_page_d32i32;
+		break;
+	}
+	_flush_icache_page = r4k_flush_icache_page_p;
+
+	___flush_cache_all = _flush_cache_all;
+
+	_dma_cache_wback_inv = r4k_dma_cache_wback_inv_pc;
+	_dma_cache_wback = r4k_dma_cache_wback_inv_pc;
+	_dma_cache_inv = r4k_dma_cache_inv_pc;
+}
+
+static void __init setup_scache_funcs(void)
+{
+	switch (sc_lsize) {
+	case 16:
+		switch (dc_lsize) {
+		case 16:
+			_flush_cache_all = r4k_flush_cache_all_s16d16i16;
+			_flush_cache_l1 = r4k_flush_cache_all_s16d16i16;
+			_flush_cache_mm = r4k_flush_cache_mm_s16d16i16;
+			_flush_cache_range = r4k_flush_cache_range_s16d16i16;
+			_flush_cache_page = r4k_flush_cache_page_s16d16i16;
+			break;
+		case 32:
+			panic("Invalid cache configuration detected");
+		};
+		_flush_page_to_ram = r4k_flush_page_to_ram_s16;
+		_clear_page = r4k_clear_page_s16;
+		_copy_page = r4k_copy_page_s16;
+		break;
+	case 32:
+		switch (dc_lsize) {
+		case 16:
+			_flush_cache_all = r4k_flush_cache_all_s32d16i16;
+			_flush_cache_l1 = r4k_flush_cache_all_s32d16i16;
+			_flush_cache_mm = r4k_flush_cache_mm_s32d16i16;
+			_flush_cache_range = r4k_flush_cache_range_s32d16i16;
+			_flush_cache_page = r4k_flush_cache_page_s32d16i16;
+			break;
+		case 32:
+			_flush_cache_all = r4k_flush_cache_all_s32d32i32;
+			_flush_cache_l1 = r4k_flush_cache_all_s32d32i32;
+			_flush_cache_mm = r4k_flush_cache_mm_s32d32i32;
+			_flush_cache_range = r4k_flush_cache_range_s32d32i32;
+			_flush_cache_page = r4k_flush_cache_page_s32d32i32;
+			break;
+		};
+		_flush_page_to_ram = r4k_flush_page_to_ram_s32;
+		_clear_page = r4k_clear_page_s32;
+		_copy_page = r4k_copy_page_s32;
+		break;
+	case 64:
+		switch (dc_lsize) {
+		case 16:
+			_flush_cache_all = r4k_flush_cache_all_s64d16i16;
+			_flush_cache_l1 = r4k_flush_cache_all_s64d16i16;
+			_flush_cache_mm = r4k_flush_cache_mm_s64d16i16;
+			_flush_cache_range = r4k_flush_cache_range_s64d16i16;
+			_flush_cache_page = r4k_flush_cache_page_s64d16i16;
+			break;
+		case 32:
+			_flush_cache_all = r4k_flush_cache_all_s64d32i32;
+			_flush_cache_l1 = r4k_flush_cache_all_s64d32i32;
+			_flush_cache_mm = r4k_flush_cache_mm_s64d32i32;
+			_flush_cache_range = r4k_flush_cache_range_s64d32i32;
+			_flush_cache_page = r4k_flush_cache_page_s64d32i32;
+			break;
+		};
+		_flush_page_to_ram = r4k_flush_page_to_ram_s64;
+		_clear_page = r4k_clear_page_s64;
+		_copy_page = r4k_copy_page_s64;
+		break;
+	case 128:
+		switch (dc_lsize) {
+		case 16:
+			_flush_cache_all = r4k_flush_cache_all_s128d16i16;
+			_flush_cache_l1 = r4k_flush_cache_all_s128d16i16;
+			_flush_cache_mm = r4k_flush_cache_mm_s128d16i16;
+			_flush_cache_range = r4k_flush_cache_range_s128d16i16;
+			_flush_cache_page = r4k_flush_cache_page_s128d16i16;
+			break;
+		case 32:
+			_flush_cache_all = r4k_flush_cache_all_s128d32i32;
+			_flush_cache_l1 = r4k_flush_cache_all_s128d32i32;
+			_flush_cache_mm = r4k_flush_cache_mm_s128d32i32;
+			_flush_cache_range = r4k_flush_cache_range_s128d32i32;
+			_flush_cache_page = r4k_flush_cache_page_s128d32i32;
+			break;
+		};
+		_flush_page_to_ram = r4k_flush_page_to_ram_s128;
+		_clear_page = r4k_clear_page_s128;
+		_copy_page = r4k_copy_page_s128;
+		break;
+	}
+	_flush_icache_page = r4k_flush_icache_page_s;
+
+	___flush_cache_all = _flush_cache_all;
+
+	_dma_cache_wback_inv = r4k_dma_cache_wback_inv_sc;
+	_dma_cache_wback = r4k_dma_cache_wback_inv_sc;
+	_dma_cache_inv = r4k_dma_cache_inv_sc;
+}
+
+typedef int (*probe_func_t)(unsigned long);
+extern int r5k_sc_init(void);
+
+static inline void __init setup_scache(unsigned int config)
+{
+	probe_func_t probe_scache_kseg1;
+	int sc_present = 0;
+
+	/* Maybe the cpu knows about a l2 cache? */
+	probe_scache_kseg1 = (probe_func_t) (KSEG1ADDR(&probe_scache));
+	sc_present = probe_scache_kseg1(config);
+
+	if (!sc_present) {
+		setup_noscache_funcs();
+		return;
+	}
+
+	switch(mips_cpu.cputype) {
+	case CPU_R5000:
+	case CPU_NEVADA:
+			setup_noscache_funcs();
+#ifdef CONFIG_R5000_CPU_SCACHE
+			r5k_sc_init();
+#endif
+			break;
+	default:
+			setup_scache_funcs();
+	}
+}
+
+void __init ld_mmu_r4xx0(void)
+{
+	unsigned long config = read_c0_config();
+
+	/* Default cache error handler for SB1 */
+	extern char except_vec2_generic;
+
+	memcpy((void *)(KSEG0 + 0x100), &except_vec2_generic, 0x80);
+	memcpy((void *)(KSEG1 + 0x100), &except_vec2_generic, 0x80);
+
+	change_c0_config(CONF_CM_CMASK | CONF_CU, CONF_CM_DEFAULT);
+
+	probe_icache(config);
+	probe_dcache(config);
+	setup_scache(config);
+
+	switch(mips_cpu.cputype) {
+	case CPU_R4600:			/* QED style two way caches? */
+	case CPU_R4700:
+	case CPU_R5000:
+	case CPU_NEVADA:
+		_flush_cache_page = r4k_flush_cache_page_d32i32_r4600;
+	}
+
+	_flush_cache_sigtramp = r4k_flush_cache_sigtramp;
+	if ((read_c0_prid() & 0xfff0) == 0x2020) {
+		_flush_cache_sigtramp = r4600v20k_flush_cache_sigtramp;
+	}
+	_flush_icache_range = r4k_flush_icache_range;	/* Ouch */
+
+	_flush_cache_l2 = r4k_flush_cache_l2;
+
+	__flush_cache_all();
+}
diff -urNd -urNd linux-2.4.20/arch/mips64/mm/c-sb1.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/c-sb1.c
--- linux-2.4.20/arch/mips64/mm/c-sb1.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/c-sb1.c	2003-02-18 17:38:36.000000000 -0600
@@ -33,6 +33,7 @@
 static unsigned long dcache_line_size;
 
 static unsigned int icache_index_mask;
+static unsigned int dcache_index_mask;
 
 static unsigned long icache_assoc;
 static unsigned long dcache_assoc;
@@ -40,6 +41,9 @@
 static unsigned int icache_sets;
 static unsigned int dcache_sets;
 
+static unsigned int icache_range_cutoff;
+static unsigned int dcache_range_cutoff;
+
 /*
  * The dcache is fully coherent to the system, with one
  * big caveat:  the instruction stream.  In other words,
@@ -53,68 +57,168 @@
  * to flush it
  */
 
-static void sb1_flush_cache_all(void)
-{
-}
-
-static inline void local_sb1___flush_dcache_all(void)
+/*
+ * Writeback and invalidate the entire dcache
+ */
+static inline void __sb1_writeback_inv_dcache_all(void)
 {
-	/*
-	 * Haven't worried too much about speed here; given that we're flushing
-	 * the icache, the time to invalidate is dwarfed by the time it's going
-	 * to take to refill it.  Register usage:
-	 *
-	 * $1 - moving cache index
-	 * $2 - set count
-	 */
 	__asm__ __volatile__ (
 		".set push                  \n"
 		".set noreorder             \n"
 		".set noat                  \n"
 		".set mips4                 \n"
-		"     move   $1, %2         \n" /* Start at index 0 */
-		"1:   cache  %3, 0($1)      \n" /* WB/Invalidate this index */
-		"     daddiu  %1, %1, -1     \n" /* Decrement loop count */
+		"     move   $1, $0         \n" /* Start at index 0 */
+		"1:   cache  %2, 0($1)      \n" /* Invalidate this index */
+		"     cache  %2, (1<<13)($1)\n" /* Invalidate this index */
+		"     cache  %2, (2<<13)($1)\n" /* Invalidate this index */
+		"     cache  %2, (3<<13)($1)\n" /* Invalidate this index */
+		"     daddiu %1, %1, -1     \n" /* Decrement loop count */
 		"     bnez   %1, 1b         \n" /* loop test */
-		"      daddu   $1, $1, %0    \n" /* Next address */
+		"      daddu $1, $1, %0     \n" /* Next address */
 		".set pop                   \n"
 		:
-		: "r" (dcache_line_size), "r" (dcache_sets * dcache_assoc),
-		  "r" (KSEG0), "i" (Index_Writeback_Inv_D));
+		: "r" (dcache_line_size), "r" (dcache_sets),
+		  "i" (Index_Writeback_Inv_D));
+}
 
+/*
+ * Writeback and invalidate a range of the dcache.  The addresses are
+ * virtual, and since we're using index ops and bit 12 is part of both
+ * the virtual frame and physical index, we have to clear both sets
+ * (bit 12 set and cleared).
+ */
+static inline void __sb1_writeback_inv_dcache_range(unsigned long start,
+	unsigned long end)
+{
+	__asm__ __volatile__ (
+	"	.set	push		\n"
+	"	.set	noreorder	\n"
+	"	.set	noat		\n"
+	"	.set	mips4		\n"
+	"	and	$1, %0, %3	\n" /* mask non-index bits */
+	"1:	cache	%4, (0<<13)($1)	\n" /* Index-WB-inval this address */
+	"	cache	%4, (1<<13)($1)	\n" /* Index-WB-inval this address */
+	"	cache	%4, (2<<13)($1)	\n" /* Index-WB-inval this address */
+	"	cache	%4, (3<<13)($1)	\n" /* Index-WB-inval this address */
+	"	xori	$1, $1, 1<<12 	\n"
+	"	cache	%4, (0<<13)($1)	\n" /* Index-WB-inval this address */
+	"	cache	%4, (1<<13)($1)	\n" /* Index-WB-inval this address */
+	"	cache	%4, (2<<13)($1)	\n" /* Index-WB-inval this address */
+	"	cache	%4, (3<<13)($1)	\n" /* Index-WB-inval this address */
+	"	daddu	%0, %0, %2	\n" /* next line */
+	"	bne	%0, %1, 1b	\n" /* loop test */
+	"	 and	$1, %0, %3	\n" /* mask non-index bits */
+	"	sync			\n"
+	"	.set pop		\n"
+	:
+	: "r" (start & ~(dcache_line_size - 1)),
+	  "r" ((end + dcache_line_size - 1) & ~(dcache_line_size - 1)),
+	  "r" (dcache_line_size),
+	  "r" (dcache_index_mask),
+	  "i" (Index_Writeback_Inv_D));
+}
+
+/*
+ * Writeback and invalidate a range of the dcache.  With physical
+ * addresseses, we don't have to worry about possible bit 12 aliasing.
+ * XXXKW is it worth turning on KX and using hit ops with xkphys?
+ */
+static inline void __sb1_writeback_inv_dcache_phys_range(unsigned long start,
+	unsigned long end)
+{
+	__asm__ __volatile__ (
+		"	.set	push		\n"
+		"	.set	noreorder	\n"
+		"	.set	noat		\n"
+		"	.set	mips4		\n"
+		"	and	$1, %0, %3	\n" /* mask non-index bits */
+		"1:	cache	%4, (0<<13)($1)	\n" /* Index-WB-inval this address */
+		"	cache	%4, (1<<13)($1)	\n" /* Index-WB-inval this address */
+		"	cache	%4, (2<<13)($1)	\n" /* Index-WB-inval this address */
+		"	cache	%4, (3<<13)($1)	\n" /* Index-WB-inval this address */
+		"	daddu	%0, %0, %2	\n" /* next line */
+		"	bne	%0, %1, 1b	\n" /* loop test */
+		"	 and	$1, %0, %3	\n" /* mask non-index bits */
+		"	sync			\n"
+		"	.set pop		\n"
+		:
+		: "r" (start  & ~(dcache_line_size - 1)),
+		  "r" ((end + dcache_line_size - 1) & ~(dcache_line_size - 1)),
+		  "r" (dcache_line_size),
+		  "r" (dcache_index_mask),
+		  "i" (Index_Writeback_Inv_D));
+}
+
+
+/*
+ * Invalidate the entire icache
+ */
+static inline void __sb1_flush_icache_all(void)
+{
 	__asm__ __volatile__ (
 		".set push                  \n"
 		".set noreorder             \n"
-		".set mips2                 \n"
-		"sync                       \n"
-#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS		/* Bug 1384 */
-		"sync                       \n"
-#endif
-		".set pop                   \n");
+		".set noat                  \n"
+		".set mips4                 \n"
+		"     move   $1, $0         \n" /* Start at index 0 */
+		"1:   cache  %2, 0($1)      \n" /* Invalidate this index */
+		"     cache  %2, (1<<13)($1)\n" /* Invalidate this index */
+		"     cache  %2, (2<<13)($1)\n" /* Invalidate this index */
+		"     cache  %2, (3<<13)($1)\n" /* Invalidate this index */
+		"     daddiu %1, %1, -1     \n" /* Decrement loop count */
+		"     bnez   %1, 1b         \n" /* loop test */
+		"      daddu $1, $1, %0     \n" /* Next address */
+		"     bnezl  $0, 2f         \n" /* Force mispredict */
+		"      nop                  \n"
+		"2:   sync                  \n"
+		".set pop                   \n"
+		:
+		: "r" (icache_line_size), "r" (icache_sets),
+		  "i" (Index_Invalidate_I));
 }
 
-static inline void local_sb1___flush_icache_all(void)
+/*
+ * Invalidate a range of the icache.  The addresses are virtual, and
+ * the cache is virtually indexed and tagged.  However, we don't
+ * necessarily have the right ASID context, so use index ops instead
+ * of hit ops.
+ */
+static inline void __sb1_flush_icache_range(unsigned long start,
+	unsigned long end)
 {
 	__asm__ __volatile__ (
 		".set push                  \n"
 		".set noreorder             \n"
 		".set noat                  \n"
 		".set mips4                 \n"
-		"     move   $1, %2         \n" /* Start at index 0 */
-		"1:   cache  %3, 0($1)       \n" /* Invalidate this index */
-		"     daddiu  %1, %1, -1     \n" /* Decrement loop count */
-		"     bnez   %1, 1b         \n" /* loop test */
-		"      daddu   $1, $1, %0    \n" /* Next address */
+		"     and    $1, %0, %3     \n" /* mask non-index bits */
+		"1:   cache  %4, (0<<13)($1) \n" /* Index-inval this address */
+		"     cache  %4, (1<<13)($1) \n" /* Index-inval this address */
+		"     cache  %4, (2<<13)($1) \n" /* Index-inval this address */
+		"     cache  %4, (3<<13)($1) \n" /* Index-inval this address */
+		"     daddu  %0, %0, %2     \n" /* next line */
+		"     bne    %0, %1, 1b     \n" /* loop test */
+		"      and   $1, %0, %3     \n" /* mask non-index bits */
+		"     bnezl  $0, 2f         \n" /* Force mispredict */
+		"      nop                  \n"
+		"2:   sync                  \n"
 		".set pop                   \n"
 		:
-		: "r" (icache_line_size), "r" (icache_sets * icache_assoc),
-		  "r" (KSEG0), "i" (Index_Invalidate_I));
+		: "r" (start  & ~(icache_line_size - 1)),
+		  "r" ((end + icache_line_size - 1) & ~(icache_line_size - 1)),
+		  "r" (icache_line_size),
+		  "r" (icache_index_mask),
+		  "i" (Index_Invalidate_I));
 }
 
+
+/*
+ * Invalidate all caches on this CPU
+ */
 static void local_sb1___flush_cache_all(void)
 {
-	local_sb1___flush_dcache_all();
-	local_sb1___flush_icache_all();
+	__sb1_writeback_inv_dcache_all();
+	__sb1_flush_icache_all();
 }
 
 #ifdef CONFIG_SMP
@@ -131,81 +235,28 @@
 asm("sb1___flush_cache_all = local_sb1___flush_cache_all");
 #endif
 
-
 /*
  * When flushing a range in the icache, we have to first writeback
  * the dcache for the same range, so new ifetches will see any
  * data that was dirty in the dcache.
  *
- * The start/end arguments are expected to be Kseg addresses.
+ * The start/end arguments are Kseg addresses (possibly mapped Kseg).
  */
 
 static void local_sb1_flush_icache_range(unsigned long start,
 	unsigned long end)
 {
-#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-	unsigned long flags;
-	local_irq_save(flags);
-#endif
-
-	__asm__ __volatile__ (
-		".set push                  \n"
-		".set noreorder             \n"
-		".set noat                  \n"
-		".set mips4                 \n"
-		"     move   $1, %0         \n"
-		"1:                         \n"
-#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-		".align 3                   \n"
-		"     lw     $0,   0($1)    \n" /* Bug 1370, 1368            */
-		"     sync                  \n"
-#endif
-		"     cache  %3, 0($1)      \n" /* Hit-WB{,-inval} this address */
-		"     bne    $1, %1, 1b     \n" /* loop test */
-		"      daddu  $1, $1, %2    \n" /* next line */
-		".set pop                   \n"
-		:
-		: "r" ((start + dcache_line_size - 1)  & ~(dcache_line_size - 1)),
-		  "r" ((end + dcache_line_size - 1) & ~(dcache_line_size - 1)),
-		  "r" (dcache_line_size),
-#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-		  "i" (Hit_Writeback_Inv_D)
-#else
-		  "i" (Hit_Writeback_D)
-#endif
-		);
-	__asm__ __volatile__ (
-		".set push                  \n"
-		".set noreorder             \n"
-		".set mips2                 \n"
-		"sync                       \n"
-#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS		/* Bug 1384 */
-		"sync                       \n"
-#endif
-		".set pop                   \n");
-#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-	local_irq_restore(flags);
-#endif
-
-	__asm__ __volatile__ (
-		".set push                  \n"
-		".set noreorder             \n"
-		".set noat                  \n"
-		".set mips4                 \n"
-		"     move   $1, %0         \n"
-		".align 3                   \n"
-		"1:   cache  %3, (0<<13)($1) \n" /* Index-inval this address */
-		"     cache  %3, (1<<13)($1) \n" /* Index-inval this address */
-		"     cache  %3, (2<<13)($1) \n" /* Index-inval this address */
-		"     cache  %3, (3<<13)($1) \n" /* Index-inval this address */
-		"     bne    $1, %1, 1b     \n" /* loop test */
-		"      daddu  $1, $1, %2     \n" /* next line */
-		".set pop                   \n"
-		:
-		: "r" (start & ~(icache_line_size - 1)),
-		  "r" ((end - 1) & ~(icache_line_size - 1)),
-		  "r" (icache_line_size),
-		  "i" (Index_Invalidate_I));
+	/* Just wb-inv the whole dcache if the range is big enough */
+	if ((end - start) > dcache_range_cutoff)
+		__sb1_writeback_inv_dcache_all();
+	else
+		__sb1_writeback_inv_dcache_range(start, end);
+	
+	/* Just flush the whole icache if the range is big enough */
+	if ((end - start) > icache_range_cutoff)
+		__sb1_flush_icache_all();
+	else
+		__sb1_flush_icache_range(start, end);
 }
 
 #ifdef CONFIG_SMP
@@ -236,127 +287,105 @@
 #endif
 
 /*
- * If there's no context yet, or the page isn't executable, no icache flush
- * is needed
- *
- * This is broken.  If there is no context yet we still have to writeback
- * the d-cache to memory.
+ * Flush the icache for a given physical page.  Need to writeback the
+ * dcache first, then invalidate the icache.  If the page isn't
+ * executable, nothing is required.
  */
-static void sb1_flush_icache_page(struct vm_area_struct *vma,
+static void local_sb1_flush_icache_page(struct vm_area_struct *vma,
 	struct page *page)
 {
-	if (!(vma->vm_flags & VM_EXEC)) {
+	unsigned long start;
+	int cpu = smp_processor_id();
+
+#ifndef CONFIG_SMP
+	if (!(vma->vm_flags & VM_EXEC))
 		return;
-	}
+#endif
 
+	/* Need to writeback any dirty data for that page, we have the PA */
+	start = (unsigned long)(page-mem_map) << PAGE_SHIFT;
+	__sb1_writeback_inv_dcache_phys_range(start, start + PAGE_SIZE);
 	/*
-	 * We're not sure of the virtual address(es) involved here, so
-	 * conservatively flush the entire caches on all processors
-	 * (ouch).
-	 *
-	 * Bumping the ASID may well be cheaper, need to experiment ...
+	 * If there's a context, bump the ASID (cheaper than a flush,
+	 * since we don't know VAs!)
 	 */
-	sb1___flush_cache_all();
+	if (cpu_context(cpu, vma->vm_mm) != 0) {
+		drop_mmu_context(vma->vm_mm, cpu);
+	}
 }
 
-static inline void protected_flush_icache_line(unsigned long addr)
+#ifdef CONFIG_SMP
+struct flush_icache_page_args {
+	struct vm_area_struct *vma;
+	struct page *page;
+};
+
+static void sb1_flush_icache_page_ipi(void *info)
 {
-	__asm__ __volatile__(
-		"    .set push                \n"
-		"    .set noreorder           \n"
-		"    .set mips4               \n"
-		"1:  cache %1, (%0)           \n"
-		"2:  .set pop                 \n"
-		"    .section __ex_table,\"a\"\n"
-		"     .dword  1b, 2b          \n"
-		"     .previous"
-		:
-		: "r" (addr), "i" (Hit_Invalidate_I));
+	struct flush_icache_page_args *args = info;
+	local_sb1_flush_icache_page(args->vma, args->page);
 }
 
-static inline void protected_writeback_dcache_line(unsigned long addr)
+/* Dirty dcache could be on another CPU, so do the IPIs */
+static void sb1_flush_icache_page(struct vm_area_struct *vma,
+	struct page *page)
 {
-#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-	/* Have to be sure the TLB entry exists for the cache op,
-	   so we have to be sure that nothing happens in between the
-	   lw and the cache op
-	*/
-	unsigned long flags;
-	local_irq_save(flags);
-#endif
-	__asm__ __volatile__(
-		"    .set push                \n"
-		"    .set noreorder           \n"
-		"    .set mips4               \n"
-		"                             \n"
-#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-		"1:   lw    $0,   (%0)        \n"
-		"     sync                    \n"
-		"     .section __ex_table,\"a\"\n"
-		"     .dword  1b, 3f           \n"
-		"     .previous               \n"
-#endif
-		"2:   cache  %1, 0(%0)    \n" /* Hit-WB{-inval} this address */
-		/* XXX: should be able to do this after both dcache cache
-		   ops, but there's no guarantee that this will be inlined,
-		   and the pass1 restriction checker can't detect syncs
-		   following cache ops except in the following basic block.
-		*/
-		"     sync                    \n"
-#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS		/* Bug 1384 */
-		"     sync                    \n"
-#endif
-		"3:  .set pop                 \n"
-		"    .section __ex_table,\"a\"\n"
-		"     .dword  2b, 3b          \n"
-		"     .previous"
-		:
-		: "r" (addr),
-#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-		  "i" (Hit_Writeback_Inv_D)
+	struct flush_icache_page_args args;
+
+	if (!(vma->vm_flags & VM_EXEC))
+		return;
+	args.vma = vma;
+	args.page = page;
+	smp_call_function(sb1_flush_icache_page_ipi, (void *) &args, 1, 1);
+	local_sb1_flush_icache_page(vma, page);
+}
 #else
-		  "i" (Hit_Writeback_D)
-#endif
-		  );
-#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-	local_irq_restore(flags);
+void sb1_flush_icache_page(struct vm_area_struct *vma, struct page *page);
+asm("sb1_flush_icache_page = local_sb1_flush_icache_page");
 #endif
-}
 
 /*
  * A signal trampoline must fit into a single cacheline.
  */
 static void local_sb1_flush_cache_sigtramp(unsigned long addr)
 {
-	unsigned long daddr, iaddr;
-
-	daddr = addr & ~(dcache_line_size - 1);
-	protected_writeback_dcache_line(daddr);
-	iaddr = addr & ~(icache_line_size - 1);
-	protected_flush_icache_line(iaddr);
+	__asm__ __volatile__ (
+	"	.set	push		\n"
+	"	.set	noreorder	\n"
+	"	.set	noat		\n"
+	"	.set	mips4		\n"
+	"	cache	%2, (0<<13)(%0)	\n" /* Index-inval this address */
+	"	cache	%2, (1<<13)(%0)	\n" /* Index-inval this address */
+	"	cache	%2, (2<<13)(%0)	\n" /* Index-inval this address */
+	"	cache	%2, (3<<13)(%0)	\n" /* Index-inval this address */
+	"	xori	$1, %0, 1<<12	\n" /* Flip index bit 12	*/
+	"	cache	%2, (0<<13)($1)	\n" /* Index-inval this address */
+	"	cache	%2, (1<<13)($1)	\n" /* Index-inval this address */
+	"	cache	%2, (2<<13)($1)	\n" /* Index-inval this address */
+	"	cache	%2, (3<<13)($1)	\n" /* Index-inval this address */
+	"	cache	%3, (0<<13)(%1)	\n" /* Index-inval this address */
+	"	cache	%3, (1<<13)(%1)	\n" /* Index-inval this address */
+	"	cache	%3, (2<<13)(%1)	\n" /* Index-inval this address */
+	"	cache	%3, (3<<13)(%1)	\n" /* Index-inval this address */
+	"	bnezl	$0, 1f		\n" /* Force mispredict */
+	"	 nop			\n"
+	"1:                             \n"
+	"	.set	pop		\n"
+	:
+	: "r" (addr & dcache_index_mask), "r" (addr & icache_index_mask),
+	  "i" (Index_Writeback_Inv_D), "i" (Index_Invalidate_I));
 }
 
 #ifdef CONFIG_SMP
 static void sb1_flush_cache_sigtramp_ipi(void *info)
 {
 	unsigned long iaddr = (unsigned long) info;
-
-	iaddr = iaddr & ~(icache_line_size - 1);
-	protected_flush_icache_line(iaddr);
+	local_sb1_flush_cache_sigtramp(iaddr);
 }
 
 static void sb1_flush_cache_sigtramp(unsigned long addr)
 {
-	unsigned long tmp;
-
-	/*
-	 * Flush the local dcache, then load the instruction back into a
-	 * register.  That will make sure that any remote CPU also has
-	 * written back it's data cache to memory.
-	 */
 	local_sb1_flush_cache_sigtramp(addr);
-	__get_user(tmp, (unsigned long *)addr);
-
 	smp_call_function(sb1_flush_cache_sigtramp_ipi, (void *) addr, 1, 1);
 }
 #else
@@ -364,64 +393,17 @@
 asm("sb1_flush_cache_sigtramp = local_sb1_flush_cache_sigtramp");
 #endif
 
-static void sb1_flush_icache_all(void)
-{
-	/*
-	 * Haven't worried too much about speed here; given that we're flushing
-	 * the icache, the time to invalidate is dwarfed by the time it's going
-	 * to take to refill it.  Register usage:
-	 *
-	 * $1 - moving cache index
-	 * $2 - set count
-	 */
-	__asm__ __volatile__ (
-		".set push                  \n"
-		".set noreorder             \n"
-		".set noat                  \n"
-		".set mips4                 \n"
-		"     move   $1, %2         \n" /* Start at index 0 */
-		"1:   cache  %3, 0($1)      \n" /* Invalidate this index */
-		"     daddiu  %1, %1, -1     \n" /* Decrement loop count */
-		"     bnez   %1, 1b         \n" /* loop test */
-		"      daddu   $1, $1, %0    \n" /* Next address */
-		".set pop                   \n"
-		:
-		: "r" (icache_line_size), "r" (icache_sets * icache_assoc),
-		  "r" (KSEG0), "i" (Index_Invalidate_I));
-}
 
 /*
  * Anything that just flushes dcache state can be ignored, as we're always
  * coherent in dcache space.  This is just a dummy function that all the
  * nop'ed routines point to
  */
-
 static void sb1_nop(void)
 {
 }
 
 /*
- * This only needs to make sure stores done up to this
- * point are visible to other agents outside the CPU.  Given
- * the coherent nature of the ZBbus, all that's required here is
- * a sync to make sure the data gets out to the caches and is
- * visible to an arbitrary A Phase from an external agent
- *
- * Actually, I'm not even sure that's necessary; the semantics
- * of this function aren't clear.  If it's supposed to serve as
- * a memory barrier, this is needed.  If it's only meant to
- * prevent data from being invisible to non-cpu memory accessors
- * for some indefinite period of time (e.g. in a non-coherent
- * dcache) then this function would be a complete nop.
- */
-static void sb1_flush_page_to_ram(struct page *page)
-{
-	__asm__ __volatile__(
-		"     sync  \n"  /* Short pipe */
-		:::"memory");
-}
-
-/*
  *  Cache set values (from the mips64 spec)
  * 0 - 64
  * 1 - 128
@@ -480,7 +462,7 @@
 {
 	u32 config1;
 
-	config1 = read_mips32_cp0_config1();
+	config1 = read_c0_config1();
 	icache_line_size = decode_cache_line_size((config1 >> 19) & 0x7);
 	dcache_line_size = decode_cache_line_size((config1 >> 10) & 0x7);
 	icache_sets = decode_cache_sets((config1 >> 22) & 0x7);
@@ -489,7 +471,17 @@
 	dcache_assoc = ((config1 >> 7) & 0x7) + 1;
 	icache_size = icache_line_size * icache_sets * icache_assoc;
 	dcache_size = dcache_line_size * dcache_sets * dcache_assoc;
+	/* Need to remove non-index bits for index ops */
 	icache_index_mask = (icache_sets - 1) * icache_line_size;
+	dcache_index_mask = (dcache_sets - 1) * dcache_line_size;
+	/*
+	 * These are for choosing range (index ops) versus all.
+	 * icache flushes all ways for each set, so drop icache_assoc.
+	 * dcache flushes all ways and each setting of bit 12 for each
+	 * index, so drop dcache_assoc and halve the dcache_sets.
+	 */
+	icache_range_cutoff = icache_sets * icache_line_size;
+	dcache_range_cutoff = (dcache_sets / 2) * icache_line_size;
 }
 
 /*
@@ -499,25 +491,51 @@
  */
 void ld_mmu_sb1(void)
 {
+	extern char except_vec2_sb1;
+	unsigned long temp;
+
+	/* Special cache error handler for SB1 */
+	memcpy((void *)(KSEG0 + 0x100), &except_vec2_sb1, 0x80);
+	memcpy((void *)(KSEG1 + 0x100), &except_vec2_sb1, 0x80);
+
 	probe_cache_sizes();
 
 	_clear_page = sb1_clear_page;
 	_copy_page = sb1_copy_page;
 
-	_flush_cache_all = sb1_flush_cache_all;
-	___flush_cache_all = sb1___flush_cache_all;
-	_flush_cache_mm = (void (*)(struct mm_struct *))sb1_nop;
+	/*
+	 * None of these are needed for the SB1 - the Dcache is
+	 * physically indexed and tagged, so no virtual aliasing can
+	 * occur
+	 */
 	_flush_cache_range = (void *) sb1_nop;
-	_flush_page_to_ram = sb1_flush_page_to_ram;
-	_flush_icache_page = sb1_flush_icache_page;
-	_flush_icache_range = sb1_flush_icache_range;
-
-	/* None of these are needed for the sb1 */
-	_flush_cache_page = (void *) sb1_nop;
+	_flush_cache_page = (void (*)(struct vm_area_struct *, unsigned long))sb1_nop;
+	_flush_cache_mm = (void (*)(struct mm_struct *))sb1_nop;
+	_flush_cache_all = sb1_nop;
+	_flush_page_to_ram = (void (*)(struct page *)) sb1_nop;
 
+	/* These routines are for Icache coherence with the Dcache */
+	_flush_icache_range = sb1_flush_icache_range;
+	_flush_icache_page = sb1_flush_icache_page;
+	_flush_icache_all = __sb1_flush_icache_all; /* local only */
 	_flush_cache_sigtramp = sb1_flush_cache_sigtramp;
-	_flush_icache_all = sb1_flush_icache_all;
 
-	change_cp0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
+	/* Full flushes */
+	___flush_cache_all = sb1___flush_cache_all;
+	_flush_cache_l1 = sb1___flush_cache_all;
+
+	change_c0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
+	/*
+	 * This is the only way to force the update of K0 to complete
+	 * before subsequent instruction fetch.
+	 */
+	__asm__ __volatile__ (
+	"	.set	push		\n"
+	"	.set	mips4		\n"
+	"	dla	%0, 1f		\n"
+	"	dmtc0	%0, $14		\n"
+	"	eret			\n"
+	"1:	.set	pop		\n"
+	: "=r" (temp));
 	flush_cache_all();
 }
diff -urNd -urNd linux-2.4.20/arch/mips64/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips64/mm/CVS/Entries
--- linux-2.4.20/arch/mips64/mm/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/CVS/Entries	2005-01-06 23:00:15.000000000 -0600
@@ -0,0 +1,26 @@
+/.cvsignore/1.1/Wed Aug 18 23:37:47 1999/-ko/Tlinux_2_4_20
+/Makefile/1.8.2.12/Wed Feb 19 20:53:05 2003/-ko/Tlinux_2_4_20
+/c-andes.c/1.1.2.3/Fri Feb 14 01:58:54 2003/-ko/Tlinux_2_4_20
+/c-mips64.c/1.1.2.8/Sun Feb  9 22:03:23 2003/-ko/Tlinux_2_4_20
+/c-r4k.c/1.1.2.13/Sun Feb  9 22:03:23 2003/-ko/Tlinux_2_4_20
+/c-sb1.c/1.1.2.21/Tue Feb 18 23:38:36 2003/-ko/Tlinux_2_4_20
+/cerr-sb1.c/1.1.2.5/Thu Feb  6 23:25:13 2003/-ko/Tlinux_2_4_20
+/cex-sb1.S/1.1.2.5/Fri Feb  7 20:33:33 2003/-ko/Tlinux_2_4_20
+/extable.c/1.5.2.2/Tue Aug  6 01:40:40 2002/-ko/Tlinux_2_4_20
+/fault.c/1.26.2.13/Wed Sep 11 12:44:29 2002/-ko/Tlinux_2_4_20
+/init.c/1.28.2.8/Thu Oct  3 01:27:58 2002/-ko/Tlinux_2_4_20
+/loadmmu.c/1.14.2.8/Sun Sep 29 01:49:20 2002/-ko/Tlinux_2_4_20
+/pg-andes.c/1.1.2.1/Sun Sep 29 01:49:20 2002/-ko/Tlinux_2_4_20
+/pg-mips64.c/1.1.2.2/Mon Aug  5 23:53:36 2002/-ko/Tlinux_2_4_20
+/pg-r4k.c/1.1.2.3/Fri Jan 24 12:58:30 2003/-ko/Tlinux_2_4_20
+/pg-sb1.c/1.1.2.4/Tue Jan  7 23:51:51 2003/-ko/Tlinux_2_4_20
+/r5k-sc.c/1.1.2.4/Fri Jan 24 12:58:30 2003/-ko/Tlinux_2_4_20
+/tlb-andes.c/1.1.2.8/Wed Feb 12 23:50:16 2003/-ko/Tlinux_2_4_20
+/tlb-dbg-r4k.c/1.1.2.2/Mon Dec  2 00:24:53 2002/-ko/Tlinux_2_4_20
+/tlb-glue-r4k.S/1.1.2.3/Sat Sep 21 11:55:38 2002/-ko/Tlinux_2_4_20
+/tlb-glue-sb1.S/1.1.2.1/Wed Feb 19 20:53:05 2003//Tlinux_2_4_20
+/tlb-r4k.c/1.1.2.11/Thu Feb  6 22:53:43 2003/-ko/Tlinux_2_4_20
+/tlb-sb1.c/1.1.2.15/Wed Feb 19 20:53:05 2003/-ko/Tlinux_2_4_20
+/tlbex-r4k.S/1.1.2.11/Fri Feb  7 01:06:34 2003/-ko/Tlinux_2_4_20
+/umap.c/1.12.2.1/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/mips64/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips64/mm/CVS/Repository
--- linux-2.4.20/arch/mips64/mm/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/CVS/Repository	2005-01-06 23:00:14.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/mips64/mm
diff -urNd -urNd linux-2.4.20/arch/mips64/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips64/mm/CVS/Root
--- linux-2.4.20/arch/mips64/mm/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/CVS/Root	2005-01-06 23:00:14.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/mips64/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips64/mm/CVS/Tag
--- linux-2.4.20/arch/mips64/mm/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/CVS/Tag	2005-01-06 23:00:15.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/mips64/mm/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips64/mm/.cvsignore
--- linux-2.4.20/arch/mips64/mm/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/.cvsignore	1999-08-18 18:37:47.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/mips64/mm/init.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/init.c
--- linux-2.4.20/arch/mips64/mm/init.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/init.c	2002-10-02 20:27:58.000000000 -0500
@@ -297,14 +297,19 @@
 #ifdef CONFIG_BLK_DEV_INITRD
 void free_initrd_mem(unsigned long start, unsigned long end)
 {
+	/* Switch from KSEG0 to XKPHYS addresses */
+	start = (unsigned long)phys_to_virt(CPHYSADDR(start));
+	end = (unsigned long)phys_to_virt(CPHYSADDR(end));
+	if (start < end)
+		printk(KERN_INFO "Freeing initrd memory: %ldk freed\n",
+		       (end - start) >> 10);
+
 	for (; start < end; start += PAGE_SIZE) {
 		ClearPageReserved(virt_to_page(start));
 		set_page_count(virt_to_page(start), 1);
 		free_page(start);
 		totalram_pages++;
 	}
-	printk(KERN_INFO "Freeing initrd memory: %ldk freed\n",
-	       (end - start) >> 10);
 }
 #endif
 
diff -urNd -urNd linux-2.4.20/arch/mips64/mm/loadmmu.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/loadmmu.c
--- linux-2.4.20/arch/mips64/mm/loadmmu.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/loadmmu.c	2002-09-28 20:49:20.000000000 -0500
@@ -66,10 +66,11 @@
     || defined (CONFIG_CPU_NEVADA)
 		printk(KERN_INFO "Loading R4000 MMU routines.\n");
 		ld_mmu_r4xx0();
+		r4k_tlb_init();
 #endif
 #if defined(CONFIG_CPU_MIPS64)
 		printk(KERN_INFO "Loading MIPS64 MMU routines.\n");
-                ld_mmu_mips64();
+		ld_mmu_mips64();
 		r4k_tlb_init();
 #endif
 
@@ -79,6 +80,7 @@
 	case CPU_R12000:
 		printk(KERN_INFO "Loading R10000 MMU routines.\n");
 		ld_mmu_andes();
+		andes_tlb_init();
 		break;
 #endif
 #if defined CONFIG_CPU_SB1
diff -urNd -urNd linux-2.4.20/arch/mips64/mm/Makefile linux-2.4.20-mipscvs-20050106/arch/mips64/mm/Makefile
--- linux-2.4.20/arch/mips64/mm/Makefile	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/Makefile	2003-02-19 14:53:05.000000000 -0600
@@ -7,24 +7,24 @@
 O_TARGET := mm.o
 
 export-objs			+= umap.o
-obj-y				:= extable.o init.o fault.o loadmmu.o
+obj-y				:= extable.o init.o fault.o loadmmu.o \
+				   tlbex-r4k.o
 
-obj-$(CONFIG_CPU_R4300)		+= r4xx0.o tlbex-r4k.o tlb-glue-r4k.o
-obj-$(CONFIG_CPU_R4X00)		+= r4xx0.o tlbex-r4k.o tlb-glue-r4k.o
-obj-$(CONFIG_CPU_R5000)		+= r4xx0.o tlbex-r4k.o tlb-glue-r4k.o \
-				   r5k-sc.o
-obj-$(CONFIG_CPU_NEVADA)	+= r4xx0.o tlbex-r4k.o tlb-glue-r4k.o \
-				   r5k-sc.o
-obj-$(CONFIG_CPU_R10000)	+= andes.o tlbex-r4k.o tlb-glue-r4k.o
-obj-$(CONFIG_CPU_SB1)		+= pg-sb1.o c-sb1.o tlb-sb1.o tlbex-r4k.o \
-				   tlb-glue-r4k.o
-obj-$(CONFIG_CPU_MIPS64)	+= pg-mips64.o c-mips64.o tlb-r4k.o \
-				   tlbex-r4k.o tlb-glue-r4k.o
+obj-$(CONFIG_CPU_R4300)		+= c-r4k.o pg-r4k.o tlb-r4k.o tlb-glue-r4k.o
+obj-$(CONFIG_CPU_R4X00)		+= c-r4k.o pg-r4k.o tlb-r4k.o tlb-glue-r4k.o
+obj-$(CONFIG_CPU_R5000)		+= c-r4k.o pg-r4k.o tlb-r4k.o tlb-glue-r4k.o
+obj-$(CONFIG_CPU_NEVADA)	+= c-r4k.o pg-r4k.o tlb-r4k.o tlb-glue-r4k.o
+obj-$(CONFIG_CPU_R10000)	+= c-andes.o pg-andes.o tlb-andes.o tlb-glue-r4k.o
+obj-$(CONFIG_CPU_SB1)		+= c-sb1.o pg-sb1.o tlb-sb1.o tlb-glue-sb1.o \
+				   cex-sb1.o cerr-sb1.o
+obj-$(CONFIG_CPU_MIPS64)	+= c-mips64.o pg-mips64.o tlb-r4k.o tlb-glue-r4k.o
+
+obj-$(CONFIG_R5000_CPU_SCACHE)	+= r5k-sc.o
 
 #
 # Debug TLB exception handler, currently unused
 #
-#obj-y				+=  tlb-dbg-r4k.o tlb-glue-r4k.o
+#obj-y				+=  tlb-dbg-r4k.o
 
 obj-$(CONFIG_SGI_IP22)		+= umap.o
 
diff -urNd -urNd linux-2.4.20/arch/mips64/mm/pg-andes.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/pg-andes.c
--- linux-2.4.20/arch/mips64/mm/pg-andes.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/pg-andes.c	2002-09-28 20:49:20.000000000 -0500
@@ -0,0 +1,83 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * Copyright (C) 1997, 1998, 1999 Ralf Baechle (ralf@gnu.org)
+ * Copyright (C) 1999 Silicon Graphics, Inc.
+ * Copyright (C) 2000 Kanoj Sarcar (kanoj@sgi.com)
+ */
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/sched.h>
+#include <linux/mm.h>
+#include <asm/page.h>
+#include <asm/pgtable.h>
+#include <asm/r10kcache.h>
+#include <asm/system.h>
+#include <asm/mmu_context.h>
+
+/*
+ * This version has been tuned on an Origin.  For other machines the arguments
+ * of the pref instructin may have to be tuned differently.
+ */
+void andes_clear_page(void * page)
+{
+	__asm__ __volatile__(
+		".set\tnoreorder\n\t"
+		".set\tnoat\n\t"
+		"daddiu\t$1,%0,%2\n"
+		"1:\tpref 7,512(%0)\n\t"
+		"sd\t$0,(%0)\n\t"
+		"sd\t$0,8(%0)\n\t"
+		"sd\t$0,16(%0)\n\t"
+		"sd\t$0,24(%0)\n\t"
+		"daddiu\t%0,64\n\t"
+		"sd\t$0,-32(%0)\n\t"
+		"sd\t$0,-24(%0)\n\t"
+		"sd\t$0,-16(%0)\n\t"
+		"bne\t$1,%0,1b\n\t"
+		"sd\t$0,-8(%0)\n\t"
+		".set\tat\n\t"
+		".set\treorder"
+		: "=r" (page)
+		: "0" (page), "I" (PAGE_SIZE)
+		: "memory");
+}
+
+/* R10000 has no Create_Dirty type cacheops.  */
+void andes_copy_page(void * to, void * from)
+{
+	unsigned long dummy1, dummy2, reg1, reg2, reg3, reg4;
+
+	__asm__ __volatile__(
+		".set\tnoreorder\n\t"
+		".set\tnoat\n\t"
+		"daddiu\t$1,%0,%8\n"
+		"1:\tpref\t0,2*128(%1)\n\t"
+		"pref\t1,2*128(%0)\n\t"
+		"ld\t%2,(%1)\n\t"
+		"ld\t%3,8(%1)\n\t"
+		"ld\t%4,16(%1)\n\t"
+		"ld\t%5,24(%1)\n\t"
+		"sd\t%2,(%0)\n\t"
+		"sd\t%3,8(%0)\n\t"
+		"sd\t%4,16(%0)\n\t"
+		"sd\t%5,24(%0)\n\t"
+		"daddiu\t%0,64\n\t"
+		"daddiu\t%1,64\n\t"
+		"ld\t%2,-32(%1)\n\t"
+		"ld\t%3,-24(%1)\n\t"
+		"ld\t%4,-16(%1)\n\t"
+		"ld\t%5,-8(%1)\n\t"
+		"sd\t%2,-32(%0)\n\t"
+		"sd\t%3,-24(%0)\n\t"
+		"sd\t%4,-16(%0)\n\t"
+		"bne\t$1,%0,1b\n\t"
+		" sd\t%5,-8(%0)\n\t"
+		".set\tat\n\t"
+		".set\treorder"
+		:"=r" (dummy1), "=r" (dummy2), "=&r" (reg1), "=&r" (reg2),
+		 "=&r" (reg3), "=&r" (reg4)
+		:"0" (to), "1" (from), "I" (PAGE_SIZE));
+}
diff -urNd -urNd linux-2.4.20/arch/mips64/mm/pg-r4k.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/pg-r4k.c
--- linux-2.4.20/arch/mips64/mm/pg-r4k.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/pg-r4k.c	2003-01-24 06:58:30.000000000 -0600
@@ -0,0 +1,643 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * r4xx0.c: R4000 processor variant specific MMU/Cache routines.
+ *
+ * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
+ * Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Ralf Baechle (ralf@gnu.org)
+ * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
+ */
+#include <linux/config.h>
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/sched.h>
+#include <linux/mm.h>
+
+#include <asm/io.h>
+#include <asm/page.h>
+#include <asm/pgtable.h>
+#include <asm/system.h>
+#include <asm/bootinfo.h>
+#include <asm/mmu_context.h>
+#include <asm/cpu.h>
+
+#include <asm/cacheops.h>
+
+#undef DEBUG_CACHE
+
+/*
+ * Zero an entire page.  Basically a simple unrolled loop should do the
+ * job but we want more performance by saving memory bus bandwidth.  We
+ * have five flavours of the routine available for:
+ *
+ * - 16byte cachelines and no second level cache
+ * - 32byte cachelines second level cache
+ * - a version which handles the buggy R4600 v1.x
+ * - a version which handles the buggy R4600 v2.0
+ * - Finally a last version without fancy cache games for the SC and MC
+ *   versions of R4000 and R4400.
+ */
+
+void r4k_clear_page_d16(void * page)
+{
+	__asm__ __volatile__(
+		".set\tnoreorder\n\t"
+		".set\tnoat\n\t"
+		"daddiu\t$1,%0,%2\n"
+		"1:\tcache\t%3,(%0)\n\t"
+		"sd\t$0,(%0)\n\t"
+		"sd\t$0,8(%0)\n\t"
+		"cache\t%3,16(%0)\n\t"
+		"sd\t$0,16(%0)\n\t"
+		"sd\t$0,24(%0)\n\t"
+		"daddiu\t%0,64\n\t"
+		"cache\t%3,-32(%0)\n\t"
+		"sd\t$0,-32(%0)\n\t"
+		"sd\t$0,-24(%0)\n\t"
+		"cache\t%3,-16(%0)\n\t"
+		"sd\t$0,-16(%0)\n\t"
+		"bne\t$1,%0,1b\n\t"
+		"sd\t$0,-8(%0)\n\t"
+		".set\tat\n\t"
+		".set\treorder"
+		: "=r" (page)
+		: "0" (page), "I" (PAGE_SIZE), "i" (Create_Dirty_Excl_D)
+		: "memory");
+}
+
+void r4k_clear_page_d32(void * page)
+{
+	__asm__ __volatile__(
+		".set\tnoreorder\n\t"
+		".set\tnoat\n\t"
+		"daddiu\t$1,%0,%2\n"
+		"1:\tcache\t%3,(%0)\n\t"
+		"sd\t$0,(%0)\n\t"
+		"sd\t$0,8(%0)\n\t"
+		"sd\t$0,16(%0)\n\t"
+		"sd\t$0,24(%0)\n\t"
+		"daddiu\t%0,64\n\t"
+		"cache\t%3,-32(%0)\n\t"
+		"sd\t$0,-32(%0)\n\t"
+		"sd\t$0,-24(%0)\n\t"
+		"sd\t$0,-16(%0)\n\t"
+		"bne\t$1,%0,1b\n\t"
+		"sd\t$0,-8(%0)\n\t"
+		".set\tat\n\t"
+		".set\treorder"
+		: "=r" (page)
+		: "0" (page), "I" (PAGE_SIZE), "i" (Create_Dirty_Excl_D)
+		: "memory");
+}
+
+
+/*
+ * This flavour of r4k_clear_page is for the R4600 V1.x.  Cite from the
+ * IDT R4600 V1.7 errata:
+ *
+ *  18. The CACHE instructions Hit_Writeback_Invalidate_D, Hit_Writeback_D,
+ *      Hit_Invalidate_D and Create_Dirty_Excl_D should only be
+ *      executed if there is no other dcache activity. If the dcache is
+ *      accessed for another instruction immeidately preceding when these
+ *      cache instructions are executing, it is possible that the dcache
+ *      tag match outputs used by these cache instructions will be
+ *      incorrect. These cache instructions should be preceded by at least
+ *      four instructions that are not any kind of load or store
+ *      instruction.
+ *
+ *      This is not allowed:    lw
+ *                              nop
+ *                              nop
+ *                              nop
+ *                              cache       Hit_Writeback_Invalidate_D
+ *
+ *      This is allowed:        lw
+ *                              nop
+ *                              nop
+ *                              nop
+ *                              nop
+ *                              cache       Hit_Writeback_Invalidate_D
+ */
+void r4k_clear_page_r4600_v1(void * page)
+{
+	__asm__ __volatile__(
+		".set\tnoreorder\n\t"
+		".set\tnoat\n\t"
+		"daddiu\t$1,%0,%2\n"
+		"1:\tnop\n\t"
+		"nop\n\t"
+		"nop\n\t"
+		"nop\n\t"
+		"cache\t%3,(%0)\n\t"
+		"sd\t$0,(%0)\n\t"
+		"sd\t$0,8(%0)\n\t"
+		"sd\t$0,16(%0)\n\t"
+		"sd\t$0,24(%0)\n\t"
+		"daddiu\t%0,64\n\t"
+		"nop\n\t"
+		"nop\n\t"
+		"nop\n\t"
+		"cache\t%3,-32(%0)\n\t"
+		"sd\t$0,-32(%0)\n\t"
+		"sd\t$0,-24(%0)\n\t"
+		"sd\t$0,-16(%0)\n\t"
+		"bne\t$1,%0,1b\n\t"
+		"sd\t$0,-8(%0)\n\t"
+		".set\tat\n\t"
+		".set\treorder"
+		: "=r" (page)
+		: "0" (page), "I" (PAGE_SIZE), "i" (Create_Dirty_Excl_D)
+		: "memory");
+}
+
+/*
+ * And this one is for the R4600 V2.0
+ */
+void r4k_clear_page_r4600_v2(void * page)
+{
+	unsigned int flags;
+
+	local_irq_save(flags);
+	*(volatile unsigned int *)KSEG1;
+	__asm__ __volatile__(
+		".set\tnoreorder\n\t"
+		".set\tnoat\n\t"
+		"daddiu\t$1,%0,%2\n"
+		"1:\tcache\t%3,(%0)\n\t"
+		"sd\t$0,(%0)\n\t"
+		"sd\t$0,8(%0)\n\t"
+		"sd\t$0,16(%0)\n\t"
+		"sd\t$0,24(%0)\n\t"
+		"daddiu\t%0,64\n\t"
+		"cache\t%3,-32(%0)\n\t"
+		"sd\t$0,-32(%0)\n\t"
+		"sd\t$0,-24(%0)\n\t"
+		"sd\t$0,-16(%0)\n\t"
+		"bne\t$1,%0,1b\n\t"
+		"sd\t$0,-8(%0)\n\t"
+		".set\tat\n\t"
+		".set\treorder"
+		: "=r" (page)
+		: "0" (page), "I" (PAGE_SIZE), "i" (Create_Dirty_Excl_D)
+		: "memory");
+	local_irq_restore(flags);
+}
+
+/*
+ * The next 4 versions are optimized for all possible scache configurations
+ * of the SC / MC versions of R4000 and R4400 ...
+ *
+ * Todo: For even better performance we should have a routine optimized for
+ * every legal combination of dcache / scache linesize.  When I (Ralf) tried
+ * this the kernel crashed shortly after mounting the root filesystem.  CPU
+ * bug?  Weirdo cache instruction semantics?
+ */
+void r4k_clear_page_s16(void * page)
+{
+	__asm__ __volatile__(
+		".set\tnoreorder\n\t"
+		".set\tnoat\n\t"
+		"daddiu\t$1,%0,%2\n"
+		"1:\tcache\t%3,(%0)\n\t"
+		"sd\t$0,(%0)\n\t"
+		"sd\t$0,8(%0)\n\t"
+		"cache\t%3,16(%0)\n\t"
+		"sd\t$0,16(%0)\n\t"
+		"sd\t$0,24(%0)\n\t"
+		"daddiu\t%0,64\n\t"
+		"cache\t%3,-32(%0)\n\t"
+		"sd\t$0,-32(%0)\n\t"
+		"sd\t$0,-24(%0)\n\t"
+		"cache\t%3,-16(%0)\n\t"
+		"sd\t$0,-16(%0)\n\t"
+		"bne\t$1,%0,1b\n\t"
+		"sd\t$0,-8(%0)\n\t"
+		".set\tat\n\t"
+		".set\treorder"
+		: "=r" (page)
+		: "0" (page), "I" (PAGE_SIZE), "i" (Create_Dirty_Excl_SD)
+		: "memory");
+}
+
+void r4k_clear_page_s32(void * page)
+{
+	__asm__ __volatile__(
+		".set\tnoreorder\n\t"
+		".set\tnoat\n\t"
+		"daddiu\t$1,%0,%2\n"
+		"1:\tcache\t%3,(%0)\n\t"
+		"sd\t$0,(%0)\n\t"
+		"sd\t$0,8(%0)\n\t"
+		"sd\t$0,16(%0)\n\t"
+		"sd\t$0,24(%0)\n\t"
+		"daddiu\t%0,64\n\t"
+		"cache\t%3,-32(%0)\n\t"
+		"sd\t$0,-32(%0)\n\t"
+		"sd\t$0,-24(%0)\n\t"
+		"sd\t$0,-16(%0)\n\t"
+		"bne\t$1,%0,1b\n\t"
+		"sd\t$0,-8(%0)\n\t"
+		".set\tat\n\t"
+		".set\treorder"
+		: "=r" (page)
+		: "0" (page), "I" (PAGE_SIZE), "i" (Create_Dirty_Excl_SD)
+		: "memory");
+}
+
+void r4k_clear_page_s64(void * page)
+{
+	__asm__ __volatile__(
+		".set\tnoreorder\n\t"
+		".set\tnoat\n\t"
+		"daddiu\t$1,%0,%2\n"
+		"1:\tcache\t%3,(%0)\n\t"
+		"sd\t$0,(%0)\n\t"
+		"sd\t$0,8(%0)\n\t"
+		"sd\t$0,16(%0)\n\t"
+		"sd\t$0,24(%0)\n\t"
+		"daddiu\t%0,64\n\t"
+		"sd\t$0,-32(%0)\n\t"
+		"sd\t$0,-24(%0)\n\t"
+		"sd\t$0,-16(%0)\n\t"
+		"bne\t$1,%0,1b\n\t"
+		"sd\t$0,-8(%0)\n\t"
+		".set\tat\n\t"
+		".set\treorder"
+		: "=r" (page)
+		: "0" (page), "I" (PAGE_SIZE), "i" (Create_Dirty_Excl_SD)
+		: "memory");
+}
+
+void r4k_clear_page_s128(void * page)
+{
+	__asm__ __volatile__(
+		".set\tnoreorder\n\t"
+		".set\tnoat\n\t"
+		"daddiu\t$1,%0,%2\n"
+		"1:\tcache\t%3,(%0)\n\t"
+		"sd\t$0,(%0)\n\t"
+		"sd\t$0,8(%0)\n\t"
+		"sd\t$0,16(%0)\n\t"
+		"sd\t$0,24(%0)\n\t"
+		"sd\t$0,32(%0)\n\t"
+		"sd\t$0,40(%0)\n\t"
+		"sd\t$0,48(%0)\n\t"
+		"sd\t$0,56(%0)\n\t"
+		"daddiu\t%0,128\n\t"
+		"sd\t$0,-64(%0)\n\t"
+		"sd\t$0,-56(%0)\n\t"
+		"sd\t$0,-48(%0)\n\t"
+		"sd\t$0,-40(%0)\n\t"
+		"sd\t$0,-32(%0)\n\t"
+		"sd\t$0,-24(%0)\n\t"
+		"sd\t$0,-16(%0)\n\t"
+		"bne\t$1,%0,1b\n\t"
+		"sd\t$0,-8(%0)\n\t"
+		".set\tat\n\t"
+		".set\treorder"
+		: "=r" (page)
+		: "0" (page), "I" (PAGE_SIZE), "i" (Create_Dirty_Excl_SD)
+		: "memory");
+}
+
+
+/*
+ * This is still inefficient.  We only can do better if we know the
+ * virtual address where the copy will be accessed.
+ */
+
+void r4k_copy_page_d16(void * to, void * from)
+{
+	unsigned long dummy1, dummy2, reg1, reg2;
+
+	__asm__ __volatile__(
+		".set\tnoreorder\n\t"
+		".set\tnoat\n\t"
+		"daddiu\t$1,%0,%6\n"
+		"1:\tcache\t%7,(%0)\n\t"
+		"ld\t%2,(%1)\n\t"
+		"ld\t%3,8(%1)\n\t"
+		"sd\t%2,(%0)\n\t"
+		"sd\t%3,8(%0)\n\t"
+		"cache\t%7,16(%0)\n\t"
+		"ld\t%2,16(%1)\n\t"
+		"ld\t%3,24(%1)\n\t"
+		"sd\t%2,16(%0)\n\t"
+		"sd\t%3,24(%0)\n\t"
+		"cache\t%7,32(%0)\n\t"
+		"daddiu\t%0,64\n\t"
+		"daddiu\t%1,64\n\t"
+		"ld\t%2,-32(%1)\n\t"
+		"ld\t%3,-24(%1)\n\t"
+		"sd\t%2,-32(%0)\n\t"
+		"sd\t%3,-24(%0)\n\t"
+		"cache\t%7,-16(%0)\n\t"
+		"ld\t%2,-16(%1)\n\t"
+		"ld\t%3,-8(%1)\n\t"
+		"sd\t%2,-16(%0)\n\t"
+		"bne\t$1,%0,1b\n\t"
+		" sd\t%3,-8(%0)\n\t"
+		".set\tat\n\t"
+		".set\treorder"
+		:"=r" (dummy1), "=r" (dummy2), "=&r" (reg1), "=&r" (reg2)
+		:"0" (to), "1" (from), "I" (PAGE_SIZE),
+		 "i" (Create_Dirty_Excl_D));
+}
+
+void r4k_copy_page_d32(void * to, void * from)
+{
+	unsigned long dummy1, dummy2, reg1, reg2;
+
+	__asm__ __volatile__(
+		".set\tnoreorder\n\t"
+		".set\tnoat\n\t"
+		"daddiu\t$1,%0,%6\n"
+		"1:\tcache\t%7,(%0)\n\t"
+		"ld\t%2,(%1)\n\t"
+		"ld\t%3,8(%1)\n\t"
+		"sd\t%2,(%0)\n\t"
+		"sd\t%3,8(%0)\n\t"
+		"ld\t%2,16(%1)\n\t"
+		"ld\t%3,24(%1)\n\t"
+		"sd\t%2,16(%0)\n\t"
+		"sd\t%3,24(%0)\n\t"
+		"cache\t%7,32(%0)\n\t"
+		"daddiu\t%0,64\n\t"
+		"daddiu\t%1,64\n\t"
+		"ld\t%2,-32(%1)\n\t"
+		"ld\t%3,-24(%1)\n\t"
+		"sd\t%2,-32(%0)\n\t"
+		"sd\t%3,-24(%0)\n\t"
+		"ld\t%2,-16(%1)\n\t"
+		"ld\t%3,-8(%1)\n\t"
+		"sd\t%2,-16(%0)\n\t"
+		"bne\t$1,%0,1b\n\t"
+		" sd\t%3,-8(%0)\n\t"
+		".set\tat\n\t"
+		".set\treorder"
+		:"=r" (dummy1), "=r" (dummy2), "=&r" (reg1), "=&r" (reg2)
+		:"0" (to), "1" (from), "I" (PAGE_SIZE),
+		 "i" (Create_Dirty_Excl_D));
+}
+
+/*
+ * Again a special version for the R4600 V1.x
+ */
+void r4k_copy_page_r4600_v1(void * to, void * from)
+{
+	unsigned long dummy1, dummy2, reg1, reg2;
+
+	__asm__ __volatile__(
+		".set\tnoreorder\n\t"
+		".set\tnoat\n\t"
+		"daddiu\t$1,%0,%6\n"
+		"1:\tnop\n\t"
+		"nop\n\t"
+		"nop\n\t"
+		"nop\n\t"
+		"\tcache\t%7,(%0)\n\t"
+		"ld\t%2,(%1)\n\t"
+		"ld\t%3,8(%1)\n\t"
+		"sd\t%2,(%0)\n\t"
+		"sd\t%3,8(%0)\n\t"
+		"ld\t%2,16(%1)\n\t"
+		"ld\t%3,24(%1)\n\t"
+		"sd\t%2,16(%0)\n\t"
+		"sd\t%3,24(%0)\n\t"
+		"nop\n\t"
+		"nop\n\t"
+		"nop\n\t"
+		"nop\n\t"
+		"cache\t%7,32(%0)\n\t"
+		"daddiu\t%0,64\n\t"
+		"daddiu\t%1,64\n\t"
+		"ld\t%2,-32(%1)\n\t"
+		"ld\t%3,-24(%1)\n\t"
+		"sd\t%2,-32(%0)\n\t"
+		"sd\t%3,-24(%0)\n\t"
+		"ld\t%2,-16(%1)\n\t"
+		"ld\t%3,-8(%1)\n\t"
+		"sd\t%2,-16(%0)\n\t"
+		"bne\t$1,%0,1b\n\t"
+		" sd\t%3,-8(%0)\n\t"
+		".set\tat\n\t"
+		".set\treorder"
+		:"=r" (dummy1), "=r" (dummy2), "=&r" (reg1), "=&r" (reg2)
+		:"0" (to), "1" (from), "I" (PAGE_SIZE),
+		 "i" (Create_Dirty_Excl_D));
+}
+
+void r4k_copy_page_r4600_v2(void * to, void * from)
+{
+	unsigned long dummy1, dummy2, reg1, reg2;
+	unsigned int flags;
+
+	local_irq_save(flags);
+	__asm__ __volatile__(
+		".set\tnoreorder\n\t"
+		".set\tnoat\n\t"
+		"daddiu\t$1,%0,%6\n"
+		"1:\tnop\n\t"
+		"nop\n\t"
+		"nop\n\t"
+		"nop\n\t"
+		"\tcache\t%7,(%0)\n\t"
+		"ld\t%2,(%1)\n\t"
+		"ld\t%3,8(%1)\n\t"
+		"sd\t%2,(%0)\n\t"
+		"sd\t%3,8(%0)\n\t"
+		"ld\t%2,16(%1)\n\t"
+		"ld\t%3,24(%1)\n\t"
+		"sd\t%2,16(%0)\n\t"
+		"sd\t%3,24(%0)\n\t"
+		"nop\n\t"
+		"nop\n\t"
+		"nop\n\t"
+		"nop\n\t"
+		"cache\t%7,32(%0)\n\t"
+		"daddiu\t%0,64\n\t"
+		"daddiu\t%1,64\n\t"
+		"ld\t%2,-32(%1)\n\t"
+		"ld\t%3,-24(%1)\n\t"
+		"sd\t%2,-32(%0)\n\t"
+		"sd\t%3,-24(%0)\n\t"
+		"ld\t%2,-16(%1)\n\t"
+		"ld\t%3,-8(%1)\n\t"
+		"sd\t%2,-16(%0)\n\t"
+		"bne\t$1,%0,1b\n\t"
+		" sd\t%3,-8(%0)\n\t"
+		".set\tat\n\t"
+		".set\treorder"
+		:"=r" (dummy1), "=r" (dummy2), "=&r" (reg1), "=&r" (reg2)
+		:"0" (to), "1" (from), "I" (PAGE_SIZE),
+		 "i" (Create_Dirty_Excl_D));
+	local_irq_restore(flags);
+}
+
+/*
+ * These are for R4000SC / R4400MC
+ */
+void r4k_copy_page_s16(void * to, void * from)
+{
+	unsigned long dummy1, dummy2, reg1, reg2;
+
+	__asm__ __volatile__(
+		".set\tnoreorder\n\t"
+		".set\tnoat\n\t"
+		"daddiu\t$1,%0,%6\n"
+		"1:\tcache\t%7,(%0)\n\t"
+		"ld\t%2,(%1)\n\t"
+		"ld\t%3,8(%1)\n\t"
+		"sd\t%2,(%0)\n\t"
+		"sd\t%3,8(%0)\n\t"
+		"cache\t%7,16(%0)\n\t"
+		"ld\t%2,16(%1)\n\t"
+		"ld\t%3,24(%1)\n\t"
+		"sd\t%2,16(%0)\n\t"
+		"sd\t%3,24(%0)\n\t"
+		"cache\t%7,32(%0)\n\t"
+		"daddiu\t%0,64\n\t"
+		"daddiu\t%1,64\n\t"
+		"ld\t%2,-32(%1)\n\t"
+		"ld\t%3,-24(%1)\n\t"
+		"sd\t%2,-32(%0)\n\t"
+		"sd\t%3,-24(%0)\n\t"
+		"cache\t%7,-16(%0)\n\t"
+		"ld\t%2,-16(%1)\n\t"
+		"ld\t%3,-8(%1)\n\t"
+		"sd\t%2,-16(%0)\n\t"
+		"bne\t$1,%0,1b\n\t"
+		" sd\t%3,-8(%0)\n\t"
+		".set\tat\n\t"
+		".set\treorder"
+		:"=r" (dummy1), "=r" (dummy2), "=&r" (reg1), "=&r" (reg2)
+		:"0" (to), "1" (from), "I" (PAGE_SIZE),
+		 "i" (Create_Dirty_Excl_SD));
+}
+
+void r4k_copy_page_s32(void * to, void * from)
+{
+	unsigned long dummy1, dummy2, reg1, reg2;
+
+	__asm__ __volatile__(
+		".set\tnoreorder\n\t"
+		".set\tnoat\n\t"
+		"daddiu\t$1,%0,%6\n"
+		"1:\tcache\t%7,(%0)\n\t"
+		"ld\t%2,(%1)\n\t"
+		"ld\t%3,8(%1)\n\t"
+		"sd\t%2,(%0)\n\t"
+		"sd\t%3,8(%0)\n\t"
+		"ld\t%2,16(%1)\n\t"
+		"ld\t%3,24(%1)\n\t"
+		"sd\t%2,16(%0)\n\t"
+		"sd\t%3,24(%0)\n\t"
+		"cache\t%7,32(%0)\n\t"
+		"daddiu\t%0,64\n\t"
+		"daddiu\t%1,64\n\t"
+		"ld\t%2,-32(%1)\n\t"
+		"ld\t%3,-24(%1)\n\t"
+		"sd\t%2,-32(%0)\n\t"
+		"sd\t%3,-24(%0)\n\t"
+		"ld\t%2,-16(%1)\n\t"
+		"ld\t%3,-8(%1)\n\t"
+		"sd\t%2,-16(%0)\n\t"
+		"bne\t$1,%0,1b\n\t"
+		" sd\t%3,-8(%0)\n\t"
+		".set\tat\n\t"
+		".set\treorder"
+		:"=r" (dummy1), "=r" (dummy2), "=&r" (reg1), "=&r" (reg2)
+		:"0" (to), "1" (from), "I" (PAGE_SIZE),
+		 "i" (Create_Dirty_Excl_SD));
+}
+
+void r4k_copy_page_s64(void * to, void * from)
+{
+	unsigned long dummy1, dummy2, reg1, reg2;
+
+	__asm__ __volatile__(
+		".set\tnoreorder\n\t"
+		".set\tnoat\n\t"
+		"daddiu\t$1,%0,%6\n"
+		"1:\tcache\t%7,(%0)\n\t"
+		"ld\t%2,(%1)\n\t"
+		"ld\t%3,8(%1)\n\t"
+		"sd\t%2,(%0)\n\t"
+		"sd\t%3,8(%0)\n\t"
+		"ld\t%2,16(%1)\n\t"
+		"ld\t%3,24(%1)\n\t"
+		"sd\t%2,16(%0)\n\t"
+		"sd\t%3,24(%0)\n\t"
+		"daddiu\t%0,64\n\t"
+		"daddiu\t%1,64\n\t"
+		"ld\t%2,-32(%1)\n\t"
+		"ld\t%3,-24(%1)\n\t"
+		"sd\t%2,-32(%0)\n\t"
+		"sd\t%3,-24(%0)\n\t"
+		"ld\t%2,-16(%1)\n\t"
+		"ld\t%3,-8(%1)\n\t"
+		"sd\t%2,-16(%0)\n\t"
+		"bne\t$1,%0,1b\n\t"
+		" sd\t%3,-8(%0)\n\t"
+		".set\tat\n\t"
+		".set\treorder"
+		:"=r" (dummy1), "=r" (dummy2), "=&r" (reg1), "=&r" (reg2)
+		:"0" (to), "1" (from), "I" (PAGE_SIZE),
+		 "i" (Create_Dirty_Excl_SD));
+}
+
+void r4k_copy_page_s128(void * to, void * from)
+{
+	unsigned long dummy1, dummy2;
+	unsigned long reg1, reg2, reg3, reg4;
+
+	__asm__ __volatile__(
+		".set\tnoreorder\n\t"
+		".set\tnoat\n\t"
+		"daddiu\t$1,%0,%8\n"
+		"1:\tcache\t%9,(%0)\n\t"
+		"ld\t%2,(%1)\n\t"
+		"ld\t%3,8(%1)\n\t"
+		"ld\t%4,16(%1)\n\t"
+		"ld\t%5,24(%1)\n\t"
+		"sd\t%2,(%0)\n\t"
+		"sd\t%3,8(%0)\n\t"
+		"sd\t%4,16(%0)\n\t"
+		"sd\t%5,24(%0)\n\t"
+		"ld\t%2,32(%1)\n\t"
+		"ld\t%3,40(%1)\n\t"
+		"ld\t%4,48(%1)\n\t"
+		"ld\t%5,56(%1)\n\t"
+		"sd\t%2,32(%0)\n\t"
+		"sd\t%3,40(%0)\n\t"
+		"sd\t%4,48(%0)\n\t"
+		"sd\t%5,56(%0)\n\t"
+		"daddiu\t%0,128\n\t"
+		"daddiu\t%1,128\n\t"
+		"ld\t%2,-64(%1)\n\t"
+		"ld\t%3,-56(%1)\n\t"
+		"ld\t%4,-48(%1)\n\t"
+		"ld\t%5,-40(%1)\n\t"
+		"sd\t%2,-64(%0)\n\t"
+		"sd\t%3,-56(%0)\n\t"
+		"sd\t%4,-48(%0)\n\t"
+		"sd\t%5,-40(%0)\n\t"
+		"ld\t%2,-32(%1)\n\t"
+		"ld\t%3,-24(%1)\n\t"
+		"ld\t%4,-16(%1)\n\t"
+		"ld\t%5,-8(%1)\n\t"
+		"sd\t%2,-32(%0)\n\t"
+		"sd\t%3,-24(%0)\n\t"
+		"sd\t%4,-16(%0)\n\t"
+		"bne\t$1,%0,1b\n\t"
+		" sd\t%5,-8(%0)\n\t"
+		".set\tat\n\t"
+		".set\treorder"
+		:"=r" (dummy1), "=r" (dummy2),
+		 "=&r" (reg1), "=&r" (reg2), "=&r" (reg3), "=&r" (reg4)
+		:"0" (to), "1" (from),
+		 "I" (PAGE_SIZE),
+		 "i" (Create_Dirty_Excl_SD));
+}
diff -urNd -urNd linux-2.4.20/arch/mips64/mm/pg-sb1.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/pg-sb1.c
--- linux-2.4.20/arch/mips64/mm/pg-sb1.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/pg-sb1.c	2003-01-07 17:51:51.000000000 -0600
@@ -49,15 +49,19 @@
 		".set noat                  \n"
 		".set mips4                 \n"
 		"     daddiu     $1, %0, %2  \n"  /* Calculate the end of the page to clear */
+#ifdef CONFIG_CPU_HAS_PREFETCH
 		"     pref       " SB1_PREF_STORE_STREAMED_HINT ",  0(%0)  \n"  /* Prefetch the first 4 lines */
 		"     pref       " SB1_PREF_STORE_STREAMED_HINT ", 32(%0)  \n"
 		"     pref       " SB1_PREF_STORE_STREAMED_HINT ", 64(%0)  \n"
 		"     pref       " SB1_PREF_STORE_STREAMED_HINT ", 96(%0)  \n"
+#endif
 		"1:   sd        $0,  0(%0)  \n"  /* Throw out a cacheline of 0's */
 		"     sd        $0,  8(%0)  \n"
 		"     sd        $0, 16(%0)  \n"
 		"     sd        $0, 24(%0)  \n"
+#ifdef CONFIG_CPU_HAS_PREFETCH
 		"     pref       " SB1_PREF_STORE_STREAMED_HINT ",128(%0)  \n"  /* Prefetch 4 lines ahead     */
+#endif
 		"     bne       $1, %0, 1b  \n"
 		"      daddiu     %0, %0, 32\n"  /* Next cacheline (This instruction better be short piped!) */
 		".set pop                   \n"
@@ -87,12 +91,14 @@
 		".set noat                  \n"
 		".set mips4                 \n"
 		"     daddiu     $1, %0, %4  \n"  /* Calculate the end of the page to copy */
+#ifdef CONFIG_CPU_HAS_PREFETCH
 		"     pref       " SB1_PREF_LOAD_STREAMED_HINT  ",  0(%0)  \n"  /* Prefetch the first 3 lines */
 		"     pref       " SB1_PREF_STORE_STREAMED_HINT ",  0(%1)  \n"
 		"     pref       " SB1_PREF_LOAD_STREAMED_HINT  ",  32(%0) \n"
 		"     pref       " SB1_PREF_STORE_STREAMED_HINT ",  32(%1) \n"
 		"     pref       " SB1_PREF_LOAD_STREAMED_HINT  ",  64(%0) \n"
 		"     pref       " SB1_PREF_STORE_STREAMED_HINT ",  64(%1) \n"
+#endif
 		"1:   lw        $2,  0(%0)  \n"  /* Block copy a cacheline */
 		"     lw        $3,  4(%0)  \n"
 		"     lw        $4,  8(%0)  \n"
@@ -101,8 +107,10 @@
 		"     lw        $7, 20(%0)  \n"
 		"     lw        $8, 24(%0)  \n"
 		"     lw        $9, 28(%0)  \n"
+#ifdef CONFIG_CPU_HAS_PREFETCH
 		"     pref       " SB1_PREF_LOAD_STREAMED_HINT  ", 96(%0)  \n"  /* Prefetch ahead         */
 		"     pref       " SB1_PREF_STORE_STREAMED_HINT ", 96(%1)  \n"
+#endif
 		"     sw        $2,  0(%1)  \n"
 		"     sw        $3,  4(%1)  \n"
 		"     sw        $4,  8(%1)  \n"
diff -urNd -urNd linux-2.4.20/arch/mips64/mm/r4xx0.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/r4xx0.c
--- linux-2.4.20/arch/mips64/mm/r4xx0.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/r4xx0.c	1969-12-31 18:00:00.000000000 -0600
@@ -1,2313 +0,0 @@
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * r4xx0.c: R4000 processor variant specific MMU/Cache routines.
- *
- * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
- * Copyright (C) 1997, 1998, 1999, 2000, 2001 Ralf Baechle (ralf@gnu.org)
- * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
- */
-#include <linux/config.h>
-#include <linux/init.h>
-#include <linux/kernel.h>
-#include <linux/sched.h>
-#include <linux/mm.h>
-
-#include <asm/bcache.h>
-#include <asm/io.h>
-#include <asm/page.h>
-#include <asm/pgtable.h>
-#include <asm/system.h>
-#include <asm/bootinfo.h>
-#include <asm/mmu_context.h>
-#include <asm/cpu.h>
-
-/* CP0 hazard avoidance. */
-#define BARRIER __asm__ __volatile__(".set noreorder\n\t" \
-				     "nop; nop; nop; nop; nop; nop;\n\t" \
-				     ".set reorder\n\t")
-
-/* Primary cache parameters. */
-static int icache_size, dcache_size; /* Size in bytes */
-static int ic_lsize, dc_lsize;       /* LineSize in bytes */
-
-/* Secondary cache (if present) parameters. */
-static unsigned int scache_size, sc_lsize;	/* Again, in bytes */
-
-#include <asm/r4kcacheops.h>
-#include <asm/r4kcache.h>
-
-#undef DEBUG_CACHE
-
-
-/*
- * Dummy cache handling routines for machines without boardcaches
- */
-static void no_sc_noop(void) {}
-
-static struct bcache_ops no_sc_ops = {
-	(void *)no_sc_noop, (void *)no_sc_noop,
-	(void *)no_sc_noop, (void *)no_sc_noop
-};
-
-struct bcache_ops *bcops = &no_sc_ops;
-
-/*
- * On processors with QED R4600 style two set assosicative cache
- * this is the bit which selects the way in the cache for the
- * indexed cachops.
- */
-#define icache_waybit (icache_size >> 1)
-#define dcache_waybit (dcache_size >> 1)
-
-/*
- * Zero an entire page.  Basically a simple unrolled loop should do the
- * job but we want more performance by saving memory bus bandwidth.  We
- * have five flavours of the routine available for:
- *
- * - 16byte cachelines and no second level cache
- * - 32byte cachelines second level cache
- * - a version which handles the buggy R4600 v1.x
- * - a version which handles the buggy R4600 v2.0
- * - Finally a last version without fancy cache games for the SC and MC
- *   versions of R4000 and R4400.
- */
-
-static void r4k_clear_page_d16(void * page)
-{
-	__asm__ __volatile__(
-		".set\tnoreorder\n\t"
-		".set\tnoat\n\t"
-		"daddiu\t$1,%0,%2\n"
-		"1:\tcache\t%3,(%0)\n\t"
-		"sd\t$0,(%0)\n\t"
-		"sd\t$0,8(%0)\n\t"
-		"cache\t%3,16(%0)\n\t"
-		"sd\t$0,16(%0)\n\t"
-		"sd\t$0,24(%0)\n\t"
-		"daddiu\t%0,64\n\t"
-		"cache\t%3,-32(%0)\n\t"
-		"sd\t$0,-32(%0)\n\t"
-		"sd\t$0,-24(%0)\n\t"
-		"cache\t%3,-16(%0)\n\t"
-		"sd\t$0,-16(%0)\n\t"
-		"bne\t$1,%0,1b\n\t"
-		"sd\t$0,-8(%0)\n\t"
-		".set\tat\n\t"
-		".set\treorder"
-		: "=r" (page)
-		: "0" (page), "I" (PAGE_SIZE), "i" (Create_Dirty_Excl_D)
-		: "memory");
-}
-
-static void r4k_clear_page_d32(void * page)
-{
-	__asm__ __volatile__(
-		".set\tnoreorder\n\t"
-		".set\tnoat\n\t"
-		"daddiu\t$1,%0,%2\n"
-		"1:\tcache\t%3,(%0)\n\t"
-		"sd\t$0,(%0)\n\t"
-		"sd\t$0,8(%0)\n\t"
-		"sd\t$0,16(%0)\n\t"
-		"sd\t$0,24(%0)\n\t"
-		"daddiu\t%0,64\n\t"
-		"cache\t%3,-32(%0)\n\t"
-		"sd\t$0,-32(%0)\n\t"
-		"sd\t$0,-24(%0)\n\t"
-		"sd\t$0,-16(%0)\n\t"
-		"bne\t$1,%0,1b\n\t"
-		"sd\t$0,-8(%0)\n\t"
-		".set\tat\n\t"
-		".set\treorder"
-		: "=r" (page)
-		: "0" (page), "I" (PAGE_SIZE), "i" (Create_Dirty_Excl_D)
-		: "memory");
-}
-
-
-/*
- * This flavour of r4k_clear_page is for the R4600 V1.x.  Cite from the
- * IDT R4600 V1.7 errata:
- *
- *  18. The CACHE instructions Hit_Writeback_Invalidate_D, Hit_Writeback_D,
- *      Hit_Invalidate_D and Create_Dirty_Excl_D should only be
- *      executed if there is no other dcache activity. If the dcache is
- *      accessed for another instruction immeidately preceding when these
- *      cache instructions are executing, it is possible that the dcache
- *      tag match outputs used by these cache instructions will be
- *      incorrect. These cache instructions should be preceded by at least
- *      four instructions that are not any kind of load or store
- *      instruction.
- *
- *      This is not allowed:    lw
- *                              nop
- *                              nop
- *                              nop
- *                              cache       Hit_Writeback_Invalidate_D
- *
- *      This is allowed:        lw
- *                              nop
- *                              nop
- *                              nop
- *                              nop
- *                              cache       Hit_Writeback_Invalidate_D
- */
-static void r4k_clear_page_r4600_v1(void * page)
-{
-	__asm__ __volatile__(
-		".set\tnoreorder\n\t"
-		".set\tnoat\n\t"
-		"daddiu\t$1,%0,%2\n"
-		"1:\tnop\n\t"
-		"nop\n\t"
-		"nop\n\t"
-		"nop\n\t"
-		"cache\t%3,(%0)\n\t"
-		"sd\t$0,(%0)\n\t"
-		"sd\t$0,8(%0)\n\t"
-		"sd\t$0,16(%0)\n\t"
-		"sd\t$0,24(%0)\n\t"
-		"daddiu\t%0,64\n\t"
-		"nop\n\t"
-		"nop\n\t"
-		"nop\n\t"
-		"cache\t%3,-32(%0)\n\t"
-		"sd\t$0,-32(%0)\n\t"
-		"sd\t$0,-24(%0)\n\t"
-		"sd\t$0,-16(%0)\n\t"
-		"bne\t$1,%0,1b\n\t"
-		"sd\t$0,-8(%0)\n\t"
-		".set\tat\n\t"
-		".set\treorder"
-		: "=r" (page)
-		: "0" (page), "I" (PAGE_SIZE), "i" (Create_Dirty_Excl_D)
-		: "memory");
-}
-
-/*
- * And this one is for the R4600 V2.0
- */
-static void r4k_clear_page_r4600_v2(void * page)
-{
-	unsigned int flags;
-
-	__save_and_cli(flags);
-	*(volatile unsigned int *)KSEG1;
-	__asm__ __volatile__(
-		".set\tnoreorder\n\t"
-		".set\tnoat\n\t"
-		"daddiu\t$1,%0,%2\n"
-		"1:\tcache\t%3,(%0)\n\t"
-		"sd\t$0,(%0)\n\t"
-		"sd\t$0,8(%0)\n\t"
-		"sd\t$0,16(%0)\n\t"
-		"sd\t$0,24(%0)\n\t"
-		"daddiu\t%0,64\n\t"
-		"cache\t%3,-32(%0)\n\t"
-		"sd\t$0,-32(%0)\n\t"
-		"sd\t$0,-24(%0)\n\t"
-		"sd\t$0,-16(%0)\n\t"
-		"bne\t$1,%0,1b\n\t"
-		"sd\t$0,-8(%0)\n\t"
-		".set\tat\n\t"
-		".set\treorder"
-		: "=r" (page)
-		: "0" (page), "I" (PAGE_SIZE), "i" (Create_Dirty_Excl_D)
-		: "memory");
-	__restore_flags(flags);
-}
-
-/*
- * The next 4 versions are optimized for all possible scache configurations
- * of the SC / MC versions of R4000 and R4400 ...
- *
- * Todo: For even better performance we should have a routine optimized for
- * every legal combination of dcache / scache linesize.  When I (Ralf) tried
- * this the kernel crashed shortly after mounting the root filesystem.  CPU
- * bug?  Weirdo cache instruction semantics?
- */
-static void r4k_clear_page_s16(void * page)
-{
-	__asm__ __volatile__(
-		".set\tnoreorder\n\t"
-		".set\tnoat\n\t"
-		"daddiu\t$1,%0,%2\n"
-		"1:\tcache\t%3,(%0)\n\t"
-		"sd\t$0,(%0)\n\t"
-		"sd\t$0,8(%0)\n\t"
-		"cache\t%3,16(%0)\n\t"
-		"sd\t$0,16(%0)\n\t"
-		"sd\t$0,24(%0)\n\t"
-		"daddiu\t%0,64\n\t"
-		"cache\t%3,-32(%0)\n\t"
-		"sd\t$0,-32(%0)\n\t"
-		"sd\t$0,-24(%0)\n\t"
-		"cache\t%3,-16(%0)\n\t"
-		"sd\t$0,-16(%0)\n\t"
-		"bne\t$1,%0,1b\n\t"
-		"sd\t$0,-8(%0)\n\t"
-		".set\tat\n\t"
-		".set\treorder"
-		: "=r" (page)
-		: "0" (page), "I" (PAGE_SIZE), "i" (Create_Dirty_Excl_SD)
-		: "memory");
-}
-
-static void r4k_clear_page_s32(void * page)
-{
-	__asm__ __volatile__(
-		".set\tnoreorder\n\t"
-		".set\tnoat\n\t"
-		"daddiu\t$1,%0,%2\n"
-		"1:\tcache\t%3,(%0)\n\t"
-		"sd\t$0,(%0)\n\t"
-		"sd\t$0,8(%0)\n\t"
-		"sd\t$0,16(%0)\n\t"
-		"sd\t$0,24(%0)\n\t"
-		"daddiu\t%0,64\n\t"
-		"cache\t%3,-32(%0)\n\t"
-		"sd\t$0,-32(%0)\n\t"
-		"sd\t$0,-24(%0)\n\t"
-		"sd\t$0,-16(%0)\n\t"
-		"bne\t$1,%0,1b\n\t"
-		"sd\t$0,-8(%0)\n\t"
-		".set\tat\n\t"
-		".set\treorder"
-		: "=r" (page)
-		: "0" (page), "I" (PAGE_SIZE), "i" (Create_Dirty_Excl_SD)
-		: "memory");
-}
-
-static void r4k_clear_page_s64(void * page)
-{
-	__asm__ __volatile__(
-		".set\tnoreorder\n\t"
-		".set\tnoat\n\t"
-		"daddiu\t$1,%0,%2\n"
-		"1:\tcache\t%3,(%0)\n\t"
-		"sd\t$0,(%0)\n\t"
-		"sd\t$0,8(%0)\n\t"
-		"sd\t$0,16(%0)\n\t"
-		"sd\t$0,24(%0)\n\t"
-		"daddiu\t%0,64\n\t"
-		"sd\t$0,-32(%0)\n\t"
-		"sd\t$0,-24(%0)\n\t"
-		"sd\t$0,-16(%0)\n\t"
-		"bne\t$1,%0,1b\n\t"
-		"sd\t$0,-8(%0)\n\t"
-		".set\tat\n\t"
-		".set\treorder"
-		: "=r" (page)
-		: "0" (page), "I" (PAGE_SIZE), "i" (Create_Dirty_Excl_SD)
-		: "memory");
-}
-
-static void r4k_clear_page_s128(void * page)
-{
-	__asm__ __volatile__(
-		".set\tnoreorder\n\t"
-		".set\tnoat\n\t"
-		"daddiu\t$1,%0,%2\n"
-		"1:\tcache\t%3,(%0)\n\t"
-		"sd\t$0,(%0)\n\t"
-		"sd\t$0,8(%0)\n\t"
-		"sd\t$0,16(%0)\n\t"
-		"sd\t$0,24(%0)\n\t"
-		"sd\t$0,32(%0)\n\t"
-		"sd\t$0,40(%0)\n\t"
-		"sd\t$0,48(%0)\n\t"
-		"sd\t$0,56(%0)\n\t"
-		"daddiu\t%0,128\n\t"
-		"sd\t$0,-64(%0)\n\t"
-		"sd\t$0,-56(%0)\n\t"
-		"sd\t$0,-48(%0)\n\t"
-		"sd\t$0,-40(%0)\n\t"
-		"sd\t$0,-32(%0)\n\t"
-		"sd\t$0,-24(%0)\n\t"
-		"sd\t$0,-16(%0)\n\t"
-		"bne\t$1,%0,1b\n\t"
-		"sd\t$0,-8(%0)\n\t"
-		".set\tat\n\t"
-		".set\treorder"
-		: "=r" (page)
-		: "0" (page), "I" (PAGE_SIZE), "i" (Create_Dirty_Excl_SD)
-		: "memory");
-}
-
-
-/*
- * This is still inefficient.  We only can do better if we know the
- * virtual address where the copy will be accessed.
- */
-
-static void r4k_copy_page_d16(void * to, void * from)
-{
-	unsigned long dummy1, dummy2, reg1, reg2;
-
-	__asm__ __volatile__(
-		".set\tnoreorder\n\t"
-		".set\tnoat\n\t"
-		"daddiu\t$1,%0,%6\n"
-		"1:\tcache\t%7,(%0)\n\t"
-		"ld\t%2,(%1)\n\t"
-		"ld\t%3,8(%1)\n\t"
-		"sd\t%2,(%0)\n\t"
-		"sd\t%3,8(%0)\n\t"
-		"cache\t%7,16(%0)\n\t"
-		"ld\t%2,16(%1)\n\t"
-		"ld\t%3,24(%1)\n\t"
-		"sd\t%2,16(%0)\n\t"
-		"sd\t%3,24(%0)\n\t"
-		"cache\t%7,32(%0)\n\t"
-		"daddiu\t%0,64\n\t"
-		"daddiu\t%1,64\n\t"
-		"ld\t%2,-32(%1)\n\t"
-		"ld\t%3,-24(%1)\n\t"
-		"sd\t%2,-32(%0)\n\t"
-		"sd\t%3,-24(%0)\n\t"
-		"cache\t%7,-16(%0)\n\t"
-		"ld\t%2,-16(%1)\n\t"
-		"ld\t%3,-8(%1)\n\t"
-		"sd\t%2,-16(%0)\n\t"
-		"bne\t$1,%0,1b\n\t"
-		" sd\t%3,-8(%0)\n\t"
-		".set\tat\n\t"
-		".set\treorder"
-		:"=r" (dummy1), "=r" (dummy2), "=&r" (reg1), "=&r" (reg2)
-		:"0" (to), "1" (from), "I" (PAGE_SIZE),
-		 "i" (Create_Dirty_Excl_D));
-}
-
-static void r4k_copy_page_d32(void * to, void * from)
-{
-	unsigned long dummy1, dummy2, reg1, reg2;
-
-	__asm__ __volatile__(
-		".set\tnoreorder\n\t"
-		".set\tnoat\n\t"
-		"daddiu\t$1,%0,%6\n"
-		"1:\tcache\t%7,(%0)\n\t"
-		"ld\t%2,(%1)\n\t"
-		"ld\t%3,8(%1)\n\t"
-		"sd\t%2,(%0)\n\t"
-		"sd\t%3,8(%0)\n\t"
-		"ld\t%2,16(%1)\n\t"
-		"ld\t%3,24(%1)\n\t"
-		"sd\t%2,16(%0)\n\t"
-		"sd\t%3,24(%0)\n\t"
-		"cache\t%7,32(%0)\n\t"
-		"daddiu\t%0,64\n\t"
-		"daddiu\t%1,64\n\t"
-		"ld\t%2,-32(%1)\n\t"
-		"ld\t%3,-24(%1)\n\t"
-		"sd\t%2,-32(%0)\n\t"
-		"sd\t%3,-24(%0)\n\t"
-		"ld\t%2,-16(%1)\n\t"
-		"ld\t%3,-8(%1)\n\t"
-		"sd\t%2,-16(%0)\n\t"
-		"bne\t$1,%0,1b\n\t"
-		" sd\t%3,-8(%0)\n\t"
-		".set\tat\n\t"
-		".set\treorder"
-		:"=r" (dummy1), "=r" (dummy2), "=&r" (reg1), "=&r" (reg2)
-		:"0" (to), "1" (from), "I" (PAGE_SIZE),
-		 "i" (Create_Dirty_Excl_D));
-}
-
-/*
- * Again a special version for the R4600 V1.x
- */
-static void r4k_copy_page_r4600_v1(void * to, void * from)
-{
-	unsigned long dummy1, dummy2, reg1, reg2;
-
-	__asm__ __volatile__(
-		".set\tnoreorder\n\t"
-		".set\tnoat\n\t"
-		"daddiu\t$1,%0,%6\n"
-		"1:\tnop\n\t"
-		"nop\n\t"
-		"nop\n\t"
-		"nop\n\t"
-		"\tcache\t%7,(%0)\n\t"
-		"ld\t%2,(%1)\n\t"
-		"ld\t%3,8(%1)\n\t"
-		"sd\t%2,(%0)\n\t"
-		"sd\t%3,8(%0)\n\t"
-		"ld\t%2,16(%1)\n\t"
-		"ld\t%3,24(%1)\n\t"
-		"sd\t%2,16(%0)\n\t"
-		"sd\t%3,24(%0)\n\t"
-		"nop\n\t"
-		"nop\n\t"
-		"nop\n\t"
-		"nop\n\t"
-		"cache\t%7,32(%0)\n\t"
-		"daddiu\t%0,64\n\t"
-		"daddiu\t%1,64\n\t"
-		"ld\t%2,-32(%1)\n\t"
-		"ld\t%3,-24(%1)\n\t"
-		"sd\t%2,-32(%0)\n\t"
-		"sd\t%3,-24(%0)\n\t"
-		"ld\t%2,-16(%1)\n\t"
-		"ld\t%3,-8(%1)\n\t"
-		"sd\t%2,-16(%0)\n\t"
-		"bne\t$1,%0,1b\n\t"
-		" sd\t%3,-8(%0)\n\t"
-		".set\tat\n\t"
-		".set\treorder"
-		:"=r" (dummy1), "=r" (dummy2), "=&r" (reg1), "=&r" (reg2)
-		:"0" (to), "1" (from), "I" (PAGE_SIZE),
-		 "i" (Create_Dirty_Excl_D));
-}
-
-static void r4k_copy_page_r4600_v2(void * to, void * from)
-{
-	unsigned long dummy1, dummy2, reg1, reg2;
-	unsigned int flags;
-
-	__save_and_cli(flags);
-	__asm__ __volatile__(
-		".set\tnoreorder\n\t"
-		".set\tnoat\n\t"
-		"daddiu\t$1,%0,%6\n"
-		"1:\tnop\n\t"
-		"nop\n\t"
-		"nop\n\t"
-		"nop\n\t"
-		"\tcache\t%7,(%0)\n\t"
-		"ld\t%2,(%1)\n\t"
-		"ld\t%3,8(%1)\n\t"
-		"sd\t%2,(%0)\n\t"
-		"sd\t%3,8(%0)\n\t"
-		"ld\t%2,16(%1)\n\t"
-		"ld\t%3,24(%1)\n\t"
-		"sd\t%2,16(%0)\n\t"
-		"sd\t%3,24(%0)\n\t"
-		"nop\n\t"
-		"nop\n\t"
-		"nop\n\t"
-		"nop\n\t"
-		"cache\t%7,32(%0)\n\t"
-		"daddiu\t%0,64\n\t"
-		"daddiu\t%1,64\n\t"
-		"ld\t%2,-32(%1)\n\t"
-		"ld\t%3,-24(%1)\n\t"
-		"sd\t%2,-32(%0)\n\t"
-		"sd\t%3,-24(%0)\n\t"
-		"ld\t%2,-16(%1)\n\t"
-		"ld\t%3,-8(%1)\n\t"
-		"sd\t%2,-16(%0)\n\t"
-		"bne\t$1,%0,1b\n\t"
-		" sd\t%3,-8(%0)\n\t"
-		".set\tat\n\t"
-		".set\treorder"
-		:"=r" (dummy1), "=r" (dummy2), "=&r" (reg1), "=&r" (reg2)
-		:"0" (to), "1" (from), "I" (PAGE_SIZE),
-		 "i" (Create_Dirty_Excl_D));
-	__restore_flags(flags);
-}
-
-/*
- * These are for R4000SC / R4400MC
- */
-static void r4k_copy_page_s16(void * to, void * from)
-{
-	unsigned long dummy1, dummy2, reg1, reg2;
-
-	__asm__ __volatile__(
-		".set\tnoreorder\n\t"
-		".set\tnoat\n\t"
-		"daddiu\t$1,%0,%6\n"
-		"1:\tcache\t%7,(%0)\n\t"
-		"ld\t%2,(%1)\n\t"
-		"ld\t%3,8(%1)\n\t"
-		"sd\t%2,(%0)\n\t"
-		"sd\t%3,8(%0)\n\t"
-		"cache\t%7,16(%0)\n\t"
-		"ld\t%2,16(%1)\n\t"
-		"ld\t%3,24(%1)\n\t"
-		"sd\t%2,16(%0)\n\t"
-		"sd\t%3,24(%0)\n\t"
-		"cache\t%7,32(%0)\n\t"
-		"daddiu\t%0,64\n\t"
-		"daddiu\t%1,64\n\t"
-		"ld\t%2,-32(%1)\n\t"
-		"ld\t%3,-24(%1)\n\t"
-		"sd\t%2,-32(%0)\n\t"
-		"sd\t%3,-24(%0)\n\t"
-		"cache\t%7,-16(%0)\n\t"
-		"ld\t%2,-16(%1)\n\t"
-		"ld\t%3,-8(%1)\n\t"
-		"sd\t%2,-16(%0)\n\t"
-		"bne\t$1,%0,1b\n\t"
-		" sd\t%3,-8(%0)\n\t"
-		".set\tat\n\t"
-		".set\treorder"
-		:"=r" (dummy1), "=r" (dummy2), "=&r" (reg1), "=&r" (reg2)
-		:"0" (to), "1" (from), "I" (PAGE_SIZE),
-		 "i" (Create_Dirty_Excl_SD));
-}
-
-static void r4k_copy_page_s32(void * to, void * from)
-{
-	unsigned long dummy1, dummy2, reg1, reg2;
-
-	__asm__ __volatile__(
-		".set\tnoreorder\n\t"
-		".set\tnoat\n\t"
-		"daddiu\t$1,%0,%6\n"
-		"1:\tcache\t%7,(%0)\n\t"
-		"ld\t%2,(%1)\n\t"
-		"ld\t%3,8(%1)\n\t"
-		"sd\t%2,(%0)\n\t"
-		"sd\t%3,8(%0)\n\t"
-		"ld\t%2,16(%1)\n\t"
-		"ld\t%3,24(%1)\n\t"
-		"sd\t%2,16(%0)\n\t"
-		"sd\t%3,24(%0)\n\t"
-		"cache\t%7,32(%0)\n\t"
-		"daddiu\t%0,64\n\t"
-		"daddiu\t%1,64\n\t"
-		"ld\t%2,-32(%1)\n\t"
-		"ld\t%3,-24(%1)\n\t"
-		"sd\t%2,-32(%0)\n\t"
-		"sd\t%3,-24(%0)\n\t"
-		"ld\t%2,-16(%1)\n\t"
-		"ld\t%3,-8(%1)\n\t"
-		"sd\t%2,-16(%0)\n\t"
-		"bne\t$1,%0,1b\n\t"
-		" sd\t%3,-8(%0)\n\t"
-		".set\tat\n\t"
-		".set\treorder"
-		:"=r" (dummy1), "=r" (dummy2), "=&r" (reg1), "=&r" (reg2)
-		:"0" (to), "1" (from), "I" (PAGE_SIZE),
-		 "i" (Create_Dirty_Excl_SD));
-}
-
-static void r4k_copy_page_s64(void * to, void * from)
-{
-	unsigned long dummy1, dummy2, reg1, reg2;
-
-	__asm__ __volatile__(
-		".set\tnoreorder\n\t"
-		".set\tnoat\n\t"
-		"daddiu\t$1,%0,%6\n"
-		"1:\tcache\t%7,(%0)\n\t"
-		"ld\t%2,(%1)\n\t"
-		"ld\t%3,8(%1)\n\t"
-		"sd\t%2,(%0)\n\t"
-		"sd\t%3,8(%0)\n\t"
-		"ld\t%2,16(%1)\n\t"
-		"ld\t%3,24(%1)\n\t"
-		"sd\t%2,16(%0)\n\t"
-		"sd\t%3,24(%0)\n\t"
-		"daddiu\t%0,64\n\t"
-		"daddiu\t%1,64\n\t"
-		"ld\t%2,-32(%1)\n\t"
-		"ld\t%3,-24(%1)\n\t"
-		"sd\t%2,-32(%0)\n\t"
-		"sd\t%3,-24(%0)\n\t"
-		"ld\t%2,-16(%1)\n\t"
-		"ld\t%3,-8(%1)\n\t"
-		"sd\t%2,-16(%0)\n\t"
-		"bne\t$1,%0,1b\n\t"
-		" sd\t%3,-8(%0)\n\t"
-		".set\tat\n\t"
-		".set\treorder"
-		:"=r" (dummy1), "=r" (dummy2), "=&r" (reg1), "=&r" (reg2)
-		:"0" (to), "1" (from), "I" (PAGE_SIZE),
-		 "i" (Create_Dirty_Excl_SD));
-}
-
-static void r4k_copy_page_s128(void * to, void * from)
-{
-	unsigned long dummy1, dummy2;
-	unsigned long reg1, reg2, reg3, reg4;
-
-	__asm__ __volatile__(
-		".set\tnoreorder\n\t"
-		".set\tnoat\n\t"
-		"daddiu\t$1,%0,%8\n"
-		"1:\tcache\t%9,(%0)\n\t"
-		"ld\t%2,(%1)\n\t"
-		"ld\t%3,8(%1)\n\t"
-		"ld\t%4,16(%1)\n\t"
-		"ld\t%5,24(%1)\n\t"
-		"sd\t%2,(%0)\n\t"
-		"sd\t%3,8(%0)\n\t"
-		"sd\t%4,16(%0)\n\t"
-		"sd\t%5,24(%0)\n\t"
-		"ld\t%2,32(%1)\n\t"
-		"ld\t%3,40(%1)\n\t"
-		"ld\t%4,48(%1)\n\t"
-		"ld\t%5,56(%1)\n\t"
-		"sd\t%2,32(%0)\n\t"
-		"sd\t%3,40(%0)\n\t"
-		"sd\t%4,48(%0)\n\t"
-		"sd\t%5,56(%0)\n\t"
-		"daddiu\t%0,128\n\t"
-		"daddiu\t%1,128\n\t"
-		"ld\t%2,-64(%1)\n\t"
-		"ld\t%3,-56(%1)\n\t"
-		"ld\t%4,-48(%1)\n\t"
-		"ld\t%5,-40(%1)\n\t"
-		"sd\t%2,-64(%0)\n\t"
-		"sd\t%3,-56(%0)\n\t"
-		"sd\t%4,-48(%0)\n\t"
-		"sd\t%5,-40(%0)\n\t"
-		"ld\t%2,-32(%1)\n\t"
-		"ld\t%3,-24(%1)\n\t"
-		"ld\t%4,-16(%1)\n\t"
-		"ld\t%5,-8(%1)\n\t"
-		"sd\t%2,-32(%0)\n\t"
-		"sd\t%3,-24(%0)\n\t"
-		"sd\t%4,-16(%0)\n\t"
-		"bne\t$1,%0,1b\n\t"
-		" sd\t%5,-8(%0)\n\t"
-		".set\tat\n\t"
-		".set\treorder"
-		:"=r" (dummy1), "=r" (dummy2),
-		 "=&r" (reg1), "=&r" (reg2), "=&r" (reg3), "=&r" (reg4)
-		:"0" (to), "1" (from),
-		 "I" (PAGE_SIZE),
-		 "i" (Create_Dirty_Excl_SD));
-}
-
-
-/*
- * If you think for one second that this stuff coming up is a lot
- * of bulky code eating too many kernel cache lines.  Think _again_.
- *
- * Consider:
- * 1) Taken branches have a 3 cycle penalty on R4k
- * 2) The branch itself is a real dead cycle on even R4600/R5000.
- * 3) Only one of the following variants of each type is even used by
- *    the kernel based upon the cache parameters we detect at boot time.
- *
- * QED.
- */
-
-static inline void r4k_flush_cache_all_s16d16i16(void)
-{
-	blast_dcache16(); blast_icache16(); blast_scache16();
-}
-
-static inline void r4k_flush_cache_all_s32d16i16(void)
-{
-	blast_dcache16(); blast_icache16(); blast_scache32();
-}
-
-static inline void r4k_flush_cache_all_s64d16i16(void)
-{
-	blast_dcache16(); blast_icache16(); blast_scache64();
-}
-
-static inline void r4k_flush_cache_all_s128d16i16(void)
-{
-	blast_dcache16(); blast_icache16(); blast_scache128();
-}
-
-static inline void r4k_flush_cache_all_s32d32i32(void)
-{
-	blast_dcache32(); blast_icache32(); blast_scache32();
-}
-
-static inline void r4k_flush_cache_all_s64d32i32(void)
-{
-	blast_dcache32(); blast_icache32(); blast_scache64();
-}
-
-static inline void r4k_flush_cache_all_s128d32i32(void)
-{
-	blast_dcache32(); blast_icache32(); blast_scache128();
-}
-
-static inline void r4k_flush_cache_all_d16i16(void)
-{
-	blast_dcache16(); blast_icache16();
-}
-
-static inline void r4k_flush_cache_all_d32i32(void)
-{
-	blast_dcache32(); blast_icache32();
-}
-
-static void r4k_flush_cache_range_s16d16i16(struct mm_struct *mm,
-					    unsigned long start,
-					    unsigned long end)
-{
-	struct vm_area_struct *vma;
-
-	if (CPU_CONTEXT(smp_processor_id(), mm) == 0)
-		return;
-
-	start &= PAGE_MASK;
-#ifdef DEBUG_CACHE
-	printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
-#endif
-	vma = find_vma(mm, start);
-	if(vma) {
-		if (CPU_CONTEXT(smp_processor_id(), mm) !=
-				CPU_CONTEXT(smp_processor_id(), current->mm)) {
-			r4k_flush_cache_all_s16d16i16();
-		} else {
-			pgd_t *pgd;
-			pmd_t *pmd;
-			pte_t *pte;
-
-			while(start < end) {
-				pgd = pgd_offset(mm, start);
-				pmd = pmd_offset(pgd, start);
-				pte = pte_offset(pmd, start);
-
-				if(pte_val(*pte) & _PAGE_VALID)
-					blast_scache16_page(start);
-				start += PAGE_SIZE;
-			}
-		}
-	}
-}
-
-static void r4k_flush_cache_range_s32d16i16(struct mm_struct *mm,
-					    unsigned long start,
-					    unsigned long end)
-{
-	struct vm_area_struct *vma;
-
-	if (CPU_CONTEXT(smp_processor_id(), mm) == 0)
-		return;
-
-	start &= PAGE_MASK;
-#ifdef DEBUG_CACHE
-	printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
-#endif
-	vma = find_vma(mm, start);
-	if(vma) {
-		if (CPU_CONTEXT(smp_processor_id(), mm) !=
-				CPU_CONTEXT(smp_processor_id(), current->mm)) {
-			r4k_flush_cache_all_s32d16i16();
-		} else {
-			pgd_t *pgd;
-			pmd_t *pmd;
-			pte_t *pte;
-
-			while(start < end) {
-				pgd = pgd_offset(mm, start);
-				pmd = pmd_offset(pgd, start);
-				pte = pte_offset(pmd, start);
-
-				if(pte_val(*pte) & _PAGE_VALID)
-					blast_scache32_page(start);
-				start += PAGE_SIZE;
-			}
-		}
-	}
-}
-
-static void r4k_flush_cache_range_s64d16i16(struct mm_struct *mm,
-					    unsigned long start,
-					    unsigned long end)
-{
-	struct vm_area_struct *vma;
-
-	if (CPU_CONTEXT(smp_processor_id(), mm) == 0)
-		return;
-
-	start &= PAGE_MASK;
-#ifdef DEBUG_CACHE
-	printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
-#endif
-	vma = find_vma(mm, start);
-	if(vma) {
-		if (CPU_CONTEXT(smp_processor_id(), mm) !=
-				CPU_CONTEXT(smp_processor_id(), current->mm)) {
-			r4k_flush_cache_all_s64d16i16();
-		} else {
-			pgd_t *pgd;
-			pmd_t *pmd;
-			pte_t *pte;
-
-			while(start < end) {
-				pgd = pgd_offset(mm, start);
-				pmd = pmd_offset(pgd, start);
-				pte = pte_offset(pmd, start);
-
-				if(pte_val(*pte) & _PAGE_VALID)
-					blast_scache64_page(start);
-				start += PAGE_SIZE;
-			}
-		}
-	}
-}
-
-static void r4k_flush_cache_range_s128d16i16(struct mm_struct *mm,
-					     unsigned long start,
-					     unsigned long end)
-{
-	struct vm_area_struct *vma;
-
-	if (CPU_CONTEXT(smp_processor_id(), mm) == 0)
-		return;
-
-	start &= PAGE_MASK;
-#ifdef DEBUG_CACHE
-	printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
-#endif
-	vma = find_vma(mm, start);
-	if(vma) {
-		if (CPU_CONTEXT(smp_processor_id(), mm) !=
-				CPU_CONTEXT(smp_processor_id(), current->mm)) {
-			r4k_flush_cache_all_s128d16i16();
-		} else {
-			pgd_t *pgd;
-			pmd_t *pmd;
-			pte_t *pte;
-
-			while(start < end) {
-				pgd = pgd_offset(mm, start);
-				pmd = pmd_offset(pgd, start);
-				pte = pte_offset(pmd, start);
-
-				if(pte_val(*pte) & _PAGE_VALID)
-					blast_scache128_page(start);
-				start += PAGE_SIZE;
-			}
-		}
-	}
-}
-
-static void r4k_flush_cache_range_s32d32i32(struct mm_struct *mm,
-					    unsigned long start,
-					    unsigned long end)
-{
-	struct vm_area_struct *vma;
-
-	if (CPU_CONTEXT(smp_processor_id(), mm) == 0)
-		return;
-
-	start &= PAGE_MASK;
-#ifdef DEBUG_CACHE
-	printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
-#endif
-	vma = find_vma(mm, start);
-	if(vma) {
-		if (CPU_CONTEXT(smp_processor_id(), mm) !=
-				CPU_CONTEXT(smp_processor_id(), current->mm)) {
-			r4k_flush_cache_all_s32d32i32();
-		} else {
-			pgd_t *pgd;
-			pmd_t *pmd;
-			pte_t *pte;
-
-			while(start < end) {
-				pgd = pgd_offset(mm, start);
-				pmd = pmd_offset(pgd, start);
-				pte = pte_offset(pmd, start);
-
-				if(pte_val(*pte) & _PAGE_VALID)
-					blast_scache32_page(start);
-				start += PAGE_SIZE;
-			}
-		}
-	}
-}
-
-static void r4k_flush_cache_range_s64d32i32(struct mm_struct *mm,
-					    unsigned long start,
-					    unsigned long end)
-{
-	struct vm_area_struct *vma;
-
-	if (CPU_CONTEXT(smp_processor_id(), mm) == 0)
-		return;
-
-	start &= PAGE_MASK;
-#ifdef DEBUG_CACHE
-	printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
-#endif
-	vma = find_vma(mm, start);
-	if(vma) {
-		if (CPU_CONTEXT(smp_processor_id(), mm) !=
-				CPU_CONTEXT(smp_processor_id(), current->mm)) {
-			r4k_flush_cache_all_s64d32i32();
-		} else {
-			pgd_t *pgd;
-			pmd_t *pmd;
-			pte_t *pte;
-
-			while(start < end) {
-				pgd = pgd_offset(mm, start);
-				pmd = pmd_offset(pgd, start);
-				pte = pte_offset(pmd, start);
-
-				if(pte_val(*pte) & _PAGE_VALID)
-					blast_scache64_page(start);
-				start += PAGE_SIZE;
-			}
-		}
-	}
-}
-
-static void r4k_flush_cache_range_s128d32i32(struct mm_struct *mm,
-					     unsigned long start,
-					     unsigned long end)
-{
-	struct vm_area_struct *vma;
-
-	if (CPU_CONTEXT(smp_processor_id(), mm) != 0)
-		return;
-
-	start &= PAGE_MASK;
-#ifdef DEBUG_CACHE
-	printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
-#endif
-	vma = find_vma(mm, start);
-	if(vma) {
-		if (CPU_CONTEXT(smp_processor_id(), mm) !=
-				CPU_CONTEXT(smp_processor_id(), current->mm)) {
-			r4k_flush_cache_all_s128d32i32();
-		} else {
-			pgd_t *pgd;
-			pmd_t *pmd;
-			pte_t *pte;
-
-			while(start < end) {
-				pgd = pgd_offset(mm, start);
-				pmd = pmd_offset(pgd, start);
-				pte = pte_offset(pmd, start);
-
-				if(pte_val(*pte) & _PAGE_VALID)
-					blast_scache128_page(start);
-				start += PAGE_SIZE;
-			}
-		}
-	}
-}
-
-static void r4k_flush_cache_range_d16i16(struct mm_struct *mm,
-					 unsigned long start,
-					 unsigned long end)
-{
-	if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
-#ifdef DEBUG_CACHE
-		printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
-#endif
-		blast_dcache16(); blast_icache16();
-	}
-}
-
-static void r4k_flush_cache_range_d32i32(struct mm_struct *mm,
-					 unsigned long start,
-					 unsigned long end)
-{
-	if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
-#ifdef DEBUG_CACHE
-		printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
-#endif
-		blast_dcache32(); blast_icache32();
-	}
-}
-
-/*
- * On architectures like the Sparc, we could get rid of lines in
- * the cache created only by a certain context, but on the MIPS
- * (and actually certain Sparc's) we cannot.
- */
-static void r4k_flush_cache_mm_s16d16i16(struct mm_struct *mm)
-{
-	if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
-#ifdef DEBUG_CACHE
-		printk("cmm[%d]", (int)mm->context);
-#endif
-		r4k_flush_cache_all_s16d16i16();
-	}
-}
-
-static void r4k_flush_cache_mm_s32d16i16(struct mm_struct *mm)
-{
-	if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
-#ifdef DEBUG_CACHE
-		printk("cmm[%d]", (int)mm->context);
-#endif
-		r4k_flush_cache_all_s32d16i16();
-	}
-}
-
-static void r4k_flush_cache_mm_s64d16i16(struct mm_struct *mm)
-{
-	if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
-#ifdef DEBUG_CACHE
-		printk("cmm[%d]", (int)mm->context);
-#endif
-		r4k_flush_cache_all_s64d16i16();
-	}
-}
-
-static void r4k_flush_cache_mm_s128d16i16(struct mm_struct *mm)
-{
-	if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
-#ifdef DEBUG_CACHE
-		printk("cmm[%d]", (int)mm->context);
-#endif
-		r4k_flush_cache_all_s128d16i16();
-	}
-}
-
-static void r4k_flush_cache_mm_s32d32i32(struct mm_struct *mm)
-{
-	if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
-#ifdef DEBUG_CACHE
-		printk("cmm[%d]", (int)mm->context);
-#endif
-		r4k_flush_cache_all_s32d32i32();
-	}
-}
-
-static void r4k_flush_cache_mm_s64d32i32(struct mm_struct *mm)
-{
-	if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
-#ifdef DEBUG_CACHE
-		printk("cmm[%d]", (int)mm->context);
-#endif
-		r4k_flush_cache_all_s64d32i32();
-	}
-}
-
-static void r4k_flush_cache_mm_s128d32i32(struct mm_struct *mm)
-{
-	if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
-#ifdef DEBUG_CACHE
-		printk("cmm[%d]", (int)mm->context);
-#endif
-		r4k_flush_cache_all_s128d32i32();
-	}
-}
-
-static void r4k_flush_cache_mm_d16i16(struct mm_struct *mm)
-{
-	if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
-#ifdef DEBUG_CACHE
-		printk("cmm[%d]", (int)mm->context);
-#endif
-		r4k_flush_cache_all_d16i16();
-	}
-}
-
-static void r4k_flush_cache_mm_d32i32(struct mm_struct *mm)
-{
-	if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
-#ifdef DEBUG_CACHE
-		printk("cmm[%d]", (int)mm->context);
-#endif
-		r4k_flush_cache_all_d32i32();
-	}
-}
-
-static void r4k_flush_cache_page_s16d16i16(struct vm_area_struct *vma,
-					   unsigned long page)
-{
-	struct mm_struct *mm = vma->vm_mm;
-	pgd_t *pgdp;
-	pmd_t *pmdp;
-	pte_t *ptep;
-
-	/*
-	 * If ownes no valid ASID yet, cannot possibly have gotten
-	 * this page into the cache.
-	 */
-	if (CPU_CONTEXT(smp_processor_id(), mm) == 0)
-		return;
-
-#ifdef DEBUG_CACHE
-	printk("cpage[%d,%08lx]", (int)mm->context, page);
-#endif
-	page &= PAGE_MASK;
-	pgdp = pgd_offset(mm, page);
-	pmdp = pmd_offset(pgdp, page);
-	ptep = pte_offset(pmdp, page);
-
-	/*
-	 * If the page isn't marked valid, the page cannot possibly be
-	 * in the cache.
-	 */
-	if(!(pte_val(*ptep) & _PAGE_VALID))
-		goto out;
-
-	/* Doing flushes for another ASID than the current one is
-	 * too difficult since stupid R4k caches do a TLB translation
-	 * for every cache flush operation.  So we do indexed flushes
-	 * in that case, which doesn't overly flush the cache too much.
-	 */
-	if (CPU_CONTEXT(smp_processor_id(), mm) !=
-	    CPU_CONTEXT(smp_processor_id(), current->mm)) {
-		/* Do indexed flush, too much work to get the (possible)
-		 * tlb refills to work correctly.
-		 */
-		page = (KSEG0 + (page & (scache_size - 1)));
-		blast_dcache16_page_indexed(page);
-		blast_scache16_page_indexed(page);
-	} else
-		blast_scache16_page(page);
-out:
-}
-
-static void r4k_flush_cache_page_s32d16i16(struct vm_area_struct *vma,
-					   unsigned long page)
-{
-	struct mm_struct *mm = vma->vm_mm;
-	pgd_t *pgdp;
-	pmd_t *pmdp;
-	pte_t *ptep;
-
-	/*
-	 * If ownes no valid ASID yet, cannot possibly have gotten
-	 * this page into the cache.
-	 */
-	if (CPU_CONTEXT(smp_processor_id(), mm) == 0)
-		return;
-
-#ifdef DEBUG_CACHE
-	printk("cpage[%d,%08lx]", (int)mm->context, page);
-#endif
-	page &= PAGE_MASK;
-	pgdp = pgd_offset(mm, page);
-	pmdp = pmd_offset(pgdp, page);
-	ptep = pte_offset(pmdp, page);
-
-	/* If the page isn't marked valid, the page cannot possibly be
-	 * in the cache.
-	 */
-	if(!(pte_val(*ptep) & _PAGE_VALID))
-		goto out;
-
-	/* Doing flushes for another ASID than the current one is
-	 * too difficult since stupid R4k caches do a TLB translation
-	 * for every cache flush operation.  So we do indexed flushes
-	 * in that case, which doesn't overly flush the cache too much.
-	 */
-	if (CPU_CONTEXT(smp_processor_id(), mm) !=
-	    CPU_CONTEXT(smp_processor_id(), current->mm)) {
-		/* Do indexed flush, too much work to get the (possible)
-		 * tlb refills to work correctly.
-		 */
-		page = (KSEG0 + (page & (scache_size - 1)));
-		blast_dcache16_page_indexed(page);
-		blast_scache32_page_indexed(page);
-	} else
-		blast_scache32_page(page);
-out:
-}
-
-static void r4k_flush_cache_page_s64d16i16(struct vm_area_struct *vma,
-					   unsigned long page)
-{
-	struct mm_struct *mm = vma->vm_mm;
-	pgd_t *pgdp;
-	pmd_t *pmdp;
-	pte_t *ptep;
-
-	/*
-	 * If ownes no valid ASID yet, cannot possibly have gotten
-	 * this page into the cache.
-	 */
-	if (CPU_CONTEXT(smp_processor_id(), mm) == 0)
-		return;
-
-#ifdef DEBUG_CACHE
-	printk("cpage[%d,%08lx]", (int)mm->context, page);
-#endif
-	page &= PAGE_MASK;
-	pgdp = pgd_offset(mm, page);
-	pmdp = pmd_offset(pgdp, page);
-	ptep = pte_offset(pmdp, page);
-
-	/* If the page isn't marked valid, the page cannot possibly be
-	 * in the cache.
-	 */
-	if(!(pte_val(*ptep) & _PAGE_VALID))
-		goto out;
-
-	/*
-	 * Doing flushes for another ASID than the current one is
-	 * too difficult since stupid R4k caches do a TLB translation
-	 * for every cache flush operation.  So we do indexed flushes
-	 * in that case, which doesn't overly flush the cache too much.
-	 */
-	if (CPU_CONTEXT(smp_processor_id(), mm) !=
-	    CPU_CONTEXT(smp_processor_id(), current->mm)) {
-		/* Do indexed flush, too much work to get the (possible)
-		 * tlb refills to work correctly.
-		 */
-		page = (KSEG0 + (page & (scache_size - 1)));
-		blast_dcache16_page_indexed(page);
-		blast_scache64_page_indexed(page);
-	} else
-		blast_scache64_page(page);
-out:
-}
-
-static void r4k_flush_cache_page_s128d16i16(struct vm_area_struct *vma,
-					    unsigned long page)
-{
-	struct mm_struct *mm = vma->vm_mm;
-	pgd_t *pgdp;
-	pmd_t *pmdp;
-	pte_t *ptep;
-
-	/*
-	 * If ownes no valid ASID yet, cannot possibly have gotten
-	 * this page into the cache.
-	 */
-	if (CPU_CONTEXT(smp_processor_id(), mm) == 0)
-		return;
-
-#ifdef DEBUG_CACHE
-	printk("cpage[%d,%08lx]", (int)mm->context, page);
-#endif
-	page &= PAGE_MASK;
-	pgdp = pgd_offset(mm, page);
-	pmdp = pmd_offset(pgdp, page);
-	ptep = pte_offset(pmdp, page);
-
-	/*
-	 * If the page isn't marked valid, the page cannot possibly be
-	 * in the cache.
-	 */
-	if(!(pte_val(*ptep) & _PAGE_VALID))
-		goto out;
-
-	/* Doing flushes for another ASID than the current one is
-	 * too difficult since stupid R4k caches do a TLB translation
-	 * for every cache flush operation.  So we do indexed flushes
-	 * in that case, which doesn't overly flush the cache too much.
-	 */
-	if (CPU_CONTEXT(smp_processor_id(), mm) !=
-	    CPU_CONTEXT(smp_processor_id(), current->mm)) {
-		/*
-		 * Do indexed flush, too much work to get the (possible)
-		 * tlb refills to work correctly.
-		 */
-		page = (KSEG0 + (page & (scache_size - 1)));
-		blast_dcache16_page_indexed(page);
-		blast_scache128_page_indexed(page);
-	} else
-		blast_scache128_page(page);
-out:
-}
-
-static void r4k_flush_cache_page_s32d32i32(struct vm_area_struct *vma,
-					   unsigned long page)
-{
-	struct mm_struct *mm = vma->vm_mm;
-	pgd_t *pgdp;
-	pmd_t *pmdp;
-	pte_t *ptep;
-
-	/*
-	 * If ownes no valid ASID yet, cannot possibly have gotten
-	 * this page into the cache.
-	 */
-	if (CPU_CONTEXT(smp_processor_id(), mm) == 0)
-		return;
-
-#ifdef DEBUG_CACHE
-	printk("cpage[%d,%08lx]", (int)mm->context, page);
-#endif
-	page &= PAGE_MASK;
-	pgdp = pgd_offset(mm, page);
-	pmdp = pmd_offset(pgdp, page);
-	ptep = pte_offset(pmdp, page);
-
-	/*
-	 * If the page isn't marked valid, the page cannot possibly be
-	 * in the cache.
-	 */
-	if(!(pte_val(*ptep) & _PAGE_VALID))
-		goto out;
-
-	/*
-	 * Doing flushes for another ASID than the current one is
-	 * too difficult since stupid R4k caches do a TLB translation
-	 * for every cache flush operation.  So we do indexed flushes
-	 * in that case, which doesn't overly flush the cache too much.
-	 */
-	if (CPU_CONTEXT(smp_processor_id(), mm) !=
-	    CPU_CONTEXT(smp_processor_id(), current->mm)) {
-		/*
-		 * Do indexed flush, too much work to get the (possible)
-		 * tlb refills to work correctly.
-		 */
-		page = (KSEG0 + (page & (scache_size - 1)));
-		blast_dcache32_page_indexed(page);
-		blast_scache32_page_indexed(page);
-	} else
-		blast_scache32_page(page);
-out:
-}
-
-static void r4k_flush_cache_page_s64d32i32(struct vm_area_struct *vma,
-					   unsigned long page)
-{
-	struct mm_struct *mm = vma->vm_mm;
-	pgd_t *pgdp;
-	pmd_t *pmdp;
-	pte_t *ptep;
-
-	/*
-	 * If ownes no valid ASID yet, cannot possibly have gotten
-	 * this page into the cache.
-	 */
-	if (CPU_CONTEXT(smp_processor_id(), mm) == 0)
-		return;
-
-#ifdef DEBUG_CACHE
-	printk("cpage[%d,%08lx]", (int)mm->context, page);
-#endif
-	page &= PAGE_MASK;
-	pgdp = pgd_offset(mm, page);
-	pmdp = pmd_offset(pgdp, page);
-	ptep = pte_offset(pmdp, page);
-
-	/*
-	 * If the page isn't marked valid, the page cannot possibly be
-	 * in the cache.
-	 */
-	if(!(pte_val(*ptep) & _PAGE_VALID))
-		goto out;
-
-	/*
-	 * Doing flushes for another ASID than the current one is
-	 * too difficult since stupid R4k caches do a TLB translation
-	 * for every cache flush operation.  So we do indexed flushes
-	 * in that case, which doesn't overly flush the cache too much.
-	 */
-	if (CPU_CONTEXT(smp_processor_id(), mm) !=
-	    CPU_CONTEXT(smp_processor_id(), current->mm)) {
-		/*
-		 * Do indexed flush, too much work to get the (possible)
-		 * tlb refills to work correctly.
-		 */
-		page = (KSEG0 + (page & (scache_size - 1)));
-		blast_dcache32_page_indexed(page);
-		blast_scache64_page_indexed(page);
-	} else
-		blast_scache64_page(page);
-out:
-}
-
-static void r4k_flush_cache_page_s128d32i32(struct vm_area_struct *vma,
-					    unsigned long page)
-{
-	struct mm_struct *mm = vma->vm_mm;
-	pgd_t *pgdp;
-	pmd_t *pmdp;
-	pte_t *ptep;
-
-	/*
-	 * If ownes no valid ASID yet, cannot possibly have gotten
-	 * this page into the cache.
-	 */
-	if (CPU_CONTEXT(smp_processor_id(), mm) == 0)
-		return;
-
-#ifdef DEBUG_CACHE
-	printk("cpage[%d,%08lx]", (int)mm->context, page);
-#endif
-	page &= PAGE_MASK;
-	pgdp = pgd_offset(mm, page);
-	pmdp = pmd_offset(pgdp, page);
-	ptep = pte_offset(pmdp, page);
-
-	/* If the page isn't marked valid, the page cannot possibly be
-	 * in the cache.
-	 */
-	if(!(pte_val(*ptep) & _PAGE_VALID))
-		goto out;
-
-	/*
-	 * Doing flushes for another ASID than the current one is
-	 * too difficult since stupid R4k caches do a TLB translation
-	 * for every cache flush operation.  So we do indexed flushes
-	 * in that case, which doesn't overly flush the cache too much.
-	 */
-	if (CPU_CONTEXT(smp_processor_id(), mm) !=
-	    CPU_CONTEXT(smp_processor_id(), current->mm)) {
-		/* Do indexed flush, too much work to get the (possible)
-		 * tlb refills to work correctly.
-		 */
-		page = (KSEG0 + (page & (scache_size - 1)));
-		blast_dcache32_page_indexed(page);
-		blast_scache128_page_indexed(page);
-	} else
-		blast_scache128_page(page);
-out:
-}
-
-static void r4k_flush_cache_page_d16i16(struct vm_area_struct *vma,
-					unsigned long page)
-{
-	struct mm_struct *mm = vma->vm_mm;
-	pgd_t *pgdp;
-	pmd_t *pmdp;
-	pte_t *ptep;
-
-	/*
-	 * If ownes no valid ASID yet, cannot possibly have gotten
-	 * this page into the cache.
-	 */
-	if (CPU_CONTEXT(smp_processor_id(), mm) == 0)
-		return;
-
-#ifdef DEBUG_CACHE
-	printk("cpage[%d,%08lx]", (int)mm->context, page);
-#endif
-	page &= PAGE_MASK;
-	pgdp = pgd_offset(mm, page);
-	pmdp = pmd_offset(pgdp, page);
-	ptep = pte_offset(pmdp, page);
-
-	/* If the page isn't marked valid, the page cannot possibly be
-	 * in the cache.
-	 */
-	if(!(pte_val(*ptep) & _PAGE_VALID))
-		goto out;
-
-	/*
-	 * Doing flushes for another ASID than the current one is
-	 * too difficult since stupid R4k caches do a TLB translation
-	 * for every cache flush operation.  So we do indexed flushes
-	 * in that case, which doesn't overly flush the cache too much.
-	 */
-	if(mm == current->mm) {
-		blast_dcache16_page(page);
-	} else {
-		/* Do indexed flush, too much work to get the (possible)
-		 * tlb refills to work correctly.
-		 */
-		page = (KSEG0 + (page & (dcache_size - 1)));
-		blast_dcache16_page_indexed(page);
-	}
-out:
-}
-
-static void r4k_flush_cache_page_d32i32(struct vm_area_struct *vma,
-					unsigned long page)
-{
-	struct mm_struct *mm = vma->vm_mm;
-	pgd_t *pgdp;
-	pmd_t *pmdp;
-	pte_t *ptep;
-
-	/*
-	 * If ownes no valid ASID yet, cannot possibly have gotten
-	 * this page into the cache.
-	 */
-	if (CPU_CONTEXT(smp_processor_id(), mm) == 0)
-		return;
-
-#ifdef DEBUG_CACHE
-	printk("cpage[%d,%08lx]", (int)mm->context, page);
-#endif
-	page &= PAGE_MASK;
-	pgdp = pgd_offset(mm, page);
-	pmdp = pmd_offset(pgdp, page);
-	ptep = pte_offset(pmdp, page);
-
-	/*
-	 * If the page isn't marked valid, the page cannot possibly be
-	 * in the cache.
-	 */
-	if(!(pte_val(*ptep) & _PAGE_PRESENT))
-		goto out;
-
-	/*
-	 * Doing flushes for another ASID than the current one is
-	 * too difficult since stupid R4k caches do a TLB translation
-	 * for every cache flush operation.  So we do indexed flushes
-	 * in that case, which doesn't overly flush the cache too much.
-	 */
-	if((mm == current->mm) && (pte_val(*ptep) & _PAGE_VALID)) {
-		blast_dcache32_page(page);
-	} else {
-		/*
-		 * Do indexed flush, too much work to get the (possible)
-		 * tlb refills to work correctly.
-		 */
-		page = (KSEG0 + (page & (dcache_size - 1)));
-		blast_dcache32_page_indexed(page);
-	}
-out:
-}
-
-static void r4k_flush_cache_page_d32i32_r4600(struct vm_area_struct *vma,
-					      unsigned long page)
-{
-	struct mm_struct *mm = vma->vm_mm;
-	pgd_t *pgdp;
-	pmd_t *pmdp;
-	pte_t *ptep;
-
-	/*
-	 * If ownes no valid ASID yet, cannot possibly have gotten
-	 * this page into the cache.
-	 */
-	if (CPU_CONTEXT(smp_processor_id(), mm) == 0)
-		return;
-
-#ifdef DEBUG_CACHE
-	printk("cpage[%d,%08lx]", (int)mm->context, page);
-#endif
-	page &= PAGE_MASK;
-	pgdp = pgd_offset(mm, page);
-	pmdp = pmd_offset(pgdp, page);
-	ptep = pte_offset(pmdp, page);
-
-	/*
-	 * If the page isn't marked valid, the page cannot possibly be
-	 * in the cache.
-	 */
-	if(!(pte_val(*ptep) & _PAGE_PRESENT))
-		goto out;
-
-	/*
-	 * Doing flushes for another ASID than the current one is
-	 * too difficult since stupid R4k caches do a TLB translation
-	 * for every cache flush operation.  So we do indexed flushes
-	 * in that case, which doesn't overly flush the cache too much.
-	 */
-	if((mm == current->mm) && (pte_val(*ptep) & _PAGE_VALID)) {
-		blast_dcache32_page(page);
-	} else {
-		/* Do indexed flush, too much work to get the (possible)
-		 * tlb refills to work correctly.
-		 */
-		page = (KSEG0 + (page & (dcache_size - 1)));
-		blast_dcache32_page_indexed(page);
-		blast_dcache32_page_indexed(page ^ dcache_waybit);
-	}
-out:
-}
-
-static void r4k_flush_page_to_ram_s16(struct page *page)
-{
-	blast_scache16_page((unsigned long)page_address(page));
-}
-
-static void r4k_flush_page_to_ram_s32(struct page *page)
-{
-	blast_scache32_page((unsigned long)page_address(page));
-}
-
-static void r4k_flush_page_to_ram_s64(struct page *page)
-{
-	blast_scache64_page((unsigned long)page_address(page));
-}
-
-static void r4k_flush_page_to_ram_s128(struct page *page)
-{
-	blast_scache128_page((unsigned long)page_address(page));
-}
-
-static void r4k_flush_page_to_ram_d16(struct page *page)
-{
-	blast_dcache16_page((unsigned long)page_address(page));
-}
-
-static void r4k_flush_page_to_ram_d32(struct page *page)
-{
-	blast_dcache32_page((unsigned long)page_address(page));
-}
-
-static void
-r4k_flush_icache_range(unsigned long start, unsigned long end)
-{
-	flush_cache_all();
-}
-
-static void
-r4k_flush_icache_page_s(struct vm_area_struct *vma, struct page *page)
-{
-	/*
-	 * We did an scache flush therefore PI is already clean.
-	 */
-}
-
-/*
- * Ok, this seriously sucks.  We use them to flush a user page but don't
- * know the virtual address, so we have to blast away the whole icache
- * which is significantly more expensive than the real thing.
- */
-static void
-r4k_flush_icache_page_p(struct vm_area_struct *vma, struct page *page)
-{
-	if (!(vma->vm_flags & VM_EXEC))
-		return;
-
-	flush_cache_all();
-}
-
-/*
- * Writeback and invalidate the primary cache dcache before DMA.
- *
- * R4600 v2.0 bug: "The CACHE instructions Hit_Writeback_Inv_D,
- * Hit_Writeback_D, Hit_Invalidate_D and Create_Dirty_Exclusive_D will only
- * operate correctly if the internal data cache refill buffer is empty.  These
- * CACHE instructions should be separated from any potential data cache miss
- * by a load instruction to an uncached address to empty the response buffer."
- * (Revision 2.0 device errata from IDT available on http://www.idt.com/
- * in .pdf format.)
- */
-static void r4k_dma_cache_wback_inv_pc(unsigned long addr, unsigned long size)
-{
-	unsigned long end, a;
-	unsigned int flags;
-
-	if (size >= (unsigned long)dcache_size) {
-		flush_cache_l1();
-	} else {
-		/* Workaround for R4600 bug.  See comment above. */
-		__save_and_cli(flags);
-		*(volatile unsigned long *)KSEG1;
-
-		a = addr & ~((unsigned long)dc_lsize - 1);
-		end = (addr + size) & ~((unsigned long)dc_lsize - 1);
-		while (1) {
-			flush_dcache_line(a); /* Hit_Writeback_Inv_D */
-			if (a == end) break;
-			a += dc_lsize;
-		}
-		__restore_flags(flags);
-	}
-	bc_wback_inv(addr, size);
-}
-
-static void r4k_dma_cache_wback_inv_sc(unsigned long addr, unsigned long size)
-{
-	unsigned long end, a;
-
-	if (size >= (unsigned long)scache_size) {
-		flush_cache_l1();
-		return;
-	}
-
-	a = addr & ~((unsigned long)sc_lsize - 1);
-	end = (addr + size) & ~((unsigned long)sc_lsize - 1);
-	while (1) {
-		flush_scache_line(a);	/* Hit_Writeback_Inv_SD */
-		if (a == end) break;
-		a += sc_lsize;
-	}
-}
-
-static void r4k_dma_cache_inv_pc(unsigned long addr, unsigned long size)
-{
-	unsigned long end, a;
-	unsigned int flags;
-
-	if (size >= (unsigned long)dcache_size) {
-		flush_cache_l1();
-	} else {
-		/* Workaround for R4600 bug.  See comment above. */
-		__save_and_cli(flags);
-		*(volatile unsigned long *)KSEG1;
-
-		a = addr & ~((unsigned long)dc_lsize - 1);
-		end = (addr + size) & ~((unsigned long)dc_lsize - 1);
-		while (1) {
-			flush_dcache_line(a); /* Hit_Writeback_Inv_D */
-			if (a == end) break;
-			a += dc_lsize;
-		}
-		__restore_flags(flags);
-	}
-
-	bc_inv(addr, size);
-}
-
-static void r4k_dma_cache_inv_sc(unsigned long addr, unsigned long size)
-{
-	unsigned long end, a;
-
-	if (size >= (unsigned long)scache_size) {
-		flush_cache_l1();
-		return;
-	}
-
-	a = addr & ~((unsigned long)sc_lsize - 1);
-	end = (addr + size) & ~((unsigned long)sc_lsize - 1);
-	while (1) {
-		flush_scache_line(a); /* Hit_Writeback_Inv_SD */
-		if (a == end) break;
-		a += sc_lsize;
-	}
-}
-
-/*
- * While we're protected against bad userland addresses we don't care
- * very much about what happens in that case.  Usually a segmentation
- * fault will dump the process later on anyway ...
- */
-static void r4k_flush_cache_sigtramp(unsigned long addr)
-{
-	__asm__ __volatile__("nop;nop;nop;nop");	/* R4600 V1.7 */
-
-	protected_writeback_dcache_line(addr & ~(dc_lsize - 1));
-	protected_flush_icache_line(addr & ~(ic_lsize - 1));
-}
-
-static void r4600v20k_flush_cache_sigtramp(unsigned long addr)
-{
-	unsigned int flags;
-
-	__save_and_cli(flags);
-
-	/* Clear internal cache refill buffer */
-	*(volatile unsigned int *)KSEG1;
-
-	protected_writeback_dcache_line(addr & ~(dc_lsize - 1));
-	protected_flush_icache_line(addr & ~(ic_lsize - 1));
-
-	__restore_flags(flags);
-}
-
-#undef DEBUG_TLB
-
-#define NTLB_ENTRIES       48  /* Fixed on all R4XX0 variants... */
-
-#define NTLB_ENTRIES_HALF  24  /* Fixed on all R4XX0 variants... */
-
-void local_flush_tlb_all(void)
-{
-	unsigned long flags;
-	unsigned long old_ctx;
-	int entry;
-
-#ifdef DEBUG_TLB
-	printk("[tlball]");
-#endif
-
-	__save_and_cli(flags);
-	/* Save old context and create impossible VPN2 value */
-	old_ctx = (get_entryhi() & 0xff);
-	set_entryhi(KSEG0);
-	set_entrylo0(0);
-	set_entrylo1(0);
-	BARRIER;
-
-	entry = get_wired();
-
-	/* Blast 'em all away. */
-	while(entry < NTLB_ENTRIES) {
-		set_index(entry);
-		BARRIER;
-		tlb_write_indexed();
-		BARRIER;
-		entry++;
-	}
-	BARRIER;
-	set_entryhi(old_ctx);
-	__restore_flags(flags);
-}
-
-void local_flush_tlb_mm(struct mm_struct *mm)
-{
-	if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
-		unsigned long flags;
-
-#ifdef DEBUG_TLB
-		printk("[tlbmm<%d>]", mm->context);
-#endif
-		__save_and_cli(flags);
-		get_new_mmu_context(mm, smp_processor_id());
-		if(mm == current->mm)
-			set_entryhi(CPU_CONTEXT(smp_processor_id(), mm) & 0xff);
-		__restore_flags(flags);
-	}
-}
-
-void local_flush_tlb_range(struct mm_struct *mm, unsigned long start,
-				unsigned long end)
-{
-	if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
-		unsigned long flags;
-		int size;
-
-#ifdef DEBUG_TLB
-		printk("[tlbrange<%02x,%08lx,%08lx>]", (mm->context & 0xff),
-		       start, end);
-#endif
-		__save_and_cli(flags);
-		size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
-		size = (size + 1) >> 1;
-		if(size <= NTLB_ENTRIES_HALF) {
-			int oldpid = (get_entryhi() & 0xff);
-			int newpid = (CPU_CONTEXT(smp_processor_id(), mm) & 0xff);
-
-			start &= (PAGE_MASK << 1);
-			end += ((PAGE_SIZE << 1) - 1);
-			end &= (PAGE_MASK << 1);
-			while(start < end) {
-				int idx;
-
-				set_entryhi(start | newpid);
-				start += (PAGE_SIZE << 1);
-				BARRIER;
-				tlb_probe();
-				BARRIER;
-				idx = get_index();
-				set_entrylo0(0);
-				set_entrylo1(0);
-				set_entryhi(KSEG0);
-				BARRIER;
-				if(idx < 0)
-					continue;
-				tlb_write_indexed();
-				BARRIER;
-			}
-			set_entryhi(oldpid);
-		} else {
-			get_new_mmu_context(mm, smp_processor_id());
-			if(mm == current->mm)
-				set_entryhi(CPU_CONTEXT(smp_processor_id(),
-								mm) & 0xff);
-		}
-		__restore_flags(flags);
-	}
-}
-
-void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
-{
-	if (CPU_CONTEXT(smp_processor_id(), vma->vm_mm) != 0) {
-		unsigned long flags;
-		int oldpid, newpid, idx;
-
-#ifdef DEBUG_TLB
-		printk("[tlbpage<%d,%08lx>]", vma->vm_mm->context, page);
-#endif
-		newpid = (CPU_CONTEXT(smp_processor_id(), vma->vm_mm) & 0xff);
-		page &= (PAGE_MASK << 1);
-		__save_and_cli(flags);
-		oldpid = (get_entryhi() & 0xff);
-		set_entryhi(page | newpid);
-		BARRIER;
-		tlb_probe();
-		BARRIER;
-		idx = get_index();
-		set_entrylo0(0);
-		set_entrylo1(0);
-		set_entryhi(KSEG0);
-		if(idx < 0)
-			goto finish;
-		BARRIER;
-		tlb_write_indexed();
-
-	finish:
-		BARRIER;
-		set_entryhi(oldpid);
-		__restore_flags(flags);
-	}
-}
-
-static void r4k_flush_cache_l2(void)
-{
-}
-
-/* We will need multiple versions of update_mmu_cache(), one that just
- * updates the TLB with the new pte(s), and another which also checks
- * for the R4k "end of page" hardware bug and does the needy.
- */
-static void r4k_update_mmu_cache(struct vm_area_struct * vma,
-				 unsigned long address, pte_t pte)
-{
-	unsigned long flags;
-	pgd_t *pgdp;
-	pmd_t *pmdp;
-	pte_t *ptep;
-	int idx, pid;
-
-	/*
-	 * Handle debugger faulting in for debugee.
-	 */
-	if (current->active_mm != vma->vm_mm)
-		return;
-
-	__save_and_cli(flags);
-	pid = (get_entryhi() & 0xff);
-
-#ifdef DEBUG_TLB
-	if((pid != (CPU_CONTEXT(smp_processor_id(), vma->vm_mm) & 0xff)) ||
-	   (CPU_CONTEXT(smp_processor_id(), vma->vm_mm) == 0)) {
-		printk("update_mmu_cache: Wheee, bogus tlbpid mmpid=%d
-			tlbpid=%d\n", (int) (CPU_CONTEXT(smp_processor_id(),
-			vma->vm_mm) & 0xff), pid);
-	}
-#endif
-
-	address &= (PAGE_MASK << 1);
-	set_entryhi(address | (pid));
-	pgdp = pgd_offset(vma->vm_mm, address);
-	BARRIER;
-	tlb_probe();
-	BARRIER;
-	pmdp = pmd_offset(pgdp, address);
-	idx = get_index();
-	ptep = pte_offset(pmdp, address);
-	BARRIER;
-	set_entrylo0(pte_val(*ptep++) >> 6);
-	set_entrylo1(pte_val(*ptep) >> 6);
-	set_entryhi(address | (pid));
-	BARRIER;
-	if(idx < 0) {
-		tlb_write_random();
-	} else {
-		tlb_write_indexed();
-	}
-	BARRIER;
-	set_entryhi(pid);
-	BARRIER;
-	__restore_flags(flags);
-}
-
-#if 0
-static void r4k_update_mmu_cache_hwbug(struct vm_area_struct * vma,
-				       unsigned long address, pte_t pte)
-{
-	unsigned long flags;
-	pgd_t *pgdp;
-	pmd_t *pmdp;
-	pte_t *ptep;
-	int idx;
-
-	__save_and_cli(flags);
-	address &= (PAGE_MASK << 1);
-	set_entryhi(address | (get_entryhi() & 0xff));
-	pgdp = pgd_offset(vma->vm_mm, address);
-	tlb_probe();
-	pmdp = pmd_offset(pgdp, address);
-	idx = get_index();
-	ptep = pte_offset(pmdp, address);
-	set_entrylo0(pte_val(*ptep++) >> 6);
-	set_entrylo1(pte_val(*ptep) >> 6);
-	BARRIER;
-	if(idx < 0)
-		tlb_write_random();
-	else
-		tlb_write_indexed();
-	BARRIER;
-	__restore_flags(flags);
-}
-#endif
-
-/* Detect and size the various r4k caches. */
-static void __init probe_icache(unsigned long config)
-{
-	icache_size = 1 << (12 + ((config >> 9) & 7));
-	ic_lsize = 16 << ((config >> 5) & 1);
-
-	printk("Primary instruction cache %dkb, linesize %d bytes)\n",
-	       icache_size >> 10, ic_lsize);
-}
-
-static void __init probe_dcache(unsigned long config)
-{
-	dcache_size = 1 << (12 + ((config >> 6) & 7));
-	dc_lsize = 16 << ((config >> 4) & 1);
-
-	printk("Primary data cache %dkb, linesize %d bytes)\n",
-	       dcache_size >> 10, dc_lsize);
-}
-
-
-/* If you even _breathe_ on this function, look at the gcc output
- * and make sure it does not pop things on and off the stack for
- * the cache sizing loop that executes in KSEG1 space or else
- * you will crash and burn badly.  You have been warned.
- */
-static int __init probe_scache(unsigned long config)
-{
-	extern unsigned long stext;
-	unsigned long flags, addr, begin, end, pow2;
-	int tmp;
-
-	tmp = ((config >> 17) & 1);
-	if(tmp)
-		return 0;
-	tmp = ((config >> 22) & 3);
-	switch(tmp) {
-	case 0:
-		sc_lsize = 16;
-		break;
-	case 1:
-		sc_lsize = 32;
-		break;
-	case 2:
-		sc_lsize = 64;
-		break;
-	case 3:
-		sc_lsize = 128;
-		break;
-	}
-
-	begin = (unsigned long) &stext;
-	begin &= ~((4 * 1024 * 1024) - 1);
-	end = begin + (4 * 1024 * 1024);
-
-	/* This is such a bitch, you'd think they would make it
-	 * easy to do this.  Away you daemons of stupidity!
-	 */
-	__save_and_cli(flags);
-
-	/* Fill each size-multiple cache line with a valid tag. */
-	pow2 = (64 * 1024);
-	for(addr = begin; addr < end; addr = (begin + pow2)) {
-		unsigned long *p = (unsigned long *) addr;
-		__asm__ __volatile__("nop" : : "r" (*p)); /* whee... */
-		pow2 <<= 1;
-	}
-
-	/* Load first line with zero (therefore invalid) tag. */
-	set_taglo(0);
-	set_taghi(0);
-	__asm__ __volatile__("nop; nop; nop; nop;"); /* avoid the hazard */
-	__asm__ __volatile__("\n\t.set noreorder\n\t"
-			     "cache 8, (%0)\n\t"
-			     ".set reorder\n\t" : : "r" (begin));
-	__asm__ __volatile__("\n\t.set noreorder\n\t"
-			     "cache 9, (%0)\n\t"
-			     ".set reorder\n\t" : : "r" (begin));
-	__asm__ __volatile__("\n\t.set noreorder\n\t"
-			     "cache 11, (%0)\n\t"
-			     ".set reorder\n\t" : : "r" (begin));
-
-	/* Now search for the wrap around point. */
-	pow2 = (128 * 1024);
-	tmp = 0;
-	for(addr = (begin + (128 * 1024)); addr < (end); addr = (begin + pow2)) {
-		__asm__ __volatile__("\n\t.set noreorder\n\t"
-				     "cache 7, (%0)\n\t"
-				     ".set reorder\n\t" : : "r" (addr));
-		__asm__ __volatile__("nop; nop; nop; nop;"); /* hazard... */
-		if(!get_taglo())
-			break;
-		pow2 <<= 1;
-	}
-	__restore_flags(flags);
-	addr -= begin;
-	printk("Secondary cache sized at %dK linesize %d\n",
-	       (int) (addr >> 10), sc_lsize);
-	scache_size = addr;
-	return 1;
-}
-
-static void __init setup_noscache_funcs(void)
-{
-	unsigned int prid;
-
-	switch(dc_lsize) {
-	case 16:
-		_clear_page = r4k_clear_page_d16;
-		_copy_page = r4k_copy_page_d16;
-		_flush_cache_all = r4k_flush_cache_all_d16i16;
-		_flush_cache_l1 = r4k_flush_cache_all_d16i16;
-		_flush_cache_mm = r4k_flush_cache_mm_d16i16;
-		_flush_cache_range = r4k_flush_cache_range_d16i16;
-		_flush_cache_page = r4k_flush_cache_page_d16i16;
-		break;
-	case 32:
-		prid = read_32bit_cp0_register(CP0_PRID) & 0xfff0;
-		if (prid == 0x2010) {			/* R4600 V1.7 */
-			_clear_page = r4k_clear_page_r4600_v1;
-			_copy_page = r4k_copy_page_r4600_v1;
-		} else if (prid == 0x2020) {		/* R4600 V2.0 */
-			_clear_page = r4k_clear_page_r4600_v2;
-			_copy_page = r4k_copy_page_r4600_v2;
-		} else {
-			_clear_page = r4k_clear_page_d32;
-			_copy_page = r4k_copy_page_d32;
-		}
-		_flush_cache_all = r4k_flush_cache_all_d32i32;
-		_flush_cache_l1 = r4k_flush_cache_all_d32i32;
-		_flush_cache_mm = r4k_flush_cache_mm_d32i32;
-		_flush_cache_range = r4k_flush_cache_range_d32i32;
-		_flush_cache_page = r4k_flush_cache_page_d32i32;
-		break;
-	}
-
-	switch(ic_lsize) {
-	case 16:
-		_flush_page_to_ram = r4k_flush_page_to_ram_d16;
-		break;
-	case 32:
-		_flush_page_to_ram = r4k_flush_page_to_ram_d32;
-		break;
-	}
-	_flush_icache_page = r4k_flush_icache_page_p;
-	_dma_cache_wback_inv = r4k_dma_cache_wback_inv_pc;
-	_dma_cache_wback = r4k_dma_cache_wback_inv_pc;
-	_dma_cache_inv = r4k_dma_cache_inv_pc;
-}
-
-static void __init setup_scache_funcs(void)
-{
-	switch(sc_lsize) {
-	case 16:
-		switch(dc_lsize) {
-		case 16:
-			_flush_cache_all = r4k_flush_cache_all_s16d16i16;
-			_flush_cache_l1 = r4k_flush_cache_all_s16d16i16;
-			_flush_cache_mm = r4k_flush_cache_mm_s16d16i16;
-			_flush_cache_range = r4k_flush_cache_range_s16d16i16;
-			_flush_cache_page = r4k_flush_cache_page_s16d16i16;
-			break;
-		case 32:
-			panic("Invalid cache configuration detected");
-		};
-		_flush_page_to_ram = r4k_flush_page_to_ram_s16;
-		_clear_page = r4k_clear_page_s16;
-		_copy_page = r4k_copy_page_s16;
-		break;
-	case 32:
-		switch(dc_lsize) {
-		case 16:
-			_flush_cache_all = r4k_flush_cache_all_s32d16i16;
-			_flush_cache_l1 = r4k_flush_cache_all_s32d16i16;
-			_flush_cache_mm = r4k_flush_cache_mm_s32d16i16;
-			_flush_cache_range = r4k_flush_cache_range_s32d16i16;
-			_flush_cache_page = r4k_flush_cache_page_s32d16i16;
-			break;
-		case 32:
-			_flush_cache_all = r4k_flush_cache_all_s32d32i32;
-			_flush_cache_l1 = r4k_flush_cache_all_s32d32i32;
-			_flush_cache_mm = r4k_flush_cache_mm_s32d32i32;
-			_flush_cache_range = r4k_flush_cache_range_s32d32i32;
-			_flush_cache_page = r4k_flush_cache_page_s32d32i32;
-			break;
-		};
-		_flush_page_to_ram = r4k_flush_page_to_ram_s32;
-		_clear_page = r4k_clear_page_s32;
-		_copy_page = r4k_copy_page_s32;
-		break;
-	case 64:
-		switch(dc_lsize) {
-		case 16:
-			_flush_cache_all = r4k_flush_cache_all_s64d16i16;
-			_flush_cache_l1 = r4k_flush_cache_all_s64d16i16;
-			_flush_cache_mm = r4k_flush_cache_mm_s64d16i16;
-			_flush_cache_range = r4k_flush_cache_range_s64d16i16;
-			_flush_cache_page = r4k_flush_cache_page_s64d16i16;
-			break;
-		case 32:
-			_flush_cache_all = r4k_flush_cache_all_s64d32i32;
-			_flush_cache_l1 = r4k_flush_cache_all_s64d32i32;
-			_flush_cache_mm = r4k_flush_cache_mm_s64d32i32;
-			_flush_cache_range = r4k_flush_cache_range_s64d32i32;
-			_flush_cache_page = r4k_flush_cache_page_s64d32i32;
-			break;
-		};
-		_flush_page_to_ram = r4k_flush_page_to_ram_s64;
-		_clear_page = r4k_clear_page_s64;
-		_copy_page = r4k_copy_page_s64;
-		break;
-	case 128:
-		switch(dc_lsize) {
-		case 16:
-			_flush_cache_all = r4k_flush_cache_all_s128d16i16;
-			_flush_cache_l1 = r4k_flush_cache_all_s128d16i16;
-			_flush_cache_mm = r4k_flush_cache_mm_s128d16i16;
-			_flush_cache_range = r4k_flush_cache_range_s128d16i16;
-			_flush_cache_page = r4k_flush_cache_page_s128d16i16;
-			break;
-		case 32:
-			_flush_cache_all = r4k_flush_cache_all_s128d32i32;
-			_flush_cache_l1 = r4k_flush_cache_all_s128d32i32;
-			_flush_cache_mm = r4k_flush_cache_mm_s128d32i32;
-			_flush_cache_range = r4k_flush_cache_range_s128d32i32;
-			_flush_cache_page = r4k_flush_cache_page_s128d32i32;
-			break;
-		};
-		_flush_page_to_ram = r4k_flush_page_to_ram_s128;
-		_clear_page = r4k_clear_page_s128;
-		_copy_page = r4k_copy_page_s128;
-		break;
-	}
-	_flush_icache_page = r4k_flush_icache_page_s;
-	_dma_cache_wback_inv = r4k_dma_cache_wback_inv_sc;
-	_dma_cache_wback = r4k_dma_cache_wback_inv_sc;
-	_dma_cache_inv = r4k_dma_cache_inv_sc;
-}
-
-typedef int (*probe_func_t)(unsigned long);
-extern int r5k_sc_init(void);
-
-static inline void __init setup_scache(unsigned int config)
-{
-	probe_func_t probe_scache_kseg1;
-	int sc_present = 0;
-
-	/* Maybe the cpu knows about a l2 cache? */
-	probe_scache_kseg1 = (probe_func_t) (KSEG1ADDR(&probe_scache));
-	sc_present = probe_scache_kseg1(config);
-
-	if (!sc_present) {
-		setup_noscache_funcs();
-		return;
-	}
-
-	switch(mips_cpu.cputype) {
-	case CPU_R5000:
-	case CPU_NEVADA:
-			setup_noscache_funcs();
-#if defined(CONFIG_CPU_R5000) || defined(CONFIG_CPU_NEVADA)
-			r5k_sc_init();
-#endif
-			break;
-	default:
-			setup_scache_funcs();
-	}
-
-}
-
-void __init ld_mmu_r4xx0(void)
-{
-	unsigned long config = read_32bit_cp0_register(CP0_CONFIG);
-
-	change_cp0_config(CONF_CM_CMASK | CONF_CU, CONF_CM_DEFAULT);
-
-	probe_icache(config);
-	probe_dcache(config);
-	setup_scache(config);
-
-	switch(mips_cpu.cputype) {
-	case CPU_R4600:			/* QED style two way caches? */
-	case CPU_R4700:
-	case CPU_R5000:
-	case CPU_NEVADA:
-		_flush_cache_page = r4k_flush_cache_page_d32i32_r4600;
-	}
-
-	_flush_cache_sigtramp = r4k_flush_cache_sigtramp;
-	if ((read_32bit_cp0_register(CP0_PRID) & 0xfff0) == 0x2020) {
-		_flush_cache_sigtramp = r4600v20k_flush_cache_sigtramp;
-	}
-	_flush_icache_range = r4k_flush_icache_range;	/* Ouch */
-
-	_flush_cache_l2 = r4k_flush_cache_l2;
-
-	_update_mmu_cache = r4k_update_mmu_cache;
-
-	flush_cache_l1();
-
-	/*
-	 * You should never change this register:
-	 *   - On R4600 1.7 the tlbp never hits for pages smaller than
-	 *     the value in the c0_pagemask register.
-	 *   - The entire mm handling assumes the c0_pagemask register to
-	 *     be set for 4kb pages.
-	 */
-	write_32bit_cp0_register(CP0_PAGEMASK, PM_4K);
-	local_flush_tlb_all();
-}
diff -urNd -urNd linux-2.4.20/arch/mips64/mm/r5k-sc.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/r5k-sc.c
--- linux-2.4.20/arch/mips64/mm/r5k-sc.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/r5k-sc.c	2003-01-24 06:58:30.000000000 -0600
@@ -9,11 +9,11 @@
 
 #include <asm/mipsregs.h>
 #include <asm/bcache.h>
+#include <asm/cacheops.h>
 #include <asm/page.h>
 #include <asm/pgtable.h>
 #include <asm/system.h>
 #include <asm/mmu_context.h>
-#include <asm/r4kcacheops.h>
 
 /* Secondary cache size in bytes, if present.  */
 static unsigned long scache_size;
@@ -68,25 +68,25 @@
 {
         unsigned long flags;
 
-	__save_and_cli(flags);
-	change_cp0_config(CONF_SE, CONF_SE);
+	local_irq_save(flags);
+	change_c0_config(CONF_SE, CONF_SE);
 	blast_r5000_scache();
-	__restore_flags(flags);
+	local_irq_restore(flags);
 }
 
 static void r5k_sc_disable(void)
 {
         unsigned long flags;
 
-	__save_and_cli(flags);
+	local_irq_save(flags);
 	blast_r5000_scache();
-	change_cp0_config(CONF_SE, 0);
-	__restore_flags(flags);
+	change_c0_config(CONF_SE, 0);
+	local_irq_restore(flags);
 }
 
 static inline int __init r5k_sc_probe(void)
 {
-	unsigned long config = read_32bit_cp0_register(CP0_CONFIG);
+	unsigned long config = read_c0_config();
 
 	if(config & CONF_SC)
 		return(0);
diff -urNd -urNd linux-2.4.20/arch/mips64/mm/tlb-andes.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/tlb-andes.c
--- linux-2.4.20/arch/mips64/mm/tlb-andes.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/tlb-andes.c	2003-02-12 17:50:16.000000000 -0600
@@ -0,0 +1,209 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * Copyright (C) 1997, 1998, 1999 Ralf Baechle (ralf@gnu.org)
+ * Copyright (C) 1999 Silicon Graphics, Inc.
+ * Copyright (C) 2000 Kanoj Sarcar (kanoj@sgi.com)
+ */
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/sched.h>
+#include <linux/mm.h>
+#include <asm/page.h>
+#include <asm/pgtable.h>
+#include <asm/r10kcache.h>
+#include <asm/system.h>
+#include <asm/mmu_context.h>
+
+extern void except_vec1_r10k(void);
+
+#define NTLB_ENTRIES       64
+#define NTLB_ENTRIES_HALF  32
+
+void local_flush_tlb_all(void)
+{
+	unsigned long flags;
+	unsigned long old_ctx;
+	unsigned long entry;
+
+#ifdef DEBUG_TLB
+	printk("[tlball]");
+#endif
+
+	local_irq_save(flags);
+	/* Save old context and create impossible VPN2 value */
+	old_ctx = read_c0_entryhi() & ASID_MASK;
+	write_c0_entryhi(CKSEG0);
+	write_c0_entrylo0(0);
+	write_c0_entrylo1(0);
+
+	entry = read_c0_wired();
+
+	/* Blast 'em all away. */
+	while (entry < NTLB_ENTRIES) {
+		write_c0_index(entry);
+		tlb_write_indexed();
+		entry++;
+	}
+	write_c0_entryhi(old_ctx);
+	local_irq_restore(flags);
+}
+
+void local_flush_tlb_mm(struct mm_struct *mm)
+{
+	int cpu = smp_processor_id();
+	if (cpu_context(cpu, mm) != 0) {
+#ifdef DEBUG_TLB
+		printk("[tlbmm<%d>]", mm->context);
+#endif
+		drop_mmu_context(mm,cpu);
+	}
+}
+
+void local_flush_tlb_range(struct mm_struct *mm, unsigned long start,
+                           unsigned long end)
+{
+	int cpu = smp_processor_id();
+	if (cpu_context(cpu, mm) != 0) {
+		unsigned long flags;
+		int size;
+
+#ifdef DEBUG_TLB
+		printk("[tlbrange<%02x,%08lx,%08lx>]",
+		       (mm->context & ASID_MASK), start, end);
+#endif
+		local_irq_save(flags);
+		size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
+		size = (size + 1) >> 1;
+		if (size <= NTLB_ENTRIES_HALF) {
+			int oldpid = (read_c0_entryhi() & ASID_MASK);
+			int newpid = (cpu_context(smp_processor_id(), mm)
+				      & ASID_MASK);
+
+			start &= (PAGE_MASK << 1);
+			end += ((PAGE_SIZE << 1) - 1);
+			end &= (PAGE_MASK << 1);
+			while(start < end) {
+				int idx;
+
+				write_c0_entryhi(start | newpid);
+				start += (PAGE_SIZE << 1);
+				tlb_probe();
+				idx = read_c0_index();
+				write_c0_entrylo0(0);
+				write_c0_entrylo1(0);
+				write_c0_entryhi(KSEG0);
+				if(idx < 0)
+					continue;
+				tlb_write_indexed();
+			}
+			write_c0_entryhi(oldpid);
+		} else {
+			drop_mmu_context(mm, cpu);
+		}
+		local_irq_restore(flags);
+	}
+}
+
+void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
+{
+	if (cpu_context(smp_processor_id(), vma->vm_mm) != 0) {
+		unsigned long flags;
+		int oldpid, newpid, idx;
+
+#ifdef DEBUG_TLB
+		printk("[tlbpage<%d,%08lx>]", vma->vm_mm->context, page);
+#endif
+		newpid = (cpu_context(smp_processor_id(), vma->vm_mm) &
+			  ASID_MASK);
+		page &= (PAGE_MASK << 1);
+		local_irq_save(flags);
+		oldpid = (read_c0_entryhi() & ASID_MASK);
+		write_c0_entryhi(page | newpid);
+		tlb_probe();
+		idx = read_c0_index();
+		write_c0_entrylo0(0);
+		write_c0_entrylo1(0);
+		write_c0_entryhi(KSEG0);
+		if (idx < 0)
+			goto finish;
+		tlb_write_indexed();
+
+	finish:
+		write_c0_entryhi(oldpid);
+		local_irq_restore(flags);
+	}
+}
+
+/* XXX Simplify this.  On the R10000 writing a TLB entry for an virtual
+   address that already exists will overwrite the old entry and not result
+   in TLB malfunction or TLB shutdown.  */
+static void andes_update_mmu_cache(struct vm_area_struct * vma,
+                                   unsigned long address, pte_t pte)
+{
+	unsigned int cpu = smp_processor_id();
+	unsigned long flags;
+	pgd_t *pgdp;
+	pmd_t *pmdp;
+	pte_t *ptep;
+	int idx, pid;
+
+	/*
+	 * Handle debugger faulting in for debugee.
+	 */
+	if (current->active_mm != vma->vm_mm)
+		return;
+
+	pid = read_c0_entryhi() & ASID_MASK;
+
+	if ((pid != cpu_asid(cpu, vma->vm_mm))
+	    || (cpu_context(cpu, vma->vm_mm) == 0)) {
+		printk(KERN_WARNING
+		       "%s: Wheee, bogus tlbpid mmpid=%d tlbpid=%d\n",
+		       __FUNCTION__, (int) cpu_asid(cpu, vma->vm_mm), pid);
+	}
+
+	local_irq_save(flags);
+	address &= (PAGE_MASK << 1);
+	write_c0_entryhi(address | (pid));
+	pgdp = pgd_offset(vma->vm_mm, address);
+	tlb_probe();
+	pmdp = pmd_offset(pgdp, address);
+	idx = read_c0_index();
+	ptep = pte_offset(pmdp, address);
+	write_c0_entrylo0(pte_val(*ptep++) >> 6);
+	write_c0_entrylo1(pte_val(*ptep) >> 6);
+	write_c0_entryhi(address | (pid));
+	if (idx < 0) {
+		tlb_write_random();
+	} else {
+		tlb_write_indexed();
+	}
+	write_c0_entryhi(pid);
+	local_irq_restore(flags);
+}
+
+void __init andes_tlb_init(void)
+{
+	_update_mmu_cache = andes_update_mmu_cache;
+
+	/*
+	 * You should never change this register:
+	 *   - On R4600 1.7 the tlbp never hits for pages smaller than
+	 *     the value in the c0_pagemask register.
+	 *   - The entire mm handling assumes the c0_pagemask register to
+	 *     be set for 4kb pages.
+	 */
+	write_c0_pagemask(PM_4K);
+	write_c0_wired(0);
+	write_c0_framemask(0);
+
+        /* From this point on the ARC firmware is dead.  */
+	local_flush_tlb_all();
+
+	/* Did I tell you that ARC SUCKS?  */
+
+	memcpy((void *)KSEG1 + 0x080, except_vec1_r10k, 0x80);
+}
diff -urNd -urNd linux-2.4.20/arch/mips64/mm/tlb-dbg-r4k.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/tlb-dbg-r4k.c
--- linux-2.4.20/arch/mips64/mm/tlb-dbg-r4k.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/tlb-dbg-r4k.c	2002-12-01 18:24:53.000000000 -0600
@@ -39,8 +39,8 @@
 	pmd = pmd_offset(pgd, addr);
 	pte = pte_offset(pmd, addr);
 
-	set_entrylo0(pte_val(pte[0]) >> 6);
-	set_entrylo1(pte_val(pte[1]) >> 6);
+	write_c0_entrylo0(pte_val(pte[0]) >> 6);
+	write_c0_entrylo1(pte_val(pte[1]) >> 6);
 	__asm__ __volatile__("nop;nop;nop");
 
 	tlb_write_random();
diff -urNd -urNd linux-2.4.20/arch/mips64/mm/tlbex-r4k.S linux-2.4.20-mipscvs-20050106/arch/mips64/mm/tlbex-r4k.S
--- linux-2.4.20/arch/mips64/mm/tlbex-r4k.S	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/tlbex-r4k.S	2003-02-06 19:06:34.000000000 -0600
@@ -96,16 +96,16 @@
 	__INIT
 
 	.align	5
-LEAF(except_vec0)
+LEAF(except_vec0_generic)
 	.set	noat
 	PANIC("Unused vector called")
 1:	b	1b
 	 nop
-END(except_vec0)
+END(except_vec0_generic)
 
 
 	/*
-	 * TLB refill handler for the R4000.
+	 * TLB refill handlers for the R4000 and SB1.
 	 * Attention:  We may only use 32 instructions / 128 bytes.
 	 */
 	.align  5
@@ -116,6 +116,23 @@
 	 nop
 END(except_vec1_r4k)
 
+LEAF(except_vec1_sb1)
+#ifdef BCM1250_M3_WAR
+	dmfc0	k0, CP0_BADVADDR
+	dmfc0	k1, CP0_ENTRYHI
+	xor	k0, k1
+	dsrl	k0, k0, PAGE_SHIFT+1
+	bnez	k0, 1f
+#endif
+	.set    noat
+	dla     k0, handle_vec1_r4k
+	jr      k0
+	 nop
+
+1:	eret
+	nop
+END(except_vec1_sb1)
+
 	__FINIT
 
 	.align  5
@@ -141,6 +158,7 @@
 	eret
 END(handle_vec1_r4k)
 
+
 	__INIT
 
 	/*
diff -urNd -urNd linux-2.4.20/arch/mips64/mm/tlb-glue-r4k.S linux-2.4.20-mipscvs-20050106/arch/mips64/mm/tlb-glue-r4k.S
--- linux-2.4.20/arch/mips64/mm/tlb-glue-r4k.S	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/tlb-glue-r4k.S	2002-09-21 06:55:38.000000000 -0500
@@ -19,6 +19,10 @@
 	STI
 	.endm
 
+	.macro	__BUILD_kmode
+	KMODE
+	.endm
+
 	.macro	tlb_handler name interruptible writebit
 	NESTED(__\name, PT_SIZE, sp)
 	SAVE_ALL
@@ -32,6 +36,6 @@
 	END(__\name)
 	.endm
 
-	tlb_handler	xtlb_mod sti 1
-	tlb_handler	xtlb_tlbl sti 0
-	tlb_handler	xtlb_tlbs sti 1
+	tlb_handler	xtlb_mod kmode 1
+	tlb_handler	xtlb_tlbl kmode 0
+	tlb_handler	xtlb_tlbs kmode 1
diff -urNd -urNd linux-2.4.20/arch/mips64/mm/tlb-glue-sb1.S linux-2.4.20-mipscvs-20050106/arch/mips64/mm/tlb-glue-sb1.S
--- linux-2.4.20/arch/mips64/mm/tlb-glue-sb1.S	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/tlb-glue-sb1.S	2003-02-19 14:53:05.000000000 -0600
@@ -0,0 +1,66 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * Copyright (C) 1999 Ralf Baechle
+ * Copyright (C) 1999 Silicon Graphics, Inc.
+ */
+#include <linux/init.h>
+#include <asm/mipsregs.h>
+#include <asm/page.h>
+#include <asm/regdef.h>
+#include <asm/stackframe.h>
+#include <asm/war.h>
+
+	.macro	__BUILD_cli
+	CLI
+	.endm
+
+	.macro	__BUILD_sti
+	STI
+	.endm
+
+	.macro	__BUILD_kmode
+	KMODE
+	.endm
+
+	.macro	tlb_handler name interruptible writebit
+	NESTED(__\name, PT_SIZE, sp)
+	SAVE_ALL
+	dmfc0	a2, CP0_BADVADDR
+	__BUILD_\interruptible
+	li	a1, \writebit
+	sd	a2, PT_BVADDR(sp)
+	move	a0, sp
+	jal	do_page_fault
+	j	ret_from_exception
+	END(__\name)
+	.endm
+
+	.macro	tlb_handler_m3 name interruptible writebit
+	NESTED(__\name, PT_SIZE, sp)
+	dmfc0	k0, CP0_BADVADDR
+	dmfc0	k1, CP0_ENTRYHI
+	xor	k0, k1
+	dsrl	k0, k0, PAGE_SHIFT + 1
+	bnez	k0, 1f
+	SAVE_ALL
+	dmfc0	a2, CP0_BADVADDR
+	__BUILD_\interruptible
+	li	a1, \writebit
+	sd	a2, PT_BVADDR(sp)
+	move	a0, sp
+	jal	do_page_fault
+1:
+	j	ret_from_exception
+	END(__\name)
+	.endm
+
+	tlb_handler	xtlb_mod kmode 1
+#ifdef BCM1250_M3_WAR
+	tlb_handler_m3	xtlb_tlbl kmode 0
+#else
+	tlb_handler	xtlb_tlbl kmode 0
+#endif
+	tlb_handler	xtlb_tlbs kmode 1
diff -urNd -urNd linux-2.4.20/arch/mips64/mm/tlb-r4k.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/tlb-r4k.c
--- linux-2.4.20/arch/mips64/mm/tlb-r4k.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/tlb-r4k.c	2003-02-06 16:53:43.000000000 -0600
@@ -33,7 +33,7 @@
 #undef DEBUG_TLB
 #undef DEBUG_TLBUPDATE
 
-extern char except_vec1_r4k;
+extern void except_vec1_r4k(void);
 
 /* CP0 hazard avoidance. */
 #define BARRIER __asm__ __volatile__(".set noreorder\n\t" \
@@ -50,66 +50,62 @@
 	printk("[tlball]");
 #endif
 
-	__save_and_cli(flags);
+	local_irq_save(flags);
 	/* Save old context and create impossible VPN2 value */
-	old_ctx = (get_entryhi() & 0xff);
-	set_entryhi(KSEG0);
-	set_entrylo0(0);
-	set_entrylo1(0);
+	old_ctx = (read_c0_entryhi() & ASID_MASK);
+	write_c0_entryhi(XKPHYS);
+	write_c0_entrylo0(0);
+	write_c0_entrylo1(0);
 	BARRIER;
 
-	entry = get_wired();
+	entry = read_c0_wired();
 
 	/* Blast 'em all away. */
 	while(entry < mips_cpu.tlbsize) {
 	        /* Make sure all entries differ. */
-	        set_entryhi(KSEG0+entry*0x2000);
-		set_index(entry);
+	        write_c0_entryhi(XKPHYS+entry*0x2000);
+		write_c0_index(entry);
 		BARRIER;
 		tlb_write_indexed();
 		BARRIER;
 		entry++;
 	}
 	BARRIER;
-	set_entryhi(old_ctx);
-	__restore_flags(flags);
+	write_c0_entryhi(old_ctx);
+	local_irq_restore(flags);
 }
 
 void local_flush_tlb_mm(struct mm_struct *mm)
 {
-	if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
-		unsigned long flags;
+	int cpu = smp_processor_id();
 
+	if (cpu_context(cpu, mm) != 0) {
 #ifdef DEBUG_TLB
 		printk("[tlbmm<%d>]", mm->context);
 #endif
-		__save_and_cli(flags);
-		get_new_mmu_context(mm, smp_processor_id());
-		if (mm == current->active_mm)
-			set_entryhi(CPU_CONTEXT(smp_processor_id(), mm) &
-				    0xff);
-		__restore_flags(flags);
+		drop_mmu_context(mm,cpu);
 	}
 }
 
 void local_flush_tlb_range(struct mm_struct *mm, unsigned long start,
 				unsigned long end)
 {
-	if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
+	int cpu = smp_processor_id();
+
+	if (cpu_context(cpu, mm) != 0) {
 		unsigned long flags;
 		int size;
 
 #ifdef DEBUG_TLB
-		printk("[tlbrange<%02x,%08lx,%08lx>]", (mm->context & 0xff),
+		printk("[tlbrange<%02x,%08lx,%08lx>]", (mm->context & ASID_MASK),
 		       start, end);
 #endif
-		__save_and_cli(flags);
+		local_irq_save(flags);
 		size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
 		size = (size + 1) >> 1;
 		if(size <= mips_cpu.tlbsize/2) {
-			int oldpid = (get_entryhi() & 0xff);
-			int newpid = (CPU_CONTEXT(smp_processor_id(), mm) &
-				      0xff);
+			int oldpid = read_c0_entryhi() & ASID_MASK;
+			int newpid = cpu_asid(cpu, mm);
 
 			start &= (PAGE_MASK << 1);
 			end += ((PAGE_SIZE << 1) - 1);
@@ -117,63 +113,62 @@
 			while(start < end) {
 				int idx;
 
-				set_entryhi(start | newpid);
+				write_c0_entryhi(start | newpid);
 				start += (PAGE_SIZE << 1);
 				BARRIER;
 				tlb_probe();
 				BARRIER;
-				idx = get_index();
-				set_entrylo0(0);
-				set_entrylo1(0);
+				idx = read_c0_index();
+				write_c0_entrylo0(0);
+				write_c0_entrylo1(0);
 				if(idx < 0)
 					continue;
 				/* Make sure all entries differ. */
-				set_entryhi(KSEG0+idx*0x2000);
+				write_c0_entryhi(XKPHYS+idx*0x2000);
 				BARRIER;
 				tlb_write_indexed();
 				BARRIER;
 			}
-			set_entryhi(oldpid);
+			write_c0_entryhi(oldpid);
 		} else {
-			get_new_mmu_context(mm, smp_processor_id());
-			if (mm == current->active_mm)
-				set_entryhi(CPU_CONTEXT(smp_processor_id(),
-							mm) & 0xff);
+			drop_mmu_context(mm, cpu);
 		}
-		__restore_flags(flags);
+		local_irq_restore(flags);
 	}
 }
 
 void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
 {
-	if (CPU_CONTEXT(smp_processor_id(), vma->vm_mm) != 0) {
+	int cpu = smp_processor_id();
+
+	if (cpu_context(cpu, vma->vm_mm) != 0) {
 		unsigned long flags;
 		unsigned long oldpid, newpid, idx;
 
 #ifdef DEBUG_TLB
 		printk("[tlbpage<%d,%08lx>]", vma->vm_mm->context, page);
 #endif
-		newpid = (CPU_CONTEXT(smp_processor_id(), vma->vm_mm) & 0xff);
+		newpid = cpu_asid(cpu, vma->vm_mm);
 		page &= (PAGE_MASK << 1);
-		__save_and_cli(flags);
-		oldpid = (get_entryhi() & 0xff);
-		set_entryhi(page | newpid);
+		local_irq_save(flags);
+		oldpid = (read_c0_entryhi() & ASID_MASK);
+		write_c0_entryhi(page | newpid);
 		BARRIER;
 		tlb_probe();
 		BARRIER;
-		idx = get_index();
-		set_entrylo0(0);
-		set_entrylo1(0);
+		idx = read_c0_index();
+		write_c0_entrylo0(0);
+		write_c0_entrylo1(0);
 		if(idx < 0)
 			goto finish;
 		/* Make sure all entries differ. */
-		set_entryhi(KSEG0+idx*0x2000);
+		write_c0_entryhi(XKPHYS+idx*0x2000);
 		BARRIER;
 		tlb_write_indexed();
 	finish:
 		BARRIER;
-		set_entryhi(oldpid);
-		__restore_flags(flags);
+		write_c0_entryhi(oldpid);
+		local_irq_restore(flags);
 	}
 }
 
@@ -195,31 +190,31 @@
 	if (current->active_mm != vma->vm_mm)
 		return;
 
-	pid = get_entryhi() & 0xff;
+	pid = read_c0_entryhi() & ASID_MASK;
 
 #ifdef DEBUG_TLB
-	if((pid != (CPU_CONTEXT(smp_processor_id(), vma->vm_mm) & 0xff)) ||
-	   (CPU_CONTEXT(smp_processor_id(), vma->vm_mm) == 0)) {
+	if ((pid != (cpu_asid(smp_processor_id(), vma->vm_mm))) ||
+	   (cpu_context(smp_processor_id(), vma->vm_mm) == 0)) {
 		printk("update_mmu_cache: Wheee, bogus tlbpid mmpid=%d
-			tlbpid=%d\n", (int) (CPU_CONTEXT(smp_processor_id(),
-			vma->vm_mm) & 0xff), pid);
+			tlbpid=%d\n", (int) (cpu_context(smp_processor_id(),
+			vma->vm_mm) & ASID_MASK), pid);
 	}
 #endif
 
-	__save_and_cli(flags);
+	local_irq_save(flags);
 	address &= (PAGE_MASK << 1);
-	set_entryhi(address | (pid));
+	write_c0_entryhi(address | (pid));
 	pgdp = pgd_offset(vma->vm_mm, address);
 	BARRIER;
 	tlb_probe();
 	BARRIER;
 	pmdp = pmd_offset(pgdp, address);
-	idx = get_index();
+	idx = read_c0_index();
 	ptep = pte_offset(pmdp, address);
 	BARRIER;
-	set_entrylo0(pte_val(*ptep++) >> 6);
-	set_entrylo1(pte_val(*ptep) >> 6);
-	set_entryhi(address | (pid));
+	write_c0_entrylo0(pte_val(*ptep++) >> 6);
+	write_c0_entrylo1(pte_val(*ptep) >> 6);
+	write_c0_entryhi(address | (pid));
 	BARRIER;
 	if(idx < 0) {
 		tlb_write_random();
@@ -227,70 +222,9 @@
 		tlb_write_indexed();
 	}
 	BARRIER;
-	set_entryhi(pid);
-	BARRIER;
-	__restore_flags(flags);
-}
-
-void dump_mm_page(unsigned long addr)
-{
-	pgd_t	*page_dir, *pgd;
-	pmd_t	*pmd;
-	pte_t	*pte, page;
-	unsigned long val;
-
-	page_dir = pgd_offset(current->mm, 0);
-	pgd = pgd_offset(current->mm, addr);
-	pmd = pmd_offset(pgd, addr);
-	pte = pte_offset(pmd, addr);
-	page = *pte;
-	printk("Memory Mapping: VA = %08x, PA = %08x ", addr, (unsigned int) pte_val(page));
-	val = pte_val(page);
-	if (val & _PAGE_PRESENT) printk("present ");
-	if (val & _PAGE_READ) printk("read ");
-	if (val & _PAGE_WRITE) printk("write ");
-	if (val & _PAGE_ACCESSED) printk("accessed ");
-	if (val & _PAGE_MODIFIED) printk("modified ");
-	if (val & _PAGE_R4KBUG) printk("r4kbug ");
-	if (val & _PAGE_GLOBAL) printk("global ");
-	if (val & _PAGE_VALID) printk("valid ");
-	printk("\n");
-}
-
-void show_tlb(void)
-{
-        unsigned int flags;
-        unsigned int old_ctx;
-	unsigned int entry;
-	unsigned int entrylo0, entrylo1, entryhi;
-
-	__save_and_cli(flags);
-
-	/* Save old context */
-	old_ctx = (get_entryhi() & 0xff);
-
-	printk("TLB content:\n");
-	entry = 0;
-	while(entry < mips_cpu.tlbsize) {
-		set_index(entry);
-		BARRIER;
-		tlb_read();
-		BARRIER;
-		entryhi = get_entryhi();
-		entrylo0 = get_entrylo0();
-		entrylo1 = get_entrylo1();
-		printk("%02d: ASID=%02d%s VA=0x%08x ", entry, entryhi & ASID_MASK, (entrylo0 & entrylo1 & 1) ? "(G)" : "   ", entryhi & ~ASID_MASK);
-		printk("PA0=0x%08x C0=%x %s%s%s\n", (entrylo0>>6)<<12, (entrylo0>>3) & 7, (entrylo0 & 4) ? "Dirty " : "", (entrylo0 & 2) ? "Valid " : "Invalid ", (entrylo0 & 1) ? "Global" : "");
-		printk("\t\t\t     PA1=0x%08x C1=%x %s%s%s\n", (entrylo1>>6)<<12, (entrylo1>>3) & 7, (entrylo1 & 4) ? "Dirty " : "", (entrylo1 & 2) ? "Valid " : "Invalid ", (entrylo1 & 1) ? "Global" : "");
-
-		dump_mm_page(entryhi & ~0xff);
-		dump_mm_page((entryhi & ~0xff) | 0x1000);
-		entry++;
-	}
+	write_c0_entryhi(pid);
 	BARRIER;
-	set_entryhi(old_ctx);
-
-	__restore_flags(flags);
+	local_irq_restore(flags);
 }
 
 void add_wired_entry(unsigned long entrylo0, unsigned long entrylo1,
@@ -301,27 +235,27 @@
         unsigned long old_pagemask;
         unsigned long old_ctx;
 
-        __save_and_cli(flags);
+        local_irq_save(flags);
         /* Save old context and create impossible VPN2 value */
-        old_ctx = (get_entryhi() & 0xff);
-        old_pagemask = get_pagemask();
-        wired = get_wired();
-        set_wired (wired + 1);
-        set_index (wired);
+        old_ctx = (read_c0_entryhi() & ASID_MASK);
+        old_pagemask = read_c0_pagemask();
+        wired = read_c0_wired();
+        write_c0_wired(wired + 1);
+        write_c0_index(wired);
         BARRIER;
-        set_pagemask (pagemask);
-        set_entryhi(entryhi);
-        set_entrylo0(entrylo0);
-        set_entrylo1(entrylo1);
+        write_c0_pagemask(pagemask);
+        write_c0_entryhi(entryhi);
+        write_c0_entrylo0(entrylo0);
+        write_c0_entrylo1(entrylo1);
         BARRIER;
         tlb_write_indexed();
         BARRIER;
 
-        set_entryhi(old_ctx);
+        write_c0_entryhi(old_ctx);
         BARRIER;
-        set_pagemask (old_pagemask);
+        write_c0_pagemask(old_pagemask);
         local_flush_tlb_all();
-        __restore_flags(flags);
+        local_irq_restore(flags);
 }
 
 /*
@@ -341,32 +275,32 @@
 	unsigned long old_pagemask;
 	unsigned long old_ctx;
 
-	__save_and_cli(flags);
+	local_irq_save(flags);
 	/* Save old context and create impossible VPN2 value */
-	old_ctx = get_entryhi() & 0xff;
-	old_pagemask = get_pagemask();
-	wired = get_wired();
+	old_ctx = read_c0_entryhi() & ASID_MASK;
+	old_pagemask = read_c0_pagemask();
+	wired = read_c0_wired();
 	if (--temp_tlb_entry < wired) {
 		printk(KERN_WARNING "No TLB space left for add_temporary_entry\n");
 		ret = -ENOSPC;
 		goto out;
 	}
 
-	set_index(temp_tlb_entry);
+	write_c0_index(temp_tlb_entry);
 	BARRIER;
-	set_pagemask(pagemask);
-	set_entryhi(entryhi);
-	set_entrylo0(entrylo0);
-	set_entrylo1(entrylo1);
+	write_c0_pagemask(pagemask);
+	write_c0_entryhi(entryhi);
+	write_c0_entrylo0(entrylo0);
+	write_c0_entrylo1(entrylo1);
 	BARRIER;
 	tlb_write_indexed();
 	BARRIER;
 
-	set_entryhi(old_ctx);
+	write_c0_entryhi(old_ctx);
 	BARRIER;
-	set_pagemask(old_pagemask);
+	write_c0_pagemask(old_pagemask);
 out:
-	__restore_flags(flags);
+	local_irq_restore(flags);
 	return ret;
 }
 
@@ -381,7 +315,7 @@
 		 */
 	        mips_cpu.tlbsize = 48;
 	} else {
-	        config1 = read_mips32_cp0_config1();
+	        config1 = read_c0_config1();
 		if (!((config >> 7) & 3))
 		        panic("No MMU present");
 		else
@@ -393,15 +327,15 @@
 
 void __init r4k_tlb_init(void)
 {
-	unsigned long config = read_32bit_cp0_register(CP0_CONFIG);
+	unsigned long config = read_c0_config();
 
 	probe_tlb(config);
 	_update_mmu_cache = mips64_update_mmu_cache;
-	set_pagemask(PM_4K);
-	write_32bit_cp0_register(CP0_WIRED, 0);
+	write_c0_pagemask(PM_4K);
+	write_c0_wired(0);
 	temp_tlb_entry = mips_cpu.tlbsize - 1;
 	local_flush_tlb_all();
 
-	memcpy((void *)(KSEG0 + 0x80), &except_vec1_r4k, 0x80);
+	memcpy((void *)(KSEG0 + 0x80), except_vec1_r4k, 0x80);
 	flush_icache_range(KSEG0, KSEG0 + 0x80);
 }
diff -urNd -urNd linux-2.4.20/arch/mips64/mm/tlb-sb1.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/tlb-sb1.c
--- linux-2.4.20/arch/mips64/mm/tlb-sb1.c	2002-11-28 17:53:10.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/tlb-sb1.c	2003-02-19 14:53:05.000000000 -0600
@@ -22,6 +22,8 @@
 #include <asm/bootinfo.h>
 #include <asm/cpu.h>
 
+extern void except_vec1_sb1(void);
+
 /* Dump the current entry* and pagemask registers */
 static inline void dump_cur_tlb_regs(void)
 {
@@ -65,18 +67,18 @@
 	unsigned long old_ctx;
 	unsigned long flags;
 	int entry;
-	__save_and_cli(flags);
-	old_ctx = get_entryhi();
+	local_irq_save(flags);
+	old_ctx = read_c0_entryhi();
 	printk("Current TLB registers state:\n"
 	       "      EntryHi       EntryLo0          EntryLo1     PageMask  Index\n"
 	       "--------------------------------------------------------------------\n");
 	dump_cur_tlb_regs();
-	printk(" %08X\n", read_32bit_cp0_register(CP0_INDEX));
+	printk(" %08X\n", read_c0_index());
 	printk("\n\nFull TLB Dump:\n"
 	       "Idx      EntryHi       EntryLo0          EntryLo1     PageMask\n"
 	       "--------------------------------------------------------------\n");
 	for (entry = 0; entry < mips_cpu.tlbsize; entry++) {
-		set_index(entry);
+		write_c0_index(entry);
 		printk("\n%02i ", entry);
 		__asm__ __volatile__ (
 			".set push             \n"
@@ -87,8 +89,8 @@
 		dump_cur_tlb_regs();
 	}
 	printk("\n");
-	set_entryhi(old_ctx);
-	__restore_flags(flags);
+	write_c0_entryhi(old_ctx);
+	local_irq_restore(flags);
 }
 
 void local_flush_tlb_all(void)
@@ -97,18 +99,18 @@
 	unsigned long old_ctx;
 	int entry;
 
-	__save_and_cli(flags);
+	local_irq_save(flags);
 	/* Save old context and create impossible VPN2 value */
-	old_ctx = (get_entryhi() & 0xff);
-	set_entrylo0(0);
-	set_entrylo1(0);
+	old_ctx = (read_c0_entryhi() & 0xff);
+	write_c0_entrylo0(0);
+	write_c0_entrylo1(0);
 	for (entry = 0; entry < mips_cpu.tlbsize; entry++) {
-		set_entryhi(KSEG0 + (PAGE_SIZE << 1) * entry);
-		set_index(entry);
+		write_c0_entryhi(KSEG0 + (PAGE_SIZE << 1) * entry);
+		write_c0_index(entry);
 		tlb_write_indexed();
 	}
-	set_entryhi(old_ctx);
-	__restore_flags(flags);
+	write_c0_entryhi(old_ctx);
+	local_irq_restore(flags);
 }
 
 
@@ -126,15 +128,15 @@
 
 	long inc = 1<<24;  /* 16MB */
 	/* Save old context and create impossible VPN2 value */
-	set_entrylo0(0);
-	set_entrylo1(0);
+	write_c0_entrylo0(0);
+	write_c0_entrylo1(0);
 	for (entry = 0; entry < mips_cpu.tlbsize; entry++) {
 		do {
 			addr += inc;
-			set_entryhi(addr);
+			write_c0_entryhi(addr);
 			tlb_probe();
-		} while ((int)(get_index()) >= 0);
-		set_index(entry);
+		} while ((int)(read_c0_index()) >= 0);
+		write_c0_index(entry);
 		tlb_write_indexed();
 	}
 	/* Now that we know we're safe from collisions, we can safely flush
@@ -149,15 +151,15 @@
 	unsigned long flags;
 	int cpu;
 
-	__save_and_cli(flags);
+	local_irq_save(flags);
 	cpu = smp_processor_id();
-	if(CPU_CONTEXT(cpu, mm) != 0) {
+	if (cpu_context(cpu, mm) != 0) {
 		int size;
 		size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
 		size = (size + 1) >> 1;
 		if(size <= (mips_cpu.tlbsize/2)) {
-			int oldpid = (get_entryhi() & 0xff);
-			int newpid = (CPU_CONTEXT(cpu, mm) & 0xff);
+			int oldpid = read_c0_entryhi() & ASID_MASK;
+			int newpid = cpu_asid(cpu, mm) & ASID_MASK;
 
 			start &= (PAGE_MASK << 1);
 			end += ((PAGE_SIZE << 1) - 1);
@@ -165,25 +167,23 @@
 			while(start < end) {
 				int idx;
 
-				set_entryhi(start | newpid);
+				write_c0_entryhi(start | newpid);
 				start += (PAGE_SIZE << 1);
 				tlb_probe();
-				idx = get_index();
-				set_entrylo0(0);
-				set_entrylo1(0);
-				set_entryhi(KSEG0 + (idx << (PAGE_SHIFT+1)));
+				idx = read_c0_index();
+				write_c0_entrylo0(0);
+				write_c0_entrylo1(0);
+				write_c0_entryhi(KSEG0 + (idx << (PAGE_SHIFT+1)));
 				if(idx < 0)
 					continue;
 				tlb_write_indexed();
 			}
-			set_entryhi(oldpid);
+			write_c0_entryhi(oldpid);
 		} else {
-			get_new_mmu_context(mm, cpu);
-			if (mm == current->active_mm)
-				set_entryhi(CPU_CONTEXT(cpu, mm) & 0xff);
+			drop_mmu_context(mm, cpu);
 		}
 	}
-	__restore_flags(flags);
+	local_irq_restore(flags);
 }
 
 void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
@@ -192,36 +192,33 @@
 
 #ifdef CONFIG_SMP
 	/*
-	 * This variable is eliminated from CPU_CONTEXT() if SMP isn't defined,
+	 * This variable is eliminated from cpu_context() if SMP isn't defined,
 	 * so conditional it to get rid of silly "unused variable" compiler
 	 * complaints
 	 */
 	int cpu = smp_processor_id();
 #endif
 
-	__save_and_cli(flags);
-	if (CPU_CONTEXT(cpu, vma->vm_mm) != 0) {
+	local_irq_save(flags);
+	if (cpu_context(cpu, vma->vm_mm) != 0) {
 		int oldpid, newpid, idx;
-#ifdef DEBUG_TLB
-		printk("[tlbpage<%d,%08lx>]", CPU_CONTEXT(cpu, vma->vm_mm), page);
-#endif
-		newpid = (CPU_CONTEXT(cpu, vma->vm_mm) & 0xff);
+		newpid = cpu_asid(cpu, vma->vm_mm);
 		page &= (PAGE_MASK << 1);
-		oldpid = (get_entryhi() & 0xff);
-		set_entryhi	(page | newpid);
+		oldpid = read_c0_entryhi() & ASID_MASK;
+		write_c0_entryhi(page | newpid);
 		tlb_probe();
-		idx = get_index();
-		set_entrylo0(0);
-		set_entrylo1(0);
+		idx = read_c0_index();
+		write_c0_entrylo0(0);
+		write_c0_entrylo1(0);
 		if(idx < 0)
 			goto finish;
 		/* Make sure all entries differ. */
-		set_entryhi(KSEG0+(idx<<(PAGE_SHIFT+1)));
+		write_c0_entryhi(KSEG0+(idx<<(PAGE_SHIFT+1)));
 		tlb_write_indexed();
 	finish:
-		set_entryhi(oldpid);
+		write_c0_entryhi(oldpid);
 	}
-	__restore_flags(flags);
+	local_irq_restore(flags);
 }
 
 
@@ -229,17 +226,10 @@
    these entries, we just bump the asid. */
 void local_flush_tlb_mm(struct mm_struct *mm)
 {
-	unsigned long flags;
-	int cpu;
-	__save_and_cli(flags);
-	cpu = smp_processor_id();
-	if (CPU_CONTEXT(cpu, mm) != 0) {
-		get_new_mmu_context(mm, smp_processor_id());
-		if (mm == current->active_mm) {
-			set_entryhi(CPU_CONTEXT(cpu, mm) & 0xff);
-		}
+	int cpu = smp_processor_id();
+	if (cpu_context(cpu, mm) != 0) {
+		drop_mmu_context(mm, cpu);
 	}
-	__restore_flags(flags);
 }
 
 /* Stolen from mips32 routines */
@@ -259,35 +249,24 @@
 	if (current->active_mm != vma->vm_mm)
 		return;
 
-	__save_and_cli(flags);
-
-
-	pid = get_entryhi() & 0xff;
-
-#ifdef DEBUG_TLB
-	if((pid != (CPU_CONTEXT(cpu, vma->vm_mm) & 0xff)) || (CPU_CONTEXT(cpu, vma->vm_mm) == 0)) {
-		printk("update_mmu_cache: Wheee, bogus tlbpid mmpid=%d tlbpid=%d\n",
-		       (int) (CPU_CONTEXT(cpu, vma->vm_mm) & 0xff), pid);
-	}
-#endif
+	local_irq_save(flags);
 
+	pid = read_c0_entryhi() & 0xff;
 	address &= (PAGE_MASK << 1);
-	set_entryhi(address | (pid));
+	write_c0_entryhi(address | (pid));
 	pgdp = pgd_offset(vma->vm_mm, address);
 	tlb_probe();
 	pmdp = pmd_offset(pgdp, address);
-	idx = get_index();
+	idx = read_c0_index();
 	ptep = pte_offset(pmdp, address);
-	set_entrylo0(pte_val(*ptep++) >> 6);
-	set_entrylo1(pte_val(*ptep) >> 6);
-	set_entryhi(address | (pid));
+	write_c0_entrylo0(pte_val(*ptep++) >> 6);
+	write_c0_entrylo1(pte_val(*ptep) >> 6);
 	if (idx < 0) {
 		tlb_write_random();
 	} else {
 		tlb_write_indexed();
 	}
-	set_entryhi(pid);
-	__restore_flags(flags);
+	local_irq_restore(flags);
 }
 
 /*
@@ -299,7 +278,8 @@
 {
 	u32 config1;
 
-	config1 = read_mips32_cp0_config1();
+	write_c0_pagemask(PM_4K);
+	config1 = read_c0_config1();
 	mips_cpu.tlbsize = ((config1 >> 25) & 0x3f) + 1;
 
 	/*
@@ -309,4 +289,7 @@
 	 */
 	sb1_sanitize_tlb();
 	_update_mmu_cache = sb1_update_mmu_cache;
+
+	memcpy((void *)KSEG0 + 0x080, except_vec1_sb1, 0x80);
+	flush_icache_range(KSEG0, KSEG0 + 0x80);
 }
diff -urNd -urNd linux-2.4.20/arch/parisc/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/parisc/CVS/Entries
--- linux-2.4.20/arch/parisc/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/parisc/CVS/Entries	2005-01-06 23:08:18.000000000 -0600
@@ -0,0 +1,11 @@
+/Makefile/1.1.2.1/Wed Sep 11 12:44:29 2002/-ko/Tlinux_2_4_20
+/config.in/1.2.2.1/Wed Sep 11 12:44:29 2002/-ko/Tlinux_2_4_20
+/defconfig/1.1.2.1/Wed Sep 11 12:44:29 2002/-ko/Tlinux_2_4_20
+/vmlinux.lds/1.2.2.1/Wed Sep 11 12:44:29 2002/-ko/Tlinux_2_4_20
+/vmlinux64.lds/1.1.2.1/Wed Sep 11 12:44:29 2002/-ko/Tlinux_2_4_20
+D/hpux////
+D/kernel////
+D/lib////
+D/math-emu////
+D/mm////
+D/tools////
diff -urNd -urNd linux-2.4.20/arch/parisc/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/parisc/CVS/Repository
--- linux-2.4.20/arch/parisc/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/parisc/CVS/Repository	2005-01-06 23:00:15.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/parisc
diff -urNd -urNd linux-2.4.20/arch/parisc/CVS/Root linux-2.4.20-mipscvs-20050106/arch/parisc/CVS/Root
--- linux-2.4.20/arch/parisc/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/parisc/CVS/Root	2005-01-06 23:00:15.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/parisc/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/parisc/CVS/Tag
--- linux-2.4.20/arch/parisc/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/parisc/CVS/Tag	2005-01-06 23:00:15.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/parisc/hpux/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/parisc/hpux/CVS/Entries
--- linux-2.4.20/arch/parisc/hpux/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/parisc/hpux/CVS/Entries	2005-01-06 23:00:15.000000000 -0600
@@ -0,0 +1,8 @@
+/Makefile/1.1.2.1/Wed Sep 11 12:44:29 2002/-ko/Tlinux_2_4_20
+/entry_hpux.S/1.2.2.1/Wed Sep 11 12:44:29 2002/-ko/Tlinux_2_4_20
+/fs.c/1.2.2.1/Wed Sep 11 12:44:29 2002/-ko/Tlinux_2_4_20
+/gate.S/1.1.2.1/Wed Sep 11 12:44:29 2002/-ko/Tlinux_2_4_20
+/ioctl.c/1.1.2.1/Wed Sep 11 12:44:29 2002/-ko/Tlinux_2_4_20
+/sys_hpux.c/1.2.2.1/Wed Sep 11 12:44:29 2002/-ko/Tlinux_2_4_20
+/wrappers.S/1.1.2.1/Wed Sep 11 12:44:29 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/parisc/hpux/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/parisc/hpux/CVS/Repository
--- linux-2.4.20/arch/parisc/hpux/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/parisc/hpux/CVS/Repository	2005-01-06 23:00:15.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/parisc/hpux
diff -urNd -urNd linux-2.4.20/arch/parisc/hpux/CVS/Root linux-2.4.20-mipscvs-20050106/arch/parisc/hpux/CVS/Root
--- linux-2.4.20/arch/parisc/hpux/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/parisc/hpux/CVS/Root	2005-01-06 23:00:15.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/parisc/hpux/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/parisc/hpux/CVS/Tag
--- linux-2.4.20/arch/parisc/hpux/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/parisc/hpux/CVS/Tag	2005-01-06 23:00:15.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/parisc/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/parisc/kernel/CVS/Entries
--- linux-2.4.20/arch/parisc/kernel/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/parisc/kernel/CVS/Entries	2005-01-06 23:00:21.000000000 -0600
@@ -0,0 +1,52 @@
+/Makefile/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
+/binfmt_elf32.c/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
+/cache.c/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
+/ccio-dma.c/1.3.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
+/ccio-rm-dma.c/1.2.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
+/drivers.c/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
+/entry.S/1.1.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/firmware.c/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
+/hardware.c/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
+/head.S/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
+/head64.S/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
+/hpmc.S/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
+/init_task.c/1.2.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
+/inventory.c/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
+/ioctl32.c/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
+/iosapic.c/1.2.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
+/iosapic_private.h/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
+/irq.c/1.2.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/irq_smp.c/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
+/keyboard.c/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
+/lasimap.map/1.1/Wed Jan 10 05:27:28 2001/-ko/Tlinux_2_4_20
+/lba_pci.c/1.2.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
+/led.c/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
+/pa7300lc.c/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
+/pacache.S/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
+/parisc_ksyms.c/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
+/pci-dma.c/1.3.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
+/pci.c/1.1.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/pdc_cons.c/1.2.2.2/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
+/perf.c/1.1.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
+/perf_asm.S/1.1.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
+/perf_images.h/1.1.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
+/power.c/1.1.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
+/process.c/1.2.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
+/processor.c/1.1.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
+/ptrace.c/1.3.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
+/real2.S/1.1.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
+/sba_iommu.c/1.3.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
+/semaphore.c/1.2.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
+/setup.c/1.2.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
+/signal.c/1.1.2.2/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
+/signal32.c/1.1.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
+/smp.c/1.1.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
+/superio.c/1.1.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
+/sys32.h/1.1.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
+/sys_parisc.c/1.2.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
+/sys_parisc32.c/1.1.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
+/syscall.S/1.1.2.2/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
+/time.c/1.1.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
+/traps.c/1.2.2.2/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
+/unaligned.c/1.1.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/parisc/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/parisc/kernel/CVS/Repository
--- linux-2.4.20/arch/parisc/kernel/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/parisc/kernel/CVS/Repository	2005-01-06 23:00:15.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/parisc/kernel
diff -urNd -urNd linux-2.4.20/arch/parisc/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/parisc/kernel/CVS/Root
--- linux-2.4.20/arch/parisc/kernel/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/parisc/kernel/CVS/Root	2005-01-06 23:00:15.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/parisc/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/parisc/kernel/CVS/Tag
--- linux-2.4.20/arch/parisc/kernel/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/parisc/kernel/CVS/Tag	2005-01-06 23:00:21.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/parisc/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/parisc/lib/CVS/Entries
--- linux-2.4.20/arch/parisc/lib/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/parisc/lib/CVS/Entries	2005-01-06 23:00:21.000000000 -0600
@@ -0,0 +1,7 @@
+/Makefile/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
+/bitops.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
+/checksum.c/1.1/Wed Jan 10 05:27:28 2001/-ko/Tlinux_2_4_20
+/io.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
+/lusercopy.S/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
+/memset.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/parisc/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/parisc/lib/CVS/Repository
--- linux-2.4.20/arch/parisc/lib/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/parisc/lib/CVS/Repository	2005-01-06 23:00:21.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/parisc/lib
diff -urNd -urNd linux-2.4.20/arch/parisc/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/parisc/lib/CVS/Root
--- linux-2.4.20/arch/parisc/lib/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/parisc/lib/CVS/Root	2005-01-06 23:00:21.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/parisc/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/parisc/lib/CVS/Tag
--- linux-2.4.20/arch/parisc/lib/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/parisc/lib/CVS/Tag	2005-01-06 23:00:21.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/parisc/math-emu/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/parisc/math-emu/CVS/Entries
--- linux-2.4.20/arch/parisc/math-emu/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/parisc/math-emu/CVS/Entries	2005-01-06 23:00:23.000000000 -0600
@@ -0,0 +1,39 @@
+/Makefile/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
+/README/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
+/cnv_float.h/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
+/dbl_float.h/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
+/decode_exc.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
+/denormal.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
+/dfadd.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
+/dfcmp.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
+/dfdiv.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
+/dfmpy.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
+/dfrem.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
+/dfsqrt.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
+/dfsub.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
+/driver.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
+/fcnvff.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
+/fcnvfu.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
+/fcnvfut.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
+/fcnvfx.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
+/fcnvfxt.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
+/fcnvuf.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
+/fcnvxf.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
+/float.h/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
+/fmpyfadd.c/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
+/fpbits.h/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
+/fpu.h/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
+/fpudispatch.c/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
+/frnd.c/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
+/hppa.h/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
+/math-emu.h/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
+/sfadd.c/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
+/sfcmp.c/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
+/sfdiv.c/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
+/sfmpy.c/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
+/sfrem.c/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
+/sfsqrt.c/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
+/sfsub.c/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
+/sgl_float.h/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
+/types.h/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/parisc/math-emu/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/parisc/math-emu/CVS/Repository
--- linux-2.4.20/arch/parisc/math-emu/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/parisc/math-emu/CVS/Repository	2005-01-06 23:00:21.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/parisc/math-emu
diff -urNd -urNd linux-2.4.20/arch/parisc/math-emu/CVS/Root linux-2.4.20-mipscvs-20050106/arch/parisc/math-emu/CVS/Root
--- linux-2.4.20/arch/parisc/math-emu/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/parisc/math-emu/CVS/Root	2005-01-06 23:00:21.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/parisc/math-emu/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/parisc/math-emu/CVS/Tag
--- linux-2.4.20/arch/parisc/math-emu/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/parisc/math-emu/CVS/Tag	2005-01-06 23:00:23.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/parisc/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/parisc/mm/CVS/Entries
--- linux-2.4.20/arch/parisc/mm/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/parisc/mm/CVS/Entries	2005-01-06 23:00:23.000000000 -0600
@@ -0,0 +1,6 @@
+/Makefile/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
+/extable.c/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
+/fault.c/1.2.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
+/init.c/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
+/ioremap.c/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/parisc/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/parisc/mm/CVS/Repository
--- linux-2.4.20/arch/parisc/mm/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/parisc/mm/CVS/Repository	2005-01-06 23:00:23.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/parisc/mm
diff -urNd -urNd linux-2.4.20/arch/parisc/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/parisc/mm/CVS/Root
--- linux-2.4.20/arch/parisc/mm/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/parisc/mm/CVS/Root	2005-01-06 23:00:23.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/parisc/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/parisc/mm/CVS/Tag
--- linux-2.4.20/arch/parisc/mm/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/parisc/mm/CVS/Tag	2005-01-06 23:00:23.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/parisc/tools/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/parisc/tools/CVS/Entries
--- linux-2.4.20/arch/parisc/tools/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/parisc/tools/CVS/Entries	2005-01-06 23:00:23.000000000 -0600
@@ -0,0 +1,3 @@
+/Makefile/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
+/offset.c/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/parisc/tools/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/parisc/tools/CVS/Repository
--- linux-2.4.20/arch/parisc/tools/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/parisc/tools/CVS/Repository	2005-01-06 23:00:23.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/parisc/tools
diff -urNd -urNd linux-2.4.20/arch/parisc/tools/CVS/Root linux-2.4.20-mipscvs-20050106/arch/parisc/tools/CVS/Root
--- linux-2.4.20/arch/parisc/tools/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/parisc/tools/CVS/Root	2005-01-06 23:00:23.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/parisc/tools/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/parisc/tools/CVS/Tag
--- linux-2.4.20/arch/parisc/tools/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/parisc/tools/CVS/Tag	2005-01-06 23:00:23.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ppc/8260_io/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/8260_io/CVS/Entries
--- linux-2.4.20/arch/ppc/8260_io/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/8260_io/CVS/Entries	2005-01-06 23:00:24.000000000 -0600
@@ -0,0 +1,7 @@
+/Config.in/1.2.4.2/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
+/Makefile/1.4/Thu Jun 14 04:23:48 2001/-ko/Tlinux_2_4_20
+/commproc.c/1.4/Tue Nov  6 07:55:48 2001/-ko/Tlinux_2_4_20
+/enet.c/1.8/Mon Nov  5 20:15:28 2001/-ko/Tlinux_2_4_20
+/fcc_enet.c/1.4/Thu Jun 14 04:23:48 2001/-ko/Tlinux_2_4_20
+/uart.c/1.9.2.2/Wed Jun 26 22:35:19 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ppc/8260_io/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/8260_io/CVS/Repository
--- linux-2.4.20/arch/ppc/8260_io/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/8260_io/CVS/Repository	2005-01-06 23:00:23.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ppc/8260_io
diff -urNd -urNd linux-2.4.20/arch/ppc/8260_io/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/8260_io/CVS/Root
--- linux-2.4.20/arch/ppc/8260_io/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/8260_io/CVS/Root	2005-01-06 23:00:23.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ppc/8260_io/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/8260_io/CVS/Tag
--- linux-2.4.20/arch/ppc/8260_io/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/8260_io/CVS/Tag	2005-01-06 23:00:24.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ppc/8xx_io/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/8xx_io/CVS/Entries
--- linux-2.4.20/arch/ppc/8xx_io/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/8xx_io/CVS/Entries	2005-01-06 23:00:27.000000000 -0600
@@ -0,0 +1,9 @@
+/.cvsignore/1.1/Thu May  7 02:57:25 1998/-ko/Tlinux_2_4_20
+/Config.in/1.7/Tue Nov  6 00:54:55 2001/-ko/Tlinux_2_4_20
+/Makefile/1.6/Fri Oct 19 01:23:39 2001/-ko/Tlinux_2_4_20
+/commproc.c/1.13/Tue Nov  6 07:55:48 2001/-ko/Tlinux_2_4_20
+/enet.c/1.20/Tue Nov  6 00:54:55 2001/-ko/Tlinux_2_4_20
+/fec.c/1.15.2.1/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
+/micropatch.c/1.2/Sun Dec  2 11:34:38 2001/-ko/Tlinux_2_4_20
+/uart.c/1.21.2.2/Wed Jun 26 22:35:19 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ppc/8xx_io/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/8xx_io/CVS/Repository
--- linux-2.4.20/arch/ppc/8xx_io/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/8xx_io/CVS/Repository	2005-01-06 23:00:24.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ppc/8xx_io
diff -urNd -urNd linux-2.4.20/arch/ppc/8xx_io/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/8xx_io/CVS/Root
--- linux-2.4.20/arch/ppc/8xx_io/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/8xx_io/CVS/Root	2005-01-06 23:00:24.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ppc/8xx_io/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/8xx_io/CVS/Tag
--- linux-2.4.20/arch/ppc/8xx_io/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/8xx_io/CVS/Tag	2005-01-06 23:00:27.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ppc/8xx_io/.cvsignore linux-2.4.20-mipscvs-20050106/arch/ppc/8xx_io/.cvsignore
--- linux-2.4.20/arch/ppc/8xx_io/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/8xx_io/.cvsignore	1998-05-06 21:57:25.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/arch/ppc/amiga/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/amiga/CVS/Entries
--- linux-2.4.20/arch/ppc/amiga/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/amiga/CVS/Entries	2005-01-06 23:00:28.000000000 -0600
@@ -0,0 +1,12 @@
+/Makefile/1.5/Thu Jun 14 04:23:48 2001/-ko/Tlinux_2_4_20
+/amiga_ksyms.c/1.2/Thu Jun 14 04:23:48 2001/-ko/Tlinux_2_4_20
+/amiints.c/1.10.2.1/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
+/amisound.c/1.2/Thu Jun 14 04:23:48 2001/-ko/Tlinux_2_4_20
+/bootinfo.c/1.5/Thu Jun 14 04:23:48 2001/-ko/Tlinux_2_4_20
+/chipram.c/1.5/Thu Jun 14 04:23:48 2001/-ko/Tlinux_2_4_20
+/cia.c/1.4.2.1/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
+/config.c/1.12.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
+/ints.c/1.5/Thu Jun 14 04:23:48 2001/-ko/Tlinux_2_4_20
+/pcmcia.c/1.2/Thu Jun 14 04:23:48 2001/-ko/Tlinux_2_4_20
+/time.c/1.5.2.1/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ppc/amiga/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/amiga/CVS/Repository
--- linux-2.4.20/arch/ppc/amiga/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/amiga/CVS/Repository	2005-01-06 23:00:27.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ppc/amiga
diff -urNd -urNd linux-2.4.20/arch/ppc/amiga/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/amiga/CVS/Root
--- linux-2.4.20/arch/ppc/amiga/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/amiga/CVS/Root	2005-01-06 23:00:27.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ppc/amiga/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/amiga/CVS/Tag
--- linux-2.4.20/arch/ppc/amiga/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/amiga/CVS/Tag	2005-01-06 23:00:28.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/chrp/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/boot/chrp/CVS/Entries
--- linux-2.4.20/arch/ppc/boot/chrp/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/chrp/CVS/Entries	2005-01-06 23:00:28.000000000 -0600
@@ -0,0 +1,5 @@
+/Makefile/1.3.2.1/Wed Jun 26 22:35:19 2002/-ko/Tlinux_2_4_20
+/main.c/1.3.2.1/Wed Jun 26 22:35:19 2002/-ko/Tlinux_2_4_20
+/misc.S/1.1/Thu Jun 14 04:23:48 2001/-ko/Tlinux_2_4_20
+/start.c/1.2.2.1/Wed Jun 26 22:35:19 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/chrp/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/boot/chrp/CVS/Repository
--- linux-2.4.20/arch/ppc/boot/chrp/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/chrp/CVS/Repository	2005-01-06 23:00:28.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ppc/boot/chrp
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/chrp/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/boot/chrp/CVS/Root
--- linux-2.4.20/arch/ppc/boot/chrp/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/chrp/CVS/Root	2005-01-06 23:00:28.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/chrp/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/boot/chrp/CVS/Tag
--- linux-2.4.20/arch/ppc/boot/chrp/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/chrp/CVS/Tag	2005-01-06 23:00:28.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/common/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/boot/common/CVS/Entries
--- linux-2.4.20/arch/ppc/boot/common/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/common/CVS/Entries	2005-01-06 23:00:29.000000000 -0600
@@ -0,0 +1,11 @@
+/Makefile/1.1.2.1/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
+/crt0.S/1.2.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
+/dummy.c/1.1.2.1/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
+/misc-common.c/1.4/Fri Oct 19 01:23:40 2001/-ko/Tlinux_2_4_20
+/misc-simple.c/1.2.2.3/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
+/ns16550.c/1.2.2.2/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
+/ofcommon.c/1.1.2.1/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
+/relocate.S/1.1.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
+/string.S/1.1/Thu Jun 14 04:23:49 2001/-ko/Tlinux_2_4_20
+/util.S/1.1.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/common/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/boot/common/CVS/Repository
--- linux-2.4.20/arch/ppc/boot/common/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/common/CVS/Repository	2005-01-06 23:00:28.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ppc/boot/common
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/common/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/boot/common/CVS/Root
--- linux-2.4.20/arch/ppc/boot/common/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/common/CVS/Root	2005-01-06 23:00:28.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/common/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/boot/common/CVS/Tag
--- linux-2.4.20/arch/ppc/boot/common/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/common/CVS/Tag	2005-01-06 23:00:29.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/boot/CVS/Entries
--- linux-2.4.20/arch/ppc/boot/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/CVS/Entries	2005-01-06 23:08:18.000000000 -0600
@@ -0,0 +1,11 @@
+/Makefile/1.23.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
+/ld.script/1.1.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
+D/chrp////
+D/common////
+D/images////
+D/include////
+D/lib////
+D/pmac////
+D/prep////
+D/simple////
+D/utils////
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/boot/CVS/Repository
--- linux-2.4.20/arch/ppc/boot/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/CVS/Repository	2005-01-06 23:00:28.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ppc/boot
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/boot/CVS/Root
--- linux-2.4.20/arch/ppc/boot/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/CVS/Root	2005-01-06 23:00:28.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/boot/CVS/Tag
--- linux-2.4.20/arch/ppc/boot/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/CVS/Tag	2005-01-06 23:00:28.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/images/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/boot/images/CVS/Entries
--- linux-2.4.20/arch/ppc/boot/images/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/images/CVS/Entries	2005-01-06 23:00:29.000000000 -0600
@@ -0,0 +1,2 @@
+/Makefile/1.1.2.2/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/images/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/boot/images/CVS/Repository
--- linux-2.4.20/arch/ppc/boot/images/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/images/CVS/Repository	2005-01-06 23:00:29.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ppc/boot/images
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/images/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/boot/images/CVS/Root
--- linux-2.4.20/arch/ppc/boot/images/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/images/CVS/Root	2005-01-06 23:00:29.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/images/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/boot/images/CVS/Tag
--- linux-2.4.20/arch/ppc/boot/images/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/images/CVS/Tag	2005-01-06 23:00:29.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/include/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/boot/include/CVS/Entries
--- linux-2.4.20/arch/ppc/boot/include/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/include/CVS/Entries	2005-01-06 23:00:30.000000000 -0600
@@ -0,0 +1,4 @@
+/nonstdio.h/1.2/Fri Oct 19 01:23:40 2001/-ko/Tlinux_2_4_20
+/rs6000.h/1.1/Thu Jun 14 04:23:49 2001/-ko/Tlinux_2_4_20
+/zlib.h/1.1/Thu Jun 14 04:23:49 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/include/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/boot/include/CVS/Repository
--- linux-2.4.20/arch/ppc/boot/include/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/include/CVS/Repository	2005-01-06 23:00:29.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ppc/boot/include
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/include/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/boot/include/CVS/Root
--- linux-2.4.20/arch/ppc/boot/include/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/include/CVS/Root	2005-01-06 23:00:29.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/include/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/boot/include/CVS/Tag
--- linux-2.4.20/arch/ppc/boot/include/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/include/CVS/Tag	2005-01-06 23:00:30.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/boot/lib/CVS/Entries
--- linux-2.4.20/arch/ppc/boot/lib/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/lib/CVS/Entries	2005-01-06 23:00:30.000000000 -0600
@@ -0,0 +1,3 @@
+/Makefile/1.1/Thu Jun 14 04:23:49 2001/-ko/Tlinux_2_4_20
+/zlib.c/1.1.2.1/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/boot/lib/CVS/Repository
--- linux-2.4.20/arch/ppc/boot/lib/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/lib/CVS/Repository	2005-01-06 23:00:30.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ppc/boot/lib
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/boot/lib/CVS/Root
--- linux-2.4.20/arch/ppc/boot/lib/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/lib/CVS/Root	2005-01-06 23:00:30.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/boot/lib/CVS/Tag
--- linux-2.4.20/arch/ppc/boot/lib/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/lib/CVS/Tag	2005-01-06 23:00:30.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/pmac/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/boot/pmac/CVS/Entries
--- linux-2.4.20/arch/ppc/boot/pmac/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/pmac/CVS/Entries	2005-01-06 23:00:30.000000000 -0600
@@ -0,0 +1,6 @@
+/Makefile/1.4.2.2/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
+/chrpmain.c/1.3.2.1/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
+/coffmain.c/1.3.2.1/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
+/misc.S/1.1/Thu Jun 14 04:23:49 2001/-ko/Tlinux_2_4_20
+/start.c/1.2/Fri Oct 19 01:23:40 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/pmac/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/boot/pmac/CVS/Repository
--- linux-2.4.20/arch/ppc/boot/pmac/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/pmac/CVS/Repository	2005-01-06 23:00:30.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ppc/boot/pmac
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/pmac/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/boot/pmac/CVS/Root
--- linux-2.4.20/arch/ppc/boot/pmac/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/pmac/CVS/Root	2005-01-06 23:00:30.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/pmac/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/boot/pmac/CVS/Tag
--- linux-2.4.20/arch/ppc/boot/pmac/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/pmac/CVS/Tag	2005-01-06 23:00:30.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/prep/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/boot/prep/CVS/Entries
--- linux-2.4.20/arch/ppc/boot/prep/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/prep/CVS/Entries	2005-01-06 23:00:31.000000000 -0600
@@ -0,0 +1,9 @@
+/Makefile/1.5.2.2/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
+/head.S/1.2.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
+/iso_font.h/1.1/Thu Jun 14 04:23:49 2001/-ko/Tlinux_2_4_20
+/kbd.c/1.1.2.1/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
+/misc.c/1.4.2.2/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
+/of1275.c/1.1/Thu Jun 14 04:23:49 2001/-ko/Tlinux_2_4_20
+/of1275.h/1.1/Thu Jun 14 04:23:49 2001/-ko/Tlinux_2_4_20
+/vreset.c/1.2.2.1/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/prep/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/boot/prep/CVS/Repository
--- linux-2.4.20/arch/ppc/boot/prep/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/prep/CVS/Repository	2005-01-06 23:00:30.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ppc/boot/prep
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/prep/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/boot/prep/CVS/Root
--- linux-2.4.20/arch/ppc/boot/prep/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/prep/CVS/Root	2005-01-06 23:00:30.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/prep/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/boot/prep/CVS/Tag
--- linux-2.4.20/arch/ppc/boot/prep/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/prep/CVS/Tag	2005-01-06 23:00:31.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/simple/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/boot/simple/CVS/Entries
--- linux-2.4.20/arch/ppc/boot/simple/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/simple/CVS/Entries	2005-01-06 23:08:18.000000000 -0600
@@ -0,0 +1,11 @@
+/Makefile/1.1.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
+/direct.S/1.1.2.1/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
+/embed_config.c/1.1.2.1/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
+/head.S/1.1.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
+/iic.c/1.1.2.1/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
+/legacy.S/1.1.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
+/m8260_tty.c/1.1.2.1/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
+/m8xx_tty.c/1.1.2.1/Wed Jun 26 22:35:21 2002/-ko/Tlinux_2_4_20
+/misc-embedded.c/1.1.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
+/misc-spruce.c/1.1.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/simple/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/boot/simple/CVS/Repository
--- linux-2.4.20/arch/ppc/boot/simple/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/simple/CVS/Repository	2005-01-06 23:00:31.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ppc/boot/simple
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/simple/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/boot/simple/CVS/Root
--- linux-2.4.20/arch/ppc/boot/simple/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/simple/CVS/Root	2005-01-06 23:00:31.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/simple/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/boot/simple/CVS/Tag
--- linux-2.4.20/arch/ppc/boot/simple/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/simple/CVS/Tag	2005-01-06 23:00:31.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/utils/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/boot/utils/CVS/Entries
--- linux-2.4.20/arch/ppc/boot/utils/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/utils/CVS/Entries	2005-01-06 23:00:32.000000000 -0600
@@ -0,0 +1,9 @@
+/Makefile/1.2.2.1/Wed Jun 26 22:35:21 2002/-ko/Tlinux_2_4_20
+/addnote.c/1.1/Thu Jun 14 04:23:49 2001/-ko/Tlinux_2_4_20
+/elf.pl/1.1/Thu Jun 14 04:23:49 2001/-ko/Tlinux_2_4_20
+/hack-coff.c/1.1/Thu Jun 14 04:23:49 2001/-ko/Tlinux_2_4_20
+/mkimage.wrapper/1.1.2.1/Wed Jun 26 22:35:21 2002/-ko/Tlinux_2_4_20
+/mknote.c/1.1/Thu Jun 14 04:23:49 2001/-ko/Tlinux_2_4_20
+/mkprep.c/1.1/Thu Jun 14 04:23:49 2001/-ko/Tlinux_2_4_20
+/mktree.c/1.1.2.1/Wed Jun 26 22:35:21 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/utils/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/boot/utils/CVS/Repository
--- linux-2.4.20/arch/ppc/boot/utils/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/utils/CVS/Repository	2005-01-06 23:00:31.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ppc/boot/utils
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/utils/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/boot/utils/CVS/Root
--- linux-2.4.20/arch/ppc/boot/utils/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/utils/CVS/Root	2005-01-06 23:00:31.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ppc/boot/utils/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/boot/utils/CVS/Tag
--- linux-2.4.20/arch/ppc/boot/utils/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/utils/CVS/Tag	2005-01-06 23:00:32.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ppc/chrpboot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/chrpboot/CVS/Entries
--- linux-2.4.20/arch/ppc/chrpboot/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/chrpboot/CVS/Entries	2005-01-06 23:00:32.000000000 -0600
@@ -0,0 +1,2 @@
+/.cvsignore/1.1/Tue Mar 17 22:26:37 1998/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ppc/chrpboot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/chrpboot/CVS/Repository
--- linux-2.4.20/arch/ppc/chrpboot/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/chrpboot/CVS/Repository	2005-01-06 23:00:32.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ppc/chrpboot
diff -urNd -urNd linux-2.4.20/arch/ppc/chrpboot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/chrpboot/CVS/Root
--- linux-2.4.20/arch/ppc/chrpboot/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/chrpboot/CVS/Root	2005-01-06 23:00:32.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ppc/chrpboot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/chrpboot/CVS/Tag
--- linux-2.4.20/arch/ppc/chrpboot/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/chrpboot/CVS/Tag	2005-01-06 23:00:32.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ppc/chrpboot/.cvsignore linux-2.4.20-mipscvs-20050106/arch/ppc/chrpboot/.cvsignore
--- linux-2.4.20/arch/ppc/chrpboot/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/chrpboot/.cvsignore	1998-03-17 16:26:37.000000000 -0600
@@ -0,0 +1,3 @@
+.depend
+.*.flags
+mkboot zImage
diff -urNd -urNd linux-2.4.20/arch/ppc/configs/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/configs/CVS/Entries
--- linux-2.4.20/arch/ppc/configs/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/configs/CVS/Entries	2005-01-06 23:00:32.000000000 -0600
@@ -0,0 +1,23 @@
+/IVMS8_defconfig/1.7.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
+/SM850_defconfig/1.6.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
+/SPD823TS_defconfig/1.6.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
+/TQM823L_defconfig/1.6.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
+/TQM850L_defconfig/1.6.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
+/TQM860L_defconfig/1.7.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
+/apus_defconfig/1.9.2.3/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/briq_defconfig/1.1.2.1/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/bseip_defconfig/1.8.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
+/common_defconfig/1.20.2.4/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/est8260_defconfig/1.9.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
+/gemini_defconfig/1.13.2.4/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/ibmchrp_defconfig/1.6.2.4/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/mbx_defconfig/1.8.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
+/oak_defconfig/1.11.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
+/pal4_defconfig/1.1.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/pmac_defconfig/1.3.2.4/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/power3_defconfig/1.6.2.4/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/rpxcllf_defconfig/1.9.2.2/Wed Sep 11 12:44:35 2002/-ko/Tlinux_2_4_20
+/rpxlite_defconfig/1.8.2.2/Wed Sep 11 12:44:35 2002/-ko/Tlinux_2_4_20
+/spruce_defconfig/1.2.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/walnut_defconfig/1.11.2.2/Wed Sep 11 12:44:35 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ppc/configs/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/configs/CVS/Repository
--- linux-2.4.20/arch/ppc/configs/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/configs/CVS/Repository	2005-01-06 23:00:32.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ppc/configs
diff -urNd -urNd linux-2.4.20/arch/ppc/configs/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/configs/CVS/Root
--- linux-2.4.20/arch/ppc/configs/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/configs/CVS/Root	2005-01-06 23:00:32.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ppc/configs/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/configs/CVS/Tag
--- linux-2.4.20/arch/ppc/configs/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/configs/CVS/Tag	2005-01-06 23:00:32.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ppc/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/CVS/Entries
--- linux-2.4.20/arch/ppc/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/CVS/Entries	2005-01-06 23:08:18.000000000 -0600
@@ -0,0 +1,16 @@
+/Makefile/1.27.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/config.in/1.46.2.3/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
+/defconfig/1.37.2.3/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
+/vmlinux.lds/1.10.2.1/Wed Jun 26 22:35:19 2002/-ko/Tlinux_2_4_20
+D/8260_io////
+D/8xx_io////
+D/amiga////
+D/boot////
+D/chrpboot////
+D/configs////
+D/kernel////
+D/lib////
+D/math-emu////
+D/mm////
+D/platforms////
+D/xmon////
diff -urNd -urNd linux-2.4.20/arch/ppc/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/CVS/Repository
--- linux-2.4.20/arch/ppc/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/CVS/Repository	2005-01-06 23:00:23.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ppc
diff -urNd -urNd linux-2.4.20/arch/ppc/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/CVS/Root
--- linux-2.4.20/arch/ppc/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/CVS/Root	2005-01-06 23:00:23.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ppc/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/CVS/Tag
--- linux-2.4.20/arch/ppc/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/CVS/Tag	2005-01-06 23:00:23.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ppc/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/kernel/CVS/Entries
--- linux-2.4.20/arch/ppc/kernel/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/kernel/CVS/Entries	2005-01-06 23:00:34.000000000 -0600
@@ -0,0 +1,54 @@
+/Makefile/1.32.2.4/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/align.c/1.9/Thu Jun 14 04:23:50 2001/-ko/Tlinux_2_4_20
+/bitops.c/1.3/Thu Jun 14 04:23:50 2001/-ko/Tlinux_2_4_20
+/btext.c/1.1.2.2/Wed Jun 26 22:35:21 2002/-ko/Tlinux_2_4_20
+/checks.c/1.5/Thu Jun 14 04:23:50 2001/-ko/Tlinux_2_4_20
+/cputable.c/1.2.2.4/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/entry.S/1.20.2.3/Wed Sep 11 12:44:35 2002/-ko/Tlinux_2_4_20
+/find_name.c/1.4/Thu Jun 14 04:23:51 2001/-ko/Tlinux_2_4_20
+/galaxy_pci.c/1.3.2.1/Wed Sep 11 12:44:35 2002/-ko/Tlinux_2_4_20
+/head.S/1.34.2.5/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/head_4xx.S/1.4.2.1/Wed Sep 11 12:44:35 2002/-ko/Tlinux_2_4_20
+/head_8xx.S/1.12.2.2/Wed Sep 11 12:44:35 2002/-ko/Tlinux_2_4_20
+/i8259.c/1.6.2.3/Wed Sep 11 12:44:35 2002/-ko/Tlinux_2_4_20
+/idle.c/1.24.2.3/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/idle_6xx.S/1.1.2.1/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/indirect_pci.c/1.5.2.1/Wed Sep 11 12:44:35 2002/-ko/Tlinux_2_4_20
+/irq.c/1.38.2.3/Wed Sep 11 12:44:35 2002/-ko/Tlinux_2_4_20
+/l2cr.S/1.1.2.4/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/m8260_setup.c/1.14.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/m8xx_setup.c/1.19.2.3/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/misc.S/1.36.2.6/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/mk_defs.c/1.18/Fri Oct 19 01:23:43 2001/-ko/Tlinux_2_4_20
+/open_pic.c/1.19.2.2/Wed Sep 11 12:44:35 2002/-ko/Tlinux_2_4_20
+/open_pic_defs.h/1.4/Fri Oct 19 01:23:44 2001/-ko/Tlinux_2_4_20
+/pci-dma.c/1.3/Thu Jun 14 04:23:51 2001/-ko/Tlinux_2_4_20
+/pci.c/1.31.2.4/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/pci.h/1.5/Sat Sep 22 12:49:12 2001/-ko/Tlinux_2_4_20
+/pci_auto.c/1.1.2.1/Wed Sep 11 12:44:35 2002/-ko/Tlinux_2_4_20
+/ppc-stub.c/1.8/Thu Jun 14 04:23:51 2001/-ko/Tlinux_2_4_20
+/ppc4xx_pic.c/1.2.2.1/Wed Sep 11 12:44:35 2002/-ko/Tlinux_2_4_20
+/ppc8260_pic.c/1.3.2.1/Tue Feb 26 05:59:06 2002/-ko/Tlinux_2_4_20
+/ppc8260_pic.h/1.2.2.1/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
+/ppc8xx_pic.c/1.6.2.1/Tue Feb 26 05:59:06 2002/-ko/Tlinux_2_4_20
+/ppc8xx_pic.h/1.4.2.1/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
+/ppc_defs.head/1.1/Fri Sep 12 01:30:44 1997/-ko/Tlinux_2_4_20
+/ppc_htab.c/1.21/Tue Nov  6 07:55:49 2001/-ko/Tlinux_2_4_20
+/ppc_ksyms.c/1.40.2.4/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/prep_nvram.c/1.7.2.1/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
+/process.c/1.34.2.1/Sun Dec  2 12:08:03 2001/-ko/Tlinux_2_4_20
+/prom.c/1.28.2.5/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/prom_init.c/1.1.2.1/Wed Jun 26 22:35:22 2002/-ko/Tlinux_2_4_20
+/ptrace.c/1.17.2.3/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
+/qspan_pci.c/1.4.2.2/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
+/semaphore.c/1.5/Thu Jun 14 04:23:51 2001/-ko/Tlinux_2_4_20
+/setup.c/1.41.2.4/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/signal.c/1.17.2.4/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/smp.c/1.29.2.3/Wed Jun 26 22:35:22 2002/-ko/Tlinux_2_4_20
+/softemu8xx.c/1.8/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/syscalls.c/1.19.2.1/Wed Jun 26 22:35:22 2002/-ko/Tlinux_2_4_20
+/temp.c/1.1/Fri Oct 19 01:23:45 2001/-ko/Tlinux_2_4_20
+/time.c/1.26.2.3/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/todc_time.c/1.1.2.1/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
+/traps.c/1.29/Tue Nov  6 07:55:49 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ppc/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/kernel/CVS/Repository
--- linux-2.4.20/arch/ppc/kernel/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/kernel/CVS/Repository	2005-01-06 23:00:32.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ppc/kernel
diff -urNd -urNd linux-2.4.20/arch/ppc/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/kernel/CVS/Root
--- linux-2.4.20/arch/ppc/kernel/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/kernel/CVS/Root	2005-01-06 23:00:32.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ppc/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/kernel/CVS/Tag
--- linux-2.4.20/arch/ppc/kernel/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/kernel/CVS/Tag	2005-01-06 23:00:34.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ppc/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/lib/CVS/Entries
--- linux-2.4.20/arch/ppc/lib/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/lib/CVS/Entries	2005-01-06 23:00:34.000000000 -0600
@@ -0,0 +1,7 @@
+/Makefile/1.11/Sun Dec  2 11:34:39 2001/-ko/Tlinux_2_4_20
+/checksum.S/1.6.2.1/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
+/dec_and_lock.c/1.1/Sun Dec  2 11:34:39 2001/-ko/Tlinux_2_4_20
+/locks.c/1.11.2.1/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
+/strcase.c/1.3/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/string.S/1.10.2.2/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ppc/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/lib/CVS/Repository
--- linux-2.4.20/arch/ppc/lib/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/lib/CVS/Repository	2005-01-06 23:00:34.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ppc/lib
diff -urNd -urNd linux-2.4.20/arch/ppc/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/lib/CVS/Root
--- linux-2.4.20/arch/ppc/lib/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/lib/CVS/Root	2005-01-06 23:00:34.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ppc/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/lib/CVS/Tag
--- linux-2.4.20/arch/ppc/lib/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/lib/CVS/Tag	2005-01-06 23:00:34.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ppc/math-emu/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/math-emu/CVS/Entries
--- linux-2.4.20/arch/ppc/math-emu/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/math-emu/CVS/Entries	2005-01-06 23:00:35.000000000 -0600
@@ -0,0 +1,54 @@
+/Makefile/1.3/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/double.h/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/fabs.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/fadd.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/fadds.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/fcmpo.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/fcmpu.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/fctiw.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/fctiwz.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/fdiv.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/fdivs.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/fmadd.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/fmadds.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/fmr.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/fmsub.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/fmsubs.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/fmul.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/fmuls.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/fnabs.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/fneg.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/fnmadd.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/fnmadds.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/fnmsub.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/fnmsubs.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/fres.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/frsp.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/frsqrte.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/fsel.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/fsqrt.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/fsqrts.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/fsub.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/fsubs.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/lfd.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/lfs.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/math.c/1.3/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/mcrfs.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/mffs.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/mtfsb0.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/mtfsb1.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/mtfsf.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/mtfsfi.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/op-1.h/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/op-2.h/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/op-4.h/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/op-common.h/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/sfp-machine.h/1.3/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/single.h/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/soft-fp.h/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/stfd.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/stfiwx.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/stfs.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/types.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+/udivmodti4.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ppc/math-emu/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/math-emu/CVS/Repository
--- linux-2.4.20/arch/ppc/math-emu/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/math-emu/CVS/Repository	2005-01-06 23:00:34.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ppc/math-emu
diff -urNd -urNd linux-2.4.20/arch/ppc/math-emu/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/math-emu/CVS/Root
--- linux-2.4.20/arch/ppc/math-emu/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/math-emu/CVS/Root	2005-01-06 23:00:34.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ppc/math-emu/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/math-emu/CVS/Tag
--- linux-2.4.20/arch/ppc/math-emu/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/math-emu/CVS/Tag	2005-01-06 23:00:35.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ppc/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/mm/CVS/Entries
--- linux-2.4.20/arch/ppc/mm/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/mm/CVS/Entries	2005-01-06 23:00:35.000000000 -0600
@@ -0,0 +1,17 @@
+/4xx_mmu.c/1.2/Tue Nov  6 07:55:49 2001/-ko/Tlinux_2_4_20
+/4xx_tlb.c/1.3/Thu Jun 14 04:23:53 2001/-ko/Tlinux_2_4_20
+/4xx_tlb.h/1.2/Thu Jun 14 04:23:53 2001/-ko/Tlinux_2_4_20
+/Makefile/1.8/Fri Oct 19 01:23:45 2001/-ko/Tlinux_2_4_20
+/cachemap.c/1.2/Tue Nov  6 07:55:49 2001/-ko/Tlinux_2_4_20
+/extable.c/1.5/Thu Jun 14 04:23:53 2001/-ko/Tlinux_2_4_20
+/fault.c/1.25.2.1/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
+/hashtable.S/1.2.2.1/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
+/init.c/1.44.2.2/Wed Jun 26 22:35:22 2002/-ko/Tlinux_2_4_20
+/mem_pieces.c/1.5/Thu Jun 14 04:23:53 2001/-ko/Tlinux_2_4_20
+/mem_pieces.h/1.3/Thu Jun 14 04:23:53 2001/-ko/Tlinux_2_4_20
+/mmu_context.c/1.2/Mon Nov  5 20:15:29 2001/-ko/Tlinux_2_4_20
+/mmu_decl.h/1.2.2.2/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
+/pgtable.c/1.2.2.2/Wed Jun 26 22:35:22 2002/-ko/Tlinux_2_4_20
+/ppc_mmu.c/1.1.2.4/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
+/tlb.c/1.1/Fri Oct 19 01:23:45 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ppc/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/mm/CVS/Repository
--- linux-2.4.20/arch/ppc/mm/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/mm/CVS/Repository	2005-01-06 23:00:35.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ppc/mm
diff -urNd -urNd linux-2.4.20/arch/ppc/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/mm/CVS/Root
--- linux-2.4.20/arch/ppc/mm/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/mm/CVS/Root	2005-01-06 23:00:35.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ppc/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/mm/CVS/Tag
--- linux-2.4.20/arch/ppc/mm/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/mm/CVS/Tag	2005-01-06 23:00:35.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ppc/platforms/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/platforms/CVS/Entries
--- linux-2.4.20/arch/ppc/platforms/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/platforms/CVS/Entries	2005-01-06 23:08:18.000000000 -0600
@@ -0,0 +1,55 @@
+/Makefile/1.2.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/apus_pci.c/1.1.2.1/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
+/apus_pci.h/1.1.2.1/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
+/apus_setup.c/1.1.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/bseip.h/1.1.2.1/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
+/chrp_pci.c/1.1.2.1/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
+/chrp_setup.c/1.4.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/chrp_smp.c/1.1.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/chrp_time.c/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
+/cpc700.h/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
+/cpc700_pic.c/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
+/error_log.c/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
+/error_log.h/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
+/est8260.h/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
+/fads.h/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
+/gemini.h/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
+/gemini_pci.c/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
+/gemini_prom.S/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
+/gemini_serial.h/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
+/gemini_setup.c/1.1.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/ivms8.h/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
+/mbx.h/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
+/oak.h/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
+/oak_setup.c/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
+/oak_setup.h/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
+/pal4.h/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
+/pal4_pci.c/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
+/pal4_serial.h/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
+/pal4_setup.c/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
+/pmac_backlight.c/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
+/pmac_feature.c/1.3.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/pmac_nvram.c/1.2.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
+/pmac_pci.c/1.2.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
+/pmac_pic.c/1.3.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
+/pmac_pic.h/1.1.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
+/pmac_setup.c/1.3.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
+/pmac_sleep.S/1.1.2.1/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/pmac_smp.c/1.3.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
+/pmac_time.c/1.1.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/prep_pci.c/1.2.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
+/prep_setup.c/1.3.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
+/prep_time.c/1.1.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
+/proc_rtas.c/1.1.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
+/residual.c/1.1.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
+/rpxclassic.h/1.2.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
+/rpxhiox.h/1.1.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
+/rpxlite.h/1.2.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
+/spd8xx.h/1.1.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
+/spruce.h/1.1.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
+/spruce_pci.c/1.1.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
+/spruce_setup.c/1.1.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
+/tqm8xx.h/1.1.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
+/walnut.c/1.1.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
+/walnut.h/1.1.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ppc/platforms/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/platforms/CVS/Repository
--- linux-2.4.20/arch/ppc/platforms/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/platforms/CVS/Repository	2005-01-06 23:00:35.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ppc/platforms
diff -urNd -urNd linux-2.4.20/arch/ppc/platforms/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/platforms/CVS/Root
--- linux-2.4.20/arch/ppc/platforms/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/platforms/CVS/Root	2005-01-06 23:00:35.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ppc/platforms/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/platforms/CVS/Tag
--- linux-2.4.20/arch/ppc/platforms/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/platforms/CVS/Tag	2005-01-06 23:00:37.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ppc/xmon/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/xmon/CVS/Entries
--- linux-2.4.20/arch/ppc/xmon/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/xmon/CVS/Entries	2005-01-06 23:00:38.000000000 -0600
@@ -0,0 +1,14 @@
+/Makefile/1.5/Wed Aug 22 03:24:01 2001/-ko/Tlinux_2_4_20
+/adb.c/1.2/Thu Jun 14 04:23:53 2001/-ko/Tlinux_2_4_20
+/ansidecl.h/1.2/Thu Jun 14 04:23:53 2001/-ko/Tlinux_2_4_20
+/nonstdio.h/1.2.2.1/Tue Feb 26 05:59:06 2002/-ko/Tlinux_2_4_20
+/ppc-dis.c/1.2/Thu Jun 14 04:23:53 2001/-ko/Tlinux_2_4_20
+/ppc-opc.c/1.3/Thu Jun 14 04:23:53 2001/-ko/Tlinux_2_4_20
+/ppc.h/1.2/Thu Jun 14 04:23:53 2001/-ko/Tlinux_2_4_20
+/privinst.h/1.4/Thu Jun 14 04:23:53 2001/-ko/Tlinux_2_4_20
+/setjmp.c/1.2/Thu Jun 14 04:23:53 2001/-ko/Tlinux_2_4_20
+/start.c/1.16.2.2/Wed Jun 26 22:35:22 2002/-ko/Tlinux_2_4_20
+/start_8xx.c/1.3/Mon Nov  5 20:15:29 2001/-ko/Tlinux_2_4_20
+/subr_prf.c/1.3.2.1/Tue Feb 26 05:59:06 2002/-ko/Tlinux_2_4_20
+/xmon.c/1.17.2.1/Tue Feb 26 05:59:06 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ppc/xmon/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/xmon/CVS/Repository
--- linux-2.4.20/arch/ppc/xmon/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/xmon/CVS/Repository	2005-01-06 23:00:37.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ppc/xmon
diff -urNd -urNd linux-2.4.20/arch/ppc/xmon/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/xmon/CVS/Root
--- linux-2.4.20/arch/ppc/xmon/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/xmon/CVS/Root	2005-01-06 23:00:37.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ppc/xmon/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/xmon/CVS/Tag
--- linux-2.4.20/arch/ppc/xmon/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc/xmon/CVS/Tag	2005-01-06 23:00:38.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ppc64/boot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc64/boot/CVS/Entries
--- linux-2.4.20/arch/ppc64/boot/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/boot/CVS/Entries	2005-01-06 23:00:39.000000000 -0600
@@ -0,0 +1,14 @@
+/Makefile/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
+/addRamDisk.c/1.1.2.2/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
+/addSystemMap.c/1.1.2.2/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
+/addnote.c/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
+/crt0.S/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
+/mknote.c/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
+/ppc32-types.h/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
+/prom.c/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
+/string.S/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
+/zImage.c/1.1.2.2/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
+/zImage.lds/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
+/zlib.c/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
+/zlib.h/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ppc64/boot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc64/boot/CVS/Repository
--- linux-2.4.20/arch/ppc64/boot/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/boot/CVS/Repository	2005-01-06 23:00:38.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ppc64/boot
diff -urNd -urNd linux-2.4.20/arch/ppc64/boot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc64/boot/CVS/Root
--- linux-2.4.20/arch/ppc64/boot/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/boot/CVS/Root	2005-01-06 23:00:38.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ppc64/boot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc64/boot/CVS/Tag
--- linux-2.4.20/arch/ppc64/boot/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/boot/CVS/Tag	2005-01-06 23:00:39.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ppc64/configs/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc64/configs/CVS/Entries
--- linux-2.4.20/arch/ppc64/configs/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/configs/CVS/Entries	2005-01-06 23:00:39.000000000 -0600
@@ -0,0 +1,4 @@
+/iSeries_devfs_defconfig/1.1.2.2/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
+/iSeries_nodevfs_ideemul_defconfig/1.1.2.2/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
+/pSeries_defconfig/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ppc64/configs/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc64/configs/CVS/Repository
--- linux-2.4.20/arch/ppc64/configs/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/configs/CVS/Repository	2005-01-06 23:00:39.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ppc64/configs
diff -urNd -urNd linux-2.4.20/arch/ppc64/configs/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc64/configs/CVS/Root
--- linux-2.4.20/arch/ppc64/configs/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/configs/CVS/Root	2005-01-06 23:00:39.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ppc64/configs/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc64/configs/CVS/Tag
--- linux-2.4.20/arch/ppc64/configs/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/configs/CVS/Tag	2005-01-06 23:00:39.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ppc64/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc64/CVS/Entries
--- linux-2.4.20/arch/ppc64/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/CVS/Entries	2005-01-06 23:08:17.000000000 -0600
@@ -0,0 +1,10 @@
+/Makefile/1.1.2.2/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
+/config.in/1.1.2.2/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
+/defconfig/1.1.2.2/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
+/vmlinux.lds/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
+D/boot////
+D/configs////
+D/kernel////
+D/lib////
+D/mm////
+D/xmon////
diff -urNd -urNd linux-2.4.20/arch/ppc64/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc64/CVS/Repository
--- linux-2.4.20/arch/ppc64/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/CVS/Repository	2005-01-06 23:00:38.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ppc64
diff -urNd -urNd linux-2.4.20/arch/ppc64/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc64/CVS/Root
--- linux-2.4.20/arch/ppc64/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/CVS/Root	2005-01-06 23:00:38.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ppc64/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc64/CVS/Tag
--- linux-2.4.20/arch/ppc64/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/CVS/Tag	2005-01-06 23:00:38.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ppc64/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc64/kernel/CVS/Entries
--- linux-2.4.20/arch/ppc64/kernel/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/kernel/CVS/Entries	2005-01-06 23:00:45.000000000 -0600
@@ -0,0 +1,83 @@
+/HvCall.c/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
+/HvLpConfig.c/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
+/HvLpEvent.c/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
+/ItLpQueue.c/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
+/LparData.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/XmPciLpEvent.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/align.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/binfmt_elf32.c/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
+/bitops.c/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
+/checks.c/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
+/chrp_setup.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/eeh.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/entry.S/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/flight_recorder.c/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
+/head.S/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/htab.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/hvCall.S/1.1.2.1/Wed Jun 26 22:35:24 2002/-ko/Tlinux_2_4_20
+/i8259.c/1.1.2.1/Wed Jun 26 22:35:24 2002/-ko/Tlinux_2_4_20
+/i8259.h/1.1.2.1/Wed Jun 26 22:35:24 2002/-ko/Tlinux_2_4_20
+/iSeries_IoMmTable.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/iSeries_IoMmTable.h/1.1.2.1/Wed Jun 26 22:35:24 2002/-ko/Tlinux_2_4_20
+/iSeries_VpdInfo.c/1.1.2.1/Wed Jun 26 22:35:24 2002/-ko/Tlinux_2_4_20
+/iSeries_irq.c/1.1.2.1/Wed Jun 26 22:35:24 2002/-ko/Tlinux_2_4_20
+/iSeries_pci.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/iSeries_pci_reset.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/iSeries_proc.c/1.1.2.1/Wed Jun 26 22:35:24 2002/-ko/Tlinux_2_4_20
+/iSeries_setup.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/iSeries_setup.h/1.1.2.1/Wed Jun 26 22:35:24 2002/-ko/Tlinux_2_4_20
+/idle.c/1.1.2.1/Wed Jun 26 22:35:24 2002/-ko/Tlinux_2_4_20
+/ioctl32.c/1.1.2.3/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/irq.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/lmb.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/local_irq.h/1.1.2.1/Wed Jun 26 22:35:24 2002/-ko/Tlinux_2_4_20
+/mf.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/mf_proc.c/1.1.2.1/Wed Jun 26 22:35:24 2002/-ko/Tlinux_2_4_20
+/misc.S/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/mk_defs.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/nvram.c/1.1.2.1/Wed Jun 26 22:35:24 2002/-ko/Tlinux_2_4_20
+/open_pic.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/open_pic.h/1.1.2.1/Wed Jun 26 22:35:24 2002/-ko/Tlinux_2_4_20
+/open_pic_defs.h/1.1.2.1/Wed Jun 26 22:35:24 2002/-ko/Tlinux_2_4_20
+/pSeries_hvCall.S/1.1.2.1/Wed Jun 26 22:35:24 2002/-ko/Tlinux_2_4_20
+/pSeries_lpar.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/pSeries_pci.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/pacaData.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/pci.c/1.1.2.3/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/pci.h/1.1.2.1/Wed Jun 26 22:35:24 2002/-ko/Tlinux_2_4_20
+/pci_dma.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/pci_dn.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/perfmon.c/1.1.2.1/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/pmc.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/ppc-stub.c/1.1.2.1/Wed Jun 26 22:35:25 2002/-ko/Tlinux_2_4_20
+/ppc_asm.h/1.1.2.1/Wed Jun 26 22:35:25 2002/-ko/Tlinux_2_4_20
+/ppc_defs.head/1.1.2.1/Wed Jun 26 22:35:25 2002/-ko/Tlinux_2_4_20
+/ppc_ksyms.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/proc_pcifr.c/1.1.2.1/Wed Jun 26 22:35:25 2002/-ko/Tlinux_2_4_20
+/proc_pmc.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/process.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/prom.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/ptrace.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/ptrace32.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/ras.c/1.1.2.1/Wed Jun 26 22:35:25 2002/-ko/Tlinux_2_4_20
+/rtas-proc.c/1.1.2.1/Wed Jun 26 22:35:25 2002/-ko/Tlinux_2_4_20
+/rtas.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/rtas_flash.c/1.1.2.1/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/rtasd.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/rtc.c/1.1.2.1/Wed Jun 26 22:35:25 2002/-ko/Tlinux_2_4_20
+/semaphore.c/1.1.2.1/Wed Jun 26 22:35:25 2002/-ko/Tlinux_2_4_20
+/setup.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/signal.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/signal32.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/smp.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/stab.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/sys32.S/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
+/sys_ppc32.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
+/syscalls.c/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
+/time.c/1.1.2.2/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/traps.c/1.1.2.2/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/udbg.c/1.1.2.2/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/xics.c/1.1.2.2/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/xics.h/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ppc64/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc64/kernel/CVS/Repository
--- linux-2.4.20/arch/ppc64/kernel/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/kernel/CVS/Repository	2005-01-06 23:00:39.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ppc64/kernel
diff -urNd -urNd linux-2.4.20/arch/ppc64/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc64/kernel/CVS/Root
--- linux-2.4.20/arch/ppc64/kernel/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/kernel/CVS/Root	2005-01-06 23:00:39.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ppc64/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc64/kernel/CVS/Tag
--- linux-2.4.20/arch/ppc64/kernel/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/kernel/CVS/Tag	2005-01-06 23:00:45.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ppc64/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc64/lib/CVS/Entries
--- linux-2.4.20/arch/ppc64/lib/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/lib/CVS/Entries	2005-01-06 23:00:45.000000000 -0600
@@ -0,0 +1,6 @@
+/Makefile/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
+/checksum.S/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
+/dec_and_lock.c/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
+/strcase.c/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
+/string.S/1.1.2.2/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ppc64/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc64/lib/CVS/Repository
--- linux-2.4.20/arch/ppc64/lib/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/lib/CVS/Repository	2005-01-06 23:00:45.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ppc64/lib
diff -urNd -urNd linux-2.4.20/arch/ppc64/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc64/lib/CVS/Root
--- linux-2.4.20/arch/ppc64/lib/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/lib/CVS/Root	2005-01-06 23:00:45.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ppc64/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc64/lib/CVS/Tag
--- linux-2.4.20/arch/ppc64/lib/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/lib/CVS/Tag	2005-01-06 23:00:45.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ppc64/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc64/mm/CVS/Entries
--- linux-2.4.20/arch/ppc64/mm/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/mm/CVS/Entries	2005-01-06 23:00:45.000000000 -0600
@@ -0,0 +1,6 @@
+/Makefile/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
+/extable.c/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
+/fault.c/1.1.2.2/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/imalloc.c/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
+/init.c/1.1.2.2/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ppc64/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc64/mm/CVS/Repository
--- linux-2.4.20/arch/ppc64/mm/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/mm/CVS/Repository	2005-01-06 23:00:45.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ppc64/mm
diff -urNd -urNd linux-2.4.20/arch/ppc64/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc64/mm/CVS/Root
--- linux-2.4.20/arch/ppc64/mm/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/mm/CVS/Root	2005-01-06 23:00:45.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ppc64/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc64/mm/CVS/Tag
--- linux-2.4.20/arch/ppc64/mm/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/mm/CVS/Tag	2005-01-06 23:00:45.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/ppc64/xmon/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc64/xmon/CVS/Entries
--- linux-2.4.20/arch/ppc64/xmon/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/xmon/CVS/Entries	2005-01-06 23:00:46.000000000 -0600
@@ -0,0 +1,12 @@
+/Makefile/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
+/ansidecl.h/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
+/nonstdio.h/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
+/ppc-dis.c/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
+/ppc-opc.c/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
+/ppc.h/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
+/privinst.h/1.1.2.2/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/setjmp.c/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
+/start.c/1.1.2.2/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/subr_prf.c/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
+/xmon.c/1.1.2.2/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/ppc64/xmon/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc64/xmon/CVS/Repository
--- linux-2.4.20/arch/ppc64/xmon/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/xmon/CVS/Repository	2005-01-06 23:00:45.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/ppc64/xmon
diff -urNd -urNd linux-2.4.20/arch/ppc64/xmon/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc64/xmon/CVS/Root
--- linux-2.4.20/arch/ppc64/xmon/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/xmon/CVS/Root	2005-01-06 23:00:45.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/ppc64/xmon/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc64/xmon/CVS/Tag
--- linux-2.4.20/arch/ppc64/xmon/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/xmon/CVS/Tag	2005-01-06 23:00:46.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/s390/boot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/s390/boot/CVS/Entries
--- linux-2.4.20/arch/s390/boot/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390/boot/CVS/Entries	2005-01-06 23:00:46.000000000 -0600
@@ -0,0 +1,6 @@
+/Makefile/1.5.2.1/Tue Feb 26 05:59:07 2002/-ko/Tlinux_2_4_20
+/install.sh/1.1.2.1/Wed Jun 26 22:35:27 2002/-ko/Tlinux_2_4_20
+/ipldump.S/1.2/Fri Mar  9 20:33:48 2001/-ko/Tlinux_2_4_20
+/ipleckd.S/1.3/Fri Mar  9 20:33:48 2001/-ko/Tlinux_2_4_20
+/iplfba.S/1.2/Fri May 12 23:48:36 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/s390/boot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/s390/boot/CVS/Repository
--- linux-2.4.20/arch/s390/boot/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390/boot/CVS/Repository	2005-01-06 23:00:46.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/s390/boot
diff -urNd -urNd linux-2.4.20/arch/s390/boot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/s390/boot/CVS/Root
--- linux-2.4.20/arch/s390/boot/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390/boot/CVS/Root	2005-01-06 23:00:46.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/s390/boot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/s390/boot/CVS/Tag
--- linux-2.4.20/arch/s390/boot/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390/boot/CVS/Tag	2005-01-06 23:00:46.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/s390/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/s390/CVS/Entries
--- linux-2.4.20/arch/s390/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390/CVS/Entries	2005-01-06 23:08:17.000000000 -0600
@@ -0,0 +1,10 @@
+/Makefile/1.6.2.2/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
+/config.in/1.13.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/defconfig/1.7.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/vmlinux-shared.lds/1.1.2.1/Tue Feb 26 05:59:07 2002/-ko/Tlinux_2_4_20
+/vmlinux.lds/1.4.2.1/Tue Feb 26 05:59:07 2002/-ko/Tlinux_2_4_20
+D/boot////
+D/kernel////
+D/lib////
+D/math-emu////
+D/mm////
diff -urNd -urNd linux-2.4.20/arch/s390/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/s390/CVS/Repository
--- linux-2.4.20/arch/s390/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390/CVS/Repository	2005-01-06 23:00:46.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/s390
diff -urNd -urNd linux-2.4.20/arch/s390/CVS/Root linux-2.4.20-mipscvs-20050106/arch/s390/CVS/Root
--- linux-2.4.20/arch/s390/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390/CVS/Root	2005-01-06 23:00:46.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/s390/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/s390/CVS/Tag
--- linux-2.4.20/arch/s390/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390/CVS/Tag	2005-01-06 23:00:46.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/s390/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/s390/kernel/CVS/Entries
--- linux-2.4.20/arch/s390/kernel/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390/kernel/CVS/Entries	2005-01-06 23:00:48.000000000 -0600
@@ -0,0 +1,25 @@
+/Makefile/1.5.2.1/Wed Jun 26 22:35:27 2002/-ko/Tlinux_2_4_20
+/asm-offsets.c/1.1.2.1/Wed Jun 26 22:35:27 2002/-ko/Tlinux_2_4_20
+/bitmap.S/1.2/Fri May 12 23:48:36 2000/-ko/Tlinux_2_4_20
+/cpcmd.c/1.4/Wed Jun 13 17:27:43 2001/-ko/Tlinux_2_4_20
+/debug.c/1.4.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/ebcdic.c/1.4/Wed Jun 13 17:27:43 2001/-ko/Tlinux_2_4_20
+/entry.S/1.13.2.4/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/gdb-stub.c/1.3/Tue Nov  6 00:54:56 2001/-ko/Tlinux_2_4_20
+/head.S/1.8/Sun Dec  2 11:34:39 2001/-ko/Tlinux_2_4_20
+/init_task.c/1.4.2.1/Tue Feb 26 05:59:07 2002/-ko/Tlinux_2_4_20
+/irq.c/1.8.2.1/Wed Jun 26 22:35:27 2002/-ko/Tlinux_2_4_20
+/process.c/1.11.2.2/Wed Jun 26 22:35:27 2002/-ko/Tlinux_2_4_20
+/ptrace.c/1.6.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/reipl.S/1.3.2.1/Wed Jun 26 22:35:27 2002/-ko/Tlinux_2_4_20
+/s390_ext.c/1.3.2.1/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/s390_ksyms.c/1.6.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/s390fpu.c/1.4/Wed Jun 13 17:27:43 2001/-ko/Tlinux_2_4_20
+/semaphore.c/1.5/Wed Jun 13 17:27:43 2001/-ko/Tlinux_2_4_20
+/setup.c/1.7.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/signal.c/1.8.2.2/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/smp.c/1.10.2.4/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/sys_s390.c/1.5/Thu Apr  5 04:56:11 2001/-ko/Tlinux_2_4_20
+/time.c/1.5.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/traps.c/1.9.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/s390/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/s390/kernel/CVS/Repository
--- linux-2.4.20/arch/s390/kernel/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390/kernel/CVS/Repository	2005-01-06 23:00:46.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/s390/kernel
diff -urNd -urNd linux-2.4.20/arch/s390/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/s390/kernel/CVS/Root
--- linux-2.4.20/arch/s390/kernel/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390/kernel/CVS/Root	2005-01-06 23:00:46.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/s390/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/s390/kernel/CVS/Tag
--- linux-2.4.20/arch/s390/kernel/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390/kernel/CVS/Tag	2005-01-06 23:00:48.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/s390/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/s390/lib/CVS/Entries
--- linux-2.4.20/arch/s390/lib/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390/lib/CVS/Entries	2005-01-06 23:00:48.000000000 -0600
@@ -0,0 +1,9 @@
+/Makefile/1.4.2.1/Wed Jun 26 22:35:27 2002/-ko/Tlinux_2_4_20
+/checksum.c/1.3/Wed Jun 13 17:27:44 2001/-ko/Tlinux_2_4_20
+/delay.c/1.3/Fri Mar  9 20:33:49 2001/-ko/Tlinux_2_4_20
+/memset.S/1.2/Fri May 12 23:48:36 2000/-ko/Tlinux_2_4_20
+/misaligned.c/1.1/Wed Jun 13 17:27:44 2001/-ko/Tlinux_2_4_20
+/strcmp.S/1.3/Fri Mar  9 20:33:49 2001/-ko/Tlinux_2_4_20
+/strncpy.S/1.3/Fri Mar  9 20:33:49 2001/-ko/Tlinux_2_4_20
+/uaccess.S/1.1.2.1/Tue Feb 26 05:59:07 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/s390/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/s390/lib/CVS/Repository
--- linux-2.4.20/arch/s390/lib/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390/lib/CVS/Repository	2005-01-06 23:00:48.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/s390/lib
diff -urNd -urNd linux-2.4.20/arch/s390/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/s390/lib/CVS/Root
--- linux-2.4.20/arch/s390/lib/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390/lib/CVS/Root	2005-01-06 23:00:48.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/s390/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/s390/lib/CVS/Tag
--- linux-2.4.20/arch/s390/lib/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390/lib/CVS/Tag	2005-01-06 23:00:48.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/s390/math-emu/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/s390/math-emu/CVS/Entries
--- linux-2.4.20/arch/s390/math-emu/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390/math-emu/CVS/Entries	2005-01-06 23:00:48.000000000 -0600
@@ -0,0 +1,5 @@
+/Makefile/1.1/Wed Jun 13 17:27:44 2001/-ko/Tlinux_2_4_20
+/math.c/1.2.2.1/Tue Feb 26 05:59:07 2002/-ko/Tlinux_2_4_20
+/qrnnd.S/1.1/Wed Jun 13 17:27:44 2001/-ko/Tlinux_2_4_20
+/sfp-util.h/1.1/Wed Jun 13 17:27:44 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/s390/math-emu/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/s390/math-emu/CVS/Repository
--- linux-2.4.20/arch/s390/math-emu/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390/math-emu/CVS/Repository	2005-01-06 23:00:48.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/s390/math-emu
diff -urNd -urNd linux-2.4.20/arch/s390/math-emu/CVS/Root linux-2.4.20-mipscvs-20050106/arch/s390/math-emu/CVS/Root
--- linux-2.4.20/arch/s390/math-emu/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390/math-emu/CVS/Root	2005-01-06 23:00:48.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/s390/math-emu/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/s390/math-emu/CVS/Tag
--- linux-2.4.20/arch/s390/math-emu/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390/math-emu/CVS/Tag	2005-01-06 23:00:48.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/s390/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/s390/mm/CVS/Entries
--- linux-2.4.20/arch/s390/mm/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390/mm/CVS/Entries	2005-01-06 23:00:48.000000000 -0600
@@ -0,0 +1,6 @@
+/Makefile/1.4/Fri Aug 24 03:38:34 2001/-ko/Tlinux_2_4_20
+/extable.c/1.3/Tue Nov  6 00:54:56 2001/-ko/Tlinux_2_4_20
+/fault.c/1.9.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/init.c/1.9.2.1/Wed Jun 26 22:35:27 2002/-ko/Tlinux_2_4_20
+/ioremap.c/1.4/Wed Jun 13 17:27:44 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/s390/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/s390/mm/CVS/Repository
--- linux-2.4.20/arch/s390/mm/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390/mm/CVS/Repository	2005-01-06 23:00:48.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/s390/mm
diff -urNd -urNd linux-2.4.20/arch/s390/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/s390/mm/CVS/Root
--- linux-2.4.20/arch/s390/mm/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390/mm/CVS/Root	2005-01-06 23:00:48.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/s390/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/s390/mm/CVS/Tag
--- linux-2.4.20/arch/s390/mm/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390/mm/CVS/Tag	2005-01-06 23:00:48.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/s390x/boot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/s390x/boot/CVS/Entries
--- linux-2.4.20/arch/s390x/boot/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390x/boot/CVS/Entries	2005-01-06 23:00:48.000000000 -0600
@@ -0,0 +1,6 @@
+/Makefile/1.2.2.1/Tue Feb 26 05:59:07 2002/-ko/Tlinux_2_4_20
+/install.sh/1.1.2.1/Wed Jun 26 22:35:27 2002/-ko/Tlinux_2_4_20
+/ipldump.S/1.1/Fri Mar  9 20:33:49 2001/-ko/Tlinux_2_4_20
+/ipleckd.S/1.1/Fri Mar  9 20:33:49 2001/-ko/Tlinux_2_4_20
+/iplfba.S/1.1/Fri Mar  9 20:33:49 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/s390x/boot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/s390x/boot/CVS/Repository
--- linux-2.4.20/arch/s390x/boot/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390x/boot/CVS/Repository	2005-01-06 23:00:48.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/s390x/boot
diff -urNd -urNd linux-2.4.20/arch/s390x/boot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/s390x/boot/CVS/Root
--- linux-2.4.20/arch/s390x/boot/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390x/boot/CVS/Root	2005-01-06 23:00:48.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/s390x/boot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/s390x/boot/CVS/Tag
--- linux-2.4.20/arch/s390x/boot/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390x/boot/CVS/Tag	2005-01-06 23:00:48.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/s390x/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/s390x/CVS/Entries
--- linux-2.4.20/arch/s390x/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390x/CVS/Entries	2005-01-06 23:08:17.000000000 -0600
@@ -0,0 +1,9 @@
+/Makefile/1.3.2.2/Wed Jun 26 22:35:27 2002/-ko/Tlinux_2_4_20
+/config.in/1.4.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/defconfig/1.5.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/vmlinux-shared.lds/1.1.2.1/Tue Feb 26 05:59:07 2002/-ko/Tlinux_2_4_20
+/vmlinux.lds/1.3.2.1/Tue Feb 26 05:59:07 2002/-ko/Tlinux_2_4_20
+D/boot////
+D/kernel////
+D/lib////
+D/mm////
diff -urNd -urNd linux-2.4.20/arch/s390x/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/s390x/CVS/Repository
--- linux-2.4.20/arch/s390x/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390x/CVS/Repository	2005-01-06 23:00:48.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/s390x
diff -urNd -urNd linux-2.4.20/arch/s390x/CVS/Root linux-2.4.20-mipscvs-20050106/arch/s390x/CVS/Root
--- linux-2.4.20/arch/s390x/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390x/CVS/Root	2005-01-06 23:00:48.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/s390x/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/s390x/CVS/Tag
--- linux-2.4.20/arch/s390x/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390x/CVS/Tag	2005-01-06 23:00:48.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/s390x/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/s390x/kernel/CVS/Entries
--- linux-2.4.20/arch/s390x/kernel/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390x/kernel/CVS/Entries	2005-01-06 23:00:50.000000000 -0600
@@ -0,0 +1,33 @@
+/Makefile/1.3.2.2/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/asm-offsets.c/1.1.2.1/Wed Jun 26 22:35:27 2002/-ko/Tlinux_2_4_20
+/binfmt_elf32.c/1.3/Wed Jun 13 17:27:44 2001/-ko/Tlinux_2_4_20
+/bitmap.S/1.1/Fri Mar  9 20:33:49 2001/-ko/Tlinux_2_4_20
+/cpcmd.c/1.3/Tue Nov  6 00:54:58 2001/-ko/Tlinux_2_4_20
+/debug.c/1.4.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/ebcdic.c/1.2/Wed Jun 13 17:27:44 2001/-ko/Tlinux_2_4_20
+/entry.S/1.9.2.4/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/exec32.c/1.3/Wed Jun 13 17:27:44 2001/-ko/Tlinux_2_4_20
+/gdb-stub.c/1.1/Fri Mar  9 20:33:49 2001/-ko/Tlinux_2_4_20
+/head.S/1.6.2.1/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/ieee.h/1.1/Fri Mar  9 20:33:49 2001/-ko/Tlinux_2_4_20
+/init_task.c/1.3.2.1/Tue Feb 26 05:59:07 2002/-ko/Tlinux_2_4_20
+/ioctl32.c/1.4.2.1/Tue Feb 26 05:59:07 2002/-ko/Tlinux_2_4_20
+/irq.c/1.4.2.1/Wed Jun 26 22:35:27 2002/-ko/Tlinux_2_4_20
+/linux32.c/1.7.2.2/Wed Jun 26 22:35:27 2002/-ko/Tlinux_2_4_20
+/linux32.h/1.2/Tue Nov  6 00:54:58 2001/-ko/Tlinux_2_4_20
+/process.c/1.6.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/ptrace.c/1.4.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/reipl.S/1.2.2.1/Wed Jun 26 22:35:27 2002/-ko/Tlinux_2_4_20
+/s390_ext.c/1.3.2.1/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/s390_ksyms.c/1.4.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/s390fpu.c/1.1/Fri Mar  9 20:33:49 2001/-ko/Tlinux_2_4_20
+/semaphore.c/1.2/Wed Jun 13 17:27:44 2001/-ko/Tlinux_2_4_20
+/setup.c/1.5.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/signal.c/1.4.2.2/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/signal32.c/1.3.2.1/Wed Jun 26 22:35:27 2002/-ko/Tlinux_2_4_20
+/smp.c/1.6.2.4/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/sys_s390.c/1.3.2.1/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/time.c/1.3.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/traps.c/1.4.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/wrapper32.S/1.3.2.1/Tue Feb 26 05:59:08 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/s390x/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/s390x/kernel/CVS/Repository
--- linux-2.4.20/arch/s390x/kernel/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390x/kernel/CVS/Repository	2005-01-06 23:00:48.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/s390x/kernel
diff -urNd -urNd linux-2.4.20/arch/s390x/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/s390x/kernel/CVS/Root
--- linux-2.4.20/arch/s390x/kernel/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390x/kernel/CVS/Root	2005-01-06 23:00:48.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/s390x/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/s390x/kernel/CVS/Tag
--- linux-2.4.20/arch/s390x/kernel/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390x/kernel/CVS/Tag	2005-01-06 23:00:50.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/s390x/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/s390x/lib/CVS/Entries
--- linux-2.4.20/arch/s390x/lib/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390x/lib/CVS/Entries	2005-01-06 23:00:50.000000000 -0600
@@ -0,0 +1,9 @@
+/Makefile/1.2.2.1/Wed Jun 26 22:35:27 2002/-ko/Tlinux_2_4_20
+/checksum.c/1.1/Fri Mar  9 20:33:49 2001/-ko/Tlinux_2_4_20
+/delay.c/1.2/Wed Jun 13 17:27:44 2001/-ko/Tlinux_2_4_20
+/memset.S/1.1/Fri Mar  9 20:33:49 2001/-ko/Tlinux_2_4_20
+/misaligned.c/1.1/Wed Jun 13 17:27:44 2001/-ko/Tlinux_2_4_20
+/strcmp.S/1.1/Fri Mar  9 20:33:49 2001/-ko/Tlinux_2_4_20
+/strncpy.S/1.1/Fri Mar  9 20:33:49 2001/-ko/Tlinux_2_4_20
+/uaccess.S/1.1.2.1/Tue Feb 26 05:59:08 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/s390x/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/s390x/lib/CVS/Repository
--- linux-2.4.20/arch/s390x/lib/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390x/lib/CVS/Repository	2005-01-06 23:00:50.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/s390x/lib
diff -urNd -urNd linux-2.4.20/arch/s390x/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/s390x/lib/CVS/Root
--- linux-2.4.20/arch/s390x/lib/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390x/lib/CVS/Root	2005-01-06 23:00:50.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/s390x/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/s390x/lib/CVS/Tag
--- linux-2.4.20/arch/s390x/lib/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390x/lib/CVS/Tag	2005-01-06 23:00:50.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/s390x/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/s390x/mm/CVS/Entries
--- linux-2.4.20/arch/s390x/mm/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390x/mm/CVS/Entries	2005-01-06 23:00:50.000000000 -0600
@@ -0,0 +1,6 @@
+/Makefile/1.1/Fri Mar  9 20:33:49 2001/-ko/Tlinux_2_4_20
+/extable.c/1.2/Tue Nov  6 00:54:59 2001/-ko/Tlinux_2_4_20
+/fault.c/1.6.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/init.c/1.5.2.2/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/ioremap.c/1.2/Wed Jun 13 17:27:45 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/s390x/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/s390x/mm/CVS/Repository
--- linux-2.4.20/arch/s390x/mm/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390x/mm/CVS/Repository	2005-01-06 23:00:50.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/s390x/mm
diff -urNd -urNd linux-2.4.20/arch/s390x/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/s390x/mm/CVS/Root
--- linux-2.4.20/arch/s390x/mm/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390x/mm/CVS/Root	2005-01-06 23:00:50.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/s390x/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/s390x/mm/CVS/Tag
--- linux-2.4.20/arch/s390x/mm/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/s390x/mm/CVS/Tag	2005-01-06 23:00:50.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/sh/boot/compressed/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sh/boot/compressed/CVS/Entries
--- linux-2.4.20/arch/sh/boot/compressed/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sh/boot/compressed/CVS/Entries	2005-01-06 23:00:50.000000000 -0600
@@ -0,0 +1,5 @@
+/Makefile/1.4/Thu Oct  5 01:18:44 2000/-ko/Tlinux_2_4_20
+/head.S/1.4/Wed Jan 31 22:22:29 2001/-ko/Tlinux_2_4_20
+/install.sh/1.1/Mon Jun 19 22:45:41 2000/-ko/Tlinux_2_4_20
+/misc.c/1.2/Sun Jul 23 14:05:01 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/sh/boot/compressed/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sh/boot/compressed/CVS/Repository
--- linux-2.4.20/arch/sh/boot/compressed/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sh/boot/compressed/CVS/Repository	2005-01-06 23:00:50.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/sh/boot/compressed
diff -urNd -urNd linux-2.4.20/arch/sh/boot/compressed/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sh/boot/compressed/CVS/Root
--- linux-2.4.20/arch/sh/boot/compressed/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sh/boot/compressed/CVS/Root	2005-01-06 23:00:50.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/sh/boot/compressed/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sh/boot/compressed/CVS/Tag
--- linux-2.4.20/arch/sh/boot/compressed/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sh/boot/compressed/CVS/Tag	2005-01-06 23:00:50.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/sh/boot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sh/boot/CVS/Entries
--- linux-2.4.20/arch/sh/boot/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sh/boot/CVS/Entries	2005-01-06 23:08:16.000000000 -0600
@@ -0,0 +1,2 @@
+/Makefile/1.3/Mon Jun 19 22:45:41 2000/-ko/Tlinux_2_4_20
+D/compressed////
diff -urNd -urNd linux-2.4.20/arch/sh/boot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sh/boot/CVS/Repository
--- linux-2.4.20/arch/sh/boot/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sh/boot/CVS/Repository	2005-01-06 23:00:50.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/sh/boot
diff -urNd -urNd linux-2.4.20/arch/sh/boot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sh/boot/CVS/Root
--- linux-2.4.20/arch/sh/boot/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sh/boot/CVS/Root	2005-01-06 23:00:50.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/sh/boot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sh/boot/CVS/Tag
--- linux-2.4.20/arch/sh/boot/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sh/boot/CVS/Tag	2005-01-06 23:00:50.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/sh/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sh/CVS/Entries
--- linux-2.4.20/arch/sh/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sh/CVS/Entries	2005-01-06 23:08:17.000000000 -0600
@@ -0,0 +1,9 @@
+/Makefile/1.10/Tue Nov  6 00:54:59 2001/-ko/Tlinux_2_4_20
+/config.in/1.22.2.2/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/defconfig/1.16/Tue Nov  6 00:54:59 2001/-ko/Tlinux_2_4_20
+/vmlinux.lds.S/1.11.2.1/Tue Feb 26 05:59:08 2002/-ko/Tlinux_2_4_20
+D/boot////
+D/kernel////
+D/lib////
+D/mm////
+D/stboards////
diff -urNd -urNd linux-2.4.20/arch/sh/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sh/CVS/Repository
--- linux-2.4.20/arch/sh/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sh/CVS/Repository	2005-01-06 23:00:50.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/sh
diff -urNd -urNd linux-2.4.20/arch/sh/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sh/CVS/Root
--- linux-2.4.20/arch/sh/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sh/CVS/Root	2005-01-06 23:00:50.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/sh/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sh/CVS/Tag
--- linux-2.4.20/arch/sh/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sh/CVS/Tag	2005-01-06 23:00:50.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/sh/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sh/kernel/CVS/Entries
--- linux-2.4.20/arch/sh/kernel/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sh/kernel/CVS/Entries	2005-01-06 23:08:15.000000000 -0600
@@ -0,0 +1,70 @@
+/Makefile/1.14/Fri Oct 19 01:23:46 2001/-ko/Tlinux_2_4_20
+/cf-enabler.c/1.7/Fri Oct 19 01:23:46 2001/-ko/Tlinux_2_4_20
+/dma.c/1.1/Fri Oct 19 01:23:46 2001/-ko/Tlinux_2_4_20
+/entry.S/1.19.2.1/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
+/fpu.c/1.4/Wed Jan 31 22:22:29 2001/-ko/Tlinux_2_4_20
+/hd64465_gpio.c/1.3/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
+/head.S/1.8/Wed Jan 31 22:22:29 2001/-ko/Tlinux_2_4_20
+/init_task.c/1.2/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
+/io.c/1.4/Wed Jun 13 17:27:45 2001/-ko/Tlinux_2_4_20
+/io_7751se.c/1.1.2.1/Tue Feb 26 05:59:08 2002/-ko/Tlinux_2_4_20
+/io_adx.c/1.1/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
+/io_bigsur.c/1.1/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
+/io_cat68701.c/1.2/Thu Jun 14 04:23:53 2001/-ko/Tlinux_2_4_20
+/io_dc.c/1.3/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
+/io_ec3104.c/1.2/Thu Jun 14 04:23:53 2001/-ko/Tlinux_2_4_20
+/io_generic.c/1.6/Tue Nov  6 00:54:59 2001/-ko/Tlinux_2_4_20
+/io_hd64461.c/1.4/Tue Nov  6 00:54:59 2001/-ko/Tlinux_2_4_20
+/io_hd64465.c/1.2/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
+/io_se.c/1.5/Tue Nov  6 00:54:59 2001/-ko/Tlinux_2_4_20
+/io_sh2000.c/1.1/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
+/io_unknown.c/1.2/Wed Jun 13 17:27:45 2001/-ko/Tlinux_2_4_20
+/irq.c/1.15/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
+/irq_imask.c/1.7/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
+/irq_intc2.c/1.4/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
+/irq_ipr.c/1.6/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
+/irq_maskreg.c/1.1/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
+/led_7751se.c/1.1/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
+/led_bigsur.c/1.1/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
+/led_se.c/1.2/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
+/mach_7751se.c/1.1/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
+/mach_adx.c/1.1/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
+/mach_bigsur.c/1.1/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
+/mach_cat68701.c/1.1/Wed Jun 13 17:27:45 2001/-ko/Tlinux_2_4_20
+/mach_dc.c/1.4/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
+/mach_dmida.c/1.1/Wed Jun 13 17:27:45 2001/-ko/Tlinux_2_4_20
+/mach_ec3104.c/1.1/Wed Jun 13 17:27:45 2001/-ko/Tlinux_2_4_20
+/mach_hp600.c/1.3/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
+/mach_se.c/1.3/Wed Jun 13 17:27:45 2001/-ko/Tlinux_2_4_20
+/mach_unknown.c/1.3/Wed Jun 13 17:27:45 2001/-ko/Tlinux_2_4_20
+/pci-7751se.c/1.2.2.1/Tue Feb 26 05:59:08 2002/-ko/Tlinux_2_4_20
+/pci-bigsur.c/1.1/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
+/pci-dc.c/1.2/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
+/pci-dma.c/1.2/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
+/pci-sh7751.c/1.3/Tue Nov  6 07:55:49 2001/-ko/Tlinux_2_4_20
+/pci_st40.c/1.3/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
+/pci_st40.h/1.1/Wed Jun 13 17:27:45 2001/-ko/Tlinux_2_4_20
+/pcibios.c/1.1.2.1/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/process.c/1.16/Tue Nov  6 00:54:59 2001/-ko/Tlinux_2_4_20
+/ptrace.c/1.9/Tue Nov  6 00:54:59 2001/-ko/Tlinux_2_4_20
+/rtc-aica.c/1.1/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
+/rtc.c/1.4.2.1/Tue Feb 26 05:59:08 2002/-ko/Tlinux_2_4_20
+/semaphore.c/1.6/Wed Jun 13 17:27:45 2001/-ko/Tlinux_2_4_20
+/setup.c/1.19.2.1/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
+/setup_7751se.c/1.1/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
+/setup_adx.c/1.1/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
+/setup_bigsur.c/1.2/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
+/setup_cqreek.c/1.5/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
+/setup_dc.c/1.4/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
+/setup_ec3104.c/1.3/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
+/setup_hd64461.c/1.4/Fri Oct 19 01:23:48 2001/-ko/Tlinux_2_4_20
+/setup_hd64465.c/1.2/Fri Oct 19 01:23:48 2001/-ko/Tlinux_2_4_20
+/setup_se.c/1.3/Fri Aug 25 06:33:45 2000/-ko/Tlinux_2_4_20
+/setup_sh2000.c/1.1/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
+/sh_bios.c/1.5/Wed Jan 31 22:22:29 2001/-ko/Tlinux_2_4_20
+/sh_ksyms.c/1.10.2.1/Tue Feb 26 05:59:08 2002/-ko/Tlinux_2_4_20
+/signal.c/1.15.2.1/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
+/sys_sh.c/1.9/Tue Nov  6 00:54:59 2001/-ko/Tlinux_2_4_20
+/time.c/1.16/Fri Oct 19 01:23:48 2001/-ko/Tlinux_2_4_20
+/traps.c/1.9.2.1/Tue Feb 26 05:59:08 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/sh/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sh/kernel/CVS/Repository
--- linux-2.4.20/arch/sh/kernel/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sh/kernel/CVS/Repository	2005-01-06 23:00:50.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/sh/kernel
diff -urNd -urNd linux-2.4.20/arch/sh/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sh/kernel/CVS/Root
--- linux-2.4.20/arch/sh/kernel/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sh/kernel/CVS/Root	2005-01-06 23:00:50.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/sh/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sh/kernel/CVS/Tag
--- linux-2.4.20/arch/sh/kernel/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sh/kernel/CVS/Tag	2005-01-06 23:00:52.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/sh/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sh/lib/CVS/Entries
--- linux-2.4.20/arch/sh/lib/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sh/lib/CVS/Entries	2005-01-06 23:00:52.000000000 -0600
@@ -0,0 +1,11 @@
+/Makefile/1.7/Fri Oct 19 01:23:48 2001/-ko/Tlinux_2_4_20
+/checksum.S/1.7/Fri Oct 19 01:23:48 2001/-ko/Tlinux_2_4_20
+/delay.c/1.3/Wed Jan 31 22:22:29 2001/-ko/Tlinux_2_4_20
+/memchr.S/1.2/Tue Nov  6 00:54:59 2001/-ko/Tlinux_2_4_20
+/memcpy.S/1.4/Tue Nov  6 00:54:59 2001/-ko/Tlinux_2_4_20
+/memmove.S/1.4/Tue Nov  6 00:54:59 2001/-ko/Tlinux_2_4_20
+/memset.S/1.4/Tue Nov  6 00:54:59 2001/-ko/Tlinux_2_4_20
+/old-checksum.c/1.2/Thu Jan 27 01:05:25 2000/-ko/Tlinux_2_4_20
+/strcasecmp.c/1.1/Fri Aug 25 06:33:45 2000/-ko/Tlinux_2_4_20
+/strlen.S/1.1/Fri Oct 19 01:23:48 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/sh/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sh/lib/CVS/Repository
--- linux-2.4.20/arch/sh/lib/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sh/lib/CVS/Repository	2005-01-06 23:00:52.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/sh/lib
diff -urNd -urNd linux-2.4.20/arch/sh/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sh/lib/CVS/Root
--- linux-2.4.20/arch/sh/lib/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sh/lib/CVS/Root	2005-01-06 23:00:52.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/sh/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sh/lib/CVS/Tag
--- linux-2.4.20/arch/sh/lib/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sh/lib/CVS/Tag	2005-01-06 23:00:52.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/sh/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sh/mm/CVS/Entries
--- linux-2.4.20/arch/sh/mm/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sh/mm/CVS/Entries	2005-01-06 23:00:52.000000000 -0600
@@ -0,0 +1,12 @@
+/Makefile/1.5/Fri Oct 19 01:23:48 2001/-ko/Tlinux_2_4_20
+/__clear_user_page-sh4.S/1.1/Fri Oct 19 01:23:48 2001/-ko/Tlinux_2_4_20
+/__copy_user_page-sh4.S/1.1/Fri Oct 19 01:23:48 2001/-ko/Tlinux_2_4_20
+/cache-sh3.c/1.2/Tue Nov  6 00:54:59 2001/-ko/Tlinux_2_4_20
+/cache-sh4.c/1.2/Tue Nov  6 00:54:59 2001/-ko/Tlinux_2_4_20
+/clear_page.S/1.1/Fri Oct 19 01:23:48 2001/-ko/Tlinux_2_4_20
+/copy_page.S/1.1/Fri Oct 19 01:23:48 2001/-ko/Tlinux_2_4_20
+/extable.c/1.5/Fri Oct 19 01:23:48 2001/-ko/Tlinux_2_4_20
+/fault.c/1.17.2.1/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
+/init.c/1.16.2.1/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
+/ioremap.c/1.8/Fri Oct 19 01:23:49 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/sh/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sh/mm/CVS/Repository
--- linux-2.4.20/arch/sh/mm/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sh/mm/CVS/Repository	2005-01-06 23:00:52.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/sh/mm
diff -urNd -urNd linux-2.4.20/arch/sh/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sh/mm/CVS/Root
--- linux-2.4.20/arch/sh/mm/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sh/mm/CVS/Root	2005-01-06 23:00:52.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/sh/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sh/mm/CVS/Tag
--- linux-2.4.20/arch/sh/mm/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sh/mm/CVS/Tag	2005-01-06 23:00:52.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/sh/stboards/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sh/stboards/CVS/Entries
--- linux-2.4.20/arch/sh/stboards/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sh/stboards/CVS/Entries	2005-01-06 23:00:52.000000000 -0600
@@ -0,0 +1,8 @@
+/Makefile/1.1/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
+/harp.h/1.1/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
+/irq.c/1.1/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
+/led.c/1.1/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
+/mach.c/1.1/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
+/pcidma.c/1.1/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
+/setup.c/1.1/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/sh/stboards/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sh/stboards/CVS/Repository
--- linux-2.4.20/arch/sh/stboards/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sh/stboards/CVS/Repository	2005-01-06 23:00:52.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/sh/stboards
diff -urNd -urNd linux-2.4.20/arch/sh/stboards/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sh/stboards/CVS/Root
--- linux-2.4.20/arch/sh/stboards/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sh/stboards/CVS/Root	2005-01-06 23:00:52.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/sh/stboards/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sh/stboards/CVS/Tag
--- linux-2.4.20/arch/sh/stboards/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sh/stboards/CVS/Tag	2005-01-06 23:00:52.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/sparc/boot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sparc/boot/CVS/Entries
--- linux-2.4.20/arch/sparc/boot/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc/boot/CVS/Entries	2005-01-06 23:00:52.000000000 -0600
@@ -0,0 +1,4 @@
+/Makefile/1.6.4.1/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
+/btfixupprep.c/1.3/Fri Oct 19 01:23:49 2001/-ko/Tlinux_2_4_20
+/piggyback.c/1.5/Wed Jan 10 05:27:28 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/sparc/boot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sparc/boot/CVS/Repository
--- linux-2.4.20/arch/sparc/boot/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc/boot/CVS/Repository	2005-01-06 23:00:52.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/sparc/boot
diff -urNd -urNd linux-2.4.20/arch/sparc/boot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sparc/boot/CVS/Root
--- linux-2.4.20/arch/sparc/boot/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc/boot/CVS/Root	2005-01-06 23:00:52.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/sparc/boot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sparc/boot/CVS/Tag
--- linux-2.4.20/arch/sparc/boot/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc/boot/CVS/Tag	2005-01-06 23:00:52.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/sparc/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sparc/CVS/Entries
--- linux-2.4.20/arch/sparc/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc/CVS/Entries	2005-01-06 23:08:15.000000000 -0600
@@ -0,0 +1,10 @@
+/Makefile/1.14/Fri Aug 24 03:38:35 2001/-ko/Tlinux_2_4_20
+/config.in/1.46.2.2/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
+/defconfig/1.42.2.3/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
+/vmlinux.lds/1.9/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
+D/boot////
+D/kernel////
+D/lib////
+D/math-emu////
+D/mm////
+D/prom////
diff -urNd -urNd linux-2.4.20/arch/sparc/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sparc/CVS/Repository
--- linux-2.4.20/arch/sparc/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc/CVS/Repository	2005-01-06 23:00:52.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/sparc
diff -urNd -urNd linux-2.4.20/arch/sparc/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sparc/CVS/Root
--- linux-2.4.20/arch/sparc/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc/CVS/Root	2005-01-06 23:00:52.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/sparc/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sparc/CVS/Tag
--- linux-2.4.20/arch/sparc/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc/CVS/Tag	2005-01-06 23:00:52.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/sparc/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sparc/kernel/CVS/Entries
--- linux-2.4.20/arch/sparc/kernel/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc/kernel/CVS/Entries	2005-01-06 23:00:55.000000000 -0600
@@ -0,0 +1,50 @@
+/Makefile/1.20.2.1/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
+/apc.c/1.1.2.1/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
+/auxio.c/1.5/Sat Feb  5 06:47:10 2000/-ko/Tlinux_2_4_20
+/check_asm.sh/1.4.2.2/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
+/cpu.c/1.5/Fri Apr 28 01:09:32 2000/-ko/Tlinux_2_4_20
+/devices.c/1.6.4.2/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
+/ebus.c/1.11.2.1/Tue Feb 26 05:59:09 2002/-ko/Tlinux_2_4_20
+/entry.S/1.18/Sun Dec  2 11:34:39 2001/-ko/Tlinux_2_4_20
+/errtbls.c/1.2/Mon Dec  1 17:57:49 1997/-ko/Tlinux_2_4_20
+/etrap.S/1.5/Wed Feb 16 01:07:31 2000/-ko/Tlinux_2_4_20
+/head.S/1.16/Sat Sep 22 12:49:14 2001/-ko/Tlinux_2_4_20
+/idprom.c/1.4/Sat Oct  9 00:01:04 1999/-ko/Tlinux_2_4_20
+/init_task.c/1.7.2.1/Tue Feb 26 05:59:09 2002/-ko/Tlinux_2_4_20
+/ioport.c/1.17.2.1/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
+/irq.c/1.25.2.1/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
+/muldiv.c/1.3/Tue Mar 17 22:08:18 1998/-ko/Tlinux_2_4_20
+/pcic.c/1.16.2.4/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/pmc.c/1.1.2.1/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
+/process.c/1.29.2.2/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
+/ptrace.c/1.17.2.1/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
+/rtrap.S/1.13/Thu Aug 23 22:24:26 2001/-ko/Tlinux_2_4_20
+/sclow.S/1.2/Thu May  7 02:57:56 1998/-ko/Tlinux_2_4_20
+/semaphore.c/1.7/Wed Jun 13 17:27:45 2001/-ko/Tlinux_2_4_20
+/setup.c/1.24.2.1/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
+/signal.c/1.24.2.1/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
+/smp.c/1.16.2.1/Sat Dec 29 05:37:50 2001/-ko/Tlinux_2_4_20
+/sparc-stub.c/1.10/Tue Nov  6 07:55:49 2001/-ko/Tlinux_2_4_20
+/sparc_ksyms.c/1.32.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/sun4c_irq.c/1.9/Wed Jun 13 17:27:45 2001/-ko/Tlinux_2_4_20
+/sun4d_irq.c/1.13/Thu Aug 23 22:24:26 2001/-ko/Tlinux_2_4_20
+/sun4d_smp.c/1.18.2.1/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
+/sun4m_irq.c/1.11/Wed Jun 13 17:27:45 2001/-ko/Tlinux_2_4_20
+/sun4m_smp.c/1.18/Sun Dec  2 11:34:39 2001/-ko/Tlinux_2_4_20
+/sun4setup.c/1.2/Sat Oct  9 00:01:04 1999/-ko/Tlinux_2_4_20
+/sunos_asm.S/1.3/Wed Feb 16 01:07:31 2000/-ko/Tlinux_2_4_20
+/sunos_ioctl.c/1.8/Thu Oct  5 01:18:44 2000/-ko/Tlinux_2_4_20
+/sys_solaris.c/1.6/Thu Oct  5 01:18:44 2000/-ko/Tlinux_2_4_20
+/sys_sparc.c/1.24/Wed Jun 13 17:27:45 2001/-ko/Tlinux_2_4_20
+/sys_sunos.c/1.40.2.2/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
+/systbls.S/1.20.2.1/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
+/tadpole.c/1.3/Sat Oct  9 00:01:04 1999/-ko/Tlinux_2_4_20
+/tick14.c/1.1.1.1/Sun Jun  1 03:16:51 1997/-ko/Tlinux_2_4_20
+/time.c/1.19.2.2/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
+/trampoline.S/1.4/Sat Oct  9 00:01:04 1999/-ko/Tlinux_2_4_20
+/traps.c/1.11.4.1/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
+/unaligned.c/1.7.4.1/Tue Feb 26 05:59:09 2002/-ko/Tlinux_2_4_20
+/windows.c/1.3/Tue Nov  6 07:55:49 2001/-ko/Tlinux_2_4_20
+/wof.S/1.5/Wed Feb 16 01:07:31 2000/-ko/Tlinux_2_4_20
+/wuf.S/1.5/Wed Feb 16 01:07:31 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/sparc/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sparc/kernel/CVS/Repository
--- linux-2.4.20/arch/sparc/kernel/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc/kernel/CVS/Repository	2005-01-06 23:00:52.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/sparc/kernel
diff -urNd -urNd linux-2.4.20/arch/sparc/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sparc/kernel/CVS/Root
--- linux-2.4.20/arch/sparc/kernel/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc/kernel/CVS/Root	2005-01-06 23:00:52.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/sparc/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sparc/kernel/CVS/Tag
--- linux-2.4.20/arch/sparc/kernel/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc/kernel/CVS/Tag	2005-01-06 23:00:55.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/sparc/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sparc/lib/CVS/Entries
--- linux-2.4.20/arch/sparc/lib/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc/lib/CVS/Entries	2005-01-06 23:00:56.000000000 -0600
@@ -0,0 +1,31 @@
+/COPYING.LIB/1.1.1.1/Sun Jun  1 03:16:49 1997/-ko/Tlinux_2_4_20
+/Makefile/1.12/Wed Jan 10 17:17:56 2001/-ko/Tlinux_2_4_20
+/ashldi3.S/1.1/Sat Feb  5 06:47:10 2000/-ko/Tlinux_2_4_20
+/ashrdi3.S/1.3/Sat Feb  5 06:47:10 2000/-ko/Tlinux_2_4_20
+/atomic.S/1.5/Fri May 12 21:06:09 2000/-ko/Tlinux_2_4_20
+/bitops.S/1.6/Thu Aug 23 22:24:26 2001/-ko/Tlinux_2_4_20
+/blockops.S/1.4/Thu May  7 02:58:03 1998/-ko/Tlinux_2_4_20
+/checksum.S/1.2/Mon Feb 15 02:17:16 1999/-ko/Tlinux_2_4_20
+/copy_user.S/1.4/Fri Apr 28 01:09:33 2000/-ko/Tlinux_2_4_20
+/debuglocks.c/1.6/Fri Oct 19 01:23:49 2001/-ko/Tlinux_2_4_20
+/divdi3.S/1.1.1.1/Sun Jun  1 03:16:49 1997/-ko/Tlinux_2_4_20
+/locks.S/1.5/Thu Mar  2 02:36:52 2000/-ko/Tlinux_2_4_20
+/lshrdi3.S/1.1/Sun Jun 13 16:31:12 1999/-ko/Tlinux_2_4_20
+/memcmp.S/1.1.1.1/Sun Jun  1 03:16:48 1997/-ko/Tlinux_2_4_20
+/memcpy.S/1.2/Tue Mar 17 22:08:25 1998/-ko/Tlinux_2_4_20
+/memscan.S/1.2/Mon Dec  1 17:58:01 1997/-ko/Tlinux_2_4_20
+/memset.S/1.3/Wed Jun 13 17:27:46 2001/-ko/Tlinux_2_4_20
+/mul.S/1.2/Mon Dec  1 17:58:01 1997/-ko/Tlinux_2_4_20
+/muldi3.S/1.1/Thu Mar 23 02:25:43 2000/-ko/Tlinux_2_4_20
+/rem.S/1.2/Mon Dec  1 17:58:02 1997/-ko/Tlinux_2_4_20
+/rwsem.S/1.4/Thu Jun 15 01:55:59 2000/-ko/Tlinux_2_4_20
+/sdiv.S/1.2/Mon Dec  1 17:58:02 1997/-ko/Tlinux_2_4_20
+/strlen.S/1.1.1.1/Sun Jun  1 03:16:49 1997/-ko/Tlinux_2_4_20
+/strlen_user.S/1.2/Sat Feb  5 06:47:10 2000/-ko/Tlinux_2_4_20
+/strncmp.S/1.2/Mon Dec  1 17:58:02 1997/-ko/Tlinux_2_4_20
+/strncpy_from_user.S/1.1.1.1/Sun Jun  1 03:16:48 1997/-ko/Tlinux_2_4_20
+/udiv.S/1.2/Mon Dec  1 17:58:03 1997/-ko/Tlinux_2_4_20
+/udivdi3.S/1.1.1.1/Sun Jun  1 03:16:48 1997/-ko/Tlinux_2_4_20
+/umul.S/1.2/Mon Dec  1 17:58:03 1997/-ko/Tlinux_2_4_20
+/urem.S/1.2/Mon Dec  1 17:58:03 1997/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/sparc/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sparc/lib/CVS/Repository
--- linux-2.4.20/arch/sparc/lib/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc/lib/CVS/Repository	2005-01-06 23:00:55.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/sparc/lib
diff -urNd -urNd linux-2.4.20/arch/sparc/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sparc/lib/CVS/Root
--- linux-2.4.20/arch/sparc/lib/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc/lib/CVS/Root	2005-01-06 23:00:55.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/sparc/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sparc/lib/CVS/Tag
--- linux-2.4.20/arch/sparc/lib/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc/lib/CVS/Tag	2005-01-06 23:00:56.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/sparc/math-emu/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sparc/math-emu/CVS/Entries
--- linux-2.4.20/arch/sparc/math-emu/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc/math-emu/CVS/Entries	2005-01-06 23:00:56.000000000 -0600
@@ -0,0 +1,5 @@
+/Makefile/1.7/Wed Jan 10 17:17:56 2001/-ko/Tlinux_2_4_20
+/ashldi3.S/1.1/Thu May  7 02:58:05 1998/-ko/Tlinux_2_4_20
+/math.c/1.5/Fri Feb  4 07:40:30 2000/-ko/Tlinux_2_4_20
+/sfp-util.h/1.1/Thu Jun 17 13:26:23 1999/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/sparc/math-emu/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sparc/math-emu/CVS/Repository
--- linux-2.4.20/arch/sparc/math-emu/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc/math-emu/CVS/Repository	2005-01-06 23:00:56.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/sparc/math-emu
diff -urNd -urNd linux-2.4.20/arch/sparc/math-emu/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sparc/math-emu/CVS/Root
--- linux-2.4.20/arch/sparc/math-emu/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc/math-emu/CVS/Root	2005-01-06 23:00:56.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/sparc/math-emu/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sparc/math-emu/CVS/Tag
--- linux-2.4.20/arch/sparc/math-emu/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc/math-emu/CVS/Tag	2005-01-06 23:00:56.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/sparc/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sparc/mm/CVS/Entries
--- linux-2.4.20/arch/sparc/mm/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc/mm/CVS/Entries	2005-01-06 23:00:57.000000000 -0600
@@ -0,0 +1,19 @@
+/Makefile/1.15.2.1/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/btfixup.c/1.5/Thu Jun 15 01:55:59 2000/-ko/Tlinux_2_4_20
+/extable.c/1.3.2.1/Sat Dec 29 05:37:50 2001/-ko/Tlinux_2_4_20
+/fault.c/1.18.2.1/Sat Dec 29 05:37:50 2001/-ko/Tlinux_2_4_20
+/generic.c/1.9/Thu Aug 23 22:24:26 2001/-ko/Tlinux_2_4_20
+/highmem.c/1.1.2.1/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/hypersparc.S/1.10/Fri Jul 21 22:00:57 2000/-ko/Tlinux_2_4_20
+/init.c/1.37.2.3/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
+/io-unit.c/1.11.2.1/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/iommu.c/1.11.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/loadmmu.c/1.7/Wed Feb 23 00:41:05 2000/-ko/Tlinux_2_4_20
+/nosrmmu.c/1.4/Sat Feb  5 06:47:11 2000/-ko/Tlinux_2_4_20
+/nosun4c.c/1.3/Thu Feb 24 00:12:47 2000/-ko/Tlinux_2_4_20
+/srmmu.c/1.42.2.2/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
+/sun4c.c/1.34.2.3/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/swift.S/1.6.4.1/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
+/tsunami.S/1.8.4.1/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
+/viking.S/1.11/Fri Jul 21 22:00:57 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/sparc/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sparc/mm/CVS/Repository
--- linux-2.4.20/arch/sparc/mm/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc/mm/CVS/Repository	2005-01-06 23:00:56.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/sparc/mm
diff -urNd -urNd linux-2.4.20/arch/sparc/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sparc/mm/CVS/Root
--- linux-2.4.20/arch/sparc/mm/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc/mm/CVS/Root	2005-01-06 23:00:56.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/sparc/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sparc/mm/CVS/Tag
--- linux-2.4.20/arch/sparc/mm/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc/mm/CVS/Tag	2005-01-06 23:00:57.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/sparc/prom/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sparc/prom/CVS/Entries
--- linux-2.4.20/arch/sparc/prom/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc/prom/CVS/Entries	2005-01-06 23:00:57.000000000 -0600
@@ -0,0 +1,16 @@
+/Makefile/1.5/Wed Jan 10 17:17:56 2001/-ko/Tlinux_2_4_20
+/bootstr.c/1.7/Wed Feb 23 00:41:05 2000/-ko/Tlinux_2_4_20
+/console.c/1.10/Tue Nov  6 07:55:49 2001/-ko/Tlinux_2_4_20
+/devmap.c/1.4/Thu Oct  5 01:18:44 2000/-ko/Tlinux_2_4_20
+/devops.c/1.5/Thu Oct  5 01:18:44 2000/-ko/Tlinux_2_4_20
+/init.c/1.5/Fri Feb 18 22:06:14 2000/-ko/Tlinux_2_4_20
+/memory.c/1.6/Fri Feb 18 22:06:14 2000/-ko/Tlinux_2_4_20
+/misc.c/1.5/Thu Oct  5 01:18:44 2000/-ko/Tlinux_2_4_20
+/mp.c/1.5/Thu Oct  5 01:18:44 2000/-ko/Tlinux_2_4_20
+/palloc.c/1.2/Mon Dec  1 17:58:13 1997/-ko/Tlinux_2_4_20
+/printf.c/1.4/Wed Feb 23 00:41:06 2000/-ko/Tlinux_2_4_20
+/ranges.c/1.6.4.1/Tue Feb 26 05:59:09 2002/-ko/Tlinux_2_4_20
+/segment.c/1.4/Thu Oct  5 01:18:44 2000/-ko/Tlinux_2_4_20
+/sun4prom.c/1.2/Sat Oct  9 00:01:06 1999/-ko/Tlinux_2_4_20
+/tree.c/1.7/Thu Oct  5 01:18:44 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/sparc/prom/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sparc/prom/CVS/Repository
--- linux-2.4.20/arch/sparc/prom/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc/prom/CVS/Repository	2005-01-06 23:00:57.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/sparc/prom
diff -urNd -urNd linux-2.4.20/arch/sparc/prom/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sparc/prom/CVS/Root
--- linux-2.4.20/arch/sparc/prom/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc/prom/CVS/Root	2005-01-06 23:00:57.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/sparc/prom/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sparc/prom/CVS/Tag
--- linux-2.4.20/arch/sparc/prom/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc/prom/CVS/Tag	2005-01-06 23:00:57.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/sparc64/boot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sparc64/boot/CVS/Entries
--- linux-2.4.20/arch/sparc64/boot/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/boot/CVS/Entries	2005-01-06 23:00:57.000000000 -0600
@@ -0,0 +1,3 @@
+/Makefile/1.4/Tue Mar 17 22:08:32 1998/-ko/Tlinux_2_4_20
+/piggyback.c/1.4/Thu Oct  5 01:18:44 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/sparc64/boot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sparc64/boot/CVS/Repository
--- linux-2.4.20/arch/sparc64/boot/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/boot/CVS/Repository	2005-01-06 23:00:57.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/sparc64/boot
diff -urNd -urNd linux-2.4.20/arch/sparc64/boot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sparc64/boot/CVS/Root
--- linux-2.4.20/arch/sparc64/boot/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/boot/CVS/Root	2005-01-06 23:00:57.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/sparc64/boot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sparc64/boot/CVS/Tag
--- linux-2.4.20/arch/sparc64/boot/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/boot/CVS/Tag	2005-01-06 23:00:57.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/sparc64/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sparc64/CVS/Entries
--- linux-2.4.20/arch/sparc64/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/CVS/Entries	2005-01-06 23:08:15.000000000 -0600
@@ -0,0 +1,11 @@
+/Makefile/1.20.2.2/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
+/config.in/1.57.2.3/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
+/defconfig/1.60.2.5/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/vmlinux.lds/1.12/Fri Oct 19 01:23:49 2001/-ko/Tlinux_2_4_20
+D/boot////
+D/kernel////
+D/lib////
+D/math-emu////
+D/mm////
+D/prom////
+D/solaris////
diff -urNd -urNd linux-2.4.20/arch/sparc64/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sparc64/CVS/Repository
--- linux-2.4.20/arch/sparc64/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/CVS/Repository	2005-01-06 23:00:57.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/sparc64
diff -urNd -urNd linux-2.4.20/arch/sparc64/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sparc64/CVS/Root
--- linux-2.4.20/arch/sparc64/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/CVS/Root	2005-01-06 23:00:57.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/sparc64/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sparc64/CVS/Tag
--- linux-2.4.20/arch/sparc64/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/CVS/Tag	2005-01-06 23:00:57.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/sparc64/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sparc64/kernel/CVS/Entries
--- linux-2.4.20/arch/sparc64/kernel/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/kernel/CVS/Entries	2005-01-06 23:01:01.000000000 -0600
@@ -0,0 +1,56 @@
+/Makefile/1.30.2.2/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
+/auxio.c/1.9/Wed Jun 13 17:27:46 2001/-ko/Tlinux_2_4_20
+/binfmt_aout32.c/1.20.2.1/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
+/binfmt_elf32.c/1.8.4.1/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
+/central.c/1.6.4.2/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
+/check_asm.sh/1.5.2.1/Tue Feb 26 05:59:09 2002/-ko/Tlinux_2_4_20
+/chmc.c/1.1.2.1/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
+/cpu.c/1.9.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/devices.c/1.13.2.1/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
+/dtlb_backend.S/1.9/Mon Nov  5 21:57:11 2001/-ko/Tlinux_2_4_20
+/dtlb_base.S/1.9.2.1/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
+/dtlb_prot.S/1.10/Wed Jun 13 17:27:46 2001/-ko/Tlinux_2_4_20
+/ebus.c/1.16.2.1/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
+/entry.S/1.25.2.2/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
+/etrap.S/1.13.2.1/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
+/head.S/1.18.2.4/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/idprom.c/1.4/Sat Oct  9 00:01:07 1999/-ko/Tlinux_2_4_20
+/init_task.c/1.7/Fri Oct 19 01:23:49 2001/-ko/Tlinux_2_4_20
+/ioctl32.c/1.47.2.5/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/iommu_common.c/1.6.2.1/Tue Feb 26 05:59:10 2002/-ko/Tlinux_2_4_20
+/iommu_common.h/1.3.2.1/Tue Feb 26 05:59:10 2002/-ko/Tlinux_2_4_20
+/irq.c/1.31.2.3/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
+/isa.c/1.2/Sun Dec  2 11:34:39 2001/-ko/Tlinux_2_4_20
+/itlb_base.S/1.6/Fri Oct 19 01:23:50 2001/-ko/Tlinux_2_4_20
+/pci.c/1.16.2.3/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/pci_common.c/1.10.2.2/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
+/pci_impl.h/1.7/Wed Aug 22 03:24:03 2001/-ko/Tlinux_2_4_20
+/pci_iommu.c/1.11/Tue Nov  6 00:54:59 2001/-ko/Tlinux_2_4_20
+/pci_psycho.c/1.20.2.3/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
+/pci_sabre.c/1.20.2.2/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
+/pci_schizo.c/1.9.2.3/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/power.c/1.5.2.3/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
+/process.c/1.39.2.4/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
+/ptrace.c/1.20.2.2/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
+/rtrap.S/1.18.2.3/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
+/sbus.c/1.11.2.1/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
+/semaphore.c/1.7.2.1/Sat Dec 29 05:37:51 2001/-ko/Tlinux_2_4_20
+/setup.c/1.32.2.2/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
+/signal.c/1.25.2.1/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
+/signal32.c/1.28.2.1/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
+/smp.c/1.36.2.4/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
+/sparc64_ksyms.c/1.41.2.3/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
+/starfire.c/1.8/Wed Jun 13 17:27:46 2001/-ko/Tlinux_2_4_20
+/sunos_ioctl32.c/1.7/Tue Aug  8 18:54:50 2000/-ko/Tlinux_2_4_20
+/sys32.S/1.11.4.1/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/sys_sparc.c/1.34.2.3/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
+/sys_sparc32.c/1.60.2.3/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/sys_sunos32.c/1.42.2.2/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
+/systbls.S/1.27.2.1/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
+/time.c/1.23.2.4/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
+/trampoline.S/1.13.2.3/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
+/traps.c/1.26.2.3/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/ttable.S/1.18.2.3/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
+/unaligned.c/1.13/Wed Jun 13 17:27:47 2001/-ko/Tlinux_2_4_20
+/winfixup.S/1.10/Wed Apr 19 04:00:07 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/sparc64/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sparc64/kernel/CVS/Repository
--- linux-2.4.20/arch/sparc64/kernel/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/kernel/CVS/Repository	2005-01-06 23:00:57.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/sparc64/kernel
diff -urNd -urNd linux-2.4.20/arch/sparc64/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sparc64/kernel/CVS/Root
--- linux-2.4.20/arch/sparc64/kernel/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/kernel/CVS/Root	2005-01-06 23:00:57.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/sparc64/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sparc64/kernel/CVS/Tag
--- linux-2.4.20/arch/sparc64/kernel/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/kernel/CVS/Tag	2005-01-06 23:01:01.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/sparc64/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sparc64/lib/CVS/Entries
--- linux-2.4.20/arch/sparc64/lib/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/lib/CVS/Entries	2005-01-06 23:01:02.000000000 -0600
@@ -0,0 +1,29 @@
+/Makefile/1.14.2.1/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
+/PeeCeeI.c/1.2/Sat Oct  9 00:01:07 1999/-ko/Tlinux_2_4_20
+/U3copy_from_user.S/1.1.4.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/U3copy_in_user.S/1.2/Thu Apr  5 04:56:12 2001/-ko/Tlinux_2_4_20
+/U3copy_to_user.S/1.1.4.1/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/U3memcpy.S/1.1.4.1/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/VIS.h/1.4/Thu Jun 17 13:26:32 1999/-ko/Tlinux_2_4_20
+/VISbzero.S/1.6/Thu Apr  5 04:56:12 2001/-ko/Tlinux_2_4_20
+/VIScopy.S/1.11.2.1/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/VIScsum.S/1.7.4.1/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
+/VIScsumcopy.S/1.6/Thu Mar  2 02:36:52 2000/-ko/Tlinux_2_4_20
+/VIScsumcopyusr.S/1.2/Thu Mar  2 02:36:52 2000/-ko/Tlinux_2_4_20
+/VISmemset.S/1.6/Sat Feb  5 06:47:13 2000/-ko/Tlinux_2_4_20
+/VISsave.S/1.4/Thu Apr  5 04:56:12 2001/-ko/Tlinux_2_4_20
+/atomic.S/1.3.4.1/Sat Dec 29 05:37:51 2001/-ko/Tlinux_2_4_20
+/bitops.S/1.2.2.1/Sat Dec 29 05:37:51 2001/-ko/Tlinux_2_4_20
+/blockops.S/1.18.2.3/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/checksum.S/1.9/Fri Feb 18 00:24:32 2000/-ko/Tlinux_2_4_20
+/debuglocks.c/1.6.2.1/Sat Dec 29 05:37:51 2001/-ko/Tlinux_2_4_20
+/dec_and_lock.S/1.3.4.1/Sat Dec 29 05:37:52 2001/-ko/Tlinux_2_4_20
+/mcount.S/1.1.2.1/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
+/memcmp.S/1.4/Mon Mar 27 23:54:19 2000/-ko/Tlinux_2_4_20
+/memscan.S/1.5/Fri Feb 18 22:06:14 2000/-ko/Tlinux_2_4_20
+/rwlock.S/1.4/Thu Oct  5 01:18:44 2000/-ko/Tlinux_2_4_20
+/strlen.S/1.2/Mon Jan  4 16:04:55 1999/-ko/Tlinux_2_4_20
+/strlen_user.S/1.6/Sat Feb  5 06:47:13 2000/-ko/Tlinux_2_4_20
+/strncmp.S/1.3/Mon Dec  1 17:58:33 1997/-ko/Tlinux_2_4_20
+/strncpy_from_user.S/1.5/Thu Jun 17 13:26:35 1999/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/sparc64/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sparc64/lib/CVS/Repository
--- linux-2.4.20/arch/sparc64/lib/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/lib/CVS/Repository	2005-01-06 23:01:01.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/sparc64/lib
diff -urNd -urNd linux-2.4.20/arch/sparc64/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sparc64/lib/CVS/Root
--- linux-2.4.20/arch/sparc64/lib/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/lib/CVS/Root	2005-01-06 23:01:01.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/sparc64/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sparc64/lib/CVS/Tag
--- linux-2.4.20/arch/sparc64/lib/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/lib/CVS/Tag	2005-01-06 23:01:02.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/sparc64/math-emu/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sparc64/math-emu/CVS/Entries
--- linux-2.4.20/arch/sparc64/math-emu/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/math-emu/CVS/Entries	2005-01-06 23:01:02.000000000 -0600
@@ -0,0 +1,4 @@
+/Makefile/1.7/Wed Jan 10 17:17:56 2001/-ko/Tlinux_2_4_20
+/math.c/1.8.4.1/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
+/sfp-util.h/1.3/Wed Aug 22 03:24:04 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/sparc64/math-emu/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sparc64/math-emu/CVS/Repository
--- linux-2.4.20/arch/sparc64/math-emu/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/math-emu/CVS/Repository	2005-01-06 23:01:02.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/sparc64/math-emu
diff -urNd -urNd linux-2.4.20/arch/sparc64/math-emu/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sparc64/math-emu/CVS/Root
--- linux-2.4.20/arch/sparc64/math-emu/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/math-emu/CVS/Root	2005-01-06 23:01:02.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/sparc64/math-emu/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sparc64/math-emu/CVS/Tag
--- linux-2.4.20/arch/sparc64/math-emu/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/math-emu/CVS/Tag	2005-01-06 23:01:02.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/sparc64/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sparc64/mm/CVS/Entries
--- linux-2.4.20/arch/sparc64/mm/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/mm/CVS/Entries	2005-01-06 23:01:02.000000000 -0600
@@ -0,0 +1,8 @@
+/Makefile/1.10.2.1/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
+/extable.c/1.2.2.1/Sat Dec 29 05:37:52 2001/-ko/Tlinux_2_4_20
+/fault.c/1.24.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/generic.c/1.13/Wed Jun 13 17:27:47 2001/-ko/Tlinux_2_4_20
+/init.c/1.43.2.4/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/modutil.c/1.10.2.1/Sat Dec 29 05:37:52 2001/-ko/Tlinux_2_4_20
+/ultra.S/1.26.2.3/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/sparc64/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sparc64/mm/CVS/Repository
--- linux-2.4.20/arch/sparc64/mm/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/mm/CVS/Repository	2005-01-06 23:01:02.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/sparc64/mm
diff -urNd -urNd linux-2.4.20/arch/sparc64/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sparc64/mm/CVS/Root
--- linux-2.4.20/arch/sparc64/mm/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/mm/CVS/Root	2005-01-06 23:01:02.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/sparc64/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sparc64/mm/CVS/Tag
--- linux-2.4.20/arch/sparc64/mm/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/mm/CVS/Tag	2005-01-06 23:01:02.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/sparc64/prom/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sparc64/prom/CVS/Entries
--- linux-2.4.20/arch/sparc64/prom/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/prom/CVS/Entries	2005-01-06 23:01:02.000000000 -0600
@@ -0,0 +1,12 @@
+/Makefile/1.7.2.1/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
+/bootstr.c/1.6.4.1/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
+/console.c/1.5/Tue Mar 17 22:09:00 1998/-ko/Tlinux_2_4_20
+/devops.c/1.4/Tue Mar 17 22:09:00 1998/-ko/Tlinux_2_4_20
+/init.c/1.6/Sat Feb  5 06:47:17 2000/-ko/Tlinux_2_4_20
+/map.S/1.1/Sat Feb  5 06:47:17 2000/-ko/Tlinux_2_4_20
+/memory.c/1.5/Sat Oct  9 00:01:08 1999/-ko/Tlinux_2_4_20
+/misc.c/1.15.2.2/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
+/p1275.c/1.11/Tue Nov  6 00:55:00 2001/-ko/Tlinux_2_4_20
+/printf.c/1.3/Mon Dec  1 17:58:40 1997/-ko/Tlinux_2_4_20
+/tree.c/1.4/Tue Mar 17 22:09:01 1998/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/sparc64/prom/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sparc64/prom/CVS/Repository
--- linux-2.4.20/arch/sparc64/prom/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/prom/CVS/Repository	2005-01-06 23:01:02.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/sparc64/prom
diff -urNd -urNd linux-2.4.20/arch/sparc64/prom/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sparc64/prom/CVS/Root
--- linux-2.4.20/arch/sparc64/prom/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/prom/CVS/Root	2005-01-06 23:01:02.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/sparc64/prom/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sparc64/prom/CVS/Tag
--- linux-2.4.20/arch/sparc64/prom/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/prom/CVS/Tag	2005-01-06 23:01:02.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/sparc64/solaris/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sparc64/solaris/CVS/Entries
--- linux-2.4.20/arch/sparc64/solaris/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/solaris/CVS/Entries	2005-01-06 23:01:03.000000000 -0600
@@ -0,0 +1,15 @@
+/Makefile/1.6.2.1/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
+/conv.h/1.3/Mon Jan  4 16:04:59 1999/-ko/Tlinux_2_4_20
+/entry64.S/1.4/Wed Feb 16 01:07:32 2000/-ko/Tlinux_2_4_20
+/fs.c/1.22/Fri Oct 19 01:23:51 2001/-ko/Tlinux_2_4_20
+/ioctl.c/1.10.2.1/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
+/ipc.c/1.5/Sat Feb  5 06:47:17 2000/-ko/Tlinux_2_4_20
+/misc.c/1.24.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/signal.c/1.3/Thu Oct  5 01:18:44 2000/-ko/Tlinux_2_4_20
+/signal.h/1.2/Tue Aug 25 09:15:54 1998/-ko/Tlinux_2_4_20
+/socket.c/1.6/Fri Mar  9 20:33:53 2001/-ko/Tlinux_2_4_20
+/socksys.c/1.16/Fri Mar  9 20:33:53 2001/-ko/Tlinux_2_4_20
+/socksys.h/1.1/Thu May  7 02:58:43 1998/-ko/Tlinux_2_4_20
+/systbl.S/1.6/Sun Mar 19 01:28:44 2000/-ko/Tlinux_2_4_20
+/timod.c/1.12.2.3/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/sparc64/solaris/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sparc64/solaris/CVS/Repository
--- linux-2.4.20/arch/sparc64/solaris/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/solaris/CVS/Repository	2005-01-06 23:01:02.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/sparc64/solaris
diff -urNd -urNd linux-2.4.20/arch/sparc64/solaris/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sparc64/solaris/CVS/Root
--- linux-2.4.20/arch/sparc64/solaris/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/solaris/CVS/Root	2005-01-06 23:01:02.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/sparc64/solaris/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sparc64/solaris/CVS/Tag
--- linux-2.4.20/arch/sparc64/solaris/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/solaris/CVS/Tag	2005-01-06 23:01:03.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/x86_64/boot/compressed/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/compressed/CVS/Entries
--- linux-2.4.20/arch/x86_64/boot/compressed/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/compressed/CVS/Entries	2005-01-06 23:01:03.000000000 -0600
@@ -0,0 +1,5 @@
+/Makefile/1.1.2.1/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
+/head.S/1.2.2.1/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
+/misc.c/1.1.2.1/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
+/miscsetup.h/1.1.2.1/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/x86_64/boot/compressed/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/compressed/CVS/Repository
--- linux-2.4.20/arch/x86_64/boot/compressed/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/compressed/CVS/Repository	2005-01-06 23:01:03.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/x86_64/boot/compressed
diff -urNd -urNd linux-2.4.20/arch/x86_64/boot/compressed/CVS/Root linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/compressed/CVS/Root
--- linux-2.4.20/arch/x86_64/boot/compressed/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/compressed/CVS/Root	2005-01-06 23:01:03.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/x86_64/boot/compressed/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/compressed/CVS/Tag
--- linux-2.4.20/arch/x86_64/boot/compressed/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/compressed/CVS/Tag	2005-01-06 23:01:03.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/x86_64/boot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/CVS/Entries
--- linux-2.4.20/arch/x86_64/boot/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/CVS/Entries	2005-01-06 23:08:14.000000000 -0600
@@ -0,0 +1,7 @@
+/Makefile/1.2.2.1/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
+/bootsect.S/1.1.2.1/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
+/install.sh/1.1.2.1/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
+/setup.S/1.2.2.1/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
+/video.S/1.2.2.1/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
+D/compressed////
+D/tools////
diff -urNd -urNd linux-2.4.20/arch/x86_64/boot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/CVS/Repository
--- linux-2.4.20/arch/x86_64/boot/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/CVS/Repository	2005-01-06 23:01:03.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/x86_64/boot
diff -urNd -urNd linux-2.4.20/arch/x86_64/boot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/CVS/Root
--- linux-2.4.20/arch/x86_64/boot/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/CVS/Root	2005-01-06 23:01:03.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/x86_64/boot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/CVS/Tag
--- linux-2.4.20/arch/x86_64/boot/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/CVS/Tag	2005-01-06 23:01:03.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/x86_64/boot/tools/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/tools/CVS/Entries
--- linux-2.4.20/arch/x86_64/boot/tools/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/tools/CVS/Entries	2005-01-06 23:01:03.000000000 -0600
@@ -0,0 +1,2 @@
+/build.c/1.1.2.1/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/x86_64/boot/tools/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/tools/CVS/Repository
--- linux-2.4.20/arch/x86_64/boot/tools/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/tools/CVS/Repository	2005-01-06 23:01:03.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/x86_64/boot/tools
diff -urNd -urNd linux-2.4.20/arch/x86_64/boot/tools/CVS/Root linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/tools/CVS/Root
--- linux-2.4.20/arch/x86_64/boot/tools/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/tools/CVS/Root	2005-01-06 23:01:03.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/x86_64/boot/tools/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/tools/CVS/Tag
--- linux-2.4.20/arch/x86_64/boot/tools/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/tools/CVS/Tag	2005-01-06 23:01:03.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/x86_64/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/x86_64/CVS/Entries
--- linux-2.4.20/arch/x86_64/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/CVS/Entries	2005-01-06 23:08:14.000000000 -0600
@@ -0,0 +1,11 @@
+/Makefile/1.2.2.1/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
+/config.in/1.6.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/defconfig/1.9.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/vmlinux.lds/1.3.2.1/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
+D/boot////
+D/ia32////
+D/kernel////
+D/lib////
+D/math-emu////
+D/mm////
+D/tools////
diff -urNd -urNd linux-2.4.20/arch/x86_64/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/x86_64/CVS/Repository
--- linux-2.4.20/arch/x86_64/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/CVS/Repository	2005-01-06 23:01:03.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/x86_64
diff -urNd -urNd linux-2.4.20/arch/x86_64/CVS/Root linux-2.4.20-mipscvs-20050106/arch/x86_64/CVS/Root
--- linux-2.4.20/arch/x86_64/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/CVS/Root	2005-01-06 23:01:03.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/x86_64/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/x86_64/CVS/Tag
--- linux-2.4.20/arch/x86_64/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/CVS/Tag	2005-01-06 23:01:03.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/x86_64/ia32/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/x86_64/ia32/CVS/Entries
--- linux-2.4.20/arch/x86_64/ia32/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/ia32/CVS/Entries	2005-01-06 23:01:05.000000000 -0600
@@ -0,0 +1,11 @@
+/Makefile/1.4.2.1/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
+/fpu32.c/1.1.2.1/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
+/ia32_binfmt.c/1.3.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
+/ia32_ioctl.c/1.6.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/ia32_signal.c/1.3.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
+/ia32entry.S/1.2.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/ipc32.c/1.1.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/ptrace32.c/1.2.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
+/socket32.c/1.1.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
+/sys_ia32.c/1.3.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/x86_64/ia32/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/x86_64/ia32/CVS/Repository
--- linux-2.4.20/arch/x86_64/ia32/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/ia32/CVS/Repository	2005-01-06 23:01:03.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/x86_64/ia32
diff -urNd -urNd linux-2.4.20/arch/x86_64/ia32/CVS/Root linux-2.4.20-mipscvs-20050106/arch/x86_64/ia32/CVS/Root
--- linux-2.4.20/arch/x86_64/ia32/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/ia32/CVS/Root	2005-01-06 23:01:03.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/x86_64/ia32/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/x86_64/ia32/CVS/Tag
--- linux-2.4.20/arch/x86_64/ia32/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/ia32/CVS/Tag	2005-01-06 23:01:05.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/x86_64/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/x86_64/kernel/CVS/Entries
--- linux-2.4.20/arch/x86_64/kernel/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/kernel/CVS/Entries	2005-01-06 23:08:14.000000000 -0600
@@ -0,0 +1,46 @@
+/Makefile/1.4.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/acpitable.c/1.1.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/acpitable.h/1.1.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
+/aperture.c/1.1.2.1/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/apic.c/1.2.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
+/bluesmoke.c/1.4.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/cpuid.c/1.3.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
+/e820.c/1.2.2.1/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/early_printk.c/1.3.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
+/entry.S/1.4.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/head.S/1.3.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
+/head64.c/1.2.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
+/i387.c/1.3.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
+/i8259.c/1.2.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
+/init_task.c/1.2.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
+/io_apic.c/1.2.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/ioport.c/1.1.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
+/irq.c/1.2.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/ldt.c/1.2.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
+/mpparse.c/1.2.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/msr.c/1.2.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
+/mtrr.c/1.3.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/nmi.c/1.1.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
+/pci-dma.c/1.2.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/pci-gart.c/1.1.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/pci-irq.c/1.2.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
+/pci-nommu.c/1.1.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
+/pci-pc.c/1.2.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/pci-x86_64.c/1.2.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/pci-x86_64.h/1.2.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/process.c/1.4.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/ptrace.c/1.3.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
+/semaphore.c/1.2.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
+/setup.c/1.2.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/setup64.c/1.2.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/signal.c/1.3.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
+/smp.c/1.3.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
+/smpboot.c/1.4.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/sys_x86_64.c/1.3.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/syscall.c/1.2.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
+/time.c/1.3.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/trampoline.S/1.2.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
+/traps.c/1.3.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/vsyscall.c/1.3.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/x8664_ksyms.c/1.4.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/x86_64/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/x86_64/kernel/CVS/Repository
--- linux-2.4.20/arch/x86_64/kernel/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/kernel/CVS/Repository	2005-01-06 23:01:05.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/x86_64/kernel
diff -urNd -urNd linux-2.4.20/arch/x86_64/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/x86_64/kernel/CVS/Root
--- linux-2.4.20/arch/x86_64/kernel/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/kernel/CVS/Root	2005-01-06 23:01:05.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/x86_64/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/x86_64/kernel/CVS/Tag
--- linux-2.4.20/arch/x86_64/kernel/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/kernel/CVS/Tag	2005-01-06 23:01:08.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/x86_64/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/x86_64/lib/CVS/Entries
--- linux-2.4.20/arch/x86_64/lib/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/lib/CVS/Entries	2005-01-06 23:01:08.000000000 -0600
@@ -0,0 +1,21 @@
+/Makefile/1.4.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
+/bitstr.c/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
+/clear_page.S/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
+/copy_page.S/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
+/copy_user.S/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
+/csum-copy.S/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
+/csum-partial.c/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
+/csum-wrappers.c/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
+/dec_and_lock.c/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
+/delay.c/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
+/getuser.S/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
+/io.c/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
+/iodebug.c/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
+/memcpy.S/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
+/memmove.c/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
+/memset.S/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
+/old-checksum.c/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
+/putuser.S/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
+/thunk.S/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
+/usercopy.c/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/x86_64/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/x86_64/lib/CVS/Repository
--- linux-2.4.20/arch/x86_64/lib/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/lib/CVS/Repository	2005-01-06 23:01:08.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/x86_64/lib
diff -urNd -urNd linux-2.4.20/arch/x86_64/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/x86_64/lib/CVS/Root
--- linux-2.4.20/arch/x86_64/lib/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/lib/CVS/Root	2005-01-06 23:01:08.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/x86_64/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/x86_64/lib/CVS/Tag
--- linux-2.4.20/arch/x86_64/lib/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/lib/CVS/Tag	2005-01-06 23:01:08.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/x86_64/math-emu/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/x86_64/math-emu/CVS/Entries
--- linux-2.4.20/arch/x86_64/math-emu/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/math-emu/CVS/Entries	2005-01-06 23:01:08.000000000 -0600
@@ -0,0 +1,2 @@
+/README/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/x86_64/math-emu/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/x86_64/math-emu/CVS/Repository
--- linux-2.4.20/arch/x86_64/math-emu/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/math-emu/CVS/Repository	2005-01-06 23:01:08.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/x86_64/math-emu
diff -urNd -urNd linux-2.4.20/arch/x86_64/math-emu/CVS/Root linux-2.4.20-mipscvs-20050106/arch/x86_64/math-emu/CVS/Root
--- linux-2.4.20/arch/x86_64/math-emu/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/math-emu/CVS/Root	2005-01-06 23:01:08.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/x86_64/math-emu/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/x86_64/math-emu/CVS/Tag
--- linux-2.4.20/arch/x86_64/math-emu/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/math-emu/CVS/Tag	2005-01-06 23:01:08.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/x86_64/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/x86_64/mm/CVS/Entries
--- linux-2.4.20/arch/x86_64/mm/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/mm/CVS/Entries	2005-01-06 23:01:08.000000000 -0600
@@ -0,0 +1,10 @@
+/Makefile/1.2.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/extable.c/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
+/fault.c/1.4.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/init.c/1.6.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/ioremap.c/1.4.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/k8topology.c/1.1.2.1/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/modutil.c/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
+/numa.c/1.1.2.1/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
+/pageattr.c/1.1.2.1/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/x86_64/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/x86_64/mm/CVS/Repository
--- linux-2.4.20/arch/x86_64/mm/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/mm/CVS/Repository	2005-01-06 23:01:08.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/x86_64/mm
diff -urNd -urNd linux-2.4.20/arch/x86_64/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/x86_64/mm/CVS/Root
--- linux-2.4.20/arch/x86_64/mm/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/mm/CVS/Root	2005-01-06 23:01:08.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/x86_64/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/x86_64/mm/CVS/Tag
--- linux-2.4.20/arch/x86_64/mm/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/mm/CVS/Tag	2005-01-06 23:01:08.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/arch/x86_64/tools/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/x86_64/tools/CVS/Entries
--- linux-2.4.20/arch/x86_64/tools/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/tools/CVS/Entries	2005-01-06 23:01:08.000000000 -0600
@@ -0,0 +1,4 @@
+/Makefile/1.1.2.1/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
+/offset.c/1.3.2.1/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
+/offset.sed/1.1.2.1/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/arch/x86_64/tools/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/x86_64/tools/CVS/Repository
--- linux-2.4.20/arch/x86_64/tools/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/tools/CVS/Repository	2005-01-06 23:01:08.000000000 -0600
@@ -0,0 +1 @@
+linux/arch/x86_64/tools
diff -urNd -urNd linux-2.4.20/arch/x86_64/tools/CVS/Root linux-2.4.20-mipscvs-20050106/arch/x86_64/tools/CVS/Root
--- linux-2.4.20/arch/x86_64/tools/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/tools/CVS/Root	2005-01-06 23:01:08.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/arch/x86_64/tools/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/x86_64/tools/CVS/Tag
--- linux-2.4.20/arch/x86_64/tools/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/tools/CVS/Tag	2005-01-06 23:01:08.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/CVS/Entries linux-2.4.20-mipscvs-20050106/CVS/Entries
--- linux-2.4.20/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/CVS/Entries	2005-01-06 23:08:28.000000000 -0600
@@ -0,0 +1,20 @@
+/.cvsignore/1.6/Mon Jan 17 23:32:45 2000/-ko/Tlinux_2_4_20
+/COPYING/1.5.2.1/Wed Jun 26 22:34:58 2002/-ko/Tlinux_2_4_20
+/CREDITS/1.73.2.6/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
+/MAINTAINERS/1.76.2.10/Mon Jan 20 18:19:34 2003/-ko/Tlinux_2_4_20
+/Makefile/1.119.2.8/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
+/README/1.16.2.1/Wed Jun 26 22:34:59 2002/-ko/Tlinux_2_4_20
+/REPORTING-BUGS/1.5/Wed Jun 13 17:27:35 2001/-ko/Tlinux_2_4_20
+/Rules.make/1.14.2.3/Tue Sep 10 15:32:47 2002/-ko/Tlinux_2_4_20
+D/Documentation////
+D/arch////
+D/drivers////
+D/fs////
+D/include////
+D/init////
+D/ipc////
+D/kernel////
+D/lib////
+D/mm////
+D/net////
+D/scripts////
diff -urNd -urNd linux-2.4.20/CVS/Repository linux-2.4.20-mipscvs-20050106/CVS/Repository
--- linux-2.4.20/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/CVS/Repository	2005-01-06 22:58:26.000000000 -0600
@@ -0,0 +1 @@
+linux
diff -urNd -urNd linux-2.4.20/CVS/Root linux-2.4.20-mipscvs-20050106/CVS/Root
--- linux-2.4.20/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/CVS/Root	2005-01-06 22:58:26.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/CVS/Tag linux-2.4.20-mipscvs-20050106/CVS/Tag
--- linux-2.4.20/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/CVS/Tag	2005-01-06 22:58:27.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/.cvsignore linux-2.4.20-mipscvs-20050106/.cvsignore
--- linux-2.4.20/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/.cvsignore	2000-01-17 17:32:45.000000000 -0600
@@ -0,0 +1,13 @@
+!core
+.SUMS
+.config
+.depend
+.hdepend
+.tmpconfig
+.tmpconfig.h
+.version
+System.map
+vmlinux
+vmlinux.64
+modules
+nohup.out
diff -urNd -urNd linux-2.4.20/Documentation/arm/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/arm/CVS/Entries
--- linux-2.4.20/Documentation/arm/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/arm/CVS/Entries	2005-01-06 23:08:28.000000000 -0600
@@ -0,0 +1,6 @@
+/Netwinder/1.1/Sun Jun 13 16:29:34 1999/-ko/Tlinux_2_4_20
+/README/1.6/Tue Nov  6 00:54:52 2001/-ko/Tlinux_2_4_20
+/Setup/1.2/Fri Apr 28 01:09:26 2000/-ko/Tlinux_2_4_20
+D/SA1100////
+D/empeg////
+D/nwfpe////
diff -urNd -urNd linux-2.4.20/Documentation/arm/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/arm/CVS/Repository
--- linux-2.4.20/Documentation/arm/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/arm/CVS/Repository	2005-01-06 22:58:44.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/arm
diff -urNd -urNd linux-2.4.20/Documentation/arm/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/arm/CVS/Root
--- linux-2.4.20/Documentation/arm/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/arm/CVS/Root	2005-01-06 22:58:44.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/arm/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/arm/CVS/Tag
--- linux-2.4.20/Documentation/arm/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/arm/CVS/Tag	2005-01-06 22:58:45.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/arm/empeg/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/arm/empeg/CVS/Entries
--- linux-2.4.20/Documentation/arm/empeg/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/arm/empeg/CVS/Entries	2005-01-06 22:58:45.000000000 -0600
@@ -0,0 +1,4 @@
+/README/1.1/Thu Jan 27 01:05:21 2000/-ko/Tlinux_2_4_20
+/ir.txt/1.2/Tue Aug  8 12:37:17 2000/-ko/Tlinux_2_4_20
+/mkdevs/1.1/Thu Jan 27 01:05:21 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/Documentation/arm/empeg/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/arm/empeg/CVS/Repository
--- linux-2.4.20/Documentation/arm/empeg/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/arm/empeg/CVS/Repository	2005-01-06 22:58:45.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/arm/empeg
diff -urNd -urNd linux-2.4.20/Documentation/arm/empeg/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/arm/empeg/CVS/Root
--- linux-2.4.20/Documentation/arm/empeg/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/arm/empeg/CVS/Root	2005-01-06 22:58:45.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/arm/empeg/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/arm/empeg/CVS/Tag
--- linux-2.4.20/Documentation/arm/empeg/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/arm/empeg/CVS/Tag	2005-01-06 22:58:45.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/arm/nwfpe/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/arm/nwfpe/CVS/Entries
--- linux-2.4.20/Documentation/arm/nwfpe/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/arm/nwfpe/CVS/Entries	2005-01-06 22:58:45.000000000 -0600
@@ -0,0 +1,5 @@
+/NOTES/1.1/Sun Jun 13 16:29:35 1999/-ko/Tlinux_2_4_20
+/README/1.4/Tue Aug  8 12:37:17 2000/-ko/Tlinux_2_4_20
+/README.FPE/1.2/Thu Jan 27 01:05:21 2000/-ko/Tlinux_2_4_20
+/TODO/1.1/Sun Jun 13 16:29:36 1999/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/Documentation/arm/nwfpe/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/arm/nwfpe/CVS/Repository
--- linux-2.4.20/Documentation/arm/nwfpe/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/arm/nwfpe/CVS/Repository	2005-01-06 22:58:45.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/arm/nwfpe
diff -urNd -urNd linux-2.4.20/Documentation/arm/nwfpe/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/arm/nwfpe/CVS/Root
--- linux-2.4.20/Documentation/arm/nwfpe/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/arm/nwfpe/CVS/Root	2005-01-06 22:58:45.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/arm/nwfpe/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/arm/nwfpe/CVS/Tag
--- linux-2.4.20/Documentation/arm/nwfpe/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/arm/nwfpe/CVS/Tag	2005-01-06 22:58:45.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/arm/SA1100/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/arm/SA1100/CVS/Entries
--- linux-2.4.20/Documentation/arm/SA1100/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/arm/SA1100/CVS/Entries	2005-01-06 22:58:45.000000000 -0600
@@ -0,0 +1,21 @@
+/ADSBitsy/1.1/Tue Nov  6 00:54:52 2001/-ko/Tlinux_2_4_20
+/Assabet/1.4/Tue Nov  6 07:55:44 2001/-ko/Tlinux_2_4_20
+/Brutus/1.5/Thu Apr  5 04:56:06 2001/-ko/Tlinux_2_4_20
+/CERF/1.1/Mon Aug 28 22:00:11 2000/-ko/Tlinux_2_4_20
+/DMA/1.1/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
+/FreeBird/1.1/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
+/GraphicsClient/1.2/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
+/GraphicsMaster/1.1/Tue Nov  6 00:54:52 2001/-ko/Tlinux_2_4_20
+/HUW_WEBPANEL/1.1/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
+/Itsy/1.2/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
+/LART/1.3/Mon Jun 19 22:45:38 2000/-ko/Tlinux_2_4_20
+/PCMCIA/1.1/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
+/PLEB/1.1/Thu Jan 27 01:05:21 2000/-ko/Tlinux_2_4_20
+/Pangolin/1.3/Tue Nov  6 00:54:52 2001/-ko/Tlinux_2_4_20
+/Tifon/1.1/Thu Jan 27 01:05:21 2000/-ko/Tlinux_2_4_20
+/Victor/1.1/Thu Jan 27 01:05:21 2000/-ko/Tlinux_2_4_20
+/Yopy/1.1/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
+/empeg/1.1/Thu Jan 27 01:05:21 2000/-ko/Tlinux_2_4_20
+/nanoEngine/1.2/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
+/serial_UART/1.2/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/Documentation/arm/SA1100/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/arm/SA1100/CVS/Repository
--- linux-2.4.20/Documentation/arm/SA1100/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/arm/SA1100/CVS/Repository	2005-01-06 22:58:45.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/arm/SA1100
diff -urNd -urNd linux-2.4.20/Documentation/arm/SA1100/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/arm/SA1100/CVS/Root
--- linux-2.4.20/Documentation/arm/SA1100/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/arm/SA1100/CVS/Root	2005-01-06 22:58:45.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/arm/SA1100/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/arm/SA1100/CVS/Tag
--- linux-2.4.20/Documentation/arm/SA1100/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/arm/SA1100/CVS/Tag	2005-01-06 22:58:45.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/BK-usage/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/BK-usage/CVS/Entries
--- linux-2.4.20/Documentation/BK-usage/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/BK-usage/CVS/Entries	2005-01-06 22:58:42.000000000 -0600
@@ -0,0 +1,8 @@
+/bk-kernel-howto.txt/1.4.2.1/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
+/bk-make-sum/1.1.2.1/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
+/bksend/1.1.2.1/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
+/bz64wrap/1.1.2.1/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
+/cset-to-linus/1.2.2.1/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
+/csets-to-patches/1.2.2.1/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
+/unbz64wrap/1.1.2.1/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/Documentation/BK-usage/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/BK-usage/CVS/Repository
--- linux-2.4.20/Documentation/BK-usage/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/BK-usage/CVS/Repository	2005-01-06 22:58:42.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/BK-usage
diff -urNd -urNd linux-2.4.20/Documentation/BK-usage/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/BK-usage/CVS/Root
--- linux-2.4.20/Documentation/BK-usage/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/BK-usage/CVS/Root	2005-01-06 22:58:42.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/BK-usage/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/BK-usage/CVS/Tag
--- linux-2.4.20/Documentation/BK-usage/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/BK-usage/CVS/Tag	2005-01-06 22:58:42.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/cdrom/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/cdrom/CVS/Entries
--- linux-2.4.20/Documentation/cdrom/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/cdrom/CVS/Entries	2005-01-06 22:58:47.000000000 -0600
@@ -0,0 +1,16 @@
+/00-INDEX/1.3/Tue Aug 25 09:12:52 1998/-ko/Tlinux_2_4_20
+/Makefile/1.1/Tue Dec 16 06:06:26 1997/-ko/Tlinux_2_4_20
+/aztcd/1.5/Tue Aug 25 09:12:52 1998/-ko/Tlinux_2_4_20
+/cdrom-standard.tex/1.8/Tue Aug  8 12:37:17 2000/-ko/Tlinux_2_4_20
+/cdu31a/1.2/Thu May  7 02:56:00 1998/-ko/Tlinux_2_4_20
+/cm206/1.3/Thu May  7 02:56:00 1998/-ko/Tlinux_2_4_20
+/gscd/1.3/Thu May  7 02:56:00 1998/-ko/Tlinux_2_4_20
+/ide-cd/1.9/Tue Aug  8 12:37:17 2000/-ko/Tlinux_2_4_20
+/isp16/1.3/Thu May  7 02:56:01 1998/-ko/Tlinux_2_4_20
+/mcd/1.1.1.1/Sun Jun  1 03:17:48 1997/-ko/Tlinux_2_4_20
+/mcdx/1.3/Mon Feb 15 02:15:44 1999/-ko/Tlinux_2_4_20
+/optcd/1.1.1.1/Sun Jun  1 03:17:49 1997/-ko/Tlinux_2_4_20
+/sbpcd/1.4/Tue Aug 25 09:12:53 1998/-ko/Tlinux_2_4_20
+/sjcd/1.3/Thu May  7 02:56:02 1998/-ko/Tlinux_2_4_20
+/sonycd535/1.4.6.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/Documentation/cdrom/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/cdrom/CVS/Repository
--- linux-2.4.20/Documentation/cdrom/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/cdrom/CVS/Repository	2005-01-06 22:58:45.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/cdrom
diff -urNd -urNd linux-2.4.20/Documentation/cdrom/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/cdrom/CVS/Root
--- linux-2.4.20/Documentation/cdrom/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/cdrom/CVS/Root	2005-01-06 22:58:45.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/cdrom/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/cdrom/CVS/Tag
--- linux-2.4.20/Documentation/cdrom/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/cdrom/CVS/Tag	2005-01-06 22:58:47.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/Configure.help linux-2.4.20-mipscvs-20050106/Documentation/Configure.help
--- linux-2.4.20/Documentation/Configure.help	2002-11-28 17:53:08.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/Configure.help	2003-02-14 12:43:54.000000000 -0600
@@ -459,6 +459,18 @@
   "real" root file system, etc. See <file:Documentation/initrd.txt>
   for details.
 
+Embed root filesystem ramdisk into the kernel
+CONFIG_EMBEDDED_RAMDISK
+  Select this option if you want to build the ramdisk image into the
+  the final kernel binary.
+
+Filename of gziped ramdisk image
+CONFIG_EMBEDDED_RAMDISK_IMAGE
+  This is the filename of the ramdisk image to be built into the
+  kernel.  Relative pathnames are relative to arch/mips/ramdisk/.
+  The ramdisk image is not part of the kernel distribution; you must
+  provide one yourself.
+
 Loopback device support
 CONFIG_BLK_DEV_LOOP
   Saying Y here will allow you to use a regular file as a block
@@ -2078,6 +2090,71 @@
   This enables support for the VR5000-based MIPS Malta evaluation
   board.
 
+# Choice: bcmboard
+Support for Broadcom SiByte boards
+CONFIG_SIBYTE_SWARM
+  Enable support for boards based on the Broadcom SiByte family:
+
+  BCM91250A-SWARM    BCM1250 ATX size Eval Board (BCM91250A-SWARM)
+
+  BCM91250E-Sentosa  BCM1250 PCI card Eval Board (BCM91250E-Sentosa)
+
+  BCM91125E-Rhone    BCM1125 PCI card Eval Board (BCM91125E-Rhone)
+
+  Other              Non-Broadcom SiByte-based platform
+
+# Choice: bcmsoc
+Support for Broadcom BCM1xxx SOCs
+CONFIG_SIBYTE_SB1250
+
+  BCM1250     Dual-CPU SB1 with PCI and HyperTransport.
+
+  BCM1120     Uniprocessor SB1.
+
+  BCM1125     Uniprocessor SB1 with PCI (and HyperTransport for 1125H).
+
+BCM1250 Pass
+CONFIG_CPU_SB1_PASS_1
+  Which pass of the SOC is supported (see the "system_revision"
+  register in the User Manual for more discussion of revisions):
+
+  Pass1    1250 "Pass 1"
+
+  A3-A10   1250 "Pass 2"
+
+  B0-B3    1250 "Pass 2.2"
+
+BCM1xxx Pass
+CONFIG_CPU_SB1_PASS_2
+  Which pass of the SOC is supported (see the "system_revision"
+  register in the User Manual for more discussion of revisions):
+
+  Hybrid   1250 "Pass 2"
+
+  A1-A2    112x A1-A2
+
+Booting from CFE
+CONFIG_SIBYTE_CFE
+  Make use of the CFE API for enumerating available memory,
+  controlling secondary CPUs, and possibly console output.
+
+Use firmware console
+CONFIG_SIBYTE_CFE_CONSOLE
+  Use the CFE API's console write routines during boot.  Other console
+  options (VT console, sb1250 duart console, etc.) should not be
+  configured.
+
+Support SWARM (BCM912500A) peripherals
+CONFIG_SIBYTE_SWARM 
+  Indicates that the target is a SWARM board.  Most devices (IDE,
+  video decoder, audio codec, etc) still require additional
+  configuration options under the appropriate sections.
+
+Corelis Debugger
+CONFIG_SB1XXX_CORELIS
+  Select compile flags that produce code that can be processed by the
+  Corelis mksym utility and UDB Emulator.
+
 Support for Galileo Evaluation board or CoSine Orion
 CONFIG_ORION
   Say Y if configuring for the Galileo evaluation board
@@ -2164,16 +2241,31 @@
   workstations).  Say Y here to make sure it gets initialized
   correctly before the Linux kernel tries to talk to the controller.
 
-Kernel floating-point instruction emulation
-CONFIG_MIPS_FPU_EMULATOR
-  This option enables the MIPS software floating support.  Due to
-  the way floating point works you should always enable this option
-  unless you exactly know what you're doing.
-
 SGI PROM Console Support
 CONFIG_SGI_PROM_CONSOLE
   Say Y here to set up the boot console on serial port 0.
 
+DECstation serial support
+CONFIG_SERIAL_DEC
+  This selects whether you want to be asked about drivers for
+  DECstation serial ports.
+
+  Note that the answer to this question won't directly affect the
+  kernel: saying N will just cause the configurator to skip all
+  the questions about DECstation serial ports.
+
+  If unsure, say Y.
+
+Support for console on a DECstation serial port
+CONFIG_SERIAL_DEC_CONSOLE
+  If you say Y here, it will be possible to use a serial port as the
+  system console (the system console is the device which receives all
+  kernel messages and warnings and which allows logins in single user
+  mode).  Note that the firmware uses ttyS0 as the serial console on
+  the Maxine and ttyS2 on the others.
+
+  If unsure, say Y.
+
 DZ11 Serial Support
 CONFIG_DZ
   DZ11-family serial controllers for VAXstations, including the
@@ -2293,6 +2385,8 @@
 
   R10000   MIPS Technologies R10000-series processors.
 
+  SB1      Broadcom SiByte SB1 processor.
+
 R6000
 CONFIG_CPU_R6000
   MIPS Technologies R6000-series processors, including the 64474,
@@ -2323,6 +2417,10 @@
 CONFIG_CPU_R10000
   MIPS Technologies R10000-series processors.
 
+SB1
+CONFIG_CPU_SB1
+  Broadcom SiByte SB1 processor.
+
 Discontiguous Memory Support
 CONFIG_DISCONTIGMEM
   Say Y to support efficient handling of discontiguous physical memory,
@@ -3392,9 +3490,9 @@
   servicing. Say Y here to enable the serial driver to take advantage
   of those special I/O ports.
 
-SGI Zilog85C30 serial support
-CONFIG_SGI_SERIAL
-  If you want to use your SGI's built-in serial ports under Linux,
+SGI IP22 Zilog85C30 serial support
+CONFIG_IP22_SERIAL
+  If you want to use your IP22's built-in serial ports under Linux,
   answer Y.
 
 SGI Newport Graphics support
@@ -4442,21 +4540,20 @@
 
 Maxine (Personal DECstation) onboard framebuffer support
 CONFIG_FB_MAXINE
-  Say Y here to directly support the on-board framebuffer in the
-  Maxine (5000/20, /25, /33) version of the DECstation.  There is a
-  page dedicated to Linux on DECstations at <http://decstation.unix-ag.org/>.
+  Support for the onboard framebuffer (1024x768x8) in the Personal
+  DECstation series (Personal DECstation 5000/20, /25, /33, /50,
+  Codename "Maxine").
 
 PMAG-BA TURBOchannel framebuffer support
 CONFIG_FB_PMAG_BA
-  Say Y here to directly support the on-board PMAG-BA framebuffer in
-  the 5000/1xx versions of the DECstation.  There is a page dedicated
-  to Linux on DECstations at <http://decstation.unix-ag.org/>.
+  Support for the PMAG-BA TURBOchannel framebuffer card (1024x864x8)
+  used mainly in the MIPS-based DECstation series.
 
 PMAGB-B TURBOchannel framebuffer support
 CONFIG_FB_PMAGB_B
-  Say Y here to directly support the on-board PMAGB-B framebuffer in
-  the 5000/1xx versions of the DECstation.  There is a page dedicated
-  to Linux on DECstations at <http://decstation.unix-ag.org/>.
+  Support for the PMAGB-B TURBOchannel framebuffer card used mainly
+  in the MIPS-based DECstation series. The card is currently only 
+  supported in 1280x1024x8 mode.  
 
 FutureTV PCI card
 CONFIG_ARCH_FTVPCI
@@ -13395,6 +13492,18 @@
   <file:Documentation/modules.txt>. The module will be called
   slram.o
 
+DEC MS02-NV NVRAM module support
+CONFIG_MTD_MS02NV
+  This is a MTD driver for the DEC's MS02-type (54-20948-01) battery
+  backed-up NVRAM module.  The module was originally meant as an NFS
+  accelerator.  Say Y here if you have a DECstation 5000/2x0 or a
+  DECsystem 5900 equipped with such a module.
+
+  If you want to compile this driver as a module ( = code which can be
+  inserted in and removed from the running kernel whenever you want),
+  say M here and read <file:Documentation/modules.txt>.  The module will
+  be called ms02-nv.o.
+
 Debugging RAM test driver
 CONFIG_MTD_MTDRAM
   This enables a test MTD device driver which uses vmalloc() to
@@ -20282,6 +20391,23 @@
   compatibility. Since all software available for Linux/MIPS is
   currently 32-bit you should say Y here.
 
+Kernel support for o32 binaries
+CONFIG_MIPS32_O32
+  Select this option if you want to run o32 binaries.  These are pure
+  32-bit binaries as used by the 32-bit Linux/MIPS port.  Most of
+  existing binaries are in this format.
+
+  If unsure, say Y.
+
+Kernel support for n32 binaries
+CONFIG_MIPS32_N32
+  Select this option if you want to run n32 binaries.  These are
+  64-bit binaries using 32-bit quantities for addressing and certain
+  data that would normally be 64-bit.  They are used in special
+  cases.
+
+  If unsure, say N.
+
 Build fp exception handler module
 CONFIG_MIPS_FPE_MODULE
   Build the floating point exception handler module. This option is
@@ -20356,6 +20482,13 @@
   Currently used only by the time services code in the MIPS port.
   Don't turn this on unless you know what you are doing.
 
+Enable run-time debugging
+CONFIG_DEBUG
+  If you say Y here, some debugging macros will do run-time checking.
+  If you say N here, those macros will mostly turn to no-ops.  For
+  MIPS boards only.  See include/asm-mips/debug.h for debuging macros.
+  If unsure, say N.
+
 Remote GDB kernel debugging
 CONFIG_REMOTE_DEBUG
   If you say Y here, it will be possible to remotely debug the MIPS
diff -urNd -urNd linux-2.4.20/Documentation/cris/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/cris/CVS/Entries
--- linux-2.4.20/Documentation/cris/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/cris/CVS/Entries	2005-01-06 22:58:47.000000000 -0600
@@ -0,0 +1,2 @@
+/README/1.3/Thu Jun 14 04:23:45 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/Documentation/cris/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/cris/CVS/Repository
--- linux-2.4.20/Documentation/cris/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/cris/CVS/Repository	2005-01-06 22:58:47.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/cris
diff -urNd -urNd linux-2.4.20/Documentation/cris/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/cris/CVS/Root
--- linux-2.4.20/Documentation/cris/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/cris/CVS/Root	2005-01-06 22:58:47.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/cris/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/cris/CVS/Tag
--- linux-2.4.20/Documentation/cris/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/cris/CVS/Tag	2005-01-06 22:58:47.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/CVS/Entries
--- linux-2.4.20/Documentation/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/CVS/Entries	2005-01-06 23:08:28.000000000 -0600
@@ -0,0 +1,114 @@
+/00-INDEX/1.15/Fri Oct 19 01:23:29 2001/-ko/Tlinux_2_4_20
+/BUG-HUNTING/1.2/Fri Feb  4 07:40:19 2000/-ko/Tlinux_2_4_20
+/Changes/1.49.2.4/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
+/CodingStyle/1.4/Fri Oct 19 01:23:29 2001/-ko/Tlinux_2_4_20
+/Configure.help/1.109.2.17/Fri Feb 14 18:43:54 2003/-ko/Tlinux_2_4_20
+/DMA-mapping.txt/1.11.2.3/Wed Jun 26 22:34:59 2002/-ko/Tlinux_2_4_20
+/IO-mapping.txt/1.5/Thu Jan 11 04:02:41 2001/-ko/Tlinux_2_4_20
+/IRQ-affinity.txt/1.1.4.1/Wed Jun 26 22:34:59 2002/-ko/Tlinux_2_4_20
+/LVM-HOWTO/1.1/Thu Feb 24 00:12:35 2000/-ko/Tlinux_2_4_20
+/README.DAC960/1.6/Tue Nov  6 00:54:52 2001/-ko/Tlinux_2_4_20
+/README.moxa/1.1/Wed Feb 16 01:07:26 2000/-ko/Tlinux_2_4_20
+/README.nsp_cs.eng/1.2/Tue Nov  6 00:54:52 2001/-ko/Tlinux_2_4_20
+/SAK.txt/1.1/Thu Apr  5 04:56:06 2001/-ko/Tlinux_2_4_20
+/SubmittingDrivers/1.5.2.2/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
+/SubmittingPatches/1.1.2.1/Wed Sep 11 12:44:23 2002/-ko/Tlinux_2_4_20
+/VGA-softcursor.txt/1.2/Tue Aug 25 09:12:43 1998/-ko/Tlinux_2_4_20
+/binfmt_misc.txt/1.7/Thu Apr  5 04:56:06 2001/-ko/Tlinux_2_4_20
+/cachetlb.txt/1.8.2.2/Wed Jun 26 22:34:59 2002/-ko/Tlinux_2_4_20
+/cciss.txt/1.4.2.1/Wed Jun 26 22:34:59 2002/-ko/Tlinux_2_4_20
+/computone.txt/1.7/Tue Nov  6 07:55:44 2001/-ko/Tlinux_2_4_20
+/cpqarray.txt/1.5/Thu Oct  5 01:18:40 2000/-ko/Tlinux_2_4_20
+/devices.txt/1.17/Sun Dec  2 11:34:34 2001/-ko/Tlinux_2_4_20
+/digiboard.txt/1.8/Thu Oct  5 01:18:40 2000/-ko/Tlinux_2_4_20
+/digiepca.txt/1.4/Mon Aug 28 22:00:11 2000/-ko/Tlinux_2_4_20
+/dnotify.txt/1.3/Wed Jun 13 17:27:36 2001/-ko/Tlinux_2_4_20
+/exception.txt/1.5/Thu Nov 23 02:00:47 2000/-ko/Tlinux_2_4_20
+/floppy.txt/1.3/Tue Aug  8 12:37:17 2000/-ko/Tlinux_2_4_20
+/ftape.txt/1.5/Sat Jan 29 01:41:55 2000/-ko/Tlinux_2_4_20
+/hayes-esp.txt/1.5/Sat Jan 29 01:41:55 2000/-ko/Tlinux_2_4_20
+/highuid.txt/1.2/Tue Aug  8 12:37:17 2000/-ko/Tlinux_2_4_20
+/i810_rng.txt/1.2.2.1/Wed Jun 26 22:34:59 2002/-ko/Tlinux_2_4_20
+/ide.txt/1.10.2.1/Wed Sep 11 12:44:23 2002/-ko/Tlinux_2_4_20
+/initrd.txt/1.3.2.1/Wed Sep 11 12:44:23 2002/-ko/Tlinux_2_4_20
+/ioctl-number.txt/1.21/Thu Aug 23 22:24:20 2001/-ko/Tlinux_2_4_20
+/isapnp.txt/1.4.2.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+/java.txt/1.5/Wed Aug 22 03:23:53 2001/-ko/Tlinux_2_4_20
+/kernel-doc-nano-HOWTO.txt/1.4.2.1/Wed Jun 26 22:34:59 2002/-ko/Tlinux_2_4_20
+/kernel-docs.txt/1.8.2.1/Wed Jun 26 22:34:59 2002/-ko/Tlinux_2_4_20
+/kernel-parameters.txt/1.17.2.3/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
+/kmod.txt/1.4/Sat Feb  5 06:47:03 2000/-ko/Tlinux_2_4_20
+/ldm.txt/1.1.2.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+/locks.txt/1.3/Mon Feb 15 02:15:40 1999/-ko/Tlinux_2_4_20
+/logo.gif/1.1/Wed Mar  4 07:15:06 1998/-kb/Tlinux_2_4_20
+/logo.txt/1.2/Mon Feb 15 02:15:40 1999/-ko/Tlinux_2_4_20
+/magic-number.txt/1.5/Fri Mar  9 20:33:40 2001/-ko/Tlinux_2_4_20
+/mandatory.txt/1.2/Thu May  7 02:55:51 1998/-ko/Tlinux_2_4_20
+/mca.txt/1.6/Fri Mar  9 20:33:40 2001/-ko/Tlinux_2_4_20
+/md.txt/1.3/Tue Aug  8 12:37:17 2000/-ko/Tlinux_2_4_20
+/memory.txt/1.3/Sun Dec  2 11:34:34 2001/-ko/Tlinux_2_4_20
+/mkdev.cciss/1.1/Thu Oct  5 01:18:40 2000/-ko/Tlinux_2_4_20
+/mkdev.ida/1.2/Sat Oct  9 00:00:49 1999/-ko/Tlinux_2_4_20
+/modules.txt/1.8/Fri Mar  9 20:33:40 2001/-ko/Tlinux_2_4_20
+/moxa-smartio/1.2/Tue Aug  8 12:37:17 2000/-ko/Tlinux_2_4_20
+/mtrr.txt/1.7/Wed Jun 13 17:27:36 2001/-ko/Tlinux_2_4_20
+/nbd.txt/1.3.4.1/Wed Jun 26 22:34:59 2002/-ko/Tlinux_2_4_20
+/nfsroot.txt/1.4/Tue Aug 25 09:12:48 1998/-ko/Tlinux_2_4_20
+/nmi_watchdog.txt/1.4/Fri Oct 19 01:23:29 2001/-ko/Tlinux_2_4_20
+/oops-tracing.txt/1.10/Mon Nov 19 13:53:59 2001/-ko/Tlinux_2_4_20
+/paride.txt/1.6/Wed Feb 16 01:07:26 2000/-ko/Tlinux_2_4_20
+/parport-lowlevel.txt/1.1/Thu Mar  2 02:36:48 2000/-ko/Tlinux_2_4_20
+/parport.txt/1.18/Sun Dec  2 11:34:34 2001/-ko/Tlinux_2_4_20
+/pci.txt/1.15.2.2/Wed Jun 26 22:34:59 2002/-ko/Tlinux_2_4_20
+/pcwd-watchdog.txt/1.2/Tue Sep 28 22:25:32 1999/-ko/Tlinux_2_4_20
+/pm.txt/1.4.2.1/Sat Dec 29 05:37:47 2001/-ko/Tlinux_2_4_20
+/ramdisk.txt/1.3/Tue Aug 25 09:12:49 1998/-ko/Tlinux_2_4_20
+/riscom8.txt/1.3/Thu May  7 02:55:54 1998/-ko/Tlinux_2_4_20
+/rtc.txt/1.5/Thu Jun 14 04:23:45 2001/-ko/Tlinux_2_4_20
+/scsi-generic.txt/1.7.2.2/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
+/scsi.txt/1.2.6.2/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
+/serial-console.txt/1.6/Mon Jun 19 22:45:38 2000/-ko/Tlinux_2_4_20
+/sgi-visws.txt/1.1/Mon Feb 15 02:15:42 1999/-ko/Tlinux_2_4_20
+/smart-config.txt/1.3/Sat Oct  9 00:00:49 1999/-ko/Tlinux_2_4_20
+/smp.tex/1.3/Tue Aug 25 09:12:50 1998/-ko/Tlinux_2_4_20
+/smp.txt/1.1/Mon Feb 15 02:15:42 1999/-ko/Tlinux_2_4_20
+/sonypi.txt/1.3.2.3/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
+/specialix.txt/1.3/Sun Jan  3 17:50:00 1999/-ko/Tlinux_2_4_20
+/spinlocks.txt/1.3/Tue Aug 25 09:12:50 1998/-ko/Tlinux_2_4_20
+/stallion.txt/1.9/Tue Aug  8 12:37:17 2000/-ko/Tlinux_2_4_20
+/svga.txt/1.5/Thu Jun 17 13:25:15 1999/-ko/Tlinux_2_4_20
+/sx.txt/1.3/Fri Apr 28 01:09:26 2000/-ko/Tlinux_2_4_20
+/sysrq.txt/1.11.2.1/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
+/unicode.txt/1.2/Thu May  7 02:55:58 1998/-ko/Tlinux_2_4_20
+/watchdog-api.txt/1.1.2.1/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
+/watchdog.txt/1.6/Fri Oct 19 01:23:29 2001/-ko/Tlinux_2_4_20
+/xterm-linux.xpm/1.1.1.1/Sun Jun  1 03:17:48 1997/-ko/Tlinux_2_4_20
+/zorro.txt/1.2/Thu Nov 23 02:00:47 2000/-ko/Tlinux_2_4_20
+D/BK-usage////
+D/DocBook////
+D/arm////
+D/cdrom////
+D/cris////
+D/fb////
+D/filesystems////
+D/i2c////
+D/i386////
+D/ia64////
+D/input////
+D/isdn////
+D/kbuild////
+D/m68k////
+D/mips////
+D/networking////
+D/parisc////
+D/power////
+D/powerpc////
+D/s390////
+D/sound////
+D/sparc////
+D/sysctl////
+D/telephony////
+D/usb////
+D/video4linux////
+D/vm////
+D/x86_64////
diff -urNd -urNd linux-2.4.20/Documentation/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/CVS/Repository
--- linux-2.4.20/Documentation/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/CVS/Repository	2005-01-06 22:58:27.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation
diff -urNd -urNd linux-2.4.20/Documentation/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/CVS/Root
--- linux-2.4.20/Documentation/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/CVS/Root	2005-01-06 22:58:27.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/CVS/Tag
--- linux-2.4.20/Documentation/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/CVS/Tag	2005-01-06 22:58:42.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/DocBook/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/DocBook/CVS/Entries
--- linux-2.4.20/Documentation/DocBook/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/DocBook/CVS/Entries	2005-01-06 23:08:28.000000000 -0600
@@ -0,0 +1,21 @@
+/Makefile/1.21.2.2/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+/deviceiobook.tmpl/1.2/Thu Jun 14 04:23:45 2001/-ko/Tlinux_2_4_20
+/journal-api.tmpl/1.1.2.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+/kernel-api.tmpl/1.14.2.1/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
+/kernel-hacking.tmpl/1.6.2.3/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+/kernel-locking.tmpl/1.7.2.1/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
+/mcabook.tmpl/1.1/Sun Mar 19 01:28:42 2000/-ko/Tlinux_2_4_20
+/mousedrivers.tmpl/1.3/Mon Nov  5 20:15:20 2001/-ko/Tlinux_2_4_20
+/parport-multi.fig/1.1/Sun Mar 19 01:28:42 2000/-ko/Tlinux_2_4_20
+/parport-share.fig/1.1/Sun Mar 19 01:28:42 2000/-ko/Tlinux_2_4_20
+/parport-structure.fig/1.1/Sun Mar 19 01:28:42 2000/-ko/Tlinux_2_4_20
+/parportbook.tmpl/1.8.2.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+/procfs-guide.tmpl/1.2/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
+/procfs_example.c/1.1/Wed Aug 22 03:23:53 2001/-ko/Tlinux_2_4_20
+/sis900.tmpl/1.1.2.1/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
+/tulip-user.tmpl/1.2/Mon Nov  5 20:15:20 2001/-ko/Tlinux_2_4_20
+/via-audio.tmpl/1.4.2.1/Sat Dec 29 05:37:47 2001/-ko/Tlinux_2_4_20
+/videobook.tmpl/1.6/Thu Aug 23 22:24:20 2001/-ko/Tlinux_2_4_20
+/wanbook.tmpl/1.1/Sun Mar 19 01:28:42 2000/-ko/Tlinux_2_4_20
+/z8530book.tmpl/1.2/Thu Jan 11 04:02:41 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/Documentation/DocBook/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/DocBook/CVS/Repository
--- linux-2.4.20/Documentation/DocBook/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/DocBook/CVS/Repository	2005-01-06 22:58:42.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/DocBook
diff -urNd -urNd linux-2.4.20/Documentation/DocBook/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/DocBook/CVS/Root
--- linux-2.4.20/Documentation/DocBook/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/DocBook/CVS/Root	2005-01-06 22:58:42.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/DocBook/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/DocBook/CVS/Tag
--- linux-2.4.20/Documentation/DocBook/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/DocBook/CVS/Tag	2005-01-06 22:58:44.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/fb/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/fb/CVS/Entries
--- linux-2.4.20/Documentation/fb/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/fb/CVS/Entries	2005-01-06 22:58:47.000000000 -0600
@@ -0,0 +1,14 @@
+/00-INDEX/1.4/Thu Aug 23 22:24:20 2001/-ko/Tlinux_2_4_20
+/README-sstfb.txt/1.1.2.1/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
+/aty128fb.txt/1.2/Tue Aug  8 12:37:17 2000/-ko/Tlinux_2_4_20
+/clgenfb.txt/1.4/Sun Dec  2 11:34:34 2001/-ko/Tlinux_2_4_20
+/framebuffer.txt/1.8/Thu Jun 14 04:23:45 2001/-ko/Tlinux_2_4_20
+/internals.txt/1.3/Sat Oct  9 00:00:49 1999/-ko/Tlinux_2_4_20
+/matroxfb.txt/1.9.2.1/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
+/modedb.txt/1.2/Fri Jun 16 23:00:36 2000/-ko/Tlinux_2_4_20
+/pvr2fb.txt/1.1/Thu Aug 23 22:24:20 2001/-ko/Tlinux_2_4_20
+/sa1100fb.txt/1.1/Thu Oct  5 01:18:41 2000/-ko/Tlinux_2_4_20
+/tgafb.txt/1.3/Fri Apr 28 01:09:26 2000/-ko/Tlinux_2_4_20
+/tridentfb.txt/1.1.2.2/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
+/vesafb.txt/1.5/Tue Aug  8 12:37:17 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/Documentation/fb/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/fb/CVS/Repository
--- linux-2.4.20/Documentation/fb/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/fb/CVS/Repository	2005-01-06 22:58:47.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/fb
diff -urNd -urNd linux-2.4.20/Documentation/fb/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/fb/CVS/Root
--- linux-2.4.20/Documentation/fb/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/fb/CVS/Root	2005-01-06 22:58:47.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/fb/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/fb/CVS/Tag
--- linux-2.4.20/Documentation/fb/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/fb/CVS/Tag	2005-01-06 22:58:47.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/filesystems/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/filesystems/CVS/Entries
--- linux-2.4.20/Documentation/filesystems/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/filesystems/CVS/Entries	2005-01-06 23:08:27.000000000 -0600
@@ -0,0 +1,26 @@
+/00-INDEX/1.11.2.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+/Locking/1.4.2.3/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+/adfs.txt/1.1/Sun Jun 13 16:29:39 1999/-ko/Tlinux_2_4_20
+/affs.txt/1.7/Tue Aug  8 12:37:17 2000/-ko/Tlinux_2_4_20
+/befs.txt/1.1.2.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+/bfs.txt/1.3/Mon Jun 19 22:45:38 2000/-ko/Tlinux_2_4_20
+/coda.txt/1.6/Tue Aug  8 12:37:17 2000/-ko/Tlinux_2_4_20
+/cramfs.txt/1.4.2.1/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
+/ext2.txt/1.3/Thu Aug 23 22:24:20 2001/-ko/Tlinux_2_4_20
+/fat_cvf.txt/1.6/Mon Nov  5 20:15:20 2001/-ko/Tlinux_2_4_20
+/hpfs.txt/1.5/Wed Aug 22 03:23:53 2001/-ko/Tlinux_2_4_20
+/isofs.txt/1.3.4.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+/jfs.txt/1.1.2.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+/ncpfs.txt/1.2/Tue Aug 25 09:12:59 1998/-ko/Tlinux_2_4_20
+/ntfs.txt/1.9.2.1/Sat Dec 29 05:37:47 2001/-ko/Tlinux_2_4_20
+/proc.txt/1.8.2.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+/romfs.txt/1.4/Tue Aug 25 09:12:59 1998/-ko/Tlinux_2_4_20
+/smbfs.txt/1.7/Fri Jan 21 22:34:02 2000/-ko/Tlinux_2_4_20
+/sysv-fs.txt/1.2/Tue Mar  3 01:22:29 1998/-ko/Tlinux_2_4_20
+/tmpfs.txt/1.1.2.1/Sat Dec 29 05:37:47 2001/-ko/Tlinux_2_4_20
+/udf.txt/1.5/Tue Nov  6 00:54:52 2001/-ko/Tlinux_2_4_20
+/ufs.txt/1.3/Tue Aug  8 12:37:17 2000/-ko/Tlinux_2_4_20
+/umsdos.txt/1.3/Sat Sep 19 19:15:14 1998/-ko/Tlinux_2_4_20
+/vfat.txt/1.9/Tue Nov  6 07:55:44 2001/-ko/Tlinux_2_4_20
+/vfs.txt/1.11/Tue Aug  8 12:37:17 2000/-ko/Tlinux_2_4_20
+D/devfs////
diff -urNd -urNd linux-2.4.20/Documentation/filesystems/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/filesystems/CVS/Repository
--- linux-2.4.20/Documentation/filesystems/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/filesystems/CVS/Repository	2005-01-06 22:58:47.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/filesystems
diff -urNd -urNd linux-2.4.20/Documentation/filesystems/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/filesystems/CVS/Root
--- linux-2.4.20/Documentation/filesystems/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/filesystems/CVS/Root	2005-01-06 22:58:47.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/filesystems/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/filesystems/CVS/Tag
--- linux-2.4.20/Documentation/filesystems/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/filesystems/CVS/Tag	2005-01-06 22:58:49.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/filesystems/devfs/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/filesystems/devfs/CVS/Entries
--- linux-2.4.20/Documentation/filesystems/devfs/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/filesystems/devfs/CVS/Entries	2005-01-06 22:58:49.000000000 -0600
@@ -0,0 +1,5 @@
+/ChangeLog/1.14.2.4/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+/README/1.10.2.5/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+/ToDo/1.3/Tue Nov  6 00:54:52 2001/-ko/Tlinux_2_4_20
+/boot-options/1.3/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/Documentation/filesystems/devfs/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/filesystems/devfs/CVS/Repository
--- linux-2.4.20/Documentation/filesystems/devfs/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/filesystems/devfs/CVS/Repository	2005-01-06 22:58:49.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/filesystems/devfs
diff -urNd -urNd linux-2.4.20/Documentation/filesystems/devfs/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/filesystems/devfs/CVS/Root
--- linux-2.4.20/Documentation/filesystems/devfs/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/filesystems/devfs/CVS/Root	2005-01-06 22:58:49.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/filesystems/devfs/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/filesystems/devfs/CVS/Tag
--- linux-2.4.20/Documentation/filesystems/devfs/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/filesystems/devfs/CVS/Tag	2005-01-06 22:58:49.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/i2c/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/i2c/CVS/Entries
--- linux-2.4.20/Documentation/i2c/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/i2c/CVS/Entries	2005-01-06 22:58:49.000000000 -0600
@@ -0,0 +1,9 @@
+/dev-interface/1.4/Tue Nov  6 00:54:52 2001/-ko/Tlinux_2_4_20
+/functionality/1.1/Wed Jan 10 17:17:53 2001/-ko/Tlinux_2_4_20
+/i2c-protocol/1.3/Tue Aug  8 12:37:17 2000/-ko/Tlinux_2_4_20
+/proc-interface/1.1/Sat Feb  5 06:47:04 2000/-ko/Tlinux_2_4_20
+/smbus-protocol/1.2/Fri Mar  9 20:33:40 2001/-ko/Tlinux_2_4_20
+/summary/1.2/Tue Nov  6 00:54:52 2001/-ko/Tlinux_2_4_20
+/ten-bit-addresses/1.1/Sat Feb  5 06:47:04 2000/-ko/Tlinux_2_4_20
+/writing-clients/1.4/Tue Nov  6 00:54:52 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/Documentation/i2c/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/i2c/CVS/Repository
--- linux-2.4.20/Documentation/i2c/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/i2c/CVS/Repository	2005-01-06 22:58:49.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/i2c
diff -urNd -urNd linux-2.4.20/Documentation/i2c/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/i2c/CVS/Root
--- linux-2.4.20/Documentation/i2c/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/i2c/CVS/Root	2005-01-06 22:58:49.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/i2c/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/i2c/CVS/Tag
--- linux-2.4.20/Documentation/i2c/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/i2c/CVS/Tag	2005-01-06 22:58:49.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/i386/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/i386/CVS/Entries
--- linux-2.4.20/Documentation/i386/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/i386/CVS/Entries	2005-01-06 22:58:50.000000000 -0600
@@ -0,0 +1,4 @@
+/IO-APIC.txt/1.2/Mon Aug 28 22:00:11 2000/-ko/Tlinux_2_4_20
+/boot.txt/1.4.2.1/Tue Feb 26 05:58:57 2002/-ko/Tlinux_2_4_20
+/zero-page.txt/1.2/Sat Oct  9 00:00:49 1999/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/Documentation/i386/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/i386/CVS/Repository
--- linux-2.4.20/Documentation/i386/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/i386/CVS/Repository	2005-01-06 22:58:49.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/i386
diff -urNd -urNd linux-2.4.20/Documentation/i386/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/i386/CVS/Root
--- linux-2.4.20/Documentation/i386/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/i386/CVS/Root	2005-01-06 22:58:49.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/i386/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/i386/CVS/Tag
--- linux-2.4.20/Documentation/i386/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/i386/CVS/Tag	2005-01-06 22:58:50.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/ia64/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/ia64/CVS/Entries
--- linux-2.4.20/Documentation/ia64/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/ia64/CVS/Entries	2005-01-06 22:58:50.000000000 -0600
@@ -0,0 +1,4 @@
+/IRQ-redir.txt/1.1.2.1/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
+/README/1.4/Thu Nov 23 02:00:47 2000/-ko/Tlinux_2_4_20
+/efirtc.txt/1.3/Fri Mar  9 20:33:40 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/Documentation/ia64/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/ia64/CVS/Repository
--- linux-2.4.20/Documentation/ia64/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/ia64/CVS/Repository	2005-01-06 22:58:50.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/ia64
diff -urNd -urNd linux-2.4.20/Documentation/ia64/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/ia64/CVS/Root
--- linux-2.4.20/Documentation/ia64/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/ia64/CVS/Root	2005-01-06 22:58:50.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/ia64/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/ia64/CVS/Tag
--- linux-2.4.20/Documentation/ia64/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/ia64/CVS/Tag	2005-01-06 22:58:50.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/input/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/input/CVS/Entries
--- linux-2.4.20/Documentation/input/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/input/CVS/Entries	2005-01-06 22:58:50.000000000 -0600
@@ -0,0 +1,9 @@
+/cs461x.txt/1.1/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
+/ff.txt/1.1/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
+/gameport-programming.txt/1.1/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
+/input-programming.txt/1.1/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
+/input.txt/1.1/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
+/joystick-api.txt/1.1/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
+/joystick-parport.txt/1.1/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
+/joystick.txt/1.1/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/Documentation/input/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/input/CVS/Repository
--- linux-2.4.20/Documentation/input/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/input/CVS/Repository	2005-01-06 22:58:50.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/input
diff -urNd -urNd linux-2.4.20/Documentation/input/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/input/CVS/Root
--- linux-2.4.20/Documentation/input/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/input/CVS/Root	2005-01-06 22:58:50.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/input/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/input/CVS/Tag
--- linux-2.4.20/Documentation/input/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/input/CVS/Tag	2005-01-06 22:58:50.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/isdn/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/isdn/CVS/Entries
--- linux-2.4.20/Documentation/isdn/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/isdn/CVS/Entries	2005-01-06 22:58:51.000000000 -0600
@@ -0,0 +1,24 @@
+/00-INDEX/1.7/Thu Apr  5 04:56:07 2001/-ko/Tlinux_2_4_20
+/CREDITS/1.7/Thu Feb 24 00:12:36 2000/-ko/Tlinux_2_4_20
+/HiSax.cert/1.4/Fri Aug 24 03:38:27 2001/-ko/Tlinux_2_4_20
+/INTERFACE/1.7.2.1/Sat Dec 29 05:37:47 2001/-ko/Tlinux_2_4_20
+/INTERFACE.fax/1.4.2.1/Sat Dec 29 05:37:47 2001/-ko/Tlinux_2_4_20
+/README/1.12/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
+/README.FAQ/1.1/Sat Jan 29 01:41:55 2000/-ko/Tlinux_2_4_20
+/README.HiSax/1.12.2.2/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+/README.act2000/1.5.4.1/Sat Dec 29 05:37:47 2001/-ko/Tlinux_2_4_20
+/README.audio/1.6.4.1/Sat Dec 29 05:37:47 2001/-ko/Tlinux_2_4_20
+/README.avmb1/1.5/Tue Aug  8 12:37:17 2000/-ko/Tlinux_2_4_20
+/README.concap/1.5/Tue Aug  8 12:37:17 2000/-ko/Tlinux_2_4_20
+/README.diversion/1.4/Fri Mar  9 20:33:40 2001/-ko/Tlinux_2_4_20
+/README.eicon/1.8.2.1/Sat Dec 29 05:37:47 2001/-ko/Tlinux_2_4_20
+/README.fax/1.4/Mon Aug 28 22:00:11 2000/-ko/Tlinux_2_4_20
+/README.hfc-pci/1.4/Fri Mar  9 20:33:40 2001/-ko/Tlinux_2_4_20
+/README.hysdn/1.5.2.1/Sat Dec 29 05:37:47 2001/-ko/Tlinux_2_4_20
+/README.icn/1.7.4.1/Sat Dec 29 05:37:47 2001/-ko/Tlinux_2_4_20
+/README.pcbit/1.3/Sat Jan 29 01:41:56 2000/-ko/Tlinux_2_4_20
+/README.sc/1.3/Tue Aug  8 12:37:17 2000/-ko/Tlinux_2_4_20
+/README.syncppp/1.1.1.1/Sun Jun  1 03:17:48 1997/-ko/Tlinux_2_4_20
+/README.x25/1.4/Thu Feb 24 00:12:36 2000/-ko/Tlinux_2_4_20
+/syncPPP.FAQ/1.2/Thu May  7 02:56:11 1998/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/Documentation/isdn/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/isdn/CVS/Repository
--- linux-2.4.20/Documentation/isdn/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/isdn/CVS/Repository	2005-01-06 22:58:50.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/isdn
diff -urNd -urNd linux-2.4.20/Documentation/isdn/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/isdn/CVS/Root
--- linux-2.4.20/Documentation/isdn/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/isdn/CVS/Root	2005-01-06 22:58:50.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/isdn/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/isdn/CVS/Tag
--- linux-2.4.20/Documentation/isdn/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/isdn/CVS/Tag	2005-01-06 22:58:51.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/kbuild/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/kbuild/CVS/Entries
--- linux-2.4.20/Documentation/kbuild/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/kbuild/CVS/Entries	2005-01-06 22:58:51.000000000 -0600
@@ -0,0 +1,6 @@
+/00-INDEX/1.2/Thu Oct  5 01:18:41 2000/-ko/Tlinux_2_4_20
+/bug-list.txt/1.1/Sun Jun 13 16:29:41 1999/-ko/Tlinux_2_4_20
+/commands.txt/1.2/Tue Aug  8 12:37:17 2000/-ko/Tlinux_2_4_20
+/config-language.txt/1.8.4.1/Tue Feb 26 05:58:57 2002/-ko/Tlinux_2_4_20
+/makefiles.txt/1.5.2.1/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/Documentation/kbuild/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/kbuild/CVS/Repository
--- linux-2.4.20/Documentation/kbuild/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/kbuild/CVS/Repository	2005-01-06 22:58:51.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/kbuild
diff -urNd -urNd linux-2.4.20/Documentation/kbuild/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/kbuild/CVS/Root
--- linux-2.4.20/Documentation/kbuild/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/kbuild/CVS/Root	2005-01-06 22:58:51.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/kbuild/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/kbuild/CVS/Tag
--- linux-2.4.20/Documentation/kbuild/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/kbuild/CVS/Tag	2005-01-06 22:58:51.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/m68k/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/m68k/CVS/Entries
--- linux-2.4.20/Documentation/m68k/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/m68k/CVS/Entries	2005-01-06 22:58:51.000000000 -0600
@@ -0,0 +1,4 @@
+/00-INDEX/1.2/Sat Dec  6 23:51:45 1997/-ko/Tlinux_2_4_20
+/README.buddha/1.2/Tue Aug  8 12:37:17 2000/-ko/Tlinux_2_4_20
+/kernel-options.txt/1.7/Tue Aug  8 12:37:17 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/Documentation/m68k/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/m68k/CVS/Repository
--- linux-2.4.20/Documentation/m68k/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/m68k/CVS/Repository	2005-01-06 22:58:51.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/m68k
diff -urNd -urNd linux-2.4.20/Documentation/m68k/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/m68k/CVS/Root
--- linux-2.4.20/Documentation/m68k/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/m68k/CVS/Root	2005-01-06 22:58:51.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/m68k/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/m68k/CVS/Tag
--- linux-2.4.20/Documentation/m68k/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/m68k/CVS/Tag	2005-01-06 22:58:51.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/mips/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/mips/CVS/Entries
--- linux-2.4.20/Documentation/mips/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/mips/CVS/Entries	2005-01-06 23:08:27.000000000 -0600
@@ -0,0 +1,3 @@
+/GT64120.README/1.1/Mon Feb  5 01:33:01 2001/-ko/Tlinux_2_4_20
+/time.README/1.1.2.1/Mon Sep  2 15:16:20 2002/-ko/Tlinux_2_4_20
+D/pci////
diff -urNd -urNd linux-2.4.20/Documentation/mips/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/mips/CVS/Repository
--- linux-2.4.20/Documentation/mips/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/mips/CVS/Repository	2005-01-06 22:58:51.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/mips
diff -urNd -urNd linux-2.4.20/Documentation/mips/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/mips/CVS/Root
--- linux-2.4.20/Documentation/mips/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/mips/CVS/Root	2005-01-06 22:58:51.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/mips/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/mips/CVS/Tag
--- linux-2.4.20/Documentation/mips/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/mips/CVS/Tag	2005-01-06 22:58:51.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/mips/pci/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/mips/pci/CVS/Entries
--- linux-2.4.20/Documentation/mips/pci/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/mips/pci/CVS/Entries	2005-01-06 22:58:51.000000000 -0600
@@ -0,0 +1,2 @@
+/pci.README/1.1/Sat Aug 18 14:19:34 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/Documentation/mips/pci/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/mips/pci/CVS/Repository
--- linux-2.4.20/Documentation/mips/pci/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/mips/pci/CVS/Repository	2005-01-06 22:58:51.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/mips/pci
diff -urNd -urNd linux-2.4.20/Documentation/mips/pci/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/mips/pci/CVS/Root
--- linux-2.4.20/Documentation/mips/pci/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/mips/pci/CVS/Root	2005-01-06 22:58:51.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/mips/pci/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/mips/pci/CVS/Tag
--- linux-2.4.20/Documentation/mips/pci/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/mips/pci/CVS/Tag	2005-01-06 22:58:51.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/mips/time.README linux-2.4.20-mipscvs-20050106/Documentation/mips/time.README
--- linux-2.4.20/Documentation/mips/time.README	2001-04-20 18:23:12.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/Documentation/mips/time.README	2002-09-02 10:16:20.000000000 -0500
@@ -103,9 +103,9 @@
      Do you plan to use the CPU counter register as the timer interrupt
      or use an exnternal timer?
 
-     In order to CPU counter register as the timer interrupt source, you must
-     know the counter speed (mips_counter_frequency).  It is usually the
-     same as the CPU speed (Or it is ALWAYS the same?)
+     In order to use CPU counter register as the timer interrupt source, you 
+     must know the counter speed (mips_counter_frequency).  It is usually the
+     same as the CPU speed or an integral divisor of it.
 
   d) decide on whether you want to use high-level or low-level timer
      interrupt routines.  The low-level one is presumably faster, but should
@@ -154,8 +154,45 @@
 for some of the functions in time.c.  
 
 For example, you may define your own timer interrupt routine, which does
-its own processing and in turn calls timer_interrupt().
+some of its own processing and then calls timer_interrupt().
 
 You can also over-ride any of the built-in functions (gettimeoffset,
 RTC routines and/or timer interrupt routine).
 
+
+PORTING NOTES FOR SMP
+----------------------
+
+If you have a SMP box, things are slightly more complicated.  
+
+The time service running every jiffy is logically divided into two parts:
+
+  1) the one for the whole system  (defined in timer_interrupt())
+  2) the one that should run for each CPU (defined in local_timer_interrupt())
+
+You need to decide on your timer interrupt sources.
+
+  case 1) - whole system has only one timer interrupt delivered to one CPU
+
+	In this case, you set up timer interrupt as in UP systems.  In addtion,
+	you need to set emulate_local_timer_interrupt to 1 so that other
+	CPUs get to call local_timer_interrupt().
+
+	THIS IS CURRENTLY NOT IMPLEMNETED.  However, it is rather easy to write
+	one should such a need arise.  You simply make a IPI call.
+
+  case 2) - each CPU has a separate timer interrupt
+
+	In this case, you need to set up IRQ such that each of them will
+	call local_timer_interrupt().  In addition, you need to arrange
+	one and only one of them to call timer_interrupt().
+
+	You can also do the low-level version of those interrupt routines,
+	following similar dispatching routes described above.
+
+Note about do_gettimeoffset():
+  
+  It is very likely the CPU counter registers are not sync'ed up in a SMP box.
+  Therefore you cannot really use the many of the existing routines that
+  are based on CPU counter.  You should wirte your own gettimeoffset rouinte
+  if you want intra-jiffy resolution.
diff -urNd -urNd linux-2.4.20/Documentation/networking/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/networking/CVS/Entries
--- linux-2.4.20/Documentation/networking/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/networking/CVS/Entries	2005-01-06 23:08:27.000000000 -0600
@@ -0,0 +1,79 @@
+/00-INDEX/1.6.2.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+/3c359.txt/1.1.2.1/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
+/3c505.txt/1.1.1.1/Sun Jun  1 03:17:49 1997/-ko/Tlinux_2_4_20
+/3c509.txt/1.1.2.1/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
+/6pack.txt/1.2/Mon Feb 15 02:15:47 1999/-ko/Tlinux_2_4_20
+/8139too.txt/1.14.2.3/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+/Configurable/1.3/Sat Oct  9 00:00:49 1999/-ko/Tlinux_2_4_20
+/DLINK.txt/1.4/Sat Oct  9 00:00:49 1999/-ko/Tlinux_2_4_20
+/NAPI_HOWTO.txt/1.1.2.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+/PLIP.txt/1.4/Sat Oct  9 00:00:49 1999/-ko/Tlinux_2_4_20
+/README.sb1000/1.3/Tue Aug  8 12:37:18 2000/-ko/Tlinux_2_4_20
+/TODO/1.2/Wed Aug 22 03:23:54 2001/-ko/Tlinux_2_4_20
+/alias.txt/1.4/Wed Aug 22 03:23:54 2001/-ko/Tlinux_2_4_20
+/arcnet-hardware.txt/1.8.4.1/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
+/arcnet.txt/1.6/Mon Aug 28 22:00:11 2000/-ko/Tlinux_2_4_20
+/atm.txt/1.1/Wed Feb 23 00:40:55 2000/-ko/Tlinux_2_4_20
+/ax25.txt/1.3/Mon Aug 28 22:00:11 2000/-ko/Tlinux_2_4_20
+/baycom.txt/1.5/Sat Jan 29 01:41:56 2000/-ko/Tlinux_2_4_20
+/bonding.txt/1.1.2.1/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
+/bridge.txt/1.2/Tue Nov 28 03:58:46 2000/-ko/Tlinux_2_4_20
+/comx.txt/1.3.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
+/cops.txt/1.5/Thu Jun 14 04:23:45 2001/-ko/Tlinux_2_4_20
+/cs89x0.txt/1.10.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
+/de4x5.txt/1.5/Mon Feb 15 02:15:48 1999/-ko/Tlinux_2_4_20
+/decnet.txt/1.8.2.1/Sat Dec 29 05:37:48 2001/-ko/Tlinux_2_4_20
+/depca.txt/1.1/Tue Mar 17 22:06:08 1998/-ko/Tlinux_2_4_20
+/dgrs.txt/1.3/Sat Oct  9 00:00:49 1999/-ko/Tlinux_2_4_20
+/dl2k.txt/1.3.2.3/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+/dmfe.txt/1.3/Tue Aug  8 12:37:18 2000/-ko/Tlinux_2_4_20
+/driver.txt/1.1.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
+/e100.txt/1.1.2.2/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
+/e1000.txt/1.1.2.2/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
+/eql.txt/1.3/Tue Aug 25 09:13:05 1998/-ko/Tlinux_2_4_20
+/ethertap.txt/1.8/Thu Jun 14 04:23:45 2001/-ko/Tlinux_2_4_20
+/ewrk3.txt/1.2.6.1/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
+/filter.txt/1.6/Thu Jun 14 04:23:45 2001/-ko/Tlinux_2_4_20
+/fore200e.txt/1.2/Fri Apr 28 01:09:27 2000/-ko/Tlinux_2_4_20
+/framerelay.txt/1.2/Tue Aug 25 09:13:06 1998/-ko/Tlinux_2_4_20
+/ifenslave.c/1.1.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
+/ip-sysctl.txt/1.17.2.2/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
+/ip_dynaddr.txt/1.1/Thu May  7 02:56:18 1998/-ko/Tlinux_2_4_20
+/ipddp.txt/1.6/Thu Jun 14 04:23:45 2001/-ko/Tlinux_2_4_20
+/iphase.txt/1.2/Tue Aug  8 12:37:18 2000/-ko/Tlinux_2_4_20
+/irda.txt/1.3/Wed Jan 10 05:27:25 2001/-ko/Tlinux_2_4_20
+/khttpd.txt/1.1.2.1/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
+/lapb-module.txt/1.5/Tue Nov 28 03:58:46 2000/-ko/Tlinux_2_4_20
+/ltpc.txt/1.4/Sat Jan 29 01:41:56 2000/-ko/Tlinux_2_4_20
+/multicast.txt/1.6/Sun Dec  2 11:34:34 2001/-ko/Tlinux_2_4_20
+/ncsa-telnet/1.1.1.1/Sun Jun  1 03:17:49 1997/-ko/Tlinux_2_4_20
+/net-modules.txt/1.3/Thu May  7 02:56:20 1998/-ko/Tlinux_2_4_20
+/netdevices.txt/1.1/Tue Nov 28 03:58:46 2000/-ko/Tlinux_2_4_20
+/olympic.txt/1.4/Wed Jun 13 17:27:36 2001/-ko/Tlinux_2_4_20
+/pktgen.txt/1.1.2.2/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+/policy-routing.txt/1.4/Tue Sep 28 22:25:35 1999/-ko/Tlinux_2_4_20
+/ppp_generic.txt/1.1.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
+/pt.txt/1.3/Sun Jun 13 16:29:44 1999/-ko/Tlinux_2_4_20
+/ray_cs.txt/1.1/Sat Dec  4 03:58:58 1999/-ko/Tlinux_2_4_20
+/routing.txt/1.4/Sun Jun 13 16:29:45 1999/-ko/Tlinux_2_4_20
+/shaper.txt/1.4/Tue Aug  8 12:37:18 2000/-ko/Tlinux_2_4_20
+/sis900.txt/1.5/Wed Jan 10 17:17:53 2001/-ko/Tlinux_2_4_20
+/sk98lin.txt/1.5/Wed Aug 22 03:23:54 2001/-ko/Tlinux_2_4_20
+/skfp.txt/1.2.4.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
+/slicecom.hun/1.1.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
+/slicecom.txt/1.1.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
+/smc9.txt/1.2/Fri Mar  9 20:33:41 2001/-ko/Tlinux_2_4_20
+/smctr.txt/1.4/Thu Jun 14 04:23:45 2001/-ko/Tlinux_2_4_20
+/soundmodem.txt/1.5/Sat Jan 29 01:41:56 2000/-ko/Tlinux_2_4_20
+/tcp.txt/1.1.1.1/Sun Jun  1 03:17:49 1997/-ko/Tlinux_2_4_20
+/tlan.txt/1.7/Thu Apr  5 04:56:07 2001/-ko/Tlinux_2_4_20
+/tms380tr.txt/1.3/Thu Jun 14 04:23:45 2001/-ko/Tlinux_2_4_20
+/tuntap.txt/1.3.2.1/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
+/vortex.txt/1.10.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
+/wan-router.txt/1.8/Wed Jun 13 17:27:36 2001/-ko/Tlinux_2_4_20
+/wanpipe.txt/1.6/Wed Jun 13 17:27:36 2001/-ko/Tlinux_2_4_20
+/wavelan.txt/1.6/Tue Aug  8 12:37:18 2000/-ko/Tlinux_2_4_20
+/x25-iface.txt/1.3/Tue Nov 28 03:58:46 2000/-ko/Tlinux_2_4_20
+/x25.txt/1.4/Mon Aug 28 22:00:11 2000/-ko/Tlinux_2_4_20
+/z8530drv.txt/1.7/Thu Nov 23 02:00:47 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/Documentation/networking/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/networking/CVS/Repository
--- linux-2.4.20/Documentation/networking/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/networking/CVS/Repository	2005-01-06 22:58:51.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/networking
diff -urNd -urNd linux-2.4.20/Documentation/networking/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/networking/CVS/Root
--- linux-2.4.20/Documentation/networking/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/networking/CVS/Root	2005-01-06 22:58:51.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/networking/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/networking/CVS/Tag
--- linux-2.4.20/Documentation/networking/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/networking/CVS/Tag	2005-01-06 22:58:55.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/parisc/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/parisc/CVS/Entries
--- linux-2.4.20/Documentation/parisc/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/parisc/CVS/Entries	2005-01-06 22:58:55.000000000 -0600
@@ -0,0 +1,5 @@
+/00-INDEX/1.1.2.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+/IODC.txt/1.1/Wed Jan 10 05:27:25 2001/-ko/Tlinux_2_4_20
+/debugging/1.1/Wed Jan 10 05:27:25 2001/-ko/Tlinux_2_4_20
+/registers/1.2.2.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/Documentation/parisc/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/parisc/CVS/Repository
--- linux-2.4.20/Documentation/parisc/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/parisc/CVS/Repository	2005-01-06 22:58:55.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/parisc
diff -urNd -urNd linux-2.4.20/Documentation/parisc/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/parisc/CVS/Root
--- linux-2.4.20/Documentation/parisc/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/parisc/CVS/Root	2005-01-06 22:58:55.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/parisc/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/parisc/CVS/Tag
--- linux-2.4.20/Documentation/parisc/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/parisc/CVS/Tag	2005-01-06 22:58:55.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/power/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/power/CVS/Entries
--- linux-2.4.20/Documentation/power/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/power/CVS/Entries	2005-01-06 22:58:55.000000000 -0600
@@ -0,0 +1,2 @@
+/pci.txt/1.1.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/Documentation/power/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/power/CVS/Repository
--- linux-2.4.20/Documentation/power/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/power/CVS/Repository	2005-01-06 22:58:55.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/power
diff -urNd -urNd linux-2.4.20/Documentation/power/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/power/CVS/Root
--- linux-2.4.20/Documentation/power/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/power/CVS/Root	2005-01-06 22:58:55.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/power/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/power/CVS/Tag
--- linux-2.4.20/Documentation/power/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/power/CVS/Tag	2005-01-06 22:58:55.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/powerpc/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/powerpc/CVS/Entries
--- linux-2.4.20/Documentation/powerpc/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/powerpc/CVS/Entries	2005-01-06 22:58:55.000000000 -0600
@@ -0,0 +1,8 @@
+/00-INDEX/1.6.4.1/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
+/SBC8260_memory_mapping.txt/1.2/Tue Aug  8 12:37:18 2000/-ko/Tlinux_2_4_20
+/cpu_features.txt/1.1.2.1/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
+/ppc_htab.txt/1.5/Thu Apr  5 04:56:07 2001/-ko/Tlinux_2_4_20
+/smp.txt/1.5/Thu Apr  5 04:56:07 2001/-ko/Tlinux_2_4_20
+/sound.txt/1.5/Thu Apr  5 04:56:07 2001/-ko/Tlinux_2_4_20
+/zImage_layout.txt/1.2/Thu Apr  5 04:56:07 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/Documentation/powerpc/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/powerpc/CVS/Repository
--- linux-2.4.20/Documentation/powerpc/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/powerpc/CVS/Repository	2005-01-06 22:58:55.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/powerpc
diff -urNd -urNd linux-2.4.20/Documentation/powerpc/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/powerpc/CVS/Root
--- linux-2.4.20/Documentation/powerpc/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/powerpc/CVS/Root	2005-01-06 22:58:55.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/powerpc/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/powerpc/CVS/Tag
--- linux-2.4.20/Documentation/powerpc/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/powerpc/CVS/Tag	2005-01-06 22:58:55.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/s390/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/s390/CVS/Entries
--- linux-2.4.20/Documentation/s390/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/s390/CVS/Entries	2005-01-06 23:08:27.000000000 -0600
@@ -0,0 +1,11 @@
+/3270.ChangeLog/1.1.2.1/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
+/3270.txt/1.3/Fri Oct 19 01:23:31 2001/-ko/Tlinux_2_4_20
+/CommonIO/1.2/Tue Nov  6 00:54:52 2001/-ko/Tlinux_2_4_20
+/DASD/1.4/Tue Aug  8 12:37:18 2000/-ko/Tlinux_2_4_20
+/Debugging390.txt/1.3.2.1/Tue Feb 26 05:58:57 2002/-ko/Tlinux_2_4_20
+/TAPE/1.2/Fri Aug 24 03:38:27 2001/-ko/Tlinux_2_4_20
+/cds.txt/1.6/Thu Apr  5 04:56:07 2001/-ko/Tlinux_2_4_20
+/chandev.8/1.5/Sun Dec  2 11:34:34 2001/-ko/Tlinux_2_4_20
+/config3270.sh/1.2/Fri Oct 19 01:23:31 2001/-ko/Tlinux_2_4_20
+/s390dbf.txt/1.3/Mon Nov 19 13:53:59 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/Documentation/s390/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/s390/CVS/Repository
--- linux-2.4.20/Documentation/s390/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/s390/CVS/Repository	2005-01-06 22:58:55.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/s390
diff -urNd -urNd linux-2.4.20/Documentation/s390/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/s390/CVS/Root
--- linux-2.4.20/Documentation/s390/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/s390/CVS/Root	2005-01-06 22:58:55.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/s390/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/s390/CVS/Tag
--- linux-2.4.20/Documentation/s390/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/s390/CVS/Tag	2005-01-06 22:58:56.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/sound/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/sound/CVS/Entries
--- linux-2.4.20/Documentation/sound/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/sound/CVS/Entries	2005-01-06 23:08:27.000000000 -0600
@@ -0,0 +1,49 @@
+/AD1816/1.3.4.1/Tue Feb 26 05:58:57 2002/-ko/Tlinux_2_4_20
+/ALS/1.3/Wed Jan 10 17:17:53 2001/-ko/Tlinux_2_4_20
+/AWE32/1.9/Fri Mar  9 20:33:41 2001/-ko/Tlinux_2_4_20
+/AudioExcelDSP16/1.4.4.1/Tue Feb 26 05:58:57 2002/-ko/Tlinux_2_4_20
+/CMI8330/1.6/Wed Jan 10 05:27:25 2001/-ko/Tlinux_2_4_20
+/CMI8338/1.5/Fri Oct 19 01:23:31 2001/-ko/Tlinux_2_4_20
+/CS4232/1.2/Tue Aug 25 09:13:10 1998/-ko/Tlinux_2_4_20
+/ChangeLog.awe/1.2/Sun Jun 13 16:29:47 1999/-ko/Tlinux_2_4_20
+/ChangeLog.multisound/1.4/Mon Jun 21 22:16:06 1999/-ko/Tlinux_2_4_20
+/ESS/1.3/Thu Oct  5 01:18:41 2000/-ko/Tlinux_2_4_20
+/ESS1868/1.3/Thu Oct  5 01:18:41 2000/-ko/Tlinux_2_4_20
+/INSTALL.awe/1.3/Thu Oct  5 01:18:41 2000/-ko/Tlinux_2_4_20
+/Introduction/1.9/Fri Mar  9 20:33:41 2001/-ko/Tlinux_2_4_20
+/MAD16/1.4/Thu Jun 14 04:23:45 2001/-ko/Tlinux_2_4_20
+/Maestro/1.6/Tue Aug  8 12:37:18 2000/-ko/Tlinux_2_4_20
+/Maestro3/1.1.2.1/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
+/MultiSound/1.4/Wed Feb 16 01:07:27 2000/-ko/Tlinux_2_4_20
+/NEWS/1.1.4.1/Tue Feb 26 05:58:57 2002/-ko/Tlinux_2_4_20
+/NM256/1.3/Fri Mar  9 20:33:41 2001/-ko/Tlinux_2_4_20
+/OPL3/1.1/Sun Apr  5 11:23:39 1998/-ko/Tlinux_2_4_20
+/OPL3-SA/1.3/Mon Mar 13 20:55:17 2000/-ko/Tlinux_2_4_20
+/OPL3-SA2/1.6.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
+/Opti/1.5/Thu Jun 14 04:23:45 2001/-ko/Tlinux_2_4_20
+/PAS16/1.2.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
+/PSS/1.2/Tue Aug  8 12:37:18 2000/-ko/Tlinux_2_4_20
+/PSS-updates/1.1/Thu Oct  5 01:18:41 2000/-ko/Tlinux_2_4_20
+/README.OSS/1.6.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
+/README.awe/1.3/Fri Apr 28 01:09:27 2000/-ko/Tlinux_2_4_20
+/README.modules/1.4/Tue Aug  8 12:37:18 2000/-ko/Tlinux_2_4_20
+/README.ymfsb/1.2/Tue Aug  8 12:37:18 2000/-ko/Tlinux_2_4_20
+/SoundPro/1.3/Wed Apr 19 04:00:03 2000/-ko/Tlinux_2_4_20
+/Soundblaster/1.7/Wed Jan 10 17:17:53 2001/-ko/Tlinux_2_4_20
+/Tropez+/1.1/Tue Aug 25 09:13:12 1998/-ko/Tlinux_2_4_20
+/VIA-chipset/1.1/Mon Feb 15 02:15:54 1999/-ko/Tlinux_2_4_20
+/VIBRA16/1.1/Sun Jun 13 16:29:50 1999/-ko/Tlinux_2_4_20
+/WaveArtist/1.1/Fri Oct 19 01:23:31 2001/-ko/Tlinux_2_4_20
+/Wavefront/1.5/Mon Mar 13 20:55:17 2000/-ko/Tlinux_2_4_20
+/btaudio/1.2/Fri Oct 19 01:23:31 2001/-ko/Tlinux_2_4_20
+/cs46xx/1.1/Thu Jun 14 04:23:45 2001/-ko/Tlinux_2_4_20
+/es1370/1.2/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
+/es1371/1.2/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
+/forte/1.1.2.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+/mwave/1.3/Sun Jun 13 16:29:50 1999/-ko/Tlinux_2_4_20
+/rme96xx/1.1.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
+/solo1/1.3/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
+/sonicvibes/1.2/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
+/ultrasound/1.2/Tue Aug 25 09:13:14 1998/-ko/Tlinux_2_4_20
+/vwsnd/1.2/Sat Oct  9 00:00:49 1999/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/Documentation/sound/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/sound/CVS/Repository
--- linux-2.4.20/Documentation/sound/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/sound/CVS/Repository	2005-01-06 22:58:56.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/sound
diff -urNd -urNd linux-2.4.20/Documentation/sound/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/sound/CVS/Root
--- linux-2.4.20/Documentation/sound/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/sound/CVS/Root	2005-01-06 22:58:56.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/sound/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/sound/CVS/Tag
--- linux-2.4.20/Documentation/sound/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/sound/CVS/Tag	2005-01-06 22:58:58.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/sparc/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/sparc/CVS/Entries
--- linux-2.4.20/Documentation/sparc/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/sparc/CVS/Entries	2005-01-06 22:58:58.000000000 -0600
@@ -0,0 +1,2 @@
+/sbus_drivers.txt/1.1/Mon Aug 28 22:00:11 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/Documentation/sparc/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/sparc/CVS/Repository
--- linux-2.4.20/Documentation/sparc/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/sparc/CVS/Repository	2005-01-06 22:58:58.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/sparc
diff -urNd -urNd linux-2.4.20/Documentation/sparc/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/sparc/CVS/Root
--- linux-2.4.20/Documentation/sparc/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/sparc/CVS/Root	2005-01-06 22:58:58.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/sparc/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/sparc/CVS/Tag
--- linux-2.4.20/Documentation/sparc/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/sparc/CVS/Tag	2005-01-06 22:58:58.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/sysctl/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/sysctl/CVS/Entries
--- linux-2.4.20/Documentation/sysctl/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/sysctl/CVS/Entries	2005-01-06 22:58:58.000000000 -0600
@@ -0,0 +1,6 @@
+/README/1.7/Tue Sep 28 22:25:36 1999/-ko/Tlinux_2_4_20
+/fs.txt/1.4/Wed Feb 16 01:07:27 2000/-ko/Tlinux_2_4_20
+/kernel.txt/1.10/Mon Nov  5 20:15:21 2001/-ko/Tlinux_2_4_20
+/sunrpc.txt/1.2/Tue Sep 28 22:25:37 1999/-ko/Tlinux_2_4_20
+/vm.txt/1.13.2.2/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/Documentation/sysctl/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/sysctl/CVS/Repository
--- linux-2.4.20/Documentation/sysctl/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/sysctl/CVS/Repository	2005-01-06 22:58:58.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/sysctl
diff -urNd -urNd linux-2.4.20/Documentation/sysctl/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/sysctl/CVS/Root
--- linux-2.4.20/Documentation/sysctl/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/sysctl/CVS/Root	2005-01-06 22:58:58.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/sysctl/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/sysctl/CVS/Tag
--- linux-2.4.20/Documentation/sysctl/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/sysctl/CVS/Tag	2005-01-06 22:58:58.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/telephony/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/telephony/CVS/Entries
--- linux-2.4.20/Documentation/telephony/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/telephony/CVS/Entries	2005-01-06 22:58:58.000000000 -0600
@@ -0,0 +1,2 @@
+/ixj.txt/1.1/Sat Feb  5 06:47:05 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/Documentation/telephony/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/telephony/CVS/Repository
--- linux-2.4.20/Documentation/telephony/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/telephony/CVS/Repository	2005-01-06 22:58:58.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/telephony
diff -urNd -urNd linux-2.4.20/Documentation/telephony/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/telephony/CVS/Root
--- linux-2.4.20/Documentation/telephony/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/telephony/CVS/Root	2005-01-06 22:58:58.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/telephony/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/telephony/CVS/Tag
--- linux-2.4.20/Documentation/telephony/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/telephony/CVS/Tag	2005-01-06 22:58:58.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/usb/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/usb/CVS/Entries
--- linux-2.4.20/Documentation/usb/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/usb/CVS/Entries	2005-01-06 22:58:59.000000000 -0600
@@ -0,0 +1,26 @@
+/CREDITS/1.7/Mon Nov  5 20:15:21 2001/-ko/Tlinux_2_4_20
+/URB.txt/1.4/Wed Jan 10 05:27:25 2001/-ko/Tlinux_2_4_20
+/acm.txt/1.2/Wed Apr 19 04:00:03 2000/-ko/Tlinux_2_4_20
+/auerswald.txt/1.1.2.2/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+/bluetooth.txt/1.1/Thu Nov 23 02:00:48 2000/-ko/Tlinux_2_4_20
+/brlvger.txt/1.1.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
+/dc2xx.txt/1.3/Fri Apr 28 01:09:27 2000/-ko/Tlinux_2_4_20
+/ehci.txt/1.1.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
+/error-codes.txt/1.4/Tue Nov  6 00:54:52 2001/-ko/Tlinux_2_4_20
+/hiddev.txt/1.1/Fri Oct 19 01:23:31 2001/-ko/Tlinux_2_4_20
+/hotplug.txt/1.3/Thu Jun 14 04:23:45 2001/-ko/Tlinux_2_4_20
+/ibmcam.txt/1.4.4.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
+/ohci.txt/1.2/Tue Aug  8 12:37:18 2000/-ko/Tlinux_2_4_20
+/ov511.txt/1.17.4.2/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+/philips.txt/1.4.2.1/Sat Dec 29 05:37:48 2001/-ko/Tlinux_2_4_20
+/proc_usb_info.txt/1.4.4.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
+/rio.txt/1.1/Tue Mar  7 16:02:18 2000/-ko/Tlinux_2_4_20
+/scanner-hp-sane.txt/1.4/Fri May 12 21:06:01 2000/-ko/Tlinux_2_4_20
+/scanner.txt/1.6.2.1/Sat Dec 29 05:37:48 2001/-ko/Tlinux_2_4_20
+/se401.txt/1.1/Wed Aug 22 03:23:54 2001/-ko/Tlinux_2_4_20
+/silverlink.txt/1.1.2.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+/stv680.txt/1.1.2.1/Tue Feb 26 05:58:57 2002/-ko/Tlinux_2_4_20
+/uhci.txt/1.3/Fri Mar  9 20:33:41 2001/-ko/Tlinux_2_4_20
+/usb-help.txt/1.3/Wed Jan 10 05:27:25 2001/-ko/Tlinux_2_4_20
+/usb-serial.txt/1.18.2.2/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/Documentation/usb/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/usb/CVS/Repository
--- linux-2.4.20/Documentation/usb/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/usb/CVS/Repository	2005-01-06 22:58:58.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/usb
diff -urNd -urNd linux-2.4.20/Documentation/usb/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/usb/CVS/Root
--- linux-2.4.20/Documentation/usb/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/usb/CVS/Root	2005-01-06 22:58:58.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/usb/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/usb/CVS/Tag
--- linux-2.4.20/Documentation/usb/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/usb/CVS/Tag	2005-01-06 22:58:59.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/video4linux/bttv/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/video4linux/bttv/CVS/Entries
--- linux-2.4.20/Documentation/video4linux/bttv/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/video4linux/bttv/CVS/Entries	2005-01-06 22:59:00.000000000 -0600
@@ -0,0 +1,17 @@
+/CARDLIST/1.11.2.2/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+/CONTRIBUTORS/1.4/Fri Jul 21 22:00:57 2000/-ko/Tlinux_2_4_20
+/Cards/1.2.2.2/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+/ICs/1.1/Sat Sep 19 19:15:18 1998/-ko/Tlinux_2_4_20
+/Insmod-options/1.9.2.2/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+/MAKEDEV/1.1/Sat Feb  5 06:47:06 2000/-ko/Tlinux_2_4_20
+/Modules.conf/1.2/Wed Jan 10 17:17:53 2001/-ko/Tlinux_2_4_20
+/PROBLEMS/1.5/Sat Feb  5 06:47:06 2000/-ko/Tlinux_2_4_20
+/README/1.10.2.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+/README.WINVIEW/1.1/Thu Jun 17 13:25:22 1999/-ko/Tlinux_2_4_20
+/README.freeze/1.1.2.2/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+/README.quirks/1.2/Mon Nov 19 13:53:59 2001/-ko/Tlinux_2_4_20
+/Sound-FAQ/1.5.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
+/Specs/1.1/Tue Nov 28 03:58:46 2000/-ko/Tlinux_2_4_20
+/THANKS/1.2/Tue Sep 28 22:25:38 1999/-ko/Tlinux_2_4_20
+/Tuners/1.1.2.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/Documentation/video4linux/bttv/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/video4linux/bttv/CVS/Repository
--- linux-2.4.20/Documentation/video4linux/bttv/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/video4linux/bttv/CVS/Repository	2005-01-06 22:59:00.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/video4linux/bttv
diff -urNd -urNd linux-2.4.20/Documentation/video4linux/bttv/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/video4linux/bttv/CVS/Root
--- linux-2.4.20/Documentation/video4linux/bttv/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/video4linux/bttv/CVS/Root	2005-01-06 22:59:00.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/video4linux/bttv/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/video4linux/bttv/CVS/Tag
--- linux-2.4.20/Documentation/video4linux/bttv/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/video4linux/bttv/CVS/Tag	2005-01-06 22:59:00.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/video4linux/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/video4linux/CVS/Entries
--- linux-2.4.20/Documentation/video4linux/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/video4linux/CVS/Entries	2005-01-06 23:08:27.000000000 -0600
@@ -0,0 +1,9 @@
+/API.html/1.4.4.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
+/CQcam.txt/1.2/Tue Aug  8 12:37:18 2000/-ko/Tlinux_2_4_20
+/README.cpia/1.3/Tue Aug  8 12:37:18 2000/-ko/Tlinux_2_4_20
+/Zoran/1.1.2.1/Sat Dec 29 05:37:48 2001/-ko/Tlinux_2_4_20
+/meye.txt/1.2.2.2/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
+/radiotrack.txt/1.3/Tue Aug  8 12:37:18 2000/-ko/Tlinux_2_4_20
+/w9966.txt/1.1.2.1/Sat Dec 29 05:37:48 2001/-ko/Tlinux_2_4_20
+/zr36120.txt/1.3/Tue Aug  8 12:37:18 2000/-ko/Tlinux_2_4_20
+D/bttv////
diff -urNd -urNd linux-2.4.20/Documentation/video4linux/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/video4linux/CVS/Repository
--- linux-2.4.20/Documentation/video4linux/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/video4linux/CVS/Repository	2005-01-06 22:58:59.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/video4linux
diff -urNd -urNd linux-2.4.20/Documentation/video4linux/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/video4linux/CVS/Root
--- linux-2.4.20/Documentation/video4linux/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/video4linux/CVS/Root	2005-01-06 22:58:59.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/video4linux/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/video4linux/CVS/Tag
--- linux-2.4.20/Documentation/video4linux/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/video4linux/CVS/Tag	2005-01-06 22:59:00.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/vm/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/vm/CVS/Entries
--- linux-2.4.20/Documentation/vm/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/vm/CVS/Entries	2005-01-06 22:59:00.000000000 -0600
@@ -0,0 +1,4 @@
+/balance/1.2/Thu Mar  2 02:36:49 2000/-ko/Tlinux_2_4_20
+/locking/1.6/Thu Apr  5 04:56:07 2001/-ko/Tlinux_2_4_20
+/numa/1.3/Tue Aug  8 18:28:31 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/Documentation/vm/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/vm/CVS/Repository
--- linux-2.4.20/Documentation/vm/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/vm/CVS/Repository	2005-01-06 22:59:00.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/vm
diff -urNd -urNd linux-2.4.20/Documentation/vm/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/vm/CVS/Root
--- linux-2.4.20/Documentation/vm/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/vm/CVS/Root	2005-01-06 22:59:00.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/vm/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/vm/CVS/Tag
--- linux-2.4.20/Documentation/vm/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/vm/CVS/Tag	2005-01-06 22:59:00.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/Documentation/x86_64/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/x86_64/CVS/Entries
--- linux-2.4.20/Documentation/x86_64/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/x86_64/CVS/Entries	2005-01-06 22:59:00.000000000 -0600
@@ -0,0 +1,3 @@
+/BUGS/1.1.2.1/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
+/mm.txt/1.1.2.1/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/Documentation/x86_64/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/x86_64/CVS/Repository
--- linux-2.4.20/Documentation/x86_64/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/x86_64/CVS/Repository	2005-01-06 22:59:00.000000000 -0600
@@ -0,0 +1 @@
+linux/Documentation/x86_64
diff -urNd -urNd linux-2.4.20/Documentation/x86_64/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/x86_64/CVS/Root
--- linux-2.4.20/Documentation/x86_64/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/x86_64/CVS/Root	2005-01-06 22:59:00.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/Documentation/x86_64/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/x86_64/CVS/Tag
--- linux-2.4.20/Documentation/x86_64/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Documentation/x86_64/CVS/Tag	2005-01-06 22:59:00.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/acorn/block/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acorn/block/CVS/Entries
--- linux-2.4.20/drivers/acorn/block/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/block/CVS/Entries	2005-01-06 23:01:08.000000000 -0600
@@ -0,0 +1,7 @@
+/Config.in/1.5/Sat Dec  4 03:59:02 1999/-ko/Tlinux_2_4_20
+/Makefile/1.8/Fri Mar  9 20:33:53 2001/-ko/Tlinux_2_4_20
+/fd1772.c/1.18.2.2/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
+/fd1772dma.S/1.2/Tue Jun 22 23:06:34 1999/-ko/Tlinux_2_4_20
+/mfm.S/1.2/Tue Jun 22 23:06:35 1999/-ko/Tlinux_2_4_20
+/mfmhd.c/1.17.2.1/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/acorn/block/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acorn/block/CVS/Repository
--- linux-2.4.20/drivers/acorn/block/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/block/CVS/Repository	2005-01-06 23:01:08.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/acorn/block
diff -urNd -urNd linux-2.4.20/drivers/acorn/block/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acorn/block/CVS/Root
--- linux-2.4.20/drivers/acorn/block/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/block/CVS/Root	2005-01-06 23:01:08.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/acorn/block/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acorn/block/CVS/Tag
--- linux-2.4.20/drivers/acorn/block/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/block/CVS/Tag	2005-01-06 23:01:08.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/acorn/char/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acorn/char/CVS/Entries
--- linux-2.4.20/drivers/acorn/char/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/char/CVS/Entries	2005-01-06 23:01:09.000000000 -0600
@@ -0,0 +1,16 @@
+/.cvsignore/1.1.6.1/Mon Dec 31 03:33:19 2001/-ko/Tlinux_2_4_20
+/Makefile/1.13/Sat Sep 22 12:49:16 2001/-ko/Tlinux_2_4_20
+/defkeymap-acorn.c/1.4/Sat Sep 22 12:49:16 2001/-ko/Tlinux_2_4_20
+/defkeymap-acorn.map/1.1/Sat Sep 22 12:49:16 2001/-ko/Tlinux_2_4_20
+/defkeymap-l7200.c/1.1/Sat Sep 22 12:49:16 2001/-ko/Tlinux_2_4_20
+/i2c.c/1.3/Thu Apr  5 04:56:12 2001/-ko/Tlinux_2_4_20
+/keyb_arc.c/1.10/Sat Sep 22 12:49:16 2001/-ko/Tlinux_2_4_20
+/keyb_ps2.c/1.11/Tue Nov  6 07:55:50 2001/-ko/Tlinux_2_4_20
+/mouse_ps2.c/1.2.2.2/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
+/mouse_rpc.c/1.8/Tue Nov  6 00:55:00 2001/-ko/Tlinux_2_4_20
+/pcf8583.c/1.4.2.1/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
+/pcf8583.h/1.2/Thu Oct  5 01:18:45 2000/-ko/Tlinux_2_4_20
+/serial-atomwide.c/1.3/Thu Oct  5 01:18:45 2000/-ko/Tlinux_2_4_20
+/serial-card.c/1.6/Fri Oct 19 01:23:51 2001/-ko/Tlinux_2_4_20
+/serial-dualsp.c/1.3/Thu Oct  5 01:18:45 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/acorn/char/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acorn/char/CVS/Repository
--- linux-2.4.20/drivers/acorn/char/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/char/CVS/Repository	2005-01-06 23:01:08.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/acorn/char
diff -urNd -urNd linux-2.4.20/drivers/acorn/char/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acorn/char/CVS/Root
--- linux-2.4.20/drivers/acorn/char/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/char/CVS/Root	2005-01-06 23:01:08.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/acorn/char/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acorn/char/CVS/Tag
--- linux-2.4.20/drivers/acorn/char/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/char/CVS/Tag	2005-01-06 23:01:09.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/acorn/char/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acorn/char/.cvsignore
--- linux-2.4.20/drivers/acorn/char/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/char/.cvsignore	2001-12-30 21:33:19.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/acorn/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acorn/CVS/Entries
--- linux-2.4.20/drivers/acorn/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/CVS/Entries	2005-01-06 23:08:13.000000000 -0600
@@ -0,0 +1,6 @@
+/Makefile/1.2/Fri Mar  9 20:33:53 2001/-ko/Tlinux_2_4_20
+/README/1.2/Thu Jan 27 01:05:25 2000/-ko/Tlinux_2_4_20
+D/block////
+D/char////
+D/net////
+D/scsi////
diff -urNd -urNd linux-2.4.20/drivers/acorn/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acorn/CVS/Repository
--- linux-2.4.20/drivers/acorn/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/CVS/Repository	2005-01-06 23:01:08.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/acorn
diff -urNd -urNd linux-2.4.20/drivers/acorn/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acorn/CVS/Root
--- linux-2.4.20/drivers/acorn/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/CVS/Root	2005-01-06 23:01:08.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/acorn/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acorn/CVS/Tag
--- linux-2.4.20/drivers/acorn/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/CVS/Tag	2005-01-06 23:01:08.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/acorn/net/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acorn/net/CVS/Entries
--- linux-2.4.20/drivers/acorn/net/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/net/CVS/Entries	2005-01-06 23:01:09.000000000 -0600
@@ -0,0 +1,8 @@
+/Config.in/1.3/Fri Mar  9 20:33:53 2001/-ko/Tlinux_2_4_20
+/Makefile/1.6/Fri Mar  9 20:33:53 2001/-ko/Tlinux_2_4_20
+/ether1.c/1.14/Fri Oct 19 01:23:51 2001/-ko/Tlinux_2_4_20
+/ether1.h/1.5/Thu Oct  5 01:18:45 2000/-ko/Tlinux_2_4_20
+/ether3.c/1.13/Fri Oct 19 01:23:52 2001/-ko/Tlinux_2_4_20
+/ether3.h/1.7/Thu Oct  5 01:18:45 2000/-ko/Tlinux_2_4_20
+/etherh.c/1.14.2.1/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/acorn/net/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acorn/net/CVS/Repository
--- linux-2.4.20/drivers/acorn/net/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/net/CVS/Repository	2005-01-06 23:01:09.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/acorn/net
diff -urNd -urNd linux-2.4.20/drivers/acorn/net/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acorn/net/CVS/Root
--- linux-2.4.20/drivers/acorn/net/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/net/CVS/Root	2005-01-06 23:01:09.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/acorn/net/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acorn/net/CVS/Tag
--- linux-2.4.20/drivers/acorn/net/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/net/CVS/Tag	2005-01-06 23:01:09.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/acorn/scsi/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acorn/scsi/CVS/Entries
--- linux-2.4.20/drivers/acorn/scsi/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/scsi/CVS/Entries	2005-01-06 23:01:11.000000000 -0600
@@ -0,0 +1,21 @@
+/.cvsignore/1.1/Mon Nov  5 20:15:31 2001/-ko/Tlinux_2_4_20
+/Config.in/1.5.4.1/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
+/Makefile/1.9/Fri Mar  9 20:33:53 2001/-ko/Tlinux_2_4_20
+/acornscsi-io.S/1.2/Thu Oct  5 01:18:45 2000/-ko/Tlinux_2_4_20
+/acornscsi.c/1.12.2.1/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
+/acornscsi.h/1.7/Sat Sep 22 12:49:16 2001/-ko/Tlinux_2_4_20
+/arxescsi.c/1.9/Tue Nov  6 00:55:00 2001/-ko/Tlinux_2_4_20
+/arxescsi.h/1.3/Fri May 12 23:48:37 2000/-ko/Tlinux_2_4_20
+/cumana_1.c/1.6/Fri Oct 19 01:23:52 2001/-ko/Tlinux_2_4_20
+/cumana_2.c/1.14/Tue Nov  6 07:55:50 2001/-ko/Tlinux_2_4_20
+/ecoscsi.c/1.8.2.1/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
+/eesox.c/1.12/Tue Nov  6 07:55:50 2001/-ko/Tlinux_2_4_20
+/fas216.c/1.14/Tue Nov  6 00:55:00 2001/-ko/Tlinux_2_4_20
+/fas216.h/1.7/Thu Oct  5 01:18:45 2000/-ko/Tlinux_2_4_20
+/msgqueue.c/1.7/Tue Nov  6 00:55:00 2001/-ko/Tlinux_2_4_20
+/msgqueue.h/1.5/Thu Oct  5 01:18:45 2000/-ko/Tlinux_2_4_20
+/oak.c/1.7/Tue Nov  6 00:55:00 2001/-ko/Tlinux_2_4_20
+/powertec.c/1.14/Tue Nov  6 07:55:50 2001/-ko/Tlinux_2_4_20
+/queue.c/1.7/Tue Nov  6 00:55:00 2001/-ko/Tlinux_2_4_20
+/queue.h/1.3/Thu Oct  5 01:18:45 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/acorn/scsi/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acorn/scsi/CVS/Repository
--- linux-2.4.20/drivers/acorn/scsi/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/scsi/CVS/Repository	2005-01-06 23:01:09.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/acorn/scsi
diff -urNd -urNd linux-2.4.20/drivers/acorn/scsi/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acorn/scsi/CVS/Root
--- linux-2.4.20/drivers/acorn/scsi/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/scsi/CVS/Root	2005-01-06 23:01:09.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/acorn/scsi/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acorn/scsi/CVS/Tag
--- linux-2.4.20/drivers/acorn/scsi/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/scsi/CVS/Tag	2005-01-06 23:01:11.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/acorn/scsi/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acorn/scsi/.cvsignore
--- linux-2.4.20/drivers/acorn/scsi/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/scsi/.cvsignore	2001-11-05 14:15:31.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/acpi/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/CVS/Entries
--- linux-2.4.20/drivers/acpi/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/CVS/Entries	2005-01-06 23:08:13.000000000 -0600
@@ -0,0 +1,19 @@
+/.cvsignore/1.1/Sat Jul  8 00:53:04 2000/-ko/Tlinux_2_4_20
+/Config.in/1.1/Wed Aug 22 03:24:04 2001/-ko/Tlinux_2_4_20
+/Makefile/1.9/Tue Nov  6 07:55:50 2001/-ko/Tlinux_2_4_20
+/acpi_ksyms.c/1.4.2.1/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
+/driver.c/1.11/Tue Nov  6 07:55:50 2001/-ko/Tlinux_2_4_20
+/os.c/1.8.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+D/debugger////
+D/dispatcher////
+D/events////
+D/executer////
+D/hardware////
+D/include////
+D/kdb////
+D/namespace////
+D/ospm////
+D/parser////
+D/resources////
+D/tables////
+D/utilities////
diff -urNd -urNd linux-2.4.20/drivers/acpi/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/CVS/Repository
--- linux-2.4.20/drivers/acpi/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/CVS/Repository	2005-01-06 23:01:11.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/acpi
diff -urNd -urNd linux-2.4.20/drivers/acpi/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/CVS/Root
--- linux-2.4.20/drivers/acpi/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/CVS/Root	2005-01-06 23:01:11.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/acpi/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/CVS/Tag
--- linux-2.4.20/drivers/acpi/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/CVS/Tag	2005-01-06 23:01:11.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/acpi/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/.cvsignore
--- linux-2.4.20/drivers/acpi/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/.cvsignore	2000-07-07 19:53:04.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/acpi/debugger/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/debugger/CVS/Entries
--- linux-2.4.20/drivers/acpi/debugger/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/debugger/CVS/Entries	2005-01-06 23:01:12.000000000 -0600
@@ -0,0 +1,12 @@
+/Makefile/1.1/Fri Oct 19 01:23:52 2001/-ko/Tlinux_2_4_20
+/dbcmds.c/1.3/Tue Nov  6 07:55:50 2001/-ko/Tlinux_2_4_20
+/dbdisasm.c/1.3/Tue Nov  6 07:55:50 2001/-ko/Tlinux_2_4_20
+/dbdisply.c/1.3/Tue Nov  6 07:55:50 2001/-ko/Tlinux_2_4_20
+/dbexec.c/1.2/Fri Oct 19 01:23:52 2001/-ko/Tlinux_2_4_20
+/dbfileio.c/1.3/Tue Nov  6 07:55:50 2001/-ko/Tlinux_2_4_20
+/dbhistry.c/1.2/Fri Oct 19 01:23:53 2001/-ko/Tlinux_2_4_20
+/dbinput.c/1.3/Tue Nov  6 07:55:50 2001/-ko/Tlinux_2_4_20
+/dbstats.c/1.3/Tue Nov  6 07:55:50 2001/-ko/Tlinux_2_4_20
+/dbutils.c/1.3/Tue Nov  6 07:55:50 2001/-ko/Tlinux_2_4_20
+/dbxface.c/1.3/Tue Nov  6 07:55:50 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/acpi/debugger/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/debugger/CVS/Repository
--- linux-2.4.20/drivers/acpi/debugger/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/debugger/CVS/Repository	2005-01-06 23:01:11.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/acpi/debugger
diff -urNd -urNd linux-2.4.20/drivers/acpi/debugger/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/debugger/CVS/Root
--- linux-2.4.20/drivers/acpi/debugger/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/debugger/CVS/Root	2005-01-06 23:01:11.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/acpi/debugger/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/debugger/CVS/Tag
--- linux-2.4.20/drivers/acpi/debugger/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/debugger/CVS/Tag	2005-01-06 23:01:12.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/acpi/dispatcher/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/dispatcher/CVS/Entries
--- linux-2.4.20/drivers/acpi/dispatcher/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/dispatcher/CVS/Entries	2005-01-06 23:01:12.000000000 -0600
@@ -0,0 +1,13 @@
+/.cvsignore/1.1/Mon Jan 15 04:16:43 2001/-ko/Tlinux_2_4_20
+/Makefile/1.3/Wed Aug 22 03:24:05 2001/-ko/Tlinux_2_4_20
+/dsfield.c/1.6.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/dsmethod.c/1.7/Tue Nov  6 07:55:50 2001/-ko/Tlinux_2_4_20
+/dsmthdat.c/1.6/Fri Oct 19 01:23:53 2001/-ko/Tlinux_2_4_20
+/dsobject.c/1.8/Tue Nov  6 07:55:50 2001/-ko/Tlinux_2_4_20
+/dsopcode.c/1.8/Tue Nov  6 07:55:50 2001/-ko/Tlinux_2_4_20
+/dsutils.c/1.7/Tue Nov  6 07:55:50 2001/-ko/Tlinux_2_4_20
+/dswexec.c/1.7.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/dswload.c/1.7/Tue Nov  6 07:55:51 2001/-ko/Tlinux_2_4_20
+/dswscope.c/1.7/Tue Nov  6 07:55:51 2001/-ko/Tlinux_2_4_20
+/dswstate.c/1.7/Tue Nov  6 07:55:51 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/acpi/dispatcher/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/dispatcher/CVS/Repository
--- linux-2.4.20/drivers/acpi/dispatcher/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/dispatcher/CVS/Repository	2005-01-06 23:01:12.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/acpi/dispatcher
diff -urNd -urNd linux-2.4.20/drivers/acpi/dispatcher/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/dispatcher/CVS/Root
--- linux-2.4.20/drivers/acpi/dispatcher/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/dispatcher/CVS/Root	2005-01-06 23:01:12.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/acpi/dispatcher/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/dispatcher/CVS/Tag
--- linux-2.4.20/drivers/acpi/dispatcher/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/dispatcher/CVS/Tag	2005-01-06 23:01:12.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/acpi/dispatcher/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/dispatcher/.cvsignore
--- linux-2.4.20/drivers/acpi/dispatcher/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/dispatcher/.cvsignore	2001-01-14 22:16:43.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/acpi/events/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/events/CVS/Entries
--- linux-2.4.20/drivers/acpi/events/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/events/CVS/Entries	2005-01-06 23:01:12.000000000 -0600
@@ -0,0 +1,11 @@
+/.cvsignore/1.1/Mon Jan 15 04:16:43 2001/-ko/Tlinux_2_4_20
+/Makefile/1.3/Wed Aug 22 03:24:05 2001/-ko/Tlinux_2_4_20
+/evevent.c/1.8.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/evmisc.c/1.7/Tue Nov  6 07:55:51 2001/-ko/Tlinux_2_4_20
+/evregion.c/1.8/Tue Nov  6 07:55:51 2001/-ko/Tlinux_2_4_20
+/evrgnini.c/1.7/Tue Nov  6 07:55:51 2001/-ko/Tlinux_2_4_20
+/evsci.c/1.7/Fri Oct 19 01:23:54 2001/-ko/Tlinux_2_4_20
+/evxface.c/1.7/Tue Nov  6 07:55:51 2001/-ko/Tlinux_2_4_20
+/evxfevnt.c/1.7/Tue Nov  6 07:55:51 2001/-ko/Tlinux_2_4_20
+/evxfregn.c/1.7/Tue Nov  6 07:55:51 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/acpi/events/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/events/CVS/Repository
--- linux-2.4.20/drivers/acpi/events/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/events/CVS/Repository	2005-01-06 23:01:12.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/acpi/events
diff -urNd -urNd linux-2.4.20/drivers/acpi/events/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/events/CVS/Root
--- linux-2.4.20/drivers/acpi/events/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/events/CVS/Root	2005-01-06 23:01:12.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/acpi/events/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/events/CVS/Tag
--- linux-2.4.20/drivers/acpi/events/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/events/CVS/Tag	2005-01-06 23:01:12.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/acpi/events/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/events/.cvsignore
--- linux-2.4.20/drivers/acpi/events/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/events/.cvsignore	2001-01-14 22:16:43.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/acpi/executer/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/executer/CVS/Entries
--- linux-2.4.20/drivers/acpi/executer/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/executer/CVS/Entries	2005-01-06 23:01:13.000000000 -0600
@@ -0,0 +1,26 @@
+/.cvsignore/1.1/Wed Aug 22 03:24:05 2001/-ko/Tlinux_2_4_20
+/Makefile/1.1/Wed Aug 22 03:24:05 2001/-ko/Tlinux_2_4_20
+/exconfig.c/1.3/Tue Nov  6 07:55:51 2001/-ko/Tlinux_2_4_20
+/exconvrt.c/1.3/Tue Nov  6 07:55:51 2001/-ko/Tlinux_2_4_20
+/excreate.c/1.3/Tue Nov  6 07:55:51 2001/-ko/Tlinux_2_4_20
+/exdump.c/1.3/Tue Nov  6 07:55:51 2001/-ko/Tlinux_2_4_20
+/exfield.c/1.2/Fri Oct 19 01:23:54 2001/-ko/Tlinux_2_4_20
+/exfldio.c/1.3/Tue Nov  6 07:55:51 2001/-ko/Tlinux_2_4_20
+/exmisc.c/1.3/Tue Nov  6 07:55:51 2001/-ko/Tlinux_2_4_20
+/exmutex.c/1.2/Fri Oct 19 01:23:54 2001/-ko/Tlinux_2_4_20
+/exnames.c/1.2/Fri Oct 19 01:23:54 2001/-ko/Tlinux_2_4_20
+/exoparg1.c/1.1/Tue Nov  6 07:55:51 2001/-ko/Tlinux_2_4_20
+/exoparg2.c/1.1/Tue Nov  6 07:55:51 2001/-ko/Tlinux_2_4_20
+/exoparg3.c/1.1/Tue Nov  6 07:55:51 2001/-ko/Tlinux_2_4_20
+/exoparg6.c/1.1/Tue Nov  6 07:55:51 2001/-ko/Tlinux_2_4_20
+/exprep.c/1.3/Tue Nov  6 07:55:51 2001/-ko/Tlinux_2_4_20
+/exregion.c/1.3/Tue Nov  6 07:55:51 2001/-ko/Tlinux_2_4_20
+/exresnte.c/1.3.2.1/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
+/exresolv.c/1.3/Tue Nov  6 07:55:51 2001/-ko/Tlinux_2_4_20
+/exresop.c/1.3/Tue Nov  6 07:55:52 2001/-ko/Tlinux_2_4_20
+/exstore.c/1.3.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/exstoren.c/1.2/Fri Oct 19 01:23:55 2001/-ko/Tlinux_2_4_20
+/exstorob.c/1.2/Fri Oct 19 01:23:55 2001/-ko/Tlinux_2_4_20
+/exsystem.c/1.2/Fri Oct 19 01:23:55 2001/-ko/Tlinux_2_4_20
+/exutils.c/1.3/Tue Nov  6 07:55:52 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/acpi/executer/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/executer/CVS/Repository
--- linux-2.4.20/drivers/acpi/executer/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/executer/CVS/Repository	2005-01-06 23:01:12.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/acpi/executer
diff -urNd -urNd linux-2.4.20/drivers/acpi/executer/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/executer/CVS/Root
--- linux-2.4.20/drivers/acpi/executer/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/executer/CVS/Root	2005-01-06 23:01:12.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/acpi/executer/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/executer/CVS/Tag
--- linux-2.4.20/drivers/acpi/executer/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/executer/CVS/Tag	2005-01-06 23:01:13.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/acpi/executer/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/executer/.cvsignore
--- linux-2.4.20/drivers/acpi/executer/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/executer/.cvsignore	2001-08-21 22:24:05.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/acpi/hardware/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/hardware/CVS/Entries
--- linux-2.4.20/drivers/acpi/hardware/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/hardware/CVS/Entries	2005-01-06 23:01:14.000000000 -0600
@@ -0,0 +1,8 @@
+/.cvsignore/1.1/Mon Jan 15 04:16:43 2001/-ko/Tlinux_2_4_20
+/Makefile/1.3/Wed Aug 22 03:24:05 2001/-ko/Tlinux_2_4_20
+/hwacpi.c/1.7/Tue Nov  6 07:55:52 2001/-ko/Tlinux_2_4_20
+/hwgpe.c/1.7/Tue Nov  6 07:55:52 2001/-ko/Tlinux_2_4_20
+/hwregs.c/1.7/Tue Nov  6 07:55:52 2001/-ko/Tlinux_2_4_20
+/hwsleep.c/1.5/Tue Nov  6 07:55:52 2001/-ko/Tlinux_2_4_20
+/hwtimer.c/1.5/Tue Nov  6 07:55:52 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/acpi/hardware/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/hardware/CVS/Repository
--- linux-2.4.20/drivers/acpi/hardware/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/hardware/CVS/Repository	2005-01-06 23:01:13.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/acpi/hardware
diff -urNd -urNd linux-2.4.20/drivers/acpi/hardware/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/hardware/CVS/Root
--- linux-2.4.20/drivers/acpi/hardware/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/hardware/CVS/Root	2005-01-06 23:01:13.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/acpi/hardware/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/hardware/CVS/Tag
--- linux-2.4.20/drivers/acpi/hardware/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/hardware/CVS/Tag	2005-01-06 23:01:14.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/acpi/hardware/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/hardware/.cvsignore
--- linux-2.4.20/drivers/acpi/hardware/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/hardware/.cvsignore	2001-01-14 22:16:43.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/acpi/include/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/include/CVS/Entries
--- linux-2.4.20/drivers/acpi/include/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/include/CVS/Entries	2005-01-06 23:08:13.000000000 -0600
@@ -0,0 +1,28 @@
+/acconfig.h/1.8/Tue Nov  6 07:55:52 2001/-ko/Tlinux_2_4_20
+/acdebug.h/1.7/Tue Nov  6 07:55:52 2001/-ko/Tlinux_2_4_20
+/acdispat.h/1.6/Tue Nov  6 07:55:52 2001/-ko/Tlinux_2_4_20
+/acevents.h/1.6/Tue Nov  6 07:55:52 2001/-ko/Tlinux_2_4_20
+/acexcep.h/1.6/Fri Oct 19 01:23:55 2001/-ko/Tlinux_2_4_20
+/acglobal.h/1.6.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/achware.h/1.6/Tue Nov  6 07:55:53 2001/-ko/Tlinux_2_4_20
+/acinterp.h/1.7/Tue Nov  6 07:55:53 2001/-ko/Tlinux_2_4_20
+/aclocal.h/1.7/Tue Nov  6 07:55:53 2001/-ko/Tlinux_2_4_20
+/acmacros.h/1.6/Tue Nov  6 07:55:53 2001/-ko/Tlinux_2_4_20
+/acnamesp.h/1.7/Tue Nov  6 07:55:53 2001/-ko/Tlinux_2_4_20
+/acobject.h/1.7/Tue Nov  6 07:55:53 2001/-ko/Tlinux_2_4_20
+/acoutput.h/1.6/Fri Oct 19 01:23:55 2001/-ko/Tlinux_2_4_20
+/acparser.h/1.5/Tue Nov  6 07:55:53 2001/-ko/Tlinux_2_4_20
+/acpi.h/1.4/Wed Aug 22 03:24:06 2001/-ko/Tlinux_2_4_20
+/acpiosxf.h/1.6/Fri Oct 19 01:23:55 2001/-ko/Tlinux_2_4_20
+/acpixf.h/1.7/Tue Nov  6 07:55:53 2001/-ko/Tlinux_2_4_20
+/acresrc.h/1.4/Fri Oct 19 01:23:55 2001/-ko/Tlinux_2_4_20
+/acstruct.h/1.3/Tue Nov  6 07:55:53 2001/-ko/Tlinux_2_4_20
+/actables.h/1.7/Tue Nov  6 07:55:53 2001/-ko/Tlinux_2_4_20
+/actbl.h/1.6/Tue Nov  6 07:55:53 2001/-ko/Tlinux_2_4_20
+/actbl1.h/1.4/Tue Nov  6 07:55:53 2001/-ko/Tlinux_2_4_20
+/actbl2.h/1.5/Tue Nov  6 07:55:53 2001/-ko/Tlinux_2_4_20
+/actbl71.h/1.5/Tue Nov  6 07:55:53 2001/-ko/Tlinux_2_4_20
+/actypes.h/1.8.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/acutils.h/1.3/Tue Nov  6 07:55:53 2001/-ko/Tlinux_2_4_20
+/amlcode.h/1.7/Tue Nov  6 07:55:53 2001/-ko/Tlinux_2_4_20
+D/platform////
diff -urNd -urNd linux-2.4.20/drivers/acpi/include/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/include/CVS/Repository
--- linux-2.4.20/drivers/acpi/include/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/include/CVS/Repository	2005-01-06 23:01:14.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/acpi/include
diff -urNd -urNd linux-2.4.20/drivers/acpi/include/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/include/CVS/Root
--- linux-2.4.20/drivers/acpi/include/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/include/CVS/Root	2005-01-06 23:01:14.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/acpi/include/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/include/CVS/Tag
--- linux-2.4.20/drivers/acpi/include/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/include/CVS/Tag	2005-01-06 23:01:14.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/acpi/include/platform/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/include/platform/CVS/Entries
--- linux-2.4.20/drivers/acpi/include/platform/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/include/platform/CVS/Entries	2005-01-06 23:01:15.000000000 -0600
@@ -0,0 +1,4 @@
+/acenv.h/1.3/Tue Nov  6 07:55:53 2001/-ko/Tlinux_2_4_20
+/acgcc.h/1.4.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/aclinux.h/1.2.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/acpi/include/platform/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/include/platform/CVS/Repository
--- linux-2.4.20/drivers/acpi/include/platform/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/include/platform/CVS/Repository	2005-01-06 23:01:14.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/acpi/include/platform
diff -urNd -urNd linux-2.4.20/drivers/acpi/include/platform/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/include/platform/CVS/Root
--- linux-2.4.20/drivers/acpi/include/platform/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/include/platform/CVS/Root	2005-01-06 23:01:14.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/acpi/include/platform/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/include/platform/CVS/Tag
--- linux-2.4.20/drivers/acpi/include/platform/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/include/platform/CVS/Tag	2005-01-06 23:01:15.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/acpi/kdb/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/kdb/CVS/Entries
--- linux-2.4.20/drivers/acpi/kdb/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/kdb/CVS/Entries	2005-01-06 23:01:15.000000000 -0600
@@ -0,0 +1,3 @@
+/README.txt/1.1/Fri Oct 19 01:23:56 2001/-ko/Tlinux_2_4_20
+/kdbm_acpi.c/1.1/Fri Oct 19 01:23:56 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/acpi/kdb/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/kdb/CVS/Repository
--- linux-2.4.20/drivers/acpi/kdb/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/kdb/CVS/Repository	2005-01-06 23:01:15.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/acpi/kdb
diff -urNd -urNd linux-2.4.20/drivers/acpi/kdb/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/kdb/CVS/Root
--- linux-2.4.20/drivers/acpi/kdb/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/kdb/CVS/Root	2005-01-06 23:01:15.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/acpi/kdb/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/kdb/CVS/Tag
--- linux-2.4.20/drivers/acpi/kdb/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/kdb/CVS/Tag	2005-01-06 23:01:15.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/acpi/namespace/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/namespace/CVS/Entries
--- linux-2.4.20/drivers/acpi/namespace/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/namespace/CVS/Entries	2005-01-06 23:01:15.000000000 -0600
@@ -0,0 +1,16 @@
+/.cvsignore/1.1/Mon Jan 15 04:16:44 2001/-ko/Tlinux_2_4_20
+/Makefile/1.3/Wed Aug 22 03:24:08 2001/-ko/Tlinux_2_4_20
+/nsaccess.c/1.7/Tue Nov  6 07:55:53 2001/-ko/Tlinux_2_4_20
+/nsalloc.c/1.7/Tue Nov  6 07:55:53 2001/-ko/Tlinux_2_4_20
+/nsdump.c/1.4.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/nseval.c/1.8/Tue Nov  6 07:55:53 2001/-ko/Tlinux_2_4_20
+/nsinit.c/1.7/Tue Nov  6 07:55:53 2001/-ko/Tlinux_2_4_20
+/nsload.c/1.7/Tue Nov  6 07:55:53 2001/-ko/Tlinux_2_4_20
+/nsnames.c/1.8/Tue Nov  6 07:55:53 2001/-ko/Tlinux_2_4_20
+/nsobject.c/1.7/Tue Nov  6 07:55:53 2001/-ko/Tlinux_2_4_20
+/nssearch.c/1.7/Tue Nov  6 07:55:53 2001/-ko/Tlinux_2_4_20
+/nsutils.c/1.7/Tue Nov  6 07:55:53 2001/-ko/Tlinux_2_4_20
+/nswalk.c/1.6/Tue Nov  6 07:55:53 2001/-ko/Tlinux_2_4_20
+/nsxfname.c/1.7/Tue Nov  6 07:55:53 2001/-ko/Tlinux_2_4_20
+/nsxfobj.c/1.10/Tue Nov  6 07:55:53 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/acpi/namespace/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/namespace/CVS/Repository
--- linux-2.4.20/drivers/acpi/namespace/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/namespace/CVS/Repository	2005-01-06 23:01:15.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/acpi/namespace
diff -urNd -urNd linux-2.4.20/drivers/acpi/namespace/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/namespace/CVS/Root
--- linux-2.4.20/drivers/acpi/namespace/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/namespace/CVS/Root	2005-01-06 23:01:15.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/acpi/namespace/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/namespace/CVS/Tag
--- linux-2.4.20/drivers/acpi/namespace/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/namespace/CVS/Tag	2005-01-06 23:01:15.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/acpi/namespace/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/namespace/.cvsignore
--- linux-2.4.20/drivers/acpi/namespace/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/namespace/.cvsignore	2001-01-14 22:16:44.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/ac_adapter/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ac_adapter/CVS/Entries
--- linux-2.4.20/drivers/acpi/ospm/ac_adapter/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ac_adapter/CVS/Entries	2005-01-06 23:01:15.000000000 -0600
@@ -0,0 +1,5 @@
+/.cvsignore/1.1/Wed Aug 22 03:24:08 2001/-ko/Tlinux_2_4_20
+/Makefile/1.1/Wed Aug 22 03:24:08 2001/-ko/Tlinux_2_4_20
+/ac.c/1.3/Tue Nov  6 07:55:54 2001/-ko/Tlinux_2_4_20
+/ac_osl.c/1.3.2.1/Sat Dec 29 05:37:52 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/ac_adapter/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ac_adapter/CVS/Repository
--- linux-2.4.20/drivers/acpi/ospm/ac_adapter/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ac_adapter/CVS/Repository	2005-01-06 23:01:15.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/acpi/ospm/ac_adapter
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/ac_adapter/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ac_adapter/CVS/Root
--- linux-2.4.20/drivers/acpi/ospm/ac_adapter/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ac_adapter/CVS/Root	2005-01-06 23:01:15.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/ac_adapter/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ac_adapter/CVS/Tag
--- linux-2.4.20/drivers/acpi/ospm/ac_adapter/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ac_adapter/CVS/Tag	2005-01-06 23:01:15.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/ac_adapter/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ac_adapter/.cvsignore
--- linux-2.4.20/drivers/acpi/ospm/ac_adapter/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ac_adapter/.cvsignore	2001-08-21 22:24:08.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/battery/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/battery/CVS/Entries
--- linux-2.4.20/drivers/acpi/ospm/battery/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/battery/CVS/Entries	2005-01-06 23:01:15.000000000 -0600
@@ -0,0 +1,5 @@
+/.cvsignore/1.1/Wed Aug 22 03:24:08 2001/-ko/Tlinux_2_4_20
+/Makefile/1.1/Wed Aug 22 03:24:08 2001/-ko/Tlinux_2_4_20
+/bt.c/1.3/Tue Nov  6 07:55:54 2001/-ko/Tlinux_2_4_20
+/bt_osl.c/1.3.2.1/Sat Dec 29 05:37:52 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/battery/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/battery/CVS/Repository
--- linux-2.4.20/drivers/acpi/ospm/battery/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/battery/CVS/Repository	2005-01-06 23:01:15.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/acpi/ospm/battery
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/battery/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/battery/CVS/Root
--- linux-2.4.20/drivers/acpi/ospm/battery/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/battery/CVS/Root	2005-01-06 23:01:15.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/battery/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/battery/CVS/Tag
--- linux-2.4.20/drivers/acpi/ospm/battery/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/battery/CVS/Tag	2005-01-06 23:01:15.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/battery/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/battery/.cvsignore
--- linux-2.4.20/drivers/acpi/ospm/battery/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/battery/.cvsignore	2001-08-21 22:24:08.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/busmgr/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/busmgr/CVS/Entries
--- linux-2.4.20/drivers/acpi/ospm/busmgr/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/busmgr/CVS/Entries	2005-01-06 23:01:16.000000000 -0600
@@ -0,0 +1,12 @@
+/.cvsignore/1.1/Wed Aug 22 03:24:08 2001/-ko/Tlinux_2_4_20
+/Makefile/1.2/Fri Oct 19 01:23:57 2001/-ko/Tlinux_2_4_20
+/bm.c/1.3/Tue Nov  6 07:55:54 2001/-ko/Tlinux_2_4_20
+/bm_osl.c/1.3.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/bmdriver.c/1.2/Fri Oct 19 01:23:57 2001/-ko/Tlinux_2_4_20
+/bmnotify.c/1.2/Fri Oct 19 01:23:58 2001/-ko/Tlinux_2_4_20
+/bmpm.c/1.2/Fri Oct 19 01:23:58 2001/-ko/Tlinux_2_4_20
+/bmpower.c/1.3/Tue Nov  6 07:55:54 2001/-ko/Tlinux_2_4_20
+/bmrequest.c/1.2/Fri Oct 19 01:23:58 2001/-ko/Tlinux_2_4_20
+/bmsearch.c/1.2/Fri Oct 19 01:23:58 2001/-ko/Tlinux_2_4_20
+/bmutils.c/1.3/Tue Nov  6 07:55:54 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/busmgr/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/busmgr/CVS/Repository
--- linux-2.4.20/drivers/acpi/ospm/busmgr/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/busmgr/CVS/Repository	2005-01-06 23:01:15.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/acpi/ospm/busmgr
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/busmgr/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/busmgr/CVS/Root
--- linux-2.4.20/drivers/acpi/ospm/busmgr/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/busmgr/CVS/Root	2005-01-06 23:01:15.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/busmgr/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/busmgr/CVS/Tag
--- linux-2.4.20/drivers/acpi/ospm/busmgr/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/busmgr/CVS/Tag	2005-01-06 23:01:16.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/busmgr/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/busmgr/.cvsignore
--- linux-2.4.20/drivers/acpi/ospm/busmgr/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/busmgr/.cvsignore	2001-08-21 22:24:08.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/button/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/button/CVS/Entries
--- linux-2.4.20/drivers/acpi/ospm/button/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/button/CVS/Entries	2005-01-06 23:01:16.000000000 -0600
@@ -0,0 +1,5 @@
+/.cvsignore/1.1/Wed Aug 22 03:24:09 2001/-ko/Tlinux_2_4_20
+/Makefile/1.1/Wed Aug 22 03:24:09 2001/-ko/Tlinux_2_4_20
+/bn.c/1.3/Tue Nov  6 07:55:54 2001/-ko/Tlinux_2_4_20
+/bn_osl.c/1.3.2.1/Sat Dec 29 05:37:52 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/button/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/button/CVS/Repository
--- linux-2.4.20/drivers/acpi/ospm/button/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/button/CVS/Repository	2005-01-06 23:01:16.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/acpi/ospm/button
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/button/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/button/CVS/Root
--- linux-2.4.20/drivers/acpi/ospm/button/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/button/CVS/Root	2005-01-06 23:01:16.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/button/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/button/CVS/Tag
--- linux-2.4.20/drivers/acpi/ospm/button/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/button/CVS/Tag	2005-01-06 23:01:16.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/button/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/button/.cvsignore
--- linux-2.4.20/drivers/acpi/ospm/button/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/button/.cvsignore	2001-08-21 22:24:09.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/CVS/Entries
--- linux-2.4.20/drivers/acpi/ospm/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/CVS/Entries	2005-01-06 23:08:13.000000000 -0600
@@ -0,0 +1,11 @@
+/.cvsignore/1.1/Wed Aug 22 03:24:08 2001/-ko/Tlinux_2_4_20
+/Makefile/1.1/Wed Aug 22 03:24:08 2001/-ko/Tlinux_2_4_20
+D/ac_adapter////
+D/battery////
+D/busmgr////
+D/button////
+D/ec////
+D/include////
+D/processor////
+D/system////
+D/thermal////
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/CVS/Repository
--- linux-2.4.20/drivers/acpi/ospm/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/CVS/Repository	2005-01-06 23:01:15.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/acpi/ospm
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/CVS/Root
--- linux-2.4.20/drivers/acpi/ospm/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/CVS/Root	2005-01-06 23:01:15.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/CVS/Tag
--- linux-2.4.20/drivers/acpi/ospm/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/CVS/Tag	2005-01-06 23:01:15.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/.cvsignore
--- linux-2.4.20/drivers/acpi/ospm/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/.cvsignore	2001-08-21 22:24:08.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/ec/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ec/CVS/Entries
--- linux-2.4.20/drivers/acpi/ospm/ec/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ec/CVS/Entries	2005-01-06 23:01:16.000000000 -0600
@@ -0,0 +1,8 @@
+/.cvsignore/1.1/Wed Aug 22 03:24:09 2001/-ko/Tlinux_2_4_20
+/Makefile/1.1/Wed Aug 22 03:24:09 2001/-ko/Tlinux_2_4_20
+/ec_osl.c/1.3.2.1/Sat Dec 29 05:37:52 2001/-ko/Tlinux_2_4_20
+/ecgpe.c/1.2/Fri Oct 19 01:23:59 2001/-ko/Tlinux_2_4_20
+/ecmain.c/1.3/Tue Nov  6 07:55:54 2001/-ko/Tlinux_2_4_20
+/ecspace.c/1.3/Tue Nov  6 07:55:54 2001/-ko/Tlinux_2_4_20
+/ectransx.c/1.2.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/ec/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ec/CVS/Repository
--- linux-2.4.20/drivers/acpi/ospm/ec/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ec/CVS/Repository	2005-01-06 23:01:16.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/acpi/ospm/ec
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/ec/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ec/CVS/Root
--- linux-2.4.20/drivers/acpi/ospm/ec/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ec/CVS/Root	2005-01-06 23:01:16.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/ec/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ec/CVS/Tag
--- linux-2.4.20/drivers/acpi/ospm/ec/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ec/CVS/Tag	2005-01-06 23:01:16.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/ec/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ec/.cvsignore
--- linux-2.4.20/drivers/acpi/ospm/ec/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ec/.cvsignore	2001-08-21 22:24:09.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/include/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/include/CVS/Entries
--- linux-2.4.20/drivers/acpi/ospm/include/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/include/CVS/Entries	2005-01-06 23:01:16.000000000 -0600
@@ -0,0 +1,10 @@
+/ac.h/1.2/Fri Oct 19 01:23:59 2001/-ko/Tlinux_2_4_20
+/bm.h/1.2/Fri Oct 19 01:23:59 2001/-ko/Tlinux_2_4_20
+/bmpower.h/1.2/Fri Oct 19 01:23:59 2001/-ko/Tlinux_2_4_20
+/bn.h/1.3/Tue Nov  6 07:55:54 2001/-ko/Tlinux_2_4_20
+/bt.h/1.3/Tue Nov  6 07:55:54 2001/-ko/Tlinux_2_4_20
+/ec.h/1.2/Fri Oct 19 01:23:59 2001/-ko/Tlinux_2_4_20
+/pr.h/1.3/Tue Nov  6 07:55:54 2001/-ko/Tlinux_2_4_20
+/sm.h/1.2/Fri Oct 19 01:23:59 2001/-ko/Tlinux_2_4_20
+/tz.h/1.3/Tue Nov  6 07:55:54 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/include/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/include/CVS/Repository
--- linux-2.4.20/drivers/acpi/ospm/include/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/include/CVS/Repository	2005-01-06 23:01:16.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/acpi/ospm/include
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/include/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/include/CVS/Root
--- linux-2.4.20/drivers/acpi/ospm/include/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/include/CVS/Root	2005-01-06 23:01:16.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/include/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/include/CVS/Tag
--- linux-2.4.20/drivers/acpi/ospm/include/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/include/CVS/Tag	2005-01-06 23:01:16.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/processor/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/processor/CVS/Entries
--- linux-2.4.20/drivers/acpi/ospm/processor/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/processor/CVS/Entries	2005-01-06 23:01:16.000000000 -0600
@@ -0,0 +1,7 @@
+/.cvsignore/1.1/Wed Aug 22 03:24:09 2001/-ko/Tlinux_2_4_20
+/Makefile/1.1/Wed Aug 22 03:24:09 2001/-ko/Tlinux_2_4_20
+/pr.c/1.3/Tue Nov  6 07:55:54 2001/-ko/Tlinux_2_4_20
+/pr_osl.c/1.4.2.1/Sat Dec 29 05:37:52 2001/-ko/Tlinux_2_4_20
+/prperf.c/1.3/Tue Nov  6 07:55:54 2001/-ko/Tlinux_2_4_20
+/prpower.c/1.3/Tue Nov  6 07:55:54 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/processor/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/processor/CVS/Repository
--- linux-2.4.20/drivers/acpi/ospm/processor/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/processor/CVS/Repository	2005-01-06 23:01:16.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/acpi/ospm/processor
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/processor/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/processor/CVS/Root
--- linux-2.4.20/drivers/acpi/ospm/processor/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/processor/CVS/Root	2005-01-06 23:01:16.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/processor/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/processor/CVS/Tag
--- linux-2.4.20/drivers/acpi/ospm/processor/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/processor/CVS/Tag	2005-01-06 23:01:16.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/processor/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/processor/.cvsignore
--- linux-2.4.20/drivers/acpi/ospm/processor/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/processor/.cvsignore	2001-08-21 22:24:09.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/system/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/system/CVS/Entries
--- linux-2.4.20/drivers/acpi/ospm/system/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/system/CVS/Entries	2005-01-06 23:01:16.000000000 -0600
@@ -0,0 +1,5 @@
+/.cvsignore/1.1/Wed Aug 22 03:24:09 2001/-ko/Tlinux_2_4_20
+/Makefile/1.1/Wed Aug 22 03:24:09 2001/-ko/Tlinux_2_4_20
+/sm.c/1.3/Tue Nov  6 07:55:54 2001/-ko/Tlinux_2_4_20
+/sm_osl.c/1.3.2.2/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/system/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/system/CVS/Repository
--- linux-2.4.20/drivers/acpi/ospm/system/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/system/CVS/Repository	2005-01-06 23:01:16.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/acpi/ospm/system
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/system/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/system/CVS/Root
--- linux-2.4.20/drivers/acpi/ospm/system/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/system/CVS/Root	2005-01-06 23:01:16.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/system/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/system/CVS/Tag
--- linux-2.4.20/drivers/acpi/ospm/system/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/system/CVS/Tag	2005-01-06 23:01:16.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/system/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/system/.cvsignore
--- linux-2.4.20/drivers/acpi/ospm/system/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/system/.cvsignore	2001-08-21 22:24:09.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/thermal/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/thermal/CVS/Entries
--- linux-2.4.20/drivers/acpi/ospm/thermal/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/thermal/CVS/Entries	2005-01-06 23:01:16.000000000 -0600
@@ -0,0 +1,6 @@
+/.cvsignore/1.1/Wed Aug 22 03:24:15 2001/-ko/Tlinux_2_4_20
+/Makefile/1.1/Wed Aug 22 03:24:15 2001/-ko/Tlinux_2_4_20
+/tz.c/1.3/Tue Nov  6 07:55:54 2001/-ko/Tlinux_2_4_20
+/tz_osl.c/1.4.2.1/Sat Dec 29 05:37:52 2001/-ko/Tlinux_2_4_20
+/tzpolicy.c/1.3.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/thermal/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/thermal/CVS/Repository
--- linux-2.4.20/drivers/acpi/ospm/thermal/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/thermal/CVS/Repository	2005-01-06 23:01:16.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/acpi/ospm/thermal
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/thermal/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/thermal/CVS/Root
--- linux-2.4.20/drivers/acpi/ospm/thermal/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/thermal/CVS/Root	2005-01-06 23:01:16.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/thermal/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/thermal/CVS/Tag
--- linux-2.4.20/drivers/acpi/ospm/thermal/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/thermal/CVS/Tag	2005-01-06 23:01:16.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/thermal/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/thermal/.cvsignore
--- linux-2.4.20/drivers/acpi/ospm/thermal/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/thermal/.cvsignore	2001-08-21 22:24:15.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/acpi/parser/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/parser/CVS/Entries
--- linux-2.4.20/drivers/acpi/parser/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/parser/CVS/Entries	2005-01-06 23:01:17.000000000 -0600
@@ -0,0 +1,11 @@
+/.cvsignore/1.1/Mon Jan 15 04:16:44 2001/-ko/Tlinux_2_4_20
+/Makefile/1.3/Wed Aug 22 03:24:15 2001/-ko/Tlinux_2_4_20
+/psargs.c/1.7/Tue Nov  6 07:55:54 2001/-ko/Tlinux_2_4_20
+/psopcode.c/1.7/Tue Nov  6 07:55:54 2001/-ko/Tlinux_2_4_20
+/psparse.c/1.7/Tue Nov  6 07:55:55 2001/-ko/Tlinux_2_4_20
+/psscope.c/1.7/Tue Nov  6 07:55:55 2001/-ko/Tlinux_2_4_20
+/pstree.c/1.7/Tue Nov  6 07:55:55 2001/-ko/Tlinux_2_4_20
+/psutils.c/1.7/Tue Nov  6 07:55:55 2001/-ko/Tlinux_2_4_20
+/pswalk.c/1.7/Tue Nov  6 07:55:55 2001/-ko/Tlinux_2_4_20
+/psxface.c/1.7/Tue Nov  6 07:55:55 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/acpi/parser/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/parser/CVS/Repository
--- linux-2.4.20/drivers/acpi/parser/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/parser/CVS/Repository	2005-01-06 23:01:16.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/acpi/parser
diff -urNd -urNd linux-2.4.20/drivers/acpi/parser/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/parser/CVS/Root
--- linux-2.4.20/drivers/acpi/parser/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/parser/CVS/Root	2005-01-06 23:01:16.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/acpi/parser/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/parser/CVS/Tag
--- linux-2.4.20/drivers/acpi/parser/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/parser/CVS/Tag	2005-01-06 23:01:17.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/acpi/parser/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/parser/.cvsignore
--- linux-2.4.20/drivers/acpi/parser/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/parser/.cvsignore	2001-01-14 22:16:44.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/acpi/resources/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/resources/CVS/Entries
--- linux-2.4.20/drivers/acpi/resources/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/resources/CVS/Entries	2005-01-06 23:01:17.000000000 -0600
@@ -0,0 +1,14 @@
+/.cvsignore/1.1/Mon Jan 15 04:16:44 2001/-ko/Tlinux_2_4_20
+/Makefile/1.3/Wed Aug 22 03:24:15 2001/-ko/Tlinux_2_4_20
+/rsaddr.c/1.6/Fri Oct 19 01:24:00 2001/-ko/Tlinux_2_4_20
+/rscalc.c/1.7/Fri Oct 19 01:24:00 2001/-ko/Tlinux_2_4_20
+/rscreate.c/1.7/Fri Oct 19 01:24:00 2001/-ko/Tlinux_2_4_20
+/rsdump.c/1.7/Fri Oct 19 01:24:00 2001/-ko/Tlinux_2_4_20
+/rsio.c/1.6/Fri Oct 19 01:24:00 2001/-ko/Tlinux_2_4_20
+/rsirq.c/1.6/Fri Oct 19 01:24:00 2001/-ko/Tlinux_2_4_20
+/rslist.c/1.7/Fri Oct 19 01:24:00 2001/-ko/Tlinux_2_4_20
+/rsmemory.c/1.6/Fri Oct 19 01:24:00 2001/-ko/Tlinux_2_4_20
+/rsmisc.c/1.6/Fri Oct 19 01:24:01 2001/-ko/Tlinux_2_4_20
+/rsutils.c/1.7/Tue Nov  6 07:55:55 2001/-ko/Tlinux_2_4_20
+/rsxface.c/1.7/Tue Nov  6 07:55:55 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/acpi/resources/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/resources/CVS/Repository
--- linux-2.4.20/drivers/acpi/resources/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/resources/CVS/Repository	2005-01-06 23:01:17.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/acpi/resources
diff -urNd -urNd linux-2.4.20/drivers/acpi/resources/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/resources/CVS/Root
--- linux-2.4.20/drivers/acpi/resources/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/resources/CVS/Root	2005-01-06 23:01:17.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/acpi/resources/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/resources/CVS/Tag
--- linux-2.4.20/drivers/acpi/resources/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/resources/CVS/Tag	2005-01-06 23:01:17.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/acpi/resources/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/resources/.cvsignore
--- linux-2.4.20/drivers/acpi/resources/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/resources/.cvsignore	2001-01-14 22:16:44.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/acpi/tables/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/tables/CVS/Entries
--- linux-2.4.20/drivers/acpi/tables/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/tables/CVS/Entries	2005-01-06 23:01:17.000000000 -0600
@@ -0,0 +1,9 @@
+/.cvsignore/1.1/Mon Jan 15 04:16:44 2001/-ko/Tlinux_2_4_20
+/Makefile/1.3/Wed Aug 22 03:24:16 2001/-ko/Tlinux_2_4_20
+/tbconvrt.c/1.6/Tue Nov  6 07:55:55 2001/-ko/Tlinux_2_4_20
+/tbget.c/1.7/Tue Nov  6 07:55:55 2001/-ko/Tlinux_2_4_20
+/tbinstal.c/1.7/Tue Nov  6 07:55:55 2001/-ko/Tlinux_2_4_20
+/tbutils.c/1.7/Tue Nov  6 07:55:55 2001/-ko/Tlinux_2_4_20
+/tbxface.c/1.7/Tue Nov  6 07:55:55 2001/-ko/Tlinux_2_4_20
+/tbxfroot.c/1.5/Tue Nov  6 07:55:55 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/acpi/tables/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/tables/CVS/Repository
--- linux-2.4.20/drivers/acpi/tables/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/tables/CVS/Repository	2005-01-06 23:01:17.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/acpi/tables
diff -urNd -urNd linux-2.4.20/drivers/acpi/tables/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/tables/CVS/Root
--- linux-2.4.20/drivers/acpi/tables/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/tables/CVS/Root	2005-01-06 23:01:17.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/acpi/tables/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/tables/CVS/Tag
--- linux-2.4.20/drivers/acpi/tables/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/tables/CVS/Tag	2005-01-06 23:01:17.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/acpi/tables/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/tables/.cvsignore
--- linux-2.4.20/drivers/acpi/tables/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/tables/.cvsignore	2001-01-14 22:16:44.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/acpi/utilities/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/utilities/CVS/Entries
--- linux-2.4.20/drivers/acpi/utilities/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/utilities/CVS/Entries	2005-01-06 23:01:17.000000000 -0600
@@ -0,0 +1,14 @@
+/.cvsignore/1.1/Wed Aug 22 03:24:16 2001/-ko/Tlinux_2_4_20
+/Makefile/1.1/Wed Aug 22 03:24:16 2001/-ko/Tlinux_2_4_20
+/utalloc.c/1.3/Tue Nov  6 07:55:55 2001/-ko/Tlinux_2_4_20
+/utcopy.c/1.3/Tue Nov  6 07:55:55 2001/-ko/Tlinux_2_4_20
+/utdebug.c/1.3.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/utdelete.c/1.3/Tue Nov  6 07:55:55 2001/-ko/Tlinux_2_4_20
+/uteval.c/1.3/Tue Nov  6 07:55:55 2001/-ko/Tlinux_2_4_20
+/utglobal.c/1.3/Tue Nov  6 07:55:55 2001/-ko/Tlinux_2_4_20
+/utinit.c/1.3/Tue Nov  6 07:55:55 2001/-ko/Tlinux_2_4_20
+/utmath.c/1.1/Tue Nov  6 07:55:55 2001/-ko/Tlinux_2_4_20
+/utmisc.c/1.3/Tue Nov  6 07:55:55 2001/-ko/Tlinux_2_4_20
+/utobject.c/1.3/Tue Nov  6 07:55:55 2001/-ko/Tlinux_2_4_20
+/utxface.c/1.3/Tue Nov  6 07:55:55 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/acpi/utilities/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/utilities/CVS/Repository
--- linux-2.4.20/drivers/acpi/utilities/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/utilities/CVS/Repository	2005-01-06 23:01:17.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/acpi/utilities
diff -urNd -urNd linux-2.4.20/drivers/acpi/utilities/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/utilities/CVS/Root
--- linux-2.4.20/drivers/acpi/utilities/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/utilities/CVS/Root	2005-01-06 23:01:17.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/acpi/utilities/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/utilities/CVS/Tag
--- linux-2.4.20/drivers/acpi/utilities/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/utilities/CVS/Tag	2005-01-06 23:01:17.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/acpi/utilities/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/utilities/.cvsignore
--- linux-2.4.20/drivers/acpi/utilities/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/utilities/.cvsignore	2001-08-21 22:24:16.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/ap1000/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/ap1000/CVS/Entries
--- linux-2.4.20/drivers/ap1000/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/ap1000/CVS/Entries	2005-01-06 23:01:17.000000000 -0600
@@ -0,0 +1,2 @@
+/.cvsignore/1.1/Sat Oct  9 00:01:09 1999/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/ap1000/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/ap1000/CVS/Repository
--- linux-2.4.20/drivers/ap1000/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/ap1000/CVS/Repository	2005-01-06 23:01:17.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/ap1000
diff -urNd -urNd linux-2.4.20/drivers/ap1000/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/ap1000/CVS/Root
--- linux-2.4.20/drivers/ap1000/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/ap1000/CVS/Root	2005-01-06 23:01:17.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/ap1000/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/ap1000/CVS/Tag
--- linux-2.4.20/drivers/ap1000/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/ap1000/CVS/Tag	2005-01-06 23:01:17.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/ap1000/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/ap1000/.cvsignore
--- linux-2.4.20/drivers/ap1000/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/ap1000/.cvsignore	1999-10-08 19:01:09.000000000 -0500
@@ -0,0 +1,4 @@
+.depend
+.*.flags
+aic7xxx_asm
+aic7xxx_seq.h
diff -urNd -urNd linux-2.4.20/drivers/atm/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/atm/CVS/Entries
--- linux-2.4.20/drivers/atm/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/atm/CVS/Entries	2005-01-06 23:01:21.000000000 -0600
@@ -0,0 +1,47 @@
+/.cvsignore/1.1/Sat Oct  9 00:01:09 1999/-ko/Tlinux_2_4_20
+/Config.in/1.10/Sun Dec  2 11:34:40 2001/-ko/Tlinux_2_4_20
+/Makefile/1.13/Sun Dec  2 11:34:40 2001/-ko/Tlinux_2_4_20
+/ambassador.c/1.12/Fri Oct 19 01:24:02 2001/-ko/Tlinux_2_4_20
+/ambassador.h/1.4/Fri Oct 19 01:24:02 2001/-ko/Tlinux_2_4_20
+/atmdev_init.c/1.7/Tue Nov  6 07:55:55 2001/-ko/Tlinux_2_4_20
+/atmsar11.data/1.2/Wed Feb 23 00:41:06 2000/-ko/Tlinux_2_4_20
+/atmsar11.regions/1.2/Wed Feb 23 00:41:06 2000/-ko/Tlinux_2_4_20
+/atmsar11.start/1.2/Wed Feb 23 00:41:06 2000/-ko/Tlinux_2_4_20
+/atmtcp.c/1.7.2.1/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
+/eni.c/1.11.2.1/Sat Dec 29 05:37:52 2001/-ko/Tlinux_2_4_20
+/eni.h/1.6/Sun Jul  9 02:54:55 2000/-ko/Tlinux_2_4_20
+/firestream.c/1.5.2.3/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
+/firestream.h/1.3/Fri Oct 19 01:24:02 2001/-ko/Tlinux_2_4_20
+/fore200e.c/1.13.2.1/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
+/fore200e.h/1.3/Fri Apr 28 01:09:35 2000/-ko/Tlinux_2_4_20
+/fore200e_firmware_copyright/1.1/Thu Mar  2 02:36:53 2000/-ko/Tlinux_2_4_20
+/fore200e_mkfirm.c/1.2/Wed Aug 22 03:24:16 2001/-ko/Tlinux_2_4_20
+/horizon.c/1.8.2.1/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
+/horizon.h/1.2/Mon Mar 27 23:54:21 2000/-ko/Tlinux_2_4_20
+/idt77105.c/1.6/Fri Oct 19 01:24:02 2001/-ko/Tlinux_2_4_20
+/idt77105.h/1.1/Wed Feb 23 00:41:06 2000/-ko/Tlinux_2_4_20
+/idt77252.c/1.1.2.1/Sat Dec 29 05:37:52 2001/-ko/Tlinux_2_4_20
+/idt77252.h/1.1/Sun Dec  2 11:34:40 2001/-ko/Tlinux_2_4_20
+/idt77252_tables.h/1.1/Sun Dec  2 11:34:40 2001/-ko/Tlinux_2_4_20
+/iphase.c/1.12.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/iphase.h/1.2/Fri Mar  9 20:33:55 2001/-ko/Tlinux_2_4_20
+/lanai.c/1.1.2.1/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
+/midway.h/1.1/Sat Oct  9 00:01:09 1999/-ko/Tlinux_2_4_20
+/nicstar.c/1.16/Fri Oct 19 01:24:03 2001/-ko/Tlinux_2_4_20
+/nicstar.h/1.6/Tue Nov  6 07:55:55 2001/-ko/Tlinux_2_4_20
+/nicstarmac.c/1.1/Sat Oct  9 00:01:09 1999/-ko/Tlinux_2_4_20
+/nicstarmac.copyright/1.1/Sat Oct  9 00:01:09 1999/-ko/Tlinux_2_4_20
+/nicstarmac.h/1.1/Sat Oct  9 00:01:09 1999/-ko/Tlinux_2_4_20
+/pca200e.data/1.1/Thu Mar  2 02:36:53 2000/-ko/Tlinux_2_4_20
+/pca200e_ecd.data/1.1/Thu Mar  2 02:36:53 2000/-ko/Tlinux_2_4_20
+/sba200e_ecd.data/1.1/Thu Mar  2 02:36:53 2000/-ko/Tlinux_2_4_20
+/suni.c/1.6/Sun Dec  2 11:34:40 2001/-ko/Tlinux_2_4_20
+/suni.h/1.2/Mon Mar 27 23:54:21 2000/-ko/Tlinux_2_4_20
+/tonga.h/1.1/Sat Oct  9 00:01:09 1999/-ko/Tlinux_2_4_20
+/uPD98401.h/1.1/Sat Oct  9 00:01:09 1999/-ko/Tlinux_2_4_20
+/uPD98402.c/1.6/Fri Oct 19 01:24:03 2001/-ko/Tlinux_2_4_20
+/uPD98402.h/1.1/Sat Oct  9 00:01:09 1999/-ko/Tlinux_2_4_20
+/zatm.c/1.10/Fri Oct 19 01:24:03 2001/-ko/Tlinux_2_4_20
+/zatm.h/1.1/Sat Oct  9 00:01:09 1999/-ko/Tlinux_2_4_20
+/zeprom.h/1.1/Sat Oct  9 00:01:09 1999/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/atm/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/atm/CVS/Repository
--- linux-2.4.20/drivers/atm/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/atm/CVS/Repository	2005-01-06 23:01:17.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/atm
diff -urNd -urNd linux-2.4.20/drivers/atm/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/atm/CVS/Root
--- linux-2.4.20/drivers/atm/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/atm/CVS/Root	2005-01-06 23:01:17.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/atm/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/atm/CVS/Tag
--- linux-2.4.20/drivers/atm/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/atm/CVS/Tag	2005-01-06 23:01:21.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/atm/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/atm/.cvsignore
--- linux-2.4.20/drivers/atm/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/atm/.cvsignore	1999-10-08 19:01:09.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/block/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/block/CVS/Entries
--- linux-2.4.20/drivers/block/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/block/CVS/Entries	2005-01-06 23:08:13.000000000 -0600
@@ -0,0 +1,35 @@
+/.cvsignore/1.2/Tue Mar 17 22:09:07 1998/-ko/Tlinux_2_4_20
+/Config.in/1.40.2.2/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
+/DAC960.c/1.26.2.2/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
+/DAC960.h/1.9/Tue Nov  6 00:55:00 2001/-ko/Tlinux_2_4_20
+/Makefile/1.31.2.2/Wed Jun 26 22:35:31 2002/-ko/Tlinux_2_4_20
+/acsi.c/1.23.2.1/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
+/acsi_slm.c/1.17.2.1/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
+/amiflop.c/1.22.2.1/Wed Jun 26 22:35:31 2002/-ko/Tlinux_2_4_20
+/ataflop.c/1.22.2.1/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
+/blkpg.c/1.7.2.2/Wed Jun 26 22:35:31 2002/-ko/Tlinux_2_4_20
+/cciss.c/1.12.2.3/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
+/cciss.h/1.4.2.2/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
+/cciss_cmd.h/1.4.2.1/Wed Jun 26 22:35:31 2002/-ko/Tlinux_2_4_20
+/cciss_scsi.c/1.1.2.2/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
+/cciss_scsi.h/1.1.2.1/Wed Jun 26 22:35:31 2002/-ko/Tlinux_2_4_20
+/cpqarray.c/1.25.2.4/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
+/cpqarray.h/1.7.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
+/elevator.c/1.10.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/floppy.c/1.42.2.3/Wed Jun 26 22:35:31 2002/-ko/Tlinux_2_4_20
+/genhd.c/1.28.2.5/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/ida_cmd.h/1.5/Tue Nov  6 07:55:56 2001/-ko/Tlinux_2_4_20
+/ida_ioctl.h/1.4.2.1/Wed Jun 26 22:35:31 2002/-ko/Tlinux_2_4_20
+/ll_rw_blk.c/1.61.2.5/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/loop.c/1.38.2.3/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
+/nbd.c/1.31.2.2/Wed Jun 26 22:35:31 2002/-ko/Tlinux_2_4_20
+/ps2esdi.c/1.24.2.1/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
+/rd.c/1.41.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/smart1,2.h/1.4.2.1/Wed Jun 26 22:35:31 2002/-ko/Tlinux_2_4_20
+/swim3.c/1.18.2.2/Wed Jun 26 22:35:31 2002/-ko/Tlinux_2_4_20
+/swim_iop.c/1.7.2.1/Wed Jun 26 22:35:31 2002/-ko/Tlinux_2_4_20
+/umem.c/1.1.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
+/xd.c/1.28.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
+/xd.h/1.9.4.1/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
+/z2ram.c/1.14.2.1/Wed Jun 26 22:35:31 2002/-ko/Tlinux_2_4_20
+D/paride////
diff -urNd -urNd linux-2.4.20/drivers/block/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/block/CVS/Repository
--- linux-2.4.20/drivers/block/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/block/CVS/Repository	2005-01-06 23:01:21.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/block
diff -urNd -urNd linux-2.4.20/drivers/block/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/block/CVS/Root
--- linux-2.4.20/drivers/block/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/block/CVS/Root	2005-01-06 23:01:21.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/block/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/block/CVS/Tag
--- linux-2.4.20/drivers/block/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/block/CVS/Tag	2005-01-06 23:01:22.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/block/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/block/.cvsignore
--- linux-2.4.20/drivers/block/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/block/.cvsignore	1998-03-17 16:09:07.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/block/paride/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/block/paride/CVS/Entries
--- linux-2.4.20/drivers/block/paride/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/block/paride/CVS/Entries	2005-01-06 23:01:23.000000000 -0600
@@ -0,0 +1,31 @@
+/.cvsignore/1.1/Tue Mar 17 22:26:47 1998/-ko/Tlinux_2_4_20
+/Config.in/1.6.2.1/Sat Dec 29 05:37:53 2001/-ko/Tlinux_2_4_20
+/Makefile/1.9/Mon Nov  5 20:15:31 2001/-ko/Tlinux_2_4_20
+/aten.c/1.5/Tue Nov  6 00:55:01 2001/-ko/Tlinux_2_4_20
+/bpck.c/1.6/Tue Nov  6 00:55:01 2001/-ko/Tlinux_2_4_20
+/bpck6.c/1.3.2.1/Wed Jun 26 22:35:31 2002/-ko/Tlinux_2_4_20
+/comm.c/1.5/Tue Nov  6 00:55:01 2001/-ko/Tlinux_2_4_20
+/dstr.c/1.5/Tue Nov  6 00:55:01 2001/-ko/Tlinux_2_4_20
+/epat.c/1.6.2.1/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
+/epia.c/1.5/Tue Nov  6 00:55:01 2001/-ko/Tlinux_2_4_20
+/fit2.c/1.4/Tue Nov  6 00:55:01 2001/-ko/Tlinux_2_4_20
+/fit3.c/1.4/Tue Nov  6 00:55:01 2001/-ko/Tlinux_2_4_20
+/friq.c/1.4/Tue Nov  6 00:55:01 2001/-ko/Tlinux_2_4_20
+/frpw.c/1.7/Tue Nov  6 00:55:01 2001/-ko/Tlinux_2_4_20
+/jumbo/1.3/Fri May 12 21:06:14 2000/-ko/Tlinux_2_4_20
+/kbic.c/1.5/Tue Nov  6 00:55:01 2001/-ko/Tlinux_2_4_20
+/ktti.c/1.4/Tue Nov  6 00:55:01 2001/-ko/Tlinux_2_4_20
+/mkd/1.1/Tue Aug 25 09:16:26 1998/-ko/Tlinux_2_4_20
+/on20.c/1.5/Tue Nov  6 00:55:01 2001/-ko/Tlinux_2_4_20
+/on26.c/1.8/Tue Nov  6 00:55:01 2001/-ko/Tlinux_2_4_20
+/paride.c/1.13.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
+/paride.h/1.4.4.1/Wed Jun 26 22:35:31 2002/-ko/Tlinux_2_4_20
+/pcd.c/1.13.2.1/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
+/pd.c/1.21.2.1/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
+/pf.c/1.18.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
+/pg.c/1.15.2.2/Wed Jun 26 22:35:31 2002/-ko/Tlinux_2_4_20
+/ppc6lnx.c/1.3.2.1/Wed Jun 26 22:35:31 2002/-ko/Tlinux_2_4_20
+/pseudo.h/1.6.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
+/pt.c/1.17.2.2/Wed Jun 26 22:35:32 2002/-ko/Tlinux_2_4_20
+/setup.h/1.3/Fri Mar  9 20:33:56 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/block/paride/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/block/paride/CVS/Repository
--- linux-2.4.20/drivers/block/paride/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/block/paride/CVS/Repository	2005-01-06 23:01:22.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/block/paride
diff -urNd -urNd linux-2.4.20/drivers/block/paride/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/block/paride/CVS/Root
--- linux-2.4.20/drivers/block/paride/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/block/paride/CVS/Root	2005-01-06 23:01:22.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/block/paride/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/block/paride/CVS/Tag
--- linux-2.4.20/drivers/block/paride/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/block/paride/CVS/Tag	2005-01-06 23:01:23.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/block/paride/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/block/paride/.cvsignore
--- linux-2.4.20/drivers/block/paride/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/block/paride/.cvsignore	1998-03-17 16:26:47.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/bluetooth/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/bluetooth/CVS/Entries
--- linux-2.4.20/drivers/bluetooth/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/bluetooth/CVS/Entries	2005-01-06 23:01:23.000000000 -0600
@@ -0,0 +1,15 @@
+/.cvsignore/1.1/Fri Aug 24 03:38:36 2001/-ko/Tlinux_2_4_20
+/Config.in/1.2.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
+/Makefile/1.2.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
+/bluecard_cs.c/1.2.2.1/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
+/bt3c_cs.c/1.1.2.1/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
+/dtl1_cs.c/1.1.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
+/hci_h4.c/1.1.2.1/Wed Jun 26 22:35:32 2002/-ko/Tlinux_2_4_20
+/hci_h4.h/1.1.2.1/Wed Jun 26 22:35:32 2002/-ko/Tlinux_2_4_20
+/hci_ldisc.c/1.1.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
+/hci_uart.h/1.1.2.1/Wed Jun 26 22:35:32 2002/-ko/Tlinux_2_4_20
+/hci_usb.c/1.3.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
+/hci_usb.h/1.1.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
+/hci_vhci.c/1.1.2.1/Wed Jun 26 22:35:32 2002/-ko/Tlinux_2_4_20
+/hci_vhci.h/1.1.2.1/Wed Jun 26 22:35:32 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/bluetooth/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/bluetooth/CVS/Repository
--- linux-2.4.20/drivers/bluetooth/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/bluetooth/CVS/Repository	2005-01-06 23:01:23.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/bluetooth
diff -urNd -urNd linux-2.4.20/drivers/bluetooth/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/bluetooth/CVS/Root
--- linux-2.4.20/drivers/bluetooth/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/bluetooth/CVS/Root	2005-01-06 23:01:23.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/bluetooth/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/bluetooth/CVS/Tag
--- linux-2.4.20/drivers/bluetooth/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/bluetooth/CVS/Tag	2005-01-06 23:01:23.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/bluetooth/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/bluetooth/.cvsignore
--- linux-2.4.20/drivers/bluetooth/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/bluetooth/.cvsignore	2001-08-23 22:38:36.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/cdrom/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/cdrom/CVS/Entries
--- linux-2.4.20/drivers/cdrom/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/cdrom/CVS/Entries	2005-01-06 23:01:24.000000000 -0600
@@ -0,0 +1,30 @@
+/.cvsignore/1.2/Tue Mar 17 22:09:28 1998/-ko/Tlinux_2_4_20
+/Config.in/1.6/Fri Feb 18 00:24:34 2000/-ko/Tlinux_2_4_20
+/Makefile/1.7/Wed Jan 10 17:17:58 2001/-ko/Tlinux_2_4_20
+/aztcd.c/1.19/Tue Nov  6 07:55:56 2001/-ko/Tlinux_2_4_20
+/aztcd.h/1.1/Tue Dec 16 06:06:32 1997/-ko/Tlinux_2_4_20
+/cdrom.c/1.36.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
+/cdu31a.c/1.17.2.1/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
+/cdu31a.h/1.1/Tue Dec 16 06:06:33 1997/-ko/Tlinux_2_4_20
+/cm206.c/1.21/Tue Nov  6 07:55:57 2001/-ko/Tlinux_2_4_20
+/cm206.h/1.2/Fri Mar  9 20:33:56 2001/-ko/Tlinux_2_4_20
+/gscd.c/1.16/Tue Nov  6 07:55:57 2001/-ko/Tlinux_2_4_20
+/gscd.h/1.2/Sat Jul  8 00:53:04 2000/-ko/Tlinux_2_4_20
+/isp16.c/1.5/Fri Oct 19 01:24:09 2001/-ko/Tlinux_2_4_20
+/isp16.h/1.2/Fri Feb  4 07:40:32 2000/-ko/Tlinux_2_4_20
+/mcd.c/1.20/Tue Nov  6 07:55:57 2001/-ko/Tlinux_2_4_20
+/mcd.h/1.4/Fri Oct 19 01:24:09 2001/-ko/Tlinux_2_4_20
+/mcdx.c/1.18/Tue Nov  6 07:55:57 2001/-ko/Tlinux_2_4_20
+/mcdx.h/1.3/Sun Jun 13 16:31:58 1999/-ko/Tlinux_2_4_20
+/optcd.c/1.18/Tue Nov  6 07:55:57 2001/-ko/Tlinux_2_4_20
+/optcd.h/1.2/Fri Mar  9 20:33:56 2001/-ko/Tlinux_2_4_20
+/sbpcd.c/1.24/Tue Nov  6 07:55:57 2001/-ko/Tlinux_2_4_20
+/sbpcd.h/1.3/Thu Oct  5 01:18:46 2000/-ko/Tlinux_2_4_20
+/sbpcd2.c/1.1.1.1/Sun Jun  1 03:17:43 1997/-ko/Tlinux_2_4_20
+/sbpcd3.c/1.1.1.1/Sun Jun  1 03:17:43 1997/-ko/Tlinux_2_4_20
+/sbpcd4.c/1.1.1.1/Sun Jun  1 03:17:43 1997/-ko/Tlinux_2_4_20
+/sjcd.c/1.18/Tue Nov  6 07:55:57 2001/-ko/Tlinux_2_4_20
+/sjcd.h/1.1/Tue Dec 16 06:06:34 1997/-ko/Tlinux_2_4_20
+/sonycd535.c/1.20/Tue Nov  6 07:55:57 2001/-ko/Tlinux_2_4_20
+/sonycd535.h/1.1/Tue Dec 16 06:06:35 1997/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/cdrom/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/cdrom/CVS/Repository
--- linux-2.4.20/drivers/cdrom/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/cdrom/CVS/Repository	2005-01-06 23:01:23.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/cdrom
diff -urNd -urNd linux-2.4.20/drivers/cdrom/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/cdrom/CVS/Root
--- linux-2.4.20/drivers/cdrom/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/cdrom/CVS/Root	2005-01-06 23:01:23.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/cdrom/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/cdrom/CVS/Tag
--- linux-2.4.20/drivers/cdrom/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/cdrom/CVS/Tag	2005-01-06 23:01:24.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/cdrom/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/cdrom/.cvsignore
--- linux-2.4.20/drivers/cdrom/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/cdrom/.cvsignore	1998-03-17 16:09:28.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/char/agp/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/char/agp/CVS/Entries
--- linux-2.4.20/drivers/char/agp/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/agp/CVS/Entries	2005-01-06 23:01:38.000000000 -0600
@@ -0,0 +1,6 @@
+/.cvsignore/1.1/Wed Aug  9 20:52:45 2000/-ko/Tlinux_2_4_20
+/Makefile/1.4/Thu Apr  5 04:56:13 2001/-ko/Tlinux_2_4_20
+/agp.h/1.16.2.4/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/agpgart_be.c/1.23.2.6/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/agpgart_fe.c/1.12/Sat Sep 22 12:49:18 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/char/agp/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/char/agp/CVS/Repository
--- linux-2.4.20/drivers/char/agp/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/agp/CVS/Repository	2005-01-06 23:01:38.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/char/agp
diff -urNd -urNd linux-2.4.20/drivers/char/agp/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/char/agp/CVS/Root
--- linux-2.4.20/drivers/char/agp/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/agp/CVS/Root	2005-01-06 23:01:38.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/char/agp/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/char/agp/CVS/Tag
--- linux-2.4.20/drivers/char/agp/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/agp/CVS/Tag	2005-01-06 23:01:38.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/char/agp/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/char/agp/.cvsignore
--- linux-2.4.20/drivers/char/agp/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/agp/.cvsignore	2000-08-09 15:52:45.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/char/au1000_ts.c linux-2.4.20-mipscvs-20050106/drivers/char/au1000_ts.c
--- linux-2.4.20/drivers/char/au1000_ts.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/drivers/char/au1000_ts.c	2003-01-24 23:38:40.000000000 -0600
@@ -261,7 +261,7 @@
 calc_clkdiv(int baud)
 {
 	u32 sys_busclk =
-		(get_au1000_speed() / (int)(inl(PM_POWERUP_CONTROL)&0x03) + 2);
+		(get_au1x00_speed() / (int)(inl(SYS_POWERCTRL)&0x03) + 2);
 	return (sys_busclk / (2 * baud)) - 1;
 }
 
@@ -269,7 +269,7 @@
 calc_baudrate(u32 clkdiv)
 {
 	u32 sys_busclk =
-		(get_au1000_speed() / (int)(inl(PM_POWERUP_CONTROL)&0x03) + 2);
+		(get_au1x00_speed() / (int)(inl(SYS_POWERCTRL)&0x03) + 2);
 	return sys_busclk / (2 * (clkdiv + 1));
 }
 
@@ -642,7 +642,7 @@
 	ts->y_plate_ohms = DEFAULT_Y_PLATE_OHMS;
 
 	// set GPIO to SSI0 function
-	outl(inl(PIN_FUNCTION) & ~1, PIN_FUNCTION);
+	outl(inl(SYS_PINFUNC) & ~1, SYS_PINFUNC);
 	
 	// enable SSI0 clock and bring SSI0 out of reset
 	outl(0, SSI0_CONTROL);
diff -urNd -urNd linux-2.4.20/drivers/char/au1000_usbraw.c linux-2.4.20-mipscvs-20050106/drivers/char/au1000_usbraw.c
--- linux-2.4.20/drivers/char/au1000_usbraw.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/au1000_usbraw.c	2002-07-14 18:07:29.000000000 -0500
@@ -0,0 +1,575 @@
+/*
+ * BRIEF MODULE DESCRIPTION
+ *	Au1x00 USB Device-Side Raw Block Driver (function layer)
+ *
+ * Copyright 2001-2002 MontaVista Software Inc.
+ * Author: MontaVista Software, Inc.
+ *		stevel@mvista.com or source@mvista.com
+ *
+ *  This program is free software; you can redistribute	 it and/or modify it
+ *  under  the terms of	 the GNU General  Public License as published by the
+ *  Free Software Foundation;  either version 2 of the	License, or (at your
+ *  option) any later version.
+ *
+ *  THIS  SOFTWARE  IS PROVIDED	  ``AS	IS'' AND   ANY	EXPRESS OR IMPLIED
+ *  WARRANTIES,	  INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
+ *  NO	EVENT  SHALL   THE AUTHOR  BE	 LIABLE FOR ANY	  DIRECT, INDIRECT,
+ *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ *  NOT LIMITED	  TO, PROCUREMENT OF  SUBSTITUTE GOODS	OR SERVICES; LOSS OF
+ *  USE, DATA,	OR PROFITS; OR	BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ *  ANY THEORY OF LIABILITY, WHETHER IN	 CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *  You should have received a copy of the  GNU General Public License along
+ *  with this program; if not, write  to the Free Software Foundation, Inc.,
+ *  675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <linux/config.h>
+#include <linux/kernel.h>
+#include <linux/ioport.h>
+#include <linux/sched.h>
+#include <linux/signal.h>
+#include <linux/errno.h>
+#include <linux/poll.h>
+#include <linux/init.h>
+#include <linux/slab.h>
+#include <linux/fcntl.h>
+#include <linux/module.h>
+#include <linux/spinlock.h>
+#include <linux/list.h>
+#include <linux/smp_lock.h>
+#undef DEBUG
+#include <linux/usb.h>
+
+#include <asm/io.h>
+#include <asm/uaccess.h>
+#include <asm/irq.h>
+#include <asm/au1000.h>
+#include <asm/au1000_usbdev.h>
+
+#define USBRAW_MAJOR 190 // FIXME: need a legal major
+#define USBRAW_NAME "usbraw"
+
+#define MAX_NUM_PORTS 2
+
+#define IN_MAX_PACKET_SIZE  64
+#define OUT_MAX_PACKET_SIZE 64
+
+// FIXME: when Au1x00 endpoints 3 and 5 are fixed, make NUM_PORTS=2
+#define NUM_PORTS 1
+#define NUM_EP 2*NUM_PORTS
+
+#define CONFIG_DESC_LEN \
+ USB_DT_CONFIG_SIZE + USB_DT_INTERFACE_SIZE + NUM_EP*USB_DT_ENDPOINT_SIZE
+
+/* must be power of two */
+#define READ_BUF_SIZE (1<<12)
+
+struct usb_raw_port {
+	unsigned char number;
+	spinlock_t port_lock;
+
+	struct usb_endpoint_descriptor* out_desc;
+	struct usb_endpoint_descriptor* in_desc;
+
+	int out_ep_addr; /* endpoint address of OUT endpoint */
+	int in_ep_addr;  /* endpoint address of IN endpoint */
+	
+	__u8 read_buf[READ_BUF_SIZE]; // FIXME: allocate with get_free_pages
+	int read_nextin, read_nextout;
+	int read_count;
+
+	wait_queue_head_t wait;
+	struct fasync_struct *fasync;     // asynch notification
+
+	int active;	/* someone has this device open */
+	int open_count;	/* number of times this port has been opened */
+};
+
+static struct usb_serial {
+	struct usb_device_descriptor* dev_desc;
+	struct usb_config_descriptor* config_desc;
+	struct usb_interface_descriptor* if_desc;
+	struct usb_string_descriptor * str_desc[6];
+	void* str_desc_buf;
+
+	usbdev_state_t dev_state;
+
+	struct usb_raw_port port[NUM_PORTS];
+} usbraw;
+
+static struct usb_device_descriptor dev_desc = {
+	bLength:USB_DT_DEVICE_SIZE,
+	bDescriptorType:USB_DT_DEVICE,
+	bcdUSB:USBDEV_REV,		//usb rev
+	bDeviceClass:USB_CLASS_PER_INTERFACE,	//class    (none)
+	bDeviceSubClass:0x00,	//subclass (none)
+	bDeviceProtocol:0x00,	//protocol (none)
+	bMaxPacketSize0:USBDEV_EP0_MAX_PACKET_SIZE, //max packet size for ep0
+	idVendor:0x6d04,	//vendor  id
+	idProduct:0x0bc0,	//product id
+	bcdDevice:0x0001,	//BCD rev 0.1
+	iManufacturer:0x01,	//manufactuer string index
+	iProduct:0x02,		//product string index
+	iSerialNumber:0x03,	//serial# string index
+	bNumConfigurations:0x01	//num configurations
+};
+
+static struct usb_endpoint_descriptor ep_desc[] = {
+	{
+		// Bulk IN for Port 0
+		bLength:USB_DT_ENDPOINT_SIZE,
+		bDescriptorType:USB_DT_ENDPOINT,
+		bEndpointAddress:USB_DIR_IN,
+		bmAttributes:USB_ENDPOINT_XFER_BULK,
+		wMaxPacketSize:IN_MAX_PACKET_SIZE,
+		bInterval:0x00	// ignored for bulk
+	},
+	{
+		// Bulk OUT for Port 0
+		bLength:USB_DT_ENDPOINT_SIZE,
+		bDescriptorType:USB_DT_ENDPOINT,
+		bEndpointAddress:USB_DIR_OUT,
+		bmAttributes:USB_ENDPOINT_XFER_BULK,
+		wMaxPacketSize:OUT_MAX_PACKET_SIZE,
+		bInterval:0x00	// ignored for bulk
+	},
+	{
+		// Bulk IN for Port 1
+		bLength:USB_DT_ENDPOINT_SIZE,
+		bDescriptorType:USB_DT_ENDPOINT,
+		bEndpointAddress:USB_DIR_IN,
+		bmAttributes:USB_ENDPOINT_XFER_BULK,
+		wMaxPacketSize:IN_MAX_PACKET_SIZE,
+		bInterval:0x00	// ignored for bulk
+	},
+	{
+		// Bulk OUT for Port 1
+		bLength:USB_DT_ENDPOINT_SIZE,
+		bDescriptorType:USB_DT_ENDPOINT,
+		bEndpointAddress:USB_DIR_OUT,
+		bmAttributes:USB_ENDPOINT_XFER_BULK,
+		wMaxPacketSize:OUT_MAX_PACKET_SIZE,
+		bInterval:0x00	// ignored for bulk
+	}
+};
+
+static struct usb_interface_descriptor if_desc = {
+	bLength:USB_DT_INTERFACE_SIZE,
+	bDescriptorType:USB_DT_INTERFACE,
+	bInterfaceNumber:0x00,
+	bAlternateSetting:0x00,
+	bNumEndpoints:NUM_EP,
+	bInterfaceClass:0xff,
+	bInterfaceSubClass:0xab,
+	bInterfaceProtocol:0x00,
+	iInterface:0x05
+};
+
+static struct usb_config_descriptor config_desc = {
+	bLength:USB_DT_CONFIG_SIZE,
+	bDescriptorType:USB_DT_CONFIG,
+	wTotalLength:CONFIG_DESC_LEN,
+	bNumInterfaces:0x01,
+	bConfigurationValue:0x01,
+	iConfiguration:0x04,	// configuration string
+	bmAttributes:0xc0,	// self-powered
+	MaxPower:20		// 40 mA
+};
+
+// String[0] is a list of Language IDs supported by this device
+static struct usb_string_descriptor string_desc0 = {
+	bLength:4,
+	bDescriptorType:USB_DT_STRING,
+	wData:{0x0409} // English, US
+};
+
+// These strings will be converted to Unicode in string_desc[]
+static char *strings[5] = {
+	"Alchemy Semiconductor",  // iManufacturer
+	"USB Raw Block Device",   // iProduct
+	"0.1",                    // iSerialNumber
+	"USB Raw Config",         // iConfiguration
+	"USB Raw Interface"       // iInterface
+};
+
+
+static void
+receive_callback(struct usb_raw_port *port)
+{
+	int i, pkt_size;
+	usbdev_pkt_t* pkt;
+	
+	if ((pkt_size = usbdev_receive_packet(port->out_ep_addr,
+					      &pkt)) <= 0) {
+		dbg(__FUNCTION__ ": usbdev_receive_packet returns %d",
+		    pkt_size);
+		return;
+	}
+
+	dbg(__FUNCTION__ ": ep%d, size=%d", port->out_ep_addr, pkt_size);
+
+	spin_lock(&port->port_lock);
+	for (i=0; i < pkt_size; i++) {
+		port->read_buf[port->read_nextin++] = pkt->payload[i];
+		port->read_nextin &= (READ_BUF_SIZE - 1);
+		if (++port->read_count == READ_BUF_SIZE)
+			break;
+	}
+	spin_unlock(&port->port_lock);
+
+	/* free the packet */
+	kfree(pkt);
+	
+	// async notify
+	if (port->fasync)
+		kill_fasync(&port->fasync, SIGIO, POLL_IN);
+	// wake up any read call
+	if (waitqueue_active(&port->wait))
+		wake_up_interruptible(&port->wait);
+}
+
+static void
+transmit_callback(struct usb_raw_port *port, usbdev_pkt_t* pkt)
+{
+	dbg(__FUNCTION__ ": ep%d", port->in_ep_addr);
+	/* just free the returned packet */
+	kfree(pkt);
+}
+
+
+static void
+usbraw_callback(usbdev_cb_type_t cb_type, unsigned long arg, void* data)
+{
+	usbdev_pkt_t* pkt;
+	int i;
+	
+	switch (cb_type) {
+	case CB_NEW_STATE:
+		usbraw.dev_state = (usbdev_state_t)arg;
+		break;
+	case CB_PKT_COMPLETE:
+		pkt = (usbdev_pkt_t*)arg;
+		for (i=0; i<NUM_PORTS; i++) {
+			struct usb_raw_port *port = &usbraw.port[i];
+			if (pkt->ep_addr == port->in_ep_addr) {
+				transmit_callback(port, pkt);
+				break;
+			} else if (pkt->ep_addr == port->out_ep_addr) {
+				receive_callback(port);
+				break;
+			}
+		}
+		break;
+	}
+}
+
+/*****************************************************************************
+ * Here begins the driver interface functions
+ *****************************************************************************/
+
+static unsigned int usbraw_poll(struct file * filp, poll_table * wait)
+{
+	struct usb_raw_port *port = (struct usb_raw_port *)filp->private_data;
+	unsigned long flags;
+	int count;
+	
+	poll_wait(filp, &port->wait, wait);
+
+	spin_lock_irqsave(&port->port_lock, flags);
+	count = port->read_count;
+	spin_unlock_irqrestore(&port->port_lock, flags);
+
+	if (count > 0) {
+		dbg(__FUNCTION__ ": count=%d", count);
+		return POLLIN | POLLRDNORM;
+	}
+	
+	return 0;
+}
+
+static int usbraw_fasync(int fd, struct file *filp, int mode)
+{
+	struct usb_raw_port *port = (struct usb_raw_port *)filp->private_data;
+	return fasync_helper(fd, filp, mode, &port->fasync);
+}
+
+static int usbraw_open(struct inode * inode, struct file *filp)
+{
+	int portNumber;
+	struct usb_raw_port *port;
+	unsigned long flags;
+
+	/*
+	 * the device-layer must be in the configured state before the
+	 * function layer can operate.
+	 */
+	if (usbraw.dev_state != CONFIGURED)
+		return -ENODEV;
+	
+	MOD_INC_USE_COUNT;
+
+	/* set up our port structure making the tty driver remember
+	   our port object, and us it */
+	portNumber = MINOR(inode->i_rdev);
+	port = &usbraw.port[portNumber];
+	filp->private_data = port;
+
+	dbg(__FUNCTION__ ": port %d", port->number);
+
+	spin_lock_irqsave(&port->port_lock, flags);
+
+	++port->open_count;
+
+	if (!port->active) {
+		port->active = 1;
+	}
+
+	/* flush read buffer */
+	port->read_nextin = port->read_nextout = port->read_count = 0;
+
+	spin_unlock_irqrestore(&port->port_lock, flags);
+
+	return 0;
+}
+
+static int usbraw_release(struct inode * inode, struct file * filp)
+{
+	struct usb_raw_port *port = (struct usb_raw_port *)filp->private_data;
+	unsigned long flags;
+
+	dbg(__FUNCTION__ ": port %d", port->number);
+
+	if (!port->active) {
+		err(__FUNCTION__ ": port not opened");
+		return -ENODEV;
+	}
+
+	usbraw_fasync(-1, filp, 0);
+
+	spin_lock_irqsave(&port->port_lock, flags);
+
+	--port->open_count;
+
+	if (port->open_count <= 0) {
+		port->active = 0;
+		port->open_count = 0;
+	}
+
+	spin_unlock_irqrestore(&port->port_lock, flags);
+	MOD_DEC_USE_COUNT;
+	return 0;
+}
+
+
+static ssize_t usbraw_read(struct file * filp, char * buf,
+			   size_t count, loff_t * l)
+{
+	struct usb_raw_port *port = (struct usb_raw_port *)filp->private_data;
+	unsigned long flags;
+	int i, cnt;
+
+	/*
+	 * the device-layer must be in the configured state before the
+	 * function layer can operate.
+	 */
+	if (usbraw.dev_state != CONFIGURED)
+		return -ENODEV;
+
+	do { 
+		spin_lock_irqsave(&port->port_lock, flags);
+		cnt = port->read_count;
+		spin_unlock_irqrestore(&port->port_lock, flags);
+		if (cnt == 0) {
+			if (filp->f_flags & O_NONBLOCK)
+				return -EAGAIN;
+			interruptible_sleep_on(&port->wait);
+			if (signal_pending(current))
+				return -ERESTARTSYS;
+		}
+	} while (cnt == 0);
+
+	count = (count > cnt) ? cnt : count;
+
+	for (i=0; i<count; i++) {
+		put_user(port->read_buf[port->read_nextout++], &buf[i]);
+		port->read_nextout &= (READ_BUF_SIZE - 1);
+		spin_lock_irqsave(&port->port_lock, flags);
+		port->read_count--;
+		spin_unlock_irqrestore(&port->port_lock, flags);
+		if (port->read_count == 0)
+			break;
+	}
+
+	return i+1;
+}
+
+static ssize_t usbraw_write(struct file * filp, const char * buf,
+			    size_t count, loff_t *ppos)
+{
+	struct usb_raw_port *port = (struct usb_raw_port *)filp->private_data;
+	usbdev_pkt_t* pkt;
+	int ret, max_pkt_sz;
+	
+	/*
+	 * the device-layer must be in the configured state before the
+	 * function layer can operate.
+	 */
+	if (usbraw.dev_state != CONFIGURED)
+		return -ENODEV;
+
+	if (!port->active) {
+		err(__FUNCTION__ ": port not opened");
+		return -EINVAL;
+	}
+
+	if (count == 0) {
+		dbg(__FUNCTION__ ": write request of 0 bytes");
+		return (0);
+	}
+
+	max_pkt_sz = port->in_desc->wMaxPacketSize;
+	count = (count > max_pkt_sz) ? max_pkt_sz : count;
+
+	if ((ret = usbdev_alloc_packet(port->in_ep_addr, count, &pkt)) < 0)
+		return ret;
+
+	copy_from_user(pkt->payload, buf, count);
+	
+	return usbdev_send_packet(port->in_ep_addr, pkt);
+}
+
+static int usbraw_ioctl(struct inode *inode, struct file *filp,
+			unsigned int cmd, unsigned long arg)
+{
+	struct usb_raw_port *port = (struct usb_raw_port *)filp->private_data;
+
+	if (!port->active) {
+		err(__FUNCTION__ ": port not open");
+		return -ENODEV;
+	}
+	// FIXME: need any IOCTLs?
+
+	return -ENOIOCTLCMD;
+}
+
+
+static struct file_operations usbraw_fops = {
+        owner:          THIS_MODULE,
+        write:          usbraw_write,
+	read:           usbraw_read,
+	poll:           usbraw_poll,
+	ioctl:		usbraw_ioctl,
+	fasync:         usbraw_fasync,
+	open:		usbraw_open,
+	release:	usbraw_release,
+};
+
+void usbfn_raw_exit(void)
+{
+	/* kill the device layer */
+	usbdev_exit();
+
+	unregister_chrdev(USBRAW_MAJOR, USBRAW_NAME);
+
+	if (usbraw.str_desc_buf)
+		kfree(usbraw.str_desc_buf);
+}
+
+
+int usbfn_raw_init(void)
+{
+	int ret = 0, i, str_desc_len;
+
+	/* register our character device */
+	if ((ret = register_chrdev(USBRAW_MAJOR, USBRAW_NAME,
+				   &usbraw_fops)) < 0) {
+		err("can't get major number");
+		return ret;
+	}
+	info("registered");
+
+	/*
+	 * initialize pointers to descriptors
+	 */
+	usbraw.dev_desc = &dev_desc;
+	usbraw.config_desc = &config_desc;
+	usbraw.if_desc = &if_desc;
+
+	/*
+	 * initialize the string descriptors
+	 */
+
+	/* alloc buffer big enough for all string descriptors */
+	str_desc_len = string_desc0.bLength;
+	for (i = 0; i < 5; i++)
+		str_desc_len += 2 + 2 * strlen(strings[i]);
+	usbraw.str_desc_buf = (void *) kmalloc(str_desc_len, GFP_KERNEL);
+	if (!usbraw.str_desc_buf) {
+		err(__FUNCTION__ ": failed to alloc string descriptors");
+		ret = -ENOMEM;
+		goto out;
+	}
+
+	usbraw.str_desc[0] =
+		(struct usb_string_descriptor *)usbraw.str_desc_buf;
+	memcpy(usbraw.str_desc[0], &string_desc0, string_desc0.bLength);
+	usbraw.str_desc[1] = (struct usb_string_descriptor *)
+		(usbraw.str_desc_buf + string_desc0.bLength);
+	for (i = 1; i < 6; i++) {
+		struct usb_string_descriptor *desc = usbraw.str_desc[i];
+		char *str = strings[i - 1];
+		int j, str_len = strlen(str);
+
+		desc->bLength = 2 + 2 * str_len;
+		desc->bDescriptorType = USB_DT_STRING;
+		for (j = 0; j < str_len; j++) {
+			desc->wData[j] = (u16) str[j];
+		}
+		if (i < 5)
+			usbraw.str_desc[i + 1] =
+				(struct usb_string_descriptor *)
+				((u8 *) desc + desc->bLength);
+	}
+
+	/*
+	 * start the device layer. The device layer assigns us
+	 * our endpoint addresses
+	 */
+	if ((ret = usbdev_init(&dev_desc, &config_desc, &if_desc, ep_desc,
+			       usbraw.str_desc, usbraw_callback, NULL))) {
+		err(__FUNCTION__ ": device-layer init failed");
+		goto out;
+	}
+	
+	/* initialize the devfs nodes for this device and let the user
+	   know what ports we are bound to */
+	for (i = 0; i < NUM_PORTS; ++i) {
+		struct usb_raw_port *port = &usbraw.port[i];
+
+		port->number = i;
+		port->in_desc = &ep_desc[NUM_PORTS*i];
+		port->out_desc = &ep_desc[NUM_PORTS*i + 1];
+		port->in_ep_addr = port->in_desc->bEndpointAddress & 0x0f;
+		port->out_ep_addr = port->out_desc->bEndpointAddress & 0x0f;
+		init_waitqueue_head(&port->wait);
+		spin_lock_init(&port->port_lock);
+	}
+
+ out:
+	if (ret)
+		usbfn_raw_exit();
+	return ret;
+}
+
+
+/* Module information */
+MODULE_AUTHOR("Steve Longerbeam, stevel@mvista.com, www.mvista.com");
+MODULE_DESCRIPTION("Au1x00 USB Device-Side Raw Block Driver");
+MODULE_LICENSE("GPL");
+
+module_init(usbfn_raw_init);
+module_exit(usbfn_raw_exit);
diff -urNd -urNd linux-2.4.20/drivers/char/au1000_usbtty.c linux-2.4.20-mipscvs-20050106/drivers/char/au1000_usbtty.c
--- linux-2.4.20/drivers/char/au1000_usbtty.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/au1000_usbtty.c	2002-07-14 18:07:30.000000000 -0500
@@ -0,0 +1,764 @@
+/*
+ * BRIEF MODULE DESCRIPTION
+ *	Au1x00 USB Device-Side Serial TTY Driver (function layer)
+ *
+ * Copyright 2001-2002 MontaVista Software Inc.
+ * Author: MontaVista Software, Inc.
+ *		stevel@mvista.com or source@mvista.com
+ *
+ *  Derived from drivers/usb/serial/usbserial.c:
+ *
+ *  Copyright (C) 1999 - 2001 Greg Kroah-Hartman (greg@kroah.com)
+ *  Copyright (c) 2000 Peter Berger (pberger@brimson.com)
+ *  Copyright (c) 2000 Al Borchers (borchers@steinerpoint.com)
+ *
+ *  This program is free software; you can redistribute	 it and/or modify it
+ *  under  the terms of	 the GNU General  Public License as published by the
+ *  Free Software Foundation;  either version 2 of the	License, or (at your
+ *  option) any later version.
+ *
+ *  THIS  SOFTWARE  IS PROVIDED	  ``AS	IS'' AND   ANY	EXPRESS OR IMPLIED
+ *  WARRANTIES,	  INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
+ *  NO	EVENT  SHALL   THE AUTHOR  BE	 LIABLE FOR ANY	  DIRECT, INDIRECT,
+ *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ *  NOT LIMITED	  TO, PROCUREMENT OF  SUBSTITUTE GOODS	OR SERVICES; LOSS OF
+ *  USE, DATA,	OR PROFITS; OR	BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ *  ANY THEORY OF LIABILITY, WHETHER IN	 CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *  You should have received a copy of the  GNU General Public License along
+ *  with this program; if not, write  to the Free Software Foundation, Inc.,
+ *  675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <linux/config.h>
+#include <linux/kernel.h>
+#include <linux/ioport.h>
+#include <linux/sched.h>
+#include <linux/signal.h>
+#include <linux/errno.h>
+#include <linux/poll.h>
+#include <linux/init.h>
+#include <linux/slab.h>
+#include <linux/fcntl.h>
+#include <linux/tty.h>
+#include <linux/tty_driver.h>
+#include <linux/tty_flip.h>
+#include <linux/module.h>
+#include <linux/spinlock.h>
+#include <linux/list.h>
+#include <linux/smp_lock.h>
+#undef DEBUG
+#include <linux/usb.h>
+
+#include <asm/io.h>
+#include <asm/uaccess.h>
+#include <asm/irq.h>
+#include <asm/au1000.h>
+#include <asm/au1000_usbdev.h>
+
+
+/* local function prototypes */
+static int serial_open(struct tty_struct *tty, struct file *filp);
+static void serial_close(struct tty_struct *tty, struct file *filp);
+static int serial_write(struct tty_struct *tty, int from_user,
+			const unsigned char *buf, int count);
+static int serial_write_room(struct tty_struct *tty);
+static int serial_chars_in_buffer(struct tty_struct *tty);
+static void serial_throttle(struct tty_struct *tty);
+static void serial_unthrottle(struct tty_struct *tty);
+static int serial_ioctl(struct tty_struct *tty, struct file *file,
+			unsigned int cmd, unsigned long arg);
+static void serial_set_termios (struct tty_struct *tty, struct termios * old);
+
+#define SERIAL_TTY_MAJOR 189 // FIXME: need a legal major
+
+#define MAX_NUM_PORTS 2
+
+#define IN_MAX_PACKET_SIZE  32
+#define OUT_MAX_PACKET_SIZE 32
+
+// FIXME: when Au1x00 endpoints 3 and 5 are fixed, make NUM_PORTS=2
+#define NUM_PORTS 2
+#define NUM_EP 2*NUM_PORTS
+
+#define CONFIG_DESC_LEN \
+ USB_DT_CONFIG_SIZE + USB_DT_INTERFACE_SIZE + NUM_EP*USB_DT_ENDPOINT_SIZE
+
+struct usb_serial_port {
+	struct tty_struct *tty;	   /* the coresponding tty for this port */
+	unsigned char number;
+	spinlock_t port_lock;
+
+	struct usb_endpoint_descriptor* out_desc;
+	struct usb_endpoint_descriptor* in_desc;
+
+	int out_ep_addr; /* endpoint address of OUT endpoint */
+	int in_ep_addr;  /* endpoint address of IN endpoint */
+	
+	/* task queue for line discipline waking up on send packet complete */
+	struct tq_struct send_complete_tq;
+	/* task queue for line discipline wakeup on receive packet complete */
+	struct tq_struct receive_complete_tq;
+
+	int active;	/* someone has this device open */
+	int writing;    /* a packet write is in progress */
+	int open_count;	/* number of times this port has been opened */
+
+};
+
+static struct usb_serial {
+	usbdev_state_t dev_state; // current state of device layer
+	struct usb_device_descriptor* dev_desc;
+	struct usb_config_descriptor* config_desc;
+	struct usb_interface_descriptor* if_desc;
+	struct usb_string_descriptor * str_desc[6];
+	void* str_desc_buf;
+
+	struct usb_serial_port port[NUM_PORTS];
+} usbtty;
+
+static int                 serial_refcount;
+static struct tty_driver   serial_tty_driver;
+static struct tty_struct * serial_tty[NUM_PORTS];
+static struct termios *    serial_termios[NUM_PORTS];
+static struct termios *    serial_termios_locked[NUM_PORTS];
+
+static struct usb_device_descriptor dev_desc = {
+	bLength:USB_DT_DEVICE_SIZE,
+	bDescriptorType:USB_DT_DEVICE,
+	bcdUSB:USBDEV_REV,		//usb rev
+	bDeviceClass:USB_CLASS_PER_INTERFACE,	//class    (none)
+	bDeviceSubClass:0x00,	//subclass (none)
+	bDeviceProtocol:0x00,	//protocol (none)
+	bMaxPacketSize0:USBDEV_EP0_MAX_PACKET_SIZE, //max packet size for ep0
+	idVendor:0x6d04,	//vendor  id
+	idProduct:0x0bc0,	//product id
+	bcdDevice:0x0001,	//BCD rev 0.1
+	iManufacturer:0x01,	//manufactuer string index
+	iProduct:0x02,		//product string index
+	iSerialNumber:0x03,	//serial# string index
+	bNumConfigurations:0x01	//num configurations
+};
+
+static struct usb_endpoint_descriptor ep_desc[] = {
+	{
+		// Bulk IN for Port 0
+		bLength:USB_DT_ENDPOINT_SIZE,
+		bDescriptorType:USB_DT_ENDPOINT,
+		bEndpointAddress:USB_DIR_IN,
+		bmAttributes:USB_ENDPOINT_XFER_BULK,
+		wMaxPacketSize:IN_MAX_PACKET_SIZE,
+		bInterval:0x00	// ignored for bulk
+	},
+	{
+		// Bulk OUT for Port 0
+		bLength:USB_DT_ENDPOINT_SIZE,
+		bDescriptorType:USB_DT_ENDPOINT,
+		bEndpointAddress:USB_DIR_OUT,
+		bmAttributes:USB_ENDPOINT_XFER_BULK,
+		wMaxPacketSize:OUT_MAX_PACKET_SIZE,
+		bInterval:0x00	// ignored for bulk
+	},
+	{
+		// Bulk IN for Port 1
+		bLength:USB_DT_ENDPOINT_SIZE,
+		bDescriptorType:USB_DT_ENDPOINT,
+		bEndpointAddress:USB_DIR_IN,
+		bmAttributes:USB_ENDPOINT_XFER_BULK,
+		wMaxPacketSize:IN_MAX_PACKET_SIZE,
+		bInterval:0x00	// ignored for bulk
+	},
+	{
+		// Bulk OUT for Port 1
+		bLength:USB_DT_ENDPOINT_SIZE,
+		bDescriptorType:USB_DT_ENDPOINT,
+		bEndpointAddress:USB_DIR_OUT,
+		bmAttributes:USB_ENDPOINT_XFER_BULK,
+		wMaxPacketSize:OUT_MAX_PACKET_SIZE,
+		bInterval:0x00	// ignored for bulk
+	}
+};
+
+static struct usb_interface_descriptor if_desc = {
+	bLength:USB_DT_INTERFACE_SIZE,
+	bDescriptorType:USB_DT_INTERFACE,
+	bInterfaceNumber:0x00,
+	bAlternateSetting:0x00,
+	bNumEndpoints:NUM_EP,
+	bInterfaceClass:0xff,
+	bInterfaceSubClass:0xab,
+	bInterfaceProtocol:0x00,
+	iInterface:0x05
+};
+
+static struct usb_config_descriptor config_desc = {
+	bLength:USB_DT_CONFIG_SIZE,
+	bDescriptorType:USB_DT_CONFIG,
+	wTotalLength:CONFIG_DESC_LEN,
+	bNumInterfaces:0x01,
+	bConfigurationValue:0x01,
+	iConfiguration:0x04,	// configuration string
+	bmAttributes:0xc0,	// self-powered
+	MaxPower:20		// 40 mA
+};
+
+// String[0] is a list of Language IDs supported by this device
+static struct usb_string_descriptor string_desc0 = {
+	bLength:4,
+	bDescriptorType:USB_DT_STRING,
+	wData:{0x0409} // English, US
+};
+
+// These strings will be converted to Unicode in string_desc[]
+static char *strings[5] = {
+	"Alchemy Semiconductor",  // iManufacturer
+	"WutzAMattaU",            // iProduct
+	"1.0.doh!",               // iSerialNumber
+	"Au1000 TTY Config",      // iConfiguration
+	"Au1000 TTY Interface"    // iInterface
+};
+
+static inline int
+port_paranoia_check(struct usb_serial_port *port, const char *function)
+{
+	if (!port) {
+		err("%s: port is NULL", function);
+		return -1;
+	}
+	if (!port->tty) {
+		err("%s: port->tty is NULL", function);
+		return -1;
+	}
+
+	return 0;
+}
+
+
+static void
+port_rx_callback(struct usb_serial_port *port)
+{
+	dbg(__FUNCTION__ ": ep%d", port->out_ep_addr);
+	// mark a bh to push this data up to the tty
+	queue_task(&port->receive_complete_tq, &tq_immediate);
+	mark_bh(IMMEDIATE_BH);
+}
+
+static void
+port_tx_callback(struct usb_serial_port *port, usbdev_pkt_t* pkt)
+{
+	dbg(__FUNCTION__ ": ep%d", port->in_ep_addr);
+	// mark a bh to wakeup any tty write system call on the port.
+	queue_task(&port->send_complete_tq, &tq_immediate);
+	mark_bh(IMMEDIATE_BH);
+
+	/* free the returned packet */
+	kfree(pkt);
+}
+
+static void
+usbtty_callback(usbdev_cb_type_t cb_type, unsigned long arg, void* data)
+{
+	usbdev_pkt_t* pkt;
+	int i;
+	
+	switch (cb_type) {
+	case CB_NEW_STATE:
+		dbg(__FUNCTION__ ": new dev_state=%d", (int)arg);
+		usbtty.dev_state = (usbdev_state_t)arg;
+		break;
+	case CB_PKT_COMPLETE:
+		pkt = (usbdev_pkt_t*)arg;
+		for (i=0; i<NUM_PORTS; i++) {
+			struct usb_serial_port *port = &usbtty.port[i];
+			if (pkt->ep_addr == port->in_ep_addr) {
+				port_tx_callback(port, pkt);
+				break;
+			} else if (pkt->ep_addr == port->out_ep_addr) {
+				port_rx_callback(port);
+				break;
+			}
+		}
+		break;
+	}
+}
+
+
+/*****************************************************************************
+ * Here begins the tty driver interface functions
+ *****************************************************************************/
+
+static int serial_open(struct tty_struct *tty, struct file *filp)
+{
+	int portNumber;
+	struct usb_serial_port *port;
+	unsigned long flags;
+
+	/* initialize the pointer incase something fails */
+	tty->driver_data = NULL;
+
+	MOD_INC_USE_COUNT;
+
+	/* set up our port structure making the tty driver remember
+	   our port object, and us it */
+	portNumber = MINOR(tty->device);
+	port = &usbtty.port[portNumber];
+	tty->driver_data = port;
+	port->tty = tty;
+
+	if (usbtty.dev_state != CONFIGURED ||
+	    port_paranoia_check(port, __FUNCTION__)) {
+		/*
+		 * the device-layer must be in the configured state before
+		 * the function layer can operate.
+		 */
+		MOD_DEC_USE_COUNT;
+		return -ENODEV;
+	}
+	
+	dbg(__FUNCTION__ ": port %d", port->number);
+
+	spin_lock_irqsave(&port->port_lock, flags);
+
+	++port->open_count;
+
+	if (!port->active) {
+		port->active = 1;
+
+		/*
+		 * force low_latency on so that our tty_push actually forces
+		 * the data through, otherwise it is scheduled, and with high
+		 * data rates (like with OHCI) data can get lost.
+		 */
+		port->tty->low_latency = 1;
+
+	}
+
+	spin_unlock_irqrestore(&port->port_lock, flags);
+
+	return 0;
+}
+
+
+static void serial_close(struct tty_struct *tty, struct file *filp)
+{
+	struct usb_serial_port *port =
+		(struct usb_serial_port *) tty->driver_data;
+	unsigned long flags;
+
+	dbg(__FUNCTION__ ": port %d", port->number);
+
+	if (!port->active) {
+		err(__FUNCTION__ ": port not opened");
+		return;
+	}
+
+	spin_lock_irqsave(&port->port_lock, flags);
+
+	--port->open_count;
+
+	if (port->open_count <= 0) {
+		port->active = 0;
+		port->open_count = 0;
+	}
+
+	spin_unlock_irqrestore(&port->port_lock, flags);
+	MOD_DEC_USE_COUNT;
+}
+
+
+static int serial_write(struct tty_struct *tty, int from_user,
+			const unsigned char *buf, int count)
+{
+	struct usb_serial_port *port =
+		(struct usb_serial_port *) tty->driver_data;
+	usbdev_pkt_t* pkt;
+	int max_pkt_sz, ret;
+	unsigned long flags;
+	
+	/*
+	 * the device-layer must be in the configured state before the
+	 * function layer can operate.
+	 */
+	if (usbtty.dev_state != CONFIGURED)
+		return -ENODEV;
+
+	if (!port->active) {
+		err(__FUNCTION__ ": port not open");
+		return -EINVAL;
+	}
+
+	if (count == 0) {
+		dbg(__FUNCTION__ ": request of 0 bytes");
+		return (0);
+	}
+
+#if 0
+	if (port->writing) {
+		dbg(__FUNCTION__ ": already writing");
+		return 0;
+	}
+#endif
+	
+	max_pkt_sz = port->in_desc->wMaxPacketSize;
+	count = (count > max_pkt_sz) ? max_pkt_sz : count;
+
+	if ((ret = usbdev_alloc_packet(port->in_ep_addr, count, &pkt)))
+		return ret;
+
+	if (from_user)
+		copy_from_user(pkt->payload, buf, count);
+	else
+		memcpy(pkt->payload, buf, count);
+	
+	ret = usbdev_send_packet(port->in_ep_addr, pkt);
+
+	spin_lock_irqsave(&port->port_lock, flags);
+	port->writing = 1;
+	spin_unlock_irqrestore(&port->port_lock, flags);
+
+	return ret;
+}
+
+
+static int serial_write_room(struct tty_struct *tty)
+{
+	struct usb_serial_port *port =
+		(struct usb_serial_port *) tty->driver_data;
+	int room = 0;
+	
+	/*
+	 * the device-layer must be in the configured state before the
+	 * function layer can operate.
+	 */
+	if (usbtty.dev_state != CONFIGURED)
+		return -ENODEV;
+
+	if (!port->active) {
+		err(__FUNCTION__ ": port not open");
+		return -EINVAL;
+	}
+
+	//room = port->writing ? 0 : port->in_desc->wMaxPacketSize;
+	room = port->in_desc->wMaxPacketSize;
+	
+	dbg(__FUNCTION__ ": %d", room);
+	return room;
+}
+
+
+static int serial_chars_in_buffer(struct tty_struct *tty)
+{
+	struct usb_serial_port *port =
+		(struct usb_serial_port *) tty->driver_data;
+	int chars = 0;
+	
+	/*
+	 * the device-layer must be in the configured state before the
+	 * function layer can operate.
+	 */
+	if (usbtty.dev_state != CONFIGURED)
+		return -ENODEV;
+
+	if (!port->active) {
+		err(__FUNCTION__ ": port not open");
+		return -EINVAL;
+	}
+
+	//chars = port->writing ? usbdev_get_byte_count(port->in_ep_addr) : 0;
+	chars = usbdev_get_byte_count(port->in_ep_addr);
+
+	dbg(__FUNCTION__ ": %d", chars);
+	return chars;
+}
+
+
+static void serial_throttle(struct tty_struct *tty)
+{
+	struct usb_serial_port *port =
+		(struct usb_serial_port *) tty->driver_data;
+
+	if (!port->active || usbtty.dev_state != CONFIGURED) {
+		err(__FUNCTION__ ": port not open");
+		return;
+	}
+
+	// FIXME: anything to do?
+	dbg(__FUNCTION__);
+}
+
+
+static void serial_unthrottle(struct tty_struct *tty)
+{
+	struct usb_serial_port *port =
+		(struct usb_serial_port *) tty->driver_data;
+
+	if (!port->active || usbtty.dev_state != CONFIGURED) {
+		err(__FUNCTION__ ": port not open");
+		return;
+	}
+
+	// FIXME: anything to do?
+	dbg(__FUNCTION__);
+}
+
+
+static int serial_ioctl(struct tty_struct *tty, struct file *file,
+			unsigned int cmd, unsigned long arg)
+{
+	struct usb_serial_port *port =
+		(struct usb_serial_port *) tty->driver_data;
+
+	if (!port->active) {
+		err(__FUNCTION__ ": port not open");
+		return -ENODEV;
+	}
+	// FIXME: need any IOCTLs?
+	dbg(__FUNCTION__);
+
+	return -ENOIOCTLCMD;
+}
+
+
+static void serial_set_termios(struct tty_struct *tty, struct termios *old)
+{
+	struct usb_serial_port *port =
+		(struct usb_serial_port *) tty->driver_data;
+
+	if (!port->active || usbtty.dev_state != CONFIGURED)  {
+		err(__FUNCTION__ ": port not open");
+		return;
+	}
+
+	dbg(__FUNCTION__);
+	// FIXME: anything to do?
+}
+
+
+static void serial_break(struct tty_struct *tty, int break_state)
+{
+	struct usb_serial_port *port =
+		(struct usb_serial_port *) tty->driver_data;
+
+	if (!port->active || usbtty.dev_state != CONFIGURED)  {
+		err(__FUNCTION__ ": port not open");
+		return;
+	}
+
+	dbg(__FUNCTION__);
+	// FIXME: anything to do?
+}
+
+
+static void port_send_complete(void *private)
+{
+	struct usb_serial_port *port = (struct usb_serial_port *) private;
+	struct tty_struct *tty;
+	unsigned long flags;
+
+	dbg(__FUNCTION__ ": port %d, ep%d", port->number, port->in_ep_addr);
+
+	tty = port->tty;
+	if ((tty->flags & (1 << TTY_DO_WRITE_WAKEUP)) &&
+	    tty->ldisc.write_wakeup) {
+		dbg(__FUNCTION__ ": write wakeup call.");
+		(tty->ldisc.write_wakeup) (tty);
+	}
+
+	wake_up_interruptible(&tty->write_wait);
+
+	spin_lock_irqsave(&port->port_lock, flags);
+	port->writing = usbdev_get_byte_count(port->in_ep_addr) <= 0 ? 0 : 1;
+	spin_unlock_irqrestore(&port->port_lock, flags);
+}
+
+
+static void port_receive_complete(void *private)
+{
+	struct usb_serial_port *port = (struct usb_serial_port *) private;
+	struct tty_struct *tty = port->tty;
+	usbdev_pkt_t* pkt = NULL;
+	int i, count;
+
+	/* while there is a packet available */
+	while ((count = usbdev_receive_packet(port->out_ep_addr,
+					      &pkt)) != -ENODATA) {
+		if (count < 0) {
+			if (pkt)
+				kfree(pkt);
+			break; /* exit if error other than ENODATA */
+		}
+		
+		dbg(__FUNCTION__ ": port %d, ep%d, size=%d",
+		    port->number, port->out_ep_addr, count);
+
+		for (i = 0; i < count; i++) {
+			/* if we insert more than TTY_FLIPBUF_SIZE characters,
+			   we drop them. */
+			if (tty->flip.count >= TTY_FLIPBUF_SIZE) {
+				tty_flip_buffer_push(tty);
+			}
+			/* this doesn't actually push the data through
+			   unless tty->low_latency is set */
+			tty_insert_flip_char(tty, pkt->payload[i], 0);
+		}
+		tty_flip_buffer_push(tty);
+
+		kfree(pkt); /* make sure we free the packet */
+	}
+
+}
+
+
+static struct tty_driver serial_tty_driver = {
+	magic:TTY_DRIVER_MAGIC,
+	driver_name:"usbfn-tty",
+	name:"usb/ttsdev/%d",
+	major:SERIAL_TTY_MAJOR,
+	minor_start:0,
+	num:NUM_PORTS,
+	type:TTY_DRIVER_TYPE_SERIAL,
+	subtype:SERIAL_TYPE_NORMAL,
+	flags:TTY_DRIVER_REAL_RAW | TTY_DRIVER_NO_DEVFS,
+	refcount:&serial_refcount,
+	table:serial_tty,
+	termios:serial_termios,
+	termios_locked:serial_termios_locked,
+
+	open:serial_open,
+	close:serial_close,
+	write:serial_write,
+	write_room:serial_write_room,
+	ioctl:serial_ioctl,
+	set_termios:serial_set_termios,
+	throttle:serial_throttle,
+	unthrottle:serial_unthrottle,
+	break_ctl:serial_break,
+	chars_in_buffer:serial_chars_in_buffer,
+};
+
+
+void usbfn_tty_exit(void)
+{
+	int i;
+	
+	/* kill the device layer */
+	usbdev_exit();
+
+	for (i=0; i < NUM_PORTS; i++) {
+		tty_unregister_devfs(&serial_tty_driver, i);
+		info("usb serial converter now disconnected from ttyUSBdev%d",
+		     i);
+	}
+
+	tty_unregister_driver(&serial_tty_driver);
+
+	if (usbtty.str_desc_buf)
+		kfree(usbtty.str_desc_buf);
+}
+
+
+int usbfn_tty_init(void)
+{
+	int ret = 0, i, str_desc_len;
+
+	/* register the tty driver */
+	serial_tty_driver.init_termios = tty_std_termios;
+	serial_tty_driver.init_termios.c_cflag =
+		B9600 | CS8 | CREAD | HUPCL | CLOCAL;
+	
+	if (tty_register_driver(&serial_tty_driver)) {
+		err(__FUNCTION__ ": failed to register tty driver");
+		ret = -ENXIO;
+		goto out;
+	}
+
+	/*
+	 * initialize pointers to descriptors
+	 */
+	usbtty.dev_desc = &dev_desc;
+	usbtty.config_desc = &config_desc;
+	usbtty.if_desc = &if_desc;
+
+	/*
+	 * initialize the string descriptors
+	 */
+
+	/* alloc buffer big enough for all string descriptors */
+	str_desc_len = string_desc0.bLength;
+	for (i = 0; i < 5; i++)
+		str_desc_len += 2 + 2 * strlen(strings[i]);
+	usbtty.str_desc_buf = (void *) kmalloc(str_desc_len, GFP_KERNEL);
+	if (!usbtty.str_desc_buf) {
+		err(__FUNCTION__ ": failed to alloc string descriptors");
+		ret = -ENOMEM;
+		goto out;
+	}
+
+	usbtty.str_desc[0] =
+		(struct usb_string_descriptor *)usbtty.str_desc_buf;
+	memcpy(usbtty.str_desc[0], &string_desc0, string_desc0.bLength);
+	usbtty.str_desc[1] = (struct usb_string_descriptor *)
+		(usbtty.str_desc_buf + string_desc0.bLength);
+	for (i = 1; i < 6; i++) {
+		struct usb_string_descriptor *desc = usbtty.str_desc[i];
+		char *str = strings[i - 1];
+		int j, str_len = strlen(str);
+
+		desc->bLength = 2 + 2 * str_len;
+		desc->bDescriptorType = USB_DT_STRING;
+		for (j = 0; j < str_len; j++) {
+			desc->wData[j] = (u16) str[j];
+		}
+		if (i < 5)
+			usbtty.str_desc[i + 1] =
+				(struct usb_string_descriptor *)
+				((u8 *) desc + desc->bLength);
+	}
+
+	/*
+	 * start the device layer. The device layer assigns us
+	 * our endpoint addresses
+	 */
+	if ((ret = usbdev_init(&dev_desc, &config_desc, &if_desc, ep_desc,
+			       usbtty.str_desc, usbtty_callback, NULL))) {
+		err(__FUNCTION__ ": device-layer init failed");
+		goto out;
+	}
+	
+	/* initialize the devfs nodes for this device and let the user
+	   know what ports we are bound to */
+	for (i = 0; i < NUM_PORTS; ++i) {
+		struct usb_serial_port *port;
+		tty_register_devfs(&serial_tty_driver, 0, i);
+		info("usbdev serial attached to ttyUSBdev%d "
+		     "(or devfs usb/ttsdev/%d)", i, i);
+		port = &usbtty.port[i];
+		port->number = i;
+		port->in_desc = &ep_desc[NUM_PORTS*i];
+		port->out_desc = &ep_desc[NUM_PORTS*i + 1];
+		port->in_ep_addr = port->in_desc->bEndpointAddress & 0x0f;
+		port->out_ep_addr = port->out_desc->bEndpointAddress & 0x0f;
+		port->send_complete_tq.routine = port_send_complete;
+		port->send_complete_tq.data = port;
+		port->receive_complete_tq.routine = port_receive_complete;
+		port->receive_complete_tq.data = port;
+		spin_lock_init(&port->port_lock);
+	}
+
+ out:
+	if (ret)
+		usbfn_tty_exit();
+	return ret;
+}
+
+
+/* Module information */
+MODULE_AUTHOR("Steve Longerbeam, stevel@mvista.com, www.mvista.com");
+MODULE_DESCRIPTION("Au1x00 USB Device-Side Serial TTY Driver");
+MODULE_LICENSE("GPL");
+
+module_init(usbfn_tty_init);
+module_exit(usbfn_tty_exit);
diff -urNd -urNd linux-2.4.20/drivers/char/Config.in linux-2.4.20-mipscvs-20050106/drivers/char/Config.in
--- linux-2.4.20/drivers/char/Config.in	2002-11-28 17:53:12.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/Config.in	2003-02-19 14:37:43.000000000 -0600
@@ -74,29 +74,45 @@
      tristate '    Stallion EC8/64, ONboard, Brumby support' CONFIG_ISTALLION
    fi
    if [ "$CONFIG_MIPS" = "y" ]; then
-     bool '  TX3912/PR31700 serial port support' CONFIG_SERIAL_TX3912
-     dep_bool '     Console on TX3912/PR31700 serial port' CONFIG_SERIAL_TX3912_CONSOLE $CONFIG_SERIAL_TX3912
-     bool '  Enable Au1000 UART Support' CONFIG_AU1000_UART
-     if [ "$CONFIG_AU1000_UART" = "y" ]; then
-        bool '        Enable Au1000 serial console' CONFIG_AU1000_SERIAL_CONSOLE
-     fi
-     bool 'TXx927 SIO support' CONFIG_TXX927_SERIAL 
-     if [ "$CONFIG_TXX927_SERIAL" = "y" ]; then
-        bool 'TXx927 SIO Console support' CONFIG_TXX927_SERIAL_CONSOLE  
-     fi                             
-     if [ "$CONFIG_SIBYTE_SB1250" = "y" ]; then
-        bool '  Support for sb1250 onchip DUART' CONFIG_SIBYTE_SB1250_DUART
-        if [ "$CONFIG_SIBYTE_SB1250_DUART" = "y" ]; then
-           bool '  Console on SB1250 DUART' CONFIG_SIBYTE_SB1250_DUART_CONSOLE
-	   if [ "$CONFIG_SIBYTE_SB1250_DUART_CONSOLE" = "y" ]; then
-	      define_bool CONFIG_SERIAL_CONSOLE y
-	   fi
-	   int  '  Output buffers size (in bytes)' CONFIG_SB1250_DUART_OUTPUT_BUF_SIZE 1024
-	   bool '  Leave port 1 alone (for kgdb or audio)' CONFIG_SIBYTE_SB1250_DUART_NO_PORT_1
-       fi
-     fi
-  fi
+      bool '  TX3912/PR31700 serial port support' CONFIG_SERIAL_TX3912
+      dep_bool '     Console on TX3912/PR31700 serial port' CONFIG_SERIAL_TX3912_CONSOLE $CONFIG_SERIAL_TX3912
+      if [ "$CONFIG_CPU_AU1X00" = "y" ]; then
+	 bool '  Enable Au1x00 UART Support' CONFIG_AU1X00_UART
+	 if [ "$CONFIG_AU1X00_UART" = "y" ]; then
+	    bool '        Enable Au1x00 serial console' CONFIG_AU1X00_SERIAL_CONSOLE
+         fi
+	 if [ "$CONFIG_AU1000_USB_DEVICE" = "y" ]; then
+	    dep_tristate '  Au1x00 USB TTY Device support' CONFIG_AU1X00_USB_TTY $CONFIG_AU1000_USB_DEVICE
+	    if [ "$CONFIG_AU1000_USB_TTY" != "y" ]; then
+	       dep_tristate '  Au1x00 USB Raw Device support' CONFIG_AU1X00_USB_RAW $CONFIG_AU1000_USB_DEVICE
+	    fi
+         fi
+      fi
+      bool 'TXx927 SIO support' CONFIG_TXX927_SERIAL 
+      if [ "$CONFIG_TXX927_SERIAL" = "y" ]; then
+         bool 'TXx927 SIO Console support' CONFIG_TXX927_SERIAL_CONSOLE  
+      fi                             
+      if [ "$CONFIG_SIBYTE_SB1xxx_SOC" = "y" ]; then
+         bool '  Support for BCM1xxx onchip DUART' CONFIG_SIBYTE_SB1250_DUART
+         if [ "$CONFIG_SIBYTE_SB1250_DUART" = "y" ]; then
+            bool '  Console on BCM1xxx DUART' CONFIG_SIBYTE_SB1250_DUART_CONSOLE
+            if [ "$CONFIG_SIBYTE_SB1250_DUART_CONSOLE" = "y" ]; then
+               define_bool CONFIG_SERIAL_CONSOLE y
+            fi
+            if [ "$CONFIG_REMOTE_DEBUG" = "y" ]; then
+               define_bool CONFIG_SIBYTE_SB1250_DUART_NO_PORT_1 y
+            fi
+         fi
+      fi
+   fi
+   if [ "$CONFIG_DECSTATION" = "y" ]; then
+      bool '  DECstation serial support' CONFIG_SERIAL_DEC
+      dep_bool '    Support for console on a DECstation serial port' CONFIG_SERIAL_DEC_CONSOLE $CONFIG_SERIAL_DEC
+      dep_bool '    DZ11 serial support' CONFIG_DZ $CONFIG_SERIAL_DEC $CONFIG_MIPS32
+      dep_bool '    Z85C30 serial support' CONFIG_ZS $CONFIG_SERIAL_DEC $CONFIG_TC
+   fi
 fi
+
 if [ "$CONFIG_EXPERIMENTAL" = "y" -a "$CONFIG_ZORRO" = "y" ]; then
    tristate 'Commodore A2232 serial support (EXPERIMENTAL)' CONFIG_A2232
 fi
@@ -108,14 +124,6 @@
       fi
       bool '  Console on DC21285 serial port' CONFIG_SERIAL_21285_CONSOLE
    fi
-   if [ "$CONFIG_MIPS" = "y" ]; then
-     bool '  TMPTX3912/PR31700 serial port support' CONFIG_SERIAL_TX3912
-     dep_bool '     Console on TMPTX3912/PR31700 serial port' CONFIG_SERIAL_TX3912_CONSOLE $CONFIG_SERIAL_TX3912
-     bool '  Enable Au1000 UART Support' CONFIG_AU1000_UART
-     if [ "$CONFIG_AU1000_UART" = "y" ]; then
-         bool '        Enable Au1000 serial console' CONFIG_AU1000_SERIAL_CONSOLE
-     fi
-   fi
    if [ "$CONFIG_PARISC" = "y" ]; then
      bool '  PDC software console support' CONFIG_PDC_CONSOLE
    fi
@@ -165,6 +173,9 @@
    if [ "$CONFIG_ADB" = "y" -a "$CONFIG_ADB_KEYBOARD" = "y" ]; then
       dep_tristate '  Apple Desktop Bus mouse support (old driver)' CONFIG_ADBMOUSE $CONFIG_BUSMOUSE
    fi
+#   if [ "$CONFIG_DECSTATION" = "y" ]; then
+#      dep_bool '  MAXINE Access.Bus mouse (VSXXX-BB/GB) support' CONFIG_DTOP_MOUSE $CONFIG_ACCESSBUS
+#   fi
 fi
 
 tristate 'Mouse Support (not serial and bus mice)' CONFIG_MOUSE
@@ -209,9 +220,6 @@
    tristate '  Eurotech CPU-1220/1410 Watchdog Timer' CONFIG_EUROTECH_WDT
    tristate '  IB700 SBC Watchdog Timer' CONFIG_IB700_WDT
    tristate '  ICP ELectronics Wafer 5823 Watchdog' CONFIG_WAFER_WDT
-   if [ "$CONFIG_SGI_IP22" = "y" ]; then
-      dep_tristate '  Indy/I2 Hardware Watchdog' CONFIG_INDYDOG $CONFIG_SGI_IP22
-   fi
    tristate '  Intel i810 TCO timer / Watchdog' CONFIG_I810_TCO
    tristate '  Mixcom Watchdog' CONFIG_MIXCOMWD 
    tristate '  SBC-60XX Watchdog Timer' CONFIG_60XX_WDT
@@ -227,6 +235,7 @@
       fi
    fi
    tristate '  ZF MachZ Watchdog' CONFIG_MACHZ_WDT
+   dep_tristate '  Indy/I2 Hardware Watchdog' CONFIG_INDYDOG $CONFIG_SGI_IP22
    dep_tristate '  AMD 766/768 TCO Timer/Watchdog' CONFIG_AMD7XX_TCO $CONFIG_EXPERIMENTAL
 fi
 endmenu
@@ -269,6 +278,7 @@
 if [ "$CONFIG_FTAPE" != "n" ]; then
    source drivers/char/ftape/Config.in
 fi
+
 endmenu
 
 if [ "$CONFIG_GART_IOMMU" = "y" ]; then
@@ -309,16 +319,11 @@
 if [ "$CONFIG_HOTPLUG" = "y" -a "$CONFIG_PCMCIA" != "n" ]; then
    source drivers/char/pcmcia/Config.in
 fi
-if [ "$CONFIG_MIPS_AU1000" = "y" ]; then
-   tristate ' Alchemy Au1000 GPIO device support' CONFIG_AU1000_GPIO
-   tristate ' Au1000/ADS7846 touchscreen support' CONFIG_TS_AU1000_ADS7846
+if [ "$CONFIG_CPU_AU1X00" = "y" ]; then
+   tristate ' Alchemy Au1x00 GPIO device support' CONFIG_AU1X00_GPIO
+   tristate ' Au1000/ADS7846 touchscreen support' CONFIG_TS_AU1X00_ADS7846
 fi
 if [ "$CONFIG_MIPS_ITE8172" = "y" ]; then
   tristate ' ITE GPIO' CONFIG_ITE_GPIO
 fi
-
-if [ "$CONFIG_X86" = "y" ]; then
-   tristate 'ACP Modem (Mwave) support' CONFIG_MWAVE
-fi
-
 endmenu
diff -urNd -urNd linux-2.4.20/drivers/char/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/char/CVS/Entries
--- linux-2.4.20/drivers/char/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/CVS/Entries	2005-01-06 23:08:13.000000000 -0600
@@ -0,0 +1,182 @@
+/.cvsignore/1.4.2.1/Sun Dec  2 12:08:03 2001/-ko/Tlinux_2_4_20
+/ChangeLog/1.8.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/Config.in/1.72.2.19/Wed Feb 19 20:37:43 2003/-ko/Tlinux_2_4_20
+/Makefile/1.68.2.9/Sat Jan 25 05:38:40 2003/-ko/Tlinux_2_4_20
+/README.computone/1.6/Tue Nov  6 07:55:57 2001/-ko/Tlinux_2_4_20
+/README.cycladesZ/1.1/Sat Dec  6 23:52:22 1997/-ko/Tlinux_2_4_20
+/README.cyclomY/1.1.1.1/Sun Jun  1 03:17:28 1997/-ko/Tlinux_2_4_20
+/README.epca/1.8/Fri Mar  9 20:33:56 2001/-ko/Tlinux_2_4_20
+/README.scc/1.1.1.1/Sun Jun  1 03:17:27 1997/-ko/Tlinux_2_4_20
+/acquirewdt.c/1.17.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/adbmouse.c/1.14/Tue Nov  6 00:55:02 2001/-ko/Tlinux_2_4_20
+/advantechwdt.c/1.3.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/alim1535d_wdt.c/1.1.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/alim7101_wdt.c/1.1.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/amd768_rng.c/1.1.2.1/Wed Jun 26 22:35:32 2002/-ko/Tlinux_2_4_20
+/amd76x_pm.c/1.1.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/amd76x_pm.h/1.1.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/amd7xx_tco.c/1.1.2.1/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
+/amigamouse.c/1.12/Fri Oct 19 01:24:10 2001/-ko/Tlinux_2_4_20
+/amikeyb.c/1.9/Wed Jan 10 05:27:29 2001/-ko/Tlinux_2_4_20
+/amiserial.c/1.10.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
+/applicom.c/1.12.2.1/Wed Jun 26 22:35:32 2002/-ko/Tlinux_2_4_20
+/applicom.h/1.1/Sat Oct  9 00:01:13 1999/-ko/Tlinux_2_4_20
+/atarimouse.c/1.11/Fri Oct 19 01:24:10 2001/-ko/Tlinux_2_4_20
+/atixlmouse.c/1.12/Fri Oct 19 01:24:10 2001/-ko/Tlinux_2_4_20
+/au1000_gpio.c/1.1.2.1/Fri Feb 15 21:05:48 2002/-ko/Tlinux_2_4_20
+/au1000_ts.c/1.1.2.1/Sat Jan 25 05:38:40 2003/-ko/Tlinux_2_4_20
+/au1000_usbraw.c/1.1.2.1/Sun Jul 14 23:07:29 2002/-ko/Tlinux_2_4_20
+/au1000_usbtty.c/1.1.2.1/Sun Jul 14 23:07:30 2002/-ko/Tlinux_2_4_20
+/busmouse.c/1.21/Fri Oct 19 01:24:10 2001/-ko/Tlinux_2_4_20
+/busmouse.h/1.4/Mon Jun 19 22:45:44 2000/-ko/Tlinux_2_4_20
+/cd1865.h/1.3/Fri Mar  9 20:33:56 2001/-ko/Tlinux_2_4_20
+/conmakehash.c/1.4/Tue Aug 25 09:16:38 1998/-ko/Tlinux_2_4_20
+/console.c/1.37.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/console_macros.h/1.2/Mon Jan  4 16:05:23 1999/-ko/Tlinux_2_4_20
+/consolemap.c/1.8/Fri Mar  9 20:33:56 2001/-ko/Tlinux_2_4_20
+/cp437.uni/1.1.1.1/Sun Jun  1 03:17:27 1997/-ko/Tlinux_2_4_20
+/cyclades.c/1.27.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
+/decserial.c/1.1.2.1/Tue Nov 12 15:01:32 2002/-ko/Tlinux_2_4_20
+/defkeymap.c/1.6/Sat Dec  4 03:59:02 1999/-ko/Tlinux_2_4_20
+/defkeymap.map/1.1.1.1/Sun Jun  1 03:17:29 1997/-ko/Tlinux_2_4_20
+/digi.h/1.1.1.1/Sun Jun  1 03:17:29 1997/-ko/Tlinux_2_4_20
+/digi1.h/1.1/Tue Mar  7 16:02:19 2000/-ko/Tlinux_2_4_20
+/digiFep1.h/1.1/Tue Mar  7 16:02:19 2000/-ko/Tlinux_2_4_20
+/digiPCI.h/1.1/Tue Mar  7 16:02:19 2000/-ko/Tlinux_2_4_20
+/digi_bios.h/1.1.1.1/Sun Jun  1 03:17:29 1997/-ko/Tlinux_2_4_20
+/digi_fep.h/1.1.1.1/Sun Jun  1 03:17:26 1997/-ko/Tlinux_2_4_20
+/dn_keyb.c/1.11.4.1/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
+/ds1620.c/1.5/Fri Oct 19 01:24:11 2001/-ko/Tlinux_2_4_20
+/dsp56k.c/1.22/Fri Oct 19 01:24:11 2001/-ko/Tlinux_2_4_20
+/dtlk.c/1.16/Fri Oct 19 01:24:11 2001/-ko/Tlinux_2_4_20
+/dummy_keyb.c/1.3/Fri Oct 19 01:24:11 2001/-ko/Tlinux_2_4_20
+/dz.c/1.23.2.6/Tue Nov 12 15:01:32 2002/-ko/Tlinux_2_4_20
+/dz.h/1.3/Thu Sep  6 00:34:52 2001/-ko/Tlinux_2_4_20
+/ec3104_keyb.c/1.2/Fri Oct 19 01:24:11 2001/-ko/Tlinux_2_4_20
+/efirtc.c/1.8.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/epca.c/1.26.2.1/Wed Jun 26 22:35:32 2002/-ko/Tlinux_2_4_20
+/epca.h/1.1/Tue Mar  7 16:02:19 2000/-ko/Tlinux_2_4_20
+/epcaconfig.h/1.1/Tue Mar  7 16:02:19 2000/-ko/Tlinux_2_4_20
+/esp.c/1.21.2.1/Wed Jun 26 22:35:32 2002/-ko/Tlinux_2_4_20
+/eurotechwdt.c/1.1.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/fep.h/1.1.1.1/Sun Jun  1 03:17:28 1997/-ko/Tlinux_2_4_20
+/generic_serial.c/1.12.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
+/h8.c/1.13/Fri Oct 19 01:24:11 2001/-ko/Tlinux_2_4_20
+/h8.h/1.3/Thu Mar  2 02:36:59 2000/-ko/Tlinux_2_4_20
+/hcdp_serial.c/1.1.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/hp600_keyb.c/1.6/Fri Oct 19 01:24:12 2001/-ko/Tlinux_2_4_20
+/hp_keyb.c/1.1.2.1/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
+/hp_psaux.c/1.1.2.1/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
+/hvc_console.c/1.6.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/i810-tco.c/1.7.2.4/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/i810-tco.h/1.1.4.1/Wed Jun 26 22:35:32 2002/-ko/Tlinux_2_4_20
+/i810_rng.c/1.9.2.1/Wed Jun 26 22:35:32 2002/-ko/Tlinux_2_4_20
+/i8k.c/1.1.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
+/ib700wdt.c/1.1.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/indydog.c/1.1.2.4/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/ip2.c/1.7.2.1/Sat Dec 29 05:37:53 2001/-ko/Tlinux_2_4_20
+/ip2main.c/1.16.2.1/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
+/isicom.c/1.14.2.1/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
+/istallion.c/1.29.2.1/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
+/ite_gpio.c/1.2.2.1/Wed May 29 08:12:07 2002/-ko/Tlinux_2_4_20
+/keyboard.c/1.21.2.2/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
+/lcd.c/1.1.2.2/Wed May 29 08:12:07 2002/-ko/Tlinux_2_4_20
+/lcd.h/1.1.2.1/Mon Jan  7 03:33:54 2002/-ko/Tlinux_2_4_20
+/logibusmouse.c/1.4.2.1/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
+/lp.c/1.38.2.2/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
+/machzwd.c/1.5.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/mem.c/1.50.2.2/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
+/misc.c/1.44.2.3/Tue Aug  6 01:41:46 2002/-ko/Tlinux_2_4_20
+/mixcomwd.c/1.9.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/mk712.c/1.1.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/moxa.c/1.9/Tue Nov  6 07:55:58 2001/-ko/Tlinux_2_4_20
+/msbusmouse.c/1.11.2.1/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
+/mxser.c/1.11.2.3/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
+/n_hdlc.c/1.13.2.1/Tue Feb 26 05:59:12 2002/-ko/Tlinux_2_4_20
+/n_r3964.c/1.10/Fri Oct 19 01:24:13 2001/-ko/Tlinux_2_4_20
+/n_tty.c/1.23.2.1/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
+/nvram.c/1.20.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/nwbutton.c/1.6/Fri Oct 19 01:24:14 2001/-ko/Tlinux_2_4_20
+/nwbutton.h/1.2/Sat Jul  8 00:53:04 2000/-ko/Tlinux_2_4_20
+/nwflash.c/1.9/Tue Nov  6 00:55:02 2001/-ko/Tlinux_2_4_20
+/pc110pad.c/1.18/Fri Oct 19 01:24:14 2001/-ko/Tlinux_2_4_20
+/pc110pad.h/1.2/Wed Aug  6 19:15:45 1997/-ko/Tlinux_2_4_20
+/pc_keyb.c/1.39.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/pcwd.c/1.21.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/pcxx.c/1.18.2.1/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
+/pcxx.h/1.4/Thu Jun 14 04:23:56 2001/-ko/Tlinux_2_4_20
+/pdc_console.c/1.1.2.1/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
+/ppdev.c/1.22.2.3/Tue Sep 10 15:32:49 2002/-ko/Tlinux_2_4_20
+/pty.c/1.16.2.2/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
+/q40_keyb.c/1.4.2.2/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
+/qpmouse.c/1.12/Fri Oct 19 01:24:14 2001/-ko/Tlinux_2_4_20
+/qtronix.c/1.4/Tue Nov 27 01:27:33 2001/-ko/Tlinux_2_4_20
+/qtronixmap.c/1.1.2.2/Mon Dec  2 00:24:53 2002/-ko/Tlinux_2_4_20
+/qtronixmap.map/1.1/Wed Feb 21 13:30:36 2001/-ko/Tlinux_2_4_20
+/random.c/1.26.2.1/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
+/raw.c/1.13.2.1/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
+/riscom8.c/1.16/Fri Oct 19 01:24:15 2001/-ko/Tlinux_2_4_20
+/riscom8.h/1.4/Wed Jan 10 05:27:29 2001/-ko/Tlinux_2_4_20
+/riscom8_reg.h/1.1.1.1/Sun Jun  1 03:17:29 1997/-ko/Tlinux_2_4_20
+/rocket.c/1.22/Fri Oct 19 01:24:15 2001/-ko/Tlinux_2_4_20
+/rocket_int.h/1.3.4.1/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
+/rsf16fmi.h/1.1/Tue Aug 25 09:16:54 1998/-ko/Tlinux_2_4_20
+/rtc.c/1.46.2.5/Wed Sep  4 13:27:38 2002/-ko/Tlinux_2_4_20
+/sb1250_duart.c/1.3.2.9/Wed Feb 19 20:37:43 2003/-ko/Tlinux_2_4_20
+/sbc60xxwdt.c/1.10.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/sc1200wdt.c/1.1.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/sc520_wdt.c/1.1.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/scan_keyb.c/1.8/Wed Jun 13 17:27:48 2001/-ko/Tlinux_2_4_20
+/scan_keyb.h/1.3/Wed Jun 13 17:27:48 2001/-ko/Tlinux_2_4_20
+/scc.h/1.1/Fri Feb 18 22:06:15 2000/-ko/Tlinux_2_4_20
+/selection.c/1.11/Fri Oct 19 01:24:15 2001/-ko/Tlinux_2_4_20
+/ser_a2232.c/1.2/Fri Oct 19 01:24:15 2001/-ko/Tlinux_2_4_20
+/ser_a2232.h/1.1/Thu Aug 23 22:24:28 2001/-ko/Tlinux_2_4_20
+/ser_a2232fw.ax/1.1/Thu Aug 23 22:24:28 2001/-ko/Tlinux_2_4_20
+/ser_a2232fw.h/1.1/Thu Aug 23 22:24:28 2001/-ko/Tlinux_2_4_20
+/serial.c/1.62.2.6/Mon Dec  2 01:51:56 2002/-ko/Tlinux_2_4_20
+/serial167.c/1.9.2.2/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
+/serial_21285.c/1.4.2.1/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
+/serial_amba.c/1.4.2.1/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
+/serial_tx3912.c/1.6.2.2/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
+/serial_tx3912.h/1.2/Sat Nov 24 14:03:19 2001/-ko/Tlinux_2_4_20
+/serial_txx927.c/1.1.2.3/Sun Dec  1 19:02:27 2002/-ko/Tlinux_2_4_20
+/sh-sci.c/1.15.2.2/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
+/sh-sci.h/1.9/Wed Aug 22 03:24:22 2001/-ko/Tlinux_2_4_20
+/shwdt.c/1.1.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/softdog.c/1.18.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/sonypi.c/1.3.2.3/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
+/sonypi.h/1.3.2.4/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
+/specialix.c/1.17.2.1/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
+/specialix_io8.h/1.4/Thu Jun 17 13:27:38 1999/-ko/Tlinux_2_4_20
+/stallion.c/1.33.2.2/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
+/sx.c/1.22.2.4/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/sx.h/1.5.2.1/Wed Jun 26 22:35:34 2002/-ko/Tlinux_2_4_20
+/sxboards.h/1.3.4.1/Wed Jun 26 22:35:34 2002/-ko/Tlinux_2_4_20
+/sxwindow.h/1.2/Sat Oct  9 00:01:14 1999/-ko/Tlinux_2_4_20
+/synclink.c/1.20.2.4/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
+/synclinkmp.c/1.2.2.1/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
+/sysrq.c/1.21.2.2/Wed Jun 26 22:35:34 2002/-ko/Tlinux_2_4_20
+/toshiba.c/1.4.2.1/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
+/tpqic02.c/1.25.2.2/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
+/tty_io.c/1.62.2.9/Thu Jan  9 20:17:07 2003/-ko/Tlinux_2_4_20
+/tty_ioctl.c/1.10.2.1/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
+/vc_screen.c/1.19/Fri Oct 19 01:24:17 2001/-ko/Tlinux_2_4_20
+/vme_scc.c/1.6.2.1/Wed Jun 26 22:35:34 2002/-ko/Tlinux_2_4_20
+/vt.c/1.34.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/w83877f_wdt.c/1.3.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/wafer5823wdt.c/1.1.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/wd501p.h/1.4/Fri Mar  9 20:33:59 2001/-ko/Tlinux_2_4_20
+/wdt.c/1.21.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/wdt285.c/1.8.2.2/Wed Jun 26 22:35:34 2002/-ko/Tlinux_2_4_20
+/wdt977.c/1.6.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/wdt_pci.c/1.8.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+D/agp////
+D/drm////
+D/drm-4.0////
+D/ftape////
+D/ip2////
+D/joystick////
+D/mwave////
+D/pcmcia////
+D/rio////
diff -urNd -urNd linux-2.4.20/drivers/char/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/char/CVS/Repository
--- linux-2.4.20/drivers/char/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/CVS/Repository	2005-01-06 23:01:24.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/char
diff -urNd -urNd linux-2.4.20/drivers/char/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/char/CVS/Root
--- linux-2.4.20/drivers/char/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/CVS/Root	2005-01-06 23:01:24.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/char/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/char/CVS/Tag
--- linux-2.4.20/drivers/char/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/CVS/Tag	2005-01-06 23:01:38.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/char/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/char/.cvsignore
--- linux-2.4.20/drivers/char/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/.cvsignore	2001-12-02 06:08:03.000000000 -0600
@@ -0,0 +1,5 @@
+.depend
+.*.flags
+conmakehash
+consolemap_deftbl.c
+uni_hash.tbl
diff -urNd -urNd linux-2.4.20/drivers/char/decserial.c linux-2.4.20-mipscvs-20050106/drivers/char/decserial.c
--- linux-2.4.20/drivers/char/decserial.c	2001-09-09 12:43:02.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/drivers/char/decserial.c	2002-11-12 09:01:32.000000000 -0600
@@ -28,7 +28,7 @@
 extern int dz_init(void);
 #endif
 
-#ifdef CONFIG_SERIAL_CONSOLE
+#ifdef CONFIG_SERIAL_DEC_CONSOLE
 
 #ifdef CONFIG_ZS
 extern void zs_serial_console_init(void);
@@ -43,7 +43,7 @@
 /* rs_init - starts up the serial interface -
    handle normal case of starting up the serial interface */
 
-#ifdef CONFIG_SERIAL
+#ifdef CONFIG_SERIAL_DEC
 
 int __init rs_init(void)
 {
@@ -70,12 +70,12 @@
 
 #endif
 
-#ifdef CONFIG_SERIAL_CONSOLE
+#ifdef CONFIG_SERIAL_DEC_CONSOLE
 
-/* serial_console_init handles the special case of starting
+/* dec_serial_console_init handles the special case of starting
  *   up the console on the serial port
  */
-void __init serial_console_init(void)
+void __init dec_serial_console_init(void)
 {
 #if defined(CONFIG_ZS) && defined(CONFIG_DZ)
     if (IOASIC)
diff -urNd -urNd linux-2.4.20/drivers/char/drm/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/char/drm/CVS/Entries
--- linux-2.4.20/drivers/char/drm/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/drm/CVS/Entries	2005-01-06 23:01:41.000000000 -0600
@@ -0,0 +1,72 @@
+/.cvsignore/1.1/Sat Oct  9 00:01:14 1999/-ko/Tlinux_2_4_20
+/Config.in/1.5.2.4/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/Makefile/1.13.2.2/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
+/README.drm/1.3/Fri Aug 25 05:30:00 2000/-ko/Tlinux_2_4_20
+/ati_pcigart.h/1.4.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/drm.h/1.8.2.2/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
+/drmP.h/1.18.2.1/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
+/drm_agpsupport.h/1.3.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/drm_auth.h/1.1.2.1/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
+/drm_bufs.h/1.1.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/drm_context.h/1.3.2.2/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/drm_dma.h/1.1.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/drm_drawable.h/1.1.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/drm_drv.h/1.3.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/drm_fops.h/1.1.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/drm_init.h/1.1.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/drm_ioctl.h/1.2.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/drm_lists.h/1.1.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/drm_lock.h/1.1.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/drm_memory.h/1.1.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/drm_proc.h/1.2.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/drm_scatter.h/1.3.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/drm_stub.h/1.1.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/drm_vm.h/1.6.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/ffb.h/1.1/Fri Aug 24 03:38:37 2001/-ko/Tlinux_2_4_20
+/ffb_context.c/1.4/Sat Sep 22 12:49:19 2001/-ko/Tlinux_2_4_20
+/ffb_drv.c/1.13/Tue Nov  6 00:55:02 2001/-ko/Tlinux_2_4_20
+/ffb_drv.h/1.1/Mon Jun 19 22:45:45 2000/-ko/Tlinux_2_4_20
+/gamma.h/1.1/Fri Aug 24 03:38:37 2001/-ko/Tlinux_2_4_20
+/gamma_dma.c/1.7.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/gamma_drv.c/1.13/Fri Aug 24 03:38:37 2001/-ko/Tlinux_2_4_20
+/gamma_drv.h/1.6/Fri Aug 24 03:38:37 2001/-ko/Tlinux_2_4_20
+/i810.h/1.1/Fri Aug 24 03:38:37 2001/-ko/Tlinux_2_4_20
+/i810_dma.c/1.10.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/i810_drm.h/1.2.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/i810_drv.c/1.8.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/i810_drv.h/1.3.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/i830.h/1.1.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/i830_dma.c/1.1.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/i830_drm.h/1.1.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/i830_drv.c/1.1.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/i830_drv.h/1.1.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/mga.h/1.1/Fri Aug 24 03:38:37 2001/-ko/Tlinux_2_4_20
+/mga_dma.c/1.6.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/mga_drm.h/1.3/Fri Aug 24 03:38:37 2001/-ko/Tlinux_2_4_20
+/mga_drv.c/1.9/Fri Aug 24 03:38:37 2001/-ko/Tlinux_2_4_20
+/mga_drv.h/1.7.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/mga_state.c/1.5.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/mga_ucode.h/1.1/Fri Aug 24 03:38:37 2001/-ko/Tlinux_2_4_20
+/mga_warp.c/1.1.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/r128.h/1.1/Fri Aug 24 03:38:37 2001/-ko/Tlinux_2_4_20
+/r128_cce.c/1.4.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/r128_drm.h/1.4/Fri Aug 24 03:38:37 2001/-ko/Tlinux_2_4_20
+/r128_drv.c/1.11.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/r128_drv.h/1.8.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/r128_state.c/1.2.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/radeon.h/1.1/Fri Aug 24 03:38:37 2001/-ko/Tlinux_2_4_20
+/radeon_cp.c/1.4.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/radeon_drm.h/1.2/Fri Aug 24 03:38:37 2001/-ko/Tlinux_2_4_20
+/radeon_drv.c/1.2/Fri Aug 24 03:38:37 2001/-ko/Tlinux_2_4_20
+/radeon_drv.h/1.3.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/radeon_state.c/1.2.2.2/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/sis.h/1.1.2.1/Sat Dec 29 05:37:54 2001/-ko/Tlinux_2_4_20
+/sis_drm.h/1.1.2.2/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/sis_drv.c/1.1.2.2/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
+/sis_drv.h/1.1.2.1/Sat Dec 29 05:37:54 2001/-ko/Tlinux_2_4_20
+/sis_ds.c/1.1.2.4/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/sis_ds.h/1.1.2.1/Sat Dec 29 05:37:54 2001/-ko/Tlinux_2_4_20
+/sis_mm.c/1.1.2.2/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/tdfx.h/1.1/Fri Aug 24 03:38:37 2001/-ko/Tlinux_2_4_20
+/tdfx_drv.c/1.15/Fri Oct 19 01:24:19 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/char/drm/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/char/drm/CVS/Repository
--- linux-2.4.20/drivers/char/drm/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/drm/CVS/Repository	2005-01-06 23:01:38.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/char/drm
diff -urNd -urNd linux-2.4.20/drivers/char/drm/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/char/drm/CVS/Root
--- linux-2.4.20/drivers/char/drm/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/drm/CVS/Root	2005-01-06 23:01:38.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/char/drm/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/char/drm/CVS/Tag
--- linux-2.4.20/drivers/char/drm/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/drm/CVS/Tag	2005-01-06 23:01:41.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/char/drm/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/char/drm/.cvsignore
--- linux-2.4.20/drivers/char/drm/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/drm/.cvsignore	1999-10-08 19:01:14.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/char/drm-4.0/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/char/drm-4.0/CVS/Entries
--- linux-2.4.20/drivers/char/drm-4.0/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/drm-4.0/CVS/Entries	2005-01-06 23:01:44.000000000 -0600
@@ -0,0 +1,58 @@
+/.cvsignore/1.1.2.1/Mon Mar 18 22:06:50 2002/-ko/Tlinux_2_4_20
+/Config.in/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
+/README.drm/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
+/agpsupport.c/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
+/auth.c/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
+/bufs.c/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
+/context.c/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
+/ctxbitmap.c/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
+/dma.c/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
+/drawable.c/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
+/drm.h/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
+/drmP.h/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
+/ffb_context.c/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
+/ffb_drv.c/1.1.2.2/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/ffb_drv.h/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
+/fops.c/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
+/gamma_dma.c/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
+/gamma_drv.c/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
+/gamma_drv.h/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
+/i810_bufs.c/1.1.2.1/Tue Feb 26 05:59:18 2002/-ko/Tlinux_2_4_20
+/i810_context.c/1.1.2.1/Tue Feb 26 05:59:18 2002/-ko/Tlinux_2_4_20
+/i810_dma.c/1.1.2.3/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/i810_drm.h/1.1.2.1/Tue Feb 26 05:59:18 2002/-ko/Tlinux_2_4_20
+/i810_drv.c/1.1.2.1/Tue Feb 26 05:59:18 2002/-ko/Tlinux_2_4_20
+/i810_drv.h/1.1.2.1/Tue Feb 26 05:59:18 2002/-ko/Tlinux_2_4_20
+/init.c/1.1.2.1/Tue Feb 26 05:59:18 2002/-ko/Tlinux_2_4_20
+/ioctl.c/1.1.2.1/Tue Feb 26 05:59:18 2002/-ko/Tlinux_2_4_20
+/lists.c/1.1.2.1/Tue Feb 26 05:59:18 2002/-ko/Tlinux_2_4_20
+/lock.c/1.1.2.1/Tue Feb 26 05:59:18 2002/-ko/Tlinux_2_4_20
+/memory.c/1.1.2.1/Tue Feb 26 05:59:18 2002/-ko/Tlinux_2_4_20
+/mga_bufs.c/1.1.2.1/Tue Feb 26 05:59:18 2002/-ko/Tlinux_2_4_20
+/mga_context.c/1.1.2.1/Tue Feb 26 05:59:18 2002/-ko/Tlinux_2_4_20
+/mga_dma.c/1.1.2.1/Tue Feb 26 05:59:18 2002/-ko/Tlinux_2_4_20
+/mga_drm.h/1.1.2.1/Tue Feb 26 05:59:18 2002/-ko/Tlinux_2_4_20
+/mga_drv.c/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
+/mga_drv.h/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
+/mga_state.c/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
+/proc.c/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
+/r128_bufs.c/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
+/r128_cce.c/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
+/r128_context.c/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
+/r128_drm.h/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
+/r128_drv.c/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
+/r128_drv.h/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
+/r128_state.c/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
+/radeon_bufs.c/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
+/radeon_context.c/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
+/radeon_cp.c/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
+/radeon_drm.h/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
+/radeon_drv.c/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
+/radeon_drv.h/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
+/radeon_state.c/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
+/tdfx_context.c/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
+/tdfx_drv.c/1.1.2.2/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/tdfx_drv.h/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
+/vm.c/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/char/drm-4.0/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/char/drm-4.0/CVS/Repository
--- linux-2.4.20/drivers/char/drm-4.0/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/drm-4.0/CVS/Repository	2005-01-06 23:01:41.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/char/drm-4.0
diff -urNd -urNd linux-2.4.20/drivers/char/drm-4.0/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/char/drm-4.0/CVS/Root
--- linux-2.4.20/drivers/char/drm-4.0/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/drm-4.0/CVS/Root	2005-01-06 23:01:41.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/char/drm-4.0/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/char/drm-4.0/CVS/Tag
--- linux-2.4.20/drivers/char/drm-4.0/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/drm-4.0/CVS/Tag	2005-01-06 23:01:44.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/char/drm-4.0/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/char/drm-4.0/.cvsignore
--- linux-2.4.20/drivers/char/drm-4.0/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/drm-4.0/.cvsignore	2002-03-18 16:06:50.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/char/dz.c linux-2.4.20-mipscvs-20050106/drivers/char/dz.c
--- linux-2.4.20/drivers/char/dz.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/drivers/char/dz.c	2002-11-12 09:01:32.000000000 -0600
@@ -35,28 +35,27 @@
 #include <linux/param.h>
 #include <linux/tqueue.h>
 #include <linux/interrupt.h>
-#include <asm-mips/wbflush.h>
-#include <asm/dec/interrupts.h>
 
 #include <linux/console.h>
 #include <linux/tty.h>
 #include <linux/tty_flip.h>
 #include <linux/serial.h>
 
-#include <asm/uaccess.h>
-#include <asm/irq.h>
-#include <asm/dec/machtype.h>
-#include <asm/dec/kn01.h>
-#include <asm/dec/kn02.h>
-
 #include <linux/ptrace.h>
 #include <linux/fs.h>
+
 #include <asm/bootinfo.h>
+#include <asm/dec/interrupts.h>
+#include <asm/dec/kn01.h>
+#include <asm/dec/kn02.h>
+#include <asm/dec/machtype.h>
+#include <asm/dec/prom.h>
+#include <asm/irq.h>
+#include <asm/system.h>
+#include <asm/uaccess.h>
 
 #define CONSOLE_LINE (3)	/* for definition of struct console */
 
-extern int (*prom_printf) (char *,...);
-
 #include "dz.h"
 
 #define DZ_INTR_DEBUG 1
@@ -211,13 +210,12 @@
 		if (!(status & DZ_DVAL))
 			goto ignore_char;
 
-
 		ch = UCHAR(status);	/* grab the char */
 
 #if 0
 		if (info->is_console) {
 			if (ch == 0)
-				return;		/* it's a break ... */
+				return;	/* it's a break ... */
 		}
 #endif
 
@@ -862,7 +860,7 @@
 	tmp.type = info->type;
 	tmp.line = info->line;
 	tmp.port = info->port;
-	tmp.irq = SERIAL;
+	tmp.irq = dec_interrupt[DEC_IRQ_DZ11];
 	tmp.flags = info->flags;
 	tmp.baud_base = info->baud_base;
 	tmp.close_delay = info->close_delay;
@@ -1404,7 +1402,7 @@
 			return 0;
 
 		printk("ttyS%02d at 0x%08x (irq = %d)\n", info->line,
-		       info->port, SERIAL);
+		       info->port, dec_interrupt[DEC_IRQ_DZ11]);
 
 		tty_register_devfs(&serial_driver, 0,
 				 serial_driver.minor_start + info->line);
@@ -1413,10 +1411,10 @@
 	}
 
 	/* reset the chip */
-#ifndef CONFIG_SERIAL_CONSOLE
+#ifndef CONFIG_SERIAL_DEC_CONSOLE
 	dz_out(info, DZ_CSR, DZ_CLR);
 	while ((tmp = dz_in(info, DZ_CSR)) & DZ_CLR);
-	wbflush();
+	iob();
 
 	/* enable scanning */
 	dz_out(info, DZ_CSR, DZ_MSE);
@@ -1428,13 +1426,14 @@
 	restore_flags(flags);
 
 
-	if (request_irq(SERIAL, dz_interrupt, SA_INTERRUPT, "DZ", lines[0]))
+	if (request_irq(dec_interrupt[DEC_IRQ_DZ11], dz_interrupt,
+			SA_INTERRUPT, "DZ", lines[0]))
 		panic("Unable to register DZ interrupt");
 
 	return 0;
 }
 
-#ifdef CONFIG_SERIAL_CONSOLE
+#ifdef CONFIG_SERIAL_DEC_CONSOLE
 static void dz_console_put_char(unsigned char ch)
 {
 	unsigned long flags;
@@ -1575,12 +1574,12 @@
 
 static struct console dz_sercons =
 {
-    name:	"ttyS",
-    write:	dz_console_print,
-    device:	dz_console_device,
-    setup:	dz_console_setup,
-    flags:	CON_CONSDEV | CON_PRINTBUFFER,
-    index:	CONSOLE_LINE,
+    .name	= "ttyS",
+    .write	= dz_console_print,
+    .device	= dz_console_device,
+    .setup	= dz_console_setup,
+    .flags	= CON_CONSDEV | CON_PRINTBUFFER,
+    .index	= CONSOLE_LINE,
 };
 
 void __init dz_serial_console_init(void)
@@ -1588,6 +1587,6 @@
 	register_console(&dz_sercons);
 }
 
-#endif /* CONFIG_SERIAL_CONSOLE */
+#endif /* CONFIG_SERIAL_DEC_CONSOLE */
 
 MODULE_LICENSE("GPL");
diff -urNd -urNd linux-2.4.20/drivers/char/ftape/compressor/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/char/ftape/compressor/CVS/Entries
--- linux-2.4.20/drivers/char/ftape/compressor/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/compressor/CVS/Entries	2005-01-06 23:01:45.000000000 -0600
@@ -0,0 +1,7 @@
+/.cvsignore/1.2/Tue Mar 17 22:09:59 1998/-ko/Tlinux_2_4_20
+/Makefile/1.3/Wed Jan 10 17:17:58 2001/-ko/Tlinux_2_4_20
+/lzrw3.c/1.1/Sat Dec  6 23:52:48 1997/-ko/Tlinux_2_4_20
+/lzrw3.h/1.1/Sat Dec  6 23:52:49 1997/-ko/Tlinux_2_4_20
+/zftape-compress.c/1.4/Fri Oct 19 01:24:19 2001/-ko/Tlinux_2_4_20
+/zftape-compress.h/1.1/Sat Dec  6 23:52:49 1997/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/char/ftape/compressor/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/char/ftape/compressor/CVS/Repository
--- linux-2.4.20/drivers/char/ftape/compressor/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/compressor/CVS/Repository	2005-01-06 23:01:45.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/char/ftape/compressor
diff -urNd -urNd linux-2.4.20/drivers/char/ftape/compressor/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/char/ftape/compressor/CVS/Root
--- linux-2.4.20/drivers/char/ftape/compressor/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/compressor/CVS/Root	2005-01-06 23:01:45.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/char/ftape/compressor/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/char/ftape/compressor/CVS/Tag
--- linux-2.4.20/drivers/char/ftape/compressor/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/compressor/CVS/Tag	2005-01-06 23:01:45.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/char/ftape/compressor/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/char/ftape/compressor/.cvsignore
--- linux-2.4.20/drivers/char/ftape/compressor/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/compressor/.cvsignore	1998-03-17 16:09:59.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/char/ftape/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/char/ftape/CVS/Entries
--- linux-2.4.20/drivers/char/ftape/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/CVS/Entries	2005-01-06 23:08:13.000000000 -0600
@@ -0,0 +1,8 @@
+/.cvsignore/1.2/Tue Mar 17 22:09:58 1998/-ko/Tlinux_2_4_20
+/Config.in/1.5.4.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/Makefile/1.4/Wed Jan 10 17:17:58 2001/-ko/Tlinux_2_4_20
+/README.PCI/1.2/Sat Dec  6 23:52:41 1997/-ko/Tlinux_2_4_20
+/RELEASE-NOTES/1.3/Mon Feb 15 02:18:05 1999/-ko/Tlinux_2_4_20
+D/compressor////
+D/lowlevel////
+D/zftape////
diff -urNd -urNd linux-2.4.20/drivers/char/ftape/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/char/ftape/CVS/Repository
--- linux-2.4.20/drivers/char/ftape/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/CVS/Repository	2005-01-06 23:01:44.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/char/ftape
diff -urNd -urNd linux-2.4.20/drivers/char/ftape/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/char/ftape/CVS/Root
--- linux-2.4.20/drivers/char/ftape/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/CVS/Root	2005-01-06 23:01:44.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/char/ftape/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/char/ftape/CVS/Tag
--- linux-2.4.20/drivers/char/ftape/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/CVS/Tag	2005-01-06 23:01:45.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/char/ftape/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/char/ftape/.cvsignore
--- linux-2.4.20/drivers/char/ftape/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/.cvsignore	1998-03-17 16:09:58.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/char/ftape/lowlevel/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/char/ftape/lowlevel/CVS/Entries
--- linux-2.4.20/drivers/char/ftape/lowlevel/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/lowlevel/CVS/Entries	2005-01-06 23:01:46.000000000 -0600
@@ -0,0 +1,38 @@
+/.cvsignore/1.2/Tue Mar 17 22:10:01 1998/-ko/Tlinux_2_4_20
+/Makefile/1.2/Wed Jan 10 17:17:58 2001/-ko/Tlinux_2_4_20
+/fc-10.c/1.1/Sat Dec  6 23:52:50 1997/-ko/Tlinux_2_4_20
+/fc-10.h/1.1/Sat Dec  6 23:52:50 1997/-ko/Tlinux_2_4_20
+/fdc-io.c/1.9/Thu Nov 23 02:00:51 2000/-ko/Tlinux_2_4_20
+/fdc-io.h/1.2/Thu Jun 17 13:27:44 1999/-ko/Tlinux_2_4_20
+/fdc-isr.c/1.3/Fri Mar  9 20:33:59 2001/-ko/Tlinux_2_4_20
+/fdc-isr.h/1.1/Sat Dec  6 23:52:51 1997/-ko/Tlinux_2_4_20
+/ftape-bsm.c/1.3/Thu Nov 23 02:00:51 2000/-ko/Tlinux_2_4_20
+/ftape-bsm.h/1.1/Sat Dec  6 23:52:52 1997/-ko/Tlinux_2_4_20
+/ftape-buffer.c/1.5/Fri Mar  9 20:33:59 2001/-ko/Tlinux_2_4_20
+/ftape-buffer.h/1.1/Sat Dec  6 23:52:52 1997/-ko/Tlinux_2_4_20
+/ftape-calibr.c/1.3.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/ftape-calibr.h/1.1/Sat Dec  6 23:52:53 1997/-ko/Tlinux_2_4_20
+/ftape-ctl.c/1.5/Tue Nov 28 03:58:49 2000/-ko/Tlinux_2_4_20
+/ftape-ctl.h/1.2/Fri Feb  4 07:40:33 2000/-ko/Tlinux_2_4_20
+/ftape-ecc.c/1.1/Sat Dec  6 23:52:53 1997/-ko/Tlinux_2_4_20
+/ftape-ecc.h/1.1/Sat Dec  6 23:52:54 1997/-ko/Tlinux_2_4_20
+/ftape-format.c/1.2/Thu Nov 23 02:00:51 2000/-ko/Tlinux_2_4_20
+/ftape-format.h/1.1/Sat Dec  6 23:52:54 1997/-ko/Tlinux_2_4_20
+/ftape-init.c/1.5/Fri Oct 19 01:24:19 2001/-ko/Tlinux_2_4_20
+/ftape-init.h/1.3/Fri Feb  4 07:40:33 2000/-ko/Tlinux_2_4_20
+/ftape-io.c/1.5/Thu Nov 23 02:00:51 2000/-ko/Tlinux_2_4_20
+/ftape-io.h/1.1/Sat Dec  6 23:52:55 1997/-ko/Tlinux_2_4_20
+/ftape-proc.c/1.5/Sat Jan 29 01:42:02 2000/-ko/Tlinux_2_4_20
+/ftape-proc.h/1.2/Fri Feb  4 07:40:33 2000/-ko/Tlinux_2_4_20
+/ftape-read.c/1.1/Sat Dec  6 23:52:56 1997/-ko/Tlinux_2_4_20
+/ftape-read.h/1.1/Sat Dec  6 23:52:56 1997/-ko/Tlinux_2_4_20
+/ftape-rw.c/1.4/Thu Nov 23 02:00:51 2000/-ko/Tlinux_2_4_20
+/ftape-rw.h/1.2.4.1/Wed Jun 26 22:35:37 2002/-ko/Tlinux_2_4_20
+/ftape-setup.c/1.3/Sat Oct  9 00:01:15 1999/-ko/Tlinux_2_4_20
+/ftape-tracing.c/1.2/Thu Nov 23 02:00:51 2000/-ko/Tlinux_2_4_20
+/ftape-tracing.h/1.4/Thu Oct  5 01:18:46 2000/-ko/Tlinux_2_4_20
+/ftape-write.c/1.2/Thu Nov 23 02:00:51 2000/-ko/Tlinux_2_4_20
+/ftape-write.h/1.1/Sat Dec  6 23:52:58 1997/-ko/Tlinux_2_4_20
+/ftape_syms.c/1.3/Fri Jul 21 22:00:58 2000/-ko/Tlinux_2_4_20
+/ftape_syms.h/1.1/Sat Dec  6 23:52:58 1997/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/char/ftape/lowlevel/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/char/ftape/lowlevel/CVS/Repository
--- linux-2.4.20/drivers/char/ftape/lowlevel/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/lowlevel/CVS/Repository	2005-01-06 23:01:45.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/char/ftape/lowlevel
diff -urNd -urNd linux-2.4.20/drivers/char/ftape/lowlevel/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/char/ftape/lowlevel/CVS/Root
--- linux-2.4.20/drivers/char/ftape/lowlevel/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/lowlevel/CVS/Root	2005-01-06 23:01:45.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/char/ftape/lowlevel/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/char/ftape/lowlevel/CVS/Tag
--- linux-2.4.20/drivers/char/ftape/lowlevel/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/lowlevel/CVS/Tag	2005-01-06 23:01:46.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/char/ftape/lowlevel/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/char/ftape/lowlevel/.cvsignore
--- linux-2.4.20/drivers/char/ftape/lowlevel/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/lowlevel/.cvsignore	1998-03-17 16:10:01.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/char/ftape/zftape/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/char/ftape/zftape/CVS/Entries
--- linux-2.4.20/drivers/char/ftape/zftape/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/zftape/CVS/Entries	2005-01-06 23:01:47.000000000 -0600
@@ -0,0 +1,21 @@
+/.cvsignore/1.2/Tue Mar 17 22:10:04 1998/-ko/Tlinux_2_4_20
+/Makefile/1.2/Wed Jan 10 17:17:58 2001/-ko/Tlinux_2_4_20
+/zftape-buffers.c/1.4/Fri Mar  9 20:33:59 2001/-ko/Tlinux_2_4_20
+/zftape-buffers.h/1.1/Sat Dec  6 23:52:59 1997/-ko/Tlinux_2_4_20
+/zftape-ctl.c/1.4/Thu Nov 23 02:00:51 2000/-ko/Tlinux_2_4_20
+/zftape-ctl.h/1.1/Sat Dec  6 23:53:00 1997/-ko/Tlinux_2_4_20
+/zftape-eof.c/1.2/Fri Feb  4 07:40:33 2000/-ko/Tlinux_2_4_20
+/zftape-eof.h/1.1/Sat Dec  6 23:53:00 1997/-ko/Tlinux_2_4_20
+/zftape-init.c/1.14/Fri Oct 19 01:24:19 2001/-ko/Tlinux_2_4_20
+/zftape-init.h/1.1/Sat Dec  6 23:53:01 1997/-ko/Tlinux_2_4_20
+/zftape-read.c/1.3/Thu Nov 23 02:00:51 2000/-ko/Tlinux_2_4_20
+/zftape-read.h/1.1/Sat Dec  6 23:53:01 1997/-ko/Tlinux_2_4_20
+/zftape-rw.c/1.3/Thu Nov 23 02:00:51 2000/-ko/Tlinux_2_4_20
+/zftape-rw.h/1.2/Tue Mar 17 22:10:05 1998/-ko/Tlinux_2_4_20
+/zftape-vtbl.c/1.4/Wed Jun 13 17:27:49 2001/-ko/Tlinux_2_4_20
+/zftape-vtbl.h/1.1.8.1/Wed Jun 26 22:35:37 2002/-ko/Tlinux_2_4_20
+/zftape-write.c/1.3/Thu Nov 23 02:00:51 2000/-ko/Tlinux_2_4_20
+/zftape-write.h/1.1/Sat Dec  6 23:53:03 1997/-ko/Tlinux_2_4_20
+/zftape_syms.c/1.4/Fri Jul 21 22:00:58 2000/-ko/Tlinux_2_4_20
+/zftape_syms.h/1.1/Sat Dec  6 23:53:03 1997/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/char/ftape/zftape/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/char/ftape/zftape/CVS/Repository
--- linux-2.4.20/drivers/char/ftape/zftape/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/zftape/CVS/Repository	2005-01-06 23:01:46.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/char/ftape/zftape
diff -urNd -urNd linux-2.4.20/drivers/char/ftape/zftape/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/char/ftape/zftape/CVS/Root
--- linux-2.4.20/drivers/char/ftape/zftape/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/zftape/CVS/Root	2005-01-06 23:01:46.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/char/ftape/zftape/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/char/ftape/zftape/CVS/Tag
--- linux-2.4.20/drivers/char/ftape/zftape/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/zftape/CVS/Tag	2005-01-06 23:01:47.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/char/ftape/zftape/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/char/ftape/zftape/.cvsignore
--- linux-2.4.20/drivers/char/ftape/zftape/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/zftape/.cvsignore	1998-03-17 16:10:04.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/char/indydog.c linux-2.4.20-mipscvs-20050106/drivers/char/indydog.c
--- linux-2.4.20/drivers/char/indydog.c	2002-11-28 17:53:12.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/indydog.c	2003-01-11 11:53:12.000000000 -0600
@@ -25,7 +25,6 @@
 #include <asm/sgi/sgimc.h>
 
 static unsigned long indydog_alive;
-static struct sgimc_misc_ctrl *mcmisc_regs; 
 static int expect_close = 0;
 
 #ifdef CONFIG_WATCHDOG_NOWAYOUT
@@ -37,12 +36,11 @@
 MODULE_PARM(nowayout,"i");
 MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started (default=CONFIG_WATCHDOG_NOWAYOUT)");
 
-static void indydog_ping()
+static inline void indydog_ping(void)
 {
 	mcmisc_regs->watchdogt = 0;
 }
 
-
 /*
  *	Allow only one person to hold it open
  */
@@ -51,21 +49,23 @@
 {
 	u32 mc_ctrl0;
 	
-	if( test_and_set_bit(0,&indydog_alive) )
+	if (test_and_set_bit(0,&indydog_alive))
 		return -EBUSY;
+
 	if (nowayout) {
 		MOD_INC_USE_COUNT;
 	}
+
 	/*
 	 *	Activate timer
 	 */
-	mcmisc_regs = (struct sgimc_misc_ctrl *)(KSEG1+0x1fa00000);
-
 	mc_ctrl0 = mcmisc_regs->cpuctrl0 | SGIMC_CCTRL0_WDOG;
 	mcmisc_regs->cpuctrl0 = mc_ctrl0;
 	indydog_ping();
 			
+	indydog_alive = 1;
 	printk("Started watchdog timer.\n");
+	
 	return 0;
 }
 
@@ -73,11 +73,12 @@
 {
 	/*
 	 *	Shut off the timer.
-	 * 	Lock it in if it's a module and we set nowayout.
+	 *	Lock it in if it's a module and we set nowayout.
 	 */
+	lock_kernel();
 	if (expect_close)
 	{
-		u32 mc_ctrl0 = mcmisc_regs->cpuctrl0; 
+		u32 mc_ctrl0 = mcmisc_regs->cpuctrl0;
 		mc_ctrl0 &= ~SGIMC_CCTRL0_WDOG;
 		mcmisc_regs->cpuctrl0 = mc_ctrl0;
 		printk("Stopped watchdog timer.\n");
@@ -86,7 +87,9 @@
 	{
 		printk(KERN_CRIT "WDT device closed unexpectedly.  WDT will not stop!\n");
 	}
-	clear_bit(0,&indydog_alive);
+	clear_bit(0, &indydog_alive);
+	unlock_kernel();
+
 	return 0;
 }
 
@@ -99,13 +102,13 @@
 	/*
 	 *	Refresh the timer.
 	 */
-	if(len) {
+	if (len) {
 		if (!nowayout) {
 			size_t i;
 
 			/* In case it was set long ago */
 			expect_close = 0;
-
+ 
 			for (i = 0; i != len; i++) {
 				char c;
 				if (get_user(c, data + i))
@@ -161,9 +164,7 @@
 
 static int __init watchdog_init(void)
 {
-	int ret;
-
-	ret = misc_register(&indydog_miscdev);
+	int ret = misc_register(&indydog_miscdev);
 
 	if (ret)
 		return ret;
diff -urNd -urNd linux-2.4.20/drivers/char/ip2/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/char/ip2/CVS/Entries
--- linux-2.4.20/drivers/char/ip2/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/ip2/CVS/Entries	2005-01-06 23:01:49.000000000 -0600
@@ -0,0 +1,20 @@
+/.cvsignore/1.2/Sat Oct  9 00:01:15 1999/-ko/Tlinux_2_4_20
+/Makefile/1.2/Sat Oct  9 00:01:15 1999/-ko/Tlinux_2_4_20
+/fip_firm.h/1.3/Fri Apr 28 01:09:37 2000/-ko/Tlinux_2_4_20
+/i2cmd.c/1.5.2.1/Sat Dec 29 05:37:54 2001/-ko/Tlinux_2_4_20
+/i2cmd.h/1.2/Sat Oct  9 00:01:15 1999/-ko/Tlinux_2_4_20
+/i2ellis.c/1.5/Tue Nov  6 07:55:58 2001/-ko/Tlinux_2_4_20
+/i2ellis.h/1.5/Tue Nov  6 07:55:59 2001/-ko/Tlinux_2_4_20
+/i2hw.h/1.3/Fri Mar  9 20:34:00 2001/-ko/Tlinux_2_4_20
+/i2lib.c/1.5.2.1/Wed Jun 26 22:35:37 2002/-ko/Tlinux_2_4_20
+/i2lib.h/1.6/Tue Nov  6 07:55:59 2001/-ko/Tlinux_2_4_20
+/i2os.h/1.3/Sat Jul  8 00:53:05 2000/-ko/Tlinux_2_4_20
+/i2pack.h/1.2/Sat Oct  9 00:01:15 1999/-ko/Tlinux_2_4_20
+/ip2.h/1.4/Tue Nov  6 07:55:59 2001/-ko/Tlinux_2_4_20
+/ip2ioctl.h/1.2/Sat Oct  9 00:01:15 1999/-ko/Tlinux_2_4_20
+/ip2mkdev.c/1.1/Fri Apr 28 01:09:37 2000/-ko/Tlinux_2_4_20
+/ip2stat.c/1.1/Fri Apr 28 01:09:37 2000/-ko/Tlinux_2_4_20
+/ip2trace.c/1.1/Fri Apr 28 01:09:37 2000/-ko/Tlinux_2_4_20
+/ip2trace.h/1.3/Fri Apr 28 01:09:37 2000/-ko/Tlinux_2_4_20
+/ip2types.h/1.2/Sat Oct  9 00:01:15 1999/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/char/ip2/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/char/ip2/CVS/Repository
--- linux-2.4.20/drivers/char/ip2/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/ip2/CVS/Repository	2005-01-06 23:01:47.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/char/ip2
diff -urNd -urNd linux-2.4.20/drivers/char/ip2/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/char/ip2/CVS/Root
--- linux-2.4.20/drivers/char/ip2/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/ip2/CVS/Root	2005-01-06 23:01:47.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/char/ip2/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/char/ip2/CVS/Tag
--- linux-2.4.20/drivers/char/ip2/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/ip2/CVS/Tag	2005-01-06 23:01:49.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/char/ip2/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/char/ip2/.cvsignore
--- linux-2.4.20/drivers/char/ip2/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/ip2/.cvsignore	1999-10-08 19:01:15.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/char/ite_gpio.c linux-2.4.20-mipscvs-20050106/drivers/char/ite_gpio.c
--- linux-2.4.20/drivers/char/ite_gpio.c	2001-09-09 12:43:02.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/drivers/char/ite_gpio.c	2002-05-29 03:12:07.000000000 -0500
@@ -30,9 +30,7 @@
  *  with this program; if not, write  to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/miscdevice.h>
diff -urNd -urNd linux-2.4.20/drivers/char/joystick/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/char/joystick/CVS/Entries
--- linux-2.4.20/drivers/char/joystick/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/joystick/CVS/Entries	2005-01-06 23:01:50.000000000 -0600
@@ -0,0 +1,31 @@
+/.cvsignore/1.1/Mon Dec  6 23:13:20 1999/-ko/Tlinux_2_4_20
+/Config.in/1.9.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/Makefile/1.8.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/a3d.c/1.3.2.1/Wed Jun 26 22:35:37 2002/-ko/Tlinux_2_4_20
+/adi.c/1.5/Fri Oct 19 01:24:20 2001/-ko/Tlinux_2_4_20
+/amijoy.c/1.4/Fri Oct 19 01:24:20 2001/-ko/Tlinux_2_4_20
+/analog.c/1.6.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/cobra.c/1.4/Fri Oct 19 01:24:20 2001/-ko/Tlinux_2_4_20
+/cs461x.c/1.3.2.1/Sat Dec 29 05:37:54 2001/-ko/Tlinux_2_4_20
+/db9.c/1.3/Fri Oct 19 01:24:20 2001/-ko/Tlinux_2_4_20
+/emu10k1-gp.c/1.2.2.2/Tue Feb 26 05:59:20 2002/-ko/Tlinux_2_4_20
+/gamecon.c/1.4/Fri Oct 19 01:24:20 2001/-ko/Tlinux_2_4_20
+/gameport.c/1.4/Fri Oct 19 01:24:21 2001/-ko/Tlinux_2_4_20
+/gf2k.c/1.3/Fri Oct 19 01:24:21 2001/-ko/Tlinux_2_4_20
+/grip.c/1.3/Fri Oct 19 01:24:21 2001/-ko/Tlinux_2_4_20
+/iforce.c/1.6.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/interact.c/1.3/Fri Oct 19 01:24:21 2001/-ko/Tlinux_2_4_20
+/lightning.c/1.3.2.1/Wed Jun 26 22:35:37 2002/-ko/Tlinux_2_4_20
+/magellan.c/1.3/Fri Oct 19 01:24:21 2001/-ko/Tlinux_2_4_20
+/ns558.c/1.7/Fri Oct 19 01:24:21 2001/-ko/Tlinux_2_4_20
+/pcigame.c/1.4.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/serio.c/1.3/Fri Oct 19 01:24:21 2001/-ko/Tlinux_2_4_20
+/serport.c/1.3/Fri Oct 19 01:24:21 2001/-ko/Tlinux_2_4_20
+/sidewinder.c/1.6/Fri Oct 19 01:24:21 2001/-ko/Tlinux_2_4_20
+/spaceball.c/1.5/Fri Oct 19 01:24:21 2001/-ko/Tlinux_2_4_20
+/spaceorb.c/1.3/Fri Oct 19 01:24:21 2001/-ko/Tlinux_2_4_20
+/stinger.c/1.2/Fri Oct 19 01:24:21 2001/-ko/Tlinux_2_4_20
+/tmdc.c/1.4/Fri Oct 19 01:24:21 2001/-ko/Tlinux_2_4_20
+/turbografx.c/1.2/Fri Oct 19 01:24:21 2001/-ko/Tlinux_2_4_20
+/warrior.c/1.3/Fri Oct 19 01:24:21 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/char/joystick/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/char/joystick/CVS/Repository
--- linux-2.4.20/drivers/char/joystick/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/joystick/CVS/Repository	2005-01-06 23:01:49.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/char/joystick
diff -urNd -urNd linux-2.4.20/drivers/char/joystick/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/char/joystick/CVS/Root
--- linux-2.4.20/drivers/char/joystick/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/joystick/CVS/Root	2005-01-06 23:01:49.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/char/joystick/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/char/joystick/CVS/Tag
--- linux-2.4.20/drivers/char/joystick/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/joystick/CVS/Tag	2005-01-06 23:01:50.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/char/joystick/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/char/joystick/.cvsignore
--- linux-2.4.20/drivers/char/joystick/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/joystick/.cvsignore	1999-12-06 17:13:20.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/char/lcd.c linux-2.4.20-mipscvs-20050106/drivers/char/lcd.c
--- linux-2.4.20/drivers/char/lcd.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/drivers/char/lcd.c	2002-05-29 03:12:07.000000000 -0500
@@ -14,6 +14,7 @@
 
 #define RTC_IO_EXTENT	0x10    /*Only really two ports, but...	*/
 
+#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/errno.h>
 #include <linux/miscdevice.h>
diff -urNd -urNd linux-2.4.20/drivers/char/Makefile linux-2.4.20-mipscvs-20050106/drivers/char/Makefile
--- linux-2.4.20/drivers/char/Makefile	2002-11-28 17:53:12.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/Makefile	2003-01-24 23:38:40.000000000 -0600
@@ -126,7 +126,6 @@
 ifeq ($(CONFIG_DECSTATION),y)
   KEYMAP   =
   KEYBD    =
-  SERIAL   = decserial.o
 endif
 
 ifeq ($(CONFIG_BAGET_MIPS),y)
@@ -157,7 +156,8 @@
 obj-$(CONFIG_SERIAL_21285) += serial_21285.o
 obj-$(CONFIG_SERIAL_SA1100) += serial_sa1100.o
 obj-$(CONFIG_SERIAL_AMBA) += serial_amba.o
-obj-$(CONFIG_TS_AU1000_ADS7846) += au1000_ts.o
+obj-$(CONFIG_TS_AU1X00_ADS7846) += au1000_ts.o
+obj-$(CONFIG_SERIAL_DEC) += decserial.o
 
 ifndef CONFIG_SUN_KEYBOARD
   obj-$(CONFIG_VT) += keyboard.o $(KEYMAP) $(KEYBD)
@@ -234,7 +234,9 @@
 obj-$(CONFIG_AMD_PM768) += amd76x_pm.o
 
 obj-$(CONFIG_ITE_GPIO) += ite_gpio.o
-obj-$(CONFIG_AU1000_GPIO) += au1000_gpio.o
+obj-$(CONFIG_AU1X00_GPIO) += au1000_gpio.o
+obj-$(CONFIG_AU1000_USB_TTY) += au1000_usbtty.o
+obj-$(CONFIG_AU1000_USB_RAW) += au1000_usbraw.o
 obj-$(CONFIG_COBALT_LCD) += lcd.o
 
 obj-$(CONFIG_QIC02_TAPE) += tpqic02.o
@@ -283,6 +285,7 @@
 obj-$(CONFIG_WAFER_WDT) += wafer5823wdt.o
 obj-$(CONFIG_SOFT_WATCHDOG) += softdog.o
 obj-$(CONFIG_AMD7XX_TCO) += amd7xx_tco.o
+obj-$(CONFIG_INDYDOG) += indydog.o
 
 subdir-$(CONFIG_MWAVE) += mwave
 ifeq ($(CONFIG_MWAVE),y)
diff -urNd -urNd linux-2.4.20/drivers/char/misc.c linux-2.4.20-mipscvs-20050106/drivers/char/misc.c
--- linux-2.4.20/drivers/char/misc.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/drivers/char/misc.c	2002-08-05 20:41:46.000000000 -0500
@@ -66,9 +66,7 @@
 static unsigned char misc_minors[DYNAMIC_MINORS / 8];
 
 extern int psaux_init(void);
-#ifdef CONFIG_SGI_NEWPORT_GFX
 extern void gfx_register(void);
-#endif
 extern void streamable_init(void);
 extern int rtc_DP8570A_init(void);
 extern int rtc_MK48T08_init(void);
diff -urNd -urNd linux-2.4.20/drivers/char/mwave/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/char/mwave/CVS/Entries
--- linux-2.4.20/drivers/char/mwave/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/mwave/CVS/Entries	2005-01-06 23:01:51.000000000 -0600
@@ -0,0 +1,13 @@
+/.cvsignore/1.1/Thu Nov 15 16:02:31 2001/-ko/Tlinux_2_4_20
+/3780i.c/1.1/Mon Nov  5 20:15:33 2001/-ko/Tlinux_2_4_20
+/3780i.h/1.1/Mon Nov  5 20:15:33 2001/-ko/Tlinux_2_4_20
+/Makefile/1.1/Mon Nov  5 20:15:33 2001/-ko/Tlinux_2_4_20
+/README/1.2/Mon Nov 19 13:53:59 2001/-ko/Tlinux_2_4_20
+/mwavedd.c/1.2.2.1/Tue Feb 26 05:59:20 2002/-ko/Tlinux_2_4_20
+/mwavedd.h/1.1/Mon Nov  5 20:15:33 2001/-ko/Tlinux_2_4_20
+/mwavepub.h/1.1/Mon Nov  5 20:15:33 2001/-ko/Tlinux_2_4_20
+/smapi.c/1.1.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/smapi.h/1.1/Mon Nov  5 20:15:33 2001/-ko/Tlinux_2_4_20
+/tp3780i.c/1.1/Mon Nov  5 20:15:33 2001/-ko/Tlinux_2_4_20
+/tp3780i.h/1.1/Mon Nov  5 20:15:33 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/char/mwave/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/char/mwave/CVS/Repository
--- linux-2.4.20/drivers/char/mwave/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/mwave/CVS/Repository	2005-01-06 23:01:50.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/char/mwave
diff -urNd -urNd linux-2.4.20/drivers/char/mwave/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/char/mwave/CVS/Root
--- linux-2.4.20/drivers/char/mwave/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/mwave/CVS/Root	2005-01-06 23:01:50.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/char/mwave/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/char/mwave/CVS/Tag
--- linux-2.4.20/drivers/char/mwave/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/mwave/CVS/Tag	2005-01-06 23:01:51.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/char/mwave/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/char/mwave/.cvsignore
--- linux-2.4.20/drivers/char/mwave/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/mwave/.cvsignore	2001-11-15 10:02:31.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/char/pcmcia/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/char/pcmcia/CVS/Entries
--- linux-2.4.20/drivers/char/pcmcia/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/pcmcia/CVS/Entries	2005-01-06 23:01:51.000000000 -0600
@@ -0,0 +1,6 @@
+/.cvsignore/1.1/Sat Jan 29 01:42:03 2000/-ko/Tlinux_2_4_20
+/Config.in/1.5.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/Makefile/1.4.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+/serial_cs.c/1.7.2.1/Sat Dec 29 05:37:54 2001/-ko/Tlinux_2_4_20
+/synclink_cs.c/1.2.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/char/pcmcia/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/char/pcmcia/CVS/Repository
--- linux-2.4.20/drivers/char/pcmcia/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/pcmcia/CVS/Repository	2005-01-06 23:01:51.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/char/pcmcia
diff -urNd -urNd linux-2.4.20/drivers/char/pcmcia/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/char/pcmcia/CVS/Root
--- linux-2.4.20/drivers/char/pcmcia/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/pcmcia/CVS/Root	2005-01-06 23:01:51.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/char/pcmcia/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/char/pcmcia/CVS/Tag
--- linux-2.4.20/drivers/char/pcmcia/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/pcmcia/CVS/Tag	2005-01-06 23:01:51.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/char/pcmcia/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/char/pcmcia/.cvsignore
--- linux-2.4.20/drivers/char/pcmcia/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/pcmcia/.cvsignore	2000-01-28 19:42:03.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/char/qtronixmap.c linux-2.4.20-mipscvs-20050106/drivers/char/qtronixmap.c
--- linux-2.4.20/drivers/char/qtronixmap.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/drivers/char/qtronixmap.c	2002-12-01 18:24:53.000000000 -0600
@@ -226,40 +226,40 @@
 };
 
 struct kbdiacr accent_table[MAX_DIACR] = {
-	{'`', 'A', '�'},	{'`', 'a', '�'},
-	{'\'', 'A', '�'},	{'\'', 'a', '�'},
-	{'^', 'A', '�'},	{'^', 'a', '�'},
-	{'~', 'A', '�'},	{'~', 'a', '�'},
-	{'"', 'A', '�'},	{'"', 'a', '�'},
-	{'O', 'A', '�'},	{'o', 'a', '�'},
-	{'0', 'A', '�'},	{'0', 'a', '�'},
-	{'A', 'A', '�'},	{'a', 'a', '�'},
-	{'A', 'E', '�'},	{'a', 'e', '�'},
-	{',', 'C', '�'},	{',', 'c', '�'},
-	{'`', 'E', '�'},	{'`', 'e', '�'},
-	{'\'', 'E', '�'},	{'\'', 'e', '�'},
-	{'^', 'E', '�'},	{'^', 'e', '�'},
-	{'"', 'E', '�'},	{'"', 'e', '�'},
-	{'`', 'I', '�'},	{'`', 'i', '�'},
-	{'\'', 'I', '�'},	{'\'', 'i', '�'},
-	{'^', 'I', '�'},	{'^', 'i', '�'},
-	{'"', 'I', '�'},	{'"', 'i', '�'},
-	{'-', 'D', '�'},	{'-', 'd', '�'},
-	{'~', 'N', '�'},	{'~', 'n', '�'},
-	{'`', 'O', '�'},	{'`', 'o', '�'},
-	{'\'', 'O', '�'},	{'\'', 'o', '�'},
-	{'^', 'O', '�'},	{'^', 'o', '�'},
-	{'~', 'O', '�'},	{'~', 'o', '�'},
-	{'"', 'O', '�'},	{'"', 'o', '�'},
-	{'/', 'O', '�'},	{'/', 'o', '�'},
-	{'`', 'U', '�'},	{'`', 'u', '�'},
-	{'\'', 'U', '�'},	{'\'', 'u', '�'},
-	{'^', 'U', '�'},	{'^', 'u', '�'},
-	{'"', 'U', '�'},	{'"', 'u', '�'},
-	{'\'', 'Y', '�'},	{'\'', 'y', '�'},
-	{'T', 'H', '�'},	{'t', 'h', '�'},
-	{'s', 's', '�'},	{'"', 'y', '�'},
-	{'s', 'z', '�'},	{'i', 'j', '�'},
+	{'`', 'A', '\300'},	{'`', 'a', '\340'},
+	{'\'', 'A', '\301'},	{'\'', 'a', '\341'},
+	{'^', 'A', '\302'},	{'^', 'a', '\342'},
+	{'~', 'A', '\303'},	{'~', 'a', '\343'},
+	{'"', 'A', '\304'},	{'"', 'a', '\344'},
+	{'O', 'A', '\305'},	{'o', 'a', '\345'},
+	{'0', 'A', '\305'},	{'0', 'a', '\345'},
+	{'A', 'A', '\305'},	{'a', 'a', '\345'},
+	{'A', 'E', '\306'},	{'a', 'e', '\346'},
+	{',', 'C', '\307'},	{',', 'c', '\347'},
+	{'`', 'E', '\310'},	{'`', 'e', '\350'},
+	{'\'', 'E', '\311'},	{'\'', 'e', '\351'},
+	{'^', 'E', '\312'},	{'^', 'e', '\352'},
+	{'"', 'E', '\313'},	{'"', 'e', '\353'},
+	{'`', 'I', '\314'},	{'`', 'i', '\354'},
+	{'\'', 'I', '\315'},	{'\'', 'i', '\355'},
+	{'^', 'I', '\316'},	{'^', 'i', '\356'},
+	{'"', 'I', '\317'},	{'"', 'i', '\357'},
+	{'-', 'D', '\320'},	{'-', 'd', '\360'},
+	{'~', 'N', '\321'},	{'~', 'n', '\361'},
+	{'`', 'O', '\322'},	{'`', 'o', '\362'},
+	{'\'', 'O', '\323'},	{'\'', 'o', '\363'},
+	{'^', 'O', '\324'},	{'^', 'o', '\364'},
+	{'~', 'O', '\325'},	{'~', 'o', '\365'},
+	{'"', 'O', '\326'},	{'"', 'o', '\366'},
+	{'/', 'O', '\330'},	{'/', 'o', '\370'},
+	{'`', 'U', '\331'},	{'`', 'u', '\371'},
+	{'\'', 'U', '\332'},	{'\'', 'u', '\372'},
+	{'^', 'U', '\333'},	{'^', 'u', '\373'},
+	{'"', 'U', '\334'},	{'"', 'u', '\374'},
+	{'\'', 'Y', '\335'},	{'\'', 'y', '\375'},
+	{'T', 'H', '\336'},	{'t', 'h', '\376'},
+	{'s', 's', '\337'},	{'"', 'y', '\377'},
+	{'s', 'z', '\337'},	{'i', 'j', '\377'},
 };
 
 unsigned int accent_table_size = 68;
diff -urNd -urNd linux-2.4.20/drivers/char/rio/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/char/rio/CVS/Entries
--- linux-2.4.20/drivers/char/rio/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/rio/CVS/Entries	2005-01-06 23:01:54.000000000 -0600
@@ -0,0 +1,80 @@
+/.cvsignore/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
+/Makefile/1.2/Wed Jan 10 17:17:58 2001/-ko/Tlinux_2_4_20
+/board.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
+/bootpkt.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
+/brates.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
+/cdproto.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
+/chan.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
+/cirrus.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
+/cmd.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
+/cmdblk.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
+/cmdpkt.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
+/control.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
+/daemon.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
+/data.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
+/debug.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
+/defaults.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
+/eisa.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
+/enable.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
+/error.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
+/errors.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
+/formpkt.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
+/func.h/1.2/Thu Jun 15 01:56:00 2000/-ko/Tlinux_2_4_20
+/host.h/1.3/Wed Jan 10 05:27:29 2001/-ko/Tlinux_2_4_20
+/hosthw.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
+/link.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
+/linux_compat.h/1.4.2.1/Wed Sep 11 12:44:49 2002/-ko/Tlinux_2_4_20
+/list.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
+/lrt.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
+/ltt.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
+/lttwake.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
+/map.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/mca.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/mesg.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/param.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/parmmap.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/pci.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/phb.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/pkt.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/poll.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/port.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/proto.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/protsts.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/qbuf.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/rio.h/1.3/Sat Sep 22 12:49:19 2001/-ko/Tlinux_2_4_20
+/rio_linux.c/1.11.2.1/Tue Feb 26 05:59:20 2002/-ko/Tlinux_2_4_20
+/rio_linux.h/1.4.2.1/Wed Sep 11 12:44:49 2002/-ko/Tlinux_2_4_20
+/rioboard.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/rioboot.c/1.5/Thu Aug 23 22:24:28 2001/-ko/Tlinux_2_4_20
+/riocmd.c/1.6.2.1/Wed Sep 11 12:44:49 2002/-ko/Tlinux_2_4_20
+/rioctrl.c/1.5/Wed Jun 13 17:27:49 2001/-ko/Tlinux_2_4_20
+/riodrvr.h/1.2/Thu Aug 23 22:24:28 2001/-ko/Tlinux_2_4_20
+/rioinfo.h/1.2/Fri Mar  9 20:34:00 2001/-ko/Tlinux_2_4_20
+/rioinit.c/1.5/Thu Aug 23 22:24:28 2001/-ko/Tlinux_2_4_20
+/riointr.c/1.5/Fri Oct 19 01:24:22 2001/-ko/Tlinux_2_4_20
+/rioioctl.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/riolocks.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/rioparam.c/1.3/Fri Mar  9 20:34:00 2001/-ko/Tlinux_2_4_20
+/riopcicopy.c/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/rioroute.c/1.4/Wed Aug 22 03:24:23 2001/-ko/Tlinux_2_4_20
+/riospace.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/riotable.c/1.5/Fri Oct 19 01:24:22 2001/-ko/Tlinux_2_4_20
+/riotime.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/riotty.c/1.5/Thu Aug 23 22:24:28 2001/-ko/Tlinux_2_4_20
+/riotypes.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/riowinif.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/riscos.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/rom.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/route.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/rtahw.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/rup.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/rupstat.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/sam.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/selftest.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/space.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/sysmap.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/timeouts.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/top.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/typdef.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
+/unixrup.h/1.2/Thu Jun 15 01:56:00 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/char/rio/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/char/rio/CVS/Repository
--- linux-2.4.20/drivers/char/rio/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/rio/CVS/Repository	2005-01-06 23:01:51.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/char/rio
diff -urNd -urNd linux-2.4.20/drivers/char/rio/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/char/rio/CVS/Root
--- linux-2.4.20/drivers/char/rio/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/rio/CVS/Root	2005-01-06 23:01:51.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/char/rio/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/char/rio/CVS/Tag
--- linux-2.4.20/drivers/char/rio/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/rio/CVS/Tag	2005-01-06 23:01:54.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/char/rio/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/char/rio/.cvsignore
--- linux-2.4.20/drivers/char/rio/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/rio/.cvsignore	2000-05-12 16:06:17.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/char/rtc.c linux-2.4.20-mipscvs-20050106/drivers/char/rtc.c
--- linux-2.4.20/drivers/char/rtc.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/drivers/char/rtc.c	2002-09-04 08:27:38.000000000 -0500
@@ -35,17 +35,16 @@
  *	1.09a	Pete Zaitcev: Sun SPARC
  *	1.09b	Jeff Garzik: Modularize, init cleanup
  *	1.09c	Jeff Garzik: SMP cleanup
- *	1.10    Paul Barton-Davis: add support for async I/O
+ *	1.10	Paul Barton-Davis: add support for async I/O
  *	1.10a	Andrea Arcangeli: Alpha updates
  *	1.10b	Andrew Morton: SMP lock fix
  *	1.10c	Cesar Barros: SMP locking fixes and cleanup
  *	1.10d	Paul Gortmaker: delete paranoia check in rtc_exit
  *	1.10e	Maciej W. Rozycki: Handle DECstation's year weirdness.
+ *	1.10f	Maciej W. Rozycki: Handle memory-mapped chips properly.
  */
 
-#define RTC_VERSION		"1.10e"
-
-#define RTC_IO_EXTENT	0x10	/* Only really two ports, but...	*/
+#define RTC_VERSION		"1.10f"
 
 /*
  *	Note that *all* calls to CMOS_READ and CMOS_WRITE are done with
@@ -83,7 +82,9 @@
 static int rtc_irq = PCI_IRQ_NONE;
 #endif
 
+#if RTC_IRQ
 static int rtc_has_irq = 1;
+#endif
 
 /*
  *	We sponge a minor off of the misc major. No need slurping
@@ -96,7 +97,9 @@
 
 static DECLARE_WAIT_QUEUE_HEAD(rtc_wait);
 
+#if RTC_IRQ
 static struct timer_list rtc_irq_timer;
+#endif
 
 static ssize_t rtc_read(struct file *file, char *buf,
 			size_t count, loff_t *ppos);
@@ -237,7 +240,15 @@
 	if (rtc_has_irq == 0)
 		return -EIO;
 
-	if (count < sizeof(unsigned long))
+	/*
+	 * Historically this function used to assume that sizeof(unsigned long)
+	 * is the same in userspace and kernelspace.  This lead to problems
+	 * for configurations with multiple ABIs such a the MIPS o32 and 64
+	 * ABIs supported on the same kernel.  So now we support read of both
+	 * 4 and 8 bytes and assume that's the sizeof(unsigned long) in the
+	 * userspace ABI.
+	 */
+	if (count != sizeof(unsigned int) && count !=  sizeof(unsigned long))
 		return -EINVAL;
 
 	add_wait_queue(&rtc_wait, &wait);
@@ -267,9 +278,12 @@
 		schedule();
 	} while (1);
 
-	retval = put_user(data, (unsigned long *)buf); 
+	if (count == sizeof(unsigned int))
+		retval = put_user(data, (unsigned int *)buf); 
+	else
+		retval = put_user(data, (unsigned long *)buf);
 	if (!retval)
-		retval = sizeof(unsigned long); 
+		retval = count;
  out:
 	current->state = TASK_RUNNING;
 	remove_wait_queue(&rtc_wait, &wait);
@@ -709,6 +723,9 @@
 	struct isa_device *isa_dev;
 #endif
 #endif
+#ifndef __sparc__
+	void *r;
+#endif
 
 #ifdef __sparc__
 	for_each_ebus(ebus) {
@@ -755,18 +772,24 @@
 	}
 no_irq:
 #else
-	if (!request_region(RTC_PORT(0), RTC_IO_EXTENT, "rtc"))
-	{
-		printk(KERN_ERR "rtc: I/O port %d is not free.\n", RTC_PORT (0));
+	if (RTC_IOMAPPED)
+		r = request_region(RTC_PORT(0), RTC_IO_EXTENT, "rtc");
+	else
+		r = request_mem_region(RTC_PORT(0), RTC_IO_EXTENT, "rtc");
+	if (!r) {
+		printk(KERN_ERR "rtc: I/O resource %lx is not free.\n",
+		       (long)(RTC_PORT(0)));
 		return -EIO;
 	}
 
 #if RTC_IRQ
-	if(request_irq(RTC_IRQ, rtc_interrupt, SA_INTERRUPT, "rtc", NULL))
-	{
+	if(request_irq(RTC_IRQ, rtc_interrupt, SA_INTERRUPT, "rtc", NULL)) {
 		/* Yeah right, seeing as irq 8 doesn't even hit the bus. */
 		printk(KERN_ERR "rtc: IRQ %d is not free.\n", RTC_IRQ);
-		release_region(RTC_PORT(0), RTC_IO_EXTENT);
+		if (RTC_IOMAPPED)
+			release_region(RTC_PORT(0), RTC_IO_EXTENT);
+		else
+			release_mem_region(RTC_PORT(0), RTC_IO_EXTENT);
 		return -EIO;
 	}
 #endif
@@ -850,7 +873,10 @@
 	if (rtc_has_irq)
 		free_irq (rtc_irq, &rtc_port);
 #else
-	release_region (RTC_PORT (0), RTC_IO_EXTENT);
+	if (RTC_IOMAPPED)
+		release_region(RTC_PORT(0), RTC_IO_EXTENT);
+	else
+		release_mem_region(RTC_PORT(0), RTC_IO_EXTENT);
 #if RTC_IRQ
 	if (rtc_has_irq)
 		free_irq (RTC_IRQ, NULL);
diff -urNd -urNd linux-2.4.20/drivers/char/sb1250_duart.c linux-2.4.20-mipscvs-20050106/drivers/char/sb1250_duart.c
--- linux-2.4.20/drivers/char/sb1250_duart.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/drivers/char/sb1250_duart.c	2003-02-19 14:37:43.000000000 -0600
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2000, 2001 Broadcom Corporation
+ * Copyright (C) 2000, 2001, 2002, 2003 Broadcom Corporation
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -24,10 +24,10 @@
  *
  * The non-console part of this code is based heavily on the serial_21285.c
  * driver also in this directory.  See tty_driver.h for a description of some
- * of the driver functions, though it (like most of the inline code documentation :)
- * is a bit out of date.  
+ * of the driver functions, though it (like most of the inline code
+ * documentation :) is a bit out of date.  
  */
-
+#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/serial.h>
 #include <linux/module.h>
@@ -43,13 +43,14 @@
 #include <linux/tty_flip.h>
 #include <linux/timer.h>
 #include <linux/init.h>
+#include <linux/mm.h>
 #include <asm/io.h>
 #include <asm/uaccess.h>
 #include <asm/sibyte/swarm.h>
-#include <asm/sibyte/sb1250.h>
 #include <asm/sibyte/sb1250_regs.h>
 #include <asm/sibyte/sb1250_uart.h>
 #include <asm/sibyte/sb1250_int.h>
+#include <asm/sibyte/sb1250.h>
 #include <asm/sibyte/64bit.h>
 
 /* Toggle spewing of debugging output */
@@ -57,44 +58,63 @@
 
 #define DEFAULT_CFLAGS          (CS8 | B115200)
 
+#define SB1250_DUART_MINOR_BASE	64
 
-/*
-  Still not sure what the termios structures set up here are for, 
-   but we have to supply pointers to them to register the tty driver
-*/
+#ifndef MIN
+#define MIN(a,b)	((a) < (b) ? (a) : (b))
+#endif
 
+#ifdef CONFIG_SIBYTE_SB1250_DUART_NO_PORT_1
+#define DUART_MAX_LINE 1
+#else
+#define DUART_MAX_LINE 2
+#endif
+
+/*
+ * Still not sure what the termios structures set up here are for, 
+ *  but we have to supply pointers to them to register the tty driver
+ */
 static struct tty_driver sb1250_duart_driver, sb1250_duart_callout_driver;
-static int ref_count;
-static struct tty_struct *duart_table[2];
-static struct termios    *duart_termios[2];
-static struct termios    *duart_termios_locked[2];
+static int duart_refcount;
+static struct tty_struct *duart_table[DUART_MAX_LINE];
+static struct termios    *duart_termios[DUART_MAX_LINE];
+static struct termios    *duart_termios_locked[DUART_MAX_LINE];
 
-/* This lock protects both the open flags for all the uart states as 
-   well as the reference count for the module */
-static spinlock_t          open_lock = SPIN_LOCK_UNLOCKED;
+/*
+ * tmp_buf is used as a temporary buffer by serial_write.  We need to
+ * lock it in case the copy_from_user blocks while swapping in a page,
+ * and some other program tries to do a serial write at the same time.
+ * Since the lock will only come under contention when the system is
+ * swapping and available memory is low, it makes sense to share one
+ * buffer across all the serial ports, since it significantly saves
+ * memory if large numbers of serial ports are open.
+ */
+static unsigned char *tmp_buf = 0;
+DECLARE_MUTEX(tmp_buf_sem);
 
-/* Protect the writing stuff from contention */
-//static spinlock_t          console_lock = SPIN_LOCK_UNLOCKED;
+/*
+ * This lock protects both the open flags for all the uart states as 
+ * well as the reference count for the module
+ */
+static spinlock_t          open_lock = SPIN_LOCK_UNLOCKED;
 
 /* Bit fields of flags in the flags field below */
 
-#define SD_WRITE_WAKE       0x000000001
-
-
 typedef struct { 
 	struct tty_struct   *tty;
-	unsigned char       outp_buf[CONFIG_SB1250_DUART_OUTPUT_BUF_SIZE];
+	unsigned char       outp_buf[SERIAL_XMIT_SIZE];
 	unsigned int        outp_head;
 	unsigned int        outp_tail;
 	unsigned int        outp_count;
 	spinlock_t          outp_lock;
 	unsigned int        outp_stopped;
 	unsigned int        open;
-	unsigned long       flags;
+	unsigned int        line;
 	unsigned int        last_cflags;
+	unsigned long       flags;
 } uart_state_t;
 
-static uart_state_t uart_states[2] = { [0 ... 1] = {
+static uart_state_t uart_states[DUART_MAX_LINE] = { [0 ... DUART_MAX_LINE-1] = {
 	tty:                0,
 	outp_head:          0,
 	outp_tail:          0,
@@ -134,23 +154,20 @@
 
 static inline unsigned long get_status_reg(unsigned int line)
 {
-	return in64(IO_SPACE_BASE | A_DUART_CHANREG(line, R_DUART_STATUS));
-}
-
-/* Derive which uart a call is for from the passed tty line.  */
-static inline unsigned int get_line(struct tty_struct *tty) 
-{
-	unsigned int line = MINOR(tty->device) - 64;
-	if (line > 1)
-		printk(KERN_CRIT "Invalid line\n");
+	uint64_t status;
 
-	return line;
+	/* Workaround the UART synchronizer bug XXXKW Pass 2 Workaround */
+#ifdef CONFIG_SB1_PASS_2_WORKAROUNDS
+	in64(IO_SPACE_BASE | A_DUART_CHANREG(line, R_DUART_CMD));
+#endif
+	status = in64(IO_SPACE_BASE | A_DUART_CHANREG(line, R_DUART_STATUS));
+#ifdef CONFIG_SB1_PASS_2_WORKAROUNDS
+	in64(IO_SPACE_BASE | A_DUART_CHANREG(line, R_DUART_CMD));
+#endif
+	return status;
 }
 
 
-
-#define MIN(a, b) (((a)<(b))?(a):(b))
-
 /* 
  * Generic interrupt handler for both channels.  dev_id is a pointer
  * to the proper uart_states structure, so from that we can derive 
@@ -159,23 +176,26 @@
 
 static void duart_int(int irq, void *dev_id, struct pt_regs *regs)
 {
-	unsigned int line;
 	uart_state_t *us = (uart_state_t *)dev_id;
-	line = us-uart_states;
+	unsigned int line = us->line;
+	struct tty_struct *tty = us->tty;
+
 #ifdef DUART_SPEW
-//	setleds("INT!");
-        printk("DUART INT\n");
+	printk("DUART INT\n");
 #endif
-	/* We could query the ISR to figure out why we are here, but since
-	   we are here, we may as well just take care of both rx and tx */
+	/*
+	 * We could query the ISR to figure out why we are here, but since
+	 * we are here, we may as well just take care of both rx and tx
+	 */
 	spin_lock(&us->outp_lock);
 	if (get_status_reg(line) & M_DUART_RX_RDY) {
 		do {
 			unsigned int status = get_status_reg(line);
-			unsigned int ch = in64(IO_SPACE_BASE | A_DUART_CHANREG(line, R_DUART_RX_HOLD));
+			unsigned int ch = in64(IO_SPACE_BASE |
+				A_DUART_CHANREG(line, R_DUART_RX_HOLD));
 			unsigned int flag = 0;
-			if (status & 0x10) {
-				tty_insert_flip_char(us->tty, 0, TTY_OVERRUN);			}
+			if (status & 0x10)
+				tty_insert_flip_char(tty, 0, TTY_OVERRUN);
 			if (status & 0x20) {
 				printk("Parity error!\n");
 				flag = TTY_PARITY;
@@ -183,26 +203,32 @@
 				printk("Frame error!\n");
 				flag = TTY_FRAME;
 			}
-			tty_insert_flip_char(us->tty, ch, flag);
+			tty_insert_flip_char(tty, ch, flag);
 		} while (get_status_reg(line) & M_DUART_RX_RDY);
-		tty_flip_buffer_push(us->tty);
+		tty_flip_buffer_push(tty);
 	} 
 	if ((get_status_reg(line) & M_DUART_TX_RDY) && us->outp_count) {
 		do {
 			out64(us->outp_buf[us->outp_head], IO_SPACE_BASE | A_DUART_CHANREG(line, R_DUART_TX_HOLD));
-			us->outp_head = (us->outp_head + 1) & (CONFIG_SB1250_DUART_OUTPUT_BUF_SIZE-1);
+			us->outp_head = (us->outp_head + 1) & (SERIAL_XMIT_SIZE-1);
 			us->outp_count--;
-		} while ((get_status_reg(line) & M_DUART_TX_RDY) && us->outp_count);
+		} while ((get_status_reg(line) & M_DUART_TX_RDY) &&
+		         us->outp_count);
 
-		if (us->open && (us->flags & SD_WRITE_WAKE) &&
-		    (us->outp_count < (CONFIG_SB1250_DUART_OUTPUT_BUF_SIZE/2))) {
-			/* We told the discipline at one point that we had no space, so it went
-			   to sleep.  Wake it up when we hit half empty */
-			wake_up_interruptible(&us->tty->write_wait);
+		if (us->open &&
+		    (us->outp_count < (SERIAL_XMIT_SIZE/2))) {
+			/*
+			 * We told the discipline at one point that we had no
+			 * space, so it went to sleep.  Wake it up when we hit
+			 * half empty
+			 */
+			if ((tty->flags & (1 << TTY_DO_WRITE_WAKEUP)) &&
+			     tty->ldisc.write_wakeup)
+				tty->ldisc.write_wakeup(tty);
+			wake_up_interruptible(&tty->write_wait);
 		}
-		if (!us->outp_count) {
+		if (!us->outp_count)
 			duart_mask_ints(line, M_DUART_IMR_TX);
-		}
 	}
 	spin_unlock(&us->outp_lock);
 }
@@ -214,19 +240,15 @@
 /* Return the number of characters we can accomodate in a write at this instant */
 static int duart_write_room(struct tty_struct *tty)
 {
-	unsigned long flags;
+	uart_state_t *us = (uart_state_t *) tty->driver_data;
 	int retval;
-	uart_state_t *us = &uart_states[get_line(tty)];
 
-	spin_lock_irqsave(&us->outp_lock, flags);
-	retval = CONFIG_SB1250_DUART_OUTPUT_BUF_SIZE - uart_states[get_line(tty)].outp_count;
-	if (!retval) {
-		us->flags |= SD_WRITE_WAKE;
-	}
-	spin_unlock_irqrestore(&us->outp_lock, flags);
+	retval = SERIAL_XMIT_SIZE - us->outp_count;
+
 #ifdef DUART_SPEW
 	printk("duart_write_room called, returning %i\n", retval);
 #endif
+
 	return retval;
 }
 
@@ -242,69 +264,102 @@
 	return size;
 }
 
-/* Buffer up to count characters from buf to be written.  If we don't have other
-   characters buffered, enable the tx interrupt to start sending */
+/*
+ * Buffer up to count characters from buf to be written.  If we don't have
+ * other characters buffered, enable the tx interrupt to start sending
+ */
 static int duart_write(struct tty_struct * tty, int from_user,
-		      const unsigned char *buf, int count)
+	const unsigned char *buf, int count)
 {
-	uart_state_t *us;
+	uart_state_t *us = (uart_state_t *) tty->driver_data;
+	int c, total = 0;
 	unsigned long flags;
-	unsigned int line;
-	int chars_written = 0;
+
 	if (from_user && verify_area(VERIFY_READ, buf, count)) {
 		return -EINVAL;
 	}
 #ifdef DUART_SPEW
 	printk("duart_write called for %i chars by %i (%s)\n", count, current->pid, current->comm);
 #endif
-	line = get_line(tty);
-	us = &uart_states[line];
-	spin_lock_irqsave(&us->outp_lock, flags);
-	if (!count || (us->outp_count == CONFIG_SB1250_DUART_OUTPUT_BUF_SIZE)) {
-		spin_unlock_irqrestore(&us->outp_lock, flags);
+	if (!count ||
+	    (us->outp_count == SERIAL_XMIT_SIZE)) {
 		return 0;
 	}
-	if (us->outp_tail < us->outp_head) {
-		/* Straightforward case; copy from tail to head */
-		chars_written += copy_buf(us->outp_buf + us->outp_tail, buf, 
-					  MIN(count, us->outp_head - us->outp_tail), from_user);
-	} else {
-		/* Copy from tail to end of buffer, wrap around and then
-		   copy to head */
-		chars_written += copy_buf(us->outp_buf + us->outp_tail, buf, 
-					  MIN(CONFIG_SB1250_DUART_OUTPUT_BUF_SIZE - us->outp_tail, count), 
-					  from_user);
-		if (chars_written < count) {
-			chars_written += copy_buf(us->outp_buf, buf + chars_written,
-						  MIN(us->outp_head, count - chars_written), from_user);
+	if (from_user) {
+		down(&tmp_buf_sem);
+		while (1) {
+			c = MIN(count, MIN(PAGE_SIZE - us->outp_count - 1,
+					   PAGE_SIZE - us->outp_tail));
+			if (c <= 0)
+				break;
+			
+			c -= copy_from_user(tmp_buf, buf, c);
+			if (!c) {
+				if (!total)
+					total = -EFAULT;
+				break;
+			}
+			
+			spin_lock_irqsave(&us->outp_lock, flags);
+			c = MIN(c, MIN(SERIAL_XMIT_SIZE - us->outp_count - 1,
+				       SERIAL_XMIT_SIZE - us->outp_tail));
+			memcpy(us->outp_buf + us->outp_tail, tmp_buf, c);
+			us->outp_tail = (us->outp_tail + c) & (SERIAL_XMIT_SIZE-1);
+			us->outp_count += c;
+			spin_unlock_irqrestore(&us->outp_lock, flags);
+			
+			buf += c;
+			count -= c;
+			total += c;
 		}
+		up(&tmp_buf_sem);
+	} else {
+	    while (1) {
+		    spin_lock_irqsave(&us->outp_lock, flags);
+		    c = MIN(count, MIN(SERIAL_XMIT_SIZE - us->outp_count - 1,
+				       SERIAL_XMIT_SIZE - us->outp_tail));
+		    if (c <= 0) {
+			    spin_unlock_irqrestore(&us->outp_lock, flags);
+			    break;
+		    }
+
+		    memcpy(us->outp_buf + us->outp_tail, buf, c);
+		    us->outp_tail = (us->outp_tail + c) & (SERIAL_XMIT_SIZE-1);
+		    us->outp_count += c;
+		    spin_unlock_irqrestore(&us->outp_lock, flags);
+
+		    buf += c;
+		    count -= c;
+		    total += c;
+	    }
 	}
-	us->outp_tail = (us->outp_tail + chars_written) &(CONFIG_SB1250_DUART_OUTPUT_BUF_SIZE-1);
-	if (!(us->outp_count || us->outp_stopped)) {
-		duart_unmask_ints(line, M_DUART_IMR_TX);
+	/* Excessive... */
+	if (us->outp_count && !us->outp_stopped) {
+		spin_lock_irqsave(&us->outp_lock, flags);
+		duart_unmask_ints(us->line, M_DUART_IMR_TX);
+		spin_unlock_irqrestore(&us->outp_lock, flags);
 	}
-	us->outp_count += chars_written;
-	spin_unlock_irqrestore(&us->outp_lock, flags);
-	return chars_written;
-}	
+
+	return total;
+}
 
 
 /* Buffer one character to be written.  If there's not room for it, just drop
    it on the floor.  This is used for echo, among other things */
 static void duart_put_char(struct tty_struct *tty, u_char ch)
 {
+	uart_state_t *us = (uart_state_t *) tty->driver_data;
 	unsigned long flags;
-	unsigned int line = get_line(tty);
-	uart_state_t *us = &uart_states[line];
+
 #ifdef DUART_SPEW
 	printk("duart_put_char called.  Char is %x (%c)\n", (int)ch, ch);
 #endif
 	spin_lock_irqsave(&us->outp_lock, flags);
-	if (us->outp_count != CONFIG_SB1250_DUART_OUTPUT_BUF_SIZE) {
+	if (us->outp_count != SERIAL_XMIT_SIZE) {
 		us->outp_buf[us->outp_tail] = ch;
-		us->outp_tail = (us->outp_tail + 1) &(CONFIG_SB1250_DUART_OUTPUT_BUF_SIZE-1);
+		us->outp_tail = (us->outp_tail + 1) &(SERIAL_XMIT_SIZE-1);
 		if (!(us->outp_count || us->outp_stopped)) {
-			duart_unmask_ints(line, M_DUART_IMR_TX);
+			duart_unmask_ints(us->line, M_DUART_IMR_TX);
 		}
 		us->outp_count++;
 	}
@@ -315,15 +370,11 @@
    written */
 static int duart_chars_in_buffer(struct tty_struct *tty)
 {
+	uart_state_t *us = (uart_state_t *) tty->driver_data;
 	int retval;
-	unsigned long flags;
-	uart_state_t *us = &uart_states[get_line(tty)];
-	spin_lock_irqsave(&us->outp_lock, flags);
+
 	retval = us->outp_count;
-	if (retval) {
-		us->flags |= SD_WRITE_WAKE;
-	}
-	spin_unlock_irqrestore(&us->outp_lock, flags);
+
 #ifdef DUART_SPEW
 	printk("duart_chars_in_buffer returning %i\n", retval);
 #endif
@@ -334,19 +385,22 @@
    transmit interrupt since we've nothing more to transmit */
 static void duart_flush_buffer(struct tty_struct *tty)
 {
+	uart_state_t *us = (uart_state_t *) tty->driver_data;
 	unsigned long flags;
-	unsigned int line = get_line(tty);
-	uart_state_t *us = &uart_states[get_line(tty)];
+
 #ifdef DUART_SPEW
 	printk("duart_flush_buffer called\n");
 #endif
-	duart_mask_ints(line, M_DUART_IMR_TX);
+	duart_mask_ints(us->line, M_DUART_IMR_TX);
 	spin_lock_irqsave(&us->outp_lock, flags);
 	us->outp_head = us->outp_tail = us->outp_count = 0;
-	if (us->flags & SD_WRITE_WAKE) {
-		wake_up_interruptible(&us->tty->write_wait);
-	}	
 	spin_unlock_irqrestore(&us->outp_lock, flags);
+
+	wake_up_interruptible(&us->tty->write_wait);
+
+	if ((tty->flags & (1 << TTY_DO_WRITE_WAKEUP)) &&
+	    tty->ldisc.write_wakeup)
+		tty->ldisc.write_wakeup(tty);
 }
 
 
@@ -355,6 +409,7 @@
 {
 	unsigned int mode_reg1 = 0, mode_reg2 = 0;
 	unsigned int clk_divisor;
+
 	switch (cflag & CSIZE) {
 	case CS7:
 		mode_reg1 |= V_DUART_BITS_PER_CHAR_7;
@@ -402,26 +457,28 @@
 /* Handle notification of a termios change.  */
 static void duart_set_termios(struct tty_struct *tty, struct termios *old)
 {
+	uart_state_t *us = (uart_state_t *) tty->driver_data;
+
 #ifdef DUART_SPEW 
 	printk("duart_set_termios called by %i (%s)\n", current->pid, current->comm);
 #endif
 	if (old && tty->termios->c_cflag == old->c_cflag)
 		return;
-	duart_set_cflag(get_line(tty), tty->termios->c_cflag);
+	duart_set_cflag(us->line, tty->termios->c_cflag);
 }
 
 /* Stop pushing stuff into the fifo, now.  Do the mask under the 
    outp_lock to avoid races involving turning the interrupt line on/off */
 static void duart_stop(struct tty_struct *tty)
 {
+	uart_state_t *us = (uart_state_t *) tty->driver_data;
 	unsigned long flags;
-	unsigned int line = get_line(tty);
-	uart_state_t *us = &uart_states[line];
+
 #ifdef DUART_SPEW
 	printk("duart_stop called\n");
 #endif
 	spin_lock_irqsave(&us->outp_lock, flags);
-	duart_mask_ints(get_line(tty), M_DUART_IMR_TX);
+	duart_mask_ints(us->line, M_DUART_IMR_TX);
 	us->outp_stopped = 1;
 	spin_unlock_irqrestore(&us->outp_lock, flags);
 }
@@ -512,15 +569,15 @@
    outp_lock to avoid races involving turning the interrupt line on/off */
 static void duart_start(struct tty_struct *tty)
 {
+	uart_state_t *us = (uart_state_t *) tty->driver_data;
 	unsigned long flags;
-	unsigned int line = get_line(tty);
-	uart_state_t *us = &uart_states[line];
+
 #ifdef DUART_SPEW
 	printk("duart_start called\n");
 #endif
 	spin_lock_irqsave(&us->outp_lock, flags);
 	if (us->outp_count) {
-		duart_unmask_ints(get_line(tty), M_DUART_IMR_TX);
+		duart_unmask_ints(us->line, M_DUART_IMR_TX);
 	}
 	us->outp_stopped = 0;
 	spin_unlock_irqrestore(&us->outp_lock, flags);
@@ -534,17 +591,20 @@
 
 static void duart_wait_until_sent(struct tty_struct *tty, int timeout)
 {
-	unsigned long target_time;
-	unsigned int line;
-	uart_state_t *us;
+	uart_state_t *us = (uart_state_t *) tty->driver_data;
+	unsigned long orig_jiffies;
+
+	orig_jiffies = jiffies;
 #ifdef DUART_SPEW
 	printk("duart_wait_until_sent(%d)+\n", timeout);
 #endif
-	target_time = jiffies + timeout;
-	line = get_line(tty);
-	us = &uart_states[line];
-	while (!(get_status_reg(line) & M_DUART_TX_EMT) && (jiffies < target_time)) {
+	while (!(get_status_reg(us->line) & M_DUART_TX_EMT)) {
+		set_current_state(TASK_INTERRUPTIBLE);
 	 	schedule_timeout(1);
+		if (signal_pending(current))
+			break;
+		if (timeout && time_after(jiffies, orig_jiffies + timeout))
+			break;
 	}
 #ifdef DUART_SPEW
 	printk("duart_wait_until_sent()-\n");
@@ -552,53 +612,60 @@
 }
 
 /*
+ * duart_hangup() --- called by tty_hangup() when a hangup is signaled.
+ */
+static void duart_hangup(struct tty_struct *tty)
+{
+	uart_state_t *us = (uart_state_t *) tty->driver_data;
+
+	duart_flush_buffer(tty);
+	us->open = 0;
+	us->tty = 0;
+}
+
+/*
  * Open a tty line.  Note that this can be called multiple times, so ->open can
  * be >1.  Only set up the tty struct if this is a "new" open, e.g. ->open was
  * zero
  */
 static int duart_open(struct tty_struct *tty, struct file *filp)
 {
-	unsigned long flags;
-	unsigned int line;
 	uart_state_t *us;
+	unsigned int line = MINOR(tty->device) - tty->driver.minor_start;
+	unsigned long flags;
 
 	MOD_INC_USE_COUNT;
-#ifndef CONFIG_SIBYTE_SB1250_DUART_NO_PORT_1
-	if (get_line(tty) > 1)
-#else
-	if (get_line(tty) > 0)
-#endif
-	                      {
+
+	if ((line < 0) || (line >= DUART_MAX_LINE)) {
 		MOD_DEC_USE_COUNT;
 		return -ENODEV;
 	}
+
 #ifdef DUART_SPEW
-	printk("duart_open called by %i (%s), tty is %p, rw is %p, ww is %p\n", current->pid, current->comm, tty,
-	       tty->read_wait, tty->write_wait);
+	printk("duart_open called by %i (%s), tty is %p, rw is %p, ww is %p\n",
+	       current->pid, current->comm, tty, tty->read_wait,
+	       tty->write_wait);
 #endif
-	line = get_line(tty);
-	tty->driver_data = NULL;
-	us = &uart_states[line];
-	
+
+	us = uart_states + line;
+	tty->driver_data = us;
+
+	if (!tmp_buf) {
+		tmp_buf = (unsigned char *) get_free_page(GFP_KERNEL);
+		if (!tmp_buf){
+			return -ENOMEM;
+		}
+	}
+
 	spin_lock_irqsave(&open_lock, flags);
 	if (!us->open) {
 		us->tty = tty;
 		us->tty->termios->c_cflag = us->last_cflags;
 	}
 	us->open++;
-#ifdef FORCED_INPUT
-	if (!line && (us->open == 1)) {
-		next_inp = inp_cmds;
-		init_timer(&inp_timer);
-		inp_timer.expires = jiffies + 20;
-		inp_timer.data = 0;
-		inp_timer.function = stuff_char;
-		stuff_char_tty = tty;
-		add_timer(&inp_timer);
-	}
-#endif
 	duart_unmask_ints(line, M_DUART_IMR_RX);
 	spin_unlock_irqrestore(&open_lock, flags);
+
 	return 0;
 }
 
@@ -610,26 +677,43 @@
  */
 static void duart_close(struct tty_struct *tty, struct file *filp)
 {
+	uart_state_t *us = (uart_state_t *) tty->driver_data;
 	unsigned long flags;
-	unsigned int line = get_line(tty);
-	uart_state_t *us = &uart_states[line];
+
 #ifdef DUART_SPEW
 	printk("duart_close called by %i (%s)\n", current->pid, current->comm);
 #endif
+
+	if (!us || !us->open)
+		return;
+
 	spin_lock_irqsave(&open_lock, flags);
-	us->open--;
-#if 0
-	if (!us->open) {
-		/* Flushing TX stuff here is conservative */
-		duart_mask_ints(line, M_DUART_IMR_IN | M_DUART_IMR_BRK | M_DUART_IMR_RX | M_DUART_IMR_TX);
-		spin_lock(&us->outp_lock);
-		us->outp_head = us->outp_tail = us->outp_count = us->outp_stopped = 0;
-		us->tty = NULL;
-		spin_unlock(&us->outp_lock);
+	if (tty_hung_up_p(filp)) {
+		MOD_DEC_USE_COUNT;
+		spin_unlock_irqrestore(&open_lock, flags);
+		return;
 	}
-#endif
-	ref_count--;
+
+	if (--us->open < 0) {
+		us->open = 0;
+		printk(KERN_ERR "duart: bad open count: %d\n", us->open);
+	}
+	if (us->open) {
+		spin_unlock_irqrestore(&open_lock, flags);
+		return;
+	}
+
 	spin_unlock_irqrestore(&open_lock, flags);
+
+	tty->closing = 1;
+	duart_mask_ints(us-uart_states, M_DUART_IMR_TX);
+
+	if (tty->driver.flush_buffer)
+		tty->driver.flush_buffer(tty);
+	if (tty->ldisc.flush_buffer)
+		tty->ldisc.flush_buffer(tty);
+	tty->closing = 0;
+
 	MOD_DEC_USE_COUNT;
 }
 
@@ -638,6 +722,8 @@
    is called from tty_init, or as a part of the module init */
 static int __init sb1250_duart_init(void) 
 {
+	int i;
+
 	sb1250_duart_driver.magic            = TTY_DRIVER_MAGIC;
 	sb1250_duart_driver.driver_name      = "serial";
 #ifdef CONFIG_DEVFS_FS
@@ -646,13 +732,13 @@
 	sb1250_duart_driver.name             = "ttyS";
 #endif
 	sb1250_duart_driver.major            = TTY_MAJOR;
-	sb1250_duart_driver.minor_start      = 64;
-	sb1250_duart_driver.num              = 2;
+	sb1250_duart_driver.minor_start      = SB1250_DUART_MINOR_BASE;
+	sb1250_duart_driver.num              = DUART_MAX_LINE;
 	sb1250_duart_driver.type             = TTY_DRIVER_TYPE_SERIAL;
 	sb1250_duart_driver.subtype          = SERIAL_TYPE_NORMAL;
 	sb1250_duart_driver.init_termios     = tty_std_termios;
 	sb1250_duart_driver.flags            = TTY_DRIVER_REAL_RAW;
-	sb1250_duart_driver.refcount         = &ref_count;
+	sb1250_duart_driver.refcount         = &duart_refcount;
 	sb1250_duart_driver.table            = duart_table;
 	sb1250_duart_driver.termios          = duart_termios;
 	sb1250_duart_driver.termios_locked   = duart_termios_locked;
@@ -668,6 +754,7 @@
 	sb1250_duart_driver.set_termios      = duart_set_termios;
 	sb1250_duart_driver.stop             = duart_stop;
 	sb1250_duart_driver.start            = duart_start;
+	sb1250_duart_driver.hangup           = duart_hangup;
 	sb1250_duart_driver.wait_until_sent  = duart_wait_until_sent;
 
 	sb1250_duart_callout_driver          = sb1250_duart_driver;
@@ -679,16 +766,16 @@
 	sb1250_duart_callout_driver.major    = TTYAUX_MAJOR;
 	sb1250_duart_callout_driver.subtype  = SERIAL_TYPE_CALLOUT;
 
-	duart_mask_ints(0, 0xf);
-	if (request_irq(K_INT_UART_0, duart_int, 0, "uart0", &uart_states[0])) {
-		panic("Couldn't get uart0 interrupt line");
-	}
-#ifndef CONFIG_SIBYTE_SB1250_DUART_NO_PORT_1
-	duart_mask_ints(1, 0xf);
-	if (request_irq(K_INT_UART_1, duart_int, 0, "uart1", &uart_states[1])) {
-		panic("Couldn't get uart1 interrupt line");
+	for (i=0; i<DUART_MAX_LINE; i++) {
+		duart_mask_ints(i, 0xf);
+		if (request_irq(K_INT_UART_0+i, duart_int, 0, "uart", &uart_states[i])) {
+			panic("Couldn't get uart0 interrupt line");
+		}
+		out64(M_DUART_RX_EN|M_DUART_TX_EN,
+		      IO_SPACE_BASE | A_DUART_CHANREG(i, R_DUART_CMD));
+		duart_set_cflag(i, DEFAULT_CFLAGS);
+		uart_states[i].line = i;
 	}
-#endif	
 
 	/* Interrupts are now active, our ISR can be called. */
 
@@ -698,10 +785,6 @@
 	if (tty_register_driver(&sb1250_duart_callout_driver)) {
 		printk(KERN_ERR "Couldn't register sb1250 duart callout driver\n");
 	}
-	duart_set_cflag(0, DEFAULT_CFLAGS);
-#ifndef CONFIG_SIBYTE_SB1250_DUART_NO_PORT_1
-	duart_set_cflag(1, DEFAULT_CFLAGS);
-#endif
 	return 0;
 }
 
@@ -709,10 +792,10 @@
 static void __exit sb1250_duart_fini(void)
 {
 	unsigned long flags;
+	int i;
 	int ret;
 
-	save_flags(flags);
-	cli();
+	save_and_cli(flags);
 	ret = tty_unregister_driver(&sb1250_duart_callout_driver);
 	if (ret) {
 		printk(KERN_ERR "Unable to unregister sb1250 duart callout driver (%d)\n", ret);
@@ -721,13 +804,10 @@
 	if (ret) {
 		printk(KERN_ERR "Unable to unregister sb1250 duart serial driver (%d)\n", ret);
 	}
-	free_irq(K_INT_UART_0, &uart_states[0]);
-	free_irq(K_INT_UART_1, &uart_states[1]);
-
-	/* mask lines in the scd */
-	disable_irq(K_INT_UART_0);
-	disable_irq(K_INT_UART_1);
-
+	for (i=0; i<DUART_MAX_LINE; i++) {
+		free_irq(K_INT_UART_0+i, &uart_states[i]);
+		disable_irq(K_INT_UART_0+i);
+	}
 	restore_flags(flags);
 }
 
@@ -736,22 +816,19 @@
 MODULE_DESCRIPTION("SB1250 Duart serial driver");
 MODULE_AUTHOR("Justin Carlson <carlson@sibyte.com>");
 
-#ifdef CONFIG_SERIAL_CONSOLE
+#ifdef CONFIG_SIBYTE_SB1250_DUART_CONSOLE
 
 /*
- * Serial console stuff. 
- * Very basic, polling driver for doing serial console output. 
- * FIXME; there is a race here; we can't be sure that
- * the tx is still empty without holding outp_lock for this line.
- * Worst that can happen for now, though, is dropped characters.
+ * Serial console stuff.  Very basic, polling driver for doing serial
+ * console output.  The console_sem is held by the caller, so we
+ * shouldn't be interrupted for more console activity.
+ * XXXKW What about getting interrupted by uart driver activity?
  */
 
 static void ser_console_write(struct console *cons, const char *str,
-                              unsigned int count)
+	unsigned int count)
 {
 	unsigned int i;
-	unsigned long flags;
-	spin_lock_irqsave(&uart_states[0].outp_lock, flags);
 
 	for (i = 0; i < count; i++) {
                 if (str[i] == '\n') {
@@ -766,24 +843,30 @@
 		}
 		out64(str[i], IO_SPACE_BASE | A_DUART_CHANREG(0, R_DUART_TX_HOLD));
 	}
-	spin_unlock_irqrestore(&uart_states[0].outp_lock, flags);
+	/*
+	 * Make sure we leave room, in case the higher-level uart
+         * driver expects it
+	 */
+	while (!(get_status_reg(0) & M_DUART_TX_RDY)) {
+		/* Spin, doing nothing.  */
+	}
 }
 
 static kdev_t ser_console_device(struct console *c)
 {
-	return MKDEV(TTY_MAJOR, 64 + c->index);
+	return MKDEV(TTY_MAJOR, SB1250_DUART_MINOR_BASE + c->index);
 }
 
 static int ser_console_setup(struct console *cons, char *str)
 {
 	/* Initialize the transmitter */
-	
+
 	duart_set_cflag(0, DEFAULT_CFLAGS);
 	return 0;
 }
 
 static struct console sb1250_ser_cons = {
-	name:		"ttyS",
+	name:		"duart",
 	write:		ser_console_write,
 	device:		ser_console_device,
 	setup:		ser_console_setup,
@@ -796,4 +879,4 @@
 	register_console(&sb1250_ser_cons);
 }
 
-#endif /* CONFIG_SERIAL_CONSOLE */
+#endif /* CONFIG_SIBYTE_SB1250_DUART_CONSOLE */
diff -urNd -urNd linux-2.4.20/drivers/char/serial.c linux-2.4.20-mipscvs-20050106/drivers/char/serial.c
--- linux-2.4.20/drivers/char/serial.c	2002-11-28 17:53:12.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/serial.c	2002-12-01 19:51:56.000000000 -0600
@@ -62,6 +62,12 @@
  *        Robert Schwebel <robert@schwebel.de>,
  *        Juergen Beisert <jbeisert@eurodsn.de>,
  *        Theodore Ts'o <tytso@mit.edu>
+ *
+ * 10/00: Added suport for MIPS Atlas board.
+ * 11/00: Hooks for serial kernel debug port support added.
+ *        Kevin D. Kissell, kevink@mips.com and Carsten Langgaard,
+ *        carstenl@mips.com
+ *        Copyright (C) 2000 MIPS Technologies, Inc.  All rights reserved.
  */
 
 static char *serial_version = "5.05c";
@@ -413,6 +419,22 @@
 	return 0;
 }
 
+#if defined(CONFIG_MIPS_ATLAS) || defined(CONFIG_MIPS_SEAD)
+
+#include <asm/mips-boards/atlas.h>
+
+static _INLINE_ unsigned int serial_in(struct async_struct *info, int offset)
+{
+        return (*(volatile unsigned int *)(mips_io_port_base + ATLAS_UART_REGS_BASE + offset*8) & 0xff);
+}
+
+static _INLINE_ void serial_out(struct async_struct *info, int offset, int value)
+{
+        *(volatile unsigned int *)(mips_io_port_base + ATLAS_UART_REGS_BASE + offset*8) = value;
+}
+
+#else
+
 static _INLINE_ unsigned int serial_in(struct async_struct *info, int offset)
 {
 	switch (info->io_type) {
@@ -447,6 +469,8 @@
 		outb(value, info->port+offset);
 	}
 }
+#endif
+
 
 /*
  * We used to support using pause I/O for certain machines.  We
diff -urNd -urNd linux-2.4.20/drivers/char/serial_tx3912.c linux-2.4.20-mipscvs-20050106/drivers/char/serial_tx3912.c
--- linux-2.4.20/drivers/char/serial_tx3912.c	2002-08-02 19:39:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/drivers/char/serial_tx3912.c	2002-06-26 17:35:33.000000000 -0500
@@ -752,6 +752,21 @@
 	outl(int2, TX3912_INT2_ENABLE);
 }
 
+static int serial_console_wait_key(struct console *co)
+{
+	unsigned int int2, res;
+
+	int2 = inl(TX3912_INT2_ENABLE);
+	outl(0, TX3912_INT2_ENABLE);
+
+	while (!(inl(TX3912_UARTA_CTRL1) & TX3912_UART_CTRL1_RXHOLDFULL));
+	res = inl(TX3912_UARTA_DATA);
+	udelay(10);
+	
+	outl(int2, TX3912_INT2_ENABLE);
+	return res;
+}
+
 static void serial_console_write(struct console *co, const char *s,
 	unsigned count)
 {
diff -urNd -urNd linux-2.4.20/drivers/char/tty_io.c linux-2.4.20-mipscvs-20050106/drivers/char/tty_io.c
--- linux-2.4.20/drivers/char/tty_io.c	2002-11-28 17:53:12.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/char/tty_io.c	2003-01-09 14:17:07.000000000 -0600
@@ -148,6 +148,7 @@
 extern int serial167_init(void);
 extern long serial167_console_init(void);
 extern void console_8xx_init(void);
+extern void au1x00_serial_console_init(void);
 extern int rs_8xx_init(void);
 extern void mac_scc_console_init(void);
 extern void hwc_console_init(void);
@@ -160,10 +161,12 @@
 extern void sa1100_rs_console_init(void);
 extern void sgi_serial_console_init(void);
 extern void sci_console_init(void);
+extern void dec_serial_console_init(void);
 extern void tx3912_console_init(void);
 extern void tx3912_rs_init(void);
 extern void txx927_console_init(void);
 extern void sb1250_serial_console_init(void);
+extern void arc_console_init(void);
 
 #ifndef MIN
 #define MIN(a,b)	((a) < (b) ? (a) : (b))
@@ -2208,8 +2211,8 @@
 #ifdef CONFIG_VT
 	con_init();
 #endif
-#ifdef CONFIG_AU1000_SERIAL_CONSOLE
-	au1000_serial_console_init();
+#ifdef CONFIG_AU1X00_SERIAL_CONSOLE
+	au1x00_serial_console_init();
 #endif
 #ifdef CONFIG_SERIAL_CONSOLE
 #if (defined(CONFIG_8xx) || defined(CONFIG_8260))
@@ -2226,9 +2229,6 @@
 #elif defined(CONFIG_SERIAL)
 	serial_console_init();
 #endif /* CONFIG_8xx */
-#ifdef CONFIG_SGI_SERIAL
-	sgi_serial_console_init();
-#endif
 #if defined(CONFIG_MVME162_SCC) || defined(CONFIG_BVME6000_SCC) || defined(CONFIG_MVME147_SCC)
 	vme_scc_console_init();
 #endif
@@ -2239,6 +2239,9 @@
 	sci_console_init();
 #endif
 #endif
+#ifdef CONFIG_SERIAL_DEC_CONSOLE
+	dec_serial_console_init();
+#endif
 #ifdef CONFIG_TN3270_CONSOLE
 	tub3270_con_init();
 #endif
@@ -2272,6 +2275,9 @@
 #ifdef CONFIG_SIBYTE_SB1250_DUART_CONSOLE
 	sb1250_serial_console_init();
 #endif
+#ifdef CONFIG_IP22_SERIAL
+	sgi_serial_console_init();
+#endif
 }
 
 static struct tty_driver dev_tty_driver, dev_syscons_driver;
diff -urNd -urNd linux-2.4.20/drivers/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/CVS/Entries
--- linux-2.4.20/drivers/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/CVS/Entries	2005-01-06 23:08:13.000000000 -0600
@@ -0,0 +1,43 @@
+/.cvsignore/1.2/Tue Mar 17 22:09:04 1998/-ko/Tlinux_2_4_20
+/Makefile/1.36.2.3/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
+D/acorn////
+D/acpi////
+D/ap1000////
+D/atm////
+D/block////
+D/bluetooth////
+D/cdrom////
+D/char////
+D/dio////
+D/fc4////
+D/gsc////
+D/hil////
+D/hotplug////
+D/i2c////
+D/i2o////
+D/ide////
+D/ieee1394////
+D/input////
+D/isdn////
+D/macintosh////
+D/md////
+D/media////
+D/message////
+D/misc////
+D/mtd////
+D/net////
+D/nubus////
+D/parport////
+D/pci////
+D/pcmcia////
+D/pnp////
+D/s390////
+D/sbus////
+D/scsi////
+D/sgi////
+D/sound////
+D/tc////
+D/telephony////
+D/usb////
+D/video////
+D/zorro////
diff -urNd -urNd linux-2.4.20/drivers/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/CVS/Repository
--- linux-2.4.20/drivers/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/CVS/Repository	2005-01-06 23:01:08.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers
diff -urNd -urNd linux-2.4.20/drivers/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/CVS/Root
--- linux-2.4.20/drivers/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/CVS/Root	2005-01-06 23:01:08.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/CVS/Tag
--- linux-2.4.20/drivers/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/CVS/Tag	2005-01-06 23:01:08.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/.cvsignore
--- linux-2.4.20/drivers/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/.cvsignore	1998-03-17 16:09:04.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/dio/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/dio/CVS/Entries
--- linux-2.4.20/drivers/dio/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/dio/CVS/Entries	2005-01-06 23:01:54.000000000 -0600
@@ -0,0 +1,4 @@
+/.cvsignore/1.1/Tue Aug 25 09:17:03 1998/-ko/Tlinux_2_4_20
+/Makefile/1.1.6.1/Wed Sep 11 12:44:49 2002/-ko/Tlinux_2_4_20
+/dio.c/1.3.2.1/Wed Sep 11 12:44:49 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/dio/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/dio/CVS/Repository
--- linux-2.4.20/drivers/dio/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/dio/CVS/Repository	2005-01-06 23:01:54.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/dio
diff -urNd -urNd linux-2.4.20/drivers/dio/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/dio/CVS/Root
--- linux-2.4.20/drivers/dio/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/dio/CVS/Root	2005-01-06 23:01:54.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/dio/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/dio/CVS/Tag
--- linux-2.4.20/drivers/dio/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/dio/CVS/Tag	2005-01-06 23:01:54.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/dio/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/dio/.cvsignore
--- linux-2.4.20/drivers/dio/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/dio/.cvsignore	1998-08-25 04:17:03.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/fc4/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/fc4/CVS/Entries
--- linux-2.4.20/drivers/fc4/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/fc4/CVS/Entries	2005-01-06 23:01:55.000000000 -0600
@@ -0,0 +1,14 @@
+/.cvsignore/1.1/Tue Mar 17 22:26:47 1998/-ko/Tlinux_2_4_20
+/Config.in/1.6.4.1/Wed Sep 11 12:44:49 2002/-ko/Tlinux_2_4_20
+/Makefile/1.6/Thu Apr  5 04:56:14 2001/-ko/Tlinux_2_4_20
+/fc-al.h/1.1/Sun Jun 13 16:32:19 1999/-ko/Tlinux_2_4_20
+/fc.c/1.10/Fri Oct 19 01:24:22 2001/-ko/Tlinux_2_4_20
+/fc.h/1.2/Sun Jun 13 16:32:20 1999/-ko/Tlinux_2_4_20
+/fc_syms.c/1.3/Sun Jun 13 16:32:20 1999/-ko/Tlinux_2_4_20
+/fcp.h/1.1/Tue Mar 17 22:10:10 1998/-ko/Tlinux_2_4_20
+/fcp_impl.h/1.3/Fri Feb 18 00:24:35 2000/-ko/Tlinux_2_4_20
+/soc.c/1.11.2.1/Wed Jun 26 22:35:38 2002/-ko/Tlinux_2_4_20
+/soc.h/1.3/Sat Feb  5 06:47:20 2000/-ko/Tlinux_2_4_20
+/socal.c/1.8.2.1/Wed Jun 26 22:35:38 2002/-ko/Tlinux_2_4_20
+/socal.h/1.2/Sat Feb  5 06:47:20 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/fc4/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/fc4/CVS/Repository
--- linux-2.4.20/drivers/fc4/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/fc4/CVS/Repository	2005-01-06 23:01:54.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/fc4
diff -urNd -urNd linux-2.4.20/drivers/fc4/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/fc4/CVS/Root
--- linux-2.4.20/drivers/fc4/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/fc4/CVS/Root	2005-01-06 23:01:54.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/fc4/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/fc4/CVS/Tag
--- linux-2.4.20/drivers/fc4/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/fc4/CVS/Tag	2005-01-06 23:01:55.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/fc4/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/fc4/.cvsignore
--- linux-2.4.20/drivers/fc4/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/fc4/.cvsignore	1998-03-17 16:26:47.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/gsc/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/gsc/CVS/Entries
--- linux-2.4.20/drivers/gsc/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/gsc/CVS/Entries	2005-01-06 23:01:55.000000000 -0600
@@ -0,0 +1,14 @@
+/.cvsignore/1.1.2.1/Wed Sep 11 13:00:33 2002/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.1/Wed Sep 11 12:44:49 2002/-ko/Tlinux_2_4_20
+/README.dino/1.1.2.1/Wed Sep 11 12:44:49 2002/-ko/Tlinux_2_4_20
+/asp.c/1.1.2.1/Wed Sep 11 12:44:49 2002/-ko/Tlinux_2_4_20
+/busdevice.h/1.1.2.1/Wed Sep 11 12:44:49 2002/-ko/Tlinux_2_4_20
+/dino.c/1.1.2.1/Wed Sep 11 12:44:49 2002/-ko/Tlinux_2_4_20
+/eisa.c/1.1.2.1/Wed Sep 11 12:44:49 2002/-ko/Tlinux_2_4_20
+/eisa_eeprom.c/1.1.2.1/Wed Sep 11 12:44:49 2002/-ko/Tlinux_2_4_20
+/eisa_enumerator.c/1.1.2.1/Wed Sep 11 12:44:49 2002/-ko/Tlinux_2_4_20
+/gsc.c/1.1.2.1/Wed Sep 11 12:44:52 2002/-ko/Tlinux_2_4_20
+/lasi.c/1.1.2.1/Wed Sep 11 12:44:52 2002/-ko/Tlinux_2_4_20
+/serial.c/1.1.2.1/Wed Sep 11 12:44:53 2002/-ko/Tlinux_2_4_20
+/wax.c/1.1.2.1/Wed Sep 11 12:44:53 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/gsc/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/gsc/CVS/Repository
--- linux-2.4.20/drivers/gsc/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/gsc/CVS/Repository	2005-01-06 23:01:55.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/gsc
diff -urNd -urNd linux-2.4.20/drivers/gsc/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/gsc/CVS/Root
--- linux-2.4.20/drivers/gsc/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/gsc/CVS/Root	2005-01-06 23:01:55.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/gsc/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/gsc/CVS/Tag
--- linux-2.4.20/drivers/gsc/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/gsc/CVS/Tag	2005-01-06 23:01:55.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/gsc/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/gsc/.cvsignore
--- linux-2.4.20/drivers/gsc/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/gsc/.cvsignore	2002-09-11 08:00:33.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/hil/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/hil/CVS/Entries
--- linux-2.4.20/drivers/hil/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/hil/CVS/Entries	2005-01-06 23:01:55.000000000 -0600
@@ -0,0 +1,11 @@
+/.cvsignore/1.1.2.1/Wed Sep 11 13:00:33 2002/-ko/Tlinux_2_4_20
+/Config.in/1.1.2.1/Wed Sep 11 12:44:53 2002/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.1/Wed Sep 11 12:44:53 2002/-ko/Tlinux_2_4_20
+/hil_kbd.c/1.1.2.1/Wed Sep 11 12:44:53 2002/-ko/Tlinux_2_4_20
+/hil_mlc.c/1.1.2.1/Wed Sep 11 12:44:53 2002/-ko/Tlinux_2_4_20
+/hil_ptr.c/1.1.2.1/Wed Sep 11 12:44:53 2002/-ko/Tlinux_2_4_20
+/hilkbd.c/1.1.2.1/Wed Sep 11 12:44:53 2002/-ko/Tlinux_2_4_20
+/hp_sdc.c/1.1.2.1/Wed Sep 11 12:44:53 2002/-ko/Tlinux_2_4_20
+/hp_sdc_mlc.c/1.1.2.1/Wed Sep 11 12:44:53 2002/-ko/Tlinux_2_4_20
+/hp_sdc_rtc.c/1.1.2.1/Wed Sep 11 12:44:58 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/hil/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/hil/CVS/Repository
--- linux-2.4.20/drivers/hil/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/hil/CVS/Repository	2005-01-06 23:01:55.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/hil
diff -urNd -urNd linux-2.4.20/drivers/hil/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/hil/CVS/Root
--- linux-2.4.20/drivers/hil/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/hil/CVS/Root	2005-01-06 23:01:55.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/hil/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/hil/CVS/Tag
--- linux-2.4.20/drivers/hil/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/hil/CVS/Tag	2005-01-06 23:01:55.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/hil/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/hil/.cvsignore
--- linux-2.4.20/drivers/hil/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/hil/.cvsignore	2002-09-11 08:00:33.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/hotplug/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/hotplug/CVS/Entries
--- linux-2.4.20/drivers/hotplug/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/hotplug/CVS/Entries	2005-01-06 23:01:58.000000000 -0600
@@ -0,0 +1,25 @@
+/.cvsignore/1.1/Sun Dec  2 11:34:41 2001/-ko/Tlinux_2_4_20
+/Config.in/1.1.2.1/Wed Jun 26 22:35:38 2002/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.2/Wed Sep 11 12:44:58 2002/-ko/Tlinux_2_4_20
+/acpiphp.h/1.1.2.1/Wed Sep 11 12:44:58 2002/-ko/Tlinux_2_4_20
+/acpiphp_core.c/1.1.2.1/Wed Sep 11 12:44:58 2002/-ko/Tlinux_2_4_20
+/acpiphp_glue.c/1.1.2.1/Wed Sep 11 12:44:59 2002/-ko/Tlinux_2_4_20
+/acpiphp_pci.c/1.1.2.1/Wed Sep 11 12:44:59 2002/-ko/Tlinux_2_4_20
+/acpiphp_res.c/1.1.2.1/Wed Sep 11 12:44:59 2002/-ko/Tlinux_2_4_20
+/cpqphp.h/1.1.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/cpqphp_core.c/1.1.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/cpqphp_ctrl.c/1.1.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/cpqphp_nvram.c/1.1.2.1/Wed Sep 11 12:44:59 2002/-ko/Tlinux_2_4_20
+/cpqphp_nvram.h/1.1/Sun Dec  2 11:34:41 2001/-ko/Tlinux_2_4_20
+/cpqphp_pci.c/1.1.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/cpqphp_proc.c/1.1.2.1/Wed Jun 26 22:35:38 2002/-ko/Tlinux_2_4_20
+/ibmphp.h/1.1.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/ibmphp_core.c/1.1.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/ibmphp_ebda.c/1.1.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/ibmphp_hpc.c/1.1.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/ibmphp_pci.c/1.1.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/ibmphp_res.c/1.1.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/pci_hotplug.h/1.1.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/pci_hotplug_core.c/1.1.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/pci_hotplug_util.c/1.1/Sun Dec  2 11:34:41 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/hotplug/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/hotplug/CVS/Repository
--- linux-2.4.20/drivers/hotplug/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/hotplug/CVS/Repository	2005-01-06 23:01:55.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/hotplug
diff -urNd -urNd linux-2.4.20/drivers/hotplug/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/hotplug/CVS/Root
--- linux-2.4.20/drivers/hotplug/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/hotplug/CVS/Root	2005-01-06 23:01:55.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/hotplug/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/hotplug/CVS/Tag
--- linux-2.4.20/drivers/hotplug/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/hotplug/CVS/Tag	2005-01-06 23:01:58.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/hotplug/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/hotplug/.cvsignore
--- linux-2.4.20/drivers/hotplug/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/hotplug/.cvsignore	2001-12-02 05:34:41.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/i2c/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/i2c/CVS/Entries
--- linux-2.4.20/drivers/i2c/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/i2c/CVS/Entries	2005-01-06 23:08:13.000000000 -0600
@@ -0,0 +1,19 @@
+/.cvsignore/1.1/Sat Feb  5 06:47:20 2000/-ko/Tlinux_2_4_20
+/Config.in/1.7.2.1/Tue Feb 26 05:59:20 2002/-ko/Tlinux_2_4_20
+/Makefile/1.8.2.1/Tue Feb 26 05:59:20 2002/-ko/Tlinux_2_4_20
+/i2c-adap-ite.c/1.3.2.1/Wed Jun 26 22:35:44 2002/-ko/Tlinux_2_4_20
+/i2c-algo-bit.c/1.8.2.1/Wed Jun 26 22:35:44 2002/-ko/Tlinux_2_4_20
+/i2c-algo-ite.c/1.3/Tue Nov  6 00:55:03 2001/-ko/Tlinux_2_4_20
+/i2c-algo-pcf.c/1.9/Tue Nov  6 00:55:03 2001/-ko/Tlinux_2_4_20
+/i2c-core.c/1.14.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
+/i2c-dev.c/1.13.2.1/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/i2c-elektor.c/1.8/Tue Nov  6 00:55:03 2001/-ko/Tlinux_2_4_20
+/i2c-elv.c/1.5/Tue Nov  6 00:55:03 2001/-ko/Tlinux_2_4_20
+/i2c-ite.h/1.1/Fri Mar 16 12:44:20 2001/-ko/Tlinux_2_4_20
+/i2c-keywest.c/1.1.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/i2c-keywest.h/1.1.2.1/Tue Feb 26 05:59:21 2002/-ko/Tlinux_2_4_20
+/i2c-pcf8584.h/1.3/Fri Mar  9 20:34:00 2001/-ko/Tlinux_2_4_20
+/i2c-philips-par.c/1.4/Mon Nov  5 20:15:33 2001/-ko/Tlinux_2_4_20
+/i2c-proc.c/1.1.2.1/Tue Feb 26 05:59:21 2002/-ko/Tlinux_2_4_20
+/i2c-velleman.c/1.4/Tue Nov  6 00:55:03 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/i2c/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/i2c/CVS/Repository
--- linux-2.4.20/drivers/i2c/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/i2c/CVS/Repository	2005-01-06 23:01:58.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/i2c
diff -urNd -urNd linux-2.4.20/drivers/i2c/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/i2c/CVS/Root
--- linux-2.4.20/drivers/i2c/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/i2c/CVS/Root	2005-01-06 23:01:58.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/i2c/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/i2c/CVS/Tag
--- linux-2.4.20/drivers/i2c/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/i2c/CVS/Tag	2005-01-06 23:01:59.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/i2c/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/i2c/.cvsignore
--- linux-2.4.20/drivers/i2c/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/i2c/.cvsignore	2000-02-05 00:47:20.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/i2o/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/i2o/CVS/Entries
--- linux-2.4.20/drivers/i2o/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/i2o/CVS/Entries	2005-01-06 23:01:59.000000000 -0600
@@ -0,0 +1,2 @@
+/.cvsignore/1.1/Mon Dec  6 23:13:20 1999/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/i2o/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/i2o/CVS/Repository
--- linux-2.4.20/drivers/i2o/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/i2o/CVS/Repository	2005-01-06 23:01:59.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/i2o
diff -urNd -urNd linux-2.4.20/drivers/i2o/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/i2o/CVS/Root
--- linux-2.4.20/drivers/i2o/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/i2o/CVS/Root	2005-01-06 23:01:59.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/i2o/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/i2o/CVS/Tag
--- linux-2.4.20/drivers/i2o/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/i2o/CVS/Tag	2005-01-06 23:01:59.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/i2o/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/i2o/.cvsignore
--- linux-2.4.20/drivers/i2o/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/i2o/.cvsignore	1999-12-06 17:13:20.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/ide/Config.in linux-2.4.20-mipscvs-20050106/drivers/ide/Config.in
--- linux-2.4.20/drivers/ide/Config.in	2002-11-28 17:53:13.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/ide/Config.in	2003-01-24 12:05:25.000000000 -0600
@@ -107,7 +107,7 @@
 	   define_bool CONFIG_BLK_DEV_IDEPCI $CONFIG_BLK_DEV_IDEDMA_PMAC
 	 fi
       fi
-      if [ "$CONFIG_SIBYTE_SWARM" = "y" ]; then
+      if [ "$CONFIG_SIBYTE_GENBUS_IDE" = "y" ]; then
 	 bool '  Broadcom SiByte onboard IDE support' CONFIG_BLK_DEV_IDE_SIBYTE
       fi
       if [ "$CONFIG_ARCH_ACORN" = "y" ]; then
diff -urNd -urNd linux-2.4.20/drivers/ide/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/ide/CVS/Entries
--- linux-2.4.20/drivers/ide/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/ide/CVS/Entries	2005-01-06 23:08:12.000000000 -0600
@@ -0,0 +1,68 @@
+/.cvsignore/1.1/Sat Mar 25 22:41:20 2000/-ko/Tlinux_2_4_20
+/Config.in/1.15.2.10/Fri Jan 24 18:05:25 2003/-ko/Tlinux_2_4_20
+/Makefile/1.12.2.3/Tue Aug 20 12:22:10 2002/-ko/Tlinux_2_4_20
+/aec62xx.c/1.3/Mon Jun 19 22:45:45 2000/-ko/Tlinux_2_4_20
+/ali14xx.c/1.4/Thu Aug 23 22:24:29 2001/-ko/Tlinux_2_4_20
+/alim15x3.c/1.10.2.1/Wed Jun 26 22:35:44 2002/-ko/Tlinux_2_4_20
+/amd74xx.c/1.1.2.1/Wed Jun 26 22:35:44 2002/-ko/Tlinux_2_4_20
+/ataraid.c/1.3.2.1/Wed Sep 11 12:44:59 2002/-ko/Tlinux_2_4_20
+/ataraid.h/1.2/Mon Nov  5 20:15:33 2001/-ko/Tlinux_2_4_20
+/buddha.c/1.8.2.1/Wed Jun 26 22:35:44 2002/-ko/Tlinux_2_4_20
+/cmd640.c/1.4/Fri Mar  9 20:34:01 2001/-ko/Tlinux_2_4_20
+/cmd64x.c/1.7.4.1/Wed Jun 26 22:35:44 2002/-ko/Tlinux_2_4_20
+/cs5530.c/1.4/Thu Jan 11 04:02:43 2001/-ko/Tlinux_2_4_20
+/cy82c693.c/1.5/Thu Jun 14 04:23:57 2001/-ko/Tlinux_2_4_20
+/dtc2278.c/1.3/Fri Apr 28 01:09:39 2000/-ko/Tlinux_2_4_20
+/falconide.c/1.4.2.1/Wed Jun 26 22:35:44 2002/-ko/Tlinux_2_4_20
+/gayle.c/1.5.2.1/Wed Jun 26 22:35:44 2002/-ko/Tlinux_2_4_20
+/hd.c/1.12/Tue Nov  6 00:55:04 2001/-ko/Tlinux_2_4_20
+/hpt34x.c/1.5/Thu Jun 14 04:23:58 2001/-ko/Tlinux_2_4_20
+/hpt366.c/1.11.2.1/Wed Jun 26 22:35:44 2002/-ko/Tlinux_2_4_20
+/hptraid.c/1.3.2.1/Wed Jun 26 22:35:44 2002/-ko/Tlinux_2_4_20
+/hptraid.h/1.2/Tue Nov  6 00:55:04 2001/-ko/Tlinux_2_4_20
+/ht6560b.c/1.3/Fri Apr 28 01:09:39 2000/-ko/Tlinux_2_4_20
+/icside.c/1.9/Tue Nov  6 07:55:59 2001/-ko/Tlinux_2_4_20
+/ide-adma.c/1.1/Sat Sep 22 12:49:20 2001/-ko/Tlinux_2_4_20
+/ide-cd.c/1.19.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/ide-cd.h/1.7.2.1/Wed Jun 26 22:35:44 2002/-ko/Tlinux_2_4_20
+/ide-cs.c/1.6.2.2/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/ide-disk.c/1.12.2.3/Wed Sep 11 12:44:59 2002/-ko/Tlinux_2_4_20
+/ide-dma.c/1.9.2.2/Wed Sep 11 12:44:59 2002/-ko/Tlinux_2_4_20
+/ide-features.c/1.9.2.2/Tue Sep 10 15:32:49 2002/-ko/Tlinux_2_4_20
+/ide-floppy.c/1.10.2.2/Wed Jun 26 22:35:44 2002/-ko/Tlinux_2_4_20
+/ide-geometry.c/1.8.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/ide-m8xx.c/1.1.2.1/Tue Feb 26 05:59:30 2002/-ko/Tlinux_2_4_20
+/ide-pci.c/1.20.2.4/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/ide-pmac.c/1.7.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/ide-pnp.c/1.7/Sun Dec  2 01:54:30 2001/-ko/Tlinux_2_4_20
+/ide-probe.c/1.15.2.3/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/ide-proc.c/1.7.2.1/Wed Jun 26 22:35:45 2002/-ko/Tlinux_2_4_20
+/ide-sibyte.c/1.1.2.2/Fri Feb  7 20:53:26 2003/-ko/Tlinux_2_4_20
+/ide-tape.c/1.15.2.2/Wed Jun 26 22:35:45 2002/-ko/Tlinux_2_4_20
+/ide-taskfile.c/1.1.2.1/Wed Jun 26 22:35:45 2002/-ko/Tlinux_2_4_20
+/ide-timing.h/1.1.2.1/Wed Jun 26 22:35:45 2002/-ko/Tlinux_2_4_20
+/ide.c/1.27.2.5/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/ide_modes.h/1.4/Mon Nov  5 20:15:34 2001/-ko/Tlinux_2_4_20
+/it8172.c/1.3/Mon Nov 26 11:24:55 2001/-ko/Tlinux_2_4_20
+/macide.c/1.3/Thu Jan 11 04:02:43 2001/-ko/Tlinux_2_4_20
+/ns87415.c/1.4/Mon Jun 19 22:45:45 2000/-ko/Tlinux_2_4_20
+/opti621.c/1.5/Thu Jun 14 04:23:58 2001/-ko/Tlinux_2_4_20
+/pdc202xx.c/1.13.2.2/Tue Sep 10 15:32:49 2002/-ko/Tlinux_2_4_20
+/pdc4030.c/1.4.2.1/Wed Jun 26 22:35:45 2002/-ko/Tlinux_2_4_20
+/pdc4030.h/1.2/Thu Aug 23 22:24:29 2001/-ko/Tlinux_2_4_20
+/pdcraid.c/1.4/Sun Dec  2 11:34:41 2001/-ko/Tlinux_2_4_20
+/pdcraid.h/1.1/Fri Oct 19 01:24:24 2001/-ko/Tlinux_2_4_20
+/piix.c/1.14.2.1/Wed Jun 26 22:35:45 2002/-ko/Tlinux_2_4_20
+/q40ide.c/1.4.2.1/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/qd65xx.c/1.1.2.1/Wed Jun 26 22:35:45 2002/-ko/Tlinux_2_4_20
+/qd65xx.h/1.1.2.1/Wed Jun 26 22:35:45 2002/-ko/Tlinux_2_4_20
+/rapide.c/1.6/Tue Nov  6 00:55:05 2001/-ko/Tlinux_2_4_20
+/rz1000.c/1.4/Thu Jun 14 04:23:58 2001/-ko/Tlinux_2_4_20
+/serverworks.c/1.2.2.1/Wed Jun 26 22:35:45 2002/-ko/Tlinux_2_4_20
+/sis5513.c/1.11.2.2/Tue Sep 10 15:32:49 2002/-ko/Tlinux_2_4_20
+/sl82c105.c/1.5/Fri Oct 19 01:24:24 2001/-ko/Tlinux_2_4_20
+/slc90e66.c/1.4.2.1/Wed Jun 26 22:35:45 2002/-ko/Tlinux_2_4_20
+/trm290.c/1.3/Mon Jun 19 22:45:45 2000/-ko/Tlinux_2_4_20
+/umc8672.c/1.3/Fri Apr 28 01:09:39 2000/-ko/Tlinux_2_4_20
+/via82cxxx.c/1.14.2.2/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/ide/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/ide/CVS/Repository
--- linux-2.4.20/drivers/ide/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/ide/CVS/Repository	2005-01-06 23:01:59.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/ide
diff -urNd -urNd linux-2.4.20/drivers/ide/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/ide/CVS/Root
--- linux-2.4.20/drivers/ide/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/ide/CVS/Root	2005-01-06 23:01:59.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/ide/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/ide/CVS/Tag
--- linux-2.4.20/drivers/ide/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/ide/CVS/Tag	2005-01-06 23:02:05.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/ide/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/ide/.cvsignore
--- linux-2.4.20/drivers/ide/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/ide/.cvsignore	2000-03-25 16:41:20.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/ide/ide-sibyte.c linux-2.4.20-mipscvs-20050106/drivers/ide/ide-sibyte.c
--- linux-2.4.20/drivers/ide/ide-sibyte.c	2002-11-28 17:53:13.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/ide/ide-sibyte.c	2003-02-07 14:53:26.000000000 -0600
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2001 Broadcom Corporation
+ * Copyright (C) 2001, 2002, 2003 Broadcom Corporation
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -21,262 +21,19 @@
  *  Copyright (C) 1998 Paul Mackerras.
  *  Copyright (C) 1995-1998 Mark Lord
  */
-#include <linux/config.h>
-#include <linux/types.h>
 #include <linux/kernel.h>
-#include <linux/sched.h>
-#include <linux/init.h>
-#include <linux/delay.h>
 #include <linux/ide.h>
 
-#include <asm/irq.h>
-#include <asm/io.h>
-#include <asm/sibyte/sb1250_regs.h>
-#include <asm/sibyte/sb1250_int.h>
-#include <asm/sibyte/sb1250_genbus.h>
-#include <asm/sibyte/64bit.h>
 #include <asm/sibyte/board.h>
 
-/* Note: this should be general for any board using IDE on GenBus */
-
-extern struct ide_ops std_ide_ops;
+ide_hwif_t *sb_ide_hwif = NULL;
 
-static ide_hwif_t *sb_ide_hwif = NULL;
 static unsigned long ide_base;
-
 #define SIBYTE_IDE_BASE        (KSEG1ADDR(ide_base)-mips_io_port_base)
 #define SIBYTE_IDE_REG(pcaddr) (SIBYTE_IDE_BASE + ((pcaddr)<<5))
 
-/*
- * We are limiting the number of PCI-IDE devices to leave room for
- * GenBus IDE (and possibly PCMCIA/CF?)
- */
-static int sibyte_ide_default_irq(ide_ioreg_t base)
-{
-	return 0;
-}
-
-static ide_ioreg_t sibyte_ide_default_io_base(int index)
-{
-	return 0;
-}
-
-static void sibyte_ide_init_hwif_ports (hw_regs_t *hw, ide_ioreg_t data_port,
-				       ide_ioreg_t ctrl_port, int *irq)
-{
-	std_ide_ops.ide_init_hwif_ports(hw, data_port, ctrl_port, irq);
-}
-
-static int sibyte_ide_request_irq(unsigned int irq,
-                                void (*handler)(int,void *, struct pt_regs *),
-                                unsigned long flags, const char *device,
-                                void *dev_id)
-{
-	return request_irq(irq, handler, flags, device, dev_id);
-}
-
-static void sibyte_ide_free_irq(unsigned int irq, void *dev_id)
-{
-	free_irq(irq, dev_id);
-}
-
-static inline int is_sibyte_ide(ide_ioreg_t from)
-{
-	return (sb_ide_hwif &&
-		((from == sb_ide_hwif->io_ports[IDE_DATA_OFFSET]) ||
-		 (from == sb_ide_hwif->io_ports[IDE_ERROR_OFFSET]) ||
-		 (from == sb_ide_hwif->io_ports[IDE_NSECTOR_OFFSET]) ||
-		 (from == sb_ide_hwif->io_ports[IDE_SECTOR_OFFSET]) ||
-		 (from == sb_ide_hwif->io_ports[IDE_LCYL_OFFSET]) ||
-		 (from == sb_ide_hwif->io_ports[IDE_HCYL_OFFSET]) ||
-		 (from == sb_ide_hwif->io_ports[IDE_SELECT_OFFSET]) ||
-		 (from == sb_ide_hwif->io_ports[IDE_STATUS_OFFSET]) ||
-		 (from == sb_ide_hwif->io_ports[IDE_CONTROL_OFFSET])));
-}
-
-static int sibyte_ide_check_region(ide_ioreg_t from, unsigned int extent)
-{
-	/* Figure out if it's the SiByte IDE; if so, don't do anything
-           since our I/O space is in a weird place. */
-	if (is_sibyte_ide(from))
-		return 0;
-	else
-#ifdef CONFIG_BLK_DEV_IDE
-		return std_ide_ops.ide_check_region(from, extent);
-#else
-		return 0;
-#endif
-}
-
-static void sibyte_ide_request_region(ide_ioreg_t from, unsigned int extent,
-				     const char *name)
-{
-#ifdef CONFIG_BLK_DEV_IDE
-	if (!is_sibyte_ide(from))
-		std_ide_ops.ide_request_region(from, extent, name);
-#endif
-}
-
-static void sibyte_ide_release_region(ide_ioreg_t from, unsigned int extent)
-{
-#ifdef CONFIG_BLK_DEV_IDE
-	if (!is_sibyte_ide(from))
-		std_ide_ops.ide_release_region(from, extent);
-#endif
-}
-
-struct ide_ops sibyte_ide_ops = {
-	&sibyte_ide_default_irq,
-	&sibyte_ide_default_io_base,
-	&sibyte_ide_init_hwif_ports,
-	&sibyte_ide_request_irq,
-	&sibyte_ide_free_irq,
-	&sibyte_ide_check_region,
-	&sibyte_ide_request_region,
-	&sibyte_ide_release_region
-};
-
-/*
- * I/O operations. The FPGA for SiByte generic bus IDE deals with
- * byte-swapping for us, so we can't share the I/O macros with other
- * IDE (e.g. PCI-IDE) devices.
- */
-
-#define sibyte_outb(val,port)					\
-do {								\
-	*(volatile u8 *)(mips_io_port_base + (port)) = val;	\
-} while(0)
-
-#define sibyte_outw(val,port)					\
-do {								\
-	*(volatile u16 *)(mips_io_port_base + (port)) = val;	\
-} while(0)
-
-#define sibyte_outl(val,port)					\
-do {								\
-	*(volatile u32 *)(mips_io_port_base + (port)) = val;	\
-} while(0)
-
-static inline unsigned char sibyte_inb(unsigned long port)
-{
-	return (*(volatile u8 *)(mips_io_port_base + (port)));
-}
-
-static inline unsigned short sibyte_inw(unsigned long port)
-{
-	return (*(volatile u16 *)(mips_io_port_base + (port)));
-}
-
-static inline unsigned int sibyte_inl(unsigned long port)
-{
-	return (*(volatile u32 *)(mips_io_port_base + (port)));
-}
-
-
-static inline void sibyte_outsb(unsigned long port, void *addr, unsigned int count)
-{
-	while (count--) {
-		sibyte_outb(*(u8 *)addr, port);
-		addr++;
-	}
-}
-
-static inline void sibyte_insb(unsigned long port, void *addr, unsigned int count)
-{
-	while (count--) {
-		*(u8 *)addr = sibyte_inb(port);
-		addr++;
-	}
-}
-
-static inline void sibyte_outsw(unsigned long port, void *addr, unsigned int count)
-{
-	while (count--) {
-		sibyte_outw(*(u16 *)addr, port);
-		addr += 2;
-	}
-}
-
-static inline void sibyte_insw(unsigned long port, void *addr, unsigned int count)
-{
-	while (count--) {
-		*(u16 *)addr = sibyte_inw(port);
-		addr += 2;
-	}
-}
-
-static inline void sibyte_outsl(unsigned long port, void *addr, unsigned int count)
-{
-	while (count--) {
-		sibyte_outl(*(u32 *)addr, port);
-		addr += 4;
-	}
-}
-
-static inline void sibyte_insl(unsigned long port, void *addr, unsigned int count)
-{
-	while (count--) {
-		*(u32 *)addr = sibyte_inl(port);
-		addr += 4;
-	}
-}
-
-static void sibyte_ideproc(ide_ide_action_t action, ide_drive_t *drive,
-			   void *buffer, unsigned int count)
-{
-	/*  slow? vlb_sync? */
-	switch (action) {
-	case ideproc_ide_input_data:
-		if (drive->io_32bit) {
-			sibyte_insl(IDE_DATA_REG, buffer, count);
-		} else {
-			sibyte_insw(IDE_DATA_REG, buffer, count<<1);
-		}
-		break;
-	case ideproc_ide_output_data:
-		if (drive->io_32bit) {
-			sibyte_outsl(IDE_DATA_REG, buffer, count);
-		} else {
-			sibyte_outsw(IDE_DATA_REG, buffer, count<<1);
-		}
-		break;
-	case ideproc_atapi_input_bytes:
-		count++;
-		if (drive->io_32bit) {
-			sibyte_insl(IDE_DATA_REG, buffer, count>>2);
-		} else {
-			sibyte_insw(IDE_DATA_REG, buffer, count>>1);
-		}
-		if ((count & 3) >= 2)
-			sibyte_insw(IDE_DATA_REG, (char *)buffer + (count & ~3), 1);
-		break;
-	case ideproc_atapi_output_bytes:
-		count++;
-		if (drive->io_32bit) {
-			sibyte_outsl(IDE_DATA_REG, buffer, count>>2);
-		} else {
-			sibyte_outsw(IDE_DATA_REG, buffer, count>>1);
-		}
-		if ((count & 3) >= 2)
-			sibyte_outsw(IDE_DATA_REG, (char *)buffer + (count & ~3), 1);
-		break;
-	}
-}
-
-/*
- * selectproc and intrproc aren't really necessary, since
- * byte-swapping doesn't affect byte ops; they are included for
- * consistency.
- */
-static void sibyte_selectproc(ide_drive_t *drive)
-{
-	sibyte_outb(drive->select.all, IDE_SELECT_REG);
-}
-
-static void sibyte_intrproc(ide_drive_t *drive)
-{
-	sibyte_outb(drive->ctl|2, IDE_CONTROL_REG);
-}
+extern void sibyte_ideproc(ide_ide_action_t action, ide_drive_t *drive,
+			   void *buffer, unsigned int count);
 
 void __init sibyte_ide_probe(void)
 {
@@ -295,14 +52,7 @@
 		return;
 	}
 
-	/* Find memory base address */
-#ifdef __MIPSEL__
-	/* Pass1 workaround (bug 1624) */
-	if (sb1250_pass == K_SYS_REVISION_PASS1)
-		ide_base = G_IO_START_ADDR(csr_in32(4+(IO_SPACE_BASE|A_IO_EXT_REG(R_IO_EXT_REG(R_IO_EXT_START_ADDR, IDE_CS))))) << S_IO_ADDRBASE;
-	else
-#endif
-		ide_base = G_IO_START_ADDR(csr_in32(IO_SPACE_BASE|A_IO_EXT_REG(R_IO_EXT_REG(R_IO_EXT_START_ADDR, IDE_CS)))) << S_IO_ADDRBASE;
+	ide_base = IDE_PHYS|IO_SPACE_BASE;
 
 	/*
 	 * Set up our stuff; we're a little odd because our io_ports
@@ -322,10 +72,9 @@
 	hwif->hw.irq                          = K_INT_GB_IDE;
 	hwif->irq                             = K_INT_GB_IDE;
 	hwif->noprobe                         = 0;
+	hwif->hw.ack_intr                     = NULL;
 	/* Use our own non-byte-swapping routines */
 	hwif->ideproc                         = sibyte_ideproc;
-	hwif->selectproc                      = sibyte_selectproc;
-	hwif->intrproc                        = sibyte_intrproc;
 
 	memcpy(hwif->io_ports, hwif->hw.io_ports, sizeof(hwif->io_ports));
 	printk("SiByte onboard IDE configured as device %i\n", i);
diff -urNd -urNd linux-2.4.20/drivers/ieee1394/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/ieee1394/CVS/Entries
--- linux-2.4.20/drivers/ieee1394/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/ieee1394/CVS/Entries	2005-01-06 23:02:09.000000000 -0600
@@ -0,0 +1,38 @@
+/.cvsignore/1.1.4.1/Mon Dec 31 03:33:19 2001/-ko/Tlinux_2_4_20
+/Config.in/1.5.2.2/Tue Sep 10 15:32:49 2002/-ko/Tlinux_2_4_20
+/Makefile/1.9.2.2/Tue Sep 10 15:32:49 2002/-ko/Tlinux_2_4_20
+/amdtp.c/1.1.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/amdtp.h/1.1.2.2/Tue Sep 10 15:32:49 2002/-ko/Tlinux_2_4_20
+/cmp.c/1.1.2.2/Tue Sep 10 15:32:49 2002/-ko/Tlinux_2_4_20
+/cmp.h/1.1.2.1/Wed Jun 26 22:35:45 2002/-ko/Tlinux_2_4_20
+/csr.c/1.6.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/csr.h/1.3/Thu Apr  5 04:56:14 2001/-ko/Tlinux_2_4_20
+/dv1394-private.h/1.1.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/dv1394.c/1.1.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/dv1394.h/1.1.2.2/Tue Sep 10 15:32:49 2002/-ko/Tlinux_2_4_20
+/eth1394.c/1.1.2.4/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/eth1394.h/1.1.2.2/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/highlevel.c/1.6.2.2/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/highlevel.h/1.3.2.1/Wed Jun 26 22:35:45 2002/-ko/Tlinux_2_4_20
+/hosts.c/1.9.2.4/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/hosts.h/1.7.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/ieee1394.h/1.3.2.1/Wed Jun 26 22:35:45 2002/-ko/Tlinux_2_4_20
+/ieee1394_core.c/1.14.2.4/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/ieee1394_core.h/1.9.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/ieee1394_hotplug.h/1.2/Mon Nov  5 20:15:34 2001/-ko/Tlinux_2_4_20
+/ieee1394_transactions.c/1.9.2.2/Tue Sep 10 15:32:49 2002/-ko/Tlinux_2_4_20
+/ieee1394_transactions.h/1.3.2.1/Wed Jun 26 22:35:45 2002/-ko/Tlinux_2_4_20
+/ieee1394_types.h/1.11.2.2/Tue Sep 10 15:32:49 2002/-ko/Tlinux_2_4_20
+/nodemgr.c/1.6.2.5/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/nodemgr.h/1.4.2.1/Wed Jun 26 22:35:45 2002/-ko/Tlinux_2_4_20
+/ohci1394.c/1.16.2.4/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/ohci1394.h/1.13.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/pcilynx.c/1.14.2.5/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/pcilynx.h/1.8.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/raw1394.c/1.14.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/raw1394.h/1.4/Thu Oct  5 01:18:47 2000/-ko/Tlinux_2_4_20
+/sbp2.c/1.4.2.5/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/sbp2.h/1.4.2.4/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/video1394.c/1.12.2.6/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/video1394.h/1.6.2.1/Sat Dec 29 05:37:54 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/ieee1394/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/ieee1394/CVS/Repository
--- linux-2.4.20/drivers/ieee1394/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/ieee1394/CVS/Repository	2005-01-06 23:02:05.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/ieee1394
diff -urNd -urNd linux-2.4.20/drivers/ieee1394/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/ieee1394/CVS/Root
--- linux-2.4.20/drivers/ieee1394/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/ieee1394/CVS/Root	2005-01-06 23:02:05.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/ieee1394/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/ieee1394/CVS/Tag
--- linux-2.4.20/drivers/ieee1394/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/ieee1394/CVS/Tag	2005-01-06 23:02:09.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/ieee1394/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/ieee1394/.cvsignore
--- linux-2.4.20/drivers/ieee1394/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/ieee1394/.cvsignore	2001-12-30 21:33:19.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/input/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/input/CVS/Entries
--- linux-2.4.20/drivers/input/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/input/CVS/Entries	2005-01-06 23:08:12.000000000 -0600
@@ -0,0 +1,9 @@
+/.cvsignore/1.1/Fri Sep  1 07:46:58 2000/-ko/Tlinux_2_4_20
+/Config.in/1.2/Fri Oct 19 01:24:26 2001/-ko/Tlinux_2_4_20
+/Makefile/1.2/Wed Jan 10 17:17:58 2001/-ko/Tlinux_2_4_20
+/evdev.c/1.5.2.1/Tue Feb 26 05:59:31 2002/-ko/Tlinux_2_4_20
+/input.c/1.5/Mon Nov  5 20:15:36 2001/-ko/Tlinux_2_4_20
+/joydev.c/1.5.2.1/Wed Jun 26 22:35:46 2002/-ko/Tlinux_2_4_20
+/keybdev.c/1.6/Tue Nov  6 00:55:05 2001/-ko/Tlinux_2_4_20
+/mousedev.c/1.6/Mon Nov  5 20:15:36 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/input/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/input/CVS/Repository
--- linux-2.4.20/drivers/input/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/input/CVS/Repository	2005-01-06 23:02:09.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/input
diff -urNd -urNd linux-2.4.20/drivers/input/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/input/CVS/Root
--- linux-2.4.20/drivers/input/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/input/CVS/Root	2005-01-06 23:02:09.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/input/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/input/CVS/Tag
--- linux-2.4.20/drivers/input/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/input/CVS/Tag	2005-01-06 23:02:09.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/input/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/input/.cvsignore
--- linux-2.4.20/drivers/input/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/input/.cvsignore	2000-09-01 02:46:58.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/isdn/act2000/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/isdn/act2000/CVS/Entries
--- linux-2.4.20/drivers/isdn/act2000/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/act2000/CVS/Entries	2005-01-06 23:02:13.000000000 -0600
@@ -0,0 +1,9 @@
+/.cvsignore/1.3/Mon Dec  6 23:13:21 1999/-ko/Tlinux_2_4_20
+/Makefile/1.3/Wed Jan 10 17:17:59 2001/-ko/Tlinux_2_4_20
+/act2000.h/1.7.2.2/Wed Jun 26 22:35:46 2002/-ko/Tlinux_2_4_20
+/act2000_isa.c/1.9.2.2/Wed Jun 26 22:35:46 2002/-ko/Tlinux_2_4_20
+/act2000_isa.h/1.5.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
+/capi.c/1.6.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
+/capi.h/1.6.2.2/Wed Jun 26 22:35:46 2002/-ko/Tlinux_2_4_20
+/module.c/1.9.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/isdn/act2000/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/isdn/act2000/CVS/Repository
--- linux-2.4.20/drivers/isdn/act2000/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/act2000/CVS/Repository	2005-01-06 23:02:13.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/isdn/act2000
diff -urNd -urNd linux-2.4.20/drivers/isdn/act2000/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/isdn/act2000/CVS/Root
--- linux-2.4.20/drivers/isdn/act2000/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/act2000/CVS/Root	2005-01-06 23:02:13.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/isdn/act2000/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/isdn/act2000/CVS/Tag
--- linux-2.4.20/drivers/isdn/act2000/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/act2000/CVS/Tag	2005-01-06 23:02:13.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/isdn/act2000/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/isdn/act2000/.cvsignore
--- linux-2.4.20/drivers/isdn/act2000/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/act2000/.cvsignore	1999-12-06 17:13:21.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/isdn/avmb1/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/isdn/avmb1/CVS/Entries
--- linux-2.4.20/drivers/isdn/avmb1/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/avmb1/CVS/Entries	2005-01-06 23:02:15.000000000 -0600
@@ -0,0 +1,24 @@
+/.cvsignore/1.4/Mon Dec  6 23:13:21 1999/-ko/Tlinux_2_4_20
+/Makefile/1.10/Wed Jan 10 17:17:59 2001/-ko/Tlinux_2_4_20
+/avm_cs.c/1.6.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
+/avmcard.h/1.8.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
+/b1.c/1.14.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
+/b1dma.c/1.17.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/b1isa.c/1.11.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
+/b1pci.c/1.20.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
+/b1pcmcia.c/1.13.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
+/c4.c/1.16.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
+/capi.c/1.39.2.2/Tue Feb 26 05:59:31 2002/-ko/Tlinux_2_4_20
+/capicmd.h/1.5.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
+/capidev.h/1.9.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
+/capidrv.c/1.21.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
+/capidrv.h/1.5.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
+/capifs.c/1.12.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
+/capifs.h/1.3.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
+/capilli.h/1.3.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
+/capiutil.c/1.11.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
+/capiutil.h/1.6.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
+/kcapi.c/1.17.2.3/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/t1isa.c/1.13.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
+/t1pci.c/1.16.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/isdn/avmb1/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/isdn/avmb1/CVS/Repository
--- linux-2.4.20/drivers/isdn/avmb1/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/avmb1/CVS/Repository	2005-01-06 23:02:13.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/isdn/avmb1
diff -urNd -urNd linux-2.4.20/drivers/isdn/avmb1/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/isdn/avmb1/CVS/Root
--- linux-2.4.20/drivers/isdn/avmb1/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/avmb1/CVS/Root	2005-01-06 23:02:13.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/isdn/avmb1/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/isdn/avmb1/CVS/Tag
--- linux-2.4.20/drivers/isdn/avmb1/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/avmb1/CVS/Tag	2005-01-06 23:02:15.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/isdn/avmb1/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/isdn/avmb1/.cvsignore
--- linux-2.4.20/drivers/isdn/avmb1/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/avmb1/.cvsignore	1999-12-06 17:13:21.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/isdn/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/isdn/CVS/Entries
--- linux-2.4.20/drivers/isdn/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/CVS/Entries	2005-01-06 23:08:12.000000000 -0600
@@ -0,0 +1,33 @@
+/.cvsignore/1.4/Mon Dec  6 23:13:21 1999/-ko/Tlinux_2_4_20
+/Config.in/1.21.2.3/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/Makefile/1.11.2.1/Wed Jun 26 22:35:46 2002/-ko/Tlinux_2_4_20
+/isdn_audio.c/1.12.2.2/Tue Feb 26 05:59:31 2002/-ko/Tlinux_2_4_20
+/isdn_audio.h/1.6.2.1/Sat Dec 29 05:37:54 2001/-ko/Tlinux_2_4_20
+/isdn_bsdcomp.c/1.6/Mon Nov  5 20:15:36 2001/-ko/Tlinux_2_4_20
+/isdn_common.c/1.43.2.2/Wed Jun 26 22:35:46 2002/-ko/Tlinux_2_4_20
+/isdn_common.h/1.13.2.1/Sat Dec 29 05:37:54 2001/-ko/Tlinux_2_4_20
+/isdn_concap.c/1.6.2.1/Sat Dec 29 05:37:54 2001/-ko/Tlinux_2_4_20
+/isdn_concap.h/1.3.2.1/Sat Dec 29 05:37:54 2001/-ko/Tlinux_2_4_20
+/isdn_net.c/1.32.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/isdn_net.h/1.12.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/isdn_ppp.c/1.26.2.4/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/isdn_ppp.h/1.10.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
+/isdn_tty.c/1.24.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
+/isdn_tty.h/1.12.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
+/isdn_ttyfax.c/1.7.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
+/isdn_ttyfax.h/1.4.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
+/isdn_v110.c/1.8.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
+/isdn_v110.h/1.5.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
+/isdn_x25iface.c/1.7.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
+/isdn_x25iface.h/1.3.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
+D/act2000////
+D/avmb1////
+D/divert////
+D/eicon////
+D/hisax////
+D/hysdn////
+D/icn////
+D/isdnloop////
+D/pcbit////
+D/sc////
+D/tpam////
diff -urNd -urNd linux-2.4.20/drivers/isdn/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/isdn/CVS/Repository
--- linux-2.4.20/drivers/isdn/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/CVS/Repository	2005-01-06 23:02:09.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/isdn
diff -urNd -urNd linux-2.4.20/drivers/isdn/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/isdn/CVS/Root
--- linux-2.4.20/drivers/isdn/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/CVS/Root	2005-01-06 23:02:09.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/isdn/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/isdn/CVS/Tag
--- linux-2.4.20/drivers/isdn/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/CVS/Tag	2005-01-06 23:02:13.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/isdn/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/isdn/.cvsignore
--- linux-2.4.20/drivers/isdn/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/.cvsignore	1999-12-06 17:13:21.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/isdn/divert/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/isdn/divert/CVS/Entries
--- linux-2.4.20/drivers/isdn/divert/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/divert/CVS/Entries	2005-01-06 23:02:15.000000000 -0600
@@ -0,0 +1,7 @@
+/.cvsignore/1.2/Mon Dec  6 23:13:21 1999/-ko/Tlinux_2_4_20
+/Makefile/1.3/Wed Jan 10 17:18:00 2001/-ko/Tlinux_2_4_20
+/divert_init.c/1.6/Mon Nov  5 20:15:38 2001/-ko/Tlinux_2_4_20
+/divert_procfs.c/1.17.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
+/isdn_divert.c/1.8.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
+/isdn_divert.h/1.5.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/isdn/divert/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/isdn/divert/CVS/Repository
--- linux-2.4.20/drivers/isdn/divert/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/divert/CVS/Repository	2005-01-06 23:02:15.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/isdn/divert
diff -urNd -urNd linux-2.4.20/drivers/isdn/divert/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/isdn/divert/CVS/Root
--- linux-2.4.20/drivers/isdn/divert/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/divert/CVS/Root	2005-01-06 23:02:15.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/isdn/divert/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/isdn/divert/CVS/Tag
--- linux-2.4.20/drivers/isdn/divert/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/divert/CVS/Tag	2005-01-06 23:02:15.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/isdn/divert/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/isdn/divert/.cvsignore
--- linux-2.4.20/drivers/isdn/divert/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/divert/.cvsignore	1999-12-06 17:13:21.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/isdn/eicon/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/isdn/eicon/CVS/Entries
--- linux-2.4.20/drivers/isdn/eicon/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/eicon/CVS/Entries	2005-01-06 23:02:17.000000000 -0600
@@ -0,0 +1,39 @@
+/.cvsignore/1.2/Mon Dec  6 23:13:21 1999/-ko/Tlinux_2_4_20
+/Divas_mod.c/1.6/Mon Nov  5 20:15:38 2001/-ko/Tlinux_2_4_20
+/Makefile/1.4/Thu Apr  5 04:56:15 2001/-ko/Tlinux_2_4_20
+/adapter.h/1.3/Mon Nov  5 20:15:38 2001/-ko/Tlinux_2_4_20
+/bri.c/1.4/Mon Nov  5 20:15:39 2001/-ko/Tlinux_2_4_20
+/common.c/1.7.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
+/constant.h/1.3/Mon Nov  5 20:15:39 2001/-ko/Tlinux_2_4_20
+/divalog.h/1.3/Mon Nov  5 20:15:39 2001/-ko/Tlinux_2_4_20
+/divas.h/1.3/Mon Nov  5 20:15:39 2001/-ko/Tlinux_2_4_20
+/dsp_defs.h/1.3/Mon Nov  5 20:15:39 2001/-ko/Tlinux_2_4_20
+/dspdids.h/1.3/Mon Nov  5 20:15:39 2001/-ko/Tlinux_2_4_20
+/eicon.h/1.10.2.2/Wed Jun 26 22:35:46 2002/-ko/Tlinux_2_4_20
+/eicon_dsp.h/1.5.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
+/eicon_idi.c/1.11.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
+/eicon_idi.h/1.5.2.1/Sat Dec 29 05:37:57 2001/-ko/Tlinux_2_4_20
+/eicon_io.c/1.7.2.1/Sat Dec 29 05:37:57 2001/-ko/Tlinux_2_4_20
+/eicon_isa.c/1.8.2.1/Sat Dec 29 05:37:57 2001/-ko/Tlinux_2_4_20
+/eicon_isa.h/1.6.2.1/Sat Dec 29 05:37:57 2001/-ko/Tlinux_2_4_20
+/eicon_mod.c/1.11.2.2/Wed Jun 26 22:35:46 2002/-ko/Tlinux_2_4_20
+/eicon_pci.c/1.8.2.1/Sat Dec 29 05:37:57 2001/-ko/Tlinux_2_4_20
+/eicon_pci.h/1.4.2.1/Sat Dec 29 05:37:57 2001/-ko/Tlinux_2_4_20
+/fourbri.c/1.3/Mon Nov  5 20:15:39 2001/-ko/Tlinux_2_4_20
+/fpga.c/1.3/Mon Nov  5 20:15:39 2001/-ko/Tlinux_2_4_20
+/idi.c/1.4/Mon Nov  5 20:15:39 2001/-ko/Tlinux_2_4_20
+/idi.h/1.4/Mon Nov  5 20:15:39 2001/-ko/Tlinux_2_4_20
+/kprintf.c/1.6/Mon Nov  5 20:15:39 2001/-ko/Tlinux_2_4_20
+/lincfg.c/1.4/Mon Nov  5 20:15:39 2001/-ko/Tlinux_2_4_20
+/linchr.c/1.6/Mon Nov  5 20:15:39 2001/-ko/Tlinux_2_4_20
+/linio.c/1.5/Mon Nov  5 20:15:39 2001/-ko/Tlinux_2_4_20
+/linsys.c/1.4/Mon Nov  5 20:15:39 2001/-ko/Tlinux_2_4_20
+/log.c/1.4/Mon Nov  5 20:15:39 2001/-ko/Tlinux_2_4_20
+/pc.h/1.4/Mon Nov  5 20:15:40 2001/-ko/Tlinux_2_4_20
+/pc_maint.h/1.3/Mon Nov  5 20:15:40 2001/-ko/Tlinux_2_4_20
+/pr_pc.h/1.3/Mon Nov  5 20:15:40 2001/-ko/Tlinux_2_4_20
+/pri.c/1.3/Mon Nov  5 20:15:40 2001/-ko/Tlinux_2_4_20
+/sys.h/1.4/Mon Nov  5 20:15:40 2001/-ko/Tlinux_2_4_20
+/uxio.h/1.5/Mon Nov  5 20:15:40 2001/-ko/Tlinux_2_4_20
+/xlog.c/1.4/Mon Nov  5 20:15:40 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/isdn/eicon/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/isdn/eicon/CVS/Repository
--- linux-2.4.20/drivers/isdn/eicon/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/eicon/CVS/Repository	2005-01-06 23:02:15.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/isdn/eicon
diff -urNd -urNd linux-2.4.20/drivers/isdn/eicon/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/isdn/eicon/CVS/Root
--- linux-2.4.20/drivers/isdn/eicon/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/eicon/CVS/Root	2005-01-06 23:02:15.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/isdn/eicon/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/isdn/eicon/CVS/Tag
--- linux-2.4.20/drivers/isdn/eicon/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/eicon/CVS/Tag	2005-01-06 23:02:17.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/isdn/eicon/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/isdn/eicon/.cvsignore
--- linux-2.4.20/drivers/isdn/eicon/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/eicon/.cvsignore	1999-12-06 17:13:21.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/isdn/hisax/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/isdn/hisax/CVS/Entries
--- linux-2.4.20/drivers/isdn/hisax/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/hisax/CVS/Entries	2005-01-06 23:02:25.000000000 -0600
@@ -0,0 +1,103 @@
+/.cvsignore/1.4/Mon Dec  6 23:13:21 1999/-ko/Tlinux_2_4_20
+/Makefile/1.15.2.3/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/amd7930.c/1.9.2.1/Sat Dec 29 05:37:57 2001/-ko/Tlinux_2_4_20
+/amd7930_fn.c/1.1.2.1/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/amd7930_fn.h/1.1.2.1/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/arcofi.c/1.10.2.1/Sat Dec 29 05:37:57 2001/-ko/Tlinux_2_4_20
+/arcofi.h/1.7.2.1/Sat Dec 29 05:37:57 2001/-ko/Tlinux_2_4_20
+/asuscom.c/1.12.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/avm_a1.c/1.14.2.1/Sat Dec 29 05:37:57 2001/-ko/Tlinux_2_4_20
+/avm_a1p.c/1.7.2.1/Sat Dec 29 05:37:57 2001/-ko/Tlinux_2_4_20
+/avm_pci.c/1.12.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/avma1_cs.c/1.1.2.1/Wed Jun 26 22:35:46 2002/-ko/Tlinux_2_4_20
+/bkm_a4t.c/1.11.2.1/Sat Dec 29 05:37:57 2001/-ko/Tlinux_2_4_20
+/bkm_a8.c/1.11.2.1/Sat Dec 29 05:37:57 2001/-ko/Tlinux_2_4_20
+/bkm_ax.h/1.7.2.1/Sat Dec 29 05:37:57 2001/-ko/Tlinux_2_4_20
+/callc.c/1.20.2.1/Sat Dec 29 05:37:57 2001/-ko/Tlinux_2_4_20
+/cert.c/1.7.2.1/Sat Dec 29 05:37:57 2001/-ko/Tlinux_2_4_20
+/config.c/1.25.2.4/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/diva.c/1.14.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/elsa.c/1.18.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/elsa_cs.c/1.2.2.1/Sat Dec 29 05:37:58 2001/-ko/Tlinux_2_4_20
+/elsa_ser.c/1.10.2.1/Sat Dec 29 05:37:58 2001/-ko/Tlinux_2_4_20
+/enternow.h/1.1.2.1/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/enternow_pci.c/1.1.2.1/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/fsm.c/1.13.2.2/Wed Jun 26 22:35:46 2002/-ko/Tlinux_2_4_20
+/fsm.h/1.2.2.1/Sat Dec 29 05:37:58 2001/-ko/Tlinux_2_4_20
+/gazel.c/1.10.2.1/Sat Dec 29 05:37:58 2001/-ko/Tlinux_2_4_20
+/hfc_2bds0.c/1.13.2.1/Sat Dec 29 05:37:58 2001/-ko/Tlinux_2_4_20
+/hfc_2bds0.h/1.5.2.1/Sat Dec 29 05:37:58 2001/-ko/Tlinux_2_4_20
+/hfc_2bs0.c/1.13.2.1/Sat Dec 29 05:37:58 2001/-ko/Tlinux_2_4_20
+/hfc_2bs0.h/1.5.2.1/Sat Dec 29 05:37:58 2001/-ko/Tlinux_2_4_20
+/hfc_pci.c/1.18.2.2/Wed Jun 26 22:35:46 2002/-ko/Tlinux_2_4_20
+/hfc_pci.h/1.6.2.1/Sat Dec 29 05:37:58 2001/-ko/Tlinux_2_4_20
+/hfc_sx.c/1.9.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/hfc_sx.h/1.3.2.1/Sat Dec 29 05:37:58 2001/-ko/Tlinux_2_4_20
+/hfcscard.c/1.8.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/hisax.h/1.23.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/hisax_debug.h/1.2.2.1/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/hisax_fcpcipnp.c/1.1.2.3/Wed Jun 26 22:35:47 2002/-ko/Tlinux_2_4_20
+/hisax_fcpcipnp.h/1.1.2.1/Sat Dec 29 05:37:58 2001/-ko/Tlinux_2_4_20
+/hisax_if.h/1.2/Mon Nov  5 20:15:43 2001/-ko/Tlinux_2_4_20
+/hisax_isac.c/1.1.2.2/Wed Jun 26 22:35:47 2002/-ko/Tlinux_2_4_20
+/hisax_isac.h/1.1.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
+/hscx.c/1.10.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
+/hscx.h/1.6.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
+/hscx_irq.c/1.10.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
+/icc.c/1.5.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
+/icc.h/1.3.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
+/ipac.h/1.6.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
+/ipacx.c/1.1.2.1/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/ipacx.h/1.1.2.1/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/isac.c/1.11.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
+/isac.h/1.6.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
+/isar.c/1.14.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
+/isar.h/1.8.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
+/isdnl1.c/1.20.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
+/isdnl1.h/1.10.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
+/isdnl2.c/1.15.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
+/isdnl2.h/1.5.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
+/isdnl3.c/1.17.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
+/isdnl3.h/1.9.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
+/isurf.c/1.9.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/ix1_micro.c/1.14.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/jade.c/1.9.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
+/jade.h/1.5.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
+/jade_irq.c/1.8.2.1/Sat Dec 29 05:38:00 2001/-ko/Tlinux_2_4_20
+/l3_1tr6.c/1.16.2.1/Sat Dec 29 05:38:00 2001/-ko/Tlinux_2_4_20
+/l3_1tr6.h/1.7.2.1/Sat Dec 29 05:38:00 2001/-ko/Tlinux_2_4_20
+/l3dss1.c/1.19.2.1/Sat Dec 29 05:38:00 2001/-ko/Tlinux_2_4_20
+/l3dss1.h/1.7.2.1/Sat Dec 29 05:38:00 2001/-ko/Tlinux_2_4_20
+/l3ni1.c/1.6.2.1/Sat Dec 29 05:38:00 2001/-ko/Tlinux_2_4_20
+/l3ni1.h/1.4.2.1/Sat Dec 29 05:38:00 2001/-ko/Tlinux_2_4_20
+/lmgr.c/1.6.2.1/Sat Dec 29 05:38:00 2001/-ko/Tlinux_2_4_20
+/md5sums.asc/1.13.2.5/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/mic.c/1.9.2.1/Sat Dec 29 05:38:00 2001/-ko/Tlinux_2_4_20
+/netjet.c/1.17.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/netjet.h/1.4.2.1/Sat Dec 29 05:38:00 2001/-ko/Tlinux_2_4_20
+/niccy.c/1.13.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/nj_s.c/1.7.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/nj_u.c/1.7.2.1/Sat Dec 29 05:38:00 2001/-ko/Tlinux_2_4_20
+/q931.c/1.10.2.1/Sat Dec 29 05:38:00 2001/-ko/Tlinux_2_4_20
+/rawhdlc.c/1.7.2.1/Sat Dec 29 05:38:00 2001/-ko/Tlinux_2_4_20
+/rawhdlc.h/1.4.2.1/Sat Dec 29 05:38:01 2001/-ko/Tlinux_2_4_20
+/s0box.c/1.7.2.1/Sat Dec 29 05:38:01 2001/-ko/Tlinux_2_4_20
+/saphir.c/1.9.2.1/Sat Dec 29 05:38:01 2001/-ko/Tlinux_2_4_20
+/sedlbauer.c/1.15.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/sedlbauer_cs.c/1.4/Mon Nov  5 20:15:44 2001/-ko/Tlinux_2_4_20
+/sportster.c/1.11.2.1/Sat Dec 29 05:38:01 2001/-ko/Tlinux_2_4_20
+/st5481.h/1.2.2.1/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/st5481_b.c/1.2.2.1/Sat Dec 29 05:38:01 2001/-ko/Tlinux_2_4_20
+/st5481_d.c/1.3.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/st5481_hdlc.c/1.1/Fri Oct 19 01:24:29 2001/-ko/Tlinux_2_4_20
+/st5481_hdlc.h/1.1/Fri Oct 19 01:24:29 2001/-ko/Tlinux_2_4_20
+/st5481_init.c/1.2.2.1/Sat Dec 29 05:38:01 2001/-ko/Tlinux_2_4_20
+/st5481_usb.c/1.3.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/tei.c/1.14.2.1/Sat Dec 29 05:38:01 2001/-ko/Tlinux_2_4_20
+/teleint.c/1.11.2.1/Sat Dec 29 05:38:01 2001/-ko/Tlinux_2_4_20
+/teles0.c/1.16.2.1/Sat Dec 29 05:38:01 2001/-ko/Tlinux_2_4_20
+/teles3.c/1.16.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
+/telespci.c/1.11.2.1/Sat Dec 29 05:38:01 2001/-ko/Tlinux_2_4_20
+/w6692.c/1.12.2.2/Wed Jun 26 22:35:47 2002/-ko/Tlinux_2_4_20
+/w6692.h/1.5.2.1/Sat Dec 29 05:38:02 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/isdn/hisax/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/isdn/hisax/CVS/Repository
--- linux-2.4.20/drivers/isdn/hisax/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/hisax/CVS/Repository	2005-01-06 23:02:17.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/isdn/hisax
diff -urNd -urNd linux-2.4.20/drivers/isdn/hisax/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/isdn/hisax/CVS/Root
--- linux-2.4.20/drivers/isdn/hisax/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/hisax/CVS/Root	2005-01-06 23:02:17.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/isdn/hisax/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/isdn/hisax/CVS/Tag
--- linux-2.4.20/drivers/isdn/hisax/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/hisax/CVS/Tag	2005-01-06 23:02:25.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/isdn/hisax/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/isdn/hisax/.cvsignore
--- linux-2.4.20/drivers/isdn/hisax/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/hisax/.cvsignore	1999-12-06 17:13:21.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/isdn/hysdn/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/isdn/hysdn/CVS/Entries
--- linux-2.4.20/drivers/isdn/hysdn/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/hysdn/CVS/Entries	2005-01-06 23:02:25.000000000 -0600
@@ -0,0 +1,15 @@
+/.cvsignore/1.1/Thu Feb 24 00:12:58 2000/-ko/Tlinux_2_4_20
+/Makefile/1.3/Wed Jan 10 17:18:00 2001/-ko/Tlinux_2_4_20
+/boardergo.c/1.12.2.1/Sat Dec 29 05:38:02 2001/-ko/Tlinux_2_4_20
+/boardergo.h/1.3.2.1/Sat Dec 29 05:38:02 2001/-ko/Tlinux_2_4_20
+/hycapi.c/1.8.2.1/Sat Dec 29 05:38:02 2001/-ko/Tlinux_2_4_20
+/hysdn_boot.c/1.6.2.1/Sat Dec 29 05:38:02 2001/-ko/Tlinux_2_4_20
+/hysdn_defs.h/1.7.2.1/Sat Dec 29 05:38:02 2001/-ko/Tlinux_2_4_20
+/hysdn_init.c/1.8.2.1/Sat Dec 29 05:38:02 2001/-ko/Tlinux_2_4_20
+/hysdn_net.c/1.9.2.1/Sat Dec 29 05:38:02 2001/-ko/Tlinux_2_4_20
+/hysdn_pof.h/1.3.2.1/Sat Dec 29 05:38:02 2001/-ko/Tlinux_2_4_20
+/hysdn_procconf.c/1.13.2.1/Sat Dec 29 05:38:02 2001/-ko/Tlinux_2_4_20
+/hysdn_proclog.c/1.12.2.1/Sat Dec 29 05:38:02 2001/-ko/Tlinux_2_4_20
+/hysdn_sched.c/1.9.2.1/Sat Dec 29 05:38:02 2001/-ko/Tlinux_2_4_20
+/ince1pc.h/1.3/Mon Nov  5 20:15:46 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/isdn/hysdn/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/isdn/hysdn/CVS/Repository
--- linux-2.4.20/drivers/isdn/hysdn/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/hysdn/CVS/Repository	2005-01-06 23:02:25.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/isdn/hysdn
diff -urNd -urNd linux-2.4.20/drivers/isdn/hysdn/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/isdn/hysdn/CVS/Root
--- linux-2.4.20/drivers/isdn/hysdn/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/hysdn/CVS/Root	2005-01-06 23:02:25.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/isdn/hysdn/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/isdn/hysdn/CVS/Tag
--- linux-2.4.20/drivers/isdn/hysdn/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/hysdn/CVS/Tag	2005-01-06 23:02:25.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/isdn/hysdn/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/isdn/hysdn/.cvsignore
--- linux-2.4.20/drivers/isdn/hysdn/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/hysdn/.cvsignore	2000-02-23 18:12:58.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/isdn/icn/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/isdn/icn/CVS/Entries
--- linux-2.4.20/drivers/isdn/icn/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/icn/CVS/Entries	2005-01-06 23:02:25.000000000 -0600
@@ -0,0 +1,5 @@
+/.cvsignore/1.4/Mon Dec  6 23:13:21 1999/-ko/Tlinux_2_4_20
+/Makefile/1.3/Wed Jan 10 17:18:00 2001/-ko/Tlinux_2_4_20
+/icn.c/1.19.2.1/Sat Dec 29 05:38:02 2001/-ko/Tlinux_2_4_20
+/icn.h/1.12.2.1/Sat Dec 29 05:38:02 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/isdn/icn/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/isdn/icn/CVS/Repository
--- linux-2.4.20/drivers/isdn/icn/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/icn/CVS/Repository	2005-01-06 23:02:25.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/isdn/icn
diff -urNd -urNd linux-2.4.20/drivers/isdn/icn/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/isdn/icn/CVS/Root
--- linux-2.4.20/drivers/isdn/icn/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/icn/CVS/Root	2005-01-06 23:02:25.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/isdn/icn/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/isdn/icn/CVS/Tag
--- linux-2.4.20/drivers/isdn/icn/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/icn/CVS/Tag	2005-01-06 23:02:25.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/isdn/icn/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/isdn/icn/.cvsignore
--- linux-2.4.20/drivers/isdn/icn/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/icn/.cvsignore	1999-12-06 17:13:21.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/isdn/isdnloop/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/isdn/isdnloop/CVS/Entries
--- linux-2.4.20/drivers/isdn/isdnloop/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/isdnloop/CVS/Entries	2005-01-06 23:02:25.000000000 -0600
@@ -0,0 +1,5 @@
+/.cvsignore/1.3/Sat Mar 25 22:41:20 2000/-ko/Tlinux_2_4_20
+/Makefile/1.2/Wed Jan 10 17:18:00 2001/-ko/Tlinux_2_4_20
+/isdnloop.c/1.12.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
+/isdnloop.h/1.8.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/isdn/isdnloop/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/isdn/isdnloop/CVS/Repository
--- linux-2.4.20/drivers/isdn/isdnloop/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/isdnloop/CVS/Repository	2005-01-06 23:02:25.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/isdn/isdnloop
diff -urNd -urNd linux-2.4.20/drivers/isdn/isdnloop/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/isdn/isdnloop/CVS/Root
--- linux-2.4.20/drivers/isdn/isdnloop/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/isdnloop/CVS/Root	2005-01-06 23:02:25.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/isdn/isdnloop/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/isdn/isdnloop/CVS/Tag
--- linux-2.4.20/drivers/isdn/isdnloop/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/isdnloop/CVS/Tag	2005-01-06 23:02:25.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/isdn/isdnloop/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/isdn/isdnloop/.cvsignore
--- linux-2.4.20/drivers/isdn/isdnloop/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/isdnloop/.cvsignore	2000-03-25 16:41:20.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/isdn/pcbit/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/isdn/pcbit/CVS/Entries
--- linux-2.4.20/drivers/isdn/pcbit/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/pcbit/CVS/Entries	2005-01-06 23:02:26.000000000 -0600
@@ -0,0 +1,14 @@
+/.cvsignore/1.4/Mon Dec  6 23:13:21 1999/-ko/Tlinux_2_4_20
+/Makefile/1.2/Wed Jan 10 17:18:00 2001/-ko/Tlinux_2_4_20
+/callbacks.c/1.5/Mon Nov  5 20:15:47 2001/-ko/Tlinux_2_4_20
+/callbacks.h/1.3/Mon Nov  5 20:15:47 2001/-ko/Tlinux_2_4_20
+/capi.c/1.6/Mon Nov  5 20:15:47 2001/-ko/Tlinux_2_4_20
+/capi.h/1.3.2.1/Wed Jun 26 22:35:47 2002/-ko/Tlinux_2_4_20
+/drv.c/1.16.2.1/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
+/edss1.c/1.4/Mon Nov  5 20:15:47 2001/-ko/Tlinux_2_4_20
+/edss1.h/1.3/Mon Nov  5 20:15:47 2001/-ko/Tlinux_2_4_20
+/layer2.c/1.10/Mon Nov  5 20:15:47 2001/-ko/Tlinux_2_4_20
+/layer2.h/1.5/Mon Nov  5 20:15:47 2001/-ko/Tlinux_2_4_20
+/module.c/1.8/Mon Nov  5 20:15:47 2001/-ko/Tlinux_2_4_20
+/pcbit.h/1.8/Mon Nov  5 20:15:47 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/isdn/pcbit/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/isdn/pcbit/CVS/Repository
--- linux-2.4.20/drivers/isdn/pcbit/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/pcbit/CVS/Repository	2005-01-06 23:02:25.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/isdn/pcbit
diff -urNd -urNd linux-2.4.20/drivers/isdn/pcbit/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/isdn/pcbit/CVS/Root
--- linux-2.4.20/drivers/isdn/pcbit/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/pcbit/CVS/Root	2005-01-06 23:02:25.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/isdn/pcbit/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/isdn/pcbit/CVS/Tag
--- linux-2.4.20/drivers/isdn/pcbit/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/pcbit/CVS/Tag	2005-01-06 23:02:26.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/isdn/pcbit/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/isdn/pcbit/.cvsignore
--- linux-2.4.20/drivers/isdn/pcbit/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/pcbit/.cvsignore	1999-12-06 17:13:21.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/isdn/sc/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/isdn/sc/CVS/Entries
--- linux-2.4.20/drivers/isdn/sc/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/sc/CVS/Entries	2005-01-06 23:02:26.000000000 -0600
@@ -0,0 +1,19 @@
+/.cvsignore/1.3/Sat Mar 25 22:41:20 2000/-ko/Tlinux_2_4_20
+/Makefile/1.4/Wed Jan 10 17:18:00 2001/-ko/Tlinux_2_4_20
+/card.h/1.3.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
+/command.c/1.4.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
+/debug.c/1.7.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
+/debug.h/1.5.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
+/event.c/1.4.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
+/hardware.h/1.4/Mon Nov  5 20:15:47 2001/-ko/Tlinux_2_4_20
+/includes.h/1.4/Mon Nov  5 20:15:47 2001/-ko/Tlinux_2_4_20
+/init.c/1.9/Mon Nov  5 20:15:47 2001/-ko/Tlinux_2_4_20
+/interrupt.c/1.7.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
+/ioctl.c/1.4/Mon Nov  5 20:15:47 2001/-ko/Tlinux_2_4_20
+/message.c/1.9.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
+/message.h/1.3.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
+/packet.c/1.6.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
+/scioc.h/1.2/Mon Nov  5 20:15:47 2001/-ko/Tlinux_2_4_20
+/shmem.c/1.3.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
+/timer.c/1.5.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/isdn/sc/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/isdn/sc/CVS/Repository
--- linux-2.4.20/drivers/isdn/sc/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/sc/CVS/Repository	2005-01-06 23:02:26.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/isdn/sc
diff -urNd -urNd linux-2.4.20/drivers/isdn/sc/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/isdn/sc/CVS/Root
--- linux-2.4.20/drivers/isdn/sc/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/sc/CVS/Root	2005-01-06 23:02:26.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/isdn/sc/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/isdn/sc/CVS/Tag
--- linux-2.4.20/drivers/isdn/sc/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/sc/CVS/Tag	2005-01-06 23:02:26.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/isdn/sc/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/isdn/sc/.cvsignore
--- linux-2.4.20/drivers/isdn/sc/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/sc/.cvsignore	2000-03-25 16:41:20.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/isdn/tpam/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/isdn/tpam/CVS/Entries
--- linux-2.4.20/drivers/isdn/tpam/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/tpam/CVS/Entries	2005-01-06 23:02:26.000000000 -0600
@@ -0,0 +1,11 @@
+/.cvsignore/1.1/Fri Aug 24 03:38:38 2001/-ko/Tlinux_2_4_20
+/Makefile/1.1/Wed Aug 22 03:24:26 2001/-ko/Tlinux_2_4_20
+/tpam.h/1.3.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
+/tpam_commands.c/1.3.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
+/tpam_crcpc.c/1.2.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
+/tpam_hdlc.c/1.3.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
+/tpam_main.c/1.3.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
+/tpam_memory.c/1.2.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
+/tpam_nco.c/1.2.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
+/tpam_queues.c/1.2.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/isdn/tpam/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/isdn/tpam/CVS/Repository
--- linux-2.4.20/drivers/isdn/tpam/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/tpam/CVS/Repository	2005-01-06 23:02:26.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/isdn/tpam
diff -urNd -urNd linux-2.4.20/drivers/isdn/tpam/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/isdn/tpam/CVS/Root
--- linux-2.4.20/drivers/isdn/tpam/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/tpam/CVS/Root	2005-01-06 23:02:26.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/isdn/tpam/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/isdn/tpam/CVS/Tag
--- linux-2.4.20/drivers/isdn/tpam/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/tpam/CVS/Tag	2005-01-06 23:02:26.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/isdn/tpam/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/isdn/tpam/.cvsignore
--- linux-2.4.20/drivers/isdn/tpam/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/tpam/.cvsignore	2001-08-23 22:38:38.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/macintosh/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/macintosh/CVS/Entries
--- linux-2.4.20/drivers/macintosh/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/macintosh/CVS/Entries	2005-01-06 23:02:28.000000000 -0600
@@ -0,0 +1,22 @@
+/.cvsignore/1.2/Tue Mar 17 22:10:32 1998/-ko/Tlinux_2_4_20
+/Makefile/1.15.2.2/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
+/adb-iop.c/1.1/Thu Feb 24 00:12:58 2000/-ko/Tlinux_2_4_20
+/adb.c/1.21.2.4/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/adbhid.c/1.3.2.2/Wed Jun 26 22:35:47 2002/-ko/Tlinux_2_4_20
+/ans-lcd.c/1.1.2.1/Tue Feb 26 05:59:32 2002/-ko/Tlinux_2_4_20
+/apm_emu.c/1.1.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/mac_hid.c/1.2.2.2/Wed Jun 26 22:35:47 2002/-ko/Tlinux_2_4_20
+/mac_keyb.c/1.18.2.1/Wed Jun 26 22:35:47 2002/-ko/Tlinux_2_4_20
+/macio-adb.c/1.8.4.1/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/mackeymap.map/1.2/Tue Mar 17 22:10:36 1998/-ko/Tlinux_2_4_20
+/macserial.c/1.24.2.2/Wed Jun 26 22:35:47 2002/-ko/Tlinux_2_4_20
+/macserial.h/1.9.2.1/Tue Feb 26 05:59:32 2002/-ko/Tlinux_2_4_20
+/mediabay.c/1.12.2.1/Tue Feb 26 05:59:32 2002/-ko/Tlinux_2_4_20
+/nvram.c/1.13/Tue Nov  6 00:55:05 2001/-ko/Tlinux_2_4_20
+/rtc.c/1.5.2.1/Tue Feb 26 05:59:32 2002/-ko/Tlinux_2_4_20
+/via-cuda.c/1.11.2.4/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/via-macii.c/1.2.2.1/Wed Jun 26 22:35:47 2002/-ko/Tlinux_2_4_20
+/via-maciisi.c/1.1.4.2/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
+/via-pmu.c/1.20.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/via-pmu68k.c/1.3.2.1/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/macintosh/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/macintosh/CVS/Repository
--- linux-2.4.20/drivers/macintosh/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/macintosh/CVS/Repository	2005-01-06 23:02:26.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/macintosh
diff -urNd -urNd linux-2.4.20/drivers/macintosh/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/macintosh/CVS/Root
--- linux-2.4.20/drivers/macintosh/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/macintosh/CVS/Root	2005-01-06 23:02:26.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/macintosh/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/macintosh/CVS/Tag
--- linux-2.4.20/drivers/macintosh/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/macintosh/CVS/Tag	2005-01-06 23:02:28.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/macintosh/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/macintosh/.cvsignore
--- linux-2.4.20/drivers/macintosh/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/macintosh/.cvsignore	1998-03-17 16:10:32.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/md/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/md/CVS/Entries
--- linux-2.4.20/drivers/md/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/md/CVS/Entries	2005-01-06 23:08:12.000000000 -0600
@@ -0,0 +1,15 @@
+/.cvsignore/1.1/Mon Oct  9 00:46:00 2000/-ko/Tlinux_2_4_20
+/Config.in/1.3/Fri Oct 19 01:24:30 2001/-ko/Tlinux_2_4_20
+/Makefile/1.5/Sun Dec  2 11:34:42 2001/-ko/Tlinux_2_4_20
+/linear.c/1.4/Mon Nov  5 20:15:48 2001/-ko/Tlinux_2_4_20
+/lvm-fs.c/1.1.2.4/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
+/lvm-internal.h/1.1.2.2/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
+/lvm-snap.c/1.7.2.3/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
+/lvm.c/1.11.2.2/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
+/md.c/1.15.2.5/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
+/multipath.c/1.3.2.1/Tue Feb 26 05:59:32 2002/-ko/Tlinux_2_4_20
+/raid0.c/1.4/Mon Nov  5 20:15:48 2001/-ko/Tlinux_2_4_20
+/raid1.c/1.10.2.4/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
+/raid5.c/1.13.2.1/Tue Feb 26 05:59:32 2002/-ko/Tlinux_2_4_20
+/xor.c/1.5/Mon Nov  5 20:15:48 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/md/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/md/CVS/Repository
--- linux-2.4.20/drivers/md/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/md/CVS/Repository	2005-01-06 23:02:28.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/md
diff -urNd -urNd linux-2.4.20/drivers/md/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/md/CVS/Root
--- linux-2.4.20/drivers/md/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/md/CVS/Root	2005-01-06 23:02:28.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/md/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/md/CVS/Tag
--- linux-2.4.20/drivers/md/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/md/CVS/Tag	2005-01-06 23:02:30.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/md/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/md/.cvsignore
--- linux-2.4.20/drivers/md/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/md/.cvsignore	2000-10-08 19:46:00.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/media/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/media/CVS/Entries
--- linux-2.4.20/drivers/media/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/media/CVS/Entries	2005-01-06 23:08:12.000000000 -0600
@@ -0,0 +1,5 @@
+/.cvsignore/1.1/Fri Sep  1 07:46:58 2000/-ko/Tlinux_2_4_20
+/Config.in/1.1/Mon Aug 28 22:00:16 2000/-ko/Tlinux_2_4_20
+/Makefile/1.3/Wed Jan 10 17:18:00 2001/-ko/Tlinux_2_4_20
+D/radio////
+D/video////
diff -urNd -urNd linux-2.4.20/drivers/media/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/media/CVS/Repository
--- linux-2.4.20/drivers/media/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/media/CVS/Repository	2005-01-06 23:02:30.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/media
diff -urNd -urNd linux-2.4.20/drivers/media/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/media/CVS/Root
--- linux-2.4.20/drivers/media/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/media/CVS/Root	2005-01-06 23:02:30.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/media/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/media/CVS/Tag
--- linux-2.4.20/drivers/media/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/media/CVS/Tag	2005-01-06 23:02:30.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/media/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/media/.cvsignore
--- linux-2.4.20/drivers/media/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/media/.cvsignore	2000-09-01 02:46:58.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/media/radio/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/media/radio/CVS/Entries
--- linux-2.4.20/drivers/media/radio/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/media/radio/CVS/Entries	2005-01-06 23:02:31.000000000 -0600
@@ -0,0 +1,21 @@
+/.cvsignore/1.1/Fri Sep  1 07:46:58 2000/-ko/Tlinux_2_4_20
+/Config.in/1.8.2.1/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
+/Makefile/1.7/Fri Aug 24 03:38:38 2001/-ko/Tlinux_2_4_20
+/miropcm20-radio.c/1.2/Mon Nov  5 20:15:48 2001/-ko/Tlinux_2_4_20
+/miropcm20-rds-core.c/1.2/Mon Nov  5 20:15:48 2001/-ko/Tlinux_2_4_20
+/miropcm20-rds-core.h/1.1/Wed Aug 22 03:24:29 2001/-ko/Tlinux_2_4_20
+/miropcm20-rds.c/1.2/Mon Nov  5 20:15:48 2001/-ko/Tlinux_2_4_20
+/radio-aimslab.c/1.7/Mon Nov  5 20:15:48 2001/-ko/Tlinux_2_4_20
+/radio-aztech.c/1.7/Mon Nov  5 20:15:49 2001/-ko/Tlinux_2_4_20
+/radio-cadet.c/1.6/Mon Nov  5 20:15:49 2001/-ko/Tlinux_2_4_20
+/radio-gemtek-pci.c/1.2.2.2/Tue Feb 26 05:59:32 2002/-ko/Tlinux_2_4_20
+/radio-gemtek.c/1.7.2.1/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
+/radio-maestro.c/1.5/Mon Nov  5 20:15:49 2001/-ko/Tlinux_2_4_20
+/radio-maxiradio.c/1.3.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
+/radio-rtrack2.c/1.7/Mon Nov  5 20:15:49 2001/-ko/Tlinux_2_4_20
+/radio-sf16fmi.c/1.8.2.2/Tue Sep 10 15:32:50 2002/-ko/Tlinux_2_4_20
+/radio-terratec.c/1.7/Mon Nov  5 20:15:49 2001/-ko/Tlinux_2_4_20
+/radio-trust.c/1.7/Mon Nov  5 20:15:49 2001/-ko/Tlinux_2_4_20
+/radio-typhoon.c/1.7/Mon Nov  5 20:15:49 2001/-ko/Tlinux_2_4_20
+/radio-zoltrix.c/1.7.2.1/Tue Sep 10 15:32:50 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/media/radio/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/media/radio/CVS/Repository
--- linux-2.4.20/drivers/media/radio/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/media/radio/CVS/Repository	2005-01-06 23:02:30.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/media/radio
diff -urNd -urNd linux-2.4.20/drivers/media/radio/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/media/radio/CVS/Root
--- linux-2.4.20/drivers/media/radio/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/media/radio/CVS/Root	2005-01-06 23:02:30.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/media/radio/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/media/radio/CVS/Tag
--- linux-2.4.20/drivers/media/radio/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/media/radio/CVS/Tag	2005-01-06 23:02:31.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/media/radio/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/media/radio/.cvsignore
--- linux-2.4.20/drivers/media/radio/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/media/radio/.cvsignore	2000-09-01 02:46:58.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/media/video/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/media/video/CVS/Entries
--- linux-2.4.20/drivers/media/video/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/media/video/CVS/Entries	2005-01-06 23:08:11.000000000 -0600
@@ -0,0 +1,64 @@
+/.cvsignore/1.1/Fri Sep  1 07:46:58 2000/-ko/Tlinux_2_4_20
+/Config.in/1.4.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
+/Makefile/1.5.2.1/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/adv7175.c/1.3/Mon Nov  5 20:15:49 2001/-ko/Tlinux_2_4_20
+/audiochip.h/1.2/Tue Nov 28 03:58:50 2000/-ko/Tlinux_2_4_20
+/bt819.c/1.3/Mon Nov  5 20:15:49 2001/-ko/Tlinux_2_4_20
+/bt848.h/1.2/Fri Aug 24 03:38:38 2001/-ko/Tlinux_2_4_20
+/bt856.c/1.3/Mon Nov  5 20:15:49 2001/-ko/Tlinux_2_4_20
+/bttv-cards.c/1.9.2.2/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
+/bttv-driver.c/1.13.2.4/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
+/bttv-if.c/1.5.2.1/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
+/bttv.h/1.9.2.2/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
+/bttvp.h/1.5.2.2/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
+/bw-qcam.c/1.8.2.1/Wed Jun 26 22:35:47 2002/-ko/Tlinux_2_4_20
+/bw-qcam.h/1.1/Mon Aug 28 22:00:16 2000/-ko/Tlinux_2_4_20
+/c-qcam.c/1.7/Mon Nov  5 20:15:49 2001/-ko/Tlinux_2_4_20
+/cpia.c/1.7.2.1/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
+/cpia.h/1.3.2.1/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
+/cpia_pp.c/1.3.2.1/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
+/cpia_usb.c/1.7.2.1/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
+/cs8420.h/1.1/Mon Aug 28 22:00:16 2000/-ko/Tlinux_2_4_20
+/i2c-old.c/1.3/Mon Nov  5 20:15:49 2001/-ko/Tlinux_2_4_20
+/i2c-parport.c/1.3/Mon Nov  5 20:15:49 2001/-ko/Tlinux_2_4_20
+/ibmmpeg2.h/1.1/Mon Aug 28 22:00:16 2000/-ko/Tlinux_2_4_20
+/id.h/1.2.2.1/Wed Jun 26 22:35:47 2002/-ko/Tlinux_2_4_20
+/meye.c/1.4.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/meye.h/1.2.2.1/Wed Jun 26 22:35:47 2002/-ko/Tlinux_2_4_20
+/msp3400.c/1.8.2.2/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
+/msp3400.h/1.1/Fri Aug 24 03:38:39 2001/-ko/Tlinux_2_4_20
+/planb.c/1.9.2.2/Wed Jun 26 22:35:47 2002/-ko/Tlinux_2_4_20
+/planb.h/1.2.2.1/Wed Jun 26 22:35:47 2002/-ko/Tlinux_2_4_20
+/pms.c/1.6.2.2/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
+/saa5249.c/1.5/Mon Nov  5 20:15:49 2001/-ko/Tlinux_2_4_20
+/saa7110.c/1.5/Sun Dec  2 11:34:42 2001/-ko/Tlinux_2_4_20
+/saa7111.c/1.5/Mon Nov  5 20:15:49 2001/-ko/Tlinux_2_4_20
+/saa7121.h/1.1/Mon Aug 28 22:00:17 2000/-ko/Tlinux_2_4_20
+/saa7146.h/1.1/Mon Aug 28 22:00:17 2000/-ko/Tlinux_2_4_20
+/saa7146reg.h/1.1/Mon Aug 28 22:00:17 2000/-ko/Tlinux_2_4_20
+/saa7185.c/1.5/Mon Nov  5 20:15:49 2001/-ko/Tlinux_2_4_20
+/saa7196.h/1.1.4.1/Wed Jun 26 22:35:47 2002/-ko/Tlinux_2_4_20
+/stradis.c/1.7.2.2/Tue Sep 10 15:32:50 2002/-ko/Tlinux_2_4_20
+/tda7432.c/1.7.2.2/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
+/tda9875.c/1.7.2.2/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
+/tuner-3036.c/1.3/Mon Nov  5 20:15:50 2001/-ko/Tlinux_2_4_20
+/tuner.c/1.7.2.2/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
+/tuner.h/1.5.2.2/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
+/tvaudio.c/1.7.2.2/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
+/tvaudio.h/1.2.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
+/tvmixer.c/1.6.2.2/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
+/videodev.c/1.9.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
+/vino.c/1.4/Fri Oct  5 15:04:00 2001/-ko/Tlinux_2_4_20
+/vino.h/1.2/Sun Jun 10 22:07:06 2001/-ko/Tlinux_2_4_20
+/w9966.c/1.2.2.3/Tue Sep 10 15:32:50 2002/-ko/Tlinux_2_4_20
+/zoran.h/1.1/Thu Aug 23 22:24:31 2001/-ko/Tlinux_2_4_20
+/zoran_procfs.c/1.1.2.1/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/zr36057.h/1.2/Thu Aug 23 22:24:31 2001/-ko/Tlinux_2_4_20
+/zr36060.h/1.2/Thu Aug 23 22:24:31 2001/-ko/Tlinux_2_4_20
+/zr36067.c/1.5.2.4/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/zr36120.c/1.11.2.1/Tue Feb 26 05:59:33 2002/-ko/Tlinux_2_4_20
+/zr36120.h/1.2/Wed Jan 10 05:27:30 2001/-ko/Tlinux_2_4_20
+/zr36120_i2c.c/1.1/Mon Aug 28 22:00:17 2000/-ko/Tlinux_2_4_20
+/zr36120_mem.c/1.2/Mon Nov  5 20:15:50 2001/-ko/Tlinux_2_4_20
+/zr36120_mem.h/1.1/Mon Aug 28 22:00:17 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/media/video/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/media/video/CVS/Repository
--- linux-2.4.20/drivers/media/video/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/media/video/CVS/Repository	2005-01-06 23:02:31.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/media/video
diff -urNd -urNd linux-2.4.20/drivers/media/video/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/media/video/CVS/Root
--- linux-2.4.20/drivers/media/video/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/media/video/CVS/Root	2005-01-06 23:02:31.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/media/video/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/media/video/CVS/Tag
--- linux-2.4.20/drivers/media/video/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/media/video/CVS/Tag	2005-01-06 23:02:37.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/media/video/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/media/video/.cvsignore
--- linux-2.4.20/drivers/media/video/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/media/video/.cvsignore	2000-09-01 02:46:58.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/message/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/message/CVS/Entries
--- linux-2.4.20/drivers/message/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/message/CVS/Entries	2005-01-06 23:08:11.000000000 -0600
@@ -0,0 +1,2 @@
+D/fusion////
+D/i2o////
diff -urNd -urNd linux-2.4.20/drivers/message/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/message/CVS/Repository
--- linux-2.4.20/drivers/message/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/message/CVS/Repository	2005-01-06 23:02:37.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/message
diff -urNd -urNd linux-2.4.20/drivers/message/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/message/CVS/Root
--- linux-2.4.20/drivers/message/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/message/CVS/Root	2005-01-06 23:02:37.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/message/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/message/CVS/Tag
--- linux-2.4.20/drivers/message/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/message/CVS/Tag	2005-01-06 23:02:37.000000000 -0600
@@ -0,0 +1 @@
+Tlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/message/fusion/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/message/fusion/CVS/Entries
--- linux-2.4.20/drivers/message/fusion/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/message/fusion/CVS/Entries	2005-01-06 23:08:11.000000000 -0600
@@ -0,0 +1,19 @@
+/.cvsignore/1.1/Fri Aug 24 03:38:40 2001/-ko/Tlinux_2_4_20
+/Config.in/1.1.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
+/Makefile/1.2.2.2/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
+/ascq_tbl.c/1.1/Thu Aug 23 22:24:31 2001/-ko/Tlinux_2_4_20
+/ascq_tbl.sh/1.1/Thu Aug 23 22:24:31 2001/-ko/Tlinux_2_4_20
+/isense.c/1.3.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
+/isense.h/1.1/Thu Aug 23 22:24:31 2001/-ko/Tlinux_2_4_20
+/linux_compat.h/1.1.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/mptbase.c/1.3.2.2/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
+/mptbase.h/1.3.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/mptctl.c/1.4.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/mptctl.h/1.1.2.2/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
+/mptlan.c/1.3.2.2/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
+/mptlan.h/1.2.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
+/mptscsih.c/1.3.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/mptscsih.h/1.1.2.2/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
+/scsi3.h/1.2.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
+/scsiops.c/1.1/Thu Aug 23 22:24:32 2001/-ko/Tlinux_2_4_20
+D/lsi////
diff -urNd -urNd linux-2.4.20/drivers/message/fusion/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/message/fusion/CVS/Repository
--- linux-2.4.20/drivers/message/fusion/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/message/fusion/CVS/Repository	2005-01-06 23:02:37.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/message/fusion
diff -urNd -urNd linux-2.4.20/drivers/message/fusion/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/message/fusion/CVS/Root
--- linux-2.4.20/drivers/message/fusion/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/message/fusion/CVS/Root	2005-01-06 23:02:37.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/message/fusion/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/message/fusion/CVS/Tag
--- linux-2.4.20/drivers/message/fusion/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/message/fusion/CVS/Tag	2005-01-06 23:02:39.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/message/fusion/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/message/fusion/.cvsignore
--- linux-2.4.20/drivers/message/fusion/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/message/fusion/.cvsignore	2001-08-23 22:38:40.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/message/fusion/lsi/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/message/fusion/lsi/CVS/Entries
--- linux-2.4.20/drivers/message/fusion/lsi/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/message/fusion/lsi/CVS/Entries	2005-01-06 23:02:39.000000000 -0600
@@ -0,0 +1,13 @@
+/fc_log.h/1.2.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
+/mpi.h/1.2.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
+/mpi_cnfg.h/1.2.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
+/mpi_fc.h/1.2.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
+/mpi_history.txt/1.2/Fri Oct 19 01:24:31 2001/-ko/Tlinux_2_4_20
+/mpi_init.h/1.2.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
+/mpi_ioc.h/1.2.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
+/mpi_lan.h/1.2.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
+/mpi_raid.h/1.1.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
+/mpi_targ.h/1.2.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
+/mpi_tool.h/1.1.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
+/mpi_type.h/1.1.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/message/fusion/lsi/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/message/fusion/lsi/CVS/Repository
--- linux-2.4.20/drivers/message/fusion/lsi/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/message/fusion/lsi/CVS/Repository	2005-01-06 23:02:39.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/message/fusion/lsi
diff -urNd -urNd linux-2.4.20/drivers/message/fusion/lsi/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/message/fusion/lsi/CVS/Root
--- linux-2.4.20/drivers/message/fusion/lsi/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/message/fusion/lsi/CVS/Root	2005-01-06 23:02:39.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/message/fusion/lsi/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/message/fusion/lsi/CVS/Tag
--- linux-2.4.20/drivers/message/fusion/lsi/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/message/fusion/lsi/CVS/Tag	2005-01-06 23:02:39.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/message/i2o/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/message/i2o/CVS/Entries
--- linux-2.4.20/drivers/message/i2o/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/message/i2o/CVS/Entries	2005-01-06 23:02:41.000000000 -0600
@@ -0,0 +1,15 @@
+/.cvsignore/1.1/Thu Nov 15 16:02:31 2001/-ko/Tlinux_2_4_20
+/Config.in/1.1/Tue Nov  6 00:55:06 2001/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
+/README/1.1.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
+/README.ioctl/1.1.2.1/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
+/i2o_block.c/1.2.2.2/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
+/i2o_config.c/1.1.2.2/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
+/i2o_core.c/1.1.2.3/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
+/i2o_lan.c/1.1.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
+/i2o_lan.h/1.1/Tue Nov  6 00:55:06 2001/-ko/Tlinux_2_4_20
+/i2o_pci.c/1.2.2.2/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
+/i2o_proc.c/1.2.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
+/i2o_scsi.c/1.1.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
+/i2o_scsi.h/1.1.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/message/i2o/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/message/i2o/CVS/Repository
--- linux-2.4.20/drivers/message/i2o/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/message/i2o/CVS/Repository	2005-01-06 23:02:39.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/message/i2o
diff -urNd -urNd linux-2.4.20/drivers/message/i2o/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/message/i2o/CVS/Root
--- linux-2.4.20/drivers/message/i2o/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/message/i2o/CVS/Root	2005-01-06 23:02:39.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/message/i2o/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/message/i2o/CVS/Tag
--- linux-2.4.20/drivers/message/i2o/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/message/i2o/CVS/Tag	2005-01-06 23:02:41.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/message/i2o/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/message/i2o/.cvsignore
--- linux-2.4.20/drivers/message/i2o/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/message/i2o/.cvsignore	2001-11-15 10:02:31.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/misc/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/misc/CVS/Entries
--- linux-2.4.20/drivers/misc/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/misc/CVS/Entries	2005-01-06 23:08:11.000000000 -0600
@@ -0,0 +1,4 @@
+/.cvsignore/1.2/Tue Mar 17 22:10:39 1998/-ko/Tlinux_2_4_20
+/Config.in/1.5/Sat Feb  5 06:47:20 2000/-ko/Tlinux_2_4_20
+/Makefile/1.13/Wed Jan 10 17:18:00 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/misc/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/misc/CVS/Repository
--- linux-2.4.20/drivers/misc/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/misc/CVS/Repository	2005-01-06 23:02:41.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/misc
diff -urNd -urNd linux-2.4.20/drivers/misc/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/misc/CVS/Root
--- linux-2.4.20/drivers/misc/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/misc/CVS/Root	2005-01-06 23:02:41.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/misc/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/misc/CVS/Tag
--- linux-2.4.20/drivers/misc/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/misc/CVS/Tag	2005-01-06 23:02:41.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/misc/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/misc/.cvsignore
--- linux-2.4.20/drivers/misc/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/misc/.cvsignore	1998-03-17 16:10:39.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/mtd/chips/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/mtd/chips/CVS/Entries
--- linux-2.4.20/drivers/mtd/chips/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/chips/CVS/Entries	2005-01-06 23:02:43.000000000 -0600
@@ -0,0 +1,16 @@
+/.cvsignore/1.1/Fri Aug 24 03:38:40 2001/-ko/Tlinux_2_4_20
+/Config.in/1.2/Mon Nov  5 20:15:51 2001/-ko/Tlinux_2_4_20
+/Makefile/1.2.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
+/amd_flash.c/1.3.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
+/cfi_cmdset_0001.c/1.2/Mon Nov  5 20:15:51 2001/-ko/Tlinux_2_4_20
+/cfi_cmdset_0002.c/1.3/Tue Nov  6 07:56:00 2001/-ko/Tlinux_2_4_20
+/cfi_probe.c/1.2/Mon Nov  5 20:15:51 2001/-ko/Tlinux_2_4_20
+/chipreg.c/1.2/Mon Nov  5 20:15:51 2001/-ko/Tlinux_2_4_20
+/gen_probe.c/1.1/Mon Nov  5 20:15:51 2001/-ko/Tlinux_2_4_20
+/jedec.c/1.3.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
+/jedec_probe.c/1.1/Mon Nov  5 20:15:51 2001/-ko/Tlinux_2_4_20
+/map_absent.c/1.1/Mon Nov  5 20:15:51 2001/-ko/Tlinux_2_4_20
+/map_ram.c/1.2/Mon Nov  5 20:15:51 2001/-ko/Tlinux_2_4_20
+/map_rom.c/1.2/Mon Nov  5 20:15:52 2001/-ko/Tlinux_2_4_20
+/sharp.c/1.2.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/mtd/chips/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/mtd/chips/CVS/Repository
--- linux-2.4.20/drivers/mtd/chips/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/chips/CVS/Repository	2005-01-06 23:02:42.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/mtd/chips
diff -urNd -urNd linux-2.4.20/drivers/mtd/chips/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/mtd/chips/CVS/Root
--- linux-2.4.20/drivers/mtd/chips/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/chips/CVS/Root	2005-01-06 23:02:42.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/mtd/chips/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/mtd/chips/CVS/Tag
--- linux-2.4.20/drivers/mtd/chips/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/chips/CVS/Tag	2005-01-06 23:02:43.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/mtd/chips/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/mtd/chips/.cvsignore
--- linux-2.4.20/drivers/mtd/chips/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/chips/.cvsignore	2001-08-23 22:38:40.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/mtd/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/mtd/CVS/Entries
--- linux-2.4.20/drivers/mtd/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/CVS/Entries	2005-01-06 23:08:11.000000000 -0600
@@ -0,0 +1,19 @@
+/.cvsignore/1.1/Sat Jul  8 00:53:05 2000/-ko/Tlinux_2_4_20
+/Config.in/1.8.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
+/Makefile/1.8.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
+/afs.c/1.1.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
+/bootldr.c/1.2/Mon Nov  5 20:15:51 2001/-ko/Tlinux_2_4_20
+/ftl.c/1.9.2.2/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/mtdblock.c/1.12.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
+/mtdblock_ro.c/1.5.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
+/mtdchar.c/1.9/Mon Nov  5 20:15:51 2001/-ko/Tlinux_2_4_20
+/mtdconcat.c/1.1.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
+/mtdcore.c/1.7.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
+/mtdpart.c/1.4.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
+/nftlcore.c/1.5.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
+/nftlmount.c/1.5.2.1/Tue Feb 26 05:59:33 2002/-ko/Tlinux_2_4_20
+/redboot.c/1.3/Sun Dec  2 11:34:42 2001/-ko/Tlinux_2_4_20
+D/chips////
+D/devices////
+D/maps////
+D/nand////
diff -urNd -urNd linux-2.4.20/drivers/mtd/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/mtd/CVS/Repository
--- linux-2.4.20/drivers/mtd/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/CVS/Repository	2005-01-06 23:02:41.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/mtd
diff -urNd -urNd linux-2.4.20/drivers/mtd/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/mtd/CVS/Root
--- linux-2.4.20/drivers/mtd/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/CVS/Root	2005-01-06 23:02:41.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/mtd/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/mtd/CVS/Tag
--- linux-2.4.20/drivers/mtd/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/CVS/Tag	2005-01-06 23:02:42.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/mtd/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/mtd/.cvsignore
--- linux-2.4.20/drivers/mtd/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/.cvsignore	2000-07-07 19:53:05.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/mtd/devices/Config.in linux-2.4.20-mipscvs-20050106/drivers/mtd/devices/Config.in
--- linux-2.4.20/drivers/mtd/devices/Config.in	2002-11-28 17:53:13.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/devices/Config.in	2003-01-16 08:17:34.000000000 -0600
@@ -11,7 +11,7 @@
    bool '    PMC551 Debugging' CONFIG_MTD_PMC551_DEBUG
 fi
 if [ "$CONFIG_DECSTATION" = "y" ]; then
-   dep_tristate '  DEC MS02-NV NVRAM module support' CONFIG_MTD_MS02NV $CONFIG_MTD $CONFIG_DECSTATION
+   dep_tristate '  DEC MS02-NV NVRAM module support' CONFIG_MTD_MS02NV $CONFIG_MTD
 fi
 dep_tristate '  Uncached system RAM' CONFIG_MTD_SLRAM $CONFIG_MTD
 if [ "$CONFIG_SA1100_LART" = "y" ]; then
diff -urNd -urNd linux-2.4.20/drivers/mtd/devices/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/mtd/devices/CVS/Entries
--- linux-2.4.20/drivers/mtd/devices/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/devices/CVS/Entries	2005-01-06 23:02:44.000000000 -0600
@@ -0,0 +1,16 @@
+/.cvsignore/1.1/Fri Aug 24 03:38:40 2001/-ko/Tlinux_2_4_20
+/Config.in/1.2.2.3/Thu Jan 16 14:17:34 2003/-ko/Tlinux_2_4_20
+/Makefile/1.2.2.1/Sat Mar 30 08:15:50 2002/-ko/Tlinux_2_4_20
+/blkmtd.c/1.1.2.2/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
+/doc1000.c/1.2.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
+/doc2000.c/1.2/Mon Nov  5 20:15:52 2001/-ko/Tlinux_2_4_20
+/doc2001.c/1.2/Mon Nov  5 20:15:52 2001/-ko/Tlinux_2_4_20
+/docecc.c/1.4/Mon Nov  5 20:15:52 2001/-ko/Tlinux_2_4_20
+/docprobe.c/1.3.2.1/Mon Sep 23 01:04:02 2002/-ko/Tlinux_2_4_20
+/lart.c/1.1/Mon Nov  5 20:15:52 2001/-ko/Tlinux_2_4_20
+/ms02-nv.c/1.1.2.2/Thu Dec 12 19:08:50 2002/-ko/Tlinux_2_4_20
+/ms02-nv.h/1.1.2.1/Sat Mar 30 08:15:50 2002/-ko/Tlinux_2_4_20
+/mtdram.c/1.2.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
+/pmc551.c/1.2.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
+/slram.c/1.2/Mon Nov  5 20:15:52 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/mtd/devices/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/mtd/devices/CVS/Repository
--- linux-2.4.20/drivers/mtd/devices/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/devices/CVS/Repository	2005-01-06 23:02:43.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/mtd/devices
diff -urNd -urNd linux-2.4.20/drivers/mtd/devices/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/mtd/devices/CVS/Root
--- linux-2.4.20/drivers/mtd/devices/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/devices/CVS/Root	2005-01-06 23:02:43.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/mtd/devices/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/mtd/devices/CVS/Tag
--- linux-2.4.20/drivers/mtd/devices/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/devices/CVS/Tag	2005-01-06 23:02:44.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/mtd/devices/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/mtd/devices/.cvsignore
--- linux-2.4.20/drivers/mtd/devices/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/devices/.cvsignore	2001-08-23 22:38:40.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/mtd/devices/docprobe.c linux-2.4.20-mipscvs-20050106/drivers/mtd/devices/docprobe.c
--- linux-2.4.20/drivers/mtd/devices/docprobe.c	2001-10-04 17:14:59.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/devices/docprobe.c	2002-09-22 20:04:02.000000000 -0500
@@ -88,6 +88,9 @@
 	0xe4000000,
 #elif defined(CONFIG_MOMENCO_OCELOT)
 	0x2f000000,
+	0xff000000,
+#elif defined(CONFIG_MOMENCO_OCELOT_G)
+	0xff000000,
 #else
 #warning Unknown architecture for DiskOnChip. No default probe locations defined
 #endif
diff -urNd -urNd linux-2.4.20/drivers/mtd/devices/ms02-nv.c linux-2.4.20-mipscvs-20050106/drivers/mtd/devices/ms02-nv.c
--- linux-2.4.20/drivers/mtd/devices/ms02-nv.c	2002-11-28 17:53:13.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/devices/ms02-nv.c	2002-12-12 13:08:50.000000000 -0600
@@ -296,6 +296,7 @@
 			stride = 2;
 		break;
 	case MACH_DS5000_2X0:
+	case MACH_DS5900:
 		csr = (volatile u32 *)KN03_MCR_BASE;
 		if (*csr & KN03_MCR_BNK32M)
 			stride = 2;
diff -urNd -urNd linux-2.4.20/drivers/mtd/maps/Config.in linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/Config.in
--- linux-2.4.20/drivers/mtd/maps/Config.in	2002-11-28 17:53:13.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/Config.in	2003-02-16 00:25:24.000000000 -0600
@@ -52,6 +52,11 @@
       bool '  Pb1[015]00 boot flash device' CONFIG_MTD_PB1500_BOOT 
       bool '  Pb1[015]00 user flash device (2nd 32MB bank)' CONFIG_MTD_PB1500_USER
    fi
+   tristate '  Db1x00 MTD support' CONFIG_MTD_DB1X00
+   if [ "$CONFIG_MTD_DB1X00" = "y" -o "$CONFIG_MTD_DB1X00" = "m" ]; then
+      bool '  Db1x00 boot flash device' CONFIG_MTD_DB1X00_BOOT 
+      bool '  Db1x00 user flash device (2nd bank)' CONFIG_MTD_DB1X00_USER
+   fi
    dep_tristate '  Flash chip mapping on ITE QED-4N-S01B, Globespan IVR or custom board' CONFIG_MTD_CSTM_MIPS_IXX $CONFIG_MTD_CFI $CONFIG_MTD_JEDEC $CONFIG_MTD_PARTITIONS 
    if [ "$CONFIG_MTD_CSTM_MIPS_IXX" = "y" -o "$CONFIG_MTD_CSTM_MIPS_IXX" = "m" ]; then
       hex '    Physical start address of flash mapping' CONFIG_MTD_CSTM_MIPS_IXX_START 0x8000000
@@ -59,6 +64,7 @@
       int '    Bus width in octets' CONFIG_MTD_CSTM_MIPS_IXX_BUSWIDTH 2
    fi
    dep_tristate '  Momenco Ocelot boot flash device' CONFIG_MTD_OCELOT $CONFIG_MOMENCO_OCELOT
+   dep_tristate '  LASAT flash device' CONFIG_MTD_LASAT $CONFIG_MTD_CFI $CONFIG_LASAT
 fi
 
 if [ "$CONFIG_SUPERH" = "y" ]; then
diff -urNd -urNd linux-2.4.20/drivers/mtd/maps/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/CVS/Entries
--- linux-2.4.20/drivers/mtd/maps/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/CVS/Entries	2005-01-06 23:02:45.000000000 -0600
@@ -0,0 +1,38 @@
+/.cvsignore/1.1/Fri Aug 24 03:38:40 2001/-ko/Tlinux_2_4_20
+/Config.in/1.3.2.6/Sun Feb 16 06:25:24 2003/-ko/Tlinux_2_4_20
+/Makefile/1.2.2.6/Sun Feb 16 06:25:24 2003/-ko/Tlinux_2_4_20
+/amd766rom.c/1.1.2.1/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
+/autcpu12-nvram.c/1.1.2.1/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
+/cdb89712.c/1.1/Mon Nov  5 20:15:52 2001/-ko/Tlinux_2_4_20
+/cfi_flagadm.c/1.2/Mon Nov  5 20:15:52 2001/-ko/Tlinux_2_4_20
+/cstm_mips_ixx.c/1.2/Mon Nov  5 20:15:52 2001/-ko/Tlinux_2_4_20
+/db1x00-flash.c/1.1.2.1/Sun Feb 16 06:25:24 2003/-ko/Tlinux_2_4_20
+/dbox2-flash.c/1.2/Mon Nov  5 20:15:52 2001/-ko/Tlinux_2_4_20
+/dc21285.c/1.2.2.1/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
+/dilnetpc.c/1.1.2.1/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
+/elan-104nc.c/1.2.2.2/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
+/epxa10db-flash.c/1.1.2.1/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
+/ich2rom.c/1.1.2.1/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
+/integrator-flash.c/1.1.2.1/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
+/iq80310.c/1.2.2.1/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
+/l440gx.c/1.1.2.1/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
+/lasat.c/1.1.2.3/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
+/mbx860.c/1.1.2.1/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
+/netsc520.c/1.2/Mon Nov  5 20:15:52 2001/-ko/Tlinux_2_4_20
+/nora.c/1.2/Mon Nov  5 20:15:52 2001/-ko/Tlinux_2_4_20
+/ocelot.c/1.2/Mon Nov  5 20:15:52 2001/-ko/Tlinux_2_4_20
+/octagon-5066.c/1.2/Mon Nov  5 20:15:52 2001/-ko/Tlinux_2_4_20
+/pb1xxx-flash.c/1.1.2.3/Sun Jul 14 21:20:58 2002/-ko/Tlinux_2_4_20
+/pci.c/1.1.2.2/Tue Sep 10 15:32:50 2002/-ko/Tlinux_2_4_20
+/physmap.c/1.2/Mon Nov  5 20:15:52 2001/-ko/Tlinux_2_4_20
+/pnc2000.c/1.2/Mon Nov  5 20:15:52 2001/-ko/Tlinux_2_4_20
+/rpxlite.c/1.2/Mon Nov  5 20:15:52 2001/-ko/Tlinux_2_4_20
+/sa1100-flash.c/1.2.2.1/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
+/sbc_gxx.c/1.2.2.2/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
+/sc520cdp.c/1.2.2.1/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
+/solutionengine.c/1.1.2.1/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
+/sun_uflash.c/1.2/Mon Nov  5 20:15:52 2001/-ko/Tlinux_2_4_20
+/tqm8xxl.c/1.1/Mon Nov  5 20:15:52 2001/-ko/Tlinux_2_4_20
+/tsunami_flash.c/1.1.2.1/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
+/vmax301.c/1.2/Mon Nov  5 20:15:52 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/mtd/maps/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/CVS/Repository
--- linux-2.4.20/drivers/mtd/maps/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/CVS/Repository	2005-01-06 23:02:44.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/mtd/maps
diff -urNd -urNd linux-2.4.20/drivers/mtd/maps/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/CVS/Root
--- linux-2.4.20/drivers/mtd/maps/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/CVS/Root	2005-01-06 23:02:44.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/mtd/maps/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/CVS/Tag
--- linux-2.4.20/drivers/mtd/maps/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/CVS/Tag	2005-01-06 23:02:45.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/mtd/maps/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/.cvsignore
--- linux-2.4.20/drivers/mtd/maps/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/.cvsignore	2001-08-23 22:38:40.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/mtd/maps/db1x00-flash.c linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/db1x00-flash.c
--- linux-2.4.20/drivers/mtd/maps/db1x00-flash.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/db1x00-flash.c	2003-02-16 00:25:24.000000000 -0600
@@ -0,0 +1,285 @@
+/*
+ * Flash memory access on Alchemy Db1xxx boards
+ * 
+ * (C) 2003 Pete Popov <ppopov@pacbell.net>
+ * 
+ */
+
+#include <linux/config.h>
+#include <linux/module.h>
+#include <linux/types.h>
+#include <linux/kernel.h>
+
+#include <linux/mtd/mtd.h>
+#include <linux/mtd/map.h>
+#include <linux/mtd/partitions.h>
+
+#include <asm/io.h>
+#include <asm/au1000.h>
+#include <asm/db1x00.h>
+
+#ifdef 	DEBUG_RW
+#define	DBG(x...)	printk(x)
+#else
+#define	DBG(x...)	
+#endif
+
+static unsigned long window_addr;
+static unsigned long window_size;
+static unsigned long flash_size;
+
+static BCSR * const bcsr = (BCSR *)0xAE000000;
+
+__u8 physmap_read8(struct map_info *map, unsigned long ofs)
+{
+	__u8 ret;
+	ret = __raw_readb(map->map_priv_1 + ofs);
+	DBG("read8 from %x, %x\n", (unsigned)(map->map_priv_1 + ofs), ret);
+	return ret;
+}
+
+__u16 physmap_read16(struct map_info *map, unsigned long ofs)
+{
+	__u16 ret;
+	ret = __raw_readw(map->map_priv_1 + ofs);
+	DBG("read16 from %x, %x\n", (unsigned)(map->map_priv_1 + ofs), ret);
+	return ret;
+}
+
+__u32 physmap_read32(struct map_info *map, unsigned long ofs)
+{
+	__u32 ret;
+	ret = __raw_readl(map->map_priv_1 + ofs);
+	DBG("read32 from %x, %x\n", (unsigned)(map->map_priv_1 + ofs), ret);
+	return ret;
+}
+
+void physmap_copy_from(struct map_info *map, void *to, unsigned long from, ssize_t len)
+{
+	DBG("physmap_copy from %x to %x\n", (unsigned)from, (unsigned)to);
+	memcpy_fromio(to, map->map_priv_1 + from, len);
+}
+
+void physmap_write8(struct map_info *map, __u8 d, unsigned long adr)
+{
+	DBG("write8 at %x, %x\n", (unsigned)(map->map_priv_1 + adr), d);
+	__raw_writeb(d, map->map_priv_1 + adr);
+	mb();
+}
+
+void physmap_write16(struct map_info *map, __u16 d, unsigned long adr)
+{
+	DBG("write16 at %x, %x\n", (unsigned)(map->map_priv_1 + adr), d);
+	__raw_writew(d, map->map_priv_1 + adr);
+	mb();
+}
+
+void physmap_write32(struct map_info *map, __u32 d, unsigned long adr)
+{
+	DBG("write32 at %x, %x\n", (unsigned)(map->map_priv_1 + adr), d);
+	__raw_writel(d, map->map_priv_1 + adr);
+	mb();
+}
+
+void physmap_copy_to(struct map_info *map, unsigned long to, const void *from, ssize_t len)
+{
+	DBG("physmap_copy_to %x from %x\n", (unsigned)to, (unsigned)from);
+	memcpy_toio(map->map_priv_1 + to, from, len);
+}
+
+static struct map_info db1x00_map = {
+	name:		"Db1x00 flash",
+	read8: physmap_read8,
+	read16: physmap_read16,
+	read32: physmap_read32,
+	copy_from: physmap_copy_from,
+	write8: physmap_write8,
+	write16: physmap_write16,
+	write32: physmap_write32,
+	copy_to: physmap_copy_to,
+};
+
+static unsigned char flash_buswidth = 4;
+
+/* 
+ * The Db1x boards support different flash densities. We setup
+ * the mtd_partition structures below for default of 64Mbit 
+ * flash densities, and override the partitions sizes, if
+ * necessary, after we check the board status register.
+ */
+
+#ifdef DB1X00_BOTH_BANKS
+/* both banks will be used. Combine the first bank and the first 
+ * part of the second bank together into a single jffs/jffs2
+ * partition.
+ */
+static struct mtd_partition db1x00_partitions[] = {
+        {
+                name: "User FS",
+                size:   0x1c00000,
+                offset: 0x0000000
+        },{
+                name: "yamon",
+                size: 0x0100000,
+		offset:	MTDPART_OFS_APPEND,
+                mask_flags: MTD_WRITEABLE
+        },{
+                name: "raw kernel",
+		size: (0x300000-0x40000), /* last 256KB is yamon env */
+		offset:	MTDPART_OFS_APPEND,
+        }
+};
+#elif defined(DB1X00_BOOT_ONLY)
+static struct mtd_partition db1x00_partitions[] = {
+        {
+                name: "User FS",
+                size:   0x00c00000,
+                offset: 0x0000000
+        },{
+                name: "yamon",
+                size: 0x0100000,
+		offset:	MTDPART_OFS_APPEND,
+                mask_flags: MTD_WRITEABLE
+        },{
+                name: "raw kernel",
+		size: (0x300000-0x40000), /* last 256KB is yamon env */
+		offset:	MTDPART_OFS_APPEND,
+        }
+};
+#elif defined(DB1X00_USER_ONLY)
+static struct mtd_partition db1x00_partitions[] = {
+        {
+                name: "User FS",
+                size:   0x0e00000,
+                offset: 0x0000000
+        },{
+                name: "raw kernel",
+		size: MTDPART_SIZ_FULL,
+		offset:	MTDPART_OFS_APPEND,
+        }
+};
+#else
+#error MTD_DB1X00 define combo error /* should never happen */
+#endif
+
+
+#define NB_OF(x)  (sizeof(x)/sizeof(x[0]))
+
+static struct mtd_partition *parsed_parts;
+static struct mtd_info *mymtd;
+
+/*
+ * Probe the flash density and setup window address and size
+ * based on user CONFIG options. There are times when we don't
+ * want the MTD driver to be probing the boot or user flash,
+ * so having the option to enable only one bank is important.
+ */
+int setup_flash_params()
+{
+	switch ((bcsr->status >> 14) & 0x3) {
+		case 0: /* 64Mbit devices */
+			flash_size = 0x800000; /* 8MB per part */
+#if defined(DB1X00_BOTH_BANKS)
+			window_addr = 0x1E000000;
+			window_size = 0x2000000; 
+#elif defined(DB1X00_BOOT_ONLY)
+			window_addr = 0x1F000000;
+			window_size = 0x1000000; 
+#else /* USER ONLY */
+			window_addr = 0x1E000000;
+			window_size = 0x1000000; 
+#endif
+			break;
+		case 1:
+			/* 128 Mbit devices */
+			flash_size = 0x1000000; /* 16MB per part */
+#if defined(DB1X00_BOTH_BANKS)
+			window_addr = 0x1C000000;
+			window_size = 0x4000000;
+			/* USERFS from 0x1C00 0000 to 0x1FC0 0000 */
+			db1x00_partitions[0].size = 0x3C00000;
+#elif defined(DB1X00_BOOT_ONLY)
+			window_addr = 0x1E000000;
+			window_size = 0x2000000;
+			/* USERFS from 0x1E00 0000 to 0x1FC0 0000 */
+			db1x00_partitions[0].size = 0x1C00000;
+#else /* USER ONLY */
+			window_addr = 0x1C000000;
+			window_size = 0x2000000;
+			/* USERFS from 0x1C00 0000 to 0x1DE00000 */
+			db1x00_partitions[0].size = 0x1DE0000;
+#endif
+			break;
+		case 2:
+			/* 256 Mbit devices */
+			flash_size = 0x4000000; /* 64MB per part */
+#if defined(DB1X00_BOTH_BANKS)
+			return 1;
+#elif defined(DB1X00_BOOT_ONLY)
+			/* Boot ROM flash bank only; no user bank */
+			window_addr = 0x1C000000;
+			window_size = 0x4000000;
+			/* USERFS from 0x1C00 0000 to 0x1FC00000 */
+			db1x00_partitions[0].size = 0x3C00000;
+#else /* USER ONLY */
+			return 1;
+#endif
+			break;
+		default:
+			return 1;
+	}
+	return 0;
+}
+
+int __init db1x00_mtd_init(void)
+{
+	struct mtd_partition *parts;
+	int nb_parts = 0;
+	char *part_type;
+	
+	/* Default flash buswidth */
+	db1x00_map.buswidth = flash_buswidth;
+
+	if (setup_flash_params()) 
+		return -ENXIO;
+
+	/*
+	 * Static partition definition selection
+	 */
+	part_type = "static";
+	parts = db1x00_partitions;
+	nb_parts = NB_OF(db1x00_partitions);
+	db1x00_map.size = window_size;
+
+	/*
+	 * Now let's probe for the actual flash.  Do it here since
+	 * specific machine settings might have been set above.
+	 */
+	printk(KERN_NOTICE "Db1xxx flash: probing %d-bit flash bus\n", 
+			db1x00_map.buswidth*8);
+	db1x00_map.map_priv_1 = 
+		(unsigned long)ioremap(window_addr, window_size);
+	mymtd = do_map_probe("cfi_probe", &db1x00_map);
+	if (!mymtd) return -ENXIO;
+	mymtd->module = THIS_MODULE;
+
+	add_mtd_partitions(mymtd, parts, nb_parts);
+	return 0;
+}
+
+static void __exit db1x00_mtd_cleanup(void)
+{
+	if (mymtd) {
+		del_mtd_partitions(mymtd);
+		map_destroy(mymtd);
+		if (parsed_parts)
+			kfree(parsed_parts);
+	}
+}
+
+module_init(db1x00_mtd_init);
+module_exit(db1x00_mtd_cleanup);
+
+MODULE_AUTHOR("Pete Popov");
+MODULE_DESCRIPTION("Db1x00 mtd map driver");
+MODULE_LICENSE("GPL");
diff -urNd -urNd linux-2.4.20/drivers/mtd/maps/lasat.c linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/lasat.c
--- linux-2.4.20/drivers/mtd/maps/lasat.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/lasat.c	2003-02-24 15:26:19.000000000 -0600
@@ -0,0 +1,134 @@
+/*
+ * Flash device on lasat 100 and 200 boards
+ *
+ */
+
+#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/mtd/partitions.h>
+#include <linux/config.h>
+#include <asm/lasat/lasat.h>
+
+static struct mtd_info *mymtd;
+
+static __u8 sp_read8(struct map_info *map, unsigned long ofs)
+{
+	return __raw_readb(map->map_priv_1 + ofs);
+}
+
+static __u16 sp_read16(struct map_info *map, unsigned long ofs)
+{
+	return __raw_readw(map->map_priv_1 + ofs);
+}
+
+static __u32 sp_read32(struct map_info *map, unsigned long ofs)
+{
+	return __raw_readl(map->map_priv_1 + ofs);
+}
+
+static void sp_copy_from(struct map_info *map, void *to, unsigned long from, ssize_t len)
+{
+	memcpy_fromio(to, map->map_priv_1 + from, len);
+}
+
+static void sp_write8(struct map_info *map, __u8 d, unsigned long adr)
+{
+	__raw_writeb(d, map->map_priv_1 + adr);
+	mb();
+}
+
+static void sp_write16(struct map_info *map, __u16 d, unsigned long adr)
+{
+	__raw_writew(d, map->map_priv_1 + adr);
+	mb();
+}
+
+static void sp_write32(struct map_info *map, __u32 d, unsigned long adr)
+{
+	__raw_writel(d, map->map_priv_1 + adr);
+	mb();
+}
+
+static void sp_copy_to(struct map_info *map, unsigned long to, const void *from, ssize_t len)
+{
+	memcpy_toio(map->map_priv_1 + to, from, len);
+}
+
+static struct map_info sp_map = {
+	name: "SP flash",
+	buswidth: 4,
+	read8: sp_read8,
+	read16: sp_read16,
+	read32: sp_read32,
+	copy_from: sp_copy_from,
+	write8: sp_write8,
+	write16: sp_write16,
+	write32: sp_write32,
+	copy_to: sp_copy_to
+};
+
+static struct mtd_partition partition_info[LASAT_MTD_LAST];
+static char *lasat_mtd_partnames[] = {"Bootloader", "Service", "Normal", "Config", "Filesystem"};
+
+static int __init init_sp(void)
+{
+	int i;
+	int nparts = 0;
+	/* this does not play well with the old flash code which 
+	 * protects and uprotects the flash when necessary */
+       	printk(KERN_NOTICE "Unprotecting flash\n");
+	*lasat_misc->flash_wp_reg |= 1 << lasat_misc->flash_wp_bit;
+
+	sp_map.map_priv_1 = lasat_flash_partition_start(LASAT_MTD_BOOTLOADER);
+	sp_map.size = lasat_board_info.li_flash_size;
+
+       	printk(KERN_NOTICE "sp flash device: %lx at %lx\n", 
+			sp_map.size, sp_map.map_priv_1);
+
+	for (i=0; i < LASAT_MTD_LAST; i++)
+		partition_info[i].name = lasat_mtd_partnames[i];
+
+	mymtd = do_map_probe("cfi_probe", &sp_map);
+	if (mymtd) {
+		u32 size, offset = 0;
+
+		mymtd->module = THIS_MODULE;
+
+		for (i=0; i < LASAT_MTD_LAST; i++) {
+			size = lasat_flash_partition_size(i);
+			if (size != 0) {
+				nparts++;
+				partition_info[i].size = size;
+				partition_info[i].offset = offset;
+				offset += size;
+			}
+		}
+
+		add_mtd_partitions( mymtd, partition_info, nparts );
+		return 0;
+	}
+
+	return -ENXIO;
+}
+
+static void __exit cleanup_sp(void)
+{
+	if (mymtd) {
+	  del_mtd_partitions(mymtd);
+	  map_destroy(mymtd);
+	}
+	if (sp_map.map_priv_1) {
+	  sp_map.map_priv_1 = 0;
+	}
+}
+
+module_init(init_sp);
+module_exit(cleanup_sp);
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Brian Murphy <brian@murphy.dk>");
+MODULE_DESCRIPTION("Lasat Safepipe/Masquerade MTD map driver");
diff -urNd -urNd linux-2.4.20/drivers/mtd/maps/Makefile linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/Makefile
--- linux-2.4.20/drivers/mtd/maps/Makefile	2002-11-28 17:53:13.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/Makefile	2003-02-16 00:25:24.000000000 -0600
@@ -39,6 +39,8 @@
 obj-$(CONFIG_MTD_PB1000)        += pb1xxx-flash.o
 obj-$(CONFIG_MTD_PB1100)        += pb1xxx-flash.o
 obj-$(CONFIG_MTD_PB1500)        += pb1xxx-flash.o
+obj-$(CONFIG_MTD_DB1X00)        += db1x00-flash.o
+obj-$(CONFIG_MTD_LASAT)     	+= lasat.o
 obj-$(CONFIG_MTD_AUTCPU12)	+= autcpu12-nvram.o
 
 include $(TOPDIR)/Rules.make
diff -urNd -urNd linux-2.4.20/drivers/mtd/nand/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/mtd/nand/CVS/Entries
--- linux-2.4.20/drivers/mtd/nand/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/nand/CVS/Entries	2005-01-06 23:02:45.000000000 -0600
@@ -0,0 +1,7 @@
+/.cvsignore/1.1/Fri Aug 24 03:38:40 2001/-ko/Tlinux_2_4_20
+/Config.in/1.3/Mon Nov  5 20:15:53 2001/-ko/Tlinux_2_4_20
+/Makefile/1.2/Mon Nov  5 20:15:53 2001/-ko/Tlinux_2_4_20
+/nand.c/1.2/Mon Nov  5 20:15:53 2001/-ko/Tlinux_2_4_20
+/nand_ecc.c/1.1.2.1/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
+/spia.c/1.2.2.1/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/mtd/nand/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/mtd/nand/CVS/Repository
--- linux-2.4.20/drivers/mtd/nand/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/nand/CVS/Repository	2005-01-06 23:02:45.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/mtd/nand
diff -urNd -urNd linux-2.4.20/drivers/mtd/nand/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/mtd/nand/CVS/Root
--- linux-2.4.20/drivers/mtd/nand/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/nand/CVS/Root	2005-01-06 23:02:45.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/mtd/nand/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/mtd/nand/CVS/Tag
--- linux-2.4.20/drivers/mtd/nand/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/nand/CVS/Tag	2005-01-06 23:02:45.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/mtd/nand/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/mtd/nand/.cvsignore
--- linux-2.4.20/drivers/mtd/nand/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/nand/.cvsignore	2001-08-23 22:38:40.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/net/appletalk/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/appletalk/CVS/Entries
--- linux-2.4.20/drivers/net/appletalk/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/appletalk/CVS/Entries	2005-01-06 23:03:19.000000000 -0600
@@ -0,0 +1,12 @@
+/.cvsignore/1.1/Tue Mar 14 01:39:27 2000/-ko/Tlinux_2_4_20
+/Config.in/1.3.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/Makefile/1.3/Wed Jan 10 17:18:01 2001/-ko/Tlinux_2_4_20
+/cops.c/1.12/Fri Oct 19 01:24:35 2001/-ko/Tlinux_2_4_20
+/cops.h/1.2/Thu Jun 14 04:24:03 2001/-ko/Tlinux_2_4_20
+/cops_ffdrv.h/1.2/Thu Jun 14 04:24:03 2001/-ko/Tlinux_2_4_20
+/cops_ltdrv.h/1.2/Thu Jun 14 04:24:03 2001/-ko/Tlinux_2_4_20
+/ipddp.c/1.9/Fri Oct 19 01:24:35 2001/-ko/Tlinux_2_4_20
+/ipddp.h/1.1/Sun Mar 12 23:15:38 2000/-ko/Tlinux_2_4_20
+/ltpc.c/1.11/Fri Oct 19 01:24:35 2001/-ko/Tlinux_2_4_20
+/ltpc.h/1.1/Sun Mar 12 23:15:38 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/net/appletalk/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/appletalk/CVS/Repository
--- linux-2.4.20/drivers/net/appletalk/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/appletalk/CVS/Repository	2005-01-06 23:03:19.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/net/appletalk
diff -urNd -urNd linux-2.4.20/drivers/net/appletalk/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/appletalk/CVS/Root
--- linux-2.4.20/drivers/net/appletalk/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/appletalk/CVS/Root	2005-01-06 23:03:19.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/net/appletalk/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/appletalk/CVS/Tag
--- linux-2.4.20/drivers/net/appletalk/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/appletalk/CVS/Tag	2005-01-06 23:03:19.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/net/appletalk/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/appletalk/.cvsignore
--- linux-2.4.20/drivers/net/appletalk/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/appletalk/.cvsignore	2000-03-13 19:39:27.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/net/arcnet/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/arcnet/CVS/Entries
--- linux-2.4.20/drivers/net/arcnet/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/arcnet/CVS/Entries	2005-01-06 23:03:20.000000000 -0600
@@ -0,0 +1,14 @@
+/.cvsignore/1.1/Sat Feb  5 06:47:23 2000/-ko/Tlinux_2_4_20
+/Config.in/1.2/Thu Apr  5 04:56:54 2001/-ko/Tlinux_2_4_20
+/Makefile/1.3/Fri Mar  9 20:34:09 2001/-ko/Tlinux_2_4_20
+/arc-rawmode.c/1.2.2.1/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
+/arc-rimi.c/1.6.2.1/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
+/arcnet.c/1.10.2.2/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
+/com20020-isa.c/1.7.2.1/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
+/com20020-pci.c/1.10.2.2/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
+/com20020.c/1.4.2.1/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
+/com90io.c/1.8.2.2/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
+/com90xx.c/1.8.2.1/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
+/rfc1051.c/1.2.2.1/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
+/rfc1201.c/1.4.2.1/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/net/arcnet/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/arcnet/CVS/Repository
--- linux-2.4.20/drivers/net/arcnet/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/arcnet/CVS/Repository	2005-01-06 23:03:19.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/net/arcnet
diff -urNd -urNd linux-2.4.20/drivers/net/arcnet/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/arcnet/CVS/Root
--- linux-2.4.20/drivers/net/arcnet/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/arcnet/CVS/Root	2005-01-06 23:03:19.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/net/arcnet/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/arcnet/CVS/Tag
--- linux-2.4.20/drivers/net/arcnet/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/arcnet/CVS/Tag	2005-01-06 23:03:20.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/net/arcnet/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/arcnet/.cvsignore
--- linux-2.4.20/drivers/net/arcnet/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/arcnet/.cvsignore	2000-02-05 00:47:23.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/net/au1000_eth.c linux-2.4.20-mipscvs-20050106/drivers/net/au1000_eth.c
--- linux-2.4.20/drivers/net/au1000_eth.c	2002-11-28 17:53:13.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/au1000_eth.c	2002-12-11 00:12:30.000000000 -0600
@@ -1,8 +1,9 @@
 /*
  *
- * Alchemy Semi Au1000 ethernet driver
+ * Alchemy Au1x00 ethernet driver
  *
- * Copyright 2001 MontaVista Software Inc.
+ * Copyright 2001,2002 MontaVista Software Inc.
+ * Copyright 2002 TimeSys Corp.
  * Author: MontaVista Software, Inc.
  *         	ppopov@mvista.com or source@mvista.com
  *
@@ -22,8 +23,15 @@
  *  59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
  *
  * ########################################################################
+ *
+ * 
  */
-#include <linux/config.h>
+
+#ifndef __mips__
+#error This driver only works with MIPS architectures!
+#endif
+
+
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
@@ -104,24 +112,26 @@
 /*
  * Base address and interupt of the Au1xxx ethernet macs
  */
-static struct {
+static struct au1if {
 	unsigned int port;
 	int irq;
-} au1000_iflist[NUM_INTERFACES] = {
+} au1x00_iflist[] = {
+#if defined(CONFIG_CPU_AU1000)
 		{AU1000_ETH0_BASE, AU1000_ETH0_IRQ}, 
 		{AU1000_ETH1_BASE, AU1000_ETH1_IRQ}
-	},
-  au1500_iflist[NUM_INTERFACES] = {
+#elif defined(CONFIG_CPU_AU1500)
 		{AU1500_ETH0_BASE, AU1000_ETH0_IRQ}, 
 		{AU1500_ETH1_BASE, AU1000_ETH1_IRQ}
-	},
-  au1100_iflist[NUM_INTERFACES] = {
+#elif defined(CONFIG_CPU_AU1100)
 		{AU1000_ETH0_BASE, AU1000_ETH0_IRQ}, 
-		{NULL, NULL}
+#else
+#error "Unsupported Au1x00 CPU"
+#endif
 	};
+#define NUM_INTERFACES (sizeof(au1x00_iflist) / sizeof(struct au1if))
 
 static char version[] __devinitdata =
-    "au1000eth.c:1.0 ppopov@mvista.com\n";
+    "au1000eth.c:1.1 ppopov@mvista.com\n";
 
 /* These addresses are only used if yamon doesn't tell us what
  * the mac address is, and the mac address is not passed on the
@@ -171,11 +181,6 @@
 	data |= MII_CNTL_RST_AUTO | MII_CNTL_AUTO;
 	mdio_write(dev, phy_addr, MII_CONTROL, data);
 
-	/* Enable TX LED instead of FDX */
-	data = mdio_read(dev, phy_addr, MII_INT);
-	data &= ~MII_FDX_LED;
-	mdio_write(dev, phy_addr, MII_INT, data);
-
 	if (au1000_debug > 4) dump_mii(dev, phy_addr);
 	return 0;
 }
@@ -342,6 +347,98 @@
 	return 0;
 }
 
+int am79c874_init(struct net_device *dev, int phy_addr)
+{
+	s16 data;
+
+	/* 79c874 has quit resembled bit assignments to BCM5201 */
+	if (au1000_debug > 4)
+		printk("am79c847_init\n");
+
+	/* Stop auto-negotiation */
+	data = mdio_read(dev, phy_addr, MII_CONTROL);
+	mdio_write(dev, phy_addr, MII_CONTROL, data & ~MII_CNTL_AUTO);
+
+	/* Set advertisement to 10/100 and Half/Full duplex
+	 * (full capabilities) */
+	data = mdio_read(dev, phy_addr, MII_ANADV);
+	data |= MII_NWAY_TX | MII_NWAY_TX_FDX | MII_NWAY_T_FDX | MII_NWAY_T;
+	mdio_write(dev, phy_addr, MII_ANADV, data);
+	
+	/* Restart auto-negotiation */
+	data = mdio_read(dev, phy_addr, MII_CONTROL);
+	data |= MII_CNTL_RST_AUTO | MII_CNTL_AUTO;
+	mdio_write(dev, phy_addr, MII_CONTROL, data);
+
+	if (au1000_debug > 4) dump_mii(dev, phy_addr);
+	return 0;
+}
+
+int am79c874_reset(struct net_device *dev, int phy_addr)
+{
+	s16 mii_control, timeout;
+	
+	if (au1000_debug > 4)
+		printk("am79c874_reset\n");
+
+	mii_control = mdio_read(dev, phy_addr, MII_CONTROL);
+	mdio_write(dev, phy_addr, MII_CONTROL, mii_control | MII_CNTL_RESET);
+	mdelay(1);
+	for (timeout = 100; timeout > 0; --timeout) {
+		mii_control = mdio_read(dev, phy_addr, MII_CONTROL);
+		if ((mii_control & MII_CNTL_RESET) == 0)
+			break;
+		mdelay(1);
+	}
+	if (mii_control & MII_CNTL_RESET) {
+		printk(KERN_ERR "%s PHY reset timeout !\n", dev->name);
+		return -1;
+	}
+	return 0;
+}
+
+int 
+am79c874_status(struct net_device *dev, int phy_addr, u16 *link, u16 *speed)
+{
+	u16 mii_data;
+	struct au1000_private *aup;
+
+	// printk("am79c874_status\n");
+	if (!dev) {
+		printk(KERN_ERR "am79c874_status error: NULL dev\n");
+		return -1;
+	}
+
+	aup = (struct au1000_private *) dev->priv;
+	mii_data = mdio_read(dev, aup->phy_addr, MII_STATUS);
+
+	if (mii_data & MII_STAT_LINK) {
+		*link = 1;
+		mii_data = mdio_read(dev, aup->phy_addr, MII_AUX_CNTRL);
+		if (mii_data & MII_AUX_100) {
+			if (mii_data & MII_AUX_FDX) {
+				*speed = IF_PORT_100BASEFX;
+				dev->if_port = IF_PORT_100BASEFX;
+			}
+			else {
+				*speed = IF_PORT_100BASETX;
+				dev->if_port = IF_PORT_100BASETX;
+			}
+		}
+		else  {
+			*speed = IF_PORT_10BASET;
+			dev->if_port = IF_PORT_10BASET;
+		}
+
+	}
+	else {
+		*link = 0;
+		*speed = 0;
+		dev->if_port = IF_PORT_UNKNOWN;
+	}
+	return 0;
+}
+
 struct phy_ops bcm_5201_ops = {
 	bcm_5201_init,
 	bcm_5201_reset,
@@ -354,6 +451,12 @@
 	am79c901_status,
 };
 
+struct phy_ops am79c874_ops = {
+	am79c874_init,
+	am79c874_reset,
+	am79c874_status,
+};
+
 struct phy_ops lsi_80227_ops = { 
 	lsi_80227_init,
 	lsi_80227_reset,
@@ -367,9 +470,10 @@
 	struct phy_ops *phy_ops;	
 } mii_chip_table[] = {
 	{"Broadcom BCM5201 10/100 BaseT PHY",  0x0040, 0x6212, &bcm_5201_ops },
+	{"Broadcom BCM5221 10/100 BaseT PHY",  0x0040, 0x61e4, &bcm_5201_ops },
 	{"AMD 79C901 HomePNA PHY",  0x0000, 0x35c8, &am79c901_ops },
+	{"AMD 79C874 10/100 BaseT PHY",  0x0022, 0x561b, &am79c874_ops },
 	{"LSI 80227 10/100 BaseT PHY", 0x0016, 0xf840, &lsi_80227_ops },
-	{"Broadcom BCM5221 10/100 BaseT PHY",  0x0040, 0x61e4, &bcm_5201_ops },
 	{0,},
 };
 
@@ -629,31 +733,15 @@
 static int __init au1000_init_module(void)
 {
 	int i;
-	int prid;
 	int base_addr, irq;
 
-	prid = read_32bit_cp0_register(CP0_PRID);
 	for (i=0; i<NUM_INTERFACES; i++) {
-		if ( (prid & 0xffff0000) == 0x00030000 ) {
-			base_addr = au1000_iflist[i].port;
-			irq = au1000_iflist[i].irq;
-		} else if ( (prid & 0xffff0000) == 0x01030000 ) {
-			base_addr = au1500_iflist[i].port;
-			irq = au1500_iflist[i].irq;
-		} else if ( (prid & 0xffff0000) == 0x02030000 ) {
-			base_addr = au1100_iflist[i].port;
-			irq = au1100_iflist[i].irq;
-		} else {
-			printk(KERN_ERR "au1000 eth: unknown Processor ID\n");
-			return -ENODEV;
-		}
-		// check for valid entries, au1100 only has one entry
-		if (base_addr && irq) {
+		base_addr = au1x00_iflist[i].port;
+		irq = au1x00_iflist[i].irq;
 		if (au1000_probe1(NULL, base_addr, irq, i) != 0) {
 			return -ENODEV;
 		}
 	}
-	}
 	return 0;
 }
 
@@ -667,7 +755,7 @@
 	char *pmac, *argptr;
 	char ethaddr[6];
 
-	if (!request_region(ioaddr, MAC_IOSIZE, "Au1000 ENET")) {
+	if (!request_region(ioaddr, MAC_IOSIZE, "Au1x00 ENET")) {
 		 return -ENODEV;
 	}
 
@@ -828,9 +916,9 @@
 				MAX_BUF_SIZE * (NUM_TX_BUFFS+NUM_RX_BUFFS));
 	if (dev->priv != NULL)
 		kfree(dev->priv);
+	kfree(dev);
 	printk(KERN_ERR "%s: au1000_probe1 failed.  Returns %d\n",
 	       dev->name, retval);
-	kfree(dev);
 	return retval;
 }
 
@@ -1250,6 +1338,8 @@
 	printk(KERN_ERR "%s: au1000_tx_timeout: dev=%p\n", dev->name, dev);
 	reset_mac(dev);
 	au1000_init(dev);
+	dev->trans_start = jiffies;
+	netif_wake_queue(dev);
 }
 
 
@@ -1308,24 +1398,16 @@
 	u16 *data = (u16 *)&rq->ifr_data;
 
 	/* fixme */
-	switch (cmd) { 
-	case SIOCGMIIPHY:		/* Get the address of the PHY in use. */
-	case SIOCDEVPRIVATE:		/* binary compat, remove in 2.5 */
+	switch(cmd) { 
+		case SIOCDEVPRIVATE:	/* Get the address of the PHY in use. */
 		data[0] = PHY_ADDRESS;
-
-	case SIOCGMIIREG:		/* Read the specified MII register. */
-	case SIOCDEVPRIVATE+1:		/* binary compat, remove in 2.5 */
+		case SIOCDEVPRIVATE+1:	/* Read the specified MII register. */
 		//data[3] = mdio_read(ioaddr, data[0], data[1]); 
 		return 0;
-
-	case SIOCSMIIREG:		/* Write the specified MII register */
-	case SIOCDEVPRIVATE+2:		/* binary compat, remove in 2.5 */
-		if (!capable(CAP_NET_ADMIN))
-			return -EPERM;
+		case SIOCDEVPRIVATE+2:	/* Write the specified MII register */
 		//mdio_write(ioaddr, data[0], data[1], data[2]);
 		return 0;
-
-	default:
+		default:
 		return -EOPNOTSUPP;
 	}
 }
@@ -1389,7 +1471,6 @@
 			/* set Speed to 100Mbps, Half Duplex */
 			/* disable auto negotiation and enable 100MBit Mode */
 			control = mdio_read(dev, aup->phy_addr, MII_CONTROL);
-			printk("read control %x\n", control);
 			control &= ~(MII_CNTL_AUTO | MII_CNTL_FDX);
 			control |= MII_CNTL_F100;
 			mdio_write(dev, aup->phy_addr, MII_CONTROL, control);
diff -urNd -urNd linux-2.4.20/drivers/net/au1000_eth.h linux-2.4.20-mipscvs-20050106/drivers/net/au1000_eth.h
--- linux-2.4.20/drivers/net/au1000_eth.h	2002-11-28 17:53:13.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/au1000_eth.h	2002-12-11 00:12:30.000000000 -0600
@@ -1,10 +1,13 @@
 /*
- * Alchemy Semi Au1000 ethernet driver include file
+ *
+ * Alchemy Au1x00 ethernet driver include file
  *
  * Author: Pete Popov <ppopov@mvista.com>
  *
  * Copyright 2001 MontaVista Software Inc.
  *
+ * ########################################################################
+ *
  *  This program is free software; you can distribute it and/or modify it
  *  under the terms of the GNU General Public License (Version 2) as
  *  published by the Free Software Foundation.
@@ -17,14 +20,16 @@
  *  You should have received a copy of the GNU General Public License along
  *  with this program; if not, write to the Free Software Foundation, Inc.,
  *  59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
+ *
+ * ########################################################################
+ *
+ * 
  */
-#include <linux/config.h>
 
 
-#define NUM_INTERFACES 2
 #define MAC_IOSIZE 0x10000
-#define NUM_RX_DMA 4       /* Au1000 has 4 rx hardware descriptors */
-#define NUM_TX_DMA 4       /* Au1000 has 4 tx hardware descriptors */
+#define NUM_RX_DMA 4       /* Au1x00 has 4 rx hardware descriptors */
+#define NUM_TX_DMA 4       /* Au1x00 has 4 tx hardware descriptors */
 
 #define NUM_RX_BUFFS 4
 #define NUM_TX_BUFFS 4
@@ -33,7 +38,7 @@
 #define ETH_TX_TIMEOUT HZ/4
 #define MAC_MIN_PKT_SIZE 64
 
-#if defined(CONFIG_MIPS_PB1000) || defined(CONFIG_MIPS_PB1500) || defined(CONFIG_MIPS_PB1100)
+#if defined(CONFIG_MIPS_PB1000) || defined(CONFIG_MIPS_PB1500) || defined(CONFIG_MIPS_PB1100) || defined(CONFIG_MIPS_DB1000) || defined(CONFIG_MIPS_DB1100) || defined(CONFIG_MIPS_DB1500)
 #define PHY_ADDRESS              0
 #define PHY_CONTROL_DEFAULT 0x3000
 #define PHY_CONTROL_REG_ADDR     0
@@ -57,7 +62,6 @@
 #define MII_LSI_CONFIG 0x0011
 #define MII_LSI_STAT   0x0012
 #define MII_AUX_CNTRL  0x0018
-#define MII_INT        0x001A
 
 /* mii registers specific to AMD 79C901 */
 #define	MII_STATUS_SUMMARY = 0x0018
@@ -122,7 +126,6 @@
 #define MII_STSSUM_SPD   0x0001
 
 /* lsi status register */
-
 #define MII_LSI_STAT_FDX	0x0040
 #define MII_LSI_STAT_SPD	0x0080
 
@@ -131,7 +134,6 @@
 #define MII_AUX_100      0x0002
 #define MII_AUX_F100     0x0004
 #define MII_AUX_ANEG     0x0008
-#define MII_FDX_LED	 0x8000
 
 typedef struct mii_phy {
 	struct mii_phy * next;
diff -urNd -urNd linux-2.4.20/drivers/net/Config.in linux-2.4.20-mipscvs-20050106/drivers/net/Config.in
--- linux-2.4.20/drivers/net/Config.in	2002-11-28 17:53:13.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/Config.in	2003-01-11 11:53:13.000000000 -0600
@@ -58,8 +58,8 @@
    if [ "$CONFIG_MIPS_GT96100" = "y" ]; then
       bool '  MIPS GT96100 Ethernet support' CONFIG_MIPS_GT96100ETH
    fi
-   if [ "$CONFIG_MIPS_AU1000" = "y" ]; then
-      bool '  MIPS AU1000 Ethernet support' CONFIG_MIPS_AU1000_ENET
+   if [ "$CONFIG_CPU_AU1X00" = "y" ]; then
+      bool '  MIPS Au1x00 Ethernet support' CONFIG_MIPS_AU1X00_ENET
    fi
    if [ "$CONFIG_SIBYTE_SB1250" = "y" ]; then
       tristate '  SB1250 Ethernet support' CONFIG_NET_SB1250_MAC
diff -urNd -urNd linux-2.4.20/drivers/net/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/CVS/Entries
--- linux-2.4.20/drivers/net/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/CVS/Entries	2005-01-06 23:08:11.000000000 -0600
@@ -0,0 +1,238 @@
+/.cvsignore/1.2/Tue Mar 17 22:10:43 1998/-ko/Tlinux_2_4_20
+/3c501.c/1.17.2.2/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
+/3c503.c/1.22.2.3/Wed Sep 11 12:45:03 2002/-ko/Tlinux_2_4_20
+/3c503.h/1.1.1.1/Sun Jun  1 03:17:21 1997/-ko/Tlinux_2_4_20
+/3c505.c/1.25.2.2/Wed Sep 11 12:45:03 2002/-ko/Tlinux_2_4_20
+/3c505.h/1.4/Wed Jan 10 05:27:30 2001/-ko/Tlinux_2_4_20
+/3c507.c/1.19.2.1/Tue Feb 26 05:59:33 2002/-ko/Tlinux_2_4_20
+/3c509.c/1.28.2.4/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/3c515.c/1.22.2.1/Tue Feb 26 05:59:33 2002/-ko/Tlinux_2_4_20
+/3c523.c/1.20.2.1/Tue Feb 26 05:59:34 2002/-ko/Tlinux_2_4_20
+/3c523.h/1.4/Thu Apr  5 04:56:53 2001/-ko/Tlinux_2_4_20
+/3c527.c/1.16.2.1/Tue Feb 26 05:59:34 2002/-ko/Tlinux_2_4_20
+/3c527.h/1.3/Thu Apr  5 04:56:53 2001/-ko/Tlinux_2_4_20
+/3c59x.c/1.36.2.2/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/7990.c/1.4.2.2/Wed Sep 11 12:45:03 2002/-ko/Tlinux_2_4_20
+/7990.h/1.3.2.1/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
+/8139cp.c/1.3.2.5/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/8139too.c/1.24.2.6/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/82596.c/1.19.2.1/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
+/8390.c/1.27.2.1/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
+/8390.h/1.12.2.1/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
+/Config.in/1.72.2.9/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/LICENSE.SRC/1.2/Fri Mar  9 20:34:06 2001/-ko/Tlinux_2_4_20
+/Makefile/1.61.2.5/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/Space.c/1.45.2.1/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
+/a2065.c/1.15.2.1/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
+/a2065.h/1.3.4.1/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
+/ac3200.c/1.20.2.1/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
+/acenic.c/1.30.2.4/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/acenic.h/1.16.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/acenic_firmware.h/1.12/Thu Jun 14 04:24:02 2001/-ko/Tlinux_2_4_20
+/aironet4500.h/1.9.2.1/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
+/aironet4500_card.c/1.15/Mon Nov  5 20:15:54 2001/-ko/Tlinux_2_4_20
+/aironet4500_core.c/1.15/Mon Nov  5 20:15:54 2001/-ko/Tlinux_2_4_20
+/aironet4500_proc.c/1.9/Mon Nov  5 20:15:54 2001/-ko/Tlinux_2_4_20
+/aironet4500_rid.c/1.3.4.1/Wed Sep 11 12:45:03 2002/-ko/Tlinux_2_4_20
+/am79c961a.c/1.13.2.1/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
+/am79c961a.h/1.6/Thu Oct  5 01:18:54 2000/-ko/Tlinux_2_4_20
+/apne.c/1.10.2.1/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
+/ariadne.c/1.14.2.1/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
+/ariadne.h/1.3/Fri Feb 18 00:24:35 2000/-ko/Tlinux_2_4_20
+/ariadne2.c/1.10.2.1/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
+/arlan-proc.c/1.8/Mon Nov  5 20:15:54 2001/-ko/Tlinux_2_4_20
+/arlan.c/1.19.2.1/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
+/arlan.h/1.8/Thu Apr  5 04:56:53 2001/-ko/Tlinux_2_4_20
+/at1700.c/1.19.2.2/Wed Sep 11 12:45:03 2002/-ko/Tlinux_2_4_20
+/atari_bionet.c/1.12/Tue Nov  6 00:55:07 2001/-ko/Tlinux_2_4_20
+/atari_pamsnet.c/1.12/Tue Nov  6 00:55:07 2001/-ko/Tlinux_2_4_20
+/atarilance.c/1.11.2.1/Wed Sep 11 12:45:03 2002/-ko/Tlinux_2_4_20
+/atp.c/1.18.2.1/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
+/atp.h/1.4/Thu Oct  5 01:18:54 2000/-ko/Tlinux_2_4_20
+/au1000_eth.c/1.5.2.14/Wed Dec 11 06:12:30 2002/-ko/Tlinux_2_4_20
+/au1000_eth.h/1.2.2.7/Wed Dec 11 06:12:30 2002/-ko/Tlinux_2_4_20
+/auto_irq.c/1.4/Thu Aug 23 22:24:33 2001/-ko/Tlinux_2_4_20
+/bagetlance.c/1.8/Tue Nov  6 00:55:07 2001/-ko/Tlinux_2_4_20
+/bmac.c/1.16.2.2/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
+/bmac.h/1.1/Tue Aug 25 09:17:27 1998/-ko/Tlinux_2_4_20
+/bonding.c/1.9.2.5/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/bsd_comp.c/1.10/Sun Dec  2 11:34:43 2001/-ko/Tlinux_2_4_20
+/cs89x0.c/1.23.2.2/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
+/cs89x0.h/1.4.4.2/Wed Sep 11 12:45:03 2002/-ko/Tlinux_2_4_20
+/daynaport.c/1.11.2.1/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
+/de4x5.c/1.27.2.3/Tue Aug 20 13:34:56 2002/-ko/Tlinux_2_4_20
+/de4x5.h/1.8/Thu Apr  5 04:56:53 2001/-ko/Tlinux_2_4_20
+/de600.c/1.18.2.1/Wed Sep 11 12:45:03 2002/-ko/Tlinux_2_4_20
+/de620.c/1.16.2.1/Wed Jun 26 22:35:52 2002/-ko/Tlinux_2_4_20
+/de620.h/1.1.1.1/Sun Jun  1 03:17:22 1997/-ko/Tlinux_2_4_20
+/declance.c/1.12.2.8/Thu Jan 30 14:25:16 2003/-ko/Tlinux_2_4_20
+/defxx.c/1.23.2.1/Sat Dec 29 05:38:04 2001/-ko/Tlinux_2_4_20
+/defxx.h/1.8/Fri Mar  9 20:34:07 2001/-ko/Tlinux_2_4_20
+/depca.c/1.19.2.2/Wed Sep 11 12:45:03 2002/-ko/Tlinux_2_4_20
+/depca.h/1.2/Fri Mar  9 20:34:07 2001/-ko/Tlinux_2_4_20
+/dgrs.c/1.23.2.1/Wed Jun 26 22:35:52 2002/-ko/Tlinux_2_4_20
+/dgrs.h/1.1.1.1/Sun Jun  1 03:17:22 1997/-ko/Tlinux_2_4_20
+/dgrs_asstruct.h/1.2/Mon Dec  1 17:59:36 1997/-ko/Tlinux_2_4_20
+/dgrs_bcomm.h/1.1.1.1/Sun Jun  1 03:17:23 1997/-ko/Tlinux_2_4_20
+/dgrs_es4h.h/1.2/Mon Dec  1 17:59:36 1997/-ko/Tlinux_2_4_20
+/dgrs_ether.h/1.1.1.1/Sun Jun  1 03:17:25 1997/-ko/Tlinux_2_4_20
+/dgrs_firmware.c/1.2/Thu Apr  5 04:56:53 2001/-ko/Tlinux_2_4_20
+/dgrs_i82596.h/1.3/Mon Feb 15 02:18:33 1999/-ko/Tlinux_2_4_20
+/dgrs_plx9060.h/1.1.1.1/Sun Jun  1 03:17:24 1997/-ko/Tlinux_2_4_20
+/dl2k.c/1.4.2.5/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/dl2k.h/1.3.2.3/Wed Sep 11 12:45:03 2002/-ko/Tlinux_2_4_20
+/dmfe.c/1.21.2.2/Wed Jun 26 22:35:52 2002/-ko/Tlinux_2_4_20
+/dummy.c/1.12/Mon Nov  5 20:15:55 2001/-ko/Tlinux_2_4_20
+/e2100.c/1.18.2.2/Wed Sep 11 12:45:03 2002/-ko/Tlinux_2_4_20
+/eepro.c/1.25.2.1/Wed Sep 11 12:45:04 2002/-ko/Tlinux_2_4_20
+/eepro100.c/1.39.2.5/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/eexpress.c/1.22.2.2/Wed Sep 11 12:45:04 2002/-ko/Tlinux_2_4_20
+/eexpress.h/1.2/Tue Dec 16 05:35:32 1997/-ko/Tlinux_2_4_20
+/epic100.c/1.23.2.5/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/eql.c/1.19/Mon Nov  5 20:15:55 2001/-ko/Tlinux_2_4_20
+/es3210.c/1.17.2.1/Wed Jun 26 22:35:52 2002/-ko/Tlinux_2_4_20
+/eth16i.c/1.22/Mon Nov  5 20:15:55 2001/-ko/Tlinux_2_4_20
+/ethertap.c/1.14/Mon Nov  5 20:15:55 2001/-ko/Tlinux_2_4_20
+/ewrk3.c/1.19.2.4/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
+/ewrk3.h/1.2/Fri Mar  9 20:34:08 2001/-ko/Tlinux_2_4_20
+/fealnx.c/1.5.2.4/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/fmv18x.c/1.17/Tue Nov  6 00:55:07 2001/-ko/Tlinux_2_4_20
+/gmac.c/1.12.2.3/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/gmac.h/1.5/Fri Oct 19 01:24:34 2001/-ko/Tlinux_2_4_20
+/gt96100eth.c/1.6.2.4/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/gt96100eth.h/1.3.2.2/Wed May 29 03:03:18 2002/-ko/Tlinux_2_4_20
+/hamachi.c/1.10.2.2/Wed Sep 11 12:45:04 2002/-ko/Tlinux_2_4_20
+/hp-plus.c/1.19.2.2/Wed Sep 11 12:45:04 2002/-ko/Tlinux_2_4_20
+/hp.c/1.18.2.1/Wed Jun 26 22:35:52 2002/-ko/Tlinux_2_4_20
+/hp100.c/1.23.2.2/Wed Sep 11 12:45:04 2002/-ko/Tlinux_2_4_20
+/hp100.h/1.6/Thu Jun 14 04:24:03 2001/-ko/Tlinux_2_4_20
+/hplance.c/1.9.2.1/Wed Sep 11 12:45:04 2002/-ko/Tlinux_2_4_20
+/hplance.h/1.1/Tue Aug 25 09:17:35 1998/-ko/Tlinux_2_4_20
+/hydra.c/1.14.2.1/Wed Jun 26 22:35:52 2002/-ko/Tlinux_2_4_20
+/hydra.h/1.1.1.1/Sun Jun  1 03:17:21 1997/-ko/Tlinux_2_4_20
+/i82586.h/1.2/Fri Mar  9 20:34:08 2001/-ko/Tlinux_2_4_20
+/ibmlana.c/1.8/Tue Nov  6 00:55:07 2001/-ko/Tlinux_2_4_20
+/ibmlana.h/1.3/Thu Apr  5 04:56:53 2001/-ko/Tlinux_2_4_20
+/ioc3-eth.c/1.56.2.8/Thu Jan  2 13:58:06 2003/-ko/Tlinux_2_4_20
+/isa-skeleton.c/1.6/Tue Nov  6 00:55:08 2001/-ko/Tlinux_2_4_20
+/jazzsonic.c/1.7/Tue Jul 24 01:03:27 2001/-ko/Tlinux_2_4_20
+/lance.c/1.25.2.1/Wed Jun 26 22:35:52 2002/-ko/Tlinux_2_4_20
+/lasi_82596.c/1.6.2.1/Wed Sep 11 12:45:04 2002/-ko/Tlinux_2_4_20
+/lne390.c/1.15.2.1/Wed Jun 26 22:35:52 2002/-ko/Tlinux_2_4_20
+/loopback.c/1.11/Thu Aug 23 22:24:33 2001/-ko/Tlinux_2_4_20
+/lp486e.c/1.3/Mon Nov  5 20:15:56 2001/-ko/Tlinux_2_4_20
+/mac89x0.c/1.8.2.1/Wed Sep 11 12:45:04 2002/-ko/Tlinux_2_4_20
+/mace.c/1.19.2.2/Wed Jun 26 22:35:52 2002/-ko/Tlinux_2_4_20
+/mace.h/1.2/Thu May  7 03:00:09 1998/-ko/Tlinux_2_4_20
+/macmace.c/1.4.2.2/Wed Sep 11 12:45:05 2002/-ko/Tlinux_2_4_20
+/macsonic.c/1.8.2.2/Wed Sep 11 12:45:05 2002/-ko/Tlinux_2_4_20
+/meth.c/1.1.2.3/Mon Jul  1 20:01:26 2002/-ko/Tlinux_2_4_20
+/meth.h/1.1.2.1/Mon Jul  1 20:01:26 2002/-ko/Tlinux_2_4_20
+/mii.c/1.1.2.3/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/mvme147.c/1.6/Tue Nov  6 00:55:09 2001/-ko/Tlinux_2_4_20
+/myri_code.h/1.1.1.1.8.1/Tue Feb 26 05:59:35 2002/-ko/Tlinux_2_4_20
+/myri_sbus.c/1.19.2.1/Wed Jun 26 22:35:52 2002/-ko/Tlinux_2_4_20
+/myri_sbus.h/1.4/Sat Feb  5 06:47:23 2000/-ko/Tlinux_2_4_20
+/natsemi.c/1.14.2.6/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/ne.c/1.26.2.1/Wed Jun 26 22:35:52 2002/-ko/Tlinux_2_4_20
+/ne2.c/1.16/Tue Nov  6 00:55:09 2001/-ko/Tlinux_2_4_20
+/ne2k-pci.c/1.19.2.2/Wed Jun 26 22:35:52 2002/-ko/Tlinux_2_4_20
+/ne3210.c/1.13.2.1/Wed Jun 26 22:35:52 2002/-ko/Tlinux_2_4_20
+/net_init.c/1.26/Fri Oct 19 01:24:34 2001/-ko/Tlinux_2_4_20
+/ni5010.c/1.15/Mon Nov  5 20:15:56 2001/-ko/Tlinux_2_4_20
+/ni5010.h/1.2/Fri Mar  9 20:34:08 2001/-ko/Tlinux_2_4_20
+/ni52.c/1.16/Mon Nov  5 20:15:56 2001/-ko/Tlinux_2_4_20
+/ni52.h/1.4/Thu Apr  5 04:56:53 2001/-ko/Tlinux_2_4_20
+/ni65.c/1.14.2.1/Wed Sep 11 12:45:05 2002/-ko/Tlinux_2_4_20
+/ni65.h/1.2/Fri Mar  9 20:34:08 2001/-ko/Tlinux_2_4_20
+/ns83820.c/1.3.2.4/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/oaknet.c/1.7/Tue Nov  6 00:55:09 2001/-ko/Tlinux_2_4_20
+/pci-skeleton.c/1.6.2.3/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/pcnet32.c/1.33.2.4/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/plip.c/1.27/Mon Nov  5 20:15:56 2001/-ko/Tlinux_2_4_20
+/ppp_async.c/1.12.2.1/Wed Jun 26 22:35:52 2002/-ko/Tlinux_2_4_20
+/ppp_deflate.c/1.8.2.2/Wed Sep 11 12:45:05 2002/-ko/Tlinux_2_4_20
+/ppp_generic.c/1.23.2.4/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/ppp_synctty.c/1.10.2.1/Wed Jun 26 22:35:53 2002/-ko/Tlinux_2_4_20
+/pppoe.c/1.17.2.2/Tue Sep 10 15:32:50 2002/-ko/Tlinux_2_4_20
+/pppox.c/1.7.2.1/Tue Sep 10 15:32:51 2002/-ko/Tlinux_2_4_20
+/ptifddi.c/1.9/Wed Jun 13 17:27:54 2001/-ko/Tlinux_2_4_20
+/ptifddi.h/1.2/Sat Oct  9 00:01:22 1999/-ko/Tlinux_2_4_20
+/ptifddi_asm.h/1.1/Sat Dec  6 23:53:47 1997/-ko/Tlinux_2_4_20
+/rcif.h/1.2/Wed Aug 22 03:24:41 2001/-ko/Tlinux_2_4_20
+/rclanmtl.c/1.7.2.1/Tue Feb 26 05:59:35 2002/-ko/Tlinux_2_4_20
+/rclanmtl.h/1.6.2.1/Tue Feb 26 05:59:35 2002/-ko/Tlinux_2_4_20
+/rcpci45.c/1.20.2.2/Wed Sep 11 12:45:06 2002/-ko/Tlinux_2_4_20
+/rrunner.c/1.17.2.1/Wed Jun 26 22:35:53 2002/-ko/Tlinux_2_4_20
+/rrunner.h/1.5/Sun Dec  2 11:34:43 2001/-ko/Tlinux_2_4_20
+/saa9730.c/1.5/Tue Nov  6 00:55:09 2001/-ko/Tlinux_2_4_20
+/saa9730.h/1.2/Fri Dec 29 16:35:43 2000/-ko/Tlinux_2_4_20
+/sb1000.c/1.15.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/sb1250-mac.c/1.1.2.9/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
+/seeq8005.c/1.18/Tue Nov  6 00:55:09 2001/-ko/Tlinux_2_4_20
+/seeq8005.h/1.1.1.1/Sun Jun  1 03:17:24 1997/-ko/Tlinux_2_4_20
+/setup.c/1.17/Thu Aug 23 22:24:33 2001/-ko/Tlinux_2_4_20
+/sgiseeq.c/1.31/Tue Nov  6 07:56:00 2001/-ko/Tlinux_2_4_20
+/sgiseeq.h/1.5.4.1/Fri Jul  5 14:17:30 2002/-ko/Tlinux_2_4_20
+/shaper.c/1.22.2.1/Sat Dec 29 05:38:04 2001/-ko/Tlinux_2_4_20
+/sis900.c/1.24.2.4/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/sis900.h/1.11.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/sk_g16.c/1.21/Tue Nov  6 00:55:09 2001/-ko/Tlinux_2_4_20
+/sk_g16.h/1.3/Fri Mar  9 20:34:08 2001/-ko/Tlinux_2_4_20
+/sk_mca.c/1.14/Tue Nov  6 00:55:09 2001/-ko/Tlinux_2_4_20
+/sk_mca.h/1.4/Wed Jul 12 01:43:09 2000/-ko/Tlinux_2_4_20
+/slhc.c/1.14/Sun Dec  2 11:34:43 2001/-ko/Tlinux_2_4_20
+/slip.c/1.19.2.2/Wed Sep 11 12:45:06 2002/-ko/Tlinux_2_4_20
+/slip.h/1.5/Wed Jan 10 05:27:31 2001/-ko/Tlinux_2_4_20
+/smc-mca.c/1.17/Tue Nov  6 00:55:09 2001/-ko/Tlinux_2_4_20
+/smc-mca.h/1.2/Sat Oct  9 00:01:24 1999/-ko/Tlinux_2_4_20
+/smc-ultra.c/1.22.2.2/Wed Sep 11 12:45:06 2002/-ko/Tlinux_2_4_20
+/smc-ultra32.c/1.14.2.2/Wed Sep 11 12:45:06 2002/-ko/Tlinux_2_4_20
+/smc9194.c/1.20.2.1/Wed Jun 26 22:35:53 2002/-ko/Tlinux_2_4_20
+/smc9194.h/1.3/Fri Oct 19 01:24:35 2001/-ko/Tlinux_2_4_20
+/sonic.c/1.14/Tue Nov  6 00:55:09 2001/-ko/Tlinux_2_4_20
+/sonic.h/1.7.2.1/Wed Jun 26 22:35:53 2002/-ko/Tlinux_2_4_20
+/starfire.c/1.18.2.4/Tue Sep 10 15:32:51 2002/-ko/Tlinux_2_4_20
+/stnic.c/1.9/Tue Nov  6 00:55:09 2001/-ko/Tlinux_2_4_20
+/strip.c/1.21/Sun Dec  2 11:34:43 2001/-ko/Tlinux_2_4_20
+/sun3_82586.c/1.1.2.1/Wed Jun 26 22:35:53 2002/-ko/Tlinux_2_4_20
+/sun3_82586.h/1.1.2.1/Wed Jun 26 22:35:53 2002/-ko/Tlinux_2_4_20
+/sun3lance.c/1.9.2.2/Wed Sep 11 12:45:06 2002/-ko/Tlinux_2_4_20
+/sunbmac.c/1.20.2.1/Wed Jun 26 22:35:53 2002/-ko/Tlinux_2_4_20
+/sunbmac.h/1.6/Wed Jul 12 01:56:28 2000/-ko/Tlinux_2_4_20
+/sundance.c/1.9.2.4/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/sungem.c/1.8.2.3/Wed Jun 26 22:35:53 2002/-ko/Tlinux_2_4_20
+/sungem.h/1.3.2.3/Wed Jun 26 22:35:53 2002/-ko/Tlinux_2_4_20
+/sunhme.c/1.34.2.2/Wed Sep 11 12:45:06 2002/-ko/Tlinux_2_4_20
+/sunhme.h/1.12.2.1/Wed Jun 26 22:35:53 2002/-ko/Tlinux_2_4_20
+/sunlance.c/1.30.2.2/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
+/sunqe.c/1.20.2.2/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
+/sunqe.h/1.5/Wed Feb 23 00:41:14 2000/-ko/Tlinux_2_4_20
+/tc35815.c/1.1.2.1/Sun Mar  3 01:53:51 2002/-ko/Tlinux_2_4_20
+/tg3.c/1.1.2.4/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/tg3.h/1.1.2.3/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/tlan.c/1.25.2.2/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
+/tlan.h/1.16/Wed Aug 22 03:24:42 2001/-ko/Tlinux_2_4_20
+/tun.c/1.10.2.1/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
+/via-rhine.c/1.26.2.5/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/wavelan.c/1.25.2.2/Wed Sep 11 12:45:06 2002/-ko/Tlinux_2_4_20
+/wavelan.h/1.6/Fri Mar  9 20:34:09 2001/-ko/Tlinux_2_4_20
+/wavelan.p.h/1.13.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/wd.c/1.17.2.2/Wed Sep 11 12:45:06 2002/-ko/Tlinux_2_4_20
+/winbond-840.c/1.10.2.5/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/yellowfin.c/1.24.2.3/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/znet.c/1.11/Thu Aug 23 22:24:34 2001/-ko/Tlinux_2_4_20
+D/appletalk////
+D/arcnet////
+D/e100////
+D/e1000////
+D/fc////
+D/hamradio////
+D/irda////
+D/pcmcia////
+D/sk98lin////
+D/skfp////
+D/tokenring////
+D/tulip////
+D/wan////
+D/wireless////
diff -urNd -urNd linux-2.4.20/drivers/net/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/CVS/Repository
--- linux-2.4.20/drivers/net/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/CVS/Repository	2005-01-06 23:02:45.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/net
diff -urNd -urNd linux-2.4.20/drivers/net/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/CVS/Root
--- linux-2.4.20/drivers/net/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/CVS/Root	2005-01-06 23:02:45.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/net/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/CVS/Tag
--- linux-2.4.20/drivers/net/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/CVS/Tag	2005-01-06 23:03:19.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/net/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/.cvsignore
--- linux-2.4.20/drivers/net/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/.cvsignore	1998-03-17 16:10:43.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/net/de4x5.c linux-2.4.20-mipscvs-20050106/drivers/net/de4x5.c
--- linux-2.4.20/drivers/net/de4x5.c	2002-08-02 19:39:44.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/drivers/net/de4x5.c	2002-08-20 08:34:56.000000000 -0500
@@ -999,7 +999,7 @@
 static void    srom_repair(struct net_device *dev, int card);
 static int     test_bad_enet(struct net_device *dev, int status);
 static int     an_exception(struct de4x5_bus_type *lp);
-#if !defined(__sparc_v9__) && !defined(__powerpc__) && !defined(__alpha__)
+#ifdef CONFIG_EISA
 static void    eisa_probe(struct net_device *dev, u_long iobase);
 #endif
 static void    pci_probe(struct net_device *dev, u_long iobase);
@@ -1053,7 +1053,7 @@
 #endif /* MODULE */
 
 static char name[DE4X5_NAME_LENGTH + 1];
-#if !defined(__sparc_v9__) && !defined(__powerpc__) && !defined(__alpha__)
+#ifdef CONFIG_EISA
 static u_char de4x5_irq[] = EISA_ALLOWED_IRQ_LIST;
 static int lastEISA;
 #  ifdef DE4X5_FORCE_EISA                 /* Force an EISA bus probe or not */
@@ -1131,7 +1131,7 @@
     u_long iobase = dev->base_addr;
 
     pci_probe(dev, iobase);
-#if !defined(__sparc_v9__) && !defined(__powerpc__) && !defined(__alpha__)
+#ifdef CONFIG_EISA
     if ((lastPCI == NO_MORE_PCI) && ((num_de4x5s == 0) || forceEISA)) {
         eisa_probe(dev, iobase);
     }
@@ -2092,7 +2092,7 @@
     return;
 }
 
-#if !defined(__sparc_v9__) && !defined(__powerpc__) && !defined(__alpha__)
+#ifdef CONFIG_EISA
 /*
 ** EISA bus I/O device probe. Probe from slot 1 since slot 0 is usually
 ** the motherboard. Upto 15 EISA devices are supported.
@@ -5362,7 +5362,7 @@
 	t = *q;
 	*q = '\0';
 
-#if !defined(__sparc_v9__) && !defined(__powerpc__) && !defined(__alpha__)
+#ifdef CONFIG_EISA
 	if (strstr(p, "force_eisa") || strstr(p, "FORCE_EISA")) forceEISA = 1;
 #endif
 	if (strstr(p, "fdx") || strstr(p, "FDX")) lp->params.fdx = 1;
@@ -5864,7 +5864,7 @@
     u_int class = DE4X5_CLASS_CODE;
     u_int device;
 
-#if !defined(__sparc_v9__) && !defined(__powerpc__) && !defined(__alpha__)
+#ifdef CONFIG_EISA
     char name[DE4X5_STRLEN];
     u_long iobase = 0x1000;
 
diff -urNd -urNd linux-2.4.20/drivers/net/declance.c linux-2.4.20-mipscvs-20050106/drivers/net/declance.c
--- linux-2.4.20/drivers/net/declance.c	2002-11-28 17:53:13.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/declance.c	2003-01-30 08:25:16.000000000 -0600
@@ -52,6 +52,7 @@
 #include <linux/module.h>
 #include <linux/netdevice.h>
 #include <linux/etherdevice.h>
+#include <linux/spinlock.h>
 #include <linux/stddef.h>
 #include <linux/string.h>
 
@@ -787,15 +788,23 @@
 		return -EAGAIN;
 	}
 	if (lp->dma_irq >= 0) {
+		unsigned long flags;
+
 		if (request_irq(lp->dma_irq, &lance_dma_merr_int, 0,
 				"lance error", dev)) {
 			free_irq(dev->irq, dev);
 			printk("lance: Can't get DMA IRQ %d\n", lp->dma_irq);
 			return -EAGAIN;
 		}
+
+		spin_lock_irqsave(&ioasic_ssr_lock, flags);
+
+		fast_mb();
 		/* Enable I/O ASIC LANCE DMA.  */
-		fast_wmb();
 		ioasic_write(SSR, ioasic_read(SSR) | LANCE_DMA_EN);
+
+		fast_mb();
+		spin_unlock_irqrestore(&ioasic_ssr_lock, flags);
 	}
 
 	status = init_restart_lance(lp);
@@ -821,9 +830,17 @@
 	writereg(&ll->rdp, LE_C0_STOP);
 
 	if (lp->dma_irq >= 0) {
+		unsigned long flags;
+
+		spin_lock_irqsave(&ioasic_ssr_lock, flags);
+
+		fast_mb();
 		/* Disable I/O ASIC LANCE DMA.  */
 		ioasic_write(SSR, ioasic_read(SSR) & ~LANCE_DMA_EN);
+
 		fast_iob();
+		spin_unlock_irqrestore(&ioasic_ssr_lock, flags);
+
 		free_irq(lp->dma_irq, dev);
 	}
 	free_irq(dev->irq, dev);
diff -urNd -urNd linux-2.4.20/drivers/net/e100/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/e100/CVS/Entries
--- linux-2.4.20/drivers/net/e100/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/e100/CVS/Entries	2005-01-06 23:03:20.000000000 -0600
@@ -0,0 +1,15 @@
+/.cvsignore/1.1.2.1/Wed Sep 11 13:00:33 2002/-ko/Tlinux_2_4_20
+/LICENSE/1.1.2.1/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
+/Makefile/1.3.2.1/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
+/e100.h/1.3.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/e100_config.c/1.3.2.1/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
+/e100_config.h/1.3.2.1/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
+/e100_eeprom.c/1.2.2.1/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
+/e100_main.c/1.4.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/e100_phy.c/1.3.2.1/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
+/e100_phy.h/1.2.2.1/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
+/e100_proc.c/1.2.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/e100_test.c/1.1.2.1/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
+/e100_ucode.h/1.2.2.1/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
+/e100_vendor.h/1.2.2.1/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/net/e100/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/e100/CVS/Repository
--- linux-2.4.20/drivers/net/e100/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/e100/CVS/Repository	2005-01-06 23:03:20.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/net/e100
diff -urNd -urNd linux-2.4.20/drivers/net/e100/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/e100/CVS/Root
--- linux-2.4.20/drivers/net/e100/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/e100/CVS/Root	2005-01-06 23:03:20.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/net/e100/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/e100/CVS/Tag
--- linux-2.4.20/drivers/net/e100/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/e100/CVS/Tag	2005-01-06 23:03:20.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/net/e100/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/e100/.cvsignore
--- linux-2.4.20/drivers/net/e100/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/e100/.cvsignore	2002-09-11 08:00:33.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/net/e1000/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/e1000/CVS/Entries
--- linux-2.4.20/drivers/net/e1000/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/e1000/CVS/Entries	2005-01-06 23:03:22.000000000 -0600
@@ -0,0 +1,12 @@
+/.cvsignore/1.1.2.1/Wed Sep 11 13:00:33 2002/-ko/Tlinux_2_4_20
+/LICENSE/1.2.2.1/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
+/Makefile/1.3.2.1/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
+/e1000.h/1.2.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/e1000_ethtool.c/1.2.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/e1000_hw.c/1.1.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/e1000_hw.h/1.1.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/e1000_main.c/1.4.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/e1000_osdep.h/1.2.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/e1000_param.c/1.2.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/e1000_proc.c/1.2.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/net/e1000/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/e1000/CVS/Repository
--- linux-2.4.20/drivers/net/e1000/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/e1000/CVS/Repository	2005-01-06 23:03:20.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/net/e1000
diff -urNd -urNd linux-2.4.20/drivers/net/e1000/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/e1000/CVS/Root
--- linux-2.4.20/drivers/net/e1000/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/e1000/CVS/Root	2005-01-06 23:03:20.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/net/e1000/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/e1000/CVS/Tag
--- linux-2.4.20/drivers/net/e1000/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/e1000/CVS/Tag	2005-01-06 23:03:22.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/net/e1000/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/e1000/.cvsignore
--- linux-2.4.20/drivers/net/e1000/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/e1000/.cvsignore	2002-09-11 08:00:33.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/net/fc/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/fc/CVS/Entries
--- linux-2.4.20/drivers/net/fc/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/fc/CVS/Entries	2005-01-06 23:03:22.000000000 -0600
@@ -0,0 +1,9 @@
+/.cvsignore/1.2/Sat Oct  9 00:01:25 1999/-ko/Tlinux_2_4_20
+/Makefile/1.5.2.1/Tue Feb 26 05:59:38 2002/-ko/Tlinux_2_4_20
+/iph5526.c/1.16.2.1/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
+/iph5526_ip.h/1.2/Sat Oct  9 00:01:25 1999/-ko/Tlinux_2_4_20
+/iph5526_novram.c/1.2/Sat Oct  9 00:01:25 1999/-ko/Tlinux_2_4_20
+/iph5526_scsi.h/1.2/Sat Oct  9 00:01:25 1999/-ko/Tlinux_2_4_20
+/tach.h/1.3/Mon Nov  5 20:15:59 2001/-ko/Tlinux_2_4_20
+/tach_structs.h/1.3/Wed Jan 10 17:18:01 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/net/fc/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/fc/CVS/Repository
--- linux-2.4.20/drivers/net/fc/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/fc/CVS/Repository	2005-01-06 23:03:22.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/net/fc
diff -urNd -urNd linux-2.4.20/drivers/net/fc/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/fc/CVS/Root
--- linux-2.4.20/drivers/net/fc/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/fc/CVS/Root	2005-01-06 23:03:22.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/net/fc/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/fc/CVS/Tag
--- linux-2.4.20/drivers/net/fc/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/fc/CVS/Tag	2005-01-06 23:03:22.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/net/fc/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/fc/.cvsignore
--- linux-2.4.20/drivers/net/fc/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/fc/.cvsignore	1999-10-08 19:01:25.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/net/hamradio/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/CVS/Entries
--- linux-2.4.20/drivers/net/hamradio/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/CVS/Entries	2005-01-06 23:08:11.000000000 -0600
@@ -0,0 +1,19 @@
+/.cvsignore/1.2/Tue Mar 17 22:11:30 1998/-ko/Tlinux_2_4_20
+/6pack.c/1.11.2.1/Tue Feb 26 05:59:38 2002/-ko/Tlinux_2_4_20
+/Config.in/1.7.4.1/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
+/Makefile/1.10.2.1/Tue Feb 26 05:59:39 2002/-ko/Tlinux_2_4_20
+/baycom_epp.c/1.14.2.3/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
+/baycom_par.c/1.13.2.1/Tue Feb 26 05:59:39 2002/-ko/Tlinux_2_4_20
+/baycom_ser_fdx.c/1.12.2.2/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
+/baycom_ser_hdx.c/1.12.2.1/Tue Feb 26 05:59:39 2002/-ko/Tlinux_2_4_20
+/bpqether.c/1.16.2.1/Tue Feb 26 05:59:39 2002/-ko/Tlinux_2_4_20
+/dmascc.c/1.11.2.1/Tue Feb 26 05:59:39 2002/-ko/Tlinux_2_4_20
+/hdlcdrv.c/1.14.2.1/Tue Feb 26 05:59:39 2002/-ko/Tlinux_2_4_20
+/mkiss.c/1.14.2.2/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
+/mkiss.h/1.4.2.1/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
+/scc.c/1.22.2.2/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
+/yam.c/1.12.2.2/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
+/yam1200.h/1.2/Sat Oct  9 00:01:25 1999/-ko/Tlinux_2_4_20
+/yam9600.h/1.2/Sat Oct  9 00:01:25 1999/-ko/Tlinux_2_4_20
+/z8530.h/1.2/Mon Jan  4 16:06:35 1999/-ko/Tlinux_2_4_20
+D/soundmodem////
diff -urNd -urNd linux-2.4.20/drivers/net/hamradio/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/CVS/Repository
--- linux-2.4.20/drivers/net/hamradio/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/CVS/Repository	2005-01-06 23:03:22.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/net/hamradio
diff -urNd -urNd linux-2.4.20/drivers/net/hamradio/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/CVS/Root
--- linux-2.4.20/drivers/net/hamradio/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/CVS/Root	2005-01-06 23:03:22.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/net/hamradio/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/CVS/Tag
--- linux-2.4.20/drivers/net/hamradio/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/CVS/Tag	2005-01-06 23:03:24.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/net/hamradio/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/.cvsignore
--- linux-2.4.20/drivers/net/hamradio/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/.cvsignore	1998-03-17 16:11:30.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/net/hamradio/soundmodem/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/soundmodem/CVS/Entries
--- linux-2.4.20/drivers/net/hamradio/soundmodem/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/soundmodem/CVS/Entries	2005-01-06 23:03:24.000000000 -0600
@@ -0,0 +1,16 @@
+/.cvsignore/1.3/Fri Sep  1 07:46:58 2000/-ko/Tlinux_2_4_20
+/Makefile/1.3/Wed Jan 10 17:18:01 2001/-ko/Tlinux_2_4_20
+/gentbl.c/1.6/Thu Apr  5 04:56:54 2001/-ko/Tlinux_2_4_20
+/sm.c/1.13/Wed Jun 13 17:27:56 2001/-ko/Tlinux_2_4_20
+/sm.h/1.7.2.1/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
+/sm_afsk1200.c/1.1.8.1/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
+/sm_afsk2400_7.c/1.1.8.1/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
+/sm_afsk2400_8.c/1.1.8.1/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
+/sm_afsk2666.c/1.1.6.1/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
+/sm_fsk9600.c/1.1/Tue Dec 16 06:32:14 1997/-ko/Tlinux_2_4_20
+/sm_hapn4800.c/1.1/Tue Dec 16 06:32:14 1997/-ko/Tlinux_2_4_20
+/sm_psk4800.c/1.1/Tue Aug 25 09:17:59 1998/-ko/Tlinux_2_4_20
+/sm_sbc.c/1.4.4.2/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
+/sm_wss.c/1.5.2.2/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
+/smdma.h/1.1.8.1/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/net/hamradio/soundmodem/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/soundmodem/CVS/Repository
--- linux-2.4.20/drivers/net/hamradio/soundmodem/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/soundmodem/CVS/Repository	2005-01-06 23:03:24.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/net/hamradio/soundmodem
diff -urNd -urNd linux-2.4.20/drivers/net/hamradio/soundmodem/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/soundmodem/CVS/Root
--- linux-2.4.20/drivers/net/hamradio/soundmodem/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/soundmodem/CVS/Root	2005-01-06 23:03:24.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/net/hamradio/soundmodem/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/soundmodem/CVS/Tag
--- linux-2.4.20/drivers/net/hamradio/soundmodem/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/soundmodem/CVS/Tag	2005-01-06 23:03:24.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/net/hamradio/soundmodem/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/soundmodem/.cvsignore
--- linux-2.4.20/drivers/net/hamradio/soundmodem/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/soundmodem/.cvsignore	2000-09-01 02:46:58.000000000 -0500
@@ -0,0 +1,10 @@
+.depend
+.*.flags
+gentbl
+sm_tbl_afsk1200.h
+sm_tbl_afsk2666.h
+sm_tbl_psk4800.h
+sm_tbl_hapn4800.h
+sm_tbl_fsk9600.h
+sm_tbl_afsk2400_8.h
+sm_tbl_afsk2400_7.h
diff -urNd -urNd linux-2.4.20/drivers/net/ioc3-eth.c linux-2.4.20-mipscvs-20050106/drivers/net/ioc3-eth.c
--- linux-2.4.20/drivers/net/ioc3-eth.c	2002-08-02 19:39:44.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/drivers/net/ioc3-eth.c	2003-01-02 07:58:06.000000000 -0600
@@ -460,30 +460,25 @@
  */
 static void ioc3_get_eaddr(struct ioc3_private *ip)
 {
-	void (*do_get_eaddr)(struct ioc3_private *ip) = NULL;
 	int i;
 
+
+#ifdef CONFIG_SGI_IP27
+	ioc3_get_eaddr_nic(ip);
+#elif defined(CONFIG_IA64_SGI_SN1) || defined(CONFIG_IA64_SGI_SN2)
 	/*
 	 * We should also use this code for PCI cards, no matter what host
 	 * machine but how to know that we're a PCI card?
 	 */
-#ifdef CONFIG_SGI_IP27
-	do_get_eaddr = ioc3_get_eaddr_nic;
-#endif
-#if defined(CONFIG_IA64_SGI_SN1) || defined(CONFIG_IA64_SGI_SN2)
-	do_get_eaddr = ioc3_get_eaddr_sn;
+	ioc3_get_eaddr_sn(ip);
+#else 
+#error No clue how to read IOC3 MAC address for this configuration.
 #endif
 
-	if (!do_get_eaddr) {
-		printk(KERN_ERR "Don't know how to read MAC address of this "
-		       "IOC3 NIC\n");
-		return;
-	}
-
 	printk("Ethernet address is ");
 	for (i = 0; i < 6; i++) {
 		printk("%02x", ip->dev->dev_addr[i]);
-		if (i < 7)
+		if (i < 5)
 			printk(":");
 	}
 	printk(".\n");
@@ -588,7 +583,7 @@
 			ip->stats.rx_frame_errors++;
 next:
 		ip->rx_skbs[n_entry] = new_skb;
-		rxr[n_entry] = cpu_to_be32((0xa5UL << 56) |
+		rxr[n_entry] = cpu_to_be64((0xa5UL << 56) |
 		                         ((unsigned long) rxb & TO_PHYS_MASK));
 		rxb->w0 = 0;				/* Clear valid flag */
 		n_entry = (n_entry + 1) & 511;		/* Update erpir */
@@ -1622,10 +1617,10 @@
 MODULE_DEVICE_TABLE(pci, ioc3_pci_tbl);
 
 static struct pci_driver ioc3_driver = {
-	name:		"ioc3-eth",
-	id_table:	ioc3_pci_tbl,
-	probe:		ioc3_probe,
-	remove:		__devexit_p(ioc3_remove_one),
+	.name		= "ioc3-eth",
+	.id_table	= ioc3_pci_tbl,
+	.probe		= ioc3_probe,
+	.remove		= __devexit_p(ioc3_remove_one),
 };
 
 static int __init ioc3_init_module(void)
diff -urNd -urNd linux-2.4.20/drivers/net/irda/au1k_ir.c linux-2.4.20-mipscvs-20050106/drivers/net/irda/au1k_ir.c
--- linux-2.4.20/drivers/net/irda/au1k_ir.c	2002-08-02 19:39:44.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/drivers/net/irda/au1k_ir.c	2002-11-05 13:33:50.000000000 -0600
@@ -75,6 +75,8 @@
 
 #define RUN_AT(x) (jiffies + (x))
 
+static spinlock_t ir_lock = SPIN_LOCK_UNLOCKED;
+
 /*
  * IrDA peripheral bug. You have to read the register
  * twice to get the right value.
@@ -703,8 +705,7 @@
 	if (speed == aup->speed)
 		return ret;
 
-	save_flags(flags);
-	cli();
+	spin_lock_irqsave(&ir_lock, flags);
 
 	/* disable PHY first */
 	writel(read_ir_reg(IR_ENABLE) & ~0x8000, IR_ENABLE);
@@ -805,7 +806,7 @@
 			printk(KERN_INFO "%s RX enabled\n", dev->name);
 	}
 
-	restore_flags(flags);
+	spin_unlock_irqrestore(&ir_lock, flags);
 	return ret;
 }
 
diff -urNd -urNd linux-2.4.20/drivers/net/irda/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/irda/CVS/Entries
--- linux-2.4.20/drivers/net/irda/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/irda/CVS/Entries	2005-01-06 23:03:26.000000000 -0600
@@ -0,0 +1,25 @@
+/.cvsignore/1.1/Mon Feb 15 02:18:57 1999/-ko/Tlinux_2_4_20
+/Config.in/1.12.2.2/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
+/Makefile/1.17.2.2/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
+/act200l.c/1.1.2.1/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
+/actisys.c/1.8.2.1/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
+/ali-ircc.c/1.4.2.3/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
+/au1k_ir.c/1.2.2.1/Tue Nov  5 19:33:50 2002/-ko/Tlinux_2_4_20
+/ep7211_ir.c/1.1/Tue Nov  6 07:56:01 2001/-ko/Tlinux_2_4_20
+/esi.c/1.8/Mon Nov  5 20:15:59 2001/-ko/Tlinux_2_4_20
+/girbil.c/1.9.2.1/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
+/irda-usb.c/1.5.2.3/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
+/irport.c/1.22.2.2/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
+/irtty.c/1.22.2.1/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
+/litelink.c/1.7/Mon Nov  5 20:15:59 2001/-ko/Tlinux_2_4_20
+/ma600.c/1.1.2.1/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
+/mcp2120.c/1.1.2.1/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
+/nsc-ircc.c/1.18.2.2/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
+/old_belkin.c/1.2/Mon Nov  5 20:15:59 2001/-ko/Tlinux_2_4_20
+/sa1100_ir.c/1.1.2.1/Wed Jun 26 22:35:55 2002/-ko/Tlinux_2_4_20
+/smc-ircc.c/1.18.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/tekram.c/1.8.2.1/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
+/toshoboe.c/1.20.2.1/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
+/vlsi_ir.c/1.4.2.1/Sat Dec 29 05:38:05 2001/-ko/Tlinux_2_4_20
+/w83977af_ir.c/1.20.2.2/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/net/irda/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/irda/CVS/Repository
--- linux-2.4.20/drivers/net/irda/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/irda/CVS/Repository	2005-01-06 23:03:24.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/net/irda
diff -urNd -urNd linux-2.4.20/drivers/net/irda/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/irda/CVS/Root
--- linux-2.4.20/drivers/net/irda/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/irda/CVS/Root	2005-01-06 23:03:24.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/net/irda/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/irda/CVS/Tag
--- linux-2.4.20/drivers/net/irda/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/irda/CVS/Tag	2005-01-06 23:03:26.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/net/irda/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/irda/.cvsignore
--- linux-2.4.20/drivers/net/irda/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/irda/.cvsignore	1999-02-14 20:18:57.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/net/Makefile linux-2.4.20-mipscvs-20050106/drivers/net/Makefile
--- linux-2.4.20/drivers/net/Makefile	2002-11-28 17:53:13.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/Makefile	2003-01-11 11:53:13.000000000 -0600
@@ -209,7 +209,7 @@
 obj-$(CONFIG_EQUALIZER) += eql.o
 obj-$(CONFIG_MIPS_JAZZ_SONIC) += jazzsonic.o
 obj-$(CONFIG_MIPS_GT96100ETH) += gt96100eth.o
-obj-$(CONFIG_MIPS_AU1000_ENET) += au1000_eth.o
+obj-$(CONFIG_MIPS_AU1X00_ENET) += au1000_eth.o
 obj-$(CONFIG_SGI_IOC3_ETH) += ioc3-eth.o
 obj-$(CONFIG_BAGETLANCE) += bagetlance.o
 obj-$(CONFIG_DECLANCE) += declance.o
diff -urNd -urNd linux-2.4.20/drivers/net/pcmcia/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/pcmcia/CVS/Entries
--- linux-2.4.20/drivers/net/pcmcia/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/pcmcia/CVS/Entries	2005-01-06 23:03:28.000000000 -0600
@@ -0,0 +1,26 @@
+/.cvsignore/1.1/Sat Oct  9 00:01:26 1999/-ko/Tlinux_2_4_20
+/3c574_cs.c/1.15.2.1/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
+/3c589_cs.c/1.16.2.1/Tue Feb 26 05:59:39 2002/-ko/Tlinux_2_4_20
+/Config.in/1.23.2.1/Sat Dec 29 05:38:05 2001/-ko/Tlinux_2_4_20
+/Makefile/1.17/Sun Dec  2 11:34:44 2001/-ko/Tlinux_2_4_20
+/aironet4500_cs.c/1.12.2.2/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
+/axnet_cs.c/1.1.2.3/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/com20020_cs.c/1.7.2.1/Wed Jun 26 22:35:55 2002/-ko/Tlinux_2_4_20
+/fmvj18x_cs.c/1.11.2.5/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/i82593.h/1.2/Thu Apr  5 04:57:18 2001/-ko/Tlinux_2_4_20
+/ibmtr_cs.c/1.8.2.1/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
+/netwave_cs.c/1.14.2.2/Tue Feb 26 05:59:39 2002/-ko/Tlinux_2_4_20
+/nmclan_cs.c/1.12.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/ositech.h/1.2/Fri Mar  9 20:34:13 2001/-ko/Tlinux_2_4_20
+/pcnet_cs.c/1.15.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/ray_cs.c/1.22.2.3/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/ray_cs.h/1.5/Wed Jan 10 17:18:01 2001/-ko/Tlinux_2_4_20
+/rayctl.h/1.2/Sat Dec  4 03:59:04 1999/-ko/Tlinux_2_4_20
+/smc91c92_cs.c/1.12.2.3/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/wavelan.h/1.2.2.1/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
+/wavelan_cs.c/1.10.2.3/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/wavelan_cs.h/1.9.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/xirc2ps_cs.c/1.14.2.1/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
+/xircom_cb.c/1.3.2.3/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
+/xircom_tulip_cb.c/1.17.2.4/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/net/pcmcia/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/pcmcia/CVS/Repository
--- linux-2.4.20/drivers/net/pcmcia/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/pcmcia/CVS/Repository	2005-01-06 23:03:26.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/net/pcmcia
diff -urNd -urNd linux-2.4.20/drivers/net/pcmcia/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/pcmcia/CVS/Root
--- linux-2.4.20/drivers/net/pcmcia/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/pcmcia/CVS/Root	2005-01-06 23:03:26.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/net/pcmcia/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/pcmcia/CVS/Tag
--- linux-2.4.20/drivers/net/pcmcia/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/pcmcia/CVS/Tag	2005-01-06 23:03:28.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/net/pcmcia/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/pcmcia/.cvsignore
--- linux-2.4.20/drivers/net/pcmcia/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/pcmcia/.cvsignore	1999-10-08 19:01:26.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/net/pcnet32.c linux-2.4.20-mipscvs-20050106/drivers/net/pcnet32.c
--- linux-2.4.20/drivers/net/pcnet32.c	2002-11-28 17:53:14.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/pcnet32.c	2003-01-11 11:53:14.000000000 -0600
@@ -758,8 +758,12 @@
     if (irq_line) {
 	dev->irq = irq_line;
     }
-    
+
+#ifdef CONFIG_LASAT
+    if (dev->irq >= 0)
+#else
     if (dev->irq >= 2)
+#endif
 	printk(" assigned IRQ %d.\n", dev->irq);
     else {
 	unsigned long irq_mask = probe_irq_on();
@@ -821,7 +825,10 @@
     u16 val;
     int i;
 
-    if (dev->irq == 0 ||
+    if (
+#ifndef CONFIG_LASAT
+	dev->irq == 0 ||
+#endif
 	request_irq(dev->irq, &pcnet32_interrupt,
 		    lp->shared_irq ? SA_SHIRQ : 0, lp->name, (void *)dev)) {
 	return -EAGAIN;
@@ -1361,6 +1368,10 @@
 		if (!rx_in_place) {
 		    skb_reserve(skb,2); /* 16 byte align */
 		    skb_put(skb,pkt_len);	/* Make room */
+                    pci_dma_sync_single(lp->pci_dev, 
+				    lp->rx_dma_addr[entry],
+				    pkt_len,
+				    PCI_DMA_FROMDEVICE);
 		    eth_copy_and_sum(skb,
 				     (unsigned char *)(lp->rx_skbuff[entry]->tail),
 				     pkt_len,0);
diff -urNd -urNd linux-2.4.20/drivers/net/sb1250-mac.c linux-2.4.20-mipscvs-20050106/drivers/net/sb1250-mac.c
--- linux-2.4.20/drivers/net/sb1250-mac.c	2002-11-28 17:53:14.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/sb1250-mac.c	2003-01-21 23:11:38.000000000 -0600
@@ -44,8 +44,10 @@
 static int full_duplex[MAX_UNITS] = {-1, -1, -1};
 #endif
 
+#ifdef CONFIG_SBMAC_COALESCE
 static int int_pktcnt = 0;
 static int int_timeout = 0;
+#endif
 
 /* Operational parameters that usually are not changed. */
 
@@ -76,6 +78,7 @@
 #include <asm/io.h>
 #include <asm/sibyte/sb1250.h>
 #include <asm/sibyte/64bit.h>
+#include <asm/cache.h>
 
 /* This is only here until the firmware is ready.  In that case,
    the firmware leaves the ethernet address in the register for us. */
@@ -117,8 +120,6 @@
 
 
 typedef unsigned long sbmac_port_t;
-typedef uint64_t sbmac_physaddr_t;
-typedef uint64_t sbmac_enetaddr_t;
 
 typedef enum { sbmac_speed_auto, sbmac_speed_10,
 	       sbmac_speed_100, sbmac_speed_1000 } sbmac_speed_t;
@@ -142,17 +143,11 @@
 			  (d)->sbdma_dscrtable : (d)->f+1)
 
 
-#define CACHELINESIZE 32
-#define NUMCACHEBLKS(x) (((x)+CACHELINESIZE-1)/CACHELINESIZE)
-#define KMALLOC(x) kmalloc((x),GFP_KERNEL)
-#define KFREE(x) kfree(x)
-#define KVTOPHYS(x) virt_to_bus((void *)(x))
+#define NUMCACHEBLKS(x) (((x)+SMP_CACHE_BYTES-1)/SMP_CACHE_BYTES)
 
+#define SBMAC_READCSR(t)	in64((unsigned long)t)
+#define SBMAC_WRITECSR(t,v)	out64(v, (unsigned long)t)
  
-#define SBMAC_READCSR(t)    (in64((unsigned long)(t)))
-#define SBMAC_WRITECSR(t,v) (out64(v, (unsigned long)(t)))
-
-#define PKSEG1(x) ((sbmac_port_t) KSEG1ADDR(x))
 
 #define SBMAC_MAX_TXDESCR	32
 #define SBMAC_MAX_RXDESCR	32
@@ -172,7 +167,6 @@
 } sbdmadscr_t;
 
 typedef unsigned long paddr_t;
-typedef unsigned long vaddr_t;
 
 /**********************************************************************
  *  DMA Controller structure
@@ -212,7 +206,6 @@
 	paddr_t          sbdma_dscrtable_phys; /* and also the phys addr */
 	sbdmadscr_t     *sbdma_addptr;	/* next dscr for sw to add */
 	sbdmadscr_t     *sbdma_remptr;	/* next dscr for sw to remove */
-	
 } sbmacdma_t;
 
 
@@ -244,7 +237,7 @@
 	 * Controller-specific things
 	 */
 	
-	sbmac_port_t     sbm_base;          /* MAC's base address */
+	unsigned long	sbm_base;          /* MAC's base address */
 	sbmac_state_t    sbm_state;         /* current state */
 	
 	sbmac_port_t     sbm_macenable;	/* MAC Enable Register */
@@ -260,13 +253,12 @@
 	sbmac_duplex_t   sbm_duplex;	/* current duplex */
 	sbmac_fc_t       sbm_fc;		/* current flow control setting */
 	
-	u_char           sbm_hwaddr[ETHER_ADDR_LEN];
+	unsigned char    sbm_hwaddr[ETHER_ADDR_LEN];
 	
 	sbmacdma_t       sbm_txdma;		/* for now, only use channel 0 */
 	sbmacdma_t       sbm_rxdma;
 	int              rx_hw_checksum;
 	int 		 sbe_idx;
-	
 };
 
 
@@ -300,7 +292,7 @@
 static void sbmac_intr(int irq,void *dev_instance,struct pt_regs *rgs);
 static int sbmac_start_tx(struct sk_buff *skb, struct net_device *dev);
 static void sbmac_setmulti(struct sbmac_softc *sc);
-static int sbmac_init(struct net_device *dev);
+static int sbmac_init(struct net_device *dev, int idx);
 static int sbmac_set_speed(struct sbmac_softc *s,sbmac_speed_t speed);
 static int sbmac_set_duplex(struct sbmac_softc *s,sbmac_duplex_t duplex,sbmac_fc_t fc);
 
@@ -347,8 +339,8 @@
 #define BMCR_DUPLEX    0x0100
 #define BMCR_COLTEST   0x0080
 #define BMCR_SPEED1    0x0040
-#define BMCR_SPEED1000 (BMCR_SPEED1)
-#define BMCR_SPEED100  (BMCR_SPEED0)
+#define BMCR_SPEED1000	BMCR_SPEED1
+#define BMCR_SPEED100	BMCR_SPEED0
 #define BMCR_SPEED10 	0
 
 #define BMSR_100BT4	0x8000
@@ -511,7 +503,8 @@
 	curmask = 1 << (bitcnt - 1);
 	
 	for (i = 0; i < bitcnt; i++) {
-		if (data & curmask) bits |= M_MAC_MDIO_OUT;
+		if (data & curmask)
+			bits |= M_MAC_MDIO_OUT;
 		else bits &= ~M_MAC_MDIO_OUT;
 		SBMAC_WRITECSR(s->sbm_mdio,bits);
 		SBMAC_WRITECSR(s->sbm_mdio,bits | M_MAC_MDC);
@@ -592,7 +585,8 @@
 		regval <<= 1;
 		
 		if (error == 0) {
-			if (SBMAC_READCSR(s->sbm_mdio) & M_MAC_MDIO_IN) regval |= 1;
+			if (SBMAC_READCSR(s->sbm_mdio) & M_MAC_MDIO_IN)
+				regval |= 1;
 		}
 		
 		SBMAC_WRITECSR(s->sbm_mdio,M_MAC_MDIO_DIR_INPUT | M_MAC_MDC);
@@ -602,7 +596,8 @@
 	/* Switch back to output */
 	SBMAC_WRITECSR(s->sbm_mdio,M_MAC_MDIO_DIR_OUTPUT);
 	
-	if (error == 0) return regval;
+	if (error == 0)
+		return regval;
 	return 0;
 }
 
@@ -672,50 +667,52 @@
 	d->sbdma_channel   = chan;
 	d->sbdma_txdir     = txrx;
 	
+#if 0
 	/* RMON clearing */
 	s->sbe_idx =(s->sbm_base - A_MAC_BASE_0)/MAC_SPACING;
+#endif
 
-	SBMAC_WRITECSR(PKSEG1(
+	SBMAC_WRITECSR(KSEG1ADDR(
         A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_TX_BYTES)), 0);
-	SBMAC_WRITECSR(PKSEG1(
+	SBMAC_WRITECSR(KSEG1ADDR(
         A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_COLLISIONS)), 0);
-	SBMAC_WRITECSR(PKSEG1(
+	SBMAC_WRITECSR(KSEG1ADDR(
         A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_LATE_COL)), 0);
-	SBMAC_WRITECSR(PKSEG1(
+	SBMAC_WRITECSR(KSEG1ADDR(
         A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_EX_COL)), 0);
-	SBMAC_WRITECSR(PKSEG1(
+	SBMAC_WRITECSR(KSEG1ADDR(
         A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_FCS_ERROR)), 0);
-	SBMAC_WRITECSR(PKSEG1(
+	SBMAC_WRITECSR(KSEG1ADDR(
         A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_TX_ABORT)), 0);
-	SBMAC_WRITECSR(PKSEG1(
+	SBMAC_WRITECSR(KSEG1ADDR(
         A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_TX_BAD)), 0);
-	SBMAC_WRITECSR(PKSEG1(
+	SBMAC_WRITECSR(KSEG1ADDR(
         A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_TX_GOOD)), 0);
-	SBMAC_WRITECSR(PKSEG1(
+	SBMAC_WRITECSR(KSEG1ADDR(
         A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_TX_RUNT)), 0);
-	SBMAC_WRITECSR(PKSEG1(
+	SBMAC_WRITECSR(KSEG1ADDR(
         A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_TX_OVERSIZE)), 0);
-	SBMAC_WRITECSR(PKSEG1(
+	SBMAC_WRITECSR(KSEG1ADDR(
         A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_RX_BYTES)), 0);
-	SBMAC_WRITECSR(PKSEG1(
+	SBMAC_WRITECSR(KSEG1ADDR(
         A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_RX_MCAST)), 0);
-	SBMAC_WRITECSR(PKSEG1(
+	SBMAC_WRITECSR(KSEG1ADDR(
         A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_RX_BCAST)), 0);
-	SBMAC_WRITECSR(PKSEG1(
+	SBMAC_WRITECSR(KSEG1ADDR(
         A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_RX_BAD)), 0);
-	SBMAC_WRITECSR(PKSEG1(
+	SBMAC_WRITECSR(KSEG1ADDR(
         A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_RX_GOOD)), 0);
-	SBMAC_WRITECSR(PKSEG1(
+	SBMAC_WRITECSR(KSEG1ADDR(
         A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_RX_RUNT)), 0);
-	SBMAC_WRITECSR(PKSEG1(
+	SBMAC_WRITECSR(KSEG1ADDR(
         A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_RX_OVERSIZE)), 0);
-	SBMAC_WRITECSR(PKSEG1(
+	SBMAC_WRITECSR(KSEG1ADDR(
         A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_RX_FCS_ERROR)), 0);
-	SBMAC_WRITECSR(PKSEG1(
+	SBMAC_WRITECSR(KSEG1ADDR(
         A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_RX_LENGTH_ERROR)), 0);
-	SBMAC_WRITECSR(PKSEG1(
+	SBMAC_WRITECSR(KSEG1ADDR(
         A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_RX_CODE_ERROR)), 0);
-	SBMAC_WRITECSR(PKSEG1(
+	SBMAC_WRITECSR(KSEG1ADDR(
         A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_RX_ALIGN_ERROR)), 0);
 
 	/* 
@@ -723,15 +720,15 @@
 	 */
 	
 	d->sbdma_config0 = 
-		PKSEG1(s->sbm_base + R_MAC_DMA_REGISTER(txrx,chan,R_MAC_DMA_CONFIG0));
+		s->sbm_base + R_MAC_DMA_REGISTER(txrx,chan,R_MAC_DMA_CONFIG0);
 	d->sbdma_config1 = 
-		PKSEG1(s->sbm_base + R_MAC_DMA_REGISTER(txrx,chan,R_MAC_DMA_CONFIG1));
+		s->sbm_base + R_MAC_DMA_REGISTER(txrx,chan,R_MAC_DMA_CONFIG1);
 	d->sbdma_dscrbase = 
-		PKSEG1(s->sbm_base + R_MAC_DMA_REGISTER(txrx,chan,R_MAC_DMA_DSCR_BASE));
+		s->sbm_base + R_MAC_DMA_REGISTER(txrx,chan,R_MAC_DMA_DSCR_BASE);
 	d->sbdma_dscrcnt = 
-		PKSEG1(s->sbm_base + R_MAC_DMA_REGISTER(txrx,chan,R_MAC_DMA_DSCR_CNT));
+		s->sbm_base + R_MAC_DMA_REGISTER(txrx,chan,R_MAC_DMA_DSCR_CNT);
 	d->sbdma_curdscr = 	
-		PKSEG1(s->sbm_base + R_MAC_DMA_REGISTER(txrx,chan,R_MAC_DMA_CUR_DSCRADDR));
+		s->sbm_base + R_MAC_DMA_REGISTER(txrx,chan,R_MAC_DMA_CUR_DSCRADDR);
 	
 	/*
 	 * Allocate memory for the ring
@@ -740,20 +737,20 @@
 	d->sbdma_maxdescr = maxdescr;
 	
 	d->sbdma_dscrtable = (sbdmadscr_t *) 
-		KMALLOC(d->sbdma_maxdescr*sizeof(sbdmadscr_t));
+		kmalloc(d->sbdma_maxdescr*sizeof(sbdmadscr_t), GFP_KERNEL);
 	
 	memset(d->sbdma_dscrtable,0,d->sbdma_maxdescr*sizeof(sbdmadscr_t));
 	
 	d->sbdma_dscrtable_end = d->sbdma_dscrtable + d->sbdma_maxdescr;
 	
-	d->sbdma_dscrtable_phys = KVTOPHYS(d->sbdma_dscrtable);
+	d->sbdma_dscrtable_phys = virt_to_phys(d->sbdma_dscrtable);
 	
 	/*
 	 * And context table
 	 */
 	
 	d->sbdma_ctxtable = (struct sk_buff **) 
-		KMALLOC(d->sbdma_maxdescr*sizeof(struct sk_buff *));
+		kmalloc(d->sbdma_maxdescr*sizeof(struct sk_buff *), GFP_KERNEL);
 	
 	memset(d->sbdma_ctxtable,0,d->sbdma_maxdescr*sizeof(struct sk_buff *));
 	
@@ -921,7 +918,7 @@
 	if (nextdsc == d->sbdma_remptr) {
 		return -ENOSPC;
 	}
-	
+
 	/* 
 	 * Allocate a sk_buff if we don't already have one.  
 	 * If we do have an sk_buff, reset it so that it's empty.
@@ -942,15 +939,15 @@
 	 */
 	
 	if (sb == NULL) {
-		sb_new = dev_alloc_skb(ENET_PACKET_SIZE + CACHELINESIZE*2 + ETHER_ALIGN);
+		sb_new = dev_alloc_skb(ENET_PACKET_SIZE + SMP_CACHE_BYTES * 2 + ETHER_ALIGN);
 		if (sb_new == NULL) {
 			printk(KERN_INFO "%s: sk_buff allocation failed\n",
 			       d->sbdma_eth->sbm_dev->name);
 			return -ENOBUFS;
 		}
-		
-		sbdma_align_skb(sb_new,CACHELINESIZE,ETHER_ALIGN);
-		
+
+		sbdma_align_skb(sb_new, SMP_CACHE_BYTES, ETHER_ALIGN);
+
 		/* mark skbuff owned by our device */
 		sb_new->dev = d->sbdma_eth->sbm_dev;
 	}
@@ -970,11 +967,11 @@
         /*
          * Do not interrupt per DMA transfer.
          */
-        dsc->dscr_a = KVTOPHYS(sb_new->tail) |
+        dsc->dscr_a = virt_to_phys(sb_new->tail) |
                 V_DMA_DSCRA_A_SIZE(NUMCACHEBLKS(pktsize+ETHER_ALIGN)) |
                 0;
 #else
-	dsc->dscr_a = KVTOPHYS(sb_new->tail) |
+	dsc->dscr_a = virt_to_phys(sb_new->tail) |
 		V_DMA_DSCRA_A_SIZE(NUMCACHEBLKS(pktsize+ETHER_ALIGN)) |
 		M_DMA_DSCRA_INTERRUPT;
 #endif
@@ -1057,9 +1054,9 @@
 	 * while doing the calculation.
 	 */
 	
-	phys = KVTOPHYS(sb->data);
-	ncb = NUMCACHEBLKS(length+(phys & (CACHELINESIZE-1)));
-	
+	phys = virt_to_phys(sb->data);
+	ncb = NUMCACHEBLKS(length+(phys & (SMP_CACHE_BYTES - 1)));
+
 	dsc->dscr_a = phys | 
 		V_DMA_DSCRA_A_SIZE(ncb) |
 		M_DMA_DSCRA_INTERRUPT |
@@ -1139,7 +1136,8 @@
 	int idx;
 	
 	for (idx = 0; idx < SBMAC_MAX_RXDESCR-1; idx++) {
-		if (sbdma_add_rcvbuffer(d,NULL) != 0) break;
+		if (sbdma_add_rcvbuffer(d,NULL) != 0)
+			break;
 	}
 }
 
@@ -1190,7 +1188,8 @@
 		 * the hardware is working on right now.
 		 */
 		
-		if (curidx == hwidx) break;
+		if (curidx == hwidx)
+			break;
 		
 		/*
 		 * Otherwise, get the packet's sk_buff ptr back
@@ -1210,11 +1209,6 @@
 		
 		if (!(dsc->dscr_a & M_DMA_ETHRX_BAD)) {
 			
-			/*
-			 * Set length into the packet
-			 */
-			skb_put(sb,len);
-			
        			/*
 			 * Add a new buffer to replace the old one.  If we fail
 			 * to allocate a buffer, we're going to drop this
@@ -1222,10 +1216,16 @@
 			 */
 			
 			if (sbdma_add_rcvbuffer(d,NULL) == -ENOBUFS) {
+			    sc->sbm_stats.rx_dropped++;
 			    sbdma_add_rcvbuffer(d,sb);	/* re-add old buffer */
 			    }
 			else {
 			    /*
+			     * Set length into the packet
+			     */
+			    skb_put(sb,len);
+
+			    /*
 			     * Buffer has been replaced on the receive ring.
 			     * Pass the buffer to the kernel
 			     */
@@ -1254,6 +1254,7 @@
 			 * Packet was mangled somehow.  Just drop it and
 			 * put it back on the receive ring.
 			 */
+			sc->sbm_stats.rx_errors++;
 			sbdma_add_rcvbuffer(d,sb);
 		}
 		
@@ -1338,7 +1339,8 @@
 		 * the hardware is working on right now.
 		 */
 		
-		if (curidx == hwidx) break;
+		if (curidx == hwidx)
+			break;
 		
 		/*
 		 * Otherwise, get the packet's sk_buff ptr back
@@ -1405,14 +1407,14 @@
 	 * figure out the addresses of some ports 
 	 */
 	
-	s->sbm_macenable = PKSEG1(s->sbm_base + R_MAC_ENABLE);
-	s->sbm_maccfg    = PKSEG1(s->sbm_base + R_MAC_CFG);
-	s->sbm_fifocfg   = PKSEG1(s->sbm_base + R_MAC_THRSH_CFG);
-	s->sbm_framecfg  = PKSEG1(s->sbm_base + R_MAC_FRAMECFG);
-	s->sbm_rxfilter  = PKSEG1(s->sbm_base + R_MAC_ADFILTER_CFG);
-	s->sbm_isr       = PKSEG1(s->sbm_base + R_MAC_STATUS);
-	s->sbm_imr       = PKSEG1(s->sbm_base + R_MAC_INT_MASK);
-	s->sbm_mdio      = PKSEG1(s->sbm_base + R_MAC_MDIO);
+	s->sbm_macenable = s->sbm_base + R_MAC_ENABLE;
+	s->sbm_maccfg    = s->sbm_base + R_MAC_CFG;
+	s->sbm_fifocfg   = s->sbm_base + R_MAC_THRSH_CFG;
+	s->sbm_framecfg  = s->sbm_base + R_MAC_FRAMECFG;
+	s->sbm_rxfilter  = s->sbm_base + R_MAC_ADFILTER_CFG;
+	s->sbm_isr       = s->sbm_base + R_MAC_STATUS;
+	s->sbm_imr       = s->sbm_base + R_MAC_INT_MASK;
+	s->sbm_mdio      = s->sbm_base + R_MAC_MDIO;
 
 	s->sbm_phys[0]   = 1;
 	s->sbm_phys[1]   = 0;
@@ -1451,12 +1453,12 @@
 static void sbdma_uninitctx(struct sbmacdma_s *d)
 {
 	if (d->sbdma_dscrtable) {
-		KFREE(d->sbdma_dscrtable);
+		kfree(d->sbdma_dscrtable);
 		d->sbdma_dscrtable = NULL;
 	}
 	
 	if (d->sbdma_ctxtable) {
-		KFREE(d->sbdma_ctxtable);
+		kfree(d->sbdma_ctxtable);
 		d->sbdma_ctxtable = NULL;
 	}
 }
@@ -1492,7 +1494,8 @@
 	 * Don't do this if running
 	 */
 
-	if (s->sbm_state == sbmac_state_on) return;
+	if (s->sbm_state == sbmac_state_on)
+		return;
 	
 	/*
 	 * Bring the controller out of reset, but leave it off.
@@ -1542,7 +1545,7 @@
 	 * Clear out the hash address map 
 	 */
 	
-	port = PKSEG1(s->sbm_base + R_MAC_HASH_BASE);
+	port = s->sbm_base + R_MAC_HASH_BASE;
         for (idx = 0; idx < MAC_HASH_COUNT; idx++) {
 		SBMAC_WRITECSR(port,0);
 		port += sizeof(uint64_t);
@@ -1552,7 +1555,7 @@
 	 * Clear out the exact-match table
 	 */
 	
-	port = PKSEG1(s->sbm_base + R_MAC_ADDR_BASE);
+	port = s->sbm_base + R_MAC_ADDR_BASE;
 	for (idx = 0; idx < MAC_ADDR_COUNT; idx++) {
 		SBMAC_WRITECSR(port,0);
 		port += sizeof(uint64_t);
@@ -1562,14 +1565,14 @@
 	 * Clear out the DMA Channel mapping table registers
 	 */
 	
-	port = PKSEG1(s->sbm_base + R_MAC_CHUP0_BASE);
+	port = s->sbm_base + R_MAC_CHUP0_BASE;
 	for (idx = 0; idx < MAC_CHMAP_COUNT; idx++) {
 		SBMAC_WRITECSR(port,0);
 		port += sizeof(uint64_t);
 	}
 
 
-	port = PKSEG1(s->sbm_base + R_MAC_CHLO0_BASE);
+	port = s->sbm_base + R_MAC_CHLO0_BASE;
 	for (idx = 0; idx < MAC_CHMAP_COUNT; idx++) {
 		SBMAC_WRITECSR(port,0);
 		port += sizeof(uint64_t);
@@ -1582,9 +1585,9 @@
 	
 	reg = sbmac_addr2reg(s->sbm_hwaddr);
 	
-	port = PKSEG1(s->sbm_base + R_MAC_ADDR_BASE);
+	port = s->sbm_base + R_MAC_ADDR_BASE;
 	SBMAC_WRITECSR(port,reg);
-	port = PKSEG1(s->sbm_base + R_MAC_ETHERNET_ADDR);
+	port = s->sbm_base + R_MAC_ETHERNET_ADDR;
 
 #ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
 	/*
@@ -1702,7 +1705,8 @@
 {
 	/* don't do this if already stopped */
 	
-	if (s->sbm_state == sbmac_state_off) return;
+	if (s->sbm_state == sbmac_state_off)
+		return;
 	
 	/* don't accept any packets, disable all interrupts */
 	
@@ -1795,7 +1799,8 @@
 {
 	uint64_t reg;
 	
-	if (sc->sbm_state != sbmac_state_on) return;
+	if (sc->sbm_state != sbmac_state_on)
+		return;
 	
 	if (onoff) {
 		reg = SBMAC_READCSR(sc->sbm_rxfilter);
@@ -1832,7 +1837,7 @@
 	SBMAC_WRITECSR(sc->sbm_rxfilter,reg);
 	
 	/* read system identification to determine revision */
-	if (sb1250_pass >= K_SYS_REVISION_PASS2) {
+	if (soc_pass >= K_SYS_REVISION_PASS2) {
 		printk(KERN_INFO "pass2 - enabling Rx rcv tcp checksum\n");
 		sc->rx_hw_checksum = ENABLE;
 	} else {
@@ -1866,11 +1871,7 @@
 #endif
 
 
-/**********************************************************************
- *  SBMAC_ADDR2REG(ptr)
- *  
- *  Convert six bytes into the 64-bit register value that
- *  we typically write into the SBMAC's address/mcast registers
+/****************************************BMAC's address/mcast registers
  *  
  *  Input parameters: 
  *  	   ptr - pointer to 6 bytes
@@ -1927,7 +1928,8 @@
 	
 	s->sbm_speed = speed;
 	
-	if (s->sbm_state == sbmac_state_on) return 0;	/* save for next restart */
+	if (s->sbm_state == sbmac_state_on)
+		return 0;	/* save for next restart */
 
 	/*
 	 * Read current register values 
@@ -2017,7 +2019,8 @@
 	s->sbm_duplex = duplex;
 	s->sbm_fc = fc;
 	
-	if (s->sbm_state == sbmac_state_on) return 0;	/* save for next restart */
+	if (s->sbm_state == sbmac_state_on)
+		return 0;	/* save for next restart */
 	
 	/*
 	 * Read current register values 
@@ -2116,7 +2119,8 @@
 		
 		isr = SBMAC_READCSR(sc->sbm_isr) & ~M_MAC_COUNTER_ADDR;
 		
-		if (isr == 0) break;
+		if (isr == 0)
+			break;
 		
 		/*
 		 * Transmits on channel 0
@@ -2224,12 +2228,12 @@
 	 */
 	
 	for (idx = 1; idx < MAC_ADDR_COUNT; idx++) {
-		port = PKSEG1(sc->sbm_base + R_MAC_ADDR_BASE+(idx*sizeof(uint64_t)));
+		port = sc->sbm_base + R_MAC_ADDR_BASE+(idx*sizeof(uint64_t));
 		SBMAC_WRITECSR(port,0);	
 	}
 	
 	for (idx = 0; idx < MAC_HASH_COUNT; idx++) {
-		port = PKSEG1(sc->sbm_base + R_MAC_HASH_BASE+(idx*sizeof(uint64_t)));
+		port = sc->sbm_base + R_MAC_HASH_BASE+(idx*sizeof(uint64_t));
 		SBMAC_WRITECSR(port,0);	
 	}
 	
@@ -2266,8 +2270,7 @@
 	mclist = dev->mc_list;
 	while (mclist && (idx < MAC_ADDR_COUNT)) {
 		reg = sbmac_addr2reg(mclist->dmi_addr);
-		port = PKSEG1(sc->sbm_base + 
-			      R_MAC_ADDR_BASE+(idx*sizeof(uint64_t)));
+		port = sc->sbm_base + R_MAC_ADDR_BASE+(idx * sizeof(uint64_t));
 		SBMAC_WRITECSR(port,reg);
 		idx++;
 		mclist = mclist->next;
@@ -2304,10 +2307,14 @@
 {
 	int digit;
 	
-	if ((str >= '0') && (str <= '9')) digit = str - '0';
-	else if ((str >= 'a') && (str <= 'f')) digit = str - 'a' + 10;
-	else if ((str >= 'A') && (str <= 'F')) digit = str - 'A' + 10;
-	else return -1;
+	if ((str >= '0') && (str <= '9'))
+		digit = str - '0';
+	else if ((str >= 'a') && (str <= 'f'))
+		digit = str - 'a' + 10;
+	else if ((str >= 'A') && (str <= 'F'))
+		digit = str - 'A' + 10;
+	else
+		return -1;
 	
 	return digit;
 }
@@ -2326,16 +2333,18 @@
  *  	   0 if ok, else -1
  ********************************************************************* */
 
-static int sbmac_parse_hwaddr(char *str,u_char *hwaddr)
+static int sbmac_parse_hwaddr(char *str, unsigned char *hwaddr)
 {
 	int digit1,digit2;
 	int idx = 6;
 	
 	while (*str && (idx > 0)) {
 		digit1 = sbmac_parse_xdigit(*str);
-		if (digit1 < 0) return -1;
+		if (digit1 < 0)
+			return -1;
 		str++;
-		if (!*str) return -1;
+		if (!*str)
+			return -1;
 		
 		if ((*str == ':') || (*str == '-')) {
 			digit2 = digit1;
@@ -2343,15 +2352,18 @@
 		}
 		else {
 			digit2 = sbmac_parse_xdigit(*str);
-			if (digit2 < 0) return -1;
+			if (digit2 < 0)
+				return -1;
 			str++;
 		}
 		
 		*hwaddr++ = (digit1 << 4) | digit2;
 		idx--;
 		
-		if (*str == '-') str++;
-		if (*str == ':') str++;
+		if (*str == '-')
+			str++;
+		if (*str == ':')
+			str++;
 	}
 	return 0;
 }
@@ -2378,19 +2390,20 @@
  *  	   status
  ********************************************************************* */
 
-static int sbmac_init(struct net_device *dev)
+static int sbmac_init(struct net_device *dev, int idx)
 {
 	struct sbmac_softc *sc;
-	u_char *eaddr;
+	unsigned char *eaddr;
 	uint64_t ea_reg;
-	int idx;
+	int i;
 	
 	sc = (struct sbmac_softc *)dev->priv;
 	
 	/* Determine controller base address */
 	
-	sc->sbm_base = (sbmac_port_t) dev->base_addr;
+	sc->sbm_base = KSEG1ADDR(dev->base_addr);
 	sc->sbm_dev = dev;
+	sc->sbe_idx = idx;
 	
 	eaddr = sc->sbm_hwaddr;
 	
@@ -2399,16 +2412,15 @@
 	 * for us in the ethernet address register for each mac.
 	 */
 	
-	ea_reg = SBMAC_READCSR(PKSEG1(sc->sbm_base + R_MAC_ETHERNET_ADDR));
-	SBMAC_WRITECSR(PKSEG1(sc->sbm_base + R_MAC_ETHERNET_ADDR), 0);
-	for (idx = 0; idx < 6; idx++) {
-		eaddr[idx] = (uint8_t) (ea_reg & 0xFF);
+	ea_reg = SBMAC_READCSR(sc->sbm_base + R_MAC_ETHERNET_ADDR);
+	SBMAC_WRITECSR(sc->sbm_base + R_MAC_ETHERNET_ADDR, 0);
+	for (i = 0; i < 6; i++) {
+		eaddr[i] = (uint8_t) (ea_reg & 0xFF);
 		ea_reg >>= 8;
 	}
 	
-	
-	for (idx = 0; idx < 6; idx++) {
-		dev->dev_addr[idx] = eaddr[idx];
+	for (i = 0; i < 6; i++) {
+		dev->dev_addr[i] = eaddr[i];
 	}
 	
 	
@@ -2416,8 +2428,8 @@
 	 * Init packet size 
 	 */
 	
-	sc->sbm_buffersize = ENET_PACKET_SIZE + CACHELINESIZE*2 + ETHER_ALIGN;
-	
+	sc->sbm_buffersize = ENET_PACKET_SIZE + SMP_CACHE_BYTES * 2 + ETHER_ALIGN;
+
 	/* 
 	 * Initialize context (get pointers to registers and stuff), then
 	 * allocate the memory for the descriptor tables.
@@ -2432,8 +2444,7 @@
 	 */
 	printk(KERN_INFO
 	       "%s: SB1250 Ethernet at 0x%08lX, address: %02X-%02X-%02X-%02X-%02X-%02X\n", 
-	       dev->name,
-	       (unsigned long) sc->sbm_base,
+	       dev->name, dev->base_addr,
 	       eaddr[0],eaddr[1],eaddr[2],eaddr[3],eaddr[4],eaddr[5]);
 	
 	/*
@@ -2454,7 +2465,7 @@
 
 	dev->change_mtu         = sb1250_change_mtu;
 
-	if (sb1250_pass >= K_SYS_REVISION_PASS3) {
+	if (soc_pass >= K_SYS_REVISION_PASS3) {
 		/* In pass3 we do dumb checksum in TX */
 		dev->features |= NETIF_F_IP_CSUM;
 	}
@@ -2572,7 +2583,8 @@
 	chg = 1;
 	}
 
-    if (chg == 0) return 0;
+    if (chg == 0)
+	    return 0;
 
     p += sprintf(p,"Link speed: ");
 
@@ -2627,8 +2639,6 @@
 }
 
 
-
-
 static void sbmac_timer(unsigned long data)
 {
 	struct net_device *dev = (struct net_device *)data;
@@ -2827,8 +2837,8 @@
 	port = A_MAC_CHANNEL_BASE(chan);
 	sbmac_parse_hwaddr(addr,eaddr);
 	val = sbmac_addr2reg(eaddr);
-	SBMAC_WRITECSR(PKSEG1(port+R_MAC_ETHERNET_ADDR),val);
-	val = SBMAC_READCSR(PKSEG1(port+R_MAC_ETHERNET_ADDR));
+	SBMAC_WRITECSR(KSEG1ADDR(port+R_MAC_ETHERNET_ADDR),val);
+	val = SBMAC_READCSR(KSEG1ADDR(port+R_MAC_ETHERNET_ADDR));
 }
 #endif
 
@@ -2862,15 +2872,16 @@
 	 * Walk through the Ethernet controllers and find
 	 * those who have their MAC addresses set.
 	 */
-	chip_revision = SBMAC_READCSR(PKSEG1(A_SCD_SYSTEM_REVISION));
+	chip_revision = SBMAC_READCSR(KSEG1ADDR(A_SCD_SYSTEM_REVISION));
 	switch ((int)G_SYS_PART(chip_revision)) {
 	case 0x1150:
 	case 0x1250:
 		chip_max_units = 3;
 		break;
-	case 0x1120:
-	case 0x1125:
-	case 0x1126:
+	case 0x1121:
+	case 0x1123:
+	case 0x1124:
+	case 0x1125:	// Hybrid.
 		chip_max_units = 2;
 		break;
 	default:
@@ -2894,9 +2905,10 @@
 		 * If we find a zero, skip this MAC.
 		 */
 
-		sbmac_orig_hwaddr[idx] = SBMAC_READCSR(PKSEG1(port+R_MAC_ETHERNET_ADDR));
+		sbmac_orig_hwaddr[idx] = SBMAC_READCSR(KSEG1ADDR(port+R_MAC_ETHERNET_ADDR));
 		if (sbmac_orig_hwaddr[idx] == 0) {
-		    printk( KERN_DEBUG "sbmac: not configuring MAC at %x\n",(uint32_t)port);
+			printk(KERN_DEBUG "sbmac: not configuring MAC at "
+			       "%lx\n", port);
 		    continue;
 		}
 
@@ -2908,15 +2920,16 @@
 		if (!dev) 
 		  return -ENOMEM;	/* return ENOMEM */
 
+printk(KERN_DEBUG "sbmac: configuring MAC at %lx\n", port);
+
 		dev->irq = K_INT_MAC_0 + idx;
 		dev->base_addr = port;
 		dev->mem_end = 0;
 		/*dev->init = sbmac_init;*/
-		sbmac_init(dev);
+		sbmac_init(dev, macidx);
 
 		dev_sbmac[macidx] = dev;
 		macidx++;
-
 	}
 
 	/*
@@ -2935,7 +2948,8 @@
 	sbmac_port_t port;
 	for (idx = 0; idx < MAX_UNITS; idx++) {
 		dev = dev_sbmac[idx];
-		if (dev == NULL) continue;
+		if (dev == NULL)
+			continue;
 		if (dev->priv != NULL) {
 			struct sbmac_softc *sc = (struct sbmac_softc *) dev->priv;
 			
@@ -2946,8 +2960,8 @@
 		}
 
 	        port = A_MAC_CHANNEL_BASE(idx);
-		SBMAC_WRITECSR(PKSEG1(port+R_MAC_ETHERNET_ADDR), sbmac_orig_hwaddr[idx] );
-		KFREE(dev);
+		SBMAC_WRITECSR(KSEG1ADDR(port+R_MAC_ETHERNET_ADDR), sbmac_orig_hwaddr[idx] );
+		kfree(dev);
 		dev_sbmac[idx] = NULL;
 	}
 }
diff -urNd -urNd linux-2.4.20/drivers/net/sk98lin/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/CVS/Entries
--- linux-2.4.20/drivers/net/sk98lin/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/CVS/Entries	2005-01-06 23:08:11.000000000 -0600
@@ -0,0 +1,18 @@
+/.cvsignore/1.1/Fri Feb  4 07:40:39 2000/-ko/Tlinux_2_4_20
+/Makefile/1.4/Thu Aug 23 22:24:35 2001/-ko/Tlinux_2_4_20
+/skaddr.c/1.3.2.1/Wed Jun 26 22:35:55 2002/-ko/Tlinux_2_4_20
+/skcsum.c/1.3/Thu Aug 23 22:24:35 2001/-ko/Tlinux_2_4_20
+/skge.c/1.14.2.2/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
+/skgehwt.c/1.3/Thu Aug 23 22:24:35 2001/-ko/Tlinux_2_4_20
+/skgeinit.c/1.4/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
+/skgepnmi.c/1.4/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
+/skgesirq.c/1.4/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
+/ski2c.c/1.4/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
+/sklm80.c/1.2/Thu Oct  5 01:18:55 2000/-ko/Tlinux_2_4_20
+/skproc.c/1.4/Fri Oct 19 01:24:37 2001/-ko/Tlinux_2_4_20
+/skqueue.c/1.4/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
+/skrlmt.c/1.3/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
+/sktimer.c/1.3/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
+/skvpd.c/1.5/Sun Dec  2 11:34:45 2001/-ko/Tlinux_2_4_20
+/skxmac2.c/1.4/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
+D/h////
diff -urNd -urNd linux-2.4.20/drivers/net/sk98lin/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/CVS/Repository
--- linux-2.4.20/drivers/net/sk98lin/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/CVS/Repository	2005-01-06 23:03:28.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/net/sk98lin
diff -urNd -urNd linux-2.4.20/drivers/net/sk98lin/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/CVS/Root
--- linux-2.4.20/drivers/net/sk98lin/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/CVS/Root	2005-01-06 23:03:28.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/net/sk98lin/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/CVS/Tag
--- linux-2.4.20/drivers/net/sk98lin/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/CVS/Tag	2005-01-06 23:03:30.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/net/sk98lin/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/.cvsignore
--- linux-2.4.20/drivers/net/sk98lin/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/.cvsignore	2000-02-04 01:40:39.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/net/sk98lin/h/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/h/CVS/Entries
--- linux-2.4.20/drivers/net/sk98lin/h/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/h/CVS/Entries	2005-01-06 23:03:31.000000000 -0600
@@ -0,0 +1,25 @@
+/.cvsignore/1.1/Fri Feb  4 07:40:39 2000/-ko/Tlinux_2_4_20
+/lm80.h/1.4/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
+/skaddr.h/1.3/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
+/skcsum.h/1.3/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
+/skdebug.h/1.2/Thu Oct  5 01:18:55 2000/-ko/Tlinux_2_4_20
+/skdrv1st.h/1.5.2.1/Wed Jun 26 22:35:55 2002/-ko/Tlinux_2_4_20
+/skdrv2nd.h/1.3/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
+/skerror.h/1.2/Thu Oct  5 01:18:55 2000/-ko/Tlinux_2_4_20
+/skgedrv.h/1.2/Thu Oct  5 01:18:55 2000/-ko/Tlinux_2_4_20
+/skgehw.h/1.4/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
+/skgehwt.h/1.3/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
+/skgei2c.h/1.2/Thu Oct  5 01:18:55 2000/-ko/Tlinux_2_4_20
+/skgeinit.h/1.3/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
+/skgepnm2.h/1.3/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
+/skgepnmi.h/1.3/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
+/skgesirq.h/1.3/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
+/ski2c.h/1.3/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
+/skqueue.h/1.3/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
+/skrlmt.h/1.3/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
+/sktimer.h/1.3/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
+/sktypes.h/1.2/Thu Oct  5 01:18:55 2000/-ko/Tlinux_2_4_20
+/skversion.h/1.1/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
+/skvpd.h/1.3/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
+/xmac_ii.h/1.4/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/net/sk98lin/h/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/h/CVS/Repository
--- linux-2.4.20/drivers/net/sk98lin/h/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/h/CVS/Repository	2005-01-06 23:03:30.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/net/sk98lin/h
diff -urNd -urNd linux-2.4.20/drivers/net/sk98lin/h/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/h/CVS/Root
--- linux-2.4.20/drivers/net/sk98lin/h/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/h/CVS/Root	2005-01-06 23:03:30.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/net/sk98lin/h/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/h/CVS/Tag
--- linux-2.4.20/drivers/net/sk98lin/h/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/h/CVS/Tag	2005-01-06 23:03:31.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/net/sk98lin/h/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/h/.cvsignore
--- linux-2.4.20/drivers/net/sk98lin/h/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/h/.cvsignore	2000-02-04 01:40:39.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/net/skfp/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/skfp/CVS/Entries
--- linux-2.4.20/drivers/net/skfp/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/skfp/CVS/Entries	2005-01-06 23:08:11.000000000 -0600
@@ -0,0 +1,23 @@
+/.cvsignore/1.2/Sun Jun 24 22:16:41 2001/-ko/Tlinux_2_4_20
+/Makefile/1.3/Wed Jan 10 17:18:01 2001/-ko/Tlinux_2_4_20
+/can.c/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
+/cfm.c/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
+/drvfbi.c/1.3/Thu Apr  5 04:57:18 2001/-ko/Tlinux_2_4_20
+/ecm.c/1.2/Sat Jul  8 00:53:05 2000/-ko/Tlinux_2_4_20
+/ess.c/1.3/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
+/fplustm.c/1.4/Thu Apr  5 04:57:18 2001/-ko/Tlinux_2_4_20
+/hwmtm.c/1.2/Fri May 12 23:48:40 2000/-ko/Tlinux_2_4_20
+/hwt.c/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
+/lnkstat.c/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
+/pcmplc.c/1.2/Thu Apr  5 04:57:18 2001/-ko/Tlinux_2_4_20
+/pmf.c/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
+/queue.c/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
+/rmt.c/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
+/skfddi.c/1.12.2.1/Wed Jun 26 22:35:55 2002/-ko/Tlinux_2_4_20
+/smt.c/1.2/Sat Jul  8 00:53:05 2000/-ko/Tlinux_2_4_20
+/smtdef.c/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
+/smtinit.c/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
+/smtparse.c/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
+/smttimer.c/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
+/srf.c/1.3/Thu Apr  5 04:57:18 2001/-ko/Tlinux_2_4_20
+D/h////
diff -urNd -urNd linux-2.4.20/drivers/net/skfp/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/skfp/CVS/Repository
--- linux-2.4.20/drivers/net/skfp/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/skfp/CVS/Repository	2005-01-06 23:03:31.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/net/skfp
diff -urNd -urNd linux-2.4.20/drivers/net/skfp/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/skfp/CVS/Root
--- linux-2.4.20/drivers/net/skfp/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/skfp/CVS/Root	2005-01-06 23:03:31.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/net/skfp/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/skfp/CVS/Tag
--- linux-2.4.20/drivers/net/skfp/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/skfp/CVS/Tag	2005-01-06 23:03:32.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/net/skfp/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/skfp/.cvsignore
--- linux-2.4.20/drivers/net/skfp/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/skfp/.cvsignore	2001-06-24 17:16:41.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/net/skfp/h/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/skfp/h/CVS/Entries
--- linux-2.4.20/drivers/net/skfp/h/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/skfp/h/CVS/Entries	2005-01-06 23:03:33.000000000 -0600
@@ -0,0 +1,21 @@
+/cmtdef.h/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
+/fddi.h/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
+/fddimib.h/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
+/fplustm.h/1.2.4.1/Wed Jun 26 22:35:55 2002/-ko/Tlinux_2_4_20
+/hwmtm.h/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
+/lnkstat.h/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
+/mbuf.h/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
+/osdef1st.h/1.2/Fri May 12 23:48:40 2000/-ko/Tlinux_2_4_20
+/sba.h/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
+/sba_def.h/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
+/skfbi.h/1.2/Thu Apr  5 04:57:18 2001/-ko/Tlinux_2_4_20
+/skfbiinc.h/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
+/smc.h/1.2/Thu Apr  5 04:57:18 2001/-ko/Tlinux_2_4_20
+/smt.h/1.2.4.1/Wed Jun 26 22:35:55 2002/-ko/Tlinux_2_4_20
+/smt_p.h/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
+/smtstate.h/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
+/supern_2.h/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
+/targethw.h/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
+/targetos.h/1.2/Fri May 12 23:48:40 2000/-ko/Tlinux_2_4_20
+/types.h/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/net/skfp/h/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/skfp/h/CVS/Repository
--- linux-2.4.20/drivers/net/skfp/h/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/skfp/h/CVS/Repository	2005-01-06 23:03:32.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/net/skfp/h
diff -urNd -urNd linux-2.4.20/drivers/net/skfp/h/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/skfp/h/CVS/Root
--- linux-2.4.20/drivers/net/skfp/h/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/skfp/h/CVS/Root	2005-01-06 23:03:32.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/net/skfp/h/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/skfp/h/CVS/Tag
--- linux-2.4.20/drivers/net/skfp/h/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/skfp/h/CVS/Tag	2005-01-06 23:03:33.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/net/tc35815.c linux-2.4.20-mipscvs-20050106/drivers/net/tc35815.c
--- linux-2.4.20/drivers/net/tc35815.c	2002-08-02 19:39:44.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/drivers/net/tc35815.c	2002-03-02 19:53:51.000000000 -0600
@@ -7,9 +7,6 @@
  * Based on skelton.c by Donald Becker.
  * Copyright (C) 2000-2001 Toshiba Corporation
  *
- * Cleaned up various non portable stuff (save_and_cli etc) and made it
- * build on x86 platforms -- Alan Cox <alan@redhat.com> 20020302
- *
  * This program is free software; you can redistribute  it and/or modify it
  * under  the terms of  the GNU General  Public License as published by the
  * Free Software Foundation;  either version 2 of the  License, or (at your
@@ -29,13 +26,10 @@
  * You should have received a copy of the  GNU General Public License along
  * with this program; if not, write  to the Free Software Foundation, Inc.,
  * 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * TODO:
- *	Switch to spin_lock not lock_kernel for scalability.
  */
 
 static const char *version =
-	"tc35815.c:v0.00-ac 26/07/2000 by Toshiba Corporation\n";
+	"tc35815.c:v0.00 26/07/2000 by Toshiba Corporation\n";
 
 #include <linux/module.h>
 
@@ -405,14 +399,8 @@
 };
 
 
-#if defined(__mips__)
-/* MIPS weirdness */
 extern unsigned long tc_readl(volatile __u32 *addr);
 extern void tc_writel(unsigned long data, volatile __u32 *addr);
-#else
-#define tc_readl	readl
-#define tc_writel	writel
-#endif
 
 dma_addr_t priv_dma_handle;
 
@@ -477,6 +465,7 @@
 static void 	tc35815_chip_reset(struct net_device *dev);
 static void 	tc35815_chip_init(struct net_device *dev);
 static void 	tc35815_phy_chip_init(struct net_device *dev);
+static int 	tc35815_proc_info(char *buffer, char **start, off_t offset, int length, int *eof, void *data);
 
 /* A list of all installed tc35815 devices. */
 static struct net_device *root_tc35815_dev = NULL;
@@ -507,7 +496,7 @@
 		return -ENODEV;
 
 	if (pdev) {
-		unsigned long pci_memaddr;
+		unsigned int pci_memaddr;
 		unsigned int pci_irq_line;
 
 		printk(KERN_INFO "tc35815_probe: found device %#08x.%#08x\n", ent->vendor, ent->device);
@@ -571,12 +560,12 @@
 
 	/* Retrieve and print the ethernet address. */
 	while (tc_readl(&tr->PROM_Ctl) & PROM_Busy)
-		cpu_relax();
+		;
 	for (i = 0; i < 6; i += 2) {
 		unsigned short data;
 		tc_writel(PROM_Busy | PROM_Read | (i / 2 + 2), &tr->PROM_Ctl);
 		while (tc_readl(&tr->PROM_Ctl) & PROM_Busy)
-			cpu_relax();
+			;
 		data = tc_readl(&tr->PROM_Data);
 		dev->dev_addr[i] = data & 0xff;
 		dev->dev_addr[i+1] = data >> 8;
@@ -842,7 +831,6 @@
 	panic("%s: Illegal queue state.", dev->name);
 }
 
-#if 0
 static void print_buf(char *add, int length)
 {
 	int i;
@@ -859,7 +847,6 @@
 	}
 	printk("\n");
 }
-#endif
 
 static void print_eth(char *add)
 {
@@ -920,8 +907,7 @@
 	struct tc35815_regs *tr = (struct tc35815_regs *)dev->base_addr;
 	int flags;
 
-	save_flags(flags);
-	cli();
+	save_and_cli(flags);
 	printk(KERN_WARNING "%s: transmit timed out, status %#x\n",
 	       dev->name, tc_readl(&tr->Tx_Stat));
 	/* Try to restart the adaptor. */
@@ -977,8 +963,7 @@
 		dma_cache_wback_inv((unsigned long)buf, length);
 #endif
 
-		save_flags(flags);
-		cli();
+		save_and_cli(flags);
 
 		/* failsafe... */
 		if (lp->tfd_start != lp->tfd_end)
@@ -1428,8 +1413,7 @@
 	unsigned long flags;
 
 	if (netif_running(dev)) {
-		save_flags(flags);
-		cli();
+		save_and_cli(flags);
 		/* Update the statistics from the device registers. */
 		lp->stats.rx_missed_errors = tc_readl(&tr->Miss_Cnt);
 		restore_flags(flags);
@@ -1537,11 +1521,10 @@
 {
 	unsigned long data;
 	int flags;
-	save_flags(flags);
-	cli();
+	save_and_cli(flags);
 	tc_writel(MD_CA_Busy | (phy << 5) | phy_reg, &tr->MD_CA);
 	while (tc_readl(&tr->MD_CA) & MD_CA_Busy)
-		cpu_relax();
+		;
 	data = tc_readl(&tr->MD_Data);
 	restore_flags(flags);
 	return data;
@@ -1550,12 +1533,11 @@
 static void tc_phy_write(unsigned long d, struct tc35815_regs *tr, int phy, int phy_reg)
 {
 	int flags;
-	save_flags(flags);
-	cli();
+	save_and_cli(flags);
 	tc_writel(d, &tr->MD_Data);
 	tc_writel(MD_CA_Busy | MD_CA_Wr | (phy << 5) | phy_reg, &tr->MD_CA);
 	while (tc_readl(&tr->MD_CA) & MD_CA_Busy)
-		cpu_relax();
+		;
 	restore_flags(flags);
 }
 
@@ -1643,7 +1625,7 @@
 	/* reset the controller */
 	tc_writel(MAC_Reset, &tr->MAC_Ctl);
 	while (tc_readl(&tr->MAC_Ctl) & MAC_Reset)
-		cpu_relax();
+		;
 
 	tc_writel(0, &tr->MAC_Ctl);
 
@@ -1680,8 +1662,7 @@
 	tc_writel(CAM_Ena_Bit(CAM_ENTRY_SOURCE), &tr->CAM_Ena);
 	tc_writel(CAM_CompEn | CAM_BroadAcc, &tr->CAM_Ctl);
 
-	save_flags(flags);
-	cli();
+	save_and_cli(flags);
 
 	tc_writel(DMA_BURST_SIZE, &tr->DMA_Ctl);
 
@@ -1715,6 +1696,39 @@
 	restore_flags(flags);
 }
 
+static int tc35815_proc_info(char *buffer, char **start, off_t offset, int length, int *eof, void *data)
+{
+	int len = 0;
+	off_t pos = 0;
+	off_t begin = 0;
+	struct net_device *dev;
+
+	len += sprintf(buffer, "TC35815 statistics:\n");
+	for (dev = root_tc35815_dev; dev; dev = ((struct tc35815_local *)dev->priv)->next_module) {
+		struct tc35815_local *lp = (struct tc35815_local *)dev->priv;
+		len += sprintf(buffer + len,
+			       "%s: tx_ints %d, rx_ints %d, max_tx_qlen %d\n",
+			       dev->name,
+			       lp->lstats.tx_ints,
+			       lp->lstats.rx_ints,
+			       lp->lstats.max_tx_qlen);
+		pos = begin + len;
+
+		if (pos < offset) {
+			len = 0;
+			begin = pos;
+		}
+    
+		if (pos > offset+length) break;
+	}
+
+	*start = buffer + (offset - begin);
+	len -= (offset - begin);
+  
+	if (len > length) len = length;
+  
+	return len;
+}
 
 /* XXX */
 void
diff -urNd -urNd linux-2.4.20/drivers/net/tokenring/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/tokenring/CVS/Entries
--- linux-2.4.20/drivers/net/tokenring/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/tokenring/CVS/Entries	2005-01-06 23:03:37.000000000 -0600
@@ -0,0 +1,24 @@
+/.cvsignore/1.1/Sat Dec  4 03:59:04 1999/-ko/Tlinux_2_4_20
+/3c359.c/1.1.2.2/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
+/3c359.h/1.1.2.1/Wed Jun 26 22:35:56 2002/-ko/Tlinux_2_4_20
+/3c359_microcode.h/1.1.2.1/Wed Jun 26 22:35:56 2002/-ko/Tlinux_2_4_20
+/Config.in/1.9.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
+/Makefile/1.9.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
+/abyss.c/1.6.2.1/Tue Feb 26 05:59:40 2002/-ko/Tlinux_2_4_20
+/abyss.h/1.1/Fri Feb 18 00:24:38 2000/-ko/Tlinux_2_4_20
+/ibmtr.c/1.18/Sun Dec  2 11:34:45 2001/-ko/Tlinux_2_4_20
+/lanstreamer.c/1.10.2.3/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/lanstreamer.h/1.3.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
+/madgemc.c/1.5/Fri Oct 19 01:24:37 2001/-ko/Tlinux_2_4_20
+/madgemc.h/1.1/Fri Feb 18 00:24:38 2000/-ko/Tlinux_2_4_20
+/olympic.c/1.16.2.4/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/olympic.h/1.8.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/smctr.c/1.14/Fri Oct 19 01:24:37 2001/-ko/Tlinux_2_4_20
+/smctr.h/1.4/Thu Jun 14 04:24:05 2001/-ko/Tlinux_2_4_20
+/smctr_firmware.h/1.2/Thu Jun 14 04:24:05 2001/-ko/Tlinux_2_4_20
+/tms380tr.c/1.16/Fri Oct 19 01:24:37 2001/-ko/Tlinux_2_4_20
+/tms380tr.h/1.5/Thu Jun 14 04:24:05 2001/-ko/Tlinux_2_4_20
+/tms380tr_microcode.h/1.2/Wed Jan 10 05:27:31 2001/-ko/Tlinux_2_4_20
+/tmsisa.c/1.4/Fri Oct 19 01:24:37 2001/-ko/Tlinux_2_4_20
+/tmspci.c/1.6.2.1/Tue Feb 26 05:59:40 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/net/tokenring/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/tokenring/CVS/Repository
--- linux-2.4.20/drivers/net/tokenring/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/tokenring/CVS/Repository	2005-01-06 23:03:33.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/net/tokenring
diff -urNd -urNd linux-2.4.20/drivers/net/tokenring/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/tokenring/CVS/Root
--- linux-2.4.20/drivers/net/tokenring/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/tokenring/CVS/Root	2005-01-06 23:03:33.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/net/tokenring/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/tokenring/CVS/Tag
--- linux-2.4.20/drivers/net/tokenring/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/tokenring/CVS/Tag	2005-01-06 23:03:37.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/net/tokenring/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/tokenring/.cvsignore
--- linux-2.4.20/drivers/net/tokenring/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/tokenring/.cvsignore	1999-12-03 21:59:04.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/net/tulip/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/tulip/CVS/Entries
--- linux-2.4.20/drivers/net/tulip/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/tulip/CVS/Entries	2005-01-06 23:03:38.000000000 -0600
@@ -0,0 +1,13 @@
+/.cvsignore/1.1/Fri Mar 10 00:12:37 2000/-ko/Tlinux_2_4_20
+/21142.c/1.12.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
+/ChangeLog/1.9.2.3/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/Makefile/1.4/Sun Dec  2 11:34:45 2001/-ko/Tlinux_2_4_20
+/eeprom.c/1.11.2.1/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/interrupt.c/1.15.2.1/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/media.c/1.11.2.1/Tue Sep 10 15:32:51 2002/-ko/Tlinux_2_4_20
+/pnic.c/1.9/Sun Dec  2 11:34:45 2001/-ko/Tlinux_2_4_20
+/pnic2.c/1.1/Sun Dec  2 11:34:45 2001/-ko/Tlinux_2_4_20
+/timer.c/1.9/Wed Aug 22 03:24:44 2001/-ko/Tlinux_2_4_20
+/tulip.h/1.14.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/tulip_core.c/1.31.2.6/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/net/tulip/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/tulip/CVS/Repository
--- linux-2.4.20/drivers/net/tulip/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/tulip/CVS/Repository	2005-01-06 23:03:37.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/net/tulip
diff -urNd -urNd linux-2.4.20/drivers/net/tulip/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/tulip/CVS/Root
--- linux-2.4.20/drivers/net/tulip/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/tulip/CVS/Root	2005-01-06 23:03:37.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/net/tulip/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/tulip/CVS/Tag
--- linux-2.4.20/drivers/net/tulip/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/tulip/CVS/Tag	2005-01-06 23:03:38.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/net/tulip/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/tulip/.cvsignore
--- linux-2.4.20/drivers/net/tulip/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/tulip/.cvsignore	2000-03-09 18:12:37.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/net/wan/8253x/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/wan/8253x/CVS/Entries
--- linux-2.4.20/drivers/net/wan/8253x/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/wan/8253x/CVS/Entries	2005-01-06 23:03:46.000000000 -0600
@@ -0,0 +1,30 @@
+/.cvsignore/1.1.2.1/Tue Jul 23 12:55:43 2002/-ko/Tlinux_2_4_20
+/8253x.h/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
+/8253xchr.c/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
+/8253xctl.h/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
+/8253xdbg.c/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
+/8253xini.c/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
+/8253xint.c/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
+/8253xioc.h/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
+/8253xmcs.c/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
+/8253xmcs.h/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
+/8253xnet.c/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
+/8253xplx.c/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
+/8253xsyn.c/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
+/8253xtty.c/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
+/8253xutl.c/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
+/PciRegs.h/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
+/Reg9050.h/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
+/amcc5920.c/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
+/crc32.c/1.1.2.2/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
+/crc32.h/1.1.2.1/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
+/crc32dcl.h/1.1.2.1/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
+/endian.h/1.1.2.1/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
+/readme.txt/1.1.2.1/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
+/ring.h/1.1.2.1/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
+/sab8253xds.txt/1.1.2.1/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
+/sab8253xfs.txt/1.1.2.1/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
+/sab8253xov.txt/1.1.2.1/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
+/sp502.h/1.1.2.1/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/net/wan/8253x/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/wan/8253x/CVS/Repository
--- linux-2.4.20/drivers/net/wan/8253x/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/wan/8253x/CVS/Repository	2005-01-06 23:03:44.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/net/wan/8253x
diff -urNd -urNd linux-2.4.20/drivers/net/wan/8253x/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/wan/8253x/CVS/Root
--- linux-2.4.20/drivers/net/wan/8253x/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/wan/8253x/CVS/Root	2005-01-06 23:03:44.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/net/wan/8253x/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/wan/8253x/CVS/Tag
--- linux-2.4.20/drivers/net/wan/8253x/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/wan/8253x/CVS/Tag	2005-01-06 23:03:46.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/net/wan/8253x/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/wan/8253x/.cvsignore
--- linux-2.4.20/drivers/net/wan/8253x/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/wan/8253x/.cvsignore	2002-07-23 07:55:43.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/net/wan/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/wan/CVS/Entries
--- linux-2.4.20/drivers/net/wan/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/wan/CVS/Entries	2005-01-06 23:08:11.000000000 -0600
@@ -0,0 +1,52 @@
+/.cvsignore/1.1/Sat Dec  4 03:59:04 1999/-ko/Tlinux_2_4_20
+/Config.in/1.13.2.2/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
+/Makefile/1.14.2.2/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
+/c101.c/1.2/Fri Oct 19 01:24:37 2001/-ko/Tlinux_2_4_20
+/comx-hw-comx.c/1.6.2.1/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
+/comx-hw-locomx.c/1.5.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
+/comx-hw-mixcom.c/1.7.2.1/Sat Dec 29 05:38:05 2001/-ko/Tlinux_2_4_20
+/comx-hw-munich.c/1.1.2.3/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/comx-proto-fr.c/1.7/Fri Oct 19 01:24:37 2001/-ko/Tlinux_2_4_20
+/comx-proto-lapb.c/1.7/Fri Oct 19 01:24:37 2001/-ko/Tlinux_2_4_20
+/comx-proto-ppp.c/1.4/Fri Oct 19 01:24:37 2001/-ko/Tlinux_2_4_20
+/comx.c/1.12.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
+/comx.h/1.4/Sat Sep 22 12:49:28 2001/-ko/Tlinux_2_4_20
+/comxhw.h/1.1/Sun Mar 19 01:28:47 2000/-ko/Tlinux_2_4_20
+/cosa.c/1.22.2.2/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
+/cosa.h/1.2/Thu Apr  5 04:57:19 2001/-ko/Tlinux_2_4_20
+/cycx_drv.c/1.6.2.1/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
+/cycx_main.c/1.13/Fri Oct 19 01:24:37 2001/-ko/Tlinux_2_4_20
+/cycx_x25.c/1.13.2.1/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/dlci.c/1.7/Fri Oct 19 01:24:37 2001/-ko/Tlinux_2_4_20
+/dscc4.c/1.4/Sun Dec  2 11:34:45 2001/-ko/Tlinux_2_4_20
+/falc-lh.h/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
+/farsync.c/1.3.2.1/Sat Dec 29 05:38:05 2001/-ko/Tlinux_2_4_20
+/farsync.h/1.1/Sat Sep 22 12:49:28 2001/-ko/Tlinux_2_4_20
+/hd64570.h/1.1/Thu Apr  5 04:57:19 2001/-ko/Tlinux_2_4_20
+/hd6457x.c/1.1/Thu Apr  5 04:57:19 2001/-ko/Tlinux_2_4_20
+/hdlc.c/1.4/Fri Oct 19 01:24:38 2001/-ko/Tlinux_2_4_20
+/hostess_sv11.c/1.11/Mon Nov  5 20:16:01 2001/-ko/Tlinux_2_4_20
+/hscx.h/1.1/Sun Mar 19 01:28:47 2000/-ko/Tlinux_2_4_20
+/lapbether.c/1.8/Fri Oct 19 01:24:38 2001/-ko/Tlinux_2_4_20
+/mixcom.h/1.1/Sun Mar 19 01:28:47 2000/-ko/Tlinux_2_4_20
+/munich32x.h/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
+/n2.c/1.2/Fri Oct 19 01:24:38 2001/-ko/Tlinux_2_4_20
+/sbni.c/1.13.2.1/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
+/sbni.h/1.5/Sat Sep 22 12:49:28 2001/-ko/Tlinux_2_4_20
+/sdla.c/1.11.2.2/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
+/sdla_chdlc.c/1.11.2.2/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
+/sdla_fr.c/1.13.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
+/sdla_ft1.c/1.3.2.1/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
+/sdla_ppp.c/1.12.2.2/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
+/sdla_x25.c/1.9.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
+/sdladrv.c/1.8/Fri Oct 19 01:24:40 2001/-ko/Tlinux_2_4_20
+/sdlamain.c/1.10.2.1/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
+/sealevel.c/1.10.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
+/syncppp.c/1.14.2.1/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
+/wanpipe_multppp.c/1.4/Fri Oct 19 01:24:40 2001/-ko/Tlinux_2_4_20
+/x25_asy.c/1.7/Fri Oct 19 01:24:40 2001/-ko/Tlinux_2_4_20
+/x25_asy.h/1.2/Wed Jan 10 05:27:32 2001/-ko/Tlinux_2_4_20
+/z85230.c/1.9/Sun Dec  2 11:34:45 2001/-ko/Tlinux_2_4_20
+/z85230.h/1.5/Sun Dec  2 11:34:45 2001/-ko/Tlinux_2_4_20
+D/8253x////
+D/lmc////
diff -urNd -urNd linux-2.4.20/drivers/net/wan/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/wan/CVS/Repository
--- linux-2.4.20/drivers/net/wan/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/wan/CVS/Repository	2005-01-06 23:03:38.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/net/wan
diff -urNd -urNd linux-2.4.20/drivers/net/wan/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/wan/CVS/Root
--- linux-2.4.20/drivers/net/wan/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/wan/CVS/Root	2005-01-06 23:03:38.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/net/wan/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/wan/CVS/Tag
--- linux-2.4.20/drivers/net/wan/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/wan/CVS/Tag	2005-01-06 23:03:44.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/net/wan/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/wan/.cvsignore
--- linux-2.4.20/drivers/net/wan/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/wan/.cvsignore	1999-12-03 21:59:04.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/net/wan/lmc/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/wan/lmc/CVS/Entries
--- linux-2.4.20/drivers/net/wan/lmc/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/wan/lmc/CVS/Entries	2005-01-06 23:03:47.000000000 -0600
@@ -0,0 +1,16 @@
+/.cvsignore/1.1/Fri Apr 28 01:09:42 2000/-ko/Tlinux_2_4_20
+/Makefile/1.3/Wed Jan 10 17:18:01 2001/-ko/Tlinux_2_4_20
+/lmc.h/1.2/Wed Jan 31 22:22:32 2001/-ko/Tlinux_2_4_20
+/lmc_debug.c/1.1.4.1/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
+/lmc_debug.h/1.1/Fri Apr 28 01:09:42 2000/-ko/Tlinux_2_4_20
+/lmc_ioctl.h/1.2/Fri Mar  9 20:34:14 2001/-ko/Tlinux_2_4_20
+/lmc_main.c/1.10/Fri Oct 19 01:24:40 2001/-ko/Tlinux_2_4_20
+/lmc_media.c/1.3/Thu Apr  5 04:57:19 2001/-ko/Tlinux_2_4_20
+/lmc_media.h/1.2/Wed Jan 31 22:22:32 2001/-ko/Tlinux_2_4_20
+/lmc_prot.h/1.2/Wed Jan 31 22:22:32 2001/-ko/Tlinux_2_4_20
+/lmc_proto.c/1.3/Thu Apr  5 04:57:19 2001/-ko/Tlinux_2_4_20
+/lmc_proto.h/1.2/Wed Jan 31 22:22:32 2001/-ko/Tlinux_2_4_20
+/lmc_proto_raw.h/1.1/Fri Apr 28 01:09:42 2000/-ko/Tlinux_2_4_20
+/lmc_var.h/1.4.2.1/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
+/lmc_ver.h/1.2/Fri Mar  9 20:34:14 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/net/wan/lmc/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/wan/lmc/CVS/Repository
--- linux-2.4.20/drivers/net/wan/lmc/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/wan/lmc/CVS/Repository	2005-01-06 23:03:46.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/net/wan/lmc
diff -urNd -urNd linux-2.4.20/drivers/net/wan/lmc/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/wan/lmc/CVS/Root
--- linux-2.4.20/drivers/net/wan/lmc/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/wan/lmc/CVS/Root	2005-01-06 23:03:46.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/net/wan/lmc/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/wan/lmc/CVS/Tag
--- linux-2.4.20/drivers/net/wan/lmc/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/wan/lmc/CVS/Tag	2005-01-06 23:03:47.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/net/wan/lmc/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/wan/lmc/.cvsignore
--- linux-2.4.20/drivers/net/wan/lmc/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/wan/lmc/.cvsignore	2000-04-27 20:09:42.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/net/wireless/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/wireless/CVS/Entries
--- linux-2.4.20/drivers/net/wireless/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/wireless/CVS/Entries	2005-01-06 23:08:11.000000000 -0600
@@ -0,0 +1,18 @@
+/.cvsignore/1.1/Sat Jun 16 01:21:40 2001/-ko/Tlinux_2_4_20
+/Config.in/1.3.2.2/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
+/Makefile/1.3.2.1/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
+/README/1.1/Thu Jun 14 04:24:06 2001/-ko/Tlinux_2_4_20
+/airo.c/1.7.2.4/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/airo_cs.c/1.2.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/airport.c/1.4.2.2/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
+/hermes.c/1.5.2.2/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
+/hermes.h/1.6.2.2/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
+/hermes_rid.h/1.1.2.1/Tue Feb 26 05:59:40 2002/-ko/Tlinux_2_4_20
+/ieee802_11.h/1.1.2.2/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
+/orinoco.c/1.5.2.3/Tue Sep 10 15:32:51 2002/-ko/Tlinux_2_4_20
+/orinoco.h/1.5.2.2/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
+/orinoco_cs.c/1.5.2.2/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
+/orinoco_pci.c/1.1.2.2/Tue Sep 10 15:32:51 2002/-ko/Tlinux_2_4_20
+/orinoco_plx.c/1.2.2.5/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
+/todo.txt/1.1/Thu Jun 14 04:24:06 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/net/wireless/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/wireless/CVS/Repository
--- linux-2.4.20/drivers/net/wireless/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/wireless/CVS/Repository	2005-01-06 23:03:47.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/net/wireless
diff -urNd -urNd linux-2.4.20/drivers/net/wireless/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/wireless/CVS/Root
--- linux-2.4.20/drivers/net/wireless/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/wireless/CVS/Root	2005-01-06 23:03:47.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/net/wireless/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/wireless/CVS/Tag
--- linux-2.4.20/drivers/net/wireless/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/wireless/CVS/Tag	2005-01-06 23:03:49.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/net/wireless/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/wireless/.cvsignore
--- linux-2.4.20/drivers/net/wireless/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/net/wireless/.cvsignore	2001-06-15 20:21:40.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/nubus/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/nubus/CVS/Entries
--- linux-2.4.20/drivers/nubus/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/nubus/CVS/Entries	2005-01-06 23:03:49.000000000 -0600
@@ -0,0 +1,6 @@
+/.cvsignore/1.1.4.1/Mon Dec 31 03:33:19 2001/-ko/Tlinux_2_4_20
+/Makefile/1.3/Wed Jan 10 17:18:01 2001/-ko/Tlinux_2_4_20
+/nubus.c/1.7.2.1/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
+/nubus_syms.c/1.2/Tue Nov  6 00:55:11 2001/-ko/Tlinux_2_4_20
+/proc.c/1.4/Tue Nov 28 03:58:51 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/nubus/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/nubus/CVS/Repository
--- linux-2.4.20/drivers/nubus/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/nubus/CVS/Repository	2005-01-06 23:03:49.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/nubus
diff -urNd -urNd linux-2.4.20/drivers/nubus/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/nubus/CVS/Root
--- linux-2.4.20/drivers/nubus/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/nubus/CVS/Root	2005-01-06 23:03:49.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/nubus/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/nubus/CVS/Tag
--- linux-2.4.20/drivers/nubus/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/nubus/CVS/Tag	2005-01-06 23:03:49.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/nubus/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/nubus/.cvsignore
--- linux-2.4.20/drivers/nubus/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/nubus/.cvsignore	2001-12-30 21:33:19.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/parport/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/parport/CVS/Entries
--- linux-2.4.20/drivers/parport/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/parport/CVS/Entries	2005-01-06 23:03:51.000000000 -0600
@@ -0,0 +1,24 @@
+/.cvsignore/1.1.4.1/Mon Dec 31 03:33:19 2001/-ko/Tlinux_2_4_20
+/BUGS-parport/1.3/Thu Jun 14 04:24:07 2001/-ko/Tlinux_2_4_20
+/ChangeLog/1.26.2.3/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
+/Config.in/1.12.2.1/Sat Dec 29 05:38:06 2001/-ko/Tlinux_2_4_20
+/Makefile/1.6/Fri Oct 19 01:24:40 2001/-ko/Tlinux_2_4_20
+/TODO-parport/1.2/Mon Jun 19 22:45:47 2000/-ko/Tlinux_2_4_20
+/daisy.c/1.8.4.2/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
+/ieee1284.c/1.12/Tue Nov  6 07:56:01 2001/-ko/Tlinux_2_4_20
+/ieee1284_ops.c/1.12.2.1/Sat Dec 29 05:38:06 2001/-ko/Tlinux_2_4_20
+/init.c/1.10.2.1/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
+/multiface.h/1.1/Sat Oct  9 00:01:26 1999/-ko/Tlinux_2_4_20
+/parport_amiga.c/1.6/Tue Nov  6 00:55:11 2001/-ko/Tlinux_2_4_20
+/parport_arc.c/1.2/Fri Mar  9 20:34:14 2001/-ko/Tlinux_2_4_20
+/parport_atari.c/1.3/Tue Nov  6 00:55:11 2001/-ko/Tlinux_2_4_20
+/parport_cs.c/1.2.2.1/Sat Dec 29 05:38:06 2001/-ko/Tlinux_2_4_20
+/parport_gsc.c/1.5.2.1/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
+/parport_mfc3.c/1.5.2.2/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
+/parport_pc.c/1.39.2.4/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
+/parport_serial.c/1.4.2.2/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
+/parport_sunbpp.c/1.6/Wed Aug 22 03:24:45 2001/-ko/Tlinux_2_4_20
+/probe.c/1.6/Thu Jun 14 04:24:07 2001/-ko/Tlinux_2_4_20
+/procfs.c/1.5/Fri Mar  9 20:34:14 2001/-ko/Tlinux_2_4_20
+/share.c/1.19.2.1/Tue Feb 26 05:59:41 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/parport/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/parport/CVS/Repository
--- linux-2.4.20/drivers/parport/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/parport/CVS/Repository	2005-01-06 23:03:49.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/parport
diff -urNd -urNd linux-2.4.20/drivers/parport/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/parport/CVS/Root
--- linux-2.4.20/drivers/parport/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/parport/CVS/Root	2005-01-06 23:03:49.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/parport/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/parport/CVS/Tag
--- linux-2.4.20/drivers/parport/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/parport/CVS/Tag	2005-01-06 23:03:51.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/parport/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/parport/.cvsignore
--- linux-2.4.20/drivers/parport/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/parport/.cvsignore	2001-12-30 21:33:19.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/pci/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/pci/CVS/Entries
--- linux-2.4.20/drivers/pci/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/pci/CVS/Entries	2005-01-06 23:08:11.000000000 -0600
@@ -0,0 +1,15 @@
+/.cvsignore/1.6/Sun Jun 25 03:05:13 2000/-ko/Tlinux_2_4_20
+/Config.in/1.1/Fri Feb  4 07:40:45 2000/-ko/Tlinux_2_4_20
+/Makefile/1.18.2.1/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/compat.c/1.6/Tue Nov  6 07:56:01 2001/-ko/Tlinux_2_4_20
+/gen-devlist.c/1.7.2.1/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
+/names.c/1.7.2.1/Tue Sep 10 15:32:51 2002/-ko/Tlinux_2_4_20
+/pci.c/1.48.2.4/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/pci.ids/1.35.2.5/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
+/proc.c/1.20.2.1/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/quirks.c/1.24.2.4/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/setup-bus.c/1.4.2.2/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/setup-irq.c/1.2/Thu Jun 14 04:24:07 2001/-ko/Tlinux_2_4_20
+/setup-res.c/1.9.2.1/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/syscall.c/1.3/Wed Feb 16 01:07:43 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/pci/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/pci/CVS/Repository
--- linux-2.4.20/drivers/pci/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/pci/CVS/Repository	2005-01-06 23:03:51.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/pci
diff -urNd -urNd linux-2.4.20/drivers/pci/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/pci/CVS/Root
--- linux-2.4.20/drivers/pci/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/pci/CVS/Root	2005-01-06 23:03:51.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/pci/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/pci/CVS/Tag
--- linux-2.4.20/drivers/pci/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/pci/CVS/Tag	2005-01-06 23:03:52.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/pci/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/pci/.cvsignore
--- linux-2.4.20/drivers/pci/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/pci/.cvsignore	2000-06-24 22:05:13.000000000 -0500
@@ -0,0 +1,5 @@
+.depend
+.*.flags
+gen-devlist
+devlist.h
+classlist.h
diff -urNd -urNd linux-2.4.20/drivers/pci/pci.c linux-2.4.20-mipscvs-20050106/drivers/pci/pci.c
--- linux-2.4.20/drivers/pci/pci.c	2002-11-28 17:53:14.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/pci/pci.c	2003-01-11 11:53:14.000000000 -0600
@@ -1262,11 +1262,17 @@
 {
 	unsigned int buses;
 	unsigned short cr;
+	unsigned short bctl;
 	struct pci_bus *child;
 	int is_cardbus = (dev->hdr_type == PCI_HEADER_TYPE_CARDBUS);
 
 	pci_read_config_dword(dev, PCI_PRIMARY_BUS, &buses);
 	DBG("Scanning behind PCI bridge %s, config %06x, pass %d\n", dev->slot_name, buses & 0xffffff, pass);
+	/* Disable MasterAbortMode during probing to avoid reporting
+           of bus errors (in some architectures) */
+	pci_read_config_word(dev, PCI_BRIDGE_CONTROL, &bctl);
+	pci_write_config_word(dev, PCI_BRIDGE_CONTROL, 
+			      bctl & ~PCI_BRIDGE_CTL_MASTER_ABORT);
 	if ((buses & 0xffff00) && !pcibios_assign_all_busses()) {
 		/*
 		 * Bus already configured by firmware, process it in the first
@@ -1325,6 +1331,7 @@
 		pci_write_config_byte(dev, PCI_SUBORDINATE_BUS, max);
 		pci_write_config_word(dev, PCI_COMMAND, cr);
 	}
+	pci_write_config_word(dev, PCI_BRIDGE_CONTROL, bctl);
 	sprintf(child->name, (is_cardbus ? "PCI CardBus #%02x" : "PCI Bus #%02x"), child->number);
 	return max;
 }
diff -urNd -urNd linux-2.4.20/drivers/pci/pci.ids linux-2.4.20-mipscvs-20050106/drivers/pci/pci.ids
--- linux-2.4.20/drivers/pci/pci.ids	2002-11-28 17:53:14.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/pci/pci.ids	2003-01-11 11:53:14.000000000 -0600
@@ -1076,6 +1076,7 @@
 	0074  56k Voice Modem
 		1033 8014  RCV56ACF 56k Voice Modem
 	009b  Vrc5476
+	00a5  VRC4173
 	00a6  VRC5477 AC97
 	00cd  IEEE 1394 [OrangeLink] Host Controller
 		12ee 8011  Root hub
diff -urNd -urNd linux-2.4.20/drivers/pcmcia/au1000_db1x00.c linux-2.4.20-mipscvs-20050106/drivers/pcmcia/au1000_db1x00.c
--- linux-2.4.20/drivers/pcmcia/au1000_db1x00.c	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/pcmcia/au1000_db1x00.c	2003-01-07 04:41:30.000000000 -0600
@@ -0,0 +1,269 @@
+/*
+ *
+ * Alchemy Semi Db1x00 boards specific pcmcia routines.
+ *
+ * Copyright 2002 MontaVista Software Inc.
+ * Author: MontaVista Software, Inc.
+ *         	ppopov@mvista.com or source@mvista.com
+ *
+ * ########################################################################
+ *
+ *  This program is free software; you can distribute it and/or modify it
+ *  under the terms of the GNU General Public License (Version 2) as
+ *  published by the Free Software Foundation.
+ *
+ *  This program is distributed in the hope it will be useful, but WITHOUT
+ *  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ *  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ *  for more details.
+ *
+ *  You should have received a copy of the GNU General Public License along
+ *  with this program; if not, write to the Free Software Foundation, Inc.,
+ *  59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
+ *
+ * ########################################################################
+ *
+ * 
+ */
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/config.h>
+#include <linux/delay.h>
+#include <linux/ioport.h>
+#include <linux/kernel.h>
+#include <linux/tqueue.h>
+#include <linux/timer.h>
+#include <linux/mm.h>
+#include <linux/proc_fs.h>
+#include <linux/version.h>
+#include <linux/types.h>
+
+#include <pcmcia/version.h>
+#include <pcmcia/cs_types.h>
+#include <pcmcia/cs.h>
+#include <pcmcia/ss.h>
+#include <pcmcia/bulkmem.h>
+#include <pcmcia/cistpl.h>
+#include <pcmcia/bus_ops.h>
+#include "cs_internal.h"
+
+#include <asm/io.h>
+#include <asm/irq.h>
+#include <asm/system.h>
+
+#include <asm/au1000.h>
+#include <asm/au1000_pcmcia.h>
+
+#include <asm/db1x00.h>
+
+static BCSR * const bcsr = (BCSR *)0xAE000000;
+
+static int db1x00_pcmcia_init(struct pcmcia_init *init)
+{
+	bcsr->pcmcia = 0; /* turn off power */
+	au_sync_delay(2);
+	return PCMCIA_NUM_SOCKS;
+}
+
+static int db1x00_pcmcia_shutdown(void)
+{
+	bcsr->pcmcia = 0; /* turn off power */
+	au_sync_delay(2);
+	return 0;
+}
+
+static int 
+db1x00_pcmcia_socket_state(unsigned sock, struct pcmcia_state *state)
+{
+	u32 inserted;
+	unsigned char vs;
+
+	if(sock > PCMCIA_MAX_SOCK) return -1;
+
+	state->ready = 0;
+	state->vs_Xv = 0;
+	state->vs_3v = 0;
+	state->detect = 0;
+
+	if (sock == 0) {
+		vs = bcsr->status & 0x3;
+		inserted = !(bcsr->status & (1<<4));
+	}
+	else {
+		vs = (bcsr->status & 0xC)>>2;
+		inserted = !(bcsr->status & (1<<5));
+	}
+
+	DEBUG(KERN_DEBUG "db1x00 socket %d: inserted %d, vs %d\n", 
+			sock, inserted, vs);
+
+	if (inserted) {
+		switch (vs) {
+			case 0:
+			case 2:
+				state->vs_3v=1;
+				break;
+			case 3: /* 5V */
+				break;
+			default:
+				/* return without setting 'detect' */
+				printk(KERN_ERR "db1x00 bad VS (%d)\n",
+						vs);
+				return -1;
+		}
+		state->detect = 1;
+		state->ready = 1;
+	}
+	else {
+		/* if the card was previously inserted and then ejected,
+		 * we should turn off power to it
+		 */
+		if ((sock == 0) && (bcsr->pcmcia & BCSR_PCMCIA_PC0RST)) {
+			bcsr->pcmcia &= ~(BCSR_PCMCIA_PC0RST | 
+					BCSR_PCMCIA_PC0DRVEN |
+					BCSR_PCMCIA_PC0VPP |
+					BCSR_PCMCIA_PC0VCC);
+		}
+		else if ((sock == 1) && (bcsr->pcmcia & BCSR_PCMCIA_PC1RST)) {
+			bcsr->pcmcia &= ~(BCSR_PCMCIA_PC1RST | 
+					BCSR_PCMCIA_PC1DRVEN |
+					BCSR_PCMCIA_PC1VPP |
+					BCSR_PCMCIA_PC1VCC);
+		}
+	}
+
+	state->bvd1=1;
+	state->bvd2=1;
+	state->wrprot=0; 
+	return 1;
+}
+
+
+static int db1x00_pcmcia_get_irq_info(struct pcmcia_irq_info *info)
+{
+	if(info->sock > PCMCIA_MAX_SOCK) return -1;
+
+	if(info->sock == 0) {
+		info->irq = AU1000_GPIO_2;
+	}
+	else 
+		info->irq = AU1000_GPIO_5;
+
+	return 0;
+}
+
+
+static int 
+db1x00_pcmcia_configure_socket(const struct pcmcia_configure *configure)
+{
+	u16 pwr;
+	int sock = configure->sock;
+
+	if(sock > PCMCIA_MAX_SOCK) return -1;
+
+	DEBUG(KERN_DEBUG "socket %d Vcc %dV Vpp %dV, reset %d\n", 
+			sock, configure->vcc, configure->vpp, configure->reset);
+
+	/* pcmcia reg was set to zero at init time. Be careful when
+	 * initializing a socket not to wipe out the settings of the 
+	 * other socket.
+	 */
+	pwr = bcsr->pcmcia;
+	pwr &= ~(0xf << sock*8); /* clear voltage settings */
+
+	switch(configure->vcc){
+		case 0:  /* Vcc 0 */
+			pwr |= SET_VCC_VPP(0,0,sock);
+			break;
+		case 50: /* Vcc 5V */
+			switch(configure->vpp) {
+				case 0:
+					pwr |= SET_VCC_VPP(2,0,sock);
+					break;
+				case 50:
+					pwr |= SET_VCC_VPP(2,1,sock);
+					break;
+				case 12:
+					pwr |= SET_VCC_VPP(2,2,sock);
+					break;
+				case 33:
+				default:
+					pwr |= SET_VCC_VPP(0,0,sock);
+					printk("%s: bad Vcc/Vpp (%d:%d)\n", 
+							__FUNCTION__, 
+							configure->vcc, 
+							configure->vpp);
+					break;
+			}
+			break;
+		case 33: /* Vcc 3.3V */
+			switch(configure->vpp) {
+				case 0:
+					pwr |= SET_VCC_VPP(1,0,sock);
+					break;
+				case 12:
+					pwr |= SET_VCC_VPP(1,2,sock);
+					break;
+				case 33:
+					pwr |= SET_VCC_VPP(1,1,sock);
+					break;
+				case 50:
+				default:
+					pwr |= SET_VCC_VPP(0,0,sock);
+					printk("%s: bad Vcc/Vpp (%d:%d)\n", 
+							__FUNCTION__, 
+							configure->vcc, 
+							configure->vpp);
+					break;
+			}
+			break;
+		default: /* what's this ? */
+			pwr |= SET_VCC_VPP(0,0,sock);
+			printk(KERN_ERR "%s: bad Vcc %d\n", 
+					__FUNCTION__, configure->vcc);
+			break;
+	}
+
+	bcsr->pcmcia = pwr;
+	au_sync_delay(300);
+
+	if (sock == 0) {
+		if (!configure->reset) {
+			pwr |= BCSR_PCMCIA_PC0DRVEN;
+			bcsr->pcmcia = pwr;
+			au_sync_delay(300);
+			pwr |= BCSR_PCMCIA_PC0RST;
+			bcsr->pcmcia = pwr;
+			au_sync_delay(100);
+		}
+		else {
+			pwr &= ~(BCSR_PCMCIA_PC0RST | BCSR_PCMCIA_PC0DRVEN);
+			bcsr->pcmcia = pwr;
+			au_sync_delay(100);
+		}
+	}
+	else {
+		if (!configure->reset) {
+			pwr |= BCSR_PCMCIA_PC1DRVEN;
+			bcsr->pcmcia = pwr;
+			au_sync_delay(300);
+			pwr |= BCSR_PCMCIA_PC1RST;
+			bcsr->pcmcia = pwr;
+			au_sync_delay(100);
+		}
+		else {
+			pwr &= ~(BCSR_PCMCIA_PC1RST | BCSR_PCMCIA_PC1DRVEN);
+			bcsr->pcmcia = pwr;
+			au_sync_delay(100);
+		}
+	}
+	return 0;
+}
+
+struct pcmcia_low_level db1x00_pcmcia_ops = { 
+	db1x00_pcmcia_init,
+	db1x00_pcmcia_shutdown,
+	db1x00_pcmcia_socket_state,
+	db1x00_pcmcia_get_irq_info,
+	db1x00_pcmcia_configure_socket
+};
diff -urNd -urNd linux-2.4.20/drivers/pcmcia/au1000_generic.c linux-2.4.20-mipscvs-20050106/drivers/pcmcia/au1000_generic.c
--- linux-2.4.20/drivers/pcmcia/au1000_generic.c	2002-11-28 17:53:14.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/pcmcia/au1000_generic.c	2003-01-07 04:41:30.000000000 -0600
@@ -132,13 +132,14 @@
 #endif
 };
 
+static spinlock_t pcmcia_lock = SPIN_LOCK_UNLOCKED;
+
 static int __init au1000_pcmcia_driver_init(void)
 {
 	servinfo_t info;
 	struct pcmcia_init pcmcia_init;
 	struct pcmcia_state state;
 	unsigned int i;
-	unsigned long timing3;
 
 	printk("\nAu1x00 PCMCIA (CS release %s)\n", CS_RELEASE);
 
@@ -156,6 +157,8 @@
 
 #if defined(CONFIG_MIPS_PB1000) || defined(CONFIG_MIPS_PB1100) || defined(CONFIG_MIPS_PB1500)
 	pcmcia_low_level=&pb1x00_pcmcia_ops;
+#elif defined(CONFIG_MIPS_DB1000) || defined(CONFIG_MIPS_DB1100) || defined(CONFIG_MIPS_DB1500)
+	pcmcia_low_level=&db1x00_pcmcia_ops;
 #else
 #error Unsupported AU1000 board.
 #endif
@@ -194,15 +197,19 @@
 		
 		if (i == 0) {
 			pcmcia_socket[i].virt_io = 
-				(u32)ioremap((ioaddr_t)0xF00000000, 0x1000);
-			pcmcia_socket[i].phys_attr = (memaddr_t)0xF40000000;
-			pcmcia_socket[i].phys_mem = (memaddr_t)0xF80000000;
+				(u32)ioremap((ioaddr_t)AU1X_SOCK0_IO, 0x1000);
+			pcmcia_socket[i].phys_attr = 
+				(ioaddr_t)AU1X_SOCK0_PHYS_ATTR;
+			pcmcia_socket[i].phys_mem = 
+				(ioaddr_t)AU1X_SOCK0_PHYS_MEM;
 		}
 		else  {
 			pcmcia_socket[i].virt_io = 
-				(u32)ioremap((ioaddr_t)0xF08000000, 0x1000);
-			pcmcia_socket[i].phys_attr = (memaddr_t)0xF48000000;
-			pcmcia_socket[i].phys_mem = (memaddr_t)0xF88000000;
+				(u32)ioremap((ioaddr_t)AU1X_SOCK1_IO, 0x1000);
+			pcmcia_socket[i].phys_attr = 
+				(ioaddr_t)AU1X_SOCK1_PHYS_ATTR;
+			pcmcia_socket[i].phys_mem = 
+				(ioaddr_t)AU1X_SOCK1_PHYS_MEM;
 		}
 	}
 
@@ -585,8 +592,7 @@
 		}
 	}
 
-	save_flags(flags);
-	cli();
+	spin_lock_irqsave(&pcmcia_lock, flags);
 	start=map->sys_start;
 
 	if(map->sys_stop==0)
@@ -603,7 +609,7 @@
 
 	map->sys_stop=map->sys_start+(map->sys_stop-start);
 	pcmcia_socket[sock].mem_map[map->map]=*map;
-	restore_flags(flags);
+	spin_unlock_irqrestore(&pcmcia_lock, flags);
 	DEBUG(3, "set_mem_map %d start %x stop %x card_start %x\n", 
 			map->map, map->sys_start, map->sys_stop, 
 			map->card_start);
diff -urNd -urNd linux-2.4.20/drivers/pcmcia/au1000_pb1x00.c linux-2.4.20-mipscvs-20050106/drivers/pcmcia/au1000_pb1x00.c
--- linux-2.4.20/drivers/pcmcia/au1000_pb1x00.c	2002-11-28 17:53:14.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/pcmcia/au1000_pb1x00.c	2002-12-16 12:12:29.000000000 -0600
@@ -124,6 +124,7 @@
 #else
 	vs0 = (au_readw(PB1100_BOARD_STATUS) >> 4) & 0x3;
 	inserted0 = !((au_readl(SYS_PINSTATERD) >> 9) & 0x1); /* gpio 9 */
+	inserted1 = 0;
 #endif
 
 	state->ready = 0;
@@ -144,7 +145,7 @@
 					/* return without setting 'detect' */
 					printk(KERN_ERR "pb1x00 bad VS (%d)\n",
 							vs0);
-					return;
+					return 0;
 			}
 			state->detect = 1;
 		}
@@ -162,7 +163,7 @@
 					/* return without setting 'detect' */
 					printk(KERN_ERR "pb1x00 bad VS (%d)\n",
 							vs1);
-					return;
+					return 0;
 			}
 			state->detect = 1;
 		}
diff -urNd -urNd linux-2.4.20/drivers/pcmcia/Config.in linux-2.4.20-mipscvs-20050106/drivers/pcmcia/Config.in
--- linux-2.4.20/drivers/pcmcia/Config.in	2002-08-02 19:39:44.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/drivers/pcmcia/Config.in	2002-12-11 00:12:30.000000000 -0600
@@ -29,5 +29,13 @@
    if [ "$CONFIG_8xx" = "y" ]; then
       dep_tristate '  M8xx support' CONFIG_PCMCIA_M8XX $CONFIG_PCMCIA
    fi
+   if [ "$CONFIG_CPU_AU1X00" = "y" ]; then
+      dep_tristate '  Au1x00 PCMCIA support' CONFIG_PCMCIA_AU1X00 $CONFIG_PCMCIA 
+      if [ "$CONFIG_PCMCIA_AU1X00" != "n" ]; then
+        bool '  Pb1x00 board support' CONFIG_PCMCIA_PB1X00
+        bool '  Db1x00 board support' CONFIG_PCMCIA_DB1X00
+      fi
+   fi
 fi
+
 endmenu
diff -urNd -urNd linux-2.4.20/drivers/pcmcia/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/pcmcia/CVS/Entries
--- linux-2.4.20/drivers/pcmcia/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/pcmcia/CVS/Entries	2005-01-06 23:03:54.000000000 -0600
@@ -0,0 +1,55 @@
+/.cvsignore/1.1/Sat Oct  9 00:01:26 1999/-ko/Tlinux_2_4_20
+/Config.in/1.10.2.5/Wed Dec 11 06:12:30 2002/-ko/Tlinux_2_4_20
+/Makefile/1.12.2.3/Wed Dec 11 06:12:30 2002/-ko/Tlinux_2_4_20
+/au1000_db1x00.c/1.1.2.2/Tue Jan  7 10:41:30 2003/-ko/Tlinux_2_4_20
+/au1000_generic.c/1.3.2.8/Tue Jan  7 10:41:30 2003/-ko/Tlinux_2_4_20
+/au1000_pb1x00.c/1.1.2.2/Mon Dec 16 18:12:29 2002/-ko/Tlinux_2_4_20
+/bulkmem.c/1.12.2.1/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/cardbus.c/1.12.2.1/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/cirrus.h/1.3.2.1/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/cistpl.c/1.9.2.1/Sat Dec 29 05:38:07 2001/-ko/Tlinux_2_4_20
+/cs.c/1.23.2.2/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
+/cs_internal.h/1.9.4.1/Sat Dec 29 05:38:07 2001/-ko/Tlinux_2_4_20
+/ds.c/1.14/Sun Dec  2 11:34:46 2001/-ko/Tlinux_2_4_20
+/hd64465_ss.c/1.3/Thu Aug 23 22:24:37 2001/-ko/Tlinux_2_4_20
+/i82092.c/1.2.2.2/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/i82092aa.h/1.1/Tue Nov  6 07:56:02 2001/-ko/Tlinux_2_4_20
+/i82365.c/1.18.2.1/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/i82365.h/1.3.2.1/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/m8xx_pcmcia.c/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
+/o2micro.h/1.4.2.1/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/pci_socket.c/1.9.2.1/Sat Dec 29 05:38:07 2001/-ko/Tlinux_2_4_20
+/pci_socket.h/1.4.4.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
+/ricoh.h/1.5.2.2/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/rsrc_mgr.c/1.12.2.1/Sat Dec 29 05:38:07 2001/-ko/Tlinux_2_4_20
+/sa1100.h/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
+/sa1100_adsbitsy.c/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
+/sa1100_assabet.c/1.2.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
+/sa1100_badge4.c/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
+/sa1100_cerf.c/1.2.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
+/sa1100_flexanet.c/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
+/sa1100_freebird.c/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
+/sa1100_generic.c/1.2.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
+/sa1100_generic.h/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
+/sa1100_graphicsclient.c/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
+/sa1100_graphicsmaster.c/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
+/sa1100_h3600.c/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
+/sa1100_jornada720.c/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
+/sa1100_neponset.c/1.2.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
+/sa1100_pangolin.c/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
+/sa1100_pfs168.c/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
+/sa1100_shannon.c/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
+/sa1100_simpad.c/1.2.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
+/sa1100_stork.c/1.2.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
+/sa1100_xp860.c/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
+/sa1100_yopy.c/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
+/sa1111_generic.c/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
+/sa1111_generic.h/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
+/tcic.c/1.11.2.1/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/tcic.h/1.3.2.1/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/ti113x.h/1.6.2.2/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/topic.h/1.2.2.1/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/vg468.h/1.3.2.1/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/yenta.c/1.27.2.2/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
+/yenta.h/1.3/Sat Feb  5 06:47:25 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/pcmcia/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/pcmcia/CVS/Repository
--- linux-2.4.20/drivers/pcmcia/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/pcmcia/CVS/Repository	2005-01-06 23:03:52.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/pcmcia
diff -urNd -urNd linux-2.4.20/drivers/pcmcia/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/pcmcia/CVS/Root
--- linux-2.4.20/drivers/pcmcia/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/pcmcia/CVS/Root	2005-01-06 23:03:52.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/pcmcia/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/pcmcia/CVS/Tag
--- linux-2.4.20/drivers/pcmcia/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/pcmcia/CVS/Tag	2005-01-06 23:03:54.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/pcmcia/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/pcmcia/.cvsignore
--- linux-2.4.20/drivers/pcmcia/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/pcmcia/.cvsignore	1999-10-08 19:01:26.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/pcmcia/Makefile linux-2.4.20-mipscvs-20050106/drivers/pcmcia/Makefile
--- linux-2.4.20/drivers/pcmcia/Makefile	2002-08-02 19:39:44.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/drivers/pcmcia/Makefile	2002-12-11 00:12:30.000000000 -0600
@@ -59,6 +59,11 @@
   endif
 endif
 
+obj-$(CONFIG_PCMCIA_AU1X00)			+= au1x00_ss.o
+au1000_ss-objs-y				:= au1000_generic.o
+au1000_ss-objs-$(CONFIG_PCMCIA_PB1X00)		+= au1000_pb1x00.o
+au1000_ss-objs-$(CONFIG_PCMCIA_DB1X00)		+= au1000_db1x00.o
+
 obj-$(CONFIG_PCMCIA_SA1100)	+= sa1100_cs.o
 obj-$(CONFIG_PCMCIA_M8XX)	+= m8xx_pcmcia.o
 
@@ -90,5 +95,8 @@
 sa1100_cs.o: $(sa1100_cs-objs-y)
 	$(LD) -r -o $@ $(sa1100_cs-objs-y)
 
+au1x00_ss.o: $(au1000_ss-objs-y)
+	$(LD) -r -o $@ $(au1000_ss-objs-y)
+
 yenta_socket.o: $(yenta_socket-objs)
 	$(LD) $(LD_RFLAG) -r -o $@ $(yenta_socket-objs)
diff -urNd -urNd linux-2.4.20/drivers/pnp/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/pnp/CVS/Entries
--- linux-2.4.20/drivers/pnp/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/pnp/CVS/Entries	2005-01-06 23:08:10.000000000 -0600
@@ -0,0 +1,7 @@
+/.cvsignore/1.2/Tue Mar 17 22:11:39 1998/-ko/Tlinux_2_4_20
+/Config.in/1.7/Tue Nov  6 07:56:02 2001/-ko/Tlinux_2_4_20
+/Makefile/1.9/Thu Apr  5 04:57:41 2001/-ko/Tlinux_2_4_20
+/isapnp.c/1.20.2.3/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
+/isapnp_proc.c/1.10.2.1/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
+/quirks.c/1.7.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/pnp/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/pnp/CVS/Repository
--- linux-2.4.20/drivers/pnp/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/pnp/CVS/Repository	2005-01-06 23:03:54.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/pnp
diff -urNd -urNd linux-2.4.20/drivers/pnp/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/pnp/CVS/Root
--- linux-2.4.20/drivers/pnp/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/pnp/CVS/Root	2005-01-06 23:03:54.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/pnp/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/pnp/CVS/Tag
--- linux-2.4.20/drivers/pnp/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/pnp/CVS/Tag	2005-01-06 23:03:55.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/pnp/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/pnp/.cvsignore
--- linux-2.4.20/drivers/pnp/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/pnp/.cvsignore	1998-03-17 16:11:39.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/s390/block/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/s390/block/CVS/Entries
--- linux-2.4.20/drivers/s390/block/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/s390/block/CVS/Entries	2005-01-06 23:03:57.000000000 -0600
@@ -0,0 +1,20 @@
+/Makefile/1.5/Fri Aug 24 03:38:42 2001/-ko/Tlinux_2_4_20
+/dasd.c/1.13.2.4/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/dasd_3370_erp.c/1.2/Fri Aug 24 03:38:42 2001/-ko/Tlinux_2_4_20
+/dasd_3370_erp.h/1.1/Fri Aug 24 03:38:42 2001/-ko/Tlinux_2_4_20
+/dasd_3990_erp.c/1.6.2.1/Tue Feb 26 05:59:41 2002/-ko/Tlinux_2_4_20
+/dasd_3990_erp.h/1.3/Fri Aug 24 03:38:42 2001/-ko/Tlinux_2_4_20
+/dasd_9336_erp.c/1.2/Fri Aug 24 03:38:42 2001/-ko/Tlinux_2_4_20
+/dasd_9336_erp.h/1.1/Fri Aug 24 03:38:42 2001/-ko/Tlinux_2_4_20
+/dasd_9343_erp.c/1.2/Fri Aug 24 03:38:42 2001/-ko/Tlinux_2_4_20
+/dasd_9343_erp.h/1.2/Fri Aug 24 03:38:42 2001/-ko/Tlinux_2_4_20
+/dasd_diag.c/1.4/Mon Nov  5 20:16:03 2001/-ko/Tlinux_2_4_20
+/dasd_diag.h/1.2/Fri Aug 24 03:38:42 2001/-ko/Tlinux_2_4_20
+/dasd_eckd.c/1.7.2.1/Tue Feb 26 05:59:41 2002/-ko/Tlinux_2_4_20
+/dasd_eckd.h/1.4/Mon Nov  5 20:16:03 2001/-ko/Tlinux_2_4_20
+/dasd_fba.c/1.4/Mon Nov  5 20:16:04 2001/-ko/Tlinux_2_4_20
+/dasd_fba.h/1.2/Fri Aug 24 03:38:42 2001/-ko/Tlinux_2_4_20
+/dasd_int.h/1.2.2.2/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
+/xpram.c/1.6/Tue Nov  6 07:56:02 2001/-ko/Tlinux_2_4_20
+/xpram.h/1.1/Fri Mar  9 20:34:18 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/s390/block/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/s390/block/CVS/Repository
--- linux-2.4.20/drivers/s390/block/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/s390/block/CVS/Repository	2005-01-06 23:03:56.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/s390/block
diff -urNd -urNd linux-2.4.20/drivers/s390/block/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/s390/block/CVS/Root
--- linux-2.4.20/drivers/s390/block/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/s390/block/CVS/Root	2005-01-06 23:03:56.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/s390/block/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/s390/block/CVS/Tag
--- linux-2.4.20/drivers/s390/block/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/s390/block/CVS/Tag	2005-01-06 23:03:57.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/s390/char/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/s390/char/CVS/Entries
--- linux-2.4.20/drivers/s390/char/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/s390/char/CVS/Entries	2005-01-06 23:03:58.000000000 -0600
@@ -0,0 +1,35 @@
+/Makefile/1.6/Tue Nov  6 00:55:12 2001/-ko/Tlinux_2_4_20
+/con3215.c/1.8.2.1/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
+/ctrlchar.c/1.3/Mon Nov  5 20:16:04 2001/-ko/Tlinux_2_4_20
+/ctrlchar.h/1.2/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
+/hwc.h/1.5.2.1/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
+/hwc_con.c/1.6.2.1/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
+/hwc_cpi.c/1.3/Tue Nov  6 00:55:12 2001/-ko/Tlinux_2_4_20
+/hwc_rw.c/1.6.2.1/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
+/hwc_rw.h/1.4/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
+/hwc_tty.c/1.6/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
+/tape.c/1.3/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
+/tape.h/1.3/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
+/tape3480.c/1.3/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
+/tape3480.h/1.3/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
+/tape3490.c/1.3/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
+/tape3490.h/1.3/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
+/tape34xx.c/1.6.2.1/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
+/tape34xx.h/1.3/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
+/tape3590.c/1.1/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
+/tape3590.h/1.1/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
+/tapeblock.c/1.4/Tue Nov  6 07:56:02 2001/-ko/Tlinux_2_4_20
+/tapeblock.h/1.3/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
+/tapechar.c/1.5/Sun Dec  2 11:34:47 2001/-ko/Tlinux_2_4_20
+/tapechar.h/1.3/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
+/tapedefs.h/1.3/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
+/tuball.c/1.4.2.2/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/tubfs.c/1.3.2.2/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/tubio.h/1.3.2.2/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/tubtty.c/1.4.2.3/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/tubttyaid.c/1.1/Wed Jun 13 17:27:59 2001/-ko/Tlinux_2_4_20
+/tubttybld.c/1.2.2.1/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/tubttyrcl.c/1.1/Wed Jun 13 17:27:59 2001/-ko/Tlinux_2_4_20
+/tubttyscl.c/1.2/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
+/tubttysiz.c/1.2/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/s390/char/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/s390/char/CVS/Repository
--- linux-2.4.20/drivers/s390/char/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/s390/char/CVS/Repository	2005-01-06 23:03:57.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/s390/char
diff -urNd -urNd linux-2.4.20/drivers/s390/char/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/s390/char/CVS/Root
--- linux-2.4.20/drivers/s390/char/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/s390/char/CVS/Root	2005-01-06 23:03:57.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/s390/char/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/s390/char/CVS/Tag
--- linux-2.4.20/drivers/s390/char/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/s390/char/CVS/Tag	2005-01-06 23:03:58.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/s390/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/s390/CVS/Entries
--- linux-2.4.20/drivers/s390/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/s390/CVS/Entries	2005-01-06 23:08:10.000000000 -0600
@@ -0,0 +1,13 @@
+/Config.in/1.7/Fri Aug 24 03:38:41 2001/-ko/Tlinux_2_4_20
+/Makefile/1.5.2.1/Tue Feb 26 05:59:41 2002/-ko/Tlinux_2_4_20
+/ccwcache.c/1.3.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
+/ebcdic.c/1.2/Fri Mar  9 20:34:18 2001/-ko/Tlinux_2_4_20
+/idals.c/1.3/Fri Aug 24 03:38:42 2001/-ko/Tlinux_2_4_20
+/s390dyn.c/1.3/Fri Aug 24 03:38:42 2001/-ko/Tlinux_2_4_20
+/s390io.c/1.6.2.4/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/s390mach.c/1.4.2.1/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
+/sysinfo.c/1.1.2.2/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
+D/block////
+D/char////
+D/misc////
+D/net////
diff -urNd -urNd linux-2.4.20/drivers/s390/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/s390/CVS/Repository
--- linux-2.4.20/drivers/s390/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/s390/CVS/Repository	2005-01-06 23:03:55.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/s390
diff -urNd -urNd linux-2.4.20/drivers/s390/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/s390/CVS/Root
--- linux-2.4.20/drivers/s390/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/s390/CVS/Root	2005-01-06 23:03:55.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/s390/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/s390/CVS/Tag
--- linux-2.4.20/drivers/s390/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/s390/CVS/Tag	2005-01-06 23:03:56.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/s390/misc/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/s390/misc/CVS/Entries
--- linux-2.4.20/drivers/s390/misc/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/s390/misc/CVS/Entries	2005-01-06 23:03:58.000000000 -0600
@@ -0,0 +1,3 @@
+/Makefile/1.4/Wed Jun 13 17:27:59 2001/-ko/Tlinux_2_4_20
+/chandev.c/1.7.2.4/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/s390/misc/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/s390/misc/CVS/Repository
--- linux-2.4.20/drivers/s390/misc/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/s390/misc/CVS/Repository	2005-01-06 23:03:58.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/s390/misc
diff -urNd -urNd linux-2.4.20/drivers/s390/misc/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/s390/misc/CVS/Root
--- linux-2.4.20/drivers/s390/misc/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/s390/misc/CVS/Root	2005-01-06 23:03:58.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/s390/misc/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/s390/misc/CVS/Tag
--- linux-2.4.20/drivers/s390/misc/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/s390/misc/CVS/Tag	2005-01-06 23:03:58.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/s390/net/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/s390/net/CVS/Entries
--- linux-2.4.20/drivers/s390/net/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/s390/net/CVS/Entries	2005-01-06 23:03:59.000000000 -0600
@@ -0,0 +1,10 @@
+/Makefile/1.5.2.1/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
+/ctcmain.c/1.5.2.1/Tue Feb 26 05:59:42 2002/-ko/Tlinux_2_4_20
+/ctctty.c/1.2.2.1/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
+/ctctty.h/1.2/Fri Aug 24 03:38:44 2001/-ko/Tlinux_2_4_20
+/fsm.c/1.2/Fri Aug 24 03:38:44 2001/-ko/Tlinux_2_4_20
+/fsm.h/1.2.2.2/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
+/iucv.c/1.9.2.2/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
+/iucv.h/1.5/Mon Nov  5 20:16:04 2001/-ko/Tlinux_2_4_20
+/netiucv.c/1.8.2.3/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/s390/net/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/s390/net/CVS/Repository
--- linux-2.4.20/drivers/s390/net/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/s390/net/CVS/Repository	2005-01-06 23:03:58.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/s390/net
diff -urNd -urNd linux-2.4.20/drivers/s390/net/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/s390/net/CVS/Root
--- linux-2.4.20/drivers/s390/net/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/s390/net/CVS/Root	2005-01-06 23:03:58.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/s390/net/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/s390/net/CVS/Tag
--- linux-2.4.20/drivers/s390/net/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/s390/net/CVS/Tag	2005-01-06 23:03:59.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/sbus/audio/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/sbus/audio/CVS/Entries
--- linux-2.4.20/drivers/sbus/audio/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sbus/audio/CVS/Entries	2005-01-06 23:04:00.000000000 -0600
@@ -0,0 +1,14 @@
+/.cvsignore/1.2/Sat Oct  9 00:01:26 1999/-ko/Tlinux_2_4_20
+/Config.in/1.5/Wed Jan 31 22:22:33 2001/-ko/Tlinux_2_4_20
+/Makefile/1.6/Wed Aug 22 03:24:47 2001/-ko/Tlinux_2_4_20
+/amd7930.c/1.12.2.1/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
+/amd7930.h/1.4/Sat Feb  5 06:47:25 2000/-ko/Tlinux_2_4_20
+/audio.c/1.25/Mon Nov  5 21:57:12 2001/-ko/Tlinux_2_4_20
+/cs4215.h/1.7/Thu Nov 23 02:00:53 2000/-ko/Tlinux_2_4_20
+/cs4231.c/1.14.2.1/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
+/cs4231.h/1.6/Sat Feb  5 06:47:25 2000/-ko/Tlinux_2_4_20
+/dbri.c/1.15.2.1/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
+/dbri.h/1.8/Thu Nov 23 02:00:53 2000/-ko/Tlinux_2_4_20
+/dmy.c/1.8/Mon Nov  5 21:57:12 2001/-ko/Tlinux_2_4_20
+/dummy.h/1.2/Sat Feb  5 06:47:25 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/sbus/audio/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/sbus/audio/CVS/Repository
--- linux-2.4.20/drivers/sbus/audio/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sbus/audio/CVS/Repository	2005-01-06 23:03:59.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/sbus/audio
diff -urNd -urNd linux-2.4.20/drivers/sbus/audio/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/sbus/audio/CVS/Root
--- linux-2.4.20/drivers/sbus/audio/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sbus/audio/CVS/Root	2005-01-06 23:03:59.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/sbus/audio/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/sbus/audio/CVS/Tag
--- linux-2.4.20/drivers/sbus/audio/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sbus/audio/CVS/Tag	2005-01-06 23:04:00.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/sbus/audio/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/sbus/audio/.cvsignore
--- linux-2.4.20/drivers/sbus/audio/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sbus/audio/.cvsignore	1999-10-08 19:01:26.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/sbus/char/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/sbus/char/CVS/Entries
--- linux-2.4.20/drivers/sbus/char/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sbus/char/CVS/Entries	2005-01-06 23:04:02.000000000 -0600
@@ -0,0 +1,40 @@
+/.cvsignore/1.2/Tue Mar 17 22:11:45 1998/-ko/Tlinux_2_4_20
+/Config.in/1.10.4.1/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
+/Makefile/1.17/Wed Jun 13 17:28:00 2001/-ko/Tlinux_2_4_20
+/aurora.c/1.13.2.2/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
+/aurora.h/1.3/Wed Aug 22 03:24:48 2001/-ko/Tlinux_2_4_20
+/bbc_envctrl.c/1.1/Wed Jun 13 17:28:00 2001/-ko/Tlinux_2_4_20
+/bbc_i2c.c/1.1/Wed Jun 13 17:28:00 2001/-ko/Tlinux_2_4_20
+/bbc_i2c.h/1.1/Wed Jun 13 17:28:00 2001/-ko/Tlinux_2_4_20
+/bpp.c/1.22/Tue Nov  6 00:55:13 2001/-ko/Tlinux_2_4_20
+/cd180.h/1.1/Thu Jun 17 14:08:47 1999/-ko/Tlinux_2_4_20
+/cpwatchdog.c/1.4/Mon Nov  5 21:57:12 2001/-ko/Tlinux_2_4_20
+/display7seg.c/1.4/Mon Nov  5 21:57:12 2001/-ko/Tlinux_2_4_20
+/envctrl.c/1.17.2.1/Tue Feb 26 05:59:42 2002/-ko/Tlinux_2_4_20
+/flash.c/1.19/Mon Nov  5 21:57:12 2001/-ko/Tlinux_2_4_20
+/jsflash.c/1.15/Tue Nov  6 07:56:02 2001/-ko/Tlinux_2_4_20
+/max1617.h/1.1/Wed Jun 13 17:28:00 2001/-ko/Tlinux_2_4_20
+/openprom.c/1.14.2.1/Tue Sep 10 15:32:51 2002/-ko/Tlinux_2_4_20
+/pcikbd.c/1.28.2.1/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
+/pcikbd.h/1.2/Tue Mar 17 22:11:48 1998/-ko/Tlinux_2_4_20
+/riowatchdog.c/1.3.2.1/Tue Feb 26 05:59:42 2002/-ko/Tlinux_2_4_20
+/rtc.c/1.21/Mon Nov  5 21:57:12 2001/-ko/Tlinux_2_4_20
+/sab82532.c/1.28.2.1/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
+/su.c/1.25.2.1/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
+/sunkbd.c/1.28.2.1/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
+/sunkbd.h/1.3/Wed Feb 23 00:41:18 2000/-ko/Tlinux_2_4_20
+/sunkbdmap.c/1.1/Tue Mar 17 22:11:54 1998/-ko/Tlinux_2_4_20
+/sunkeymap.c/1.2/Sat Feb  5 06:47:26 2000/-ko/Tlinux_2_4_20
+/sunkeymap.map/1.2/Sat Feb  5 06:47:26 2000/-ko/Tlinux_2_4_20
+/sunmouse.c/1.21/Wed Jan 31 22:22:33 2001/-ko/Tlinux_2_4_20
+/sunmouse.h/1.2/Sat Feb  5 06:47:26 2000/-ko/Tlinux_2_4_20
+/sunserial.c/1.14.2.2/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
+/sunserial.h/1.6/Sat Feb  5 06:47:28 2000/-ko/Tlinux_2_4_20
+/uctrl.c/1.12.2.1/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
+/vfc.h/1.3/Thu Feb 24 00:13:06 2000/-ko/Tlinux_2_4_20
+/vfc_dev.c/1.25/Sat Sep 22 12:49:29 2001/-ko/Tlinux_2_4_20
+/vfc_i2c.c/1.6/Fri Mar  9 20:34:19 2001/-ko/Tlinux_2_4_20
+/vfc_i2c.h/1.1.1.1/Sun Jun  1 03:17:35 1997/-ko/Tlinux_2_4_20
+/zs.c/1.25.2.2/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
+/zs.h/1.3/Sat Feb  5 06:47:28 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/sbus/char/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/sbus/char/CVS/Repository
--- linux-2.4.20/drivers/sbus/char/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sbus/char/CVS/Repository	2005-01-06 23:04:00.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/sbus/char
diff -urNd -urNd linux-2.4.20/drivers/sbus/char/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/sbus/char/CVS/Root
--- linux-2.4.20/drivers/sbus/char/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sbus/char/CVS/Root	2005-01-06 23:04:00.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/sbus/char/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/sbus/char/CVS/Tag
--- linux-2.4.20/drivers/sbus/char/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sbus/char/CVS/Tag	2005-01-06 23:04:02.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/sbus/char/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/sbus/char/.cvsignore
--- linux-2.4.20/drivers/sbus/char/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sbus/char/.cvsignore	1998-03-17 16:11:45.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/sbus/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/sbus/CVS/Entries
--- linux-2.4.20/drivers/sbus/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sbus/CVS/Entries	2005-01-06 23:08:10.000000000 -0600
@@ -0,0 +1,6 @@
+/.cvsignore/1.2/Tue Mar 17 22:11:40 1998/-ko/Tlinux_2_4_20
+/Makefile/1.4/Thu Apr  5 04:57:41 2001/-ko/Tlinux_2_4_20
+/dvma.c/1.9.2.1/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
+/sbus.c/1.17.2.2/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
+D/audio////
+D/char////
diff -urNd -urNd linux-2.4.20/drivers/sbus/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/sbus/CVS/Repository
--- linux-2.4.20/drivers/sbus/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sbus/CVS/Repository	2005-01-06 23:03:59.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/sbus
diff -urNd -urNd linux-2.4.20/drivers/sbus/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/sbus/CVS/Root
--- linux-2.4.20/drivers/sbus/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sbus/CVS/Root	2005-01-06 23:03:59.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/sbus/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/sbus/CVS/Tag
--- linux-2.4.20/drivers/sbus/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sbus/CVS/Tag	2005-01-06 23:03:59.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/sbus/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/sbus/.cvsignore
--- linux-2.4.20/drivers/sbus/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sbus/.cvsignore	1998-03-17 16:11:40.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/scsi/aacraid/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/scsi/aacraid/CVS/Entries
--- linux-2.4.20/drivers/scsi/aacraid/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aacraid/CVS/Entries	2005-01-06 23:04:40.000000000 -0600
@@ -0,0 +1,14 @@
+/.cvsignore/1.1.2.1/Thu Jan 17 01:29:06 2002/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.3/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
+/README/1.1.2.3/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
+/TODO/1.1.2.1/Sat Dec 29 05:38:09 2001/-ko/Tlinux_2_4_20
+/aachba.c/1.1.2.3/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
+/aacraid.h/1.1.2.3/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
+/commctrl.c/1.1.2.2/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
+/comminit.c/1.1.2.3/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
+/commsup.c/1.1.2.3/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
+/dpcsup.c/1.1.2.3/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
+/linit.c/1.1.2.3/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
+/rx.c/1.1.2.3/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
+/sa.c/1.1.2.1/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/scsi/aacraid/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/scsi/aacraid/CVS/Repository
--- linux-2.4.20/drivers/scsi/aacraid/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aacraid/CVS/Repository	2005-01-06 23:04:39.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/scsi/aacraid
diff -urNd -urNd linux-2.4.20/drivers/scsi/aacraid/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/scsi/aacraid/CVS/Root
--- linux-2.4.20/drivers/scsi/aacraid/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aacraid/CVS/Root	2005-01-06 23:04:39.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/scsi/aacraid/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/scsi/aacraid/CVS/Tag
--- linux-2.4.20/drivers/scsi/aacraid/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aacraid/CVS/Tag	2005-01-06 23:04:40.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/scsi/aacraid/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/scsi/aacraid/.cvsignore
--- linux-2.4.20/drivers/scsi/aacraid/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aacraid/.cvsignore	2002-01-16 19:29:06.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/scsi/aic7xxx/aicasm/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/aicasm/CVS/Entries
--- linux-2.4.20/drivers/scsi/aic7xxx/aicasm/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/aicasm/CVS/Entries	2005-01-06 23:04:44.000000000 -0600
@@ -0,0 +1,11 @@
+/Makefile/1.3.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
+/aicasm.c/1.3.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
+/aicasm.h/1.3.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
+/aicasm_gram.y/1.3.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
+/aicasm_insformat.h/1.2.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
+/aicasm_macro_gram.y/1.1.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
+/aicasm_macro_scan.l/1.1.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
+/aicasm_scan.l/1.3.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
+/aicasm_symbol.c/1.4.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
+/aicasm_symbol.h/1.2.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/scsi/aic7xxx/aicasm/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/aicasm/CVS/Repository
--- linux-2.4.20/drivers/scsi/aic7xxx/aicasm/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/aicasm/CVS/Repository	2005-01-06 23:04:44.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/scsi/aic7xxx/aicasm
diff -urNd -urNd linux-2.4.20/drivers/scsi/aic7xxx/aicasm/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/aicasm/CVS/Root
--- linux-2.4.20/drivers/scsi/aic7xxx/aicasm/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/aicasm/CVS/Root	2005-01-06 23:04:44.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/scsi/aic7xxx/aicasm/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/aicasm/CVS/Tag
--- linux-2.4.20/drivers/scsi/aic7xxx/aicasm/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/aicasm/CVS/Tag	2005-01-06 23:04:44.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/scsi/aic7xxx/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/CVS/Entries
--- linux-2.4.20/drivers/scsi/aic7xxx/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/CVS/Entries	2005-01-06 23:08:10.000000000 -0600
@@ -0,0 +1,24 @@
+/.cvsignore/1.2/Wed Nov 28 10:11:46 2001/-ko/Tlinux_2_4_20
+/Config.in/1.2.2.1/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
+/Makefile/1.3.2.1/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
+/aic7770.c/1.4.2.2/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/aic7770_osm.c/1.1.2.1/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
+/aic7xxx.h/1.4.2.1/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
+/aic7xxx.reg/1.13.2.1/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
+/aic7xxx.seq/1.12.2.1/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
+/aic7xxx_93cx6.c/1.3.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
+/aic7xxx_93cx6.h/1.2.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
+/aic7xxx_core.c/1.1.2.2/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
+/aic7xxx_host.h/1.1.2.2/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
+/aic7xxx_inline.h/1.4.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
+/aic7xxx_osm.c/1.1.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
+/aic7xxx_osm.h/1.6.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
+/aic7xxx_osm_pci.c/1.1.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
+/aic7xxx_pci.c/1.4.2.2/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
+/aic7xxx_proc.c/1.4.2.2/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
+/aic7xxx_reg.h/1.4.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
+/aic7xxx_seq.h/1.4.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
+/cam.h/1.3/Tue Nov  6 07:56:06 2001/-ko/Tlinux_2_4_20
+/queue.h/1.1/Thu Apr  5 04:58:07 2001/-ko/Tlinux_2_4_20
+/scsi_message.h/1.4.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
+D/aicasm////
diff -urNd -urNd linux-2.4.20/drivers/scsi/aic7xxx/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/CVS/Repository
--- linux-2.4.20/drivers/scsi/aic7xxx/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/CVS/Repository	2005-01-06 23:04:40.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/scsi/aic7xxx
diff -urNd -urNd linux-2.4.20/drivers/scsi/aic7xxx/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/CVS/Root
--- linux-2.4.20/drivers/scsi/aic7xxx/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/CVS/Root	2005-01-06 23:04:40.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/scsi/aic7xxx/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/CVS/Tag
--- linux-2.4.20/drivers/scsi/aic7xxx/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/CVS/Tag	2005-01-06 23:04:44.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/scsi/aic7xxx/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/.cvsignore
--- linux-2.4.20/drivers/scsi/aic7xxx/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/.cvsignore	2001-11-28 04:11:46.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/scsi/aic7xxx_old/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx_old/CVS/Entries
--- linux-2.4.20/drivers/scsi/aic7xxx_old/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx_old/CVS/Entries	2005-01-06 23:04:45.000000000 -0600
@@ -0,0 +1,10 @@
+/README.aic7xxx/1.2/Thu Aug 23 22:24:40 2001/-ko/Tlinux_2_4_20
+/aic7xxx.h/1.1.2.1/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
+/aic7xxx.reg/1.3/Thu Aug 23 22:24:40 2001/-ko/Tlinux_2_4_20
+/aic7xxx.seq/1.3/Thu Aug 23 22:24:40 2001/-ko/Tlinux_2_4_20
+/aic7xxx_proc.c/1.3/Fri Oct 19 01:24:46 2001/-ko/Tlinux_2_4_20
+/aic7xxx_reg.h/1.2/Thu Aug 23 22:24:40 2001/-ko/Tlinux_2_4_20
+/aic7xxx_seq.c/1.2/Thu Aug 23 22:24:40 2001/-ko/Tlinux_2_4_20
+/scsi_message.h/1.1/Thu Apr  5 04:58:07 2001/-ko/Tlinux_2_4_20
+/sequencer.h/1.2/Wed Jun 13 17:28:02 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/scsi/aic7xxx_old/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx_old/CVS/Repository
--- linux-2.4.20/drivers/scsi/aic7xxx_old/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx_old/CVS/Repository	2005-01-06 23:04:44.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/scsi/aic7xxx_old
diff -urNd -urNd linux-2.4.20/drivers/scsi/aic7xxx_old/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx_old/CVS/Root
--- linux-2.4.20/drivers/scsi/aic7xxx_old/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx_old/CVS/Root	2005-01-06 23:04:44.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/scsi/aic7xxx_old/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx_old/CVS/Tag
--- linux-2.4.20/drivers/scsi/aic7xxx_old/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx_old/CVS/Tag	2005-01-06 23:04:45.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/scsi/Config.in linux-2.4.20-mipscvs-20050106/drivers/scsi/Config.in
--- linux-2.4.20/drivers/scsi/Config.in	2002-11-28 17:53:14.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/Config.in	2003-01-20 14:21:43.000000000 -0600
@@ -37,7 +37,7 @@
 fi
 if [ "$CONFIG_DECSTATION" = "y" ]; then
    dep_tristate 'DEC NCR53C94 Scsi Driver' CONFIG_SCSI_DECNCR $CONFIG_SCSI $CONFIG_TC
-   dep_tristate 'DEC SII Scsi Driver' CONFIG_SCSI_DECSII $CONFIG_SCSI
+   dep_tristate 'DEC SII Scsi Driver' CONFIG_SCSI_DECSII $CONFIG_SCSI $CONFIG_MIPS32
 fi
 
 if [ "$CONFIG_PCI" = "y" ]; then
diff -urNd -urNd linux-2.4.20/drivers/scsi/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/scsi/CVS/Entries
--- linux-2.4.20/drivers/scsi/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/CVS/Entries	2005-01-06 23:08:10.000000000 -0600
@@ -0,0 +1,286 @@
+/.cvsignore/1.5/Wed Nov 28 13:07:35 2001/-ko/Tlinux_2_4_20
+/3w-xxxx.c/1.15.2.3/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/3w-xxxx.h/1.7.2.3/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/53c7,8xx.c/1.18.2.1/Tue Feb 26 05:59:42 2002/-ko/Tlinux_2_4_20
+/53c7,8xx.h/1.6/Wed Jun 13 17:28:00 2001/-ko/Tlinux_2_4_20
+/53c7,8xx.scr/1.1.1.1/Sun Jun  1 03:17:36 1997/-ko/Tlinux_2_4_20
+/53c700.c/1.3.2.2/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
+/53c700.h/1.3.2.1/Tue Feb 26 05:59:42 2002/-ko/Tlinux_2_4_20
+/53c700.scr/1.2.2.1/Tue Feb 26 05:59:42 2002/-ko/Tlinux_2_4_20
+/53c7xx.c/1.16.2.2/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
+/53c7xx.h/1.7/Tue Nov  6 07:56:03 2001/-ko/Tlinux_2_4_20
+/53c7xx.scr/1.3/Wed Jun 13 17:28:00 2001/-ko/Tlinux_2_4_20
+/53c8xx_d.h/1.3/Fri Feb  4 07:40:46 2000/-ko/Tlinux_2_4_20
+/53c8xx_u.h/1.1.1.1/Sun Jun  1 03:17:37 1997/-ko/Tlinux_2_4_20
+/AM53C974.c/1.15/Mon Nov  5 20:16:04 2001/-ko/Tlinux_2_4_20
+/AM53C974.h/1.6/Tue Nov 28 03:58:51 2000/-ko/Tlinux_2_4_20
+/BusLogic.c/1.15.2.1/Sat Dec 29 05:38:07 2001/-ko/Tlinux_2_4_20
+/BusLogic.h/1.12/Thu Aug 23 22:24:38 2001/-ko/Tlinux_2_4_20
+/ChangeLog/1.1.1.1/Sun Jun  1 03:17:37 1997/-ko/Tlinux_2_4_20
+/ChangeLog.ips/1.5.2.2/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
+/ChangeLog.ncr53c8xx/1.17/Thu Aug 23 22:24:38 2001/-ko/Tlinux_2_4_20
+/ChangeLog.serverraid/1.2/Mon Nov  5 20:16:04 2001/-ko/Tlinux_2_4_20
+/ChangeLog.sym53c8xx/1.12/Thu Aug 23 22:24:38 2001/-ko/Tlinux_2_4_20
+/Config.in/1.36.2.6/Mon Jan 20 20:21:43 2003/-ko/Tlinux_2_4_20
+/FlashPoint.c/1.6/Thu Aug 23 22:24:38 2001/-ko/Tlinux_2_4_20
+/LICENSE.FlashPoint/1.1.1.1/Sun Jun  1 03:17:36 1997/-ko/Tlinux_2_4_20
+/Makefile/1.38.2.4/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
+/NCR5380.c/1.13.2.2/Tue Feb 26 05:59:43 2002/-ko/Tlinux_2_4_20
+/NCR5380.h/1.5.2.1/Sat Dec 29 05:38:07 2001/-ko/Tlinux_2_4_20
+/NCR53C9x.c/1.14.2.3/Mon Nov 25 12:18:58 2002/-ko/Tlinux_2_4_20
+/NCR53C9x.h/1.8.2.1/Wed Jul 24 17:55:47 2002/-ko/Tlinux_2_4_20
+/NCR53c406a.c/1.13/Mon Nov  5 20:16:05 2001/-ko/Tlinux_2_4_20
+/NCR53c406a.h/1.3/Sat Jan 29 01:42:16 2000/-ko/Tlinux_2_4_20
+/NCR_D700.c/1.1.2.1/Tue Feb 26 05:59:43 2002/-ko/Tlinux_2_4_20
+/NCR_D700.h/1.1/Fri Oct 19 01:24:42 2001/-ko/Tlinux_2_4_20
+/README.53c700/1.3/Mon Nov 19 13:53:59 2001/-ko/Tlinux_2_4_20
+/README.AM53C974/1.1.1.1/Sun Jun  1 03:17:40 1997/-ko/Tlinux_2_4_20
+/README.BusLogic/1.5/Tue Aug 25 09:18:23 1998/-ko/Tlinux_2_4_20
+/README.FlashPoint/1.1.1.1/Sun Jun  1 03:17:37 1997/-ko/Tlinux_2_4_20
+/README.Mylex/1.2/Tue Aug 25 09:18:23 1998/-ko/Tlinux_2_4_20
+/README.aha152x/1.1/Sat Feb  5 06:47:28 2000/-ko/Tlinux_2_4_20
+/README.aic7xxx/1.12/Thu Aug 23 22:24:38 2001/-ko/Tlinux_2_4_20
+/README.dpti/1.1/Fri Oct 19 01:24:42 2001/-ko/Tlinux_2_4_20
+/README.dtc3x80/1.1.1.1/Sun Jun  1 03:17:38 1997/-ko/Tlinux_2_4_20
+/README.g_NCR5380/1.1.1.1/Sun Jun  1 03:17:38 1997/-ko/Tlinux_2_4_20
+/README.ibmmca/1.5/Thu Jun 14 04:24:08 2001/-ko/Tlinux_2_4_20
+/README.in2000/1.4/Sat Sep 19 19:17:35 1998/-ko/Tlinux_2_4_20
+/README.ncr53c7xx/1.1/Mon Jan  4 16:06:52 1999/-ko/Tlinux_2_4_20
+/README.ncr53c8xx/1.10.2.1/Sat Dec 29 05:38:07 2001/-ko/Tlinux_2_4_20
+/README.osst/1.1/Wed Jan 10 17:18:01 2001/-ko/Tlinux_2_4_20
+/README.ppa/1.2/Mon Jan  4 16:06:53 1999/-ko/Tlinux_2_4_20
+/README.qlogicfas/1.1.1.1/Sun Jun  1 03:17:41 1997/-ko/Tlinux_2_4_20
+/README.qlogicisp/1.1.1.1/Sun Jun  1 03:17:41 1997/-ko/Tlinux_2_4_20
+/README.st/1.10.2.2/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
+/README.tmscsim/1.4/Wed Jan 10 17:18:01 2001/-ko/Tlinux_2_4_20
+/a2091.c/1.11.2.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
+/a2091.h/1.6/Wed Jan 10 05:27:32 2001/-ko/Tlinux_2_4_20
+/a3000.c/1.9.2.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
+/a3000.h/1.6/Wed Jan 10 05:27:32 2001/-ko/Tlinux_2_4_20
+/advansys.c/1.22/Sun Dec  2 11:34:47 2001/-ko/Tlinux_2_4_20
+/advansys.h/1.8/Wed Jun 13 17:28:01 2001/-ko/Tlinux_2_4_20
+/aha152x.c/1.30.2.3/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
+/aha152x.h/1.8.2.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
+/aha1542.c/1.21/Tue Nov  6 00:55:14 2001/-ko/Tlinux_2_4_20
+/aha1542.h/1.5/Thu Apr  5 04:57:41 2001/-ko/Tlinux_2_4_20
+/aha1740.c/1.10/Mon Nov  5 20:16:06 2001/-ko/Tlinux_2_4_20
+/aha1740.h/1.4/Sat Jan 29 01:42:17 2000/-ko/Tlinux_2_4_20
+/aic7xxx_old.c/1.9/Sun Dec  2 11:34:48 2001/-ko/Tlinux_2_4_20
+/amiga7xx.c/1.11/Tue Nov  6 07:56:03 2001/-ko/Tlinux_2_4_20
+/amiga7xx.h/1.6/Thu Oct  5 01:18:57 2000/-ko/Tlinux_2_4_20
+/atari_NCR5380.c/1.2.4.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
+/atari_dma_emul.c/1.3/Thu Apr  5 04:57:41 2001/-ko/Tlinux_2_4_20
+/atari_scsi.c/1.11.2.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
+/atari_scsi.h/1.3/Thu Oct  5 01:18:57 2000/-ko/Tlinux_2_4_20
+/atp870u.c/1.18.2.1/Tue Sep 10 15:32:51 2002/-ko/Tlinux_2_4_20
+/atp870u.h/1.5/Fri Feb  4 07:40:46 2000/-ko/Tlinux_2_4_20
+/blz1230.c/1.9.2.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
+/blz1230.h/1.3/Sat Jan 29 01:42:17 2000/-ko/Tlinux_2_4_20
+/blz2060.c/1.9.2.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
+/blz2060.h/1.3/Sat Jan 29 01:42:17 2000/-ko/Tlinux_2_4_20
+/bvme6000.c/1.3.2.1/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
+/bvme6000.h/1.3/Thu Oct  5 01:18:57 2000/-ko/Tlinux_2_4_20
+/constants.c/1.8/Tue Nov  6 07:56:03 2001/-ko/Tlinux_2_4_20
+/constants.h/1.1.1.1/Sun Jun  1 03:17:35 1997/-ko/Tlinux_2_4_20
+/cpqfc.Readme/1.4/Tue Nov  6 07:56:03 2001/-ko/Tlinux_2_4_20
+/cpqfcTS.h/1.2/Fri Aug 24 03:38:44 2001/-ko/Tlinux_2_4_20
+/cpqfcTSchip.h/1.1/Thu Oct  5 01:18:57 2000/-ko/Tlinux_2_4_20
+/cpqfcTScontrol.c/1.5/Tue Nov  6 07:56:03 2001/-ko/Tlinux_2_4_20
+/cpqfcTSi2c.c/1.1/Thu Oct  5 01:18:57 2000/-ko/Tlinux_2_4_20
+/cpqfcTSinit.c/1.11.2.1/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
+/cpqfcTSioctl.h/1.2/Tue Nov  6 07:56:03 2001/-ko/Tlinux_2_4_20
+/cpqfcTSstructs.h/1.4.2.2/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
+/cpqfcTStrigger.c/1.2/Sat Sep 22 12:49:31 2001/-ko/Tlinux_2_4_20
+/cpqfcTStrigger.h/1.1/Sat Sep 22 12:49:31 2001/-ko/Tlinux_2_4_20
+/cpqfcTSworker.c/1.6.2.1/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
+/cyberstorm.c/1.9.2.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
+/cyberstorm.h/1.3/Sat Jan 29 01:42:17 2000/-ko/Tlinux_2_4_20
+/cyberstormII.c/1.9.2.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
+/cyberstormII.h/1.3/Sat Jan 29 01:42:17 2000/-ko/Tlinux_2_4_20
+/dc390.h/1.8/Wed Jan 10 17:18:01 2001/-ko/Tlinux_2_4_20
+/dec_esp.c/1.10.2.8/Thu Jan 30 14:25:16 2003/-ko/Tlinux_2_4_20
+/dec_esp.h/1.5/Sat Jan 29 01:42:17 2000/-ko/Tlinux_2_4_20
+/dmx3191d.c/1.8/Mon Nov  5 20:16:06 2001/-ko/Tlinux_2_4_20
+/dmx3191d.h/1.3/Wed Aug 22 03:24:49 2001/-ko/Tlinux_2_4_20
+/dpt_i2o.c/1.4.2.1/Wed Sep 11 12:45:11 2002/-ko/Tlinux_2_4_20
+/dpti.h/1.1/Fri Oct 19 01:24:42 2001/-ko/Tlinux_2_4_20
+/dtc.c/1.8.2.1/Sat Dec 29 05:38:07 2001/-ko/Tlinux_2_4_20
+/dtc.h/1.5/Tue Nov  6 07:56:04 2001/-ko/Tlinux_2_4_20
+/eata.c/1.19.2.2/Wed Sep 11 12:45:11 2002/-ko/Tlinux_2_4_20
+/eata.h/1.11.2.2/Wed Sep 11 12:45:11 2002/-ko/Tlinux_2_4_20
+/eata_dma.c/1.16/Mon Nov  5 20:16:06 2001/-ko/Tlinux_2_4_20
+/eata_dma.h/1.3/Thu Oct  5 01:18:57 2000/-ko/Tlinux_2_4_20
+/eata_dma_proc.c/1.9/Tue Nov 28 03:58:51 2000/-ko/Tlinux_2_4_20
+/eata_dma_proc.h/1.1.1.1/Sun Jun  1 03:17:38 1997/-ko/Tlinux_2_4_20
+/eata_generic.h/1.2/Sat Sep 22 12:49:31 2001/-ko/Tlinux_2_4_20
+/eata_pio.c/1.14/Mon Nov  5 20:16:06 2001/-ko/Tlinux_2_4_20
+/eata_pio.h/1.2/Tue Mar 17 22:12:20 1998/-ko/Tlinux_2_4_20
+/eata_pio_proc.c/1.3/Mon Feb 15 02:19:19 1999/-ko/Tlinux_2_4_20
+/esp.c/1.26.2.1/Wed Sep 11 12:45:11 2002/-ko/Tlinux_2_4_20
+/esp.h/1.11.4.1/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/fastlane.c/1.9.2.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
+/fastlane.h/1.3/Sat Jan 29 01:42:17 2000/-ko/Tlinux_2_4_20
+/fcal.c/1.7/Fri Mar  9 20:34:23 2001/-ko/Tlinux_2_4_20
+/fcal.h/1.1/Sun Jun 13 16:33:17 1999/-ko/Tlinux_2_4_20
+/fd_mcs.c/1.6/Mon Nov  5 20:16:06 2001/-ko/Tlinux_2_4_20
+/fd_mcs.h/1.2/Sat Jan 29 01:42:17 2000/-ko/Tlinux_2_4_20
+/fdomain.c/1.21.2.3/Wed Sep 11 12:45:11 2002/-ko/Tlinux_2_4_20
+/fdomain.h/1.5.4.1/Sat Dec 29 05:38:07 2001/-ko/Tlinux_2_4_20
+/g_NCR5380.c/1.18.2.1/Sat Dec 29 05:38:07 2001/-ko/Tlinux_2_4_20
+/g_NCR5380.h/1.7.4.1/Sat Dec 29 05:38:07 2001/-ko/Tlinux_2_4_20
+/gdth.c/1.20/Sun Dec  2 11:34:48 2001/-ko/Tlinux_2_4_20
+/gdth.h/1.8/Fri Oct 19 01:24:42 2001/-ko/Tlinux_2_4_20
+/gdth_ioctl.h/1.4/Fri Oct 19 01:24:42 2001/-ko/Tlinux_2_4_20
+/gdth_proc.c/1.13.2.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
+/gdth_proc.h/1.6/Fri Oct 19 01:24:42 2001/-ko/Tlinux_2_4_20
+/gvp11.c/1.11.2.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
+/gvp11.h/1.4/Sat Jan 29 01:42:18 2000/-ko/Tlinux_2_4_20
+/hosts.c/1.31.2.2/Wed Sep 11 12:45:12 2002/-ko/Tlinux_2_4_20
+/hosts.h/1.18.2.2/Wed Sep 11 12:45:12 2002/-ko/Tlinux_2_4_20
+/i60uscsi.c/1.5.2.1/Tue Feb 26 05:59:45 2002/-ko/Tlinux_2_4_20
+/i60uscsi.h/1.6/Sun Dec  2 11:34:48 2001/-ko/Tlinux_2_4_20
+/i91uscsi.c/1.4/Sat Sep 22 12:49:31 2001/-ko/Tlinux_2_4_20
+/i91uscsi.h/1.3/Tue Nov  6 00:55:14 2001/-ko/Tlinux_2_4_20
+/ibmmca.c/1.21/Thu Jun 14 04:24:08 2001/-ko/Tlinux_2_4_20
+/ibmmca.h/1.8/Thu Apr  5 04:57:42 2001/-ko/Tlinux_2_4_20
+/ide-scsi.c/1.22.2.3/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
+/ide-scsi.h/1.4/Thu May  7 03:00:53 1998/-ko/Tlinux_2_4_20
+/imm.c/1.14.2.1/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
+/imm.h/1.7/Thu Apr  5 04:57:42 2001/-ko/Tlinux_2_4_20
+/in2000.c/1.12/Mon Nov  5 20:16:07 2001/-ko/Tlinux_2_4_20
+/in2000.h/1.9/Mon Jun 19 22:45:48 2000/-ko/Tlinux_2_4_20
+/ini9100u.c/1.12/Mon Nov  5 20:16:07 2001/-ko/Tlinux_2_4_20
+/ini9100u.h/1.8/Tue Nov  6 00:55:14 2001/-ko/Tlinux_2_4_20
+/inia100.c/1.12/Mon Nov  5 20:16:07 2001/-ko/Tlinux_2_4_20
+/inia100.h/1.7/Tue Nov  6 00:55:14 2001/-ko/Tlinux_2_4_20
+/ips.c/1.17.2.5/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/ips.h/1.9.2.2/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
+/jazz_esp.c/1.10.2.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
+/jazz_esp.h/1.6/Sat Jan 29 01:42:18 2000/-ko/Tlinux_2_4_20
+/lasi700.c/1.2.2.2/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
+/lasi700.h/1.2/Mon Nov  5 20:16:07 2001/-ko/Tlinux_2_4_20
+/mac53c94.c/1.9/Fri Mar  9 20:34:24 2001/-ko/Tlinux_2_4_20
+/mac53c94.h/1.5/Thu Oct  5 01:18:57 2000/-ko/Tlinux_2_4_20
+/mac_NCR5380.c/1.4.2.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
+/mac_esp.c/1.9.2.2/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
+/mac_esp.h/1.2/Sat Jan 29 01:42:18 2000/-ko/Tlinux_2_4_20
+/mac_scsi.c/1.8.4.1/Tue Feb 26 05:59:45 2002/-ko/Tlinux_2_4_20
+/mac_scsi.h/1.2/Sat Jan 29 01:42:18 2000/-ko/Tlinux_2_4_20
+/mca_53c9x.c/1.5/Tue Nov  6 07:56:04 2001/-ko/Tlinux_2_4_20
+/mca_53c9x.h/1.2/Sat Jan 29 01:42:18 2000/-ko/Tlinux_2_4_20
+/megaraid.c/1.25.2.5/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
+/megaraid.h/1.12.2.2/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
+/mesh.c/1.12.2.3/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/mesh.h/1.5.4.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
+/mvme147.c/1.2/Tue Nov  6 07:56:04 2001/-ko/Tlinux_2_4_20
+/mvme147.h/1.1/Wed Jan 10 05:27:32 2001/-ko/Tlinux_2_4_20
+/mvme16x.c/1.7.2.1/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
+/mvme16x.h/1.4/Thu Oct  5 01:18:57 2000/-ko/Tlinux_2_4_20
+/ncr53c8xx.c/1.28.2.2/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
+/ncr53c8xx.h/1.11.2.1/Sat Dec 29 05:38:08 2001/-ko/Tlinux_2_4_20
+/oktagon_esp.c/1.6.2.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
+/oktagon_esp.h/1.2/Sat Jan 29 01:42:18 2000/-ko/Tlinux_2_4_20
+/oktagon_io.S/1.1/Sat Oct  9 00:01:30 1999/-ko/Tlinux_2_4_20
+/osst.c/1.8.2.1/Sat Dec 29 05:38:08 2001/-ko/Tlinux_2_4_20
+/osst.h/1.3.2.1/Sat Dec 29 05:38:08 2001/-ko/Tlinux_2_4_20
+/osst_detect.h/1.1/Wed Jan 10 17:18:01 2001/-ko/Tlinux_2_4_20
+/osst_options.h/1.2/Wed Aug 22 03:24:49 2001/-ko/Tlinux_2_4_20
+/pas16.c/1.9.2.2/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
+/pas16.h/1.4/Thu Oct  5 01:18:57 2000/-ko/Tlinux_2_4_20
+/pci2000.c/1.19/Sun Dec  2 11:34:49 2001/-ko/Tlinux_2_4_20
+/pci2000.h/1.6/Thu Mar  2 02:37:03 2000/-ko/Tlinux_2_4_20
+/pci2220i.c/1.21/Sun Dec  2 11:34:49 2001/-ko/Tlinux_2_4_20
+/pci2220i.h/1.7/Thu Mar  2 02:37:03 2000/-ko/Tlinux_2_4_20
+/pluto.c/1.14/Fri Mar  9 20:34:24 2001/-ko/Tlinux_2_4_20
+/pluto.h/1.3/Sun Jun 13 16:33:27 1999/-ko/Tlinux_2_4_20
+/ppa.c/1.21.2.1/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
+/ppa.h/1.15/Thu Apr  5 04:57:42 2001/-ko/Tlinux_2_4_20
+/psi240i.c/1.9/Mon Nov  5 20:16:07 2001/-ko/Tlinux_2_4_20
+/psi240i.h/1.4/Wed Feb 16 01:07:44 2000/-ko/Tlinux_2_4_20
+/psi_chip.h/1.1/Sat Dec  6 23:54:13 1997/-ko/Tlinux_2_4_20
+/psi_dale.h/1.4/Thu Apr  5 04:57:42 2001/-ko/Tlinux_2_4_20
+/psi_roy.h/1.2/Sun Jun 13 16:33:28 1999/-ko/Tlinux_2_4_20
+/ql12160_fw.h/1.1/Wed Feb 23 00:41:21 2000/-ko/Tlinux_2_4_20
+/ql1280_fw.h/1.1/Wed Feb 23 00:41:21 2000/-ko/Tlinux_2_4_20
+/qla1280.c/1.11/Mon Nov  5 20:16:07 2001/-ko/Tlinux_2_4_20
+/qla1280.h/1.2/Fri Oct 19 01:24:43 2001/-ko/Tlinux_2_4_20
+/qlogicfas.c/1.11.2.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
+/qlogicfas.h/1.3/Wed Jun 13 17:28:02 2001/-ko/Tlinux_2_4_20
+/qlogicfc.c/1.22.2.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
+/qlogicfc.h/1.7.2.1/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
+/qlogicfc_asm.c/1.5/Fri Oct 19 01:24:43 2001/-ko/Tlinux_2_4_20
+/qlogicisp.c/1.25/Tue Nov  6 07:56:05 2001/-ko/Tlinux_2_4_20
+/qlogicisp.h/1.4/Fri Feb  4 07:40:47 2000/-ko/Tlinux_2_4_20
+/qlogicisp_asm.c/1.2/Sun Jun 13 16:33:30 1999/-ko/Tlinux_2_4_20
+/qlogicpti.c/1.19/Tue Nov  6 07:56:05 2001/-ko/Tlinux_2_4_20
+/qlogicpti.h/1.7.4.1/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/qlogicpti_asm.c/1.3/Sat Feb  5 06:47:29 2000/-ko/Tlinux_2_4_20
+/script_asm.pl/1.4.4.1/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
+/scsi.c/1.43.2.4/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
+/scsi.h/1.26.2.3/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
+/scsi_debug.c/1.17.2.4/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
+/scsi_debug.h/1.4.4.3/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
+/scsi_dma.c/1.3.4.1/Tue Feb 26 05:59:46 2002/-ko/Tlinux_2_4_20
+/scsi_error.c/1.22.2.2/Wed Sep 11 12:45:14 2002/-ko/Tlinux_2_4_20
+/scsi_ioctl.c/1.28.2.1/Wed Jun 26 22:36:06 2002/-ko/Tlinux_2_4_20
+/scsi_lib.c/1.19.2.2/Wed Sep 11 12:45:14 2002/-ko/Tlinux_2_4_20
+/scsi_merge.c/1.14.2.3/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/scsi_module.c/1.4/Thu Oct  5 01:18:57 2000/-ko/Tlinux_2_4_20
+/scsi_obsolete.c/1.15.2.1/Wed Jun 26 22:36:06 2002/-ko/Tlinux_2_4_20
+/scsi_obsolete.h/1.2/Sat Oct  9 00:01:31 1999/-ko/Tlinux_2_4_20
+/scsi_proc.c/1.13/Wed Aug 22 03:24:49 2001/-ko/Tlinux_2_4_20
+/scsi_queue.c/1.9/Fri Mar  9 20:34:24 2001/-ko/Tlinux_2_4_20
+/scsi_scan.c/1.20.2.5/Wed Sep 11 12:45:14 2002/-ko/Tlinux_2_4_20
+/scsi_syms.c/1.16.2.1/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
+/scsicam.c/1.6.4.1/Sat Dec 29 05:38:08 2001/-ko/Tlinux_2_4_20
+/scsiiom.c/1.8/Wed Jan 10 17:18:02 2001/-ko/Tlinux_2_4_20
+/sd.c/1.39.2.2/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
+/sd.h/1.6.4.1/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
+/seagate.c/1.17.2.1/Wed Sep 11 12:45:14 2002/-ko/Tlinux_2_4_20
+/seagate.h/1.5/Fri Oct 19 01:24:46 2001/-ko/Tlinux_2_4_20
+/sg.c/1.28.2.3/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
+/sgiwd93.c/1.28.2.5/Sat Jan 26 00:17:41 2002/-ko/Tlinux_2_4_20
+/sgiwd93.h/1.6/Sat Jan 29 01:42:18 2000/-ko/Tlinux_2_4_20
+/sim710.c/1.7.2.2/Tue Sep 10 15:32:52 2002/-ko/Tlinux_2_4_20
+/sim710.h/1.3.4.1/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
+/sim710.scr/1.1.4.1/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
+/sim710_d.h/1.3/Fri Feb  4 07:40:47 2000/-ko/Tlinux_2_4_20
+/sim710_u.h/1.1.4.1/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
+/sr.c/1.33.2.3/Wed Sep 11 12:45:14 2002/-ko/Tlinux_2_4_20
+/sr.h/1.6/Wed Jan 10 17:18:02 2001/-ko/Tlinux_2_4_20
+/sr_ioctl.c/1.24.2.2/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/sr_vendor.c/1.14/Thu Aug 23 22:24:40 2001/-ko/Tlinux_2_4_20
+/st.c/1.38.2.2/Wed Sep 11 12:45:14 2002/-ko/Tlinux_2_4_20
+/st.h/1.15.2.2/Wed Sep 11 12:45:14 2002/-ko/Tlinux_2_4_20
+/st_options.h/1.7.4.1/Wed Sep 11 12:45:14 2002/-ko/Tlinux_2_4_20
+/sun3_NCR5380.c/1.3.2.1/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
+/sun3_scsi.c/1.8.2.2/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
+/sun3_scsi.h/1.2/Thu Feb 24 00:13:09 2000/-ko/Tlinux_2_4_20
+/sun3x_esp.c/1.5.2.2/Wed Sep 11 12:45:14 2002/-ko/Tlinux_2_4_20
+/sun3x_esp.h/1.2/Sat Jan 29 01:42:18 2000/-ko/Tlinux_2_4_20
+/sym53c416.c/1.9/Mon Nov  5 20:16:09 2001/-ko/Tlinux_2_4_20
+/sym53c416.h/1.4/Wed Aug 22 03:24:50 2001/-ko/Tlinux_2_4_20
+/sym53c8xx.c/1.22.2.3/Wed Sep 11 12:45:14 2002/-ko/Tlinux_2_4_20
+/sym53c8xx.h/1.6.2.2/Wed Sep 11 12:45:14 2002/-ko/Tlinux_2_4_20
+/sym53c8xx_comm.h/1.9.2.2/Wed Sep 11 12:45:14 2002/-ko/Tlinux_2_4_20
+/sym53c8xx_defs.h/1.12.2.1/Sat Dec 29 05:38:08 2001/-ko/Tlinux_2_4_20
+/t128.c/1.11.2.1/Sat Dec 29 05:38:09 2001/-ko/Tlinux_2_4_20
+/t128.h/1.6/Thu Oct  5 01:18:57 2000/-ko/Tlinux_2_4_20
+/tmscsim.c/1.18.2.1/Sat Dec 29 05:38:09 2001/-ko/Tlinux_2_4_20
+/tmscsim.h/1.9/Wed Jun 13 17:28:02 2001/-ko/Tlinux_2_4_20
+/u14-34f.c/1.17.2.2/Wed Sep 11 12:45:14 2002/-ko/Tlinux_2_4_20
+/u14-34f.h/1.10.2.2/Wed Sep 11 12:45:14 2002/-ko/Tlinux_2_4_20
+/ultrastor.c/1.10.2.1/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
+/ultrastor.h/1.2/Tue Mar 17 22:12:44 1998/-ko/Tlinux_2_4_20
+/wd33c93.c/1.19.2.2/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
+/wd33c93.h/1.8.2.1/Wed May 29 08:12:07 2002/-ko/Tlinux_2_4_20
+/wd7000.c/1.18/Mon Nov  5 20:16:09 2001/-ko/Tlinux_2_4_20
+/wd7000.h/1.5/Sat Jan 29 01:42:19 2000/-ko/Tlinux_2_4_20
+/zalon7xx.c/1.1.2.1/Wed Sep 11 12:45:14 2002/-ko/Tlinux_2_4_20
+/zalon7xx.h/1.1.2.1/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
+D/aacraid////
+D/aic7xxx////
+D/aic7xxx_old////
+D/dpt////
+D/pcmcia////
+D/sym53c8xx_2////
diff -urNd -urNd linux-2.4.20/drivers/scsi/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/scsi/CVS/Repository
--- linux-2.4.20/drivers/scsi/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/CVS/Repository	2005-01-06 23:04:02.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/scsi
diff -urNd -urNd linux-2.4.20/drivers/scsi/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/scsi/CVS/Root
--- linux-2.4.20/drivers/scsi/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/CVS/Root	2005-01-06 23:04:02.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/scsi/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/scsi/CVS/Tag
--- linux-2.4.20/drivers/scsi/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/CVS/Tag	2005-01-06 23:04:39.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/scsi/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/scsi/.cvsignore
--- linux-2.4.20/drivers/scsi/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/.cvsignore	2001-11-28 07:07:35.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/scsi/dec_esp.c linux-2.4.20-mipscvs-20050106/drivers/scsi/dec_esp.c
--- linux-2.4.20/drivers/scsi/dec_esp.c	2002-11-28 17:53:14.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/dec_esp.c	2003-01-30 08:25:16.000000000 -0600
@@ -17,6 +17,8 @@
  *            data.
  * 20001005	- Initialization fixes for 2.4.0-test9
  * 			  Florian Lohoff <flo@rfc822.org>
+ *
+ *	Copyright (C) 2002, 2003  Maciej W. Rozycki
  */
 
 #include <linux/kernel.h>
@@ -26,56 +28,48 @@
 #include <linux/slab.h>
 #include <linux/blk.h>
 #include <linux/proc_fs.h>
+#include <linux/spinlock.h>
 #include <linux/stat.h>
 
-#include "scsi.h"
-#include "hosts.h"
-#include "NCR53C9x.h"
-#include "dec_esp.h"
-
-#include <asm/irq.h>
-#include <asm/jazz.h>
-#include <asm/jazzdma.h>
 #include <asm/dma.h>
-
+#include <asm/irq.h>
 #include <asm/pgtable.h>
+#include <asm/system.h>
 
-#include <asm/dec/tc.h>
 #include <asm/dec/interrupts.h>
+#include <asm/dec/ioasic.h>
 #include <asm/dec/ioasic_addrs.h>
 #include <asm/dec/ioasic_ints.h>
 #include <asm/dec/machtype.h>
+#include <asm/dec/tc.h>
+
+#include "scsi.h"
+#include "hosts.h"
+#include "NCR53C9x.h"
+#include "dec_esp.h"
 
-#include <asm/system.h>
 
-/*
- * Once upon a time the pmaz code used to be working but
- * it hasn't been maintained for quite some time.
- * It isn't working anymore but I'll leave here as a
- * starting point. #define this an be prepared for tons
- * of warnings and errors :)
- */
 static int  dma_bytes_sent(struct NCR_ESP *esp, int fifo_count);
 static void dma_drain(struct NCR_ESP *esp);
 static int  dma_can_transfer(struct NCR_ESP *esp, Scsi_Cmnd * sp);
 static void dma_dump_state(struct NCR_ESP *esp);
-static void dma_init_read(struct NCR_ESP *esp, __u32 vaddress, int length);
-static void dma_init_write(struct NCR_ESP *esp, __u32 vaddress, int length);
+static void dma_init_read(struct NCR_ESP *esp, u32 vaddress, int length);
+static void dma_init_write(struct NCR_ESP *esp, u32 vaddress, int length);
 static void dma_ints_off(struct NCR_ESP *esp);
 static void dma_ints_on(struct NCR_ESP *esp);
 static int  dma_irq_p(struct NCR_ESP *esp);
 static int  dma_ports_p(struct NCR_ESP *esp);
-static void dma_setup(struct NCR_ESP *esp, __u32 addr, int count, int write);
+static void dma_setup(struct NCR_ESP *esp, u32 addr, int count, int write);
 static void dma_mmu_get_scsi_one(struct NCR_ESP *esp, Scsi_Cmnd * sp);
 static void dma_mmu_get_scsi_sgl(struct NCR_ESP *esp, Scsi_Cmnd * sp);
 static void dma_advance_sg(Scsi_Cmnd * sp);
 
 static void pmaz_dma_drain(struct NCR_ESP *esp);
-static void pmaz_dma_init_read(struct NCR_ESP *esp, __u32 vaddress, int length);
-static void pmaz_dma_init_write(struct NCR_ESP *esp, __u32 vaddress, int length);
+static void pmaz_dma_init_read(struct NCR_ESP *esp, u32 vaddress, int length);
+static void pmaz_dma_init_write(struct NCR_ESP *esp, u32 vaddress, int length);
 static void pmaz_dma_ints_off(struct NCR_ESP *esp);
 static void pmaz_dma_ints_on(struct NCR_ESP *esp);
-static void pmaz_dma_setup(struct NCR_ESP *esp, __u32 addr, int count, int write);
+static void pmaz_dma_setup(struct NCR_ESP *esp, u32 addr, int count, int write);
 static void pmaz_dma_mmu_get_scsi_one(struct NCR_ESP *esp, Scsi_Cmnd * sp);
 
 #define TC_ESP_RAM_SIZE 0x20000
@@ -86,7 +80,7 @@
 #define TC_ESP_DMAR_WRITE 0x80000000
 #define TC_ESP_DMA_ADDR(x) ((unsigned)(x) & TC_ESP_DMAR_MASK)
 
-__u32 esp_virt_buffer;
+u32 esp_virt_buffer;
 int scsi_current_length;
 
 volatile unsigned char cmd_buffer[16];
@@ -96,13 +90,6 @@
 				 * via PIO.
 				 */
 
-volatile unsigned long *scsi_dma_ptr;
-volatile unsigned long *scsi_next_ptr;
-volatile unsigned long *scsi_scr;
-volatile unsigned long *ioasic_ssr;
-volatile unsigned long *scsi_sdr0;
-volatile unsigned long *scsi_sdr1;
-
 static void scsi_dma_merr_int(int, void *, struct pt_regs *);
 static void scsi_dma_err_int(int, void *, struct pt_regs *);
 static void scsi_dma_int(int, void *, struct pt_regs *);
@@ -122,17 +109,10 @@
 	if (IOASIC) {
 		esp_dev = 0;
 		esp = esp_allocate(tpnt, (void *) esp_dev);
-	
-		scsi_dma_ptr = (unsigned long *) (system_base + IOCTL + SCSI_DMA_P);
-		scsi_next_ptr = (unsigned long *) (system_base + IOCTL + SCSI_DMA_BP);
-		scsi_scr = (unsigned long *) (system_base + IOCTL + SCSI_SCR);
-		ioasic_ssr = (unsigned long *) (system_base + IOCTL + SSR);
-		scsi_sdr0 = (unsigned long *) (system_base + IOCTL + SCSI_SDR0);
-		scsi_sdr1 = (unsigned long *) (system_base + IOCTL + SCSI_SDR1);
 
 		/* Do command transfer with programmed I/O */
 		esp->do_pio_cmds = 1;
-	
+
 		/* Required functions */
 		esp->dma_bytes_sent = &dma_bytes_sent;
 		esp->dma_can_transfer = &dma_can_transfer;
@@ -155,7 +135,7 @@
 		esp->dma_reset = 0;
 		esp->dma_led_off = 0;
 		esp->dma_led_on = 0;
-		
+
 		/* virtual DMA functions */
 		esp->dma_mmu_get_scsi_one = &dma_mmu_get_scsi_one;
 		esp->dma_mmu_get_scsi_sgl = &dma_mmu_get_scsi_sgl;
@@ -167,47 +147,42 @@
 		/* SCSI chip speed */
 		esp->cfreq = 25000000;
 
-		/*
-		 * we don't give the address of DMA channel, but the number
-		 * of DMA channel, so we can use the jazz DMA functions
-		 *
-		 */
-		esp->dregs = JAZZ_SCSI_DMA;
-	
+		esp->dregs = 0;
+
 		/* ESP register base */
 		esp->eregs = (struct ESP_regs *) (system_base + SCSI);
-	
+
 		/* Set the command buffer */
 		esp->esp_command = (volatile unsigned char *) cmd_buffer;
-	
+
 		/* get virtual dma address for command buffer */
-		esp->esp_command_dvma = (__u32) KSEG1ADDR((volatile unsigned char *) cmd_buffer);
-	
+		esp->esp_command_dvma = virt_to_phys(cmd_buffer);
+
 		esp->irq = dec_interrupt[DEC_IRQ_ASC];
 
 		esp->scsi_id = 7;
-		
+
 		/* Check for differential SCSI-bus */
 		esp->diff = 0;
 
 		esp_initialize(esp);
 
-		if (request_irq(esp->irq, esp_intr, SA_INTERRUPT, 
+		if (request_irq(esp->irq, esp_intr, SA_INTERRUPT,
 				"ncr53c94", NULL))
 			goto err_dealloc;
 		if (request_irq(dec_interrupt[DEC_IRQ_ASC_MERR],
-				scsi_dma_merr_int, SA_INTERRUPT, 
+				scsi_dma_merr_int, SA_INTERRUPT,
 				"ncr53c94 error", NULL))
 			goto err_free_irq;
 		if (request_irq(dec_interrupt[DEC_IRQ_ASC_ERR],
-				scsi_dma_err_int, SA_INTERRUPT, 
+				scsi_dma_err_int, SA_INTERRUPT,
 				"ncr53c94 overrun", NULL))
 			goto err_free_irq_merr;
 		if (request_irq(dec_interrupt[DEC_IRQ_ASC_DMA],
-				scsi_dma_int, SA_INTERRUPT, 
+				scsi_dma_int, SA_INTERRUPT,
 				"ncr53c94 dma", NULL))
 			goto err_free_irq_err;
- 			
+
 	}
 
 	if (TURBOCHANNEL) {
@@ -220,7 +195,7 @@
 			mem_start = get_tc_base_addr(slot);
 
 			/* Store base addr into esp struct */
-			esp->slot = mem_start;
+			esp->slot = PHYSADDR(mem_start);
 
 			esp->dregs = 0;
 			esp->eregs = (struct ESP_regs *) (mem_start + DEC_SCSI_SREG);
@@ -230,7 +205,7 @@
 			esp->esp_command = (volatile unsigned char *) pmaz_cmd_buffer;
 
 			/* get virtual dma address for command buffer */
-			esp->esp_command_dvma = (__u32) KSEG0ADDR((volatile unsigned char *) pmaz_cmd_buffer);
+			esp->esp_command_dvma = virt_to_phys(pmaz_cmd_buffer);
 
 			esp->cfreq = get_tc_speed();
 
@@ -265,7 +240,7 @@
 			esp->dma_mmu_release_scsi_sgl = 0;
 			esp->dma_advance_sg = 0;
 
- 			if (request_irq(esp->irq, esp_intr, SA_INTERRUPT, 
+ 			if (request_irq(esp->irq, esp_intr, SA_INTERRUPT,
  					 "PMAZ_AA", NULL)) {
  				esp_deallocate(esp);
  				release_tc_card(slot);
@@ -310,40 +285,53 @@
 
 static void scsi_dma_int(int irq, void *dev_id, struct pt_regs *regs)
 {
+	u32 scsi_next_ptr;
+
+	scsi_next_ptr = ioasic_read(SCSI_DMA_P);
+
 	/* next page */
-	*scsi_next_ptr = ((*scsi_dma_ptr + PAGE_SIZE) & PAGE_MASK) << 3;
+	scsi_next_ptr = (((scsi_next_ptr >> 3) + PAGE_SIZE) & PAGE_MASK) << 3;
+	ioasic_write(SCSI_DMA_BP, scsi_next_ptr);
 	fast_iob();
 }
 
 static int dma_bytes_sent(struct NCR_ESP *esp, int fifo_count)
 {
-    return fifo_count;
+	return fifo_count;
 }
 
 static void dma_drain(struct NCR_ESP *esp)
 {
-	unsigned long nw = *scsi_scr;
-	unsigned short *p = KSEG1ADDR((unsigned short *) ((*scsi_dma_ptr) >> 3));
+	u32 nw, data0, data1, scsi_data_ptr;
+	u16 *p;
 
-    /*
+	nw = ioasic_read(SCSI_SCR);
+
+	/*
 	 * Is there something in the dma buffers left?
-     */
+	 */
 	if (nw) {
+		scsi_data_ptr = ioasic_read(SCSI_DMA_P) >> 3;
+		p = phys_to_virt(scsi_data_ptr);
 		switch (nw) {
 		case 1:
-			*p = (unsigned short) *scsi_sdr0;
+			data0 = ioasic_read(SCSI_SDR0);
+			p[0] = data0 & 0xffff;
 			break;
 		case 2:
-			*p++ = (unsigned short) (*scsi_sdr0);
-			*p = (unsigned short) ((*scsi_sdr0) >> 16);
+			data0 = ioasic_read(SCSI_SDR0);
+			p[0] = data0 & 0xffff;
+			p[1] = (data0 >> 16) & 0xffff;
 			break;
 		case 3:
-			*p++ = (unsigned short) (*scsi_sdr0);
-			*p++ = (unsigned short) ((*scsi_sdr0) >> 16);
-			*p = (unsigned short) (*scsi_sdr1);
+			data0 = ioasic_read(SCSI_SDR0);
+			data1 = ioasic_read(SCSI_SDR1);
+			p[0] = data0 & 0xffff;
+			p[1] = (data0 >> 16) & 0xffff;
+			p[2] = data1 & 0xffff;
 			break;
 		default:
-			printk("Strange: %d words in dma buffer left\n", (int) nw);
+			printk("Strange: %d words in dma buffer left\n", nw);
 			break;
 		}
 	}
@@ -356,44 +344,74 @@
 
 static void dma_dump_state(struct NCR_ESP *esp)
 {
-/*
-    ESPLOG(("esp%d: dma -- enable <%08x> residue <%08x\n",
-	    esp->esp_id, vdma_get_enable((int)esp->dregs), vdma_get_resdiue((int)esp->dregs)));
- */
 }
 
-static void dma_init_read(struct NCR_ESP *esp, __u32 vaddress, int length)
+static void dma_init_read(struct NCR_ESP *esp, u32 vaddress, int length)
 {
+	u32 scsi_next_ptr, ioasic_ssr;
+	unsigned long flags;
+
 	if (vaddress & 3)
-		panic("dec_efs.c: unable to handle partial word transfers, yet...");
+		panic("dec_esp.c: unable to handle partial word transfers, yet...");
 
 	dma_cache_wback_inv((unsigned long) phys_to_virt(vaddress), length);
 
-	*ioasic_ssr &= ~SCSI_DMA_EN;
-	*scsi_scr = 0;
-	*scsi_dma_ptr = vaddress << 3;
+	spin_lock_irqsave(&ioasic_ssr_lock, flags);
+
+	fast_mb();
+	ioasic_ssr = ioasic_read(SSR);
+
+	ioasic_ssr &= ~SCSI_DMA_EN;
+	ioasic_write(SSR, ioasic_ssr);
+
+	fast_wmb();
+	ioasic_write(SCSI_SCR, 0);
+	ioasic_write(SCSI_DMA_P, vaddress << 3);
 
 	/* prepare for next page */
-	*scsi_next_ptr = ((vaddress + PAGE_SIZE) & PAGE_MASK) << 3;
-	*ioasic_ssr |= (SCSI_DMA_DIR | SCSI_DMA_EN);
+	scsi_next_ptr = ((vaddress + PAGE_SIZE) & PAGE_MASK) << 3;
+	ioasic_write(SCSI_DMA_BP, scsi_next_ptr);
+
+	ioasic_ssr |= (SCSI_DMA_DIR | SCSI_DMA_EN);
+	fast_wmb();
+	ioasic_write(SSR, ioasic_ssr);
+
 	fast_iob();
+	spin_unlock_irqrestore(&ioasic_ssr_lock, flags);
 }
 
-static void dma_init_write(struct NCR_ESP *esp, __u32 vaddress, int length)
+static void dma_init_write(struct NCR_ESP *esp, u32 vaddress, int length)
 {
+	u32 scsi_next_ptr, ioasic_ssr;
+	unsigned long flags;
+
 	if (vaddress & 3)
-		panic("dec_efs.c: unable to handle partial word transfers, yet...");
+		panic("dec_esp.c: unable to handle partial word transfers, yet...");
 
 	dma_cache_wback_inv((unsigned long) phys_to_virt(vaddress), length);
 
-	*ioasic_ssr &= ~(SCSI_DMA_DIR | SCSI_DMA_EN);
-	*scsi_scr = 0;
-	*scsi_dma_ptr = vaddress << 3;
+	spin_lock_irqsave(&ioasic_ssr_lock, flags);
+
+	fast_mb();
+	ioasic_ssr = ioasic_read(SSR);
+
+	ioasic_ssr &= ~(SCSI_DMA_DIR | SCSI_DMA_EN);
+	ioasic_write(SSR, ioasic_ssr);
+
+	fast_wmb();
+	ioasic_write(SCSI_SCR, 0);
+	ioasic_write(SCSI_DMA_P, vaddress << 3);
 
 	/* prepare for next page */
-	*scsi_next_ptr = ((vaddress + PAGE_SIZE) & PAGE_MASK) << 3;
-	*ioasic_ssr |= SCSI_DMA_EN;
+	scsi_next_ptr = ((vaddress + PAGE_SIZE) & PAGE_MASK) << 3;
+	ioasic_write(SCSI_DMA_BP, scsi_next_ptr);
+
+	ioasic_ssr |= SCSI_DMA_EN;
+	fast_wmb();
+	ioasic_write(SSR, ioasic_ssr);
+
 	fast_iob();
+	spin_unlock_irqrestore(&ioasic_ssr_lock, flags);
 }
 
 static void dma_ints_off(struct NCR_ESP *esp)
@@ -408,71 +426,67 @@
 
 static int dma_irq_p(struct NCR_ESP *esp)
 {
-    return (esp->eregs->esp_status & ESP_STAT_INTR);
+	return (esp->eregs->esp_status & ESP_STAT_INTR);
 }
 
 static int dma_ports_p(struct NCR_ESP *esp)
 {
-/*
- * FIXME: what's this good for?
- */
+	/*
+	 * FIXME: what's this good for?
+	 */
 	return 1;
 }
 
-static void dma_setup(struct NCR_ESP *esp, __u32 addr, int count, int write)
+static void dma_setup(struct NCR_ESP *esp, u32 addr, int count, int write)
 {
-    /*
-     * On the Sparc, DMA_ST_WRITE means "move data from device to memory"
-     * so when (write) is true, it actually means READ!
-     */
-	if (write) {
-	dma_init_read(esp, addr, count);
-    } else {
-	dma_init_write(esp, addr, count);
-    }
+	/*
+	 * DMA_ST_WRITE means "move data from device to memory"
+	 * so when (write) is true, it actually means READ!
+	 */
+	if (write)
+		dma_init_read(esp, addr, count);
+	else
+		dma_init_write(esp, addr, count);
 }
 
-/*
- * These aren't used yet
- */
 static void dma_mmu_get_scsi_one(struct NCR_ESP *esp, Scsi_Cmnd * sp)
 {
-	sp->SCp.have_data_in = PHYSADDR(sp->SCp.buffer);
-	sp->SCp.ptr = (char *) ((unsigned long) sp->SCp.have_data_in);
+	sp->SCp.ptr = (char *)virt_to_phys(sp->request_buffer);
 }
 
 static void dma_mmu_get_scsi_sgl(struct NCR_ESP *esp, Scsi_Cmnd * sp)
 {
-    int sz = sp->SCp.buffers_residual;
-    struct mmu_sglist *sg = (struct mmu_sglist *) sp->SCp.buffer;
+	int sz = sp->SCp.buffers_residual;
+	struct scatterlist *sg = sp->SCp.buffer;
 
-    while (sz >= 0) {
-		sg[sz].dvma_addr = PHYSADDR(sg[sz].addr);
-	sz--;
-    }
-	sp->SCp.ptr = (char *) ((unsigned long) sp->SCp.buffer->dma_address);
+	while (sz >= 0) {
+		sg[sz].dma_address = virt_to_phys(sg[sz].address);
+		sz--;
+	}
+	sp->SCp.ptr = (char *)(sp->SCp.buffer->dma_address);
 }
 
 static void dma_advance_sg(Scsi_Cmnd * sp)
 {
-	sp->SCp.ptr = (char *) ((unsigned long) sp->SCp.buffer->dma_address);
+	sp->SCp.ptr = (char *)(sp->SCp.buffer->dma_address);
 }
 
 static void pmaz_dma_drain(struct NCR_ESP *esp)
 {
-	memcpy((void *) (KSEG0ADDR(esp_virt_buffer)),
-		(void *) ( esp->slot + DEC_SCSI_SRAM + ESP_TGT_DMA_SIZE),
+	memcpy(phys_to_virt(esp_virt_buffer),
+		(void *)KSEG1ADDR(esp->slot + DEC_SCSI_SRAM + ESP_TGT_DMA_SIZE),
 		scsi_current_length);
 }
 
-static void pmaz_dma_init_read(struct NCR_ESP *esp, __u32 vaddress, int length)
+static void pmaz_dma_init_read(struct NCR_ESP *esp, u32 vaddress, int length)
 {
-	volatile int *dmareg = (volatile int *) (esp->slot + DEC_SCSI_DMAREG);
+	volatile u32 *dmareg =
+		(volatile u32 *)KSEG1ADDR(esp->slot + DEC_SCSI_DMAREG);
 
 	if (length > ESP_TGT_DMA_SIZE)
 		length = ESP_TGT_DMA_SIZE;
 
-	*dmareg = TC_ESP_DMA_ADDR(esp->slot + DEC_SCSI_SRAM + ESP_TGT_DMA_SIZE);
+	*dmareg = TC_ESP_DMA_ADDR(ESP_TGT_DMA_SIZE);
 
 	iob();
 
@@ -480,15 +494,16 @@
 	scsi_current_length = length;
 }
 
-static void pmaz_dma_init_write(struct NCR_ESP *esp, __u32 vaddress, int length)
+static void pmaz_dma_init_write(struct NCR_ESP *esp, u32 vaddress, int length)
 {
-	volatile int *dmareg = (volatile int *) ( esp->slot + DEC_SCSI_DMAREG );
+	volatile u32 *dmareg =
+		(volatile u32 *)KSEG1ADDR(esp->slot + DEC_SCSI_DMAREG);
 
-	memcpy((void *) (esp->slot + DEC_SCSI_SRAM + ESP_TGT_DMA_SIZE),
-			KSEG0ADDR((void *) vaddress), length);
+	memcpy((void *)KSEG1ADDR(esp->slot + DEC_SCSI_SRAM + ESP_TGT_DMA_SIZE),
+	       phys_to_virt(vaddress), length);
 
-	*dmareg = TC_ESP_DMAR_WRITE | 
-		TC_ESP_DMA_ADDR(esp->slot + DEC_SCSI_SRAM + ESP_TGT_DMA_SIZE);
+	wmb();
+	*dmareg = TC_ESP_DMAR_WRITE | TC_ESP_DMA_ADDR(ESP_TGT_DMA_SIZE);
 
 	iob();
 }
@@ -501,22 +516,19 @@
 {
 }
 
-static void pmaz_dma_setup(struct NCR_ESP *esp, __u32 addr, int count, int write)
+static void pmaz_dma_setup(struct NCR_ESP *esp, u32 addr, int count, int write)
 {
 	/*
-	 * On the Sparc, DMA_ST_WRITE means "move data from device to memory"
+	 * DMA_ST_WRITE means "move data from device to memory"
 	 * so when (write) is true, it actually means READ!
 	 */
-	if (write) {
+	if (write)
 		pmaz_dma_init_read(esp, addr, count);
-	} else {
+	else
 		pmaz_dma_init_write(esp, addr, count);
-	}
 }
 
 static void pmaz_dma_mmu_get_scsi_one(struct NCR_ESP *esp, Scsi_Cmnd * sp)
 {
-	sp->SCp.have_data_in = (int) sp->SCp.ptr =
-	    (char *) KSEG0ADDR((sp->request_buffer));
+	sp->SCp.ptr = (char *)virt_to_phys(sp->request_buffer);
 }
-
diff -urNd -urNd linux-2.4.20/drivers/scsi/dpt/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/scsi/dpt/CVS/Entries
--- linux-2.4.20/drivers/scsi/dpt/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/dpt/CVS/Entries	2005-01-06 23:04:45.000000000 -0600
@@ -0,0 +1,8 @@
+/dpt_osdutil.h/1.1/Fri Oct 19 01:24:46 2001/-ko/Tlinux_2_4_20
+/dpti_i2o.h/1.1/Fri Oct 19 01:24:46 2001/-ko/Tlinux_2_4_20
+/dpti_ioctl.h/1.1/Fri Oct 19 01:24:46 2001/-ko/Tlinux_2_4_20
+/dptsig.h/1.1/Fri Oct 19 01:24:46 2001/-ko/Tlinux_2_4_20
+/osd_defs.h/1.1/Fri Oct 19 01:24:46 2001/-ko/Tlinux_2_4_20
+/osd_util.h/1.1/Fri Oct 19 01:24:46 2001/-ko/Tlinux_2_4_20
+/sys_info.h/1.1/Fri Oct 19 01:24:46 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/scsi/dpt/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/scsi/dpt/CVS/Repository
--- linux-2.4.20/drivers/scsi/dpt/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/dpt/CVS/Repository	2005-01-06 23:04:45.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/scsi/dpt
diff -urNd -urNd linux-2.4.20/drivers/scsi/dpt/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/scsi/dpt/CVS/Root
--- linux-2.4.20/drivers/scsi/dpt/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/dpt/CVS/Root	2005-01-06 23:04:45.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/scsi/dpt/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/scsi/dpt/CVS/Tag
--- linux-2.4.20/drivers/scsi/dpt/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/dpt/CVS/Tag	2005-01-06 23:04:45.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/scsi/NCR53C9x.c linux-2.4.20-mipscvs-20050106/drivers/scsi/NCR53C9x.c
--- linux-2.4.20/drivers/scsi/NCR53C9x.c	2002-11-28 17:53:14.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/NCR53C9x.c	2002-11-25 06:18:58.000000000 -0600
@@ -917,7 +917,7 @@
 		if (esp->dma_mmu_get_scsi_one)
 			esp->dma_mmu_get_scsi_one(esp, sp);
 		else
-			sp->SCp.have_data_in = (int) sp->SCp.ptr =
+			sp->SCp.ptr =
 				(char *) virt_to_phys(sp->request_buffer);
 	} else {
 		sp->SCp.buffer = (struct scatterlist *) sp->buffer;
diff -urNd -urNd linux-2.4.20/drivers/scsi/NCR53C9x.h linux-2.4.20-mipscvs-20050106/drivers/scsi/NCR53C9x.h
--- linux-2.4.20/drivers/scsi/NCR53C9x.h	2001-09-14 16:40:00.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/NCR53C9x.h	2002-07-24 12:55:47.000000000 -0500
@@ -144,12 +144,7 @@
 
 #ifndef MULTIPLE_PAD_SIZES
 
-#ifdef CONFIG_CPU_HAS_WB
-#include <asm/wbflush.h>
-#define esp_write(__reg, __val) do{(__reg) = (__val); wbflush();} while(0)
-#else
-#define esp_write(__reg, __val) ((__reg) = (__val))
-#endif
+#define esp_write(__reg, __val) do{(__reg) = (__val); iob();} while(0)
 #define esp_read(__reg) (__reg)
 
 struct ESP_regs {
diff -urNd -urNd linux-2.4.20/drivers/scsi/pcmcia/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/scsi/pcmcia/CVS/Entries
--- linux-2.4.20/drivers/scsi/pcmcia/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/pcmcia/CVS/Entries	2005-01-06 23:04:46.000000000 -0600
@@ -0,0 +1,12 @@
+/.cvsignore/1.2/Sun Jun 24 22:16:41 2001/-ko/Tlinux_2_4_20
+/Config.in/1.3/Thu Aug 23 22:24:41 2001/-ko/Tlinux_2_4_20
+/Makefile/1.5/Thu Aug 23 22:24:41 2001/-ko/Tlinux_2_4_20
+/aha152x_stub.c/1.6.2.1/Sat Dec 29 05:38:10 2001/-ko/Tlinux_2_4_20
+/fdomain_stub.c/1.5.2.1/Sat Dec 29 05:38:10 2001/-ko/Tlinux_2_4_20
+/nsp_cs.c/1.5/Tue Nov  6 00:55:16 2001/-ko/Tlinux_2_4_20
+/nsp_cs.h/1.3/Tue Nov  6 00:55:16 2001/-ko/Tlinux_2_4_20
+/nsp_debug.c/1.4/Tue Nov  6 00:55:16 2001/-ko/Tlinux_2_4_20
+/nsp_io.h/1.3/Tue Nov  6 00:55:16 2001/-ko/Tlinux_2_4_20
+/nsp_message.c/1.3/Tue Nov  6 00:55:16 2001/-ko/Tlinux_2_4_20
+/qlogic_stub.c/1.5.2.1/Sat Dec 29 05:38:10 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/scsi/pcmcia/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/scsi/pcmcia/CVS/Repository
--- linux-2.4.20/drivers/scsi/pcmcia/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/pcmcia/CVS/Repository	2005-01-06 23:04:45.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/scsi/pcmcia
diff -urNd -urNd linux-2.4.20/drivers/scsi/pcmcia/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/scsi/pcmcia/CVS/Root
--- linux-2.4.20/drivers/scsi/pcmcia/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/pcmcia/CVS/Root	2005-01-06 23:04:45.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/scsi/pcmcia/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/scsi/pcmcia/CVS/Tag
--- linux-2.4.20/drivers/scsi/pcmcia/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/pcmcia/CVS/Tag	2005-01-06 23:04:46.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/scsi/pcmcia/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/scsi/pcmcia/.cvsignore
--- linux-2.4.20/drivers/scsi/pcmcia/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/pcmcia/.cvsignore	2001-06-24 17:16:41.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/scsi/sym53c8xx_2/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/scsi/sym53c8xx_2/CVS/Entries
--- linux-2.4.20/drivers/scsi/sym53c8xx_2/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/sym53c8xx_2/CVS/Entries	2005-01-06 23:04:48.000000000 -0600
@@ -0,0 +1,20 @@
+/.cvsignore/1.1/Sun Dec  2 11:34:49 2001/-ko/Tlinux_2_4_20
+/ChangeLog.txt/1.1.2.1/Sat Dec 29 05:38:10 2001/-ko/Tlinux_2_4_20
+/Documentation.txt/1.1/Sun Dec  2 11:34:49 2001/-ko/Tlinux_2_4_20
+/Makefile/1.1/Sun Dec  2 11:34:49 2001/-ko/Tlinux_2_4_20
+/sym53c8xx.h/1.1.2.2/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
+/sym_conf.h/1.1/Sun Dec  2 11:34:49 2001/-ko/Tlinux_2_4_20
+/sym_defs.h/1.1/Sun Dec  2 11:34:49 2001/-ko/Tlinux_2_4_20
+/sym_fw.c/1.1/Sun Dec  2 11:34:49 2001/-ko/Tlinux_2_4_20
+/sym_fw.h/1.1/Sun Dec  2 11:34:49 2001/-ko/Tlinux_2_4_20
+/sym_fw1.h/1.1.2.1/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
+/sym_fw2.h/1.1.2.1/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
+/sym_glue.c/1.1.2.2/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
+/sym_glue.h/1.1.2.1/Sat Dec 29 05:38:10 2001/-ko/Tlinux_2_4_20
+/sym_hipd.c/1.1.2.2/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
+/sym_hipd.h/1.1.2.1/Sat Dec 29 05:38:10 2001/-ko/Tlinux_2_4_20
+/sym_malloc.c/1.1.2.1/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
+/sym_misc.c/1.1/Sun Dec  2 11:34:50 2001/-ko/Tlinux_2_4_20
+/sym_misc.h/1.1/Sun Dec  2 11:34:50 2001/-ko/Tlinux_2_4_20
+/sym_nvram.c/1.1.2.1/Sat Dec 29 05:38:10 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/scsi/sym53c8xx_2/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/scsi/sym53c8xx_2/CVS/Repository
--- linux-2.4.20/drivers/scsi/sym53c8xx_2/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/sym53c8xx_2/CVS/Repository	2005-01-06 23:04:46.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/scsi/sym53c8xx_2
diff -urNd -urNd linux-2.4.20/drivers/scsi/sym53c8xx_2/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/scsi/sym53c8xx_2/CVS/Root
--- linux-2.4.20/drivers/scsi/sym53c8xx_2/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/sym53c8xx_2/CVS/Root	2005-01-06 23:04:46.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/scsi/sym53c8xx_2/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/scsi/sym53c8xx_2/CVS/Tag
--- linux-2.4.20/drivers/scsi/sym53c8xx_2/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/sym53c8xx_2/CVS/Tag	2005-01-06 23:04:48.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/scsi/sym53c8xx_2/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/scsi/sym53c8xx_2/.cvsignore
--- linux-2.4.20/drivers/scsi/sym53c8xx_2/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/sym53c8xx_2/.cvsignore	2001-12-02 05:34:49.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/sgi/char/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/sgi/char/CVS/Entries
--- linux-2.4.20/drivers/sgi/char/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/char/CVS/Entries	2005-01-06 23:04:50.000000000 -0600
@@ -0,0 +1,16 @@
+/.cvsignore/1.2/Tue Mar 17 22:12:46 1998/-ko/Tlinux_2_4_20
+/Makefile/1.14.2.2/Fri Nov  8 23:15:48 2002/-ko/Tlinux_2_4_20
+/ds1286.c/1.14.2.3/Wed Dec 18 19:11:09 2002/-ko/Tlinux_2_4_20
+/gconsole.h/1.5.8.2/Tue Jan 28 02:06:49 2003/-ko/Tlinux_2_4_20
+/graphics.c/1.30.2.3/Wed Dec 18 19:11:09 2002/-ko/Tlinux_2_4_20
+/graphics.h/1.9.6.2/Thu Dec 19 12:58:33 2002/-ko/Tlinux_2_4_20
+/newport.c/1.14.2.1/Mon Aug  5 23:53:40 2002/-ko/Tlinux_2_4_20
+/rrm.c/1.6.2.1/Mon Aug  5 23:53:40 2002/-ko/Tlinux_2_4_20
+/sgicons.c/1.13.2.2/Thu Dec 19 13:44:19 2002/-ko/Tlinux_2_4_20
+/sgiserial.c/1.33.2.8/Thu Jan  9 22:46:09 2003/-ko/Tlinux_2_4_20
+/sgiserial.h/1.6.4.4/Thu Jan  9 22:46:09 2003/-ko/Tlinux_2_4_20
+/shmiq.c/1.28.2.2/Thu Nov  7 01:47:46 2002/-ko/Tlinux_2_4_20
+/streamable.c/1.13.4.4/Wed Dec 18 21:47:41 2002/-ko/Tlinux_2_4_20
+/usema.c/1.22.2.3/Wed Dec 18 19:11:09 2002/-ko/Tlinux_2_4_20
+/usema.h/1.1.6.1/Mon Aug  5 23:53:40 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/sgi/char/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/sgi/char/CVS/Repository
--- linux-2.4.20/drivers/sgi/char/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/char/CVS/Repository	2005-01-06 23:04:48.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/sgi/char
diff -urNd -urNd linux-2.4.20/drivers/sgi/char/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/sgi/char/CVS/Root
--- linux-2.4.20/drivers/sgi/char/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/char/CVS/Root	2005-01-06 23:04:48.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/sgi/char/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/sgi/char/CVS/Tag
--- linux-2.4.20/drivers/sgi/char/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/char/CVS/Tag	2005-01-06 23:04:50.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/sgi/char/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/sgi/char/.cvsignore
--- linux-2.4.20/drivers/sgi/char/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/char/.cvsignore	1998-03-17 16:12:46.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/sgi/char/ds1286.c linux-2.4.20-mipscvs-20050106/drivers/sgi/char/ds1286.c
--- linux-2.4.20/drivers/sgi/char/ds1286.c	2002-11-28 17:53:14.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/char/ds1286.c	2002-12-18 13:11:09.000000000 -0600
@@ -280,19 +280,19 @@
  */
 
 static struct file_operations ds1286_fops = {
-	llseek:		no_llseek,
-	read:		ds1286_read,
-	poll:		ds1286_poll,
-	ioctl:		ds1286_ioctl,
-	open:		ds1286_open,
-	release:	ds1286_release,
+	.llseek		= no_llseek,
+	.read		= ds1286_read,
+	.poll		= ds1286_poll,
+	.ioctl		= ds1286_ioctl,
+	.open		= ds1286_open,
+	.release	= ds1286_release,
 };
 
 static struct miscdevice ds1286_dev=
 {
-	RTC_MINOR,
-	"rtc",
-	&ds1286_fops
+	.minor	= RTC_MINOR,
+	.name	= "rtc",
+	.fops	= &ds1286_fops,
 };
 
 int __init ds1286_init(void)
diff -urNd -urNd linux-2.4.20/drivers/sgi/char/gconsole.h linux-2.4.20-mipscvs-20050106/drivers/sgi/char/gconsole.h
--- linux-2.4.20/drivers/sgi/char/gconsole.h	1997-12-10 12:31:11.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/char/gconsole.h	2003-01-27 20:06:49.000000000 -0600
@@ -1,6 +1,10 @@
+#ifndef _SGI_GCONSOLE_H
+#define _SGI_GCONSOLE_H
+
+
 /*
  * This is a temporary measure, we should eventually migrate to
- * Gert's generic graphic console code.
+ * Geert's generic graphic console code.
  */
 
 #define cmapsz 8192
@@ -31,3 +35,5 @@
 
 extern void disable_gconsole (void);
 extern void enable_gconsole (void);
+
+#endif /* _SGI_GCONSOLE */
diff -urNd -urNd linux-2.4.20/drivers/sgi/char/graphics.c linux-2.4.20-mipscvs-20050106/drivers/sgi/char/graphics.c
--- linux-2.4.20/drivers/sgi/char/graphics.c	2002-11-28 17:53:14.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/char/graphics.c	2002-12-18 13:11:09.000000000 -0600
@@ -258,7 +258,7 @@
  */
 
 static struct vm_operations_struct graphics_mmap = {
-	nopage:	sgi_graphics_nopage,	/* our magic no-page fault handler */
+	.nopage	= sgi_graphics_nopage,	/* our magic no-page fault handler */
 };
 
 int
@@ -291,20 +291,24 @@
 #endif
 
 struct file_operations sgi_graphics_fops = {
-	ioctl:		sgi_graphics_ioctl,
-	mmap:		sgi_graphics_mmap,
-	open:		sgi_graphics_open,
-	release:	sgi_graphics_close,
+	.ioctl		= sgi_graphics_ioctl,
+	.mmap		= sgi_graphics_mmap,
+	.open		= sgi_graphics_open,
+	.release	= sgi_graphics_close,
 };
 
 /* /dev/graphics */
 static struct miscdevice dev_graphics = {
-	SGI_GRAPHICS_MINOR, "sgi-graphics", &sgi_graphics_fops
+	.minor	= SGI_GRAPHICS_MINOR,
+	.name	= "sgi-graphics",
+	.fops	= &sgi_graphics_fops,
 };
 
 /* /dev/opengl */
 static struct miscdevice dev_opengl = {
-	SGI_OPENGL_MINOR, "sgi-opengl", &sgi_graphics_fops
+	.minor	= SGI_OPENGL_MINOR,
+	.name	= "sgi-opengl",
+	.fops	= &sgi_graphics_fops,
 };
 
 /* This is called later from the misc-init routine */
diff -urNd -urNd linux-2.4.20/drivers/sgi/char/graphics.h linux-2.4.20-mipscvs-20050106/drivers/sgi/char/graphics.h
--- linux-2.4.20/drivers/sgi/char/graphics.h	2002-11-28 17:53:14.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/char/graphics.h	2002-12-19 06:58:33.000000000 -0600
@@ -1,3 +1,6 @@
+#ifndef _SGI_GRAPHICS_H
+#define _SGI_GRAPHICS_H
+
 #define MAXCARDS 4
 
 struct graphics_ops {
@@ -25,3 +28,5 @@
 
 void shmiq_init (void);
 void streamable_init (void);
+
+#endif /* _SGI_GRAPHICS_H */
diff -urNd -urNd linux-2.4.20/drivers/sgi/char/Makefile linux-2.4.20-mipscvs-20050106/drivers/sgi/char/Makefile
--- linux-2.4.20/drivers/sgi/char/Makefile	2002-08-02 19:39:44.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/char/Makefile	2002-11-08 17:15:48.000000000 -0600
@@ -9,10 +9,10 @@
 
 O_TARGET := sgichar.o
 
-export-objs	:= newport.o rrm.o shmiq.o sgicons.o usema.o
+export-objs	:= newport.o rrm.o shmiq.o sgicons.o usema.o rrm.o
 obj-y		:= newport.o shmiq.o sgicons.o usema.o streamable.o
 
-obj-$(CONFIG_SGI_SERIAL)	+= sgiserial.o
+obj-$(CONFIG_IP22_SERIAL)	+= sgiserial.o
 obj-$(CONFIG_SGI_DS1286)	+= ds1286.o
 obj-$(CONFIG_SGI_NEWPORT_GFX)	+= graphics.o rrm.o
 
diff -urNd -urNd linux-2.4.20/drivers/sgi/char/sgicons.c linux-2.4.20-mipscvs-20050106/drivers/sgi/char/sgicons.c
--- linux-2.4.20/drivers/sgi/char/sgicons.c	2002-11-28 17:53:14.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/char/sgicons.c	2002-12-19 07:44:19.000000000 -0600
@@ -14,8 +14,8 @@
 #include "gconsole.h"
 
 /* This is the system graphics console (the first adapter found) */
-struct console_ops *gconsole = 0;
-struct console_ops *real_gconsole = 0;
+struct console_ops *gconsole;
+struct console_ops *real_gconsole;
 
 void
 enable_gconsole (void)
diff -urNd -urNd linux-2.4.20/drivers/sgi/char/sgiserial.c linux-2.4.20-mipscvs-20050106/drivers/sgi/char/sgiserial.c
--- linux-2.4.20/drivers/sgi/char/sgiserial.c	2002-11-28 17:53:14.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/char/sgiserial.c	2003-01-09 16:46:09.000000000 -0600
@@ -139,7 +139,7 @@
  * buffer across all the serial ports, since it significantly saves
  * memory if large numbers of serial ports are open.
  */
-static unsigned char tmp_buf[4096]; /* This is cheating */
+static unsigned char tmp_buf[PAGE_SIZE]; /* This is cheating */
 static DECLARE_MUTEX(tmp_buf_sem);
 
 static inline int serial_paranoia_check(struct sgi_serial *info,
@@ -785,8 +785,7 @@
  */
 static void change_speed(struct sgi_serial *info)
 {
-	unsigned short port;
-	unsigned cflag;
+	unsigned int port, cflag;
 	int	i;
 	int	brg;
 
@@ -2269,12 +2268,12 @@
 }
 
 static struct console sgi_console_driver = {
-	name:		"ttyS",
-	write:		zs_console_write,
-	device:		zs_console_device,
-	setup:		zs_console_setup,
-	flags:		CON_PRINTBUFFER,
-	index:		-1,
+	.name		= "ttyS",
+	.write		= zs_console_write,
+	.device		= zs_console_device,
+	.setup		= zs_console_setup,
+	.flags		= CON_PRINTBUFFER,
+	.index		= -1,
 };
 
 /*
diff -urNd -urNd linux-2.4.20/drivers/sgi/char/sgiserial.h linux-2.4.20-mipscvs-20050106/drivers/sgi/char/sgiserial.h
--- linux-2.4.20/drivers/sgi/char/sgiserial.h	2002-11-28 17:53:14.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/char/sgiserial.h	2003-01-09 16:46:09.000000000 -0600
@@ -33,7 +33,7 @@
 struct serial_struct {
 	int	type;
 	int	line;
-	int	port;
+	unsigned int	port;
 	int	irq;
 	int	flags;
 	int	xmit_fifo_size;
@@ -129,7 +129,7 @@
 
 	int			magic;
 	int			baud_base;
-	int			port;
+	unsigned int		port;
 	int			irq;
 	int			flags; 		/* defined in tty.h */
 	int			type; 		/* UART type */
@@ -166,9 +166,9 @@
 #define SERIAL_MAGIC 0x5301
 
 /*
- * The size of the serial xmit buffer is 1 page, or 4096 bytes
+ * The size of the serial xmit buffer is 1 page.
  */
-#define SERIAL_XMIT_SIZE 4096
+#define SERIAL_XMIT_SIZE PAGE_SIZE
 
 /*
  * Events are used to schedule things to happen at timer-interrupt
diff -urNd -urNd linux-2.4.20/drivers/sgi/char/shmiq.c linux-2.4.20-mipscvs-20050106/drivers/sgi/char/shmiq.c
--- linux-2.4.20/drivers/sgi/char/shmiq.c	2002-11-28 17:53:14.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/char/shmiq.c	2002-11-06 19:47:46.000000000 -0600
@@ -309,7 +309,7 @@
 }
 
 static struct vm_operations_struct qcntl_mmap = {
-	nopage:	shmiq_nopage,		/* our magic no-page fault handler */
+	.nopage	= shmiq_nopage,		/* our magic no-page fault handler */
 };
 
 static int
@@ -448,12 +448,12 @@
 
 static struct file_operations shmiq_fops =
 {
-	poll:		shmiq_qcntl_poll,
-	ioctl:		shmiq_qcntl_ioctl,
-	mmap:		shmiq_qcntl_mmap,
-	open:		shmiq_qcntl_open,
-	release:	shmiq_qcntl_close,
-	fasync:		shmiq_qcntl_fasync,
+	.poll		= shmiq_qcntl_poll,
+	.ioctl		= shmiq_qcntl_ioctl,
+	.mmap		= shmiq_qcntl_mmap,
+	.open		= shmiq_qcntl_open,
+	.release	= shmiq_qcntl_close,
+	.fasync		= shmiq_qcntl_fasync,
 };
 
 void
diff -urNd -urNd linux-2.4.20/drivers/sgi/char/streamable.c linux-2.4.20-mipscvs-20050106/drivers/sgi/char/streamable.c
--- linux-2.4.20/drivers/sgi/char/streamable.c	2002-11-28 17:53:14.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/char/streamable.c	2002-12-18 15:47:41.000000000 -0600
@@ -50,20 +50,22 @@
 }
 
 /* /dev/gfx device */
-static int
-sgi_gfx_ioctl (struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg)
+static int sgi_gfx_ioctl (struct inode *inode, struct file *file,
+	unsigned int cmd, unsigned long arg)
 {
-	printk ("GFX: ioctl 0x%x %ld called\n", cmd, arg);
-	return 0;
+	printk(KERN_DEBUG "GFX: ioctl 0x%x %ld called\n", cmd, arg);
+
 	return -EINVAL;
 }
 
 struct file_operations sgi_gfx_fops = {
-	ioctl:		sgi_gfx_ioctl,
+	.ioctl		= sgi_gfx_ioctl,
 };
 
 static struct miscdevice dev_gfx = {
-	SGI_GFX_MINOR, "sgi-gfx", &sgi_gfx_fops
+	.minor	= SGI_GFX_MINOR,
+	.name	= "sgi-gfx",
+	.fops	= &sgi_gfx_fops,
 };
 
 /* /dev/input/keyboard streams device */
@@ -167,12 +169,14 @@
 }
 
 struct file_operations sgi_keyb_fops = {
-	ioctl:		sgi_keyb_ioctl,
-	open:		sgi_keyb_open,
+	.ioctl		= sgi_keyb_ioctl,
+	.open		= sgi_keyb_open,
 };
 
 static struct miscdevice dev_input_keyboard = {
-	SGI_STREAMS_KEYBOARD, "streams-keyboard", &sgi_keyb_fops
+	.minor	= SGI_STREAMS_KEYBOARD,
+	.name	= "streams-keyboard",
+	.fops	= &sgi_keyb_fops,
 };
 
 /* /dev/input/mouse streams device */
@@ -298,20 +302,22 @@
 }
 
 struct file_operations sgi_mouse_fops = {
-	ioctl:		sgi_mouse_ioctl,
-	open:		sgi_mouse_open,
-	release:	sgi_mouse_close,
+	.ioctl		= sgi_mouse_ioctl,
+	.open		= sgi_mouse_open,
+	.release	= sgi_mouse_close,
 };
 
 /* /dev/input/mouse */
 static struct miscdevice dev_input_mouse = {
-	SGI_STREAMS_KEYBOARD, "streams-mouse", &sgi_mouse_fops
+	.minor	= SGI_STREAMS_KEYBOARD,
+	.name	= "streams-mouse",
+	.fops	= &sgi_mouse_fops,
 };
 
 void
 streamable_init (void)
 {
-	printk ("streamable misc devices registered (keyb:%d, gfx:%d)\n",
+	printk (KERN_INFO "streamable misc devices registered (keyb:%d, gfx:%d)\n",
 		SGI_STREAMS_KEYBOARD, SGI_GFX_MINOR);
 
 	misc_register (&dev_gfx);
diff -urNd -urNd linux-2.4.20/drivers/sgi/char/usema.c linux-2.4.20-mipscvs-20050106/drivers/sgi/char/usema.c
--- linux-2.4.20/drivers/sgi/char/usema.c	2002-11-28 17:53:14.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/char/usema.c	2002-12-18 13:11:09.000000000 -0600
@@ -164,19 +164,21 @@
 }
 
 struct file_operations sgi_usemaclone_fops = {
-	poll:		sgi_usemaclone_poll,
-	ioctl:		sgi_usemaclone_ioctl,
-	open:		sgi_usemaclone_open,
+	.poll		= sgi_usemaclone_poll,
+	.ioctl		= sgi_usemaclone_ioctl,
+	.open		= sgi_usemaclone_open,
 };
 
 static struct miscdevice dev_usemaclone = {
-	SGI_USEMACLONE, "usemaclone", &sgi_usemaclone_fops
+	.minor	= SGI_USEMACLONE,
+	.name	= "usemaclone",
+	.fops	= &sgi_usemaclone_fops,
 };
 
 void
 usema_init(void)
 {
-	printk("usemaclone misc device registered (minor: %d)\n",
+	printk(KERN_INFO "usemaclone misc device registered (minor: %d)\n",
 	       SGI_USEMACLONE);
 	misc_register(&dev_usemaclone);
 }
diff -urNd -urNd linux-2.4.20/drivers/sgi/Config.in linux-2.4.20-mipscvs-20050106/drivers/sgi/Config.in
--- linux-2.4.20/drivers/sgi/Config.in	2002-11-28 17:53:14.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/Config.in	2002-11-08 17:15:48.000000000 -0600
@@ -4,9 +4,9 @@
 mainmenu_option next_comment
 comment 'SGI devices'
 
-bool 'SGI Zilog85C30 serial support' CONFIG_SGI_SERIAL
-if [ "$CONFIG_SGI_SERIAL" = "y" ]; then
-   bool '  Support for console on serial port' CONFIG_SERIAL_CONSOLE
+bool 'SGI Zilog85C30 serial support' CONFIG_IP22_SERIAL
+if [ "$CONFIG_IP22_SERIAL" = "y" ]; then
+   bool '  Support for console on serial port' CONFIG_IP22_SERIAL_CONSOLE
 fi
 bool 'SGI DS1286  RTC support' CONFIG_SGI_DS1286
 
diff -urNd -urNd linux-2.4.20/drivers/sgi/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/sgi/CVS/Entries
--- linux-2.4.20/drivers/sgi/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/CVS/Entries	2005-01-06 23:08:10.000000000 -0600
@@ -0,0 +1,4 @@
+/.cvsignore/1.2/Tue Mar 17 22:12:46 1998/-ko/Tlinux_2_4_20
+/Config.in/1.9.4.3/Fri Nov  8 23:15:48 2002/-ko/Tlinux_2_4_20
+/Makefile/1.13/Wed Jan 10 17:18:02 2001/-ko/Tlinux_2_4_20
+D/char////
diff -urNd -urNd linux-2.4.20/drivers/sgi/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/sgi/CVS/Repository
--- linux-2.4.20/drivers/sgi/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/CVS/Repository	2005-01-06 23:04:48.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/sgi
diff -urNd -urNd linux-2.4.20/drivers/sgi/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/sgi/CVS/Root
--- linux-2.4.20/drivers/sgi/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/CVS/Root	2005-01-06 23:04:48.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/sgi/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/sgi/CVS/Tag
--- linux-2.4.20/drivers/sgi/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/CVS/Tag	2005-01-06 23:04:48.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/sgi/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/sgi/.cvsignore
--- linux-2.4.20/drivers/sgi/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/.cvsignore	1998-03-17 16:12:46.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/sound/au1000.c linux-2.4.20-mipscvs-20050106/drivers/sound/au1000.c
--- linux-2.4.20/drivers/sound/au1000.c	2002-11-28 17:53:14.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sound/au1000.c	2002-12-29 04:30:36.000000000 -0600
@@ -2029,7 +2029,7 @@
 	s->codec.codec_write = wrcodec;
 	s->codec.codec_wait = waitcodec;
 
-	if (!request_region(virt_to_phys((void *) AC97C_CONFIG),
+	if (!request_region(PHYSADDR(AC97C_CONFIG),
 			    0x14, AU1000_MODULE_NAME)) {
 		err("AC'97 ports in use");
 		return -1;
@@ -2165,7 +2165,7 @@
  err_dma2:
 	free_au1000_dma(s->dma_dac.dmanr);
  err_dma1:
-	release_region(virt_to_phys((void *) AC97C_CONFIG), 0x14);
+	release_region(PHYSADDR(AC97C_CONFIG), 0x14);
 	return -1;
 }
 
@@ -2182,7 +2182,7 @@
 	synchronize_irq();
 	free_au1000_dma(s->dma_adc.dmanr);
 	free_au1000_dma(s->dma_dac.dmanr);
-	release_region(virt_to_phys((void *) AC97C_CONFIG), 0x14);
+	release_region(PHYSADDR(AC97C_CONFIG), 0x14);
 	unregister_sound_dsp(s->dev_audio);
 	unregister_sound_mixer(s->codec.dev_mixer);
 }
diff -urNd -urNd linux-2.4.20/drivers/sound/Config.in linux-2.4.20-mipscvs-20050106/drivers/sound/Config.in
--- linux-2.4.20/drivers/sound/Config.in	2002-11-28 17:53:14.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sound/Config.in	2002-12-11 00:12:30.000000000 -0600
@@ -66,8 +66,8 @@
 if [ "$CONFIG_DDB5477" = "y" ]; then
     dep_tristate '  NEC Vrc5477 AC97 sound' CONFIG_SOUND_VRC5477 $CONFIG_SOUND
 fi
-if [ "$CONFIG_MIPS_AU1000" = "y" ]; then
-    dep_tristate '  Au1000 Sound' CONFIG_SOUND_AU1000 $CONFIG_SOUND
+if [ "$CONFIG_CPU_AU1X00" = "y" ]; then
+    dep_tristate '  Au1x00 Sound' CONFIG_SOUND_AU1X00 $CONFIG_SOUND
 fi
 
 dep_tristate '  Trident 4DWave DX/NX, SiS 7018 or ALi 5451 PCI Audio Core' CONFIG_SOUND_TRIDENT $CONFIG_SOUND $CONFIG_PCI
diff -urNd -urNd linux-2.4.20/drivers/sound/cs4281/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/sound/cs4281/CVS/Entries
--- linux-2.4.20/drivers/sound/cs4281/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sound/cs4281/CVS/Entries	2005-01-06 23:05:12.000000000 -0600
@@ -0,0 +1,9 @@
+/.cvsignore/1.1.2.1/Mon Dec 31 03:33:19 2001/-ko/Tlinux_2_4_20
+/Makefile/1.1/Fri Mar  9 20:34:26 2001/-ko/Tlinux_2_4_20
+/cs4281_hwdefs.h/1.1/Fri Mar  9 20:34:26 2001/-ko/Tlinux_2_4_20
+/cs4281_wrapper.h/1.1.2.2/Wed Jun 26 22:36:10 2002/-ko/Tlinux_2_4_20
+/cs4281m.c/1.6.2.2/Wed Jun 26 22:36:10 2002/-ko/Tlinux_2_4_20
+/cs4281pm-24.c/1.1.2.1/Tue Feb 26 05:59:48 2002/-ko/Tlinux_2_4_20
+/cs4281pm-24.h/1.1.2.1/Tue Feb 26 05:59:48 2002/-ko/Tlinux_2_4_20
+/cs4281pm.h/1.1/Fri Mar  9 20:34:27 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/sound/cs4281/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/sound/cs4281/CVS/Repository
--- linux-2.4.20/drivers/sound/cs4281/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sound/cs4281/CVS/Repository	2005-01-06 23:05:11.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/sound/cs4281
diff -urNd -urNd linux-2.4.20/drivers/sound/cs4281/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/sound/cs4281/CVS/Root
--- linux-2.4.20/drivers/sound/cs4281/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sound/cs4281/CVS/Root	2005-01-06 23:05:11.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/sound/cs4281/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/sound/cs4281/CVS/Tag
--- linux-2.4.20/drivers/sound/cs4281/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sound/cs4281/CVS/Tag	2005-01-06 23:05:12.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/sound/cs4281/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/sound/cs4281/.cvsignore
--- linux-2.4.20/drivers/sound/cs4281/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sound/cs4281/.cvsignore	2001-12-30 21:33:19.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/sound/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/sound/CVS/Entries
--- linux-2.4.20/drivers/sound/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sound/CVS/Entries	2005-01-06 23:08:10.000000000 -0600
@@ -0,0 +1,153 @@
+/.cvsignore/1.3/Tue Mar 17 22:12:49 1998/-ko/Tlinux_2_4_20
+/.indent.pro/1.1.1.1/Sun Jun  1 03:17:45 1997/-ko/Tlinux_2_4_20
+/.version/1.3/Sat Dec  6 23:54:19 1997/-ko/Tlinux_2_4_20
+/724hwmcode.h/1.2/Tue Nov 28 03:58:52 2000/-ko/Tlinux_2_4_20
+/CHANGELOG/1.4/Tue Aug 25 09:19:00 1998/-ko/Tlinux_2_4_20
+/COPYING/1.1.1.1/Sun Jun  1 03:17:43 1997/-ko/Tlinux_2_4_20
+/Config.in/1.44.2.8/Wed Dec 11 06:12:30 2002/-ko/Tlinux_2_4_20
+/Hwmcode.h/1.1/Mon Jun 19 22:45:48 2000/-ko/Tlinux_2_4_20
+/Makefile/1.49.2.5/Sun Dec 29 10:30:36 2002/-ko/Tlinux_2_4_20
+/README.FIRST/1.3/Mon Feb 15 02:19:41 1999/-ko/Tlinux_2_4_20
+/ac97.c/1.5/Mon Nov  5 20:16:10 2001/-ko/Tlinux_2_4_20
+/ac97.h/1.4/Sun Jun 10 16:57:41 2001/-ko/Tlinux_2_4_20
+/ac97_codec.c/1.18.2.3/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/aci.c/1.8/Sun Dec  2 11:34:50 2001/-ko/Tlinux_2_4_20
+/aci.h/1.2/Wed Aug 22 03:24:50 2001/-ko/Tlinux_2_4_20
+/ad1816.c/1.13.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
+/ad1848.c/1.21.2.2/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
+/ad1848.h/1.2.4.1/Tue Feb 26 05:59:47 2002/-ko/Tlinux_2_4_20
+/ad1848_mixer.h/1.6.6.1/Sat Dec 29 05:38:10 2001/-ko/Tlinux_2_4_20
+/adlib_card.c/1.12/Mon Nov  5 20:16:10 2001/-ko/Tlinux_2_4_20
+/aedsp16.c/1.6.2.1/Tue Feb 26 05:59:47 2002/-ko/Tlinux_2_4_20
+/ali5455.c/1.1.2.1/Wed Sep 11 12:45:16 2002/-ko/Tlinux_2_4_20
+/au1000.c/1.2.2.6/Sun Dec 29 10:30:36 2002/-ko/Tlinux_2_4_20
+/audio.c/1.18/Fri Mar  9 20:34:25 2001/-ko/Tlinux_2_4_20
+/audio_syms.c/1.1/Tue Aug 25 09:19:04 1998/-ko/Tlinux_2_4_20
+/awe_hw.h/1.2/Mon Mar 27 23:54:37 2000/-ko/Tlinux_2_4_20
+/awe_wave.c/1.9.2.1/Wed Sep 11 12:45:16 2002/-ko/Tlinux_2_4_20
+/awe_wave.h/1.2/Mon Mar 27 23:54:37 2000/-ko/Tlinux_2_4_20
+/bin2hex.c/1.4.4.1/Wed Sep 11 12:45:16 2002/-ko/Tlinux_2_4_20
+/btaudio.c/1.3.2.4/Wed Sep 11 12:45:16 2002/-ko/Tlinux_2_4_20
+/cmpci.c/1.28.2.1/Wed Jun 26 22:36:09 2002/-ko/Tlinux_2_4_20
+/coproc.h/1.2/Tue Aug 25 09:19:05 1998/-ko/Tlinux_2_4_20
+/cs4232.c/1.16.2.3/Wed Sep 11 12:45:16 2002/-ko/Tlinux_2_4_20
+/cs4232.h/1.2.2.1/Tue Feb 26 05:59:47 2002/-ko/Tlinux_2_4_20
+/cs461x.h/1.2/Wed Jun 13 17:28:02 2001/-ko/Tlinux_2_4_20
+/cs461x_image.h/1.4/Wed Jun 13 17:28:02 2001/-ko/Tlinux_2_4_20
+/cs46xx.c/1.13.2.3/Wed Jun 26 22:36:09 2002/-ko/Tlinux_2_4_20
+/cs46xx_wrapper-24.h/1.1/Wed Jun 13 17:28:03 2001/-ko/Tlinux_2_4_20
+/cs46xxpm-24.h/1.2/Wed Aug 22 03:24:50 2001/-ko/Tlinux_2_4_20
+/cs46xxpm.h/1.1/Wed Jun 13 17:28:03 2001/-ko/Tlinux_2_4_20
+/dev_table.c/1.19/Thu Oct  5 01:18:58 2000/-ko/Tlinux_2_4_20
+/dev_table.h/1.24/Thu Aug 23 22:24:41 2001/-ko/Tlinux_2_4_20
+/dm.h/1.1/Tue Aug 25 09:19:06 1998/-ko/Tlinux_2_4_20
+/dmabuf.c/1.20/Fri Aug 25 05:30:01 2000/-ko/Tlinux_2_4_20
+/es1370.c/1.36.2.3/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/es1371.c/1.37.2.3/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/esssolo1.c/1.30.2.2/Wed Jun 26 22:36:09 2002/-ko/Tlinux_2_4_20
+/forte.c/1.1.2.2/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/gus.h/1.1.4.1/Tue Feb 26 05:59:47 2002/-ko/Tlinux_2_4_20
+/gus_card.c/1.14/Mon Nov  5 20:16:10 2001/-ko/Tlinux_2_4_20
+/gus_hw.h/1.1.1.1/Sun Jun  1 03:17:46 1997/-ko/Tlinux_2_4_20
+/gus_linearvol.h/1.1.1.1/Sun Jun  1 03:17:44 1997/-ko/Tlinux_2_4_20
+/gus_midi.c/1.11/Thu Apr  5 04:58:07 2001/-ko/Tlinux_2_4_20
+/gus_vol.c/1.7/Sun Mar 12 23:15:39 2000/-ko/Tlinux_2_4_20
+/gus_wave.c/1.16/Fri Oct 19 01:24:47 2001/-ko/Tlinux_2_4_20
+/hal2.c/1.3.2.7/Thu Nov  7 01:47:46 2002/-ko/Tlinux_2_4_20
+/hal2.h/1.3.2.4/Fri Feb 15 02:14:40 2002/-ko/Tlinux_2_4_20
+/harmony.c/1.1.2.1/Wed Sep 11 12:45:16 2002/-ko/Tlinux_2_4_20
+/hex2hex.c/1.4/Thu Jun 17 13:29:10 1999/-ko/Tlinux_2_4_20
+/i810_audio.c/1.24.2.5/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/ics2101.c/1.9/Tue Nov 28 03:58:52 2000/-ko/Tlinux_2_4_20
+/ite8172.c/1.4.2.3/Thu Nov  7 01:47:46 2002/-ko/Tlinux_2_4_20
+/iwmem.h/1.2/Tue Nov 28 03:58:52 2000/-ko/Tlinux_2_4_20
+/mad16.c/1.21.2.1/Wed Jun 26 22:36:09 2002/-ko/Tlinux_2_4_20
+/maestro.c/1.24.2.2/Tue Sep 10 15:32:52 2002/-ko/Tlinux_2_4_20
+/maestro.h/1.1/Sat Oct  9 00:01:32 1999/-ko/Tlinux_2_4_20
+/maestro3.c/1.8.2.2/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/maestro3.h/1.1/Fri Mar  9 20:34:25 2001/-ko/Tlinux_2_4_20
+/maestro_tables.h/1.1/Sat Oct  9 00:01:32 1999/-ko/Tlinux_2_4_20
+/maui.c/1.16/Mon Nov  5 20:16:10 2001/-ko/Tlinux_2_4_20
+/midi_ctrl.h/1.1.1.1/Sun Jun  1 03:17:45 1997/-ko/Tlinux_2_4_20
+/midi_syms.c/1.1/Tue Aug 25 09:19:11 1998/-ko/Tlinux_2_4_20
+/midi_synth.c/1.10/Mon Aug 28 22:00:22 2000/-ko/Tlinux_2_4_20
+/midi_synth.h/1.2/Mon Aug 28 22:00:22 2000/-ko/Tlinux_2_4_20
+/midibuf.c/1.17/Mon Nov  5 20:16:10 2001/-ko/Tlinux_2_4_20
+/mpu401.c/1.17.2.2/Wed Jun 26 22:36:09 2002/-ko/Tlinux_2_4_20
+/mpu401.h/1.3.4.2/Wed Jun 26 22:36:09 2002/-ko/Tlinux_2_4_20
+/msnd.c/1.10/Mon Nov  5 20:16:11 2001/-ko/Tlinux_2_4_20
+/msnd.h/1.8/Sat Jul 15 03:32:26 2000/-ko/Tlinux_2_4_20
+/msnd_classic.c/1.1/Tue Aug 25 09:19:13 1998/-ko/Tlinux_2_4_20
+/msnd_classic.h/1.4/Wed Feb 16 01:07:44 2000/-ko/Tlinux_2_4_20
+/msnd_pinnacle.c/1.20.2.1/Wed Jun 26 22:36:09 2002/-ko/Tlinux_2_4_20
+/msnd_pinnacle.h/1.4/Wed Feb 16 01:07:44 2000/-ko/Tlinux_2_4_20
+/nec_vrc5477.c/1.6.2.3/Wed Jun 26 22:36:09 2002/-ko/Tlinux_2_4_20
+/nm256.h/1.2/Thu Jan 27 23:45:27 2000/-ko/Tlinux_2_4_20
+/nm256_audio.c/1.15.2.1/Wed Jun 26 22:36:09 2002/-ko/Tlinux_2_4_20
+/nm256_coeff.h/1.2/Thu Jan 27 23:45:27 2000/-ko/Tlinux_2_4_20
+/opl3.c/1.14/Mon Nov  5 20:16:11 2001/-ko/Tlinux_2_4_20
+/opl3.h/1.3.4.1/Tue Feb 26 05:59:47 2002/-ko/Tlinux_2_4_20
+/opl3_hw.h/1.1/Sun Mar 12 23:15:39 2000/-ko/Tlinux_2_4_20
+/opl3sa.c/1.11/Mon Nov  5 20:16:11 2001/-ko/Tlinux_2_4_20
+/opl3sa2.c/1.11.2.2/Wed Jun 26 22:36:09 2002/-ko/Tlinux_2_4_20
+/os.h/1.9/Fri Mar  9 20:34:25 2001/-ko/Tlinux_2_4_20
+/pas2.h/1.1.4.1/Tue Feb 26 05:59:47 2002/-ko/Tlinux_2_4_20
+/pas2_card.c/1.13/Mon Nov  5 20:16:11 2001/-ko/Tlinux_2_4_20
+/pas2_midi.c/1.11/Tue Nov 28 03:58:52 2000/-ko/Tlinux_2_4_20
+/pas2_mixer.c/1.10/Tue Nov 28 03:58:52 2000/-ko/Tlinux_2_4_20
+/pas2_pcm.c/1.11/Tue Nov 28 03:58:52 2000/-ko/Tlinux_2_4_20
+/pss.c/1.17.2.2/Wed Sep 11 12:45:16 2002/-ko/Tlinux_2_4_20
+/rme96xx.c/1.4.2.1/Wed Jun 26 22:36:09 2002/-ko/Tlinux_2_4_20
+/rme96xx.h/1.1.2.1/Wed Jun 26 22:36:09 2002/-ko/Tlinux_2_4_20
+/sb.h/1.18/Fri Mar  9 20:34:25 2001/-ko/Tlinux_2_4_20
+/sb_audio.c/1.14.2.1/Tue Feb 26 05:59:47 2002/-ko/Tlinux_2_4_20
+/sb_card.c/1.36.2.3/Wed Jun 26 22:36:09 2002/-ko/Tlinux_2_4_20
+/sb_common.c/1.27/Mon Nov  5 20:16:11 2001/-ko/Tlinux_2_4_20
+/sb_ess.c/1.12/Tue Nov  6 07:56:06 2001/-ko/Tlinux_2_4_20
+/sb_ess.h/1.1/Mon Feb 15 02:19:53 1999/-ko/Tlinux_2_4_20
+/sb_midi.c/1.11/Fri Mar  9 20:34:25 2001/-ko/Tlinux_2_4_20
+/sb_mixer.c/1.16/Mon Nov  5 20:16:12 2001/-ko/Tlinux_2_4_20
+/sb_mixer.h/1.10/Tue Mar  7 15:45:40 2000/-ko/Tlinux_2_4_20
+/sequencer.c/1.18/Thu Jan 11 04:02:44 2001/-ko/Tlinux_2_4_20
+/sequencer_syms.c/1.3/Thu Oct  5 01:18:58 2000/-ko/Tlinux_2_4_20
+/sgalaxy.c/1.9/Mon Nov  5 20:16:12 2001/-ko/Tlinux_2_4_20
+/skeleton.c/1.4/Thu Apr  5 04:58:07 2001/-ko/Tlinux_2_4_20
+/sonicvibes.c/1.36.2.2/Wed Jun 26 22:36:09 2002/-ko/Tlinux_2_4_20
+/sound_calls.h/1.13/Wed Apr 19 04:00:14 2000/-ko/Tlinux_2_4_20
+/sound_config.h/1.8.4.1/Wed Jun 26 22:36:10 2002/-ko/Tlinux_2_4_20
+/sound_core.c/1.24/Mon Nov  5 20:16:12 2001/-ko/Tlinux_2_4_20
+/sound_firmware.c/1.8/Fri Mar  9 20:34:25 2001/-ko/Tlinux_2_4_20
+/sound_firmware.h/1.1/Sat Dec  6 23:54:38 1997/-ko/Tlinux_2_4_20
+/sound_syms.c/1.11/Thu Oct  5 01:18:58 2000/-ko/Tlinux_2_4_20
+/sound_timer.c/1.11/Thu Jan 11 04:02:44 2001/-ko/Tlinux_2_4_20
+/soundcard.c/1.35/Mon Nov  5 20:16:12 2001/-ko/Tlinux_2_4_20
+/soundvers.h/1.4/Tue Dec 16 05:36:00 1997/-ko/Tlinux_2_4_20
+/sscape.c/1.20/Mon Nov  5 20:16:12 2001/-ko/Tlinux_2_4_20
+/swarm_cs4297a.c/1.2.2.2/Tue Aug 20 15:00:07 2002/-ko/Tlinux_2_4_20
+/sys_timer.c/1.9/Mon Aug 28 22:00:23 2000/-ko/Tlinux_2_4_20
+/trident.c/1.31.2.4/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/trident.h/1.12.2.2/Wed Sep 11 12:45:16 2002/-ko/Tlinux_2_4_20
+/trix.c/1.18/Mon Nov  5 20:16:12 2001/-ko/Tlinux_2_4_20
+/tuning.h/1.1.1.1/Sun Jun  1 03:17:45 1997/-ko/Tlinux_2_4_20
+/uart401.c/1.15/Mon Nov  5 20:16:12 2001/-ko/Tlinux_2_4_20
+/uart6850.c/1.14/Mon Nov  5 20:16:12 2001/-ko/Tlinux_2_4_20
+/ulaw.h/1.2/Tue Jun  3 07:28:30 1997/-ko/Tlinux_2_4_20
+/v_midi.c/1.8/Mon Nov  5 20:16:12 2001/-ko/Tlinux_2_4_20
+/v_midi.h/1.1/Tue Mar 17 22:13:13 1998/-ko/Tlinux_2_4_20
+/via82cxxx_audio.c/1.23.2.3/Wed Jun 26 22:36:10 2002/-ko/Tlinux_2_4_20
+/vidc.c/1.12/Tue Nov  6 00:55:16 2001/-ko/Tlinux_2_4_20
+/vidc.h/1.4/Thu Oct  5 01:18:58 2000/-ko/Tlinux_2_4_20
+/vidc_fill.S/1.5/Thu Oct  5 01:18:58 2000/-ko/Tlinux_2_4_20
+/vwsnd.c/1.11.2.1/Wed Jun 26 22:36:10 2002/-ko/Tlinux_2_4_20
+/waveartist.c/1.13/Tue Nov  6 07:56:06 2001/-ko/Tlinux_2_4_20
+/waveartist.h/1.4/Tue Nov  6 07:56:06 2001/-ko/Tlinux_2_4_20
+/wavfront.c/1.24/Mon Nov  5 20:16:12 2001/-ko/Tlinux_2_4_20
+/wf_midi.c/1.10/Wed Aug 22 03:24:51 2001/-ko/Tlinux_2_4_20
+/ymfpci.c/1.13.2.3/Wed Jun 26 22:36:10 2002/-ko/Tlinux_2_4_20
+/ymfpci.h/1.5.2.1/Wed Jun 26 22:36:10 2002/-ko/Tlinux_2_4_20
+/ymfpci_image.h/1.2/Wed Jun 13 17:28:04 2001/-ko/Tlinux_2_4_20
+/yss225.c/1.2/Tue Nov 28 03:58:52 2000/-ko/Tlinux_2_4_20
+/yss225.h/1.2/Thu Jun 14 04:24:11 2001/-ko/Tlinux_2_4_20
+D/cs4281////
+D/dmasound////
+D/emu10k1////
diff -urNd -urNd linux-2.4.20/drivers/sound/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/sound/CVS/Repository
--- linux-2.4.20/drivers/sound/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sound/CVS/Repository	2005-01-06 23:04:50.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/sound
diff -urNd -urNd linux-2.4.20/drivers/sound/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/sound/CVS/Root
--- linux-2.4.20/drivers/sound/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sound/CVS/Root	2005-01-06 23:04:50.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/sound/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/sound/CVS/Tag
--- linux-2.4.20/drivers/sound/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sound/CVS/Tag	2005-01-06 23:05:11.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/sound/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/sound/.cvsignore
--- linux-2.4.20/drivers/sound/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sound/.cvsignore	1998-03-17 16:12:49.000000000 -0600
@@ -0,0 +1,5 @@
+.depend
+.*.flags
+.defines
+local.h
+configure
diff -urNd -urNd linux-2.4.20/drivers/sound/dmasound/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/sound/dmasound/CVS/Entries
--- linux-2.4.20/drivers/sound/dmasound/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sound/dmasound/CVS/Entries	2005-01-06 23:05:13.000000000 -0600
@@ -0,0 +1,15 @@
+/.cvsignore/1.1/Wed Apr 19 04:00:14 2000/-ko/Tlinux_2_4_20
+/Config.in/1.1.4.1/Tue Feb 26 05:59:48 2002//Tlinux_2_4_20
+/Makefile/1.2.2.1/Tue Feb 26 05:59:48 2002//Tlinux_2_4_20
+/awacs_defs.h/1.2.4.1/Tue Feb 26 05:59:48 2002/-ko/Tlinux_2_4_20
+/dac3550a.c/1.1.2.1/Tue Feb 26 05:59:48 2002/-ko/Tlinux_2_4_20
+/dmasound.h/1.4.2.2/Wed Jun 26 22:36:10 2002//Tlinux_2_4_20
+/dmasound_atari.c/1.7.2.2/Wed Jun 26 22:36:10 2002//Tlinux_2_4_20
+/dmasound_awacs.c/1.9.2.2/Wed Jun 26 22:36:10 2002//Tlinux_2_4_20
+/dmasound_core.c/1.9.2.2/Wed Jun 26 22:36:10 2002//Tlinux_2_4_20
+/dmasound_paula.c/1.6.2.2/Wed Jun 26 22:36:10 2002//Tlinux_2_4_20
+/dmasound_q40.c/1.6.2.2/Wed Jun 26 22:36:10 2002//Tlinux_2_4_20
+/tas3001c.c/1.1.2.1/Tue Feb 26 05:59:49 2002/-ko/Tlinux_2_4_20
+/tas3001c.h/1.1.2.1/Tue Feb 26 05:59:49 2002/-ko/Tlinux_2_4_20
+/trans_16.c/1.1.2.1/Tue Feb 26 05:59:49 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/sound/dmasound/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/sound/dmasound/CVS/Repository
--- linux-2.4.20/drivers/sound/dmasound/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sound/dmasound/CVS/Repository	2005-01-06 23:05:12.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/sound/dmasound
diff -urNd -urNd linux-2.4.20/drivers/sound/dmasound/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/sound/dmasound/CVS/Root
--- linux-2.4.20/drivers/sound/dmasound/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sound/dmasound/CVS/Root	2005-01-06 23:05:12.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/sound/dmasound/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/sound/dmasound/CVS/Tag
--- linux-2.4.20/drivers/sound/dmasound/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sound/dmasound/CVS/Tag	2005-01-06 23:05:13.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/sound/dmasound/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/sound/dmasound/.cvsignore
--- linux-2.4.20/drivers/sound/dmasound/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sound/dmasound/.cvsignore	2000-04-18 23:00:14.000000000 -0500
@@ -0,0 +1,5 @@
+.depend
+.*.flags
+.defines
+local.h
+configure
diff -urNd -urNd linux-2.4.20/drivers/sound/emu10k1/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/sound/emu10k1/CVS/Entries
--- linux-2.4.20/drivers/sound/emu10k1/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sound/emu10k1/CVS/Entries	2005-01-06 23:05:14.000000000 -0600
@@ -0,0 +1,37 @@
+/.cvsignore/1.1.4.1/Mon Dec 31 03:33:20 2001/-ko/Tlinux_2_4_20
+/8010.h/1.3/Fri Aug 24 03:38:45 2001/-ko/Tlinux_2_4_20
+/Makefile/1.5/Sat Sep 22 12:49:33 2001/-ko/Tlinux_2_4_20
+/audio.c/1.14.2.2/Wed Jun 26 22:36:10 2002/-ko/Tlinux_2_4_20
+/audio.h/1.2.4.2/Wed Jun 26 22:36:10 2002/-ko/Tlinux_2_4_20
+/cardmi.c/1.4/Fri Aug 24 03:38:45 2001/-ko/Tlinux_2_4_20
+/cardmi.h/1.4/Fri Aug 24 03:38:45 2001/-ko/Tlinux_2_4_20
+/cardmo.c/1.4/Fri Aug 24 03:38:45 2001/-ko/Tlinux_2_4_20
+/cardmo.h/1.2/Mon Aug 28 22:00:23 2000/-ko/Tlinux_2_4_20
+/cardwi.c/1.5.2.2/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/cardwi.h/1.3.2.1/Wed Jun 26 22:36:10 2002/-ko/Tlinux_2_4_20
+/cardwo.c/1.6.2.2/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/cardwo.h/1.3.2.2/Wed Jun 26 22:36:10 2002/-ko/Tlinux_2_4_20
+/ecard.c/1.2/Fri Aug 24 03:38:45 2001/-ko/Tlinux_2_4_20
+/ecard.h/1.4/Fri Aug 24 03:38:45 2001/-ko/Tlinux_2_4_20
+/efxmgr.c/1.4.2.2/Wed Jun 26 22:36:10 2002/-ko/Tlinux_2_4_20
+/efxmgr.h/1.3.2.1/Wed Jun 26 22:36:10 2002/-ko/Tlinux_2_4_20
+/emuadxmg.c/1.2/Mon Aug 28 22:00:23 2000/-ko/Tlinux_2_4_20
+/hwaccess.c/1.3.2.1/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/hwaccess.h/1.6.2.3/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/icardmid.h/1.1/Fri Apr 28 01:09:47 2000/-ko/Tlinux_2_4_20
+/icardwav.h/1.3/Fri Aug 24 03:38:45 2001/-ko/Tlinux_2_4_20
+/irqmgr.c/1.3.2.1/Tue Feb 26 05:59:50 2002/-ko/Tlinux_2_4_20
+/irqmgr.h/1.3/Fri Aug 24 03:38:45 2001/-ko/Tlinux_2_4_20
+/main.c/1.12.2.4/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
+/midi.c/1.10.2.1/Tue Feb 26 05:59:50 2002/-ko/Tlinux_2_4_20
+/midi.h/1.1/Fri Apr 28 01:09:47 2000/-ko/Tlinux_2_4_20
+/mixer.c/1.6.2.2/Wed Jun 26 22:36:10 2002/-ko/Tlinux_2_4_20
+/passthrough.c/1.3/Mon Nov  5 20:16:13 2001/-ko/Tlinux_2_4_20
+/passthrough.h/1.3/Mon Nov  5 20:16:13 2001/-ko/Tlinux_2_4_20
+/recmgr.c/1.3.2.3/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/recmgr.h/1.2.4.1/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/timer.c/1.2.4.1/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/timer.h/1.3.2.1/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/voicemgr.c/1.3.2.2/Wed Jun 26 22:36:10 2002/-ko/Tlinux_2_4_20
+/voicemgr.h/1.3.2.1/Tue Feb 26 05:59:50 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/sound/emu10k1/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/sound/emu10k1/CVS/Repository
--- linux-2.4.20/drivers/sound/emu10k1/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sound/emu10k1/CVS/Repository	2005-01-06 23:05:13.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/sound/emu10k1
diff -urNd -urNd linux-2.4.20/drivers/sound/emu10k1/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/sound/emu10k1/CVS/Root
--- linux-2.4.20/drivers/sound/emu10k1/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sound/emu10k1/CVS/Root	2005-01-06 23:05:13.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/sound/emu10k1/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/sound/emu10k1/CVS/Tag
--- linux-2.4.20/drivers/sound/emu10k1/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sound/emu10k1/CVS/Tag	2005-01-06 23:05:14.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/sound/emu10k1/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/sound/emu10k1/.cvsignore
--- linux-2.4.20/drivers/sound/emu10k1/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sound/emu10k1/.cvsignore	2001-12-30 21:33:20.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/sound/hal2.c linux-2.4.20-mipscvs-20050106/drivers/sound/hal2.c
--- linux-2.4.20/drivers/sound/hal2.c	2002-08-02 19:39:44.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/drivers/sound/hal2.c	2002-11-06 19:47:46.000000000 -0600
@@ -1312,22 +1312,22 @@
 }
 
 static struct file_operations hal2_audio_fops = {
-	owner:		THIS_MODULE,
-	llseek:		no_llseek,
-	read:		hal2_read,
-	write:		hal2_write,
-	poll:		hal2_poll,
-	ioctl:		hal2_ioctl,
-	open:		hal2_open,
-	release:	hal2_release,
+	.owner		= THIS_MODULE,
+	.llseek		= no_llseek,
+	.read		= hal2_read,
+	.write		= hal2_write,
+	.poll		= hal2_poll,
+	.ioctl		= hal2_ioctl,
+	.open		= hal2_open,
+	.release	= hal2_release,
 };
 
 static struct file_operations hal2_mixer_fops = {
-	owner:		THIS_MODULE,
-	llseek:		no_llseek,
-	ioctl:		hal2_ioctl_mixdev,
-	open:		hal2_open_mixdev,
-	release:	hal2_release_mixdev,
+	.owner		= THIS_MODULE,
+	.llseek		= no_llseek,
+	.ioctl		= hal2_ioctl_mixdev,
+	.open		= hal2_open_mixdev,
+	.release	= hal2_release_mixdev,
 };
 
 static int hal2_request_irq(hal2_card_t *hal2, int irq)
diff -urNd -urNd linux-2.4.20/drivers/sound/ite8172.c linux-2.4.20-mipscvs-20050106/drivers/sound/ite8172.c
--- linux-2.4.20/drivers/sound/ite8172.c	2002-08-02 19:39:44.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/drivers/sound/ite8172.c	2002-11-06 19:47:46.000000000 -0600
@@ -1003,11 +1003,11 @@
 }
 
 static /*const*/ struct file_operations it8172_mixer_fops = {
-	owner:	THIS_MODULE,
-	llseek:	it8172_llseek,
-	ioctl:	it8172_ioctl_mixdev,
-	open:	it8172_open_mixdev,
-	release:	it8172_release_mixdev,
+	.owner	= THIS_MODULE,
+	.llseek	= it8172_llseek,
+	.ioctl	= it8172_ioctl_mixdev,
+	.open	= it8172_open_mixdev,
+	.release	= it8172_release_mixdev,
 };
 
 /* --------------------------------------------------------------------- */
@@ -1872,15 +1872,15 @@
 }
 
 static /*const*/ struct file_operations it8172_audio_fops = {
-	owner:	THIS_MODULE,
-	llseek:	it8172_llseek,
-	read:	it8172_read,
-	write:	it8172_write,
-	poll:	it8172_poll,
-	ioctl:	it8172_ioctl,
-	mmap:	it8172_mmap,
-	open:	it8172_open,
-	release:	it8172_release,
+	.owner	= THIS_MODULE,
+	.llseek	= it8172_llseek,
+	.read	= it8172_read,
+	.write	= it8172_write,
+	.poll	= it8172_poll,
+	.ioctl	= it8172_ioctl,
+	.mmap	= it8172_mmap,
+	.open	= it8172_open,
+	.release	= it8172_release,
 };
 
 
@@ -2188,10 +2188,10 @@
 MODULE_DEVICE_TABLE(pci, id_table);
 
 static struct pci_driver it8172_driver = {
-	name: IT8172_MODULE_NAME,
-	id_table: id_table,
-	probe: it8172_probe,
-	remove: it8172_remove
+	.name = IT8172_MODULE_NAME,
+	.id_table = id_table,
+	.probe = it8172_probe,
+	.remove = it8172_remove
 };
 
 static int __init init_it8172(void)
diff -urNd -urNd linux-2.4.20/drivers/sound/Makefile linux-2.4.20-mipscvs-20050106/drivers/sound/Makefile
--- linux-2.4.20/drivers/sound/Makefile	2002-11-28 17:53:14.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/sound/Makefile	2002-12-29 04:30:36.000000000 -0600
@@ -66,7 +66,7 @@
 obj-$(CONFIG_SOUND_ES1370)	+= es1370.o
 obj-$(CONFIG_SOUND_ES1371)	+= es1371.o ac97_codec.o
 obj-$(CONFIG_SOUND_VRC5477)	+= nec_vrc5477.o ac97_codec.o
-obj-$(CONFIG_SOUND_AU1000)      += au1000.o ac97_codec.o  
+obj-$(CONFIG_SOUND_AU1X00)      += au1000.o ac97_codec.o  
 obj-$(CONFIG_SOUND_ESSSOLO1)	+= esssolo1.o
 obj-$(CONFIG_SOUND_FUSION)	+= cs46xx.o ac97_codec.o
 obj-$(CONFIG_SOUND_MAESTRO)	+= maestro.o
diff -urNd -urNd linux-2.4.20/drivers/tc/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/tc/CVS/Entries
--- linux-2.4.20/drivers/tc/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/tc/CVS/Entries	2005-01-06 23:05:15.000000000 -0600
@@ -0,0 +1,10 @@
+/.cvsignore/1.2/Sat Dec 30 15:55:57 2000/-ko/Tlinux_2_4_20
+/Makefile/1.6/Fri Jan 12 20:44:17 2001/-ko/Tlinux_2_4_20
+/lk201-map.map/1.1.4.1/Mon Aug  5 23:53:40 2002/-ko/Tlinux_2_4_20
+/lk201-remap.c/1.2.2.1/Mon Aug  5 23:53:40 2002/-ko/Tlinux_2_4_20
+/lk201.c/1.5.2.7/Thu Jan 16 13:57:52 2003/-ko/Tlinux_2_4_20
+/lk201.h/1.2.2.3/Thu Jan 16 13:57:52 2003/-ko/Tlinux_2_4_20
+/tc.c/1.7.2.7/Thu Dec 12 19:08:50 2002/-ko/Tlinux_2_4_20
+/zs.c/1.19.2.12/Thu Dec 12 19:08:50 2002/-ko/Tlinux_2_4_20
+/zs.h/1.4.2.1/Mon Aug  5 23:53:40 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/tc/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/tc/CVS/Repository
--- linux-2.4.20/drivers/tc/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/tc/CVS/Repository	2005-01-06 23:05:14.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/tc
diff -urNd -urNd linux-2.4.20/drivers/tc/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/tc/CVS/Root
--- linux-2.4.20/drivers/tc/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/tc/CVS/Root	2005-01-06 23:05:14.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/tc/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/tc/CVS/Tag
--- linux-2.4.20/drivers/tc/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/tc/CVS/Tag	2005-01-06 23:05:15.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/tc/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/tc/.cvsignore
--- linux-2.4.20/drivers/tc/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/tc/.cvsignore	2000-12-30 09:55:57.000000000 -0600
@@ -0,0 +1,3 @@
+.depend
+.*.flags
+lk201-map.c
diff -urNd -urNd linux-2.4.20/drivers/tc/lk201.c linux-2.4.20-mipscvs-20050106/drivers/tc/lk201.c
--- linux-2.4.20/drivers/tc/lk201.c	2002-11-28 17:53:14.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/tc/lk201.c	2003-01-16 07:57:52.000000000 -0600
@@ -5,7 +5,7 @@
  * for more details.
  *
  * Copyright (C) 1999-2002 Harald Koerfgen <hkoerfg@web.de>
- * Copyright (C) 2001, 2002  Maciej W. Rozycki <macro@ds2.pg.gda.pl>
+ * Copyright (C) 2001, 2002, 2003  Maciej W. Rozycki <macro@ds2.pg.gda.pl>
  */
 
 #include <linux/config.h>
@@ -27,6 +27,21 @@
 #include "zs.h"
 #include "lk201.h"
 
+/*
+ * Only handle DECstations that have an LK201 interface.
+ * Maxine uses LK501 at the Access.Bus and various DECsystems
+ * have no keyboard interface at all.
+ */
+#define LK_IFACE	(mips_machtype == MACH_DS23100    || \
+			 mips_machtype == MACH_DS5000_200 || \
+			 mips_machtype == MACH_DS5000_1XX || \
+			 mips_machtype == MACH_DS5000_2X0)
+/*
+ * These use the Z8530 SCC.  Others use the DZ11.
+ */
+#define LK_IFACE_ZS	(mips_machtype == MACH_DS5000_1XX || \
+			 mips_machtype == MACH_DS5000_2X0)
+
 /* Simple translation table for the SysRq keys */
 
 #ifdef CONFIG_MAGIC_SYSRQ
@@ -47,12 +62,12 @@
 static void lk201_kbd_rx_char(unsigned char, unsigned char);
 
 struct zs_hook lk201_kbdhook = {
-	init_channel:	lk201_init,
-	init_info:	lk201_info,
-	rx_char:	NULL,
-	poll_rx_char:	NULL,
-	poll_tx_char:	NULL,
-	cflags:		B4800 | CS8 | CSTOPB | CLOCAL
+	.init_channel	= lk201_init,
+	.init_info	= lk201_info,
+	.rx_char	= NULL,
+	.poll_rx_char	= NULL,
+	.poll_tx_char	= NULL,
+	.cflags		= B4800 | CS8 | CSTOPB | CLOCAL
 };
 
 /*
@@ -145,11 +160,17 @@
 	case 2:
 		printk(KERN_INFO "lk201: LK401 detected\n");
 		break;
+	case 3:
+		printk(KERN_INFO "lk201: LK443 detected\n");
+		break;
+	case 4:
+		printk(KERN_INFO "lk201: LK421 detected\n");
+		break;
 	default:
 		printk(KERN_WARNING
 		       "lk201: unknown keyboard detected, ID %d\n", id[4]);
 		printk(KERN_WARNING "lk201: ... please report to "
-		       "<linux-mips@oss.sgi.com>\n");
+		       "<linux-mips@linux-mips.org>\n");
 	}
 }
 
@@ -321,7 +342,7 @@
 				       "error, skipping initialization\n");
 			}
 		} else if (id_i == 6) {
-			/* We got the ID; report it and start an operation. */
+			/* We got the ID; report it and start operation. */
 			id_i = 0;
 			lk201_id(id);
 			lk201_reset(lk201kbd_info);
@@ -341,19 +362,19 @@
 		break;
 	case LK_KEY_LOCK:
 		shift_state ^= LK_LOCK;
-		handle_scancode(c, shift_state && LK_LOCK ? 1 : 0);
+		handle_scancode(c, (shift_state & LK_LOCK) ? 1 : 0);
 		break;
 	case LK_KEY_SHIFT:
 		shift_state ^= LK_SHIFT;
-		handle_scancode(c, shift_state && LK_SHIFT ? 1 : 0);
+		handle_scancode(c, (shift_state & LK_SHIFT) ? 1 : 0);
 		break;
 	case LK_KEY_CTRL:
 		shift_state ^= LK_CTRL;
-		handle_scancode(c, shift_state && LK_CTRL ? 1 : 0);
+		handle_scancode(c, (shift_state & LK_CTRL) ? 1 : 0);
 		break;
 	case LK_KEY_COMP:
 		shift_state ^= LK_COMP;
-		handle_scancode(c, shift_state && LK_COMP ? 1 : 0);
+		handle_scancode(c, (shift_state & LK_COMP) ? 1 : 0);
 		break;
 	case LK_KEY_RELEASE:
 		if (shift_state & LK_SHIFT)
@@ -402,28 +423,24 @@
 	extern int unregister_zs_hook(unsigned int);
 
 	/* Maxine uses LK501 at the Access.Bus. */
-	if (mips_machtype == MACH_DS5000_XX)
+	if (!LK_IFACE)
 		return;
 
 	printk(KERN_INFO "lk201: DECstation LK keyboard driver v0.05.\n");
 
-	if (TURBOCHANNEL) {
+	if (LK_IFACE_ZS) {
 		/*
 		 * kbd_init_hw() is being called before
 		 * rs_init() so just register the kbd hook
 		 * and let zs_init do the rest :-)
 		 */
-		if (mips_machtype == MACH_DS5000_200)
-			printk(KERN_ERR "lk201: support for DS5000/200 "
-			       "not yet ready.\n");
-		else
-			if(!register_zs_hook(KEYB_LINE, &lk201_kbdhook))
-				unregister_zs_hook(KEYB_LINE);
+		if(!register_zs_hook(KEYB_LINE, &lk201_kbdhook))
+			unregister_zs_hook(KEYB_LINE);
 	} else {
 		/*
 		 * TODO: modify dz.c to allow similar hooks
 		 * for LK201 handling on DS2100, DS3100, and DS5000/200
 		 */
-		printk(KERN_ERR "lk201: support for DS3100 not yet ready.\n");
+		printk(KERN_ERR "lk201: support for DZ11 not yet ready.\n");
 	}
 }
diff -urNd -urNd linux-2.4.20/drivers/tc/lk201.h linux-2.4.20-mipscvs-20050106/drivers/tc/lk201.h
--- linux-2.4.20/drivers/tc/lk201.h	2002-11-28 17:53:14.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/tc/lk201.h	2003-01-16 07:57:52.000000000 -0600
@@ -68,22 +68,24 @@
 /*
  * Mappings between key groups and keycodes are as follows:
  *
- *  1: 0xbf - 0xfb -- alphanumeric,
- *  2: 0x92 - 0xa4 -- numeric keypad,
+ *  1: 0xbf - 0xff -- alphanumeric,
+ *  2: 0x91 - 0xa5 -- numeric keypad,
  *  3: 0xbc        -- Backspace,
  *  4: 0xbd - 0xbe -- Tab, Return,
- *  5: 0xb0 - 0xb1 -- Lock, Compose Character,
- *  6: 0xae - 0xaf -- Ctrl, Shift,
- *  7: 0xa7 - 0xa8 -- Left Arrow, Right Arrow,
- *  8: 0xa9 - 0xab -- Up Arrow, Down Arrow, Right Shift,
- *  9: 0x8a - 0x8f -- editor keypad,
- * 10: 0x56 - 0x5a -- F1 - F5,
- * 11: 0x64 - 0x68 -- F6 - F10,
- * 12: 0x71 - 0x74 -- F11 - F14,
- * 13: 0x7c - 0x7d -- Help, Do,
- * 14: 0x80 - 0x83 -- F17 - F20.
+ *  5: 0xb0 - 0xb2 -- Lock, Compose Character,
+ *  6: 0xad - 0xaf -- Ctrl, Shift,
+ *  7: 0xa6 - 0xa8 -- Left Arrow, Right Arrow,
+ *  8: 0xa9 - 0xac -- Up Arrow, Down Arrow, Right Shift,
+ *  9: 0x88 - 0x90 -- editor keypad,
+ * 10: 0x56 - 0x62 -- F1 - F5,
+ * 11: 0x63 - 0x6e -- F6 - F10,
+ * 12: 0x6f - 0x7a -- F11 - F14,
+ * 13: 0x7b - 0x7d -- Help, Do,
+ * 14: 0x7e - 0x87 -- F17 - F20.
  *
- * Others, i.e. 0x55, 0xac, 0xad, 0xb2, are undiscovered.
+ * Notes:
+ * 1. Codes in the 0x00 - 0x40 range are reserved.
+ * 2. The assignment of the 0x41 - 0x55 range is undiscovered, probably 10.
  */
 
 /* delay is 5 - 630 ms; 0x00 and 0x7f are reserved */
diff -urNd -urNd linux-2.4.20/drivers/tc/tc.c linux-2.4.20-mipscvs-20050106/drivers/tc/tc.c
--- linux-2.4.20/drivers/tc/tc.c	2002-11-28 17:53:14.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/tc/tc.c	2002-12-12 13:08:50.000000000 -0600
@@ -19,6 +19,7 @@
 #include <asm/addrspace.h>
 #include <asm/errno.h>
 #include <asm/dec/machtype.h>
+#include <asm/dec/prom.h>
 #include <asm/dec/tcinfo.h>
 #include <asm/dec/tcmodule.h>
 #include <asm/dec/interrupts.h>
@@ -34,9 +35,6 @@
 
 unsigned long system_base;
 
-extern unsigned long *(*rex_slot_address)(int);
-extern void *(*rex_gettcinfo)(void);
-
 /*
  * Interface to the world. Read comment in include/asm-mips/tc.h.
  */
@@ -204,6 +202,7 @@
 		break;
 	case MACH_DS5000_1XX:
 	case MACH_DS5000_2X0:
+	case MACH_DS5900:
 		max_tcslot = 2;
 		break;
 	case MACH_DS5000_XX:
diff -urNd -urNd linux-2.4.20/drivers/tc/zs.c linux-2.4.20-mipscvs-20050106/drivers/tc/zs.c
--- linux-2.4.20/drivers/tc/zs.c	2002-11-28 17:53:14.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/tc/zs.c	2002-12-12 13:08:50.000000000 -0600
@@ -56,7 +56,7 @@
 #include <linux/delay.h>
 #include <linux/init.h>
 #include <linux/ioport.h>
-#ifdef CONFIG_SERIAL_CONSOLE
+#ifdef CONFIG_SERIAL_DEC_CONSOLE
 #include <linux/console.h>
 #endif
 
@@ -157,10 +157,10 @@
 
 struct tty_struct zs_ttys[NUM_CHANNELS];
 
-#ifdef CONFIG_SERIAL_CONSOLE
+#ifdef CONFIG_SERIAL_DEC_CONSOLE
 static struct console sercons;
 #endif
-#if defined(CONFIG_SERIAL_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) \
+#if defined(CONFIG_SERIAL_DEC_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) \
     && !defined(MODULE)
 static unsigned long break_pressed; /* break, really ... */
 #endif
@@ -416,7 +416,7 @@
 
 		if (tty_break) {
 			tty_break = 0;
-#if defined(CONFIG_SERIAL_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) && !defined(MODULE)
+#if defined(CONFIG_SERIAL_DEC_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) && !defined(MODULE)
 			if (info->line == sercons.index) {
 				if (!break_pressed) {
 					break_pressed = jiffies;
@@ -442,7 +442,7 @@
 				write_zsreg(info->zs_channel, R0, ERR_RES);
 		}
 
-#if defined(CONFIG_SERIAL_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) && !defined(MODULE)
+#if defined(CONFIG_SERIAL_DEC_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) && !defined(MODULE)
 		if (break_pressed && info->line == sercons.index) {
 			if (ch != 0 &&
 			    time_before(jiffies, break_pressed + HZ*5)) {
@@ -473,7 +473,7 @@
 
 		*tty->flip.flag_buf_ptr++ = flag;
 		*tty->flip.char_buf_ptr++ = ch;
-#if defined(CONFIG_SERIAL_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) && !defined(MODULE)
+#if defined(CONFIG_SERIAL_DEC_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) && !defined(MODULE)
 	ignore_char:
 #endif
 	}
@@ -1701,7 +1701,7 @@
 			*tty->termios = info->callout_termios;
 		change_speed(info);
 	}
-#ifdef CONFIG_SERIAL_CONSOLE
+#ifdef CONFIG_SERIAL_DEC_CONSOLE
 	if (sercons.cflag && sercons.index == line) {
 		tty->termios->c_cflag = sercons.cflag;
 		sercons.cflag = 0;
@@ -1750,21 +1750,22 @@
 	switch(mips_machtype) {
 #ifdef CONFIG_DECSTATION
 	case MACH_DS5000_2X0:
-		system_base = 0xbf800000;
+	case MACH_DS5900:
+		system_base = KSEG1ADDR(0x1f800000);
 		n_chips = 2;
 		zs_parms = &ds_parms;
 		zs_parms->irq0 = dec_interrupt[DEC_IRQ_SCC0];
 		zs_parms->irq1 = dec_interrupt[DEC_IRQ_SCC1];
 		break;
 	case MACH_DS5000_1XX:
-		system_base = 0xbc000000;
+		system_base = KSEG1ADDR(0x1c000000);
 		n_chips = 2;
 		zs_parms = &ds_parms;
 		zs_parms->irq0 = dec_interrupt[DEC_IRQ_SCC0];
 		zs_parms->irq1 = dec_interrupt[DEC_IRQ_SCC1];
 		break;
 	case MACH_DS5000_XX:
-		system_base = 0xbc000000;
+		system_base = KSEG1ADDR(0x1c000000);
 		n_chips = 1;
 		zs_parms = &ds_parms;
 		zs_parms->irq0 = dec_interrupt[DEC_IRQ_SCC0];
@@ -1801,7 +1802,7 @@
 			zs_channels[n_channels].data =
 				zs_channels[n_channels].control + 4;
 
-#ifndef CONFIG_SERIAL_CONSOLE
+#ifndef CONFIG_SERIAL_DEC_CONSOLE
 			/*
 			 * We're called early and memory managment isn't up, yet.
 			 * Thus check_region would fail.
@@ -2006,21 +2007,6 @@
 }
 
 /*
- * register_serial and unregister_serial allows for serial ports to be
- * configured at run-time, to support PCMCIA modems.
- */
-/* PowerMac: Unused at this time, just here to make things link. */
-int register_serial(struct serial_struct *req)
-{
-	return -1;
-}
-
-void unregister_serial(int line)
-{
-	return;
-}
-
-/*
  * polling I/O routines
  */
 static int
@@ -2111,7 +2097,7 @@
  * Serial console driver
  * ------------------------------------------------------------
  */
-#ifdef CONFIG_SERIAL_CONSOLE
+#ifdef CONFIG_SERIAL_DEC_CONSOLE
 
 
 /*
@@ -2264,12 +2250,12 @@
 }
 
 static struct console sercons = {
-	name:		"ttyS",
-	write:		serial_console_write,
-	device:		serial_console_device,
-	setup:		serial_console_setup,
-	flags:		CON_PRINTBUFFER,
-	index:		-1,
+	.name		= "ttyS",
+	.write		= serial_console_write,
+	.device		= serial_console_device,
+	.setup		= serial_console_setup,
+	.flags		= CON_PRINTBUFFER,
+	.index		= -1,
 };
 
 /*
@@ -2279,7 +2265,7 @@
 {
 	register_console(&sercons);
 }
-#endif /* ifdef CONFIG_SERIAL_CONSOLE */
+#endif /* ifdef CONFIG_SERIAL_DEC_CONSOLE */
 
 #ifdef CONFIG_KGDB
 struct dec_zschannel *zs_kgdbchan;
diff -urNd -urNd linux-2.4.20/drivers/telephony/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/telephony/CVS/Entries
--- linux-2.4.20/drivers/telephony/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/telephony/CVS/Entries	2005-01-06 23:05:17.000000000 -0600
@@ -0,0 +1,9 @@
+/.cvsignore/1.1/Sat Feb  5 06:47:30 2000/-ko/Tlinux_2_4_20
+/Config.in/1.2.2.1/Wed Jun 26 22:36:10 2002/-ko/Tlinux_2_4_20
+/Makefile/1.4/Fri Oct 19 01:24:47 2001/-ko/Tlinux_2_4_20
+/ixj-ver.h/1.1/Fri Oct 19 01:24:47 2001/-ko/Tlinux_2_4_20
+/ixj.c/1.17.2.2/Wed Sep 11 12:45:16 2002/-ko/Tlinux_2_4_20
+/ixj.h/1.8/Fri Oct 19 01:24:48 2001/-ko/Tlinux_2_4_20
+/ixj_pcmcia.c/1.1/Fri Oct 19 01:24:48 2001/-ko/Tlinux_2_4_20
+/phonedev.c/1.8/Fri Oct 19 01:24:48 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/telephony/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/telephony/CVS/Repository
--- linux-2.4.20/drivers/telephony/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/telephony/CVS/Repository	2005-01-06 23:05:15.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/telephony
diff -urNd -urNd linux-2.4.20/drivers/telephony/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/telephony/CVS/Root
--- linux-2.4.20/drivers/telephony/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/telephony/CVS/Root	2005-01-06 23:05:15.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/telephony/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/telephony/CVS/Tag
--- linux-2.4.20/drivers/telephony/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/telephony/CVS/Tag	2005-01-06 23:05:17.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/telephony/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/telephony/.cvsignore
--- linux-2.4.20/drivers/telephony/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/telephony/.cvsignore	2000-02-05 00:47:30.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/usb/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/usb/CVS/Entries
--- linux-2.4.20/drivers/usb/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/usb/CVS/Entries	2005-01-06 23:08:10.000000000 -0600
@@ -0,0 +1,100 @@
+/.cvsignore/1.1.6.1/Mon Dec 31 03:33:20 2001/-ko/Tlinux_2_4_20
+/CDCEther.c/1.3.2.3/Wed Sep 11 12:45:16 2002/-ko/Tlinux_2_4_20
+/CDCEther.h/1.2.2.2/Wed Sep 11 12:45:16 2002/-ko/Tlinux_2_4_20
+/Config.in/1.41.2.3/Wed Sep 11 12:45:16 2002/-ko/Tlinux_2_4_20
+/Makefile/1.33.2.4/Wed Sep 11 12:45:16 2002/-ko/Tlinux_2_4_20
+/acm.c/1.32.2.1/Wed Sep 11 12:45:16 2002/-ko/Tlinux_2_4_20
+/aiptek.c/1.1.2.1/Wed Sep 11 12:45:16 2002/-ko/Tlinux_2_4_20
+/audio.c/1.29.2.4/Wed Sep 11 12:45:16 2002/-ko/Tlinux_2_4_20
+/audio.h/1.2/Wed Apr 19 04:00:14 2000/-ko/Tlinux_2_4_20
+/auerswald.c/1.1.2.2/Wed Sep 11 12:45:17 2002/-ko/Tlinux_2_4_20
+/bluetooth.c/1.17.2.1/Wed Sep 11 12:45:17 2002/-ko/Tlinux_2_4_20
+/brlvger.c/1.1.2.3/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/catc.c/1.3.2.3/Wed Sep 11 12:45:17 2002/-ko/Tlinux_2_4_20
+/dabfirmware.h/1.1/Fri Feb 18 00:24:44 2000/-ko/Tlinux_2_4_20
+/dabusb.c/1.15.2.2/Wed Sep 11 12:45:17 2002/-ko/Tlinux_2_4_20
+/dabusb.h/1.5.4.1/Wed Sep 11 12:45:17 2002/-ko/Tlinux_2_4_20
+/dc2xx.c/1.21.2.1/Sat Dec 29 05:38:11 2001/-ko/Tlinux_2_4_20
+/devices.c/1.14.2.4/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/devio.c/1.19.2.2/Wed Sep 11 12:45:17 2002/-ko/Tlinux_2_4_20
+/drivers.c/1.6/Fri Apr 28 01:09:47 2000/-ko/Tlinux_2_4_20
+/dsbr100.c/1.13/Mon Nov  5 20:16:13 2001/-ko/Tlinux_2_4_20
+/emi26.c/1.1.2.1/Wed Jun 26 22:36:11 2002/-ko/Tlinux_2_4_20
+/emi26_fw.h/1.1.2.1/Wed Jun 26 22:36:11 2002/-ko/Tlinux_2_4_20
+/hc_simple.c/1.1.2.1/Wed Sep 11 12:45:17 2002/-ko/Tlinux_2_4_20
+/hc_simple.h/1.1.2.1/Wed Sep 11 12:45:17 2002/-ko/Tlinux_2_4_20
+/hc_sl811.c/1.1.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/hc_sl811.h/1.1.2.1/Wed Sep 11 12:45:17 2002/-ko/Tlinux_2_4_20
+/hc_sl811_rh.c/1.1.2.1/Wed Sep 11 12:45:17 2002/-ko/Tlinux_2_4_20
+/hcd.c/1.1.2.3/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/hcd.h/1.1.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/hid-core.c/1.1.2.3/Wed Sep 11 12:45:17 2002/-ko/Tlinux_2_4_20
+/hid-debug.h/1.6/Fri Oct 19 01:24:48 2001/-ko/Tlinux_2_4_20
+/hid-input.c/1.2/Sun Dec  2 11:34:50 2001/-ko/Tlinux_2_4_20
+/hid.h/1.12.2.2/Wed Sep 11 12:45:17 2002/-ko/Tlinux_2_4_20
+/hiddev.c/1.2/Tue Nov  6 00:55:17 2001/-ko/Tlinux_2_4_20
+/hpusbscsi.c/1.1.2.3/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/hpusbscsi.h/1.1.2.1/Wed Jun 26 22:36:11 2002/-ko/Tlinux_2_4_20
+/hub.c/1.33.2.3/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/hub.h/1.14.2.1/Wed Jun 26 22:36:11 2002/-ko/Tlinux_2_4_20
+/ibmcam.c/1.19.2.1/Wed Jun 26 22:36:11 2002/-ko/Tlinux_2_4_20
+/inode.c/1.16.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/kaweth.c/1.5.2.3/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/kawethfw.h/1.1/Sat Sep 22 12:49:34 2001/-ko/Tlinux_2_4_20
+/mdc800.c/1.14.2.3/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/microtek.c/1.13.2.1/Wed Sep 11 12:45:17 2002/-ko/Tlinux_2_4_20
+/microtek.h/1.3/Thu Apr  5 04:58:08 2001/-ko/Tlinux_2_4_20
+/ov511.c/1.28.2.3/Wed Sep 11 12:45:17 2002/-ko/Tlinux_2_4_20
+/ov511.h/1.10.4.3/Wed Sep 11 12:45:18 2002/-ko/Tlinux_2_4_20
+/pegasus.c/1.20.2.4/Wed Sep 11 12:45:18 2002/-ko/Tlinux_2_4_20
+/pegasus.h/1.5.2.3/Wed Sep 11 12:45:18 2002/-ko/Tlinux_2_4_20
+/printer.c/1.37.2.4/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/pwc-ctrl.c/1.5.2.3/Wed Jun 26 22:36:12 2002/-ko/Tlinux_2_4_20
+/pwc-if.c/1.5.2.4/Wed Sep 11 12:45:18 2002/-ko/Tlinux_2_4_20
+/pwc-ioctl.h/1.3.2.2/Wed Jun 26 22:36:12 2002/-ko/Tlinux_2_4_20
+/pwc-misc.c/1.3.2.1/Wed Jun 26 22:36:12 2002/-ko/Tlinux_2_4_20
+/pwc-uncompress.c/1.2.2.1/Wed Jun 26 22:36:12 2002/-ko/Tlinux_2_4_20
+/pwc-uncompress.h/1.2.2.1/Wed Jun 26 22:36:12 2002/-ko/Tlinux_2_4_20
+/pwc.h/1.5.2.3/Wed Jun 26 22:36:12 2002/-ko/Tlinux_2_4_20
+/pwc_kiara.h/1.1/Thu Jun 14 04:24:12 2001/-ko/Tlinux_2_4_20
+/pwc_nala.h/1.1/Thu Jun 14 04:24:12 2001/-ko/Tlinux_2_4_20
+/pwc_timon.h/1.1/Thu Jun 14 04:24:12 2001/-ko/Tlinux_2_4_20
+/rio500.c/1.14.2.1/Tue Sep 10 15:32:52 2002/-ko/Tlinux_2_4_20
+/rio500_usb.h/1.1/Tue Mar  7 16:02:19 2000/-ko/Tlinux_2_4_20
+/rtl8150.c/1.1.2.3/Wed Sep 11 12:45:18 2002/-ko/Tlinux_2_4_20
+/scanner.c/1.22.2.3/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/scanner.h/1.17.2.2/Wed Sep 11 12:45:18 2002/-ko/Tlinux_2_4_20
+/se401.c/1.3.2.2/Wed Sep 11 12:45:18 2002/-ko/Tlinux_2_4_20
+/se401.h/1.2.2.1/Wed Sep 11 12:45:18 2002/-ko/Tlinux_2_4_20
+/stv680.c/1.1.2.3/Wed Sep 11 12:45:18 2002/-ko/Tlinux_2_4_20
+/stv680.h/1.1.2.2/Wed Sep 11 12:45:18 2002/-ko/Tlinux_2_4_20
+/tiglusb.c/1.1.2.1/Wed Sep 11 12:45:18 2002/-ko/Tlinux_2_4_20
+/tiglusb.h/1.1.2.1/Wed Sep 11 12:45:18 2002/-ko/Tlinux_2_4_20
+/uhci-debug.h/1.8/Mon Nov  5 20:16:14 2001/-ko/Tlinux_2_4_20
+/uhci.c/1.41.2.5/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/uhci.h/1.20.2.2/Wed Sep 11 12:45:18 2002/-ko/Tlinux_2_4_20
+/ultracam.c/1.2/Tue Nov  6 00:55:17 2001/-ko/Tlinux_2_4_20
+/usb-debug.c/1.10.2.1/Wed Sep 11 12:45:19 2002/-ko/Tlinux_2_4_20
+/usb-midi.c/1.1.2.1/Wed Sep 11 12:45:19 2002/-ko/Tlinux_2_4_20
+/usb-midi.h/1.1.2.1/Wed Sep 11 12:45:19 2002/-ko/Tlinux_2_4_20
+/usb-ohci.c/1.32.2.5/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/usb-ohci.h/1.14.2.2/Wed Sep 11 12:45:19 2002/-ko/Tlinux_2_4_20
+/usb-skeleton.c/1.4.2.2/Wed Jun 26 22:36:12 2002/-ko/Tlinux_2_4_20
+/usb-uhci-debug.h/1.5/Tue Nov  6 07:56:08 2001/-ko/Tlinux_2_4_20
+/usb-uhci.c/1.29.2.5/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/usb-uhci.h/1.9.2.2/Wed Sep 11 12:45:19 2002/-ko/Tlinux_2_4_20
+/usb.c/1.49.2.4/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/usbkbd.c/1.17.2.1/Wed Sep 11 12:45:19 2002/-ko/Tlinux_2_4_20
+/usblcd.c/1.1.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/usbmouse.c/1.13.2.1/Wed Jun 26 22:36:12 2002/-ko/Tlinux_2_4_20
+/usbnet.c/1.4.2.4/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/usbvideo.c/1.3.2.2/Wed Sep 11 12:45:19 2002/-ko/Tlinux_2_4_20
+/usbvideo.h/1.3.2.1/Wed Sep 11 12:45:19 2002/-ko/Tlinux_2_4_20
+/uss720.c/1.16/Tue Nov  6 00:55:17 2001/-ko/Tlinux_2_4_20
+/vicam.c/1.1.2.4/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/vicam.h/1.1.2.2/Wed Sep 11 12:45:19 2002/-ko/Tlinux_2_4_20
+/vicamurbs.h/1.1.2.2/Wed Sep 11 12:45:19 2002/-ko/Tlinux_2_4_20
+/wacom.c/1.14.2.2/Wed Sep 11 12:45:19 2002/-ko/Tlinux_2_4_20
+D/hcd////
+D/serial////
+D/storage////
diff -urNd -urNd linux-2.4.20/drivers/usb/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/usb/CVS/Repository
--- linux-2.4.20/drivers/usb/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/usb/CVS/Repository	2005-01-06 23:05:17.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/usb
diff -urNd -urNd linux-2.4.20/drivers/usb/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/usb/CVS/Root
--- linux-2.4.20/drivers/usb/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/usb/CVS/Root	2005-01-06 23:05:17.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/usb/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/usb/CVS/Tag
--- linux-2.4.20/drivers/usb/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/usb/CVS/Tag	2005-01-06 23:05:25.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/usb/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/usb/.cvsignore
--- linux-2.4.20/drivers/usb/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/usb/.cvsignore	2001-12-30 21:33:20.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/usb/hcd/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/usb/hcd/CVS/Entries
--- linux-2.4.20/drivers/usb/hcd/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/usb/hcd/CVS/Entries	2005-01-06 23:05:25.000000000 -0600
@@ -0,0 +1,11 @@
+/.cvsignore/1.1.2.1/Tue Jul 23 12:55:43 2002/-ko/Tlinux_2_4_20
+/Config.in/1.1.2.1/Wed Jun 26 22:36:12 2002/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.1/Wed Jun 26 22:36:12 2002/-ko/Tlinux_2_4_20
+/ehci-dbg.c/1.1.2.1/Wed Jun 26 22:36:12 2002/-ko/Tlinux_2_4_20
+/ehci-hcd.c/1.1.2.2/Wed Sep 11 12:45:19 2002/-ko/Tlinux_2_4_20
+/ehci-hub.c/1.1.2.1/Wed Jun 26 22:36:12 2002/-ko/Tlinux_2_4_20
+/ehci-mem.c/1.1.2.1/Wed Jun 26 22:36:13 2002/-ko/Tlinux_2_4_20
+/ehci-q.c/1.1.2.2/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/ehci-sched.c/1.1.2.2/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/ehci.h/1.1.2.1/Wed Jun 26 22:36:13 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/usb/hcd/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/usb/hcd/CVS/Repository
--- linux-2.4.20/drivers/usb/hcd/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/usb/hcd/CVS/Repository	2005-01-06 23:05:25.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/usb/hcd
diff -urNd -urNd linux-2.4.20/drivers/usb/hcd/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/usb/hcd/CVS/Root
--- linux-2.4.20/drivers/usb/hcd/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/usb/hcd/CVS/Root	2005-01-06 23:05:25.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/usb/hcd/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/usb/hcd/CVS/Tag
--- linux-2.4.20/drivers/usb/hcd/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/usb/hcd/CVS/Tag	2005-01-06 23:05:25.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/usb/hcd/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/usb/hcd/.cvsignore
--- linux-2.4.20/drivers/usb/hcd/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/usb/hcd/.cvsignore	2002-07-23 07:55:43.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/usb/serial/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/usb/serial/CVS/Entries
--- linux-2.4.20/drivers/usb/serial/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/usb/serial/CVS/Entries	2005-01-06 23:05:32.000000000 -0600
@@ -0,0 +1,63 @@
+/.cvsignore/1.1.4.1/Mon Dec 31 03:33:20 2001/-ko/Tlinux_2_4_20
+/Config.in/1.9.2.3/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/Makefile/1.18.2.2/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/Makefile-keyspan_pda_fw/1.2/Mon Mar 27 23:54:38 2000/-ko/Tlinux_2_4_20
+/belkin_sa.c/1.10.2.3/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/belkin_sa.h/1.4.2.1/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/cyberjack.c/1.4.2.3/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/digi_acceleport.c/1.19.2.2/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/empeg.c/1.10.2.2/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/ezusb_convert.pl/1.3/Fri May 12 21:06:33 2000/-ko/Tlinux_2_4_20
+/ftdi_sio.c/1.21.2.3/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/ftdi_sio.h/1.4.2.2/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/io_16654.h/1.1/Thu Apr  5 04:58:28 2001/-ko/Tlinux_2_4_20
+/io_edgeport.c/1.9.2.3/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/io_edgeport.h/1.2.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/io_fw_boot.h/1.1.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/io_fw_boot2.h/1.1.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/io_fw_down.h/1.1.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/io_fw_down2.h/1.1.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/io_fw_down3.h/1.1.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/io_ionsp.h/1.1.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/io_tables.h/1.2.2.2/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/io_ti.c/1.1.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/io_ti.h/1.1.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/io_usbvend.h/1.4.2.2/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/ipaq.c/1.1.2.3/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/ipaq.h/1.1.2.3/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/ir-usb.c/1.4.2.2/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/keyspan.c/1.16.2.2/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/keyspan.h/1.6.2.2/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/keyspan_pda.S/1.1/Mon Mar 27 23:54:38 2000/-ko/Tlinux_2_4_20
+/keyspan_pda.c/1.18.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/keyspan_pda_fw.h/1.2/Thu Jun 14 04:24:13 2001/-ko/Tlinux_2_4_20
+/keyspan_usa18x_fw.h/1.2.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/keyspan_usa19_fw.h/1.2.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/keyspan_usa19qi_fw.h/1.1.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/keyspan_usa19qw_fw.h/1.1.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/keyspan_usa19w_fw.h/1.2.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/keyspan_usa26msg.h/1.3.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/keyspan_usa28_fw.h/1.2.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/keyspan_usa28msg.h/1.4.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/keyspan_usa28x_fw.h/1.2.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/keyspan_usa28xa_fw.h/1.1.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
+/keyspan_usa28xb_fw.h/1.1.2.1/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
+/keyspan_usa49msg.h/1.2.2.1/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
+/keyspan_usa49w_fw.h/1.2.2.1/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
+/kl5kusb105.c/1.1.2.2/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
+/kl5kusb105.h/1.1.2.2/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
+/mct_u232.c/1.9.2.2/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
+/mct_u232.h/1.2.2.1/Sat Dec 29 05:38:12 2001/-ko/Tlinux_2_4_20
+/omninet.c/1.15.2.2/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
+/pl2303.c/1.4.2.3/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/pl2303.h/1.2.2.1/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
+/usb-serial.h/1.18.2.2/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
+/usbserial.c/1.24.2.4/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/visor.c/1.24.2.5/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/visor.h/1.6.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/whiteheat.c/1.16.2.3/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
+/whiteheat.h/1.4/Thu Nov 23 02:00:54 2000/-ko/Tlinux_2_4_20
+/whiteheat_fw.h/1.2.4.1/Wed Jun 26 22:36:13 2002/-ko/Tlinux_2_4_20
+/xircom_pgs.S/1.1/Fri Oct 19 01:24:50 2001/-ko/Tlinux_2_4_20
+/xircom_pgs_fw.h/1.2/Mon Nov  5 20:16:15 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/usb/serial/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/usb/serial/CVS/Repository
--- linux-2.4.20/drivers/usb/serial/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/usb/serial/CVS/Repository	2005-01-06 23:05:25.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/usb/serial
diff -urNd -urNd linux-2.4.20/drivers/usb/serial/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/usb/serial/CVS/Root
--- linux-2.4.20/drivers/usb/serial/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/usb/serial/CVS/Root	2005-01-06 23:05:25.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/usb/serial/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/usb/serial/CVS/Tag
--- linux-2.4.20/drivers/usb/serial/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/usb/serial/CVS/Tag	2005-01-06 23:05:32.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/usb/serial/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/usb/serial/.cvsignore
--- linux-2.4.20/drivers/usb/serial/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/usb/serial/.cvsignore	2001-12-30 21:33:20.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/usb/storage/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/usb/storage/CVS/Entries
--- linux-2.4.20/drivers/usb/storage/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/usb/storage/CVS/Entries	2005-01-06 23:05:34.000000000 -0600
@@ -0,0 +1,32 @@
+/.cvsignore/1.1.4.1/Mon Dec 31 03:33:20 2001/-ko/Tlinux_2_4_20
+/Makefile/1.10.2.3/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
+/datafab.c/1.4.2.2/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
+/datafab.h/1.2/Sat Sep 22 12:49:34 2001/-ko/Tlinux_2_4_20
+/debug.c/1.6.2.1/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
+/debug.h/1.6/Wed Jan 31 22:22:34 2001/-ko/Tlinux_2_4_20
+/dpcm.c/1.4/Fri Aug 24 03:38:47 2001/-ko/Tlinux_2_4_20
+/dpcm.h/1.2/Tue Aug 29 05:27:08 2000/-ko/Tlinux_2_4_20
+/freecom.c/1.7.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/freecom.h/1.2/Thu Oct  5 01:18:59 2000/-ko/Tlinux_2_4_20
+/initializers.c/1.1/Thu Oct  5 01:18:59 2000/-ko/Tlinux_2_4_20
+/initializers.h/1.1/Thu Oct  5 01:18:59 2000/-ko/Tlinux_2_4_20
+/isd200.c/1.3.2.1/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
+/isd200.h/1.1/Fri Aug 24 03:38:47 2001/-ko/Tlinux_2_4_20
+/jumpshot.c/1.3.2.2/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
+/jumpshot.h/1.2/Sat Sep 22 12:49:34 2001/-ko/Tlinux_2_4_20
+/protocol.c/1.7.2.2/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
+/protocol.h/1.4/Fri Aug 24 03:38:47 2001/-ko/Tlinux_2_4_20
+/scsiglue.c/1.18.2.1/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
+/scsiglue.h/1.4/Tue Aug 29 05:27:08 2000/-ko/Tlinux_2_4_20
+/sddr09.c/1.11.2.2/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
+/sddr09.h/1.3/Tue Aug 29 05:27:08 2000/-ko/Tlinux_2_4_20
+/sddr55.c/1.2.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/sddr55.h/1.1.2.1/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
+/shuttle_usbat.c/1.7.2.2/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
+/shuttle_usbat.h/1.4/Thu Oct  5 01:18:59 2000/-ko/Tlinux_2_4_20
+/transport.c/1.15.2.3/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
+/transport.h/1.10.2.2/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
+/unusual_devs.h/1.4.2.4/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/usb.c/1.17.2.3/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
+/usb.h/1.11.2.1/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/usb/storage/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/usb/storage/CVS/Repository
--- linux-2.4.20/drivers/usb/storage/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/usb/storage/CVS/Repository	2005-01-06 23:05:32.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/usb/storage
diff -urNd -urNd linux-2.4.20/drivers/usb/storage/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/usb/storage/CVS/Root
--- linux-2.4.20/drivers/usb/storage/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/usb/storage/CVS/Root	2005-01-06 23:05:32.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/usb/storage/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/usb/storage/CVS/Tag
--- linux-2.4.20/drivers/usb/storage/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/usb/storage/CVS/Tag	2005-01-06 23:05:34.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/usb/storage/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/usb/storage/.cvsignore
--- linux-2.4.20/drivers/usb/storage/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/usb/storage/.cvsignore	2001-12-30 21:33:20.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/video/aty/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/video/aty/CVS/Entries
--- linux-2.4.20/drivers/video/aty/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/aty/CVS/Entries	2005-01-06 23:05:41.000000000 -0600
@@ -0,0 +1,10 @@
+/.cvsignore/1.1/Fri Aug 24 03:38:49 2001/-ko/Tlinux_2_4_20
+/Makefile/1.1/Fri Aug 24 03:38:49 2001/-ko/Tlinux_2_4_20
+/atyfb.h/1.1.2.1/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
+/atyfb_base.c/1.4.2.4/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
+/mach64.h/1.1/Fri Aug 24 03:38:49 2001/-ko/Tlinux_2_4_20
+/mach64_accel.c/1.1.2.2/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
+/mach64_ct.c/1.1/Fri Aug 24 03:38:49 2001/-ko/Tlinux_2_4_20
+/mach64_cursor.c/1.2/Tue Nov  6 07:56:08 2001/-ko/Tlinux_2_4_20
+/mach64_gx.c/1.1.2.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/video/aty/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/video/aty/CVS/Repository
--- linux-2.4.20/drivers/video/aty/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/aty/CVS/Repository	2005-01-06 23:05:40.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/video/aty
diff -urNd -urNd linux-2.4.20/drivers/video/aty/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/video/aty/CVS/Root
--- linux-2.4.20/drivers/video/aty/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/aty/CVS/Root	2005-01-06 23:05:40.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/video/aty/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/video/aty/CVS/Tag
--- linux-2.4.20/drivers/video/aty/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/aty/CVS/Tag	2005-01-06 23:05:41.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/video/aty/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/video/aty/.cvsignore
--- linux-2.4.20/drivers/video/aty/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/aty/.cvsignore	2001-08-23 22:38:49.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/video/au1100fb.c linux-2.4.20-mipscvs-20050106/drivers/video/au1100fb.c
--- linux-2.4.20/drivers/video/au1100fb.c	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/au1100fb.c	2002-12-11 00:12:30.000000000 -0600
@@ -61,7 +61,8 @@
  * Sanity check. If this is a new Au1100 based board, search for
  * the PB1100 ifdefs to make sure you modify the code accordingly.
  */
-#ifndef CONFIG_MIPS_PB1100
+#if defined(CONFIG_MIPS_PB1100)
+#else
 error Unknown Au1100 board
 #endif
 
@@ -318,8 +319,8 @@
 		p_lcd_reg->lcd_control |= LCD_CONTROL_GO;
 		au_writew(au_readw(PB1100_G_CONTROL) | p_lcd->mode_backlight, 
 			PB1100_G_CONTROL);
-		au_sync();
 #endif
+		au_sync();
 		break;
 
 	case VESA_VSYNC_SUSPEND:
@@ -328,11 +329,11 @@
 		/* turn off panel */
 		//printk("turn off panel\n");
 #ifdef CONFIG_MIPS_PB1100
-		p_lcd_reg->lcd_control &= ~LCD_CONTROL_GO;
 		au_writew(au_readw(PB1100_G_CONTROL) & ~p_lcd->mode_backlight, 
 			PB1100_G_CONTROL);
-		au_sync();
+		p_lcd_reg->lcd_control &= ~LCD_CONTROL_GO;
 #endif
+		au_sync();
 		break;
 	default: 
 		break;
@@ -395,7 +396,8 @@
 	vma->vm_pgoff = off >> PAGE_SHIFT;
 
 	pgprot_val(vma->vm_page_prot) &= ~_CACHE_MASK;
-	pgprot_val(vma->vm_page_prot) |= _CACHE_CACHABLE_NONCOHERENT;
+	//pgprot_val(vma->vm_page_prot) |= _CACHE_CACHABLE_NONCOHERENT;
+	pgprot_val(vma->vm_page_prot) |= (6 << 9); //CCA=6
 
 	/* This is an IO map - tell maydump to skip this VMA */
 	vma->vm_flags |= VM_IO;
@@ -472,12 +474,12 @@
 	p_lcd_reg->lcd_words = words - 1;
 	p_lcd_reg->lcd_dmaaddr0 = fb_info.fb_phys;
 
-#ifdef CONFIG_MIPS_PB1100
 	/* turn on panel */
+#ifdef CONFIG_MIPS_PB1100
 	au_writew(au_readw(PB1100_G_CONTROL) | p_lcd->mode_backlight, 
 			PB1100_G_CONTROL);
-	p_lcd_reg->lcd_control |= LCD_CONTROL_GO;
 #endif
+	p_lcd_reg->lcd_control |= LCD_CONTROL_GO;
 
 	return 0;
 }
@@ -612,6 +614,19 @@
 	for(this_opt=strtok(options, ","); this_opt;
 	    this_opt=strtok(NULL, ",")) {
 		if (!strncmp(this_opt, "panel:", 6)) {
+#ifdef CONFIG_MIPS_PB1100
+			/* Read Pb1100 Switch S10 ? */
+			if (!strncmp(this_opt+6, "s10", 3))
+			{
+				int panel;
+				panel = *(volatile int *)0xAE000008; /* BCSR SWITCHES */
+				panel >>= 8;
+				panel &= 0x0F;
+				if (panel >= num_panels) panel = 0;
+				my_lcd_index = panel;
+			}
+			else
+#endif
 			/* Get the panel name, everything else if fixed */
 			for (i=0; i<num_panels; i++) {
 				if (!strncmp(this_opt+6, panels[i].panel_name, 
@@ -626,6 +641,9 @@
 			fb_info.nohwcursor = 1;
 		}
 	} 
+
+	printk("au1100fb: Panel %d %s\n", my_lcd_index,
+		panels[my_lcd_index].panel_name);
 }
 
 
diff -urNd -urNd linux-2.4.20/drivers/video/au1100fb.h linux-2.4.20-mipscvs-20050106/drivers/video/au1100fb.h
--- linux-2.4.20/drivers/video/au1100fb.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/au1100fb.h	2002-12-11 00:12:30.000000000 -0600
@@ -191,7 +191,7 @@
  */
 struct known_lcd_panels panels[] =
 {
-	{ /* 0: Pb1100 LCDA: Sharp 320x240 TFT panel */
+	{ /* 0: Pb1100 LCDA: Sharp 320x240x16bpp TFT panel, no rotate */
 		320, /* xres */
 		240, /* yres */
 		16,  /* bpp  */
@@ -206,6 +206,60 @@
 		/*LCD_CONTROL_DB*/
 		/*LCD_CONTROL_CCO*/
 		/*LCD_CONTROL_DP*/
+		| LCD_CONTROL_PO_00
+		/*LCD_CONTROL_MPI*/
+		| LCD_CONTROL_PT
+		| LCD_CONTROL_PC
+		| LCD_CONTROL_BPP_16 ),
+
+		/* mode_horztiming */
+		( LCD_HORZTIMING_HN2_N(8)
+		| LCD_HORZTIMING_HN1_N(60)
+		| LCD_HORZTIMING_HPW_N(12)
+		| LCD_HORZTIMING_PPL_N(320) ),
+
+		/* mode_verttiming */
+		( LCD_VERTTIMING_VN2_N(5)
+		| LCD_VERTTIMING_VN1_N(17)
+		| LCD_VERTTIMING_VPW_N(1)
+		| LCD_VERTTIMING_LPP_N(240) ),
+
+		/* mode_clkcontrol */
+		( 0
+		/*LCD_CLKCONTROL_IB*/
+		/*LCD_CLKCONTROL_IC*/
+		/*LCD_CLKCONTROL_IH*/
+		/*LCD_CLKCONTROL_IV*/
+		| LCD_CLKCONTROL_PCD_N(1) ),
+
+		/* mode_pwmdiv */
+		0,
+
+		/* mode_pwmhi */
+		0,
+
+		/* mode_toyclksrc */
+		((1<<7) | (1<<6) | (1<<5)),
+
+		/* mode_backlight */
+		6
+	},
+
+	{ /* 1: Pb1100 LCDA: Sharp 320x240x16bpp TFT panel, rotated */
+		240, /* xres */
+		320, /* yres */
+		16,  /* bpp  */
+		
+		"Sharp_320x240_16",
+		/* mode_control */
+		( LCD_CONTROL_SBPPF_565
+		/*LCD_CONTROL_WP*/
+		/*LCD_CONTROL_WD*/
+		| LCD_CONTROL_C
+		| LCD_CONTROL_SM_0
+		/*LCD_CONTROL_DB*/
+		/*LCD_CONTROL_CCO*/
+		/*LCD_CONTROL_DP*/
 		| LCD_DEFAULT_PIX_FORMAT
 		/*LCD_CONTROL_MPI*/
 		| LCD_CONTROL_PT
@@ -245,7 +299,39 @@
 		6
 	},
 
-	{ /* 1: Pb1100 LCDC 640x480 TFT panel */
+	{ /* 2: Pb1100 LCDB 640x480x16bpp PrimeView TFT panel */
+		640, /* xres */
+		480, /* yres */
+		16,  /* bpp  */
+
+		"Primeview_640x480_16",
+
+		/* mode_control */
+		0x0004886a,
+
+		/* mode_horztiming */
+		0x0e4bfe7f,
+
+		/* mode_verttiming */
+		0x210805df,
+
+		/* mode_clkcontrol */
+		0x00038001,
+
+		/* mode_pwmdiv */
+		0,
+
+		/* mode_pwmhi */
+		0,
+
+		/* mode_toyclksrc */
+		((1<<7) | (1<<6) | (0<<5)),
+
+		/* mode_backlight */
+		7
+	},
+
+	{ /* 3: Pb1100 LCDC 640x480x16bpp TFT panel */
 		640, /* xres */
 		480, /* yres */
 		16,  /* bpp  */
@@ -253,7 +339,11 @@
 		"Generic_640x480_16",
 
 		/* mode_control */
+#ifdef CONFIG_MIPS_HYD1100
+		0x0004c15a,
+#else
 		0x004806a | LCD_DEFAULT_PIX_FORMAT,
+#endif
 
 		/* mode_horztiming */
 		0x3434d67f,
@@ -282,24 +372,31 @@
 		7
 	},
 
-	{ /* 2: Pb1100 LCDB 640x480 PrimeView TFT panel */
+	{ // 4: Pb1100 NEON: 640x480x16bpp CRT, HOG, Hsync 30.7 kHz, Vsync 57.7 Hz
 		640, /* xres */
 		480, /* yres */
-		16,  /* bpp  */
+		16,  /* bpp */
 
-		"PrimeView_640x480_16",
+		"NEON_640x480_16",
 
 		/* mode_control */
 		0x0004886a | LCD_DEFAULT_PIX_FORMAT,
 
-		/* mode_horztiming */
-		0x0e4bfe7f,
+		// mode_horztiming
+		// 15 pixels front porch
+		// 76 pixels back porch
+		// 64 pixels sync pulse
+		0x1e3bfe7f,
 
-		/* mode_verttiming */
+		// mode_verttiming
+		// 34 lines front porch
+		// 9 lines back porch
+		// 2 lines sync pulse
 		0x210805df,
 
 		/* mode_clkcontrol */
-		0x00038001,
+		// div to 24 MHz
+		0x00020001,
 
 		/* mode_pwmdiv */
 		0,
@@ -308,13 +405,14 @@
 		0,
 
 		/* mode_toyclksrc */
+		// use 48 MHz clock
 		((1<<7) | (1<<6) | (0<<5)),
 
 		/* mode_backlight */
 		7
 	},
 
-	{ /* 3: Pb1100 800x600x16bpp NEON CRT */
+	{ //5: Pb1100 NEON: 800x600x16bpp CRT, HOG, Hsync 45.7 kHz, Vsync 68.7 Hz
 		800, /* xres */
 		600, /* yres */
 		16,  /* bpp */
@@ -324,13 +422,20 @@
 		/* mode_control */
 		0x0004886A | LCD_DEFAULT_PIX_FORMAT,
 
-		/* mode_horztiming */
-		0x005AFF1F,
+		// mode_horztiming
+		// 32 pixels front porch
+		// 152 pixels back porch
+		// 64 pixels sync pulse
+		0x1F97FF1F,
 
-		/* mode_verttiming */
-		0x16000E57,
+		// mode_verttiming
+		// 37 lines front porch
+		// 23 lines back porch
+		// 6 lines sync pulse
+		0x24161A57,
 
 		/* mode_clkcontrol */
+		// keep at 47 MHz
 		0x00020000,
 
 		/* mode_pwmdiv */
@@ -340,13 +445,14 @@
 		0,
 
 		/* mode_toyclksrc */
+		// use 48 MHz clock
 		((1<<7) | (1<<6) | (0<<5)),
-
+		
 		/* mode_backlight */
 		7
 	},
 
-	{ /* 4: Pb1100 640x480x16bpp NEON CRT */
+	{ //6: Pb1100 NEON: 800x600x16bpp CRT, HOG, Hsync 45.7 kHz, Vsync 68.7 Hz
 		640, /* xres */
 		480, /* yres */
 		16,  /* bpp */
@@ -356,13 +462,20 @@
 		/* mode_control */
 		0x0004886A | LCD_DEFAULT_PIX_FORMAT,
 
-		/* mode_horztiming */
-		0x0052E27F,
+		// mode_horztiming
+		// 32 pixels front porch
+		// 152 pixels back porch
+		// 64 pixels sync pulse
+		0x1F97FF1F,
 
-		/* mode_verttiming */
-		0x18000DDF,
+		// mode_verttiming
+		// 37 lines front porch
+		// 23 lines back porch
+		// 6 lines sync pulse
+		0x24161A57,
 
 		/* mode_clkcontrol */
+		// keep at 47 MHz
 		0x00020000,
 
 		/* mode_pwmdiv */
@@ -372,10 +485,54 @@
 		0,
 
 		/* mode_toyclksrc */
+		// use 48 MHz clock
 		((1<<7) | (1<<6) | (0<<5)),
+		
+		/* mode_backlight */
+		7
+	},
 
+	{ //7: Pb1100 NEON: 800x600x16bpp CRT, HOG, Hsync 45.7 kHz, Vsync 68.7 Hz
+		800, /* xres */
+		600, /* yres */
+		16,  /* bpp */
+
+		"NEON_800x600_16",
+
+
+	  	/* mode_control */
+	   	0x0004886A,
+
+		// mode_horztiming
+		// 32 pixels front porch
+		// 152 pixels back porch
+		// 64 pixels sync pulse
+		0x1F97FF1F,
+
+		// mode_verttiming
+		// 37 lines front porch
+		// 23 lines back porch
+		// 6 lines sync pulse
+		0x24161A57,
+
+		/* mode_clkcontrol */
+		// keep at 47 MHz
+		0x00020000,
+
+		/* mode_pwmdiv */
+		0,
+
+		/* mode_pwmhi */
+		0,
+
+		/* mode_toyclksrc */
+		// use 48 MHz clock
+		((1<<7) | (1<<6) | (0<<5)),
+		
 		/* mode_backlight */
 		7
 	},
+
+
 };
 #endif /* _AU1100LCD_H */
diff -urNd -urNd linux-2.4.20/drivers/video/Config.in linux-2.4.20-mipscvs-20050106/drivers/video/Config.in
--- linux-2.4.20/drivers/video/Config.in	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/Config.in	2002-10-07 16:42:15.000000000 -0500
@@ -213,7 +213,7 @@
    if [ "$CONFIG_DECSTATION" = "y" ]; then
       dep_bool '  PMAG-BA TURBOchannel framebuffer support' CONFIG_FB_PMAG_BA $CONFIG_TC
       dep_bool '  PMAGB-B TURBOchannel framebuffer support' CONFIG_FB_PMAGB_B $CONFIG_TC
-      bool '  Maxine (Personal DECstation) onboard framebuffer support' CONFIG_FB_MAXINE
+      dep_bool '  Maxine (Personal DECstation) onboard framebuffer support' CONFIG_FB_MAXINE $CONFIG_TC
    fi
    if [ "$CONFIG_NINO" = "y" ]; then
       bool '  TMPTX3912/PR31700 frame buffer support' CONFIG_FB_TX3912
diff -urNd -urNd linux-2.4.20/drivers/video/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/video/CVS/Entries
--- linux-2.4.20/drivers/video/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/CVS/Entries	2005-01-06 23:08:10.000000000 -0600
@@ -0,0 +1,135 @@
+/.cvsignore/1.2/Tue Mar 17 22:13:17 1998/-ko/Tlinux_2_4_20
+/Config.in/1.45.2.6/Mon Oct  7 21:42:15 2002/-ko/Tlinux_2_4_20
+/Makefile/1.44.2.5/Sun Dec 29 20:08:23 2002/-ko/Tlinux_2_4_20
+/S3triofb.c/1.12/Fri Oct 19 01:24:50 2001/-ko/Tlinux_2_4_20
+/acornfb.c/1.23.2.1/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
+/acornfb.h/1.4/Sat Sep 22 12:49:34 2001/-ko/Tlinux_2_4_20
+/amifb.c/1.21.2.1/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
+/atafb.c/1.15/Fri Oct 19 01:24:51 2001/-ko/Tlinux_2_4_20
+/aty128.h/1.6.4.1/Tue Feb 26 05:59:53 2002/-ko/Tlinux_2_4_20
+/aty128fb.c/1.25.2.3/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
+/au1100fb.c/1.1.2.2/Wed Dec 11 06:12:30 2002/-ko/Tlinux_2_4_20
+/au1100fb.h/1.1.2.2/Wed Dec 11 06:12:30 2002/-ko/Tlinux_2_4_20
+/bwtwofb.c/1.9/Fri Oct 19 01:24:51 2001/-ko/Tlinux_2_4_20
+/cgfourteenfb.c/1.8/Fri Oct 19 01:24:51 2001/-ko/Tlinux_2_4_20
+/cgsixfb.c/1.13/Tue Nov  6 00:55:18 2001/-ko/Tlinux_2_4_20
+/cgthreefb.c/1.8/Fri Oct 19 01:24:51 2001/-ko/Tlinux_2_4_20
+/chipsfb.c/1.15.2.1/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
+/clgenfb.c/1.25.2.4/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/clgenfb.h/1.3/Sat Feb  5 06:47:34 2000/-ko/Tlinux_2_4_20
+/controlfb.c/1.20.2.1/Tue Feb 26 05:59:53 2002/-ko/Tlinux_2_4_20
+/controlfb.h/1.4/Sat Sep 22 12:49:34 2001/-ko/Tlinux_2_4_20
+/creatorfb.c/1.13/Tue Nov  6 00:55:18 2001/-ko/Tlinux_2_4_20
+/cvisionppc.h/1.3/Fri Feb 18 00:24:44 2000/-ko/Tlinux_2_4_20
+/cyber2000fb.c/1.26.2.2/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
+/cyber2000fb.h/1.13.2.1/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
+/cyberfb.c/1.18/Sun Dec  2 11:34:51 2001/-ko/Tlinux_2_4_20
+/cyberfb.h/1.4/Sat Sep 22 12:49:34 2001/-ko/Tlinux_2_4_20
+/dn_accel.h/1.1/Fri Feb 18 22:06:18 2000/-ko/Tlinux_2_4_20
+/dn_cfb4.c/1.8/Fri Oct 19 01:24:51 2001/-ko/Tlinux_2_4_20
+/dn_cfb8.c/1.9/Tue Nov  6 00:55:18 2001/-ko/Tlinux_2_4_20
+/dnfb.c/1.14.2.1/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
+/dummycon.c/1.8/Wed Jan 10 05:27:34 2001/-ko/Tlinux_2_4_20
+/epson1355fb.c/1.3/Fri Oct 19 01:24:51 2001/-ko/Tlinux_2_4_20
+/epson1356fb.c/1.1.2.3/Sun Dec 29 20:08:23 2002/-ko/Tlinux_2_4_20
+/epson1356fb.h/1.1.2.1/Thu Aug 15 09:26:54 2002/-ko/Tlinux_2_4_20
+/fbcmap.c/1.7/Thu Apr  5 04:58:28 2001/-ko/Tlinux_2_4_20
+/fbcon-afb.c/1.11/Tue Nov  6 00:55:18 2001/-ko/Tlinux_2_4_20
+/fbcon-cfb16.c/1.11/Tue Nov  6 00:55:18 2001/-ko/Tlinux_2_4_20
+/fbcon-cfb2.c/1.9/Tue Nov  6 00:55:18 2001/-ko/Tlinux_2_4_20
+/fbcon-cfb24.c/1.9.2.1/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
+/fbcon-cfb32.c/1.9/Tue Nov  6 00:55:18 2001/-ko/Tlinux_2_4_20
+/fbcon-cfb4.c/1.9/Tue Nov  6 00:55:18 2001/-ko/Tlinux_2_4_20
+/fbcon-cfb8.c/1.12/Tue Nov  6 00:55:18 2001/-ko/Tlinux_2_4_20
+/fbcon-hga.c/1.4/Tue Nov  6 00:55:18 2001/-ko/Tlinux_2_4_20
+/fbcon-ilbm.c/1.10/Tue Nov  6 00:55:18 2001/-ko/Tlinux_2_4_20
+/fbcon-iplan2p2.c/1.12/Tue Nov  6 00:55:18 2001/-ko/Tlinux_2_4_20
+/fbcon-iplan2p4.c/1.12/Tue Nov  6 00:55:18 2001/-ko/Tlinux_2_4_20
+/fbcon-iplan2p8.c/1.12/Tue Nov  6 00:55:19 2001/-ko/Tlinux_2_4_20
+/fbcon-mac.c/1.11/Fri Oct 19 01:24:51 2001/-ko/Tlinux_2_4_20
+/fbcon-mfb.c/1.11/Tue Nov  6 00:55:19 2001/-ko/Tlinux_2_4_20
+/fbcon-sti.c/1.4.2.1/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
+/fbcon-vga-planes.c/1.5/Tue Nov  6 00:55:19 2001/-ko/Tlinux_2_4_20
+/fbcon-vga.c/1.5/Fri Oct 19 01:24:51 2001/-ko/Tlinux_2_4_20
+/fbcon.c/1.28.2.5/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/fbgen.c/1.9.2.1/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
+/fbmem.c/1.50.2.8/Sun Dec 29 20:08:23 2002/-ko/Tlinux_2_4_20
+/fbmon.c/1.2/Mon Mar 13 20:55:34 2000/-ko/Tlinux_2_4_20
+/fm2fb.c/1.10/Sun Dec  2 11:34:51 2001/-ko/Tlinux_2_4_20
+/font_6x11.c/1.4/Sat Oct  9 00:01:33 1999/-ko/Tlinux_2_4_20
+/font_8x16.c/1.3/Mon Jan  4 16:07:52 1999/-ko/Tlinux_2_4_20
+/font_8x8.c/1.3/Mon Jan  4 16:07:53 1999/-ko/Tlinux_2_4_20
+/font_acorn_8x8.c/1.2/Mon Jan  4 16:07:53 1999/-ko/Tlinux_2_4_20
+/font_pearl_8x8.c/1.2/Mon Jan  4 16:07:54 1999/-ko/Tlinux_2_4_20
+/font_sun12x22.c/1.3/Mon Feb 15 02:20:14 1999/-ko/Tlinux_2_4_20
+/font_sun8x16.c/1.2/Mon Jan  4 16:07:55 1999/-ko/Tlinux_2_4_20
+/fonts.c/1.7/Thu Apr  5 04:58:28 2001/-ko/Tlinux_2_4_20
+/g364fb.c/1.12/Fri Oct 19 01:24:52 2001/-ko/Tlinux_2_4_20
+/hgafb.c/1.11/Sun Dec  2 11:34:51 2001/-ko/Tlinux_2_4_20
+/hitfb.c/1.9/Fri Oct 19 01:24:52 2001/-ko/Tlinux_2_4_20
+/hpfb.c/1.11.2.1/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
+/iga.h/1.2/Sat Feb  5 06:47:34 2000/-ko/Tlinux_2_4_20
+/igafb.c/1.16.2.1/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
+/imsttfb.c/1.17.2.2/Tue Feb 26 05:59:54 2002/-ko/Tlinux_2_4_20
+/leofb.c/1.9/Tue Nov  6 00:55:19 2001/-ko/Tlinux_2_4_20
+/macfb.c/1.14.2.1/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
+/macmodes.c/1.9/Wed Aug 22 03:24:54 2001/-ko/Tlinux_2_4_20
+/maxinefb.c/1.6.2.2/Thu Jan 16 14:09:20 2003/-ko/Tlinux_2_4_20
+/maxinefb.h/1.1.2.1/Wed Jan  8 12:43:58 2003//Tlinux_2_4_20
+/mdacon.c/1.12/Fri Oct 19 01:24:52 2001/-ko/Tlinux_2_4_20
+/modedb.c/1.4.2.1/Sat Dec 29 05:38:13 2001/-ko/Tlinux_2_4_20
+/neofb.c/1.1.2.2/Tue Sep 10 15:32:52 2002/-ko/Tlinux_2_4_20
+/neofb.h/1.1.2.1/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
+/newport_con.c/1.26.2.2/Thu Sep 12 10:14:43 2002/-ko/Tlinux_2_4_20
+/offb.c/1.23.2.1/Tue Feb 26 05:59:54 2002/-ko/Tlinux_2_4_20
+/p9100.h/1.2/Sat Feb  5 06:47:34 2000/-ko/Tlinux_2_4_20
+/p9100fb.c/1.3/Fri Mar  9 20:34:30 2001/-ko/Tlinux_2_4_20
+/platinumfb.c/1.13.2.1/Tue Feb 26 05:59:54 2002/-ko/Tlinux_2_4_20
+/platinumfb.h/1.3.4.1/Tue Feb 26 05:59:54 2002/-ko/Tlinux_2_4_20
+/pm2fb.c/1.11.2.1/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
+/pm2fb.h/1.4/Fri Feb 18 00:24:45 2000/-ko/Tlinux_2_4_20
+/pm3fb.c/1.1.2.1/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
+/pm3fb.h/1.1.2.2/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
+/pmag-ba-fb.c/1.8.2.1/Thu Nov  7 18:37:09 2002/-ko/Tlinux_2_4_20
+/pmag-ba-fb.h/1.1/Sun Jan 28 12:38:32 2001//Tlinux_2_4_20
+/pmagb-b-fb.c/1.7.2.1/Thu Nov  7 18:37:09 2002/-ko/Tlinux_2_4_20
+/pmagb-b-fb.h/1.1.2.1/Wed Jan  8 13:49:35 2003//Tlinux_2_4_20
+/prom.uni/1.1/Tue Aug 25 09:19:52 1998/-ko/Tlinux_2_4_20
+/promcon.c/1.9/Tue Nov  6 00:55:19 2001/-ko/Tlinux_2_4_20
+/pvr2fb.c/1.3/Tue Nov  6 00:55:19 2001/-ko/Tlinux_2_4_20
+/q40fb.c/1.8.2.1/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
+/radeon.h/1.2.2.2/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
+/radeonfb.c/1.4.2.4/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
+/retz3fb.c/1.19/Sun Dec  2 11:34:51 2001/-ko/Tlinux_2_4_20
+/retz3fb.h/1.2/Mon Jan  4 16:08:00 1999/-ko/Tlinux_2_4_20
+/sa1100fb.c/1.16/Sun Dec  2 11:34:51 2001/-ko/Tlinux_2_4_20
+/sa1100fb.h/1.2/Tue Nov  6 07:56:08 2001/-ko/Tlinux_2_4_20
+/sbusfb.c/1.19/Fri Oct 19 01:24:52 2001/-ko/Tlinux_2_4_20
+/sgivwfb.c/1.10.2.1/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
+/sgivwfb.h/1.1/Sun Jun 13 16:34:14 1999/-ko/Tlinux_2_4_20
+/skeletonfb.c/1.12/Fri Oct 19 01:24:53 2001/-ko/Tlinux_2_4_20
+/sstfb.c/1.3.2.3/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/sstfb.h/1.1.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/sun3fb.c/1.9/Mon Nov  5 20:16:15 2001/-ko/Tlinux_2_4_20
+/tcxfb.c/1.7/Fri Oct 19 01:24:53 2001/-ko/Tlinux_2_4_20
+/tdfxfb.c/1.19.2.2/Tue Feb 26 05:59:54 2002/-ko/Tlinux_2_4_20
+/tgafb.c/1.20/Sun Dec  2 11:34:52 2001/-ko/Tlinux_2_4_20
+/tgafb.h/1.4/Fri Apr 28 01:09:48 2000/-ko/Tlinux_2_4_20
+/tridentfb.c/1.1.2.3/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
+/tridentfb.h/1.1.2.2/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
+/tx3912fb.c/1.4.2.1/Wed May 29 08:12:07 2002/-ko/Tlinux_2_4_20
+/tx3912fb.h/1.3.2.1/Wed May 29 08:12:07 2002/-ko/Tlinux_2_4_20
+/valkyriefb.c/1.13.2.1/Tue Feb 26 05:59:54 2002/-ko/Tlinux_2_4_20
+/valkyriefb.h/1.3.4.1/Tue Feb 26 05:59:54 2002/-ko/Tlinux_2_4_20
+/vesafb.c/1.19.2.1/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
+/vfb.c/1.14/Sun Dec  2 11:34:52 2001/-ko/Tlinux_2_4_20
+/vga.h/1.3.4.1/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
+/vga16fb.c/1.12/Sun Dec  2 11:34:52 2001/-ko/Tlinux_2_4_20
+/vgacon.c/1.17.2.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
+/virgefb.c/1.18.2.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
+/virgefb.h/1.1.2.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
+D/aty////
+D/matrox////
+D/riva////
+D/sis////
+D/sti////
diff -urNd -urNd linux-2.4.20/drivers/video/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/video/CVS/Repository
--- linux-2.4.20/drivers/video/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/CVS/Repository	2005-01-06 23:05:34.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/video
diff -urNd -urNd linux-2.4.20/drivers/video/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/video/CVS/Root
--- linux-2.4.20/drivers/video/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/CVS/Root	2005-01-06 23:05:34.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/video/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/video/CVS/Tag
--- linux-2.4.20/drivers/video/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/CVS/Tag	2005-01-06 23:05:40.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/video/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/video/.cvsignore
--- linux-2.4.20/drivers/video/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/.cvsignore	1998-03-17 16:13:17.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/video/epson1356fb.c linux-2.4.20-mipscvs-20050106/drivers/video/epson1356fb.c
--- linux-2.4.20/drivers/video/epson1356fb.c	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/epson1356fb.c	2002-12-29 14:08:23.000000000 -0600
@@ -75,9 +75,9 @@
 
 #include <linux/spinlock.h>
 
-#include <linux/e1356fb.h>
+#include <video/e1356fb.h>
 
-#ifdef CONFIG_MIPS_AU1000
+#ifdef CONFIG_CPU_AU1X00
 #include <asm/au1000.h>
 #endif
 
@@ -2296,9 +2296,9 @@
 	 * Program the clocks
 	 */
 
-#ifdef CONFIG_MIPS_AU1000
+#ifdef CONFIG_CPU_AU1X00
 	if ((epfix->system == SYS_PB1000) || (epfix->system == SYS_PB1500))
-		epfix->busclk = get_au1000_lcd_clock();
+		epfix->busclk = get_au1x00_lcd_clock();
 #endif
 	
 	if (epfix->busclk > 80000) {
diff -urNd -urNd linux-2.4.20/drivers/video/fbmem.c linux-2.4.20-mipscvs-20050106/drivers/video/fbmem.c
--- linux-2.4.20/drivers/video/fbmem.c	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/fbmem.c	2002-12-29 14:08:23.000000000 -0600
@@ -132,6 +132,8 @@
 extern int radeonfb_setup(char*);
 extern int e1355fb_init(void);
 extern int e1355fb_setup(char*);
+extern int e1356fb_init(void);
+extern int e1356fb_setup(char*);
 extern int au1100fb_init(void);
 extern int au1100fb_setup(char*);
 extern int pvr2fb_init(void);
@@ -300,6 +302,9 @@
 #ifdef CONFIG_FB_E1355
 	{ "e1355fb", e1355fb_init, e1355fb_setup },
 #endif
+#ifdef CONFIG_FB_E1356
+        { "e1356fb", e1356fb_init, e1356fb_setup },
+#endif
 #ifdef CONFIG_FB_PVR2
 	{ "pvr2", pvr2fb_init, pvr2fb_setup },
 #endif
diff -urNd -urNd linux-2.4.20/drivers/video/Makefile linux-2.4.20-mipscvs-20050106/drivers/video/Makefile
--- linux-2.4.20/drivers/video/Makefile	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/Makefile	2002-12-29 14:08:23.000000000 -0600
@@ -124,6 +124,7 @@
 obj-$(CONFIG_FB_VIRTUAL)          += vfb.o  
 obj-$(CONFIG_FB_HIT)              += hitfb.o fbgen.o
 obj-$(CONFIG_FB_E1355)            += epson1355fb.o fbgen.o
+obj-$(CONFIG_FB_E1356)            += epson1356fb.o
 obj-$(CONFIG_FB_PVR2)             += pvr2fb.o
 obj-$(CONFIG_FB_VOODOO1)          += sstfb.o
 
diff -urNd -urNd linux-2.4.20/drivers/video/matrox/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/video/matrox/CVS/Entries
--- linux-2.4.20/drivers/video/matrox/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/matrox/CVS/Entries	2005-01-06 23:05:41.000000000 -0600
@@ -0,0 +1,22 @@
+/.cvsignore/1.1/Fri Mar 10 00:12:37 2000/-ko/Tlinux_2_4_20
+/Makefile/1.3.2.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
+/g450_pll.c/1.1.2.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
+/g450_pll.h/1.1.2.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
+/i2c-matroxfb.c/1.4/Sun Dec  2 11:34:52 2001/-ko/Tlinux_2_4_20
+/matroxfb_DAC1064.c/1.9.2.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
+/matroxfb_DAC1064.h/1.4.2.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
+/matroxfb_Ti3026.c/1.5.2.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
+/matroxfb_Ti3026.h/1.1/Thu Mar  2 02:37:06 2000/-ko/Tlinux_2_4_20
+/matroxfb_accel.c/1.6/Tue Nov  6 00:55:21 2001/-ko/Tlinux_2_4_20
+/matroxfb_accel.h/1.1/Thu Mar  2 02:37:06 2000/-ko/Tlinux_2_4_20
+/matroxfb_base.c/1.16.2.2/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
+/matroxfb_base.h/1.9.2.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
+/matroxfb_crtc2.c/1.9.2.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
+/matroxfb_crtc2.h/1.1/Thu Mar  2 02:37:06 2000/-ko/Tlinux_2_4_20
+/matroxfb_g450.c/1.3.2.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
+/matroxfb_g450.h/1.2/Sun Dec  2 11:34:52 2001/-ko/Tlinux_2_4_20
+/matroxfb_maven.c/1.4.2.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
+/matroxfb_maven.h/1.2/Mon Mar 13 20:55:34 2000/-ko/Tlinux_2_4_20
+/matroxfb_misc.c/1.4.2.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
+/matroxfb_misc.h/1.1.4.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/video/matrox/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/video/matrox/CVS/Repository
--- linux-2.4.20/drivers/video/matrox/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/matrox/CVS/Repository	2005-01-06 23:05:41.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/video/matrox
diff -urNd -urNd linux-2.4.20/drivers/video/matrox/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/video/matrox/CVS/Root
--- linux-2.4.20/drivers/video/matrox/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/matrox/CVS/Root	2005-01-06 23:05:41.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/video/matrox/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/video/matrox/CVS/Tag
--- linux-2.4.20/drivers/video/matrox/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/matrox/CVS/Tag	2005-01-06 23:05:41.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/video/matrox/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/video/matrox/.cvsignore
--- linux-2.4.20/drivers/video/matrox/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/matrox/.cvsignore	2000-03-09 18:12:37.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/video/maxinefb.c linux-2.4.20-mipscvs-20050106/drivers/video/maxinefb.c
--- linux-2.4.20/drivers/video/maxinefb.c	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/drivers/video/maxinefb.c	2003-01-16 08:09:20.000000000 -0600
@@ -81,9 +81,6 @@
 static int currcon = 0;
 static struct maxinefb_par current_par;
 
-/* Reference to machine type set in arch/mips/dec/prom/identify.c, KM */
-extern unsigned long mips_machtype;
-
 
 /* Handle the funny Inmos RamDAC/video controller ... */
 
@@ -123,6 +120,15 @@
 	var->yoffset = 0;
 	var->bits_per_pixel = 8;
 	var->grayscale = 0;
+	var->red.offset = 0;
+	var->red.length = 8;
+	var->red.msb_right = 0;
+	var->green.offset = 0;
+	var->green.length = 8;
+	var->green.msb_right = 0;
+	var->blue.offset = 0;
+	var->blue.length = 8;
+	var->blue.msb_right = 0;
 	var->transp.offset = 0;
 	var->transp.length = 0;
 	var->transp.msb_right = 0;
@@ -253,7 +259,7 @@
 	strcpy(fix->id, "maxinefb");
 	/* fix->id is a char[16], so a maximum of 15 characters, KM */
 
-	fix->smem_start = (char *) fb_start;	/* display memory base address, KM */
+	fix->smem_start = fb_start;	/* display memory base address, KM */
 	fix->smem_len = fb_size;
 	fix->type = FB_TYPE_PACKED_PIXELS;
 	fix->visual = FB_VISUAL_PSEUDOCOLOR;
@@ -291,7 +297,7 @@
 
 	maxinefb_get_fix(&fix, con, 0);
 
-	display->screen_base = fix.smem_start;
+	display->screen_base = (char *)fix.smem_start;
 	display->visual = fix.visual;
 	display->type = fix.type;
 	display->type_aux = fix.type_aux;
@@ -316,7 +322,7 @@
 
 int __init maxinefb_init(void)
 {
-	volatile unsigned char *fboff;
+	unsigned long fboff;
 	int i;
 
 	/* Validate we're on the proper machine type */
@@ -332,7 +338,7 @@
 
 	/* Clear screen */
 	for (fboff = fb_start; fboff < fb_start + 0x1ffff; fboff++)
-		*fboff = 0x0;
+		*(volatile unsigned char *)fboff = 0x0;
 
 	/* erase hardware cursor */
 	for (i = 0; i < 512; i++) {
diff -urNd -urNd linux-2.4.20/drivers/video/maxinefb.h linux-2.4.20-mipscvs-20050106/drivers/video/maxinefb.h
--- linux-2.4.20/drivers/video/maxinefb.h	2001-04-18 13:49:12.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/drivers/video/maxinefb.h	2003-01-08 06:43:58.000000000 -0600
@@ -8,17 +8,18 @@
  *      archive for more details.
  */
 
+#include <asm/addrspace.h>
 
 /*
  * IMS332 video controller register base address
  */
-#define MAXINEFB_IMS332_ADDRESS                  0xbc140000
+#define MAXINEFB_IMS332_ADDRESS		KSEG1ADDR(0x1c140000)
 
 /*
  * Begin of DECstation 5000/xx onboard framebuffer memory, default resolution
  * is 1024x768x8
  */
-#define DS5000_xx_ONBOARD_FBMEM_START	0xaa000000
+#define DS5000_xx_ONBOARD_FBMEM_START	KSEG1ADDR(0x0a000000)
 
 /*
  *      The IMS 332 video controller used in the DECstation 5000/xx series
diff -urNd -urNd linux-2.4.20/drivers/video/pmag-ba-fb.c linux-2.4.20-mipscvs-20050106/drivers/video/pmag-ba-fb.c
--- linux-2.4.20/drivers/video/pmag-ba-fb.c	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/drivers/video/pmag-ba-fb.c	2002-11-07 12:37:09.000000000 -0600
@@ -105,6 +105,15 @@
 	var->yoffset = 0;
 	var->bits_per_pixel = 8;
 	var->grayscale = 0;
+	var->red.offset = 0;
+	var->red.length = 8;
+	var->red.msb_right = 0;
+	var->green.offset = 0;
+	var->green.length = 8;
+	var->green.msb_right = 0;
+	var->blue.offset = 0;
+	var->blue.length = 8;
+	var->blue.msb_right = 0;
 	var->transp.offset = 0;
 	var->transp.length = 0;
 	var->transp.msb_right = 0;
diff -urNd -urNd linux-2.4.20/drivers/video/pmagb-b-fb.c linux-2.4.20-mipscvs-20050106/drivers/video/pmagb-b-fb.c
--- linux-2.4.20/drivers/video/pmagb-b-fb.c	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/drivers/video/pmagb-b-fb.c	2002-11-07 12:37:09.000000000 -0600
@@ -108,6 +108,15 @@
 	var->yoffset = 0;
 	var->bits_per_pixel = 8;
 	var->grayscale = 0;
+	var->red.offset = 0;
+	var->red.length = 8;
+	var->red.msb_right = 0;
+	var->green.offset = 0;
+	var->green.length = 8;
+	var->green.msb_right = 0;
+	var->blue.offset = 0;
+	var->blue.length = 8;
+	var->blue.msb_right = 0;
 	var->transp.offset = 0;
 	var->transp.length = 0;
 	var->transp.msb_right = 0;
diff -urNd -urNd linux-2.4.20/drivers/video/pmagb-b-fb.h linux-2.4.20-mipscvs-20050106/drivers/video/pmagb-b-fb.h
--- linux-2.4.20/drivers/video/pmagb-b-fb.h	2001-04-18 13:49:12.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/drivers/video/pmagb-b-fb.h	2003-01-08 07:49:35.000000000 -0600
@@ -4,7 +4,7 @@
  *      TurboChannel PMAGB-B framebuffer card support,
  *      Copyright (C) 1999, 2000, 2001 by
  *      Michael Engel <engel@unix-ag.org> and 
- *      Karsten Merker <merker@linxutag.org>
+ *      Karsten Merker <merker@linuxtag.org>
  *      This file is subject to the terms and conditions of the GNU General
  *      Public License.  See the file COPYING in the main directory of this
  *      archive for more details.
diff -urNd -urNd linux-2.4.20/drivers/video/riva/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/video/riva/CVS/Entries
--- linux-2.4.20/drivers/video/riva/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/riva/CVS/Entries	2005-01-06 23:05:42.000000000 -0600
@@ -0,0 +1,11 @@
+/.cvsignore/1.1/Fri Mar 10 00:12:37 2000/-ko/Tlinux_2_4_20
+/Makefile/1.3/Fri Mar  9 20:34:33 2001/-ko/Tlinux_2_4_20
+/accel.c/1.2.2.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
+/fbdev.c/1.18.2.3/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
+/nv4ref.h/1.1/Tue Mar  7 16:02:19 2000/-ko/Tlinux_2_4_20
+/nvreg.h/1.1/Tue Mar  7 16:02:19 2000/-ko/Tlinux_2_4_20
+/riva_hw.c/1.3.2.1/Tue Feb 26 05:59:54 2002/-ko/Tlinux_2_4_20
+/riva_hw.h/1.2.2.1/Tue Feb 26 05:59:55 2002/-ko/Tlinux_2_4_20
+/riva_tbl.h/1.3/Fri Mar  9 20:34:33 2001/-ko/Tlinux_2_4_20
+/rivafb.h/1.2/Wed Jun 13 17:28:05 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/video/riva/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/video/riva/CVS/Repository
--- linux-2.4.20/drivers/video/riva/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/riva/CVS/Repository	2005-01-06 23:05:41.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/video/riva
diff -urNd -urNd linux-2.4.20/drivers/video/riva/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/video/riva/CVS/Root
--- linux-2.4.20/drivers/video/riva/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/riva/CVS/Root	2005-01-06 23:05:41.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/video/riva/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/video/riva/CVS/Tag
--- linux-2.4.20/drivers/video/riva/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/riva/CVS/Tag	2005-01-06 23:05:42.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/video/riva/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/video/riva/.cvsignore
--- linux-2.4.20/drivers/video/riva/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/riva/.cvsignore	2000-03-09 18:12:37.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/video/sis/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/video/sis/CVS/Entries
--- linux-2.4.20/drivers/video/sis/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/sis/CVS/Entries	2005-01-06 23:05:43.000000000 -0600
@@ -0,0 +1,20 @@
+/.cvsignore/1.1/Mon Jan 15 04:16:43 2001/-ko/Tlinux_2_4_20
+/300vtbl.h/1.1.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/310vtbl.h/1.1.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/Makefile/1.4.2.1/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/init.c/1.1.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/init.h/1.1.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/init301.c/1.1.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/init301.h/1.1.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/initdef.h/1.2.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/oem300.h/1.1.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/oem310.h/1.1.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/osdef.h/1.1.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/sis.h/1.2.2.1/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/sis_accel.c/1.1.2.1/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/sis_accel.h/1.1.2.1/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/sis_main.c/1.8.2.3/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/sis_main.h/1.1.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/vgatypes.h/1.1.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/vstruct.h/1.1.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/video/sis/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/video/sis/CVS/Repository
--- linux-2.4.20/drivers/video/sis/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/sis/CVS/Repository	2005-01-06 23:05:42.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/video/sis
diff -urNd -urNd linux-2.4.20/drivers/video/sis/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/video/sis/CVS/Root
--- linux-2.4.20/drivers/video/sis/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/sis/CVS/Root	2005-01-06 23:05:42.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/video/sis/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/video/sis/CVS/Tag
--- linux-2.4.20/drivers/video/sis/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/sis/CVS/Tag	2005-01-06 23:05:43.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/video/sis/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/video/sis/.cvsignore
--- linux-2.4.20/drivers/video/sis/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/sis/.cvsignore	2001-01-14 22:16:43.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/video/sti/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/video/sti/CVS/Entries
--- linux-2.4.20/drivers/video/sti/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/sti/CVS/Entries	2005-01-06 23:05:44.000000000 -0600
@@ -0,0 +1,7 @@
+/.cvsignore/1.1.2.1/Wed Sep 11 13:00:33 2002/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.1/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
+/sticon.c/1.1.2.1/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
+/sticore.c/1.1.2.1/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
+/sticore.h/1.1.2.1/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
+/stifb.c/1.1.2.1/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/video/sti/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/video/sti/CVS/Repository
--- linux-2.4.20/drivers/video/sti/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/sti/CVS/Repository	2005-01-06 23:05:43.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/video/sti
diff -urNd -urNd linux-2.4.20/drivers/video/sti/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/video/sti/CVS/Root
--- linux-2.4.20/drivers/video/sti/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/sti/CVS/Root	2005-01-06 23:05:43.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/video/sti/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/video/sti/CVS/Tag
--- linux-2.4.20/drivers/video/sti/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/sti/CVS/Tag	2005-01-06 23:05:44.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/video/sti/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/video/sti/.cvsignore
--- linux-2.4.20/drivers/video/sti/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/video/sti/.cvsignore	2002-09-11 08:00:33.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/drivers/zorro/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/zorro/CVS/Entries
--- linux-2.4.20/drivers/zorro/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/zorro/CVS/Entries	2005-01-06 23:05:44.000000000 -0600
@@ -0,0 +1,9 @@
+/.cvsignore/1.1/Tue Aug 25 09:19:57 1998/-ko/Tlinux_2_4_20
+/Config.in/1.1/Thu Nov 23 02:00:54 2000/-ko/Tlinux_2_4_20
+/Makefile/1.5/Wed Jan 10 17:18:02 2001/-ko/Tlinux_2_4_20
+/gen-devlist.c/1.2/Tue Nov  6 07:56:08 2001/-ko/Tlinux_2_4_20
+/names.c/1.3/Fri Oct 19 01:24:53 2001/-ko/Tlinux_2_4_20
+/proc.c/1.10.4.1/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
+/zorro.c/1.8/Fri Oct 19 01:24:53 2001/-ko/Tlinux_2_4_20
+/zorro.ids/1.1.4.3/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/drivers/zorro/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/zorro/CVS/Repository
--- linux-2.4.20/drivers/zorro/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/zorro/CVS/Repository	2005-01-06 23:05:44.000000000 -0600
@@ -0,0 +1 @@
+linux/drivers/zorro
diff -urNd -urNd linux-2.4.20/drivers/zorro/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/zorro/CVS/Root
--- linux-2.4.20/drivers/zorro/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/zorro/CVS/Root	2005-01-06 23:05:44.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/drivers/zorro/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/zorro/CVS/Tag
--- linux-2.4.20/drivers/zorro/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/zorro/CVS/Tag	2005-01-06 23:05:44.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/drivers/zorro/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/zorro/.cvsignore
--- linux-2.4.20/drivers/zorro/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/drivers/zorro/.cvsignore	1998-08-25 04:19:57.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/adfs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/adfs/CVS/Entries
--- linux-2.4.20/fs/adfs/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/adfs/CVS/Entries	2005-01-06 23:05:47.000000000 -0600
@@ -0,0 +1,13 @@
+/.cvsignore/1.1/Tue Aug 25 09:20:06 1998/-ko/Tlinux_2_4_20
+/Makefile/1.4/Wed Jan 10 17:18:02 2001/-ko/Tlinux_2_4_20
+/adfs.h/1.6/Thu Oct  5 01:19:00 2000/-ko/Tlinux_2_4_20
+/dir.c/1.15/Thu Oct  5 01:19:00 2000/-ko/Tlinux_2_4_20
+/dir_f.c/1.3.4.1/Tue Feb 26 05:59:56 2002/-ko/Tlinux_2_4_20
+/dir_f.h/1.2/Thu Oct  5 01:19:00 2000/-ko/Tlinux_2_4_20
+/dir_fplus.c/1.3.4.1/Tue Feb 26 05:59:56 2002/-ko/Tlinux_2_4_20
+/dir_fplus.h/1.2/Thu Oct  5 01:19:00 2000/-ko/Tlinux_2_4_20
+/file.c/1.12/Sat Sep 22 12:49:35 2001/-ko/Tlinux_2_4_20
+/inode.c/1.19/Mon Nov  5 20:16:17 2001/-ko/Tlinux_2_4_20
+/map.c/1.6/Tue Nov  6 07:56:09 2001/-ko/Tlinux_2_4_20
+/super.c/1.14.2.1/Tue Feb 26 05:59:56 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/adfs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/adfs/CVS/Repository
--- linux-2.4.20/fs/adfs/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/adfs/CVS/Repository	2005-01-06 23:05:46.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/adfs
diff -urNd -urNd linux-2.4.20/fs/adfs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/adfs/CVS/Root
--- linux-2.4.20/fs/adfs/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/adfs/CVS/Root	2005-01-06 23:05:46.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/adfs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/adfs/CVS/Tag
--- linux-2.4.20/fs/adfs/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/adfs/CVS/Tag	2005-01-06 23:05:47.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/adfs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/adfs/.cvsignore
--- linux-2.4.20/fs/adfs/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/adfs/.cvsignore	1998-08-25 04:20:06.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/affs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/affs/CVS/Entries
--- linux-2.4.20/fs/affs/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/affs/CVS/Entries	2005-01-06 23:05:49.000000000 -0600
@@ -0,0 +1,12 @@
+/.cvsignore/1.2/Tue Mar 17 22:13:34 1998/-ko/Tlinux_2_4_20
+/Changes/1.10.2.2/Tue Feb 26 15:49:01 2002/-ko/Tlinux_2_4_20
+/Makefile/1.5/Wed Jun 13 17:28:06 2001/-ko/Tlinux_2_4_20
+/amigaffs.c/1.8/Fri Oct 19 01:24:54 2001/-ko/Tlinux_2_4_20
+/bitmap.c/1.7.2.1/Tue Feb 26 06:00:02 2002/-ko/Tlinux_2_4_20
+/dir.c/1.19/Fri Oct 19 01:24:54 2001/-ko/Tlinux_2_4_20
+/file.c/1.27.2.1/Tue Feb 26 06:00:03 2002/-ko/Tlinux_2_4_20
+/inode.c/1.25.2.1/Tue Feb 26 06:00:03 2002/-ko/Tlinux_2_4_20
+/namei.c/1.23/Fri Oct 19 01:24:55 2001/-ko/Tlinux_2_4_20
+/super.c/1.16.2.1/Tue Feb 26 06:00:03 2002/-ko/Tlinux_2_4_20
+/symlink.c/1.14/Wed Jun 13 17:28:06 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/affs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/affs/CVS/Repository
--- linux-2.4.20/fs/affs/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/affs/CVS/Repository	2005-01-06 23:05:47.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/affs
diff -urNd -urNd linux-2.4.20/fs/affs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/affs/CVS/Root
--- linux-2.4.20/fs/affs/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/affs/CVS/Root	2005-01-06 23:05:47.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/affs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/affs/CVS/Tag
--- linux-2.4.20/fs/affs/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/affs/CVS/Tag	2005-01-06 23:05:49.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/affs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/affs/.cvsignore
--- linux-2.4.20/fs/affs/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/affs/.cvsignore	1998-03-17 16:13:34.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/autofs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/autofs/CVS/Entries
--- linux-2.4.20/fs/autofs/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/autofs/CVS/Entries	2005-01-06 23:05:49.000000000 -0600
@@ -0,0 +1,11 @@
+/.cvsignore/1.2/Tue Mar 17 22:13:37 1998/-ko/Tlinux_2_4_20
+/Makefile/1.2/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
+/autofs_i.h/1.16.2.1/Tue Sep 10 15:32:52 2002/-ko/Tlinux_2_4_20
+/dir.c/1.16.4.1/Tue Sep 10 15:32:52 2002/-ko/Tlinux_2_4_20
+/dirhash.c/1.10/Thu Jun 15 01:56:03 2000/-ko/Tlinux_2_4_20
+/init.c/1.10/Mon Nov  5 20:16:17 2001/-ko/Tlinux_2_4_20
+/inode.c/1.16.2.1/Tue Sep 10 15:32:52 2002/-ko/Tlinux_2_4_20
+/root.c/1.30/Fri Oct 19 01:24:55 2001/-ko/Tlinux_2_4_20
+/symlink.c/1.10/Wed Apr 19 04:00:16 2000/-ko/Tlinux_2_4_20
+/waitq.c/1.13/Fri Mar  9 20:34:36 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/autofs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/autofs/CVS/Repository
--- linux-2.4.20/fs/autofs/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/autofs/CVS/Repository	2005-01-06 23:05:49.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/autofs
diff -urNd -urNd linux-2.4.20/fs/autofs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/autofs/CVS/Root
--- linux-2.4.20/fs/autofs/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/autofs/CVS/Root	2005-01-06 23:05:49.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/autofs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/autofs/CVS/Tag
--- linux-2.4.20/fs/autofs/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/autofs/CVS/Tag	2005-01-06 23:05:49.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/autofs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/autofs/.cvsignore
--- linux-2.4.20/fs/autofs/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/autofs/.cvsignore	1998-03-17 16:13:37.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/autofs4/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/autofs4/CVS/Entries
--- linux-2.4.20/fs/autofs4/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/autofs4/CVS/Entries	2005-01-06 23:05:49.000000000 -0600
@@ -0,0 +1,10 @@
+/.cvsignore/1.1/Fri Feb 18 00:24:46 2000/-ko/Tlinux_2_4_20
+/Makefile/1.3/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
+/autofs_i.h/1.6.2.1/Tue Sep 10 15:32:52 2002/-ko/Tlinux_2_4_20
+/expire.c/1.9/Wed Aug 22 03:24:55 2001/-ko/Tlinux_2_4_20
+/init.c/1.4/Mon Nov  5 20:16:17 2001/-ko/Tlinux_2_4_20
+/inode.c/1.9.2.1/Tue Sep 10 15:32:52 2002/-ko/Tlinux_2_4_20
+/root.c/1.10.4.1/Tue Sep 10 15:32:52 2002/-ko/Tlinux_2_4_20
+/symlink.c/1.3/Fri Apr 28 01:09:49 2000/-ko/Tlinux_2_4_20
+/waitq.c/1.5/Fri Mar  9 20:34:36 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/autofs4/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/autofs4/CVS/Repository
--- linux-2.4.20/fs/autofs4/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/autofs4/CVS/Repository	2005-01-06 23:05:49.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/autofs4
diff -urNd -urNd linux-2.4.20/fs/autofs4/CVS/Root linux-2.4.20-mipscvs-20050106/fs/autofs4/CVS/Root
--- linux-2.4.20/fs/autofs4/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/autofs4/CVS/Root	2005-01-06 23:05:49.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/autofs4/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/autofs4/CVS/Tag
--- linux-2.4.20/fs/autofs4/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/autofs4/CVS/Tag	2005-01-06 23:05:49.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/autofs4/.cvsignore linux-2.4.20-mipscvs-20050106/fs/autofs4/.cvsignore
--- linux-2.4.20/fs/autofs4/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/autofs4/.cvsignore	2000-02-17 18:24:46.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/befs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/befs/CVS/Entries
--- linux-2.4.20/fs/befs/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/befs/CVS/Entries	2005-01-06 23:05:50.000000000 -0600
@@ -0,0 +1,17 @@
+/.cvsignore/1.1.2.1/Sat Jan 11 23:18:17 2003/-ko/Tlinux_2_4_20
+/ChangeLog/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
+/TODO/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
+/attribute.c/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
+/befs_fs.h/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
+/befs_fs_types.h/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
+/btree.c/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
+/compatibility.h/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
+/datastream.c/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
+/debug.c/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
+/endian.h/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
+/inode.c/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
+/io.c/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
+/linuxvfs.c/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
+/super.c/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/befs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/befs/CVS/Repository
--- linux-2.4.20/fs/befs/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/befs/CVS/Repository	2005-01-06 23:05:49.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/befs
diff -urNd -urNd linux-2.4.20/fs/befs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/befs/CVS/Root
--- linux-2.4.20/fs/befs/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/befs/CVS/Root	2005-01-06 23:05:49.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/befs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/befs/CVS/Tag
--- linux-2.4.20/fs/befs/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/befs/CVS/Tag	2005-01-06 23:05:50.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/befs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/befs/.cvsignore
--- linux-2.4.20/fs/befs/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/befs/.cvsignore	2003-01-11 17:18:17.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/bfs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/bfs/CVS/Entries
--- linux-2.4.20/fs/bfs/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/bfs/CVS/Entries	2005-01-06 23:05:50.000000000 -0600
@@ -0,0 +1,7 @@
+/.cvsignore/1.1/Sat Jan 29 01:42:21 2000/-ko/Tlinux_2_4_20
+/Makefile/1.2/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
+/bfs_defs.h/1.2.4.1/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
+/dir.c/1.12.4.1/Tue Feb 26 06:00:04 2002/-ko/Tlinux_2_4_20
+/file.c/1.14/Sat Sep 22 12:49:35 2001/-ko/Tlinux_2_4_20
+/inode.c/1.15.2.1/Tue Feb 26 06:00:04 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/bfs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/bfs/CVS/Repository
--- linux-2.4.20/fs/bfs/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/bfs/CVS/Repository	2005-01-06 23:05:50.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/bfs
diff -urNd -urNd linux-2.4.20/fs/bfs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/bfs/CVS/Root
--- linux-2.4.20/fs/bfs/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/bfs/CVS/Root	2005-01-06 23:05:50.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/bfs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/bfs/CVS/Tag
--- linux-2.4.20/fs/bfs/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/bfs/CVS/Tag	2005-01-06 23:05:50.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/bfs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/bfs/.cvsignore
--- linux-2.4.20/fs/bfs/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/bfs/.cvsignore	2000-01-28 19:42:21.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/binfmt_elf.c linux-2.4.20-mipscvs-20050106/fs/binfmt_elf.c
--- linux-2.4.20/fs/binfmt_elf.c	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/fs/binfmt_elf.c	2002-12-19 18:48:16.000000000 -0600
@@ -586,6 +586,9 @@
 		    bprm->argc++;
 		  }
 		}
+	} else {
+		/* Executables without an interpreter also need a personality  */
+		SET_PERSONALITY(elf_ex, ibcs2_interpreter);
 	}
 
 	/* Flush all traces of the currently running executable */
@@ -1087,7 +1090,11 @@
 	elf.e_entry = 0;
 	elf.e_phoff = sizeof(elf);
 	elf.e_shoff = 0;
+#ifdef ELF_CORE_EFLAGS
+	elf.e_flags = ELF_CORE_EFLAGS;
+#else
 	elf.e_flags = 0;
+#endif
 	elf.e_ehsize = sizeof(elf);
 	elf.e_phentsize = sizeof(struct elf_phdr);
 	elf.e_phnum = segs+1;		/* Include notes */
diff -urNd -urNd linux-2.4.20/fs/coda/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/coda/CVS/Entries
--- linux-2.4.20/fs/coda/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/coda/CVS/Entries	2005-01-06 23:05:50.000000000 -0600
@@ -0,0 +1,14 @@
+/.cvsignore/1.2/Tue Mar 17 22:13:38 1998/-ko/Tlinux_2_4_20
+/Makefile/1.7/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
+/cache.c/1.12.2.2/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
+/cnode.c/1.16.2.2/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
+/coda_linux.c/1.10.2.2/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
+/dir.c/1.31.2.3/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
+/file.c/1.21.2.4/Tue Sep 10 15:32:52 2002/-ko/Tlinux_2_4_20
+/inode.c/1.19.2.3/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
+/pioctl.c/1.14.4.2/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
+/psdev.c/1.25.2.3/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
+/symlink.c/1.14/Wed Jun 13 17:28:06 2001/-ko/Tlinux_2_4_20
+/sysctl.c/1.13.2.2/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
+/upcall.c/1.19.2.2/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/coda/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/coda/CVS/Repository
--- linux-2.4.20/fs/coda/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/coda/CVS/Repository	2005-01-06 23:05:50.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/coda
diff -urNd -urNd linux-2.4.20/fs/coda/CVS/Root linux-2.4.20-mipscvs-20050106/fs/coda/CVS/Root
--- linux-2.4.20/fs/coda/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/coda/CVS/Root	2005-01-06 23:05:50.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/coda/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/coda/CVS/Tag
--- linux-2.4.20/fs/coda/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/coda/CVS/Tag	2005-01-06 23:05:50.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/coda/.cvsignore linux-2.4.20-mipscvs-20050106/fs/coda/.cvsignore
--- linux-2.4.20/fs/coda/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/coda/.cvsignore	1998-03-17 16:13:38.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/cramfs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/cramfs/CVS/Entries
--- linux-2.4.20/fs/cramfs/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/cramfs/CVS/Entries	2005-01-06 23:08:09.000000000 -0600
@@ -0,0 +1,6 @@
+/.cvsignore/1.1/Sat Feb  5 06:47:35 2000/-ko/Tlinux_2_4_20
+/Makefile/1.3/Tue Nov  6 07:56:09 2001/-ko/Tlinux_2_4_20
+/README/1.2.2.1/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
+/inode.c/1.18.2.3/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
+/uncompress.c/1.5.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
+D/inflate////
diff -urNd -urNd linux-2.4.20/fs/cramfs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/cramfs/CVS/Repository
--- linux-2.4.20/fs/cramfs/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/cramfs/CVS/Repository	2005-01-06 23:05:50.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/cramfs
diff -urNd -urNd linux-2.4.20/fs/cramfs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/cramfs/CVS/Root
--- linux-2.4.20/fs/cramfs/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/cramfs/CVS/Root	2005-01-06 23:05:50.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/cramfs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/cramfs/CVS/Tag
--- linux-2.4.20/fs/cramfs/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/cramfs/CVS/Tag	2005-01-06 23:05:51.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/cramfs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/cramfs/.cvsignore
--- linux-2.4.20/fs/cramfs/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/cramfs/.cvsignore	2000-02-05 00:47:35.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/cramfs/inflate/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/cramfs/inflate/CVS/Entries
--- linux-2.4.20/fs/cramfs/inflate/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/cramfs/inflate/CVS/Entries	2005-01-06 23:05:51.000000000 -0600
@@ -0,0 +1,2 @@
+/.cvsignore/1.1.2.1/Mon Dec 31 03:33:20 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/cramfs/inflate/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/cramfs/inflate/CVS/Repository
--- linux-2.4.20/fs/cramfs/inflate/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/cramfs/inflate/CVS/Repository	2005-01-06 23:05:51.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/cramfs/inflate
diff -urNd -urNd linux-2.4.20/fs/cramfs/inflate/CVS/Root linux-2.4.20-mipscvs-20050106/fs/cramfs/inflate/CVS/Root
--- linux-2.4.20/fs/cramfs/inflate/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/cramfs/inflate/CVS/Root	2005-01-06 23:05:51.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/cramfs/inflate/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/cramfs/inflate/CVS/Tag
--- linux-2.4.20/fs/cramfs/inflate/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/cramfs/inflate/CVS/Tag	2005-01-06 23:05:51.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/cramfs/inflate/.cvsignore linux-2.4.20-mipscvs-20050106/fs/cramfs/inflate/.cvsignore
--- linux-2.4.20/fs/cramfs/inflate/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/cramfs/inflate/.cvsignore	2001-12-30 21:33:20.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/CVS/Entries
--- linux-2.4.20/fs/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/CVS/Entries	2005-01-06 23:08:09.000000000 -0600
@@ -0,0 +1,86 @@
+/.cvsignore/1.2/Tue Mar 17 22:13:23 1998/-ko/Tlinux_2_4_20
+/ChangeLog/1.3/Thu Jun 17 13:29:29 1999/-ko/Tlinux_2_4_20
+/Config.in/1.51.2.3/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
+/Makefile/1.33.2.3/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/attr.c/1.15.2.1/Tue Feb 26 05:59:55 2002/-ko/Tlinux_2_4_20
+/bad_inode.c/1.13.4.1/Wed Jun 26 22:36:16 2002/-ko/Tlinux_2_4_20
+/binfmt_aout.c/1.37/Tue Nov  6 07:56:08 2001/-ko/Tlinux_2_4_20
+/binfmt_elf.c/1.52.2.6/Fri Dec 20 00:48:16 2002/-ko/Tlinux_2_4_20
+/binfmt_em86.c/1.15.2.1/Wed Jun 26 22:36:16 2002/-ko/Tlinux_2_4_20
+/binfmt_misc.c/1.22.2.2/Tue Sep 10 15:32:52 2002/-ko/Tlinux_2_4_20
+/binfmt_script.c/1.15.2.1/Wed Jun 26 22:36:17 2002/-ko/Tlinux_2_4_20
+/binfmt_som.c/1.1.2.1/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
+/block_dev.c/1.35.2.3/Wed Jun 26 22:36:17 2002/-ko/Tlinux_2_4_20
+/buffer.c/1.75.2.6/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/char_dev.c/1.2/Tue Nov  6 07:56:08 2001/-ko/Tlinux_2_4_20
+/dcache.c/1.49.2.4/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
+/devices.c/1.26/Fri Oct 19 01:24:54 2001/-ko/Tlinux_2_4_20
+/dnotify.c/1.2.4.2/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
+/dquot.c/1.40.2.1/Wed Jun 26 22:36:18 2002/-ko/Tlinux_2_4_20
+/exec.c/1.59.2.3/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
+/fcntl.c/1.25.2.2/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
+/fifo.c/1.19/Fri Mar  9 20:34:33 2001/-ko/Tlinux_2_4_20
+/file.c/1.7.2.1/Wed Jun 26 22:36:18 2002/-ko/Tlinux_2_4_20
+/file_table.c/1.29.2.1/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
+/filesystems.c/1.25.2.1/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
+/inode.c/1.57.2.3/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
+/iobuf.c/1.7.2.2/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
+/ioctl.c/1.16/Fri Mar  9 20:34:33 2001/-ko/Tlinux_2_4_20
+/locks.c/1.31.2.1/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
+/namei.c/1.58.2.4/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
+/namespace.c/1.4.2.4/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
+/noquot.c/1.4/Fri May 12 23:48:41 2000/-ko/Tlinux_2_4_20
+/open.c/1.45.2.3/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
+/pipe.c/1.39.2.2/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
+/read_write.c/1.23.2.2/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
+/readdir.c/1.16.2.1/Tue Sep 10 15:32:52 2002/-ko/Tlinux_2_4_20
+/select.c/1.31/Fri Oct 19 01:24:54 2001/-ko/Tlinux_2_4_20
+/seq_file.c/1.1/Sun Dec  2 11:34:53 2001/-ko/Tlinux_2_4_20
+/stat.c/1.19.2.2/Thu Nov 21 12:38:52 2002/-ko/Tlinux_2_4_20
+/super.c/1.64.2.5/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
+/xattr.c/1.4.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
+D/adfs////
+D/affs////
+D/autofs////
+D/autofs4////
+D/befs////
+D/bfs////
+D/coda////
+D/cramfs////
+D/devfs////
+D/devpts////
+D/efs////
+D/ext2////
+D/ext3////
+D/fat////
+D/freevxfs////
+D/hfs////
+D/hpfs////
+D/inflate_fs////
+D/intermezzo////
+D/isofs////
+D/jbd////
+D/jffs////
+D/jffs2////
+D/jfs////
+D/lockd////
+D/minix////
+D/msdos////
+D/ncpfs////
+D/nfs////
+D/nfsd////
+D/nls////
+D/ntfs////
+D/openpromfs////
+D/partitions////
+D/proc////
+D/qnx4////
+D/ramfs////
+D/reiserfs////
+D/romfs////
+D/smbfs////
+D/sysv////
+D/udf////
+D/ufs////
+D/umsdos////
+D/vfat////
diff -urNd -urNd linux-2.4.20/fs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/CVS/Repository
--- linux-2.4.20/fs/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/CVS/Repository	2005-01-06 23:05:44.000000000 -0600
@@ -0,0 +1 @@
+linux/fs
diff -urNd -urNd linux-2.4.20/fs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/CVS/Root
--- linux-2.4.20/fs/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/CVS/Root	2005-01-06 23:05:44.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/CVS/Tag
--- linux-2.4.20/fs/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/CVS/Tag	2005-01-06 23:05:46.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/.cvsignore
--- linux-2.4.20/fs/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/.cvsignore	1998-03-17 16:13:23.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/devfs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/devfs/CVS/Entries
--- linux-2.4.20/fs/devfs/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/devfs/CVS/Entries	2005-01-06 23:05:51.000000000 -0600
@@ -0,0 +1,5 @@
+/.cvsignore/1.1/Thu Feb 24 00:13:11 2000/-ko/Tlinux_2_4_20
+/Makefile/1.3/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
+/base.c/1.27.2.4/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
+/util.c/1.9.2.1/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/devfs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/devfs/CVS/Repository
--- linux-2.4.20/fs/devfs/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/devfs/CVS/Repository	2005-01-06 23:05:51.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/devfs
diff -urNd -urNd linux-2.4.20/fs/devfs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/devfs/CVS/Root
--- linux-2.4.20/fs/devfs/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/devfs/CVS/Root	2005-01-06 23:05:51.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/devfs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/devfs/CVS/Tag
--- linux-2.4.20/fs/devfs/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/devfs/CVS/Tag	2005-01-06 23:05:51.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/devfs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/devfs/.cvsignore
--- linux-2.4.20/fs/devfs/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/devfs/.cvsignore	2000-02-23 18:13:11.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/devpts/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/devpts/CVS/Entries
--- linux-2.4.20/fs/devpts/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/devpts/CVS/Entries	2005-01-06 23:05:51.000000000 -0600
@@ -0,0 +1,6 @@
+/.cvsignore/1.1/Thu May  7 03:01:44 1998/-ko/Tlinux_2_4_20
+/Makefile/1.3/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
+/devpts_i.h/1.4/Mon Jun 19 22:45:57 2000/-ko/Tlinux_2_4_20
+/inode.c/1.13/Mon Nov  5 20:16:17 2001/-ko/Tlinux_2_4_20
+/root.c/1.16.4.1/Sat Dec 29 05:38:15 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/devpts/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/devpts/CVS/Repository
--- linux-2.4.20/fs/devpts/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/devpts/CVS/Repository	2005-01-06 23:05:51.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/devpts
diff -urNd -urNd linux-2.4.20/fs/devpts/CVS/Root linux-2.4.20-mipscvs-20050106/fs/devpts/CVS/Root
--- linux-2.4.20/fs/devpts/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/devpts/CVS/Root	2005-01-06 23:05:51.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/devpts/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/devpts/CVS/Tag
--- linux-2.4.20/fs/devpts/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/devpts/CVS/Tag	2005-01-06 23:05:51.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/devpts/.cvsignore linux-2.4.20-mipscvs-20050106/fs/devpts/.cvsignore
--- linux-2.4.20/fs/devpts/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/devpts/.cvsignore	1998-05-06 22:01:44.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/efs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/efs/CVS/Entries
--- linux-2.4.20/fs/efs/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/efs/CVS/Entries	2005-01-06 23:05:51.000000000 -0600
@@ -0,0 +1,9 @@
+/.cvsignore/1.2/Tue Mar 17 22:13:44 1998/-ko/Tlinux_2_4_20
+/Makefile/1.7/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
+/dir.c/1.20.4.1/Tue Feb 26 06:00:08 2002/-ko/Tlinux_2_4_20
+/file.c/1.14/Thu Mar  2 02:37:08 2000/-ko/Tlinux_2_4_20
+/inode.c/1.21.2.1/Tue Feb 26 06:00:08 2002/-ko/Tlinux_2_4_20
+/namei.c/1.13.4.1/Tue Feb 26 06:00:09 2002/-ko/Tlinux_2_4_20
+/super.c/1.14.2.2/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
+/symlink.c/1.20.2.1/Tue Feb 26 06:00:09 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/efs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/efs/CVS/Repository
--- linux-2.4.20/fs/efs/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/efs/CVS/Repository	2005-01-06 23:05:51.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/efs
diff -urNd -urNd linux-2.4.20/fs/efs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/efs/CVS/Root
--- linux-2.4.20/fs/efs/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/efs/CVS/Root	2005-01-06 23:05:51.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/efs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/efs/CVS/Tag
--- linux-2.4.20/fs/efs/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/efs/CVS/Tag	2005-01-06 23:05:51.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/efs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/efs/.cvsignore
--- linux-2.4.20/fs/efs/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/efs/.cvsignore	1998-03-17 16:13:44.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/ext2/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/ext2/CVS/Entries
--- linux-2.4.20/fs/ext2/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/ext2/CVS/Entries	2005-01-06 23:05:52.000000000 -0600
@@ -0,0 +1,15 @@
+/.cvsignore/1.2/Tue Mar 17 22:13:46 1998/-ko/Tlinux_2_4_20
+/CHANGES/1.1.1.1/Sun Jun  1 03:16:19 1997/-ko/Tlinux_2_4_20
+/Makefile/1.4/Tue Nov  6 00:55:21 2001/-ko/Tlinux_2_4_20
+/balloc.c/1.25.2.1/Tue Feb 26 06:00:09 2002/-ko/Tlinux_2_4_20
+/bitmap.c/1.4/Thu Oct  5 01:19:00 2000/-ko/Tlinux_2_4_20
+/dir.c/1.26.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/file.c/1.26/Tue Nov  6 00:55:21 2001/-ko/Tlinux_2_4_20
+/fsync.c/1.17/Fri Oct 19 01:24:55 2001/-ko/Tlinux_2_4_20
+/ialloc.c/1.27.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/inode.c/1.42.2.4/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/ioctl.c/1.10.4.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
+/namei.c/1.32/Wed Aug 22 03:24:56 2001/-ko/Tlinux_2_4_20
+/super.c/1.29.2.3/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
+/symlink.c/1.13/Thu Oct  5 01:19:00 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/ext2/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/ext2/CVS/Repository
--- linux-2.4.20/fs/ext2/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/ext2/CVS/Repository	2005-01-06 23:05:51.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/ext2
diff -urNd -urNd linux-2.4.20/fs/ext2/CVS/Root linux-2.4.20-mipscvs-20050106/fs/ext2/CVS/Root
--- linux-2.4.20/fs/ext2/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/ext2/CVS/Root	2005-01-06 23:05:51.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/ext2/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/ext2/CVS/Tag
--- linux-2.4.20/fs/ext2/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/ext2/CVS/Tag	2005-01-06 23:05:52.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/ext2/.cvsignore linux-2.4.20-mipscvs-20050106/fs/ext2/.cvsignore
--- linux-2.4.20/fs/ext2/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/ext2/.cvsignore	1998-03-17 16:13:46.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/ext3/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/ext3/CVS/Entries
--- linux-2.4.20/fs/ext3/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/ext3/CVS/Entries	2005-01-06 23:05:53.000000000 -0600
@@ -0,0 +1,14 @@
+/.cvsignore/1.1/Sun Dec  2 11:34:54 2001/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.1/Sat Dec 29 05:38:15 2001/-ko/Tlinux_2_4_20
+/balloc.c/1.1.2.2/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
+/bitmap.c/1.1/Sun Dec  2 11:34:54 2001/-ko/Tlinux_2_4_20
+/dir.c/1.1/Sun Dec  2 11:34:54 2001/-ko/Tlinux_2_4_20
+/file.c/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
+/fsync.c/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
+/ialloc.c/1.1.2.2/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
+/inode.c/1.1.2.4/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
+/ioctl.c/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
+/namei.c/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/super.c/1.1.2.4/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/symlink.c/1.1/Sun Dec  2 11:34:54 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/ext3/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/ext3/CVS/Repository
--- linux-2.4.20/fs/ext3/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/ext3/CVS/Repository	2005-01-06 23:05:52.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/ext3
diff -urNd -urNd linux-2.4.20/fs/ext3/CVS/Root linux-2.4.20-mipscvs-20050106/fs/ext3/CVS/Root
--- linux-2.4.20/fs/ext3/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/ext3/CVS/Root	2005-01-06 23:05:52.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/ext3/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/ext3/CVS/Tag
--- linux-2.4.20/fs/ext3/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/ext3/CVS/Tag	2005-01-06 23:05:53.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/ext3/.cvsignore linux-2.4.20-mipscvs-20050106/fs/ext3/.cvsignore
--- linux-2.4.20/fs/ext3/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/ext3/.cvsignore	2001-12-02 05:34:54.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/fat/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/fat/CVS/Entries
--- linux-2.4.20/fs/fat/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/fat/CVS/Entries	2005-01-06 23:05:54.000000000 -0600
@@ -0,0 +1,11 @@
+/.cvsignore/1.2/Tue Mar 17 22:13:49 1998/-ko/Tlinux_2_4_20
+/Makefile/1.6/Wed Jun 13 17:28:06 2001/-ko/Tlinux_2_4_20
+/buffer.c/1.9.2.1/Tue Feb 26 06:00:10 2002/-ko/Tlinux_2_4_20
+/cache.c/1.15/Tue Nov  6 00:55:22 2001/-ko/Tlinux_2_4_20
+/cvf.c/1.6/Fri Aug 24 03:38:50 2001/-ko/Tlinux_2_4_20
+/dir.c/1.22/Tue Nov  6 00:55:22 2001/-ko/Tlinux_2_4_20
+/fatfs_syms.c/1.16/Tue Nov  6 00:55:22 2001/-ko/Tlinux_2_4_20
+/file.c/1.21/Sat Sep 22 12:49:35 2001/-ko/Tlinux_2_4_20
+/inode.c/1.42.2.2/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
+/misc.c/1.14/Tue Nov  6 00:55:22 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/fat/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/fat/CVS/Repository
--- linux-2.4.20/fs/fat/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/fat/CVS/Repository	2005-01-06 23:05:53.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/fat
diff -urNd -urNd linux-2.4.20/fs/fat/CVS/Root linux-2.4.20-mipscvs-20050106/fs/fat/CVS/Root
--- linux-2.4.20/fs/fat/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/fat/CVS/Root	2005-01-06 23:05:53.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/fat/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/fat/CVS/Tag
--- linux-2.4.20/fs/fat/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/fat/CVS/Tag	2005-01-06 23:05:54.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/fat/.cvsignore linux-2.4.20-mipscvs-20050106/fs/fat/.cvsignore
--- linux-2.4.20/fs/fat/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/fat/.cvsignore	1998-03-17 16:13:49.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/freevxfs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/freevxfs/CVS/Entries
--- linux-2.4.20/fs/freevxfs/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/freevxfs/CVS/Entries	2005-01-06 23:05:54.000000000 -0600
@@ -0,0 +1,18 @@
+/.cvsignore/1.1/Sat Jun 16 01:21:40 2001/-ko/Tlinux_2_4_20
+/Makefile/1.1/Thu Jun 14 04:24:16 2001/-ko/Tlinux_2_4_20
+/vxfs.h/1.1.2.1/Tue Feb 26 06:00:11 2002/-ko/Tlinux_2_4_20
+/vxfs_bmap.c/1.3.2.1/Tue Feb 26 06:00:11 2002/-ko/Tlinux_2_4_20
+/vxfs_dir.h/1.1/Thu Jun 14 04:24:16 2001/-ko/Tlinux_2_4_20
+/vxfs_extern.h/1.2.2.1/Tue Feb 26 06:00:11 2002/-ko/Tlinux_2_4_20
+/vxfs_fshead.c/1.2.2.1/Tue Feb 26 06:00:11 2002/-ko/Tlinux_2_4_20
+/vxfs_fshead.h/1.2/Wed Aug 22 03:24:56 2001/-ko/Tlinux_2_4_20
+/vxfs_immed.c/1.1/Thu Jun 14 04:24:16 2001/-ko/Tlinux_2_4_20
+/vxfs_inode.c/1.3.2.1/Tue Feb 26 06:00:11 2002/-ko/Tlinux_2_4_20
+/vxfs_inode.h/1.2/Wed Aug 22 03:24:56 2001/-ko/Tlinux_2_4_20
+/vxfs_kcompat.h/1.1.2.2/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
+/vxfs_lookup.c/1.2.2.1/Tue Feb 26 06:00:11 2002/-ko/Tlinux_2_4_20
+/vxfs_olt.c/1.2.2.1/Tue Feb 26 06:00:11 2002/-ko/Tlinux_2_4_20
+/vxfs_olt.h/1.1/Thu Jun 14 04:24:16 2001/-ko/Tlinux_2_4_20
+/vxfs_subr.c/1.2.2.1/Tue Feb 26 06:00:11 2002/-ko/Tlinux_2_4_20
+/vxfs_super.c/1.4.2.1/Tue Feb 26 06:00:11 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/freevxfs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/freevxfs/CVS/Repository
--- linux-2.4.20/fs/freevxfs/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/freevxfs/CVS/Repository	2005-01-06 23:05:54.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/freevxfs
diff -urNd -urNd linux-2.4.20/fs/freevxfs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/freevxfs/CVS/Root
--- linux-2.4.20/fs/freevxfs/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/freevxfs/CVS/Root	2005-01-06 23:05:54.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/freevxfs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/freevxfs/CVS/Tag
--- linux-2.4.20/fs/freevxfs/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/freevxfs/CVS/Tag	2005-01-06 23:05:54.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/freevxfs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/freevxfs/.cvsignore
--- linux-2.4.20/fs/freevxfs/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/freevxfs/.cvsignore	2001-06-15 20:21:40.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/hfs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/hfs/CVS/Entries
--- linux-2.4.20/fs/hfs/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/hfs/CVS/Entries	2005-01-06 23:05:57.000000000 -0600
@@ -0,0 +1,38 @@
+/.cvsignore/1.1/Tue Mar 17 22:13:54 1998/-ko/Tlinux_2_4_20
+/COPYING/1.1/Tue Mar 17 22:26:49 1998/-ko/Tlinux_2_4_20
+/ChangeLog/1.8/Wed Feb 16 01:07:46 2000/-ko/Tlinux_2_4_20
+/FAQ.txt/1.2/Tue Aug 25 09:20:23 1998/-ko/Tlinux_2_4_20
+/HFS.txt/1.2/Mon Jan  4 16:08:23 1999/-ko/Tlinux_2_4_20
+/INSTALL.txt/1.1/Tue Mar 17 22:13:55 1998/-ko/Tlinux_2_4_20
+/Makefile/1.4/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
+/TODO/1.2/Mon Jan  4 16:08:23 1999/-ko/Tlinux_2_4_20
+/balloc.c/1.3/Fri Mar  9 20:34:36 2001/-ko/Tlinux_2_4_20
+/bdelete.c/1.3/Fri Mar  9 20:34:36 2001/-ko/Tlinux_2_4_20
+/bfind.c/1.2/Fri Mar  9 20:34:36 2001/-ko/Tlinux_2_4_20
+/bins_del.c/1.2/Fri Mar  9 20:34:36 2001/-ko/Tlinux_2_4_20
+/binsert.c/1.3/Fri Mar  9 20:34:36 2001/-ko/Tlinux_2_4_20
+/bitmap.c/1.2/Fri Mar  9 20:34:36 2001/-ko/Tlinux_2_4_20
+/bitops.c/1.2/Fri Mar  9 20:34:36 2001/-ko/Tlinux_2_4_20
+/bnode.c/1.4/Fri Mar  9 20:34:36 2001/-ko/Tlinux_2_4_20
+/brec.c/1.2/Fri Mar  9 20:34:36 2001/-ko/Tlinux_2_4_20
+/btree.c/1.4/Fri Mar  9 20:34:36 2001/-ko/Tlinux_2_4_20
+/catalog.c/1.8/Tue Nov  6 00:55:22 2001/-ko/Tlinux_2_4_20
+/dir.c/1.11/Fri Mar  9 20:34:36 2001/-ko/Tlinux_2_4_20
+/dir_cap.c/1.13/Fri Mar  9 20:34:36 2001/-ko/Tlinux_2_4_20
+/dir_dbl.c/1.13/Fri Mar  9 20:34:36 2001/-ko/Tlinux_2_4_20
+/dir_nat.c/1.14/Fri Mar  9 20:34:36 2001/-ko/Tlinux_2_4_20
+/extent.c/1.5/Fri Mar  9 20:34:36 2001/-ko/Tlinux_2_4_20
+/file.c/1.15.2.1/Tue Feb 26 06:00:11 2002/-ko/Tlinux_2_4_20
+/file_cap.c/1.13/Fri Oct 19 01:24:55 2001/-ko/Tlinux_2_4_20
+/file_hdr.c/1.15/Sat Sep 22 12:49:36 2001/-ko/Tlinux_2_4_20
+/hfs.h/1.8/Fri Mar  9 20:34:36 2001/-ko/Tlinux_2_4_20
+/hfs_btree.h/1.4/Fri Mar  9 20:34:36 2001/-ko/Tlinux_2_4_20
+/inode.c/1.17/Fri Oct 19 01:24:55 2001/-ko/Tlinux_2_4_20
+/mdb.c/1.6/Fri Mar  9 20:34:36 2001/-ko/Tlinux_2_4_20
+/part_tbl.c/1.3/Fri Mar  9 20:34:36 2001/-ko/Tlinux_2_4_20
+/string.c/1.4/Fri Mar  9 20:34:36 2001/-ko/Tlinux_2_4_20
+/super.c/1.14.2.2/Wed Jun 26 22:36:20 2002/-ko/Tlinux_2_4_20
+/sysdep.c/1.8.2.1/Tue Feb 26 06:00:11 2002/-ko/Tlinux_2_4_20
+/trans.c/1.3/Fri Mar  9 20:34:36 2001/-ko/Tlinux_2_4_20
+/version.c/1.4/Fri Mar  9 20:34:36 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/hfs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/hfs/CVS/Repository
--- linux-2.4.20/fs/hfs/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/hfs/CVS/Repository	2005-01-06 23:05:54.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/hfs
diff -urNd -urNd linux-2.4.20/fs/hfs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/hfs/CVS/Root
--- linux-2.4.20/fs/hfs/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/hfs/CVS/Root	2005-01-06 23:05:54.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/hfs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/hfs/CVS/Tag
--- linux-2.4.20/fs/hfs/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/hfs/CVS/Tag	2005-01-06 23:05:57.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/hfs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/hfs/.cvsignore
--- linux-2.4.20/fs/hfs/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/hfs/.cvsignore	1998-03-17 16:13:54.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/hpfs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/hpfs/CVS/Entries
--- linux-2.4.20/fs/hpfs/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/hpfs/CVS/Entries	2005-01-06 23:05:59.000000000 -0600
@@ -0,0 +1,18 @@
+/.cvsignore/1.2/Tue Mar 17 22:14:03 1998/-ko/Tlinux_2_4_20
+/Makefile/1.5/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
+/alloc.c/1.1/Thu Jun 17 14:08:53 1999/-ko/Tlinux_2_4_20
+/anode.c/1.5/Wed Aug 22 03:24:56 2001/-ko/Tlinux_2_4_20
+/buffer.c/1.6.2.1/Tue Feb 26 06:00:12 2002/-ko/Tlinux_2_4_20
+/dentry.c/1.2/Sun Mar 12 23:15:48 2000/-ko/Tlinux_2_4_20
+/dir.c/1.8/Wed Aug 22 03:24:56 2001/-ko/Tlinux_2_4_20
+/dnode.c/1.3/Thu Oct  5 01:19:00 2000/-ko/Tlinux_2_4_20
+/ea.c/1.4.4.1/Wed Jun 26 22:36:20 2002/-ko/Tlinux_2_4_20
+/file.c/1.17/Sat Sep 22 12:49:36 2001/-ko/Tlinux_2_4_20
+/hpfs.h/1.4/Mon Aug 28 22:00:24 2000/-ko/Tlinux_2_4_20
+/hpfs_fn.h/1.14.2.1/Tue Sep 10 15:32:52 2002/-ko/Tlinux_2_4_20
+/inode.c/1.16/Fri Oct 19 01:24:55 2001/-ko/Tlinux_2_4_20
+/map.c/1.2/Mon Aug 28 22:00:24 2000/-ko/Tlinux_2_4_20
+/name.c/1.1/Thu Jun 17 14:08:56 1999/-ko/Tlinux_2_4_20
+/namei.c/1.15/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
+/super.c/1.9.2.2/Wed Jun 26 22:36:20 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/hpfs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/hpfs/CVS/Repository
--- linux-2.4.20/fs/hpfs/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/hpfs/CVS/Repository	2005-01-06 23:05:58.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/hpfs
diff -urNd -urNd linux-2.4.20/fs/hpfs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/hpfs/CVS/Root
--- linux-2.4.20/fs/hpfs/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/hpfs/CVS/Root	2005-01-06 23:05:58.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/hpfs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/hpfs/CVS/Tag
--- linux-2.4.20/fs/hpfs/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/hpfs/CVS/Tag	2005-01-06 23:05:59.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/hpfs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/hpfs/.cvsignore
--- linux-2.4.20/fs/hpfs/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/hpfs/.cvsignore	1998-03-17 16:14:03.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/inflate_fs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/inflate_fs/CVS/Entries
--- linux-2.4.20/fs/inflate_fs/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/inflate_fs/CVS/Entries	2005-01-06 23:05:59.000000000 -0600
@@ -0,0 +1,2 @@
+/.cvsignore/1.1/Thu Nov 15 16:02:31 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/inflate_fs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/inflate_fs/CVS/Repository
--- linux-2.4.20/fs/inflate_fs/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/inflate_fs/CVS/Repository	2005-01-06 23:05:59.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/inflate_fs
diff -urNd -urNd linux-2.4.20/fs/inflate_fs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/inflate_fs/CVS/Root
--- linux-2.4.20/fs/inflate_fs/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/inflate_fs/CVS/Root	2005-01-06 23:05:59.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/inflate_fs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/inflate_fs/CVS/Tag
--- linux-2.4.20/fs/inflate_fs/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/inflate_fs/CVS/Tag	2005-01-06 23:05:59.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/inflate_fs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/inflate_fs/.cvsignore
--- linux-2.4.20/fs/inflate_fs/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/inflate_fs/.cvsignore	2001-11-15 10:02:31.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/intermezzo/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/intermezzo/CVS/Entries
--- linux-2.4.20/fs/intermezzo/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/intermezzo/CVS/Entries	2005-01-06 23:06:00.000000000 -0600
@@ -0,0 +1,27 @@
+/.cvsignore/1.1/Sun Dec  2 11:34:54 2001/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/cache.c/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/dcache.c/1.1.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/dir.c/1.1.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/ext_attr.c/1.1.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/file.c/1.1.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/fileset.c/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/inode.c/1.1.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/journal.c/1.1.2.3/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/journal_ext2.c/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/journal_ext3.c/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/journal_obdfs.c/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/journal_reiserfs.c/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/journal_tmpfs.c/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/journal_xfs.c/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/kml_reint.c/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/kml_unpack.c/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/methods.c/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/presto.c/1.1.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/psdev.c/1.1.2.5/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/replicator.c/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/super.c/1.1.2.3/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/sysctl.c/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/upcall.c/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/vfs.c/1.1.2.3/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/intermezzo/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/intermezzo/CVS/Repository
--- linux-2.4.20/fs/intermezzo/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/intermezzo/CVS/Repository	2005-01-06 23:05:59.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/intermezzo
diff -urNd -urNd linux-2.4.20/fs/intermezzo/CVS/Root linux-2.4.20-mipscvs-20050106/fs/intermezzo/CVS/Root
--- linux-2.4.20/fs/intermezzo/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/intermezzo/CVS/Root	2005-01-06 23:05:59.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/intermezzo/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/intermezzo/CVS/Tag
--- linux-2.4.20/fs/intermezzo/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/intermezzo/CVS/Tag	2005-01-06 23:06:00.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/intermezzo/.cvsignore linux-2.4.20-mipscvs-20050106/fs/intermezzo/.cvsignore
--- linux-2.4.20/fs/intermezzo/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/intermezzo/.cvsignore	2001-12-02 05:34:54.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/isofs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/isofs/CVS/Entries
--- linux-2.4.20/fs/isofs/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/isofs/CVS/Entries	2005-01-06 23:06:01.000000000 -0600
@@ -0,0 +1,12 @@
+/.cvsignore/1.2/Tue Mar 17 22:14:05 1998/-ko/Tlinux_2_4_20
+/Makefile/1.7/Tue Nov  6 07:56:09 2001/-ko/Tlinux_2_4_20
+/compress.c/1.2.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
+/dir.c/1.20.2.1/Tue Feb 26 06:00:15 2002/-ko/Tlinux_2_4_20
+/inode.c/1.39.2.2/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
+/joliet.c/1.7/Sat Sep 22 12:49:36 2001/-ko/Tlinux_2_4_20
+/namei.c/1.14.2.1/Tue Feb 26 06:00:15 2002/-ko/Tlinux_2_4_20
+/rock.c/1.17.2.1/Tue Feb 26 06:00:15 2002/-ko/Tlinux_2_4_20
+/rock.h/1.2/Tue Nov  6 07:56:10 2001/-ko/Tlinux_2_4_20
+/util.c/1.7/Tue Nov  6 07:56:10 2001/-ko/Tlinux_2_4_20
+/zisofs.h/1.1/Tue Nov  6 07:56:10 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/isofs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/isofs/CVS/Repository
--- linux-2.4.20/fs/isofs/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/isofs/CVS/Repository	2005-01-06 23:06:00.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/isofs
diff -urNd -urNd linux-2.4.20/fs/isofs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/isofs/CVS/Root
--- linux-2.4.20/fs/isofs/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/isofs/CVS/Root	2005-01-06 23:06:00.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/isofs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/isofs/CVS/Tag
--- linux-2.4.20/fs/isofs/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/isofs/CVS/Tag	2005-01-06 23:06:01.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/isofs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/isofs/.cvsignore
--- linux-2.4.20/fs/isofs/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/isofs/.cvsignore	1998-03-17 16:14:05.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/jbd/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/jbd/CVS/Entries
--- linux-2.4.20/fs/jbd/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/jbd/CVS/Entries	2005-01-06 23:06:02.000000000 -0600
@@ -0,0 +1,9 @@
+/.cvsignore/1.1/Sun Dec  2 11:34:55 2001/-ko/Tlinux_2_4_20
+/Makefile/1.1/Sun Dec  2 11:34:55 2001/-ko/Tlinux_2_4_20
+/checkpoint.c/1.1.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/commit.c/1.1.2.4/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/journal.c/1.1.2.5/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/recovery.c/1.1.2.2/Tue Feb 26 06:00:16 2002/-ko/Tlinux_2_4_20
+/revoke.c/1.1.2.3/Wed Sep 11 12:45:24 2002/-ko/Tlinux_2_4_20
+/transaction.c/1.1.2.4/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/jbd/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/jbd/CVS/Repository
--- linux-2.4.20/fs/jbd/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/jbd/CVS/Repository	2005-01-06 23:06:01.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/jbd
diff -urNd -urNd linux-2.4.20/fs/jbd/CVS/Root linux-2.4.20-mipscvs-20050106/fs/jbd/CVS/Root
--- linux-2.4.20/fs/jbd/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/jbd/CVS/Root	2005-01-06 23:06:01.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/jbd/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/jbd/CVS/Tag
--- linux-2.4.20/fs/jbd/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/jbd/CVS/Tag	2005-01-06 23:06:02.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/jbd/.cvsignore linux-2.4.20-mipscvs-20050106/fs/jbd/.cvsignore
--- linux-2.4.20/fs/jbd/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/jbd/.cvsignore	2001-12-02 05:34:55.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/jffs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/jffs/CVS/Entries
--- linux-2.4.20/fs/jffs/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/jffs/CVS/Entries	2005-01-06 23:06:02.000000000 -0600
@@ -0,0 +1,10 @@
+/.cvsignore/1.1/Sat Jul  8 00:53:07 2000/-ko/Tlinux_2_4_20
+/Makefile/1.4/Mon Nov  5 20:16:18 2001/-ko/Tlinux_2_4_20
+/inode-v23.c/1.18/Mon Nov  5 20:16:18 2001/-ko/Tlinux_2_4_20
+/intrep.c/1.9/Mon Nov  5 20:16:18 2001/-ko/Tlinux_2_4_20
+/intrep.h/1.5/Mon Nov  5 20:16:18 2001/-ko/Tlinux_2_4_20
+/jffs_fm.c/1.10/Mon Nov  5 20:16:18 2001/-ko/Tlinux_2_4_20
+/jffs_fm.h/1.4/Mon Nov  5 20:16:18 2001/-ko/Tlinux_2_4_20
+/jffs_proc.c/1.1/Mon Nov  5 20:16:18 2001/-ko/Tlinux_2_4_20
+/jffs_proc.h/1.1/Mon Nov  5 20:16:18 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/jffs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/jffs/CVS/Repository
--- linux-2.4.20/fs/jffs/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/jffs/CVS/Repository	2005-01-06 23:06:02.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/jffs
diff -urNd -urNd linux-2.4.20/fs/jffs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/jffs/CVS/Root
--- linux-2.4.20/fs/jffs/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/jffs/CVS/Root	2005-01-06 23:06:02.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/jffs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/jffs/CVS/Tag
--- linux-2.4.20/fs/jffs/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/jffs/CVS/Tag	2005-01-06 23:06:02.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/jffs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/jffs/.cvsignore
--- linux-2.4.20/fs/jffs/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/jffs/.cvsignore	2000-07-07 19:53:07.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/jffs2/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/jffs2/CVS/Entries
--- linux-2.4.20/fs/jffs2/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/jffs2/CVS/Entries	2005-01-06 23:06:03.000000000 -0600
@@ -0,0 +1,33 @@
+/.cvsignore/1.1/Mon Nov  5 20:16:18 2001/-ko/Tlinux_2_4_20
+/Makefile/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/TODO/1.1/Fri Oct 19 01:24:56 2001/-ko/Tlinux_2_4_20
+/background.c/1.3/Tue Nov  6 07:56:10 2001/-ko/Tlinux_2_4_20
+/build.c/1.1.2.1/Wed Jun 26 22:36:20 2002/-ko/Tlinux_2_4_20
+/compr.c/1.2/Mon Nov  5 20:16:18 2001/-ko/Tlinux_2_4_20
+/compr_rtime.c/1.1/Fri Oct 19 01:24:56 2001/-ko/Tlinux_2_4_20
+/compr_rubin.c/1.2/Mon Nov  5 20:16:18 2001/-ko/Tlinux_2_4_20
+/compr_rubin.h/1.1/Fri Oct 19 01:24:56 2001/-ko/Tlinux_2_4_20
+/compr_zlib.c/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/comprtest.c/1.1/Fri Oct 19 01:24:56 2001/-ko/Tlinux_2_4_20
+/crc32.c/1.1/Fri Oct 19 01:24:56 2001/-ko/Tlinux_2_4_20
+/crc32.h/1.1/Fri Oct 19 01:24:56 2001/-ko/Tlinux_2_4_20
+/dir.c/1.1.2.4/Wed Sep 11 12:45:24 2002/-ko/Tlinux_2_4_20
+/erase.c/1.2.2.1/Wed Jun 26 22:36:20 2002/-ko/Tlinux_2_4_20
+/file.c/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/gc.c/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/histo.h/1.1/Fri Oct 19 01:24:56 2001/-ko/Tlinux_2_4_20
+/histo_mips.h/1.1/Fri Oct 19 01:24:56 2001/-ko/Tlinux_2_4_20
+/ioctl.c/1.1/Fri Oct 19 01:24:56 2001/-ko/Tlinux_2_4_20
+/malloc.c/1.1/Fri Oct 19 01:24:56 2001/-ko/Tlinux_2_4_20
+/nodelist.c/1.3.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/nodelist.h/1.2.2.3/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/nodemgmt.c/1.2.2.1/Wed Jun 26 22:36:20 2002/-ko/Tlinux_2_4_20
+/pushpull.c/1.2/Mon Nov  5 20:16:18 2001/-ko/Tlinux_2_4_20
+/pushpull.h/1.2/Mon Nov  5 20:16:19 2001/-ko/Tlinux_2_4_20
+/read.c/1.1.2.1/Wed Jun 26 22:36:20 2002/-ko/Tlinux_2_4_20
+/readinode.c/1.1.2.3/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/scan.c/1.2.2.2/Wed Sep 11 12:45:24 2002/-ko/Tlinux_2_4_20
+/super.c/1.2.2.3/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/symlink.c/1.1.2.1/Wed Jun 26 22:36:20 2002/-ko/Tlinux_2_4_20
+/write.c/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/jffs2/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/jffs2/CVS/Repository
--- linux-2.4.20/fs/jffs2/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/jffs2/CVS/Repository	2005-01-06 23:06:02.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/jffs2
diff -urNd -urNd linux-2.4.20/fs/jffs2/CVS/Root linux-2.4.20-mipscvs-20050106/fs/jffs2/CVS/Root
--- linux-2.4.20/fs/jffs2/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/jffs2/CVS/Root	2005-01-06 23:06:02.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/jffs2/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/jffs2/CVS/Tag
--- linux-2.4.20/fs/jffs2/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/jffs2/CVS/Tag	2005-01-06 23:06:03.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/jffs2/.cvsignore linux-2.4.20-mipscvs-20050106/fs/jffs2/.cvsignore
--- linux-2.4.20/fs/jffs2/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/jffs2/.cvsignore	2001-11-05 14:16:18.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/jfs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/jfs/CVS/Entries
--- linux-2.4.20/fs/jfs/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/jfs/CVS/Entries	2005-01-06 23:06:06.000000000 -0600
@@ -0,0 +1,44 @@
+/.cvsignore/1.1.2.1/Wed Sep 11 13:00:33 2002/-ko/Tlinux_2_4_20
+/Makefile/1.2.2.1/Wed Sep 11 12:45:24 2002/-ko/Tlinux_2_4_20
+/file.c/1.4.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/inode.c/1.5.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/jfs_btree.h/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/jfs_debug.c/1.2.2.1/Wed Sep 11 12:45:24 2002/-ko/Tlinux_2_4_20
+/jfs_debug.h/1.2.2.1/Wed Sep 11 12:45:24 2002/-ko/Tlinux_2_4_20
+/jfs_defragfs.h/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/jfs_dinode.h/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/jfs_dmap.c/1.3.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/jfs_dmap.h/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/jfs_dtree.c/1.5.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/jfs_dtree.h/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/jfs_extent.c/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/jfs_extent.h/1.2.2.1/Wed Sep 11 12:45:24 2002/-ko/Tlinux_2_4_20
+/jfs_filsys.h/1.2.2.1/Wed Sep 11 12:45:24 2002/-ko/Tlinux_2_4_20
+/jfs_imap.c/1.4.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/jfs_imap.h/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/jfs_incore.h/1.3.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/jfs_inode.c/1.2.2.1/Wed Sep 11 12:45:24 2002/-ko/Tlinux_2_4_20
+/jfs_inode.h/1.2.2.1/Wed Sep 11 12:45:24 2002/-ko/Tlinux_2_4_20
+/jfs_lock.h/1.2.2.1/Wed Sep 11 12:45:24 2002/-ko/Tlinux_2_4_20
+/jfs_logmgr.c/1.7.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/jfs_logmgr.h/1.5.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/jfs_metapage.c/1.5.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/jfs_metapage.h/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/jfs_mount.c/1.4.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/jfs_superblock.h/1.3.2.1/Wed Sep 11 12:45:24 2002/-ko/Tlinux_2_4_20
+/jfs_txnmgr.c/1.5.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/jfs_txnmgr.h/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/jfs_types.h/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/jfs_umount.c/1.3.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/jfs_unicode.c/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/jfs_unicode.h/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/jfs_uniupr.c/1.2.2.1/Wed Sep 11 12:45:24 2002/-ko/Tlinux_2_4_20
+/jfs_xattr.h/1.1.2.1/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
+/jfs_xtree.c/1.3.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/jfs_xtree.h/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/namei.c/1.4.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/resize.c/1.1.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/super.c/1.6.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/symlink.c/1.2.2.1/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
+/xattr.c/1.1.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/jfs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/jfs/CVS/Repository
--- linux-2.4.20/fs/jfs/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/jfs/CVS/Repository	2005-01-06 23:06:03.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/jfs
diff -urNd -urNd linux-2.4.20/fs/jfs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/jfs/CVS/Root
--- linux-2.4.20/fs/jfs/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/jfs/CVS/Root	2005-01-06 23:06:03.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/jfs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/jfs/CVS/Tag
--- linux-2.4.20/fs/jfs/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/jfs/CVS/Tag	2005-01-06 23:06:06.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/jfs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/jfs/.cvsignore
--- linux-2.4.20/fs/jfs/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/jfs/.cvsignore	2002-09-11 08:00:33.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/lockd/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/lockd/CVS/Entries
--- linux-2.4.20/fs/lockd/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/lockd/CVS/Entries	2005-01-06 23:06:07.000000000 -0600
@@ -0,0 +1,16 @@
+/.cvsignore/1.2/Tue Mar 17 22:14:07 1998/-ko/Tlinux_2_4_20
+/Makefile/1.3/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
+/clntlock.c/1.16/Mon Nov  5 20:16:19 2001/-ko/Tlinux_2_4_20
+/clntproc.c/1.22/Tue Nov  6 00:55:22 2001/-ko/Tlinux_2_4_20
+/host.c/1.10/Mon Nov  5 20:16:19 2001/-ko/Tlinux_2_4_20
+/lockd_syms.c/1.4/Mon Nov  5 20:16:19 2001/-ko/Tlinux_2_4_20
+/mon.c/1.9/Mon Nov  5 20:16:19 2001/-ko/Tlinux_2_4_20
+/svc.c/1.20/Tue Nov  6 00:55:22 2001/-ko/Tlinux_2_4_20
+/svc4proc.c/1.4.2.3/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
+/svclock.c/1.16/Tue Nov  6 00:55:22 2001/-ko/Tlinux_2_4_20
+/svcproc.c/1.10.2.3/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
+/svcshare.c/1.4/Fri Mar  9 20:34:37 2001/-ko/Tlinux_2_4_20
+/svcsubs.c/1.14/Mon Nov  5 20:16:19 2001/-ko/Tlinux_2_4_20
+/xdr.c/1.12.2.1/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
+/xdr4.c/1.7.2.1/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/lockd/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/lockd/CVS/Repository
--- linux-2.4.20/fs/lockd/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/lockd/CVS/Repository	2005-01-06 23:06:06.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/lockd
diff -urNd -urNd linux-2.4.20/fs/lockd/CVS/Root linux-2.4.20-mipscvs-20050106/fs/lockd/CVS/Root
--- linux-2.4.20/fs/lockd/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/lockd/CVS/Root	2005-01-06 23:06:06.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/lockd/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/lockd/CVS/Tag
--- linux-2.4.20/fs/lockd/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/lockd/CVS/Tag	2005-01-06 23:06:07.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/lockd/.cvsignore linux-2.4.20-mipscvs-20050106/fs/lockd/.cvsignore
--- linux-2.4.20/fs/lockd/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/lockd/.cvsignore	1998-03-17 16:14:07.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/minix/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/minix/CVS/Entries
--- linux-2.4.20/fs/minix/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/minix/CVS/Entries	2005-01-06 23:06:07.000000000 -0600
@@ -0,0 +1,11 @@
+/.cvsignore/1.2/Tue Mar 17 22:14:09 1998/-ko/Tlinux_2_4_20
+/Makefile/1.5/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
+/bitmap.c/1.21.2.1/Tue Feb 26 06:00:16 2002/-ko/Tlinux_2_4_20
+/dir.c/1.15.2.1/Tue Feb 26 06:00:16 2002/-ko/Tlinux_2_4_20
+/file.c/1.18/Sun Dec  2 11:34:55 2001/-ko/Tlinux_2_4_20
+/inode.c/1.33.2.1/Tue Feb 26 06:00:16 2002/-ko/Tlinux_2_4_20
+/itree_common.c/1.4.2.1/Tue Feb 26 06:00:16 2002/-ko/Tlinux_2_4_20
+/itree_v1.c/1.2/Fri Oct 19 01:24:56 2001/-ko/Tlinux_2_4_20
+/itree_v2.c/1.2/Fri Oct 19 01:24:56 2001/-ko/Tlinux_2_4_20
+/namei.c/1.24/Fri Oct 19 01:24:56 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/minix/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/minix/CVS/Repository
--- linux-2.4.20/fs/minix/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/minix/CVS/Repository	2005-01-06 23:06:07.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/minix
diff -urNd -urNd linux-2.4.20/fs/minix/CVS/Root linux-2.4.20-mipscvs-20050106/fs/minix/CVS/Root
--- linux-2.4.20/fs/minix/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/minix/CVS/Root	2005-01-06 23:06:07.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/minix/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/minix/CVS/Tag
--- linux-2.4.20/fs/minix/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/minix/CVS/Tag	2005-01-06 23:06:07.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/minix/.cvsignore linux-2.4.20-mipscvs-20050106/fs/minix/.cvsignore
--- linux-2.4.20/fs/minix/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/minix/.cvsignore	1998-03-17 16:14:09.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/msdos/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/msdos/CVS/Entries
--- linux-2.4.20/fs/msdos/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/msdos/CVS/Entries	2005-01-06 23:06:08.000000000 -0600
@@ -0,0 +1,5 @@
+/.cvsignore/1.2/Tue Mar 17 22:14:11 1998/-ko/Tlinux_2_4_20
+/Makefile/1.3/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
+/msdosfs_syms.c/1.7.4.1/Sat Dec 29 05:38:15 2001/-ko/Tlinux_2_4_20
+/namei.c/1.29.2.1/Wed Jun 26 22:36:20 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/msdos/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/msdos/CVS/Repository
--- linux-2.4.20/fs/msdos/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/msdos/CVS/Repository	2005-01-06 23:06:07.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/msdos
diff -urNd -urNd linux-2.4.20/fs/msdos/CVS/Root linux-2.4.20-mipscvs-20050106/fs/msdos/CVS/Root
--- linux-2.4.20/fs/msdos/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/msdos/CVS/Root	2005-01-06 23:06:07.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/msdos/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/msdos/CVS/Tag
--- linux-2.4.20/fs/msdos/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/msdos/CVS/Tag	2005-01-06 23:06:08.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/msdos/.cvsignore linux-2.4.20-mipscvs-20050106/fs/msdos/.cvsignore
--- linux-2.4.20/fs/msdos/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/msdos/.cvsignore	1998-03-17 16:14:11.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/ncpfs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/ncpfs/CVS/Entries
--- linux-2.4.20/fs/ncpfs/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/ncpfs/CVS/Entries	2005-01-06 23:06:08.000000000 -0600
@@ -0,0 +1,15 @@
+/.cvsignore/1.2/Tue Mar 17 22:14:13 1998/-ko/Tlinux_2_4_20
+/Config.in/1.8/Wed Jan 10 05:27:34 2001/-ko/Tlinux_2_4_20
+/Makefile/1.6/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
+/dir.c/1.35.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/file.c/1.25/Fri Oct 19 01:24:56 2001/-ko/Tlinux_2_4_20
+/inode.c/1.32.2.1/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
+/ioctl.c/1.20.2.1/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
+/mmap.c/1.23/Fri Oct 19 01:24:56 2001/-ko/Tlinux_2_4_20
+/ncplib_kernel.c/1.19.2.3/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/ncplib_kernel.h/1.14/Fri Mar  9 20:34:37 2001/-ko/Tlinux_2_4_20
+/ncpsign_kernel.c/1.4/Fri Oct 19 01:24:56 2001/-ko/Tlinux_2_4_20
+/ncpsign_kernel.h/1.2/Sat Dec  4 03:59:11 1999/-ko/Tlinux_2_4_20
+/sock.c/1.15/Wed Jan 31 22:22:34 2001/-ko/Tlinux_2_4_20
+/symlink.c/1.11/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/ncpfs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/ncpfs/CVS/Repository
--- linux-2.4.20/fs/ncpfs/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/ncpfs/CVS/Repository	2005-01-06 23:06:08.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/ncpfs
diff -urNd -urNd linux-2.4.20/fs/ncpfs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/ncpfs/CVS/Root
--- linux-2.4.20/fs/ncpfs/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/ncpfs/CVS/Root	2005-01-06 23:06:08.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/ncpfs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/ncpfs/CVS/Tag
--- linux-2.4.20/fs/ncpfs/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/ncpfs/CVS/Tag	2005-01-06 23:06:08.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/ncpfs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/ncpfs/.cvsignore
--- linux-2.4.20/fs/ncpfs/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/ncpfs/.cvsignore	1998-03-17 16:14:13.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/nfs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/nfs/CVS/Entries
--- linux-2.4.20/fs/nfs/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/nfs/CVS/Entries	2005-01-06 23:06:10.000000000 -0600
@@ -0,0 +1,18 @@
+/.cvsignore/1.2/Tue Mar 17 22:14:17 1998/-ko/Tlinux_2_4_20
+/Makefile/1.7/Sun Dec  2 11:34:55 2001/-ko/Tlinux_2_4_20
+/dir.c/1.41.2.3/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/file.c/1.34.2.1/Tue Feb 26 06:00:16 2002/-ko/Tlinux_2_4_20
+/flushd.c/1.11.2.2/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
+/inode.c/1.48.2.5/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
+/mount_clnt.c/1.5.4.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/nfs2xdr.c/1.13.2.3/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/nfs3proc.c/1.6.2.3/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
+/nfs3xdr.c/1.8.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/nfsroot.c/1.16.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/pagelist.c/1.1.2.3/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
+/proc.c/1.15.2.1/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
+/read.c/1.29.2.5/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/symlink.c/1.19.2.1/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
+/unlink.c/1.3.2.2/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
+/write.c/1.43.2.4/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/nfs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/nfs/CVS/Repository
--- linux-2.4.20/fs/nfs/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/nfs/CVS/Repository	2005-01-06 23:06:08.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/nfs
diff -urNd -urNd linux-2.4.20/fs/nfs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/nfs/CVS/Root
--- linux-2.4.20/fs/nfs/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/nfs/CVS/Root	2005-01-06 23:06:08.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/nfs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/nfs/CVS/Tag
--- linux-2.4.20/fs/nfs/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/nfs/CVS/Tag	2005-01-06 23:06:10.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/nfs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/nfs/.cvsignore
--- linux-2.4.20/fs/nfs/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/nfs/.cvsignore	1998-03-17 16:14:17.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/nfsd/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/nfsd/CVS/Entries
--- linux-2.4.20/fs/nfsd/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/nfsd/CVS/Entries	2005-01-06 23:06:11.000000000 -0600
@@ -0,0 +1,16 @@
+/.cvsignore/1.2/Tue Mar 17 22:14:22 1998/-ko/Tlinux_2_4_20
+/Makefile/1.5/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
+/auth.c/1.4/Thu Jul 27 23:20:04 2000/-ko/Tlinux_2_4_20
+/export.c/1.30.2.2/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
+/lockd.c/1.9/Fri Oct 19 01:24:57 2001/-ko/Tlinux_2_4_20
+/nfs3proc.c/1.12.2.2/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
+/nfs3xdr.c/1.19.2.1/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
+/nfscache.c/1.9.2.1/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
+/nfsctl.c/1.29.2.1/Wed Jun 26 22:36:21 2002/-ko/Tlinux_2_4_20
+/nfsfh.c/1.41.2.2/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
+/nfsproc.c/1.21.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/nfssvc.c/1.23.2.3/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
+/nfsxdr.c/1.12.2.1/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
+/stats.c/1.7/Fri Jul 21 22:01:00 2000/-ko/Tlinux_2_4_20
+/vfs.c/1.50.2.4/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/nfsd/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/nfsd/CVS/Repository
--- linux-2.4.20/fs/nfsd/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/nfsd/CVS/Repository	2005-01-06 23:06:10.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/nfsd
diff -urNd -urNd linux-2.4.20/fs/nfsd/CVS/Root linux-2.4.20-mipscvs-20050106/fs/nfsd/CVS/Root
--- linux-2.4.20/fs/nfsd/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/nfsd/CVS/Root	2005-01-06 23:06:10.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/nfsd/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/nfsd/CVS/Tag
--- linux-2.4.20/fs/nfsd/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/nfsd/CVS/Tag	2005-01-06 23:06:11.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/nfsd/.cvsignore linux-2.4.20-mipscvs-20050106/fs/nfsd/.cvsignore
--- linux-2.4.20/fs/nfsd/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/nfsd/.cvsignore	1998-03-17 16:14:22.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/nls/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/nls/CVS/Entries
--- linux-2.4.20/fs/nls/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/nls/CVS/Entries	2005-01-06 23:06:18.000000000 -0600
@@ -0,0 +1,50 @@
+/.cvsignore/1.2/Tue Mar 17 22:14:25 1998/-ko/Tlinux_2_4_20
+/Config.in/1.11.2.2/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
+/Makefile/1.8.2.1/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
+/nls_base.c/1.11.2.1/Wed Jun 26 22:36:21 2002/-ko/Tlinux_2_4_20
+/nls_big5.c/1.2.4.1/Sat Dec 29 05:38:16 2001/-ko/Tlinux_2_4_20
+/nls_cp1250.c/1.1.2.2/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
+/nls_cp1251.c/1.2.2.1/Sat Dec 29 05:38:16 2001/-ko/Tlinux_2_4_20
+/nls_cp1255.c/1.3.2.1/Sat Dec 29 05:38:16 2001/-ko/Tlinux_2_4_20
+/nls_cp437.c/1.7.2.1/Sat Dec 29 05:38:16 2001/-ko/Tlinux_2_4_20
+/nls_cp737.c/1.7.2.1/Sat Dec 29 05:38:16 2001/-ko/Tlinux_2_4_20
+/nls_cp775.c/1.7.2.1/Sat Dec 29 05:38:16 2001/-ko/Tlinux_2_4_20
+/nls_cp850.c/1.7.2.1/Sat Dec 29 05:38:16 2001/-ko/Tlinux_2_4_20
+/nls_cp852.c/1.7.2.1/Sat Dec 29 05:38:16 2001/-ko/Tlinux_2_4_20
+/nls_cp855.c/1.7.2.1/Sat Dec 29 05:38:16 2001/-ko/Tlinux_2_4_20
+/nls_cp857.c/1.7.2.1/Sat Dec 29 05:38:16 2001/-ko/Tlinux_2_4_20
+/nls_cp860.c/1.7.2.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
+/nls_cp861.c/1.7.2.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
+/nls_cp862.c/1.7.2.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
+/nls_cp863.c/1.7.2.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
+/nls_cp864.c/1.7.2.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
+/nls_cp865.c/1.7.2.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
+/nls_cp866.c/1.7.2.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
+/nls_cp869.c/1.7.2.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
+/nls_cp874.c/1.7.2.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
+/nls_cp932.c/1.3.2.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
+/nls_cp936.c/1.2.4.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
+/nls_cp949.c/1.2.4.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
+/nls_cp950.c/1.2.4.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
+/nls_euc-jp.c/1.3.2.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
+/nls_euc-kr.c/1.2.4.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
+/nls_gb2312.c/1.2.4.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
+/nls_iso8859-1.c/1.5.4.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
+/nls_iso8859-13.c/1.2.2.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
+/nls_iso8859-14.c/1.5.4.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
+/nls_iso8859-15.c/1.5.4.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
+/nls_iso8859-2.c/1.6.4.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
+/nls_iso8859-3.c/1.6.4.1/Sat Dec 29 05:38:18 2001/-ko/Tlinux_2_4_20
+/nls_iso8859-4.c/1.6.4.1/Sat Dec 29 05:38:18 2001/-ko/Tlinux_2_4_20
+/nls_iso8859-5.c/1.6.4.1/Sat Dec 29 05:38:18 2001/-ko/Tlinux_2_4_20
+/nls_iso8859-6.c/1.6.4.1/Sat Dec 29 05:38:18 2001/-ko/Tlinux_2_4_20
+/nls_iso8859-7.c/1.6.4.1/Sat Dec 29 05:38:18 2001/-ko/Tlinux_2_4_20
+/nls_iso8859-8.c/1.7.2.1/Sat Dec 29 05:38:18 2001/-ko/Tlinux_2_4_20
+/nls_iso8859-9.c/1.6.4.1/Sat Dec 29 05:38:18 2001/-ko/Tlinux_2_4_20
+/nls_koi8-r.c/1.6.4.1/Sat Dec 29 05:38:18 2001/-ko/Tlinux_2_4_20
+/nls_koi8-ru.c/1.1.2.2/Wed Jun 26 22:36:21 2002/-ko/Tlinux_2_4_20
+/nls_koi8-u.c/1.2.2.1/Sat Dec 29 05:38:18 2001/-ko/Tlinux_2_4_20
+/nls_sjis.c/1.2.4.1/Sat Dec 29 05:38:18 2001/-ko/Tlinux_2_4_20
+/nls_tis-620.c/1.1.2.1/Sat Dec 29 05:38:18 2001/-ko/Tlinux_2_4_20
+/nls_utf8.c/1.1.4.1/Sat Dec 29 05:38:18 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/nls/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/nls/CVS/Repository
--- linux-2.4.20/fs/nls/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/nls/CVS/Repository	2005-01-06 23:06:11.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/nls
diff -urNd -urNd linux-2.4.20/fs/nls/CVS/Root linux-2.4.20-mipscvs-20050106/fs/nls/CVS/Root
--- linux-2.4.20/fs/nls/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/nls/CVS/Root	2005-01-06 23:06:11.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/nls/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/nls/CVS/Tag
--- linux-2.4.20/fs/nls/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/nls/CVS/Tag	2005-01-06 23:06:18.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/nls/.cvsignore linux-2.4.20-mipscvs-20050106/fs/nls/.cvsignore
--- linux-2.4.20/fs/nls/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/nls/.cvsignore	1998-03-17 16:14:25.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/ntfs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/ntfs/CVS/Entries
--- linux-2.4.20/fs/ntfs/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/ntfs/CVS/Entries	2005-01-06 23:06:19.000000000 -0600
@@ -0,0 +1,24 @@
+/.cvsignore/1.1/Tue Mar 17 22:14:36 1998/-ko/Tlinux_2_4_20
+/Makefile/1.14.2.2/Tue Feb 26 06:00:17 2002/-ko/Tlinux_2_4_20
+/attr.c/1.9.2.1/Sat Dec 29 05:38:18 2001/-ko/Tlinux_2_4_20
+/attr.h/1.6/Fri Oct 19 01:24:57 2001/-ko/Tlinux_2_4_20
+/dir.c/1.11/Tue Nov  6 07:56:10 2001/-ko/Tlinux_2_4_20
+/dir.h/1.5/Thu Aug 23 22:24:44 2001/-ko/Tlinux_2_4_20
+/fs.c/1.41.2.3/Wed Jun 26 22:36:21 2002/-ko/Tlinux_2_4_20
+/inode.c/1.15.2.1/Sat Dec 29 05:38:18 2001/-ko/Tlinux_2_4_20
+/inode.h/1.6/Fri Oct 19 01:24:57 2001/-ko/Tlinux_2_4_20
+/macros.h/1.6/Fri Oct 19 01:24:57 2001/-ko/Tlinux_2_4_20
+/ntfsendian.h/1.4/Thu Aug 23 22:24:44 2001/-ko/Tlinux_2_4_20
+/ntfstypes.h/1.5/Thu Aug 23 22:24:44 2001/-ko/Tlinux_2_4_20
+/struct.h/1.5/Fri Oct 19 01:24:57 2001/-ko/Tlinux_2_4_20
+/super.c/1.12/Fri Oct 19 01:24:57 2001/-ko/Tlinux_2_4_20
+/super.h/1.7/Fri Oct 19 01:24:57 2001/-ko/Tlinux_2_4_20
+/support.c/1.10.2.2/Tue Feb 26 06:00:17 2002/-ko/Tlinux_2_4_20
+/support.h/1.5.2.1/Tue Feb 26 06:00:17 2002/-ko/Tlinux_2_4_20
+/sysctl.c/1.2/Thu Aug 23 22:24:44 2001/-ko/Tlinux_2_4_20
+/sysctl.h/1.4/Thu Aug 23 22:24:44 2001/-ko/Tlinux_2_4_20
+/unistr.c/1.3/Fri Oct 19 01:24:57 2001/-ko/Tlinux_2_4_20
+/unistr.h/1.2/Fri Oct 19 01:24:57 2001/-ko/Tlinux_2_4_20
+/util.c/1.8/Sat Sep 22 12:49:37 2001/-ko/Tlinux_2_4_20
+/util.h/1.6/Fri Oct 19 01:24:57 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/ntfs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/ntfs/CVS/Repository
--- linux-2.4.20/fs/ntfs/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/ntfs/CVS/Repository	2005-01-06 23:06:18.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/ntfs
diff -urNd -urNd linux-2.4.20/fs/ntfs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/ntfs/CVS/Root
--- linux-2.4.20/fs/ntfs/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/ntfs/CVS/Root	2005-01-06 23:06:18.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/ntfs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/ntfs/CVS/Tag
--- linux-2.4.20/fs/ntfs/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/ntfs/CVS/Tag	2005-01-06 23:06:19.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/ntfs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/ntfs/.cvsignore
--- linux-2.4.20/fs/ntfs/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/ntfs/.cvsignore	1998-03-17 16:14:36.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/openpromfs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/openpromfs/CVS/Entries
--- linux-2.4.20/fs/openpromfs/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/openpromfs/CVS/Entries	2005-01-06 23:06:20.000000000 -0600
@@ -0,0 +1,4 @@
+/.cvsignore/1.1/Sat Feb  5 06:47:36 2000/-ko/Tlinux_2_4_20
+/Makefile/1.2/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
+/inode.c/1.14.2.1/Sat Dec 29 05:38:18 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/openpromfs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/openpromfs/CVS/Repository
--- linux-2.4.20/fs/openpromfs/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/openpromfs/CVS/Repository	2005-01-06 23:06:19.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/openpromfs
diff -urNd -urNd linux-2.4.20/fs/openpromfs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/openpromfs/CVS/Root
--- linux-2.4.20/fs/openpromfs/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/openpromfs/CVS/Root	2005-01-06 23:06:19.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/openpromfs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/openpromfs/CVS/Tag
--- linux-2.4.20/fs/openpromfs/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/openpromfs/CVS/Tag	2005-01-06 23:06:20.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/openpromfs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/openpromfs/.cvsignore
--- linux-2.4.20/fs/openpromfs/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/openpromfs/.cvsignore	2000-02-05 00:47:36.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/partitions/check.c linux-2.4.20-mipscvs-20050106/fs/partitions/check.c
--- linux-2.4.20/fs/partitions/check.c	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/partitions/check.c	2002-09-11 07:45:26.000000000 -0500
@@ -43,6 +43,9 @@
 #ifdef CONFIG_ACORN_PARTITION
 	acorn_partition,
 #endif
+#ifdef CONFIG_SGI_PARTITION
+	sgi_partition,
+#endif
 #ifdef CONFIG_EFI_PARTITION
 	efi_partition,		/* this must come before msdos */
 #endif
@@ -67,9 +70,6 @@
 #ifdef CONFIG_MAC_PARTITION
 	mac_partition,
 #endif
-#ifdef CONFIG_SGI_PARTITION
-	sgi_partition,
-#endif
 #ifdef CONFIG_ULTRIX_PARTITION
 	ultrix_partition,
 #endif
diff -urNd -urNd linux-2.4.20/fs/partitions/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/partitions/CVS/Entries
--- linux-2.4.20/fs/partitions/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/partitions/CVS/Entries	2005-01-06 23:06:20.000000000 -0600
@@ -0,0 +1,30 @@
+/.cvsignore/1.1/Sat Oct  9 00:01:38 1999/-ko/Tlinux_2_4_20
+/Config.in/1.14.2.1/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
+/Makefile/1.7.2.2/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
+/acorn.c/1.10.2.1/Wed Jun 26 22:36:21 2002/-ko/Tlinux_2_4_20
+/acorn.h/1.4/Mon Nov  5 20:16:21 2001/-ko/Tlinux_2_4_20
+/amiga.c/1.3/Mon Nov  5 20:16:21 2001/-ko/Tlinux_2_4_20
+/amiga.h/1.2/Mon Nov  5 20:16:21 2001/-ko/Tlinux_2_4_20
+/atari.c/1.5/Mon Nov  5 20:16:21 2001/-ko/Tlinux_2_4_20
+/atari.h/1.2/Mon Nov  5 20:16:21 2001/-ko/Tlinux_2_4_20
+/check.c/1.27.2.3/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
+/check.h/1.3/Mon Nov  5 20:16:21 2001/-ko/Tlinux_2_4_20
+/efi.c/1.3.2.1/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
+/efi.h/1.1.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/ibm.c/1.7.2.1/Wed Jun 26 22:36:21 2002/-ko/Tlinux_2_4_20
+/ibm.h/1.3/Mon Nov  5 20:16:21 2001/-ko/Tlinux_2_4_20
+/ldm.c/1.4.2.2/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
+/ldm.h/1.4.2.1/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
+/mac.c/1.4.2.1/Wed Jun 26 22:36:21 2002/-ko/Tlinux_2_4_20
+/mac.h/1.2.2.1/Wed Jun 26 22:36:21 2002/-ko/Tlinux_2_4_20
+/msdos.c/1.17.2.3/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
+/msdos.h/1.2/Mon Nov  5 20:16:21 2001/-ko/Tlinux_2_4_20
+/osf.c/1.4/Mon Nov  5 20:16:21 2001/-ko/Tlinux_2_4_20
+/osf.h/1.2/Mon Nov  5 20:16:21 2001/-ko/Tlinux_2_4_20
+/sgi.c/1.5/Mon Nov  5 20:16:21 2001/-ko/Tlinux_2_4_20
+/sgi.h/1.2/Mon Nov  5 20:16:21 2001/-ko/Tlinux_2_4_20
+/sun.c/1.4.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/sun.h/1.2/Mon Nov  5 20:16:21 2001/-ko/Tlinux_2_4_20
+/ultrix.c/1.6/Mon Nov  5 20:16:21 2001/-ko/Tlinux_2_4_20
+/ultrix.h/1.4/Mon Nov  5 20:16:21 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/partitions/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/partitions/CVS/Repository
--- linux-2.4.20/fs/partitions/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/partitions/CVS/Repository	2005-01-06 23:06:20.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/partitions
diff -urNd -urNd linux-2.4.20/fs/partitions/CVS/Root linux-2.4.20-mipscvs-20050106/fs/partitions/CVS/Root
--- linux-2.4.20/fs/partitions/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/partitions/CVS/Root	2005-01-06 23:06:20.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/partitions/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/partitions/CVS/Tag
--- linux-2.4.20/fs/partitions/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/partitions/CVS/Tag	2005-01-06 23:06:20.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/partitions/.cvsignore linux-2.4.20-mipscvs-20050106/fs/partitions/.cvsignore
--- linux-2.4.20/fs/partitions/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/partitions/.cvsignore	1999-10-08 19:01:38.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/proc/array.c linux-2.4.20-mipscvs-20050106/fs/proc/array.c
--- linux-2.4.20/fs/proc/array.c	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/fs/proc/array.c	2002-06-26 17:36:21.000000000 -0500
@@ -361,15 +361,15 @@
 		task->cmin_flt,
 		task->maj_flt,
 		task->cmaj_flt,
-		task->times.tms_utime,
-		task->times.tms_stime,
-		task->times.tms_cutime,
-		task->times.tms_cstime,
+		hz_to_std(task->times.tms_utime),
+		hz_to_std(task->times.tms_stime),
+		hz_to_std(task->times.tms_cutime),
+		hz_to_std(task->times.tms_cstime),
 		priority,
 		nice,
 		0UL /* removed */,
 		task->it_real_value,
-		task->start_time,
+		hz_to_std(task->start_time),
 		vsize,
 		mm ? mm->rss : 0, /* you might want to shift this left 3 */
 		task->rlim[RLIMIT_RSS].rlim_cur,
@@ -685,14 +685,14 @@
 
 	len = sprintf(buffer,
 		"cpu  %lu %lu\n",
-		task->times.tms_utime,
-		task->times.tms_stime);
+		hz_to_std(task->times.tms_utime),
+		hz_to_std(task->times.tms_stime));
 		
 	for (i = 0 ; i < smp_num_cpus; i++)
 		len += sprintf(buffer + len, "cpu%d %lu %lu\n",
 			i,
-			task->per_cpu_utime[cpu_logical_map(i)],
-			task->per_cpu_stime[cpu_logical_map(i)]);
+			hz_to_std(task->per_cpu_utime[cpu_logical_map(i)]),
+			hz_to_std(task->per_cpu_stime[cpu_logical_map(i)]));
 
 	return len;
 }
diff -urNd -urNd linux-2.4.20/fs/proc/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/proc/CVS/Entries
--- linux-2.4.20/fs/proc/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/proc/CVS/Entries	2005-01-06 23:06:20.000000000 -0600
@@ -0,0 +1,14 @@
+/.cvsignore/1.2/Tue Mar 17 22:14:41 1998/-ko/Tlinux_2_4_20
+/Makefile/1.12/Thu Jun 14 04:24:17 2001/-ko/Tlinux_2_4_20
+/array.c/1.51.2.1/Wed Jun 26 22:36:21 2002/-ko/Tlinux_2_4_20
+/base.c/1.34.2.2/Wed Jun 26 22:36:21 2002/-ko/Tlinux_2_4_20
+/generic.c/1.29.2.1/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
+/inode-alloc.txt/1.3/Fri Feb  4 07:40:51 2000/-ko/Tlinux_2_4_20
+/inode.c/1.22/Sun Dec  2 11:34:55 2001/-ko/Tlinux_2_4_20
+/kcore.c/1.10.2.1/Wed Jun 26 22:36:21 2002/-ko/Tlinux_2_4_20
+/kmsg.c/1.14/Fri Oct 19 01:24:57 2001/-ko/Tlinux_2_4_20
+/proc_devtree.c/1.10/Thu Jun 15 01:56:03 2000/-ko/Tlinux_2_4_20
+/proc_misc.c/1.24.2.2/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
+/proc_tty.c/1.6/Fri Apr 28 01:09:51 2000/-ko/Tlinux_2_4_20
+/root.c/1.34.2.1/Wed Jun 26 22:36:21 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/proc/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/proc/CVS/Repository
--- linux-2.4.20/fs/proc/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/proc/CVS/Repository	2005-01-06 23:06:20.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/proc
diff -urNd -urNd linux-2.4.20/fs/proc/CVS/Root linux-2.4.20-mipscvs-20050106/fs/proc/CVS/Root
--- linux-2.4.20/fs/proc/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/proc/CVS/Root	2005-01-06 23:06:20.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/proc/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/proc/CVS/Tag
--- linux-2.4.20/fs/proc/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/proc/CVS/Tag	2005-01-06 23:06:20.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/proc/.cvsignore linux-2.4.20-mipscvs-20050106/fs/proc/.cvsignore
--- linux-2.4.20/fs/proc/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/proc/.cvsignore	1998-03-17 16:14:41.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/proc/proc_misc.c linux-2.4.20-mipscvs-20050106/fs/proc/proc_misc.c
--- linux-2.4.20/fs/proc/proc_misc.c	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/proc/proc_misc.c	2002-09-11 07:45:26.000000000 -0500
@@ -305,16 +305,16 @@
 {
 	int i, len = 0;
 	extern unsigned long total_forks;
-	unsigned long jif = jiffies;
+	unsigned long jif = hz_to_std(jiffies);
 	unsigned int sum = 0, user = 0, nice = 0, system = 0;
 	int major, disk;
 
 	for (i = 0 ; i < smp_num_cpus; i++) {
 		int cpu = cpu_logical_map(i), j;
 
-		user += kstat.per_cpu_user[cpu];
-		nice += kstat.per_cpu_nice[cpu];
-		system += kstat.per_cpu_system[cpu];
+		user += hz_to_std(kstat.per_cpu_user[cpu]);
+		nice += hz_to_std(kstat.per_cpu_nice[cpu]);
+		system += hz_to_std(kstat.per_cpu_system[cpu]);
 #if !defined(CONFIG_ARCH_S390)
 		for (j = 0 ; j < NR_IRQS ; j++)
 			sum += kstat.irqs[cpu][j];
@@ -328,10 +328,10 @@
 		proc_sprintf(page, &off, &len,
 			"cpu%d %u %u %u %lu\n",
 			i,
-			kstat.per_cpu_user[cpu_logical_map(i)],
-			kstat.per_cpu_nice[cpu_logical_map(i)],
-			kstat.per_cpu_system[cpu_logical_map(i)],
-			jif - (  kstat.per_cpu_user[cpu_logical_map(i)] \
+			hz_to_std(kstat.per_cpu_user[cpu_logical_map(i)]),
+			hz_to_std(kstat.per_cpu_nice[cpu_logical_map(i)]),
+			hz_to_std(kstat.per_cpu_system[cpu_logical_map(i)]),
+			jif - hz_to_std(  kstat.per_cpu_user[cpu_logical_map(i)] \
 				   + kstat.per_cpu_nice[cpu_logical_map(i)] \
 				   + kstat.per_cpu_system[cpu_logical_map(i)]));
 	proc_sprintf(page, &off, &len,
diff -urNd -urNd linux-2.4.20/fs/qnx4/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/qnx4/CVS/Entries
--- linux-2.4.20/fs/qnx4/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/qnx4/CVS/Entries	2005-01-06 23:06:21.000000000 -0600
@@ -0,0 +1,11 @@
+/.cvsignore/1.1/Sat Sep 19 19:18:41 1998/-ko/Tlinux_2_4_20
+/Makefile/1.3/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
+/README/1.4/Sat Sep 22 12:49:37 2001/-ko/Tlinux_2_4_20
+/bitmap.c/1.7.4.1/Tue Feb 26 06:00:18 2002/-ko/Tlinux_2_4_20
+/dir.c/1.10.4.1/Tue Feb 26 06:00:18 2002/-ko/Tlinux_2_4_20
+/file.c/1.9/Sat Sep 22 12:49:37 2001/-ko/Tlinux_2_4_20
+/fsync.c/1.6.4.1/Tue Feb 26 06:00:18 2002/-ko/Tlinux_2_4_20
+/inode.c/1.29.2.2/Wed Jun 26 22:36:22 2002/-ko/Tlinux_2_4_20
+/namei.c/1.11/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/truncate.c/1.2/Fri Mar  9 20:34:38 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/qnx4/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/qnx4/CVS/Repository
--- linux-2.4.20/fs/qnx4/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/qnx4/CVS/Repository	2005-01-06 23:06:20.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/qnx4
diff -urNd -urNd linux-2.4.20/fs/qnx4/CVS/Root linux-2.4.20-mipscvs-20050106/fs/qnx4/CVS/Root
--- linux-2.4.20/fs/qnx4/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/qnx4/CVS/Root	2005-01-06 23:06:20.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/qnx4/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/qnx4/CVS/Tag
--- linux-2.4.20/fs/qnx4/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/qnx4/CVS/Tag	2005-01-06 23:06:21.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/qnx4/.cvsignore linux-2.4.20-mipscvs-20050106/fs/qnx4/.cvsignore
--- linux-2.4.20/fs/qnx4/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/qnx4/.cvsignore	1998-09-19 14:18:41.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/ramfs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/ramfs/CVS/Entries
--- linux-2.4.20/fs/ramfs/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/ramfs/CVS/Entries	2005-01-06 23:06:21.000000000 -0600
@@ -0,0 +1,4 @@
+/.cvsignore/1.1/Wed Apr 19 04:00:18 2000/-ko/Tlinux_2_4_20
+/Makefile/1.2/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
+/inode.c/1.17.2.2/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/ramfs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/ramfs/CVS/Repository
--- linux-2.4.20/fs/ramfs/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/ramfs/CVS/Repository	2005-01-06 23:06:21.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/ramfs
diff -urNd -urNd linux-2.4.20/fs/ramfs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/ramfs/CVS/Root
--- linux-2.4.20/fs/ramfs/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/ramfs/CVS/Root	2005-01-06 23:06:21.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/ramfs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/ramfs/CVS/Tag
--- linux-2.4.20/fs/ramfs/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/ramfs/CVS/Tag	2005-01-06 23:06:21.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/ramfs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/ramfs/.cvsignore
--- linux-2.4.20/fs/ramfs/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/ramfs/.cvsignore	2000-04-18 23:00:18.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/reiserfs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/reiserfs/CVS/Entries
--- linux-2.4.20/fs/reiserfs/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/reiserfs/CVS/Entries	2005-01-06 23:06:24.000000000 -0600
@@ -0,0 +1,26 @@
+/.cvsignore/1.1/Wed Jan 31 22:22:34 2001/-ko/Tlinux_2_4_20
+/Makefile/1.3.2.1/Tue Feb 26 06:00:18 2002/-ko/Tlinux_2_4_20
+/README/1.2/Tue Nov  6 00:55:23 2001/-ko/Tlinux_2_4_20
+/bitmap.c/1.6.2.4/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/buffer2.c/1.5.2.2/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
+/dir.c/1.8.2.3/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
+/do_balan.c/1.7.2.3/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/file.c/1.4.2.4/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/fix_node.c/1.9.2.4/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
+/hashes.c/1.3.2.1/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
+/ibalance.c/1.6.2.1/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
+/inode.c/1.9.2.5/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/ioctl.c/1.3.2.3/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
+/item_ops.c/1.4.2.2/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
+/journal.c/1.9.2.4/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
+/lbalance.c/1.5.2.2/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+/namei.c/1.10.2.4/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+/objectid.c/1.7.2.3/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+/prints.c/1.7.2.3/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+/procfs.c/1.1.2.4/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+/resize.c/1.2.2.3/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+/stree.c/1.10.2.4/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+/super.c/1.8.2.5/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/tail_conversion.c/1.8.2.4/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/version.c/1.1.2.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/reiserfs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/reiserfs/CVS/Repository
--- linux-2.4.20/fs/reiserfs/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/reiserfs/CVS/Repository	2005-01-06 23:06:21.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/reiserfs
diff -urNd -urNd linux-2.4.20/fs/reiserfs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/reiserfs/CVS/Root
--- linux-2.4.20/fs/reiserfs/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/reiserfs/CVS/Root	2005-01-06 23:06:21.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/reiserfs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/reiserfs/CVS/Tag
--- linux-2.4.20/fs/reiserfs/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/reiserfs/CVS/Tag	2005-01-06 23:06:24.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/reiserfs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/reiserfs/.cvsignore
--- linux-2.4.20/fs/reiserfs/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/reiserfs/.cvsignore	2001-01-31 16:22:34.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/romfs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/romfs/CVS/Entries
--- linux-2.4.20/fs/romfs/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/romfs/CVS/Entries	2005-01-06 23:06:24.000000000 -0600
@@ -0,0 +1,4 @@
+/.cvsignore/1.2/Tue Mar 17 22:14:45 1998/-ko/Tlinux_2_4_20
+/Makefile/1.3/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
+/inode.c/1.35.2.1/Tue Feb 26 06:00:19 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/romfs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/romfs/CVS/Repository
--- linux-2.4.20/fs/romfs/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/romfs/CVS/Repository	2005-01-06 23:06:24.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/romfs
diff -urNd -urNd linux-2.4.20/fs/romfs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/romfs/CVS/Root
--- linux-2.4.20/fs/romfs/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/romfs/CVS/Root	2005-01-06 23:06:24.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/romfs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/romfs/CVS/Tag
--- linux-2.4.20/fs/romfs/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/romfs/CVS/Tag	2005-01-06 23:06:24.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/romfs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/romfs/.cvsignore
--- linux-2.4.20/fs/romfs/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/romfs/.cvsignore	1998-03-17 16:14:45.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/smbfs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/smbfs/CVS/Entries
--- linux-2.4.20/fs/smbfs/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/smbfs/CVS/Entries	2005-01-06 23:06:25.000000000 -0600
@@ -0,0 +1,15 @@
+/.cvsignore/1.2/Tue Mar 17 22:14:46 1998/-ko/Tlinux_2_4_20
+/ChangeLog/1.8.2.1/Tue Feb 26 06:00:19 2002/-ko/Tlinux_2_4_20
+/Makefile/1.8/Mon Nov  5 20:16:23 2001/-ko/Tlinux_2_4_20
+/cache.c/1.12.2.1/Wed Jun 26 22:36:22 2002/-ko/Tlinux_2_4_20
+/dir.c/1.28/Mon Nov  5 20:16:23 2001/-ko/Tlinux_2_4_20
+/file.c/1.38.2.1/Tue Feb 26 06:00:19 2002/-ko/Tlinux_2_4_20
+/getopt.c/1.2.2.1/Tue Feb 26 06:00:19 2002/-ko/Tlinux_2_4_20
+/getopt.h/1.1.4.1/Tue Feb 26 06:00:19 2002/-ko/Tlinux_2_4_20
+/inode.c/1.37.2.2/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+/ioctl.c/1.9/Mon Nov  5 20:16:23 2001/-ko/Tlinux_2_4_20
+/proc.c/1.22.2.3/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+/proto.h/1.1/Mon Nov  5 20:16:23 2001/-ko/Tlinux_2_4_20
+/smb_debug.h/1.2.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/sock.c/1.15.2.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/smbfs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/smbfs/CVS/Repository
--- linux-2.4.20/fs/smbfs/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/smbfs/CVS/Repository	2005-01-06 23:06:24.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/smbfs
diff -urNd -urNd linux-2.4.20/fs/smbfs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/smbfs/CVS/Root
--- linux-2.4.20/fs/smbfs/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/smbfs/CVS/Root	2005-01-06 23:06:24.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/smbfs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/smbfs/CVS/Tag
--- linux-2.4.20/fs/smbfs/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/smbfs/CVS/Tag	2005-01-06 23:06:25.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/smbfs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/smbfs/.cvsignore
--- linux-2.4.20/fs/smbfs/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/smbfs/.cvsignore	1998-03-17 16:14:46.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/stat.c linux-2.4.20-mipscvs-20050106/fs/stat.c
--- linux-2.4.20/fs/stat.c	2001-09-13 18:04:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/fs/stat.c	2002-11-21 06:38:52.000000000 -0600
@@ -26,7 +26,7 @@
 }
 
 
-#if !defined(__alpha__) && !defined(__sparc__) && !defined(__ia64__) && !defined(CONFIG_ARCH_S390) && !defined(__hppa__) && !defined(__x86_64__)
+#if defined(__i386__) || defined(__m68k__) || defined(__ppc__) || defined(__sh__)
 
 /*
  * For backward compatibility?  Maybe this should be moved
@@ -127,7 +127,7 @@
 }
 
 
-#if !defined(__alpha__) && !defined(__sparc__) && !defined(__ia64__) && !defined(CONFIG_ARCH_S390) && !defined(__hppa__) && !defined(__x86_64__)
+#if defined(__i386__) || defined(__m68k__) || defined(__ppc__) || defined(__sh__)
 /*
  * For backward compatibility?  Maybe this should be moved
  * into arch/i386 instead?
@@ -163,7 +163,7 @@
 	return error;
 }
 
-#if !defined(__alpha__) && !defined(__sparc__) && !defined(__ia64__) && !defined(CONFIG_ARCH_S390) && !defined(__hppa__) && !defined(__x86_64__)
+#if defined(__i386__) || defined(__m68k__) || defined(__ppc__) || defined(__sh__)
 
 /*
  * For backward compatibility?  Maybe this should be moved
@@ -201,7 +201,7 @@
 	return error;
 }
 
-#if !defined(__alpha__) && !defined(__sparc__) && !defined(__ia64__) && !defined(CONFIG_ARCH_S390) && !defined(__hppa__) && !defined(__x86_64__)
+#if defined(__i386__) || defined(__m68k__) || defined(__ppc__) || defined(__sh__)
 
 /*
  * For backward compatibility?  Maybe this should be moved
diff -urNd -urNd linux-2.4.20/fs/sysv/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/sysv/CVS/Entries
--- linux-2.4.20/fs/sysv/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/sysv/CVS/Entries	2005-01-06 23:06:26.000000000 -0600
@@ -0,0 +1,15 @@
+/.cvsignore/1.2/Tue Mar 17 22:14:49 1998/-ko/Tlinux_2_4_20
+/CHANGES/1.5/Thu Jun 17 13:30:16 1999/-ko/Tlinux_2_4_20
+/ChangeLog/1.1.2.2/Tue Feb 26 06:00:19 2002/-ko/Tlinux_2_4_20
+/INTRO/1.2/Tue Mar 17 22:14:50 1998/-ko/Tlinux_2_4_20
+/Makefile/1.6/Fri Oct 19 01:24:58 2001/-ko/Tlinux_2_4_20
+/balloc.c/1.6.2.1/Tue Feb 26 06:00:19 2002/-ko/Tlinux_2_4_20
+/dir.c/1.16.2.1/Tue Feb 26 06:00:19 2002/-ko/Tlinux_2_4_20
+/file.c/1.16/Sun Dec  2 11:34:56 2001/-ko/Tlinux_2_4_20
+/ialloc.c/1.15.2.1/Tue Feb 26 06:00:19 2002/-ko/Tlinux_2_4_20
+/inode.c/1.36.2.1/Sat Dec 29 05:38:20 2001/-ko/Tlinux_2_4_20
+/itree.c/1.1.2.1/Tue Feb 26 06:00:19 2002/-ko/Tlinux_2_4_20
+/namei.c/1.24/Sun Dec  2 11:34:56 2001/-ko/Tlinux_2_4_20
+/super.c/1.4.2.2/Tue Feb 26 06:00:19 2002/-ko/Tlinux_2_4_20
+/symlink.c/1.9.2.1/Tue Feb 26 06:00:19 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/sysv/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/sysv/CVS/Repository
--- linux-2.4.20/fs/sysv/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/sysv/CVS/Repository	2005-01-06 23:06:25.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/sysv
diff -urNd -urNd linux-2.4.20/fs/sysv/CVS/Root linux-2.4.20-mipscvs-20050106/fs/sysv/CVS/Root
--- linux-2.4.20/fs/sysv/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/sysv/CVS/Root	2005-01-06 23:06:25.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/sysv/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/sysv/CVS/Tag
--- linux-2.4.20/fs/sysv/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/sysv/CVS/Tag	2005-01-06 23:06:26.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/sysv/.cvsignore linux-2.4.20-mipscvs-20050106/fs/sysv/.cvsignore
--- linux-2.4.20/fs/sysv/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/sysv/.cvsignore	1998-03-17 16:14:49.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/udf/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/udf/CVS/Entries
--- linux-2.4.20/fs/udf/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/udf/CVS/Entries	2005-01-06 23:06:27.000000000 -0600
@@ -0,0 +1,26 @@
+/.cvsignore/1.1/Sat Oct  9 00:01:39 1999/-ko/Tlinux_2_4_20
+/Makefile/1.3/Wed Aug 22 03:25:00 2001/-ko/Tlinux_2_4_20
+/balloc.c/1.10.2.2/Wed Jun 26 22:36:22 2002/-ko/Tlinux_2_4_20
+/crc.c/1.2.2.1/Wed Jun 26 22:36:22 2002/-ko/Tlinux_2_4_20
+/dir.c/1.13.2.2/Wed Jun 26 22:36:22 2002/-ko/Tlinux_2_4_20
+/directory.c/1.6.2.2/Wed Jun 26 22:36:22 2002/-ko/Tlinux_2_4_20
+/ecma_167.h/1.1.2.1/Wed Jun 26 22:36:22 2002/-ko/Tlinux_2_4_20
+/file.c/1.22.2.2/Wed Jun 26 22:36:22 2002/-ko/Tlinux_2_4_20
+/fsync.c/1.8.2.1/Wed Jun 26 22:36:22 2002/-ko/Tlinux_2_4_20
+/ialloc.c/1.10.2.1/Wed Jun 26 22:36:22 2002/-ko/Tlinux_2_4_20
+/inode.c/1.24.2.2/Wed Jun 26 22:36:22 2002/-ko/Tlinux_2_4_20
+/lowlevel.c/1.9.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
+/misc.c/1.7.2.2/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
+/namei.c/1.17.2.2/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
+/osta_udf.h/1.1.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
+/partition.c/1.6.2.2/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
+/super.c/1.20.2.2/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
+/symlink.c/1.11.2.2/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
+/truncate.c/1.9.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
+/udf_i.h/1.4.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
+/udf_sb.h/1.6.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
+/udfdecl.h/1.16.2.2/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
+/udfend.h/1.4.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
+/udftime.c/1.5.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
+/unicode.c/1.5.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/udf/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/udf/CVS/Repository
--- linux-2.4.20/fs/udf/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/udf/CVS/Repository	2005-01-06 23:06:26.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/udf
diff -urNd -urNd linux-2.4.20/fs/udf/CVS/Root linux-2.4.20-mipscvs-20050106/fs/udf/CVS/Root
--- linux-2.4.20/fs/udf/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/udf/CVS/Root	2005-01-06 23:06:26.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/udf/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/udf/CVS/Tag
--- linux-2.4.20/fs/udf/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/udf/CVS/Tag	2005-01-06 23:06:27.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/udf/.cvsignore linux-2.4.20-mipscvs-20050106/fs/udf/.cvsignore
--- linux-2.4.20/fs/udf/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/udf/.cvsignore	1999-10-08 19:01:39.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/ufs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/ufs/CVS/Entries
--- linux-2.4.20/fs/ufs/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/ufs/CVS/Entries	2005-01-06 23:06:28.000000000 -0600
@@ -0,0 +1,16 @@
+/.cvsignore/1.2/Tue Mar 17 22:14:52 1998/-ko/Tlinux_2_4_20
+/Makefile/1.5/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
+/balloc.c/1.11.2.1/Tue Feb 26 06:00:20 2002/-ko/Tlinux_2_4_20
+/cylinder.c/1.5.2.1/Tue Feb 26 06:00:20 2002/-ko/Tlinux_2_4_20
+/dir.c/1.16.2.1/Tue Feb 26 06:00:20 2002/-ko/Tlinux_2_4_20
+/file.c/1.10.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
+/ialloc.c/1.12/Sun Dec  2 11:34:56 2001/-ko/Tlinux_2_4_20
+/inode.c/1.24.2.1/Tue Feb 26 06:00:22 2002/-ko/Tlinux_2_4_20
+/namei.c/1.15/Tue Nov  6 00:55:24 2001/-ko/Tlinux_2_4_20
+/super.c/1.23.2.2/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
+/swab.h/1.3.2.1/Tue Feb 26 06:00:22 2002/-ko/Tlinux_2_4_20
+/symlink.c/1.8/Wed Apr 19 04:00:19 2000/-ko/Tlinux_2_4_20
+/truncate.c/1.12.2.2/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+/util.c/1.9.2.1/Tue Feb 26 06:00:22 2002/-ko/Tlinux_2_4_20
+/util.h/1.9.2.1/Tue Feb 26 06:00:23 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/ufs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/ufs/CVS/Repository
--- linux-2.4.20/fs/ufs/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/ufs/CVS/Repository	2005-01-06 23:06:27.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/ufs
diff -urNd -urNd linux-2.4.20/fs/ufs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/ufs/CVS/Root
--- linux-2.4.20/fs/ufs/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/ufs/CVS/Root	2005-01-06 23:06:27.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/ufs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/ufs/CVS/Tag
--- linux-2.4.20/fs/ufs/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/ufs/CVS/Tag	2005-01-06 23:06:28.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/ufs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/ufs/.cvsignore
--- linux-2.4.20/fs/ufs/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/ufs/.cvsignore	1998-03-17 16:14:52.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/umsdos/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/umsdos/CVS/Entries
--- linux-2.4.20/fs/umsdos/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/umsdos/CVS/Entries	2005-01-06 23:06:29.000000000 -0600
@@ -0,0 +1,13 @@
+/.cvsignore/1.2/Tue Mar 17 22:14:55 1998/-ko/Tlinux_2_4_20
+/Makefile/1.7/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
+/README-WIP.txt/1.9/Fri Oct 19 01:24:58 2001/-ko/Tlinux_2_4_20
+/dir.c/1.27/Fri Oct 19 01:24:58 2001/-ko/Tlinux_2_4_20
+/emd.c/1.20/Fri Oct 19 01:24:58 2001/-ko/Tlinux_2_4_20
+/inode.c/1.30/Mon Nov  5 20:16:24 2001/-ko/Tlinux_2_4_20
+/ioctl.c/1.14/Fri Oct 19 01:24:58 2001/-ko/Tlinux_2_4_20
+/mangle.c/1.7/Thu Jan 11 04:02:44 2001/-ko/Tlinux_2_4_20
+/namei.c/1.21/Fri Oct 19 01:24:58 2001/-ko/Tlinux_2_4_20
+/notes/1.1.1.1/Sun Jun  1 03:16:22 1997/-ko/Tlinux_2_4_20
+/rdir.c/1.18/Fri Oct 19 01:24:58 2001/-ko/Tlinux_2_4_20
+/specs/1.2/Mon Jan  4 16:09:02 1999/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/umsdos/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/umsdos/CVS/Repository
--- linux-2.4.20/fs/umsdos/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/umsdos/CVS/Repository	2005-01-06 23:06:28.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/umsdos
diff -urNd -urNd linux-2.4.20/fs/umsdos/CVS/Root linux-2.4.20-mipscvs-20050106/fs/umsdos/CVS/Root
--- linux-2.4.20/fs/umsdos/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/umsdos/CVS/Root	2005-01-06 23:06:28.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/umsdos/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/umsdos/CVS/Tag
--- linux-2.4.20/fs/umsdos/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/umsdos/CVS/Tag	2005-01-06 23:06:29.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/umsdos/.cvsignore linux-2.4.20-mipscvs-20050106/fs/umsdos/.cvsignore
--- linux-2.4.20/fs/umsdos/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/umsdos/.cvsignore	1998-03-17 16:14:55.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/fs/vfat/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/vfat/CVS/Entries
--- linux-2.4.20/fs/vfat/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/vfat/CVS/Entries	2005-01-06 23:06:29.000000000 -0600
@@ -0,0 +1,5 @@
+/.cvsignore/1.2/Tue Mar 17 22:14:59 1998/-ko/Tlinux_2_4_20
+/Makefile/1.3/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
+/namei.c/1.35.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
+/vfatfs_syms.c/1.5.2.1/Sat Dec 29 05:38:20 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/fs/vfat/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/vfat/CVS/Repository
--- linux-2.4.20/fs/vfat/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/vfat/CVS/Repository	2005-01-06 23:06:29.000000000 -0600
@@ -0,0 +1 @@
+linux/fs/vfat
diff -urNd -urNd linux-2.4.20/fs/vfat/CVS/Root linux-2.4.20-mipscvs-20050106/fs/vfat/CVS/Root
--- linux-2.4.20/fs/vfat/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/vfat/CVS/Root	2005-01-06 23:06:29.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/fs/vfat/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/vfat/CVS/Tag
--- linux-2.4.20/fs/vfat/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/vfat/CVS/Tag	2005-01-06 23:06:29.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/fs/vfat/.cvsignore linux-2.4.20-mipscvs-20050106/fs/vfat/.cvsignore
--- linux-2.4.20/fs/vfat/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/fs/vfat/.cvsignore	1998-03-17 16:14:59.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/include/asm-alpha/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-alpha/CVS/Entries
--- linux-2.4.20/include/asm-alpha/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-alpha/CVS/Entries	2005-01-06 23:06:32.000000000 -0600
@@ -0,0 +1,103 @@
+/a.out.h/1.3.2.1/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
+/asm_offsets.h/1.2/Mon Jan  4 16:09:04 1999/-ko/Tlinux_2_4_20
+/atomic.h/1.8/Thu Aug 23 22:24:46 2001/-ko/Tlinux_2_4_20
+/bitops.h/1.14/Tue Nov  6 00:55:25 2001/-ko/Tlinux_2_4_20
+/bugs.h/1.1.1.1/Sun Jun  1 03:16:59 1997/-ko/Tlinux_2_4_20
+/byteorder.h/1.6/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/cache.h/1.9/Mon Nov  5 20:16:24 2001/-ko/Tlinux_2_4_20
+/checksum.h/1.3/Fri Feb 18 22:06:19 2000/-ko/Tlinux_2_4_20
+/compiler.h/1.7/Mon Nov  5 20:16:24 2001/-ko/Tlinux_2_4_20
+/console.h/1.5/Sat Sep 22 12:49:37 2001/-ko/Tlinux_2_4_20
+/core_apecs.h/1.8/Sun Dec  2 11:34:56 2001/-ko/Tlinux_2_4_20
+/core_cia.h/1.9/Sun Dec  2 11:34:56 2001/-ko/Tlinux_2_4_20
+/core_irongate.h/1.7/Sun Dec  2 11:34:56 2001/-ko/Tlinux_2_4_20
+/core_lca.h/1.7/Sun Dec  2 11:34:56 2001/-ko/Tlinux_2_4_20
+/core_mcpcia.h/1.10/Sun Dec  2 11:34:56 2001/-ko/Tlinux_2_4_20
+/core_polaris.h/1.6/Sun Dec  2 11:34:56 2001/-ko/Tlinux_2_4_20
+/core_t2.h/1.7/Sun Dec  2 11:34:56 2001/-ko/Tlinux_2_4_20
+/core_titan.h/1.4/Sun Dec  2 11:34:56 2001/-ko/Tlinux_2_4_20
+/core_tsunami.h/1.12.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
+/core_wildfire.h/1.3.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
+/current.h/1.1.1.1/Sun Jun  1 03:16:58 1997/-ko/Tlinux_2_4_20
+/delay.h/1.9/Wed Aug 22 03:25:00 2001/-ko/Tlinux_2_4_20
+/div64.h/1.2/Fri Feb  4 07:40:52 2000/-ko/Tlinux_2_4_20
+/dma.h/1.9/Fri Feb  4 07:40:52 2000/-ko/Tlinux_2_4_20
+/elf.h/1.8/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/errno.h/1.3/Fri Mar  9 20:34:39 2001/-ko/Tlinux_2_4_20
+/fcntl.h/1.9/Fri Oct 19 01:24:59 2001/-ko/Tlinux_2_4_20
+/floppy.h/1.10.2.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+/fpu.h/1.9/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/gentrap.h/1.1.1.1/Sun Jun  1 03:16:58 1997/-ko/Tlinux_2_4_20
+/hardirq.h/1.15/Thu Aug 23 22:24:46 2001/-ko/Tlinux_2_4_20
+/hdreg.h/1.1/Thu Jun 17 14:08:57 1999/-ko/Tlinux_2_4_20
+/hw_irq.h/1.4/Fri Oct 19 01:24:59 2001/-ko/Tlinux_2_4_20
+/hwrpb.h/1.10/Tue Nov  6 07:56:11 2001/-ko/Tlinux_2_4_20
+/ide.h/1.6.4.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
+/init.h/1.7/Sat Oct  9 00:01:40 1999/-ko/Tlinux_2_4_20
+/io.h/1.21.2.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+/ioctl.h/1.1.1.1/Sun Jun  1 03:16:58 1997/-ko/Tlinux_2_4_20
+/ioctls.h/1.6.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/ipcbuf.h/1.1/Wed Feb 16 01:07:47 2000/-ko/Tlinux_2_4_20
+/irq.h/1.9/Sat Sep 22 12:49:37 2001/-ko/Tlinux_2_4_20
+/jensen.h/1.7.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
+/keyboard.h/1.13.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
+/linux_logo.h/1.3/Wed Aug 22 03:25:00 2001/-ko/Tlinux_2_4_20
+/machvec.h/1.14/Sun Dec  2 11:34:56 2001/-ko/Tlinux_2_4_20
+/mc146818rtc.h/1.3/Mon Nov  5 20:16:24 2001/-ko/Tlinux_2_4_20
+/md.h/1.1/Tue Aug 25 09:21:01 1998/-ko/Tlinux_2_4_20
+/mman.h/1.3/Thu Mar 23 02:25:59 2000/-ko/Tlinux_2_4_20
+/mmu.h/1.1/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
+/mmu_context.h/1.15/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
+/mmzone.h/1.1/Thu Jun 14 04:24:18 2001/-ko/Tlinux_2_4_20
+/module.h/1.3/Thu Sep  6 13:22:25 2001/-ko/Tlinux_2_4_20
+/msgbuf.h/1.1/Wed Feb 16 01:07:47 2000/-ko/Tlinux_2_4_20
+/namei.h/1.5/Wed Apr 19 04:00:19 2000/-ko/Tlinux_2_4_20
+/page.h/1.12.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
+/pal.h/1.2/Tue Mar 17 22:15:07 1998/-ko/Tlinux_2_4_20
+/param.h/1.6/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
+/parport.h/1.4/Sun Mar 19 01:28:58 2000/-ko/Tlinux_2_4_20
+/pci.h/1.17.2.1/Tue Feb 26 06:00:23 2002/-ko/Tlinux_2_4_20
+/pgalloc.h/1.11.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
+/pgtable.h/1.26.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
+/poll.h/1.1.1.1/Sun Jun  1 03:16:59 1997/-ko/Tlinux_2_4_20
+/posix_types.h/1.6/Wed Feb 16 01:07:47 2000/-ko/Tlinux_2_4_20
+/processor.h/1.20/Mon Nov  5 20:16:24 2001/-ko/Tlinux_2_4_20
+/ptrace.h/1.2/Sat Oct  9 00:01:40 1999/-ko/Tlinux_2_4_20
+/reg.h/1.1.1.1/Sun Jun  1 03:16:58 1997/-ko/Tlinux_2_4_20
+/resource.h/1.4/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/rwsem.h/1.2.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/scatterlist.h/1.3/Tue Nov  6 00:55:25 2001/-ko/Tlinux_2_4_20
+/segment.h/1.1.1.1/Sun Jun  1 03:16:58 1997/-ko/Tlinux_2_4_20
+/semaphore.h/1.12.2.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+/sembuf.h/1.1/Wed Feb 16 01:07:47 2000/-ko/Tlinux_2_4_20
+/serial.h/1.3/Sat Oct  9 00:01:40 1999/-ko/Tlinux_2_4_20
+/sfp-machine.h/1.2/Mon Mar 27 23:54:40 2000/-ko/Tlinux_2_4_20
+/shmbuf.h/1.1/Wed Feb 16 01:07:47 2000/-ko/Tlinux_2_4_20
+/shmparam.h/1.2/Sat Jan 29 01:42:26 2000/-ko/Tlinux_2_4_20
+/sigcontext.h/1.2/Tue Dec 16 05:36:29 1997/-ko/Tlinux_2_4_20
+/siginfo.h/1.6.4.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
+/signal.h/1.4/Tue Aug 25 09:21:04 1998/-ko/Tlinux_2_4_20
+/smp.h/1.20/Fri Oct 19 01:24:59 2001/-ko/Tlinux_2_4_20
+/smplock.h/1.4/Mon Mar 27 23:54:40 2000/-ko/Tlinux_2_4_20
+/socket.h/1.9.2.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+/sockios.h/1.1.1.1/Sun Jun  1 03:16:59 1997/-ko/Tlinux_2_4_20
+/softirq.h/1.16/Fri Oct 19 01:24:59 2001/-ko/Tlinux_2_4_20
+/spinlock.h/1.13/Sun Dec  2 11:34:56 2001/-ko/Tlinux_2_4_20
+/stat.h/1.1.1.1/Sun Jun  1 03:16:58 1997/-ko/Tlinux_2_4_20
+/statfs.h/1.1.1.1/Sun Jun  1 03:16:58 1997/-ko/Tlinux_2_4_20
+/string.h/1.9/Thu Nov 23 02:00:55 2000/-ko/Tlinux_2_4_20
+/sysinfo.h/1.2/Sun Jun 13 16:35:09 1999/-ko/Tlinux_2_4_20
+/system.h/1.23/Mon Nov  5 20:16:24 2001/-ko/Tlinux_2_4_20
+/termbits.h/1.2/Mon Feb 15 02:21:15 1999/-ko/Tlinux_2_4_20
+/termios.h/1.9/Wed Aug 22 03:25:00 2001/-ko/Tlinux_2_4_20
+/timex.h/1.2.6.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+/tlb.h/1.1/Fri Oct 19 01:24:59 2001/-ko/Tlinux_2_4_20
+/types.h/1.4/Tue Nov  6 00:55:25 2001/-ko/Tlinux_2_4_20
+/uaccess.h/1.9/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/ucontext.h/1.1/Tue Dec 16 06:06:45 1997/-ko/Tlinux_2_4_20
+/unaligned.h/1.5/Thu Nov 23 02:00:55 2000/-ko/Tlinux_2_4_20
+/unistd.h/1.18.2.1/Wed Jun 26 22:36:24 2002/-ko/Tlinux_2_4_20
+/user.h/1.1.1.1/Sun Jun  1 03:16:58 1997/-ko/Tlinux_2_4_20
+/vga.h/1.6/Tue Nov  6 00:55:25 2001/-ko/Tlinux_2_4_20
+/xor.h/1.1/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-alpha/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-alpha/CVS/Repository
--- linux-2.4.20/include/asm-alpha/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-alpha/CVS/Repository	2005-01-06 23:06:29.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-alpha
diff -urNd -urNd linux-2.4.20/include/asm-alpha/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-alpha/CVS/Root
--- linux-2.4.20/include/asm-alpha/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-alpha/CVS/Root	2005-01-06 23:06:29.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-alpha/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-alpha/CVS/Tag
--- linux-2.4.20/include/asm-alpha/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-alpha/CVS/Tag	2005-01-06 23:06:32.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-alpha/param.h linux-2.4.20-mipscvs-20050106/include/asm-alpha/param.h
--- linux-2.4.20/include/asm-alpha/param.h	2000-11-08 01:37:31.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-alpha/param.h	2000-11-27 21:59:03.000000000 -0600
@@ -13,6 +13,9 @@
 # else
 #  define HZ	1200
 # endif
+#ifdef __KERNEL__
+# define hz_to_std(a) (a)
+#endif
 #endif
 
 #define EXEC_PAGESIZE	8192
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-anakin/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-anakin/CVS/Entries
--- linux-2.4.20/include/asm-arm/arch-anakin/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-anakin/CVS/Entries	2005-01-06 23:06:33.000000000 -0600
@@ -0,0 +1,17 @@
+/dma.h/1.1/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
+/hardware.h/1.1/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
+/ide.h/1.1.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
+/io.h/1.1/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
+/irq.h/1.1/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
+/irqs.h/1.1/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
+/keyboard.h/1.2/Tue Nov  6 07:56:11 2001/-ko/Tlinux_2_4_20
+/memory.h/1.1/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
+/param.h/1.1/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
+/serial.h/1.1/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
+/serial_reg.h/1.1/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
+/system.h/1.1/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
+/time.h/1.1/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
+/timex.h/1.1/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
+/uncompress.h/1.1.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
+/vmalloc.h/1.1/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-anakin/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-anakin/CVS/Repository
--- linux-2.4.20/include/asm-arm/arch-anakin/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-anakin/CVS/Repository	2005-01-06 23:06:33.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-arm/arch-anakin
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-anakin/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-anakin/CVS/Root
--- linux-2.4.20/include/asm-arm/arch-anakin/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-anakin/CVS/Root	2005-01-06 23:06:33.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-anakin/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-anakin/CVS/Tag
--- linux-2.4.20/include/asm-arm/arch-anakin/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-anakin/CVS/Tag	2005-01-06 23:06:33.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-arc/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-arc/CVS/Entries
--- linux-2.4.20/include/asm-arm/arch-arc/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-arc/CVS/Entries	2005-01-06 23:06:33.000000000 -0600
@@ -0,0 +1,16 @@
+/dma.h/1.5/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/hardware.h/1.12/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
+/ide.h/1.12/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/io.h/1.9/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
+/irq.h/1.8/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
+/irqs.h/1.5/Fri Mar  9 20:34:39 2001/-ko/Tlinux_2_4_20
+/keyboard.h/1.5/Tue Nov  6 07:56:11 2001/-ko/Tlinux_2_4_20
+/memory.h/1.6/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
+/oldlatches.h/1.5/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/param.h/1.1/Thu Jan 27 01:05:36 2000/-ko/Tlinux_2_4_20
+/serial.h/1.6/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/system.h/1.12/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
+/time.h/1.6/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
+/timex.h/1.3/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/uncompress.h/1.6/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-arc/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-arc/CVS/Repository
--- linux-2.4.20/include/asm-arm/arch-arc/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-arc/CVS/Repository	2005-01-06 23:06:33.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-arm/arch-arc
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-arc/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-arc/CVS/Root
--- linux-2.4.20/include/asm-arm/arch-arc/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-arc/CVS/Root	2005-01-06 23:06:33.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-arc/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-arc/CVS/Tag
--- linux-2.4.20/include/asm-arm/arch-arc/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-arc/CVS/Tag	2005-01-06 23:06:33.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-cl7500/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-cl7500/CVS/Entries
--- linux-2.4.20/include/asm-arm/arch-cl7500/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-cl7500/CVS/Entries	2005-01-06 23:06:33.000000000 -0600
@@ -0,0 +1,17 @@
+/acornfb.h/1.1/Fri Feb  4 07:40:52 2000/-ko/Tlinux_2_4_20
+/dma.h/1.3/Mon Aug 28 22:00:24 2000/-ko/Tlinux_2_4_20
+/hardware.h/1.6/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
+/ide.h/1.3/Mon Aug 28 22:00:24 2000/-ko/Tlinux_2_4_20
+/io.h/1.4/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
+/irq.h/1.3/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
+/irqs.h/1.3/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
+/keyboard.h/1.2.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
+/memory.h/1.4/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
+/param.h/1.2/Tue Mar  7 15:45:41 2000/-ko/Tlinux_2_4_20
+/serial.h/1.3/Mon Aug 28 22:00:24 2000/-ko/Tlinux_2_4_20
+/system.h/1.9/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
+/time.h/1.6/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
+/timex.h/1.1/Fri Feb  4 07:40:52 2000/-ko/Tlinux_2_4_20
+/uncompress.h/1.3.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
+/vmalloc.h/1.2/Fri Apr 28 01:09:53 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-cl7500/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-cl7500/CVS/Repository
--- linux-2.4.20/include/asm-arm/arch-cl7500/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-cl7500/CVS/Repository	2005-01-06 23:06:33.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-arm/arch-cl7500
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-cl7500/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-cl7500/CVS/Root
--- linux-2.4.20/include/asm-arm/arch-cl7500/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-cl7500/CVS/Root	2005-01-06 23:06:33.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-cl7500/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-cl7500/CVS/Tag
--- linux-2.4.20/include/asm-arm/arch-cl7500/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-cl7500/CVS/Tag	2005-01-06 23:06:33.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-clps711x/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-clps711x/CVS/Entries
--- linux-2.4.20/include/asm-arm/arch-clps711x/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-clps711x/CVS/Entries	2005-01-06 23:06:33.000000000 -0600
@@ -0,0 +1,16 @@
+/autcpu12.h/1.1.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
+/dma.h/1.1.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
+/hardware.h/1.1.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
+/io.h/1.1.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
+/irq.h/1.1.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
+/irqs.h/1.1.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
+/keyboard.h/1.1.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
+/memory.h/1.1.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
+/param.h/1.1.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
+/syspld.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
+/system.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
+/time.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
+/timex.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
+/uncompress.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
+/vmalloc.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-clps711x/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-clps711x/CVS/Repository
--- linux-2.4.20/include/asm-arm/arch-clps711x/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-clps711x/CVS/Repository	2005-01-06 23:06:33.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-arm/arch-clps711x
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-clps711x/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-clps711x/CVS/Root
--- linux-2.4.20/include/asm-arm/arch-clps711x/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-clps711x/CVS/Root	2005-01-06 23:06:33.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-clps711x/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-clps711x/CVS/Tag
--- linux-2.4.20/include/asm-arm/arch-clps711x/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-clps711x/CVS/Tag	2005-01-06 23:06:33.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-ebsa110/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-ebsa110/CVS/Entries
--- linux-2.4.20/include/asm-arm/arch-ebsa110/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-ebsa110/CVS/Entries	2005-01-06 23:06:33.000000000 -0600
@@ -0,0 +1,15 @@
+/dma.h/1.5/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/hardware.h/1.11/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
+/ide.h/1.1/Tue Mar 17 22:15:36 1998/-ko/Tlinux_2_4_20
+/io.h/1.8.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
+/irq.h/1.5/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
+/irqs.h/1.5/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/memory.h/1.7/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
+/param.h/1.4/Tue May 16 19:56:45 2000/-ko/Tlinux_2_4_20
+/serial.h/1.4/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/system.h/1.10/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/time.h/1.9/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
+/timex.h/1.3/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/uncompress.h/1.4.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
+/vmalloc.h/1.2/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-ebsa110/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-ebsa110/CVS/Repository
--- linux-2.4.20/include/asm-arm/arch-ebsa110/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-ebsa110/CVS/Repository	2005-01-06 23:06:33.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-arm/arch-ebsa110
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-ebsa110/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-ebsa110/CVS/Root
--- linux-2.4.20/include/asm-arm/arch-ebsa110/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-ebsa110/CVS/Root	2005-01-06 23:06:33.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-ebsa110/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-ebsa110/CVS/Tag
--- linux-2.4.20/include/asm-arm/arch-ebsa110/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-ebsa110/CVS/Tag	2005-01-06 23:06:33.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-ebsa285/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-ebsa285/CVS/Entries
--- linux-2.4.20/include/asm-arm/arch-ebsa285/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-ebsa285/CVS/Entries	2005-01-06 23:06:33.000000000 -0600
@@ -0,0 +1,16 @@
+/dma.h/1.5/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/hardware.h/1.11/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/ide.h/1.6/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/io.h/1.13/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
+/irq.h/1.16/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
+/irqs.h/1.6/Mon Aug 28 22:00:25 2000/-ko/Tlinux_2_4_20
+/keyboard.h/1.6.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
+/memory.h/1.10/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
+/param.h/1.4/Tue May 16 19:56:45 2000/-ko/Tlinux_2_4_20
+/serial.h/1.6/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/system.h/1.14/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
+/time.h/1.12/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
+/timex.h/1.4/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/uncompress.h/1.6.4.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
+/vmalloc.h/1.2/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-ebsa285/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-ebsa285/CVS/Repository
--- linux-2.4.20/include/asm-arm/arch-ebsa285/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-ebsa285/CVS/Repository	2005-01-06 23:06:33.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-arm/arch-ebsa285
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-ebsa285/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-ebsa285/CVS/Root
--- linux-2.4.20/include/asm-arm/arch-ebsa285/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-ebsa285/CVS/Root	2005-01-06 23:06:33.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-ebsa285/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-ebsa285/CVS/Tag
--- linux-2.4.20/include/asm-arm/arch-ebsa285/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-ebsa285/CVS/Tag	2005-01-06 23:06:33.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-epxa10db/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-epxa10db/CVS/Entries
--- linux-2.4.20/include/asm-arm/arch-epxa10db/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-epxa10db/CVS/Entries	2005-01-06 23:06:33.000000000 -0600
@@ -0,0 +1,23 @@
+/dma.h/1.1/Tue Nov  6 07:56:11 2001/-ko/Tlinux_2_4_20
+/ether00.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
+/excalibur.h/1.1/Tue Nov  6 07:56:11 2001/-ko/Tlinux_2_4_20
+/hardware.h/1.2/Sun Dec  2 11:34:56 2001/-ko/Tlinux_2_4_20
+/int_ctrl00.h/1.1/Tue Nov  6 07:56:11 2001/-ko/Tlinux_2_4_20
+/io.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
+/irq.h/1.1/Tue Nov  6 07:56:11 2001/-ko/Tlinux_2_4_20
+/irqs.h/1.1/Tue Nov  6 07:56:11 2001/-ko/Tlinux_2_4_20
+/memory.h/1.1/Tue Nov  6 07:56:11 2001/-ko/Tlinux_2_4_20
+/mode_ctrl00.h/1.1/Tue Nov  6 07:56:11 2001/-ko/Tlinux_2_4_20
+/param.h/1.1/Tue Nov  6 07:56:11 2001/-ko/Tlinux_2_4_20
+/platform.h/1.1/Tue Nov  6 07:56:11 2001/-ko/Tlinux_2_4_20
+/pld_conf00.h/1.1/Tue Nov  6 07:56:11 2001/-ko/Tlinux_2_4_20
+/serial.h/1.1/Tue Nov  6 07:56:11 2001/-ko/Tlinux_2_4_20
+/system.h/1.1/Tue Nov  6 07:56:11 2001/-ko/Tlinux_2_4_20
+/tdkphy.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
+/time.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
+/timer00.h/1.1/Tue Nov  6 07:56:11 2001/-ko/Tlinux_2_4_20
+/timex.h/1.1/Tue Nov  6 07:56:11 2001/-ko/Tlinux_2_4_20
+/uart00.h/1.1/Tue Nov  6 07:56:11 2001/-ko/Tlinux_2_4_20
+/uncompress.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
+/vmalloc.h/1.1/Tue Nov  6 07:56:11 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-epxa10db/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-epxa10db/CVS/Repository
--- linux-2.4.20/include/asm-arm/arch-epxa10db/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-epxa10db/CVS/Repository	2005-01-06 23:06:33.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-arm/arch-epxa10db
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-epxa10db/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-epxa10db/CVS/Root
--- linux-2.4.20/include/asm-arm/arch-epxa10db/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-epxa10db/CVS/Root	2005-01-06 23:06:33.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-epxa10db/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-epxa10db/CVS/Tag
--- linux-2.4.20/include/asm-arm/arch-epxa10db/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-epxa10db/CVS/Tag	2005-01-06 23:06:33.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-integrator/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-integrator/CVS/Entries
--- linux-2.4.20/include/asm-arm/arch-integrator/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-integrator/CVS/Entries	2005-01-06 23:06:34.000000000 -0600
@@ -0,0 +1,17 @@
+/bits.h/1.1/Thu Apr  5 04:58:30 2001/-ko/Tlinux_2_4_20
+/dma.h/1.1/Thu Apr  5 04:58:30 2001/-ko/Tlinux_2_4_20
+/hardware.h/1.2/Sun Dec  2 11:34:56 2001/-ko/Tlinux_2_4_20
+/io.h/1.2/Thu Aug 23 22:24:46 2001/-ko/Tlinux_2_4_20
+/irq.h/1.1/Thu Apr  5 04:58:53 2001/-ko/Tlinux_2_4_20
+/irqs.h/1.1/Thu Apr  5 04:58:53 2001/-ko/Tlinux_2_4_20
+/keyboard.h/1.2/Tue Nov  6 07:56:11 2001/-ko/Tlinux_2_4_20
+/memory.h/1.2/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
+/param.h/1.1/Thu Apr  5 04:58:53 2001/-ko/Tlinux_2_4_20
+/platform.h/1.1/Thu Apr  5 04:58:53 2001/-ko/Tlinux_2_4_20
+/serial.h/1.1/Thu Apr  5 04:58:53 2001/-ko/Tlinux_2_4_20
+/system.h/1.2.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
+/time.h/1.2/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
+/timex.h/1.1/Thu Apr  5 04:58:53 2001/-ko/Tlinux_2_4_20
+/uncompress.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
+/vmalloc.h/1.1/Thu Apr  5 04:58:53 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-integrator/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-integrator/CVS/Repository
--- linux-2.4.20/include/asm-arm/arch-integrator/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-integrator/CVS/Repository	2005-01-06 23:06:33.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-arm/arch-integrator
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-integrator/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-integrator/CVS/Root
--- linux-2.4.20/include/asm-arm/arch-integrator/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-integrator/CVS/Root	2005-01-06 23:06:33.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-integrator/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-integrator/CVS/Tag
--- linux-2.4.20/include/asm-arm/arch-integrator/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-integrator/CVS/Tag	2005-01-06 23:06:34.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-l7200/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-l7200/CVS/Entries
--- linux-2.4.20/include/asm-arm/arch-l7200/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-l7200/CVS/Entries	2005-01-06 23:06:34.000000000 -0600
@@ -0,0 +1,24 @@
+/aux_reg.h/1.1/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
+/dma.h/1.3/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
+/gp_timers.h/1.1/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
+/gpio.h/1.1/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
+/hardware.h/1.4/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
+/ide.h/1.3/Mon Aug 28 22:00:25 2000/-ko/Tlinux_2_4_20
+/io.h/1.4/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
+/irq.h/1.2/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
+/irqs.h/1.2/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
+/keyboard.h/1.2/Thu Jun 14 04:24:18 2001/-ko/Tlinux_2_4_20
+/memory.h/1.4/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
+/param.h/1.2/Tue Nov  6 07:56:11 2001/-ko/Tlinux_2_4_20
+/pmpcon.h/1.1/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
+/pmu.h/1.1/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
+/serial.h/1.1/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
+/serial_l7200.h/1.1/Thu Jun 15 01:56:04 2000/-ko/Tlinux_2_4_20
+/sib.h/1.1/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
+/sys-clock.h/1.1/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
+/system.h/1.5/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
+/time.h/1.4/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
+/timex.h/1.1/Thu Jun 15 01:56:04 2000/-ko/Tlinux_2_4_20
+/uncompress.h/1.2.4.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
+/vmalloc.h/1.1/Thu Jun 15 01:56:04 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-l7200/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-l7200/CVS/Repository
--- linux-2.4.20/include/asm-arm/arch-l7200/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-l7200/CVS/Repository	2005-01-06 23:06:34.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-arm/arch-l7200
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-l7200/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-l7200/CVS/Root
--- linux-2.4.20/include/asm-arm/arch-l7200/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-l7200/CVS/Root	2005-01-06 23:06:34.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-l7200/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-l7200/CVS/Tag
--- linux-2.4.20/include/asm-arm/arch-l7200/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-l7200/CVS/Tag	2005-01-06 23:06:34.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-mx1ads/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-mx1ads/CVS/Entries
--- linux-2.4.20/include/asm-arm/arch-mx1ads/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-mx1ads/CVS/Entries	2005-01-06 23:06:34.000000000 -0600
@@ -0,0 +1,15 @@
+/dma.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
+/hardware.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
+/io.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
+/irq.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
+/irqs.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
+/keyboard.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
+/memory.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
+/param.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
+/platform.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
+/system.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
+/time.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
+/timex.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
+/uncompress.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
+/vmalloc.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-mx1ads/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-mx1ads/CVS/Repository
--- linux-2.4.20/include/asm-arm/arch-mx1ads/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-mx1ads/CVS/Repository	2005-01-06 23:06:34.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-arm/arch-mx1ads
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-mx1ads/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-mx1ads/CVS/Root
--- linux-2.4.20/include/asm-arm/arch-mx1ads/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-mx1ads/CVS/Root	2005-01-06 23:06:34.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-mx1ads/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-mx1ads/CVS/Tag
--- linux-2.4.20/include/asm-arm/arch-mx1ads/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-mx1ads/CVS/Tag	2005-01-06 23:06:34.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-nexuspci/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-nexuspci/CVS/Entries
--- linux-2.4.20/include/asm-arm/arch-nexuspci/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-nexuspci/CVS/Entries	2005-01-06 23:06:34.000000000 -0600
@@ -0,0 +1,15 @@
+/dma.h/1.7/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/hardware.h/1.7/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/ide.h/1.2/Mon Jul  3 21:46:09 2000/-ko/Tlinux_2_4_20
+/io.h/1.6/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
+/irq.h/1.6/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/irqs.h/1.5/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/keyboard.h/1.2/Tue Nov  6 07:56:11 2001/-ko/Tlinux_2_4_20
+/memory.h/1.6/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
+/param.h/1.4/Tue May 16 19:56:45 2000/-ko/Tlinux_2_4_20
+/system.h/1.9/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/time.h/1.7/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
+/timex.h/1.1/Tue Aug 25 09:21:23 1998/-ko/Tlinux_2_4_20
+/uncompress.h/1.4.4.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
+/vmalloc.h/1.1/Wed Apr 19 04:00:19 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-nexuspci/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-nexuspci/CVS/Repository
--- linux-2.4.20/include/asm-arm/arch-nexuspci/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-nexuspci/CVS/Repository	2005-01-06 23:06:34.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-arm/arch-nexuspci
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-nexuspci/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-nexuspci/CVS/Root
--- linux-2.4.20/include/asm-arm/arch-nexuspci/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-nexuspci/CVS/Root	2005-01-06 23:06:34.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-nexuspci/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-nexuspci/CVS/Tag
--- linux-2.4.20/include/asm-arm/arch-nexuspci/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-nexuspci/CVS/Tag	2005-01-06 23:06:34.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-rpc/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-rpc/CVS/Entries
--- linux-2.4.20/include/asm-arm/arch-rpc/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-rpc/CVS/Entries	2005-01-06 23:06:34.000000000 -0600
@@ -0,0 +1,17 @@
+/acornfb.h/1.2/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/dma.h/1.5/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/hardware.h/1.12/Wed Jun 13 17:28:10 2001/-ko/Tlinux_2_4_20
+/ide.h/1.7/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/io.h/1.9.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/irq.h/1.7/Wed Jun 13 17:28:10 2001/-ko/Tlinux_2_4_20
+/irqs.h/1.6/Fri Mar  9 20:34:40 2001/-ko/Tlinux_2_4_20
+/keyboard.h/1.6/Tue Nov  6 07:56:11 2001/-ko/Tlinux_2_4_20
+/memory.h/1.6/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
+/param.h/1.4/Tue May 16 19:56:45 2000/-ko/Tlinux_2_4_20
+/serial.h/1.4/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/system.h/1.13/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
+/time.h/1.6/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
+/timex.h/1.2/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/uncompress.h/1.6/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/vmalloc.h/1.3/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-rpc/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-rpc/CVS/Repository
--- linux-2.4.20/include/asm-arm/arch-rpc/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-rpc/CVS/Repository	2005-01-06 23:06:34.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-arm/arch-rpc
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-rpc/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-rpc/CVS/Root
--- linux-2.4.20/include/asm-arm/arch-rpc/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-rpc/CVS/Root	2005-01-06 23:06:34.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-rpc/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-rpc/CVS/Tag
--- linux-2.4.20/include/asm-arm/arch-rpc/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-rpc/CVS/Tag	2005-01-06 23:06:34.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-sa1100/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-sa1100/CVS/Entries
--- linux-2.4.20/include/asm-arm/arch-sa1100/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-sa1100/CVS/Entries	2005-01-06 23:06:35.000000000 -0600
@@ -0,0 +1,43 @@
+/SA-1100.h/1.5/Tue Nov  6 07:56:11 2001/-ko/Tlinux_2_4_20
+/SA-1101.h/1.2/Fri Mar  9 20:34:40 2001/-ko/Tlinux_2_4_20
+/SA-1111.h/1.5.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/adsbitsy.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/assabet.h/1.6.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/badge4.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/bitfield.h/1.2/Tue Nov  6 07:56:12 2001/-ko/Tlinux_2_4_20
+/cerf.h/1.3.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/dma.h/1.5/Tue Nov  6 00:55:26 2001/-ko/Tlinux_2_4_20
+/flexanet.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/freebird.h/1.1/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
+/frodo.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/graphicsclient.h/1.2/Tue Nov  6 07:56:12 2001/-ko/Tlinux_2_4_20
+/graphicsmaster.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/h3600.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/h3600_gpio.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/hardware.h/1.13.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/huw_webpanel.h/1.1/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
+/ide.h/1.7.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/io.h/1.5/Fri Mar  9 20:34:40 2001/-ko/Tlinux_2_4_20
+/irq.h/1.9/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
+/irqs.h/1.5.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/itsy.h/1.1/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
+/jornada720.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/keyboard.h/1.7.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/lart.h/1.1/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
+/memory.h/1.6/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
+/omnimeter.h/1.1/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
+/pangolin.h/1.2.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/param.h/1.2/Wed Feb 16 01:07:48 2000/-ko/Tlinux_2_4_20
+/pfs168.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/pleb.h/1.1/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
+/serial.h/1.4/Wed Jun 13 17:28:10 2001/-ko/Tlinux_2_4_20
+/shannon.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/simpad.h/1.2.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/system.h/1.12.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/system3.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/time.h/1.3.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/timex.h/1.1/Thu Jan 27 01:05:37 2000/-ko/Tlinux_2_4_20
+/uncompress.h/1.8.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/vmalloc.h/1.2/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/yopy.h/1.1/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-sa1100/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-sa1100/CVS/Repository
--- linux-2.4.20/include/asm-arm/arch-sa1100/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-sa1100/CVS/Repository	2005-01-06 23:06:34.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-arm/arch-sa1100
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-sa1100/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-sa1100/CVS/Root
--- linux-2.4.20/include/asm-arm/arch-sa1100/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-sa1100/CVS/Root	2005-01-06 23:06:34.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-sa1100/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-sa1100/CVS/Tag
--- linux-2.4.20/include/asm-arm/arch-sa1100/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-sa1100/CVS/Tag	2005-01-06 23:06:35.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-shark/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-shark/CVS/Entries
--- linux-2.4.20/include/asm-arm/arch-shark/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-shark/CVS/Entries	2005-01-06 23:06:35.000000000 -0600
@@ -0,0 +1,16 @@
+/dma.h/1.4/Tue Nov  6 07:56:12 2001/-ko/Tlinux_2_4_20
+/hardware.h/1.5/Tue Nov  6 07:56:12 2001/-ko/Tlinux_2_4_20
+/ide.h/1.4/Tue Nov  6 07:56:12 2001/-ko/Tlinux_2_4_20
+/io.h/1.6/Tue Nov  6 07:56:12 2001/-ko/Tlinux_2_4_20
+/irq.h/1.3/Tue Nov  6 07:56:12 2001/-ko/Tlinux_2_4_20
+/irqs.h/1.3/Tue Nov  6 07:56:12 2001/-ko/Tlinux_2_4_20
+/keyboard.h/1.5.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/memory.h/1.5/Tue Nov  6 07:56:12 2001/-ko/Tlinux_2_4_20
+/param.h/1.5/Tue Nov  6 07:56:12 2001/-ko/Tlinux_2_4_20
+/serial.h/1.1/Wed Apr 19 04:00:19 2000/-ko/Tlinux_2_4_20
+/system.h/1.5/Tue Nov  6 07:56:12 2001/-ko/Tlinux_2_4_20
+/time.h/1.6/Tue Nov  6 07:56:12 2001/-ko/Tlinux_2_4_20
+/timex.h/1.3/Tue Nov  6 07:56:12 2001/-ko/Tlinux_2_4_20
+/uncompress.h/1.3/Tue Nov  6 07:56:12 2001/-ko/Tlinux_2_4_20
+/vmalloc.h/1.1/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-shark/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-shark/CVS/Repository
--- linux-2.4.20/include/asm-arm/arch-shark/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-shark/CVS/Repository	2005-01-06 23:06:35.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-arm/arch-shark
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-shark/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-shark/CVS/Root
--- linux-2.4.20/include/asm-arm/arch-shark/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-shark/CVS/Root	2005-01-06 23:06:35.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-shark/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-shark/CVS/Tag
--- linux-2.4.20/include/asm-arm/arch-shark/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-shark/CVS/Tag	2005-01-06 23:06:35.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-tbox/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-tbox/CVS/Entries
--- linux-2.4.20/include/asm-arm/arch-tbox/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-tbox/CVS/Entries	2005-01-06 23:06:35.000000000 -0600
@@ -0,0 +1,16 @@
+/dma.h/1.1/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/hardware.h/1.1/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/ide.h/1.1/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/io.h/1.3/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
+/irq.h/1.1/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/irqs.h/1.1/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/keyboard.h/1.2/Tue Nov  6 07:56:12 2001/-ko/Tlinux_2_4_20
+/memory.h/1.3/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
+/param.h/1.1/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/serial.h/1.1/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/system.h/1.1/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/time.h/1.3/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
+/timex.h/1.1/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/uncompress.h/1.1.4.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/vmalloc.h/1.1/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-tbox/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-tbox/CVS/Repository
--- linux-2.4.20/include/asm-arm/arch-tbox/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-tbox/CVS/Repository	2005-01-06 23:06:35.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-arm/arch-tbox
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-tbox/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-tbox/CVS/Root
--- linux-2.4.20/include/asm-arm/arch-tbox/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-tbox/CVS/Root	2005-01-06 23:06:35.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-tbox/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-tbox/CVS/Tag
--- linux-2.4.20/include/asm-arm/arch-tbox/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-tbox/CVS/Tag	2005-01-06 23:06:35.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-arm/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/CVS/Entries
--- linux-2.4.20/include/asm-arm/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/CVS/Entries	2005-01-06 23:08:09.000000000 -0600
@@ -0,0 +1,113 @@
+/a.out.h/1.7/Tue Nov  6 00:55:25 2001/-ko/Tlinux_2_4_20
+/assembler.h/1.3/Mon Aug 28 22:00:24 2000/-ko/Tlinux_2_4_20
+/atomic.h/1.10/Tue Nov  6 00:55:25 2001/-ko/Tlinux_2_4_20
+/bitops.h/1.7/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
+/bugs.h/1.3/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/byteorder.h/1.4/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
+/cache.h/1.5/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/checksum.h/1.9.2.1/Wed Jun 26 22:36:24 2002/-ko/Tlinux_2_4_20
+/cpu-multi26.h/1.4/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/cpu-multi32.h/1.7/Tue Nov  6 00:55:25 2001/-ko/Tlinux_2_4_20
+/cpu-single.h/1.7/Tue Nov  6 00:55:25 2001/-ko/Tlinux_2_4_20
+/current.h/1.5/Thu Nov 23 02:00:55 2000/-ko/Tlinux_2_4_20
+/delay.h/1.2/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
+/div64.h/1.2/Wed Feb 16 01:07:47 2000/-ko/Tlinux_2_4_20
+/dma.h/1.11/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
+/ecard.h/1.6/Fri Mar  9 20:34:39 2001/-ko/Tlinux_2_4_20
+/elf.h/1.8/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
+/errno.h/1.1/Tue Mar 17 22:15:13 1998/-ko/Tlinux_2_4_20
+/fcntl.h/1.6/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/fiq.h/1.4/Fri Mar  9 20:34:39 2001/-ko/Tlinux_2_4_20
+/floppy.h/1.8/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
+/hardirq.h/1.11/Tue Nov  6 00:55:25 2001/-ko/Tlinux_2_4_20
+/hardware.h/1.8/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/hdreg.h/1.1.4.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
+/ide.h/1.5.4.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
+/io.h/1.21.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
+/ioctl.h/1.2/Tue Aug 25 09:21:10 1998/-ko/Tlinux_2_4_20
+/ioctls.h/1.2/Fri Mar  9 20:34:39 2001/-ko/Tlinux_2_4_20
+/ipc.h/1.1/Tue Mar 17 22:15:16 1998/-ko/Tlinux_2_4_20
+/ipcbuf.h/1.1/Wed Feb 16 01:07:47 2000/-ko/Tlinux_2_4_20
+/irq.h/1.6/Tue Jun 22 23:07:39 1999/-ko/Tlinux_2_4_20
+/keyboard.h/1.5/Tue Nov  6 07:56:11 2001/-ko/Tlinux_2_4_20
+/leds.h/1.5.4.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
+/limits.h/1.1/Tue Mar 17 22:15:16 1998/-ko/Tlinux_2_4_20
+/linux_logo.h/1.6/Wed Aug 22 03:25:00 2001/-ko/Tlinux_2_4_20
+/mc146818rtc.h/1.3/Mon Aug 28 22:00:24 2000/-ko/Tlinux_2_4_20
+/memory.h/1.3/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
+/mman.h/1.2/Thu Mar 23 02:26:00 2000/-ko/Tlinux_2_4_20
+/mmu.h/1.1/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
+/mmu_context.h/1.7.4.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
+/mmzone.h/1.4/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
+/module.h/1.2/Tue Aug 21 12:19:08 2001/-ko/Tlinux_2_4_20
+/msgbuf.h/1.1/Wed Feb 16 01:07:47 2000/-ko/Tlinux_2_4_20
+/namei.h/1.5/Wed Apr 19 04:00:19 2000/-ko/Tlinux_2_4_20
+/nwflash.h/1.1/Thu Jan 27 01:05:36 2000/-ko/Tlinux_2_4_20
+/page.h/1.14.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
+/param.h/1.6/Thu Apr  5 04:58:30 2001/-ko/Tlinux_2_4_20
+/parport.h/1.7/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/pci.h/1.13.2.1/Tue Feb 26 06:00:23 2002/-ko/Tlinux_2_4_20
+/pgalloc.h/1.7/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
+/pgtable.h/1.21.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
+/poll.h/1.1/Tue Mar 17 22:15:18 1998/-ko/Tlinux_2_4_20
+/posix_types.h/1.6/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/proc-fns.h/1.11.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
+/processor.h/1.20.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
+/procinfo.h/1.7/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
+/ptrace.h/1.5/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/resource.h/1.5/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/scatterlist.h/1.3.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
+/segment.h/1.1/Tue Mar 17 22:15:21 1998/-ko/Tlinux_2_4_20
+/semaphore-helper.h/1.1/Sun Jun 13 16:35:16 1999/-ko/Tlinux_2_4_20
+/semaphore.h/1.10.2.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+/sembuf.h/1.1/Wed Feb 16 01:07:47 2000/-ko/Tlinux_2_4_20
+/serial.h/1.3/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/setup.h/1.11/Tue Nov  6 07:56:11 2001/-ko/Tlinux_2_4_20
+/shmbuf.h/1.1/Wed Feb 16 01:07:47 2000/-ko/Tlinux_2_4_20
+/shmparam.h/1.4/Thu Oct  5 01:19:01 2000/-ko/Tlinux_2_4_20
+/sigcontext.h/1.2/Wed Feb 16 01:07:47 2000/-ko/Tlinux_2_4_20
+/siginfo.h/1.8.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
+/signal.h/1.6/Tue Nov  6 00:55:26 2001/-ko/Tlinux_2_4_20
+/sizes.h/1.1/Sun Dec  2 11:34:56 2001/-ko/Tlinux_2_4_20
+/smp.h/1.4/Fri Apr 28 01:09:52 2000/-ko/Tlinux_2_4_20
+/smplock.h/1.4/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
+/socket.h/1.8.2.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+/sockios.h/1.1/Tue Mar 17 22:15:24 1998/-ko/Tlinux_2_4_20
+/softirq.h/1.9/Fri Oct 19 01:24:59 2001/-ko/Tlinux_2_4_20
+/spinlock.h/1.6/Sat Oct  9 00:01:40 1999/-ko/Tlinux_2_4_20
+/stat.h/1.6/Tue Aug  8 18:02:01 2000/-ko/Tlinux_2_4_20
+/statfs.h/1.1/Tue Mar 17 22:15:24 1998/-ko/Tlinux_2_4_20
+/string.h/1.6/Thu Jun 15 01:56:04 2000/-ko/Tlinux_2_4_20
+/system.h/1.19/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/termbits.h/1.3/Mon Aug 28 22:00:24 2000/-ko/Tlinux_2_4_20
+/termios.h/1.10/Wed Aug 22 03:25:00 2001/-ko/Tlinux_2_4_20
+/therm.h/1.1/Thu Jan 27 01:05:36 2000/-ko/Tlinux_2_4_20
+/timex.h/1.3.4.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+/tlb.h/1.1/Fri Oct 19 01:24:59 2001/-ko/Tlinux_2_4_20
+/types.h/1.3/Wed Feb 23 00:41:36 2000/-ko/Tlinux_2_4_20
+/uaccess.h/1.10/Tue Nov  6 07:56:11 2001/-ko/Tlinux_2_4_20
+/ucontext.h/1.1/Tue Mar 17 22:15:26 1998/-ko/Tlinux_2_4_20
+/unaligned.h/1.5/Mon Aug 28 22:00:24 2000/-ko/Tlinux_2_4_20
+/unistd.h/1.17.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
+/user.h/1.3/Mon Aug 28 22:00:24 2000/-ko/Tlinux_2_4_20
+/vga.h/1.3/Fri Feb  4 07:40:52 2000/-ko/Tlinux_2_4_20
+/xor.h/1.4/Wed Aug 22 03:25:00 2001/-ko/Tlinux_2_4_20
+D/arch-anakin////
+D/arch-arc////
+D/arch-cl7500////
+D/arch-clps711x////
+D/arch-ebsa110////
+D/arch-ebsa285////
+D/arch-epxa10db////
+D/arch-integrator////
+D/arch-l7200////
+D/arch-mx1ads////
+D/arch-nexuspci////
+D/arch-rpc////
+D/arch-sa1100////
+D/arch-shark////
+D/arch-tbox////
+D/hardware////
+D/mach////
+D/proc-armo////
+D/proc-armv////
diff -urNd -urNd linux-2.4.20/include/asm-arm/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/CVS/Repository
--- linux-2.4.20/include/asm-arm/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/CVS/Repository	2005-01-06 23:06:32.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-arm
diff -urNd -urNd linux-2.4.20/include/asm-arm/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/CVS/Root
--- linux-2.4.20/include/asm-arm/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/CVS/Root	2005-01-06 23:06:32.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-arm/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/CVS/Tag
--- linux-2.4.20/include/asm-arm/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/CVS/Tag	2005-01-06 23:06:32.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-arm/hardware/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/hardware/CVS/Entries
--- linux-2.4.20/include/asm-arm/hardware/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/hardware/CVS/Entries	2005-01-06 23:06:35.000000000 -0600
@@ -0,0 +1,13 @@
+/amba_kmi.h/1.1/Thu Apr  5 04:58:53 2001/-ko/Tlinux_2_4_20
+/clps7111.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/cs89712.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/dec21285.h/1.1/Thu Oct  5 01:19:02 2000/-ko/Tlinux_2_4_20
+/ep7211.h/1.1/Tue Nov  6 07:56:12 2001/-ko/Tlinux_2_4_20
+/ep7212.h/1.2.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/ioc.h/1.2/Wed Jun 13 17:28:10 2001/-ko/Tlinux_2_4_20
+/iomd.h/1.2/Wed Jun 13 17:28:10 2001/-ko/Tlinux_2_4_20
+/memc.h/1.1/Thu Oct  5 01:19:02 2000/-ko/Tlinux_2_4_20
+/pci_v3.h/1.4/Tue Nov  6 00:55:26 2001/-ko/Tlinux_2_4_20
+/sa1111.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/serial_amba.h/1.2/Thu Apr  5 04:58:53 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-arm/hardware/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/hardware/CVS/Repository
--- linux-2.4.20/include/asm-arm/hardware/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/hardware/CVS/Repository	2005-01-06 23:06:35.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-arm/hardware
diff -urNd -urNd linux-2.4.20/include/asm-arm/hardware/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/hardware/CVS/Root
--- linux-2.4.20/include/asm-arm/hardware/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/hardware/CVS/Root	2005-01-06 23:06:35.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-arm/hardware/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/hardware/CVS/Tag
--- linux-2.4.20/include/asm-arm/hardware/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/hardware/CVS/Tag	2005-01-06 23:06:35.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-arm/mach/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/mach/CVS/Entries
--- linux-2.4.20/include/asm-arm/mach/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/mach/CVS/Entries	2005-01-06 23:06:35.000000000 -0600
@@ -0,0 +1,8 @@
+/amba_kmi.h/1.2.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/arch.h/1.4/Tue Nov  6 00:55:26 2001/-ko/Tlinux_2_4_20
+/dma.h/1.1/Thu Oct  5 01:19:02 2000/-ko/Tlinux_2_4_20
+/irq.h/1.1/Fri Mar  9 20:34:40 2001/-ko/Tlinux_2_4_20
+/map.h/1.1/Thu Oct  5 01:19:02 2000/-ko/Tlinux_2_4_20
+/pci.h/1.3/Sat Sep 22 12:49:40 2001/-ko/Tlinux_2_4_20
+/serial_sa1100.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-arm/mach/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/mach/CVS/Repository
--- linux-2.4.20/include/asm-arm/mach/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/mach/CVS/Repository	2005-01-06 23:06:35.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-arm/mach
diff -urNd -urNd linux-2.4.20/include/asm-arm/mach/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/mach/CVS/Root
--- linux-2.4.20/include/asm-arm/mach/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/mach/CVS/Root	2005-01-06 23:06:35.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-arm/mach/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/mach/CVS/Tag
--- linux-2.4.20/include/asm-arm/mach/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/mach/CVS/Tag	2005-01-06 23:06:35.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-arm/proc-armo/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/proc-armo/CVS/Entries
--- linux-2.4.20/include/asm-arm/proc-armo/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/proc-armo/CVS/Entries	2005-01-06 23:06:35.000000000 -0600
@@ -0,0 +1,14 @@
+/assembler.h/1.4/Thu Oct  5 01:19:02 2000/-ko/Tlinux_2_4_20
+/cache.h/1.8/Sat Sep 22 12:49:40 2001/-ko/Tlinux_2_4_20
+/elf.h/1.3/Fri Apr 28 01:09:53 2000/-ko/Tlinux_2_4_20
+/locks.h/1.2/Thu Oct  5 01:19:02 2000/-ko/Tlinux_2_4_20
+/page.h/1.5/Thu Oct  5 01:19:02 2000/-ko/Tlinux_2_4_20
+/pgalloc.h/1.1/Wed Jun 13 17:28:10 2001/-ko/Tlinux_2_4_20
+/pgtable.h/1.14/Sat Sep 22 12:49:40 2001/-ko/Tlinux_2_4_20
+/processor.h/1.9/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/ptrace.h/1.7/Wed Jun 13 17:28:10 2001/-ko/Tlinux_2_4_20
+/shmparam.h/1.3/Thu Oct  5 01:19:02 2000/-ko/Tlinux_2_4_20
+/system.h/1.11/Sat Sep 22 12:49:40 2001/-ko/Tlinux_2_4_20
+/uaccess.h/1.5/Sat Sep 22 12:49:40 2001/-ko/Tlinux_2_4_20
+/uncompress.h/1.2/Thu Oct  5 01:19:02 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-arm/proc-armo/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/proc-armo/CVS/Repository
--- linux-2.4.20/include/asm-arm/proc-armo/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/proc-armo/CVS/Repository	2005-01-06 23:06:35.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-arm/proc-armo
diff -urNd -urNd linux-2.4.20/include/asm-arm/proc-armo/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/proc-armo/CVS/Root
--- linux-2.4.20/include/asm-arm/proc-armo/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/proc-armo/CVS/Root	2005-01-06 23:06:35.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-arm/proc-armo/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/proc-armo/CVS/Tag
--- linux-2.4.20/include/asm-arm/proc-armo/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/proc-armo/CVS/Tag	2005-01-06 23:06:35.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-arm/proc-armv/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/proc-armv/CVS/Entries
--- linux-2.4.20/include/asm-arm/proc-armv/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/proc-armv/CVS/Entries	2005-01-06 23:06:35.000000000 -0600
@@ -0,0 +1,15 @@
+/assembler.h/1.5/Thu Oct  5 01:19:02 2000/-ko/Tlinux_2_4_20
+/cache.h/1.9.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/domain.h/1.2/Thu Oct  5 01:19:02 2000/-ko/Tlinux_2_4_20
+/elf.h/1.4/Mon Aug 28 22:00:25 2000/-ko/Tlinux_2_4_20
+/locks.h/1.4/Thu Oct  5 01:19:02 2000/-ko/Tlinux_2_4_20
+/page.h/1.4/Thu Oct  5 01:19:02 2000/-ko/Tlinux_2_4_20
+/pgalloc.h/1.1/Wed Jun 13 17:28:10 2001/-ko/Tlinux_2_4_20
+/pgtable.h/1.16/Sat Sep 22 12:49:40 2001/-ko/Tlinux_2_4_20
+/processor.h/1.9/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/ptrace.h/1.7/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/shmparam.h/1.3/Thu Oct  5 01:19:02 2000/-ko/Tlinux_2_4_20
+/system.h/1.14/Sat Sep 22 12:49:40 2001/-ko/Tlinux_2_4_20
+/uaccess.h/1.11/Tue Nov  6 07:56:12 2001/-ko/Tlinux_2_4_20
+/uncompress.h/1.3/Thu Oct  5 01:19:02 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-arm/proc-armv/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/proc-armv/CVS/Repository
--- linux-2.4.20/include/asm-arm/proc-armv/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/proc-armv/CVS/Repository	2005-01-06 23:06:35.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-arm/proc-armv
diff -urNd -urNd linux-2.4.20/include/asm-arm/proc-armv/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/proc-armv/CVS/Root
--- linux-2.4.20/include/asm-arm/proc-armv/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/proc-armv/CVS/Root	2005-01-06 23:06:35.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-arm/proc-armv/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/proc-armv/CVS/Tag
--- linux-2.4.20/include/asm-arm/proc-armv/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/proc-armv/CVS/Tag	2005-01-06 23:06:35.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-cris/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-cris/CVS/Entries
--- linux-2.4.20/include/asm-cris/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-cris/CVS/Entries	2005-01-06 23:08:09.000000000 -0600
@@ -0,0 +1,84 @@
+/a.out.h/1.1/Fri Mar  9 20:34:41 2001/-ko/Tlinux_2_4_20
+/atomic.h/1.2/Fri Aug 24 03:38:51 2001/-ko/Tlinux_2_4_20
+/axisflashmap.h/1.4/Fri Aug 24 03:38:51 2001/-ko/Tlinux_2_4_20
+/bitops.h/1.4.2.1/Tue Feb 26 06:00:23 2002/-ko/Tlinux_2_4_20
+/bugs.h/1.1/Fri Mar  9 20:34:41 2001/-ko/Tlinux_2_4_20
+/byteorder.h/1.1/Fri Mar  9 20:34:41 2001/-ko/Tlinux_2_4_20
+/cache.h/1.1/Fri Mar  9 20:34:41 2001/-ko/Tlinux_2_4_20
+/checksum.h/1.3/Mon Nov  5 20:16:24 2001/-ko/Tlinux_2_4_20
+/current.h/1.2/Mon Nov  5 20:16:24 2001/-ko/Tlinux_2_4_20
+/delay.h/1.5/Mon Nov  5 20:16:24 2001/-ko/Tlinux_2_4_20
+/div64.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/dma.h/1.2/Thu Aug 23 22:24:46 2001/-ko/Tlinux_2_4_20
+/elf.h/1.2.2.1/Tue Feb 26 06:00:23 2002/-ko/Tlinux_2_4_20
+/errno.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/eshlibld.h/1.2/Wed Jun 13 17:28:10 2001/-ko/Tlinux_2_4_20
+/ethernet.h/1.1.2.1/Tue Feb 26 06:00:24 2002/-ko/Tlinux_2_4_20
+/etraxgpio.h/1.4.2.2/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+/etraxi2c.h/1.1/Wed Jun 13 17:28:10 2001/-ko/Tlinux_2_4_20
+/etraxvirtex.h/1.1.2.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+/fasttimer.h/1.1.2.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+/fcntl.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/hardirq.h/1.2/Fri Aug 24 03:38:51 2001/-ko/Tlinux_2_4_20
+/hdreg.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/ide.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/io.h/1.6/Mon Nov  5 20:16:24 2001/-ko/Tlinux_2_4_20
+/ioctl.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/ioctls.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/ipc.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/ipcbuf.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/irq.h/1.6.2.1/Tue Feb 26 06:00:24 2002/-ko/Tlinux_2_4_20
+/locks.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/mman.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/mmu.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/mmu_context.h/1.2/Thu Aug 23 22:24:46 2001/-ko/Tlinux_2_4_20
+/module.h/1.3/Mon Nov  5 20:16:24 2001/-ko/Tlinux_2_4_20
+/msgbuf.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/namei.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/page.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/param.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/pci.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/pgalloc.h/1.3/Thu Jun 14 04:24:18 2001/-ko/Tlinux_2_4_20
+/pgtable.h/1.4.2.3/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+/poll.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/posix_types.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/processor.h/1.6.2.2/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/ptrace.h/1.5/Fri Aug 24 03:38:51 2001/-ko/Tlinux_2_4_20
+/resource.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/rs485.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/rtc.h/1.2.2.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+/segment.h/1.2/Thu Jun 14 04:24:20 2001/-ko/Tlinux_2_4_20
+/semaphore-helper.h/1.2/Thu Jun 14 04:24:20 2001/-ko/Tlinux_2_4_20
+/semaphore.h/1.3.2.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+/sembuf.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/setup.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/shmbuf.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/shmparam.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/sigcontext.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/siginfo.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
+/signal.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/smp.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/smp_lock.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/smplock.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/socket.h/1.4/Fri Aug 24 03:38:51 2001/-ko/Tlinux_2_4_20
+/sockios.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/softirq.h/1.3/Fri Oct 19 01:24:59 2001/-ko/Tlinux_2_4_20
+/stat.h/1.2/Thu Jun 14 04:24:20 2001/-ko/Tlinux_2_4_20
+/statfs.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/string.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/sv_addr.agh/1.2.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
+/sv_addr_ag.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/svinto.h/1.2.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
+/sync_serial.h/1.1/Wed Jun 13 17:28:11 2001/-ko/Tlinux_2_4_20
+/system.h/1.4.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
+/termbits.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/termios.h/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/timex.h/1.3.2.2/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+/tlb.h/1.1/Mon Nov  5 20:16:24 2001/-ko/Tlinux_2_4_20
+/types.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/uaccess.h/1.3/Sun Dec  2 11:34:57 2001/-ko/Tlinux_2_4_20
+/ucontext.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/unaligned.h/1.1/Fri Mar  9 20:34:43 2001/-ko/Tlinux_2_4_20
+/unistd.h/1.4.2.2/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
+/user.h/1.1.2.1/Tue Feb 26 06:00:24 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-cris/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-cris/CVS/Repository
--- linux-2.4.20/include/asm-cris/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-cris/CVS/Repository	2005-01-06 23:06:35.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-cris
diff -urNd -urNd linux-2.4.20/include/asm-cris/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-cris/CVS/Root
--- linux-2.4.20/include/asm-cris/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-cris/CVS/Root	2005-01-06 23:06:35.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-cris/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-cris/CVS/Tag
--- linux-2.4.20/include/asm-cris/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-cris/CVS/Tag	2005-01-06 23:06:37.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-generic/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-generic/CVS/Entries
--- linux-2.4.20/include/asm-generic/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-generic/CVS/Entries	2005-01-06 23:06:37.000000000 -0600
@@ -0,0 +1,7 @@
+/bitops.h/1.3/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/pgtable.h/1.2/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/smplock.h/1.3/Mon Mar 27 23:54:40 2000/-ko/Tlinux_2_4_20
+/tlb.h/1.1.2.1/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
+/unaligned.h/1.1.1.1/Sun Jun  1 03:16:54 1997/-ko/Tlinux_2_4_20
+/xor.h/1.1/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-generic/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-generic/CVS/Repository
--- linux-2.4.20/include/asm-generic/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-generic/CVS/Repository	2005-01-06 23:06:37.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-generic
diff -urNd -urNd linux-2.4.20/include/asm-generic/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-generic/CVS/Root
--- linux-2.4.20/include/asm-generic/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-generic/CVS/Root	2005-01-06 23:06:37.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-generic/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-generic/CVS/Tag
--- linux-2.4.20/include/asm-generic/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-generic/CVS/Tag	2005-01-06 23:06:37.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-i386/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-i386/CVS/Entries
--- linux-2.4.20/include/asm-i386/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-i386/CVS/Entries	2005-01-06 23:08:09.000000000 -0600
@@ -0,0 +1,109 @@
+/a.out.h/1.1.1.1/Sun Jun  1 03:17:15 1997/-ko/Tlinux_2_4_20
+/apic.h/1.10.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
+/apicdef.h/1.5.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/atomic.h/1.10/Thu Aug 23 22:24:46 2001/-ko/Tlinux_2_4_20
+/bitops.h/1.12.2.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+/boot.h/1.1.1.1/Sun Jun  1 03:17:15 1997/-ko/Tlinux_2_4_20
+/bugs.h/1.24.2.1/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
+/byteorder.h/1.4/Mon Feb 15 02:21:51 1999/-ko/Tlinux_2_4_20
+/cache.h/1.6/Thu Nov 23 02:00:55 2000/-ko/Tlinux_2_4_20
+/checksum.h/1.8.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
+/cobalt.h/1.2/Fri Aug 24 03:38:51 2001/-ko/Tlinux_2_4_20
+/cpufeature.h/1.1.4.1/Sat Dec 29 05:38:20 2001/-ko/Tlinux_2_4_20
+/current.h/1.2/Tue Aug 25 09:21:34 1998/-ko/Tlinux_2_4_20
+/debugreg.h/1.1/Tue Aug 25 09:21:34 1998/-ko/Tlinux_2_4_20
+/delay.h/1.4/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
+/desc.h/1.4/Fri Aug 24 03:38:51 2001/-ko/Tlinux_2_4_20
+/div64.h/1.1/Sat Jan 29 01:42:27 2000/-ko/Tlinux_2_4_20
+/dma.h/1.5/Sat Oct  9 00:01:42 1999/-ko/Tlinux_2_4_20
+/e820.h/1.4/Mon Aug 28 22:00:25 2000/-ko/Tlinux_2_4_20
+/elf.h/1.12/Wed Aug 22 03:25:00 2001/-ko/Tlinux_2_4_20
+/errno.h/1.3.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
+/fcntl.h/1.7/Fri Oct 19 01:24:59 2001/-ko/Tlinux_2_4_20
+/fixmap.h/1.8.2.2/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+/floppy.h/1.9.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
+/hardirq.h/1.17/Sun Dec  2 11:34:57 2001/-ko/Tlinux_2_4_20
+/hdreg.h/1.1/Thu Jun 17 14:08:58 1999/-ko/Tlinux_2_4_20
+/highmem.h/1.7.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
+/hw_irq.h/1.13/Fri Oct 19 01:24:59 2001/-ko/Tlinux_2_4_20
+/i387.h/1.4.2.1/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
+/ide.h/1.8.4.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
+/init.h/1.3/Sat Oct  9 00:01:42 1999/-ko/Tlinux_2_4_20
+/io.h/1.17.2.2/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+/io_apic.h/1.6.2.1/Tue Feb 26 06:00:24 2002/-ko/Tlinux_2_4_20
+/ioctl.h/1.2/Mon Dec  1 18:00:33 1997/-ko/Tlinux_2_4_20
+/ioctls.h/1.5.6.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
+/ipc.h/1.2/Mon Feb 15 02:21:53 1999/-ko/Tlinux_2_4_20
+/ipcbuf.h/1.1/Wed Feb 16 01:07:48 2000/-ko/Tlinux_2_4_20
+/irq.h/1.8.2.2/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
+/keyboard.h/1.12/Sun Dec  2 11:34:57 2001/-ko/Tlinux_2_4_20
+/kmap_types.h/1.4.2.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+/ldt.h/1.2/Sat Oct  9 00:01:42 1999/-ko/Tlinux_2_4_20
+/linux_logo.h/1.3/Wed Aug 22 03:25:01 2001/-ko/Tlinux_2_4_20
+/lithium.h/1.2/Fri Aug 24 03:38:51 2001/-ko/Tlinux_2_4_20
+/locks.h/1.5/Fri Aug 24 03:38:51 2001/-ko/Tlinux_2_4_20
+/math_emu.h/1.4/Fri Aug 24 03:38:51 2001/-ko/Tlinux_2_4_20
+/mc146818rtc.h/1.4/Sat Jul 15 03:07:32 2000/-ko/Tlinux_2_4_20
+/mca_dma.h/1.4/Wed Aug 22 03:25:01 2001/-ko/Tlinux_2_4_20
+/mman.h/1.2/Sun Mar 19 01:28:58 2000/-ko/Tlinux_2_4_20
+/mmu.h/1.2/Fri Aug 24 03:38:51 2001/-ko/Tlinux_2_4_20
+/mmu_context.h/1.10.2.2/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
+/mmx.h/1.2/Sat Jan 29 01:42:27 2000/-ko/Tlinux_2_4_20
+/module.h/1.2/Tue Aug 21 12:19:08 2001/-ko/Tlinux_2_4_20
+/mpspec.h/1.7.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
+/msgbuf.h/1.1/Wed Feb 16 01:07:48 2000/-ko/Tlinux_2_4_20
+/msr.h/1.4.2.3/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/mtrr.h/1.6/Thu Jun 14 04:24:20 2001/-ko/Tlinux_2_4_20
+/namei.h/1.5/Wed Apr 19 04:00:19 2000/-ko/Tlinux_2_4_20
+/page.h/1.24.2.2/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
+/param.h/1.5/Thu Nov 23 02:00:55 2000/-ko/Tlinux_2_4_20
+/parport.h/1.5/Sun Mar 19 01:28:58 2000/-ko/Tlinux_2_4_20
+/pci.h/1.12.2.2/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
+/pgalloc.h/1.10.2.2/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
+/pgtable-2level.h/1.6.2.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+/pgtable-3level.h/1.6.2.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+/pgtable.h/1.32.2.2/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
+/poll.h/1.1.1.1/Sun Jun  1 03:17:15 1997/-ko/Tlinux_2_4_20
+/posix_types.h/1.5/Wed Feb 16 01:07:48 2000/-ko/Tlinux_2_4_20
+/processor.h/1.36.2.2/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
+/ptrace.h/1.6/Fri Oct 19 01:24:59 2001/-ko/Tlinux_2_4_20
+/resource.h/1.6/Thu Oct  5 01:19:02 2000/-ko/Tlinux_2_4_20
+/rwlock.h/1.2.4.2/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
+/rwsem.h/1.1.2.3/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/scatterlist.h/1.2.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/segment.h/1.2/Tue Dec 16 05:36:35 1997/-ko/Tlinux_2_4_20
+/semaphore.h/1.17.2.3/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/sembuf.h/1.1/Wed Feb 16 01:07:48 2000/-ko/Tlinux_2_4_20
+/serial.h/1.3.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
+/setup.h/1.3/Fri Feb  4 07:40:52 2000/-ko/Tlinux_2_4_20
+/shmbuf.h/1.1/Wed Feb 16 01:07:48 2000/-ko/Tlinux_2_4_20
+/shmparam.h/1.3/Sat Jan 29 01:42:27 2000/-ko/Tlinux_2_4_20
+/sigcontext.h/1.5/Sun Jun 25 01:20:06 2000/-ko/Tlinux_2_4_20
+/siginfo.h/1.8.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
+/signal.h/1.7/Fri Aug 24 03:38:52 2001/-ko/Tlinux_2_4_20
+/smp.h/1.15.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/smpboot.h/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/smplock.h/1.8.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
+/socket.h/1.10.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/sockios.h/1.1.1.1/Sun Jun  1 03:17:15 1997/-ko/Tlinux_2_4_20
+/softirq.h/1.12.2.2/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
+/spinlock.h/1.20.2.3/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/stat.h/1.3/Tue Aug  8 18:02:01 2000/-ko/Tlinux_2_4_20
+/statfs.h/1.1.1.1/Sun Jun  1 03:17:14 1997/-ko/Tlinux_2_4_20
+/string-486.h/1.6/Thu Apr  5 04:58:53 2001/-ko/Tlinux_2_4_20
+/string.h/1.16/Fri Aug 24 03:38:52 2001/-ko/Tlinux_2_4_20
+/system.h/1.26.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/termbits.h/1.2/Mon Feb 15 02:21:58 1999/-ko/Tlinux_2_4_20
+/termios.h/1.10.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/timex.h/1.5.2.2/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/tlb.h/1.1/Fri Oct 19 01:24:59 2001/-ko/Tlinux_2_4_20
+/types.h/1.4.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
+/uaccess.h/1.17/Fri Oct 19 01:24:59 2001/-ko/Tlinux_2_4_20
+/ucontext.h/1.1/Tue Dec 16 06:06:46 1997/-ko/Tlinux_2_4_20
+/unaligned.h/1.2/Thu Jun 14 04:24:20 2001/-ko/Tlinux_2_4_20
+/unistd.h/1.23.2.3/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/user.h/1.6/Thu Nov 23 02:00:55 2000/-ko/Tlinux_2_4_20
+/vga.h/1.1/Tue Aug 25 09:21:41 1998/-ko/Tlinux_2_4_20
+/vm86.h/1.2/Tue Aug 25 09:21:41 1998/-ko/Tlinux_2_4_20
+/xor.h/1.2.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-i386/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-i386/CVS/Repository
--- linux-2.4.20/include/asm-i386/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-i386/CVS/Repository	2005-01-06 23:06:37.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-i386
diff -urNd -urNd linux-2.4.20/include/asm-i386/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-i386/CVS/Root
--- linux-2.4.20/include/asm-i386/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-i386/CVS/Root	2005-01-06 23:06:37.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-i386/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-i386/CVS/Tag
--- linux-2.4.20/include/asm-i386/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-i386/CVS/Tag	2005-01-06 23:06:39.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-i386/param.h linux-2.4.20-mipscvs-20050106/include/asm-i386/param.h
--- linux-2.4.20/include/asm-i386/param.h	2000-10-27 13:04:43.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-i386/param.h	2000-11-22 20:00:55.000000000 -0600
@@ -3,6 +3,9 @@
 
 #ifndef HZ
 #define HZ 100
+#ifdef __KERNEL__
+#define hz_to_std(a) (a)
+#endif
 #endif
 
 #define EXEC_PAGESIZE	4096
diff -urNd -urNd linux-2.4.20/include/asm-ia64/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-ia64/CVS/Entries
--- linux-2.4.20/include/asm-ia64/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/CVS/Entries	2005-01-06 23:08:09.000000000 -0600
@@ -0,0 +1,99 @@
+/a.out.h/1.4.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
+/acpi.h/1.5.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/asmmacro.h/1.3/Wed Jun 13 17:28:11 2001/-ko/Tlinux_2_4_20
+/atomic.h/1.5.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/bitops.h/1.6.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/break.h/1.1/Wed Feb 23 00:41:37 2000/-ko/Tlinux_2_4_20
+/bugs.h/1.1/Wed Feb 23 00:41:37 2000/-ko/Tlinux_2_4_20
+/byteorder.h/1.2/Wed Jun 13 17:28:11 2001/-ko/Tlinux_2_4_20
+/cache.h/1.4.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/checksum.h/1.1.4.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
+/current.h/1.2.4.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/delay.h/1.4/Wed Jun 13 17:28:11 2001/-ko/Tlinux_2_4_20
+/div64.h/1.1/Wed Feb 23 00:41:37 2000/-ko/Tlinux_2_4_20
+/dma.h/1.4/Wed Jun 13 17:28:11 2001/-ko/Tlinux_2_4_20
+/elf.h/1.3.4.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/errno.h/1.1.4.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/fcntl.h/1.4/Thu Nov 23 02:00:55 2000/-ko/Tlinux_2_4_20
+/fpswa.h/1.3/Fri Aug 24 03:38:52 2001/-ko/Tlinux_2_4_20
+/fpu.h/1.1/Wed Feb 23 00:41:37 2000/-ko/Tlinux_2_4_20
+/hardirq.h/1.10.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
+/hdreg.h/1.1/Wed Feb 23 00:41:37 2000/-ko/Tlinux_2_4_20
+/hw_irq.h/1.6.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/ia32.h/1.12/Sun Dec  2 11:34:57 2001/-ko/Tlinux_2_4_20
+/ide.h/1.5.4.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/io.h/1.8.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
+/ioctl.h/1.1/Wed Feb 23 00:41:37 2000/-ko/Tlinux_2_4_20
+/ioctls.h/1.1.4.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/iosapic.h/1.5.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/ipcbuf.h/1.1/Wed Feb 23 00:41:37 2000/-ko/Tlinux_2_4_20
+/irq.h/1.2.4.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
+/keyboard.h/1.4.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/kregs.h/1.2.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/linux_logo.h/1.2/Wed Aug 22 03:25:01 2001/-ko/Tlinux_2_4_20
+/machvec.h/1.6.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/machvec_dig.h/1.3/Thu Jan 11 04:02:44 2001/-ko/Tlinux_2_4_20
+/machvec_hpsim.h/1.3/Thu Jan 11 04:02:44 2001/-ko/Tlinux_2_4_20
+/machvec_hpzx1.h/1.3.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/machvec_init.h/1.3.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/machvec_sn1.h/1.4.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/machvec_sn2.h/1.1.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/mca.h/1.5.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
+/mca_asm.h/1.5.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
+/mman.h/1.3/Thu Jan 11 04:02:44 2001/-ko/Tlinux_2_4_20
+/mmu.h/1.1/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
+/mmu_context.h/1.7/Sun Dec  2 11:34:57 2001/-ko/Tlinux_2_4_20
+/module.h/1.7.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/msgbuf.h/1.2/Sun Dec  2 11:34:57 2001/-ko/Tlinux_2_4_20
+/namei.h/1.3/Sun Dec  2 11:34:57 2001/-ko/Tlinux_2_4_20
+/offsets.h/1.12.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/page.h/1.11.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/pal.h/1.8.2.1/Sat Dec 29 05:38:20 2001/-ko/Tlinux_2_4_20
+/param.h/1.6/Wed Jun 13 17:28:11 2001/-ko/Tlinux_2_4_20
+/parport.h/1.1/Thu Nov 23 02:00:55 2000/-ko/Tlinux_2_4_20
+/pci.h/1.10.2.3/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/perfmon.h/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/pgalloc.h/1.8.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/pgtable.h/1.17.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/poll.h/1.1/Wed Feb 23 00:41:37 2000/-ko/Tlinux_2_4_20
+/posix_types.h/1.1/Wed Feb 23 00:41:37 2000/-ko/Tlinux_2_4_20
+/processor.h/1.15.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
+/ptrace.h/1.8.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
+/ptrace_offsets.h/1.6/Fri Aug 24 03:38:53 2001/-ko/Tlinux_2_4_20
+/resource.h/1.2/Thu Oct  5 01:19:02 2000/-ko/Tlinux_2_4_20
+/rse.h/1.1/Wed Feb 23 00:41:37 2000/-ko/Tlinux_2_4_20
+/sal.h/1.8.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/scatterlist.h/1.4.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
+/segment.h/1.2/Wed Jun 13 17:28:11 2001/-ko/Tlinux_2_4_20
+/semaphore.h/1.6.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/sembuf.h/1.2/Sun Dec  2 11:34:57 2001/-ko/Tlinux_2_4_20
+/serial.h/1.1.4.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/shmbuf.h/1.2/Sun Dec  2 11:34:57 2001/-ko/Tlinux_2_4_20
+/shmparam.h/1.2/Thu Jan 11 04:02:44 2001/-ko/Tlinux_2_4_20
+/sigcontext.h/1.4.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
+/siginfo.h/1.8.2.3/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/signal.h/1.3.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/smp.h/1.9/Sun Dec  2 11:34:58 2001/-ko/Tlinux_2_4_20
+/smplock.h/1.4/Sun Dec  2 11:34:58 2001/-ko/Tlinux_2_4_20
+/socket.h/1.7.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/sockios.h/1.1/Wed Feb 23 00:41:37 2000/-ko/Tlinux_2_4_20
+/softirq.h/1.6.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/spinlock.h/1.8.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/stat.h/1.2/Sun Jun 25 01:20:06 2000/-ko/Tlinux_2_4_20
+/statfs.h/1.1/Wed Feb 23 00:41:37 2000/-ko/Tlinux_2_4_20
+/string.h/1.5.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/system.h/1.11.2.3/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/termbits.h/1.1/Wed Feb 23 00:41:37 2000/-ko/Tlinux_2_4_20
+/termios.h/1.3.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/timex.h/1.2.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/tlb.h/1.1/Fri Oct 19 01:24:59 2001/-ko/Tlinux_2_4_20
+/types.h/1.3/Fri Apr 28 01:09:53 2000/-ko/Tlinux_2_4_20
+/uaccess.h/1.6.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/ucontext.h/1.1/Wed Jun 13 17:28:11 2001/-ko/Tlinux_2_4_20
+/unaligned.h/1.3/Fri Aug 24 03:38:53 2001/-ko/Tlinux_2_4_20
+/unistd.h/1.9.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/unwind.h/1.5/Fri Aug 24 03:38:53 2001/-ko/Tlinux_2_4_20
+/user.h/1.2/Sun Dec  2 11:34:58 2001/-ko/Tlinux_2_4_20
+/vga.h/1.1.4.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/xor.h/1.1/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
+D/sn////
diff -urNd -urNd linux-2.4.20/include/asm-ia64/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-ia64/CVS/Repository
--- linux-2.4.20/include/asm-ia64/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/CVS/Repository	2005-01-06 23:06:39.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-ia64
diff -urNd -urNd linux-2.4.20/include/asm-ia64/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-ia64/CVS/Root
--- linux-2.4.20/include/asm-ia64/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/CVS/Root	2005-01-06 23:06:39.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-ia64/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-ia64/CVS/Tag
--- linux-2.4.20/include/asm-ia64/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/CVS/Tag	2005-01-06 23:06:40.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-ia64/param.h linux-2.4.20-mipscvs-20050106/include/asm-ia64/param.h
--- linux-2.4.20/include/asm-ia64/param.h	2001-04-05 14:51:47.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/param.h	2001-06-13 12:28:11.000000000 -0500
@@ -20,6 +20,10 @@
 # define HZ	1024
 #endif
 
+#ifdef __KERNEL__
+#define hz_to_std(a) (a)
+#endif
+
 #define EXEC_PAGESIZE	65536
 
 #ifndef NGROUPS
diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/arc/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/arc/CVS/Entries
--- linux-2.4.20/include/asm-ia64/sn/arc/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/arc/CVS/Entries	2005-01-06 23:06:41.000000000 -0600
@@ -0,0 +1,3 @@
+/hinv.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+/types.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/arc/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/arc/CVS/Repository
--- linux-2.4.20/include/asm-ia64/sn/arc/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/arc/CVS/Repository	2005-01-06 23:06:41.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-ia64/sn/arc
diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/arc/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/arc/CVS/Root
--- linux-2.4.20/include/asm-ia64/sn/arc/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/arc/CVS/Root	2005-01-06 23:06:41.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/arc/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/arc/CVS/Tag
--- linux-2.4.20/include/asm-ia64/sn/arc/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/arc/CVS/Tag	2005-01-06 23:06:41.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/CVS/Entries
--- linux-2.4.20/include/asm-ia64/sn/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/CVS/Entries	2005-01-06 23:08:09.000000000 -0600
@@ -0,0 +1,63 @@
+/addrs.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/alenlist.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/arch.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/ate_utils.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/bte.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/bte_copy.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/cdl.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/clksupport.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/dmamap.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/driver.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/eeprom.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/fetchop.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/gda.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/hack.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/hcl.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/hcl_util.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/hires_clock.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/idle.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/ifconfig_net.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/intr.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/intr_public.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/invent.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/io.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/ioc3.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/ioerror.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/ioerror_handling.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/iograph.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/klclock.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/klconfig.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/kldir.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/labelcl.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/leds.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/mca.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/mmtimer_private.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/module.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/nag.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/nic.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/nodepda.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
+/pda.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+/pio.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+/prio.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+/router.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+/sgi.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+/simulator.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+/slotnum.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+/sn_cpuid.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+/sn_fru.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+/sn_pio_sync.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+/sn_private.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+/sn_sal.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+/snconfig.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+/sndrv.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+/sv.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+/systeminfo.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+/types.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+/uart16550.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+/vector.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+D/arc////
+D/ksys////
+D/pci////
+D/sn1////
+D/sn2////
+D/xtalk////
diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/CVS/Repository
--- linux-2.4.20/include/asm-ia64/sn/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/CVS/Repository	2005-01-06 23:06:40.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-ia64/sn
diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/CVS/Root
--- linux-2.4.20/include/asm-ia64/sn/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/CVS/Root	2005-01-06 23:06:40.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/CVS/Tag
--- linux-2.4.20/include/asm-ia64/sn/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/CVS/Tag	2005-01-06 23:06:41.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/ksys/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/ksys/CVS/Entries
--- linux-2.4.20/include/asm-ia64/sn/ksys/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/ksys/CVS/Entries	2005-01-06 23:06:41.000000000 -0600
@@ -0,0 +1,3 @@
+/elsc.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+/l1.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/ksys/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/ksys/CVS/Repository
--- linux-2.4.20/include/asm-ia64/sn/ksys/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/ksys/CVS/Repository	2005-01-06 23:06:41.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-ia64/sn/ksys
diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/ksys/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/ksys/CVS/Root
--- linux-2.4.20/include/asm-ia64/sn/ksys/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/ksys/CVS/Root	2005-01-06 23:06:41.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/ksys/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/ksys/CVS/Tag
--- linux-2.4.20/include/asm-ia64/sn/ksys/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/ksys/CVS/Tag	2005-01-06 23:06:41.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/pci/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/pci/CVS/Entries
--- linux-2.4.20/include/asm-ia64/sn/pci/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/pci/CVS/Entries	2005-01-06 23:06:42.000000000 -0600
@@ -0,0 +1,9 @@
+/bridge.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+/pci_bus_cvlink.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+/pci_defs.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+/pciba.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+/pcibr.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+/pcibr_private.h/1.3.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+/pciio.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+/pciio_private.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/pci/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/pci/CVS/Repository
--- linux-2.4.20/include/asm-ia64/sn/pci/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/pci/CVS/Repository	2005-01-06 23:06:41.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-ia64/sn/pci
diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/pci/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/pci/CVS/Root
--- linux-2.4.20/include/asm-ia64/sn/pci/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/pci/CVS/Root	2005-01-06 23:06:41.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/pci/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/pci/CVS/Tag
--- linux-2.4.20/include/asm-ia64/sn/pci/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/pci/CVS/Tag	2005-01-06 23:06:42.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/sn1/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/sn1/CVS/Entries
--- linux-2.4.20/include/asm-ia64/sn/sn1/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/sn1/CVS/Entries	2005-01-06 23:06:43.000000000 -0600
@@ -0,0 +1,28 @@
+/addrs.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+/arch.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+/bedrock.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+/hubdev.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+/hubio.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
+/hubio_next.h/1.2.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
+/hublb.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
+/hublb_next.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
+/hubmd.h/1.2.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
+/hubmd_next.h/1.2.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
+/hubni.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
+/hubni_next.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
+/hubpi.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
+/hubpi_next.h/1.2.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
+/hubspc.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
+/hubstat.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
+/hubxb.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
+/hubxb_next.h/1.2.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
+/hwcntrs.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
+/intr.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
+/intr_public.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
+/ip27config.h/1.2.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
+/mem_refcnt.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
+/mmzone_sn1.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
+/slotnum.h/1.2.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
+/sn_private.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
+/synergy.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/sn1/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/sn1/CVS/Repository
--- linux-2.4.20/include/asm-ia64/sn/sn1/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/sn1/CVS/Repository	2005-01-06 23:06:42.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-ia64/sn/sn1
diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/sn1/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/sn1/CVS/Root
--- linux-2.4.20/include/asm-ia64/sn/sn1/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/sn1/CVS/Root	2005-01-06 23:06:42.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/sn1/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/sn1/CVS/Tag
--- linux-2.4.20/include/asm-ia64/sn/sn1/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/sn1/CVS/Tag	2005-01-06 23:06:43.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/sn2/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/sn2/CVS/Entries
--- linux-2.4.20/include/asm-ia64/sn/sn2/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/sn2/CVS/Entries	2005-01-06 23:06:46.000000000 -0600
@@ -0,0 +1,12 @@
+/addrs.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
+/arch.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
+/intr.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
+/mmzone_sn2.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
+/shub.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
+/shub_md.h/1.1.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/shub_mmr.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
+/shub_mmr_t.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
+/shubio.h/1.1.2.1/Wed Jun 26 22:36:36 2002/-ko/Tlinux_2_4_20
+/slotnum.h/1.1.2.1/Wed Jun 26 22:36:36 2002/-ko/Tlinux_2_4_20
+/sn_private.h/1.1.2.1/Wed Jun 26 22:36:36 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/sn2/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/sn2/CVS/Repository
--- linux-2.4.20/include/asm-ia64/sn/sn2/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/sn2/CVS/Repository	2005-01-06 23:06:43.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-ia64/sn/sn2
diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/sn2/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/sn2/CVS/Root
--- linux-2.4.20/include/asm-ia64/sn/sn2/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/sn2/CVS/Root	2005-01-06 23:06:43.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/sn2/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/sn2/CVS/Tag
--- linux-2.4.20/include/asm-ia64/sn/sn2/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/sn2/CVS/Tag	2005-01-06 23:06:46.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/xtalk/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/xtalk/CVS/Entries
--- linux-2.4.20/include/asm-ia64/sn/xtalk/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/xtalk/CVS/Entries	2005-01-06 23:06:46.000000000 -0600
@@ -0,0 +1,8 @@
+/xbow.h/1.2.2.1/Wed Jun 26 22:36:36 2002/-ko/Tlinux_2_4_20
+/xbow_info.h/1.1.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
+/xswitch.h/1.1.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
+/xtalk.h/1.2.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
+/xtalk_private.h/1.2.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
+/xtalkaddrs.h/1.2.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
+/xwidget.h/1.1.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/xtalk/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/xtalk/CVS/Repository
--- linux-2.4.20/include/asm-ia64/sn/xtalk/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/xtalk/CVS/Repository	2005-01-06 23:06:46.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-ia64/sn/xtalk
diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/xtalk/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/xtalk/CVS/Root
--- linux-2.4.20/include/asm-ia64/sn/xtalk/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/xtalk/CVS/Root	2005-01-06 23:06:46.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/xtalk/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/xtalk/CVS/Tag
--- linux-2.4.20/include/asm-ia64/sn/xtalk/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/xtalk/CVS/Tag	2005-01-06 23:06:46.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-m68k/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-m68k/CVS/Entries
--- linux-2.4.20/include/asm-m68k/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-m68k/CVS/Entries	2005-01-06 23:06:48.000000000 -0600
@@ -0,0 +1,156 @@
+/a.out.h/1.1.1.1/Sun Jun  1 03:17:11 1997/-ko/Tlinux_2_4_20
+/adb.h/1.1/Tue Aug 25 09:21:42 1998/-ko/Tlinux_2_4_20
+/adb_iop.h/1.1/Thu Feb 24 00:13:19 2000/-ko/Tlinux_2_4_20
+/adb_mouse.h/1.2/Thu Jun 17 13:30:33 1999/-ko/Tlinux_2_4_20
+/amigahw.h/1.7/Wed Aug 22 03:25:01 2001/-ko/Tlinux_2_4_20
+/amigaints.h/1.3/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/amigayle.h/1.2/Wed Aug 22 03:25:01 2001/-ko/Tlinux_2_4_20
+/amipcmcia.h/1.2/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/apollodma.h/1.1.4.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/apollohw.h/1.2/Fri Feb 18 00:24:47 2000/-ko/Tlinux_2_4_20
+/atafd.h/1.1.1.1/Sun Jun  1 03:17:09 1997/-ko/Tlinux_2_4_20
+/atafdreg.h/1.1.1.1/Sun Jun  1 03:17:11 1997/-ko/Tlinux_2_4_20
+/atari_SCCserial.h/1.4/Sun Jun 13 16:35:46 1999/-ko/Tlinux_2_4_20
+/atari_SLM.h/1.1.1.1/Sun Jun  1 03:17:10 1997/-ko/Tlinux_2_4_20
+/atari_acsi.h/1.1.1.1/Sun Jun  1 03:17:10 1997/-ko/Tlinux_2_4_20
+/atari_joystick.h/1.2/Thu Jun 17 13:30:33 1999/-ko/Tlinux_2_4_20
+/atari_stdma.h/1.1.1.1/Sun Jun  1 03:17:09 1997/-ko/Tlinux_2_4_20
+/atari_stram.h/1.2/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/atarihw.h/1.4/Tue Nov  6 07:56:12 2001/-ko/Tlinux_2_4_20
+/atariints.h/1.1.1.1/Sun Jun  1 03:17:10 1997/-ko/Tlinux_2_4_20
+/atarikb.h/1.1.1.1/Sun Jun  1 03:17:11 1997/-ko/Tlinux_2_4_20
+/atomic.h/1.3/Thu Aug 23 22:24:47 2001/-ko/Tlinux_2_4_20
+/bitops.h/1.10/Tue Nov  6 07:56:12 2001/-ko/Tlinux_2_4_20
+/blinken.h/1.1/Tue Aug 25 09:21:44 1998/-ko/Tlinux_2_4_20
+/bootinfo.h/1.7/Wed Jun 13 17:28:13 2001/-ko/Tlinux_2_4_20
+/bugs.h/1.2/Tue Mar 17 22:16:04 1998/-ko/Tlinux_2_4_20
+/bvme6000hw.h/1.3/Fri Feb 18 00:24:47 2000/-ko/Tlinux_2_4_20
+/byteorder.h/1.3/Tue Dec 16 05:36:37 1997/-ko/Tlinux_2_4_20
+/cache.h/1.4/Fri Feb 18 00:24:47 2000/-ko/Tlinux_2_4_20
+/cachectl.h/1.1.1.1/Sun Jun  1 03:17:11 1997/-ko/Tlinux_2_4_20
+/checksum.h/1.5/Fri Feb 18 22:06:19 2000/-ko/Tlinux_2_4_20
+/contregs.h/1.1/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
+/current.h/1.1.1.1/Sun Jun  1 03:17:09 1997/-ko/Tlinux_2_4_20
+/delay.h/1.2/Thu Jan 11 04:02:45 2001/-ko/Tlinux_2_4_20
+/div64.h/1.1/Fri Feb 18 00:24:47 2000/-ko/Tlinux_2_4_20
+/dma.h/1.2/Fri Feb 18 00:24:47 2000/-ko/Tlinux_2_4_20
+/dsp56k.h/1.1.1.1/Sun Jun  1 03:17:10 1997/-ko/Tlinux_2_4_20
+/dvma.h/1.5/Wed Aug 22 03:25:01 2001/-ko/Tlinux_2_4_20
+/elf.h/1.8/Wed Jul 12 00:45:49 2000/-ko/Tlinux_2_4_20
+/entry.h/1.8/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/errno.h/1.1.1.1/Sun Jun  1 03:17:09 1997/-ko/Tlinux_2_4_20
+/fbio.h/1.1/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
+/fcntl.h/1.7/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/floppy.h/1.4/Tue Nov  6 07:56:12 2001/-ko/Tlinux_2_4_20
+/fpu.h/1.2/Sat Oct  9 00:01:42 1999/-ko/Tlinux_2_4_20
+/hardirq.h/1.11/Tue Nov  6 07:56:12 2001/-ko/Tlinux_2_4_20
+/hdreg.h/1.1/Thu Jun 17 14:08:59 1999/-ko/Tlinux_2_4_20
+/hw_irq.h/1.1.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
+/hwtest.h/1.2/Sat Oct  9 00:01:42 1999/-ko/Tlinux_2_4_20
+/ide.h/1.12.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
+/idprom.h/1.1/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
+/init.h/1.5/Fri Feb 18 22:06:19 2000/-ko/Tlinux_2_4_20
+/intersil.h/1.3/Wed Aug 22 03:25:01 2001/-ko/Tlinux_2_4_20
+/io.h/1.11.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/ioctl.h/1.2/Mon Dec  1 18:00:34 1997/-ko/Tlinux_2_4_20
+/ioctls.h/1.4/Tue Mar 17 22:16:06 1998/-ko/Tlinux_2_4_20
+/ipc.h/1.2/Mon Feb 15 02:22:02 1999/-ko/Tlinux_2_4_20
+/ipcbuf.h/1.1/Wed Feb 16 01:07:48 2000/-ko/Tlinux_2_4_20
+/irq.h/1.4.4.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/kbio.h/1.1/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
+/keyboard.h/1.7/Sat Sep 22 12:49:40 2001/-ko/Tlinux_2_4_20
+/linux_logo.h/1.4/Wed Aug 22 03:25:01 2001/-ko/Tlinux_2_4_20
+/mac_asc.h/1.1/Tue Mar 17 22:16:07 1998/-ko/Tlinux_2_4_20
+/mac_baboon.h/1.1/Thu Feb 24 00:13:19 2000/-ko/Tlinux_2_4_20
+/mac_iop.h/1.2/Wed Jun 13 17:28:13 2001/-ko/Tlinux_2_4_20
+/mac_mouse.h/1.2/Thu Jun 17 13:30:34 1999/-ko/Tlinux_2_4_20
+/mac_oss.h/1.1/Sat Oct  9 00:01:42 1999/-ko/Tlinux_2_4_20
+/mac_psc.h/1.3/Wed Aug 22 03:25:01 2001/-ko/Tlinux_2_4_20
+/mac_via.h/1.1.4.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/machdep.h/1.7.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
+/machines.h/1.1/Sat Oct  9 00:01:42 1999/-ko/Tlinux_2_4_20
+/machw.h/1.4.4.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/macintosh.h/1.5.4.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/macints.h/1.4/Thu Feb 24 00:13:19 2000/-ko/Tlinux_2_4_20
+/math-emu.h/1.1/Sat Oct  9 00:01:42 1999/-ko/Tlinux_2_4_20
+/mc146818rtc.h/1.2/Tue Nov  6 07:56:12 2001/-ko/Tlinux_2_4_20
+/md.h/1.1/Tue Aug 25 09:21:49 1998/-ko/Tlinux_2_4_20
+/mman.h/1.2/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/mmu.h/1.1/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
+/mmu_context.h/1.8/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
+/module.h/1.2/Tue Aug 21 12:19:08 2001/-ko/Tlinux_2_4_20
+/motorola_pgalloc.h/1.3/Wed Aug 22 03:25:01 2001/-ko/Tlinux_2_4_20
+/motorola_pgtable.h/1.1.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
+/movs.h/1.3/Thu Jan 11 04:02:45 2001/-ko/Tlinux_2_4_20
+/msgbuf.h/1.1/Wed Feb 16 01:07:48 2000/-ko/Tlinux_2_4_20
+/mvme147hw.h/1.2/Fri Feb 18 00:24:47 2000/-ko/Tlinux_2_4_20
+/mvme16xhw.h/1.3/Fri Feb 18 00:24:47 2000/-ko/Tlinux_2_4_20
+/namei.h/1.5/Wed Apr 19 04:00:20 2000/-ko/Tlinux_2_4_20
+/nubus.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/openprom.h/1.3/Wed Aug 22 03:25:01 2001/-ko/Tlinux_2_4_20
+/oplib.h/1.2/Sat Oct  9 00:01:42 1999/-ko/Tlinux_2_4_20
+/page.h/1.11.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
+/page_offset.h/1.1/Fri Feb 18 00:24:47 2000/-ko/Tlinux_2_4_20
+/param.h/1.8/Thu Jan 11 04:02:45 2001/-ko/Tlinux_2_4_20
+/parport.h/1.2/Wed Aug 22 03:25:01 2001/-ko/Tlinux_2_4_20
+/pci.h/1.4.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/pgalloc.h/1.6.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
+/pgtable.h/1.19/Tue Nov  6 07:56:12 2001/-ko/Tlinux_2_4_20
+/poll.h/1.2/Fri Feb 18 00:24:48 2000/-ko/Tlinux_2_4_20
+/posix_types.h/1.4/Wed Feb 16 01:07:48 2000/-ko/Tlinux_2_4_20
+/processor.h/1.14/Mon Nov  5 20:16:25 2001/-ko/Tlinux_2_4_20
+/ptrace.h/1.2/Tue Mar 17 22:16:09 1998/-ko/Tlinux_2_4_20
+/q40_keyboard.h/1.4.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/q40_master.h/1.3.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
+/q40ints.h/1.2.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
+/raw_io.h/1.2.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/resource.h/1.5.4.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
+/rtc.h/1.1.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
+/sbus.h/1.2/Wed Aug 22 03:25:01 2001/-ko/Tlinux_2_4_20
+/scatterlist.h/1.3.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
+/segment.h/1.2/Tue Mar 17 22:16:09 1998/-ko/Tlinux_2_4_20
+/semaphore-helper.h/1.3/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
+/semaphore.h/1.10.2.3/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/sembuf.h/1.1/Wed Feb 16 01:07:48 2000/-ko/Tlinux_2_4_20
+/serial.h/1.10.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
+/setup.h/1.9/Fri Feb 18 00:24:48 2000/-ko/Tlinux_2_4_20
+/shm.h/1.3/Fri Feb  4 07:40:53 2000/-ko/Tlinux_2_4_20
+/shmbuf.h/1.1/Wed Feb 16 01:07:48 2000/-ko/Tlinux_2_4_20
+/shmparam.h/1.3/Sat Jan 29 01:42:27 2000/-ko/Tlinux_2_4_20
+/sigcontext.h/1.1.1.1/Sun Jun  1 03:17:10 1997/-ko/Tlinux_2_4_20
+/siginfo.h/1.7.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
+/signal.h/1.5/Fri Feb  4 07:40:53 2000/-ko/Tlinux_2_4_20
+/smplock.h/1.3/Mon Mar 27 23:54:40 2000/-ko/Tlinux_2_4_20
+/socket.h/1.7.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/sockios.h/1.1.1.1/Sun Jun  1 03:17:11 1997/-ko/Tlinux_2_4_20
+/softirq.h/1.10/Tue Nov  6 07:56:12 2001/-ko/Tlinux_2_4_20
+/spinlock.h/1.5/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/stat.h/1.8/Tue Nov  6 07:56:12 2001/-ko/Tlinux_2_4_20
+/statfs.h/1.1.1.1/Sun Jun  1 03:17:10 1997/-ko/Tlinux_2_4_20
+/string.h/1.5/Tue Nov  6 07:56:12 2001/-ko/Tlinux_2_4_20
+/sun3-head.h/1.1/Sat Oct  9 00:01:42 1999/-ko/Tlinux_2_4_20
+/sun3_pgalloc.h/1.3/Wed Aug 22 03:25:04 2001/-ko/Tlinux_2_4_20
+/sun3_pgtable.h/1.2.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
+/sun3ints.h/1.3/Wed Aug 22 03:25:04 2001/-ko/Tlinux_2_4_20
+/sun3mmu.h/1.1/Sat Oct  9 00:01:42 1999/-ko/Tlinux_2_4_20
+/sun3x.h/1.2/Wed Aug 22 03:25:04 2001/-ko/Tlinux_2_4_20
+/sun3xflop.h/1.2/Tue Nov  6 07:56:12 2001/-ko/Tlinux_2_4_20
+/sun3xprom.h/1.1/Wed Aug 22 03:25:05 2001/-ko/Tlinux_2_4_20
+/swim_iop.h/1.1/Sat Oct  9 00:01:42 1999/-ko/Tlinux_2_4_20
+/system.h/1.12.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
+/termbits.h/1.2/Mon Feb 15 02:22:07 1999/-ko/Tlinux_2_4_20
+/termios.h/1.10.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/timex.h/1.2.6.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/tlb.h/1.1/Fri Oct 19 01:25:00 2001/-ko/Tlinux_2_4_20
+/traps.h/1.3/Thu Jan 11 04:02:45 2001/-ko/Tlinux_2_4_20
+/types.h/1.3.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/uaccess.h/1.8/Tue Nov  6 07:56:12 2001/-ko/Tlinux_2_4_20
+/ucontext.h/1.1/Tue Mar 17 22:16:12 1998/-ko/Tlinux_2_4_20
+/unaligned.h/1.1.1.1/Sun Jun  1 03:17:10 1997/-ko/Tlinux_2_4_20
+/unistd.h/1.17.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/user.h/1.1.1.1/Sun Jun  1 03:17:09 1997/-ko/Tlinux_2_4_20
+/virtconvert.h/1.4/Fri Feb 18 00:24:48 2000/-ko/Tlinux_2_4_20
+/vuid_event.h/1.1/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
+/xor.h/1.1/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
+/zorro.h/1.2/Tue Nov  6 07:56:12 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-m68k/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-m68k/CVS/Repository
--- linux-2.4.20/include/asm-m68k/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-m68k/CVS/Repository	2005-01-06 23:06:46.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-m68k
diff -urNd -urNd linux-2.4.20/include/asm-m68k/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-m68k/CVS/Root
--- linux-2.4.20/include/asm-m68k/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-m68k/CVS/Root	2005-01-06 23:06:46.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-m68k/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-m68k/CVS/Tag
--- linux-2.4.20/include/asm-m68k/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-m68k/CVS/Tag	2005-01-06 23:06:48.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-m68k/param.h linux-2.4.20-mipscvs-20050106/include/asm-m68k/param.h
--- linux-2.4.20/include/asm-m68k/param.h	2001-01-04 15:00:55.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-m68k/param.h	2001-01-10 22:02:45.000000000 -0600
@@ -3,6 +3,9 @@
 
 #ifndef HZ
 #define HZ 100
+#ifdef __KERNEL__
+#define hz_to_std(a) (a)
+#endif
 #endif
 
 #define EXEC_PAGESIZE	8192
diff -urNd -urNd linux-2.4.20/include/asm-mips/arc/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/arc/CVS/Entries
--- linux-2.4.20/include/asm-mips/arc/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/arc/CVS/Entries	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1,2 @@
+/types.h/1.1/Sun Mar 26 23:09:05 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-mips/arc/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/arc/CVS/Repository
--- linux-2.4.20/include/asm-mips/arc/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/arc/CVS/Repository	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-mips/arc
diff -urNd -urNd linux-2.4.20/include/asm-mips/arc/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/arc/CVS/Root
--- linux-2.4.20/include/asm-mips/arc/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/arc/CVS/Root	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-mips/arc/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/arc/CVS/Tag
--- linux-2.4.20/include/asm-mips/arc/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/arc/CVS/Tag	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-mips/asm.h linux-2.4.20-mipscvs-20050106/include/asm-mips/asm.h
--- linux-2.4.20/include/asm-mips/asm.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/asm.h	2003-01-07 17:51:51.000000000 -0600
@@ -150,12 +150,12 @@
 		prefx	hint,addr;			\
 		.set	pop
 
-#else
+#else /* !CONFIG_CPU_HAS_PREFETCH */
 
 #define PREF(hint,addr)
 #define PREFX(hint,addr)
 
-#endif
+#endif /* !CONFIG_CPU_HAS_PREFETCH */
 
 /*
  * MIPS ISA IV/V movn/movz instructions and equivalents for older CPUs.
diff -urNd -urNd linux-2.4.20/include/asm-mips/asmmacro.h linux-2.4.20-mipscvs-20050106/include/asm-mips/asmmacro.h
--- linux-2.4.20/include/asm-mips/asmmacro.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/asmmacro.h	2002-10-07 09:34:18.000000000 -0500
@@ -43,7 +43,7 @@
 	sdc1	$f30, (THREAD_FPU + 0x0f0)(thread); \
 	sw	tmp,  (THREAD_FPU + 0x100)(thread)
 
-#ifdef __LITTLE_ENDIAN
+#if defined (__MIPSEL__)
 #define FPU_SAVE_SINGLE(thread,tmp)                 \
 	cfc1	tmp,  fcr31;                        \
 	swc1	$f0,  (THREAD_FPU + 0x000)(thread); \
@@ -79,7 +79,7 @@
 	swc1	$f30, (THREAD_FPU + 0x0f0)(thread); \
 	swc1	$f31, (THREAD_FPU + 0x0f4)(thread); \
 	sw	tmp,  (THREAD_FPU + 0x100)(thread)
-#else
+#elif defined (__MIPSEB__)
 #define FPU_SAVE_SINGLE(thread,tmp)                 \
 	cfc1	tmp,  fcr31;                        \
 	swc1	$f0,  (THREAD_FPU + 0x004)(thread); \
@@ -115,6 +115,8 @@
 	swc1	$f30, (THREAD_FPU + 0x0f4)(thread); \
 	swc1	$f31, (THREAD_FPU + 0x0f0)(thread); \
 	sw	tmp,  (THREAD_FPU + 0x100)(thread)
+#else
+#error "MIPS, but neither __MIPSEB__, nor __MIPSEL__???"
 #endif
 
 #define FPU_RESTORE_DOUBLE(thread, tmp) \
@@ -137,7 +139,7 @@
 	ldc1	$f30, (THREAD_FPU + 0x0f0)(thread); \
 	ctc1	tmp,  fcr31
 
-#ifdef __LITTLE_ENDIAN
+#if defined (__MIPSEL__)
 #define FPU_RESTORE_SINGLE(thread,tmp)              \
 	lw	tmp,  (THREAD_FPU + 0x100)(thread); \
 	lwc1	$f0,  (THREAD_FPU + 0x000)(thread); \
@@ -173,7 +175,7 @@
 	lwc1	$f30, (THREAD_FPU + 0x0f0)(thread); \
 	lwc1	$f31, (THREAD_FPU + 0x0f4)(thread); \
 	ctc1	tmp,  fcr31
-#else
+#elif defined (__MIPSEB__)
 #define FPU_RESTORE_SINGLE(thread,tmp)              \
 	lw	tmp,  (THREAD_FPU + 0x100)(thread); \
 	lwc1	$f0,  (THREAD_FPU + 0x004)(thread); \
@@ -209,6 +211,8 @@
 	lwc1	$f30, (THREAD_FPU + 0x0f4)(thread); \
 	lwc1	$f31, (THREAD_FPU + 0x0f0)(thread); \
 	ctc1	tmp,  fcr31
+#else
+#error "MIPS, but neither __MIPSEB__, nor __MIPSEL__???"
 #endif
 
 #define CPU_SAVE_NONSCRATCH(thread) \
diff -urNd -urNd linux-2.4.20/include/asm-mips/atomic.h linux-2.4.20-mipscvs-20050106/include/asm-mips/atomic.h
--- linux-2.4.20/include/asm-mips/atomic.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/atomic.h	2003-01-24 06:58:30.000000000 -0600
@@ -59,9 +59,9 @@
 {
 	unsigned long flags;
 
-	save_and_cli(flags);
+	local_irq_save(flags);
 	v->counter += i;
-	restore_flags(flags);
+	local_irq_restore(flags);
 }
 
 /*
@@ -76,9 +76,9 @@
 {
 	unsigned long flags;
 
-	save_and_cli(flags);
+	local_irq_save(flags);
 	v->counter -= i;
-	restore_flags(flags);
+	local_irq_restore(flags);
 }
 
 extern __inline__ int atomic_add_return(int i, atomic_t * v)
@@ -86,11 +86,11 @@
 	unsigned long flags;
 	int temp;
 
-	save_and_cli(flags);
+	local_irq_save(flags);
 	temp = v->counter;
 	temp += i;
 	v->counter = temp;
-	restore_flags(flags);
+	local_irq_restore(flags);
 
 	return temp;
 }
@@ -100,11 +100,11 @@
 	unsigned long flags;
 	int temp;
 
-	save_and_cli(flags);
+	local_irq_save(flags);
 	temp = v->counter;
 	temp -= i;
 	v->counter = temp;
-	restore_flags(flags);
+	local_irq_restore(flags);
 
 	return temp;
 }
@@ -228,7 +228,7 @@
  * other cases.  Note that the guaranteed
  * useful range of an atomic_t is only 24 bits.
  */
-#define atomic_inc_and_test(v) (atomic_inc_return(1, (v)) == 0)
+#define atomic_inc_and_test(v) (atomic_inc_return(v) == 0)
 
 /*
  * atomic_dec_and_test - decrement by 1 and test
@@ -268,9 +268,8 @@
  * if the result is negative, or false when
  * result is greater than or equal to zero.  Note that the guaranteed
  * useful range of an atomic_t is only 24 bits.
- *
- * Currently not implemented for MIPS.
  */
+#define atomic_add_negative(i,v) (atomic_add_return(i, (v)) < 0)
 
 /* Atomic operations are already serializing */
 #define smp_mb__before_atomic_dec()	smp_mb()
diff -urNd -urNd linux-2.4.20/include/asm-mips/au1000_dma.h linux-2.4.20-mipscvs-20050106/include/asm-mips/au1000_dma.h
--- linux-2.4.20/include/asm-mips/au1000_dma.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/au1000_dma.h	2002-12-29 04:30:36.000000000 -0600
@@ -31,6 +31,7 @@
 #ifndef __ASM_AU1000_DMA_H
 #define __ASM_AU1000_DMA_H
 
+#include <linux/config.h>
 #include <asm/io.h>		/* need byte IO */
 #include <linux/spinlock.h>	/* And spinlocks */
 #include <linux/delay.h>
@@ -228,7 +229,7 @@
 	disable_dma(dmanr);
 
 	// set device FIFO address
-	au_writel(virt_to_phys((void *) chan->fifo_addr),
+	au_writel(PHYSADDR(chan->fifo_addr),
 		  chan->io + DMA_PERIPHERAL_ADDR);
 
 	mode = chan->mode | (chan->dev_id << DMA_DID_BIT);
@@ -289,8 +290,7 @@
 	if (chan->dev_id != DMA_ID_GP04 && chan->dev_id != DMA_ID_GP05)
 		return;
 
-	au_writel(virt_to_phys((void *) a),
-		  chan->io + DMA_PERIPHERAL_ADDR);
+	au_writel(PHYSADDR(a), chan->io + DMA_PERIPHERAL_ADDR);
 }
 
 /*
diff -urNd -urNd linux-2.4.20/include/asm-mips/au1000.h linux-2.4.20-mipscvs-20050106/include/asm-mips/au1000.h
--- linux-2.4.20/include/asm-mips/au1000.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/au1000.h	2002-12-11 00:12:30.000000000 -0600
@@ -28,10 +28,13 @@
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+ /*
+  * some definitions add by takuzo@sm.sony.co.jp and sato@sm.sony.co.jp
+  */
+
 #ifndef _AU1000_H_
 #define _AU1000_H_
 
-#include <linux/config.h>
 #include <linux/delay.h>
 #include <asm/io.h>
 
@@ -84,12 +87,12 @@
 }
 
 /* arch/mips/au1000/common/clocks.c */
-extern void set_au1000_speed(unsigned int new_freq);
-extern unsigned int get_au1000_speed(void);
-extern void set_au1000_uart_baud_base(unsigned long new_baud_base);
-extern unsigned long get_au1000_uart_baud_base(void);
-extern void set_au1000_lcd_clock(void);
-extern unsigned int get_au1000_lcd_clock(void);
+extern void set_au1x00_speed(unsigned int new_freq);
+extern unsigned int get_au1x00_speed(void);
+extern void set_au1x00_uart_baud_base(unsigned long new_baud_base);
+extern unsigned long get_au1x00_uart_baud_base(void);
+extern void set_au1x00_lcd_clock(void);
+extern unsigned int get_au1x00_lcd_clock(void);
 
 #ifdef CONFIG_PM
 /* no CP0 timer irq */
@@ -721,7 +724,52 @@
 #define SSI1_CONFIG                0xB1680020
 #define SSI1_ADATA                 0xB1680024
 #define SSI1_CLKDIV                0xB1680028
-#define SSI1_CONTROL               0xB1680100
+#define SSI1_ENABLE                0xB1680100
+
+/*
+ * Register content definitions
+ */
+#define SSI_STATUS_BF				(1<<4)
+#define SSI_STATUS_OF				(1<<3)
+#define SSI_STATUS_UF				(1<<2)
+#define SSI_STATUS_D				(1<<1)
+#define SSI_STATUS_B				(1<<0)
+
+/* SSI_INT */
+#define SSI_INT_OI					(1<<3)
+#define SSI_INT_UI					(1<<2)
+#define SSI_INT_DI					(1<<1)
+
+/* SSI_INTEN */
+#define SSI_INTEN_OIE				(1<<3)
+#define SSI_INTEN_UIE				(1<<2)
+#define SSI_INTEN_DIE				(1<<1)
+
+#define SSI_CONFIG_AO				(1<<24)
+#define SSI_CONFIG_DO				(1<<23)
+#define SSI_CONFIG_ALEN				(7<<20)
+#define SSI_CONFIG_DLEN				(15<<16)
+#define SSI_CONFIG_DD				(1<<11)
+#define SSI_CONFIG_AD				(1<<10)
+#define SSI_CONFIG_BM				(3<<8)
+#define SSI_CONFIG_CE				(1<<7)
+#define SSI_CONFIG_DP				(1<<6)
+#define SSI_CONFIG_DL				(1<<5)
+#define SSI_CONFIG_EP				(1<<4)
+#define SSI_CONFIG_ALEN_N(N)		((N-1)<<20)
+#define SSI_CONFIG_DLEN_N(N)		((N-1)<<16)
+#define SSI_CONFIG_BM_HI			(0<<8)
+#define SSI_CONFIG_BM_LO			(1<<8)
+#define SSI_CONFIG_BM_CY			(2<<8)
+
+#define SSI_ADATA_D					(1<<24)
+#define SSI_ADATA_ADDR				(0xFF<<16)
+#define SSI_ADATA_DATA				(0x0FFF)
+#define SSI_ADATA_ADDR_N(N)			(N<<16)
+
+#define SSI_ENABLE_CD				(1<<1)
+#define SSI_ENABLE_E				(1<<0)
+
 
 /* IrDA Controller */
 #define IRDA_BASE                 0xB0300000
diff -urNd -urNd linux-2.4.20/include/asm-mips/au1000_pcmcia.h linux-2.4.20-mipscvs-20050106/include/asm-mips/au1000_pcmcia.h
--- linux-2.4.20/include/asm-mips/au1000_pcmcia.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/au1000_pcmcia.h	2003-01-07 04:41:30.000000000 -0600
@@ -33,6 +33,22 @@
 #define AU1000_PCMCIA_IO_SPEED       (255)
 #define AU1000_PCMCIA_MEM_SPEED      (300)
 
+#define AU1X_SOCK0_IO        0xF00000000
+#define AU1X_SOCK0_PHYS_ATTR 0xF40000000
+#define AU1X_SOCK0_PHYS_MEM  0xF80000000
+
+/* pcmcia socket 1 needs external glue logic so the memory map
+ * differs from board to board.
+ */
+#if defined(CONFIG_MIPS_PB1000) || defined(CONFIG_MIPS_PB1100) || defined(CONFIG_MIPS_PB1500)
+#define AU1X_SOCK1_IO        0xF08000000
+#define AU1X_SOCK1_PHYS_ATTR 0xF48000000
+#define AU1X_SOCK1_PHYS_MEM  0xF88000000
+#elif defined(CONFIG_MIPS_DB1000) || defined(CONFIG_MIPS_DB1100) || defined(CONFIG_MIPS_DB1500)
+#define AU1X_SOCK1_IO        0xF04000000
+#define AU1X_SOCK1_PHYS_ATTR 0xF44000000
+#define AU1X_SOCK1_PHYS_MEM  0xF84000000
+#endif
 
 struct pcmcia_state {
   unsigned detect: 1,
@@ -44,7 +60,6 @@
             vs_Xv: 1;
 };
 
-
 struct pcmcia_configure {
   unsigned sock: 8,
             vcc: 8,
@@ -59,7 +74,6 @@
 	unsigned int irq;
 };
 
-typedef u_int memaddr_t;	/* fix me */
 
 struct au1000_pcmcia_socket {
 	socket_state_t        cs_state;
@@ -70,7 +84,7 @@
 	pccard_io_map         io_map[MAX_IO_WIN];
 	pccard_mem_map        mem_map[MAX_WIN];
 	u32                   virt_io;
-	memaddr_t             phys_attr, phys_mem;	/*FIX ME*/
+	ioaddr_t              phys_attr, phys_mem;
 	unsigned short        speed_io, speed_attr, speed_mem;
 };
 
@@ -88,6 +102,8 @@
 
 #if defined(CONFIG_MIPS_PB1000) || defined(CONFIG_MIPS_PB1100) || defined(CONFIG_MIPS_PB1500)
 extern struct pcmcia_low_level pb1x00_pcmcia_ops;
+#elif defined(CONFIG_MIPS_DB1000) || defined(CONFIG_MIPS_DB1100) || defined(CONFIG_MIPS_DB1500)
+extern struct pcmcia_low_level db1x00_pcmcia_ops;
 #else
 error unknown Au1000 board
 #endif
diff -urNd -urNd linux-2.4.20/include/asm-mips/baget/baget.h linux-2.4.20-mipscvs-20050106/include/asm-mips/baget/baget.h
--- linux-2.4.20/include/asm-mips/baget/baget.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/baget/baget.h	2002-08-05 18:53:38.000000000 -0500
@@ -9,13 +9,13 @@
 #include "vic.h"
 #include "vac.h"
 
-#define VIC_BASE         0xBFFC0000 
+#define VIC_BASE         0xBFFC0000
 #define VAC_BASE         0xBFFD0000
 
 
 /* Baget interrupt registers and their sizes */
 
-struct  baget_int_reg { 
+struct  baget_int_reg {
 	unsigned long address;
 	int size;  /* in bytes */
 };
@@ -43,8 +43,8 @@
 #define BAGET_IRQ_MASK(x)       ((NR_IRQS-1) & (x))
 
 #define BAGET_FPU_IRQ           0x26
-#define BAGET_VIC_TIMER_IRQ     0x32 
-#define BAGET_VAC_TIMER_IRQ     0x36 
+#define BAGET_VIC_TIMER_IRQ     0x32
+#define BAGET_VAC_TIMER_IRQ     0x36
 #define BAGET_BSM_IRQ           0x3C
 
 #define BAGET_LANCE_MEM_BASE    0xfcf10000
diff -urNd -urNd linux-2.4.20/include/asm-mips/baget/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/baget/CVS/Entries
--- linux-2.4.20/include/asm-mips/baget/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/baget/CVS/Entries	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1,4 @@
+/baget.h/1.3.2.1/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+/vac.h/1.3.2.2/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+/vic.h/1.2.2.2/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-mips/baget/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/baget/CVS/Repository
--- linux-2.4.20/include/asm-mips/baget/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/baget/CVS/Repository	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-mips/baget
diff -urNd -urNd linux-2.4.20/include/asm-mips/baget/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/baget/CVS/Root
--- linux-2.4.20/include/asm-mips/baget/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/baget/CVS/Root	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-mips/baget/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/baget/CVS/Tag
--- linux-2.4.20/include/asm-mips/baget/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/baget/CVS/Tag	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-mips/baget/vac.h linux-2.4.20-mipscvs-20050106/include/asm-mips/baget/vac.h
--- linux-2.4.20/include/asm-mips/baget/vac.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/baget/vac.h	2002-08-05 18:53:38.000000000 -0500
@@ -21,8 +21,8 @@
 #define    VAC_A24_MASK          (0x3f<<9)
 #define    VAC_A24_D32_ENABLE    (1<<8)
 #define    VAC_A24_A24_CACHINH   (1<<7)
-#define    VAC_A24_A16D32_ENABLE (1<<6)  
-#define    VAC_A24_A16D32        (1<<5)  
+#define    VAC_A24_A16D32_ENABLE (1<<6)
+#define    VAC_A24_A16D32        (1<<5)
 #define    VAC_A24_DATAPATH      (1<<4)
 #define    VAC_A24_IO_CACHINH    (1<<3)
 #define VAC_REG1             0x900
diff -urNd -urNd linux-2.4.20/include/asm-mips/baget/vic.h linux-2.4.20-mipscvs-20050106/include/asm-mips/baget/vic.h
--- linux-2.4.20/include/asm-mips/baget/vic.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/baget/vic.h	2002-08-05 18:53:38.000000000 -0500
@@ -167,10 +167,10 @@
 #define    VIC_SSxCR1_TF1(x)  ((x)&0xf)
 #define VIC_RELEASE      0xD3
 #define    VIC_RELEASE_BLKXFER_BLEN(x) ((x)&0x1f)
-#define    VIC_RELEASE_ROR             (0<<6) 
-#define    VIC_RELEASE_RWD             (1<<6) 
-#define    VIC_RELEASE_ROC             (2<<6) 
-#define    VIC_RELEASE_BCAP            (3<<6) 
+#define    VIC_RELEASE_ROR             (0<<6)
+#define    VIC_RELEASE_RWD             (1<<6)
+#define    VIC_RELEASE_ROC             (2<<6)
+#define    VIC_RELEASE_BCAP            (3<<6)
 #define VIC_BXFER_CTRL   0xD7
 #define    VIC_BXFER_CTRL_MODULE     (1<<7)
 #define    VIC_BXFER_CTRL_LOCAL      (1<<6)
diff -urNd -urNd linux-2.4.20/include/asm-mips/bitops.h linux-2.4.20-mipscvs-20050106/include/asm-mips/bitops.h
--- linux-2.4.20/include/asm-mips/bitops.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/bitops.h	2002-12-20 07:01:02.000000000 -0600
@@ -13,6 +13,14 @@
 #include <linux/types.h>
 #include <asm/byteorder.h>		/* sigh ... */
 
+#if (_MIPS_SZLONG == 32)
+#define SZLONG_LOG 5
+#define SZLONG_MASK 31UL
+#elif (_MIPS_SZLONG == 64)
+#define SZLONG_LOG 6
+#define SZLONG_MASK 63UL 
+#endif
+
 #ifdef __KERNEL__
 
 #include <asm/sgidefs.h>
@@ -28,17 +36,17 @@
  * Only disable interrupt for kernel mode stuff to keep usermode stuff
  * that dares to use kernel include files alive.
  */
-#define __bi_flags unsigned long flags
-#define __bi_cli() __cli()
-#define __bi_save_flags(x) __save_flags(x)
-#define __bi_save_and_cli(x) __save_and_cli(x)
-#define __bi_restore_flags(x) __restore_flags(x)
+#define __bi_flags			unsigned long flags
+#define __bi_cli()			local_irq_disable()
+#define __bi_save_flags(x)		local_save_flags(x)
+#define __bi_local_irq_save(x)		local_irq_save(x)
+#define __bi_local_irq_restore(x)	local_irq_restore(x)
 #else
 #define __bi_flags
 #define __bi_cli()
 #define __bi_save_flags(x)
-#define __bi_save_and_cli(x)
-#define __bi_restore_flags(x)
+#define __bi_local_irq_save(x)
+#define __bi_local_irq_restore(x)
 #endif /* __KERNEL__ */
 
 #ifdef CONFIG_CPU_HAS_LLSC
@@ -58,8 +66,7 @@
  * Note that @nr may be almost arbitrarily large; this function is not
  * restricted to acting on a single-word quantity.
  */
-extern __inline__ void
-set_bit(int nr, volatile void *addr)
+static __inline__ void set_bit(int nr, volatile void *addr)
 {
 	unsigned long *m = ((unsigned long *) addr) + (nr >> 5);
 	unsigned long temp;
@@ -82,7 +89,7 @@
  * If it's called on the same region of memory simultaneously, the effect
  * may be that only one operation succeeds.
  */
-extern __inline__ void __set_bit(int nr, volatile void * addr)
+static __inline__ void __set_bit(int nr, volatile void * addr)
 {
 	unsigned long * m = ((unsigned long *) addr) + (nr >> 5);
 
@@ -99,8 +106,7 @@
  * you should call smp_mb__before_clear_bit() and/or smp_mb__after_clear_bit()
  * in order to ensure changes are visible on other processors.
  */
-extern __inline__ void
-clear_bit(int nr, volatile void *addr)
+static __inline__ void clear_bit(int nr, volatile void *addr)
 {
 	unsigned long *m = ((unsigned long *) addr) + (nr >> 5);
 	unsigned long temp;
@@ -123,8 +129,7 @@
  * Note that @nr may be almost arbitrarily large; this function is not
  * restricted to acting on a single-word quantity.
  */
-extern __inline__ void
-change_bit(int nr, volatile void *addr)
+static __inline__ void change_bit(int nr, volatile void *addr)
 {
 	unsigned long *m = ((unsigned long *) addr) + (nr >> 5);
 	unsigned long temp;
@@ -140,14 +145,14 @@
 
 /*
  * __change_bit - Toggle a bit in memory
- * @nr: the bit to set
+ * @nr: the bit to change
  * @addr: the address to start counting from
  *
  * Unlike change_bit(), this function is non-atomic and may be reordered.
  * If it's called on the same region of memory simultaneously, the effect
  * may be that only one operation succeeds.
  */
-extern __inline__ void __change_bit(int nr, volatile void * addr)
+static __inline__ void __change_bit(int nr, volatile void * addr)
 {
 	unsigned long * m = ((unsigned long *) addr) + (nr >> 5);
 
@@ -162,11 +167,11 @@
  * This operation is atomic and cannot be reordered.
  * It also implies a memory barrier.
  */
-extern __inline__ int
-test_and_set_bit(int nr, volatile void *addr)
+static __inline__ int test_and_set_bit(int nr, volatile void *addr)
 {
 	unsigned long *m = ((unsigned long *) addr) + (nr >> 5);
-	unsigned long temp, res;
+	unsigned long temp;
+	int res;
 
 	__asm__ __volatile__(
 		".set\tnoreorder\t\t# test_and_set_bit\n"
@@ -195,10 +200,11 @@
  * If two examples of this operation race, one can appear to succeed
  * but actually fail.  You must protect multiple accesses with a lock.
  */
-extern __inline__ int __test_and_set_bit(int nr, volatile void * addr)
+static __inline__ int __test_and_set_bit(int nr, volatile void * addr)
 {
-	int mask, retval;
-	volatile int *a = addr;
+	volatile unsigned long *a = addr;
+	unsigned long mask;
+	int retval;
 
 	a += nr >> 5;
 	mask = 1 << (nr & 0x1f);
@@ -210,14 +216,13 @@
 
 /*
  * test_and_clear_bit - Clear a bit and return its old value
- * @nr: Bit to set
+ * @nr: Bit to clear
  * @addr: Address to count from
  *
  * This operation is atomic and cannot be reordered.
  * It also implies a memory barrier.
  */
-extern __inline__ int
-test_and_clear_bit(int nr, volatile void *addr)
+static __inline__ int test_and_clear_bit(int nr, volatile void *addr)
 {
 	unsigned long *m = ((unsigned long *) addr) + (nr >> 5);
 	unsigned long temp, res;
@@ -243,17 +248,17 @@
 
 /*
  * __test_and_clear_bit - Clear a bit and return its old value
- * @nr: Bit to set
+ * @nr: Bit to clear
  * @addr: Address to count from
  *
  * This operation is non-atomic and can be reordered.
  * If two examples of this operation race, one can appear to succeed
  * but actually fail.  You must protect multiple accesses with a lock.
  */
-extern __inline__ int __test_and_clear_bit(int nr, volatile void * addr)
+static __inline__ int __test_and_clear_bit(int nr, volatile void * addr)
 {
-	int	mask, retval;
-	volatile int	*a = addr;
+	volatile unsigned long *a = addr;
+	unsigned long mask, retval;
 
 	a += nr >> 5;
 	mask = 1 << (nr & 0x1f);
@@ -265,14 +270,13 @@
 
 /*
  * test_and_change_bit - Change a bit and return its new value
- * @nr: Bit to set
+ * @nr: Bit to change
  * @addr: Address to count from
  *
  * This operation is atomic and cannot be reordered.
  * It also implies a memory barrier.
  */
-extern __inline__ int
-test_and_change_bit(int nr, volatile void *addr)
+static __inline__ int test_and_change_bit(int nr, volatile void *addr)
 {
 	unsigned long *m = ((unsigned long *) addr) + (nr >> 5);
 	unsigned long temp, res;
@@ -297,17 +301,18 @@
 
 /*
  * __test_and_change_bit - Change a bit and return its old value
- * @nr: Bit to set
+ * @nr: Bit to change
  * @addr: Address to count from
  *
  * This operation is non-atomic and can be reordered.
  * If two examples of this operation race, one can appear to succeed
  * but actually fail.  You must protect multiple accesses with a lock.
  */
-extern __inline__ int __test_and_change_bit(int nr, volatile void * addr)
+static __inline__ int __test_and_change_bit(int nr, volatile void * addr)
 {
-	int	mask, retval;
-	volatile int	*a = addr;
+	volatile unsigned long *a = addr;
+	unsigned long mask;
+	int retval;
 
 	a += nr >> 5;
 	mask = 1 << (nr & 0x1f);
@@ -329,17 +334,17 @@
  * Note that @nr may be almost arbitrarily large; this function is not
  * restricted to acting on a single-word quantity.
  */
-extern __inline__ void set_bit(int nr, volatile void * addr)
+static __inline__ void set_bit(int nr, volatile void * addr)
 {
-	int	mask;
-	volatile int	*a = addr;
+	volatile unsigned long *a = addr;
+	unsigned long mask;
 	__bi_flags;
 
 	a += nr >> 5;
 	mask = 1 << (nr & 0x1f);
-	__bi_save_and_cli(flags);
+	__bi_local_irq_save(flags);
 	*a |= mask;
-	__bi_restore_flags(flags);
+	__bi_local_irq_restore(flags);
 }
 
 /*
@@ -351,10 +356,10 @@
  * If it's called on the same region of memory simultaneously, the effect
  * may be that only one operation succeeds.
  */
-extern __inline__ void __set_bit(int nr, volatile void * addr)
+static __inline__ void __set_bit(int nr, volatile void * addr)
 {
-	int	mask;
-	volatile int	*a = addr;
+	volatile unsigned long *a = addr;
+	unsigned long mask;
 
 	a += nr >> 5;
 	mask = 1 << (nr & 0x1f);
@@ -371,51 +376,51 @@
  * you should call smp_mb__before_clear_bit() and/or smp_mb__after_clear_bit()
  * in order to ensure changes are visible on other processors.
  */
-extern __inline__ void clear_bit(int nr, volatile void * addr)
+static __inline__ void clear_bit(int nr, volatile void * addr)
 {
-	int	mask;
-	volatile int	*a = addr;
+	volatile unsigned long *a = addr;
+	unsigned long mask;
 	__bi_flags;
 
 	a += nr >> 5;
 	mask = 1 << (nr & 0x1f);
-	__bi_save_and_cli(flags);
+	__bi_local_irq_save(flags);
 	*a &= ~mask;
-	__bi_restore_flags(flags);
+	__bi_local_irq_restore(flags);
 }
 
 /*
  * change_bit - Toggle a bit in memory
- * @nr: Bit to clear
+ * @nr: Bit to change
  * @addr: Address to start counting from
  *
  * change_bit() is atomic and may not be reordered.
  * Note that @nr may be almost arbitrarily large; this function is not
  * restricted to acting on a single-word quantity.
  */
-extern __inline__ void change_bit(int nr, volatile void * addr)
+static __inline__ void change_bit(int nr, volatile void * addr)
 {
-	int	mask;
-	volatile int	*a = addr;
+	volatile unsigned long *a = addr;
+	unsigned long mask;
 	__bi_flags;
 
 	a += nr >> 5;
 	mask = 1 << (nr & 0x1f);
-	__bi_save_and_cli(flags);
+	__bi_local_irq_save(flags);
 	*a ^= mask;
-	__bi_restore_flags(flags);
+	__bi_local_irq_restore(flags);
 }
 
 /*
  * __change_bit - Toggle a bit in memory
- * @nr: the bit to set
+ * @nr: the bit to change
  * @addr: the address to start counting from
  *
  * Unlike change_bit(), this function is non-atomic and may be reordered.
  * If it's called on the same region of memory simultaneously, the effect
  * may be that only one operation succeeds.
  */
-extern __inline__ void __change_bit(int nr, volatile void * addr)
+static __inline__ void __change_bit(int nr, volatile void * addr)
 {
 	unsigned long * m = ((unsigned long *) addr) + (nr >> 5);
 
@@ -430,18 +435,19 @@
  * This operation is atomic and cannot be reordered.
  * It also implies a memory barrier.
  */
-extern __inline__ int test_and_set_bit(int nr, volatile void * addr)
+static __inline__ int test_and_set_bit(int nr, volatile void * addr)
 {
-	int	mask, retval;
-	volatile int	*a = addr;
+	volatile unsigned long *a = addr;
+	unsigned long mask;
+	int retval;
 	__bi_flags;
 
 	a += nr >> 5;
 	mask = 1 << (nr & 0x1f);
-	__bi_save_and_cli(flags);
+	__bi_local_irq_save(flags);
 	retval = (mask & *a) != 0;
 	*a |= mask;
-	__bi_restore_flags(flags);
+	__bi_local_irq_restore(flags);
 
 	return retval;
 }
@@ -455,10 +461,11 @@
  * If two examples of this operation race, one can appear to succeed
  * but actually fail.  You must protect multiple accesses with a lock.
  */
-extern __inline__ int __test_and_set_bit(int nr, volatile void * addr)
+static __inline__ int __test_and_set_bit(int nr, volatile void * addr)
 {
-	int	mask, retval;
-	volatile int	*a = addr;
+	volatile unsigned long *a = addr;
+	unsigned long mask;
+	int retval;
 
 	a += nr >> 5;
 	mask = 1 << (nr & 0x1f);
@@ -470,41 +477,43 @@
 
 /*
  * test_and_clear_bit - Clear a bit and return its old value
- * @nr: Bit to set
+ * @nr: Bit to clear
  * @addr: Address to count from
  *
  * This operation is atomic and cannot be reordered.
  * It also implies a memory barrier.
  */
-extern __inline__ int test_and_clear_bit(int nr, volatile void * addr)
+static __inline__ int test_and_clear_bit(int nr, volatile void * addr)
 {
-	int	mask, retval;
-	volatile int	*a = addr;
+	volatile unsigned long *a = addr;
+	unsigned long mask;
+	int retval;
 	__bi_flags;
 
 	a += nr >> 5;
 	mask = 1 << (nr & 0x1f);
-	__bi_save_and_cli(flags);
+	__bi_local_irq_save(flags);
 	retval = (mask & *a) != 0;
 	*a &= ~mask;
-	__bi_restore_flags(flags);
+	__bi_local_irq_restore(flags);
 
 	return retval;
 }
 
 /*
  * __test_and_clear_bit - Clear a bit and return its old value
- * @nr: Bit to set
+ * @nr: Bit to clear
  * @addr: Address to count from
  *
  * This operation is non-atomic and can be reordered.
  * If two examples of this operation race, one can appear to succeed
  * but actually fail.  You must protect multiple accesses with a lock.
  */
-extern __inline__ int __test_and_clear_bit(int nr, volatile void * addr)
+static __inline__ int __test_and_clear_bit(int nr, volatile void * addr)
 {
-	int	mask, retval;
-	volatile int	*a = addr;
+	volatile unsigned long *a = addr;
+	unsigned long mask;
+	int retval;
 
 	a += nr >> 5;
 	mask = 1 << (nr & 0x1f);
@@ -516,41 +525,42 @@
 
 /*
  * test_and_change_bit - Change a bit and return its new value
- * @nr: Bit to set
+ * @nr: Bit to change
  * @addr: Address to count from
  *
  * This operation is atomic and cannot be reordered.
  * It also implies a memory barrier.
  */
-extern __inline__ int test_and_change_bit(int nr, volatile void * addr)
+static __inline__ int test_and_change_bit(int nr, volatile void * addr)
 {
-	int	mask, retval;
-	volatile int	*a = addr;
+	volatile unsigned long *a = addr;
+	unsigned long mask, retval;
 	__bi_flags;
 
 	a += nr >> 5;
 	mask = 1 << (nr & 0x1f);
-	__bi_save_and_cli(flags);
+	__bi_local_irq_save(flags);
 	retval = (mask & *a) != 0;
 	*a ^= mask;
-	__bi_restore_flags(flags);
+	__bi_local_irq_restore(flags);
 
 	return retval;
 }
 
 /*
  * __test_and_change_bit - Change a bit and return its old value
- * @nr: Bit to set
+ * @nr: Bit to change
  * @addr: Address to count from
  *
  * This operation is non-atomic and can be reordered.
  * If two examples of this operation race, one can appear to succeed
  * but actually fail.  You must protect multiple accesses with a lock.
  */
-extern __inline__ int __test_and_change_bit(int nr, volatile void * addr)
+static __inline__ int __test_and_change_bit(int nr, volatile void * addr)
 {
-	int	mask, retval;
-	volatile int	*a = addr;
+	volatile unsigned long *a = addr;
+	unsigned long mask;
+	int retval;
 
 	a += nr >> 5;
 	mask = 1 << (nr & 0x1f);
@@ -563,7 +573,7 @@
 #undef __bi_flags
 #undef __bi_cli
 #undef __bi_save_flags
-#undef __bi_restore_flags
+#undef __bi_local_irq_restore
 
 #endif /* MIPS I */
 
@@ -572,112 +582,11 @@
  * @nr: bit number to test
  * @addr: Address to start counting from
  */
-extern __inline__ int test_bit(int nr, volatile void *addr)
-{
-	return ((1UL << (nr & 31)) & (((const unsigned int *) addr)[nr >> 5])) != 0;
-}
-
-#ifndef __MIPSEB__
-
-/* Little endian versions. */
-
-/*
- * find_first_zero_bit - find the first zero bit in a memory region
- * @addr: The address to start the search at
- * @size: The maximum size to search
- *
- * Returns the bit-number of the first zero bit, not the number of the byte
- * containing a bit.
- */
-extern __inline__ int find_first_zero_bit (void *addr, unsigned size)
-{
-	unsigned long dummy;
-	int res;
-
-	if (!size)
-		return 0;
-
-	__asm__ (".set\tnoreorder\n\t"
-		".set\tnoat\n"
-		"1:\tsubu\t$1,%6,%0\n\t"
-		"blez\t$1,2f\n\t"
-		"lw\t$1,(%5)\n\t"
-		"addiu\t%5,4\n\t"
-#if (_MIPS_ISA == _MIPS_ISA_MIPS2 ) || (_MIPS_ISA == _MIPS_ISA_MIPS3 ) || \
-    (_MIPS_ISA == _MIPS_ISA_MIPS4 ) || (_MIPS_ISA == _MIPS_ISA_MIPS5 ) || \
-    (_MIPS_ISA == _MIPS_ISA_MIPS32) || (_MIPS_ISA == _MIPS_ISA_MIPS64)
-		"beql\t%1,$1,1b\n\t"
-		"addiu\t%0,32\n\t"
-#else
-		"addiu\t%0,32\n\t"
-		"beq\t%1,$1,1b\n\t"
-		"nop\n\t"
-		"subu\t%0,32\n\t"
-#endif
-#ifdef __MIPSEB__
-#error "Fix this for big endian"
-#endif /* __MIPSEB__ */
-		"li\t%1,1\n"
-		"1:\tand\t%2,$1,%1\n\t"
-		"beqz\t%2,2f\n\t"
-		"sll\t%1,%1,1\n\t"
-		"bnez\t%1,1b\n\t"
-		"add\t%0,%0,1\n\t"
-		".set\tat\n\t"
-		".set\treorder\n"
-		"2:"
-		: "=r" (res), "=r" (dummy), "=r" (addr)
-		: "0" ((signed int) 0), "1" ((unsigned int) 0xffffffff),
-		  "2" (addr), "r" (size));
-
-	return res;
-}
-
-/*
- * find_next_zero_bit - find the first zero bit in a memory region
- * @addr: The address to base the search on
- * @offset: The bitnumber to start searching at
- * @size: The maximum size to search
- */
-extern __inline__ int find_next_zero_bit (void * addr, int size, int offset)
+static inline int test_bit(int nr, volatile void *addr)
 {
-	unsigned int *p = ((unsigned int *) addr) + (offset >> 5);
-	int set = 0, bit = offset & 31, res;
-	unsigned long dummy;
-
-	if (bit) {
-		/*
-		 * Look for zero in first byte
-		 */
-#ifdef __MIPSEB__
-#error "Fix this for big endian byte order"
-#endif
-		__asm__(".set\tnoreorder\n\t"
-			".set\tnoat\n"
-			"1:\tand\t$1,%4,%1\n\t"
-			"beqz\t$1,1f\n\t"
-			"sll\t%1,%1,1\n\t"
-			"bnez\t%1,1b\n\t"
-			"addiu\t%0,1\n\t"
-			".set\tat\n\t"
-			".set\treorder\n"
-			"1:"
-			: "=r" (set), "=r" (dummy)
-			: "0" (0), "1" (1 << bit), "r" (*p));
-		if (set < (32 - bit))
-			return set + offset;
-		set = 32 - bit;
-		p++;
-	}
-	/*
-	 * No zero yet, search remaining full bytes for a zero
-	 */
-	res = find_first_zero_bit(p, size - 32 * (p - (unsigned int *) addr));
-	return offset + set + res;
+	return 1UL & (((const volatile unsigned long *) addr)[nr >> SZLONG_LOG] >> (nr & SZLONG_MASK));
 }
 
-#endif /* !(__MIPSEB__) */
-
 /*
  * ffz - find first zero in word.
  * @word: The word to search
@@ -701,38 +610,23 @@
 
 #ifdef __KERNEL__
 
-/**
+/*
  * ffs - find first bit set
  * @x: the word to search
  *
- * This is defined the same way as
- * the libc and compiler builtin ffs routines, therefore
- * differs in spirit from the above ffz (man ffs).
+ * Undefined if no bit exists, so code should check against 0 first.
  */
 
 #define ffs(x) generic_ffs(x)
 
 /*
- * hweightN - returns the hamming weight of a N-bit word
- * @x: the word to weigh
- *
- * The Hamming Weight of a number is the total number of bits set in it.
- */
-
-#define hweight32(x) generic_hweight32(x)
-#define hweight16(x) generic_hweight16(x)
-#define hweight8(x) generic_hweight8(x)
-
-#endif /* __KERNEL__ */
-
-#ifdef __MIPSEB__
-/*
  * find_next_zero_bit - find the first zero bit in a memory region
  * @addr: The address to base the search on
  * @offset: The bitnumber to start searching at
  * @size: The maximum size to search
  */
-extern __inline__ int find_next_zero_bit(void *addr, int size, int offset)
+static inline long find_next_zero_bit(void *addr, unsigned long size,
+	unsigned long offset)
 {
 	unsigned long *p = ((unsigned long *) addr) + (offset >> 5);
 	unsigned long result = offset & ~31UL;
@@ -768,9 +662,8 @@
 	return result + ffz(tmp);
 }
 
-/* Linus sez that gcc can optimize the following correctly, we'll see if this
- * holds on the Sparc as it does for the ALPHA.
- */
+#define find_first_zero_bit(addr, size) \
+	find_next_zero_bit((addr), (size), 0)
 
 #if 0 /* Fool kernel-doc since it doesn't do macros yet */
 /*
@@ -781,121 +674,129 @@
  * Returns the bit-number of the first zero bit, not the number of the byte
  * containing a bit.
  */
-extern int find_first_zero_bit (void *addr, unsigned size);
+static int find_first_zero_bit (void *addr, unsigned size);
 #endif
 
 #define find_first_zero_bit(addr, size) \
         find_next_zero_bit((addr), (size), 0)
 
-#endif /* (__MIPSEB__) */
 
-/* Now for the ext2 filesystem bit operations and helper routines. */
+/*
+ * hweightN - returns the hamming weight of a N-bit word
+ * @x: the word to weigh
+ *
+ * The Hamming Weight of a number is the total number of bits set in it.
+ */
 
-#ifdef __MIPSEB__
-extern __inline__ int ext2_set_bit(int nr, void * addr)
+#define hweight32(x) generic_hweight32(x)
+#define hweight16(x) generic_hweight16(x)
+#define hweight8(x) generic_hweight8(x)
+
+
+static __inline__ int __test_and_set_le_bit(int nr, void * addr)
 {
-	int		mask, retval, flags;
 	unsigned char	*ADDR = (unsigned char *) addr;
+	int		mask, retval;
 
 	ADDR += nr >> 3;
 	mask = 1 << (nr & 0x07);
-	save_and_cli(flags);
 	retval = (mask & *ADDR) != 0;
 	*ADDR |= mask;
-	restore_flags(flags);
+
 	return retval;
 }
 
-extern __inline__ int ext2_clear_bit(int nr, void * addr)
+static __inline__ int __test_and_clear_le_bit(int nr, void * addr)
 {
-	int		mask, retval, flags;
 	unsigned char	*ADDR = (unsigned char *) addr;
+	int		mask, retval;
 
 	ADDR += nr >> 3;
 	mask = 1 << (nr & 0x07);
-	save_and_cli(flags);
 	retval = (mask & *ADDR) != 0;
 	*ADDR &= ~mask;
-	restore_flags(flags);
+
 	return retval;
 }
 
-extern __inline__ int ext2_test_bit(int nr, const void * addr)
+static __inline__ int test_le_bit(int nr, const void * addr)
 {
-	int			mask;
 	const unsigned char	*ADDR = (const unsigned char *) addr;
+	int			mask;
 
 	ADDR += nr >> 3;
 	mask = 1 << (nr & 0x07);
+
 	return ((mask & *ADDR) != 0);
 }
 
-#define ext2_find_first_zero_bit(addr, size) \
-        ext2_find_next_zero_bit((addr), (size), 0)
+static inline unsigned long ext2_ffz(unsigned int word)
+{
+	int b = 0, s;
 
-extern __inline__ unsigned long ext2_find_next_zero_bit(void *addr, unsigned long size, unsigned long offset)
+	word = ~word;
+	s = 16; if (word << 16 != 0) s = 0; b += s; word >>= s;
+	s =  8; if (word << 24 != 0) s = 0; b += s; word >>= s;
+	s =  4; if (word << 28 != 0) s = 0; b += s; word >>= s;
+	s =  2; if (word << 30 != 0) s = 0; b += s; word >>= s;
+	s =  1; if (word << 31 != 0) s = 0; b += s;
+
+	return b;
+}
+
+static inline unsigned long find_next_zero_le_bit(void *addr,
+	unsigned long size, unsigned long offset)
 {
-	unsigned long *p = ((unsigned long *) addr) + (offset >> 5);
-	unsigned long result = offset & ~31UL;
-	unsigned long tmp;
+	unsigned int *p = ((unsigned int *) addr) + (offset >> 5);
+	unsigned int result = offset & ~31;
+	unsigned int tmp;
 
 	if (offset >= size)
 		return size;
+
 	size -= result;
-	offset &= 31UL;
-	if(offset) {
-		/* We hold the little endian value in tmp, but then the
-		 * shift is illegal. So we could keep a big endian value
-		 * in tmp, like this:
-		 *
-		 * tmp = __swab32(*(p++));
-		 * tmp |= ~0UL >> (32-offset);
-		 *
-		 * but this would decrease preformance, so we change the
-		 * shift:
-		 */
-		tmp = *(p++);
-		tmp |= __swab32(~0UL >> (32-offset));
-		if(size < 32)
+	offset &= 31;
+	if (offset) {
+		tmp = cpu_to_le32p(p++);
+		tmp |= ~0U >> (32-offset); /* bug or feature ? */
+		if (size < 32)
 			goto found_first;
-		if(~tmp)
+		if (tmp != ~0U)
 			goto found_middle;
 		size -= 32;
 		result += 32;
 	}
-	while(size & ~31UL) {
-		if(~(tmp = *(p++)))
+	while (size >= 32) {
+		if ((tmp = cpu_to_le32p(p++)) != ~0U)
 			goto found_middle;
 		result += 32;
 		size -= 32;
 	}
-	if(!size)
+	if (!size)
 		return result;
-	tmp = *p;
 
+	tmp = cpu_to_le32p(p);
 found_first:
-	/* tmp is little endian, so we would have to swab the shift,
-	 * see above. But then we have to swab tmp below for ffz, so
-	 * we might as well do this here.
-	 */
-	return result + ffz(__swab32(tmp) | (~0UL << size));
+	tmp |= ~0 << size;
+	if (tmp == ~0U)			/* Are any bits zero? */
+		return result + size;	/* Nope. */
+
 found_middle:
-	return result + ffz(__swab32(tmp));
+	return result + ext2_ffz(tmp);
 }
-#else /* !(__MIPSEB__) */
 
-/* Native ext2 byte ordering, just collapse using defines. */
-#define ext2_set_bit(nr, addr) test_and_set_bit((nr), (addr))
-#define ext2_clear_bit(nr, addr) test_and_clear_bit((nr), (addr))
-#define ext2_test_bit(nr, addr) test_bit((nr), (addr))
-#define ext2_find_first_zero_bit(addr, size) find_first_zero_bit((addr), (size))
-#define ext2_find_next_zero_bit(addr, size, offset) \
-                find_next_zero_bit((addr), (size), (offset))
+#define find_first_zero_le_bit(addr, size) \
+	find_next_zero_le_bit((addr), (size), 0)
 
-#endif /* !(__MIPSEB__) */
+#define ext2_set_bit			__test_and_set_le_bit
+#define ext2_clear_bit			__test_and_clear_le_bit
+#define ext2_test_bit			test_le_bit
+#define ext2_find_first_zero_bit	find_first_zero_le_bit
+#define ext2_find_next_zero_bit		find_next_zero_le_bit
 
 /*
  * Bitmap functions for the minix filesystem.
+ *
  * FIXME: These assume that Minix uses the native byte/bitorder.
  * This limits the Minix filesystem's value for data exchange very much.
  */
@@ -905,4 +806,6 @@
 #define minix_test_bit(nr,addr) test_bit(nr,addr)
 #define minix_find_first_zero_bit(addr,size) find_first_zero_bit(addr,size)
 
+#endif /* __KERNEL__ */
+
 #endif /* _ASM_BITOPS_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips/bootinfo.h linux-2.4.20-mipscvs-20050106/include/asm-mips/bootinfo.h
--- linux-2.4.20/include/asm-mips/bootinfo.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/bootinfo.h	2003-02-04 06:43:06.000000000 -0600
@@ -35,6 +35,7 @@
 #define MACH_GROUP_ALCHEMY     18 /* Alchemy Semi Eval Boards               */
 #define MACH_GROUP_NEC_VR41XX  19 /* NEC Vr41xx based boards/gadgets        */
 #define MACH_GROUP_HP_LJ       20 /* Hewlett Packard LaserJet               */
+#define MACH_GROUP_LASAT       21
 
 /*
  * Valid machtype values for group unknown (low order halfword of mips_machtype)
@@ -53,14 +54,15 @@
  */
 #define MACH_DSUNKNOWN		0
 #define MACH_DS23100		1	/* DECstation 2100 or 3100	*/
-#define MACH_DS5100		2	/* DECstation 5100		*/
+#define MACH_DS5100		2	/* DECsystem 5100		*/
 #define MACH_DS5000_200		3	/* DECstation 5000/200		*/
 #define MACH_DS5000_1XX		4	/* DECstation 5000/120, 125, 133, 150 */
 #define MACH_DS5000_XX		5	/* DECstation 5000/20, 25, 33, 50 */
 #define MACH_DS5000_2X0		6	/* DECstation 5000/240, 260	*/
-#define MACH_DS5400		7	/* DECstation 5400		*/
-#define MACH_DS5500		8	/* DECstation 5500		*/
-#define MACH_DS5800		9	/* DECstation 5800		*/
+#define MACH_DS5400		7	/* DECsystem 5400		*/
+#define MACH_DS5500		8	/* DECsystem 5500		*/
+#define MACH_DS5800		9	/* DECsystem 5800		*/
+#define MACH_DS5900		10	/* DECsystem 5900		*/
 
 /*
  * Valid machtype for group ARC
@@ -81,17 +83,15 @@
 /*
  * Valid machtype for group SGI
  */
-#define MACH_SGI_INDY		0	/* R4?K and R5K Indy workstations */
-#define MACH_SGI_CHALLENGE_S	1	/* The Challenge S server */
-#define MACH_SGI_INDIGO2	2	/* The Indigo2 system */
-#define MACH_SGI_IP27		3	/* Origin 200, Origin 2000, Onyx 2 */
-#define MACH_SGI_IP28		4	/* Indigo2 Impact */
-#define MACH_SGI_IP32		5	/* O2 */
+#define MACH_SGI_IP22		0	/* Indy, Indigo2, Challenge S */
+#define MACH_SGI_IP27		1	/* Origin 200, Origin 2000, Onyx 2 */
+#define MACH_SGI_IP28		2	/* Indigo2 Impact */
+#define MACH_SGI_IP32		3	/* O2 */
 
 /*
  * Valid machtype for group COBALT
  */
-#define MACH_COBALT_27 		 0	/* Proto "27" hardware */
+#define MACH_COBALT_27		0	/* Proto "27" hardware */
 
 /*
  * Valid machtype for group NEC DDB
@@ -155,11 +155,20 @@
 #define MACH_TOSHIBA_JMR3927	3	/* JMR-TX3927 CPU/IO board */
 
 /*
+ * Valid machtype for group LASAT
+ */
+#define MACH_LASAT_100		0	/* Masquerade II/SP100/SP50/SP25 */
+#define MACH_LASAT_200		1	/* Masquerade PRO/SP200 */
+
+/*
  * Valid machtype for group Alchemy
  */
 #define MACH_PB1000		0	/* Au1000-based eval board */
 #define MACH_PB1100		1	/* Au1100-based eval board */
 #define MACH_PB1500		2	/* Au1500-based eval board */
+#define MACH_DB1000		3       /* Au1000-based eval board */
+#define MACH_DB1100		4       /* Au1100-based eval board */
+#define MACH_DB1500		5       /* Au1500-based eval board */
 
 /*
  * Valid machtype for group NEC_VR41XX
@@ -167,6 +176,10 @@
 #define MACH_NEC_OSPREY		0	/* Osprey eval board */
 #define MACH_NEC_EAGLE		1	/* NEC Eagle/Hawk board */
 #define MACH_ZAO_CAPCELLA	2	/* ZAO Networks Capcella */
+#define MACH_VICTOR_MPC30X	3	/* Victor MP-C303/304 */
+#define MACH_IBM_WORKPAD	4	/* IBM WorkPad z50 */
+#define MACH_CASIO_E55		5	/* CASIO CASSIOPEIA E-10/15/55/65 */
+#define MACH_TANBAC_TB0226	6	/* TANBAC TB0226 (MBASE) */
 
 #define CL_SIZE			(256)
 
diff -urNd -urNd linux-2.4.20/include/asm-mips/cache.h linux-2.4.20-mipscvs-20050106/include/asm-mips/cache.h
--- linux-2.4.20/include/asm-mips/cache.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/cache.h	2002-12-11 08:23:13.000000000 -0600
@@ -27,6 +27,7 @@
  * Flag definitions
  */
 #define MIPS_CACHE_NOT_PRESENT 0x00000001
+#define MIPS_CACHE_VTAG_CACHE  0x00000002 /* Virtually tagged cache. */
 
 #if defined(CONFIG_CPU_R3000) || defined(CONFIG_CPU_R6000) || defined(CONFIG_CPU_TX39XX)
 #define L1_CACHE_BYTES		16
diff -urNd -urNd linux-2.4.20/include/asm-mips/cacheops.h linux-2.4.20-mipscvs-20050106/include/asm-mips/cacheops.h
--- linux-2.4.20/include/asm-mips/cacheops.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/cacheops.h	2002-09-30 11:53:55.000000000 -0500
@@ -5,10 +5,10 @@
  * License.  See the file "COPYING" in the main directory of this archive
  * for more details.
  *
- * (C) Copyright 1996, 1997 by Ralf Baechle
+ * (C) Copyright 1996, 1997, 2002 by Ralf Baechle
  */
-#ifndef	__ASM_MIPS_CACHEOPS_H
-#define	__ASM_MIPS_CACHEOPS_H
+#ifndef	__ASM_CACHEOPS_H
+#define	__ASM_CACHEOPS_H
 
 /*
  * Cache Operations
@@ -45,4 +45,4 @@
 #define Hit_Set_Virtual_SI	0x1e
 #define Hit_Set_Virtual_SD	0x1f
 
-#endif	/* __ASM_MIPS_CACHEOPS_H */
+#endif	/* __ASM_CACHEOPS_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips/checksum.h linux-2.4.20-mipscvs-20050106/include/asm-mips/checksum.h
--- linux-2.4.20/include/asm-mips/checksum.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/checksum.h	2003-01-26 11:36:08.000000000 -0600
@@ -203,7 +203,8 @@
 						     unsigned int sum)
 {
 	__asm__(
-	".set\tnoreorder\t\t\t# csum_ipv6_magic\n\t"
+	".set\tpush\t\t\t# csum_ipv6_magic\n\t"
+	".set\tnoreorder\n\t"
 	".set\tnoat\n\t"
 	"addu\t%0, %5\t\t\t# proto (long in network byte order)\n\t"
 	"sltu\t$1, %0, %5\n\t"
@@ -252,8 +253,7 @@
 	"sltu\t$1, %0, %1\n\t"
 
 	"addu\t%0, $1\t\t\t# Add final carry\n\t"
-	".set\tnoat\n\t"
-	".set\tnoreorder"
+	".set\tpop"
 	: "=r" (sum), "=r" (proto)
 	: "r" (saddr), "r" (daddr),
 	  "0" (htonl(len)), "1" (htonl(proto)), "r" (sum));
diff -urNd -urNd linux-2.4.20/include/asm-mips/cobalt/cobalt.h linux-2.4.20-mipscvs-20050106/include/asm-mips/cobalt/cobalt.h
--- linux-2.4.20/include/asm-mips/cobalt/cobalt.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/cobalt/cobalt.h	2002-11-24 21:58:43.000000000 -0600
@@ -37,10 +37,9 @@
  */
 #define COBALT_TIMER_IRQ       0
 #define COBALT_KEYBOARD_IRQ    1
-#define COBALT_QUBE_ETH_IRQ    13
 #define COBALT_QUBE_SLOT_IRQ   9
-#define COBALT_RAQ_ETH0_IRQ    4
-#define COBALT_RAQ_ETH1_IRQ    13
+#define COBALT_ETH0_IRQ        4
+#define COBALT_ETH1_IRQ        13
 #define COBALT_SCC_IRQ         4
 #define COBALT_SERIAL2_IRQ     4
 #define COBALT_PARALLEL_IRQ    5
diff -urNd -urNd linux-2.4.20/include/asm-mips/cobalt/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/cobalt/CVS/Entries
--- linux-2.4.20/include/asm-mips/cobalt/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/cobalt/CVS/Entries	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1,2 @@
+/cobalt.h/1.1.2.7/Mon Nov 25 03:58:43 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-mips/cobalt/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/cobalt/CVS/Repository
--- linux-2.4.20/include/asm-mips/cobalt/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/cobalt/CVS/Repository	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-mips/cobalt
diff -urNd -urNd linux-2.4.20/include/asm-mips/cobalt/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/cobalt/CVS/Root
--- linux-2.4.20/include/asm-mips/cobalt/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/cobalt/CVS/Root	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-mips/cobalt/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/cobalt/CVS/Tag
--- linux-2.4.20/include/asm-mips/cobalt/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/cobalt/CVS/Tag	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-mips/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/CVS/Entries
--- linux-2.4.20/include/asm-mips/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/CVS/Entries	2005-01-06 23:08:09.000000000 -0600
@@ -0,0 +1,169 @@
+/.cvsignore/1.1/Tue May 23 18:00:50 2000/-ko/Tlinux_2_4_20
+/a.out.h/1.1.1.1/Sun Jun  1 03:17:13 1997/-ko/Tlinux_2_4_20
+/addrspace.h/1.4.2.3/Wed Jul 24 00:56:26 2002/-ko/Tlinux_2_4_20
+/asm.h/1.5.2.11/Tue Jan  7 23:51:51 2003/-ko/Tlinux_2_4_20
+/asmmacro.h/1.5.4.6/Mon Oct  7 14:34:18 2002/-ko/Tlinux_2_4_20
+/atomic.h/1.16.2.5/Fri Jan 24 12:58:30 2003/-ko/Tlinux_2_4_20
+/au1000.h/1.5.2.9/Wed Dec 11 06:12:30 2002/-ko/Tlinux_2_4_20
+/au1000_dma.h/1.2.2.5/Sun Dec 29 10:30:36 2002/-ko/Tlinux_2_4_20
+/au1000_gpio.h/1.1.2.1/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/au1000_pcmcia.h/1.2.2.10/Tue Jan  7 10:41:30 2003/-ko/Tlinux_2_4_20
+/au1000_usbdev.h/1.1.2.1/Sun Jul 14 23:07:30 2002/-ko/Tlinux_2_4_20
+/bcache.h/1.7.2.1/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/bitops.h/1.21.2.10/Fri Dec 20 13:01:02 2002/-ko/Tlinux_2_4_20
+/bootinfo.h/1.43.2.21/Tue Feb  4 12:43:06 2003/-ko/Tlinux_2_4_20
+/branch.h/1.4.2.3/Wed Jan 29 16:39:00 2003/-ko/Tlinux_2_4_20
+/bugs.h/1.9/Sun Oct 28 05:04:32 2001/-ko/Tlinux_2_4_20
+/byteorder.h/1.8/Thu Sep  6 13:12:02 2001/-ko/Tlinux_2_4_20
+/cache.h/1.10.2.2/Wed Dec 11 14:23:13 2002/-ko/Tlinux_2_4_20
+/cachectl.h/1.2/Tue Jul 24 12:07:31 2001/-ko/Tlinux_2_4_20
+/cacheops.h/1.1.1.1.8.2/Mon Sep 30 16:53:55 2002/-ko/Tlinux_2_4_20
+/checksum.h/1.16.2.2/Sun Jan 26 17:36:08 2003/-ko/Tlinux_2_4_20
+/cpu.h/1.24.2.12/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/current.h/1.7.2.1/Thu Jun 27 14:21:23 2002/-ko/Tlinux_2_4_20
+/db1x00.h/1.1.2.2/Tue Jan  7 10:41:30 2003/-ko/Tlinux_2_4_20
+/ddb5074.h/1.2/Wed May 10 18:20:51 2000/-ko/Tlinux_2_4_20
+/debug.h/1.1.2.1/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/delay.h/1.10.2.3/Tue Jan 28 00:08:27 2003/-ko/Tlinux_2_4_20
+/div64.h/1.5.2.2/Mon Jan 27 14:27:17 2003/-ko/Tlinux_2_4_20
+/dma.h/1.8.2.3/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/ds1286.h/1.5/Sun Nov 25 02:32:38 2001/-ko/Tlinux_2_4_20
+/elf.h/1.14.2.2/Tue Aug 20 18:42:37 2002/-ko/Tlinux_2_4_20
+/errno.h/1.5.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
+/fcntl.h/1.9.2.1/Tue Jul 23 12:08:50 2002/-ko/Tlinux_2_4_20
+/fixmap.h/1.1.2.1/Fri Jan 18 03:16:24 2002/-ko/Tlinux_2_4_20
+/floppy.h/1.10.2.1/Thu Jan  3 22:54:51 2002/-ko/Tlinux_2_4_20
+/fpregdef.h/1.1.1.1/Sun Jun  1 03:17:12 1997/-ko/Tlinux_2_4_20
+/fpu.h/1.1.2.2/Mon Dec  2 00:24:53 2002/-ko/Tlinux_2_4_20
+/fpu_emulator.h/1.1.4.1/Wed May  1 17:09:55 2002/-ko/Tlinux_2_4_20
+/gdb-stub.h/1.4.2.2/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/gfx.h/1.6.2.1/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/gt64120.h/1.3.4.1/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/hardirq.h/1.18/Thu Aug 23 22:24:47 2001/-ko/Tlinux_2_4_20
+/hdreg.h/1.2/Tue Feb 20 20:50:50 2001/-ko/Tlinux_2_4_20
+/highmem.h/1.4.2.4/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/hw_irq.h/1.3.2.2/Tue Apr  9 02:27:13 2002/-ko/Tlinux_2_4_20
+/ide.h/1.11.2.3/Thu Nov 28 23:04:11 2002/-ko/Tlinux_2_4_20
+/init.h/1.4/Sat Oct  9 00:01:43 1999/-ko/Tlinux_2_4_20
+/inst.h/1.3/Sat Nov 25 04:49:47 2000/-ko/Tlinux_2_4_20
+/inventory.h/1.3.2.1/Thu Oct 31 20:37:38 2002/-ko/Tlinux_2_4_20
+/io.h/1.29.2.19/Thu Nov 28 23:04:11 2002/-ko/Tlinux_2_4_20
+/ioctl.h/1.2/Fri Mar 16 04:05:18 2001/-ko/Tlinux_2_4_20
+/ioctls.h/1.10.2.2/Tue Sep  3 00:42:54 2002/-ko/Tlinux_2_4_20
+/ipc.h/1.2.6.1/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/ipcbuf.h/1.1.4.1/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/irq.h/1.12.2.4/Sun Oct  6 12:28:03 2002/-ko/Tlinux_2_4_20
+/irq_cpu.h/1.1.2.2/Wed May 29 14:36:09 2002/-ko/Tlinux_2_4_20
+/isadep.h/1.6/Wed Oct 24 23:00:44 2001/-ko/Tlinux_2_4_20
+/it8712.h/1.1.2.1/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/jazz.h/1.12.2.2/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/jazzdma.h/1.7/Sat Feb 24 17:32:56 2001/-ko/Tlinux_2_4_20
+/keyboard.h/1.25.2.1/Thu Jan  3 22:54:52 2002/-ko/Tlinux_2_4_20
+/kmap_types.h/1.1.2.3/Wed Sep 25 12:10:01 2002/-ko/Tlinux_2_4_20
+/linux_logo.h/1.6.2.1/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/linux_logo_dec.h/1.2.2.2/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/linux_logo_sgi.h/1.2.2.1/Wed May 29 03:03:18 2002/-ko/Tlinux_2_4_20
+/mc146818rtc.h/1.7.2.4/Mon Sep  9 20:26:53 2002/-ko/Tlinux_2_4_20
+/mips32_cache.h/1.2.2.2/Wed Dec 11 14:23:13 2002/-ko/Tlinux_2_4_20
+/mipsprom.h/1.1.1.1/Sun Jun  1 03:17:13 1997/-ko/Tlinux_2_4_20
+/mipsregs.h/1.30.2.21/Tue Jan 28 14:31:29 2003/-ko/Tlinux_2_4_20
+/mman.h/1.4/Sun Mar 19 01:28:58 2000/-ko/Tlinux_2_4_20
+/mmu.h/1.1.2.2/Fri Jan 17 04:23:41 2003/-ko/Tlinux_2_4_20
+/mmu_context.h/1.18.2.8/Fri Feb 14 11:04:00 2003/-ko/Tlinux_2_4_20
+/module.h/1.3.2.1/Thu Nov  7 01:47:46 2002/-ko/Tlinux_2_4_20
+/msgbuf.h/1.1.4.2/Tue Aug 13 03:14:24 2002/-ko/Tlinux_2_4_20
+/namei.h/1.9/Thu Sep  6 13:12:02 2001/-ko/Tlinux_2_4_20
+/ng1.h/1.5/Thu Sep  6 13:12:02 2001/-ko/Tlinux_2_4_20
+/ng1hw.h/1.6.2.1/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/nile4.h/1.4.2.1/Mon Jul 15 00:02:57 2002/-ko/Tlinux_2_4_20
+/paccess.h/1.2/Thu Sep  6 13:12:02 2001/-ko/Tlinux_2_4_20
+/page.h/1.14.2.11/Fri Dec 20 02:34:17 2002/-ko/Tlinux_2_4_20
+/param.h/1.7.4.2/Mon Jan 20 20:21:43 2003/-ko/Tlinux_2_4_20
+/parport.h/1.6/Thu Sep  6 13:12:02 2001/-ko/Tlinux_2_4_20
+/pb1000.h/1.3.2.3/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/pb1100.h/1.1.2.2/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/pb1500.h/1.1.2.3/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/pci.h/1.24.2.13/Tue Oct  1 11:14:37 2002/-ko/Tlinux_2_4_20
+/pci_channel.h/1.1.2.1/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/pgalloc.h/1.14.2.3/Fri Jan 18 03:16:25 2002/-ko/Tlinux_2_4_20
+/pgtable-bits.h/1.1.2.3/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/pgtable.h/1.63.2.15/Tue Aug 13 03:29:54 2002/-ko/Tlinux_2_4_20
+/poll.h/1.1.1.1/Sun Jun  1 03:17:13 1997/-ko/Tlinux_2_4_20
+/posix_types.h/1.10.2.2/Mon Jan 20 12:17:54 2003/-ko/Tlinux_2_4_20
+/prctl.h/1.2.2.1/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/processor.h/1.43.2.9/Thu Dec 12 11:46:25 2002/-ko/Tlinux_2_4_20
+/ptrace.h/1.11.4.3/Thu Jun 27 14:21:23 2002/-ko/Tlinux_2_4_20
+/r4kcache.h/1.8.2.5/Fri Oct  4 02:39:52 2002/-ko/Tlinux_2_4_20
+/reboot.h/1.3/Thu Aug 23 22:24:47 2001/-ko/Tlinux_2_4_20
+/reg.h/1.3/Sun Nov 11 02:44:51 2001/-ko/Tlinux_2_4_20
+/regdef.h/1.1.1.1/Sun Jun  1 03:17:12 1997/-ko/Tlinux_2_4_20
+/resource.h/1.9/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
+/riscos-syscall.h/1.1.4.1/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/rrm.h/1.1.8.1/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/scatterlist.h/1.4.2.4/Sat Sep 28 18:51:41 2002/-ko/Tlinux_2_4_20
+/segment.h/1.2/Sat Dec  4 03:59:12 1999/-ko/Tlinux_2_4_20
+/semaphore-helper.h/1.14.2.5/Fri Jan 24 12:58:30 2003/-ko/Tlinux_2_4_20
+/semaphore.h/1.21.2.2/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/sembuf.h/1.1.4.1/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/serial.h/1.23.2.14/Fri Dec 13 19:45:36 2002/-ko/Tlinux_2_4_20
+/sfp-machine.h/1.1/Tue May 23 01:38:56 2000/-ko/Tlinux_2_4_20
+/sgialib.h/1.10.2.3/Thu Aug  1 22:26:40 2002/-ko/Tlinux_2_4_20
+/sgiarcs.h/1.5.2.3/Wed Aug  7 00:14:21 2002/-ko/Tlinux_2_4_20
+/sgidefs.h/1.3/Mon Jul  2 23:11:36 2001/-ko/Tlinux_2_4_20
+/shmbuf.h/1.2.2.1/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/shmiq.h/1.4.2.1/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/shmparam.h/1.4/Thu Sep  6 13:12:02 2001/-ko/Tlinux_2_4_20
+/sigcontext.h/1.7.2.3/Thu Nov  7 18:49:38 2002/-ko/Tlinux_2_4_20
+/siginfo.h/1.9.2.2/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/signal.h/1.9.2.1/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/smp.h/1.7.2.4/Fri Nov 29 00:11:36 2002/-ko/Tlinux_2_4_20
+/smplock.h/1.4/Thu Sep  6 13:12:02 2001/-ko/Tlinux_2_4_20
+/sni.h/1.5.2.1/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/socket.h/1.13.2.1/Tue Aug 13 04:19:38 2002/-ko/Tlinux_2_4_20
+/sockios.h/1.1.1.1/Sun Jun  1 03:17:13 1997/-ko/Tlinux_2_4_20
+/softirq.h/1.15.2.1/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/spinlock.h/1.13.2.4/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/stackframe.h/1.18.2.2/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/stat.h/1.6.4.1/Thu Nov 21 12:38:57 2002/-ko/Tlinux_2_4_20
+/statfs.h/1.1.1.1/Sun Jun  1 03:17:12 1997/-ko/Tlinux_2_4_20
+/string.h/1.20.2.2/Tue Nov 19 00:35:40 2002/-ko/Tlinux_2_4_20
+/sysmips.h/1.1.1.1/Sun Jun  1 03:17:13 1997/-ko/Tlinux_2_4_20
+/system.h/1.33.2.13/Fri Jan 24 12:58:30 2003/-ko/Tlinux_2_4_20
+/termbits.h/1.4/Sat Aug 11 00:37:03 2001/-ko/Tlinux_2_4_20
+/termios.h/1.11.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/time.h/1.4.2.2/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/timex.h/1.4.2.3/Mon Dec  2 00:24:53 2002/-ko/Tlinux_2_4_20
+/tlb.h/1.1/Fri Oct 19 01:25:00 2001/-ko/Tlinux_2_4_20
+/tlbdebug.h/1.1.2.1/Sun Sep 15 23:32:24 2002/-ko/Tlinux_2_4_20
+/traps.h/1.1.2.1/Wed Jun 26 12:22:42 2002/-ko/Tlinux_2_4_20
+/tx3912.h/1.6/Sat Nov 24 14:03:19 2001/-ko/Tlinux_2_4_20
+/types.h/1.6.2.6/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/uaccess.h/1.19/Fri Oct  5 14:46:52 2001/-ko/Tlinux_2_4_20
+/ucontext.h/1.3/Thu Sep  6 13:12:02 2001/-ko/Tlinux_2_4_20
+/umap.h/1.1.6.1/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/unaligned.h/1.8.2.1/Mon Aug  5 23:53:37 2002/-ko/Tlinux_2_4_20
+/unistd.h/1.29.2.4/Wed Nov  6 21:00:09 2002/-ko/Tlinux_2_4_20
+/user.h/1.1.1.1/Sun Jun  1 03:17:12 1997/-ko/Tlinux_2_4_20
+/usioctl.h/1.2/Mon Aug 11 04:39:16 1997/-ko/Tlinux_2_4_20
+/vga.h/1.2/Mon Jan  4 16:09:27 1999/-ko/Tlinux_2_4_20
+/war.h/1.1.2.6/Wed Jan 29 16:39:00 2003/-ko/Tlinux_2_4_20
+/watch.h/1.4/Mon Jan  8 03:11:56 2001/-ko/Tlinux_2_4_20
+/wbflush.h/1.5.2.1/Mon Jul 22 20:25:37 2002/-ko/Tlinux_2_4_20
+/xor.h/1.1/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
+D/arc////
+D/baget////
+D/cobalt////
+D/ddb5xxx////
+D/dec////
+D/galileo-boards////
+D/gcc////
+D/gt64120////
+D/hp-lj////
+D/it8172////
+D/jmr3927////
+D/lasat////
+D/mips-boards////
+D/sgi////
+D/sibyte////
+D/vr4181////
+D/vr41xx////
diff -urNd -urNd linux-2.4.20/include/asm-mips/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/CVS/Repository
--- linux-2.4.20/include/asm-mips/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/CVS/Repository	2005-01-06 23:06:48.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-mips
diff -urNd -urNd linux-2.4.20/include/asm-mips/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/CVS/Root
--- linux-2.4.20/include/asm-mips/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/CVS/Root	2005-01-06 23:06:48.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-mips/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/CVS/Tag
--- linux-2.4.20/include/asm-mips/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/CVS/Tag	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-mips/.cvsignore linux-2.4.20-mipscvs-20050106/include/asm-mips/.cvsignore
--- linux-2.4.20/include/asm-mips/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/.cvsignore	2000-05-23 13:00:50.000000000 -0500
@@ -0,0 +1 @@
+offset.h
diff -urNd -urNd linux-2.4.20/include/asm-mips/db1x00.h linux-2.4.20-mipscvs-20050106/include/asm-mips/db1x00.h
--- linux-2.4.20/include/asm-mips/db1x00.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/db1x00.h	2003-01-07 04:41:30.000000000 -0600
@@ -0,0 +1,109 @@
+/*
+ * AMD Alchemy DB1x00 Reference Boards
+ *
+ * Copyright 2001 MontaVista Software Inc.
+ * Author: MontaVista Software, Inc.
+ *         	ppopov@mvista.com or source@mvista.com
+ *
+ * ########################################################################
+ *
+ *  This program is free software; you can distribute it and/or modify it
+ *  under the terms of the GNU General Public License (Version 2) as
+ *  published by the Free Software Foundation.
+ *
+ *  This program is distributed in the hope it will be useful, but WITHOUT
+ *  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ *  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ *  for more details.
+ *
+ *  You should have received a copy of the GNU General Public License along
+ *  with this program; if not, write to the Free Software Foundation, Inc.,
+ *  59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
+ *
+ * ########################################################################
+ *
+ * 
+ */
+#ifndef __ASM_DB1X00_H
+#define __ASM_DB1X00_H
+
+
+/*
+ * Overlay data structure of the Db1x00 board registers.
+ * Registers located at physical 1E0000xx, KSEG1 0xAE0000xx
+ */
+typedef volatile struct
+{
+	/*00*/	unsigned long whoami;
+	/*04*/	unsigned long status;
+	/*08*/	unsigned long switches;
+	/*0C*/	unsigned long resets;
+	/*10*/	unsigned long pcmcia;
+	/*14*/	unsigned long specific;
+	/*18*/	unsigned long leds;
+	/*1C*/	unsigned long swreset;
+
+} BCSR;
+
+/*
+ * Register/mask bit definitions for the BCSRs
+ */
+#define BCSR_WHOAMI_DCID		0x000F
+#define BCSR_WHOAMI_CPLD		0x00F0
+#define BCSR_WHOAMI_BOARD		0x0F00
+
+#define BCSR_STATUS_PC0VS		0x0003
+#define BCSR_STATUS_PC1VS		0x000C
+#define BCSR_STATUS_PC0FI		0x0010
+#define BCSR_STATUS_PC1FI		0x0020
+#define BCSR_STATUS_FLASHBUSY		0x0100
+#define BCSR_STATUS_ROMBUSY		0x0400
+#define BCSR_STATUS_SWAPBOOT		0x2000
+#define BCSR_STATUS_FLASHDEN		0xC000
+
+#define BCSR_SWITCHES_DIP		0x00FF
+#define BCSR_SWITCHES_DIP_1		0x0080
+#define BCSR_SWITCHES_DIP_2		0x0040
+#define BCSR_SWITCHES_DIP_3		0x0020
+#define BCSR_SWITCHES_DIP_4		0x0010
+#define BCSR_SWITCHES_DIP_5		0x0008
+#define BCSR_SWITCHES_DIP_6		0x0004
+#define BCSR_SWITCHES_DIP_7		0x0002
+#define BCSR_SWITCHES_DIP_8		0x0001
+#define BCSR_SWITCHES_ROTARY		0x0F00
+
+#define BCSR_RESETS_PHY0		0x0001
+#define BCSR_RESETS_PHY1		0x0002
+#define BCSR_RESETS_DC			0x0004
+
+#define BCSR_PCMCIA_PC0VPP		0x0003
+#define BCSR_PCMCIA_PC0VCC		0x000C
+#define BCSR_PCMCIA_PC0DRVEN		0x0010
+#define BCSR_PCMCIA_PC0RST		0x0080
+#define BCSR_PCMCIA_PC1VPP		0x0300
+#define BCSR_PCMCIA_PC1VCC		0x0C00
+#define BCSR_PCMCIA_PC1DRVEN		0x1000
+#define BCSR_PCMCIA_PC1RST		0x8000
+
+#define BCSR_BOARD_PCIM66EN		0x0001
+#define BCSR_BOARD_PCIM33		0x0100
+#define BCSR_BOARD_GPIO200RST		0x0400
+#define BCSR_BOARD_PCICFG		0x1000
+
+#define BCSR_LEDS_DECIMALS		0x0003
+#define BCSR_LEDS_LED0			0x0100
+#define BCSR_LEDS_LED1			0x0200
+#define BCSR_LEDS_LED2			0x0400
+#define BCSR_LEDS_LED3			0x0800
+
+#define BCSR_SWRESET_RESET		0x0080
+
+/* PCMCIA Db1x00 specific defines */
+#define PCMCIA_MAX_SOCK 1
+#define PCMCIA_NUM_SOCKS (PCMCIA_MAX_SOCK+1)
+
+/* VPP/VCC */
+#define SET_VCC_VPP(VCC, VPP, SLOT)\
+	((((VCC)<<2) | ((VPP)<<0)) << ((SLOT)*8))
+
+#endif /* __ASM_DB1X00_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips/ddb5xxx/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/ddb5xxx/CVS/Entries
--- linux-2.4.20/include/asm-mips/ddb5xxx/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/ddb5xxx/CVS/Entries	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1,5 @@
+/ddb5074.h/1.1.2.1/Mon Jul 15 00:02:57 2002/-ko/Tlinux_2_4_20
+/ddb5476.h/1.1.2.2/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+/ddb5477.h/1.3.2.3/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+/ddb5xxx.h/1.3.2.2/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-mips/ddb5xxx/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/ddb5xxx/CVS/Repository
--- linux-2.4.20/include/asm-mips/ddb5xxx/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/ddb5xxx/CVS/Repository	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-mips/ddb5xxx
diff -urNd -urNd linux-2.4.20/include/asm-mips/ddb5xxx/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/ddb5xxx/CVS/Root
--- linux-2.4.20/include/asm-mips/ddb5xxx/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/ddb5xxx/CVS/Root	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-mips/ddb5xxx/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/ddb5xxx/CVS/Tag
--- linux-2.4.20/include/asm-mips/ddb5xxx/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/ddb5xxx/CVS/Tag	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-mips/dec/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/CVS/Entries
--- linux-2.4.20/include/asm-mips/dec/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/CVS/Entries	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1,19 @@
+/interrupts.h/1.5.2.3/Thu Nov  7 18:39:42 2002/-ko/Tlinux_2_4_20
+/ioasic.h/1.2.2.3/Thu Jan 30 14:25:16 2003/-ko/Tlinux_2_4_20
+/ioasic_addrs.h/1.4.2.2/Mon Sep  9 20:26:54 2002/-ko/Tlinux_2_4_20
+/ioasic_ints.h/1.3.4.3/Thu Nov  7 18:39:42 2002/-ko/Tlinux_2_4_20
+/kn01.h/1.1.6.3/Mon Sep  9 20:26:54 2002/-ko/Tlinux_2_4_20
+/kn02.h/1.2.2.3/Mon Sep  9 20:26:54 2002/-ko/Tlinux_2_4_20
+/kn02ba.h/1.1.2.3/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+/kn02ca.h/1.1.2.3/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+/kn02xa.h/1.3.4.3/Mon Feb  3 13:11:21 2003/-ko/Tlinux_2_4_20
+/kn03.h/1.3.2.3/Mon Feb  3 13:11:21 2003/-ko/Tlinux_2_4_20
+/kn05.h/1.1.2.3/Mon Sep  9 20:26:54 2002/-ko/Tlinux_2_4_20
+/kn230.h/1.1.2.4/Thu Dec 12 19:08:50 2002/-ko/Tlinux_2_4_20
+/machtype.h/1.2.4.2/Thu Dec 12 19:08:50 2002/-ko/Tlinux_2_4_20
+/prom.h/1.1.2.1/Tue Oct  1 15:01:55 2002/-ko/Tlinux_2_4_20
+/rtc-dec.h/1.1.2.1/Mon Sep  9 20:26:54 2002/-ko/Tlinux_2_4_20
+/tc.h/1.1.6.1/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+/tcinfo.h/1.1.6.1/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+/tcmodule.h/1.2.2.2/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-mips/dec/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/CVS/Repository
--- linux-2.4.20/include/asm-mips/dec/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/CVS/Repository	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-mips/dec
diff -urNd -urNd linux-2.4.20/include/asm-mips/dec/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/CVS/Root
--- linux-2.4.20/include/asm-mips/dec/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/CVS/Root	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-mips/dec/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/CVS/Tag
--- linux-2.4.20/include/asm-mips/dec/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/CVS/Tag	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-mips/dec/interrupts.h linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/interrupts.h
--- linux-2.4.20/include/asm-mips/dec/interrupts.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/interrupts.h	2002-11-07 12:39:42.000000000 -0600
@@ -58,10 +58,10 @@
 #define DEC_IRQ_SCC0A_RXDMA	30	/* SCC0A receive half page */
 #define DEC_IRQ_SCC0A_TXERR	31	/* SCC0A xmit memory read/overrun */
 #define DEC_IRQ_SCC0A_TXDMA	32	/* SCC0A transmit page end */
-#define DEC_IRQ_SCC0B_RXERR	33	/* SCC0B (ACCESS.bus) receive overrun */
-#define DEC_IRQ_SCC0B_RXDMA	34	/* SCC0B receive half page */
-#define DEC_IRQ_SCC0B_TXERR	35	/* SCC0B xmit memory read/overrun */
-#define DEC_IRQ_SCC0B_TXDMA	36	/* SCC0B transmit page end */
+#define DEC_IRQ_AB_RXERR	33	/* ACCESS.bus receive overrun */
+#define DEC_IRQ_AB_RXDMA	34	/* ACCESS.bus receive half page */
+#define DEC_IRQ_AB_TXERR	35	/* ACCESS.bus xmit memory read/ovrn */
+#define DEC_IRQ_AB_TXDMA	36	/* ACCESS.bus transmit page end */
 #define DEC_IRQ_SCC1A_RXERR	37	/* SCC1A (modem) receive overrun */
 #define DEC_IRQ_SCC1A_RXDMA	38	/* SCC1A receive half page */
 #define DEC_IRQ_SCC1A_TXERR	39	/* SCC1A xmit memory read/overrun */
diff -urNd -urNd linux-2.4.20/include/asm-mips/dec/ioasic.h linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/ioasic.h
--- linux-2.4.20/include/asm-mips/dec/ioasic.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/ioasic.h	2003-01-30 08:25:16.000000000 -0600
@@ -3,7 +3,7 @@
  *
  *	DEC I/O ASIC access operations.
  *
- *	Copyright (C) 2000, 2002  Maciej W. Rozycki
+ *	Copyright (C) 2000, 2002, 2003  Maciej W. Rozycki
  *
  *	This program is free software; you can redistribute it and/or
  *	modify it under the terms of the GNU General Public License
@@ -14,8 +14,11 @@
 #ifndef __ASM_DEC_IOASIC_H
 #define __ASM_DEC_IOASIC_H
 
+#include <linux/spinlock.h>
 #include <linux/types.h>
 
+extern spinlock_t ioasic_ssr_lock;
+
 extern volatile u32 *ioasic_base;
 
 static inline void ioasic_write(unsigned int reg, u32 v)
diff -urNd -urNd linux-2.4.20/include/asm-mips/dec/ioasic_ints.h linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/ioasic_ints.h
--- linux-2.4.20/include/asm-mips/dec/ioasic_ints.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/ioasic_ints.h	2002-11-07 12:39:42.000000000 -0600
@@ -46,10 +46,10 @@
 #define IO_INR_RES_20		20	/* unused */
 
 					/* Maxine */
-#define IO_INR_SCC0B_TXDMA	27	/* SCC0B transmit page end */
-#define IO_INR_SCC0B_TXERR	26	/* SCC0B transmit memory read error */
-#define IO_INR_SCC0B_RXDMA	25	/* SCC0B receive half page */
-#define IO_INR_SCC0B_RXERR	24	/* SCC0B receive overrun */
+#define IO_INR_AB_TXDMA		27	/* ACCESS.bus transmit page end */
+#define IO_INR_AB_TXERR		26	/* ACCESS.bus xmit memory read error */
+#define IO_INR_AB_RXDMA		25	/* ACCESS.bus receive half page */
+#define IO_INR_AB_RXERR		24	/* ACCESS.bus receive overrun */
 #define IO_INR_FLOPPY_ERR	23	/* FDC error */
 #define IO_INR_ISDN_TXDMA	22	/* ISDN xmit buffer pointer loaded */
 #define IO_INR_ISDN_RXDMA	21	/* ISDN recv buffer pointer loaded */
diff -urNd -urNd linux-2.4.20/include/asm-mips/dec/kn02xa.h linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/kn02xa.h
--- linux-2.4.20/include/asm-mips/dec/kn02xa.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/kn02xa.h	2003-02-03 07:11:21.000000000 -0600
@@ -25,6 +25,4 @@
 #define KN02XA_IOASIC_BASE	KSEG1ADDR(0x1c040000)	/* I/O ASIC */
 #define KN02XA_RTC_BASE		KSEG1ADDR(0x1c200000)	/* RTC */
 
-#define KN02XA_IOASIC_REG(r)	(KN02XA_IOASIC_BASE+(r))
-
 #endif /* __ASM_MIPS_DEC_KN02XA_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips/dec/kn03.h linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/kn03.h
--- linux-2.4.20/include/asm-mips/dec/kn03.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/kn03.h	2003-02-03 07:11:21.000000000 -0600
@@ -30,9 +30,6 @@
 #define KN03_MCR_BNK32M		(1<<10)			/* 32M stride */
 #define KN03_MCR_ECCEN		(1<<13)			/* ECC enabled */
 
-#define KN03_IOASIC_REG(r)	(KN03_IOASIC_BASE+(r))
-
-
 /*
  * CPU interrupt bits.
  */
diff -urNd -urNd linux-2.4.20/include/asm-mips/dec/kn230.h linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/kn230.h
--- linux-2.4.20/include/asm-mips/dec/kn230.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/kn230.h	2002-12-12 13:08:50.000000000 -0600
@@ -1,7 +1,7 @@
 /*
  *	include/asm-mips/dec/kn230.h
  *
- *	DECstation 5100 (MIPSmate or KN230) definitions.
+ *	DECsystem 5100 (MIPSmate or KN230) definitions.
  *
  *	Copyright (C) 2002  Maciej W. Rozycki
  *
diff -urNd -urNd linux-2.4.20/include/asm-mips/dec/machtype.h linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/machtype.h
--- linux-2.4.20/include/asm-mips/dec/machtype.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/machtype.h	2002-12-12 13:08:50.000000000 -0600
@@ -16,10 +16,12 @@
 #define TURBOCHANNEL	(mips_machtype == MACH_DS5000_200 || \
 			 mips_machtype == MACH_DS5000_1XX || \
 			 mips_machtype == MACH_DS5000_XX  || \
-			 mips_machtype == MACH_DS5000_2X0)
+			 mips_machtype == MACH_DS5000_2X0 || \
+			 mips_machtype == MACH_DS5900)
 
 #define IOASIC		(mips_machtype == MACH_DS5000_1XX || \
 			 mips_machtype == MACH_DS5000_XX  || \
-			 mips_machtype == MACH_DS5000_2X0)
+			 mips_machtype == MACH_DS5000_2X0 || \
+			 mips_machtype == MACH_DS5900)
 
 #endif
diff -urNd -urNd linux-2.4.20/include/asm-mips/dec/prom.h linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/prom.h
--- linux-2.4.20/include/asm-mips/dec/prom.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/prom.h	2002-10-01 10:01:55.000000000 -0500
@@ -0,0 +1,169 @@
+/*
+ *	include/asm-mips/dec/prom.h
+ *
+ *	DECstation PROM interface.
+ *
+ *	Copyright (C) 2002  Maciej W. Rozycki
+ *
+ *	This program is free software; you can redistribute it and/or
+ *	modify it under the terms of the GNU General Public License
+ *	as published by the Free Software Foundation; either version
+ *	2 of the License, or (at your option) any later version.
+ *
+ *	Based on arch/mips/dec/prom/prom.h by the Anonymous.
+ */
+#ifndef __ASM_MIPS_DEC_PROM_H
+#define __ASM_MIPS_DEC_PROM_H
+
+#include <linux/types.h>
+
+#include <asm/addrspace.h>
+
+/*
+ * PMAX/3MAX PROM entry points for DS2100/3100's and DS5000/2xx's.
+ * Many of these will work for MIPSen as well!
+ */
+#define VEC_RESET		(u64 *)KSEG1ADDR(0x1fc00000)
+							/* Prom base address */
+
+#define PMAX_PROM_ENTRY(x)	(VEC_RESET + (x))	/* Prom jump table */
+
+#define PMAX_PROM_HALT		PMAX_PROM_ENTRY(2)	/* valid on MIPSen */
+#define PMAX_PROM_AUTOBOOT	PMAX_PROM_ENTRY(5)	/* valid on MIPSen */
+#define PMAX_PROM_OPEN		PMAX_PROM_ENTRY(6)
+#define PMAX_PROM_READ		PMAX_PROM_ENTRY(7)
+#define PMAX_PROM_CLOSE		PMAX_PROM_ENTRY(10)
+#define PMAX_PROM_LSEEK		PMAX_PROM_ENTRY(11)
+#define PMAX_PROM_GETCHAR	PMAX_PROM_ENTRY(12)
+#define PMAX_PROM_PUTCHAR	PMAX_PROM_ENTRY(13)	/* 12 on MIPSen */
+#define PMAX_PROM_GETS		PMAX_PROM_ENTRY(15)
+#define PMAX_PROM_PRINTF	PMAX_PROM_ENTRY(17)
+#define PMAX_PROM_GETENV	PMAX_PROM_ENTRY(33)	/* valid on MIPSen */
+
+
+/*
+ * Magic number indicating REX PROM available on DECstation.  Found in
+ * register a2 on transfer of control to program from PROM.
+ */
+#define REX_PROM_MAGIC		0x30464354
+
+#ifdef CONFIG_MIPS64
+
+#define prom_is_rex(magic)	1	/* KN04 and KN05 are REX PROMs.  */
+
+#else /* !CONFIG_MIPS64 */
+
+#define prom_is_rex(magic)	((magic) == REX_PROM_MAGIC)
+
+#endif /* !CONFIG_MIPS64 */
+
+
+/*
+ * 3MIN/MAXINE PROM entry points for DS5000/1xx's, DS5000/xx's and
+ * DS5000/2x0.
+ */
+#define REX_PROM_GETBITMAP	0x84/4	/* get mem bitmap */
+#define REX_PROM_GETCHAR	0x24/4	/* getch() */
+#define REX_PROM_GETENV		0x64/4	/* get env. variable */
+#define REX_PROM_GETSYSID	0x80/4	/* get system id */
+#define REX_PROM_GETTCINFO	0xa4/4
+#define REX_PROM_PRINTF		0x30/4	/* printf() */
+#define REX_PROM_SLOTADDR	0x6c/4	/* slotaddr */
+#define REX_PROM_BOOTINIT	0x54/4	/* open() */
+#define REX_PROM_BOOTREAD	0x58/4	/* read() */
+#define REX_PROM_CLEARCACHE	0x7c/4
+
+
+/*
+ * Used by rex_getbitmap().
+ */
+typedef struct {
+	int pagesize;
+	unsigned char bitmap[0];
+} memmap;
+
+
+/*
+ * Function pointers as read from a PROM's callback vector.
+ */
+extern int (*__rex_bootinit)(void);
+extern int (*__rex_bootread)(void);
+extern int (*__rex_getbitmap)(memmap *);
+extern unsigned long *(*__rex_slot_address)(int);
+extern void *(*__rex_gettcinfo)(void);
+extern int (*__rex_getsysid)(void);
+extern void (*__rex_clear_cache)(void);
+
+extern int (*__prom_getchar)(void);
+extern char *(*__prom_getenv)(char *);
+extern int (*__prom_printf)(char *, ...);
+
+extern int (*__pmax_open)(char*, int);
+extern int (*__pmax_lseek)(int, long, int);
+extern int (*__pmax_read)(int, void *, int);
+extern int (*__pmax_close)(int);
+
+
+#ifdef CONFIG_MIPS64
+
+/*
+ * On MIPS64 we have to call PROM functions via a helper
+ * dispatcher to accomodate ABI incompatibilities.
+ */
+#define __DEC_PROM_O32 __attribute__((alias("call_o32")))
+
+int _rex_bootinit(int (*)(void)) __DEC_PROM_O32;
+int _rex_bootread(int (*)(void)) __DEC_PROM_O32;
+int _rex_getbitmap(int (*)(memmap *), memmap *) __DEC_PROM_O32;
+unsigned long *_rex_slot_address(unsigned long *(*)(int), int) __DEC_PROM_O32;
+void *_rex_gettcinfo(void *(*)(void)) __DEC_PROM_O32;
+int _rex_getsysid(int (*)(void)) __DEC_PROM_O32;
+void _rex_clear_cache(void (*)(void)) __DEC_PROM_O32;
+
+int _prom_getchar(int (*)(void)) __DEC_PROM_O32;
+char *_prom_getenv(char *(*)(char *), char *) __DEC_PROM_O32;
+int _prom_printf(int (*)(char *, ...), char *, ...) __DEC_PROM_O32;
+
+
+#define rex_bootinit()		_rex_bootinit(__rex_bootinit)
+#define rex_bootread()		_rex_bootread(__rex_bootread)
+#define rex_getbitmap(x)	_rex_getbitmap(__rex_getbitmap, x)
+#define rex_slot_address(x)	_rex_slot_address(__rex_slot_address, x)
+#define rex_gettcinfo()		_rex_gettcinfo(__rex_gettcinfo)
+#define rex_getsysid()		_rex_getsysid(__rex_getsysid)
+#define rex_clear_cache()	_rex_clear_cache(__rex_clear_cache)
+
+#define prom_getchar()		_prom_getchar(__prom_getchar)
+#define prom_getenv(x)		_prom_getenv(__prom_getenv, x)
+#define prom_printf(x...)	_prom_printf(__prom_printf, x)
+
+#else /* !CONFIG_MIPS64 */
+
+/*
+ * On plain MIPS we just call PROM functions directly.
+ */
+#define rex_bootinit		__rex_bootinit
+#define rex_bootread		__rex_bootread
+#define rex_getbitmap		__rex_getbitmap
+#define rex_slot_address	__rex_slot_address
+#define rex_gettcinfo		__rex_gettcinfo
+#define rex_getsysid		__rex_getsysid
+#define rex_clear_cache		__rex_clear_cache
+
+#define prom_getchar		__prom_getchar
+#define prom_getenv		__prom_getenv
+#define prom_printf		__prom_printf
+
+#define pmax_open		__pmax_open
+#define pmax_lseek		__pmax_lseek
+#define pmax_read		__pmax_read
+#define pmax_close		__pmax_close
+
+#endif /* !CONFIG_MIPS64 */
+
+
+extern void prom_meminit(u32);
+extern void prom_identify_arch(u32);
+extern void prom_init_cmdline(s32, s32 *, u32);
+
+#endif /* __ASM_MIPS_DEC_PROM_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips/delay.h linux-2.4.20-mipscvs-20050106/include/asm-mips/delay.h
--- linux-2.4.20/include/asm-mips/delay.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/delay.h	2003-01-27 18:08:27.000000000 -0600
@@ -27,7 +27,7 @@
 }
 
 /*
- * division by multiplication: you don't have to worry about
+ * Division by multiplication: you don't have to worry about
  * loss of precision.
  *
  * Use only for very small delays ( < 1 msec).  Should probably use a
@@ -40,11 +40,11 @@
 {
 	unsigned long lo;
 
-#if (HZ == 100)
-	usecs *= 0x00068db8;		/* 2**32 / (1000000 / HZ) */
-#elif (HZ == 128)
-	usecs *= 0x0008637b;		/* 2**32 / (1000000 / HZ) */
-#endif
+	/*
+	 * Excessive precission?  Probably ...
+	 */
+	usecs *= (unsigned long) (((0x8000000000000000ULL / (500000 / HZ)) +
+	                           0x80000000ULL) >> 32);
 	__asm__("multu\t%2,%3"
 		:"=h" (usecs), "=l" (lo)
 		:"r" (usecs),"r" (lpj));
diff -urNd -urNd linux-2.4.20/include/asm-mips/div64.h linux-2.4.20-mipscvs-20050106/include/asm-mips/div64.h
--- linux-2.4.20/include/asm-mips/div64.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/div64.h	2003-01-27 08:27:17.000000000 -0600
@@ -8,8 +8,6 @@
 #ifndef _ASM_DIV64_H
 #define _ASM_DIV64_H
 
-#include <asm/sgidefs.h>
-
 /*
  * No traps on overflows for any of these...
  */
@@ -33,10 +31,10 @@
 		"sll	%2, %2, 0x1\n" \
 		"1:\n\t" \
 		"bnez	%3, 2f\n\t" \
-		"sltu	%5, %0, %z6\n\t" \
-		"bnez	%5, 3f\n\t" \
+		" sltu	%5, %0, %z6\n\t" \
+		"bnez	%5, 3f\n" \
 		"2:\n\t" \
-		" addiu	%4,%4,-1\n\t" \
+		" addiu	%4, %4, -1\n\t" \
 		"subu	%0, %0, %z6\n\t" \
 		"addiu	%2, %2, 1\n" \
 		"3:\n\t" \
@@ -52,19 +50,23 @@
 
 #define do_div(n, base) ({ \
 	unsigned long long __quot; \
-	unsigned long __upper, __low, __high, __mod; \
+	unsigned long __mod; \
+	unsigned long long __div; \
+	unsigned long __upper, __low, __high, __base; \
 	\
-	__quot = (n); \
-	__high = __quot >> 32; \
-	__low = __quot; \
+	__div = (n); \
+	__base = (base); \
+	\
+	__high = __div >> 32; \
+	__low = __div; \
 	__upper = __high; \
 	\
 	if (__high) \
-		__asm__("divu	$0,%z2,%z3" \
+		__asm__("divu	$0, %z2, %z3" \
 			: "=h" (__upper), "=l" (__high) \
-			: "Jr" (__high), "Jr" (base)); \
+			: "Jr" (__high), "Jr" (__base)); \
 	\
-	__mod = do_div64_32(__low, __upper, __low, base); \
+	__mod = do_div64_32(__low, __upper, __low, __base); \
 	\
 	__quot = __high; \
 	__quot = __quot << 32 | __low; \
diff -urNd -urNd linux-2.4.20/include/asm-mips/fpu.h linux-2.4.20-mipscvs-20050106/include/asm-mips/fpu.h
--- linux-2.4.20/include/asm-mips/fpu.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/fpu.h	2002-12-01 18:24:53.000000000 -0600
@@ -0,0 +1,135 @@
+/*
+ * Copyright (C) 2002 MontaVista Software Inc.
+ * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net
+ *
+ * This program is free software; you can redistribute  it and/or modify it
+ * under  the terms of  the GNU General  Public License as published by the
+ * Free Software Foundation;  either version 2 of the  License, or (at your
+ * option) any later version.
+ *
+ */
+
+#ifndef _ASM_FPU_H
+#define _ASM_FPU_H
+
+#include <linux/config.h>
+#include <linux/sched.h>
+
+#include <asm/mipsregs.h>
+#include <asm/cpu.h>
+#include <asm/processor.h>
+#include <asm/current.h>
+
+struct sigcontext;
+
+extern asmlinkage int (*save_fp_context)(struct sigcontext *sc);
+extern asmlinkage int (*restore_fp_context)(struct sigcontext *sc);
+
+extern void fpu_emulator_init_fpu(void);
+extern void _init_fpu(void);
+extern void _save_fp(struct task_struct *);
+extern void _restore_fp(struct task_struct *);
+
+#if defined(CONFIG_CPU_SB1)
+#define __enable_fpu_hazard()						\
+do {									\
+	asm(".set push		\n\t"					\
+	    ".set mips64	\n\t"					\
+	    ".set noreorder	\n\t"					\
+	    "ssnop		\n\t"					\
+	    "bnezl $0, .+4	\n\t"					\
+	    "ssnop		\n\t"					\
+	    ".set pop");						\
+} while (0)
+#else
+#define __enable_fpu_hazard()                                           \
+do {                                                                    \
+        asm("nop;nop;nop;nop");         /* max. hazard */               \
+} while (0)
+#endif
+
+#define __enable_fpu()							\
+do {									\
+        set_c0_status(ST0_CU1);						\
+        __enable_fpu_hazard();						\
+} while (0)
+
+#define __disable_fpu()							\
+do {									\
+	clear_c0_status(ST0_CU1);					\
+	/* We don't care about the c0 hazard here  */			\
+} while (0)
+
+#define enable_fpu()							\
+do {									\
+	if (mips_cpu.options & MIPS_CPU_FPU)				\
+		__enable_fpu();						\
+} while (0)
+
+#define disable_fpu()							\
+do {									\
+	if (mips_cpu.options & MIPS_CPU_FPU)				\
+		__disable_fpu();					\
+} while (0)
+
+
+#define clear_fpu_owner() do {current->flags &= ~PF_USEDFPU; } while(0)
+
+static inline int is_fpu_owner(void)
+{
+	return (mips_cpu.options & MIPS_CPU_FPU) && 
+		((current->flags & PF_USEDFPU) != 0); 
+}
+
+static inline void own_fpu(void)
+{
+	if(mips_cpu.options & MIPS_CPU_FPU) {
+		__enable_fpu();
+		KSTK_STATUS(current) |= ST0_CU1;
+		current->flags |= PF_USEDFPU;
+	}
+}
+
+static inline void loose_fpu(void)
+{
+	if (mips_cpu.options & MIPS_CPU_FPU) {
+		KSTK_STATUS(current) &= ~ST0_CU1;
+		current->flags &= ~PF_USEDFPU;
+		__disable_fpu();
+	}
+}
+
+static inline void init_fpu(void)
+{
+	if (mips_cpu.options & MIPS_CPU_FPU) {
+		_init_fpu();
+	} else {
+		fpu_emulator_init_fpu();
+	}
+}
+
+static inline void save_fp(struct task_struct *tsk)
+{
+	if (mips_cpu.options & MIPS_CPU_FPU) 
+		_save_fp(tsk);
+}
+
+static inline void restore_fp(struct task_struct *tsk)
+{
+	if (mips_cpu.options & MIPS_CPU_FPU) 
+		_restore_fp(tsk);
+}
+
+static inline unsigned long long *get_fpu_regs(struct task_struct *tsk)
+{
+	if(mips_cpu.options & MIPS_CPU_FPU) {
+		if ((tsk == current) && is_fpu_owner()) 
+			_save_fp(current);
+		return (unsigned long long *)&tsk->thread.fpu.hard.fp_regs[0];
+	} else {
+		return (unsigned long long *)tsk->thread.fpu.soft.regs;
+	}
+}
+
+#endif /* _ASM_FPU_H */
+
diff -urNd -urNd linux-2.4.20/include/asm-mips/galileo-boards/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/galileo-boards/CVS/Entries
--- linux-2.4.20/include/asm-mips/galileo-boards/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/galileo-boards/CVS/Entries	2005-01-06 23:08:09.000000000 -0600
@@ -0,0 +1,6 @@
+/ev64120.h/1.1.4.1/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+/ev64120int.h/1.1/Mon Dec  4 04:04:09 2000/-ko/Tlinux_2_4_20
+/ev96100.h/1.3.2.1/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+/ev96100int.h/1.1.4.1/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+/gt96100.h/1.2.2.1/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+D/evb64120A////
diff -urNd -urNd linux-2.4.20/include/asm-mips/galileo-boards/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/galileo-boards/CVS/Repository
--- linux-2.4.20/include/asm-mips/galileo-boards/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/galileo-boards/CVS/Repository	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-mips/galileo-boards
diff -urNd -urNd linux-2.4.20/include/asm-mips/galileo-boards/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/galileo-boards/CVS/Root
--- linux-2.4.20/include/asm-mips/galileo-boards/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/galileo-boards/CVS/Root	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-mips/galileo-boards/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/galileo-boards/CVS/Tag
--- linux-2.4.20/include/asm-mips/galileo-boards/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/galileo-boards/CVS/Tag	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-mips/galileo-boards/evb64120A/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/galileo-boards/evb64120A/CVS/Entries
--- linux-2.4.20/include/asm-mips/galileo-boards/evb64120A/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/galileo-boards/evb64120A/CVS/Entries	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1,9 @@
+/cntmr.h/1.1.4.1/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+/core.h/1.2.4.1/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+/dma.h/1.1.4.1/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+/eeprom_param.h/1.1.4.1/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+/flashdrv.h/1.1.4.1/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+/i2o.h/1.1.4.1/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+/memory.h/1.1/Mon Dec  4 04:04:09 2000/-ko/Tlinux_2_4_20
+/pci.h/1.1.4.1/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-mips/galileo-boards/evb64120A/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/galileo-boards/evb64120A/CVS/Repository
--- linux-2.4.20/include/asm-mips/galileo-boards/evb64120A/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/galileo-boards/evb64120A/CVS/Repository	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-mips/galileo-boards/evb64120A
diff -urNd -urNd linux-2.4.20/include/asm-mips/galileo-boards/evb64120A/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/galileo-boards/evb64120A/CVS/Root
--- linux-2.4.20/include/asm-mips/galileo-boards/evb64120A/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/galileo-boards/evb64120A/CVS/Root	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-mips/galileo-boards/evb64120A/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/galileo-boards/evb64120A/CVS/Tag
--- linux-2.4.20/include/asm-mips/galileo-boards/evb64120A/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/galileo-boards/evb64120A/CVS/Tag	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-mips/gcc/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/gcc/CVS/Entries
--- linux-2.4.20/include/asm-mips/gcc/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/gcc/CVS/Entries	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1,2 @@
+/sgidefs.h/1.1/Fri Dec  1 18:15:41 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-mips/gcc/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/gcc/CVS/Repository
--- linux-2.4.20/include/asm-mips/gcc/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/gcc/CVS/Repository	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-mips/gcc
diff -urNd -urNd linux-2.4.20/include/asm-mips/gcc/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/gcc/CVS/Root
--- linux-2.4.20/include/asm-mips/gcc/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/gcc/CVS/Root	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-mips/gcc/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/gcc/CVS/Tag
--- linux-2.4.20/include/asm-mips/gcc/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/gcc/CVS/Tag	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-mips/gt64120/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/CVS/Entries
--- linux-2.4.20/include/asm-mips/gt64120/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/CVS/Entries	2005-01-06 23:08:09.000000000 -0600
@@ -0,0 +1,2 @@
+/gt64120.h/1.1.2.1/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+D/momenco_ocelot////
diff -urNd -urNd linux-2.4.20/include/asm-mips/gt64120/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/CVS/Repository
--- linux-2.4.20/include/asm-mips/gt64120/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/CVS/Repository	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-mips/gt64120
diff -urNd -urNd linux-2.4.20/include/asm-mips/gt64120/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/CVS/Root
--- linux-2.4.20/include/asm-mips/gt64120/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/CVS/Root	2005-01-06 23:06:50.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-mips/gt64120/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/CVS/Tag
--- linux-2.4.20/include/asm-mips/gt64120/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/CVS/Tag	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-mips/gt64120/gt64120.h linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/gt64120.h
--- linux-2.4.20/include/asm-mips/gt64120/gt64120.h	2001-09-09 12:43:01.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/gt64120.h	2002-08-05 18:53:38.000000000 -0500
@@ -63,7 +63,7 @@
 #define GT_PCI1M0REMAP_OFS	0x110
 #define GT_PCI1M1REMAP_OFS	0x118
 
-#define GT_SCS0LD_OFS		0x400	
+#define GT_SCS0LD_OFS		0x400
 #define GT_SCS0HD_OFS		0x404
 #define GT_SCS1LD_OFS		0x408
 #define GT_SCS1HD_OFS		0x40c
@@ -327,7 +327,7 @@
 #define GT_PCI0_BARE_SWSCS32DIS_SHF	1
 #define GT_PCI0_BARE_SWSCS32DIS_MSK	(MSK(1) << GT_PCI0_BARE_SWSCS32DIS_SHF)
 #define GT_PCI0_BARE_SWSCS32DIS_BIT	GT_PCI0_BARE_SWSCS32DIS_MSK
-	
+
 #define GT_PCI0_BARE_SWSCS10DIS_SHF	2
 #define GT_PCI0_BARE_SWSCS10DIS_MSK	(MSK(1) << GT_PCI0_BARE_SWSCS10DIS_SHF)
 #define GT_PCI0_BARE_SWSCS10DIS_BIT	GT_PCI0_BARE_SWSCS10DIS_MSK
@@ -410,7 +410,7 @@
  ***********************************************************************
  */
 
-/* 
+/*
  * include asm/gt64120/<board>/gt64120_dep.h file
  */
 
@@ -432,7 +432,7 @@
  */
 
 /*
- * Board-dependent functions, which must be defined in 
+ * Board-dependent functions, which must be defined in
  * arch/mips/gt64120/<board>/pci.c file.
  *
  * This function is called by pcibios_fixup_bus(bus), which in turn is
diff -urNd -urNd linux-2.4.20/include/asm-mips/gt64120/momenco_ocelot/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/momenco_ocelot/CVS/Entries
--- linux-2.4.20/include/asm-mips/gt64120/momenco_ocelot/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/momenco_ocelot/CVS/Entries	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1,2 @@
+/gt64120_dep.h/1.2.2.1/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-mips/gt64120/momenco_ocelot/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/momenco_ocelot/CVS/Repository
--- linux-2.4.20/include/asm-mips/gt64120/momenco_ocelot/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/momenco_ocelot/CVS/Repository	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-mips/gt64120/momenco_ocelot
diff -urNd -urNd linux-2.4.20/include/asm-mips/gt64120/momenco_ocelot/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/momenco_ocelot/CVS/Root
--- linux-2.4.20/include/asm-mips/gt64120/momenco_ocelot/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/momenco_ocelot/CVS/Root	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-mips/gt64120/momenco_ocelot/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/momenco_ocelot/CVS/Tag
--- linux-2.4.20/include/asm-mips/gt64120/momenco_ocelot/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/momenco_ocelot/CVS/Tag	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-mips/gt64120/momenco_ocelot/gt64120_dep.h linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/momenco_ocelot/gt64120_dep.h
--- linux-2.4.20/include/asm-mips/gt64120/momenco_ocelot/gt64120_dep.h	2001-09-09 12:43:01.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/momenco_ocelot/gt64120_dep.h	2002-08-05 18:53:38.000000000 -0500
@@ -19,7 +19,7 @@
 #include <asm/byteorder.h>		/* for cpu_to_le32() */
 
 /*
- * PCI address allocation 
+ * PCI address allocation
  */
 #define GT_PCI_MEM_BASE    (0x22000000)
 #define GT_PCI_MEM_SIZE    GT_DEF_PCI0_MEM0_SIZE
diff -urNd -urNd linux-2.4.20/include/asm-mips/hp-lj/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/hp-lj/CVS/Entries
--- linux-2.4.20/include/asm-mips/hp-lj/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/hp-lj/CVS/Entries	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1,2 @@
+/asic.h/1.1/Sun Nov 18 03:24:36 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-mips/hp-lj/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/hp-lj/CVS/Repository
--- linux-2.4.20/include/asm-mips/hp-lj/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/hp-lj/CVS/Repository	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-mips/hp-lj
diff -urNd -urNd linux-2.4.20/include/asm-mips/hp-lj/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/hp-lj/CVS/Root
--- linux-2.4.20/include/asm-mips/hp-lj/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/hp-lj/CVS/Root	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-mips/hp-lj/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/hp-lj/CVS/Tag
--- linux-2.4.20/include/asm-mips/hp-lj/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/hp-lj/CVS/Tag	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-mips/ide.h linux-2.4.20-mipscvs-20050106/include/asm-mips/ide.h
--- linux-2.4.20/include/asm-mips/ide.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/ide.h	2002-11-28 17:04:11.000000000 -0600
@@ -7,7 +7,6 @@
  *
  * Copyright (C) 1994-1996  Linus Torvalds & authors
  */
-
 #ifndef __ASM_IDE_H
 #define __ASM_IDE_H
 
@@ -37,7 +36,7 @@
 	void (*ide_free_irq)(unsigned int irq, void *dev_id);
 	int (*ide_check_region) (ide_ioreg_t from, unsigned int extent);
 	void (*ide_request_region)(ide_ioreg_t from, unsigned int extent,
-	                        const char *name);
+	                           const char *name);
 	void (*ide_release_region)(ide_ioreg_t from, unsigned int extent);
 };
 
@@ -54,7 +53,7 @@
 }
 
 static inline void ide_init_hwif_ports(hw_regs_t *hw, ide_ioreg_t data_port,
-                                       ide_ioreg_t ctrl_port, int *irq)
+	ide_ioreg_t ctrl_port, int *irq)
 {
 	ide_ops->ide_init_hwif_ports(hw, data_port, ctrl_port, irq);
 }
@@ -129,22 +128,18 @@
 	return ide_ops->ide_check_region(from, extent);
 }
 
-static __inline__ void ide_request_region(ide_ioreg_t from,
-                                          unsigned int extent, const char *name)
+static __inline__ void ide_request_region(ide_ioreg_t from, unsigned int extent,
+	const char *name)
 {
 	ide_ops->ide_request_region(from, extent, name);
 }
 
-static __inline__ void ide_release_region(ide_ioreg_t from,
-                                          unsigned int extent)
+static __inline__ void ide_release_region(ide_ioreg_t from, unsigned int extent)
 {
 	ide_ops->ide_release_region(from, extent);
 }
 
-#undef  SUPPORT_VLB_SYNC
-#define SUPPORT_VLB_SYNC 0
-
-#if defined(__MIPSEB__)
+#if defined(CONFIG_SWAP_IO_SPACE_L) && defined(__MIPSEB__)
 
 /* get rid of defs from io.h - ide has its private and conflicting versions */
 #ifdef insw
diff -urNd -urNd linux-2.4.20/include/asm-mips/inventory.h linux-2.4.20-mipscvs-20050106/include/asm-mips/inventory.h
--- linux-2.4.20/include/asm-mips/inventory.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/inventory.h	2002-10-31 14:37:38.000000000 -0600
@@ -4,9 +4,6 @@
 #ifndef __ASM_INVENTORY_H
 #define __ASM_INVENTORY_H
 
-#include <linux/config.h>
-
-#ifdef CONFIG_BINFMT_IRIX
 typedef struct inventory_s {
 	struct inventory_s *inv_next;
 	int    inv_class;
@@ -19,10 +16,5 @@
 extern int inventory_items;
 void add_to_inventory (int class, int type, int controller, int unit, int state);
 int dump_inventory_to_user (void *userbuf, int size);
-void init_inventory (void);
 
-#else
-#define add_to_inventory(c,t,o,u,s)
-#define init_inventory()
-#endif
 #endif /* __ASM_INVENTORY_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips/io.h linux-2.4.20-mipscvs-20050106/include/asm-mips/io.h
--- linux-2.4.20/include/asm-mips/io.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/io.h	2002-11-28 17:04:11.000000000 -0600
@@ -21,11 +21,13 @@
 #ifdef CONFIG_SGI_IP27
 extern unsigned long bus_to_baddr[256];
 
-#define bus_to_baddr(hwdev, addr) (bus_to_baddr[(hwdev)->bus->number] + (addr))
-#define baddr_to_bus(hwdev, addr) ((addr) - bus_to_baddr[(hwdev)->bus->number])
+#define bus_to_baddr(bus, addr)	(bus_to_baddr[(bus)->number] + (addr))
+#define baddr_to_bus(bus, addr)	((addr) - bus_to_baddr[(bus)->number])
+#define __swizzle_addr_w(port)	((port) ^ 2)
 #else
-#define bus_to_baddr(hwdev, addr) (addr)
-#define baddr_to_bus(hwdev, addr) (addr)
+#define bus_to_baddr(bus, addr)	(addr)
+#define baddr_to_bus(bus, addr)	(addr)
+#define __swizzle_addr_w(port)	(port)
 #endif
 
 /*
@@ -35,138 +37,27 @@
 
 /*
  * Sane hardware offers swapping of I/O space accesses in hardware; less
- * sane hardware forces software to fiddle with this ...
+ * sane hardware forces software to fiddle with this.  Totally insane hardware
+ * introduces special cases like:
+ *
+ * IP22 seems braindead enough to swap 16-bits values in hardware, but not
+ * 32-bits.  Go figure... Can't tell without documentation.
+ * 
+ * We only do the swapping to keep the kernel config bits of bi-endian
+ * machines a bit saner.
  */
-#if defined(CONFIG_SWAP_IO_SPACE) && defined(__MIPSEB__)
-
-#define __ioswab8(x) (x)
-#ifdef CONFIG_SGI_IP22
-/* IP22 seems braindead enough to swap 16bits values in hardware, but
-   not 32bits.  Go figure... Can't tell without documentation. */
-#define __ioswab16(x) (x)
-#else
+#if defined(CONFIG_SWAP_IO_SPACE_W) && defined(__MIPSEB__)
 #define __ioswab16(x) swab16(x)
-#endif
-#define __ioswab32(x) swab32(x)
-
 #else
-
-#define __ioswab8(x) (x)
 #define __ioswab16(x) (x)
-#define __ioswab32(x) (x)
-
-#endif
-
-/*
- * <Bacchus> Historically I wrote this stuff the same way as Linus did
- * because I was young and clueless.  And now it's so jucky that I
- * don't want to put my eyes on it again to get rid of it :-)
- *
- * I'll do it then, because this code offends both me and my compiler
- * - particularly the bits of inline asm which end up doing crap like
- * 'lb $2,$2($5)' -- dwmw2
- */
-
-#define IO_SPACE_LIMIT 0xffff
-
-/*
- * On MIPS I/O ports are memory mapped, so we access them using normal
- * load/store instructions. mips_io_port_base is the virtual address to
- * which all ports are being mapped.  For sake of efficiency some code
- * assumes that this is an address that can be loaded with a single lui
- * instruction, so the lower 16 bits must be zero.  Should be true on
- * on any sane architecture; generic code does not use this assumption.
- */
-extern const unsigned long mips_io_port_base;
-
-#define set_io_port_base(base)	\
-	do { * (unsigned long *) &mips_io_port_base = (base); } while (0)
-
-/*
- * Thanks to James van Artsdalen for a better timing-fix than
- * the two short jumps: using outb's to a nonexistent port seems
- * to guarantee better timings even on fast machines.
- *
- * On the other hand, I'd like to be sure of a non-existent port:
- * I feel a bit unsafe about using 0x80 (should be safe, though)
- *
- *		Linus
- *
- */
-
-#define __SLOW_DOWN_IO \
-	__asm__ __volatile__( \
-		"sb\t$0,0x80(%0)" \
-		: : "r" (mips_io_port_base));
-
-#ifdef CONF_SLOWDOWN_IO
-#ifdef REALLY_SLOW_IO
-#define SLOW_DOWN_IO { __SLOW_DOWN_IO; __SLOW_DOWN_IO; __SLOW_DOWN_IO; __SLOW_DOWN_IO; }
-#else
-#define SLOW_DOWN_IO __SLOW_DOWN_IO
 #endif
+#if defined(CONFIG_SWAP_IO_SPACE_L) && defined(__MIPSEB__)
+#define __ioswab32(x) swab32(x)
 #else
-#define SLOW_DOWN_IO
+#define __ioswab32(x) (x)
 #endif
 
 /*
- *     virt_to_phys    -       map virtual addresses to physical
- *     @address: address to remap
- *
- *     The returned physical address is the physical (CPU) mapping for
- *     the memory address given. It is only valid to use this function on
- *     addresses directly mapped or allocated via kmalloc.
- *
- *     This function does not give bus mappings for DMA transfers. In
- *     almost all conceivable cases a device driver should not be using
- *     this function
- */
-
-static inline unsigned long virt_to_phys(volatile void * address)
-{
-	return PHYSADDR(address);
-}
-
-/*
- *     phys_to_virt    -       map physical address to virtual
- *     @address: address to remap
- *
- *     The returned virtual address is a current CPU mapping for
- *     the memory address given. It is only valid to use this function on
- *     addresses that have a kernel mapping
- *
- *     This function does not handle bus mappings for DMA transfers. In
- *     almost all conceivable cases a device driver should not be using
- *     this function
- */
-
-static inline void * phys_to_virt(unsigned long address)
-{
-	return (void *)KSEG0ADDR(address);
-}
-
-/*
- * IO bus memory addresses are also 1:1 with the physical address
- */
-static inline unsigned long virt_to_bus(volatile void * address)
-{
-	return PHYSADDR(address);
-}
-
-static inline void * bus_to_virt(unsigned long address)
-{
-	return (void *)KSEG0ADDR(address);
-}
-
-#define page_to_bus page_to_phys
-
-/*
- * isa_slot_offset is the address where E(ISA) busaddress 0 is mapped
- * for the processor.
- */
-extern unsigned long isa_slot_offset;
-
-/*
  * Change "struct page" to physical address.
  */
 #ifdef CONFIG_64BIT_PHYS_ADDR
@@ -175,6 +66,7 @@
 #define page_to_phys(page)	((page - mem_map) << PAGE_SHIFT)
 #endif
 
+#define IO_SPACE_LIMIT 0xffff
 
 extern void * __ioremap(phys_t offset, phys_t size, unsigned long flags);
 
@@ -234,7 +126,7 @@
 #define __raw_readw(addr)	(*(volatile unsigned short *)(addr))
 #define __raw_readl(addr)	(*(volatile unsigned int *)(addr))
 
-#define writeb(b,addr) ((*(volatile unsigned char *)(addr)) = (__ioswab8(b)))
+#define writeb(b,addr) ((*(volatile unsigned char *)(addr)) = (b))
 #define writew(b,addr) ((*(volatile unsigned short *)(addr)) = (__ioswab16(b)))
 #define writel(b,addr) ((*(volatile unsigned int *)(addr)) = (__ioswab32(b)))
 
@@ -247,6 +139,13 @@
 #define memcpy_toio(a,b,c)	memcpy((void *)(a),(b),(c))
 
 /*
+ * isa_slot_offset is the address where E(ISA) busaddress 0 is mapped
+ * for the processor.  This implies the assumption that there is only
+ * one of these busses.
+ */
+extern unsigned long isa_slot_offset;
+
+/*
  * ISA space is 'always mapped' on currently supported MIPS systems, no need
  * to explicitly ioremap() it. The fact that the ISA IO space is mapped
  * to PAGE_OFFSET is pure coincidence - it does not mean ISA values
@@ -284,7 +183,7 @@
  *     Returns 1 on a match.
  */
 static inline int check_signature(unsigned long io_addr,
-                                  const unsigned char *signature, int length)
+	const unsigned char *signature, int length)
 {
 	int retval = 0;
 	do {
@@ -328,17 +227,95 @@
 	return retval;
 }
 
+/*
+ *     virt_to_phys    -       map virtual addresses to physical
+ *     @address: address to remap
+ *
+ *     The returned physical address is the physical (CPU) mapping for
+ *     the memory address given. It is only valid to use this function on
+ *     addresses directly mapped or allocated via kmalloc.
+ *
+ *     This function does not give bus mappings for DMA transfers. In
+ *     almost all conceivable cases a device driver should not be using
+ *     this function
+ */
+
+static inline unsigned long virt_to_phys(volatile void * address)
+{
+	return (unsigned long)address - PAGE_OFFSET;
+}
+
+/*
+ *     phys_to_virt    -       map physical address to virtual
+ *     @address: address to remap
+ *
+ *     The returned virtual address is a current CPU mapping for
+ *     the memory address given. It is only valid to use this function on
+ *     addresses that have a kernel mapping
+ *
+ *     This function does not handle bus mappings for DMA transfers. In
+ *     almost all conceivable cases a device driver should not be using
+ *     this function
+ */
+
+static inline void * phys_to_virt(unsigned long address)
+{
+	return (void *)(address + PAGE_OFFSET);
+}
+
+/*
+ * IO bus memory addresses are also 1:1 with the physical address
+ */
+static inline unsigned long virt_to_bus(volatile void * address)
+{
+	return (unsigned long)address - PAGE_OFFSET;
+}
+
+static inline void * bus_to_virt(unsigned long address)
+{
+	return (void *)(address + PAGE_OFFSET);
+}
+
+/* This is too simpleminded for more sophisticated than dumb hardware ...  */
+#define page_to_bus page_to_phys
+
+/*
+ * On MIPS I/O ports are memory mapped, so we access them using normal
+ * load/store instructions. mips_io_port_base is the virtual address to
+ * which all ports are being mapped.  For sake of efficiency some code
+ * assumes that this is an address that can be loaded with a single lui
+ * instruction, so the lower 16 bits must be zero.  Should be true on
+ * on any sane architecture; generic code does not use this assumption.
+ */
+extern const unsigned long mips_io_port_base;
+
+#define set_io_port_base(base) \
+	do { * (unsigned long *) &mips_io_port_base = (base); } while (0)
 
+#define __SLOW_DOWN_IO \
+	__asm__ __volatile__( \
+		"sb\t$0,0x80(%0)" \
+		: : "r" (mips_io_port_base));
 
+#ifdef CONF_SLOWDOWN_IO
+#ifdef REALLY_SLOW_IO
+#define SLOW_DOWN_IO { __SLOW_DOWN_IO; __SLOW_DOWN_IO; __SLOW_DOWN_IO; __SLOW_DOWN_IO; }
+#else
+#define SLOW_DOWN_IO __SLOW_DOWN_IO
+#endif
+#else
+#define SLOW_DOWN_IO
+#endif
 
 #define outb(val,port)							\
 do {									\
-	*(volatile u8 *)(mips_io_port_base + (port)) = __ioswab8(val);	\
+	*(volatile u8 *)(mips_io_port_base + (port)) = (val);		\
 } while(0)
 
 #define outw(val,port)							\
 do {									\
-	*(volatile u16 *)(mips_io_port_base + (port)) = __ioswab16(val);	\
+	*(volatile u16 *)(mips_io_port_base + __swizzle_addr_w(port)) =	\
+		__ioswab16(val);					\
 } while(0)
 
 #define outl(val,port)							\
@@ -348,13 +325,14 @@
 
 #define outb_p(val,port)						\
 do {									\
-	*(volatile u8 *)(mips_io_port_base + (port)) = __ioswab8(val);	\
+	*(volatile u8 *)(mips_io_port_base + (port)) = (val);		\
 	SLOW_DOWN_IO;							\
 } while(0)
 
 #define outw_p(val,port)						\
 do {									\
-	*(volatile u16 *)(mips_io_port_base + (port)) = __ioswab16(val);\
+	*(volatile u16 *)(mips_io_port_base + __swizzle_addr_w(port)) =	\
+		__ioswab16(val);					\
 	SLOW_DOWN_IO;							\
 } while(0)
 
@@ -364,49 +342,45 @@
 	SLOW_DOWN_IO;							\
 } while(0)
 
-#define inb(port) __inb(port)
-#define inw(port) __inw(port)
-#define inl(port) __inl(port)
-#define inb_p(port) __inb_p(port)
-#define inw_p(port) __inw_p(port)
-#define inl_p(port) __inl_p(port)
-
-static inline unsigned char __inb(unsigned long port)
+static inline unsigned char inb(unsigned long port)
 {
-	return __ioswab8(*(volatile u8 *)(mips_io_port_base + port));
+	return *(volatile u8 *)(mips_io_port_base + port);
 }
 
-static inline unsigned short __inw(unsigned long port)
+static inline unsigned short inw(unsigned long port)
 {
+	port = __swizzle_addr_w(port);
+
 	return __ioswab16(*(volatile u16 *)(mips_io_port_base + port));
 }
 
-static inline unsigned int __inl(unsigned long port)
+static inline unsigned int inl(unsigned long port)
 {
 	return __ioswab32(*(volatile u32 *)(mips_io_port_base + port));
 }
 
-static inline unsigned char __inb_p(unsigned long port)
+static inline unsigned char inb_p(unsigned long port)
 {
 	u8 __val;
 
 	__val = *(volatile u8 *)(mips_io_port_base + port);
 	SLOW_DOWN_IO;
 
-	return __ioswab8(__val);
+	return __val;
 }
 
-static inline unsigned short __inw_p(unsigned long port)
+static inline unsigned short inw_p(unsigned long port)
 {
 	u16 __val;
 
+	port = __swizzle_addr_w(port);
 	__val = *(volatile u16 *)(mips_io_port_base + port);
 	SLOW_DOWN_IO;
 
 	return __ioswab16(__val);
 }
 
-static inline unsigned int __inl_p(unsigned long port)
+static inline unsigned int inl_p(unsigned long port)
 {
 	u32 __val;
 
@@ -415,13 +389,6 @@
 	return __ioswab32(__val);
 }
 
-#define outsb(port, addr, count) __outsb(port, addr, count)
-#define insb(port, addr, count) __insb(port, addr, count)
-#define outsw(port, addr, count) __outsw(port, addr, count)
-#define insw(port, addr, count) __insw(port, addr, count)
-#define outsl(port, addr, count) __outsl(port, addr, count)
-#define insl(port, addr, count) __insl(port, addr, count)
-
 static inline void __outsb(unsigned long port, void *addr, unsigned int count)
 {
 	while (count--) {
@@ -470,6 +437,13 @@
 	}
 }
 
+#define outsb(port, addr, count) __outsb(port, addr, count)
+#define insb(port, addr, count) __insb(port, addr, count)
+#define outsw(port, addr, count) __outsw(port, addr, count)
+#define insw(port, addr, count) __insw(port, addr, count)
+#define outsl(port, addr, count) __outsl(port, addr, count)
+#define insl(port, addr, count) __insl(port, addr, count)
+
 /*
  * The caches on some architectures aren't dma-coherent and have need to
  * handle this in software.  There are three types of operations that
@@ -500,9 +474,12 @@
 
 #else /* Sane hardware */
 
-#define dma_cache_wback_inv(start,size)	do { (start); (size); } while (0)
-#define dma_cache_wback(start,size)	do { (start); (size); } while (0)
-#define dma_cache_inv(start,size)	do { (start); (size); } while (0)
+#define dma_cache_wback_inv(start,size)	\
+	do { (void) (start); (void) (size); } while (0)
+#define dma_cache_wback(start,size)	\
+	do { (void) (start); (void) (size); } while (0)
+#define dma_cache_inv(start,size)	\
+	do { (void) (start); (void) (size); } while (0)
 
 #endif /* CONFIG_NONCOHERENT_IO */
 
diff -urNd -urNd linux-2.4.20/include/asm-mips/irq.h linux-2.4.20-mipscvs-20050106/include/asm-mips/irq.h
--- linux-2.4.20/include/asm-mips/irq.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/irq.h	2002-10-06 07:28:03.000000000 -0500
@@ -26,14 +26,9 @@
 
 struct irqaction;
 extern int i8259_setup_irq(int irq, struct irqaction * new);
-extern void disable_irq(unsigned int);
 
-#ifdef CONFIG_NEW_IRQ
+extern void disable_irq(unsigned int);
 extern void disable_irq_nosync(unsigned int);
-#else
-#define disable_irq_nosync	disable_irq
-#endif
-
 extern void enable_irq(unsigned int);
 
 /* Machine specific interrupt initialization  */
diff -urNd -urNd linux-2.4.20/include/asm-mips/it8172/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/it8172/CVS/Entries
--- linux-2.4.20/include/asm-mips/it8172/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/it8172/CVS/Entries	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1,7 @@
+/it8172.h/1.2.2.1/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+/it8172_cir.h/1.2.2.1/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+/it8172_dbg.h/1.2.2.1/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+/it8172_int.h/1.3.2.1/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+/it8172_lpc.h/1.2/Fri Mar 16 12:44:20 2001/-ko/Tlinux_2_4_20
+/it8172_pci.h/1.2/Fri Mar 16 12:44:20 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-mips/it8172/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/it8172/CVS/Repository
--- linux-2.4.20/include/asm-mips/it8172/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/it8172/CVS/Repository	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-mips/it8172
diff -urNd -urNd linux-2.4.20/include/asm-mips/it8172/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/it8172/CVS/Root
--- linux-2.4.20/include/asm-mips/it8172/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/it8172/CVS/Root	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-mips/it8172/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/it8172/CVS/Tag
--- linux-2.4.20/include/asm-mips/it8172/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/it8172/CVS/Tag	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-mips/it8172/it8172_cir.h linux-2.4.20-mipscvs-20050106/include/asm-mips/it8172/it8172_cir.h
--- linux-2.4.20/include/asm-mips/it8172/it8172_cir.h	2001-09-09 12:43:02.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/it8172/it8172_cir.h	2002-08-05 18:53:38.000000000 -0500
@@ -54,7 +54,7 @@
   #define CFQ_38_480           0xB       /* 38 KHz low, 480 KHz high */
 #define CIR_HCFS               0x20
   #define CIR_SET_HS(x)        (((x)&0x1)<<5)
-    
+
 
 /* Receiver Control Register */
 #define CIR_SET_RXDCR(x)       ((x)&0x7)
diff -urNd -urNd linux-2.4.20/include/asm-mips/it8172/it8172_dbg.h linux-2.4.20-mipscvs-20050106/include/asm-mips/it8172/it8172_dbg.h
--- linux-2.4.20/include/asm-mips/it8172/it8172_dbg.h	2001-09-09 12:43:02.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/it8172/it8172_dbg.h	2002-08-05 18:53:38.000000000 -0500
@@ -1,7 +1,7 @@
 /*
  *
  * BRIEF MODULE DESCRIPTION
- *	Function prototypes for low level uart routines to 
+ *	Function prototypes for low level uart routines to
  *	directly access a 16550 uart.
  *
  * Copyright 2000 MontaVista Software Inc.
diff -urNd -urNd linux-2.4.20/include/asm-mips/it8172/it8172.h linux-2.4.20-mipscvs-20050106/include/asm-mips/it8172/it8172.h
--- linux-2.4.20/include/asm-mips/it8172/it8172.h	2001-09-09 12:43:02.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/it8172/it8172.h	2002-08-05 18:53:38.000000000 -0500
@@ -33,7 +33,7 @@
 
 #include <asm/addrspace.h>
 
-#define IT8172_BASE			0x18000000	
+#define IT8172_BASE			0x18000000
 #define IT8172_PCI_IO_BASE		0x14000000
 #define IT8172_PCI_MEM_BASE		0x10000000
 
@@ -99,18 +99,18 @@
 
 // PCI to Internal/LPC Bus Bridge configuration header register offset
 #define IT_P2I_BCR				0x4C
-#define IT_P2I_D0IOSC				0x50 
+#define IT_P2I_D0IOSC				0x50
 #define IT_P2I_D1IOSC				0x54
-#define IT_P2I_D2IOSC				0x58 
-#define IT_P2I_D3IOSC				0x5C 
-#define IT_P2I_D4IOSC				0x60 
-#define IT_P2I_D5IOSC				0x64 
-#define IT_P2I_D6IOSC				0x68 
-#define IT_P2I_D7IOSC				0x6C 
-#define IT_P2I_D8IOSC				0x70 
-#define IT_P2I_D9IOSC				0x74 
-#define IT_P2I_D10IOSC				0x78 
-#define IT_P2I_D11IOSC				0x7C 
+#define IT_P2I_D2IOSC				0x58
+#define IT_P2I_D3IOSC				0x5C
+#define IT_P2I_D4IOSC				0x60
+#define IT_P2I_D5IOSC				0x64
+#define IT_P2I_D6IOSC				0x68
+#define IT_P2I_D7IOSC				0x6C
+#define IT_P2I_D8IOSC				0x70
+#define IT_P2I_D9IOSC				0x74
+#define IT_P2I_D10IOSC				0x78
+#define IT_P2I_D11IOSC				0x7C
 
 // Memory controller register offsets from IT8172_BASE
 #define IT_MC_SDRMR					0x1000
@@ -134,10 +134,10 @@
 #define IT_M68K_BSR					0x5D
 #define IT_M68K_DTR					0x5F
 
-// Register offset from IT8172_PCI_IO_BASE 
+// Register offset from IT8172_PCI_IO_BASE
 // These registers are accessible through 8172 PCI IO window.
 
-// INTC 
+// INTC
 #define IT_INTC_BASE				0x10000
 #define IT_INTC_LBDNIRR				0x10000
 #define IT_INTC_LBDNIMR				0x10002
diff -urNd -urNd linux-2.4.20/include/asm-mips/it8172/it8172_int.h linux-2.4.20-mipscvs-20050106/include/asm-mips/it8172/it8172_int.h
--- linux-2.4.20/include/asm-mips/it8172/it8172_int.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/it8172/it8172_int.h	2002-08-05 18:53:38.000000000 -0500
@@ -107,7 +107,7 @@
  */
 #define MIPS_CPU_TIMER_IRQ       (NR_IRQS-1)
 
-/* 
+/*
  * IT8172 Interrupt Controller Registers
  */
 struct it8172_intc_regs {
diff -urNd -urNd linux-2.4.20/include/asm-mips/it8712.h linux-2.4.20-mipscvs-20050106/include/asm-mips/it8712.h
--- linux-2.4.20/include/asm-mips/it8712.h	2001-04-13 22:26:07.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/it8712.h	2002-08-05 18:53:37.000000000 -0500
@@ -4,7 +4,7 @@
 
 #define LPC_BASE_ADDR	0x14000000
 
-// MB PnP configuration register 
+// MB PnP configuration register
 #define LPC_KEY_ADDR	0x1400002E
 #define LPC_DATA_ADDR	0x1400002F
 
diff -urNd -urNd linux-2.4.20/include/asm-mips/jazz.h linux-2.4.20-mipscvs-20050106/include/asm-mips/jazz.h
--- linux-2.4.20/include/asm-mips/jazz.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/jazz.h	2002-08-05 18:53:37.000000000 -0500
@@ -5,8 +5,8 @@
  *
  * Copyright (C) 1995 - 1998 by Andreas Busse and Ralf Baechle
  */
-#ifndef __ASM_JAZZ_H 
-#define __ASM_JAZZ_H 
+#ifndef __ASM_JAZZ_H
+#define __ASM_JAZZ_H
 
 /*
  * The addresses below are virtual address. The mappings are
@@ -139,7 +139,7 @@
  * Dummy Device Address. Used in jazzdma.c
  */
 #define JAZZ_DUMMY_DEVICE       0xe000d000
-     
+
 /*
  * JAZZ timer registers and interrupt no.
  * Note that the hardware timer interrupt is actually on
@@ -248,7 +248,7 @@
 #define JAZZ_R4030_CACHE_BWIN   0xE0000060	/* I/O Cache Buffer Window */
 
 /*
- * Remote Speed Registers. 
+ * Remote Speed Registers.
  *
  *  0: free,      1: Ethernet,  2: SCSI,      3: Floppy,
  *  4: RTC,       5: Kb./Mouse  6: serial 1,  7: serial 2,
diff -urNd -urNd linux-2.4.20/include/asm-mips/jmr3927/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/CVS/Entries
--- linux-2.4.20/include/asm-mips/jmr3927/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/CVS/Entries	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1,7 @@
+/ds1742rtc.h/1.1.2.1/Sun Jun 30 23:49:56 2002/-ko/Tlinux_2_4_20
+/irq.h/1.1.2.2/Thu Jun 27 14:21:23 2002/-ko/Tlinux_2_4_20
+/jmr3927.h/1.1.2.2/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+/pci.h/1.1.2.1/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+/tx3927.h/1.1.2.2/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+/txx927.h/1.1.2.2/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-mips/jmr3927/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/CVS/Repository
--- linux-2.4.20/include/asm-mips/jmr3927/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/CVS/Repository	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-mips/jmr3927
diff -urNd -urNd linux-2.4.20/include/asm-mips/jmr3927/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/CVS/Root
--- linux-2.4.20/include/asm-mips/jmr3927/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/CVS/Root	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-mips/jmr3927/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/CVS/Tag
--- linux-2.4.20/include/asm-mips/jmr3927/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/CVS/Tag	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-mips/jmr3927/ds1742rtc.h linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/ds1742rtc.h
--- linux-2.4.20/include/asm-mips/jmr3927/ds1742rtc.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/ds1742rtc.h	2002-06-30 18:49:56.000000000 -0500
@@ -1,5 +1,4 @@
-/* $Id: ds1742rtc.h,v 1.1 2002/02/27 18:57:58 marcelo Exp $
- *
+/*
  * ds1742rtc.h - register definitions for the Real-Time-Clock / CMOS RAM
  *
  *   Based on include/asm-mips/ds1643rtc.h.
diff -urNd -urNd linux-2.4.20/include/asm-mips/jmr3927/irq.h linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/irq.h
--- linux-2.4.20/include/asm-mips/jmr3927/irq.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/irq.h	2002-06-27 09:21:23.000000000 -0500
@@ -10,7 +10,9 @@
 #ifndef __ASM_TX3927_IRQ_H
 #define __ASM_TX3927_IRQ_H
 
-#ifndef _LANGUAGE_ASSEMBLY
+#include <linux/config.h>
+
+#ifndef __ASSEMBLY__
 #include <asm/irq.h>
 
 struct tb_irq_space {
@@ -50,7 +52,7 @@
 
 extern int (*toshibaboards_gen_iack)(void);
 
-#endif /* _LANGUAGE_ASSEMBLY */
+#endif /* !__ASSEMBLY__ */
 
 #define NR_ISA_IRQS 16
 #define TB_IRQ_IS_ISA(irq)	\
diff -urNd -urNd linux-2.4.20/include/asm-mips/jmr3927/jmr3927.h linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/jmr3927.h
--- linux-2.4.20/include/asm-mips/jmr3927/jmr3927.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/jmr3927.h	2002-08-05 18:53:38.000000000 -0500
@@ -7,13 +7,13 @@
  *
  * Copyright (C) 2000-2001 Toshiba Corporation
  */
-#ifndef __ASM_TX3927_JMR3927_H 
-#define __ASM_TX3927_JMR3927_H 
+#ifndef __ASM_TX3927_JMR3927_H
+#define __ASM_TX3927_JMR3927_H
 
 #include <asm/jmr3927/tx3927.h>
 #include <asm/addrspace.h>
 #include <asm/jmr3927/irq.h>
-#ifndef _LANGUAGE_ASSEMBLY
+#ifndef __ASSEMBLY__
 #include <asm/system.h>
 #endif
 
@@ -36,14 +36,14 @@
 #define JMR3927_PORT_BASE	KSEG1
 
 /* select indirect initiator access per errata */
-#define JMR3927_INIT_INDIRECT_PCI 
+#define JMR3927_INIT_INDIRECT_PCI
 #define PCI_ISTAT_IDICC           0x1000
 #define PCI_IPCIBE_IBE_LONG       0
-#define PCI_IPCIBE_ICMD_IOREAD    2 
+#define PCI_IPCIBE_ICMD_IOREAD    2
 #define PCI_IPCIBE_ICMD_IOWRITE   3
-#define PCI_IPCIBE_ICMD_MEMREAD   6 
+#define PCI_IPCIBE_ICMD_MEMREAD   6
 #define PCI_IPCIBE_ICMD_MEMWRITE  7
-#define PCI_IPCIBE_ICMD_SHIFT     4 
+#define PCI_IPCIBE_ICMD_SHIFT     4
 
 /* Address map (virtual address) */
 #define JMR3927_ROM0_BASE	(KSEG1 + JMR3927_ROMCE0)
@@ -142,7 +142,7 @@
 #define JMR3927_ISAC_INTF_IRQ10	(1 << JMR3927_ISAC_INTB_IRQ10)
 #define JMR3927_ISAC_INTF_ISAER	(1 << JMR3927_ISAC_INTB_ISAER)
 
-#ifndef _LANGUAGE_ASSEMBLY
+#ifndef __ASSEMBLY__
 
 #if 0
 #define jmr3927_ioc_reg_out(d, a)	((*(volatile unsigned short *)(a)) = (d) << 8)
@@ -197,7 +197,7 @@
 #define jmr3927_io_dipsw()	(jmr3927_isac_reg_in(JMR3927_ISAC_LED_ADDR) >> 4)
 
 
-#endif /* _LANGUAGE_ASSEMBLY */
+#endif /* !__ASSEMBLY__ */
 
 /*
  * UART defines for serial.h
diff -urNd -urNd linux-2.4.20/include/asm-mips/jmr3927/pci.h linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/pci.h
--- linux-2.4.20/include/asm-mips/jmr3927/pci.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/pci.h	2002-08-05 18:53:38.000000000 -0500
@@ -2,7 +2,7 @@
  *
  * Copyright 2001 MontaVista Software Inc.
  * Author: MontaVista Software, Inc.
- *              ahennessy@mvista.com       
+ *              ahennessy@mvista.com
  *
  * include/asm-mips/jmr3927/pci.h
  * Based on include/asm-mips/ddb5xxx/pci.h
@@ -51,7 +51,7 @@
 	struct resource *mem_resource;
 };
 
-/* 
+/*
  * each board defines an array of pci_channels, that ends with all NULL entry
  */
 extern struct pci_channel mips_pci_channels[];
diff -urNd -urNd linux-2.4.20/include/asm-mips/jmr3927/tx3927.h linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/tx3927.h
--- linux-2.4.20/include/asm-mips/jmr3927/tx3927.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/tx3927.h	2002-08-05 18:53:38.000000000 -0500
@@ -5,8 +5,8 @@
  *
  * Copyright (C) 2000 Toshiba Corporation
  */
-#ifndef __ASM_TX3927_H 
-#define __ASM_TX3927_H 
+#ifndef __ASM_TX3927_H
+#define __ASM_TX3927_H
 
 #include <asm/jmr3927/txx927.h>
 
@@ -22,7 +22,7 @@
 #define TX3927_SIO_REG(ch)	(0xfffef300 + (ch) * 0x100)
 #define TX3927_PIO_REG		0xfffef500
 
-#ifndef _LANGUAGE_ASSEMBLY
+#ifndef __ASSEMBLY__
 
 struct tx3927_sdramc_reg {
 	volatile unsigned long cr[8];
@@ -164,7 +164,7 @@
 	volatile unsigned long pdcr;
 };
 
-#endif /* _LANGUAGE_ASSEMBLY */
+#endif /* !__ASSEMBLY__ */
 
 /*
  * SDRAMC
@@ -348,7 +348,7 @@
 #define TX3927_PCFG_SELDMA_ALL	0x0000000f
 #define TX3927_PCFG_SELDMA(ch)	(0x00000001<<(ch))
 
-#ifndef _LANGUAGE_ASSEMBLY
+#ifndef __ASSEMBLY__
 
 #define tx3927_sdramcptr	((struct tx3927_sdramc_reg *)TX3927_SDRAMC_REG)
 #define tx3927_romcptr		((struct tx3927_romc_reg *)TX3927_ROMC_REG)
@@ -360,6 +360,6 @@
 #define tx3927_sioptr(ch)	((struct txx927_sio_reg *)TX3927_SIO_REG(ch))
 #define tx3927_pioptr		((struct txx927_pio_reg *)TX3927_PIO_REG)
 
-#endif /* _LANGUAGE_ASSEMBLY */
+#endif /* !__ASSEMBLY__ */
 
 #endif /* __ASM_TX3927_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips/jmr3927/txx927.h linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/txx927.h
--- linux-2.4.20/include/asm-mips/jmr3927/txx927.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/txx927.h	2002-08-05 18:53:38.000000000 -0500
@@ -7,10 +7,10 @@
  *
  * Copyright (C) 2000 Toshiba Corporation
  */
-#ifndef __ASM_TXX927_H 
-#define __ASM_TXX927_H 
+#ifndef __ASM_TXX927_H
+#define __ASM_TXX927_H
 
-#ifndef _LANGUAGE_ASSEMBLY
+#ifndef __ASSEMBLY__
 
 struct txx927_tmr_reg {
 	volatile unsigned long tcr;
@@ -52,7 +52,7 @@
 	volatile unsigned long maskext;
 };
 
-#endif /* _LANGUAGE_ASSEMBLY */
+#endif /* !__ASSEMBLY__ */
 
 
 /*
diff -urNd -urNd linux-2.4.20/include/asm-mips/kmap_types.h linux-2.4.20-mipscvs-20050106/include/asm-mips/kmap_types.h
--- linux-2.4.20/include/asm-mips/kmap_types.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/kmap_types.h	2002-09-25 07:10:01.000000000 -0500
@@ -7,7 +7,7 @@
 	KM_SKB_DATA_SOFTIRQ,
 	KM_USER0,
 	KM_USER1,
-	KM_BIO_IRQ,
+	KM_BH_IRQ,
 	KM_TYPE_NR
 };
 
diff -urNd -urNd linux-2.4.20/include/asm-mips/lasat/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/CVS/Entries
--- linux-2.4.20/include/asm-mips/lasat/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/CVS/Entries	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1,8 @@
+/ds1603.h/1.1.2.1/Fri Dec 13 19:45:36 2002/-ko/Tlinux_2_4_20
+/eeprom.h/1.1.2.1/Fri Dec 13 19:45:36 2002/-ko/Tlinux_2_4_20
+/head.h/1.1.2.1/Sun Oct  6 02:01:33 2002/-ko/Tlinux_2_4_20
+/lasat.h/1.1.2.3/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
+/lasatint.h/1.1.2.1/Fri Dec 13 19:45:36 2002/-ko/Tlinux_2_4_20
+/picvue.h/1.1.2.1/Fri Dec 13 19:45:36 2002/-ko/Tlinux_2_4_20
+/serial.h/1.1.2.1/Fri Dec 13 19:45:36 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-mips/lasat/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/CVS/Repository
--- linux-2.4.20/include/asm-mips/lasat/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/CVS/Repository	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-mips/lasat
diff -urNd -urNd linux-2.4.20/include/asm-mips/lasat/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/CVS/Root
--- linux-2.4.20/include/asm-mips/lasat/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/CVS/Root	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-mips/lasat/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/CVS/Tag
--- linux-2.4.20/include/asm-mips/lasat/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/CVS/Tag	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-mips/lasat/ds1603.h linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/ds1603.h
--- linux-2.4.20/include/asm-mips/lasat/ds1603.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/ds1603.h	2002-12-13 13:45:36.000000000 -0600
@@ -0,0 +1,18 @@
+#include <asm/addrspace.h>
+
+/* Lasat 100	*/
+#define DS1603_REG_100		(KSEG1ADDR(0x1c810000))
+#define DS1603_RST_100		(1 << 2)
+#define DS1603_CLK_100		(1 << 0)
+#define DS1603_DATA_SHIFT_100	1
+#define DS1603_DATA_100		(1 << DS1603_DATA_SHIFT_100)
+
+/* Lasat 200	*/
+#define DS1603_REG_200		(KSEG1ADDR(0x11000000))
+#define DS1603_RST_200		(1 << 3)
+#define DS1603_CLK_200		(1 << 4)
+#define DS1603_DATA_200		(1 << 5)
+
+#define DS1603_DATA_REG_200		(DS1603_REG_200 + 0x10000)
+#define DS1603_DATA_READ_SHIFT_200	9
+#define DS1603_DATA_READ_200	(1 << DS1603_DATA_READ_SHIFT_200)
diff -urNd -urNd linux-2.4.20/include/asm-mips/lasat/eeprom.h linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/eeprom.h
--- linux-2.4.20/include/asm-mips/lasat/eeprom.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/eeprom.h	2002-12-13 13:45:36.000000000 -0600
@@ -0,0 +1,17 @@
+#include <asm/addrspace.h>
+
+/* lasat 100 */
+#define AT93C_REG_100               KSEG1ADDR(0x1c810000)
+#define AT93C_RDATA_REG_100         AT93C_REG_100
+#define AT93C_RDATA_SHIFT_100       4
+#define AT93C_WDATA_SHIFT_100       4
+#define AT93C_CS_M_100              ( 1 << 5 )
+#define AT93C_CLK_M_100             ( 1 << 3 )
+
+/* lasat 200 */
+#define AT93C_REG_200		KSEG1ADDR(0x11000000)
+#define AT93C_RDATA_REG_200	(AT93C_REG_200+0x10000)
+#define AT93C_RDATA_SHIFT_200	8
+#define AT93C_WDATA_SHIFT_200	2
+#define AT93C_CS_M_200		( 1 << 0 )
+#define AT93C_CLK_M_200		( 1 << 1 )
diff -urNd -urNd linux-2.4.20/include/asm-mips/lasat/head.h linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/head.h
--- linux-2.4.20/include/asm-mips/lasat/head.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/head.h	2002-10-05 21:01:33.000000000 -0500
@@ -0,0 +1,22 @@
+/*
+ * Image header stuff
+ */
+#ifndef _HEAD_H
+#define _HEAD_H
+
+#define LASAT_K_MAGIC0_VAL	0xfedeabba
+#define LASAT_K_MAGIC1_VAL	0x00bedead
+
+#ifndef _LANGUAGE_ASSEMBLY
+#include <linux/types.h>
+struct bootloader_header {
+	u32 magic[2];
+	u32 version;
+	u32 image_start;
+	u32 image_size;
+	u32 kernel_start;
+	u32 kernel_entry;
+};
+#endif
+
+#endif /* _HEAD_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips/lasat/lasat.h linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/lasat.h
--- linux-2.4.20/include/asm-mips/lasat/lasat.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/lasat.h	2003-02-24 15:26:19.000000000 -0600
@@ -0,0 +1,250 @@
+/*
+ * lasat.h
+ *
+ * Thomas Horsten <thh@lasat.com>
+ * Copyright (C) 2000 LASAT Networks A/S.
+ *
+ * ########################################################################
+ *
+ *  This program is free software; you can distribute it and/or modify it
+ *  under the terms of the GNU General Public License (Version 2) as
+ *  published by the Free Software Foundation.
+ *
+ *  This program is distributed in the hope it will be useful, but WITHOUT
+ *  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ *  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ *  for more details.
+ *
+ *  You should have received a copy of the GNU General Public License along
+ *  with this program; if not, write to the Free Software Foundation, Inc.,
+ *  59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
+ *
+ * ########################################################################
+ *
+ * Configuration for LASAT boards, loads the appropriate include files.
+ *
+ */
+#ifndef _LASAT_H
+#define _LASAT_H
+
+#ifndef _LANGUAGE_ASSEMBLY
+
+extern struct lasat_misc {
+	volatile u32 *reset_reg;
+	volatile u32 *flash_wp_reg;
+	u32 flash_wp_bit;
+} *lasat_misc;
+
+enum lasat_mtdparts {
+	LASAT_MTD_BOOTLOADER,
+	LASAT_MTD_SERVICE,
+	LASAT_MTD_NORMAL,
+	LASAT_MTD_CONFIG,
+	LASAT_MTD_FS,
+	LASAT_MTD_LAST
+};
+
+/*
+ * The format of the data record in the EEPROM.
+ * See Documentation/LASAT/eeprom.txt for a detailed description
+ * of the fields in this struct, and the LASAT Hardware Configuration
+ * field specification for a detailed description of the config
+ * field.
+ */
+#include <linux/types.h>
+
+#define LASAT_EEPROM_VERSION 7
+struct lasat_eeprom_struct {
+	unsigned int  version;
+	unsigned int  cfg[3];
+	unsigned char hwaddr[6];
+	unsigned char print_partno[12];
+	unsigned char term0;
+	unsigned char print_serial[14];
+	unsigned char term1;
+	unsigned char prod_partno[12];
+	unsigned char term2;
+	unsigned char prod_serial[14];
+	unsigned char term3;
+	unsigned char passwd_hash[16];
+	unsigned char pwdnull;
+	unsigned char vendid;
+	unsigned char ts_ref;
+	unsigned char ts_signoff;
+	unsigned char reserved[11];
+	unsigned char debugaccess;
+	unsigned short prid;
+	unsigned int  serviceflag;
+	unsigned int  ipaddr;
+	unsigned int  netmask;
+	unsigned int  crc32;
+};
+
+struct lasat_eeprom_struct_pre7 {
+	unsigned int  version;
+	unsigned int  flags[3];
+	unsigned char hwaddr0[6];
+	unsigned char hwaddr1[6];
+	unsigned char print_partno[9];
+	unsigned char term0;
+	unsigned char print_serial[14];
+	unsigned char term1;
+	unsigned char prod_partno[9];
+	unsigned char term2;
+	unsigned char prod_serial[14];
+	unsigned char term3;
+	unsigned char passwd_hash[24];
+	unsigned char pwdnull;
+	unsigned char vendor;
+	unsigned char ts_ref;
+	unsigned char ts_signoff;
+	unsigned char reserved[6];
+	unsigned int  writecount;
+	unsigned int  ipaddr;
+	unsigned int  netmask;
+	unsigned int  crc32;
+};
+
+/* Configuration descriptor encoding - see the doc for details */
+
+#define LASAT_W0_DSCTYPE(v)		( ( (v)         ) & 0xf )
+#define LASAT_W0_BMID(v)		( ( (v) >> 0x04 ) & 0xf )
+#define LASAT_W0_CPUTYPE(v)		( ( (v) >> 0x08 ) & 0xf )
+#define LASAT_W0_BUSSPEED(v)		( ( (v) >> 0x0c ) & 0xf )
+#define LASAT_W0_CPUCLK(v)		( ( (v) >> 0x10 ) & 0xf )
+#define LASAT_W0_SDRAMBANKSZ(v)		( ( (v) >> 0x14 ) & 0xf )
+#define LASAT_W0_SDRAMBANKS(v)		( ( (v) >> 0x18 ) & 0xf )
+#define LASAT_W0_L2CACHE(v)		( ( (v) >> 0x1c ) & 0xf )
+
+#define LASAT_W1_EDHAC(v)		( ( (v)         ) & 0xf )
+#define LASAT_W1_HIFN(v)		( ( (v) >> 0x04 ) & 0x1 )
+#define LASAT_W1_ISDN(v)		( ( (v) >> 0x05 ) & 0x1 )
+#define LASAT_W1_IDE(v)			( ( (v) >> 0x06 ) & 0x1 )
+#define LASAT_W1_HDLC(v)		( ( (v) >> 0x07 ) & 0x1 )
+#define LASAT_W1_USVERSION(v)		( ( (v) >> 0x08 ) & 0x1 )
+#define LASAT_W1_4MACS(v)		( ( (v) >> 0x09 ) & 0x1 )
+#define LASAT_W1_EXTSERIAL(v)		( ( (v) >> 0x0a ) & 0x1 )
+#define LASAT_W1_FLASHSIZE(v)		( ( (v) >> 0x0c ) & 0xf )
+#define LASAT_W1_PCISLOTS(v)		( ( (v) >> 0x10 ) & 0xf )
+#define LASAT_W1_PCI1OPT(v)		( ( (v) >> 0x14 ) & 0xf )
+#define LASAT_W1_PCI2OPT(v)		( ( (v) >> 0x18 ) & 0xf )
+#define LASAT_W1_PCI3OPT(v)		( ( (v) >> 0x1c ) & 0xf )
+
+/* Routines specific to LASAT boards */
+
+#define LASAT_BMID_MASQUERADE2		0
+#define LASAT_BMID_MASQUERADEPRO	1
+#define LASAT_BMID_SAFEPIPE25			2
+#define LASAT_BMID_SAFEPIPE50			3
+#define LASAT_BMID_SAFEPIPE100		4
+#define LASAT_BMID_SAFEPIPE5000		5
+#define LASAT_BMID_SAFEPIPE7000		6
+#define LASAT_BMID_SAFEPIPE1000		7
+//#define LASAT_BMID_SAFEPIPE30		7
+//#define LASAT_BMID_SAFEPIPE5100	8
+//#define LASAT_BMID_SAFEPIPE7100	9
+#define LASAT_BMID_UNKNOWN				0xf
+#define LASAT_MAX_BMID_NAMES			9   // no larger than 15!
+
+#define LASAT_HAS_EDHAC			( 1 << 0 )
+#define LASAT_EDHAC_FAST		( 1 << 1 )
+#define LASAT_HAS_EADI			( 1 << 2 )
+#define LASAT_HAS_HIFN			( 1 << 3 )
+#define LASAT_HAS_ISDN			( 1 << 4 )
+#define LASAT_HAS_LEASEDLINE_IF		( 1 << 5 )
+#define LASAT_HAS_HDC			( 1 << 6 )
+
+#define LASAT_PRID_MASQUERADE2		0
+#define LASAT_PRID_MASQUERADEPRO	1
+#define LASAT_PRID_SAFEPIPE25			2
+#define LASAT_PRID_SAFEPIPE50			3
+#define LASAT_PRID_SAFEPIPE100		4
+#define LASAT_PRID_SAFEPIPE5000		5
+#define LASAT_PRID_SAFEPIPE7000		6
+#define LASAT_PRID_SAFEPIPE30			7
+#define LASAT_PRID_SAFEPIPE5100		8
+#define LASAT_PRID_SAFEPIPE7100		9
+
+#define LASAT_PRID_SAFEPIPE1110		10
+#define LASAT_PRID_SAFEPIPE3020		11
+#define LASAT_PRID_SAFEPIPE3030		12
+#define LASAT_PRID_SAFEPIPE5020		13
+#define LASAT_PRID_SAFEPIPE5030		14
+#define LASAT_PRID_SAFEPIPE1120		15
+#define LASAT_PRID_SAFEPIPE1130		16
+#define LASAT_PRID_SAFEPIPE6010		17
+#define LASAT_PRID_SAFEPIPE6110		18
+#define LASAT_PRID_SAFEPIPE6210		19
+#define LASAT_PRID_SAFEPIPE1020		20
+#define LASAT_PRID_SAFEPIPE1040		21
+#define LASAT_PRID_SAFEPIPE1060		22
+
+struct lasat_info {
+	unsigned int  li_cpu_hz;
+	unsigned int  li_bus_hz;
+	unsigned int  li_bmid;
+	unsigned int  li_memsize;
+	unsigned int  li_flash_size;
+	unsigned int  li_prid;
+	unsigned char li_bmstr[16];
+	unsigned char li_namestr[32];
+	unsigned char li_typestr[16];
+	/* Info on the Flash layout */
+	unsigned int  li_flash_base;
+	unsigned long li_flashpart_base[LASAT_MTD_LAST];
+	unsigned long li_flashpart_size[LASAT_MTD_LAST];
+	struct lasat_eeprom_struct li_eeprom_info;
+	unsigned int  li_eeprom_upgrade_version;
+	unsigned int  li_debugaccess;
+};
+
+extern struct lasat_info lasat_board_info;
+
+static inline unsigned long lasat_flash_partition_start(int partno)
+{
+	if (partno < 0 || partno >= LASAT_MTD_LAST)
+		return 0;
+
+	return lasat_board_info.li_flashpart_base[partno];
+}
+
+static inline unsigned long lasat_flash_partition_size(int partno)
+{
+	if (partno < 0 || partno >= LASAT_MTD_LAST)
+		return 0;
+
+	return lasat_board_info.li_flashpart_size[partno];
+}
+
+/* Called from setup() to initialize the global board_info struct */
+extern int lasat_init_board_info(void);
+
+/* Write the modified EEPROM info struct */
+extern void lasat_write_eeprom_info(void);
+
+#define N_MACHTYPES		2
+/* for calibration of delays */
+
+#include <asm/delay.h>
+#define NANOTH 1000000000L
+extern inline void ndelay(unsigned int ns) {
+	if (ns != 0)
+		__delay(lasat_board_info.li_cpu_hz / 2 / (NANOTH / ns) + 1);
+}
+
+extern void (* prom_printf)(const char *fmt, ...);
+
+#endif /* !defined (_LANGUAGE_ASSEMBLY) */
+
+#define LASAT_SERVICEMODE_MAGIC_1     0xdeadbeef
+#define LASAT_SERVICEMODE_MAGIC_2     0xfedeabba
+
+/* Lasat 100 boards */
+#define LASAT_GT_BASE           (KSEG1ADDR(0x14000000))
+
+/* Lasat 200 boards */
+#define Vrc5074_PHYS_BASE       0x1fa00000
+#define Vrc5074_BASE            (KSEG1ADDR(Vrc5074_PHYS_BASE))
+#define PCI_WINDOW1             0x1a000000
+
+#endif /* _LASAT_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips/lasat/lasatint.h linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/lasatint.h
--- linux-2.4.20/include/asm-mips/lasat/lasatint.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/lasatint.h	2002-12-13 13:45:36.000000000 -0600
@@ -0,0 +1,12 @@
+#define LASATINT_END 16
+
+/* lasat 100 */
+#define LASAT_INT_STATUS_REG_100	(KSEG1ADDR(0x1c880000))
+#define LASAT_INT_MASK_REG_100		(KSEG1ADDR(0x1c890000))
+#define LASATINT_MASK_SHIFT_100		0
+
+/* lasat 200 */
+#define LASAT_INT_STATUS_REG_200	(KSEG1ADDR(0x1104003c))
+#define LASAT_INT_MASK_REG_200		(KSEG1ADDR(0x1104003c))
+#define LASATINT_MASK_SHIFT_200		16
+
diff -urNd -urNd linux-2.4.20/include/asm-mips/lasat/picvue.h linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/picvue.h
--- linux-2.4.20/include/asm-mips/lasat/picvue.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/picvue.h	2002-12-13 13:45:36.000000000 -0600
@@ -0,0 +1,15 @@
+/* Lasat 100 */
+#define PVC_REG_100		KSEG1ADDR(0x1c820000)
+#define PVC_DATA_SHIFT_100	0
+#define PVC_DATA_M_100		0xFF
+#define PVC_E_100		(1 << 8)
+#define PVC_RW_100		(1 << 9)
+#define PVC_RS_100		(1 << 10)
+
+/* Lasat 200 */
+#define PVC_REG_200		KSEG1ADDR(0x11000000)
+#define PVC_DATA_SHIFT_200	24
+#define PVC_DATA_M_200		(0xFF << PVC_DATA_SHIFT_200)
+#define PVC_E_200		(1 << 16)
+#define PVC_RW_200		(1 << 17)
+#define PVC_RS_200		(1 << 18)
diff -urNd -urNd linux-2.4.20/include/asm-mips/lasat/serial.h linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/serial.h
--- linux-2.4.20/include/asm-mips/lasat/serial.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/serial.h	2002-12-13 13:45:36.000000000 -0600
@@ -0,0 +1,13 @@
+#include <asm/lasat/lasat.h>
+
+/* Lasat 100 boards serial configuration */
+#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
+
+/* * 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
diff -urNd -urNd linux-2.4.20/include/asm-mips/mips32_cache.h linux-2.4.20-mipscvs-20050106/include/asm-mips/mips32_cache.h
--- linux-2.4.20/include/asm-mips/mips32_cache.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/mips32_cache.h	2002-12-11 08:23:13.000000000 -0600
@@ -37,45 +37,70 @@
 
 static inline void flush_icache_line_indexed(unsigned long addr)
 {
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		".set mips3\n\t"
-		"cache %1, (%0)\n\t"
-		".set mips0\n\t"
-		".set reorder"
-		:
-		: "r" (addr),
-		  "i" (Index_Invalidate_I));
+	unsigned long waystep = icache_size/mips_cpu.icache.ways;
+	unsigned int way;
+
+	for (way = 0; way < mips_cpu.icache.ways; way++)
+	{
+		__asm__ __volatile__(
+			".set noreorder\n\t"
+			".set mips3\n\t"
+			"cache %1, (%0)\n\t"
+			".set mips0\n\t"
+			".set reorder"
+			:
+			: "r" (addr),
+			"i" (Index_Invalidate_I));
+		
+		addr += waystep;
+	}
 }
 
 static inline void flush_dcache_line_indexed(unsigned long addr)
 {
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		".set mips3\n\t"
-		"cache %1, (%0)\n\t"
-		".set mips0\n\t"
-		".set reorder"
-		:
-		: "r" (addr),
-		  "i" (Index_Writeback_Inv_D));
+	unsigned long waystep = dcache_size/mips_cpu.dcache.ways;
+	unsigned int way;
+
+	for (way = 0; way < mips_cpu.dcache.ways; way++)
+	{
+		__asm__ __volatile__(
+			".set noreorder\n\t"
+			".set mips3\n\t"
+			"cache %1, (%0)\n\t"
+			".set mips0\n\t"
+			".set reorder"
+			:
+			: "r" (addr),
+			"i" (Index_Writeback_Inv_D));
+
+		addr += waystep;
+	}
 }
 
 static inline void flush_scache_line_indexed(unsigned long addr)
 {
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		".set mips3\n\t"
-		"cache %1, (%0)\n\t"
-		".set mips0\n\t"
-		".set reorder"
-		:
-		: "r" (addr),
-		  "i" (Index_Writeback_Inv_SD));
+	unsigned long waystep = scache_size/mips_cpu.scache.ways;
+	unsigned int way;
+
+	for (way = 0; way < mips_cpu.scache.ways; way++)
+	{
+		__asm__ __volatile__(
+			".set noreorder\n\t"
+			".set mips3\n\t"
+			"cache %1, (%0)\n\t"
+			".set mips0\n\t"
+			".set reorder"
+			:
+			: "r" (addr),
+			"i" (Index_Writeback_Inv_SD));
+
+		addr += waystep;
+	}
 }
 
 static inline void flush_icache_line(unsigned long addr)
 {
+
 	__asm__ __volatile__(
 		".set noreorder\n\t"
 		".set mips3\n\t"
@@ -210,12 +235,17 @@
 
 static inline void blast_dcache_page_indexed(unsigned long page)
 {
-	unsigned long start = page;
-	unsigned long end = (start + PAGE_SIZE);
+	unsigned long start;
+	unsigned long end = (page + PAGE_SIZE);
+	unsigned long waystep = dcache_size/mips_cpu.dcache.ways;
+	unsigned int way;
 
-	while(start < end) {
-		cache_unroll(start,Index_Writeback_Inv_D);
-		start += dc_lsize;
+	for (way = 0; way < mips_cpu.dcache.ways; way++) {
+		start = page + way*waystep;
+		while(start < end) {
+			cache_unroll(start,Index_Writeback_Inv_D);
+			start += dc_lsize;
+		}
 	}
 }
 
@@ -243,12 +273,17 @@
 
 static inline void blast_icache_page_indexed(unsigned long page)
 {
-	unsigned long start = page;
-	unsigned long end = (start + PAGE_SIZE);
+	unsigned long start;
+	unsigned long end = (page + PAGE_SIZE);
+	unsigned long waystep = icache_size/mips_cpu.icache.ways;
+	unsigned int way;
 
-	while(start < end) {
-		cache_unroll(start,Index_Invalidate_I);
-		start += ic_lsize;
+	for (way = 0; way < mips_cpu.icache.ways; way++) {
+		start = page + way*waystep;
+		while(start < end) {
+			cache_unroll(start,Index_Invalidate_I);
+			start += ic_lsize;
+		}
 	}
 }
 
@@ -276,12 +311,17 @@
 
 static inline void blast_scache_page_indexed(unsigned long page)
 {
-	unsigned long start = page;
-	unsigned long end = page + PAGE_SIZE;
+	unsigned long start;
+	unsigned long end = (page + PAGE_SIZE);
+	unsigned long waystep = scache_size/mips_cpu.scache.ways;
+	unsigned int way;
 
-	while(start < end) {
-		cache_unroll(start,Index_Writeback_Inv_SD);
-		start += sc_lsize;
+	for (way = 0; way < mips_cpu.scache.ways; way++) {
+		start = page + way*waystep;
+		while(start < end) {
+			cache_unroll(start,Index_Writeback_Inv_SD);
+			start += sc_lsize;
+		}
 	}
 }
 
diff -urNd -urNd linux-2.4.20/include/asm-mips/mips-boards/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/mips-boards/CVS/Entries
--- linux-2.4.20/include/asm-mips/mips-boards/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/mips-boards/CVS/Entries	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1,13 @@
+/atlas.h/1.2.4.1/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+/atlasint.h/1.1.4.1/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+/bonito64.h/1.1.2.4/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+/generic.h/1.2.4.1/Wed May  8 03:05:01 2002/-ko/Tlinux_2_4_20
+/malta.h/1.1.4.3/Wed Dec 11 14:25:15 2002/-ko/Tlinux_2_4_20
+/maltaint.h/1.1/Mon Oct  9 00:36:07 2000/-ko/Tlinux_2_4_20
+/msc01_pci.h/1.1.2.2/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+/piix4.h/1.1/Mon Oct  9 00:36:07 2000/-ko/Tlinux_2_4_20
+/prom.h/1.2/Fri Dec 29 16:35:43 2000/-ko/Tlinux_2_4_20
+/saa9730_uart.h/1.1/Fri Dec 29 16:35:43 2000/-ko/Tlinux_2_4_20
+/sead.h/1.1.2.2/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+/seadint.h/1.1.2.1/Wed Jul 24 13:51:49 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-mips/mips-boards/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/mips-boards/CVS/Repository
--- linux-2.4.20/include/asm-mips/mips-boards/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/mips-boards/CVS/Repository	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-mips/mips-boards
diff -urNd -urNd linux-2.4.20/include/asm-mips/mips-boards/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/mips-boards/CVS/Root
--- linux-2.4.20/include/asm-mips/mips-boards/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/mips-boards/CVS/Root	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-mips/mips-boards/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/mips-boards/CVS/Tag
--- linux-2.4.20/include/asm-mips/mips-boards/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/mips-boards/CVS/Tag	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-mips/mips-boards/malta.h linux-2.4.20-mipscvs-20050106/include/asm-mips/mips-boards/malta.h
--- linux-2.4.20/include/asm-mips/mips-boards/malta.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/mips-boards/malta.h	2002-12-11 08:25:15.000000000 -0600
@@ -32,9 +32,23 @@
  * Malta I/O ports base address for the Galileo GT64120 and Algorithmics
  * Bonito system controllers.
  */
-#define MALTA_GT_PORT_BASE      (KSEG1ADDR(0x18000000))
+#define MALTA_GT_PORT_BASE      get_gt_port_base(GT_PCI0IOLD_OFS)
 #define MALTA_BONITO_PORT_BASE  (KSEG1ADDR(0x1fd00000))
-#define MALTA_MSC_PORT_BASE     (KSEG1ADDR(0x18000000))
+#define MALTA_MSC_PORT_BASE     get_msc_port_base(MSC01_PCI_SC2PIOBASL)
+
+static inline unsigned long get_gt_port_base(unsigned long reg)
+{
+	unsigned long addr;
+	GT_READ(reg, addr);
+	return KSEG1ADDR((addr & 0xffff) << 21);
+}
+
+static inline unsigned long get_msc_port_base(unsigned long reg)
+{
+	unsigned long addr;
+	MSC_READ(reg, addr);
+	return KSEG1ADDR(addr);
+}
 
 /*
  * Malta RTC-device indirect register access.
@@ -59,4 +73,6 @@
 
 #define SMSC_WRITE(x,a)     outb(x,a)
 
+#define MALTA_JMPRS_REG		(KSEG1ADDR(0x1f000210))
+
 #endif /* !(_MIPS_MALTA_H) */
diff -urNd -urNd linux-2.4.20/include/asm-mips/mipsregs.h linux-2.4.20-mipscvs-20050106/include/asm-mips/mipsregs.h
--- linux-2.4.20/include/asm-mips/mipsregs.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/mipsregs.h	2003-01-28 08:31:29.000000000 -0600
@@ -8,6 +8,7 @@
  * Modified for further R[236]000 support by Paul M. Antoine, 1996.
  * Kevin D. Kissell, kevink@mips.com and Carsten Langgaard, carstenl@mips.com
  * Copyright (C) 2000 MIPS Technologies, Inc.  All rights reserved.
+ * Copyright (C) 2003  Maciej W. Rozycki
  */
 #ifndef _ASM_MIPSREGS_H
 #define _ASM_MIPSREGS_H
@@ -27,6 +28,15 @@
 #endif
 
 /*
+ *  Configure language
+ */
+#ifdef __ASSEMBLY__
+#define _ULCAST_
+#else
+#define _ULCAST_ (unsigned long)
+#endif
+
+/*
  * Coprocessor 0 register names
  */
 #define CP0_INDEX $0
@@ -190,26 +200,26 @@
 /*
  * R4x00 interrupt enable / cause bits
  */
-#define IE_SW0          (1<< 8)
-#define IE_SW1          (1<< 9)
-#define IE_IRQ0         (1<<10)
-#define IE_IRQ1         (1<<11)
-#define IE_IRQ2         (1<<12)
-#define IE_IRQ3         (1<<13)
-#define IE_IRQ4         (1<<14)
-#define IE_IRQ5         (1<<15)
+#define IE_SW0          (_ULCAST_(1) <<  8)
+#define IE_SW1          (_ULCAST_(1) <<  9)
+#define IE_IRQ0         (_ULCAST_(1) << 10)
+#define IE_IRQ1         (_ULCAST_(1) << 11)
+#define IE_IRQ2         (_ULCAST_(1) << 12)
+#define IE_IRQ3         (_ULCAST_(1) << 13)
+#define IE_IRQ4         (_ULCAST_(1) << 14)
+#define IE_IRQ5         (_ULCAST_(1) << 15)
 
 /*
  * R4x00 interrupt cause bits
  */
-#define C_SW0           (1<< 8)
-#define C_SW1           (1<< 9)
-#define C_IRQ0          (1<<10)
-#define C_IRQ1          (1<<11)
-#define C_IRQ2          (1<<12)
-#define C_IRQ3          (1<<13)
-#define C_IRQ4          (1<<14)
-#define C_IRQ5          (1<<15)
+#define C_SW0           (_ULCAST_(1) <<  8)
+#define C_SW1           (_ULCAST_(1) <<  9)
+#define C_IRQ0          (_ULCAST_(1) << 10)
+#define C_IRQ1          (_ULCAST_(1) << 11)
+#define C_IRQ2          (_ULCAST_(1) << 12)
+#define C_IRQ3          (_ULCAST_(1) << 13)
+#define C_IRQ4          (_ULCAST_(1) << 14)
+#define C_IRQ5          (_ULCAST_(1) << 15)
 
 /*
  * Bitfields in the R4xx0 cp0 status register
@@ -244,9 +254,9 @@
 /*
  * Bits specific to the R4640/R4650
  */
-#define ST0_UM                 (1   <<  4)
-#define ST0_IL                 (1   << 23)
-#define ST0_DL                 (1   << 24)
+#define ST0_UM			(_ULCAST_(1) <<  4)
+#define ST0_IL			(_ULCAST_(1) << 23)
+#define ST0_DL			(_ULCAST_(1) << 24)
 
 /*
  * Bitfields in the TX39 family CP0 Configuration Register 3
@@ -286,37 +296,37 @@
  */
 #define ST0_IM			0x0000ff00
 #define  STATUSB_IP0		8
-#define  STATUSF_IP0		(1   <<  8)
+#define  STATUSF_IP0		(_ULCAST_(1) <<  8)
 #define  STATUSB_IP1		9
-#define  STATUSF_IP1		(1   <<  9)
+#define  STATUSF_IP1		(_ULCAST_(1) <<  9)
 #define  STATUSB_IP2		10
-#define  STATUSF_IP2		(1   << 10)
+#define  STATUSF_IP2		(_ULCAST_(1) << 10)
 #define  STATUSB_IP3		11
-#define  STATUSF_IP3		(1   << 11)
+#define  STATUSF_IP3		(_ULCAST_(1) << 11)
 #define  STATUSB_IP4		12
-#define  STATUSF_IP4		(1   << 12)
+#define  STATUSF_IP4		(_ULCAST_(1) << 12)
 #define  STATUSB_IP5		13
-#define  STATUSF_IP5		(1   << 13)
+#define  STATUSF_IP5		(_ULCAST_(1) << 13)
 #define  STATUSB_IP6		14
-#define  STATUSF_IP6		(1   << 14)
+#define  STATUSF_IP6		(_ULCAST_(1) << 14)
 #define  STATUSB_IP7		15
-#define  STATUSF_IP7		(1   << 15)
+#define  STATUSF_IP7		(_ULCAST_(1) << 15)
 #define  STATUSB_IP8		0
-#define  STATUSF_IP8		(1   << 0)
+#define  STATUSF_IP8		(_ULCAST_(1) <<  0)
 #define  STATUSB_IP9		1
-#define  STATUSF_IP9		(1   << 1)
+#define  STATUSF_IP9		(_ULCAST_(1) <<  1)
 #define  STATUSB_IP10		2
-#define  STATUSF_IP10		(1   << 2)
+#define  STATUSF_IP10		(_ULCAST_(1) <<  2)
 #define  STATUSB_IP11		3
-#define  STATUSF_IP11		(1   << 3)
+#define  STATUSF_IP11		(_ULCAST_(1) <<  3)
 #define  STATUSB_IP12		4
-#define  STATUSF_IP12		(1   << 4)
+#define  STATUSF_IP12		(_ULCAST_(1) <<  4)
 #define  STATUSB_IP13		5
-#define  STATUSF_IP13		(1   << 5)
+#define  STATUSF_IP13		(_ULCAST_(1) <<  5)
 #define  STATUSB_IP14		6
-#define  STATUSF_IP14		(1   << 6)
+#define  STATUSF_IP14		(_ULCAST_(1) <<  6)
 #define  STATUSB_IP15		7
-#define  STATUSF_IP15		(1   << 7)
+#define  STATUSF_IP15		(_ULCAST_(1) <<  7)
 #define ST0_CH			0x00040000
 #define ST0_SR			0x00100000
 #define ST0_TS			0x00200000
@@ -336,31 +346,31 @@
  * Refer to your MIPS R4xx0 manual, chapter 5 for explanation.
  */
 #define  CAUSEB_EXCCODE		2
-#define  CAUSEF_EXCCODE		(31  <<  2)
+#define  CAUSEF_EXCCODE		(_ULCAST_(31)  <<  2)
 #define  CAUSEB_IP		8
-#define  CAUSEF_IP		(255 <<  8)
+#define  CAUSEF_IP		(_ULCAST_(255) <<  8)
 #define  CAUSEB_IP0		8
-#define  CAUSEF_IP0		(1   <<  8)
+#define  CAUSEF_IP0		(_ULCAST_(1)   <<  8)
 #define  CAUSEB_IP1		9
-#define  CAUSEF_IP1		(1   <<  9)
+#define  CAUSEF_IP1		(_ULCAST_(1)   <<  9)
 #define  CAUSEB_IP2		10
-#define  CAUSEF_IP2		(1   << 10)
+#define  CAUSEF_IP2		(_ULCAST_(1)   << 10)
 #define  CAUSEB_IP3		11
-#define  CAUSEF_IP3		(1   << 11)
+#define  CAUSEF_IP3		(_ULCAST_(1)   << 11)
 #define  CAUSEB_IP4		12
-#define  CAUSEF_IP4		(1   << 12)
+#define  CAUSEF_IP4		(_ULCAST_(1)   << 12)
 #define  CAUSEB_IP5		13
-#define  CAUSEF_IP5		(1   << 13)
+#define  CAUSEF_IP5		(_ULCAST_(1)   << 13)
 #define  CAUSEB_IP6		14
-#define  CAUSEF_IP6		(1   << 14)
+#define  CAUSEF_IP6		(_ULCAST_(1)   << 14)
 #define  CAUSEB_IP7		15
-#define  CAUSEF_IP7		(1   << 15)
+#define  CAUSEF_IP7		(_ULCAST_(1)   << 15)
 #define  CAUSEB_IV		23
-#define  CAUSEF_IV		(1   << 23)
+#define  CAUSEF_IV		(_ULCAST_(1)   << 23)
 #define  CAUSEB_CE		28
-#define  CAUSEF_CE		(3   << 28)
+#define  CAUSEF_CE		(_ULCAST_(3)   << 28)
 #define  CAUSEB_BD		31
-#define  CAUSEF_BD		(1   << 31)
+#define  CAUSEF_BD		(_ULCAST_(1)   << 31)
 
 /*
  * Bits in the coprozessor 0 config register.
@@ -374,21 +384,21 @@
 #define CONF_CM_CACHABLE_CUW		6
 #define CONF_CM_CACHABLE_ACCELERATED	7
 #define CONF_CM_CMASK			7
-#define CONF_CU				(1 <<  3)
-#define CONF_DB				(1 <<  4)
-#define CONF_IB				(1 <<  5)
-#define CONF_SE 			(1 << 12)
-#define CONF_SC				(1 << 17)
-#define CONF_AC                         (1 << 23)
-#define CONF_HALT                       (1 << 25)
+#define CONF_CU			(_ULCAST_(1) <<  3)
+#define CONF_DB			(_ULCAST_(1) <<  4)
+#define CONF_IB			(_ULCAST_(1) <<  5)
+#define CONF_SE			(_ULCAST_(1) << 12)
+#define CONF_SC			(_ULCAST_(1) << 17)
+#define CONF_AC			(_ULCAST_(1) << 23)
+#define CONF_HALT		(_ULCAST_(1) << 25)
 
 /*
  * Bits in the TX49 coprozessor 0 config register.
  */
-#define TX49_CONF_DC			(1 << 16)
-#define TX49_CONF_IC			(1 << 17)  /* conflict with CONF_SC */
-#define TX49_CONF_HALT			(1 << 18)
-#define TX49_CONF_CWFON			(1 << 27)
+#define TX49_CONF_DC		(_ULCAST_(1) << 16)
+#define TX49_CONF_IC		(_ULCAST_(1) << 17)  /* conflict with CONF_SC */
+#define TX49_CONF_HALT		(_ULCAST_(1) << 18)
+#define TX49_CONF_CWFON		(_ULCAST_(1) << 27)
 
 /*
  * R10000 performance counter definitions.
@@ -478,553 +488,361 @@
 /*
  * Macros to access the system control coprocessor
  */
-#define read_32bit_cp0_register(source)                         \
-({ int __res;                                                   \
-        __asm__ __volatile__(                                   \
-	".set\tpush\n\t"					\
-	".set\treorder\n\t"					\
-        "mfc0\t%0,"STR(source)"\n\t"                            \
-	".set\tpop"						\
-        : "=r" (__res));                                        \
-        __res;})
-
-#define read_32bit_cp0_set1_register(source)                    \
-({ int __res;                                                   \
-        __asm__ __volatile__(                                   \
-	".set\tpush\n\t"					\
-	".set\treorder\n\t"					\
-        "cfc0\t%0,"STR(source)"\n\t"                            \
-	".set\tpop"						\
-        : "=r" (__res));                                        \
-        __res;})
-
-/*
- * For now use this only with interrupts disabled!
- */
-#define read_64bit_cp0_register(source)                         \
-({ unsigned long __res;                                         \
-        __asm__ __volatile__(                                   \
-        ".set\tmips3\n\t"                                       \
-        "dmfc0\t%0,"STR(source)"\n\t"                           \
-        ".set\tmips0"                                           \
-        : "=r" (__res));                                        \
-        __res;})
-
-#define write_32bit_cp0_register(register,value)                \
-        __asm__ __volatile__(                                   \
-        "mtc0\t%0,"STR(register)"\n\t"				\
-	"nop"							\
-        : : "r" (value));
-
-#define write_32bit_cp0_set1_register(register,value)           \
-        __asm__ __volatile__(                                   \
-        "ctc0\t%0,"STR(register)"\n\t"				\
-	"nop"							\
-        : : "r" (value));
-
-#define write_64bit_cp0_register(register,value)                \
-        __asm__ __volatile__(                                   \
-        ".set\tmips3\n\t"                                       \
-        "dmtc0\t%0,"STR(register)"\n\t"                         \
-        ".set\tmips0"                                           \
-        : : "r" (value))
-
-/*
- * This should be changed when we get a compiler that support the MIPS32 ISA.
- */
-#define read_mips32_cp0_config1()                               \
-({ int __res;                                                   \
-        __asm__ __volatile__(                                   \
-	".set\tnoreorder\n\t"                                   \
-	".set\tnoat\n\t"                                        \
-	"#.set\tmips64\n\t"					\
-	"#mfc0\t$1, $16, 1\n\t"					\
-	"#.set\tmips0\n\t"					\
-     	".word\t0x40018001\n\t"                                 \
-	"move\t%0,$1\n\t"                                       \
-	".set\tat\n\t"                                          \
-	".set\treorder"                                         \
-	:"=r" (__res));                                         \
-        __res;})
-
-/*
- * Macros to access the floating point coprocessor control registers
- */
-#define read_32bit_cp1_register(source)                         \
-({ int __res;                                                   \
-        __asm__ __volatile__(                                   \
-	".set\tpush\n\t"					\
-	".set\treorder\n\t"					\
-        "cfc1\t%0,"STR(source)"\n\t"                            \
-	".set\tpop"						\
-        : "=r" (__res));                                        \
-        __res;})
-
-/* TLB operations. */
-static inline void tlb_probe(void)
-{
-	__asm__ __volatile__(
-		".set push\n\t"
-		".set reorder\n\t"
-		"tlbp\n\t"
-		".set pop");
-}
-
-static inline void tlb_read(void)
-{
-	__asm__ __volatile__(
-		".set push\n\t"
-		".set reorder\n\t"
-		"tlbr\n\t"
-		".set pop");
-}
-
-static inline void tlb_write_indexed(void)
-{
-	__asm__ __volatile__(
-		".set push\n\t"
-		".set reorder\n\t"
-		"tlbwi\n\t"
-		".set pop");
-}
-
-static inline void tlb_write_random(void)
-{
-	__asm__ __volatile__(
-		".set push\n\t"
-		".set reorder\n\t"
-		"tlbwr\n\t"
-		".set pop");
-}
-
-/* Dealing with various CP0 mmu/cache related registers. */
 
+#define __read_32bit_c0_register(source, sel)				\
+({ int __res;								\
+	if (sel == 0)							\
+		__asm__ __volatile__(					\
+			"mfc0\t%0, " #source "\n\t"			\
+			: "=r" (__res));				\
+	else								\
+		__asm__ __volatile__(					\
+			".set\tmips32\n\t"				\
+			"mfc0\t%0, " #source ", " #sel "\n\t"		\
+			".set\tmips0\n\t"				\
+			: "=r" (__res));				\
+	__res;								\
+})
 
-static inline unsigned long get_pagemask(void)
-{
-	unsigned long val;
+#define __read_64bit_c0_register(source, sel)				\
+({ unsigned long __res;							\
+	if (sel == 0)							\
+		__asm__ __volatile__(					\
+			".set\tmips3\n\t"				\
+			"dmfc0\t%0, " #source "\n\t"			\
+			".set\tmips0"					\
+			: "=r" (__res));				\
+	else								\
+		__asm__ __volatile__(					\
+			".set\tmips64\n\t"				\
+			"dmfc0\t%0, " #source ", " #sel "\n\t"		\
+			".set\tmips0"					\
+			: "=r" (__res));				\
+	__res;								\
+})
 
-	__asm__ __volatile__(
-		".set push\n\t"
-		".set reorder\n\t"
-		"mfc0 %0, $5\n\t"
-		".set pop"
-		: "=r" (val));
-	return val;
-}
+#define __write_32bit_c0_register(register, sel, value)			\
+do {									\
+	if (sel == 0)							\
+		__asm__ __volatile__(					\
+			"mtc0\t%z0, " #register "\n\t"			\
+			: : "Jr" (value));				\
+	else								\
+		__asm__ __volatile__(					\
+			".set\tmips32\n\t"				\
+			"mtc0\t%z0, " #register ", " #sel "\n\t"	\
+			".set\tmips0"					\
+			: : "Jr" (value));				\
+} while (0)
 
-static inline void set_pagemask(unsigned long val)
-{
-	__asm__ __volatile__(
-		".set push\n\t"
-		".set reorder\n\t"
-		"mtc0 %z0, $5\n\t"
-		".set pop"
-		: : "Jr" (val));
-}
+#define __write_64bit_c0_register(register, sel, value)			\
+do {									\
+	if (sel == 0)							\
+		__asm__ __volatile__(					\
+			".set\tmips3\n\t"				\
+			"dmtc0\t%z0, " #register "\n\t"			\
+			".set\tmips0"					\
+			: : "Jr" (value));				\
+	else								\
+		__asm__ __volatile__(					\
+			".set\tmips64\n\t"				\
+			"dmtc0\t%z0, " #register ", " #sel "\n\t"	\
+			".set\tmips0"					\
+			: : "Jr" (value));				\
+} while (0)
 
-#if defined(CONFIG_64BIT_PHYS_ADDR) && !defined(CONFIG_CPU_MIPS32)
+#define __read_ulong_c0_register(reg, sel)				\
+	((sizeof(unsigned long) == 4) ?					\
+	__read_32bit_c0_register(reg, sel) :				\
+	__read_64bit_c0_register(reg, sel))
 
-#include <asm/system.h>
+#define __write_ulong_c0_register(reg, sel, val)			\
+do {									\
+	if (sizeof(unsigned long) == 4)					\
+		__write_32bit_c0_register(reg, sel, val);		\
+	else								\
+		__write_64bit_c0_register(reg, sel, val);		\
+} while (0)
 
 /*
  * These versions are only needed for systems with more than 38 bits of
- * physical address space.
+ * physical address space running the 32-bit kernel.  That's none atm :-)
  */
-static inline void set_entrylo0(unsigned long long val)
-{
-	unsigned long flags;
-
-	__save_and_cli(flags);
-	__asm__ __volatile__(
-		".set\tmips3\n\t"
-		"dsll\t%L0, %L0, 32\n\t"
-		"dsrl\t%L0, %L0, 32\n\t"
-		"dsll\t%M0, %M0, 32\n\t"
-		"or\t%L0, %L0, %M0\n\t"
-		"dmtc0\t%L0, $2\n\t"
-		".set\tmips0"
-		: : "r" (val));
-	__restore_flags(flags);
-}
-
-static inline void set_entrylo1(unsigned long long val)
-{
-	unsigned long flags;
-
-	__save_and_cli(flags);
-	__asm__ __volatile__(
-		".set\tmips3\n\t"
-		"dsll\t%L0, %L0, 32\n\t"
-		"dsrl\t%L0, %L0, 32\n\t"
-		"dsll\t%M0, %M0, 32\n\t"
-		"or\t%L0, %L0, %M0\n\t"
-		"dmtc0\t%L0, $3\n\t"
-		".set\tmips0"
-		: : "r" (val));
-	__restore_flags(flags);
-}
-
-static inline unsigned long long get_entrylo0(void)
-{
-	unsigned long flags, val;
-
-	__save_and_cli(flags);
-	__asm__ __volatile__(
-		".set\tmips3\n\t"
-		"dmfc0\t%M0, $2\n\t"
-		"dsll\t%L0, %M0, 32\n\t"
-		"dsrl\t%M0, %M0, 32\n\t"
-		"dsrl\t%L0, %L0, 32\n\t"
-		".set\tmips0"
-		: "=r" (val));
-	__restore_flags(flags);
-
-	return val;
-}
-
-static inline unsigned long long get_entrylo1(void)
-{
-	unsigned long flags, val;
+#define __read_64bit_c0_split(source, sel)				\
+({									\
+	unsigned long long val;						\
+	unsigned long flags;						\
+									\
+	local_irq_save(flags);						\
+	if (sel == 0)							\
+		__asm__ __volatile__(					\
+			".set\tmips64\n\t"				\
+			"dmfc0\t%M0, " #source "\n\t"			\
+			"dsll\t%L0, %M0, 32\n\t"			\
+			"dsrl\t%M0, %M0, 32\n\t"			\
+			"dsrl\t%L0, %L0, 32\n\t"			\
+			".set\tmips0"					\
+			: "=r" (val));					\
+	else								\
+		__asm__ __volatile__(					\
+			".set\tmips64\n\t"				\
+			"dmfc0\t%M0, " #source ", " #sel "\n\t"		\
+			"dsll\t%L0, %M0, 32\n\t"			\
+			"dsrl\t%M0, %M0, 32\n\t"			\
+			"dsrl\t%L0, %L0, 32\n\t"			\
+			".set\tmips0"					\
+			: "=r" (val));					\
+	local_irq_restore(flags);					\
+									\
+	val;								\
+})
 
-	__save_and_cli(flags);
-	__asm__ __volatile__(
-		".set\tmips3\n\t"
-		"dmfc0\t%M0, $3\n\t"
-		"dsrl\t%L0, %M0, 32\n\t"
-		"dsrl\t%M0, %M0, 32\n\t"
-		"dsll\t%L0, %L0, 32\n\t"
-		".set\tmips0"
-		: "=r" (val));
-	__restore_flags(flags);
+#define __write_64bit_c0_split(source, sel, val)			\
+do {									\
+	unsigned long flags;						\
+									\
+	local_irq_save(flags);						\
+	if (sel == 0)							\
+		__asm__ __volatile__(					\
+			".set\tmips64\n\t"				\
+			"dsll\t%L0, %L0, 32\n\t"			\
+			"dsrl\t%L0, %L0, 32\n\t"			\
+			"dsll\t%M0, %M0, 32\n\t"			\
+			"or\t%L0, %L0, %M0\n\t"				\
+			"dmtc0\t%L0, " #source "\n\t"			\
+			".set\tmips0"					\
+			: : "r" (val));					\
+	else								\
+		__asm__ __volatile__(					\
+			".set\tmips64\n\t"				\
+			"dsll\t%L0, %L0, 32\n\t"			\
+			"dsrl\t%L0, %L0, 32\n\t"			\
+			"dsll\t%M0, %M0, 32\n\t"			\
+			"or\t%L0, %L0, %M0\n\t"				\
+			"dmtc0\t%L0, " #source ", " #sel "\n\t"		\
+			".set\tmips0"					\
+			: : "r" (val));					\
+	local_irq_restore(flags);					\
+} while (0)
 
-	return val;
-}
+#define read_c0_index()		__read_32bit_c0_register($0, 0)
+#define write_c0_index(val)	__write_32bit_c0_register($0, 0, val)
 
-#else
+#define read_c0_entrylo0()	__read_ulong_c0_register($2, 0)
+#define write_c0_entrylo0(val)	__write_ulong_c0_register($2, 0, val)
 
-static inline void set_entrylo0(unsigned long val)
-{
-	__asm__ __volatile__(
-		".set push\n\t"
-		".set reorder\n\t"
-		"mtc0 %z0, $2\n\t"
-		".set pop"
-		: : "Jr" (val));
-}
+#define read_c0_entrylo1()	__read_ulong_c0_register($3, 0)
+#define write_c0_entrylo1(val)	__write_ulong_c0_register($3, 0, val)
 
-static inline void set_entrylo1(unsigned long val)
-{
-	__asm__ __volatile__(
-		".set push\n\t"
-		".set reorder\n\t"
-		"mtc0 %z0, $3\n\t"
-		".set pop"
-		: : "Jr" (val));
-}
+#define read_c0_conf()		__read_32bit_c0_register($3, 0)
+#define write_c0_conf(val)	__write_32bit_c0_register($3, 0, val)
 
-static inline unsigned long get_entrylo0(void)
-{
-	unsigned long val;
+#define read_c0_context()	__read_ulong_c0_register($4, 0)
+#define write_c0_context(val)	__write_ulong_c0_register($4, 0, val)
 
-	__asm__ __volatile__(
-		".set push\n\t"
-		".set reorder\n\t"
-		"mfc0 %0, $2\n\t"
-		".set pop" : "=r" (val));
+#define read_c0_pagemask()	__read_32bit_c0_register($5, 0)
+#define write_c0_pagemask(val)	__write_32bit_c0_register($5, 0, val)
 
-	return val;
-}
+#define read_c0_wired()		__read_32bit_c0_register($6, 0)
+#define write_c0_wired(val)	__write_32bit_c0_register($6, 0, val)
 
-static inline unsigned long get_entrylo1(void)
-{
-	unsigned long val;
+#define read_c0_info()		__read_32bit_c0_register($7, 0)
 
-	__asm__ __volatile__(
-		".set push\n\t"
-		".set reorder\n\t"
-		"mfc0 %0, $3\n\t"
-		".set pop" : "=r" (val));
+#define read_c0_cache()		__read_32bit_c0_register($7, 0)	/* TX39xx */
+#define write_c0_cache(val)	__write_32bit_c0_register($7, 0, val)
 
-	return val;
-}
+#define read_c0_count()		__read_32bit_c0_register($9, 0)
+#define write_c0_count(val)	__write_32bit_c0_register($9, 0, val)
 
-#endif
+#define read_c0_entryhi()	__read_ulong_c0_register($10, 0)
+#define write_c0_entryhi(val)	__write_ulong_c0_register($10, 0, val)
 
-/* CP0_ENTRYHI register */
-static inline unsigned long get_entryhi(void)
-{
-	unsigned long val;
+#define read_c0_compare()	__read_32bit_c0_register($11, 0)
+#define write_c0_compare(val)	__write_32bit_c0_register($11, 0, val)
 
-	__asm__ __volatile__(
-		".set push\n\t"
-		".set reorder\n\t"
-		"mfc0 %0, $10\n\t"
-		".set pop"
-		: "=r" (val));
+#define read_c0_status()	__read_32bit_c0_register($12, 0)
+#define write_c0_status(val)	__write_32bit_c0_register($12, 0, val)
 
-	return val;
-}
+#define read_c0_cause()		__read_32bit_c0_register($13, 0)
+#define write_c0_cause(val)	__write_32bit_c0_register($13, 0, val)
 
-static inline void set_entryhi(unsigned long val)
-{
-	__asm__ __volatile__(
-		".set push\n\t"
-		".set reorder\n\t"
-		"mtc0 %z0, $10\n\t"
-		".set pop"
-		: : "Jr" (val));
-}
+#define read_c0_prid()		__read_32bit_c0_register($15, 0)
 
-/* CP0_INDEX register */
-static inline unsigned long get_index(void)
-{
-	unsigned long val;
+#define read_c0_config()	__read_32bit_c0_register($16, 0)
+#define read_c0_config1()	__read_32bit_c0_register($16, 1)
+#define read_c0_config2()	__read_32bit_c0_register($16, 2)
+#define read_c0_config3()	__read_32bit_c0_register($16, 3)
+#define write_c0_config(val)	__write_32bit_c0_register($16, 0, val)
+#define write_c0_config1(val)	__write_32bit_c0_register($16, 1, val)
+#define write_c0_config2(val)	__write_32bit_c0_register($16, 2, val)
+#define write_c0_config3(val)	__write_32bit_c0_register($16, 3, val)
 
-	__asm__ __volatile__(
-		".set push\n\t"
-		".set reorder\n\t"
-		"mfc0 %0, $0\n\t"
-		".set pop"
-		: "=r" (val));
-	return val;
-}
+/*
+ * The WatchLo register.  There may be upto 8 of them.
+ */
+#define read_c0_watchlo0()	__read_ulong_c0_register($18, 0)
+#define read_c0_watchlo1()	__read_ulong_c0_register($18, 1)
+#define read_c0_watchlo2()	__read_ulong_c0_register($18, 2)
+#define read_c0_watchlo3()	__read_ulong_c0_register($18, 3)
+#define read_c0_watchlo4()	__read_ulong_c0_register($18, 4)
+#define read_c0_watchlo5()	__read_ulong_c0_register($18, 5)
+#define read_c0_watchlo6()	__read_ulong_c0_register($18, 6)
+#define read_c0_watchlo7()	__read_ulong_c0_register($18, 7)
+#define write_c0_watchlo0(val)	__write_ulong_c0_register($18, 0, val)
+#define write_c0_watchlo1(val)	__write_ulong_c0_register($18, 1, val)
+#define write_c0_watchlo2(val)	__write_ulong_c0_register($18, 2, val)
+#define write_c0_watchlo3(val)	__write_ulong_c0_register($18, 3, val)
+#define write_c0_watchlo4(val)	__write_ulong_c0_register($18, 4, val)
+#define write_c0_watchlo5(val)	__write_ulong_c0_register($18, 5, val)
+#define write_c0_watchlo6(val)	__write_ulong_c0_register($18, 6, val)
+#define write_c0_watchlo7(val)	__write_ulong_c0_register($18, 7, val)
 
-static inline void set_index(unsigned long val)
-{
-	__asm__ __volatile__(
-		".set push\n\t"
-		".set reorder\n\t"
-		"mtc0 %z0, $0\n\t"
-		".set pop"
-		: : "Jr" (val));
-}
+/*
+ * The WatchHi register.  There may be upto 8 of them.
+ */
+#define read_c0_watchhi0()	__read_32bit_c0_register($19, 0)
+#define read_c0_watchhi1()	__read_32bit_c0_register($19, 1)
+#define read_c0_watchhi2()	__read_32bit_c0_register($19, 2)
+#define read_c0_watchhi3()	__read_32bit_c0_register($19, 3)
+#define read_c0_watchhi4()	__read_32bit_c0_register($19, 4)
+#define read_c0_watchhi5()	__read_32bit_c0_register($19, 5)
+#define read_c0_watchhi6()	__read_32bit_c0_register($19, 6)
+#define read_c0_watchhi7()	__read_32bit_c0_register($19, 7)
 
-/* CP0_WIRED register */
-static inline unsigned long get_wired(void)
-{
-	unsigned long val;
+#define write_c0_watchhi0(val)	__write_32bit_c0_register($19, 0, val)
+#define write_c0_watchhi1(val)	__write_32bit_c0_register($19, 1, val)
+#define write_c0_watchhi2(val)	__write_32bit_c0_register($19, 2, val)
+#define write_c0_watchhi3(val)	__write_32bit_c0_register($19, 3, val)
+#define write_c0_watchhi4(val)	__write_32bit_c0_register($19, 4, val)
+#define write_c0_watchhi5(val)	__write_32bit_c0_register($19, 5, val)
+#define write_c0_watchhi6(val)	__write_32bit_c0_register($19, 6, val)
+#define write_c0_watchhi7(val)	__write_32bit_c0_register($19, 7, val)
 
-	__asm__ __volatile__(
-		".set push\n\t"
-		".set reorder\n\t"
-		"mfc0 %0, $6\n\t"
-		".set pop"
-		: "=r" (val));
-	return val;
-}
+#define read_c0_xcontext()	__read_ulong_c0_register($20, 0)
+#define write_c0_xcontext(val)	__write_ulong_c0_register($20, 0, val)
 
-static inline void set_wired(unsigned long val)
-{
-	__asm__ __volatile__(
-		".set push\n\t"
-		".set reorder\n\t"
-		"mtc0 %z0, $6\n\t"
-		".set pop"
-		: : "Jr" (val));
-}
+#define read_c0_intcontrol()	__read_32bit_c0_register($20, 1)
+#define write_c0_intcontrol(val) __write_32bit_c0_register($20, 1, val)
 
-/* CP0_STATUS register */
-static inline unsigned int get_status(void)
-{
-	unsigned long val;
+#define read_c0_framemask()	__read_32bit_c0_register($21, 0)
+#define write_c0_framemask(val)	__write_32bit_c0_register($21, 0, val)
 
-	__asm__ __volatile__(
-		".set push\n\t"
-		".set reorder\n\t"
-		"mfc0 %0, $12\n\t"
-		".set pop"
-		: "=r" (val));
-	return val;
-}
+#define read_c0_debug()		__read_32bit_c0_register($23, 0)
+#define write_c0_debug(val)	__write_32bit_c0_register($23, 0, val)
 
-static inline void set_status(unsigned long val)
-{
-	__asm__ __volatile__(
-		".set push\n\t"
-		".set reorder\n\t"
-		"mtc0 %z0, $12\n\t"
-		".set pop"
-		: : "Jr" (val));
-}
+#define read_c0_depc()		__read_ulong_c0_register($24, 0)
+#define write_c0_depc(val)	__write_ulong_c0_register($24, 0, val)
 
-static inline unsigned long get_info(void)
-{
-	unsigned long val;
+#define read_c0_ecc()		__read_32bit_c0_register($26, 0)
+#define write_c0_ecc(val)	__write_32bit_c0_register($26, 0, val)
 
-	__asm__(
-		".set push\n\t"
-		".set reorder\n\t"
-		"mfc0 %0, $7\n\t"
-		".set pop"
-		: "=r" (val));
-	return val;
-}
+#define read_c0_derraddr0()	__read_ulong_c0_register($26, 1)
+#define write_c0_derraddr0(val)	__write_ulong_c0_register($26, 1, val)
 
-/* CP0_TAGLO and CP0_TAGHI registers */
-static inline unsigned long get_taglo(void)
-{
-	unsigned long val;
+#define read_c0_cacheerr()	__read_32bit_c0_register($27, 0)
 
-	__asm__ __volatile__(
-		".set push\n\t"
-		".set reorder\n\t"
-		"mfc0 %0, $28\n\t"
-		".set pop"
-		: "=r" (val));
-	return val;
-}
+#define read_c0_derraddr1()	__read_ulong_c0_register($27, 1)
+#define write_c0_derraddr1(val)	__write_ulong_c0_register($27, 1, val)
 
-static inline void set_taglo(unsigned long val)
-{
-	__asm__ __volatile__(
-		".set push\n\t"
-		".set reorder\n\t"
-		"mtc0 %z0, $28\n\t"
-		".set pop"
-		: : "Jr" (val));
-}
+#define read_c0_taglo()		__read_32bit_c0_register($28, 0)
+#define write_c0_taglo(val)	__write_32bit_c0_register($28, 0, val)
 
-static inline unsigned long get_taghi(void)
-{
-	unsigned long val;
+#define read_c0_taghi()		__read_32bit_c0_register($29, 0)
+#define write_c0_taghi(val)	__write_32bit_c0_register($29, 0, val)
 
-	__asm__ __volatile__(
-		".set push\n\t"
-		".set reorder\n\t"
-		"mfc0 %0, $29\n\t"
-		".set pop"
-		: "=r" (val));
-	return val;
-}
+#define read_c0_errorepc()	__read_ulong_c0_register($30, 0)
+#define write_c0_errorepc(val)	__write_ulong_c0_register($30, 0, val)
 
-static inline void set_taghi(unsigned long val)
-{
-	__asm__ __volatile__(
-		".set push\n\t"
-		".set reorder\n\t"
-		"mtc0 %z0, $29\n\t"
-		".set pop"
-		: : "Jr" (val));
-}
+/*
+ * Macros to access the floating point coprocessor control registers
+ */
+#define read_32bit_cp1_register(source)                         \
+({ int __res;                                                   \
+	__asm__ __volatile__(                                   \
+	".set\tpush\n\t"					\
+	".set\treorder\n\t"					\
+        "cfc1\t%0,"STR(source)"\n\t"                            \
+	".set\tpop"						\
+        : "=r" (__res));                                        \
+        __res;})
 
-static inline unsigned long get_context(void)
+/* TLB operations. */
+static inline void tlb_probe(void)
 {
-	unsigned long val;
-
 	__asm__ __volatile__(
-		".set push\n\t"
-		".set reorder\n\t"
-		"mfc0 %0, $4\n\t"
-		".set pop"
-		: "=r" (val));
-
-	return val;
+		".set noreorder\n\t"
+		"tlbp\n\t"
+		".set reorder");
 }
 
-static inline void set_context(unsigned long val)
+static inline void tlb_read(void)
 {
 	__asm__ __volatile__(
-		".set push\n\t"
-		".set reorder\n\t"
-		"mtc0 %z0, $4\n\t"
-		".set pop"
-		: : "Jr" (val));
+		".set noreorder\n\t"
+		"tlbr\n\t"
+		".set reorder");
 }
 
-static inline unsigned long get_errorepc(void)
+static inline void tlb_write_indexed(void)
 {
-	unsigned long val;
-
 	__asm__ __volatile__(
-		".set push\n\t"
-		".set reorder\n\t"
-		"mfc0 %0, $30\n\t"
-		".set pop"
-		: "=r" (val));
-
-	return val;
+		".set noreorder\n\t"
+		"tlbwi\n\t"
+		".set reorder");
 }
 
-static inline void set_errorepc(unsigned long val)
+static inline void tlb_write_random(void)
 {
 	__asm__ __volatile__(
-		".set push\n\t"
-		".set reorder\n\t"
-		"mtc0 %z0, $30\n\t"
-		".set pop"
-		: : "Jr" (val));
+		".set noreorder\n\t"
+		"tlbwr\n\t"
+		".set reorder");
 }
 
 /*
- * Manipulate the status register.
- * Mostly used to access the interrupt bits.
+ * Manipulate bits in a c0 register.
  */
-#define __BUILD_SET_CP0(name,register)				\
+#define __BUILD_SET_C0(name,register)				\
 static inline unsigned int					\
-set_cp0_##name(unsigned int set)				\
+set_c0_##name(unsigned int set)					\
 {								\
 	unsigned int res;					\
 								\
-	res = read_32bit_cp0_register(register);		\
+	res = read_c0_##name();					\
 	res |= set;						\
-	write_32bit_cp0_register(register, res);		\
+	write_c0_##name(res);					\
 								\
 	return res;						\
 }								\
 								\
 static inline unsigned int					\
-clear_cp0_##name(unsigned int clear)				\
+clear_c0_##name(unsigned int clear)				\
 {								\
 	unsigned int res;					\
 								\
-	res = read_32bit_cp0_register(register);		\
+	res = read_c0_##name();					\
 	res &= ~clear;						\
-	write_32bit_cp0_register(register, res);		\
+	write_c0_##name(res);					\
 								\
 	return res;						\
 }								\
 								\
 static inline unsigned int					\
-change_cp0_##name(unsigned int change, unsigned int new)	\
+change_c0_##name(unsigned int change, unsigned int new)		\
 {								\
 	unsigned int res;					\
 								\
-	res = read_32bit_cp0_register(register);		\
+	res = read_c0_##name();					\
 	res &= ~change;						\
 	res |= (new & change);					\
-	write_32bit_cp0_register(register, res);		\
+	write_c0_##name(res);					\
 								\
 	return res;						\
 }
 
-__BUILD_SET_CP0(status,CP0_STATUS)
-__BUILD_SET_CP0(cause,CP0_CAUSE)
-__BUILD_SET_CP0(config,CP0_CONFIG)
-
-#define __enable_fpu()							\
-do {									\
-	set_cp0_status(ST0_CU1);					\
-	asm("nop;nop;nop;nop");		/* max. hazard */		\
-} while (0)
-
-#define __disable_fpu()							\
-do {									\
-	clear_cp0_status(ST0_CU1);					\
-	/* We don't care about the cp0 hazard here  */			\
-} while (0)
-
-#define enable_fpu()							\
-do {									\
-	if (mips_cpu.options & MIPS_CPU_FPU)				\
-		__enable_fpu();						\
-} while (0)
-
-#define disable_fpu()							\
-do {									\
-	if (mips_cpu.options & MIPS_CPU_FPU)				\
-		__disable_fpu();					\
-} while (0)
+__BUILD_SET_C0(status,CP0_STATUS)
+__BUILD_SET_C0(cause,CP0_CAUSE)
+__BUILD_SET_C0(config,CP0_CONFIG)
 
 #endif /* !__ASSEMBLY__ */
 
diff -urNd -urNd linux-2.4.20/include/asm-mips/mmu_context.h linux-2.4.20-mipscvs-20050106/include/asm-mips/mmu_context.h
--- linux-2.4.20/include/asm-mips/mmu_context.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/mmu_context.h	2003-02-14 05:04:00.000000000 -0600
@@ -27,16 +27,13 @@
 #define TLBMISS_HANDLER_SETUP_PGD(pgd) \
 	pgd_current[smp_processor_id()] = (unsigned long)(pgd)
 #define TLBMISS_HANDLER_SETUP() \
-	set_context((unsigned long) smp_processor_id() << (23 + 3)); \
+	write_c0_context((unsigned long) smp_processor_id() << (23 + 3)); \
 	TLBMISS_HANDLER_SETUP_PGD(swapper_pg_dir)
 extern unsigned long pgd_current[];
 
-#ifndef CONFIG_SMP
-#define CPU_CONTEXT(cpu, mm)	(mm)->context
-#else
-#define CPU_CONTEXT(cpu, mm)	(*((unsigned long *)((mm)->context) + cpu))
-#endif
-#define ASID_CACHE(cpu)		cpu_data[cpu].asid_cache
+#define cpu_context(cpu, mm)	((mm)->context[cpu])
+#define cpu_asid(cpu, mm)	(cpu_context((cpu), (mm)) & ASID_MASK)
+#define asid_cache(cpu)		cpu_data[cpu].asid_cache
 
 #if defined(CONFIG_CPU_R3000) || defined(CONFIG_CPU_TX39XX)
 
@@ -64,7 +61,7 @@
 static inline void
 get_new_mmu_context(struct mm_struct *mm, unsigned long cpu)
 {
-	unsigned long asid = ASID_CACHE(cpu);
+	unsigned long asid = asid_cache(cpu);
 
 	if (! ((asid += ASID_INC) & ASID_MASK) ) {
 		flush_icache_all();
@@ -72,7 +69,7 @@
 		if (!asid)		/* fix version if needed */
 			asid = ASID_FIRST_VERSION;
 	}
-	CPU_CONTEXT(cpu, mm) = ASID_CACHE(cpu) = asid;
+	cpu_context(cpu, mm) = asid_cache(cpu) = asid;
 }
 
 /*
@@ -82,31 +79,35 @@
 static inline int
 init_new_context(struct task_struct *tsk, struct mm_struct *mm)
 {
-#ifndef CONFIG_SMP
-	mm->context = 0;
-#else
-	mm->context = (unsigned long)kmalloc(smp_num_cpus *
-				sizeof(unsigned long), GFP_KERNEL);
-	/*
- 	 * Init the "context" values so that a tlbpid allocation
-	 * happens on the first switch.
- 	 */
-	if (mm->context == 0)
-		return -ENOMEM;
-	memset((void *)mm->context, 0, smp_num_cpus * sizeof(unsigned long));
-#endif
+	int i;
+
+	for (i = 0; i < smp_num_cpus; i++)
+		cpu_context(i, mm) = 0;
 	return 0;
 }
 
 static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
                              struct task_struct *tsk, unsigned cpu)
 {
+	unsigned long flags;
+
+	local_irq_save(flags);
+
 	/* Check if our ASID is of an older version and thus invalid */
-	if ((CPU_CONTEXT(cpu, next) ^ ASID_CACHE(cpu)) & ASID_VERSION_MASK)
+	if ((cpu_context(cpu, next) ^ asid_cache(cpu)) & ASID_VERSION_MASK)
 		get_new_mmu_context(next, cpu);
 
-	set_entryhi(CPU_CONTEXT(cpu, next));
+	write_c0_entryhi(cpu_context(cpu, next));
 	TLBMISS_HANDLER_SETUP_PGD(next->pgd);
+
+	/*
+	 * Mark current->active_mm as not "active" anymore.
+	 * We don't want to mislead possible IPI tlb flush routines.
+	 */
+	clear_bit(cpu, &prev->cpu_vm_mask);
+	set_bit(cpu, &next->cpu_vm_mask);
+
+	local_irq_restore(flags);
 }
 
 /*
@@ -115,10 +116,6 @@
  */
 static inline void destroy_context(struct mm_struct *mm)
 {
-#ifdef CONFIG_SMP
-	if (mm->context)
-		kfree((void *)mm->context);
-#endif
 }
 
 /*
@@ -128,11 +125,39 @@
 static inline void
 activate_mm(struct mm_struct *prev, struct mm_struct *next)
 {
+	unsigned long flags;
+
+	local_irq_save(flags);
+
 	/* Unconditionally get a new ASID.  */
 	get_new_mmu_context(next, smp_processor_id());
 
-	set_entryhi(CPU_CONTEXT(smp_processor_id(), next));
+	write_c0_entryhi(cpu_context(smp_processor_id(), next));
 	TLBMISS_HANDLER_SETUP_PGD(next->pgd);
+	
+	local_irq_restore(flags);
+}
+
+/*
+ * If mm is currently active_mm, we can't really drop it.  Instead,
+ * we will get a new one for it.
+ */
+static inline void
+drop_mmu_context(struct mm_struct *mm, unsigned cpu)
+{
+	unsigned long flags;
+
+	local_irq_save(flags);
+
+	if (test_bit(cpu, &mm->cpu_vm_mask))  {
+		get_new_mmu_context(mm, cpu);
+		write_c0_entryhi(cpu_asid(cpu, mm));
+	} else {
+		/* will get a new context next time */
+		cpu_context(cpu, mm) = 0;
+	}
+
+	local_irq_restore(flags);
 }
 
 #endif /* _ASM_MMU_CONTEXT_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips/mmu.h linux-2.4.20-mipscvs-20050106/include/asm-mips/mmu.h
--- linux-2.4.20/include/asm-mips/mmu.h	2000-12-29 16:07:23.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/mmu.h	2003-01-16 22:23:41.000000000 -0600
@@ -1,7 +1,6 @@
-#ifndef __MMU_H
-#define __MMU_H
+#ifndef __ASM_MMU_H
+#define __ASM_MMU_H
 
-/* Default "unsigned long" context */
-typedef unsigned long mm_context_t;
+typedef unsigned long mm_context_t[NR_CPUS];
 
-#endif
+#endif /* __ASM_MMU_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips/module.h linux-2.4.20-mipscvs-20050106/include/asm-mips/module.h
--- linux-2.4.20/include/asm-mips/module.h	2001-09-09 12:43:01.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/module.h	2002-11-06 19:47:46.000000000 -0600
@@ -56,8 +56,8 @@
 	extern const struct exception_table_entry __start___dbe_table[];
 	extern const struct exception_table_entry __stop___dbe_table[];
 	static struct archdata archdata = {
-		dbe_table_start:	__start___dbe_table,
-		dbe_table_end:		__stop___dbe_table,
+		.dbe_table_start	= __start___dbe_table,
+		.dbe_table_end		= __stop___dbe_table,
 	};
 
 	mod->archdata_start = (char *)&archdata;
diff -urNd -urNd linux-2.4.20/include/asm-mips/page.h linux-2.4.20-mipscvs-20050106/include/asm-mips/page.h
--- linux-2.4.20/include/asm-mips/page.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/page.h	2002-12-19 20:34:17.000000000 -0600
@@ -131,7 +131,7 @@
 /*
  * Memory above this physical address will be considered highmem.
  */
-#define HIGHMEM_START	(0x20000000)
+#define HIGHMEM_START	0x20000000UL
 
 #endif /* defined (__KERNEL__) */
 
diff -urNd -urNd linux-2.4.20/include/asm-mips/param.h linux-2.4.20-mipscvs-20050106/include/asm-mips/param.h
--- linux-2.4.20/include/asm-mips/param.h	2001-07-02 15:56:40.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/param.h	2003-01-20 14:21:43.000000000 -0600
@@ -24,13 +24,13 @@
     * This works only if 100 / HZ <= 1
     */
 #  define QUOTIENT ((1UL << (32 - LOG_2_HZ)) * 100)
-#  define hz_to_std(a)                            \
-   ({ unsigned int __res;			  \
-      unsigned long __lo;			  \
-        __asm__("multu\t%2,%3\n\t"		  \
-		:"=h" (__res), "=l" (__lo)	  \
-		:"r" (a),"r" (QUOTIENT));         \
-        (__typeof__(a)) __res;})
+#  define hz_to_std(a)				\
+   ({ unsigned long __res;			\
+      unsigned long __lo;			\
+	__asm__("multu\t%2,%3\n\t"		\
+		:"=h" (__res), "=l" (__lo)	\
+		:"r" (a), "r" (QUOTIENT));	\
+	(__typeof__(a)) __res;})
 
 #else /* Not a DECstation  */
 
@@ -41,7 +41,7 @@
 #  define HZ 100
 #  define hz_to_std(a) (a)
 
-#endif /* Not a DECstation */
+#endif /* Not a DECstation  */
 
 #else /* defined(__KERNEL__)  */
 
diff -urNd -urNd linux-2.4.20/include/asm-mips/pci.h linux-2.4.20-mipscvs-20050106/include/asm-mips/pci.h
--- linux-2.4.20/include/asm-mips/pci.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/pci.h	2002-10-01 06:14:37.000000000 -0500
@@ -100,7 +100,7 @@
 
 	dma_cache_wback_inv(addr, size);
 
-	return bus_to_baddr(hwdev->bus->number, __pa(ptr));
+	return bus_to_baddr(hwdev->bus, __pa(ptr));
 }
 
 /*
@@ -120,7 +120,7 @@
 	if (direction != PCI_DMA_TODEVICE) {
 		unsigned long addr;
 
-		addr = baddr_to_bus(hwdev, dma_addr) + PAGE_OFFSET;
+		addr = baddr_to_bus(hwdev->bus, dma_addr) + PAGE_OFFSET;
 		dma_cache_wback_inv(addr, size);
 	}
 }
@@ -141,7 +141,7 @@
 	addr = (unsigned long) page_address(page) + offset;
 	dma_cache_wback_inv(addr, size);
 
-	return bus_to_baddr(hwdev, page_to_phys(page) + offset);
+	return bus_to_baddr(hwdev->bus, page_to_phys(page) + offset);
 }
 
 static inline void pci_unmap_page(struct pci_dev *hwdev, dma_addr_t dma_address,
@@ -153,7 +153,7 @@
 	if (direction != PCI_DMA_TODEVICE) {
 		unsigned long addr;
 
-		addr = baddr_to_bus(hwdev, dma_address) + PAGE_OFFSET;
+		addr = baddr_to_bus(hwdev->bus, dma_address) + PAGE_OFFSET;
 		dma_cache_wback_inv(addr, size);
 	}
 }
@@ -199,10 +199,14 @@
 		if (sg->address) {
 			dma_cache_wback_inv((unsigned long)sg->address,
 			                    sg->length);
-			sg->dma_address = bus_to_baddr(hwdev, __pa(sg->address));
-		} else
+			sg->dma_address = bus_to_baddr(hwdev->bus, __pa(sg->address));
+		} else {
 			sg->dma_address = page_to_bus(sg->page) +
 			                  sg->offset;
+			dma_cache_wback_inv((unsigned long)
+				(page_address(sg->page) + sg->offset),
+				sg->length);
+		}
 	}
 
 	return nents;
@@ -255,7 +259,7 @@
 	if (direction == PCI_DMA_NONE)
 		out_of_line_bug();
 
-	addr = baddr_to_bus(hwdev, dma_handle) + PAGE_OFFSET;
+	addr = baddr_to_bus(hwdev->bus, dma_handle) + PAGE_OFFSET;
 	dma_cache_wback_inv(addr, size);
 }
 
@@ -313,13 +317,13 @@
 {
 	dma64_addr_t addr = page_to_phys(page) + offset;
 
-	return (dma64_addr_t) bus_to_baddr(hwdev->bus->number, addr);
+	return (dma64_addr_t) bus_to_baddr(pdev->bus, addr);
 }
 
 static inline struct page *pci_dac_dma_to_page(struct pci_dev *pdev,
 	dma64_addr_t dma_addr)
 {
-	unsigned long poff = baddr_to_bus(hwdev, dma_addr) >> PAGE_SHIFT;
+	unsigned long poff = baddr_to_bus(pdev->bus, dma_addr) >> PAGE_SHIFT;
 
 	return mem_map + poff;
 }
@@ -338,7 +342,7 @@
 	if (direction == PCI_DMA_NONE)
 		BUG();
 
-	addr = baddr_to_bus(hwdev->bus->number, dma_addr) + PAGE_OFFSET;
+	addr = baddr_to_bus(pdev->bus, dma_addr) + PAGE_OFFSET;
 	dma_cache_wback_inv(addr, len);
 }
 
diff -urNd -urNd linux-2.4.20/include/asm-mips/posix_types.h linux-2.4.20-mipscvs-20050106/include/asm-mips/posix_types.h
--- linux-2.4.20/include/asm-mips/posix_types.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/posix_types.h	2003-01-20 06:17:54.000000000 -0600
@@ -17,7 +17,7 @@
 typedef unsigned int	__kernel_dev_t;
 typedef unsigned long	__kernel_ino_t;
 typedef unsigned int	__kernel_mode_t;
-typedef int		__kernel_nlink_t;
+typedef unsigned long	__kernel_nlink_t;
 typedef long		__kernel_off_t;
 typedef int		__kernel_pid_t;
 typedef int		__kernel_ipc_pid_t;
diff -urNd -urNd linux-2.4.20/include/asm-mips/processor.h linux-2.4.20-mipscvs-20050106/include/asm-mips/processor.h
--- linux-2.4.20/include/asm-mips/processor.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/processor.h	2002-12-12 05:46:25.000000000 -0600
@@ -40,10 +40,6 @@
  * System setup and hardware flags..
  */
 extern void (*cpu_wait)(void);
-extern void r3081_wait(void);
-extern void r39xx_wait(void);
-extern void r4k_wait(void);
-extern void au1k_wait(void);
 
 extern struct cpuinfo_mips cpu_data[];
 extern unsigned int vced_count, vcei_count;
@@ -72,9 +68,6 @@
 #define wp_works_ok 1
 #define wp_works_ok__is_a_macro /* for versions in ksyms.c */
 
-/* Lazy FPU handling on uni-processor */
-extern struct task_struct *last_task_used_math;
-
 /*
  * User space process size: 2GB. This is hardcoded into a few places,
  * so don't change it unless you know what you are doing.  TASK_SIZE
@@ -211,20 +204,16 @@
 /*
  * Do necessary setup to start up a newly executed thread.
  */
-#define start_thread(regs, new_pc, new_sp) do {				\
-	/* New thread loses kernel and FPU privileges. */	       	\
-	regs->cp0_status = (regs->cp0_status & ~(ST0_CU0|ST0_KSU|ST0_CU1)) | KU_USER;\
-	regs->cp0_epc = new_pc;						\
-	regs->regs[29] = new_sp;					\
-	current->thread.current_ds = USER_DS;				\
-} while (0)
+extern void start_thread(struct pt_regs * regs, unsigned long pc, unsigned long sp);
 
+struct task_struct;
 unsigned long get_wchan(struct task_struct *p);
 
 #define __PT_REG(reg) ((long)&((struct pt_regs *)0)->reg - sizeof(struct pt_regs))
 #define __KSTK_TOS(tsk) ((unsigned long)(tsk) + KERNEL_STACK_SIZE - 32)
 #define KSTK_EIP(tsk) (*(unsigned long *)(__KSTK_TOS(tsk) + __PT_REG(cp0_epc)))
 #define KSTK_ESP(tsk) (*(unsigned long *)(__KSTK_TOS(tsk) + __PT_REG(regs[29])))
+#define KSTK_STATUS(tsk) (*(unsigned long *)(__KSTK_TOS(tsk) + __PT_REG(cp0_status)))
 
 /* Allocation and freeing of basic task resources. */
 /*
diff -urNd -urNd linux-2.4.20/include/asm-mips/r4kcache.h linux-2.4.20-mipscvs-20050106/include/asm-mips/r4kcache.h
--- linux-2.4.20/include/asm-mips/r4kcache.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/r4kcache.h	2002-10-03 21:39:52.000000000 -0500
@@ -1,118 +1,67 @@
 /*
- * r4kcache.h: Inline assembly cache operations.
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
  *
- * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
+ * Inline assembly cache operations.
  *
- * FIXME: Handle split L2 caches.
+ * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
+ * Copyright (C) 1997 - 2002 Ralf Baechle (ralf@gnu.org)
  */
-#ifndef _MIPS_R4KCACHE_H
-#define _MIPS_R4KCACHE_H
+#ifndef __ASM_R4KCACHE_H
+#define __ASM_R4KCACHE_H
 
 #include <asm/asm.h>
 #include <asm/cacheops.h>
 
+#define cache_op(op,addr)						\
+	__asm__ __volatile__(						\
+	"	.set	noreorder		\n"			\
+	"	.set	mips3\n\t		\n"			\
+	"	cache	%0, %1			\n"			\
+	"	.set	mips0			\n"			\
+	"	.set	reorder"					\
+	:								\
+	: "i" (op), "m" (*(unsigned char *)(addr)))
+
 static inline void flush_icache_line_indexed(unsigned long addr)
 {
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		".set mips3\n\t"
-		"cache %1, (%0)\n\t"
-		".set mips0\n\t"
-		".set reorder"
-		:
-		: "r" (addr),
-		  "i" (Index_Invalidate_I));
+	cache_op(Index_Invalidate_I, addr);
 }
 
 static inline void flush_dcache_line_indexed(unsigned long addr)
 {
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		".set mips3\n\t"
-		"cache %1, (%0)\n\t"
-		".set mips0\n\t"
-		".set reorder"
-		:
-		: "r" (addr),
-		  "i" (Index_Writeback_Inv_D));
+	cache_op(Index_Writeback_Inv_D, addr);
 }
 
 static inline void flush_scache_line_indexed(unsigned long addr)
 {
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		".set mips3\n\t"
-		"cache %1, (%0)\n\t"
-		".set mips0\n\t"
-		".set reorder"
-		:
-		: "r" (addr),
-		  "i" (Index_Writeback_Inv_SD));
+	cache_op(Index_Writeback_Inv_SD, addr);
 }
 
 static inline void flush_icache_line(unsigned long addr)
 {
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		".set mips3\n\t"
-		"cache %1, (%0)\n\t"
-		".set mips0\n\t"
-		".set reorder"
-		:
-		: "r" (addr),
-		  "i" (Hit_Invalidate_I));
+	cache_op(Hit_Invalidate_I, addr);
 }
 
 static inline void flush_dcache_line(unsigned long addr)
 {
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		".set mips3\n\t"
-		"cache %1, (%0)\n\t"
-		".set mips0\n\t"
-		".set reorder"
-		:
-		: "r" (addr),
-		  "i" (Hit_Writeback_Inv_D));
+	cache_op(Hit_Writeback_Inv_D, addr);
 }
 
 static inline void invalidate_dcache_line(unsigned long addr)
 {
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		".set mips3\n\t"
-		"cache %1, (%0)\n\t"
-		".set mips0\n\t"
-		".set reorder"
-		:
-		: "r" (addr),
-		  "i" (Hit_Invalidate_D));
+	cache_op(Hit_Invalidate_D, addr);
 }
 
 static inline void invalidate_scache_line(unsigned long addr)
 {
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		".set mips3\n\t"
-		"cache %1, (%0)\n\t"
-		".set mips0\n\t"
-		".set reorder"
-		:
-		: "r" (addr),
-		  "i" (Hit_Invalidate_SD));
+	cache_op(Hit_Invalidate_SD, addr);
 }
 
 static inline void flush_scache_line(unsigned long addr)
 {
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		".set mips3\n\t"
-		"cache %1, (%0)\n\t"
-		".set mips0\n\t"
-		".set reorder"
-		:
-		: "r" (addr),
-		  "i" (Hit_Writeback_Inv_SD));
+	cache_op(Hit_Writeback_Inv_SD, addr);
 }
 
 /*
@@ -123,15 +72,14 @@
 	__asm__ __volatile__(
 		".set noreorder\n\t"
 		".set mips3\n"
-		"1:\tcache %1,(%0)\n"
+		"1:\tcache %0,(%1)\n"
 		"2:\t.set mips0\n\t"
 		".set reorder\n\t"
 		".section\t__ex_table,\"a\"\n\t"
 		STR(PTR)"\t1b,2b\n\t"
 		".previous"
 		:
-		: "r" (addr),
-		  "i" (Hit_Invalidate_I));
+		: "i" (Hit_Invalidate_I), "r" (addr));
 }
 
 static inline void protected_writeback_dcache_line(unsigned long addr)
@@ -139,15 +87,14 @@
 	__asm__ __volatile__(
 		".set noreorder\n\t"
 		".set mips3\n"
-		"1:\tcache %1,(%0)\n"
+		"1:\tcache %0,(%1)\n"
 		"2:\t.set mips0\n\t"
 		".set reorder\n\t"
 		".section\t__ex_table,\"a\"\n\t"
 		STR(PTR)"\t1b,2b\n\t"
 		".previous"
 		:
-		: "r" (addr),
-		  "i" (Hit_Writeback_D));
+		: "i" (Hit_Writeback_D), "r" (addr));
 }
 
 #define cache16_unroll32(base,op)				\
@@ -181,7 +128,7 @@
 	unsigned long start = KSEG0;
 	unsigned long end = (start + dcache_size);
 
-	while(start < end) {
+	while (start < end) {
 		cache16_unroll32(start,Index_Writeback_Inv_D);
 		start += 0x200;
 	}
@@ -193,7 +140,7 @@
 	unsigned long end = (start + mips_cpu.dcache.sets * mips_cpu.dcache.linesz);
 	int way;
 
-	while(start < end) {
+	while (start < end) {
 		/* LSB of VA select the way */
 		for (way = 0; way < mips_cpu.dcache.ways; way++)
 			cache16_unroll32(start|way,Index_Writeback_Inv_D);
@@ -206,7 +153,7 @@
 	unsigned long start = page;
 	unsigned long end = (start + PAGE_SIZE);
 
-	while(start < end) {
+	while (start < end) {
 		cache16_unroll32(start,Hit_Writeback_Inv_D);
 		start += 0x200;
 	}
@@ -217,7 +164,7 @@
 	unsigned long start = page;
 	unsigned long end = (start + PAGE_SIZE);
 
-	while(start < end) {
+	while (start < end) {
 		cache16_unroll32(start,Index_Writeback_Inv_D);
 		start += 0x200;
 	}
@@ -229,7 +176,7 @@
 	unsigned long end = (start + PAGE_SIZE);
 	int way;
 
-	while(start < end) {
+	while (start < end) {
 		/* LSB of VA select the way */
 		for (way = 0; way < mips_cpu.dcache.ways; way++)
 			cache16_unroll32(start|way,Index_Writeback_Inv_D);
@@ -242,7 +189,7 @@
 	unsigned long start = KSEG0;
 	unsigned long end = (start + icache_size);
 
-	while(start < end) {
+	while (start < end) {
 		cache16_unroll32(start,Index_Invalidate_I);
 		start += 0x200;
 	}
@@ -254,7 +201,7 @@
 	unsigned long end = (start + mips_cpu.icache.sets * mips_cpu.icache.linesz);
 	int way;
 
-	while(start < end) {
+	while (start < end) {
 		/* LSB of VA select the way */
 		for (way = 0; way < mips_cpu.icache.ways; way++)
 			cache16_unroll32(start|way,Index_Invalidate_I);
@@ -267,7 +214,7 @@
 	unsigned long start = page;
 	unsigned long end = (start + PAGE_SIZE);
 
-	while(start < end) {
+	while (start < end) {
 		cache16_unroll32(start,Hit_Invalidate_I);
 		start += 0x200;
 	}
@@ -278,7 +225,7 @@
 	unsigned long start = page;
 	unsigned long end = (start + PAGE_SIZE);
 
-	while(start < end) {
+	while (start < end) {
 		cache16_unroll32(start,Index_Invalidate_I);
 		start += 0x200;
 	}
@@ -289,7 +236,7 @@
 	unsigned long start = KSEG0;
 	unsigned long end = KSEG0 + scache_size;
 
-	while(start < end) {
+	while (start < end) {
 		cache16_unroll32(start,Index_Writeback_Inv_SD);
 		start += 0x200;
 	}
@@ -300,7 +247,7 @@
 	unsigned long start = page;
 	unsigned long end = page + PAGE_SIZE;
 
-	while(start < end) {
+	while (start < end) {
 		cache16_unroll32(start,Hit_Writeback_Inv_SD);
 		start += 0x200;
 	}
@@ -311,7 +258,7 @@
 	unsigned long start = page;
 	unsigned long end = page + PAGE_SIZE;
 
-	while(start < end) {
+	while (start < end) {
 		cache16_unroll32(start,Index_Writeback_Inv_SD);
 		start += 0x200;
 	}
@@ -348,7 +295,7 @@
 	unsigned long start = KSEG0;
 	unsigned long end = (start + dcache_size);
 
-	while(start < end) {
+	while (start < end) {
 		cache32_unroll32(start,Index_Writeback_Inv_D);
 		start += 0x400;
 	}
@@ -360,7 +307,7 @@
 	unsigned long end = (start + mips_cpu.dcache.sets * mips_cpu.dcache.linesz);
 	int way;
 
-	while(start < end) {
+	while (start < end) {
 		/* LSB of VA select the way */
 		for (way = 0; way < mips_cpu.dcache.ways; way++)
 			cache32_unroll32(start|way,Index_Writeback_Inv_D);
@@ -391,7 +338,7 @@
 	*(volatile unsigned long *)KSEG1;
 
 	__asm__ __volatile__("nop;nop;nop;nop");
-	while(start < end) {
+	while (start < end) {
 		cache32_unroll32(start,Hit_Writeback_Inv_D);
 		start += 0x400;
 	}
@@ -402,7 +349,7 @@
 	unsigned long start = page;
 	unsigned long end = (start + PAGE_SIZE);
 
-	while(start < end) {
+	while (start < end) {
 		cache32_unroll32(start,Index_Writeback_Inv_D);
 		start += 0x400;
 	}
@@ -414,7 +361,7 @@
 	unsigned long end = (start + PAGE_SIZE);
 	int way;
 
-	while(start < end) {
+	while (start < end) {
 		/* LSB of VA select the way */
 		for (way = 0; way < mips_cpu.dcache.ways; way++)
 			cache32_unroll32(start|way,Index_Writeback_Inv_D);
@@ -427,7 +374,7 @@
 	unsigned long start = KSEG0;
 	unsigned long end = (start + icache_size);
 
-	while(start < end) {
+	while (start < end) {
 		cache32_unroll32(start,Index_Invalidate_I);
 		start += 0x400;
 	}
@@ -439,7 +386,7 @@
 	unsigned long end = (start + mips_cpu.icache.sets * mips_cpu.icache.linesz);
 	int way;
 
-	while(start < end) {
+	while (start < end) {
 		/* LSB of VA select the way */
 		for (way = 0; way < mips_cpu.icache.ways; way++)
 			cache32_unroll32(start|way,Index_Invalidate_I);
@@ -452,7 +399,7 @@
 	unsigned long start = page;
 	unsigned long end = (start + PAGE_SIZE);
 
-	while(start < end) {
+	while (start < end) {
 		cache32_unroll32(start,Hit_Invalidate_I);
 		start += 0x400;
 	}
@@ -463,7 +410,7 @@
 	unsigned long start = page;
 	unsigned long end = (start + PAGE_SIZE);
 
-	while(start < end) {
+	while (start < end) {
 		cache32_unroll32(start,Index_Invalidate_I);
 		start += 0x400;
 	}
@@ -474,7 +421,7 @@
 	unsigned long start = KSEG0;
 	unsigned long end = KSEG0 + scache_size;
 
-	while(start < end) {
+	while (start < end) {
 		cache32_unroll32(start,Index_Writeback_Inv_SD);
 		start += 0x400;
 	}
@@ -485,7 +432,7 @@
 	unsigned long start = page;
 	unsigned long end = page + PAGE_SIZE;
 
-	while(start < end) {
+	while (start < end) {
 		cache32_unroll32(start,Hit_Writeback_Inv_SD);
 		start += 0x400;
 	}
@@ -496,7 +443,7 @@
 	unsigned long start = page;
 	unsigned long end = page + PAGE_SIZE;
 
-	while(start < end) {
+	while (start < end) {
 		cache32_unroll32(start,Index_Writeback_Inv_SD);
 		start += 0x400;
 	}
@@ -533,7 +480,7 @@
 	unsigned long start = KSEG0;
 	unsigned long end = KSEG0 + scache_size;
 
-	while(start < end) {
+	while (start < end) {
 		cache64_unroll32(start,Index_Writeback_Inv_SD);
 		start += 0x800;
 	}
@@ -544,7 +491,7 @@
 	unsigned long start = page;
 	unsigned long end = page + PAGE_SIZE;
 
-	while(start < end) {
+	while (start < end) {
 		cache64_unroll32(start,Hit_Writeback_Inv_SD);
 		start += 0x800;
 	}
@@ -555,7 +502,7 @@
 	unsigned long start = page;
 	unsigned long end = page + PAGE_SIZE;
 
-	while(start < end) {
+	while (start < end) {
 		cache64_unroll32(start,Index_Writeback_Inv_SD);
 		start += 0x800;
 	}
@@ -592,7 +539,7 @@
 	unsigned long start = KSEG0;
 	unsigned long end = KSEG0 + scache_size;
 
-	while(start < end) {
+	while (start < end) {
 		cache128_unroll32(start,Index_Writeback_Inv_SD);
 		start += 0x1000;
 	}
@@ -608,4 +555,4 @@
 	cache128_unroll32(page,Index_Writeback_Inv_SD);
 }
 
-#endif /* !(_MIPS_R4KCACHE_H) */
+#endif /* __ASM_R4KCACHE_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips/scatterlist.h linux-2.4.20-mipscvs-20050106/include/asm-mips/scatterlist.h
--- linux-2.4.20/include/asm-mips/scatterlist.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/scatterlist.h	2002-09-28 13:51:41.000000000 -0500
@@ -10,13 +10,6 @@
 	unsigned int length;
 };
 
-struct mmu_sglist {
-	char *addr;
-	char *__dont_touch;
-	unsigned int len;
-	dma_addr_t dvma_addr;
-};
-
 #define ISA_DMA_THRESHOLD (0x00ffffff)
 
 #endif /* __ASM_SCATTERLIST_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips/semaphore-helper.h linux-2.4.20-mipscvs-20050106/include/asm-mips/semaphore-helper.h
--- linux-2.4.20/include/asm-mips/semaphore-helper.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/semaphore-helper.h	2003-01-24 06:58:30.000000000 -0600
@@ -54,12 +54,12 @@
 	unsigned long flags;
 	int ret = 0;
 
-	save_and_cli(flags);
+	local_irq_save(flags);
 	if (sem_read(&sem->waking) > 0) {
 		sem_dec(&sem->waking);
 		ret = 1;
 	}
-	restore_flags(flags);
+	local_irq_restore(flags);
 	return ret;
 }
 #endif /* !CONFIG_CPU_HAS_LLSC */
@@ -147,7 +147,7 @@
 	int ret = 0;
 	unsigned long flags;
 
-	save_and_cli(flags);
+	local_irq_save(flags);
 	if (sem_read(&sem->waking) > 0) {
 		sem_dec(&sem->waking);
 		ret = 1;
@@ -155,7 +155,7 @@
 		sem_inc(&sem->count);
 		ret = -EINTR;
 	}
-	restore_flags(flags);
+	local_irq_restore(flags);
 	return ret;
 }
 
@@ -164,14 +164,14 @@
         int ret = 1;
 	unsigned long flags;
 
-	save_and_cli(flags);
+	local_irq_save(flags);
 	if (sem_read(&sem->waking) <= 0)
 		sem_inc(&sem->count);
 	else {
 		sem_dec(&sem->waking);
 		ret = 0;
 	}
-	restore_flags(flags);
+	local_irq_restore(flags);
 
 	return ret;
 }
diff -urNd -urNd linux-2.4.20/include/asm-mips/serial.h linux-2.4.20-mipscvs-20050106/include/asm-mips/serial.h
--- linux-2.4.20/include/asm-mips/serial.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/serial.h	2002-12-13 13:45:36.000000000 -0600
@@ -64,9 +64,9 @@
 
 #ifdef CONFIG_MIPS_JAZZ
 #define _JAZZ_SERIAL_INIT(int, base)					\
-	{ baud_base: JAZZ_BASE_BAUD, irq: int, flags: STD_COM_FLAGS,	\
-	  iomem_base: (u8 *) base, iomem_reg_shift: 0,			\
-	  io_type: SERIAL_IO_MEM }
+	{ .baud_base = JAZZ_BASE_BAUD, .irq = int, .flags = STD_COM_FLAGS,	\
+	  .iomem_base = (u8 *) base, .iomem_reg_shift = 0,			\
+	  .io_type = SERIAL_IO_MEM }
 #define JAZZ_SERIAL_PORT_DEFNS						\
 	_JAZZ_SERIAL_INIT(JAZZ_SERIAL1_IRQ, JAZZ_SERIAL1_BASE),		\
 	_JAZZ_SERIAL_INIT(JAZZ_SERIAL2_IRQ, JAZZ_SERIAL2_BASE),
@@ -111,14 +111,14 @@
 #include <asm/galileo-boards/ev96100.h>
 #include <asm/galileo-boards/ev96100int.h>
 #define EV96100_SERIAL_PORT_DEFNS                                  \
-    { baud_base: EV96100_BASE_BAUD, irq: EV96100INT_UART_0, \
-      flags: STD_COM_FLAGS,  \
-      iomem_base: EV96100_UART0_REGS_BASE, iomem_reg_shift: 2, \
-      io_type: SERIAL_IO_MEM }, \
-    { baud_base: EV96100_BASE_BAUD, irq: EV96100INT_UART_0, \
-      flags: STD_COM_FLAGS, \
-      iomem_base: EV96100_UART1_REGS_BASE, iomem_reg_shift: 2, \
-      io_type: SERIAL_IO_MEM },
+    { .baud_base = EV96100_BASE_BAUD, .irq = EV96100INT_UART_0, \
+      .flags = STD_COM_FLAGS,  \
+      .iomem_base = EV96100_UART0_REGS_BASE, .iomem_reg_shift = 2, \
+      .io_type = SERIAL_IO_MEM }, \
+    { .baud_base = EV96100_BASE_BAUD, .irq = EV96100INT_UART_0, \
+      .flags = STD_COM_FLAGS, \
+      .iomem_base = EV96100_UART1_REGS_BASE, .iomem_reg_shift = 2, \
+      .io_type = SERIAL_IO_MEM },
 #else
 #define EV96100_SERIAL_PORT_DEFNS
 #endif
@@ -128,16 +128,16 @@
 #include <asm/it8172/it8172_int.h>
 #include <asm/it8712.h>
 #define ITE_SERIAL_PORT_DEFNS                                  \
-    { baud_base: BASE_BAUD, port: (IT8172_PCI_IO_BASE + IT_UART_BASE), \
-      irq: IT8172_UART_IRQ, flags: STD_COM_FLAGS, type: 0x3 }, \
-    { baud_base: (24000000/(16*13)), port: (IT8172_PCI_IO_BASE + IT8712_UART1_PORT), \
-      irq: IT8172_SERIRQ_4, flags: STD_COM_FLAGS, type: 0x3 }, \
+    { .baud_base = BASE_BAUD, .port = (IT8172_PCI_IO_BASE + IT_UART_BASE), \
+      .irq = IT8172_UART_IRQ, .flags = STD_COM_FLAGS, .type = 0x3 }, \
+    { .baud_base = (24000000/(16*13)), .port = (IT8172_PCI_IO_BASE + IT8712_UART1_PORT), \
+      .irq = IT8172_SERIRQ_4, .flags = STD_COM_FLAGS, .type = 0x3 }, \
     /* Smart Card Reader 0 */ \
-    { baud_base: BASE_BAUD, port: (IT8172_PCI_IO_BASE + IT_SCR0_BASE), \
-      irq: IT8172_SCR0_IRQ, flags: STD_COM_FLAGS, type: 0x3 }, \
+    { .baud_base = BASE_BAUD, .port = (IT8172_PCI_IO_BASE + IT_SCR0_BASE), \
+      .irq = IT8172_SCR0_IRQ, .flags = STD_COM_FLAGS, .type = 0x3 }, \
     /* Smart Card Reader 1 */ \
-    { baud_base: BASE_BAUD, port: (IT8172_PCI_IO_BASE + IT_SCR1_BASE), \
-      irq: IT8172_SCR1_IRQ, flags: STD_COM_FLAGS, type: 0x3 },
+    { .baud_base = BASE_BAUD, .port = (IT8172_PCI_IO_BASE + IT_SCR1_BASE), \
+      .irq = IT8172_SCR1_IRQ, .flags = STD_COM_FLAGS, .type = 0x3 },
 #else
 #define ITE_SERIAL_PORT_DEFNS
 #endif
@@ -146,26 +146,26 @@
 #include <asm/it8172/it8172.h>
 #include <asm/it8172/it8172_int.h>
 #define IVR_SERIAL_PORT_DEFNS                                  \
-    { baud_base: BASE_BAUD, port: (IT8172_PCI_IO_BASE + IT_UART_BASE), \
-      irq: IT8172_UART_IRQ, flags: STD_COM_FLAGS, type: 0x3 },         \
+    { .baud_base = BASE_BAUD, .port = (IT8172_PCI_IO_BASE + IT_UART_BASE), \
+      .irq = IT8172_UART_IRQ, .flags = STD_COM_FLAGS, .type = 0x3 },         \
     /* Smart Card Reader 1 */ \
-    { baud_base: BASE_BAUD, port: (IT8172_PCI_IO_BASE + IT_SCR1_BASE), \
-      irq: IT8172_SCR1_IRQ, flags: STD_COM_FLAGS, type: 0x3 },
+    { .baud_base = BASE_BAUD, .port = (IT8172_PCI_IO_BASE + IT_SCR1_BASE), \
+      .irq = IT8172_SCR1_IRQ, .flags = STD_COM_FLAGS, .type = 0x3 },
 #else
 #define IVR_SERIAL_PORT_DEFNS
 #endif
 
-#ifdef CONFIG_AU1000_UART
+#ifdef CONFIG_AU1X00_UART
 #include <asm/au1000.h>
 #define AU1000_SERIAL_PORT_DEFNS                              \
-    { baud_base: 0, port: UART0_ADDR, irq: AU1000_UART0_INT,  \
-      flags: STD_COM_FLAGS, type: 1 },                        \
-    { baud_base: 0, port: UART1_ADDR, irq: AU1000_UART1_INT,  \
-      flags: STD_COM_FLAGS, type: 1 },     \
-    { baud_base: 0, port: UART2_ADDR, irq: AU1000_UART2_INT,  \
-      flags: STD_COM_FLAGS, type: 1 },    \
-    { baud_base: 0, port: UART3_ADDR, irq: AU1000_UART3_INT,  \
-      flags: STD_COM_FLAGS, type: 1 },
+    { .baud_base = 0, .port = UART0_ADDR, .irq = AU1000_UART0_INT,  \
+      .flags = STD_COM_FLAGS, .type = 1 },                        \
+    { .baud_base = 0, .port = UART1_ADDR, .irq = AU1000_UART1_INT,  \
+      .flags = STD_COM_FLAGS, .type = 1 },     \
+    { .baud_base = 0, .port = UART2_ADDR, .irq = AU1000_UART2_INT,  \
+      .flags = STD_COM_FLAGS, .type = 1 },    \
+    { .baud_base = 0, .port = UART3_ADDR, .irq = AU1000_UART3_INT,  \
+      .flags = STD_COM_FLAGS, .type = 1 },
 #else
 #define AU1000_SERIAL_PORT_DEFNS
 #endif
@@ -173,10 +173,10 @@
 #ifdef CONFIG_TOSHIBA_JMR3927
 #include <asm/jmr3927/jmr3927.h>
 #define TXX927_SERIAL_PORT_DEFNS                              \
-    { baud_base: JMR3927_BASE_BAUD, port: UART0_ADDR, irq: UART0_INT,  \
-      flags: UART0_FLAGS, type: 1 },                        \
-    { baud_base: JMR3927_BASE_BAUD, port: UART1_ADDR, irq: UART1_INT,  \
-      flags: UART1_FLAGS, type: 1 },
+    { .baud_base = JMR3927_BASE_BAUD, .port = UART0_ADDR, .irq = UART0_INT,  \
+      .flags = UART0_FLAGS, .type = 1 },                        \
+    { .baud_base = JMR3927_BASE_BAUD, .port = UART1_ADDR, .irq = UART1_INT,  \
+      .flags = UART1_FLAGS, .type = 1 },
 #else
 #define TXX927_SERIAL_PORT_DEFNS
 #endif
@@ -269,9 +269,9 @@
 #define OCELOT_SERIAL1_BASE	0xe0001020
 
 #define _OCELOT_SERIAL_INIT(int, base)					\
-	{ baud_base: OCELOT_BASE_BAUD, irq: int, flags: STD_COM_FLAGS,	\
-	  iomem_base: (u8 *) base, iomem_reg_shift: 2,			\
-	  io_type: SERIAL_IO_MEM }
+	{ .baud_base = OCELOT_BASE_BAUD, .irq = int, .flags = STD_COM_FLAGS,	\
+	  .iomem_base = (u8 *) base, .iomem_reg_shift = 2,			\
+	  .io_type = SERIAL_IO_MEM }
 #define MOMENCO_OCELOT_SERIAL_PORT_DEFNS				\
 	_OCELOT_SERIAL_INIT(OCELOT_SERIAL1_IRQ, OCELOT_SERIAL1_BASE)
 #else
@@ -290,9 +290,9 @@
 #endif
 
 #define _OCELOT_G_SERIAL_INIT(int, base)				\
-	{ baud_base: OCELOT_G_BASE_BAUD, irq: int, flags: STD_COM_FLAGS,\
-	  iomem_base: (u8 *) base, iomem_reg_shift: 2,			\
-	  io_type: SERIAL_IO_MEM }
+	{ .baud_base = OCELOT_G_BASE_BAUD, .irq = int, .flags = STD_COM_FLAGS,\
+	  .iomem_base = (u8 *) base, .iomem_reg_shift = 2,			\
+	  .io_type = SERIAL_IO_MEM }
 #define MOMENCO_OCELOT_G_SERIAL_PORT_DEFNS				\
 	_OCELOT_G_SERIAL_INIT(OCELOT_G_SERIAL1_IRQ, OCELOT_G_SERIAL1_BASE)
 #else
@@ -301,13 +301,13 @@
 
 #ifdef CONFIG_DDB5477
 #include <asm/ddb5xxx/ddb5477.h>
-#define DDB5477_SERIAL_PORT_DEFNS                                             \
-        { baud_base: BASE_BAUD, irq: VRC5477_IRQ_UART0, flags: STD_COM_FLAGS, \
-          iomem_base: (u8*)0xbfa04200, iomem_reg_shift: 3,                    \
-          io_type: SERIAL_IO_MEM},\
-        { baud_base: BASE_BAUD, irq: VRC5477_IRQ_UART1, flags: STD_COM_FLAGS, \
-          iomem_base: (u8*)0xbfa04240, iomem_reg_shift: 3,                    \
-          io_type: SERIAL_IO_MEM},
+#define DDB5477_SERIAL_PORT_DEFNS                                       \
+        { .baud_base = BASE_BAUD, .irq = VRC5477_IRQ_UART0, 		\
+	  .flags = STD_COM_FLAGS, .iomem_base = (u8*)0xbfa04200, 	\
+	  .iomem_reg_shift = 3, .io_type = SERIAL_IO_MEM},		\
+        { .baud_base = BASE_BAUD, .irq = VRC5477_IRQ_UART1, 		\
+	  .flags = STD_COM_FLAGS, .iomem_base = (u8*)0xbfa04240, 	\
+	  .iomem_reg_shift = 3, .io_type = SERIAL_IO_MEM},
 #else
 #define DDB5477_SERIAL_PORT_DEFNS
 #endif
diff -urNd -urNd linux-2.4.20/include/asm-mips/sgi/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/sgi/CVS/Entries
--- linux-2.4.20/include/asm-mips/sgi/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sgi/CVS/Entries	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1,6 @@
+/sgi.h/1.2.2.1/Thu Jan  9 13:33:16 2003/-ko/Tlinux_2_4_20
+/sgigio.h/1.1.2.3/Thu Jan  9 13:25:37 2003/-ko/Tlinux_2_4_20
+/sgihpc.h/1.4.2.3/Mon Aug  5 23:53:38 2002/-ko/Tlinux_2_4_20
+/sgimc.h/1.5.2.1/Tue Jan 28 05:36:27 2003/-ko/Tlinux_2_4_20
+/sgint23.h/1.5.2.3/Mon Aug  5 23:53:39 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-mips/sgi/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/sgi/CVS/Repository
--- linux-2.4.20/include/asm-mips/sgi/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sgi/CVS/Repository	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-mips/sgi
diff -urNd -urNd linux-2.4.20/include/asm-mips/sgi/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/sgi/CVS/Root
--- linux-2.4.20/include/asm-mips/sgi/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sgi/CVS/Root	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-mips/sgi/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/sgi/CVS/Tag
--- linux-2.4.20/include/asm-mips/sgi/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sgi/CVS/Tag	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-mips/sgi/sgigio.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sgi/sgigio.h
--- linux-2.4.20/include/asm-mips/sgi/sgigio.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sgi/sgigio.h	2003-01-09 07:25:37.000000000 -0600
@@ -12,6 +12,11 @@
 #define _ASM_SGI_SGIGIO_H
 
 /*
+ * GIO bus addresses
+ *
+ * The Indigo and Indy have two GIO bus connectors. Indigo2 (all models) have
+ * three physical connectors, but only two slots, GFX and EXP0.
+ * 
  * There is 10MB of GIO address space for GIO64 slot devices
  * slot#   slot type address range            size
  * -----   --------- ----------------------- -----
@@ -26,44 +31,56 @@
  * Following space is reserved and unused
  *   -     RESERVED  0x18000000 - 0x1effffff 112MB
  *
- * The GIO specification tends to use slot numbers while the MC specification
- * tends to use slot types.
+ * GIO bus IDs
+ *
+ * Each GIO bus device identifies itself to the system by answering a
+ * read with an "ID" value. IDs are either 8 or 32 bits long. IDs less
+ * than 128 are 8 bits long, with the most significant 24 bits read from
+ * the slot undefined.
+ *
+ * 32-bit IDs are divided into
+ *	bits 0:6        the product ID; ranges from 0x00 to 0x7F.
+ *	bit 7		0=GIO Product ID is 8 bits wide
+ *			1=GIO Product ID is 32 bits wide.
+ *	bits 8:15       manufacturer version for the product.
+ *	bit 16		0=GIO32 and GIO32-bis, 1=GIO64.
+ *	bit 17		0=no ROM present
+ *			1=ROM present on this board AND next three words
+ *			space define the ROM.
+ *	bits 18:31	up to manufacturer.
+ *
+ * IDs above 0x50/0xd0 are of 3rd party boards.
+ *
+ * 8-bit IDs
+ *	0x01		XPI low cost FDDI
+ *	0x02		GTR TokenRing
+ *	0x04		Synchronous ISDN
+ *	0x05		ATM board [*]
+ *	0x06		Canon Interface
+ *	0x07		16 bit SCSI Card [*]
+ *	0x08		JPEG (Double Wide)
+ *	0x09		JPEG (Single Wide)
+ *	0x0a		XPI mez. FDDI device 0
+ *	0x0b		XPI mez. FDDI device 1
+ *	0x0c		SMPTE 259M Video [*]
+ *	0x0d		Babblefish Compression [*]
+ *	0x0e		E-Plex 8-port Ethernet
+ *	0x30		Lyon Lamb IVAS
+ *	0xb8		GIO 100BaseTX Fast Ethernet (gfe)
+ *
+ * [*] Device provide 32-bit ID.
  *
- * slot0  - the "graphics" (GFX) slot but there is no requirement that
- *          a graphics dev may only use this slot
- * slot1  - this is the "expansion"-slot 0 (EXP0), do not confuse with
- *          slot 0 (GFX).
- * slot2  - this is the "expansion"-slot 1 (EXP1), do not confuse with
- *          slot 1 (EXP0).
  */
 
-#define GIO_SLOT_GFX	0
-#define GIO_SLOT_GIO1	1
-#define GIO_SLOT_GIO2	2
-#define GIO_NUM_SLOTS	3
-
-#define GIO_ANY_ID	0xff
-
-#define GIO_VALID_ID_ONLY	0x01
-#define GIO_IFACE_64		0x02
-#define GIO_HAS_ROM		0x04
-
-struct gio_dev {
-	unsigned char	device;
-	unsigned char	revision;
-	unsigned short	vendor;
-	unsigned char	flags;
-
-	unsigned char	slot_number;
-	unsigned long	base_addr;
-	unsigned int	map_size;
-
-	char		*name;
-	char		slot_name[5];
-};
-
-extern struct gio_dev* gio_find_device(unsigned char device, const struct gio_dev *from);
+#define GIO_ID(x)		(x & 0x7f)
+#define GIO_32BIT_ID		0x80
+#define GIO_REV(x)		((x >> 8) & 0xff)
+#define GIO_64BIT_IFACE		0x10000
+#define GIO_ROM_PRESENT		0x20000
+#define GIO_VENDOR_CODE(x)	((x >> 18) & 0x3fff)
 
-extern void sgigio_init(void);
+#define GIO_SLOT_GFX_BASE	0x1f000000
+#define GIO_SLOT_EXP0_BASE	0x1f400000
+#define GIO_SLOT_EXP1_BASE	0x1f600000
 
 #endif /* _ASM_SGI_SGIGIO_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips/sgi/sgi.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sgi/sgi.h
--- linux-2.4.20/include/asm-mips/sgi/sgi.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sgi/sgi.h	2003-01-09 07:33:16.000000000 -0600
@@ -1,28 +1,33 @@
 /*
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
  * sgi.h: Definitions specific to SGI machines.
  *
  * Copyright (C) 1996 David S. Miller (dm@sgi.com)
  */
-#ifndef __ASM_SGI_SGI_H
-#define __ASM_SGI_SGI_H
+#ifndef _ASM_SGI_SGI_H
+#define _ASM_SGI_SGI_H
 
 /* UP=UniProcessor MP=MultiProcessor(capable) */
 enum sgi_mach {
-	ip4,     /* R2k UP */
-	ip5,     /* R2k MP */
-	ip6,     /* R3k UP */
-	ip7,     /* R3k MP */
-	ip9,     /* R3k UP */
-	ip12,    /* R3kA UP, Indigo */
-	ip15,    /* R3kA MP */
-	ip17,    /* R4K UP */
-	ip19,    /* R4K MP */
-	ip20,    /* R4K UP, Indigo */
-	ip21,    /* TFP MP */
-	ip22,    /* R4x00 UP, Indigo2 */
-	ip25,    /* R10k MP */
-	ip26,    /* TFP UP, Indigo2 */
-	ip28,    /* R10k UP, Indigo2 */
+	ip4,	/* R2k UP */
+	ip5,	/* R2k MP */
+	ip6,	/* R3k UP */
+	ip7,	/* R3k MP */
+	ip9,	/* R3k UP */
+	ip12,	/* R3kA UP, Indigo */
+	ip15,	/* R3kA MP */
+	ip17,	/* R4K UP */
+	ip19,	/* R4K MP */
+	ip20,	/* R4K UP, Indigo */
+	ip21,	/* TFP MP */
+	ip22,	/* R4x00 UP, Indigo2 */
+	ip25,	/* R10k MP */
+	ip26,	/* TFP UP, Indigo2 */
+	ip27,	/* R10k MP, R12k MP, Origin */
+	ip28,	/* R10k UP, Indigo2 */
 	ip30,
 	ip32,
 };
@@ -39,4 +44,4 @@
 #define SGI_MSB(regaddr)   ((regaddr) | 0x3)
 #endif
 
-#endif /* __ASM_SGI_SGI_H */
+#endif /* _ASM_SGI_SGI_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips/sgi/sgimc.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sgi/sgimc.h
--- linux-2.4.20/include/asm-mips/sgi/sgimc.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sgi/sgimc.h	2003-01-27 23:36:27.000000000 -0600
@@ -125,13 +125,30 @@
 
 	/* Error address/status regs from GIO and CPU perspectives. */
 	u32 _unused21;
-	volatile u32 cerr;         /* Error address reg for CPU */
+	volatile u32 cerr;	/* Error address reg for CPU */
 	u32 _unused22;
-	volatile u32 cstat;        /* Status reg for CPU */
+	volatile u32 cstat;	/* Status reg for CPU */
+#define SGIMC_CSTAT_RD		0x00000100 /* read parity error */
+#define SGIMC_CSTAT_PAR		0x00000200 /* CPU parity error */
+#define SGIMC_CSTAT_ADDR	0x00000400 /* memory bus error bad addr */
+#define SGIMC_CSTAT_SYSAD_PAR	0x00000800 /* sysad parity error */
+#define SGIMC_CSTAT_SYSCMD_PAR	0x00001000 /* syscmd parity error */
+#define SGIMC_CSTAT_BAD_DATA	0x00002000 /* bad data identifier */
+#define SGIMC_CSTAT_PAR_MASK	0x00001f00 /* parity error mask */
+#define SGIMC_CSTAT_RD_PAR	(SGIMC_CSTAT_RD | SGIMC_CSTAT_PAR)
+
 	u32 _unused23;
-	volatile u32 gerr;         /* Error address reg for GIO */
+	volatile u32 gerr;	/* Error address reg for GIO */
 	u32 _unused24;
-	volatile u32 gstat;        /* Status reg for GIO */
+	volatile u32 gstat;	/* Status reg for GIO */
+#define SGIMC_GSTAT_RD		0x00000100 /* read parity error */
+#define SGIMC_GSTAT_WR		0x00000200 /* write parity error */
+#define SGIMC_GSTAT_TIME	0x00000400 /* GIO bus timed out */
+#define SGIMC_GSTAT_PROM	0x00000800 /* write to PROM when PROM_EN not set */
+#define SGIMC_GSTAT_ADDR	0x00001000 /* parity error on addr cycle */
+#define SGIMC_GSTAT_BC		0x00002000 /* parity error on byte count cycle */
+#define SGIMC_GSTAT_PIO_RD	0x00004000 /* read data parity on pio */
+#define SGIMC_GSTAT_PIO_WR	0x00008000 /* write data parity on pio */
 
 	/* Special hard bus locking registers. */
 	u32 _unused25;
diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/64bit.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/64bit.h
--- linux-2.4.20/include/asm-mips/sibyte/64bit.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/64bit.h	2003-02-19 15:06:52.000000000 -0600
@@ -32,47 +32,57 @@
  * without having access to 64-bit registers...  which doesn't work by default
  * in o32 format...grrr...
  */
+static inline void __out64(u64 val, unsigned long addr)
+{
+	u64 tmp;
+
+	__asm__ __volatile__ (
+		"	.set	mips3				\n"
+		"	dsll32	%L0, %L0, 0	# __out64	\n"
+		"	dsrl32	%L0, %L0, 0			\n"
+		"	dsll32	%M0, %M0, 0			\n"
+		"	or	%L0, %L0, %M0			\n"
+		"	sd	%L0, (%2)			\n"
+		"	.set	mips0				\n"
+		: "=r" (tmp)
+		: "0" (val), "r" (addr));
+}
+
 static inline void out64(u64 val, unsigned long addr)
 {
-	u32 low, high;
 	unsigned long flags;
-	high = val >> 32;
-	low = val & 0xffffffff;
-	// save_flags(flags);
-	__save_and_cli(flags);
+
+	local_irq_save(flags);
+	__out64(val, addr);
+	local_irq_restore(flags);
+}
+
+static inline u64 __in64(unsigned long addr)
+{
+	u64 res;
+
 	__asm__ __volatile__ (
-		".set push\n"
-		".set noreorder\n"
-		".set noat\n"
-		".set mips4\n"
-		"   dsll32 $2, %1, 0   \n"
-		"   dsll32 $1, %0, 0   \n"
-		"   dsrl32 $2, $2, 0   \n"
-		"   or     $1, $1, $2  \n"
-		"   sd $1, (%2)\n"
-		".set pop\n"
-		::"r" (high), "r" (low), "r" (addr)
-		:"$1", "$2");
-	__restore_flags(flags);
+		"	.set	mips3		# __in64	\n"
+		"	ld	%L0, (%1)			\n"
+		"	dsra32	%M0, %L0, 0			\n"
+		"	sll	%L0, %L0, 0			\n"
+		"	.set	mips0				\n"
+		: "=r" (res)
+		: "r" (addr));
+
+	return res;
 }
 
 static inline u64 in64(unsigned long addr)
 {
-	u32 low, high;
 	unsigned long flags;
-	__save_and_cli(flags);
-	__asm__ __volatile__ (
-		".set push\n"
-		".set noreorder\n"
-		".set noat     \n"
-		".set mips4    \n"
-		"  ld     %1, (%2)\n"
-		"  dsra32 %0, %1, 0\n"
-		"  sll    %1, %1, 0\n"
-		".set pop\n"
-		:"=r" (high), "=r" (low): "r" (addr));
-	__restore_flags(flags);
-	return (((u64)high) << 32) | low;
+	u64 res;
+
+	local_irq_save(flags);
+	res = __in64(addr);
+	local_irq_restore(flags);
+
+	return res;
 }
 
 #endif /* CONFIG_MIPS32 */
@@ -93,6 +103,9 @@
 	return *(volatile unsigned long *)addr;
 }
 
+#define __in64(a)	in64(a)
+#define __out64(v,a)	out64(v,a)
+
 #endif /* CONFIG_MIPS64 */
 
 /*
@@ -106,7 +119,7 @@
 #define __CSR_32_ADJUST 0
 #endif
 
-#define csr_out32(v,a) (*(u32 *)((unsigned long)(a) + __CSR_32_ADJUST) = (v))
-#define csr_in32(a)    (*(u32 *)((unsigned long)(a) + __CSR_32_ADJUST))
+#define csr_out32(v,a) (*(volatile u32 *)((unsigned long)(a) + __CSR_32_ADJUST) = (v))
+#define csr_in32(a)    (*(volatile u32 *)((unsigned long)(a) + __CSR_32_ADJUST))
 
 #endif /* __ASM_SIBYTE_64BIT_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/board.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/board.h
--- linux-2.4.20/include/asm-mips/sibyte/board.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/board.h	2003-01-21 23:11:38.000000000 -0600
@@ -19,10 +19,50 @@
 #ifndef _SIBYTE_BOARD_H
 #define _SIBYTE_BOARD_H
 
-#if defined(CONFIG_SIBYTE_PTSWARM) || defined(CONFIG_SIBYTE_SWARM)
+#ifdef CONFIG_SIBYTE_BOARD
+
+#if defined(CONFIG_SIBYTE_SWARM) || defined(CONFIG_SIBYTE_PTSWARM) || \
+    defined(CONFIG_SIBYTE_CRHONE) || defined(CONFIG_SIBYTE_CRHINE)
 #include <asm/sibyte/swarm.h>
 #endif
 
+#if defined(CONFIG_SIBYTE_SENTOSA) || defined(CONFIG_SIBYTE_RHONE)
+#include <asm/sibyte/sentosa.h>
+#endif
+
+#ifdef CONFIG_SIBYTE_CARMEL
+#include <asm/sibyte/carmel.h>
 #endif
 
+#ifdef __ASSEMBLY__
+
+#ifdef LEDS_PHYS
+#define setleds(t0,t1,c0,c1,c2,c3) \
+	li	t0, (LEDS_PHYS|0xa0000000); \
+	li	t1, c0; \
+	sb	t1, 0x18(t0); \
+	li	t1, c1; \
+	sb	t1, 0x10(t0); \
+	li	t1, c2; \
+	sb	t1, 0x08(t0); \
+	li	t1, c3; \
+	sb	t1, 0x00(t0)
+#else
+#define setleds(t0,t1,c0,c1,c2,c3)
+#endif /* LEDS_PHYS */
+
+#else
 
+void swarm_setup(void);
+
+#ifdef LEDS_PHYS
+extern void setleds(char *str);
+#else
+#define setleds(s) do { } while (0)
+#endif /* LEDS_PHYS */
+
+#endif /* __ASSEMBLY__ */
+
+#endif /* CONFIG_SIBYTE_BOARD */
+
+#endif /* _SIBYTE_BOARD_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/carmel.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/carmel.h
--- linux-2.4.20/include/asm-mips/sibyte/carmel.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/carmel.h	2003-01-21 23:11:38.000000000 -0600
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2002 Broadcom Corporation
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+#ifndef __ASM_SIBYTE_CARMEL_H
+#define __ASM_SIBYTE_CARMEL_H
+
+#include <asm/sibyte/sb1250.h>
+#include <asm/sibyte/sb1250_int.h>
+
+#define SIBYTE_BOARD_NAME "Carmel"
+
+#define GPIO_PHY_INTERRUPT      2 
+#define GPIO_NONMASKABLE_INT    3 
+#define GPIO_CF_INSERTED        6 
+#define GPIO_MONTEREY_RESET     7 
+#define GPIO_QUADUART_INT       8 
+#define GPIO_CF_INT             9 
+#define GPIO_FPGA_CCLK          10
+#define GPIO_FPGA_DOUT          11
+#define GPIO_FPGA_DIN           12
+#define GPIO_FPGA_PGM           13
+#define GPIO_FPGA_DONE          14
+#define GPIO_FPGA_INIT          15
+
+#define LEDS_CS                 2
+#define LEDS_PHYS               0x100C0000
+#define MLEDS_CS                3
+#define MLEDS_PHYS              0x100A0000
+#define UART_CS                 4
+#define UART_PHYS               0x100D0000
+#define ARAVALI_CS              5
+#define ARAVALI_PHYS            0x11000000
+#define IDE_CS                  6
+#define IDE_PHYS                0x100B0000
+#define ARAVALI2_CS             7
+#define ARAVALI2_PHYS           0x100E0000
+
+#if defined(CONFIG_SIBYTE_CARMEL)
+#define K_GPIO_GB_IDE   9
+#define K_INT_GB_IDE    (K_INT_GPIO_0 + K_GPIO_GB_IDE)
+#endif
+
+
+#endif /* __ASM_SIBYTE_CARMEL_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/CVS/Entries
--- linux-2.4.20/include/asm-mips/sibyte/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/CVS/Entries	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1,21 @@
+/64bit.h/1.1.2.6/Wed Feb 19 21:06:52 2003/-ko/Tlinux_2_4_20
+/board.h/1.1.2.3/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
+/carmel.h/1.1.2.1/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
+/sb1250.h/1.1.2.3/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
+/sb1250_defs.h/1.1.2.5/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
+/sb1250_dma.h/1.1.2.3/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
+/sb1250_genbus.h/1.1.2.4/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
+/sb1250_int.h/1.1.2.3/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
+/sb1250_l2c.h/1.1.2.3/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
+/sb1250_ldt.h/1.1.2.3/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
+/sb1250_mac.h/1.1.2.3/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
+/sb1250_mc.h/1.1.2.3/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
+/sb1250_regs.h/1.1.2.3/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
+/sb1250_scd.h/1.1.2.3/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
+/sb1250_smbus.h/1.1.2.3/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
+/sb1250_syncser.h/1.1.2.4/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
+/sb1250_uart.h/1.1.2.5/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
+/sentosa.h/1.1.2.1/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
+/swarm.h/1.1.2.4/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
+/trace_prof.h/1.1.2.1/Fri Feb  7 22:00:22 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/CVS/Repository
--- linux-2.4.20/include/asm-mips/sibyte/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/CVS/Repository	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-mips/sibyte
diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/CVS/Root
--- linux-2.4.20/include/asm-mips/sibyte/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/CVS/Root	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/CVS/Tag
--- linux-2.4.20/include/asm-mips/sibyte/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/CVS/Tag	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/sb1250_defs.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_defs.h
--- linux-2.4.20/include/asm-mips/sibyte/sb1250_defs.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_defs.h	2003-01-21 23:11:38.000000000 -0600
@@ -1,23 +1,23 @@
 /*  *********************************************************************
     *  SB1250 Board Support Package
-    *
-    *  Global constants and macros		File: sb1250_defs.h
-    *
+    *  
+    *  Global constants and macros		File: sb1250_defs.h	
+    *  
     *  This file contains macros and definitions used by the other
     *  include files.
     *
     *  SB1250 specification level:  User's manual 1/02/02
-    *
+    *  
     *  Author:  Mitch Lichtenberg (mpl@broadcom.com)
+    *  
+    *********************************************************************  
     *
-    *********************************************************************
-    *
-    *  Copyright 2000,2001
+    *  Copyright 2000,2001,2002,2003
     *  Broadcom Corporation. All rights reserved.
-    *
-    *  This program is free software; you can redistribute it and/or
-    *  modify it under the terms of the GNU General Public License as
-    *  published by the Free Software Foundation; either version 2 of
+    *  
+    *  This program is free software; you can redistribute it and/or 
+    *  modify it under the terms of the GNU General Public License as 
+    *  published by the Free Software Foundation; either version 2 of 
     *  the License, or (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
@@ -27,38 +27,154 @@
     *
     *  You should have received a copy of the GNU General Public License
     *  along with this program; if not, write to the Free Software
-    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
     *  MA 02111-1307 USA
     ********************************************************************* */
 
+#ifndef _SB1250_DEFS_H
+#define _SB1250_DEFS_H
+
+/*
+ * These headers require ANSI C89 string concatenation, and GCC or other
+ * 'long long' (64-bit integer) support.
+ */
+#if !defined(__STDC__) && !defined(_MSC_VER)
+#error SiByte headers require ANSI C89 support
+#endif
+
 
 /*  *********************************************************************
-    *  Naming schemes for constants in these files:
+    *  Macros for feature tests, used to enable include file features
+    *  for chip features only present in certain chip revisions.
     *
-    *  M_xxx           MASK constant (identifies bits in a register).
+    *  SIBYTE_HDR_FEATURES may be defined to be the mask value chip/revision
+    *  which is to be exposed by the headers.  If undefined, it defaults to
+    *  "all features."
+    *
+    *  Use like:
+    *
+    *    #define SIBYTE_HDR_FEATURES	SIBYTE_HDR_FMASK_112x_PASS1
+    *
+    *		Generate defines only for that revision of chip.
+    *
+    *    #if SIBYTE_HDR_FEATURE(chip,pass)
+    *
+    *		True if header features for that revision or later of
+    *	        that particular chip type are enabled in SIBYTE_HDR_FEATURES.
+    *	        (Use this to bracket #defines for features present in a given
+    *		revision and later.)
+    *
+    *		Note that there is no implied ordering between chip types.
+    *
+    *		Note also that 'chip' and 'pass' must textually exactly
+    *		match the defines below.  So, for example,
+    *		SIBYTE_HDR_FEATURE(112x, PASS1) is OK, but
+    *		SIBYTE_HDR_FEATURE(1120, pass1) is not (for two reasons).
+    *
+    *    #if SIBYTE_HDR_FEATURE_UP_TO(chip,pass)
+    *
+    *		Same as SIBYTE_HDR_FEATURE, but true for the named revision
+    *		and earlier revisions of the named chip type.
+    *
+    *    #if SIBYTE_HDR_FEATURE_EXACT(chip,pass)
+    *
+    *		Same as SIBYTE_HDR_FEATURE, but only true for the named
+    *		revision of the named chip type.  (Note that this CANNOT
+    *		be used to verify that you're compiling only for that
+    *		particular chip/revision.  It will be true any time this
+    *		chip/revision is included in SIBYTE_HDR_FEATURES.)
+    *
+    *    #if SIBYTE_HDR_FEATURE_CHIP(chip)
+    *
+    *		True if header features for (any revision of) that chip type
+    *		are enabled in SIBYTE_HDR_FEATURES.  (Use this to bracket
+    *		#defines for features specific to a given chip type.)
+    *
+    *  Mask values currently include room for additional revisions of each
+    *  chip type, but can be renumbered at will.  Note that they MUST fit
+    *  into 31 bits and may not include C type constructs, for safe use in
+    *  CPP conditionals.  Bit positions within chip types DO indicate
+    *  ordering, so be careful when adding support for new minor revs.
+    ********************************************************************* */
+
+#define	SIBYTE_HDR_FMASK_1250_ALL		0x00000ff
+#define	SIBYTE_HDR_FMASK_1250_PASS1		0x0000001
+#define	SIBYTE_HDR_FMASK_1250_PASS2		0x0000002
+
+#define	SIBYTE_HDR_FMASK_112x_ALL		0x0000f00
+#define	SIBYTE_HDR_FMASK_112x_PASS1		0x0000100
+#define SIBYTE_HDR_FMASK_112x_PASS3		0x0000200
+
+/* Bit mask for chip/revision.  (use _ALL for all revisions of a chip).  */ 
+#define	SIBYTE_HDR_FMASK(chip, pass)					\
+    (SIBYTE_HDR_FMASK_ ## chip ## _ ## pass)
+#define	SIBYTE_HDR_FMASK_ALLREVS(chip)					\
+    (SIBYTE_HDR_FMASK_ ## chip ## _ALL)
+
+#define	SIBYTE_HDR_FMASK_ALL						\
+    (SIBYTE_HDR_FMASK_1250_ALL | SIBYTE_HDR_FMASK_112x_ALL)
+
+#ifndef SIBYTE_HDR_FEATURES
+#define	SIBYTE_HDR_FEATURES			SIBYTE_HDR_FMASK_ALL
+#endif
+
+
+/* Bit mask for revisions of chip exclusively before the named revision.  */
+#define	SIBYTE_HDR_FMASK_BEFORE(chip, pass)				\
+    ((SIBYTE_HDR_FMASK(chip, pass) - 1) & SIBYTE_HDR_FMASK_ALLREVS(chip))
+
+/* Bit mask for revisions of chip exclusively after the named revision.  */
+#define	SIBYTE_HDR_FMASK_AFTER(chip, pass)				\
+    (~(SIBYTE_HDR_FMASK(chip, pass)					\
+     | (SIBYTE_HDR_FMASK(chip, pass) - 1)) & SIBYTE_HDR_FMASK_ALLREVS(chip))
+
+
+/* True if header features enabled for (any revision of) that chip type.  */
+#define SIBYTE_HDR_FEATURE_CHIP(chip)					\
+    (!! (SIBYTE_HDR_FMASK_ALLREVS(chip) & SIBYTE_HDR_FEATURES))
+
+/* True if header features enabled for that rev or later, inclusive.  */
+#define SIBYTE_HDR_FEATURE(chip, pass)					\
+    (!! ((SIBYTE_HDR_FMASK(chip, pass)					\
+	  | SIBYTE_HDR_FMASK_AFTER(chip, pass)) & SIBYTE_HDR_FEATURES))
+
+/* True if header features enabled for exactly that rev.  */
+#define SIBYTE_HDR_FEATURE_EXACT(chip, pass)				\
+    (!! (SIBYTE_HDR_FMASK(chip, pass) & SIBYTE_HDR_FEATURES))
+
+/* True if header features enabled for that rev or before, inclusive.  */
+#define SIBYTE_HDR_FEATURE_UP_TO(chip, pass)				\
+    (!! ((SIBYTE_HDR_FMASK(chip, pass)					\
+	 | SIBYTE_HDR_FMASK_BEFORE(chip, pass)) & SIBYTE_HDR_FEATURES))
+
+
+/*  *********************************************************************
+    *  Naming schemes for constants in these files:
+    *  
+    *  M_xxx           MASK constant (identifies bits in a register). 
     *                  For multi-bit fields, all bits in the field will
     *                  be set.
     *
     *  K_xxx           "Code" constant (value for data in a multi-bit
     *                  field).  The value is right justified.
     *
-    *  V_xxx           "Value" constant.  This is the same as the
+    *  V_xxx           "Value" constant.  This is the same as the 
     *                  corresponding "K_xxx" constant, except it is
     *                  shifted to the correct position in the register.
     *
     *  S_xxx           SHIFT constant.  This is the number of bits that
-    *                  a field value (code) needs to be shifted
+    *                  a field value (code) needs to be shifted 
     *                  (towards the left) to put the value in the right
     *                  position for the register.
     *
-    *  A_xxx           ADDRESS constant.  This will be a physical
+    *  A_xxx           ADDRESS constant.  This will be a physical 
     *                  address.  Use the PHYS_TO_K1 macro to generate
     *                  a K1SEG address.
     *
     *  R_xxx           RELATIVE offset constant.  This is an offset from
     *                  an A_xxx constant (usually the first register in
     *                  a group).
-    *
+    *  
     *  G_xxx(X)        GET value.  This macro obtains a multi-bit field
     *                  from a register, masks it, and shifts it to
     *                  the bottom of the register (retrieving a K_xxx
@@ -72,17 +188,14 @@
 
 
 
-#ifndef _SB1250_DEFS_H
-#define _SB1250_DEFS_H
-
 /*
- * Cast to 64-bit number.  Presumably the syntax is different in
+ * Cast to 64-bit number.  Presumably the syntax is different in 
  * assembly language.
  *
  * Note: you'll need to define uint32_t and uint64_t in your headers.
  */
 
-#if !defined(__ASSEMBLY__)
+#if !defined(__ASSEMBLER__)
 #define _SB_MAKE64(x) ((uint64_t)(x))
 #define _SB_MAKE32(x) ((uint32_t)(x))
 #else
@@ -121,9 +234,9 @@
  */
 
 
-#if !defined(__ASSEMBLY__)
+#if !defined(__ASSEMBLER__)
 #define SBWRITECSR(csr,val) *((volatile uint64_t *) PHYS_TO_K1(csr)) = (val)
 #define SBREADCSR(csr) (*((volatile uint64_t *) PHYS_TO_K1(csr)))
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif
diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/sb1250_dma.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_dma.h
--- linux-2.4.20/include/asm-mips/sibyte/sb1250_dma.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_dma.h	2003-01-21 23:11:38.000000000 -0600
@@ -1,24 +1,24 @@
 /*  *********************************************************************
     *  SB1250 Board Support Package
-    *
+    *  
     *  DMA definitions				File: sb1250_dma.h
-    *
+    *  
     *  This module contains constants and macros useful for
     *  programming the SB1250's DMA controllers, both the data mover
     *  and the Ethernet DMA.
-    *
+    *  
     *  SB1250 specification level:  User's manual 1/02/02
-    *
+    *  
     *  Author:  Mitch Lichtenberg (mpl@broadcom.com)
+    *  
+    *********************************************************************  
     *
-    *********************************************************************
-    *
-    *  Copyright 2000,2001
+    *  Copyright 2000,2001,2002,2003
     *  Broadcom Corporation. All rights reserved.
-    *
-    *  This program is free software; you can redistribute it and/or
-    *  modify it under the terms of the GNU General Public License as
-    *  published by the Free Software Foundation; either version 2 of
+    *  
+    *  This program is free software; you can redistribute it and/or 
+    *  modify it under the terms of the GNU General Public License as 
+    *  published by the Free Software Foundation; either version 2 of 
     *  the License, or (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
@@ -28,7 +28,7 @@
     *
     *  You should have received a copy of the GNU General Public License
     *  along with this program; if not, write to the Free Software
-    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
     *  MA 02111-1307 USA
     ********************************************************************* */
 
@@ -43,9 +43,9 @@
     *  DMA Registers
     ********************************************************************* */
 
-/*
+/* 
  * Ethernet and Serial DMA Configuration Register 0  (Table 7-4)
- * Registers: DMA_CONFIG0_MAC_x_RX_CH_0
+ * Registers: DMA_CONFIG0_MAC_x_RX_CH_0 
  * Registers: DMA_CONFIG0_MAC_x_TX_CH_0
  * Registers: DMA_CONFIG0_SER_x_RX
  * Registers: DMA_CONFIG0_SER_x_TX
@@ -53,8 +53,23 @@
 
 
 #define M_DMA_DROP                  _SB_MAKEMASK1(0)
+
 #define M_DMA_CHAIN_SEL             _SB_MAKEMASK1(1)
 #define M_DMA_RESERVED1             _SB_MAKEMASK1(2)
+
+#define S_DMA_DESC_TYPE		    _SB_MAKE64(1)
+#define M_DMA_DESC_TYPE		    _SB_MAKE64(2,S_DMA_DESC_TYPE)
+#define V_DMA_DESC_TYPE(x)          _SB_MAKEVALUE(x,S_DMA_DESC_TYPE)
+#define G_DMA_DESC_TYPE(x)          _SB_GETVALUE(x,S_DMA_DESC_TYPE,M_DMA_DESC_TYPE)
+
+#define K_DMA_DESC_TYPE_RING_AL		0
+#define K_DMA_DESC_TYPE_CHAIN_AL	1
+
+#if SIBYTE_HDR_FEATURE(112x, PASS3)
+#define K_DMA_DESC_TYPE_RING_UAL_WI	2
+#define K_DMA_DESC_TYPE_RING_UAL_RMW	3
+#endif
+
 #define M_DMA_EOP_INT_EN            _SB_MAKEMASK1(3)
 #define M_DMA_HWM_INT_EN            _SB_MAKEMASK1(4)
 #define M_DMA_LWM_INT_EN            _SB_MAKEMASK1(5)
@@ -82,8 +97,8 @@
 #define G_DMA_LOW_WATERMARK(x)      _SB_GETVALUE(x,S_DMA_LOW_WATERMARK,M_DMA_LOW_WATERMARK)
 
 /*
- * Ethernet and Serial DMA Configuration Register 2 (Table 7-5)
- * Registers: DMA_CONFIG1_MAC_x_RX_CH_0
+ * Ethernet and Serial DMA Configuration Register 1 (Table 7-5)
+ * Registers: DMA_CONFIG1_MAC_x_RX_CH_0 
  * Registers: DMA_CONFIG1_DMA_x_TX_CH_0
  * Registers: DMA_CONFIG1_SER_x_RX
  * Registers: DMA_CONFIG1_SER_x_TX
@@ -96,6 +111,12 @@
 #define M_DMA_NO_DSCR_UPDT          _SB_MAKEMASK1(4)
 #define M_DMA_L2CA		    _SB_MAKEMASK1(5)
 
+#if SIBYTE_HDR_FEATURE(112x, PASS3)
+#define M_DMA_RX_XTRA_STATUS	    _SB_MAKEMASK1(6)
+#define M_DMA_TX_CPU_PAUSE	    _SB_MAKEMASK1(6)
+#define M_DMA_TX_FC_PAUSE_EN	    _SB_MAKEMASK1(7)
+#endif
+
 #define M_DMA_MBZ1                  _SB_MAKEMASK(6,15)
 
 #define S_DMA_HDR_SIZE              _SB_MAKE64(21)
@@ -131,19 +152,36 @@
 /*
  * DMA Descriptor Count Registers (Table 7-8)
  */
-
+ 
 /* No bitfields */
 
 
-/*
+/* 
  * Current Descriptor Address Register (Table 7-11)
  */
 
 #define S_DMA_CURDSCR_ADDR          _SB_MAKE64(0)
 #define M_DMA_CURDSCR_ADDR          _SB_MAKEMASK(40,S_DMA_CURDSCR_ADDR)
-#define S_DMA_CURDSCR_COUNT         _SB_MAKE64(48)
+#define S_DMA_CURDSCR_COUNT         _SB_MAKE64(40)
 #define M_DMA_CURDSCR_COUNT         _SB_MAKEMASK(16,S_DMA_CURDSCR_COUNT)
 
+#if SIBYTE_HDR_FEATURE(112x, PASS3)
+#define M_DMA_TX_CH_PAUSE_ON	    _SB_MAKEMASK1(56)
+#endif
+
+/*
+ * Receive Packet Drop Registers
+ */
+#if SIBYTE_HDR_FEATURE(112x, PASS3)
+#define S_DMA_OODLOST_RX           _SB_MAKE64(0)
+#define M_DMA_OODLOST_RX           _SB_MAKEMASK(16,S_DMA_OODLOST_RX)
+#define G_DMA_OODLOST_RX(x)        _SB_GETVALUE(x,S_DMA_OODLOST_RX,M_DMA_OODLOST_RX)
+
+#define S_DMA_EOP_COUNT_RX         _SB_MAKE64(16)
+#define M_DMA_EOP_COUNT_RX         _SB_MAKEMASK(8,S_DMA_EOP_COUNT_RX)
+#define G_DMA_EOP_COUNT_RX(x)      _SB_GETVALUE(x,S_DMA_EOP_COUNT_RX,M_DMA_EOP_COUNT_RX)
+#endif
+
 /*  *********************************************************************
     *  DMA Descriptors
     ********************************************************************* */
@@ -154,6 +192,8 @@
 
 #define S_DMA_DSCRA_OFFSET          _SB_MAKE64(0)
 #define M_DMA_DSCRA_OFFSET          _SB_MAKEMASK(5,S_DMA_DSCRA_OFFSET)
+#define V_DMA_DSCRA_OFFSET(x)       _SB_MAKEVALUE(x,S_DMA_DSCRA_OFFSET)
+#define G_DMA_DSCRA_OFFSET(x)       _SB_GETVALUE(x,S_DMA_DSCRA_OFFSET,M_DMA_DSCRA_OFFSET)
 
 /* Note: Don't shift the address over, just mask it with the mask below */
 #define S_DMA_DSCRA_A_ADDR          _SB_MAKE64(5)
@@ -161,11 +201,22 @@
 
 #define M_DMA_DSCRA_A_ADDR_OFFSET   (M_DMA_DSCRA_OFFSET | M_DMA_DSCRA_A_ADDR)
 
+#if SIBYTE_HDR_FEATURE(112x, PASS3)
+#define S_DMA_DSCRA_A_ADDR_UA        _SB_MAKE64(0)
+#define M_DMA_DSCRA_A_ADDR_UA        _SB_MAKEMASK(40,S_DMA_DSCRA_A_ADDR_UA)
+#endif
+
 #define S_DMA_DSCRA_A_SIZE          _SB_MAKE64(40)
 #define M_DMA_DSCRA_A_SIZE          _SB_MAKEMASK(9,S_DMA_DSCRA_A_SIZE)
 #define V_DMA_DSCRA_A_SIZE(x)       _SB_MAKEVALUE(x,S_DMA_DSCRA_A_SIZE)
 #define G_DMA_DSCRA_A_SIZE(x)       _SB_GETVALUE(x,S_DMA_DSCRA_A_SIZE,M_DMA_DSCRA_A_SIZE)
 
+#if SIBYTE_HDR_FEATURE(112x, PASS3)
+#define S_DMA_DSCRA_DSCR_CNT	    _SB_MAKE64(40)
+#define M_DMA_DSCRA_DSCR_CNT	    _SB_MAKEMASK(8,S_DMA_DSCRA_DSCR_CNT)
+#define G_DMA_DSCRA_DSCR_CNT(x)	    _SB_GETVALUE(x,S_DMA_DSCRA_DSCR_CNT,M_DMA_DSCRA_DSCR_CNT)
+#endif
+
 #define M_DMA_DSCRA_INTERRUPT       _SB_MAKEMASK1(49)
 #define M_DMA_DSCRA_OFFSETB	    _SB_MAKEMASK1(50)
 
@@ -184,6 +235,13 @@
 #define V_DMA_DSCRB_OPTIONS(x)      _SB_MAKEVALUE(x,S_DMA_DSCRB_OPTIONS)
 #define G_DMA_DSCRB_OPTIONS(x)      _SB_GETVALUE(x,S_DMA_DSCRB_OPTIONS,M_DMA_DSCRB_OPTIONS)
 
+#if SIBYTE_HDR_FEATURE(112x, PASS3)
+#define S_DMA_DSCRB_A_SIZE        _SB_MAKE64(8)
+#define M_DMA_DSCRB_A_SIZE        _SB_MAKEMASK(14,S_DMA_DSCRB_A_SIZE)
+#define V_DMA_DSCRB_A_SIZE(x)     _SB_MAKEVALUE(x,S_DMA_DSCRB_A_SIZE)
+#define G_DMA_DSCRB_A_SIZE(x)     _SB_GETVALUE(x,S_DMA_DSCRB_A_SIZE,M_DMA_DSCRB_A_SIZE)
+#endif
+
 #define R_DMA_DSCRB_ADDR            _SB_MAKE64(0x10)
 
 /* Note: Don't shift the address over, just mask it with the mask below */
@@ -197,20 +255,42 @@
 
 #define M_DMA_DSCRB_B_VALID         _SB_MAKEMASK1(49)
 
+#if SIBYTE_HDR_FEATURE(112x, PASS3)
+#define S_DMA_DSCRB_PKT_SIZE_MSB    _SB_MAKE64(48)
+#define M_DMA_DSCRB_PKT_SIZE_MSB    _SB_MAKEMASK(2,S_DMA_DSCRB_PKT_SIZE_MSB)
+#define V_DMA_DSCRB_PKT_SIZE_MSB(x) _SB_MAKEVALUE(x,S_DMA_DSCRB_PKT_SIZE_MSB)
+#define G_DMA_DSCRB_PKT_SIZE_MSB(x) _SB_GETVALUE(x,S_DMA_DSCRB_PKT_SIZE_MSB,M_DMA_DSCRB_PKT_SIZE_MSB)
+#endif
+
 #define S_DMA_DSCRB_PKT_SIZE        _SB_MAKE64(50)
 #define M_DMA_DSCRB_PKT_SIZE        _SB_MAKEMASK(14,S_DMA_DSCRB_PKT_SIZE)
 #define V_DMA_DSCRB_PKT_SIZE(x)     _SB_MAKEVALUE(x,S_DMA_DSCRB_PKT_SIZE)
 #define G_DMA_DSCRB_PKT_SIZE(x)     _SB_GETVALUE(x,S_DMA_DSCRB_PKT_SIZE,M_DMA_DSCRB_PKT_SIZE)
 
 /*
+ * from pass2 some bits in dscr_b are also used for rx status
+ */
+#define S_DMA_DSCRB_STATUS          _SB_MAKE64(0)
+#define M_DMA_DSCRB_STATUS          _SB_MAKEMASK(1,S_DMA_DSCRB_STATUS)
+#define V_DMA_DSCRB_STATUS(x)       _SB_MAKEVALUE(x,S_DMA_DSCRB_STATUS)
+#define G_DMA_DSCRB_STATUS(x)       _SB_GETVALUE(x,S_DMA_DSCRB_STATUS,M_DMA_DSCRB_STATUS)
+
+/* 
  * Ethernet Descriptor Status Bits (Table 7-15)
  */
 
 #define M_DMA_ETHRX_BADIP4CS        _SB_MAKEMASK1(51)
 #define M_DMA_ETHRX_DSCRERR	    _SB_MAKEMASK1(52)
 
-/* Note: BADTCPCS is actually in DSCR_A */
-#define M_DMA_ETHRX_BADTCPCS	_SB_MAKEMASK1(0)	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1) 
+/* Note: BADTCPCS is actually in DSCR_B options field */
+#define M_DMA_ETHRX_BADTCPCS	_SB_MAKEMASK1(0)
+#endif /* 1250 PASS2 || 112x PASS1 */
+
+#if SIBYTE_HDR_FEATURE(112x, PASS3)
+#define M_DMA_ETH_VLAN_FLAG	_SB_MAKEMASK1(1)
+#define M_DMA_ETH_CRC_FLAG	_SB_MAKEMASK1(2)
+#endif
 
 #define S_DMA_ETHRX_RXCH            53
 #define M_DMA_ETHRX_RXCH            _SB_MAKEMASK(2,S_DMA_ETHRX_RXCH)
@@ -231,8 +311,8 @@
 #define K_DMA_ETHRX_PKTTYPE_USER2   6
 #define K_DMA_ETHRX_PKTTYPE_USER3   7
 
-#define M_DMA_ETHRX_MATCH_EXACT     _SB_MAKEMASK1(58)
-#define M_DMA_ETHRX_MATCH_HASH      _SB_MAKEMASK1(59)
+#define M_DMA_ETHRX_MATCH_HASH      _SB_MAKEMASK1(58)
+#define M_DMA_ETHRX_MATCH_EXACT     _SB_MAKEMASK1(59)
 #define M_DMA_ETHRX_BCAST           _SB_MAKEMASK1(60)
 #define M_DMA_ETHRX_MCAST           _SB_MAKEMASK1(61)
 #define M_DMA_ETHRX_BAD	            _SB_MAKEMASK1(62)
@@ -244,7 +324,7 @@
 
 #define M_DMA_ETHTX_SOP	    	    _SB_MAKEMASK1(63)
 
-/*
+/* 
  * Ethernet Transmit Options (Table 7-17)
  */
 
@@ -297,7 +377,7 @@
     *  Data Mover Registers
     ********************************************************************* */
 
-/*
+/* 
  * Data Mover Descriptor Base Address Register (Table 7-22)
  * Register: DM_DSCR_BASE_0
  * Register: DM_DSCR_BASE_1
@@ -334,7 +414,7 @@
 #define M_DM_DSCR_BASE_ABORT        _SB_MAKEMASK1(62)
 #define M_DM_DSCR_BASE_ENABL        _SB_MAKEMASK1(63)
 
-/*
+/* 
  * Data Mover Descriptor Count Register (Table 7-25)
  */
 
@@ -357,6 +437,83 @@
 #define G_DM_CUR_DSCR_DSCR_COUNT(r) _SB_GETVALUE(r,S_DM_CUR_DSCR_DSCR_COUNT,\
                                      M_DM_CUR_DSCR_DSCR_COUNT)
 
+
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+/*
+ * Data Mover Channel Partial Result Registers
+ * Register: DM_PARTIAL_0
+ * Register: DM_PARTIAL_1
+ * Register: DM_PARTIAL_2
+ * Register: DM_PARTIAL_3
+ */
+#define S_DM_PARTIAL_CRC_PARTIAL      _SB_MAKE64(0)
+#define M_DM_PARTIAL_CRC_PARTIAL      _SB_MAKEMASK(32,S_DM_PARTIAL_CRC_PARTIAL)
+#define V_DM_PARTIAL_CRC_PARTIAL(r)   _SB_MAKEVALUE(r,S_DM_PARTIAL_CRC_PARTIAL)
+#define G_DM_PARTIAL_CRC_PARTIAL(r)   _SB_GETVALUE(r,S_DM_PARTIAL_CRC_PARTIAL,\
+                                       M_DM_PARTIAL_CRC_PARTIAL)
+
+#define S_DM_PARTIAL_TCPCS_PARTIAL    _SB_MAKE64(32)
+#define M_DM_PARTIAL_TCPCS_PARTIAL    _SB_MAKEMASK(16,S_DM_PARTIAL_TCPCS_PARTIAL)
+#define V_DM_PARTIAL_TCPCS_PARTIAL(r) _SB_MAKEVALUE(r,S_DM_PARTIAL_TCPCS_PARTIAL)
+#define G_DM_PARTIAL_TCPCS_PARTIAL(r) _SB_GETVALUE(r,S_DM_PARTIAL_TCPCS_PARTIAL,\
+                                       M_DM_PARTIAL_TCPCS_PARTIAL)
+
+#define M_DM_PARTIAL_ODD_BYTE         _SB_MAKEMASK1(48)
+#endif /* 112x PASS1 */
+
+
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+/*
+ * Data Mover CRC Definition Registers
+ * Register: CRC_DEF_0
+ * Register: CRC_DEF_1
+ */
+#define S_CRC_DEF_CRC_INIT            _SB_MAKE64(0)
+#define M_CRC_DEF_CRC_INIT            _SB_MAKEMASK(32,S_CRC_DEF_CRC_INIT)
+#define V_CRC_DEF_CRC_INIT(r)         _SB_MAKEVALUE(r,S_CRC_DEF_CRC_INIT)
+#define G_CRC_DEF_CRC_INIT(r)         _SB_GETVALUE(r,S_CRC_DEF_CRC_INIT,\
+                                       M_CRC_DEF_CRC_INIT)
+
+#define S_CRC_DEF_CRC_POLY            _SB_MAKE64(32)
+#define M_CRC_DEF_CRC_POLY            _SB_MAKEMASK(32,S_CRC_DEF_CRC_POLY)
+#define V_CRC_DEF_CRC_POLY(r)         _SB_MAKEVALUE(r,S_CRC_DEF_CRC_POLY)
+#define G_CRC_DEF_CRC_POLY(r)         _SB_GETVALUE(r,S_CRC_DEF_CRC_POLY,\
+                                       M_CRC_DEF_CRC_POLY)
+#endif /* 112x PASS1 */
+
+
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+/*
+ * Data Mover CRC/Checksum Definition Registers
+ * Register: CTCP_DEF_0
+ * Register: CTCP_DEF_1
+ */
+#define S_CTCP_DEF_CRC_TXOR           _SB_MAKE64(0)
+#define M_CTCP_DEF_CRC_TXOR           _SB_MAKEMASK(32,S_CTCP_DEF_CRC_TXOR)
+#define V_CTCP_DEF_CRC_TXOR(r)        _SB_MAKEVALUE(r,S_CTCP_DEF_CRC_TXOR)
+#define G_CTCP_DEF_CRC_TXOR(r)        _SB_GETVALUE(r,S_CTCP_DEF_CRC_TXOR,\
+                                       M_CTCP_DEF_CRC_TXOR)
+
+#define S_CTCP_DEF_TCPCS_INIT         _SB_MAKE64(32)
+#define M_CTCP_DEF_TCPCS_INIT         _SB_MAKEMASK(16,S_CTCP_DEF_TCPCS_INIT)
+#define V_CTCP_DEF_TCPCS_INIT(r)      _SB_MAKEVALUE(r,S_CTCP_DEF_TCPCS_INIT)
+#define G_CTCP_DEF_TCPCS_INIT(r)      _SB_GETVALUE(r,S_CTCP_DEF_TCPCS_INIT,\
+                                       M_CTCP_DEF_TCPCS_INIT)
+
+#define S_CTCP_DEF_CRC_WIDTH          _SB_MAKE64(48)
+#define M_CTCP_DEF_CRC_WIDTH          _SB_MAKEMASK(2,S_CTCP_DEF_CRC_WIDTH)
+#define V_CTCP_DEF_CRC_WIDTH(r)       _SB_MAKEVALUE(r,S_CTCP_DEF_CRC_WIDTH)
+#define G_CTCP_DEF_CRC_WIDTH(r)       _SB_GETVALUE(r,S_CTCP_DEF_CRC_WIDTH,\
+                                       M_CTCP_DEF_CRC_WIDTH)
+
+#define K_CTCP_DEF_CRC_WIDTH_4        0
+#define K_CTCP_DEF_CRC_WIDTH_2        1
+#define K_CTCP_DEF_CRC_WIDTH_1        2
+
+#define M_CTCP_DEF_CRC_BIT_ORDER      _SB_MAKEMASK1(50)
+#endif /* 112x PASS1 */
+
+
 /*
  * Data Mover Descriptor Doubleword "A"  (Table 7-26)
  */
@@ -367,10 +524,9 @@
 #define M_DM_DSCRA_UN_DEST          _SB_MAKEMASK1(40)
 #define M_DM_DSCRA_UN_SRC           _SB_MAKEMASK1(41)
 #define M_DM_DSCRA_INTERRUPT        _SB_MAKEMASK1(42)
-/*#define M_DM_DSCRA_THROTTLE         _SB_MAKEMASK1(43) */ /* REMOVED PASS2 */
-
-#define M_DM_DSCRA_RD_BKOFF	    _SB_MAKEMASK1(52)		/* PASS2 */
-#define M_DM_DSCRA_WR_BKOFF	    _SB_MAKEMASK1(53)		/* PASS2 */
+#if SIBYTE_HDR_FEATURE_UP_TO(1250, PASS1)
+#define M_DM_DSCRA_THROTTLE         _SB_MAKEMASK1(43)
+#endif /* up to 1250 PASS1 */
 
 #define S_DM_DSCRA_DIR_DEST         _SB_MAKE64(44)
 #define M_DM_DSCRA_DIR_DEST         _SB_MAKEMASK(2,S_DM_DSCRA_DIR_DEST)
@@ -404,7 +560,23 @@
 #define M_DM_DSCRA_L2C_DEST         _SB_MAKEMASK1(50)
 #define M_DM_DSCRA_L2C_SRC          _SB_MAKEMASK1(51)
 
-#define M_DM_DSCRA_RESERVED2        _SB_MAKEMASK(10,54)
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_DM_DSCRA_RD_BKOFF	    _SB_MAKEMASK1(52)
+#define M_DM_DSCRA_WR_BKOFF	    _SB_MAKEMASK1(53)
+#endif /* 1250 PASS2 || 112x PASS1 */
+
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_DM_DSCRA_TCPCS_EN         _SB_MAKEMASK1(54)
+#define M_DM_DSCRA_TCPCS_RES        _SB_MAKEMASK1(55)
+#define M_DM_DSCRA_TCPCS_AP         _SB_MAKEMASK1(56)
+#define M_DM_DSCRA_CRC_EN           _SB_MAKEMASK1(57)
+#define M_DM_DSCRA_CRC_RES          _SB_MAKEMASK1(58)
+#define M_DM_DSCRA_CRC_AP           _SB_MAKEMASK1(59)
+#define M_DM_DSCRA_CRC_DFN          _SB_MAKEMASK1(60)
+#define M_DM_DSCRA_CRC_XBIT         _SB_MAKEMASK1(61)
+#endif /* 112x PASS1 */
+
+#define M_DM_DSCRA_RESERVED2        _SB_MAKEMASK(3,61)
 
 /*
  * Data Mover Descriptor Doubleword "B"  (Table 7-25)
diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/sb1250_genbus.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_genbus.h
--- linux-2.4.20/include/asm-mips/sibyte/sb1250_genbus.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_genbus.h	2003-01-21 23:11:38.000000000 -0600
@@ -1,23 +1,23 @@
 /*  *********************************************************************
     *  SB1250 Board Support Package
-    *
+    *  
     *  Generic Bus Constants                     File: sb1250_genbus.h
-    *
-    *  This module contains constants and macros useful for
+    *  
+    *  This module contains constants and macros useful for 
     *  manipulating the SB1250's Generic Bus interface
-    *
+    *  
     *  SB1250 specification level:  User's manual 1/02/02
-    *
+    *  
     *  Author:  Mitch Lichtenberg (mpl@broadcom.com)
+    *  
+    *********************************************************************  
     *
-    *********************************************************************
-    *
-    *  Copyright 2000,2001
+    *  Copyright 2000,2001,2002,2003
     *  Broadcom Corporation. All rights reserved.
-    *
-    *  This program is free software; you can redistribute it and/or
-    *  modify it under the terms of the GNU General Public License as
-    *  published by the Free Software Foundation; either version 2 of
+    *  
+    *  This program is free software; you can redistribute it and/or 
+    *  modify it under the terms of the GNU General Public License as 
+    *  published by the Free Software Foundation; either version 2 of 
     *  the License, or (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
@@ -27,7 +27,7 @@
     *
     *  You should have received a copy of the GNU General Public License
     *  along with this program; if not, write to the Free Software
-    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
     *  MA 02111-1307 USA
     ********************************************************************* */
 
@@ -41,22 +41,33 @@
  * Generic Bus Region Configuration Registers (Table 11-4)
  */
 
-#define M_IO_RDY_ACTIVE		_SB_MAKEMASK1(0)
-#define M_IO_ENA_RDY		_SB_MAKEMASK1(1)
+#define S_IO_RDY_ACTIVE         0
+#define M_IO_RDY_ACTIVE		_SB_MAKEMASK1(S_IO_RDY_ACTIVE)
+
+#define S_IO_ENA_RDY            1
+#define M_IO_ENA_RDY		_SB_MAKEMASK1(S_IO_ENA_RDY)
 
 #define S_IO_WIDTH_SEL		2
 #define M_IO_WIDTH_SEL		_SB_MAKEMASK(2,S_IO_WIDTH_SEL)
 #define K_IO_WIDTH_SEL_1	0
 #define K_IO_WIDTH_SEL_2	1
-#define K_IO_WIDTH_SEL_1L       2		/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define K_IO_WIDTH_SEL_1L       2
+#endif /* 1250 PASS2 || 112x PASS1 */
 #define K_IO_WIDTH_SEL_4	3
 #define V_IO_WIDTH_SEL(x)	_SB_MAKEVALUE(x,S_IO_WIDTH_SEL)
 #define G_IO_WIDTH_SEL(x)	_SB_GETVALUE(x,S_IO_WIDTH_SEL,M_IO_WIDTH_SEL)
 
-#define M_IO_PARITY_ENA		_SB_MAKEMASK1(4)
-#define M_IO_BURST_EN		_SB_MAKEMASK1(5)	/* PASS2 */
-#define M_IO_PARITY_ODD		_SB_MAKEMASK1(6)
-#define M_IO_NONMUX		_SB_MAKEMASK1(7)
+#define S_IO_PARITY_ENA		4
+#define M_IO_PARITY_ENA		_SB_MAKEMASK1(S_IO_PARITY_ENA)
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define S_IO_BURST_EN		5
+#define M_IO_BURST_EN		_SB_MAKEMASK1(S_IO_BURST_EN)
+#endif /* 1250 PASS2 || 112x PASS1 */
+#define S_IO_PARITY_ODD		6
+#define M_IO_PARITY_ODD		_SB_MAKEMASK1(S_IO_PARITY_ODD)
+#define S_IO_NONMUX		7
+#define M_IO_NONMUX		_SB_MAKEMASK1(S_IO_NONMUX)
 
 #define S_IO_TIMEOUT		8
 #define M_IO_TIMEOUT		_SB_MAKEMASK(8,S_IO_TIMEOUT)
@@ -94,17 +105,21 @@
 #define V_IO_ALE_WIDTH(x)	_SB_MAKEVALUE(x,S_IO_ALE_WIDTH)
 #define G_IO_ALE_WIDTH(x)	_SB_GETVALUE(x,S_IO_ALE_WIDTH,M_IO_ALE_WIDTH)
 
-#define M_IO_EARLY_CS	        _SB_MAKEMASK1(3)	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_IO_EARLY_CS	        _SB_MAKEMASK1(3)
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 #define S_IO_ALE_TO_CS		4
 #define M_IO_ALE_TO_CS		_SB_MAKEMASK(2,S_IO_ALE_TO_CS)
 #define V_IO_ALE_TO_CS(x)	_SB_MAKEVALUE(x,S_IO_ALE_TO_CS)
 #define G_IO_ALE_TO_CS(x)	_SB_GETVALUE(x,S_IO_ALE_TO_CS,M_IO_ALE_TO_CS)
 
-#define S_IO_BURST_WIDTH           _SB_MAKE64(6)			/* PASS2 */
-#define M_IO_BURST_WIDTH           _SB_MAKEMASK(2,S_IO_BURST_WIDTH)	/* PASS2 */
-#define V_IO_BURST_WIDTH(x)        _SB_MAKEVALUE(x,S_IO_BURST_WIDTH)	/* PASS2 */
-#define G_IO_BURST_WIDTH(x)        _SB_GETVALUE(x,S_IO_BURST_WIDTH,M_IO_BURST_WIDTH)	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define S_IO_BURST_WIDTH           _SB_MAKE64(6)
+#define M_IO_BURST_WIDTH           _SB_MAKEMASK(2,S_IO_BURST_WIDTH)
+#define V_IO_BURST_WIDTH(x)        _SB_MAKEVALUE(x,S_IO_BURST_WIDTH)
+#define G_IO_BURST_WIDTH(x)        _SB_GETVALUE(x,S_IO_BURST_WIDTH,M_IO_BURST_WIDTH)
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 #define S_IO_CS_WIDTH		8
 #define M_IO_CS_WIDTH		_SB_MAKEMASK(5,S_IO_CS_WIDTH)
@@ -126,7 +141,9 @@
 #define V_IO_ALE_TO_WRITE(x)	_SB_MAKEVALUE(x,S_IO_ALE_TO_WRITE)
 #define G_IO_ALE_TO_WRITE(x)	_SB_GETVALUE(x,S_IO_ALE_TO_WRITE,M_IO_ALE_TO_WRITE)
 
-#define M_IO_RDY_SYNC	        _SB_MAKEMASK1(3)	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_IO_RDY_SYNC	        _SB_MAKEMASK1(3)
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 #define S_IO_WRITE_WIDTH	4
 #define M_IO_WRITE_WIDTH	_SB_MAKEMASK(4,S_IO_WRITE_WIDTH)
@@ -166,7 +183,9 @@
 #define M_IO_TIMEOUT_INT	_SB_MAKEMASK1(10)
 #define M_IO_ILL_ADDR_INT	_SB_MAKEMASK1(11)
 #define M_IO_MULT_CS_INT	_SB_MAKEMASK1(12)
-#define M_IO_COH_ERR	        _SB_MAKEMASK1(14)	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_IO_COH_ERR	        _SB_MAKEMASK1(14)
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 /*
  * PCMCIA configuration register (Table 12-6)
diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/sb1250.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250.h
--- linux-2.4.20/include/asm-mips/sibyte/sb1250.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250.h	2003-01-21 23:11:38.000000000 -0600
@@ -19,19 +19,32 @@
 #ifndef _ASM_SIBYTE_SB1250_H
 #define _ASM_SIBYTE_SB1250_H
 
+#define SB1250_NR_IRQS 64
+
 #ifndef __ASSEMBLY__
 
 #include <asm/addrspace.h>
 
 /* For revision/pass information */
 #include <asm/sibyte/sb1250_scd.h>
-extern unsigned int sb1250_pass;
+extern unsigned int sb1_pass;
+extern unsigned int soc_pass;
+extern unsigned int soc_type;
 
 extern void sb1250_time_init(void);
 extern unsigned long sb1250_gettimeoffset(void);
 extern void sb1250_mask_irq(int cpu, int irq);
 extern void sb1250_unmask_irq(int cpu, int irq);
 extern void sb1250_smp_finish(void);
+
+#define AT_spin \
+	__asm__ __volatile__ (		\
+		".set noat\n"		\
+		"li $at, 0\n"		\
+		"1: beqz $at, 1b\n"	\
+		".set at\n"		\
+		)
+
 #endif
 
 #define IO_SPACE_BASE KSEG1
diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/sb1250_int.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_int.h
--- linux-2.4.20/include/asm-mips/sibyte/sb1250_int.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_int.h	2003-01-21 23:11:38.000000000 -0600
@@ -1,23 +1,23 @@
 /*  *********************************************************************
     *  SB1250 Board Support Package
-    *
+    *  
     *  Interrupt Mapper definitions		File: sb1250_int.h
-    *
+    *  
     *  This module contains constants for manipulating the SB1250's
     *  interrupt mapper and definitions for the interrupt sources.
-    *
+    *  
     *  SB1250 specification level:  User's manual 1/02/02
-    *
+    *  
     *  Author:  Mitch Lichtenberg (mpl@broadcom.com)
+    *  
+    *********************************************************************  
     *
-    *********************************************************************
-    *
-    *  Copyright 2000,2001
+    *  Copyright 2000,2001,2002,2003
     *  Broadcom Corporation. All rights reserved.
-    *
-    *  This program is free software; you can redistribute it and/or
-    *  modify it under the terms of the GNU General Public License as
-    *  published by the Free Software Foundation; either version 2 of
+    *  
+    *  This program is free software; you can redistribute it and/or 
+    *  modify it under the terms of the GNU General Public License as 
+    *  published by the Free Software Foundation; either version 2 of 
     *  the License, or (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
@@ -27,7 +27,7 @@
     *
     *  You should have received a copy of the GNU General Public License
     *  along with this program; if not, write to the Free Software
-    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
     *  MA 02111-1307 USA
     ********************************************************************* */
 
@@ -43,7 +43,7 @@
 
 /*
  * Interrupt sources (Table 4-8, UM 0.2)
- *
+ * 
  * First, the interrupt numbers.
  */
 
@@ -77,8 +77,10 @@
 #define K_INT_MBOX_1                27
 #define K_INT_MBOX_2                28
 #define K_INT_MBOX_3                29
-#define K_INT_CYCLE_CP0_INT	    30		/* PASS2 */
-#define K_INT_CYCLE_CP1_INT	    31		/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define K_INT_CYCLE_CP0_INT	    30
+#define K_INT_CYCLE_CP1_INT	    31
+#endif /* 1250 PASS2 || 112x PASS1 */
 #define K_INT_GPIO_0                32
 #define K_INT_GPIO_1                33
 #define K_INT_GPIO_2                34
@@ -108,9 +110,11 @@
 #define K_INT_PCI_INTC              58
 #define K_INT_PCI_INTD              59
 #define K_INT_SPARE_2               60
-#define K_INT_MAC_0_CH1		    61		/* PASS2 */
-#define K_INT_MAC_1_CH1		    62		/* PASS2 */
-#define K_INT_MAC_2_CH1		    63		/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define K_INT_MAC_0_CH1		    61
+#define K_INT_MAC_1_CH1		    62
+#define K_INT_MAC_2_CH1		    63
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 /*
  * Mask values for each interrupt
@@ -146,8 +150,10 @@
 #define M_INT_MBOX_1                _SB_MAKEMASK1(K_INT_MBOX_1)
 #define M_INT_MBOX_2                _SB_MAKEMASK1(K_INT_MBOX_2)
 #define M_INT_MBOX_3                _SB_MAKEMASK1(K_INT_MBOX_3)
-#define M_INT_CYCLE_CP0_INT	    _SB_MAKEMASK1(K_INT_CYCLE_CP0_INT)	/* PASS2 */
-#define M_INT_CYCLE_CP1_INT	    _SB_MAKEMASK1(K_INT_CYCLE_CP1_INT)	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_INT_CYCLE_CP0_INT	    _SB_MAKEMASK1(K_INT_CYCLE_CP0_INT)
+#define M_INT_CYCLE_CP1_INT	    _SB_MAKEMASK1(K_INT_CYCLE_CP1_INT)
+#endif /* 1250 PASS2 || 112x PASS1 */
 #define M_INT_GPIO_0                _SB_MAKEMASK1(K_INT_GPIO_0)
 #define M_INT_GPIO_1                _SB_MAKEMASK1(K_INT_GPIO_1)
 #define M_INT_GPIO_2                _SB_MAKEMASK1(K_INT_GPIO_2)
@@ -177,9 +183,11 @@
 #define M_INT_PCI_INTC              _SB_MAKEMASK1(K_INT_PCI_INTC)
 #define M_INT_PCI_INTD              _SB_MAKEMASK1(K_INT_PCI_INTD)
 #define M_INT_SPARE_2               _SB_MAKEMASK1(K_INT_SPARE_2)
-#define M_INT_MAC_0_CH1		    _SB_MAKEMASK1(K_INT_MAC_0_CH1)	/* PASS2 */
-#define M_INT_MAC_1_CH1		    _SB_MAKEMASK1(K_INT_MAC_1_CH1)	/* PASS2 */
-#define M_INT_MAC_2_CH1		    _SB_MAKEMASK1(K_INT_MAC_2_CH1)	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_INT_MAC_0_CH1		    _SB_MAKEMASK1(K_INT_MAC_0_CH1)
+#define M_INT_MAC_1_CH1		    _SB_MAKEMASK1(K_INT_MAC_1_CH1)
+#define M_INT_MAC_2_CH1		    _SB_MAKEMASK1(K_INT_MAC_2_CH1)
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 /*
  * Interrupt mappings
diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/sb1250_l2c.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_l2c.h
--- linux-2.4.20/include/asm-mips/sibyte/sb1250_l2c.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_l2c.h	2003-01-21 23:11:38.000000000 -0600
@@ -1,23 +1,23 @@
 /*  *********************************************************************
     *  SB1250 Board Support Package
-    *
+    *  
     *  L2 Cache constants and macros		File: sb1250_l2c.h
-    *
+    *  
     *  This module contains constants useful for manipulating the
     *  level 2 cache.
-    *
+    *  
     *  SB1250 specification level:  User's manual 1/02/02
-    *
+    *  
     *  Author:  Mitch Lichtenberg (mpl@broadcom.com)
+    *  
+    *********************************************************************  
     *
-    *********************************************************************
-    *
-    *  Copyright 2000,2001
+    *  Copyright 2000,2001,2002,2003
     *  Broadcom Corporation. All rights reserved.
-    *
-    *  This program is free software; you can redistribute it and/or
-    *  modify it under the terms of the GNU General Public License as
-    *  published by the Free Software Foundation; either version 2 of
+    *  
+    *  This program is free software; you can redistribute it and/or 
+    *  modify it under the terms of the GNU General Public License as 
+    *  published by the Free Software Foundation; either version 2 of 
     *  the License, or (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
@@ -27,7 +27,7 @@
     *
     *  You should have received a copy of the GNU General Public License
     *  along with this program; if not, write to the Free Software
-    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
     *  MA 02111-1307 USA
     ********************************************************************* */
 
@@ -102,4 +102,27 @@
 #define L2C_ENTRIES_PER_WAY       4096
 #define L2C_NUM_WAYS              4
 
+
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+/*
+ * L2 Read Misc. register (A_L2_READ_MISC)
+ */
+#define S_L2C_MISC_NO_WAY		10
+#define M_L2C_MISC_NO_WAY		_SB_MAKEMASK(4,S_L2C_MISC_NO_WAY)
+#define V_L2C_MISC_NO_WAY(x)		_SB_MAKEVALUE(x,S_L2C_MISC_NO_WAY)
+#define G_L2C_MISC_NO_WAY(x)		_SB_GETVALUE(x,S_L2C_MISC_NO_WAY,M_L2C_MISC_NO_WAY)
+
+#define M_L2C_MISC_ECC_CLEANUP_DIS	_SB_MAKEMASK1(9)
+#define M_L2C_MISC_MC_PRIO_LOW		_SB_MAKEMASK1(8)
+#define M_L2C_MISC_SOFT_DISABLE_T	_SB_MAKEMASK1(7)
+#define M_L2C_MISC_SOFT_DISABLE_B	_SB_MAKEMASK1(6)
+#define M_L2C_MISC_SOFT_DISABLE_R	_SB_MAKEMASK1(5)
+#define M_L2C_MISC_SOFT_DISABLE_L	_SB_MAKEMASK1(4)
+#define M_L2C_MISC_SCACHE_DISABLE_T	_SB_MAKEMASK1(3)
+#define M_L2C_MISC_SCACHE_DISABLE_B	_SB_MAKEMASK1(2)
+#define M_L2C_MISC_SCACHE_DISABLE_R	_SB_MAKEMASK1(1)
+#define M_L2C_MISC_SCACHE_DISABLE_L	_SB_MAKEMASK1(0)
+#endif /* 112x PASS1 */
+
+
 #endif
diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/sb1250_ldt.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_ldt.h
--- linux-2.4.20/include/asm-mips/sibyte/sb1250_ldt.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_ldt.h	2003-01-21 23:11:38.000000000 -0600
@@ -1,23 +1,23 @@
 /*  *********************************************************************
     *  SB1250 Board Support Package
-    *
+    *  
     *  LDT constants				File: sb1250_ldt.h
-    *
-    *  This module contains constants and macros to describe
-    *  the LDT interface on the SB1250.
-    *
+    *  
+    *  This module contains constants and macros to describe 
+    *  the LDT interface on the SB1250.  
+    *  
     *  SB1250 specification level:  User's manual 1/02/02
-    *
+    *  
     *  Author:  Mitch Lichtenberg (mpl@broadcom.com)
+    *  
+    *********************************************************************  
     *
-    *********************************************************************
-    *
-    *  Copyright 2000,2001
+    *  Copyright 2000,2001,2002,2003
     *  Broadcom Corporation. All rights reserved.
-    *
-    *  This program is free software; you can redistribute it and/or
-    *  modify it under the terms of the GNU General Public License as
-    *  published by the Free Software Foundation; either version 2 of
+    *  
+    *  This program is free software; you can redistribute it and/or 
+    *  modify it under the terms of the GNU General Public License as 
+    *  published by the Free Software Foundation; either version 2 of 
     *  the License, or (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
@@ -27,7 +27,7 @@
     *
     *  You should have received a copy of the GNU General Public License
     *  along with this program; if not, write to the Free Software
-    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
     *  MA 02111-1307 USA
     ********************************************************************* */
 
@@ -70,7 +70,9 @@
 #define R_LDT_TYPE1_SRIRXNUM	0x0058
 #define R_LDT_TYPE1_ERRSTATUS   0x0068
 #define R_LDT_TYPE1_SRICTRL	0x006C
-#define R_LDT_TYPE1_ADDSTATUS	0x0070		/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define R_LDT_TYPE1_ADDSTATUS	0x0070
+#endif /* 1250 PASS2 || 112x PASS1 */
 #define R_LDT_TYPE1_TXBUFCNT	0x00C8
 #define R_LDT_TYPE1_EXPCRC	0x00DC
 #define R_LDT_TYPE1_RXCRC	0x00F0
@@ -153,14 +155,16 @@
 
 /*
  * LDT Status Register (Table 8-14).  Note that these constants
- * assume you've read the command and status register
+ * assume you've read the command and status register 
  * together (32-bit read at offset 0x04)
  *
  * These bits also apply to the secondary status
  * register (Table 8-15), offset 0x1C
  */
 
-#define M_LDT_STATUS_VGAEN		_SB_MAKEMASK1_32(3)	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_LDT_STATUS_VGAEN		_SB_MAKEMASK1_32(3)
+#endif /* 1250 PASS2 || 112x PASS1 */
 #define M_LDT_STATUS_CAPLIST		_SB_MAKEMASK1_32(20)
 #define M_LDT_STATUS_66MHZCAP		_SB_MAKEMASK1_32(21)
 #define M_LDT_STATUS_RESERVED2		_SB_MAKEMASK1_32(22)
@@ -179,8 +183,8 @@
 #define M_LDT_STATUS_DETPARERR		_SB_MAKEMASK1_32(31)
 
 /*
- * Bridge Control Register (Table 8-16).  Note that these
- * constants assume you've read the register as a 32-bit
+ * Bridge Control Register (Table 8-16).  Note that these 
+ * constants assume you've read the register as a 32-bit 
  * read (offset 0x3C)
  */
 
@@ -281,9 +285,13 @@
 #define M_LDT_SRICMD_SIPREADY		_SB_MAKEMASK1_32(16)
 #define M_LDT_SRICMD_SYNCPTRCTL		_SB_MAKEMASK1_32(17)
 #define M_LDT_SRICMD_REDUCESYNCZERO	_SB_MAKEMASK1_32(18)
-/*#define M_LDT_SRICMD_DISSTARVATIONCNT	_SB_MAKEMASK1_32(19) */ /* PASS1 */
-#define M_LDT_SRICMD_DISMULTTXVLD	_SB_MAKEMASK1_32(19)	/* PASS2 */
-#define M_LDT_SRICMD_EXPENDIAN		_SB_MAKEMASK1_32(26)	/* PASS2 */
+#if SIBYTE_HDR_FEATURE_UP_TO(1250, PASS1)
+#define M_LDT_SRICMD_DISSTARVATIONCNT	_SB_MAKEMASK1_32(19)	/* PASS1 */
+#endif /* up to 1250 PASS1 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_LDT_SRICMD_DISMULTTXVLD	_SB_MAKEMASK1_32(19)
+#define M_LDT_SRICMD_EXPENDIAN		_SB_MAKEMASK1_32(26)
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 
 #define S_LDT_SRICMD_RXMARGIN		20
@@ -402,14 +410,16 @@
 #define V_LDT_TXBUFCNT_RDATA(x)		_SB_MAKEVALUE_32(x,S_LDT_TXBUFCNT_RDATA)
 #define G_LDT_TXBUFCNT_RDATA(x)		_SB_GETVALUE_32(x,S_LDT_TXBUFCNT_RDATA,M_LDT_TXBUFCNT_RDATA)
 
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
 /*
- * Additional Status Register (PASS2)
+ * Additional Status Register
  */
 
 #define S_LDT_ADDSTATUS_TGTDONE		0
 #define M_LDT_ADDSTATUS_TGTDONE		_SB_MAKEMASK_32(8,S_LDT_ADDSTATUS_TGTDONE)
 #define V_LDT_ADDSTATUS_TGTDONE(x)	_SB_MAKEVALUE_32(x,S_LDT_ADDSTATUS_TGTDONE)
 #define G_LDT_ADDSTATUS_TGTDONE(x)	_SB_GETVALUE_32(x,S_LDT_ADDSTATUS_TGTDONE,M_LDT_ADDSTATUS_TGTDONE)
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 #endif
 
diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/sb1250_mac.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_mac.h
--- linux-2.4.20/include/asm-mips/sibyte/sb1250_mac.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_mac.h	2003-01-21 23:11:38.000000000 -0600
@@ -1,23 +1,23 @@
 /*  *********************************************************************
     *  SB1250 Board Support Package
-    *
+    *  
     *  MAC constants and macros			File: sb1250_mac.h
-    *
+    *  
     *  This module contains constants and macros for the SB1250's
     *  ethernet controllers.
-    *
+    *  
     *  SB1250 specification level:  User's manual 1/02/02
-    *
+    *  
     *  Author:  Mitch Lichtenberg (mpl@broadcom.com)
+    *  
+    *********************************************************************  
     *
-    *********************************************************************
-    *
-    *  Copyright 2000,2001
+    *  Copyright 2000,2001,2002,2003
     *  Broadcom Corporation. All rights reserved.
-    *
-    *  This program is free software; you can redistribute it and/or
-    *  modify it under the terms of the GNU General Public License as
-    *  published by the Free Software Foundation; either version 2 of
+    *  
+    *  This program is free software; you can redistribute it and/or 
+    *  modify it under the terms of the GNU General Public License as 
+    *  published by the Free Software Foundation; either version 2 of 
     *  the License, or (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
@@ -27,7 +27,7 @@
     *
     *  You should have received a copy of the GNU General Public License
     *  along with this program; if not, write to the Free Software
-    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
     *  MA 02111-1307 USA
     ********************************************************************* */
 
@@ -128,7 +128,13 @@
 #define M_MAC_BYPASS_16             _SB_MAKEMASK1(42)
 #define M_MAC_BYPASS_FCS_CHK	    _SB_MAKEMASK1(43)
 
-#define M_MAC_RX_CH_SEL_MSB	    _SB_MAKEMASK1(44)		/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_MAC_RX_CH_SEL_MSB	    _SB_MAKEMASK1(44)
+#endif /* 1250 PASS2 || 112x PASS1 */
+
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_MAC_SPLIT_CH_SEL	    _SB_MAKEMASK1(45)
+#endif /* 112x PASS1 */
 
 #define S_MAC_BYPASS_IFG            _SB_MAKE64(46)
 #define M_MAC_BYPASS_IFG            _SB_MAKEMASK(8,S_MAC_BYPASS_IFG)
@@ -200,14 +206,24 @@
  */
 
 #define S_MAC_TX_WR_THRSH           _SB_MAKE64(0)
-/* #define M_MAC_TX_WR_THRSH           _SB_MAKEMASK(6,S_MAC_TX_WR_THRSH) */ /* PASS1 */
-#define M_MAC_TX_WR_THRSH           _SB_MAKEMASK(7,S_MAC_TX_WR_THRSH)	    /* PASS2 */
+#if SIBYTE_HDR_FEATURE_UP_TO(1250, PASS1)
+/* XXX: Can't enable, as it has the same name as a pass2+ define below.  */
+/* #define M_MAC_TX_WR_THRSH           _SB_MAKEMASK(6,S_MAC_TX_WR_THRSH) */
+#endif /* up to 1250 PASS1 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_MAC_TX_WR_THRSH           _SB_MAKEMASK(7,S_MAC_TX_WR_THRSH)
+#endif /* 1250 PASS2 || 112x PASS1 */
 #define V_MAC_TX_WR_THRSH(x)        _SB_MAKEVALUE(x,S_MAC_TX_WR_THRSH)
 #define G_MAC_TX_WR_THRSH(x)        _SB_GETVALUE(x,S_MAC_TX_WR_THRSH,M_MAC_TX_WR_THRSH)
 
 #define S_MAC_TX_RD_THRSH           _SB_MAKE64(8)
-/* #define M_MAC_TX_RD_THRSH           _SB_MAKEMASK(6,S_MAC_TX_RD_THRSH) */ /* PASS1 */
-#define M_MAC_TX_RD_THRSH           _SB_MAKEMASK(7,S_MAC_TX_RD_THRSH)	    /* PASS2 */
+#if SIBYTE_HDR_FEATURE_UP_TO(1250, PASS1)
+/* XXX: Can't enable, as it has the same name as a pass2+ define below.  */
+/* #define M_MAC_TX_RD_THRSH           _SB_MAKEMASK(6,S_MAC_TX_RD_THRSH) */
+#endif /* up to 1250 PASS1 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_MAC_TX_RD_THRSH           _SB_MAKEMASK(7,S_MAC_TX_RD_THRSH)
+#endif /* 1250 PASS2 || 112x PASS1 */
 #define V_MAC_TX_RD_THRSH(x)        _SB_MAKEVALUE(x,S_MAC_TX_RD_THRSH)
 #define G_MAC_TX_RD_THRSH(x)        _SB_GETVALUE(x,S_MAC_TX_RD_THRSH,M_MAC_TX_RD_THRSH)
 
@@ -231,10 +247,12 @@
 #define V_MAC_RX_RL_THRSH(x)        _SB_MAKEVALUE(x,S_MAC_RX_RL_THRSH)
 #define G_MAC_RX_RL_THRSH(x)        _SB_GETVALUE(x,S_MAC_RX_RL_THRSH,M_MAC_RX_RL_THRSH)
 
-#define S_MAC_ENC_FC_THRSH           _SB_MAKE64(56)			/* PASS2 */
-#define M_MAC_ENC_FC_THRSH           _SB_MAKEMASK(6,S_MAC_ENC_FC_THRSH)	/* PASS2 */
-#define V_MAC_ENC_FC_THRSH(x)        _SB_MAKEVALUE(x,S_MAC_ENC_FC_THRSH) /* PASS2 */
-#define G_MAC_ENC_FC_THRSH(x)        _SB_GETVALUE(x,S_MAC_ENC_FC_THRSH,M_MAC_ENC_FC_THRSH) /* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define S_MAC_ENC_FC_THRSH           _SB_MAKE64(56)
+#define M_MAC_ENC_FC_THRSH           _SB_MAKEMASK(6,S_MAC_ENC_FC_THRSH)
+#define V_MAC_ENC_FC_THRSH(x)        _SB_MAKEVALUE(x,S_MAC_ENC_FC_THRSH)
+#define G_MAC_ENC_FC_THRSH(x)        _SB_GETVALUE(x,S_MAC_ENC_FC_THRSH,M_MAC_ENC_FC_THRSH)
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 /*
  * MAC Frame Configuration Registers (Table 9-15)
@@ -243,11 +261,19 @@
  * Register: MAC_FRAME_CFG_2
  */
 
+/* XXXCGD: ??? Unused in pass2? */
 #define S_MAC_IFG_RX                _SB_MAKE64(0)
 #define M_MAC_IFG_RX                _SB_MAKEMASK(6,S_MAC_IFG_RX)
 #define V_MAC_IFG_RX(x)             _SB_MAKEVALUE(x,S_MAC_IFG_RX)
 #define G_MAC_IFG_RX(x)             _SB_GETVALUE(x,S_MAC_IFG_RX,M_MAC_IFG_RX)
 
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+#define S_MAC_PRE_LEN               _SB_MAKE64(0)
+#define M_MAC_PRE_LEN               _SB_MAKEMASK(6,S_MAC_PRE_LEN)
+#define V_MAC_PRE_LEN(x)            _SB_MAKEVALUE(x,S_MAC_PRE_LEN)
+#define G_MAC_PRE_LEN(x)            _SB_GETVALUE(x,S_MAC_PRE_LEN,M_MAC_PRE_LEN)
+#endif /* 112x PASS1 */
+
 #define S_MAC_IFG_TX                _SB_MAKE64(6)
 #define M_MAC_IFG_TX                _SB_MAKEMASK(6,S_MAC_IFG_TX)
 #define V_MAC_IFG_TX(x)             _SB_MAKEVALUE(x,S_MAC_IFG_TX)
@@ -285,7 +311,7 @@
 
 /*
  * These constants are used to configure the fields within the Frame
- * Configuration Register.
+ * Configuration Register.  
  */
 
 #define K_MAC_IFG_RX_10             _SB_MAKE64(0)	/* See table 176, not used */
@@ -320,10 +346,12 @@
 #define V_MAC_SLOT_SIZE_100    V_MAC_SLOT_SIZE(K_MAC_SLOT_SIZE_100)
 #define V_MAC_SLOT_SIZE_1000   V_MAC_SLOT_SIZE(K_MAC_SLOT_SIZE_1000)
 
+#define K_MAC_MIN_FRAMESZ_FIFO      _SB_MAKE64(9)
 #define K_MAC_MIN_FRAMESZ_DEFAULT   _SB_MAKE64(64)
 #define K_MAC_MAX_FRAMESZ_DEFAULT   _SB_MAKE64(1518)
 #define K_MAC_MAX_FRAMESZ_JUMBO     _SB_MAKE64(9216)
 
+#define V_MAC_MIN_FRAMESZ_FIFO      V_MAC_MIN_FRAMESZ(K_MAC_MIN_FRAMESZ_FIFO)
 #define V_MAC_MIN_FRAMESZ_DEFAULT   V_MAC_MIN_FRAMESZ(K_MAC_MIN_FRAMESZ_DEFAULT)
 #define V_MAC_MAX_FRAMESZ_DEFAULT   V_MAC_MAX_FRAMESZ(K_MAC_MAX_FRAMESZ_DEFAULT)
 #define V_MAC_MAX_FRAMESZ_JUMBO     V_MAC_MAX_FRAMESZ(K_MAC_MAX_FRAMESZ_JUMBO)
@@ -335,7 +363,24 @@
  * Register: MAC_VLANTAG_2
  */
 
-/* No bit fields: lower 32 bits of register are the tags */
+#define S_MAC_VLAN_TAG           _SB_MAKE64(0)
+#define M_MAC_VLAN_TAG           _SB_MAKEMASK(32,S_MAC_VLAN_TAG)
+#define V_MAC_VLAN_TAG(x)        _SB_MAKEVALUE(x,S_MAC_VLAN_TAG)
+#define G_MAC_VLAN_TAG(x)        _SB_GETVALUE(x,S_MAC_VLAN_TAG,M_MAC_VLAN_TAG)
+
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+#define S_MAC_TX_PKT_OFFSET      _SB_MAKE64(32)
+#define M_MAC_TX_PKT_OFFSET      _SB_MAKEMASK(8,S_MAC_TX_PKT_OFFSET)
+#define V_MAC_TX_PKT_OFFSET(x)   _SB_MAKEVALUE(x,S_MAC_TX_PKT_OFFSET)
+#define G_MAC_TX_PKT_OFFSET(x)   _SB_GETVALUE(x,S_MAC_TX_PKT_OFFSET,M_MAC_TX_PKT_OFFSET)
+
+#define S_MAC_TX_CRC_OFFSET      _SB_MAKE64(40)
+#define M_MAC_TX_CRC_OFFSET      _SB_MAKEMASK(8,S_MAC_TX_CRC_OFFSET)
+#define V_MAC_TX_CRC_OFFSET(x)   _SB_MAKEVALUE(x,S_MAC_TX_CRC_OFFSET)
+#define G_MAC_TX_CRC_OFFSET(x)   _SB_GETVALUE(x,S_MAC_TX_CRC_OFFSET,M_MAC_TX_CRC_OFFSET)
+
+#define M_MAC_CH_BASE_FC_EN      _SB_MAKEMASK1(48)
+#endif /* 112x PASS1 */
 
 /*
  * MAC Status Registers (Table 9-17)
@@ -348,7 +393,7 @@
  * Register: MAC_INT_MASK_2
  */
 
-/*
+/* 
  * Use these constants to shift the appropriate channel
  * into the CH0 position so the same tests can be used
  * on each channel.
@@ -376,6 +421,25 @@
 #define M_MAC_INT_DSCR              _SB_MAKEMASK1(5)
 #define M_MAC_INT_ERR               _SB_MAKEMASK1(6)
 #define M_MAC_INT_DZERO             _SB_MAKEMASK1(7)	/* only for TX channels */
+#define M_MAC_INT_DROP              _SB_MAKEMASK1(7)	/* only for RX channels */
+
+/*
+ * In the following definitions we use ch (0/1) and txrx (TX=1, RX=0, see
+ * also DMA_TX/DMA_RX in sb_regs.h).
+ */
+#define S_MAC_STATUS_CH_OFFSET(ch,txrx) _SB_MAKE64(((ch) + 2 * (txrx)) * S_MAC_CHANWIDTH)
+
+#define M_MAC_STATUS_CHANNEL(ch,txrx)   _SB_MAKEVALUE(_SB_MAKEMASK(8,0),S_MAC_STATUS_CH_OFFSET(ch,txrx))
+#define M_MAC_STATUS_EOP_COUNT(ch,txrx) _SB_MAKEVALUE(M_MAC_INT_EOP_COUNT,S_MAC_STATUS_CH_OFFSET(ch,txrx))
+#define M_MAC_STATUS_EOP_TIMER(ch,txrx) _SB_MAKEVALUE(M_MAC_INT_EOP_TIMER,S_MAC_STATUS_CH_OFFSET(ch,txrx))
+#define M_MAC_STATUS_EOP_SEEN(ch,txrx)  _SB_MAKEVALUE(M_MAC_INT_EOP_SEEN,S_MAC_STATUS_CH_OFFSET(ch,txrx))
+#define M_MAC_STATUS_HWM(ch,txrx)       _SB_MAKEVALUE(M_MAC_INT_HWM,S_MAC_STATUS_CH_OFFSET(ch,txrx))
+#define M_MAC_STATUS_LWM(ch,txrx)       _SB_MAKEVALUE(M_MAC_INT_LWM,S_MAC_STATUS_CH_OFFSET(ch,txrx))
+#define M_MAC_STATUS_DSCR(ch,txrx)      _SB_MAKEVALUE(M_MAC_INT_DSCR,S_MAC_STATUS_CH_OFFSET(ch,txrx))
+#define M_MAC_STATUS_ERR(ch,txrx)       _SB_MAKEVALUE(M_MAC_INT_ERR,S_MAC_STATUS_CH_OFFSET(ch,txrx))
+#define M_MAC_STATUS_DZERO(ch,txrx)     _SB_MAKEVALUE(M_MAC_INT_DZERO,S_MAC_STATUS_CH_OFFSET(ch,txrx))
+#define M_MAC_STATUS_DROP(ch,txrx)      _SB_MAKEVALUE(M_MAC_INT_DROP,S_MAC_STATUS_CH_OFFSET(ch,txrx))
+#define M_MAC_STATUS_OTHER_ERR          _SB_MAKEVALUE(_SB_MAKEMASK(7,0),40)
 
 
 #define M_MAC_RX_UNDRFL             _SB_MAKEMASK1(40)
@@ -385,13 +449,19 @@
 #define M_MAC_LTCOL_ERR             _SB_MAKEMASK1(44)
 #define M_MAC_EXCOL_ERR             _SB_MAKEMASK1(45)
 #define M_MAC_CNTR_OVRFL_ERR        _SB_MAKEMASK1(46)
-#define M_MAC_SPLIT_EN		    _SB_MAKEMASK1(47) 	/* interrupt mask only */ /* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_MAC_SPLIT_EN		    _SB_MAKEMASK1(47) 	/* interrupt mask only */
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 #define S_MAC_COUNTER_ADDR          _SB_MAKE64(47)
 #define M_MAC_COUNTER_ADDR          _SB_MAKEMASK(5,S_MAC_COUNTER_ADDR)
 #define V_MAC_COUNTER_ADDR(x)       _SB_MAKEVALUE(x,S_MAC_COUNTER_ADDR)
 #define G_MAC_COUNTER_ADDR(x)       _SB_GETVALUE(x,S_MAC_COUNTER_ADDR,M_MAC_COUNTER_ADDR)
 
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_MAC_TX_PAUSE_ON	    _SB_MAKEMASK1(52)
+#endif /* 112x PASS1 */
+
 /*
  * MAC Fifo Pointer Registers (Table 9-19)    [Debug register]
  * Register: MAC_FIFO_PTRS_0
@@ -446,6 +516,15 @@
 /* No bitfields */
 
 /*
+ * MAC Receive Address Filter Mask Registers
+ * Registers: MAC_ADDRMASK0_0 and MAC_ADDRMASK0_1
+ * Registers: MAC_ADDRMASK1_0 and MAC_ADDRMASK1_1
+ * Registers: MAC_ADDRMASK2_0 and MAC_ADDRMASK2_1
+ */
+
+/* No bitfields */
+
+/*
  * MAC Recieve Address Filter Hash Match Registers (Table 9-22)
  * Registers: MAC_HASH0_0 through MAC_HASH7_0
  * Registers: MAC_HASH0_1 through MAC_HASH7_1
@@ -506,13 +585,35 @@
 #define M_MAC_MCAST_INV         _SB_MAKEMASK1(4)
 #define M_MAC_BCAST_EN          _SB_MAKEMASK1(5)
 #define M_MAC_DIRECT_INV        _SB_MAKEMASK1(6)
-#define M_MAC_ALLMCAST_EN	_SB_MAKEMASK1(7)	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_MAC_ALLMCAST_EN	_SB_MAKEMASK1(7)
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 #define S_MAC_IPHDR_OFFSET      _SB_MAKE64(8)
 #define M_MAC_IPHDR_OFFSET      _SB_MAKEMASK(8,S_MAC_IPHDR_OFFSET)
 #define V_MAC_IPHDR_OFFSET(x)	_SB_MAKEVALUE(x,S_MAC_IPHDR_OFFSET)
 #define G_MAC_IPHDR_OFFSET(x)	_SB_GETVALUE(x,S_MAC_IPHDR_OFFSET,M_MAC_IPHDR_OFFSET)
 
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+#define S_MAC_RX_CRC_OFFSET     _SB_MAKE64(16)
+#define M_MAC_RX_CRC_OFFSET     _SB_MAKEMASK(8,S_MAC_RX_CRC_OFFSET)
+#define V_MAC_RX_CRC_OFFSET(x)	_SB_MAKEVALUE(x,S_MAC_RX_CRC_OFFSET)
+#define G_MAC_RX_CRC_OFFSET(x)	_SB_GETVALUE(x,S_MAC_RX_CRC_OFFSET,M_MAC_RX_CRC_OFFSET)
+
+#define S_MAC_RX_PKT_OFFSET     _SB_MAKE64(24)
+#define M_MAC_RX_PKT_OFFSET     _SB_MAKEMASK(8,S_MAC_RX_PKT_OFFSET)
+#define V_MAC_RX_PKT_OFFSET(x)	_SB_MAKEVALUE(x,S_MAC_RX_PKT_OFFSET)
+#define G_MAC_RX_PKT_OFFSET(x)	_SB_GETVALUE(x,S_MAC_RX_PKT_OFFSET,M_MAC_RX_PKT_OFFSET)
+
+#define M_MAC_FWDPAUSE_EN	_SB_MAKEMASK1(32)
+#define M_MAC_VLAN_DET_EN	_SB_MAKEMASK1(33)
+
+#define S_MAC_RX_CH_MSN_SEL     _SB_MAKE64(34)
+#define M_MAC_RX_CH_MSN_SEL     _SB_MAKEMASK(8,S_MAC_RX_CH_MSN_SEL)
+#define V_MAC_RX_CH_MSN_SEL(x)	_SB_MAKEVALUE(x,S_MAC_RX_CH_MSN_SEL)
+#define G_MAC_RX_CH_MSN_SEL(x)	_SB_GETVALUE(x,S_MAC_RX_CH_MSN_SEL,M_MAC_RX_CH_MSN_SEL)
+#endif /* 112x PASS1 */
+
 /*
  * MAC Receive Channel Select Registers (Table 9-25)
  */
diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/sb1250_mc.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_mc.h
--- linux-2.4.20/include/asm-mips/sibyte/sb1250_mc.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_mc.h	2003-01-21 23:11:38.000000000 -0600
@@ -1,23 +1,23 @@
 /*  *********************************************************************
     *  SB1250 Board Support Package
-    *
-    *  Memory Controller constants              File: sb1250_mc.h
-    *
+    *  
+    *  Memory Controller constants              File: sb1250_mc.h       
+    *  
     *  This module contains constants and macros useful for
     *  programming the memory controller.
-    *
+    *  
     *  SB1250 specification level:  User's manual 1/02/02
-    *
+    *  
     *  Author:  Mitch Lichtenberg (mpl@broadcom.com)
+    *  
+    *********************************************************************  
     *
-    *********************************************************************
-    *
-    *  Copyright 2000,2001
+    *  Copyright 2000,2001,2002,2003
     *  Broadcom Corporation. All rights reserved.
-    *
-    *  This program is free software; you can redistribute it and/or
-    *  modify it under the terms of the GNU General Public License as
-    *  published by the Free Software Foundation; either version 2 of
+    *  
+    *  This program is free software; you can redistribute it and/or 
+    *  modify it under the terms of the GNU General Public License as 
+    *  published by the Free Software Foundation; either version 2 of 
     *  the License, or (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
@@ -27,7 +27,7 @@
     *
     *  You should have received a copy of the GNU General Public License
     *  along with this program; if not, write to the Free Software
-    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
     *  MA 02111-1307 USA
     ********************************************************************* */
 
@@ -166,7 +166,7 @@
 
 #define K_MC_REF_RATE_100MHz         0x62
 #define K_MC_REF_RATE_133MHz         0x81
-#define K_MC_REF_RATE_200MHz         0xC4
+#define K_MC_REF_RATE_200MHz         0xC4 
 
 #define V_MC_REF_RATE_100MHz         V_MC_REF_RATE(K_MC_REF_RATE_100MHz)
 #define V_MC_REF_RATE_133MHz         V_MC_REF_RATE(K_MC_REF_RATE_133MHz)
@@ -191,6 +191,10 @@
 #define G_MC_ADDR_DRIVE(x)           _SB_GETVALUE(x,S_MC_ADDR_DRIVE,M_MC_ADDR_DRIVE)
 #define V_MC_ADDR_DRIVE_DEFAULT      V_MC_ADDR_DRIVE(0x0)
 
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_MC_REF_DISABLE             _SB_MAKEMASK1(30)
+#endif /* 112x PASS1 */
+
 #define M_MC_DLL_BYPASS              _SB_MAKEMASK1(31)
 
 #define S_MC_DQI_SKEW               32
@@ -224,7 +228,7 @@
                                      V_MC_ADDR_DRIVE_DEFAULT | \
                                      V_MC_DATA_DRIVE_DEFAULT | \
                                      V_MC_CLOCK_DRIVE_DEFAULT | \
-                                     V_MC_REF_RATE_DEFAULT
+                                     V_MC_REF_RATE_DEFAULT 
 
 
 
@@ -291,6 +295,10 @@
 
 #define M_MC_EXTERNALDECODE	    _SB_MAKEMASK1(35)
 
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_MC_PRE_ON_A8              _SB_MAKEMASK1(36)
+#define M_MC_RAM_WITH_A13           _SB_MAKEMASK1(38)
+#endif /* 112x PASS1 */
 
 
 
diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/sb1250_prof.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_prof.h
--- linux-2.4.20/include/asm-mips/sibyte/sb1250_prof.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_prof.h	1969-12-31 18:00:00.000000000 -0600
@@ -1,133 +0,0 @@
-/*
- * Copyright (C) 2001 Broadcom Corporation
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- */
-
-/*
- *
- * Definitions for the sb1250_prof pseudo device.
- *
- */
-//#include <sys/param.h>
-//#include <sys/device.h>
-
-#ifndef SB1250_PROF_H
-#define SB1250_PROF_H 1
-
-#define MAXCPUS 1
-#define NEWPIDSIZE 160
-/* The two definitions below must match those in pgather.c */
-#define MAX_COUNTERS 4
-#define MAX_SLOTS 8
-
-#define STATS
-
-typedef struct {
-  u_int8_t  event;
-  u_int8_t  hwcode;     /* pcarch-specific bits identifying desired event */
-  u_int64_t period;     /* 40-bit sampling period during slot */
-} sbprof_mux_counter_t;
-
-typedef struct {
-  sbprof_mux_counter_t
-                counter[MAX_COUNTERS];	/* data for setting up counter */
-  u_int8_t	n;			/* number of counters to use in slot */
-} sbprof_mux_slot_t;
-
-typedef struct {
-  sbprof_mux_slot_t slots[MAX_SLOTS];
-} sbprof_mux_slots;
-
-typedef struct {
-  u_int64_t total;	/* total number of interrupts */
-  u_int64_t dropped;	/* total interrupts when buffers were full */
-  u_int64_t value;	/* initial counter value when slot next entered */
-  u_int32_t start_period_low;	/* counter val for starting a period */
-  u_int8_t  start_period_high;
-  u_int8_t  event;      /* pcarch-specific event_t */
-  u_int8_t  hwcode;	/* pcarch-specific code for event */
-  u_int8_t  inuse;	/* Is counter X slot actually used? */
-} event_counter_state_t;
-
-typedef struct {
-  u_int32_t total;	 /* total for current run of slot */
-  u_int32_t dropped;	 /* dropped for current run of slot */
-  u_int64_t start_period;/* counter value to start a full period */
-} active_counter_state_t;
-
-struct _cpudata1 {
-  /******* page-aligned boundary *********************************************/
-  u_int32_t last_pid;	/* Pid for last sample in buffer (-1 initially) */
-  u_int8_t  curbuf;	/* 2 -> both buffers full at end of last interrupt
-			   1 -> use buffer[1]
-			   0 -> use buffer[0] */
-  u_int8_t  nextbuf;	/* the index of the next buffer to be filled */
-  u_int8_t  nnewpid[2]; /* number of entries set in new_pid[i] */
-  u_int32_t next;       /* index of next free entry in curbuf */
-  int32_t   last_event; /* index of byte just past last event DP_D_EVENTS
-			   message in curbuf that needs the number of events
-			   filled in.  -1 means there is no such message and
-			   that such a message must be entered before
-			   adding event samples.
-			 */
-  /* 16-byte boundary */
-  volatile u_int32_t full[2];
-                        /* full[i] > 0 means buffer[i] needs emptying.
-			   0 to nonzero done by sbprofintr().
-			   nonzero to zero by sbprofioctl().
-			   When nonzero, full[i] is the number of bytes
-			   set in buffer[i].
-			*/
-  u_int32_t threshold;  /* when does the current multiplexing slot expire? */
-  u_int8_t slotid;      /* index into slots[] of current multiplexing slot */
-  u_int8_t nslots;	/* number of slots */
-  u_int8_t needs_scan;
-  u_int8_t pad[1];
-  /******* 32-byte boundary *********************************************/
-  active_counter_state_t cur_slot[MAX_COUNTERS];
-  /******* 32-byte boundary *********************************************/
-  event_counter_state_t event_counter_state[MAX_SLOTS][MAX_COUNTERS];
-  /******* 32-byte boundary *********************************************/
-  u_int32_t overshot[MAX_SLOTS];
-
-  u_int32_t newpid[2][NEWPIDSIZE];  /* new_pid[i][] contains indices of
-				       buffer[i][] where a new_pid message
-				       is encoded and needs to have the
-				       image_id, base addr, and num_inst
-				       fields set by the user-level daemon */
-#ifdef STATS
-  u_int64_t newpidlimit;
-  u_int64_t buflimit;
-#endif
-};
-
-#define SBPROF_BUFSIZE (32*1024 - (sizeof(struct _cpudata1)+1)/2)
-
-typedef struct _cpudata {
-  struct _cpudata1 x;
-  u_int8_t buffer[2][SBPROF_BUFSIZE];
-} cpudata_t;
-
-#define SBPROF_START    _IOW('S', 0x1, sbprof_mux_slots)
-#define SBPROF_STOP     _IO('S', 0x2)
-#define SBPROF_BUFFULL  _IOWR('S', 0x3, int)
-#define SBPROF_BUFEMPTY _IOW('S', 0x4, int)
-
-#if NEWPIDSIZE > 254
-#error "newpidsize too big"
-#endif
-
-#endif /* SB1250_PROF_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/sb1250_regs.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_regs.h
--- linux-2.4.20/include/asm-mips/sibyte/sb1250_regs.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_regs.h	2003-01-21 23:11:38.000000000 -0600
@@ -1,23 +1,23 @@
 /*  *********************************************************************
     *  SB1250 Board Support Package
-    *
+    *  
     *  Register Definitions                     File: sb1250_regs.h
-    *
+    *  
     *  This module contains the addresses of the on-chip peripherals
     *  on the SB1250.
-    *
+    *  
     *  SB1250 specification level:  01/02/2002
-    *
+    *  
     *  Author:  Mitch Lichtenberg (mpl@broadcom.com)
+    *  
+    *********************************************************************  
     *
-    *********************************************************************
-    *
-    *  Copyright 2000,2001
+    *  Copyright 2000,2001,2002,2003
     *  Broadcom Corporation. All rights reserved.
-    *
-    *  This program is free software; you can redistribute it and/or
-    *  modify it under the terms of the GNU General Public License as
-    *  published by the Free Software Foundation; either version 2 of
+    *  
+    *  This program is free software; you can redistribute it and/or 
+    *  modify it under the terms of the GNU General Public License as 
+    *  published by the Free Software Foundation; either version 2 of 
     *  the License, or (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
@@ -27,7 +27,7 @@
     *
     *  You should have received a copy of the GNU General Public License
     *  along with this program; if not, write to the Free Software
-    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
     *  MA 02111-1307 USA
     ********************************************************************* */
 
@@ -40,23 +40,27 @@
 
 /*  *********************************************************************
     *  Some general notes:
-    *
+    *  
     *  For the most part, when there is more than one peripheral
     *  of the same type on the SOC, the constants below will be
     *  offsets from the base of each peripheral.  For example,
     *  the MAC registers are described as offsets from the first
     *  MAC register, and there will be a MAC_REGISTER() macro
-    *  to calculate the base address of a given MAC.
-    *
+    *  to calculate the base address of a given MAC.  
+    *  
     *  The information in this file is based on the SB1250 SOC
     *  manual version 0.2, July 2000.
     ********************************************************************* */
 
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * Memory Controller Registers
     ********************************************************************* */
 
+/*
+ * XXX: can't remove MC base 0 if 112x, since it's used by other macros,
+ * since there is one reg there (but it could get its addr/offset constant).
+ */
 #define A_MC_BASE_0                 0x0010051000
 #define A_MC_BASE_1                 0x0010052000
 #define MC_REGISTER_SPACING         0x1000
@@ -97,22 +101,32 @@
 #define R_MC_TEST_ECC               0x0000000420
 #define R_MC_MCLK_CFG               0x0000000500
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * L2 Cache Control Registers
     ********************************************************************* */
 
-#define A_L2_READ_ADDRESS           0x0010040018
-#define A_L2_EEC_ADDRESS            0x0010040038
+#define A_L2_READ_TAG               0x0010040018
+#define A_L2_ECC_TAG                0x0010040038
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+#define A_L2_READ_MISC              0x0010040058
+#endif /* 112x PASS1 */
 #define A_L2_WAY_DISABLE            0x0010041000
 #define A_L2_MAKEDISABLE(x)         (A_L2_WAY_DISABLE | (((~(x))&0x0F) << 8))
 #define A_L2_MGMT_TAG_BASE          0x00D0000000
 
-#define A_L2_CACHE_DISABLE	   0x0010042000	/* PASS2 */
-#define A_L2_MAKECACHEDISABLE(x)   (A_L2_CACHE_DISABLE | (((x)&0x0F) << 8))	/* PASS2 */
-#define A_L2_MISC_CONFIG	   0x0010043000	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define A_L2_CACHE_DISABLE	   0x0010042000
+#define A_L2_MAKECACHEDISABLE(x)   (A_L2_CACHE_DISABLE | (((x)&0x0F) << 8))
+#define A_L2_MISC_CONFIG	   0x0010043000
+#endif /* 1250 PASS2 || 112x PASS1 */
+
+/* Backward-compatibility definitions.  */
+/* XXX: discourage people from using these constants.  */
+#define A_L2_READ_ADDRESS           A_L2_READ_TAG
+#define A_L2_EEC_ADDRESS            A_L2_ECC_TAG
 
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * PCI Interface Registers
     ********************************************************************* */
 
@@ -120,13 +134,15 @@
 #define A_PCI_TYPE01_HEADER         0x00DE000800
 
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * Ethernet DMA and MACs
     ********************************************************************* */
 
 #define A_MAC_BASE_0                0x0010064000
 #define A_MAC_BASE_1                0x0010065000
+#if SIBYTE_HDR_FEATURE_CHIP(1250)
 #define A_MAC_BASE_2                0x0010066000
+#endif /* 1250 */
 
 #define MAC_SPACING                 0x1000
 #define MAC_DMA_TXRX_SPACING        0x0400
@@ -135,6 +151,7 @@
 #define DMA_TX                      1
 #define MAC_NUM_DMACHAN		    2		    /* channels per direction */
 
+/* XXX: not correct; depends on SOC type.  */
 #define MAC_NUM_PORTS               3
 
 #define A_MAC_CHANNEL_BASE(macnum)                  \
@@ -167,7 +184,7 @@
             (R_MAC_DMA_CHANNEL_BASE(txrx,chan) +    \
             (reg))
 
-/*
+/* 
  * DMA channel registers, relative to A_MAC_DMA_CHANNEL_BASE
  */
 
@@ -178,6 +195,9 @@
 #define R_MAC_DMA_CUR_DSCRA             0x00000020
 #define R_MAC_DMA_CUR_DSCRB             0x00000028
 #define R_MAC_DMA_CUR_DSCRADDR          0x00000030
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+#define R_MAC_DMA_OODPKTLOST_RX         0x00000038	/* rx only */
+#endif /* 112x PASS1 */
 
 /*
  * RMON Counters
@@ -216,6 +236,10 @@
 #define R_MAC_ADFILTER_CFG              0x00000200
 #define R_MAC_ETHERNET_ADDR             0x00000208
 #define R_MAC_PKT_TYPE                  0x00000210
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+#define R_MAC_ADMASK0			0x00000218
+#define R_MAC_ADMASK1			0x00000220
+#endif /* 112x PASS1 */
 #define R_MAC_HASH_BASE                 0x00000240
 #define R_MAC_ADDR_BASE                 0x00000280
 #define R_MAC_CHLO0_BASE                0x00000300
@@ -225,7 +249,9 @@
 #define R_MAC_INT_MASK                  0x00000410
 #define R_MAC_TXD_CTL                   0x00000420
 #define R_MAC_MDIO                      0x00000428
-#define R_MAC_STATUS1		        0x00000430	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define R_MAC_STATUS1		        0x00000430
+#endif /* 1250 PASS2 || 112x PASS1 */
 #define R_MAC_DEBUG_STATUS              0x00000448
 
 #define MAC_HASH_COUNT			8
@@ -233,7 +259,7 @@
 #define MAC_CHMAP_COUNT			4
 
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * DUART Registers
     ********************************************************************* */
 
@@ -256,9 +282,11 @@
 #define R_DUART_RX_HOLD             0x160
 #define R_DUART_TX_HOLD             0x170
 
-#define R_DUART_FULL_CTL	    0x140	/* PASS2 */
-#define R_DUART_OPCR_X		    0x180	/* PASS2 */
-#define R_DUART_AUXCTL_X	    0x190	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define R_DUART_FULL_CTL	    0x140
+#define R_DUART_OPCR_X		    0x180
+#define R_DUART_AUXCTL_X	    0x190
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 
 /*
@@ -285,6 +313,9 @@
 #define A_DUART_IMRREG(chan)	    (A_DUART + R_DUART_IMRREG(chan))
 #define A_DUART_ISRREG(chan)	    (A_DUART + R_DUART_ISRREG(chan))
 
+
+
+
 /*
  * These constants are the absolute addresses.
  */
@@ -321,16 +352,18 @@
 #define A_DUART_INPORT_CHNG_A       0x00100603D0
 #define A_DUART_INPORT_CHNG_B       0x00100603E0
 
-#define A_DUART_FULL_CTL_A	    0x0010060140	/* PASS2 */
-#define A_DUART_FULL_CTL_B	    0x0010060240	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define A_DUART_FULL_CTL_A	    0x0010060140
+#define A_DUART_FULL_CTL_B	    0x0010060240
 
-#define A_DUART_OPCR_A	  	    0x0010060180	/* PASS2 */
-#define A_DUART_OPCR_B	  	    0x0010060280	/* PASS2 */
+#define A_DUART_OPCR_A	  	    0x0010060180
+#define A_DUART_OPCR_B	  	    0x0010060280
 
-#define A_DUART_INPORT_CHNG_DEBUG   0x00100603F0	/* PASS2 */
+#define A_DUART_INPORT_CHNG_DEBUG   0x00100603F0
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * Synchronous Serial Registers
     ********************************************************************* */
 
@@ -364,7 +397,7 @@
             (reg))
 
 
-/*
+/* 
  * DMA channel registers, relative to A_SER_DMA_CHANNEL_BASE
  */
 
@@ -424,7 +457,7 @@
 #define R_SER_RMON_RX_ERRORS        0x000001F0
 #define R_SER_RMON_RX_BADADDR       0x000001F8
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * Generic Bus Registers
     ********************************************************************* */
 
@@ -464,6 +497,10 @@
 #define A_IO_DRIVE_1		    0x0010061308
 #define A_IO_DRIVE_2		    0x0010061310
 #define A_IO_DRIVE_3		    0x0010061318
+#define A_IO_DRIVE_BASE		    A_IO_DRIVE_0
+#define IO_DRIVE_REGISTER_SPACING   8
+#define R_IO_DRIVE(x)		    ((x)*IO_DRIVE_REGISTER_SPACING)
+#define A_IO_DRIVE(x)		    (A_IO_DRIVE_BASE + R_IO_DRIVE(x))
 
 #define R_IO_INTERRUPT_STATUS       0x0A00
 #define R_IO_INTERRUPT_DATA0        0x0A10
@@ -476,7 +513,7 @@
 #define R_IO_PCMCIA_CFG             0x0A60
 #define R_IO_PCMCIA_STATUS          0x0A70
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * GPIO Registers
     ********************************************************************* */
 
@@ -500,7 +537,7 @@
 #define R_GPIO_PIN_CLR              0x30
 #define R_GPIO_PIN_SET              0x38
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * SMBus Registers
     ********************************************************************* */
 
@@ -536,7 +573,7 @@
 #define R_SMB_CONTROL               0x0000000060
 #define R_SMB_PEC                   0x0000000070
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * Timer Registers
     ********************************************************************* */
 
@@ -595,21 +632,23 @@
 #define A_SCD_TIMER_CNT_3           0x0010020188
 #define A_SCD_TIMER_CFG_3           0x0010020198
 
-#define A_SCD_SCRATCH		   0x0010020C10		/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define A_SCD_SCRATCH		   0x0010020C10
 
-#define A_SCD_ZBBUS_CYCLE_COUNT	   0x0010030000		/* PASS2 */
-#define A_SCD_ZBBUS_CYCLE_CP0	   0x0010020C00		/* PASS2 */
-#define A_SCD_ZBBUS_CYCLE_CP1	   0x0010020C08		/* PASS2 */
+#define A_SCD_ZBBUS_CYCLE_COUNT	   0x0010030000
+#define A_SCD_ZBBUS_CYCLE_CP0	   0x0010020C00
+#define A_SCD_ZBBUS_CYCLE_CP1	   0x0010020C08
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * System Control Registers
     ********************************************************************* */
 
 #define A_SCD_SYSTEM_REVISION       0x0010020000
 #define A_SCD_SYSTEM_CFG            0x0010020008
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * System Address Trap Registers
     ********************************************************************* */
 
@@ -627,16 +666,19 @@
 #define A_ADDR_TRAP_CFG_1           0x0010020448
 #define A_ADDR_TRAP_CFG_2           0x0010020450
 #define A_ADDR_TRAP_CFG_3           0x0010020458
-#define A_ADDR_TRAP_REG_DEBUG	    0x0010020460	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define A_ADDR_TRAP_REG_DEBUG	    0x0010020460
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * System Interrupt Mapper Registers
     ********************************************************************* */
 
 #define A_IMR_CPU0_BASE                 0x0010020000
 #define A_IMR_CPU1_BASE                 0x0010022000
 #define IMR_REGISTER_SPACING            0x2000
+#define IMR_REGISTER_SPACING_SHIFT      13
 
 #define A_IMR_MAPPER(cpu) (A_IMR_CPU0_BASE+(cpu)*IMR_REGISTER_SPACING)
 #define A_IMR_REGISTER(cpu,reg) (A_IMR_MAPPER(cpu)+(reg))
@@ -658,7 +700,7 @@
 #define R_IMR_INTERRUPT_MAP_BASE        0x0200
 #define R_IMR_INTERRUPT_MAP_COUNT       64
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * System Performance Counter Registers
     ********************************************************************* */
 
@@ -668,12 +710,14 @@
 #define A_SCD_PERF_CNT_2            0x00100204E0
 #define A_SCD_PERF_CNT_3            0x00100204E8
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * System Bus Watcher Registers
     ********************************************************************* */
 
 #define A_SCD_BUS_ERR_STATUS        0x0010020880
-#define A_SCD_BUS_ERR_STATUS_DEBUG  0x00100208D0	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define A_SCD_BUS_ERR_STATUS_DEBUG  0x00100208D0
+#endif /* 1250 PASS2 || 112x PASS1 */
 #define A_BUS_ERR_DATA_0            0x00100208A0
 #define A_BUS_ERR_DATA_1            0x00100208A8
 #define A_BUS_ERR_DATA_2            0x00100208B0
@@ -681,13 +725,13 @@
 #define A_BUS_L2_ERRORS             0x00100208C0
 #define A_BUS_MEM_IO_ERRORS         0x00100208C8
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * System Debug Controller Registers
     ********************************************************************* */
 
 #define A_SCD_JTAG_BASE             0x0010000000
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * System Trace Buffer Registers
     ********************************************************************* */
 
@@ -710,7 +754,7 @@
 #define A_SCD_TRACE_SEQUENCE_6      0x0010020A90
 #define A_SCD_TRACE_SEQUENCE_7      0x0010020A98
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * System Generic DMA Registers
     ********************************************************************* */
 
@@ -728,6 +772,26 @@
 #define R_DM_CUR_DSCR_ADDR	    0x0000000010
 #define R_DM_DSCR_BASE_DEBUG	    0x0000000018
 
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+#define A_DM_PARTIAL_0		    0x0010020ba0
+#define A_DM_PARTIAL_1		    0x0010020ba8
+#define A_DM_PARTIAL_2		    0x0010020bb0
+#define A_DM_PARTIAL_3		    0x0010020bb8
+#define DM_PARTIAL_REGISTER_SPACING 0x8
+#define A_DM_PARTIAL(idx)	    (A_DM_PARTIAL_0 + ((idx) * DM_PARTIAL_REGISTER_SPACING))
+#endif /* 112x PASS1 */
+
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+#define A_DM_CRC_0		    0x0010020b80
+#define A_DM_CRC_1		    0x0010020b90
+#define DM_CRC_REGISTER_SPACING	    0x10
+#define DM_CRC_NUM_CHANNELS	    2
+#define A_DM_CRC_BASE(idx)	    (A_DM_CRC_0 + ((idx) * DM_CRC_REGISTER_SPACING))
+#define A_DM_CRC_REGISTER(idx,reg)  (A_DM_CRC_BASE(idx) + (reg))
+
+#define R_CRC_DEF_0		    0x00
+#define R_CTCP_DEF_0		    0x08
+#endif /* 112x PASS1 */
 
 /*  *********************************************************************
     *  Physical Address Map
diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/sb1250_scd.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_scd.h
--- linux-2.4.20/include/asm-mips/sibyte/sb1250_scd.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_scd.h	2003-01-21 23:11:38.000000000 -0600
@@ -1,23 +1,23 @@
 /*  *********************************************************************
     *  SB1250 Board Support Package
-    *
+    *  
     *  SCD Constants and Macros			File: sb1250_scd.h
-    *
+    *  
     *  This module contains constants and macros useful for
     *  manipulating the System Control and Debug module on the 1250.
-    *
+    *  
     *  SB1250 specification level:  User's manual 1/02/02
-    *
+    *  
     *  Author:  Mitch Lichtenberg (mpl@broadcom.com)
+    *  
+    *********************************************************************  
     *
-    *********************************************************************
-    *
-    *  Copyright 2000,2001
+    *  Copyright 2000,2001,2002,2003
     *  Broadcom Corporation. All rights reserved.
-    *
-    *  This program is free software; you can redistribute it and/or
-    *  modify it under the terms of the GNU General Public License as
-    *  published by the Free Software Foundation; either version 2 of
+    *  
+    *  This program is free software; you can redistribute it and/or 
+    *  modify it under the terms of the GNU General Public License as 
+    *  published by the Free Software Foundation; either version 2 of 
     *  the License, or (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
@@ -27,7 +27,7 @@
     *
     *  You should have received a copy of the GNU General Public License
     *  along with this program; if not, write to the Free Software
-    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
     *  MA 02111-1307 USA
     ********************************************************************* */
 
@@ -51,18 +51,73 @@
 #define V_SYS_REVISION(x)           _SB_MAKEVALUE(x,S_SYS_REVISION)
 #define G_SYS_REVISION(x)           _SB_GETVALUE(x,S_SYS_REVISION,M_SYS_REVISION)
 
-#define K_SYS_REVISION_PASS1	    1
-#define K_SYS_REVISION_PASS2	    3
-#define K_SYS_REVISION_PASS2_2	    16
-#define K_SYS_REVISION_PASS3	    32
+#if SIBYTE_HDR_FEATURE_CHIP(1250)
+#define K_SYS_REVISION_BCM1250_PASS1	1
+#define K_SYS_REVISION_BCM1250_PASS2	3
+#define K_SYS_REVISION_BCM1250_PASS2_2	16
+#define K_SYS_REVISION_BCM1250_PASS3	32
+
+/* XXX: discourage people from using these constants.  */
+#define K_SYS_REVISION_PASS1	    K_SYS_REVISION_BCM1250_PASS1
+#define K_SYS_REVISION_PASS2	    K_SYS_REVISION_BCM1250_PASS2
+#define K_SYS_REVISION_PASS2_2	    K_SYS_REVISION_BCM1250_PASS2_2
+#define K_SYS_REVISION_PASS3	    K_SYS_REVISION_BCM1250_PASS3
+#endif /* 1250 */
+
+#if SIBYTE_HDR_FEATURE_CHIP(112x)
+#define K_SYS_REVISION_BCM112x_A1	32
+#define K_SYS_REVISION_BCM112x_A2	33
+#endif /* 112x */
 
+/* XXX: discourage people from using these constants.  */
 #define S_SYS_PART                  _SB_MAKE64(16)
 #define M_SYS_PART                  _SB_MAKEMASK(16,S_SYS_PART)
 #define V_SYS_PART(x)               _SB_MAKEVALUE(x,S_SYS_PART)
 #define G_SYS_PART(x)               _SB_GETVALUE(x,S_SYS_PART,M_SYS_PART)
 
+/* XXX: discourage people from using these constants.  */
 #define K_SYS_PART_SB1250           0x1250
-#define K_SYS_PART_SB1125           0x1125
+#define K_SYS_PART_BCM1120          0x1121
+#define K_SYS_PART_BCM1125          0x1123
+#define K_SYS_PART_BCM1125H         0x1124
+
+/* The "peripheral set" (SOC type) is the low 4 bits of the "part" field.  */
+#define S_SYS_SOC_TYPE              _SB_MAKE64(16)
+#define M_SYS_SOC_TYPE              _SB_MAKEMASK(4,S_SYS_SOC_TYPE)
+#define V_SYS_SOC_TYPE(x)           _SB_MAKEVALUE(x,S_SYS_SOC_TYPE)
+#define G_SYS_SOC_TYPE(x)           _SB_GETVALUE(x,S_SYS_SOC_TYPE,M_SYS_SOC_TYPE)
+
+#define K_SYS_SOC_TYPE_BCM1250      0x0
+#define K_SYS_SOC_TYPE_BCM1120      0x1
+#define K_SYS_SOC_TYPE_BCM1250_ALT  0x2		/* 1250pass2 w/ 1/4 L2.  */
+#define K_SYS_SOC_TYPE_BCM1125      0x3
+#define K_SYS_SOC_TYPE_BCM1125H     0x4
+#define K_SYS_SOC_TYPE_BCM1250_ALT2 0x5		/* 1250pass2 w/ 1/2 L2.  */
+
+/*
+ * Calculate correct SOC type given a copy of system revision register.
+ *
+ * (For the assembler version, sysrev and dest may be the same register.
+ * Also, it clobbers AT.)
+ */
+#ifdef __ASSEMBLER__
+#define SYS_SOC_TYPE(dest, sysrev)					\
+	.set push ;							\
+	.set reorder ;							\
+	dsrl	dest, sysrev, S_SYS_SOC_TYPE ;				\
+	andi	dest, dest, (M_SYS_SOC_TYPE >> S_SYS_SOC_TYPE);		\
+	beq	dest, K_SYS_SOC_TYPE_BCM1250_ALT, 991f ;		\
+	beq	dest, K_SYS_SOC_TYPE_BCM1250_ALT2, 991f	 ;		\
+	b	992f ;							\
+991:	li	dest, K_SYS_SOC_TYPE_BCM1250 ;				\
+992:									\
+	.set pop
+#else
+#define SYS_SOC_TYPE(sysrev)						\
+	((G_SYS_SOC_TYPE(sysrev) == K_SYS_SOC_TYPE_BCM1250_ALT		\
+	  || G_SYS_SOC_TYPE(sysrev) == K_SYS_SOC_TYPE_BCM1250_ALT2)	\
+	 ? K_SYS_SOC_TYPE_BCM1250 : G_SYS_SOC_TYPE(sysrev))
+#endif
 
 #define S_SYS_WID                   _SB_MAKE64(32)
 #define M_SYS_WID                   _SB_MAKEMASK(32,S_SYS_WID)
@@ -154,7 +209,9 @@
 #define M_SYS_MISR_MODE             _SB_MAKEMASK1(61)
 #define M_SYS_MISR_RESET            _SB_MAKEMASK1(62)
 
-#define M_SYS_SW_FLAG		    _SB_MAKEMASK1(63)	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_SYS_SW_FLAG		    _SB_MAKEMASK1(63)
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 
 /*
@@ -179,10 +236,10 @@
 #define V_SCD_WDOG_FREQ             1000000
 
 #define S_SCD_WDOG_INIT             0
-#define M_SCD_WDOG_INIT             _SB_MAKEMASK(13,S_SCD_WDOG_INIT)
+#define M_SCD_WDOG_INIT             _SB_MAKEMASK(23,S_SCD_WDOG_INIT)
 
 #define S_SCD_WDOG_CNT              0
-#define M_SCD_WDOG_CNT              _SB_MAKEMASK(13,S_SCD_WDOG_CNT)
+#define M_SCD_WDOG_CNT              _SB_MAKEMASK(23,S_SCD_WDOG_CNT)
 
 #define M_SCD_WDOG_ENABLE           _SB_MAKEMASK1(0)
 
@@ -248,48 +305,48 @@
 #define V_SCD_BERR_RID(x)         _SB_MAKEVALUE(x,S_SCD_BERR_RID)
 #define G_SCD_BERR_RID(x)         _SB_GETVALUE(x,S_SCD_BERR_RID,M_SCD_BERR_RID)
 
-#define S_SCD_BERR_DCODE            22
-#define M_SCD_BERR_DCODE            _SB_MAKEMASK(3,S_SCD_BERR_DCODE)
-#define V_SCD_BERR_DCODE(x)         _SB_MAKEVALUE(x,S_SCD_BERR_DCODE)
-#define G_SCD_BERR_DCODE(x)         _SB_GETVALUE(x,S_SCD_BERR_DCODE,M_SCD_BERR_DCODE)
+#define S_SCD_BERR_DCODE          22
+#define M_SCD_BERR_DCODE          _SB_MAKEMASK(3,S_SCD_BERR_DCODE)
+#define V_SCD_BERR_DCODE(x)       _SB_MAKEVALUE(x,S_SCD_BERR_DCODE)
+#define G_SCD_BERR_DCODE(x)       _SB_GETVALUE(x,S_SCD_BERR_DCODE,M_SCD_BERR_DCODE)
 
-#define M_SCD_BERR_MULTERRS	_SB_MAKEMASK1(30)
+#define M_SCD_BERR_MULTERRS       _SB_MAKEMASK1(30)
 
 
-#define S_SCD_L2ECC_CORR_D            0
-#define M_SCD_L2ECC_CORR_D            _SB_MAKEMASK(8,S_SCD_L2ECC_CORR_D)
-#define V_SCD_L2ECC_CORR_D(x)         _SB_MAKEVALUE(x,S_SCD_L2ECC_CORR_D)
-#define G_SCD_L2ECC_CORR_D(x)         _SB_GETVALUE(x,S_SCD_L2ECC_CORR_D,M_SCD_L2ECC_CORR_D)
+#define S_SCD_L2ECC_CORR_D        0
+#define M_SCD_L2ECC_CORR_D        _SB_MAKEMASK(8,S_SCD_L2ECC_CORR_D)
+#define V_SCD_L2ECC_CORR_D(x)     _SB_MAKEVALUE(x,S_SCD_L2ECC_CORR_D)
+#define G_SCD_L2ECC_CORR_D(x)     _SB_GETVALUE(x,S_SCD_L2ECC_CORR_D,M_SCD_L2ECC_CORR_D)
 
-#define S_SCD_L2ECC_BAD_D            8
-#define M_SCD_L2ECC_BAD_D            _SB_MAKEMASK(8,S_SCD_L2ECC_BAD_D)
-#define V_SCD_L2ECC_BAD_D(x)         _SB_MAKEVALUE(x,S_SCD_L2ECC_BAD_D)
-#define G_SCD_L2ECC_BAD_D(x)         _SB_GETVALUE(x,S_SCD_L2ECC_BAD_D,M_SCD_L2ECC_BAD_D)
+#define S_SCD_L2ECC_BAD_D         8
+#define M_SCD_L2ECC_BAD_D         _SB_MAKEMASK(8,S_SCD_L2ECC_BAD_D)
+#define V_SCD_L2ECC_BAD_D(x)      _SB_MAKEVALUE(x,S_SCD_L2ECC_BAD_D)
+#define G_SCD_L2ECC_BAD_D(x)      _SB_GETVALUE(x,S_SCD_L2ECC_BAD_D,M_SCD_L2ECC_BAD_D)
 
-#define S_SCD_L2ECC_CORR_T            16
-#define M_SCD_L2ECC_CORR_T            _SB_MAKEMASK(8,S_SCD_L2ECC_CORR_T)
-#define V_SCD_L2ECC_CORR_T(x)         _SB_MAKEVALUE(x,S_SCD_L2ECC_CORR_T)
-#define G_SCD_L2ECC_CORR_T(x)         _SB_GETVALUE(x,S_SCD_L2ECC_CORR_T,M_SCD_L2ECC_CORR_T)
+#define S_SCD_L2ECC_CORR_T        16
+#define M_SCD_L2ECC_CORR_T        _SB_MAKEMASK(8,S_SCD_L2ECC_CORR_T)
+#define V_SCD_L2ECC_CORR_T(x)     _SB_MAKEVALUE(x,S_SCD_L2ECC_CORR_T)
+#define G_SCD_L2ECC_CORR_T(x)     _SB_GETVALUE(x,S_SCD_L2ECC_CORR_T,M_SCD_L2ECC_CORR_T)
 
-#define S_SCD_L2ECC_BAD_T            24
-#define M_SCD_L2ECC_BAD_T            _SB_MAKEMASK(8,S_SCD_L2ECC_BAD_T)
-#define V_SCD_L2ECC_BAD_T(x)         _SB_MAKEVALUE(x,S_SCD_L2ECC_BAD_T)
-#define G_SCD_L2ECC_BAD_T(x)         _SB_GETVALUE(x,S_SCD_L2ECC_BAD_T,M_SCD_L2ECC_BAD_T)
+#define S_SCD_L2ECC_BAD_T         24
+#define M_SCD_L2ECC_BAD_T         _SB_MAKEMASK(8,S_SCD_L2ECC_BAD_T)
+#define V_SCD_L2ECC_BAD_T(x)      _SB_MAKEVALUE(x,S_SCD_L2ECC_BAD_T)
+#define G_SCD_L2ECC_BAD_T(x)      _SB_GETVALUE(x,S_SCD_L2ECC_BAD_T,M_SCD_L2ECC_BAD_T)
 
-#define S_SCD_MEM_ECC_CORR            0
-#define M_SCD_MEM_ECC_CORR            _SB_MAKEMASK(8,S_SCD_MEM_ECC_CORR)
-#define V_SCD_MEM_ECC_CORR(x)         _SB_MAKEVALUE(x,S_SCD_MEM_ECC_CORR)
-#define G_SCD_MEM_ECC_CORR(x)         _SB_GETVALUE(x,S_SCD_MEM_ECC_CORR,M_SCD_MEM_ECC_CORR)
+#define S_SCD_MEM_ECC_CORR        0
+#define M_SCD_MEM_ECC_CORR        _SB_MAKEMASK(8,S_SCD_MEM_ECC_CORR)
+#define V_SCD_MEM_ECC_CORR(x)     _SB_MAKEVALUE(x,S_SCD_MEM_ECC_CORR)
+#define G_SCD_MEM_ECC_CORR(x)     _SB_GETVALUE(x,S_SCD_MEM_ECC_CORR,M_SCD_MEM_ECC_CORR)
 
-#define S_SCD_MEM_ECC_BAD            16
-#define M_SCD_MEM_ECC_BAD            _SB_MAKEMASK(8,S_SCD_MEM_ECC_BAD)
-#define V_SCD_MEM_ECC_BAD(x)         _SB_MAKEVALUE(x,S_SCD_MEM_ECC_BAD)
-#define G_SCD_MEM_ECC_BAD(x)         _SB_GETVALUE(x,S_SCD_MEM_ECC_BAD,M_SCD_MEM_ECC_BAD)
+#define S_SCD_MEM_ECC_BAD         8
+#define M_SCD_MEM_ECC_BAD         _SB_MAKEMASK(8,S_SCD_MEM_ECC_BAD)
+#define V_SCD_MEM_ECC_BAD(x)      _SB_MAKEVALUE(x,S_SCD_MEM_ECC_BAD)
+#define G_SCD_MEM_ECC_BAD(x)      _SB_GETVALUE(x,S_SCD_MEM_ECC_BAD,M_SCD_MEM_ECC_BAD)
 
-#define S_SCD_MEM_BUSERR            24
-#define M_SCD_MEM_BUSERR            _SB_MAKEMASK(8,S_SCD_MEM_BUSERR)
-#define V_SCD_MEM_BUSERR(x)         _SB_MAKEVALUE(x,S_SCD_MEM_BUSERR)
-#define G_SCD_MEM_BUSERR(x)         _SB_GETVALUE(x,S_SCD_MEM_BUSERR,M_SCD_MEM_BUSERR)
+#define S_SCD_MEM_BUSERR          16
+#define M_SCD_MEM_BUSERR          _SB_MAKEMASK(8,S_SCD_MEM_BUSERR)
+#define V_SCD_MEM_BUSERR(x)       _SB_MAKEVALUE(x,S_SCD_MEM_BUSERR)
+#define G_SCD_MEM_BUSERR(x)       _SB_GETVALUE(x,S_SCD_MEM_BUSERR,M_SCD_MEM_BUSERR)
 
 
 /*
@@ -350,7 +407,9 @@
 #define M_SCD_TRACE_CFG_FREEZE_FULL     _SB_MAKEMASK1(5)
 #define M_SCD_TRACE_CFG_DEBUG_FULL      _SB_MAKEMASK1(6)
 #define M_SCD_TRACE_CFG_FULL            _SB_MAKEMASK1(7)
-#define M_SCD_TRACE_CFG_FORCECNT        _SB_MAKEMASK1(8)	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_SCD_TRACE_CFG_FORCECNT        _SB_MAKEMASK1(8)
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 #define S_SCD_TRACE_CFG_CUR_ADDR        10
 #define M_SCD_TRACE_CFG_CUR_ADDR        _SB_MAKEMASK(8,S_SCD_TRACE_CFG_CUR_ADDR)
diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/sb1250_smbus.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_smbus.h
--- linux-2.4.20/include/asm-mips/sibyte/sb1250_smbus.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_smbus.h	2003-01-21 23:11:38.000000000 -0600
@@ -1,23 +1,23 @@
 /*  *********************************************************************
     *  SB1250 Board Support Package
-    *
+    *  
     *  SMBUS Constants                          File: sb1250_smbus.h
-    *
-    *  This module contains constants and macros useful for
+    *  
+    *  This module contains constants and macros useful for 
     *  manipulating the SB1250's SMbus devices.
-    *
+    *  
     *  SB1250 specification level:  01/02/2002
-    *
+    *  
     *  Author:  Mitch Lichtenberg (mpl@broadcom.com)
+    *  
+    *********************************************************************  
     *
-    *********************************************************************
-    *
-    *  Copyright 2000,2001
+    *  Copyright 2000,2001,2002,2003
     *  Broadcom Corporation. All rights reserved.
-    *
-    *  This program is free software; you can redistribute it and/or
-    *  modify it under the terms of the GNU General Public License as
-    *  published by the Free Software Foundation; either version 2 of
+    *  
+    *  This program is free software; you can redistribute it and/or 
+    *  modify it under the terms of the GNU General Public License as 
+    *  published by the Free Software Foundation; either version 2 of 
     *  the License, or (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
@@ -27,7 +27,7 @@
     *
     *  You should have received a copy of the GNU General Public License
     *  along with this program; if not, write to the Free Software
-    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
     *  MA 02111-1307 USA
     ********************************************************************* */
 
@@ -132,11 +132,7 @@
 #define V_SPEC_MB(x)                _SB_MAKEVALUE(x,S_SPEC_PEC)
 
 
-/*  *********************************************************************
-    *  PASS2 Extensions to SMBus
-    ********************************************************************* */
-
-/* BEGIN PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
 
 #define S_SMB_CMDH                  8
 #define M_SMB_CMDH                  _SB_MAKEMASK(8,S_SMBH_CMD)
@@ -169,6 +165,6 @@
 #define V_SMB_DFMT_CMD5BYTE	    V_SMB_DFMT(K_SMB_DFMT_CMD5BYTE)
 #define V_SMB_DFMT_RESERVED	    V_SMB_DFMT(K_SMB_DFMT_RESERVED)
 
-/* END PASS2 */
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 #endif
diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/sb1250_syncser.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_syncser.h
--- linux-2.4.20/include/asm-mips/sibyte/sb1250_syncser.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_syncser.h	2003-01-21 23:11:38.000000000 -0600
@@ -7,17 +7,17 @@
     *  manipulating the SB1250's Synchronous Serial
     *
     *  SB1250 specification level:  User's manual 1/02/02
-    *
+    *  
     *  Author:  Mitch Lichtenberg (mpl@broadcom.com)
     *
     *********************************************************************
     *
-    *  Copyright 2000,2001
+    *  Copyright 2000,2001,2002,2003
     *  Broadcom Corporation. All rights reserved.
-    *
-    *  This program is free software; you can redistribute it and/or
-    *  modify it under the terms of the GNU General Public License as
-    *  published by the Free Software Foundation; either version 2 of
+    *  
+    *  This program is free software; you can redistribute it and/or 
+    *  modify it under the terms of the GNU General Public License as 
+    *  published by the Free Software Foundation; either version 2 of 
     *  the License, or (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
@@ -27,7 +27,7 @@
     *
     *  You should have received a copy of the GNU General Public License
     *  along with this program; if not, write to the Free Software
-    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
     *  MA 02111-1307 USA
     ********************************************************************* */
 
diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/sb1250_uart.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_uart.h
--- linux-2.4.20/include/asm-mips/sibyte/sb1250_uart.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_uart.h	2003-01-21 23:11:38.000000000 -0600
@@ -1,23 +1,23 @@
 /*  *********************************************************************
     *  SB1250 Board Support Package
-    *
+    *  
     *  UART Constants				File: sb1250_uart.h
-    *
-    *  This module contains constants and macros useful for
+    *  
+    *  This module contains constants and macros useful for 
     *  manipulating the SB1250's UARTs
     *
     *  SB1250 specification level:  User's manual 1/02/02
-    *
+    *  
     *  Author:  Mitch Lichtenberg (mpl@broadcom.com)
+    *  
+    *********************************************************************  
     *
-    *********************************************************************
-    *
-    *  Copyright 2000,2001
+    *  Copyright 2000,2001,2002,2003
     *  Broadcom Corporation. All rights reserved.
-    *
-    *  This program is free software; you can redistribute it and/or
-    *  modify it under the terms of the GNU General Public License as
-    *  published by the Free Software Foundation; either version 2 of
+    *  
+    *  This program is free software; you can redistribute it and/or 
+    *  modify it under the terms of the GNU General Public License as 
+    *  published by the Free Software Foundation; either version 2 of 
     *  the License, or (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
@@ -27,7 +27,7 @@
     *
     *  You should have received a copy of the GNU General Public License
     *  along with this program; if not, write to the Free Software
-    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
     *  MA 02111-1307 USA
     ********************************************************************* */
 
@@ -37,7 +37,7 @@
 
 #include "sb1250_defs.h"
 
-/* **********************************************************************
+/* ********************************************************************** 
    * DUART Registers
    ********************************************************************** */
 
@@ -97,6 +97,7 @@
 
 #define M_DUART_TX_CTS_ENA          _SB_MAKEMASK1(4)
 
+
 #define M_DUART_MODE_RESERVED2      _SB_MAKEMASK1(5)    /* must be zero */
 
 #define S_DUART_CHAN_MODE	    6
@@ -144,7 +145,7 @@
 #define V_DUART_MISC_CMD_START_BREAK     V_DUART_MISC_CMD(K_DUART_MISC_CMD_START_BREAK)
 #define V_DUART_MISC_CMD_STOP_BREAK      V_DUART_MISC_CMD(K_DUART_MISC_CMD_STOP_BREAK)
 
-#define M_DUART_CMD_RESERVED             _SB_MAKEMASK1(7)
+#define M_DUART_CMD_RESERVED             _SB_MAKEMASK1(7) 
 
 /*
  * DUART Status Register (Table 10-6)
@@ -164,7 +165,7 @@
 
 /*
  * DUART Baud Rate Register (Table 10-7)
- * Register: DUART_CLK_SEL_A
+ * Register: DUART_CLK_SEL_A 
  * Register: DUART_CLK_SEL_B
  */
 
@@ -207,6 +208,7 @@
 #define S_DUART_IN_PIN_CHNG         4
 #define M_DUART_IN_PIN_CHNG         _SB_MAKEMASK(4,S_DUART_IN_PIN_CHNG)
 
+
 /*
  * DUART Output port control register (Table 10-14)
  * Register: DUART_OPCR
@@ -329,8 +331,9 @@
 #define M_DUART_OUT_PIN_CLR(chan) \
     (chan == 0 ? M_DUART_OUT_PIN_CLR0 : M_DUART_OUT_PIN_CLR1)
 
-/*
- * Full Interrupt Control Register (PASS2)
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+/* 
+ * Full Interrupt Control Register
  */
 
 #define S_DUART_SIG_FULL           _SB_MAKE64(0)
@@ -342,6 +345,7 @@
 #define M_DUART_INT_TIME           _SB_MAKEMASK(4,S_DUART_INT_TIME)
 #define V_DUART_INT_TIME(x)        _SB_MAKEVALUE(x,S_DUART_INT_TIME)
 #define G_DUART_INT_TIME(x)        _SB_GETVALUE(x,S_DUART_INT_TIME,M_DUART_INT_TIME)
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 
 /* ********************************************************************** */
diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/sentosa.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sentosa.h
--- linux-2.4.20/include/asm-mips/sibyte/sentosa.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sentosa.h	2003-01-21 23:11:38.000000000 -0600
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2000, 2001 Broadcom Corporation
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+#ifndef __ASM_SIBYTE_SENTOSA_H
+#define __ASM_SIBYTE_SENTOSA_H
+
+#include <asm/sibyte/sb1250.h>
+#include <asm/sibyte/sb1250_int.h>
+
+#ifdef CONFIG_SIBYTE_SENTOSA
+#define SIBYTE_BOARD_NAME "BCM91250E (Sentosa)"
+#endif
+#ifdef CONFIG_SIBYTE_RHONE
+#define SIBYTE_BOARD_NAME "BCM91125E (Rhone)"
+#endif
+
+/* Generic bus chip selects */
+#ifdef CONFIG_SIBYTE_RHONE
+#define LEDS_CS         6
+#define LEDS_PHYS       0x1d0a0000
+#endif
+
+/* GPIOs */
+#define K_GPIO_DBG_LED  0
+
+#endif /* __ASM_SIBYTE_SENTOSA_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/swarm.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/swarm.h
--- linux-2.4.20/include/asm-mips/sibyte/swarm.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/swarm.h	2003-01-21 23:11:38.000000000 -0600
@@ -21,46 +21,35 @@
 #include <asm/sibyte/sb1250.h>
 #include <asm/sibyte/sb1250_int.h>
 
-#define KERNEL_RESERVED_MEM 0x100000
-
-#define LEDS_CS         3
-
 #ifdef CONFIG_SIBYTE_SWARM
+#define SIBYTE_BOARD_NAME "BCM91250A (SWARM)"
+#endif
+#ifdef CONFIG_SIBYTE_PTSWARM
+#define SIBYTE_BOARD_NAME "PTSWARM"
+#endif
+#ifdef CONFIG_SIBYTE_CRHONE
+#define SIBYTE_BOARD_NAME "BCM91125C (CRhone)"
+#endif
+#ifdef CONFIG_SIBYTE_CRHINE
+#define SIBYTE_BOARD_NAME "BCM91120C (CRhine)"
+#endif
 
 /* Generic bus chip selects */
+#define LEDS_CS         3
+#define LEDS_PHYS       0x100a0000
+#if defined(CONFIG_SIBYTE_SWARM) || defined(CONFIG_SIBYTE_PTSWARM)
 #define IDE_CS          4
+#define IDE_PHYS        0x100b0000
 #define PCMCIA_CS       6
+#define PCMCIA_PHYS     0x11000000
+#endif
 
 /* GPIOs */
+#if defined(CONFIG_SIBYTE_SWARM) || defined(CONFIG_SIBYTE_PTSWARM)
 #define K_GPIO_GB_IDE   4
 #define K_INT_GB_IDE    (K_INT_GPIO_0 + K_GPIO_GB_IDE)
 #define K_GPIO_PC_READY 9
 #define K_INT_PC_READY  (K_INT_GPIO_0 + K_GPIO_PC_READY)
-
-#endif
-
-#ifdef __ASSEMBLY__
-#define setleds(t0,t1,c0,c1,c2,c3) \
-	li	t0, (LED_BASE_ADDR|0xa0000000); \
-	li	t1, c0; \
-	sb	t1, 0x18(t0); \
-	li	t1, c1; \
-	sb	t1, 0x10(t0); \
-	li	t1, c2; \
-	sb	t1, 0x08(t0); \
-	li	t1, c3; \
-	sb	t1, 0x00(t0)
-#else
-void swarm_setup(void);
-void setleds(char *str);
-
-#define AT_spin \
-	__asm__ __volatile__ (		\
-		".set noat\n"		\
-		"li $at, 0\n"		\
-		"1: beqz $at, 1b\n"	\
-		".set at\n"		\
-		)
 #endif
 
 #endif /* __ASM_SIBYTE_SWARM_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/swarm_ide.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/swarm_ide.h
--- linux-2.4.20/include/asm-mips/sibyte/swarm_ide.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/swarm_ide.h	1969-12-31 18:00:00.000000000 -0600
@@ -1,109 +0,0 @@
-/*
- * Copyright (C) 2001 Broadcom Corporation
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- */
-
-#ifndef _SWARM_IDE_H
-#define _SWARM_IDE_H
-
-#include <asm/sibyte/sb1250_int.h>
-
-#define SWARM_IDE_BASE        (0xb00b0000-mips_io_port_base)
-#define SWARM_IDE_REG(pcaddr) (SWARM_IDE_BASE + ((pcaddr)<<5))
-#define SWARM_IDE_INT         (K_INT_GPIO_4)
-
-extern ide_ideproc_t swarm_ideproc;
-
-#define swarm_outb(val,port)							\
-do {									\
-	*(volatile u8 *)(mips_io_port_base + (port)) = val;	\
-} while(0)
-
-#define swarm_outw(val,port)							\
-do {									\
-	*(volatile u16 *)(mips_io_port_base + (port)) = val;	\
-} while(0)
-
-#define swarm_outl(val,port)							\
-do {									\
-	*(volatile u32 *)(mips_io_port_base + (port)) = val;\
-} while(0)
-
-static inline unsigned char swarm_inb(unsigned long port)
-{
-	return (*(volatile u8 *)(mips_io_port_base + port));
-}
-
-static inline unsigned short swarm_inw(unsigned long port)
-{
-	return (*(volatile u16 *)(mips_io_port_base + port));
-}
-
-static inline unsigned int swarm_inl(unsigned long port)
-{
-	return (*(volatile u32 *)(mips_io_port_base + port));
-}
-
-
-static inline void swarm_outsb(unsigned long port, void *addr, unsigned int count)
-{
-	while (count--) {
-		swarm_outb(*(u8 *)addr, port);
-		addr++;
-	}
-}
-
-static inline void swarm_insb(unsigned long port, void *addr, unsigned int count)
-{
-	while (count--) {
-		*(u8 *)addr = swarm_inb(port);
-		addr++;
-	}
-}
-
-static inline void swarm_outsw(unsigned long port, void *addr, unsigned int count)
-{
-	while (count--) {
-		swarm_outw(*(u16 *)addr, port);
-		addr += 2;
-	}
-}
-
-static inline void swarm_insw(unsigned long port, void *addr, unsigned int count)
-{
-	while (count--) {
-		*(u16 *)addr = swarm_inw(port);
-		addr += 2;
-	}
-}
-
-static inline void swarm_outsl(unsigned long port, void *addr, unsigned int count)
-{
-	while (count--) {
-		swarm_outl(*(u32 *)addr, port);
-		addr += 4;
-	}
-}
-
-static inline void swarm_insl(unsigned long port, void *addr, unsigned int count)
-{
-	while (count--) {
-		*(u32 *)addr = swarm_inl(port);
-		addr += 4;
-	}
-}
-
-#endif
diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/trace_prof.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/trace_prof.h
--- linux-2.4.20/include/asm-mips/sibyte/trace_prof.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/trace_prof.h	2003-02-07 16:00:22.000000000 -0600
@@ -0,0 +1,109 @@
+/*
+ * Copyright (C) 2001 Broadcom Corporation
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+#ifndef __ASM_SIBYTE_TRACE_PROF_H
+#define __ASM_SIBYTE_TRACE_PROF_H
+
+#if SBPROF_TB_DEBUG
+#define DBG(a) a
+#else
+#define DBG(a)
+#endif
+
+#define SBPROF_TB_MAJOR 240
+#define DEVNAME "bcm1250_tbprof"
+
+typedef u_int64_t tb_sample_t[6*256];
+
+struct sbprof_tb {
+	int          open;
+	tb_sample_t *sbprof_tbbuf;
+	int          next_tb_sample;
+
+	volatile int tb_enable;
+	volatile int tb_armed;
+
+	wait_queue_head_t tb_sync;
+	wait_queue_head_t tb_read;
+};
+
+#define MAX_SAMPLE_BYTES (24*1024*1024)
+#define MAX_TBSAMPLE_BYTES (12*1024*1024)
+
+#define MAX_SAMPLES (MAX_SAMPLE_BYTES/sizeof(u_int32_t))
+#define TB_SAMPLE_SIZE (sizeof(tb_sample_t))
+#define MAX_TB_SAMPLES (MAX_TBSAMPLE_BYTES/TB_SAMPLE_SIZE)
+
+/* IOCTLs */
+#define SBPROF_ZBSTART		_IOW('s', 0, int)
+#define SBPROF_ZBSTOP		_IOW('s', 1, int)
+#define SBPROF_ZBWAITFULL	_IOW('s', 2, int)
+
+/***************************************************************************
+ * Routines for gathering ZBbus profiles using trace buffer
+ ***************************************************************************/
+
+/* Requires: Already called zclk_timer_init with a value that won't
+	     saturate 40 bits.  No subsequent use of SCD performance counters
+	     or trace buffer.
+   Effect:   Starts gathering random ZBbus profiles using trace buffer. */
+static int sbprof_zbprof_start(struct file *filp);
+
+/* Effect: Stops collection of ZBbus profiles */
+static int sbprof_zbprof_stop(void);
+
+
+/***************************************************************************
+ * Routines for using 40-bit SCD cycle counter
+ *
+ * Client responsible for either handling interrupts or making sure
+ * the cycles counter never saturates, e.g., by doing
+ * zclk_timer_init(0) at least every 2^40 - 1 ZCLKs.
+ ***************************************************************************/
+
+/* Configures SCD counter 0 to count ZCLKs starting from val;
+   Configures SCD counters1,2,3 to count nothing.
+   Must not be called while gathering ZBbus profiles.
+
+unsigned long long val; */
+#define zclk_timer_init(val) \
+  __asm__ __volatile__ (".set push;" \
+			".set mips64;" \
+			"la   $8, 0xb00204c0;" /* SCD perf_cnt_cfg */ \
+			"sd   %0, 0x10($8);"   /* write val to counter0 */ \
+			"sd   %1, 0($8);"      /* config counter0 for zclks*/ \
+			".set pop" \
+			: /* no outputs */ \
+						     /* enable, counter0 */ \
+			: /* inputs */ "r"(val), "r" ((1ULL << 33) | 1ULL) \
+			: /* modifies */ "$8" )
+
+
+/* Reads SCD counter 0 and puts result in value
+   unsigned long long val; */
+#define zclk_get(val) \
+  __asm__ __volatile__ (".set push;" \
+			".set mips64;" \
+			"la   $8, 0xb00204c0;" /* SCD perf_cnt_cfg */ \
+			"ld   %0, 0x10($8);"   /* write val to counter0 */ \
+			".set pop" \
+			: /* outputs */ "=r"(val) \
+			: /* inputs */ \
+			: /* modifies */ "$8" )
+
+#endif /* __ASM_SIBYTE_TRACE_PROF_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips/sigcontext.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sigcontext.h
--- linux-2.4.20/include/asm-mips/sigcontext.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sigcontext.h	2002-11-07 12:49:38.000000000 -0600
@@ -18,7 +18,7 @@
 	unsigned long long sc_pc;
 	unsigned long long sc_regs[32];
 	unsigned long long sc_fpregs[32];
-	unsigned int       sc_ownedfp;
+	unsigned int       sc_ownedfp;		/* Unused */
 	unsigned int       sc_fpc_csr;
 	unsigned int       sc_fpc_eir;		/* Unused */
 	unsigned int       sc_used_math;
diff -urNd -urNd linux-2.4.20/include/asm-mips/smp.h linux-2.4.20-mipscvs-20050106/include/asm-mips/smp.h
--- linux-2.4.20/include/asm-mips/smp.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/smp.h	2002-11-28 18:11:36.000000000 -0600
@@ -1,6 +1,4 @@
 /*
- * Copyright (C) 2000, 2001 Broadcom Corporation
- *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
@@ -14,21 +12,24 @@
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *
+ * Copyright (C) 2000 - 2001 by Kanoj Sarcar (kanoj@sgi.com)
+ * Copyright (C) 2000, 2001, 2002 by Ralf Baechle
+ * Copyright (C) 2000 - 2001 by Silicon Graphics, Inc.
+ * Copyright (C) 2000, 2001 Broadcom Corporation
  */
-
-#ifndef __ASM_MIPS_SMP_H
-#define __ASM_MIPS_SMP_H
+#ifndef _ASM_SMP_H
+#define _ASM_SMP_H
 
 #include <linux/config.h>
 
 #ifdef CONFIG_SMP
 
-#include <asm/spinlock.h>
 #include <linux/threads.h>
 #include <asm/atomic.h>
 #include <asm/current.h>
 
-#define smp_processor_id()  (current->processor)
+#define smp_processor_id()	(current->processor)
 
 #define PROC_CHANGE_PENALTY	20
 
@@ -43,17 +44,6 @@
 
 #define NO_PROC_ID	(-1)
 
-struct call_data_struct {
-	void		(*func)(void *);
-	void		*info;
-	atomic_t	started;
-	atomic_t	finished;
-	int		wait;
-};
-
-extern struct call_data_struct *call_data;
-
-/* ipi types that boards must handle, one bit per type   */
 #define SMP_RESCHEDULE_YOURSELF	0x1	/* XXX braindead */
 #define SMP_CALL_FUNCTION	0x2
 
@@ -61,8 +51,8 @@
 
 typedef unsigned long   cpumask_t;
 
-#define CPUMASK_CLRALL(p)	(p) = 0
-#define CPUMASK_SETB(p, bit)	(p) |= 1 << (bit)
+#define CPUMASK_CLRALL(p)	do { (p) = 0; } while(0)
+#define CPUMASK_SETB(p, bit)	(p) |= 1UL << (bit)
 #define CPUMASK_CLRB(p, bit)	(p) &= ~(1UL << (bit))
 #define CPUMASK_TSTB(p, bit)	((p) & (1UL << (bit)))
 
@@ -91,7 +81,17 @@
 #error cpumask macros only defined for 128p kernels
 #endif
 
+struct call_data_struct {
+	void		(*func)(void *);
+	void		*info;
+	atomic_t	started;
+	atomic_t	finished;
+	int		wait;
+};
+
+extern struct call_data_struct *call_data;
+
 extern cpumask_t cpu_online_map;
 
 #endif /* CONFIG_SMP */
-#endif /* __ASM_MIPS_SMP_H */
+#endif /* _ASM_SMP_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips/sni.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sni.h
--- linux-2.4.20/include/asm-mips/sni.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sni.h	2002-08-05 18:53:37.000000000 -0500
@@ -7,8 +7,8 @@
  *
  * Copyright (C) 1997, 1998 by Ralf Baechle
  */
-#ifndef __ASM_MIPS_SNI_H 
-#define __ASM_MIPS_SNI_H 
+#ifndef __ASM_MIPS_SNI_H
+#define __ASM_MIPS_SNI_H
 
 #define SNI_PORT_BASE	0xb4000000
 
diff -urNd -urNd linux-2.4.20/include/asm-mips/stat.h linux-2.4.20-mipscvs-20050106/include/asm-mips/stat.h
--- linux-2.4.20/include/asm-mips/stat.h	2001-07-02 15:56:40.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/stat.h	2002-11-21 06:38:57.000000000 -0600
@@ -3,23 +3,6 @@
 
 #include <linux/types.h>
 
-struct __old_kernel_stat {
-	unsigned int	st_dev;
-	unsigned int	st_ino;
-	unsigned int	st_mode;
-	unsigned int	st_nlink;
-	unsigned int	st_uid;
-	unsigned int	st_gid;
-	unsigned int	st_rdev;
-	long		st_size;
-	unsigned int	st_atime, st_res1;
-	unsigned int	st_mtime, st_res2;
-	unsigned int	st_ctime, st_res3;
-	unsigned int	st_blksize;
-	int		st_blocks;
-	unsigned int	st_unused0[2];
-};
-
 struct stat {
 	dev_t		st_dev;
 	long		st_pad1[3];		/* Reserved for network id */
diff -urNd -urNd linux-2.4.20/include/asm-mips/string.h linux-2.4.20-mipscvs-20050106/include/asm-mips/string.h
--- linux-2.4.20/include/asm-mips/string.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/string.h	2002-11-18 18:35:40.000000000 -0600
@@ -58,7 +58,7 @@
         : "0" (__dest), "1" (__src), "2" (__n)
         : "memory");
 
-  return __dest;
+  return __xdest;
 }
 
 #define __HAVE_ARCH_STRCMP
diff -urNd -urNd linux-2.4.20/include/asm-mips/system.h linux-2.4.20-mipscvs-20050106/include/asm-mips/system.h
--- linux-2.4.20/include/asm-mips/system.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/system.h	2003-01-24 06:58:30.000000000 -0600
@@ -250,11 +250,6 @@
 
 struct task_struct;
 
-extern asmlinkage void lazy_fpu_switch(void *);
-extern asmlinkage void init_fpu(void);
-extern asmlinkage void save_fp(struct task_struct *);
-extern asmlinkage void restore_fp(struct task_struct *);
-
 #define switch_to(prev,next,last) \
 do { \
 	(last) = resume(prev, next); \
@@ -288,11 +283,10 @@
 #else
 	unsigned long flags, retval;
 
-	save_flags(flags);
-	cli();
+	local_irq_save(flags);
 	retval = *m;
 	*m = val;
-	restore_flags(flags);	/* implies memory barrier  */
+	local_irq_restore(flags);	/* implies memory barrier  */
 	return retval;
 #endif /* Processor-dependent optimization */
 }
diff -urNd -urNd linux-2.4.20/include/asm-mips/timex.h linux-2.4.20-mipscvs-20050106/include/asm-mips/timex.h
--- linux-2.4.20/include/asm-mips/timex.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/timex.h	2002-12-01 18:24:53.000000000 -0600
@@ -7,8 +7,10 @@
  *
  * FIXME: For some of the supported machines this is dead wrong.
  */
-#ifndef __ASM_MIPS_TIMEX_H
-#define __ASM_MIPS_TIMEX_H
+#ifndef _ASM_TIMEX_H
+#define _ASM_TIMEX_H
+
+#include <asm/mipsregs.h>
 
 #define CLOCK_TICK_RATE	1193180 /* Underlying HZ */
 #define CLOCK_TICK_FACTOR	20	/* Factor of both 1000000 and CLOCK_TICK_RATE */
@@ -16,7 +18,6 @@
 	(1000000/CLOCK_TICK_FACTOR) / (CLOCK_TICK_RATE/CLOCK_TICK_FACTOR)) \
 		<< (SHIFT_SCALE-SHIFT_HZ)) / HZ)
 
-#ifdef __KERNEL__
 /*
  * Standard way to access the cycle counter.
  * Currently only used on SMP for scheduling.
@@ -33,11 +34,10 @@
 
 static inline cycles_t get_cycles (void)
 {
-	return read_32bit_cp0_register(CP0_COUNT);
+	return read_c0_count();
 }
-#endif /* __KERNEL__ */
 
 #define vxtime_lock()		do {} while (0)
 #define vxtime_unlock()		do {} while (0)
 
-#endif /*  __ASM_MIPS_TIMEX_H */
+#endif /*  _ASM_TIMEX_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips/tlbdebug.h linux-2.4.20-mipscvs-20050106/include/asm-mips/tlbdebug.h
--- linux-2.4.20/include/asm-mips/tlbdebug.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/tlbdebug.h	2002-09-15 18:32:24.000000000 -0500
@@ -0,0 +1,20 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * Copyright (C) 2002 by Ralf Baechle
+ */
+#ifndef __ASM_TLBDEBUG_H
+#define __ASM_TLBDEBUG_H
+
+/*
+ * TLB debugging functions:
+ */
+extern void dump_tlb(int first, int last);
+extern void dump_tlb_all(void);
+extern void dump_tlb_wired(void);
+extern void dump_tlb_addr(unsigned long addr);
+extern void dump_tlb_nonwired(void);
+
+#endif /* __ASM_TLBDEBUG_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips/unistd.h linux-2.4.20-mipscvs-20050106/include/asm-mips/unistd.h
--- linux-2.4.20/include/asm-mips/unistd.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/unistd.h	2002-11-06 15:00:09.000000000 -0600
@@ -27,7 +27,7 @@
 #define __NR_chmod			(__NR_Linux +  15)
 #define __NR_lchown			(__NR_Linux +  16)
 #define __NR_break			(__NR_Linux +  17)
-#define __NR_oldstat			(__NR_Linux +  18)
+#define __NR_unused18			(__NR_Linux +  18)
 #define __NR_lseek			(__NR_Linux +  19)
 #define __NR_getpid			(__NR_Linux +  20)
 #define __NR_mount			(__NR_Linux +  21)
@@ -37,7 +37,7 @@
 #define __NR_stime			(__NR_Linux +  25)
 #define __NR_ptrace			(__NR_Linux +  26)
 #define __NR_alarm			(__NR_Linux +  27)
-#define __NR_oldfstat			(__NR_Linux +  28)
+#define __NR_unused28			(__NR_Linux +  28)
 #define __NR_pause			(__NR_Linux +  29)
 #define __NR_utime			(__NR_Linux +  30)
 #define __NR_stty			(__NR_Linux +  31)
@@ -93,7 +93,7 @@
 #define __NR_setgroups			(__NR_Linux +  81)
 #define __NR_reserved82			(__NR_Linux +  82)
 #define __NR_symlink			(__NR_Linux +  83)
-#define __NR_oldlstat			(__NR_Linux +  84)
+#define __NR_unused84			(__NR_Linux +  84)
 #define __NR_readlink			(__NR_Linux +  85)
 #define __NR_uselib			(__NR_Linux +  86)
 #define __NR_swapon			(__NR_Linux +  87)
diff -urNd -urNd linux-2.4.20/include/asm-mips/vr4181/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/vr4181/CVS/Entries
--- linux-2.4.20/include/asm-mips/vr4181/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr4181/CVS/Entries	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1,3 @@
+/irq.h/1.1.2.1/Mon Aug  5 23:53:39 2002/-ko/Tlinux_2_4_20
+/vr4181.h/1.1.2.2/Mon Aug  5 23:53:39 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-mips/vr4181/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/vr4181/CVS/Repository
--- linux-2.4.20/include/asm-mips/vr4181/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr4181/CVS/Repository	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-mips/vr4181
diff -urNd -urNd linux-2.4.20/include/asm-mips/vr4181/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/vr4181/CVS/Root
--- linux-2.4.20/include/asm-mips/vr4181/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr4181/CVS/Root	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-mips/vr4181/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/vr4181/CVS/Tag
--- linux-2.4.20/include/asm-mips/vr4181/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr4181/CVS/Tag	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-mips/vr4181/irq.h linux-2.4.20-mipscvs-20050106/include/asm-mips/vr4181/irq.h
--- linux-2.4.20/include/asm-mips/vr4181/irq.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr4181/irq.h	2002-08-05 18:53:39.000000000 -0500
@@ -33,19 +33,19 @@
 
 /* CPU interrupts */
 
-/* 
-   IP0 - Software interrupt 
-   IP1 - Software interrupt 
-   IP2 - All but battery, high speed modem, and real time clock 
-   IP3 - RTC Long1 (system timer) 
-   IP4 - RTC Long2 
-   IP5 - High Speed Modem (unused on VR4181) 
-   IP6 - Unused 
-   IP7 - Timer interrupt from CPO_COMPARE 
+/*
+   IP0 - Software interrupt
+   IP1 - Software interrupt
+   IP2 - All but battery, high speed modem, and real time clock
+   IP3 - RTC Long1 (system timer)
+   IP4 - RTC Long2
+   IP5 - High Speed Modem (unused on VR4181)
+   IP6 - Unused
+   IP7 - Timer interrupt from CPO_COMPARE
 */
 
-#define VR4181_IRQ_SW1       (VR4181_CPU_IRQ_BASE + 0)  
-#define VR4181_IRQ_SW2       (VR4181_CPU_IRQ_BASE + 1)  
+#define VR4181_IRQ_SW1       (VR4181_CPU_IRQ_BASE + 0)
+#define VR4181_IRQ_SW2       (VR4181_CPU_IRQ_BASE + 1)
 #define VR4181_IRQ_INT0      (VR4181_CPU_IRQ_BASE + 2)
 #define VR4181_IRQ_INT1      (VR4181_CPU_IRQ_BASE + 3)
 #define VR4181_IRQ_INT2      (VR4181_CPU_IRQ_BASE + 4)
@@ -56,7 +56,7 @@
 
 /* Cascaded from VR4181_IRQ_INT0 (ICU mapped interrupts) */
 
-/* 
+/*
    IP2 - same as VR4181_IRQ_INT1
    IP8 - This is a cascade to GPIO IRQ's. Do not use.
    IP16 - same as VR4181_IRQ_INT2
diff -urNd -urNd linux-2.4.20/include/asm-mips/vr4181/vr4181.h linux-2.4.20-mipscvs-20050106/include/asm-mips/vr4181/vr4181.h
--- linux-2.4.20/include/asm-mips/vr4181/vr4181.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr4181/vr4181.h	2002-08-05 18:53:39.000000000 -0500
@@ -4,13 +4,13 @@
  * for more details.
  *
  * Copyright (C) 1999 by Michael Klar
- * 
+ *
  * Copyright 2001 MontaVista Software Inc.
  * Author: jsun@mvista.com or jsun@junsun.net
  *
  */
-#ifndef __ASM_VR4181_VR4181_H 
-#define __ASM_VR4181_VR4181_H 
+#ifndef __ASM_VR4181_VR4181_H
+#define __ASM_VR4181_VR4181_H
 
 #include <asm/addrspace.h>
 
diff -urNd -urNd linux-2.4.20/include/asm-mips/vr41xx/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/CVS/Entries
--- linux-2.4.20/include/asm-mips/vr41xx/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/CVS/Entries	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1,9 @@
+/capcella.h/1.1.2.1/Mon Jul 15 00:02:57 2002/-ko/Tlinux_2_4_20
+/e55.h/1.1.2.1/Thu Oct  3 16:58:02 2002/-ko/Tlinux_2_4_20
+/eagle.h/1.1.2.3/Thu Oct  3 16:58:02 2002/-ko/Tlinux_2_4_20
+/mpc30x.h/1.1.2.1/Thu Oct  3 16:58:02 2002/-ko/Tlinux_2_4_20
+/tb0226.h/1.1.2.1/Tue Feb  4 12:43:06 2003/-ko/Tlinux_2_4_20
+/vr41xx.h/1.1.2.3/Thu Oct  3 16:58:02 2002/-ko/Tlinux_2_4_20
+/vrc4173.h/1.1.2.1/Thu Dec 12 01:10:10 2002/-ko/Tlinux_2_4_20
+/workpad.h/1.1.2.1/Thu Oct  3 16:58:02 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-mips/vr41xx/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/CVS/Repository
--- linux-2.4.20/include/asm-mips/vr41xx/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/CVS/Repository	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-mips/vr41xx
diff -urNd -urNd linux-2.4.20/include/asm-mips/vr41xx/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/CVS/Root
--- linux-2.4.20/include/asm-mips/vr41xx/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/CVS/Root	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-mips/vr41xx/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/CVS/Tag
--- linux-2.4.20/include/asm-mips/vr41xx/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/CVS/Tag	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-mips/vr41xx/e55.h linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/e55.h
--- linux-2.4.20/include/asm-mips/vr41xx/e55.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/e55.h	2002-10-03 11:58:02.000000000 -0500
@@ -0,0 +1,37 @@
+/*
+ * FILE NAME
+ *	include/asm-mips/vr41xx/e55.h
+ *
+ * BRIEF MODULE DESCRIPTION
+ *	Include file for CASIO CASSIOPEIA E-10/15/55/65.
+ *
+ * Copyright 2002 Yoichi Yuasa
+ *                yuasa@hh.iij4u.or.jp
+ *
+ *  This program is free software; you can redistribute it and/or modify it
+ *  under the terms of the GNU General Public License as published by the
+ *  Free Software Foundation; either version 2 of the License, or (at your
+ *  option) any later version.
+ */
+#ifndef __CASIO_E55_H
+#define __CASIO_E55_H
+
+#include <asm/addrspace.h>
+#include <asm/vr41xx/vr41xx.h>
+
+/*
+ * Board specific address mapping
+ */
+#define VR41XX_ISA_MEM_BASE		0x10000000
+#define VR41XX_ISA_MEM_SIZE		0x04000000
+
+#define VR41XX_ISA_IO_BASE		0x14000000
+#define VR41XX_ISA_IO_SIZE		0x04000000
+
+#define IO_PORT_BASE			KSEG1ADDR(VR41XX_ISA_IO_BASE)
+#define IO_PORT_RESOURCE_START		0
+#define IO_PORT_RESOURCE_END		VR41XX_ISA_IO_SIZE
+#define IO_MEM_RESOURCE_START		VR41XX_ISA_MEM_BASE
+#define IO_MEM_RESOURCE_END		(VR41XX_ISA_MEM_BASE + VR41XX_ISA_MEM_SIZE)
+
+#endif /* __CASIO_E55_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips/vr41xx/eagle.h linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/eagle.h
--- linux-2.4.20/include/asm-mips/vr41xx/eagle.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/eagle.h	2002-10-03 11:58:02.000000000 -0500
@@ -81,7 +81,7 @@
 #define FPGA_CASCADE_IRQ		GIU_IRQ(FPGA_PIN)
 #define DCD_IRQ				GIU_IRQ(DCD_PIN)
 
-#define SDBINT_IRQ_BASE			89
+#define SDBINT_IRQ_BASE			88
 #define DEG_IRQ				(SDBINT_IRQ_BASE + 1)
 #define ENUM_IRQ			(SDBINT_IRQ_BASE + 2)
 #define SIO1INT_IRQ			(SDBINT_IRQ_BASE + 3)
@@ -89,7 +89,7 @@
 #define PARINT_IRQ			(SDBINT_IRQ_BASE + 5)
 #define SDBINT_IRQ_LAST			PARINT_IRQ
 
-#define PCIINT_IRQ_BASE			97
+#define PCIINT_IRQ_BASE			96
 #define CP_INTA_IRQ			(PCIINT_IRQ_BASE + 0)
 #define CP_INTB_IRQ			(PCIINT_IRQ_BASE + 1)
 #define CP_INTC_IRQ			(PCIINT_IRQ_BASE + 2)
@@ -97,7 +97,6 @@
 #define LANINTA_IRQ			(PCIINT_IRQ_BASE + 4)
 #define PCIINT_IRQ_LAST			LANINTA_IRQ
 
-
 /*
  * On board Devices I/O Mapping
  */
@@ -134,7 +133,6 @@
 #define NEC_EAGLE_PIOECP_CONFIG		KSEG1ADDR(0x0DFFFEF2)
 #define NEC_EAGLE_PIOECP_EXTCNT		KSEG1ADDR(0x0DFFFEF4)
 
-
 /*
  *  FLSHCNT Register
  */
@@ -143,7 +141,6 @@
 #define NEC_EAGLE_FLSHCNT_VPPE		0x40
 #define NEC_EAGLE_FLSHCNT_WP2		0x01
 
-
 /*
  * FLSHBANK Register
  */
@@ -156,7 +153,6 @@
 #define NEC_EAGLE_FLSHBANK_BNKQ1	0x02
 #define NEC_EAGLE_FLSHBANK_BNKQ0	0x01
 
-
 /*
  * SWITCH Setting Register
  */
@@ -170,7 +166,6 @@
 #define NEC_EAGLE_SWTCHSET_DP1SW2	0x02
 #define NEC_EAGLE_SWTCHSET_DP1SW1	0x01
 
-
 /*
  * PPT Parallel Port Device Controller
  */
@@ -196,14 +191,12 @@
 #define NEC_EAGLE_PPT_SELECT		0x02
 #define NEC_EAGLE_PPT_FAULT		0x01
 
-
 /*
  * LEDWR Register
  */
 #define NEC_EAGLE_LEDWR1		KSEG1ADDR(0x0DFFFFC0)
 #define NEC_EAGLE_LEDWR2		KSEG1ADDR(0x0DFFFFC4)
 
-
 /*
  * SDBINT Register
  */
@@ -214,7 +207,6 @@
 #define NEC_EAGLE_SDBINT_ENUM		0x04
 #define NEC_EAGLE_SDBINT_DEG		0x02
 
-
 /*
  * SDB INTMSK Register
  */
@@ -225,7 +217,6 @@
 #define NEC_EAGLE_SDBINTMSK_MSKENUM	0x04
 #define NEC_EAGLE_SDBINTMSK_MSKDEG	0x02
 
-
 /*
  * RSTREG Register
  */
@@ -233,7 +224,6 @@
 #define NEC_EAGLE_RST_RSTSW		0x02
 #define NEC_EAGLE_RST_LEDOFF		0x01
 
-
 /*
  * PCI INT Rgister
  */
@@ -244,7 +234,6 @@
 #define NEC_EAGLE_PCIINT_CP_INTB	0x02
 #define NEC_EAGLE_PCIINT_CP_INTA	0x01
 
-
 /*
  * PCI INT Mask Register
  */
@@ -255,7 +244,6 @@
 #define NEC_EAGLE_PCIINTMSK_MSKCP_INTB	0x02
 #define NEC_EAGLE_PCIINTMSK_MSKCP_INTA	0x01
 
-
 /*
  * CLK Division Register
  */
@@ -266,7 +254,6 @@
 #define NEC_EAGLE_CLKDIV_VTDIV1		0x02
 #define NEC_EAGLE_CLKDIV_VTDIV0		0x01
 
-
 /*
  * Source Revision Register
  */
diff -urNd -urNd linux-2.4.20/include/asm-mips/vr41xx/mpc30x.h linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/mpc30x.h
--- linux-2.4.20/include/asm-mips/vr41xx/mpc30x.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/mpc30x.h	2002-10-03 11:58:02.000000000 -0500
@@ -0,0 +1,71 @@
+/*
+ * FILE NAME
+ *	include/asm-mips/vr41xx/mpc30x.h
+ *
+ * BRIEF MODULE DESCRIPTION
+ *	Include file for Victor MP-C303/304.
+ *
+ * Copyright 2002 Yoichi Yuasa
+ *                yuasa@hh.iij4u.or.jp
+ *
+ *  This program is free software; you can redistribute it and/or modify it
+ *  under the terms of the GNU General Public License as published by the
+ *  Free Software Foundation; either version 2 of the License, or (at your
+ *  option) any later version.
+ */
+#ifndef __VICTOR_MPC30X_H
+#define __VICTOR_MPC30X_H
+
+#include <linux/config.h>
+
+#include <asm/addrspace.h>
+#include <asm/vr41xx/vr41xx.h>
+
+/*
+ * Board specific address mapping
+ */
+#define VR41XX_PCI_MEM1_BASE		0x10000000
+#define VR41XX_PCI_MEM1_SIZE		0x04000000
+#define VR41XX_PCI_MEM1_MASK		0x7c000000
+
+#define VR41XX_PCI_MEM2_BASE		0x14000000
+#define VR41XX_PCI_MEM2_SIZE		0x02000000
+#define VR41XX_PCI_MEM2_MASK		0x7e000000
+
+#define VR41XX_PCI_IO_BASE		0x16000000
+#define VR41XX_PCI_IO_SIZE		0x02000000
+#define VR41XX_PCI_IO_MASK		0x7e000000
+
+#define VR41XX_PCI_IO_START		0x01000000
+#define VR41XX_PCI_IO_END		0x01ffffff
+
+#define VR41XX_PCI_MEM_START		0x12000000
+#define VR41XX_PCI_MEM_END		0x15ffffff
+
+#define IO_PORT_BASE			KSEG1ADDR(VR41XX_PCI_IO_BASE)
+#define IO_PORT_RESOURCE_START		0
+#define IO_PORT_RESOURCE_END		VR41XX_PCI_IO_SIZE
+#define IO_MEM1_RESOURCE_START		VR41XX_PCI_MEM1_BASE
+#define IO_MEM1_RESOURCE_END		(VR41XX_PCI_MEM1_BASE + VR41XX_PCI_MEM1_SIZE)
+#define IO_MEM2_RESOURCE_START		VR41XX_PCI_MEM2_BASE
+#define IO_MEM2_RESOURCE_END		(VR41XX_PCI_MEM2_BASE + VR41XX_PCI_MEM2_SIZE)
+
+/*
+ * Interrupt Number
+ */
+#define VRC4173_CASCADE_IRQ		GIU_IRQ(1)
+#define MQ200_IRQ			GIU_IRQ(4)
+
+#ifdef CONFIG_VRC4173
+
+#define VRC4173_IRQ_BASE		72
+#define USB_IRQ				(VRC4173_IRQ_BASE + 0)
+#define PCMCIA2_IRQ			(VRC4173_IRQ_BASE + 1)
+#define PCMCIA1_IRQ			(VRC4173_IRQ_BASE + 2)
+#define PIU_IRQ				(VRC4173_IRQ_BASE + 5)
+#define KIU_IRQ				(VRC4173_IRQ_BASE + 7)
+#define AC97_IRQ			(VRC4173_IRQ_BASE + 9)
+
+#endif	/* CONFIG_VRC4173 */
+
+#endif /* __VICTOR_MPC30X_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips/vr41xx/tb0226.h linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/tb0226.h
--- linux-2.4.20/include/asm-mips/vr41xx/tb0226.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/tb0226.h	2003-02-04 06:43:06.000000000 -0600
@@ -0,0 +1,69 @@
+/*
+ * FILE NAME
+ *	include/asm-mips/vr41xx/tb0226.h
+ *
+ * BRIEF MODULE DESCRIPTION
+ *	Include file for TANBAC TB0226.
+ *
+ * Copyright 2002,2003 Yoichi Yuasa
+ *                yuasa@hh.iij4u.or.jp
+ *
+ *  This program is free software; you can redistribute it and/or modify it
+ *  under the terms of the GNU General Public License as published by the
+ *  Free Software Foundation; either version 2 of the License, or (at your
+ *  option) any later version.
+ */
+#ifndef __TANBAC_TB0226_H
+#define __TANBAC_TB0226_H
+
+#include <asm/addrspace.h>
+#include <asm/vr41xx/vr41xx.h>
+
+/*
+ * Board specific address mapping
+ */
+#define VR41XX_PCI_MEM1_BASE		0x10000000
+#define VR41XX_PCI_MEM1_SIZE		0x04000000
+#define VR41XX_PCI_MEM1_MASK		0x7c000000
+
+#define VR41XX_PCI_MEM2_BASE		0x14000000
+#define VR41XX_PCI_MEM2_SIZE		0x02000000
+#define VR41XX_PCI_MEM2_MASK		0x7e000000
+
+#define VR41XX_PCI_IO_BASE		0x16000000
+#define VR41XX_PCI_IO_SIZE		0x02000000
+#define VR41XX_PCI_IO_MASK		0x7e000000
+
+#define VR41XX_PCI_IO_START		0x01000000
+#define VR41XX_PCI_IO_END		0x01ffffff
+
+#define VR41XX_PCI_MEM_START		0x12000000
+#define VR41XX_PCI_MEM_END		0x15ffffff
+
+#define IO_PORT_BASE			KSEG1ADDR(VR41XX_PCI_IO_BASE)
+#define IO_PORT_RESOURCE_START		0
+#define IO_PORT_RESOURCE_END		VR41XX_PCI_IO_SIZE
+#define IO_MEM1_RESOURCE_START		VR41XX_PCI_MEM1_BASE
+#define IO_MEM1_RESOURCE_END		(VR41XX_PCI_MEM1_BASE + VR41XX_PCI_MEM1_SIZE)
+#define IO_MEM2_RESOURCE_START		VR41XX_PCI_MEM2_BASE
+#define IO_MEM2_RESOURCE_END		(VR41XX_PCI_MEM2_BASE + VR41XX_PCI_MEM2_SIZE)
+
+/*
+ * General-Purpose I/O Pin Number
+ */
+#define GD82559_1_PIN			2
+#define GD82559_2_PIN			3
+#define UPD720100_INTA_PIN		4
+#define UPD720100_INTB_PIN		8
+#define UPD720100_INTC_PIN		13
+
+/*
+ * Interrupt Number
+ */
+#define GD82559_1_IRQ			GIU_IRQ(GD82559_1_PIN)
+#define GD82559_2_IRQ			GIU_IRQ(GD82559_2_PIN)
+#define UPD720100_INTA_IRQ		GIU_IRQ(UPD720100_INTA_PIN)
+#define UPD720100_INTB_IRQ		GIU_IRQ(UPD720100_INTB_PIN)
+#define UPD720100_INTC_IRQ		GIU_IRQ(UPD720100_INTC_PIN)
+
+#endif /* __TANBAC_TB0226_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips/vr41xx/vr41xx.h linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/vr41xx.h
--- linux-2.4.20/include/asm-mips/vr41xx/vr41xx.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/vr41xx.h	2002-10-03 11:58:02.000000000 -0500
@@ -38,7 +38,6 @@
 #define PRID_VR4131_REV2_1	0x00000c82
 #define PRID_VR4131_REV2_2	0x00000c83
 
-
 /*
  * Bus Control Uint
  */
@@ -64,6 +63,10 @@
 /*
  * Gegeral-Purpose I/O Unit
  */
+extern void vr41xx_enable_giuint(int pin);
+extern void vr41xx_disable_giuint(int pin);
+extern void vr41xx_clear_giuint(int pin);
+
 enum {
 	TRIGGER_LEVEL,
 	TRIGGER_EDGE
@@ -74,14 +77,14 @@
 	SIGNAL_HOLD
 };
 
-extern void vr41xx_set_irq_trigger(u8 pin, u8 trigger, u8 hold);
+extern void vr41xx_set_irq_trigger(int pin, int trigger, int hold);
 
 enum {
 	LEVEL_LOW,
 	LEVEL_HIGH
 };
 
-extern void vr41xx_set_irq_level(u8 pin, u8 level);
+extern void vr41xx_set_irq_level(int pin, int level);
 
 enum {
 	PIO_INPUT,
diff -urNd -urNd linux-2.4.20/include/asm-mips/vr41xx/vrc4173.h linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/vrc4173.h
--- linux-2.4.20/include/asm-mips/vr41xx/vrc4173.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/vrc4173.h	2002-12-11 19:10:10.000000000 -0600
@@ -0,0 +1,91 @@
+/*
+ * FILE NAME
+ *	include/asm-mips/vr41xx/vrc4173.h
+ *
+ * BRIEF MODULE DESCRIPTION
+ *	Include file for NEC VRC4173.
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * Copyright (C) 2000 by Michael R. McDonald
+ *
+ * Copyright 2001,2002 Montavista Software Inc.
+ * Author: Yoichi Yuasa
+ *         yyuasa@mvista.com or source@mvista.com
+ */
+#ifndef __NEC_VRC4173_H 
+#define __NEC_VRC4173_H 
+
+#include <asm/io.h>
+
+/*
+ * Interrupt Number
+ */
+#define VRC4173_IRQ_BASE	72
+#define VRC4173_USB_IRQ		(VRC4173_IRQ_BASE + 0)
+#define VRC4173_PCMCIA2_IRQ	(VRC4173_IRQ_BASE + 1)
+#define VRC4173_PCMCIA1_IRQ	(VRC4173_IRQ_BASE + 2)
+#define VRC4173_PS2CH2_IRQ	(VRC4173_IRQ_BASE + 3)
+#define VRC4173_PS2CH1_IRQ	(VRC4173_IRQ_BASE + 4)
+#define VRC4173_PIU_IRQ		(VRC4173_IRQ_BASE + 5)
+#define VRC4173_AIU_IRQ		(VRC4173_IRQ_BASE + 6)
+#define VRC4173_KIU_IRQ		(VRC4173_IRQ_BASE + 7)
+#define VRC4173_GIU_IRQ		(VRC4173_IRQ_BASE + 8)
+#define VRC4173_AC97_IRQ	(VRC4173_IRQ_BASE + 9)
+#define VRC4173_AC97INT1_IRQ	(VRC4173_IRQ_BASE + 10)
+#define VRC4173_DOZEPIU_IRQ	(VRC4173_IRQ_BASE + 13)
+#define VRC4173_IRQ_LAST	VRC4173_DOZEPIU_IRQ
+
+/*
+ * PCI I/O accesses
+ */
+extern unsigned long vrc4173_io_offset;
+
+#define set_vrc4173_io_offset(offset)	do { vrc4173_io_offset = (offset); } while (0)
+
+#define vrc4173_outb(val,port)		outb((val), vrc4173_io_offset+(port))
+#define vrc4173_outw(val,port)		outw((val), vrc4173_io_offset+(port))
+#define vrc4173_outl(val,port)		outl((val), vrc4173_io_offset+(port))
+#define vrc4173_outb_p(val,port)	outb_p((val), vrc4173_io_offset+(port))
+#define vrc4173_outw_p(val,port)	outw_p((val), vrc4173_io_offset+(port))
+#define vrc4173_outl_p(val,port)	outl_p((val), vrc4173_io_offset+(port))
+
+#define vrc4173_inb(port)		inb(vrc4173_io_offset+(port))
+#define vrc4173_inw(port)		inw(vrc4173_io_offset+(port))
+#define vrc4173_inl(port)		inl(vrc4173_io_offset+(port))
+#define vrc4173_inb_p(port)		inb_p(vrc4173_io_offset+(port))
+#define vrc4173_inw_p(port)		inw_p(vrc4173_io_offset+(port))
+#define vrc4173_inl_p(port)		inl_p(vrc4173_io_offset+(port))
+
+#define vrc4173_outsb(port,addr,count)	outsb(vrc4173_io_offset+(port),(addr),(count))
+#define vrc4173_outsw(port,addr,count)	outsw(vrc4173_io_offset+(port),(addr),(count))
+#define vrc4173_outsl(port,addr,count)	outsl(vrc4173_io_offset+(port),(addr),(count))
+
+#define vrc4173_insb(port,addr,count)	insb(vrc4173_io_offset+(port),(addr),(count))
+#define vrc4173_insw(port,addr,count)	insw(vrc4173_io_offset+(port),(addr),(count))
+#define vrc4173_insl(port,addr,count)	insl(vrc4173_io_offset+(port),(addr),(count))
+
+/*
+ * Clock Mask Unit
+ */
+extern void vrc4173_clock_supply(u16 mask);
+extern void vrc4173_clock_mask(u16 mask);
+
+/*
+ * General-Purpose I/O Unit
+ */
+enum {
+	PS2CH1_SELECT,
+	PS2CH2_SELECT,
+	TOUCHPANEL_SELECT,
+	KIU8_SELECT,
+	KIU10_SELECT,
+	KIU12_SELECT,
+	GPIO_SELECT
+};
+
+extern void vrc4173_select_function(int func);
+
+#endif /* __NEC_VRC4173_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips/vr41xx/workpad.h linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/workpad.h
--- linux-2.4.20/include/asm-mips/vr41xx/workpad.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/workpad.h	2002-10-03 11:58:02.000000000 -0500
@@ -0,0 +1,38 @@
+/*
+ * FILE NAME
+ *	include/asm-mips/vr41xx/workpad.h
+ *
+ * BRIEF MODULE DESCRIPTION
+ *	Include file for IBM WorkPad z50.
+ *
+ * Copyright 2002 Yoichi Yuasa
+ *                yuasa@hh.iij4u.or.jp
+ *
+ *  This program is free software; you can redistribute it and/or modify it
+ *  under the terms of the GNU General Public License as published by the
+ *  Free Software Foundation; either version 2 of the License, or (at your
+ *  option) any later version.
+ */
+#ifndef __IBM_WORKPAD_H
+#define __IBM_WORKPAD_H
+
+#include <asm/addrspace.h>
+#include <asm/vr41xx/vr41xx.h>
+
+/*
+ * Board specific address mapping
+ */
+#define VR41XX_ISA_MEM_BASE		0x100000000
+#define VR41XX_ISA_MEM_SIZE		0x04000000
+
+/* VR41XX_ISA_IO_BASE includes offset from real base. */
+#define VR41XX_ISA_IO_BASE		0x15000000
+#define VR41XX_ISA_IO_SIZE		0x03000000
+
+#define IO_PORT_BASE			KSEG1ADDR(VR41XX_ISA_IO_BASE)
+#define IO_PORT_RESOURCE_START		0
+#define IO_PORT_RESOURCE_END		VR41XX_ISA_IO_SIZE
+#define IO_MEM_RESOURCE_START		VR41XX_ISA_MEM_BASE
+#define IO_MEM_RESOURCE_END		(VR41XX_ISA_MEM_BASE + VR41XX_ISA_MEM_SIZE)
+
+#endif /* __IBM_WORKPAD_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips/war.h linux-2.4.20-mipscvs-20050106/include/asm-mips/war.h
--- linux-2.4.20/include/asm-mips/war.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/war.h	2003-01-29 10:39:00.000000000 -0600
@@ -67,4 +67,21 @@
 
 #endif
 
+#if defined(CONFIG_SB1_PASS_1_WORKAROUNDS) || \
+    defined(CONFIG_SB1_PASS_2_WORKAROUNDS)
+
+/*
+ * Workaround for the Sibyte M3 errata the text of which can be found at
+ *
+ *   http://sibyte.broadcom.com/hw/bcm1250/docs/pass2errata.txt
+ *
+ * This will enable the use of a special TLB refill handler which does a
+ * consistency check on the information in c0_badvaddr and c0_entryhi and
+ * will just return and take the exception again if the information was
+ * found to be inconsistent.
+ */
+#define BCM1250_M3_WAR
+
+#endif
+
 #endif /* _ASM_WAR_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/addrspace.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/addrspace.h
--- linux-2.4.20/include/asm-mips64/addrspace.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/addrspace.h	2002-10-23 09:24:20.000000000 -0500
@@ -58,7 +58,7 @@
 
 #ifndef __ASSEMBLY__
 #define PHYSADDR(a) ({						\
-	const _ATYPE64_ _a = (a);				\
+	const _ATYPE64_ _a = _ACAST64_ (a);			\
 	_a == _ACAST32_ _a ? CPHYSADDR(_a) : XPHYSADDR(_a); })
 #endif
 
diff -urNd -urNd linux-2.4.20/include/asm-mips64/a.out.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/a.out.h
--- linux-2.4.20/include/asm-mips64/a.out.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/a.out.h	2003-02-20 13:46:34.000000000 -0600
@@ -26,7 +26,7 @@
 
 #ifdef __KERNEL__
 
-#define STACK_TOP (current->thread.mflags & MF_32BIT ? TASK_SIZE32 : TASK_SIZE)
+#define STACK_TOP (current->thread.mflags & MF_32BIT_ADDR ? TASK_SIZE32 : TASK_SIZE)
 
 #endif
 
diff -urNd -urNd linux-2.4.20/include/asm-mips64/arc/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips64/arc/CVS/Entries
--- linux-2.4.20/include/asm-mips64/arc/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/arc/CVS/Entries	2005-01-06 23:06:53.000000000 -0600
@@ -0,0 +1,3 @@
+/hinv.h/1.2/Mon Jul  9 00:25:38 2001/-ko/Tlinux_2_4_20
+/types.h/1.3/Mon Jan 17 23:32:47 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-mips64/arc/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips64/arc/CVS/Repository
--- linux-2.4.20/include/asm-mips64/arc/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/arc/CVS/Repository	2005-01-06 23:06:53.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-mips64/arc
diff -urNd -urNd linux-2.4.20/include/asm-mips64/arc/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips64/arc/CVS/Root
--- linux-2.4.20/include/asm-mips64/arc/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/arc/CVS/Root	2005-01-06 23:06:53.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-mips64/arc/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips64/arc/CVS/Tag
--- linux-2.4.20/include/asm-mips64/arc/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/arc/CVS/Tag	2005-01-06 23:06:53.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-mips64/asm.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/asm.h
--- linux-2.4.20/include/asm-mips64/asm.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/asm.h	2003-01-07 17:51:51.000000000 -0600
@@ -128,8 +128,7 @@
  * MIPS IV implementations are free to treat this as a nop.  The R5000
  * is one of them.  So we should have an option not to use this instruction.
  */
-#if (_MIPS_ISA == _MIPS_ISA_MIPS4 ) || (_MIPS_ISA == _MIPS_ISA_MIPS5) || \
-    (_MIPS_ISA == _MIPS_ISA_MIPS64)
+#ifdef CONFIG_CPU_HAS_PREFETCH
 
 #define PREF(hint,addr)                                 \
 		.set	push;				\
@@ -143,12 +142,12 @@
 		prefx	hint,addr;			\
 		.set	pop
 
-#else
+#else /* !CONFIG_CPU_HAS_PREFETCH */
 
 #define PREF(hint,addr)
 #define PREFX(hint,addr)
 
-#endif
+#endif /* !CONFIG_CPU_HAS_PREFETCH */
 
 /*
  * MIPS ISA IV/V movn/movz instructions and equivalents for older CPUs.
diff -urNd -urNd linux-2.4.20/include/asm-mips64/atomic.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/atomic.h
--- linux-2.4.20/include/asm-mips64/atomic.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/atomic.h	2002-11-14 13:54:11.000000000 -0600
@@ -140,8 +140,8 @@
  * and returns true if the result is zero, or false for all
  * other cases.  Note that the guaranteed
  * useful range of an atomic_t is only 24 bits.
- * atomic_inc_and_test is currently not implemented for mips64.
  */
+#define atomic_inc_and_test(v) (atomic_inc_return(v) == 0)
 
 /*
  * atomic_dec_and_test - decrement by 1 and test
@@ -181,9 +181,8 @@
  * if the result is negative, or false when
  * result is greater than or equal to zero.  Note that the guaranteed
  * useful range of an atomic_t is only 24 bits.
- *
- * atomic_add_negative is currently not implemented for mips64.
  */
+#define atomic_add_negative(i,v) (atomic_add_return(i, (v)) < 0)
 
 /* Atomic operations are already serializing */
 #define smp_mb__before_atomic_dec()	smp_mb()
diff -urNd -urNd linux-2.4.20/include/asm-mips64/bitops.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/bitops.h
--- linux-2.4.20/include/asm-mips64/bitops.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/bitops.h	2002-12-20 07:01:02.000000000 -0600
@@ -13,6 +13,14 @@
 #include <linux/types.h>
 #include <asm/byteorder.h>		/* sigh ... */
 
+#if (_MIPS_SZLONG == 32)
+#define SZLONG_LOG 5
+#define SZLONG_MASK 31UL
+#elif (_MIPS_SZLONG == 64)
+#define SZLONG_LOG 6
+#define SZLONG_MASK 63UL
+#endif
+
 #ifndef __KERNEL__
 #error "Don't do this, sucker ..."
 #endif
@@ -90,7 +98,7 @@
 
 /*
  * change_bit - Toggle a bit in memory
- * @nr: Bit to clear
+ * @nr: Bit to change
  * @addr: Address to start counting from
  *
  * change_bit() is atomic and may not be reordered.
@@ -113,7 +121,7 @@
 
 /*
  * __change_bit - Toggle a bit in memory
- * @nr: the bit to set
+ * @nr: the bit to change
  * @addr: the address to start counting from
  *
  * Unlike change_bit(), this function is non-atomic and may be reordered.
@@ -136,7 +144,7 @@
  * It also implies a memory barrier.
  */
 static inline unsigned long test_and_set_bit(unsigned long nr,
-					     volatile void *addr)
+	volatile void *addr)
 {
 	unsigned long *m = ((unsigned long *) addr) + (nr >> 6);
 	unsigned long temp, res;
@@ -183,14 +191,14 @@
 
 /*
  * test_and_clear_bit - Clear a bit and return its old value
- * @nr: Bit to set
+ * @nr: Bit to clear
  * @addr: Address to count from
  *
  * This operation is atomic and cannot be reordered.
  * It also implies a memory barrier.
  */
 static inline unsigned long test_and_clear_bit(unsigned long nr,
-					       volatile void *addr)
+	volatile void *addr)
 {
 	unsigned long *m = ((unsigned long *) addr) + (nr >> 6);
 	unsigned long temp, res;
@@ -216,7 +224,7 @@
 
 /*
  * __test_and_clear_bit - Clear a bit and return its old value
- * @nr: Bit to set
+ * @nr: Bit to clear
  * @addr: Address to count from
  *
  * This operation is non-atomic and can be reordered.
@@ -238,14 +246,14 @@
 
 /*
  * test_and_change_bit - Change a bit and return its new value
- * @nr: Bit to set
+ * @nr: Bit to change
  * @addr: Address to count from
  *
  * This operation is atomic and cannot be reordered.
  * It also implies a memory barrier.
  */
 static inline unsigned long test_and_change_bit(unsigned long nr,
-						volatile void *addr)
+	volatile void *addr)
 {
 	unsigned long *m = ((unsigned long *) addr) + (nr >> 6);
 	unsigned long temp, res;
@@ -270,7 +278,7 @@
 
 /*
  * __test_and_change_bit - Change a bit and return its old value
- * @nr: Bit to set
+ * @nr: Bit to change
  * @addr: Address to count from
  *
  * This operation is non-atomic and can be reordered.
@@ -294,106 +302,11 @@
  * @nr: bit number to test
  * @addr: Address to start counting from
  */
-static inline unsigned long test_bit(int nr, volatile void * addr)
-{
-	return 1UL & (((volatile unsigned long *) addr)[nr >> 6] >> (nr & 0x3f));
-}
-
-#ifndef __MIPSEB__
-
-/* Little endian versions. */
-
-/*
- * find_first_zero_bit - find the first zero bit in a memory region
- * @addr: The address to start the search at
- * @size: The maximum size to search
- *
- * Returns the bit-number of the first zero bit, not the number of the byte
- * containing a bit.
- */
-static inline int find_first_zero_bit (void *addr, unsigned size)
-{
-	unsigned long dummy;
-	int res;
-
-	if (!size)
-		return 0;
-
-	__asm__ (".set\tnoreorder\n\t"
-		".set\tnoat\n"
-		"1:\tsubu\t$1,%6,%0\n\t"
-		"blez\t$1,2f\n\t"
-		"lw\t$1,(%5)\n\t"
-		"addiu\t%5,4\n\t"
-#if (_MIPS_ISA == _MIPS_ISA_MIPS2 ) || (_MIPS_ISA == _MIPS_ISA_MIPS3 ) || \
-    (_MIPS_ISA == _MIPS_ISA_MIPS4 ) || (_MIPS_ISA == _MIPS_ISA_MIPS5 ) || \
-    (_MIPS_ISA == _MIPS_ISA_MIPS32) || (_MIPS_ISA == _MIPS_ISA_MIPS64)
-		"beql\t%1,$1,1b\n\t"
-		"addiu\t%0,32\n\t"
-#else
-		"addiu\t%0,32\n\t"
-		"beq\t%1,$1,1b\n\t"
-		"nop\n\t"
-		"subu\t%0,32\n\t"
-#endif
-		"li\t%1,1\n"
-		"1:\tand\t%2,$1,%1\n\t"
-		"beqz\t%2,2f\n\t"
-		"sll\t%1,%1,1\n\t"
-		"bnez\t%1,1b\n\t"
-		"add\t%0,%0,1\n\t"
-		".set\tat\n\t"
-		".set\treorder\n"
-		"2:"
-		: "=r" (res), "=r" (dummy), "=r" (addr)
-		: "0" ((signed int) 0), "1" ((unsigned int) 0xffffffff),
-		  "2" (addr), "r" (size));
-
-	return res;
-}
-
-/*
- * find_next_zero_bit - find the first zero bit in a memory region
- * @addr: The address to base the search on
- * @offset: The bitnumber to start searching at
- * @size: The maximum size to search
- */
-static inline int find_next_zero_bit (void * addr, int size, int offset)
+static inline int test_bit(int nr, volatile void * addr)
 {
-	unsigned int *p = ((unsigned int *) addr) + (offset >> 5);
-	int set = 0, bit = offset & 31, res;
-	unsigned long dummy;
-
-	if (bit) {
-		/*
-		 * Look for zero in first byte
-		 */
-		__asm__(".set\tnoreorder\n\t"
-			".set\tnoat\n"
-			"1:\tand\t$1,%4,%1\n\t"
-			"beqz\t$1,1f\n\t"
-			"sll\t%1,%1,1\n\t"
-			"bnez\t%1,1b\n\t"
-			"addiu\t%0,1\n\t"
-			".set\tat\n\t"
-			".set\treorder\n"
-			"1:"
-			: "=r" (set), "=r" (dummy)
-			: "0" (0), "1" (1 << bit), "r" (*p));
-		if (set < (32 - bit))
-			return set + offset;
-		set = 32 - bit;
-		p++;
-	}
-	/*
-	 * No zero yet, search remaining full bytes for a zero
-	 */
-	res = find_first_zero_bit(p, size - 32 * (p - (unsigned int *) addr));
-	return offset + set + res;
+	return 1UL & (((const volatile unsigned long *) addr)[nr >> SZLONG_LOG] >> (nr & SZLONG_MASK));
 }
 
-#endif /* !(__MIPSEB__) */
-
 /*
  * ffz - find first zero in word.
  * @word: The word to search
@@ -415,35 +328,6 @@
 	return b;
 }
 
-#ifdef __KERNEL__
-
-
-/*
- * ffs - find first bit set
- * @x: the word to search
- *
- * This is defined the same way as
- * the libc and compiler builtin ffs routines, therefore
- * differs in spirit from the above ffz (man ffs).
- */
-
-#define ffs(x) generic_ffs(x)
-
-/*
- * hweightN - returns the hamming weight of a N-bit word
- * @x: the word to weigh
- *
- * The Hamming Weight of a number is the total number of bits set in it.
- */
-
-#define hweight32(x) generic_hweight32(x)
-#define hweight16(x) generic_hweight16(x)
-#define hweight8(x)  generic_hweight8(x)
-
-#endif /* __KERNEL__ */
-
-#ifdef __MIPSEB__
-
 /*
  * find_next_zero_bit - find the first zero bit in a memory region
  * @addr: The address to base the search on
@@ -453,29 +337,29 @@
 static inline unsigned long find_next_zero_bit(void *addr, unsigned long size,
 					       unsigned long offset)
 {
-	unsigned long *p = ((unsigned long *) addr) + (offset >> 6);
-	unsigned long result = offset & ~63UL;
+	unsigned long *p = ((unsigned long *) addr) + (offset >> SZLONG_LOG);
+	unsigned long result = offset & ~SZLONG_MASK;
 	unsigned long tmp;
 
 	if (offset >= size)
 		return size;
 	size -= result;
-	offset &= 63UL;
+	offset &= SZLONG_MASK;
 	if (offset) {
 		tmp = *(p++);
-		tmp |= ~0UL >> (64-offset);
-		if (size < 64)
+		tmp |= ~0UL >> (_MIPS_SZLONG-offset);
+		if (size < _MIPS_SZLONG)
 			goto found_first;
 		if (~tmp)
 			goto found_middle;
-		size -= 64;
-		result += 64;
+		size -= _MIPS_SZLONG;
+		result += _MIPS_SZLONG;
 	}
-	while (size & ~63UL) {
+	while (size & ~SZLONG_MASK) {
 		if (~(tmp = *(p++)))
 			goto found_middle;
-		result += 64;
-		size -= 64;
+		result += _MIPS_SZLONG;
+		size -= _MIPS_SZLONG;
 	}
 	if (!size)
 		return result;
@@ -483,127 +367,143 @@
 
 found_first:
 	tmp |= ~0UL << size;
+	if (tmp == ~0UL)		/* Are any bits zero? */
+		return result + size;	/* Nope. */
 found_middle:
 	return result + ffz(tmp);
 }
 
 #define find_first_zero_bit(addr, size) \
-        find_next_zero_bit((addr), (size), 0)
-
-#endif /* (__MIPSEB__) */
+	find_next_zero_bit((addr), (size), 0)
 
 #ifdef __KERNEL__
 
-/* Now for the ext2 filesystem bit operations and helper routines. */
+/*
+ * ffs - find first bit set
+ * @x: the word to search
+ *
+ * This is defined the same way as
+ * the libc and compiler builtin ffs routines, therefore
+ * differs in spirit from the above ffz (man ffs).
+ */
 
-#ifdef __MIPSEB__
+#define ffs(x) generic_ffs(x)
 
-static inline int ext2_set_bit(int nr,void * addr)
+/*
+ * hweightN - returns the hamming weight of a N-bit word
+ * @x: the word to weigh
+ *
+ * The Hamming Weight of a number is the total number of bits set in it.
+ */
+
+#define hweight32(x) generic_hweight32(x)
+#define hweight16(x) generic_hweight16(x)
+#define hweight8(x)  generic_hweight8(x)
+
+static inline int __test_and_set_le_bit(unsigned long nr, void * addr)
 {
-	int		mask, retval, flags;
 	unsigned char	*ADDR = (unsigned char *) addr;
+	int		mask, retval;
 
 	ADDR += nr >> 3;
 	mask = 1 << (nr & 0x07);
-	save_and_cli(flags);
 	retval = (mask & *ADDR) != 0;
 	*ADDR |= mask;
-	restore_flags(flags);
+
 	return retval;
 }
 
-static inline int ext2_clear_bit(int nr, void * addr)
+static inline int __test_and_clear_le_bit(unsigned long nr, void * addr)
 {
-	int		mask, retval, flags;
 	unsigned char	*ADDR = (unsigned char *) addr;
+	int		mask, retval;
 
 	ADDR += nr >> 3;
 	mask = 1 << (nr & 0x07);
-	save_and_cli(flags);
 	retval = (mask & *ADDR) != 0;
 	*ADDR &= ~mask;
-	restore_flags(flags);
+
 	return retval;
 }
 
-static inline int ext2_test_bit(int nr, const void * addr)
+static inline int test_le_bit(unsigned long nr, const void * addr)
 {
-	int			mask;
 	const unsigned char	*ADDR = (const unsigned char *) addr;
+	int			mask;
 
 	ADDR += nr >> 3;
 	mask = 1 << (nr & 0x07);
+
 	return ((mask & *ADDR) != 0);
 }
 
-#define ext2_find_first_zero_bit(addr, size) \
-        ext2_find_next_zero_bit((addr), (size), 0)
+static inline unsigned long ext2_ffz(unsigned int word)
+{
+	int b = 0, s;
 
-static inline unsigned int ext2_find_next_zero_bit(void *addr,
-						   unsigned long size,
-						   unsigned long offset)
+	word = ~word;
+	s = 16; if (word << 16 != 0) s = 0; b += s; word >>= s;
+	s =  8; if (word << 24 != 0) s = 0; b += s; word >>= s;
+	s =  4; if (word << 28 != 0) s = 0; b += s; word >>= s;
+	s =  2; if (word << 30 != 0) s = 0; b += s; word >>= s;
+	s =  1; if (word << 31 != 0) s = 0; b += s;
+
+	return b;
+}
+
+static inline unsigned long find_next_zero_le_bit(void *addr,
+	unsigned long size, unsigned long offset)
 {
 	unsigned int *p = ((unsigned int *) addr) + (offset >> 5);
-	unsigned int result = offset & ~31UL;
+	unsigned int result = offset & ~31;
 	unsigned int tmp;
 
 	if (offset >= size)
 		return size;
+
 	size -= result;
-	offset &= 31UL;
-	if(offset) {
-		/* We hold the little endian value in tmp, but then the
-		 * shift is illegal. So we could keep a big endian value
-		 * in tmp, like this:
-		 *
-		 * tmp = __swab32(*(p++));
-		 * tmp |= ~0UL >> (32-offset);
-		 *
-		 * but this would decrease preformance, so we change the
-		 * shift:
-		 */
-		tmp = *(p++);
-		tmp |= __swab32(~0UL >> (32-offset));
-		if(size < 32)
+	offset &= 31;
+	if (offset) {
+		tmp = cpu_to_le32p(p++);
+		tmp |= ~0U >> (32-offset); /* bug or feature ? */
+		if (size < 32)
 			goto found_first;
-		if(~tmp)
+		if (tmp != ~0U)
 			goto found_middle;
 		size -= 32;
 		result += 32;
 	}
-	while(size & ~31UL) {
-		if(~(tmp = *(p++)))
+	while (size >= 32) {
+		if ((tmp = cpu_to_le32p(p++)) != ~0U)
 			goto found_middle;
 		result += 32;
 		size -= 32;
 	}
-	if(!size)
+	if (!size)
 		return result;
-	tmp = *p;
 
+	tmp = cpu_to_le32p(p);
 found_first:
-	/* tmp is little endian, so we would have to swab the shift,
-	 * see above. But then we have to swab tmp below for ffz, so
-	 * we might as well do this here.
-	 */
-	return result + ffz(__swab32(tmp) | (~0UL << size));
+	tmp |= ~0 << size;
+	if (tmp == ~0U)			/* Are any bits zero? */
+		return result + size;	/* Nope. */
+
 found_middle:
-	return result + ffz(__swab32(tmp));
+	return result + ext2_ffz(tmp);
 }
-#else /* !(__MIPSEB__) */
 
-/* Native ext2 byte ordering, just collapse using defines. */
-#define ext2_set_bit(nr, addr) test_and_set_bit((nr), (addr))
-#define ext2_clear_bit(nr, addr) test_and_clear_bit((nr), (addr))
-#define ext2_test_bit(nr, addr) test_bit((nr), (addr))
-#define ext2_find_first_zero_bit(addr, size) find_first_zero_bit((addr), (size))
-#define ext2_find_next_zero_bit(addr, size, offset) \
-                find_next_zero_bit((addr), (size), (offset))
+#define find_first_zero_le_bit(addr, size) \
+	find_next_zero_le_bit((addr), (size), 0)
 
-#endif /* !(__MIPSEB__) */
+#define ext2_set_bit			__test_and_set_le_bit
+#define ext2_clear_bit			__test_and_clear_le_bit
+#define ext2_test_bit			test_le_bit
+#define ext2_find_first_zero_bit	find_first_zero_le_bit
+#define ext2_find_next_zero_bit		find_next_zero_le_bit
 
 /*
  * Bitmap functions for the minix filesystem.
+ *
  * FIXME: These assume that Minix uses the native byte/bitorder.
  * This limits the Minix filesystem's value for data exchange very much.
  */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/bootinfo.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/bootinfo.h
--- linux-2.4.20/include/asm-mips64/bootinfo.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/bootinfo.h	2003-02-04 06:43:06.000000000 -0600
@@ -35,6 +35,7 @@
 #define MACH_GROUP_ALCHEMY     18 /* Alchemy Semi Eval Boards               */
 #define MACH_GROUP_NEC_VR41XX  19 /* NEC Vr41xx based boards/gadgets        */
 #define MACH_GROUP_HP_LJ       20 /* Hewlett Packard LaserJet               */
+#define MACH_GROUP_LASAT       21
 
 /*
  * Valid machtype values for group unknown (low order halfword of mips_machtype)
@@ -53,14 +54,15 @@
  */
 #define MACH_DSUNKNOWN		0
 #define MACH_DS23100		1	/* DECstation 2100 or 3100	*/
-#define MACH_DS5100		2	/* DECstation 5100		*/
+#define MACH_DS5100		2	/* DECsystem 5100		*/
 #define MACH_DS5000_200		3	/* DECstation 5000/200		*/
 #define MACH_DS5000_1XX		4	/* DECstation 5000/120, 125, 133, 150 */
 #define MACH_DS5000_XX		5	/* DECstation 5000/20, 25, 33, 50 */
 #define MACH_DS5000_2X0		6	/* DECstation 5000/240, 260	*/
-#define MACH_DS5400		7	/* DECstation 5400		*/
-#define MACH_DS5500		8	/* DECstation 5500		*/
-#define MACH_DS5800		9	/* DECstation 5800		*/
+#define MACH_DS5400		7	/* DECsystem 5400		*/
+#define MACH_DS5500		8	/* DECsystem 5500		*/
+#define MACH_DS5800		9	/* DECsystem 5800		*/
+#define MACH_DS5900		10	/* DECsystem 5900		*/
 
 /*
  * Valid machtype for group ARC
@@ -81,17 +83,15 @@
 /*
  * Valid machtype for group SGI
  */
-#define MACH_SGI_INDY		0	/* R4?K and R5K Indy workstations */
-#define MACH_SGI_CHALLENGE_S	1	/* The Challenge S server */
-#define MACH_SGI_INDIGO2	2	/* The Indigo2 system */
-#define MACH_SGI_IP27		3	/* Origin 200, Origin 2000, Onyx 2 */
-#define MACH_SGI_IP28		4	/* Indigo2 Impact */
-#define MACH_SGI_IP32		5	/* O2 */
+#define MACH_SGI_IP22		0	/* Indy, Indigo2, Challenge S */ 
+#define MACH_SGI_IP27		1	/* Origin 200, Origin 2000, Onyx 2 */
+#define MACH_SGI_IP28		2	/* Indigo2 Impact */
+#define MACH_SGI_IP32		3	/* O2 */
 
 /*
  * Valid machtype for group COBALT
  */
-#define MACH_COBALT_27 		 0	/* Proto "27" hardware */
+#define MACH_COBALT_27		0	/* Proto "27" hardware */
 
 /*
  * Valid machtype for group NEC DDB
@@ -155,11 +155,20 @@
 #define MACH_TOSHIBA_JMR3927	3	/* JMR-TX3927 CPU/IO board */
 
 /*
+ * Valid machtype for group LASAT
+ */
+#define MACH_LASAT_100		0	/* Masquerade II/SP100/SP50/SP25 */
+#define MACH_LASAT_200		1	/* Masquerade PRO/SP200 */
+
+/*
  * Valid machtype for group Alchemy
  */
 #define MACH_PB1000		0	/* Au1000-based eval board */
 #define MACH_PB1100		1	/* Au1100-based eval board */
 #define MACH_PB1500		2	/* Au1500-based eval board */
+#define MACH_DB1000		3       /* Au1000-based eval board */
+#define MACH_DB1100		4       /* Au1100-based eval board */
+#define MACH_DB1500		5       /* Au1500-based eval board */
 
 /*
  * Valid machtype for group NEC_VR41XX
@@ -167,6 +176,10 @@
 #define MACH_NEC_OSPREY		0	/* Osprey eval board */
 #define MACH_NEC_EAGLE		1	/* NEC Eagle/Hawk board */
 #define MACH_ZAO_CAPCELLA	2	/* ZAO Networks Capcella */
+#define MACH_VICTOR_MPC30X	3	/* Victor MP-C303/304 */
+#define MACH_IBM_WORKPAD	4	/* IBM WorkPad z50 */
+#define MACH_CASIO_E55		5	/* CASIO CASSIOPEIA E-10/15/55/65 */
+#define MACH_TANBAC_TB0226	6	/* TANBAC TB0226 (MBASE) */
 
 #define CL_SIZE			(256)
 
diff -urNd -urNd linux-2.4.20/include/asm-mips64/cache.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/cache.h
--- linux-2.4.20/include/asm-mips64/cache.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/cache.h	2002-12-11 08:23:13.000000000 -0600
@@ -27,6 +27,7 @@
  * Flag definitions
  */
 #define MIPS_CACHE_NOT_PRESENT 0x00000001
+#define MIPS_CACHE_VTAG_CACHE  0x00000002 /* Virtually tagged cache. */
 
 #if defined(CONFIG_CPU_R3000) || defined(CONFIG_CPU_R6000) || defined(CONFIG_CPU_TX39XX)
 #define L1_CACHE_BYTES		16
diff -urNd -urNd linux-2.4.20/include/asm-mips64/cacheops.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/cacheops.h
--- linux-2.4.20/include/asm-mips64/cacheops.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/cacheops.h	2002-09-30 11:53:55.000000000 -0500
@@ -5,10 +5,10 @@
  * License.  See the file "COPYING" in the main directory of this archive
  * for more details.
  *
- * (C) Copyright 1996, 1997 by Ralf Baechle
+ * (C) Copyright 1996, 1997, 2002 by Ralf Baechle
  */
-#ifndef	__ASM_MIPS_CACHEOPS_H
-#define	__ASM_MIPS_CACHEOPS_H
+#ifndef	__ASM_CACHEOPS_H
+#define	__ASM_CACHEOPS_H
 
 /*
  * Cache Operations
@@ -35,6 +35,7 @@
 #define Hit_Writeback_Inv_D	0x15
 					/* 0x16 is unused */
 #define Hit_Writeback_Inv_SD	0x17
+#define R5K_Page_Invalidate_S	0x17
 #define Hit_Writeback_I		0x18
 #define Hit_Writeback_D		0x19
 					/* 0x1a is unused */
@@ -44,4 +45,4 @@
 #define Hit_Set_Virtual_SI	0x1e
 #define Hit_Set_Virtual_SD	0x1f
 
-#endif	/* __ASM_MIPS_CACHEOPS_H */
+#endif	/* __ASM_CACHEOPS_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/checksum.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/checksum.h
--- linux-2.4.20/include/asm-mips64/checksum.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/checksum.h	2003-01-26 11:36:11.000000000 -0600
@@ -205,7 +205,8 @@
 						     unsigned int sum)
 {
 	__asm__(
-	".set\tnoreorder\t\t\t# csum_ipv6_magic\n\t"
+	".set\tpush\t\t\t# csum_ipv6_magic\n\t"
+	".set\tnoreorder\n\t"
 	".set\tnoat\n\t"
 	"addu\t%0, %5\t\t\t# proto (long in network byte order)\n\t"
 	"sltu\t$1, %0, %5\n\t"
@@ -254,8 +255,7 @@
 	"sltu\t$1, %0, %1\n\t"
 
 	"addu\t%0, $1\t\t\t# Add final carry\n\t"
-	".set\tnoat\n\t"
-	".set\tnoreorder"
+	".set\tpop"
 	: "=&r" (sum), "=&r" (proto)
 	: "r" (saddr), "r" (daddr),
 	  "0" (htonl(len)), "1" (htonl(proto)), "r" (sum));
diff -urNd -urNd linux-2.4.20/include/asm-mips64/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips64/CVS/Entries
--- linux-2.4.20/include/asm-mips64/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/CVS/Entries	2005-01-06 23:08:09.000000000 -0600
@@ -0,0 +1,137 @@
+/.cvsignore/1.1/Tue May 23 18:00:50 2000//Tlinux_2_4_20
+/a.out.h/1.3.2.2/Thu Feb 20 19:46:34 2003/-ko/Tlinux_2_4_20
+/addrspace.h/1.10.2.4/Wed Oct 23 14:24:20 2002/-ko/Tlinux_2_4_20
+/asm.h/1.8.2.9/Tue Jan  7 23:51:51 2003/-ko/Tlinux_2_4_20
+/asmmacro.h/1.2.2.3/Mon Sep  2 18:04:06 2002/-ko/Tlinux_2_4_20
+/atomic.h/1.7.2.3/Thu Nov 14 19:54:11 2002/-ko/Tlinux_2_4_20
+/bcache.h/1.7.2.1/Mon Aug  5 23:53:39 2002/-ko/Tlinux_2_4_20
+/bitops.h/1.15.2.11/Fri Dec 20 13:01:02 2002/-ko/Tlinux_2_4_20
+/bootinfo.h/1.10.2.20/Tue Feb  4 12:43:06 2003/-ko/Tlinux_2_4_20
+/branch.h/1.3.2.3/Wed Jan 29 16:39:00 2003/-ko/Tlinux_2_4_20
+/bugs.h/1.3/Sun Oct 28 05:04:32 2001/-ko/Tlinux_2_4_20
+/byteorder.h/1.2/Mon Jul  9 00:25:37 2001/-ko/Tlinux_2_4_20
+/cache.h/1.7.2.4/Wed Dec 11 14:23:13 2002/-ko/Tlinux_2_4_20
+/cachectl.h/1.2/Tue Jul 24 12:07:31 2001/-ko/Tlinux_2_4_20
+/cacheops.h/1.3.2.2/Mon Sep 30 16:53:55 2002/-ko/Tlinux_2_4_20
+/checksum.h/1.12.2.3/Sun Jan 26 17:36:11 2003/-ko/Tlinux_2_4_20
+/cpu.h/1.12.2.9/Mon Aug  5 23:53:39 2002/-ko/Tlinux_2_4_20
+/current.h/1.6.2.1/Thu Jun 27 14:21:23 2002/-ko/Tlinux_2_4_20
+/delay.h/1.8.2.3/Tue Jan 28 00:08:27 2003/-ko/Tlinux_2_4_20
+/div64.h/1.2.2.2/Mon Jan 27 14:27:20 2003/-ko/Tlinux_2_4_20
+/dma.h/1.7.4.3/Mon Aug  5 23:53:39 2002/-ko/Tlinux_2_4_20
+/ds1286.h/1.2/Mon Jul  9 00:25:38 2001/-ko/Tlinux_2_4_20
+/elf.h/1.10.2.4/Thu Feb 20 19:46:34 2003/-ko/Tlinux_2_4_20
+/errno.h/1.4.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
+/exception.h/1.1.2.4/Mon Aug 12 22:54:12 2002/-ko/Tlinux_2_4_20
+/fcntl.h/1.6.2.1/Tue Jul 23 12:08:50 2002/-ko/Tlinux_2_4_20
+/floppy.h/1.6.2.1/Thu Jan  3 22:54:52 2002/-ko/Tlinux_2_4_20
+/fpregdef.h/1.1/Sat Aug 21 22:19:17 1999/-ko/Tlinux_2_4_20
+/fpu.h/1.1.2.2/Mon Dec  2 00:24:54 2002//Tlinux_2_4_20
+/fpu_emulator.h/1.1.2.2/Wed May  1 17:09:55 2002/-ko/Tlinux_2_4_20
+/gdb-stub.h/1.1.2.3/Mon Aug  5 23:53:39 2002/-ko/Tlinux_2_4_20
+/gfx.h/1.2.2.1/Mon Aug  5 23:53:39 2002/-ko/Tlinux_2_4_20
+/gt64120.h/1.1.2.2/Mon Aug  5 23:53:39 2002/-ko/Tlinux_2_4_20
+/hardirq.h/1.12/Thu Aug 23 22:24:47 2001/-ko/Tlinux_2_4_20
+/hdreg.h/1.2/Tue Feb 20 20:50:50 2001/-ko/Tlinux_2_4_20
+/hw_irq.h/1.2.2.3/Tue Dec  3 19:46:59 2002/-ko/Tlinux_2_4_20
+/ide.h/1.6.2.3/Thu Nov 28 23:04:11 2002/-ko/Tlinux_2_4_20
+/init.h/1.3/Tue Jul 24 12:04:31 2001/-ko/Tlinux_2_4_20
+/inst.h/1.2.2.1/Tue Feb 26 23:59:55 2002/-ko/Tlinux_2_4_20
+/io.h/1.25.2.16/Mon Jan 20 20:21:43 2003/-ko/Tlinux_2_4_20
+/ioctl.h/1.3/Wed Aug 22 03:25:05 2001/-ko/Tlinux_2_4_20
+/ioctls.h/1.4.2.2/Tue Sep  3 00:42:54 2002/-ko/Tlinux_2_4_20
+/ipc.h/1.1.4.1/Mon Aug  5 23:53:39 2002/-ko/Tlinux_2_4_20
+/ipcbuf.h/1.1.4.1/Mon Aug  5 23:53:39 2002/-ko/Tlinux_2_4_20
+/irq.h/1.4.2.2/Sun Oct  6 12:28:03 2002/-ko/Tlinux_2_4_20
+/irq_cpu.h/1.1.2.1/Wed May 29 14:38:20 2002//Tlinux_2_4_20
+/keyboard.h/1.8.2.1/Thu Jan  3 22:54:52 2002/-ko/Tlinux_2_4_20
+/linux_logo.h/1.3.2.1/Mon Aug  5 23:53:39 2002/-ko/Tlinux_2_4_20
+/m48t35.h/1.1.4.1/Tue Nov 26 11:03:17 2002/-ko/Tlinux_2_4_20
+/mc146818rtc.h/1.3.2.2/Mon Jan 20 20:21:43 2003/-ko/Tlinux_2_4_20
+/mips64_cache.h/1.1.2.2/Mon Aug  5 23:53:39 2002/-ko/Tlinux_2_4_20
+/mipsregs.h/1.15.2.18/Tue Jan 28 14:31:33 2003/-ko/Tlinux_2_4_20
+/mman.h/1.5/Mon Jul  9 00:25:38 2001/-ko/Tlinux_2_4_20
+/mmu.h/1.1.2.2/Fri Jan 17 04:23:41 2003/-ko/Tlinux_2_4_20
+/mmu_context.h/1.19.2.9/Fri Feb 14 11:04:04 2003/-ko/Tlinux_2_4_20
+/mmzone.h/1.10/Wed Jun 13 17:28:13 2001/-ko/Tlinux_2_4_20
+/module.h/1.3.2.1/Thu Nov  7 01:47:46 2002/-ko/Tlinux_2_4_20
+/msgbuf.h/1.1.4.2/Tue Aug 13 03:14:24 2002/-ko/Tlinux_2_4_20
+/namei.h/1.3/Mon Jul  9 00:25:38 2001/-ko/Tlinux_2_4_20
+/ng1.h/1.2/Mon Jul  9 00:25:38 2001/-ko/Tlinux_2_4_20
+/paccess.h/1.4/Mon Jul  9 00:25:38 2001/-ko/Tlinux_2_4_20
+/page.h/1.10.2.16/Mon Jan 20 20:21:43 2003/-ko/Tlinux_2_4_20
+/param.h/1.5.4.1/Mon Jan 20 20:21:43 2003/-ko/Tlinux_2_4_20
+/parport.h/1.5/Mon Jul  9 00:25:38 2001/-ko/Tlinux_2_4_20
+/pci.h/1.16.2.14/Tue Oct  1 11:14:37 2002/-ko/Tlinux_2_4_20
+/pgalloc.h/1.15.2.1/Tue Jul  2 13:04:32 2002/-ko/Tlinux_2_4_20
+/pgtable-bits.h/1.1.2.2/Mon Aug  5 23:53:39 2002/-ko/Tlinux_2_4_20
+/pgtable.h/1.47.2.20/Tue Aug 13 03:29:54 2002/-ko/Tlinux_2_4_20
+/poll.h/1.2/Mon Jul  9 00:25:38 2001/-ko/Tlinux_2_4_20
+/posix_types.h/1.9.4.2/Mon Aug  5 23:53:39 2002/-ko/Tlinux_2_4_20
+/processor.h/1.32.2.12/Thu Feb 20 19:46:34 2003/-ko/Tlinux_2_4_20
+/ptrace.h/1.6.4.4/Fri Dec 20 03:26:02 2002/-ko/Tlinux_2_4_20
+/r10kcache.h/1.4.2.1/Mon Dec  2 00:24:54 2002/-ko/Tlinux_2_4_20
+/r10kcacheops.h/1.2/Mon Jul  9 00:25:38 2001/-ko/Tlinux_2_4_20
+/r4kcache.h/1.4.2.5/Fri Oct  4 02:39:52 2002/-ko/Tlinux_2_4_20
+/reboot.h/1.3.2.1/Thu Jan 24 23:14:28 2002/-ko/Tlinux_2_4_20
+/reg.h/1.1.4.1/Wed Sep 18 02:48:05 2002/-ko/Tlinux_2_4_20
+/regdef.h/1.2/Mon Jul  9 00:25:38 2001/-ko/Tlinux_2_4_20
+/resource.h/1.8/Mon Jul  9 00:25:38 2001/-ko/Tlinux_2_4_20
+/riscos-syscall.h/1.1.4.1/Mon Aug  5 23:53:39 2002/-ko/Tlinux_2_4_20
+/rrm.h/1.1.2.1/Mon Aug  5 23:53:39 2002/-ko/Tlinux_2_4_20
+/scatterlist.h/1.4.2.5/Sat Sep 28 18:51:41 2002/-ko/Tlinux_2_4_20
+/segment.h/1.1/Sat Dec  4 03:59:12 1999/-ko/Tlinux_2_4_20
+/semaphore-helper.h/1.5.2.5/Fri Nov 15 04:20:34 2002/-ko/Tlinux_2_4_20
+/semaphore.h/1.11.2.2/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/sembuf.h/1.1.4.1/Mon Aug  5 23:53:39 2002/-ko/Tlinux_2_4_20
+/serial.h/1.7.2.7/Thu Nov  7 01:47:46 2002/-ko/Tlinux_2_4_20
+/sfp-machine.h/1.1/Tue May 23 01:38:56 2000/-ko/Tlinux_2_4_20
+/sgialib.h/1.7.2.3/Wed Aug  7 00:26:49 2002/-ko/Tlinux_2_4_20
+/sgiarcs.h/1.7.2.2/Wed Aug  7 00:14:21 2002/-ko/Tlinux_2_4_20
+/sgidefs.h/1.3/Mon Jul  2 23:11:36 2001/-ko/Tlinux_2_4_20
+/shmbuf.h/1.1.4.1/Mon Aug  5 23:53:39 2002/-ko/Tlinux_2_4_20
+/shmiq.h/1.3.2.1/Mon Aug  5 23:53:39 2002/-ko/Tlinux_2_4_20
+/shmparam.h/1.3/Mon Jul  9 00:25:38 2001/-ko/Tlinux_2_4_20
+/sigcontext.h/1.3.2.2/Mon Nov  4 19:39:56 2002/-ko/Tlinux_2_4_20
+/siginfo.h/1.6.2.3/Fri Aug 23 13:54:50 2002/-ko/Tlinux_2_4_20
+/signal.h/1.4.2.4/Mon Jan 27 19:19:13 2003/-ko/Tlinux_2_4_20
+/smp.h/1.10.2.4/Fri Nov 29 00:11:36 2002/-ko/Tlinux_2_4_20
+/smplock.h/1.2/Mon Mar 27 23:54:41 2000/-ko/Tlinux_2_4_20
+/socket.h/1.7.2.1/Tue Aug 13 04:19:38 2002/-ko/Tlinux_2_4_20
+/sockios.h/1.2/Mon Jul  9 00:25:38 2001/-ko/Tlinux_2_4_20
+/softirq.h/1.9.2.1/Mon Aug  5 23:53:39 2002/-ko/Tlinux_2_4_20
+/spinlock.h/1.10.2.4/Mon Aug  5 23:53:39 2002/-ko/Tlinux_2_4_20
+/stackframe.h/1.7.2.4/Tue Jan 28 14:31:33 2003/-ko/Tlinux_2_4_20
+/stat.h/1.7.4.1/Thu Nov 21 12:38:57 2002/-ko/Tlinux_2_4_20
+/statfs.h/1.2/Mon Jul  9 00:25:38 2001/-ko/Tlinux_2_4_20
+/string.h/1.5/Wed Aug  9 20:55:43 2000/-ko/Tlinux_2_4_20
+/sysmips.h/1.2/Mon Jul  9 00:25:38 2001/-ko/Tlinux_2_4_20
+/system.h/1.18.2.13/Mon Nov  4 19:39:56 2002/-ko/Tlinux_2_4_20
+/termbits.h/1.3/Sat Aug 11 00:37:03 2001/-ko/Tlinux_2_4_20
+/termios.h/1.5.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/time.h/1.1.2.3/Mon Aug  5 23:53:39 2002/-ko/Tlinux_2_4_20
+/timex.h/1.3.2.3/Mon Dec  2 00:24:54 2002/-ko/Tlinux_2_4_20
+/tlb.h/1.1/Fri Oct 19 01:25:00 2001/-ko/Tlinux_2_4_20
+/tlbdebug.h/1.1.2.1/Sun Sep 15 23:32:24 2002/-ko/Tlinux_2_4_20
+/traps.h/1.1.2.1/Wed Jun 26 12:22:42 2002//Tlinux_2_4_20
+/types.h/1.4.2.3/Mon Aug  5 23:53:39 2002/-ko/Tlinux_2_4_20
+/uaccess.h/1.13.2.2/Mon Dec  9 21:24:13 2002/-ko/Tlinux_2_4_20
+/ucontext.h/1.2/Mon Jul  9 00:25:38 2001/-ko/Tlinux_2_4_20
+/unaligned.h/1.7.2.2/Wed Oct  2 13:23:43 2002/-ko/Tlinux_2_4_20
+/unistd.h/1.19.2.7/Wed Nov  6 21:00:09 2002/-ko/Tlinux_2_4_20
+/user.h/1.2.2.1/Fri Jan 17 13:56:24 2003/-ko/Tlinux_2_4_20
+/usioctl.h/1.2/Mon Jul  9 00:25:38 2001/-ko/Tlinux_2_4_20
+/war.h/1.1.2.5/Wed Jan 29 16:39:00 2003/-ko/Tlinux_2_4_20
+/watch.h/1.2/Mon Jan  8 03:11:57 2001/-ko/Tlinux_2_4_20
+/wbflush.h/1.1.2.1/Mon Jul 22 20:25:37 2002//Tlinux_2_4_20
+/xor.h/1.1/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
+D/arc////
+D/dec////
+D/gcc////
+D/ip32////
+D/mips-boards////
+D/pci////
+D/sgi////
+D/sibyte////
+D/sn////
+D/xtalk////
diff -urNd -urNd linux-2.4.20/include/asm-mips64/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips64/CVS/Repository
--- linux-2.4.20/include/asm-mips64/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/CVS/Repository	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-mips64
diff -urNd -urNd linux-2.4.20/include/asm-mips64/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips64/CVS/Root
--- linux-2.4.20/include/asm-mips64/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/CVS/Root	2005-01-06 23:06:51.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-mips64/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips64/CVS/Tag
--- linux-2.4.20/include/asm-mips64/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/CVS/Tag	2005-01-06 23:06:53.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-mips64/.cvsignore linux-2.4.20-mipscvs-20050106/include/asm-mips64/.cvsignore
--- linux-2.4.20/include/asm-mips64/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/.cvsignore	2000-05-23 13:00:50.000000000 -0500
@@ -0,0 +1 @@
+offset.h
diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/CVS/Entries
--- linux-2.4.20/include/asm-mips64/dec/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/CVS/Entries	2005-01-06 23:06:53.000000000 -0600
@@ -0,0 +1,20 @@
+/interrupts.h/1.1.2.1/Mon Jan 20 20:21:43 2003//Tlinux_2_4_20
+/io.h/1.1.2.1/Mon Jan 20 20:21:43 2003//Tlinux_2_4_20
+/ioasic.h/1.1.2.2/Thu Jan 30 14:25:16 2003//Tlinux_2_4_20
+/ioasic_addrs.h/1.1.2.1/Mon Jan 20 20:21:43 2003//Tlinux_2_4_20
+/ioasic_ints.h/1.1.2.1/Mon Jan 20 20:21:43 2003//Tlinux_2_4_20
+/kn01.h/1.1.2.1/Mon Jan 20 20:21:43 2003//Tlinux_2_4_20
+/kn02.h/1.1.2.1/Mon Jan 20 20:21:43 2003//Tlinux_2_4_20
+/kn02ba.h/1.1.2.1/Mon Jan 20 20:21:43 2003//Tlinux_2_4_20
+/kn02ca.h/1.1.2.1/Mon Jan 20 20:21:43 2003//Tlinux_2_4_20
+/kn02xa.h/1.1.2.2/Mon Feb  3 13:11:23 2003//Tlinux_2_4_20
+/kn03.h/1.1.2.2/Mon Feb  3 13:11:23 2003//Tlinux_2_4_20
+/kn05.h/1.1.2.1/Mon Jan 20 20:21:43 2003//Tlinux_2_4_20
+/kn230.h/1.1.2.1/Mon Jan 20 20:21:43 2003//Tlinux_2_4_20
+/machtype.h/1.1.2.1/Mon Jan 20 20:21:43 2003//Tlinux_2_4_20
+/prom.h/1.1.2.1/Mon Jan 20 20:21:43 2003//Tlinux_2_4_20
+/rtc-dec.h/1.1.2.1/Mon Jan 20 20:21:43 2003//Tlinux_2_4_20
+/tc.h/1.1.2.1/Mon Jan 20 20:21:43 2003//Tlinux_2_4_20
+/tcinfo.h/1.1.2.1/Mon Jan 20 20:21:43 2003//Tlinux_2_4_20
+/tcmodule.h/1.1.2.1/Mon Jan 20 20:21:43 2003//Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/CVS/Repository
--- linux-2.4.20/include/asm-mips64/dec/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/CVS/Repository	2005-01-06 23:06:53.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-mips64/dec
diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/CVS/Root
--- linux-2.4.20/include/asm-mips64/dec/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/CVS/Root	2005-01-06 23:06:53.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/CVS/Tag
--- linux-2.4.20/include/asm-mips64/dec/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/CVS/Tag	2005-01-06 23:06:53.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/interrupts.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/interrupts.h
--- linux-2.4.20/include/asm-mips64/dec/interrupts.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/interrupts.h	2003-01-20 14:21:43.000000000 -0600
@@ -0,0 +1,125 @@
+/*
+ * Miscellaneous definitions used to initialise the interrupt vector table
+ * with the machine-specific interrupt routines.
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * Copyright (C) 1997 by Paul M. Antoine.
+ * reworked 1998 by Harald Koerfgen.
+ * Copyright (C) 2001, 2002  Maciej W. Rozycki
+ */
+
+#ifndef __ASM_DEC_INTERRUPTS_H
+#define __ASM_DEC_INTERRUPTS_H
+
+#include <asm/mipsregs.h>
+
+
+/*
+ * The list of possible system devices which provide an
+ * interrupt.  Not all devices exist on a given system.
+ */
+#define DEC_IRQ_CASCADE		0	/* cascade from CSR or I/O ASIC */
+
+/* Ordinary interrupts */
+#define DEC_IRQ_AB_RECV		1	/* ACCESS.bus receive */
+#define DEC_IRQ_AB_XMIT		2	/* ACCESS.bus transmit */
+#define DEC_IRQ_DZ11		3	/* DZ11 (DC7085) serial */
+#define DEC_IRQ_ASC		4	/* ASC (NCR53C94) SCSI */
+#define DEC_IRQ_FLOPPY		5	/* 82077 FDC */
+#define DEC_IRQ_FPU		6	/* R3k FPU */
+#define DEC_IRQ_HALT		7	/* HALT button or from ACCESS.Bus */
+#define DEC_IRQ_ISDN		8	/* Am79C30A ISDN */
+#define DEC_IRQ_LANCE		9	/* LANCE (Am7990) Ethernet */
+#define DEC_IRQ_MEMORY		10	/* memory, I/O bus write errors */
+#define DEC_IRQ_PSU		11	/* power supply unit warning */
+#define DEC_IRQ_RTC		12	/* DS1287 RTC */
+#define DEC_IRQ_SCC0		13	/* SCC (Z85C30) serial #0 */
+#define DEC_IRQ_SCC1		14	/* SCC (Z85C30) serial #1 */
+#define DEC_IRQ_SII		15	/* SII (DC7061) SCSI */
+#define DEC_IRQ_TC0		16	/* TURBOchannel slot #0 */
+#define DEC_IRQ_TC1		17	/* TURBOchannel slot #1 */
+#define DEC_IRQ_TC2		18	/* TURBOchannel slot #2 */
+#define DEC_IRQ_TIMER		19	/* ARC periodic timer */
+#define DEC_IRQ_VIDEO		20	/* framebuffer */
+
+/* I/O ASIC DMA interrupts */
+#define DEC_IRQ_ASC_MERR	21	/* ASC memory read error */
+#define DEC_IRQ_ASC_ERR		22	/* ASC page overrun */
+#define DEC_IRQ_ASC_DMA		23	/* ASC buffer pointer loaded */
+#define DEC_IRQ_FLOPPY_ERR	24	/* FDC error */
+#define DEC_IRQ_ISDN_ERR	25	/* ISDN memory read/overrun error */
+#define DEC_IRQ_ISDN_RXDMA	26	/* ISDN recv buffer pointer loaded */
+#define DEC_IRQ_ISDN_TXDMA	27	/* ISDN xmit buffer pointer loaded */
+#define DEC_IRQ_LANCE_MERR	28	/* LANCE memory read error */
+#define DEC_IRQ_SCC0A_RXERR	29	/* SCC0A (printer) receive overrun */
+#define DEC_IRQ_SCC0A_RXDMA	30	/* SCC0A receive half page */
+#define DEC_IRQ_SCC0A_TXERR	31	/* SCC0A xmit memory read/overrun */
+#define DEC_IRQ_SCC0A_TXDMA	32	/* SCC0A transmit page end */
+#define DEC_IRQ_AB_RXERR	33	/* ACCESS.bus receive overrun */
+#define DEC_IRQ_AB_RXDMA	34	/* ACCESS.bus receive half page */
+#define DEC_IRQ_AB_TXERR	35	/* ACCESS.bus xmit memory read/ovrn */
+#define DEC_IRQ_AB_TXDMA	36	/* ACCESS.bus transmit page end */
+#define DEC_IRQ_SCC1A_RXERR	37	/* SCC1A (modem) receive overrun */
+#define DEC_IRQ_SCC1A_RXDMA	38	/* SCC1A receive half page */
+#define DEC_IRQ_SCC1A_TXERR	39	/* SCC1A xmit memory read/overrun */
+#define DEC_IRQ_SCC1A_TXDMA	40	/* SCC1A transmit page end */
+
+/* TC5 & TC6 are virtual slots for KN02's onboard devices */
+#define DEC_IRQ_TC5		DEC_IRQ_ASC	/* virtual PMAZ-AA */
+#define DEC_IRQ_TC6		DEC_IRQ_LANCE	/* virtual PMAD-AA */
+
+#define DEC_NR_INTS		41
+
+
+/* Largest of cpu mask_nr tables. */
+#define DEC_MAX_CPU_INTS	6
+/* Largest of asic mask_nr tables. */
+#define DEC_MAX_ASIC_INTS	9
+
+
+/*
+ * CPU interrupt bits common to all systems.
+ */
+#define DEC_CPU_INR_FPU		7	/* R3k FPU */
+#define DEC_CPU_INR_SW1		1	/* software #1 */
+#define DEC_CPU_INR_SW0		0	/* software #0 */
+
+#define DEC_CPU_IRQ_BASE	0	/* first IRQ assigned to CPU */
+
+#define DEC_CPU_IRQ_NR(n)	((n) + DEC_CPU_IRQ_BASE)
+#define DEC_CPU_IRQ_MASK(n)	(1 << ((n) + CAUSEB_IP))
+#define DEC_CPU_IRQ_ALL		(0xff << CAUSEB_IP)
+
+
+#ifndef __ASSEMBLY__
+
+/*
+ * Interrupt table structures to hide differences between systems.
+ */
+typedef union { int i; void *p; } int_ptr;
+extern int dec_interrupt[DEC_NR_INTS];
+extern int_ptr cpu_mask_nr_tbl[DEC_MAX_CPU_INTS][2];
+extern int_ptr asic_mask_nr_tbl[DEC_MAX_ASIC_INTS][2];
+extern int cpu_fpu_mask;
+
+
+/*
+ * Common interrupt routine prototypes for all DECStations
+ */
+extern void kn02_io_int(void);
+extern void kn02xa_io_int(void);
+extern void kn03_io_int(void);
+extern void asic_dma_int(void);
+extern void asic_all_int(void);
+extern void kn02_all_int(void);
+extern void cpu_all_int(void);
+
+extern void dec_intr_unimplemented(void);
+extern void asic_intr_unimplemented(void);
+
+#endif /* __ASSEMBLY__ */
+
+#endif
diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/ioasic_addrs.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/ioasic_addrs.h
--- linux-2.4.20/include/asm-mips64/dec/ioasic_addrs.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/ioasic_addrs.h	2003-01-20 14:21:43.000000000 -0600
@@ -0,0 +1,83 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * Definitions for the address map in the JUNKIO Asic
+ *
+ * Created with Information from:
+ *
+ * "DEC 3000 300/400/500/600/700/800/900 AXP Models System Programmer's Manual"
+ *
+ * and the Mach Sources
+ */
+
+#ifndef IOASIC_ADDRS_H
+#define IOASIC_ADDRS_H
+
+#define IOASIC_SLOT_SIZE 0x00040000
+
+#define SYSTEM_ROM 	(0*IOASIC_SLOT_SIZE)	/* board ROM */
+#define IOCTL 		(1*IOASIC_SLOT_SIZE)	/* I/O ASIC */
+#define ESAR 		(2*IOASIC_SLOT_SIZE)	/* LANCE MAC address chip */
+#define LANCE 		(3*IOASIC_SLOT_SIZE)	/* LANCE Ethernet */
+#define SCC0 		(4*IOASIC_SLOT_SIZE)	/* SCC #0 */
+#define VDAC_HI		(5*IOASIC_SLOT_SIZE)	/* VDAC (maxine) */
+#define SCC1 		(6*IOASIC_SLOT_SIZE)	/* SCC #1 (3min, 3max+) */
+#define VDAC_LO		(7*IOASIC_SLOT_SIZE)	/* VDAC (maxine) */
+#define TOY 		(8*IOASIC_SLOT_SIZE)	/* RTC */
+#define ISDN 		(9*IOASIC_SLOT_SIZE)	/* ISDN (maxine) */
+#define ERRADDR		(9*IOASIC_SLOT_SIZE)	/* bus error address (3max+) */
+#define CHKSYN 		(10*IOASIC_SLOT_SIZE)	/* ECC syndrome (3max+) */
+#define ACCESS_BUS	(10*IOASIC_SLOT_SIZE)	/* Access.Bus (maxine) */
+#define MCR 		(11*IOASIC_SLOT_SIZE)	/* memory control (3max+) */
+#define FLOPPY 		(11*IOASIC_SLOT_SIZE)	/* FDC (maxine) */
+#define SCSI 		(12*IOASIC_SLOT_SIZE)	/* ASC SCSI */
+#define FLOPPY_DMA 	(13*IOASIC_SLOT_SIZE)	/* FDC DMA (maxine) */
+#define SCSI_DMA 	(14*IOASIC_SLOT_SIZE)	/* ??? */
+#define RESERVED_4 	(15*IOASIC_SLOT_SIZE)	/* unused? */
+
+/*
+ * Offsets for IOCTL registers (relative to (system_base + IOCTL))
+ */
+#define SCSI_DMA_P	0x00			/* SCSI DMA Pointer */
+#define SCSI_DMA_BP	0x10			/* SCSI DMA Buffer Pointer */
+#define LANCE_DMA_P	0x20			/* LANCE DMA Pointer */
+#define SCC0_T_DMA_P	0x30			/* Communication Port 1 Transmit DMA Pointer */
+#define SCC0_R_DMA_P	0x40			/* Communication Port 1 Receive DMA Pointer */
+#define SCC1_T_DMA_P	0x50			/* Communication Port 2 Transmit DMA Pointer */
+#define SCC1_R_DMA_P	0x60			/* Communication Port 2 Receive DMA Pointer */
+#define FLOPPY_DMA_P	0x70			/* Floppy DMA Pointer */
+#define ISDN_T_DMA_P	0x80			/* ISDN Transmit DMA Pointer */
+#define ISDN_T_DMA_BP	0x90			/* ISDN Transmit DMA Buffer Pointer */
+#define ISDN_R_DMA_P	0xa0			/* ISDN Receive DMA Pointer */
+#define ISDN_R_DMA_BP	0xb0			/* ISDN Receive DMA Buffer Pointer */
+
+#define SSR		0x100			/* System Support Register */
+#define SIR		0x110			/* System Interrupt Register */
+#define SIMR		0x120			/* System Interrupt Mask Register */
+#define FCTR		0x1e0			/* Free-Running Counter */
+
+/*
+ * Handle partial word SCSI DMA transfers
+ */
+#define	SCSI_SCR	0x1b0
+#define	SCSI_SDR0	0x1c0
+#define	SCSI_SDR1	0x1d0
+
+/*
+ * DMA defines for the System Support Register
+ */
+#define LANCE_DMA_EN	(1UL<<16)			/* LANCE DMA enable */
+#define SCSI_DMA_EN	(1UL<<17)			/* SCSI DMA enable */
+#define SCSI_DMA_DIR	(1UL<<18)			/* SCSI DMA direction */
+#define ISDN_REC_DMA_EN (1UL<<19)			/* ISDN receive DMA enable */
+#define ISDN_TRN_DMA_EN (1UL<<20)			/* ISDN transmit DMA enable */
+#define FLOPPY_DMA_EN	(1UL<<21)			/* Floppy DMA enable */
+#define FLOPPY_DMA_DIR	(1UL<<22)			/* Floppy DMA direction */
+#define SCC1A_DMA_EN	(1UL<<28)			/* SCC1 Channel A DMA enable */
+#define SCC1B_DMA_EN	(1UL<<29)			/* SCC1 Channel B DMA enable */
+#define SCC0A_DMA_EN	(1UL<<30)			/* SCC0 Channel A DMA enable */
+#define SCC0B_DMA_EN	(1UL<<31)			/* Scc0 Channel B DMA enable */
+
+#endif
diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/ioasic.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/ioasic.h
--- linux-2.4.20/include/asm-mips64/dec/ioasic.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/ioasic.h	2003-01-30 08:25:16.000000000 -0600
@@ -0,0 +1,36 @@
+/*
+ *	include/asm-mips/dec/ioasic.h
+ *
+ *	DEC I/O ASIC access operations.
+ *
+ *	Copyright (C) 2000, 2002, 2003  Maciej W. Rozycki
+ *
+ *	This program is free software; you can redistribute it and/or
+ *	modify it under the terms of the GNU General Public License
+ *	as published by the Free Software Foundation; either version
+ *	2 of the License, or (at your option) any later version.
+ */
+
+#ifndef __ASM_DEC_IOASIC_H
+#define __ASM_DEC_IOASIC_H
+
+#include <linux/spinlock.h>
+#include <linux/types.h>
+
+extern spinlock_t ioasic_ssr_lock;
+
+extern volatile u32 *ioasic_base;
+
+static inline void ioasic_write(unsigned int reg, u32 v)
+{
+	ioasic_base[reg / 4] = v;
+}
+
+static inline u32 ioasic_read(unsigned int reg)
+{
+	return ioasic_base[reg / 4];
+}
+
+extern void init_ioasic_irqs(int base);
+
+#endif /* __ASM_DEC_IOASIC_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/ioasic_ints.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/ioasic_ints.h
--- linux-2.4.20/include/asm-mips64/dec/ioasic_ints.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/ioasic_ints.h	2003-01-20 14:21:43.000000000 -0600
@@ -0,0 +1,74 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * Definitions for the interrupt related bits in the I/O ASIC
+ * interrupt status register (and the interrupt mask register, of course)
+ *
+ * Created with Information from:
+ *
+ * "DEC 3000 300/400/500/600/700/800/900 AXP Models System Programmer's Manual"
+ *
+ * and the Mach Sources
+ *
+ * Copyright (C) 199x  the Anonymous
+ * Copyright (C) 2002  Maciej W. Rozycki
+ */
+
+#ifndef __ASM_DEC_IOASIC_INTS_H
+#define __ASM_DEC_IOASIC_INTS_H
+
+/*
+ * The upper 16 bits are a part of the I/O ASIC's internal DMA engine
+ * and thus are common to all I/O ASIC machines.  The exception is
+ * the Maxine, which makes use of the FLOPPY and ISDN bits (otherwise
+ * unused) and has a different SCC wiring.
+ */
+					/* all systems */
+#define IO_INR_SCC0A_TXDMA	31	/* SCC0A transmit page end */
+#define IO_INR_SCC0A_TXERR	30	/* SCC0A transmit memory read error */
+#define IO_INR_SCC0A_RXDMA	29	/* SCC0A receive half page */
+#define IO_INR_SCC0A_RXERR	28	/* SCC0A receive overrun */
+#define IO_INR_ASC_DMA		19	/* ASC buffer pointer loaded */
+#define IO_INR_ASC_ERR		18	/* ASC page overrun */
+#define IO_INR_ASC_MERR		17	/* ASC memory read error */
+#define IO_INR_LANCE_MERR	16	/* LANCE memory read error */
+
+					/* except Maxine */
+#define IO_INR_SCC1A_TXDMA	27	/* SCC1A transmit page end */
+#define IO_INR_SCC1A_TXERR	26	/* SCC1A transmit memory read error */
+#define IO_INR_SCC1A_RXDMA	25	/* SCC1A receive half page */
+#define IO_INR_SCC1A_RXERR	24	/* SCC1A receive overrun */
+#define IO_INR_RES_23		23	/* unused */
+#define IO_INR_RES_22		22	/* unused */
+#define IO_INR_RES_21		21	/* unused */
+#define IO_INR_RES_20		20	/* unused */
+
+					/* Maxine */
+#define IO_INR_AB_TXDMA		27	/* ACCESS.bus transmit page end */
+#define IO_INR_AB_TXERR		26	/* ACCESS.bus xmit memory read error */
+#define IO_INR_AB_RXDMA		25	/* ACCESS.bus receive half page */
+#define IO_INR_AB_RXERR		24	/* ACCESS.bus receive overrun */
+#define IO_INR_FLOPPY_ERR	23	/* FDC error */
+#define IO_INR_ISDN_TXDMA	22	/* ISDN xmit buffer pointer loaded */
+#define IO_INR_ISDN_RXDMA	21	/* ISDN recv buffer pointer loaded */
+#define IO_INR_ISDN_ERR		20	/* ISDN memory read/overrun error */
+
+#define IO_INR_DMA		16	/* first DMA IRQ */
+
+/*
+ * The lower 16 bits are system-specific and thus defined in
+ * system-specific headers.
+ */
+
+
+#define IO_IRQ_BASE		8	/* first IRQ assigned to I/O ASIC */
+#define IO_IRQ_LINES		32	/* number of I/O ASIC interrupts */
+
+#define IO_IRQ_NR(n)		((n) + IO_IRQ_BASE)
+#define IO_IRQ_MASK(n)		(1 << (n))
+#define IO_IRQ_ALL		0x0000ffff
+#define IO_IRQ_DMA		0xffff0000
+
+#endif /* __ASM_DEC_IOASIC_INTS_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/io.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/io.h
--- linux-2.4.20/include/asm-mips64/dec/io.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/io.h	2003-01-20 14:21:43.000000000 -0600
@@ -0,0 +1,20 @@
+/*
+ *      include/asm-mips64/dec/io.h
+ *
+ *      Copyright (C) 2002  Maciej W. Rozycki
+ *
+ *      This program is free software; you can redistribute it and/or
+ *      modify it under the terms of the GNU General Public License
+ *      as published by the Free Software Foundation; either version
+ *      2 of the License, or (at your option) any later version.
+ */
+#ifndef __ASM_MIPS64_DEC_IO_H
+#define __ASM_MIPS64_DEC_IO_H
+
+#include <asm/addrspace.h>
+
+#define IO_SPACE_BASE K1BASE
+
+#define IO_SPACE_LIMIT 0xffffffff
+
+#endif /* __ASM_MIPS64_DEC_IO_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/kn01.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/kn01.h
--- linux-2.4.20/include/asm-mips64/dec/kn01.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/kn01.h	2003-01-20 14:21:43.000000000 -0600
@@ -0,0 +1,38 @@
+/*
+ * Hardware info about DECstation DS2100/3100 systems (otherwise known as
+ * pmin/pmax or KN01).
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * Copyright (C) 1995,1996 by Paul M. Antoine, some code and definitions
+ * are by courtesy of Chris Fraser.
+ * Copyright (C) 2002  Maciej W. Rozycki
+ */
+#ifndef __ASM_MIPS_DEC_KN01_H
+#define __ASM_MIPS_DEC_KN01_H
+
+#include <asm/addrspace.h>
+
+/*
+ * Some port addresses...
+ */
+#define KN01_SLOT_SIZE	0x01000000
+
+#define KN01_LANCE_BASE (KSEG1ADDR(0x18000000)) /* 0xB8000000 */
+#define KN01_DZ11_BASE	(KSEG1ADDR(0x1c000000)) /* 0xBC000000 */
+#define KN01_RTC_BASE	(KSEG1ADDR(0x1d000000)) /* 0xBD000000 */
+
+
+/*
+ * CPU interrupt bits.
+ */
+#define KN01_CPU_INR_MEMORY	6	/* memory, I/O bus write errors */
+#define KN01_CPU_INR_VIDEO	6	/* framebuffer */
+#define KN01_CPU_INR_RTC	5	/* DS1287 RTC */
+#define KN01_CPU_INR_DZ11	4	/* DZ11 (DC7085) serial */
+#define KN01_CPU_INR_LANCE	3	/* LANCE (Am7990) Ethernet */
+#define KN01_CPU_INR_SII	2	/* SII (DC7061) SCSI */
+
+#endif /* __ASM_MIPS_DEC_KN01_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/kn02ba.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/kn02ba.h
--- linux-2.4.20/include/asm-mips64/dec/kn02ba.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/kn02ba.h	2003-01-20 14:21:43.000000000 -0600
@@ -0,0 +1,53 @@
+/*
+ *	include/asm-mips/dec/kn02ba.h
+ *
+ *	DECstation 5000/1xx (3min or KN02-BA) definitions.
+ *
+ *	Copyright (C) 2002  Maciej W. Rozycki
+ *
+ *	This program is free software; you can redistribute it and/or
+ *	modify it under the terms of the GNU General Public License
+ *	as published by the Free Software Foundation; either version
+ *	2 of the License, or (at your option) any later version.
+ */
+#ifndef __ASM_MIPS_DEC_KN02BA_H
+#define __ASM_MIPS_DEC_KN02BA_H
+
+#include <asm/dec/kn02xa.h>		/* For common definitions. */
+
+/*
+ * Some port addresses...
+ */
+#define KN02BA_IOASIC_BASE	KN02XA_IOASIC_BASE	/* I/O ASIC */
+#define KN02BA_RTC_BASE		KN02XA_RTC_BASE		/* RTC */
+
+/*
+ * CPU interrupt bits.
+ */
+#define KN02BA_CPU_INR_HALT	6	/* HALT button */
+#define KN02BA_CPU_INR_CASCADE	5	/* I/O ASIC cascade */
+#define KN02BA_CPU_INR_TC2	4	/* TURBOchannel slot #2 */
+#define KN02BA_CPU_INR_TC1	3	/* TURBOchannel slot #1 */
+#define KN02BA_CPU_INR_TC0	2	/* TURBOchannel slot #0 */
+
+/*
+ * I/O ASIC interrupt bits.  Star marks denote non-IRQ status bits.
+ */
+#define KN02BA_IO_INR_RES_15	15	/* unused */
+#define KN02BA_IO_INR_NVRAM	14	/* (*) NVRAM clear jumper */
+#define KN02BA_IO_INR_RES_13	13	/* unused */
+#define KN02BA_IO_INR_MEMORY	12	/* memory, I/O bus write errors */
+#define KN02BA_IO_INR_RES_11	11	/* unused */
+#define KN02BA_IO_INR_NRMOD	10	/* (*) NRMOD manufacturing jumper */
+#define KN02BA_IO_INR_ASC	9	/* ASC (NCR53C94) SCSI */
+#define KN02BA_IO_INR_LANCE	8	/* LANCE (Am7990) Ethernet */
+#define KN02BA_IO_INR_SCC1	7	/* SCC (Z85C30) serial #1 */
+#define KN02BA_IO_INR_SCC0	6	/* SCC (Z85C30) serial #0 */
+#define KN02BA_IO_INR_RTC	5	/* DS1287 RTC */
+#define KN02BA_IO_INR_PSU	4	/* power supply unit warning */
+#define KN02BA_IO_INR_RES_3	3	/* unused */
+#define KN02BA_IO_INR_ASC_DATA	2	/* SCSI data ready (discouraged?) */
+#define KN02BA_IO_INR_PBNC	1	/* HALT button debouncer */
+#define KN02BA_IO_INR_PBNO	0	/* ~HALT button debouncer */
+
+#endif /* __ASM_MIPS_DEC_KN02BA_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/kn02ca.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/kn02ca.h
--- linux-2.4.20/include/asm-mips64/dec/kn02ca.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/kn02ca.h	2003-01-20 14:21:43.000000000 -0600
@@ -0,0 +1,53 @@
+/*
+ *	include/asm-mips/dec/kn02ca.h
+ *
+ *	Personal DECstation 5000/xx (Maxine or KN02-CA) definitions.
+ *
+ *	Copyright (C) 2002  Maciej W. Rozycki
+ *
+ *	This program is free software; you can redistribute it and/or
+ *	modify it under the terms of the GNU General Public License
+ *	as published by the Free Software Foundation; either version
+ *	2 of the License, or (at your option) any later version.
+ */
+#ifndef __ASM_MIPS_DEC_KN02CA_H
+#define __ASM_MIPS_DEC_KN02CA_H
+
+#include <asm/dec/kn02xa.h>		/* For common definitions. */
+
+/*
+ * Some port addresses...
+ */
+#define KN02CA_IOASIC_BASE	KN02XA_IOASIC_BASE	/* I/O ASIC */
+#define KN02CA_RTC_BASE		KN02XA_RTC_BASE		/* RTC */
+
+/*
+ * CPU interrupt bits.
+ */
+#define KN02CA_CPU_INR_HALT	6	/* HALT from ACCESS.Bus */
+#define KN02CA_CPU_INR_CASCADE	5	/* I/O ASIC cascade */
+#define KN02CA_CPU_INR_MEMORY	4	/* memory, I/O bus write errors */
+#define KN02CA_CPU_INR_RTC	3	/* DS1287 RTC */
+#define KN02CA_CPU_INR_TIMER	2	/* ARC periodic timer */
+
+/*
+ * I/O ASIC interrupt bits.  Star marks denote non-IRQ status bits.
+ */
+#define KN02CA_IO_INR_FLOPPY	15	/* 82077 FDC */
+#define KN02CA_IO_INR_NVRAM	14	/* (*) NVRAM clear jumper */
+#define KN02CA_IO_INR_POWERON	13	/* (*) power-on reset */
+#define KN02CA_IO_INR_TC0	12	/* TURBOchannel slot #0 */
+#define KN02CA_IO_INR_ISDN	11	/* Am79C30A ISDN */
+#define KN02CA_IO_INR_NRMOD	10	/* (*) NRMOD manufacturing jumper */
+#define KN02CA_IO_INR_ASC	9	/* ASC (NCR53C94) SCSI */
+#define KN02CA_IO_INR_LANCE	8	/* LANCE (Am7990) Ethernet */
+#define KN02CA_IO_INR_HDFLOPPY	7	/* (*) HD (1.44MB) floppy status */
+#define KN02CA_IO_INR_SCC0	6	/* SCC (Z85C30) serial #0 */
+#define KN02CA_IO_INR_TC1	5	/* TURBOchannel slot #1 */
+#define KN02CA_IO_INR_XDFLOPPY	4	/* (*) XD (2.88MB) floppy status */
+#define KN02CA_IO_INR_VIDEO	3	/* framebuffer */
+#define KN02CA_IO_INR_XVIDEO	2	/* ~framebuffer */
+#define KN02CA_IO_INR_AB_XMIT	1	/* ACCESS.bus transmit */
+#define KN02CA_IO_INR_AB_RECV	0	/* ACCESS.bus receive */
+
+#endif /* __ASM_MIPS_DEC_KN02CA_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/kn02.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/kn02.h
--- linux-2.4.20/include/asm-mips64/dec/kn02.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/kn02.h	2003-01-20 14:21:43.000000000 -0600
@@ -0,0 +1,76 @@
+/*
+ * Hardware info about DECstation 5000/200 systems (otherwise known as
+ * 3max or KN02).
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * Copyright (C) 1995,1996 by Paul M. Antoine, some code and definitions
+ * are by courtesy of Chris Fraser.
+ * Copyright (C) 2002  Maciej W. Rozycki
+ */
+#ifndef __ASM_MIPS_DEC_KN02_H
+#define __ASM_MIPS_DEC_KN02_H
+
+#ifndef __ASSEMBLY__
+#include <linux/spinlock.h>
+#include <linux/types.h>
+#endif
+
+#include <asm/addrspace.h>
+
+
+/*
+ * Motherboard regs (kseg1 addresses)
+ */
+#define KN02_CSR_ADDR	KSEG1ADDR(0x1ff00000)	/* system control & status reg */
+
+/*
+ * Some port addresses...
+ */
+#define KN02_SLOT_SIZE	0x00080000
+
+#define KN02_RTC_BASE	KSEG1ADDR(0x1fe80000)
+#define KN02_DZ11_BASE	KSEG1ADDR(0x1fe00000)
+
+#define KN02_CSR_BNK32M	(1<<10)			/* 32M stride */
+
+
+/*
+ * CPU interrupt bits.
+ */
+#define KN02_CPU_INR_RES_6	6	/* unused */
+#define KN02_CPU_INR_MEMORY	5	/* memory, I/O bus write errors */
+#define KN02_CPU_INR_RES_4	4	/* unused */
+#define KN02_CPU_INR_RTC	3	/* DS1287 RTC */
+#define KN02_CPU_INR_CASCADE	2	/* CSR cascade */
+
+/*
+ * CSR interrupt bits.
+ */
+#define KN02_CSR_INR_DZ11	7	/* DZ11 (DC7085) serial */
+#define KN02_CSR_INR_LANCE	6	/* LANCE (Am7990) Ethernet */
+#define KN02_CSR_INR_ASC	5	/* ASC (NCR53C94) SCSI */
+#define KN02_CSR_INR_RES_4	4	/* unused */
+#define KN02_CSR_INR_RES_3	3	/* unused */
+#define KN02_CSR_INR_TC2	2	/* TURBOchannel slot #2 */
+#define KN02_CSR_INR_TC1	1	/* TURBOchannel slot #1 */
+#define KN02_CSR_INR_TC0	0	/* TURBOchannel slot #0 */
+
+
+#define KN02_IRQ_BASE		8	/* first IRQ assigned to CSR */
+#define KN02_IRQ_LINES		8	/* number of CSR interrupts */
+
+#define KN02_IRQ_NR(n)		((n) + KN02_IRQ_BASE)
+#define KN02_IRQ_MASK(n)	(1 << (n))
+#define KN02_IRQ_ALL		0xff
+
+
+#ifndef __ASSEMBLY__
+extern u32 cached_kn02_csr;
+extern spinlock_t kn02_lock;
+extern void init_kn02_irqs(int base);
+#endif
+
+#endif /* __ASM_MIPS_DEC_KN02_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/kn02xa.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/kn02xa.h
--- linux-2.4.20/include/asm-mips64/dec/kn02xa.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/kn02xa.h	2003-02-03 07:11:23.000000000 -0600
@@ -0,0 +1,28 @@
+/*
+ * Hardware info common to DECstation 5000/1xx systems (otherwise
+ * known as 3min or kn02ba) and Personal DECstations 5000/xx ones
+ * (otherwise known as maxine or kn02ca).
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * Copyright (C) 1995,1996 by Paul M. Antoine, some code and definitions
+ * are by courtesy of Chris Fraser.
+ * Copyright (C) 2000, 2002  Maciej W. Rozycki
+ *
+ * These are addresses which have to be known early in the boot process.
+ * For other addresses refer to tc.h, ioasic_addrs.h and friends.
+ */
+#ifndef __ASM_MIPS_DEC_KN02XA_H
+#define __ASM_MIPS_DEC_KN02XA_H
+
+#include <asm/addrspace.h>
+
+/*
+ * Some port addresses...
+ */
+#define KN02XA_IOASIC_BASE	KSEG1ADDR(0x1c040000)	/* I/O ASIC */
+#define KN02XA_RTC_BASE		KSEG1ADDR(0x1c200000)	/* RTC */
+
+#endif /* __ASM_MIPS_DEC_KN02XA_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/kn03.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/kn03.h
--- linux-2.4.20/include/asm-mips64/dec/kn03.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/kn03.h	2003-02-03 07:11:23.000000000 -0600
@@ -0,0 +1,62 @@
+/*
+ * Hardware info about DECstation 5000/2x0 systems (otherwise known as
+ * 3max+) and DECsystem 5900 systems (otherwise known as bigmax) which
+ * differ mechanically but are otherwise identical (both are known as
+ * KN03).
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * Copyright (C) 1995,1996 by Paul M. Antoine, some code and definitions
+ * are by courtesy of Chris Fraser.
+ * Copyright (C) 2000, 2002  Maciej W. Rozycki
+ *
+ * These are addresses which have to be known early in the boot process.
+ * For other addresses refer to tc.h ioasic_addrs.h and friends.
+ */
+#ifndef __ASM_MIPS_DEC_KN03_H
+#define __ASM_MIPS_DEC_KN03_H
+
+#include <asm/addrspace.h>
+
+/*
+ * Some port addresses...
+ */
+#define KN03_IOASIC_BASE	KSEG1ADDR(0x1f840000)	/* I/O ASIC */
+#define KN03_RTC_BASE		KSEG1ADDR(0x1fa00000)	/* RTC */
+#define KN03_MCR_BASE		KSEG1ADDR(0x1fac0000)	/* MCR */
+
+#define KN03_MCR_BNK32M		(1<<10)			/* 32M stride */
+#define KN03_MCR_ECCEN		(1<<13)			/* ECC enabled */
+
+/*
+ * CPU interrupt bits.
+ */
+#define KN03_CPU_INR_HALT	6	/* HALT button */
+#define KN03_CPU_INR_MEMORY	5	/* memory, I/O bus write errors */
+#define KN03_CPU_INR_RES_4	4	/* unused */
+#define KN03_CPU_INR_RTC	3	/* DS1287 RTC */
+#define KN03_CPU_INR_CASCADE	2	/* I/O ASIC cascade */
+
+/*
+ * I/O ASIC interrupt bits.  Star marks denote non-IRQ status bits.
+ */
+#define KN03_IO_INR_3MAXP	15	/* (*) 3max+/bigmax ID */
+#define KN03_IO_INR_NVRAM	14	/* (*) NVRAM clear jumper */
+#define KN03_IO_INR_TC2		13	/* TURBOchannel slot #2 */
+#define KN03_IO_INR_TC1		12	/* TURBOchannel slot #1 */
+#define KN03_IO_INR_TC0		11	/* TURBOchannel slot #0 */
+#define KN03_IO_INR_NRMOD	10	/* (*) NRMOD manufacturing jumper */
+#define KN03_IO_INR_ASC		9	/* ASC (NCR53C94) SCSI */
+#define KN03_IO_INR_LANCE	8	/* LANCE (Am7990) Ethernet */
+#define KN03_IO_INR_SCC1	7	/* SCC (Z85C30) serial #1 */
+#define KN03_IO_INR_SCC0	6	/* SCC (Z85C30) serial #0 */
+#define KN03_IO_INR_RTC		5	/* DS1287 RTC (?) */
+#define KN03_IO_INR_PSU		4	/* power supply unit warning */
+#define KN03_IO_INR_RES_3	3	/* unused */
+#define KN03_IO_INR_ASC_DATA	2	/* SCSI data ready (discouraged?) (?) */
+#define KN03_IO_INR_PBNC	1	/* HALT button debouncer */
+#define KN03_IO_INR_PBNO	0	/* ~HALT button debouncer */
+
+#endif /* __ASM_MIPS_DEC_KN03_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/kn05.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/kn05.h
--- linux-2.4.20/include/asm-mips64/dec/kn05.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/kn05.h	2003-01-20 14:21:43.000000000 -0600
@@ -0,0 +1,70 @@
+/*
+ *	include/asm-mips/dec/kn05.h
+ *
+ *	DECstation 5000/260 (4max+ or KN05) and DECsystem 5900-260
+ *	definitions.
+ *
+ *	Copyright (C) 2002  Maciej W. Rozycki
+ *
+ *	This program is free software; you can redistribute it and/or
+ *	modify it under the terms of the GNU General Public License
+ *	as published by the Free Software Foundation; either version
+ *	2 of the License, or (at your option) any later version.
+ *
+ *	WARNING!  All this information is pure guesswork based on the
+ *	ROM.  It is provided here in hope it will give someone some
+ *	food for thought.  No documentation for the KN05 module has
+ *	been located so far.
+ */
+#ifndef __ASM_MIPS_DEC_KN05_H
+#define __ASM_MIPS_DEC_KN05_H
+
+#include <asm/dec/ioasic_addrs.h>
+
+/*
+ * The oncard MB (Memory Buffer) ASIC provides an additional address
+ * decoder.  Certain address ranges within the "high" 16 slots are
+ * passed to the I/O ASIC's decoder like with the KN03.  Others are
+ * handled locally.  "Low" slots are always passed.
+ */
+#define KN05_MB_ROM	(16*IOASIC_SLOT_SIZE)	/* KN05 card ROM */
+#define KN05_IOCTL	(17*IOASIC_SLOT_SIZE)	/* I/O ASIC */
+#define KN05_ESAR	(18*IOASIC_SLOT_SIZE)	/* LANCE MAC address chip */
+#define KN05_LANCE	(19*IOASIC_SLOT_SIZE)	/* LANCE Ethernet */
+#define KN05_MB_INT	(20*IOASIC_SLOT_SIZE)	/* MB interrupt register? */
+#define KN05_MB_UNKN_0	(21*IOASIC_SLOT_SIZE)	/* MB unknown register */
+#define KN05_MB_UNKN_1	(22*IOASIC_SLOT_SIZE)	/* MB unknown register */
+#define KN05_MB_CSR	(23*IOASIC_SLOT_SIZE)	/* MB control & status */
+#define KN05_RESERVED_0	(24*IOASIC_SLOT_SIZE)	/* unused? */
+#define KN05_RESERVED_1	(25*IOASIC_SLOT_SIZE)	/* unused? */
+#define KN05_RESERVED_2	(26*IOASIC_SLOT_SIZE)	/* unused? */
+#define KN05_RESERVED_3	(27*IOASIC_SLOT_SIZE)	/* unused? */
+#define KN05_SCSI	(28*IOASIC_SLOT_SIZE)	/* ASC SCSI */
+#define KN05_RESERVED_4	(29*IOASIC_SLOT_SIZE)	/* unused? */
+#define KN05_RESERVED_5	(30*IOASIC_SLOT_SIZE)	/* unused? */
+#define KN05_RESERVED_6	(31*IOASIC_SLOT_SIZE)	/* unused? */
+
+/*
+ * Bits for the MB interrupt (?) register.
+ * The register appears read-only.
+ */
+#define KN05_MB_INT_TC		(1<<0)		/* TURBOchannel? */
+#define KN05_MB_INT_RTC		(1<<1)		/* RTC? */
+
+/*
+ * Bits for the MB control & status register.
+ * Set to 0x00bf8001 on my system by the ROM.
+ */
+#define KN05_MB_CSR_PF		(1<<0)		/* ??? */
+#define KN05_MB_CSR_F		(1<<1)		/* ??? */
+#define KN05_MB_CSR_ECC		(0xff<<2)	/* ??? */
+#define KN05_MB_CSR_OD		(1<<10)		/* ??? */
+#define KN05_MB_CSR_CP		(1<<11)		/* ??? */
+#define KN05_MB_CSR_UNC		(1<<12)		/* ??? */
+#define KN05_MB_CSR_IM		(1<<13)		/* ??? */
+#define KN05_MB_CSR_NC		(1<<14)		/* ??? */
+#define KN05_MB_CSR_EE		(1<<15)		/* (bus) Exception Enable? */
+#define KN05_MB_CSR_MSK		(0x1f<<16)	/* ??? */
+#define KN05_MB_CSR_FW		(1<<21)		/* ??? */
+
+#endif /* __ASM_MIPS_DEC_KN05_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/kn230.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/kn230.h
--- linux-2.4.20/include/asm-mips64/dec/kn230.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/kn230.h	2003-01-20 14:21:43.000000000 -0600
@@ -0,0 +1,26 @@
+/*
+ *	include/asm-mips/dec/kn230.h
+ *
+ *	DECsystem 5100 (MIPSmate or KN230) definitions.
+ *
+ *	Copyright (C) 2002  Maciej W. Rozycki
+ *
+ *	This program is free software; you can redistribute it and/or
+ *	modify it under the terms of the GNU General Public License
+ *	as published by the Free Software Foundation; either version
+ *	2 of the License, or (at your option) any later version.
+ */
+#ifndef __ASM_MIPS_DEC_KN230_H
+#define __ASM_MIPS_DEC_KN230_H
+
+/*
+ * CPU interrupt bits.
+ */
+#define KN230_CPU_INR_HALT	6	/* HALT button */
+#define KN230_CPU_INR_MEMORY	5	/* memory, I/O bus write errors */
+#define KN230_CPU_INR_RTC	4	/* DS1287 RTC */
+#define KN230_CPU_INR_SII	3	/* SII (DC7061) SCSI */
+#define KN230_CPU_INR_LANCE	3	/* LANCE (Am7990) Ethernet */
+#define KN230_CPU_INR_DZ11	2	/* DZ11 (DC7085) serial */
+
+#endif /* __ASM_MIPS_DEC_KN230_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/machtype.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/machtype.h
--- linux-2.4.20/include/asm-mips64/dec/machtype.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/machtype.h	2003-01-20 14:21:43.000000000 -0600
@@ -0,0 +1,27 @@
+/*
+ * Various machine type macros
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * Copyright (c) 1998, 2000 Harald Koerfgen
+ */
+
+#ifndef __ASM_DEC_MACHTYPE_H
+#define __ASM_DEC_MACHTYPE_H
+
+#include <asm/bootinfo.h>
+
+#define TURBOCHANNEL	(mips_machtype == MACH_DS5000_200 || \
+			 mips_machtype == MACH_DS5000_1XX || \
+			 mips_machtype == MACH_DS5000_XX  || \
+			 mips_machtype == MACH_DS5000_2X0 || \
+			 mips_machtype == MACH_DS5900)
+
+#define IOASIC		(mips_machtype == MACH_DS5000_1XX || \
+			 mips_machtype == MACH_DS5000_XX  || \
+			 mips_machtype == MACH_DS5000_2X0 || \
+			 mips_machtype == MACH_DS5900)
+
+#endif
diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/prom.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/prom.h
--- linux-2.4.20/include/asm-mips64/dec/prom.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/prom.h	2003-01-20 14:21:43.000000000 -0600
@@ -0,0 +1,169 @@
+/*
+ *	include/asm-mips64/dec/prom.h
+ *
+ *	DECstation PROM interface.
+ *
+ *	Copyright (C) 2002  Maciej W. Rozycki
+ *
+ *	This program is free software; you can redistribute it and/or
+ *	modify it under the terms of the GNU General Public License
+ *	as published by the Free Software Foundation; either version
+ *	2 of the License, or (at your option) any later version.
+ *
+ *	Based on arch/mips/dec/prom/prom.h by the Anonymous.
+ */
+#ifndef __ASM_MIPS64_DEC_PROM_H
+#define __ASM_MIPS64_DEC_PROM_H
+
+#include <linux/types.h>
+
+#include <asm/addrspace.h>
+
+/*
+ * PMAX/3MAX PROM entry points for DS2100/3100's and DS5000/2xx's.
+ * Many of these will work for MIPSen as well!
+ */
+#define VEC_RESET		(u64 *)KSEG1ADDR(0x1fc00000)
+							/* Prom base address */
+
+#define PMAX_PROM_ENTRY(x)	(VEC_RESET + (x))	/* Prom jump table */
+
+#define PMAX_PROM_HALT		PMAX_PROM_ENTRY(2)	/* valid on MIPSen */
+#define PMAX_PROM_AUTOBOOT	PMAX_PROM_ENTRY(5)	/* valid on MIPSen */
+#define PMAX_PROM_OPEN		PMAX_PROM_ENTRY(6)
+#define PMAX_PROM_READ		PMAX_PROM_ENTRY(7)
+#define PMAX_PROM_CLOSE		PMAX_PROM_ENTRY(10)
+#define PMAX_PROM_LSEEK		PMAX_PROM_ENTRY(11)
+#define PMAX_PROM_GETCHAR	PMAX_PROM_ENTRY(12)
+#define PMAX_PROM_PUTCHAR	PMAX_PROM_ENTRY(13)	/* 12 on MIPSen */
+#define PMAX_PROM_GETS		PMAX_PROM_ENTRY(15)
+#define PMAX_PROM_PRINTF	PMAX_PROM_ENTRY(17)
+#define PMAX_PROM_GETENV	PMAX_PROM_ENTRY(33)	/* valid on MIPSen */
+
+
+/*
+ * Magic number indicating REX PROM available on DECstation.  Found in
+ * register a2 on transfer of control to program from PROM.
+ */
+#define REX_PROM_MAGIC		0x30464354
+
+#ifdef CONFIG_MIPS64
+
+#define prom_is_rex(magic)	1	/* KN04 and KN05 are REX PROMs.  */
+
+#else /* !CONFIG_MIPS64 */
+
+#define prom_is_rex(magic)	((magic) == REX_PROM_MAGIC)
+
+#endif /* !CONFIG_MIPS64 */
+
+
+/*
+ * 3MIN/MAXINE PROM entry points for DS5000/1xx's, DS5000/xx's and
+ * DS5000/2x0.
+ */
+#define REX_PROM_GETBITMAP	0x84/4	/* get mem bitmap */
+#define REX_PROM_GETCHAR	0x24/4	/* getch() */
+#define REX_PROM_GETENV		0x64/4	/* get env. variable */
+#define REX_PROM_GETSYSID	0x80/4	/* get system id */
+#define REX_PROM_GETTCINFO	0xa4/4
+#define REX_PROM_PRINTF		0x30/4	/* printf() */
+#define REX_PROM_SLOTADDR	0x6c/4	/* slotaddr */
+#define REX_PROM_BOOTINIT	0x54/4	/* open() */
+#define REX_PROM_BOOTREAD	0x58/4	/* read() */
+#define REX_PROM_CLEARCACHE	0x7c/4
+
+
+/*
+ * Used by rex_getbitmap().
+ */
+typedef struct {
+	int pagesize;
+	unsigned char bitmap[0];
+} memmap;
+
+
+/*
+ * Function pointers as read from a PROM's callback vector.
+ */
+extern int (*__rex_bootinit)(void);
+extern int (*__rex_bootread)(void);
+extern int (*__rex_getbitmap)(memmap *);
+extern unsigned long *(*__rex_slot_address)(int);
+extern void *(*__rex_gettcinfo)(void);
+extern int (*__rex_getsysid)(void);
+extern void (*__rex_clear_cache)(void);
+
+extern int (*__prom_getchar)(void);
+extern char *(*__prom_getenv)(char *);
+extern int (*__prom_printf)(char *, ...);
+
+extern int (*__pmax_open)(char*, int);
+extern int (*__pmax_lseek)(int, long, int);
+extern int (*__pmax_read)(int, void *, int);
+extern int (*__pmax_close)(int);
+
+
+#ifdef CONFIG_MIPS64
+
+/*
+ * On MIPS64 we have to call PROM functions via a helper
+ * dispatcher to accomodate ABI incompatibilities.
+ */
+#define __DEC_PROM_O32 __attribute__((alias("call_o32")))
+
+int _rex_bootinit(int (*)(void)) __DEC_PROM_O32;
+int _rex_bootread(int (*)(void)) __DEC_PROM_O32;
+int _rex_getbitmap(int (*)(memmap *), memmap *) __DEC_PROM_O32;
+unsigned long *_rex_slot_address(unsigned long *(*)(int), int) __DEC_PROM_O32;
+void *_rex_gettcinfo(void *(*)(void)) __DEC_PROM_O32;
+int _rex_getsysid(int (*)(void)) __DEC_PROM_O32;
+void _rex_clear_cache(void (*)(void)) __DEC_PROM_O32;
+
+int _prom_getchar(int (*)(void)) __DEC_PROM_O32;
+char *_prom_getenv(char *(*)(char *), char *) __DEC_PROM_O32;
+int _prom_printf(int (*)(char *, ...), char *, ...) __DEC_PROM_O32;
+
+
+#define rex_bootinit()		_rex_bootinit(__rex_bootinit)
+#define rex_bootread()		_rex_bootread(__rex_bootread)
+#define rex_getbitmap(x)	_rex_getbitmap(__rex_getbitmap, x)
+#define rex_slot_address(x)	_rex_slot_address(__rex_slot_address, x)
+#define rex_gettcinfo()		_rex_gettcinfo(__rex_gettcinfo)
+#define rex_getsysid()		_rex_getsysid(__rex_getsysid)
+#define rex_clear_cache()	_rex_clear_cache(__rex_clear_cache)
+
+#define prom_getchar()		_prom_getchar(__prom_getchar)
+#define prom_getenv(x)		_prom_getenv(__prom_getenv, x)
+#define prom_printf(x...)	_prom_printf(__prom_printf, x)
+
+#else /* !CONFIG_MIPS64 */
+
+/*
+ * On plain MIPS we just call PROM functions directly.
+ */
+#define rex_bootinit		__rex_bootinit
+#define rex_bootread		__rex_bootread
+#define rex_getbitmap		__rex_getbitmap
+#define rex_slot_address	__rex_slot_address
+#define rex_gettcinfo		__rex_gettcinfo
+#define rex_getsysid		__rex_getsysid
+#define rex_clear_cache		__rex_clear_cache
+
+#define prom_getchar		__prom_getchar
+#define prom_getenv		__prom_getenv
+#define prom_printf		__prom_printf
+
+#define pmax_open		__pmax_open
+#define pmax_lseek		__pmax_lseek
+#define pmax_read		__pmax_read
+#define pmax_close		__pmax_close
+
+#endif /* !CONFIG_MIPS64 */
+
+
+extern void prom_meminit(u32);
+extern void prom_identify_arch(u32);
+extern void prom_init_cmdline(s32, s32 *, u32);
+
+#endif /* __ASM_MIPS64_DEC_PROM_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/rtc-dec.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/rtc-dec.h
--- linux-2.4.20/include/asm-mips64/dec/rtc-dec.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/rtc-dec.h	2003-01-20 14:21:43.000000000 -0600
@@ -0,0 +1,32 @@
+/*
+ *	include/asm-mips/dec/rtc-dec.h
+ *
+ *	RTC definitions for DECstation style attached Dallas DS1287 chip.
+ *
+ *	Copyright (C) 2002  Maciej W. Rozycki
+ *
+ *	This program is free software; you can redistribute it and/or
+ *	modify it under the terms of the GNU General Public License
+ *	as published by the Free Software Foundation; either version
+ *	2 of the License, or (at your option) any later version.
+ */
+#ifndef __ASM_MIPS_DEC_RTC_DEC_H
+#define __ASM_MIPS_DEC_RTC_DEC_H
+
+#include <linux/types.h>
+
+#include <asm/addrspace.h>
+
+extern volatile u8 *dec_rtc_base;
+extern unsigned long dec_kn_slot_size;
+
+extern struct rtc_ops dec_rtc_ops;
+
+#define RTC_PORT(x)	CPHYSADDR(dec_rtc_base)
+#define RTC_IO_EXTENT	dec_kn_slot_size
+#define RTC_IOMAPPED	0
+#define RTC_IRQ		0
+
+#define RTC_DEC_YEAR	0x3f	/* Where we store the real year on DECs.  */
+
+#endif /* __ASM_MIPS_DEC_RTC_DEC_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/tc.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/tc.h
--- linux-2.4.20/include/asm-mips64/dec/tc.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/tc.h	2003-01-20 14:21:43.000000000 -0600
@@ -0,0 +1,43 @@
+/*
+ * Interface to the TURBOchannel related routines
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * Copyright (c) 1998 Harald Koerfgen
+ */
+#ifndef ASM_TC_H
+#define ASM_TC_H
+
+extern unsigned long system_base;
+
+/*
+ * Search for a TURBOchannel Option Module
+ * with a certain name. Returns slot number
+ * of the first card not in use or -ENODEV
+ * if none found.
+ */
+extern int search_tc_card(const char *);
+/*
+ * Marks the card in slot as used
+ */
+extern void claim_tc_card(int);
+/*
+ * Marks the card in slot as free
+ */
+extern void release_tc_card(int);
+/*
+ * Return base address of card in slot
+ */
+extern unsigned long get_tc_base_addr(int);
+/*
+ * Return interrupt number of slot
+ */
+extern unsigned long get_tc_irq_nr(int);
+/*
+ * Return TURBOchannel clock frequency in hz
+ */
+extern unsigned long get_tc_speed(void);
+
+#endif
diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/tcinfo.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/tcinfo.h
--- linux-2.4.20/include/asm-mips64/dec/tcinfo.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/tcinfo.h	2003-01-20 14:21:43.000000000 -0600
@@ -0,0 +1,47 @@
+/*
+ * Various TURBOchannel related stuff
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * Information obtained through the get_tcinfo prom call
+ * created from:
+ *
+ * TURBOchannel Firmware Specification
+ *
+ * EK-TCAAD-FS-004
+ * from Digital Equipment Corporation
+ *
+ * Copyright (c) 1998 Harald Koerfgen
+ */
+
+typedef struct {
+	int revision;
+	int clk_period;
+	int slot_size;
+	int io_timeout;
+	int dma_range;
+	int max_dma_burst;
+	int parity;
+	int reserved[4];
+} tcinfo;
+
+#define MAX_SLOT 7
+
+typedef struct {
+	unsigned long base_addr;
+	unsigned char name[9];
+	unsigned char vendor[9];
+	unsigned char firmware[9];
+	int interrupt;
+	int flags;
+} slot_info;
+
+/*
+ * Values for flags
+ */
+#define FREE 	1<<0
+#define IN_USE	1<<1
+
+
diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/tcmodule.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/tcmodule.h
--- linux-2.4.20/include/asm-mips64/dec/tcmodule.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/tcmodule.h	2003-01-20 14:21:43.000000000 -0600
@@ -0,0 +1,39 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * Offsets for the ROM header locations for
+ * TURBOchannel cards
+ *
+ * created from:
+ *
+ * TURBOchannel Firmware Specification
+ *
+ * EK-TCAAD-FS-004
+ * from Digital Equipment Corporation
+ *
+ * Jan.1998 Harald Koerfgen
+ */
+#ifndef __ASM_DEC_TCMODULE_H
+#define __ASM_DEC_TCMODULE_H
+
+#define OLDCARD 0x3c0000
+#define NEWCARD 0x000000
+
+#define TC_ROM_WIDTH	0x3e0
+#define TC_ROM_STRIDE	0x3e4
+#define TC_ROM_SIZE	0x3e8
+#define TC_SLOT_SIZE	0x3ec
+#define TC_PATTERN0	0x3f0
+#define TC_PATTERN1	0x3f4
+#define TC_PATTERN2	0x3f8
+#define TC_PATTERN3	0x3fc
+#define TC_FIRM_VER	0x400
+#define TC_VENDOR	0x420
+#define TC_MODULE	0x440
+#define TC_FIRM_TYPE	0x460
+#define TC_FLAGS	0x470
+#define TC_ROM_OBJECTS	0x480
+
+#endif /* __ASM_DEC_TCMODULE_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/delay.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/delay.h
--- linux-2.4.20/include/asm-mips64/delay.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/delay.h	2003-01-27 18:08:27.000000000 -0600
@@ -11,7 +11,7 @@
 #define _ASM_DELAY_H
 
 #include <linux/config.h>
-#include <asm/param.h>
+#include <linux/param.h>
 
 extern unsigned long loops_per_jiffy;
 
@@ -41,10 +41,16 @@
 {
 	unsigned long lo;
 
-#if (HZ == 100)
-	usecs *= 0x00068db8bac710cbUL;		/* 2**64 / (1000000 / HZ) */
-#elif (HZ == 128)
-	usecs *= 0x0008637bd05af6c6UL;		/* 2**64 / (1000000 / HZ) */
+	/*
+	 * The common rates of 1000 and 128 are rounded wrongly by the
+	 * catchall case.  Excessive precission?  Probably ...
+	 */
+#if (HZ == 128)
+	usecs *= 0x0008637bd05af6c7UL;		/* 2**64 / (1000000 / HZ) */
+#elif (HZ == 1000)
+	usecs *= 0x004189374BC6A7f0UL;		/* 2**64 / (1000000 / HZ) */
+#else
+	usecs *= (0x8000000000000000UL / (500000 / HZ));
 #endif
 	__asm__("dmultu\t%2,%3"
 		:"=h" (usecs), "=l" (lo)
diff -urNd -urNd linux-2.4.20/include/asm-mips64/div64.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/div64.h
--- linux-2.4.20/include/asm-mips64/div64.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/div64.h	2003-01-27 08:27:20.000000000 -0600
@@ -10,38 +10,20 @@
  * Don't use this one in new code
  */
 #define do_div64_32(res, high, low, base) ({ \
-	unsigned long __quot, __mod; \
-	unsigned long __cf, __tmp, __tmp2, __i; \
+	unsigned int __quot, __mod; \
+	unsigned long __div; \
+	unsigned int __low, __high, __base; \
 	\
-	__asm__(".set	push\n\t" \
-		".set	noat\n\t" \
-		".set	noreorder\n\t" \
-		"move	%2, $0\n\t" \
-		"move	%3, $0\n\t" \
-		"b	1f\n\t" \
-		" li	%4, 0x21\n" \
-		"0:\n\t" \
-		"sll	$1, %0, 0x1\n\t" \
-		"srl	%3, %0, 0x1f\n\t" \
-		"or	%0, $1, %5\n\t" \
-		"sll	%1, %1, 0x1\n\t" \
-		"sll	%2, %2, 0x1\n" \
-		"1:\n\t" \
-		"bnez	%3, 2f\n\t" \
-		"sltu	%5, %0, %z6\n\t" \
-		"bnez	%5, 3f\n\t" \
-		"2:\n\t" \
-		" addiu	%4,%4,-1\n\t" \
-		"subu	%0, %0, %z6\n\t" \
-		"addiu	%2, %2, 1\n" \
-		"3:\n\t" \
-		"bnez	%4, 0b\n\t" \
-		" srl	%5, %1, 0x1f\n\t" \
-		".set	pop" \
-		: "=&r" (__mod), "=&r" (__tmp), "=&r" (__quot), "=&r" (__cf), \
-		  "=&r" (__i), "=&r" (__tmp2) \
-		: "Jr" (base), "0" (high), "1" (low)); \
+	__high = (high); \
+	__low = (low); \
+	__div = __high; \
+	__div = __div << 32 | __low; \
+	__base = (base); \
 	\
+	__mod = __div % __base; \
+	__div = __div / __base; \
+	\
+	__quot = __div; \
 	(res) = __quot; \
 	__mod; })
 
@@ -49,10 +31,19 @@
  * Hey, we're already 64-bit, no
  * need to play games..
  */
-#define do_div(n,base) ({ \
-	int __res; \
-	__res = ((unsigned long) n) % (unsigned) base; \
-	n = ((unsigned long) n) / (unsigned) base; \
-	__res; })
+#define do_div(n, base) ({ \
+	unsigned long __quot; \
+	unsigned int __mod; \
+	unsigned long __div; \
+	unsigned int __base; \
+	\
+	__div = (n); \
+	__base = (base); \
+	\
+	__mod = __div % __base; \
+	__quot = __div / __base; \
+	\
+	(n) = __quot; \
+	__mod; })
 
 #endif /* _ASM_DIV64_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/elf.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/elf.h
--- linux-2.4.20/include/asm-mips64/elf.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/elf.h	2003-02-20 13:46:34.000000000 -0600
@@ -43,8 +43,7 @@
 									\
 	if (__h->e_machine != EM_MIPS)					\
 		__res = 0;						\
-	if ((__h->e_ident[EI_CLASS] == ELFCLASS32) &&			\
-	    ((__h->e_flags & EF_MIPS_ABI2) == 0))			\
+	if (__h->e_ident[EI_CLASS] == ELFCLASS32) 			\
 		__res = 0;						\
 									\
 	__res;								\
@@ -110,10 +109,15 @@
 
 #ifdef __KERNEL__
 #define SET_PERSONALITY(ex, ibcs2)			\
-do {	if ((ex).e_ident[EI_CLASS] == ELFCLASS32)	\
-		current->thread.mflags |= MF_32BIT;	\
-	else						\
-		current->thread.mflags &= ~MF_32BIT;	\
+do {	current->thread.mflags &= ~MF_ABI_MASK;		\
+	if ((ex).e_ident[EI_CLASS] == ELFCLASS32) {	\
+		if ((((ex).e_flags & EF_MIPS_ABI2) != 0) &&	\
+		     ((ex).e_flags & EF_MIPS_ABI) == 0)		\
+			current->thread.mflags |= MF_N32;	\
+		else						\
+			current->thread.mflags |= MF_O32;	\
+	} else						\
+		current->thread.mflags |= MF_N64;	\
 	if (ibcs2)					\
 		set_personality(PER_SVR4);		\
 	else if (current->personality != PER_LINUX32)	\
diff -urNd -urNd linux-2.4.20/include/asm-mips64/fpu.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/fpu.h
--- linux-2.4.20/include/asm-mips64/fpu.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/fpu.h	2002-12-01 18:24:54.000000000 -0600
@@ -0,0 +1,135 @@
+/*
+ * Copyright (C) 2002 MontaVista Software Inc.
+ * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net
+ *
+ * This program is free software; you can redistribute  it and/or modify it
+ * under  the terms of  the GNU General  Public License as published by the
+ * Free Software Foundation;  either version 2 of the  License, or (at your
+ * option) any later version.
+ *
+ */
+
+#ifndef _ASM_FPU_H
+#define _ASM_FPU_H
+
+#include <linux/config.h>
+#include <linux/sched.h>
+
+#include <asm/mipsregs.h>
+#include <asm/cpu.h>
+#include <asm/processor.h>
+#include <asm/current.h>
+
+struct sigcontext;
+
+extern asmlinkage int (*save_fp_context)(struct sigcontext *sc);
+extern asmlinkage int (*restore_fp_context)(struct sigcontext *sc);
+
+extern void fpu_emulator_init_fpu(void);
+extern void _init_fpu(void);
+extern void _save_fp(struct task_struct *);
+extern void _restore_fp(struct task_struct *);
+
+#if defined(CONFIG_CPU_SB1)
+#define __enable_fpu_hazard()						\
+do {									\
+	asm(".set push		\n\t"					\
+	    ".set mips64	\n\t"					\
+	    ".set noreorder	\n\t"					\
+	    "ssnop		\n\t"					\
+	    "bnezl $0, .+4	\n\t"					\
+	    "ssnop		\n\t"					\
+	    ".set pop");						\
+} while (0)
+#else
+#define __enable_fpu_hazard()                                           \
+do {                                                                    \
+        asm("nop;nop;nop;nop");         /* max. hazard */               \
+} while (0)
+#endif
+
+#define __enable_fpu()							\
+do {									\
+        set_c0_status(ST0_CU1);						\
+        __enable_fpu_hazard();						\
+} while (0)
+
+#define __disable_fpu()							\
+do {									\
+	clear_c0_status(ST0_CU1);					\
+	/* We don't care about the c0 hazard here  */			\
+} while (0)
+
+#define enable_fpu()							\
+do {									\
+	if (mips_cpu.options & MIPS_CPU_FPU)				\
+		__enable_fpu();						\
+} while (0)
+
+#define disable_fpu()							\
+do {									\
+	if (mips_cpu.options & MIPS_CPU_FPU)				\
+		__disable_fpu();					\
+} while (0)
+
+
+#define clear_fpu_owner() do {current->flags &= ~PF_USEDFPU; } while(0)
+
+static inline int is_fpu_owner(void)
+{
+	return (mips_cpu.options & MIPS_CPU_FPU) && 
+		((current->flags & PF_USEDFPU) != 0); 
+}
+
+static inline void own_fpu(void)
+{
+	if(mips_cpu.options & MIPS_CPU_FPU) {
+		__enable_fpu();
+		KSTK_STATUS(current) |= ST0_CU1;
+		current->flags |= PF_USEDFPU;
+	}
+}
+
+static inline void loose_fpu(void)
+{
+	if (mips_cpu.options & MIPS_CPU_FPU) {
+		KSTK_STATUS(current) &= ~ST0_CU1;
+		current->flags &= ~PF_USEDFPU;
+		__disable_fpu();
+	}
+}
+
+static inline void init_fpu(void)
+{
+	if (mips_cpu.options & MIPS_CPU_FPU) {
+		_init_fpu();
+	} else {
+		fpu_emulator_init_fpu();
+	}
+}
+
+static inline void save_fp(struct task_struct *tsk)
+{
+	if (mips_cpu.options & MIPS_CPU_FPU) 
+		_save_fp(tsk);
+}
+
+static inline void restore_fp(struct task_struct *tsk)
+{
+	if (mips_cpu.options & MIPS_CPU_FPU) 
+		_restore_fp(tsk);
+}
+
+static inline unsigned long *get_fpu_regs(struct task_struct *tsk)
+{
+	if(mips_cpu.options & MIPS_CPU_FPU) {
+		if ((tsk == current) && is_fpu_owner()) 
+			_save_fp(current);
+		return (unsigned long *)&tsk->thread.fpu.hard.fp_regs[0];
+	} else {
+		return (unsigned long *)tsk->thread.fpu.soft.regs;
+	}
+}
+
+#endif /* _ASM_FPU_H */
+
diff -urNd -urNd linux-2.4.20/include/asm-mips64/gcc/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips64/gcc/CVS/Entries
--- linux-2.4.20/include/asm-mips64/gcc/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/gcc/CVS/Entries	2005-01-06 23:06:53.000000000 -0600
@@ -0,0 +1,2 @@
+/sgidefs.h/1.1/Fri Dec  1 18:15:41 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-mips64/gcc/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips64/gcc/CVS/Repository
--- linux-2.4.20/include/asm-mips64/gcc/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/gcc/CVS/Repository	2005-01-06 23:06:53.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-mips64/gcc
diff -urNd -urNd linux-2.4.20/include/asm-mips64/gcc/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips64/gcc/CVS/Root
--- linux-2.4.20/include/asm-mips64/gcc/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/gcc/CVS/Root	2005-01-06 23:06:53.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-mips64/gcc/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips64/gcc/CVS/Tag
--- linux-2.4.20/include/asm-mips64/gcc/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/gcc/CVS/Tag	2005-01-06 23:06:53.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-mips64/hw_irq.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/hw_irq.h
--- linux-2.4.20/include/asm-mips64/hw_irq.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/hw_irq.h	2002-12-03 13:46:59.000000000 -0600
@@ -8,6 +8,8 @@
 #ifndef _ASM_HW_IRQ_H
 #define _ASM_HW_IRQ_H
 
+#include <asm/atomic.h>
+
 extern atomic_t irq_err_count;
 
 /* This may not be apropriate for all machines, we'll see ...  */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/ide.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/ide.h
--- linux-2.4.20/include/asm-mips64/ide.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/ide.h	2002-11-28 17:04:11.000000000 -0600
@@ -7,11 +7,6 @@
  *
  * Copyright (C) 1994-1996  Linus Torvalds & authors
  */
-
-/*
- *  This file contains the MIPS architecture specific IDE code.
- */
-
 #ifndef __ASM_IDE_H
 #define __ASM_IDE_H
 
@@ -41,7 +36,7 @@
 	void (*ide_free_irq)(unsigned int irq, void *dev_id);
 	int (*ide_check_region) (ide_ioreg_t from, unsigned int extent);
 	void (*ide_request_region)(ide_ioreg_t from, unsigned int extent,
-	                        const char *name);
+	                           const char *name);
 	void (*ide_release_region)(ide_ioreg_t from, unsigned int extent);
 };
 
@@ -58,7 +53,7 @@
 }
 
 static inline void ide_init_hwif_ports(hw_regs_t *hw, ide_ioreg_t data_port,
-                                       ide_ioreg_t ctrl_port, int *irq)
+	ide_ioreg_t ctrl_port, int *irq)
 {
 	ide_ops->ide_init_hwif_ports(hw, data_port, ctrl_port, irq);
 }
@@ -81,11 +76,11 @@
 	unsigned all			: 8;	/* all of the bits together */
 	struct {
 #ifdef __MIPSEB__
-		unsigned bit7           : 1;    /* always 1 */
-		unsigned lba            : 1;    /* using LBA instead of CHS */
-		unsigned bit5           : 1;    /* always 1 */
-		unsigned unit           : 1;    /* drive select number, 0 or 1 */
-		unsigned head           : 4;    /* always zeros here */
+		unsigned bit7		: 1;	/* always 1 */
+		unsigned lba		: 1;	/* using LBA instead of CHS */
+		unsigned bit5		: 1;	/* always 1 */
+		unsigned unit		: 1;	/* drive select number, 0 or 1 */
+		unsigned head		: 4;	/* always zeros here */
 #else
 		unsigned head		: 4;	/* always zeros here */
 		unsigned unit		: 1;	/* drive select number, 0 or 1 */
@@ -133,20 +128,18 @@
 	return ide_ops->ide_check_region(from, extent);
 }
 
-static __inline__ void ide_request_region(ide_ioreg_t from,
-                                          unsigned int extent, const char *name)
+static __inline__ void ide_request_region(ide_ioreg_t from, unsigned int extent,
+	const char *name)
 {
 	ide_ops->ide_request_region(from, extent, name);
 }
 
-static __inline__ void ide_release_region(ide_ioreg_t from,
-                                          unsigned int extent)
+static __inline__ void ide_release_region(ide_ioreg_t from, unsigned int extent)
 {
 	ide_ops->ide_release_region(from, extent);
 }
 
-
-#if defined(CONFIG_SWAP_IO_SPACE) && defined(__MIPSEB__)
+#if defined(CONFIG_SWAP_IO_SPACE_L) && defined(__MIPSEB__)
 
 /* get rid of defs from io.h - ide has its private and conflicting versions */
 #ifdef insw
@@ -169,34 +162,34 @@
 
 static inline void ide_insw(unsigned long port, void *addr, unsigned int count)
 {
-       while (count--) {
-               *(u16 *)addr = *(volatile u16 *)(mips_io_port_base + port);
-               addr += 2;
-       }
+	while (count--) {
+		*(u16 *)addr = *(volatile u16 *)(mips_io_port_base + port);
+		addr += 2;
+	}
 }
 
 static inline void ide_outsw(unsigned long port, void *addr, unsigned int count)
 {
-       while (count--) {
-               *(volatile u16 *)(mips_io_port_base + (port)) = *(u16 *)addr;
-               addr += 2;
-       }
+	while (count--) {
+		*(volatile u16 *)(mips_io_port_base + (port)) = *(u16 *)addr;
+		addr += 2;
+	}
 }
 
 static inline void ide_insl(unsigned long port, void *addr, unsigned int count)
 {
-       while (count--) {
-               *(u32 *)addr = *(volatile u32 *)(mips_io_port_base + port);
-               addr += 4;
-       }
+	while (count--) {
+		*(u32 *)addr = *(volatile u32 *)(mips_io_port_base + port);
+		addr += 4;
+	}
 }
 
 static inline void ide_outsl(unsigned long port, void *addr, unsigned int count)
 {
-       while (count--) {
-               *(volatile u32 *)(mips_io_port_base + (port)) = *(u32 *)addr;
-               addr += 4;
-       }
+	while (count--) {
+		*(volatile u32 *)(mips_io_port_base + (port)) = *(u32 *)addr;
+		addr += 4;
+	}
 }
 
 #define T_CHAR          (0x0000)        /* char:  don't touch  */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/io.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/io.h
--- linux-2.4.20/include/asm-mips64/io.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/io.h	2003-01-20 14:21:43.000000000 -0600
@@ -15,6 +15,10 @@
 #include <asm/page.h>
 #include <asm/byteorder.h>
 
+#ifdef CONFIG_DECSTATION
+#include <asm/dec/io.h>
+#endif
+
 #ifdef CONFIG_MIPS_ATLAS
 #include <asm/mips-boards/io.h>
 #endif
@@ -23,6 +27,10 @@
 #include <asm/mips-boards/io.h>
 #endif
 
+#ifdef CONFIG_MIPS_SEAD
+#include <asm/mips-boards/io.h>
+#endif
+
 #ifdef CONFIG_SGI_IP22
 #include <asm/sgi/io.h>
 #endif
@@ -42,11 +50,13 @@
 #ifdef CONFIG_SGI_IP27
 extern unsigned long bus_to_baddr[256];
 
-#define bus_to_baddr(hwdev, addr) (bus_to_baddr[(hwdev)->bus->number] + (addr))
-#define baddr_to_bus(hwdev, addr) ((addr) - bus_to_baddr[(hwdev)->bus->number])
+#define bus_to_baddr(bus, addr)	(bus_to_baddr[(bus)->number] + (addr))
+#define baddr_to_bus(bus, addr)	((addr) - bus_to_baddr[(bus)->number])
+#define __swizzle_addr_w(port)	((port) ^ 2)
 #else
-#define bus_to_baddr(hwdev, addr) (addr)
-#define baddr_to_bus(hwdev, addr) (addr)
+#define bus_to_baddr(bus, addr)	(addr)
+#define baddr_to_bus(bus, addr)	(addr)
+#define __swizzle_addr_w(port)	(port)
 #endif
 
 /*
@@ -56,26 +66,24 @@
 
 /*
  * Sane hardware offers swapping of I/O space accesses in hardware; less
- * sane hardware forces software to fiddle with this ...
+ * sane hardware forces software to fiddle with this.  Totally insane hardware
+ * introduces special cases like:
+ *
+ * IP22 seems braindead enough to swap 16-bits values in hardware, but not
+ * 32-bits.  Go figure... Can't tell without documentation.
+ * 
+ * We only do the swapping to keep the kernel config bits of bi-endian
+ * machines a bit saner.
  */
-#if defined(CONFIG_SWAP_IO_SPACE) && defined(__MIPSEB__)
-
-#define __ioswab8(x) (x)
-#ifdef CONFIG_SGI_IP22
-/* IP22 seems braindead enough to swap 16bits values in hardware, but
-   not 32bits.  Go figure... Can't tell without documentation. */
-#define __ioswab16(x) (x)
-#else
+#if defined(CONFIG_SWAP_IO_SPACE_W) && defined(__MIPSEB__)
 #define __ioswab16(x) swab16(x)
+#else
+#define __ioswab16(x) (x)
 #endif
+#if defined(CONFIG_SWAP_IO_SPACE_L) && defined(__MIPSEB__)
 #define __ioswab32(x) swab32(x)
-
 #else
-
-#define __ioswab8(x) (x)
-#define __ioswab16(x) (x)
 #define __ioswab32(x) (x)
-
 #endif
 
 /*
@@ -127,6 +135,11 @@
 {
 }
 
+/*
+ * XXX We need system specific versions of these to handle EISA address bits
+ * 24-31 on SNI.
+ * XXX more SNI hacks.
+ */
 #define readb(addr)		(*(volatile unsigned char *)(addr))
 #define readw(addr)		__ioswab16((*(volatile unsigned short *)(addr)))
 #define readl(addr)		__ioswab32((*(volatile unsigned int *)(addr)))
@@ -135,7 +148,7 @@
 #define __raw_readw(addr)	(*(volatile unsigned short *)(addr))
 #define __raw_readl(addr)	(*(volatile unsigned int *)(addr))
 
-#define writeb(b,addr) ((*(volatile unsigned char *)(addr)) = (__ioswab8(b)))
+#define writeb(b,addr) ((*(volatile unsigned char *)(addr)) = (b))
 #define writew(b,addr) ((*(volatile unsigned short *)(addr)) = (__ioswab16(b)))
 #define writel(b,addr) ((*(volatile unsigned int *)(addr)) = (__ioswab32(b)))
 
@@ -147,89 +160,6 @@
 #define memcpy_fromio(a,b,c)	memcpy((a),(void *)(b),(c))
 #define memcpy_toio(a,b,c)	memcpy((void *)(a),(b),(c))
 
-/* The ISA versions are supplied by system specific code */
-
-/*
- * On MIPS I/O ports are memory mapped, so we access them using normal
- * load/store instructions. mips_io_port_base is the virtual address to
- * which all ports are being mapped.  For sake of efficiency some code
- * assumes that this is an address that can be loaded with a single lui
- * instruction, so the lower 16 bits must be zero.  Should be true on
- * on any sane architecture; generic code does not use this assumption.
- */
-extern const unsigned long mips_io_port_base;
-
-#define set_io_port_base(base)  \
-	do { * (unsigned long *) &mips_io_port_base = (base); } while (0)
-
-#define __SLOW_DOWN_IO \
-	__asm__ __volatile__( \
-		"sb\t$0,0x80(%0)" \
-		: : "r" (mips_io_port_base));
-
-#ifdef CONF_SLOWDOWN_IO
-#ifdef REALLY_SLOW_IO
-#define SLOW_DOWN_IO { __SLOW_DOWN_IO; __SLOW_DOWN_IO; __SLOW_DOWN_IO; __SLOW_DOWN_IO; }
-#else
-#define SLOW_DOWN_IO __SLOW_DOWN_IO
-#endif
-#else
-#define SLOW_DOWN_IO
-#endif
-
-/*
- *     virt_to_phys    -       map virtual addresses to physical
- *     @address: address to remap
- *
- *     The returned physical address is the physical (CPU) mapping for
- *     the memory address given. It is only valid to use this function on
- *     addresses directly mapped or allocated via kmalloc.
- *
- *     This function does not give bus mappings for DMA transfers. In
- *     almost all conceivable cases a device driver should not be using
- *     this function
- */
-
-static inline unsigned long virt_to_phys(volatile void * address)
-{
-	return (unsigned long)address - PAGE_OFFSET;
-}
-
-/*
- *     phys_to_virt    -       map physical address to virtual
- *     @address: address to remap
- *
- *     The returned virtual address is a current CPU mapping for
- *     the memory address given. It is only valid to use this function on
- *     addresses that have a kernel mapping
- *
- *     This function does not handle bus mappings for DMA transfers. In
- *     almost all conceivable cases a device driver should not be using
- *     this function
- */
-
-static inline void * phys_to_virt(unsigned long address)
-{
-	return (void *)(address + PAGE_OFFSET);
-}
-
-/*
- * IO bus memory addresses are also 1:1 with the physical address
- */
-static inline unsigned long virt_to_bus(volatile void * address)
-{
-	return (unsigned long)address - PAGE_OFFSET;
-}
-
-static inline void * bus_to_virt(unsigned long address)
-{
-	return (void *)(address + PAGE_OFFSET);
-}
-
-
-/* This is too simpleminded for more sophisticated than dumb hardware ...  */
-#define page_to_bus page_to_phys
-
 /*
  * isa_slot_offset is the address where E(ISA) busaddress 0 is mapped
  * for the processor.  This implies the assumption that there is only
@@ -262,6 +192,7 @@
  * just copy it. The net code will then do the checksum later.
  */
 #define eth_io_copy_and_sum(skb,src,len,unused) memcpy_fromio((skb)->data,(src),(len))
+#define isa_eth_io_copy_and_sum(a,b,c,d) eth_copy_and_sum((a),(b),(c),(d))
 
 /*
  *     check_signature         -       find BIOS signatures
@@ -273,9 +204,8 @@
  *     address should have been obtained by ioremap.
  *     Returns 1 on a match.
  */
-static inline int
-check_signature(unsigned long io_addr, const unsigned char *signature,
-                int length)
+static inline int check_signature(unsigned long io_addr,
+	const unsigned char *signature, int length)
 {
 	int retval = 0;
 	do {
@@ -319,14 +249,95 @@
 	return retval;
 }
 
+/*
+ *     virt_to_phys    -       map virtual addresses to physical
+ *     @address: address to remap
+ *
+ *     The returned physical address is the physical (CPU) mapping for
+ *     the memory address given. It is only valid to use this function on
+ *     addresses directly mapped or allocated via kmalloc.
+ *
+ *     This function does not give bus mappings for DMA transfers. In
+ *     almost all conceivable cases a device driver should not be using
+ *     this function
+ */
+
+static inline unsigned long virt_to_phys(volatile void * address)
+{
+	return (unsigned long)address - PAGE_OFFSET;
+}
+
+/*
+ *     phys_to_virt    -       map physical address to virtual
+ *     @address: address to remap
+ *
+ *     The returned virtual address is a current CPU mapping for
+ *     the memory address given. It is only valid to use this function on
+ *     addresses that have a kernel mapping
+ *
+ *     This function does not handle bus mappings for DMA transfers. In
+ *     almost all conceivable cases a device driver should not be using
+ *     this function
+ */
+
+static inline void * phys_to_virt(unsigned long address)
+{
+	return (void *)(address + PAGE_OFFSET);
+}
+
+/*
+ * IO bus memory addresses are also 1:1 with the physical address
+ */
+static inline unsigned long virt_to_bus(volatile void * address)
+{
+	return (unsigned long)address - PAGE_OFFSET;
+}
+
+static inline void * bus_to_virt(unsigned long address)
+{
+	return (void *)(address + PAGE_OFFSET);
+}
+
+/* This is too simpleminded for more sophisticated than dumb hardware ...  */
+#define page_to_bus page_to_phys
+
+/*
+ * On MIPS I/O ports are memory mapped, so we access them using normal
+ * load/store instructions. mips_io_port_base is the virtual address to
+ * which all ports are being mapped.  For sake of efficiency some code
+ * assumes that this is an address that can be loaded with a single lui
+ * instruction, so the lower 16 bits must be zero.  Should be true on
+ * on any sane architecture; generic code does not use this assumption.
+ */
+extern const unsigned long mips_io_port_base;
+
+#define set_io_port_base(base) \
+	do { * (unsigned long *) &mips_io_port_base = (base); } while (0)
+
+#define __SLOW_DOWN_IO \
+	__asm__ __volatile__( \
+		"sb\t$0,0x80(%0)" \
+		: : "r" (mips_io_port_base));
+
+#ifdef CONF_SLOWDOWN_IO
+#ifdef REALLY_SLOW_IO
+#define SLOW_DOWN_IO { __SLOW_DOWN_IO; __SLOW_DOWN_IO; __SLOW_DOWN_IO; __SLOW_DOWN_IO; }
+#else
+#define SLOW_DOWN_IO __SLOW_DOWN_IO
+#endif
+#else
+#define SLOW_DOWN_IO
+#endif
+
 #define outb(val,port)							\
 do {									\
-	*(volatile u8 *)(mips_io_port_base + (port)) = __ioswab8(val);	\
+	*(volatile u8 *)(mips_io_port_base + (port)) = (val);		\
 } while(0)
 
 #define outw(val,port)							\
 do {									\
-	*(volatile u16 *)(mips_io_port_base + (port)) = __ioswab16(val);\
+	*(volatile u16 *)(mips_io_port_base + __swizzle_addr_w(port)) =	\
+		__ioswab16(val);					\
 } while(0)
 
 #define outl(val,port)							\
@@ -336,13 +347,14 @@
 
 #define outb_p(val,port)						\
 do {									\
-	*(volatile u8 *)(mips_io_port_base + (port)) = __ioswab8(val);	\
+	*(volatile u8 *)(mips_io_port_base + (port)) = (val);		\
 	SLOW_DOWN_IO;							\
 } while(0)
 
 #define outw_p(val,port)						\
 do {									\
-	*(volatile u16 *)(mips_io_port_base + (port)) = __ioswab16(val);\
+	*(volatile u16 *)(mips_io_port_base + __swizzle_addr_w(port)) =	\
+		__ioswab16(val);					\
 	SLOW_DOWN_IO;							\
 } while(0)
 
@@ -354,11 +366,13 @@
 
 static inline unsigned char inb(unsigned long port)
 {
-	return __ioswab8(*(volatile u8 *)(mips_io_port_base + port));
+	return *(volatile u8 *)(mips_io_port_base + port);
 }
 
 static inline unsigned short inw(unsigned long port)
 {
+	port = __swizzle_addr_w(port);
+
 	return __ioswab16(*(volatile u16 *)(mips_io_port_base + port));
 }
 
@@ -374,13 +388,14 @@
 	__val = *(volatile u8 *)(mips_io_port_base + port);
 	SLOW_DOWN_IO;
 
-	return __ioswab8(__val);
+	return __val;
 }
 
 static inline unsigned short inw_p(unsigned long port)
 {
 	u16 __val;
 
+	port = __swizzle_addr_w(port);
 	__val = *(volatile u16 *)(mips_io_port_base + port);
 	SLOW_DOWN_IO;
 
@@ -396,7 +411,7 @@
 	return __ioswab32(__val);
 }
 
-static inline void outsb(unsigned long port, void *addr, unsigned int count)
+static inline void __outsb(unsigned long port, void *addr, unsigned int count)
 {
 	while (count--) {
 		outb(*(u8 *)addr, port);
@@ -404,7 +419,7 @@
 	}
 }
 
-static inline void insb(unsigned long port, void *addr, unsigned int count)
+static inline void __insb(unsigned long port, void *addr, unsigned int count)
 {
 	while (count--) {
 		*(u8 *)addr = inb(port);
@@ -412,7 +427,7 @@
 	}
 }
 
-static inline void outsw(unsigned long port, void *addr, unsigned int count)
+static inline void __outsw(unsigned long port, void *addr, unsigned int count)
 {
 	while (count--) {
 		outw(*(u16 *)addr, port);
@@ -420,7 +435,7 @@
 	}
 }
 
-static inline void insw(unsigned long port, void *addr, unsigned int count)
+static inline void __insw(unsigned long port, void *addr, unsigned int count)
 {
 	while (count--) {
 		*(u16 *)addr = inw(port);
@@ -428,7 +443,7 @@
 	}
 }
 
-static inline void outsl(unsigned long port, void *addr, unsigned int count)
+static inline void __outsl(unsigned long port, void *addr, unsigned int count)
 {
 	while (count--) {
 		outl(*(u32 *)addr, port);
@@ -436,7 +451,7 @@
 	}
 }
 
-static inline void insl(unsigned long port, void *addr, unsigned int count)
+static inline void __insl(unsigned long port, void *addr, unsigned int count)
 {
 	while (count--) {
 		*(u32 *)addr = inl(port);
@@ -444,6 +459,13 @@
 	}
 }
 
+#define outsb(port, addr, count) __outsb(port, addr, count)
+#define insb(port, addr, count) __insb(port, addr, count)
+#define outsw(port, addr, count) __outsw(port, addr, count)
+#define insw(port, addr, count) __insw(port, addr, count)
+#define outsl(port, addr, count) __outsl(port, addr, count)
+#define insl(port, addr, count) __insl(port, addr, count)
+
 /*
  * The caches on some architectures aren't dma-coherent and have need to
  * handle this in software.  There are three types of operations that
@@ -474,9 +496,12 @@
 
 #else /* Sane hardware */
 
-#define dma_cache_wback_inv(start,size)	do { (start); (size); } while (0)
-#define dma_cache_wback(start,size)	do { (start); (size); } while (0)
-#define dma_cache_inv(start,size)	do { (start); (size); } while (0)
+#define dma_cache_wback_inv(start,size)	\
+	do { (void) (start); (void) (size); } while (0)
+#define dma_cache_wback(start,size)	\
+	do { (void) (start); (void) (size); } while (0)
+#define dma_cache_inv(start,size)	\
+	do { (void) (start); (void) (size); } while (0)
 
 #endif /* CONFIG_NONCOHERENT_IO */
 
diff -urNd -urNd linux-2.4.20/include/asm-mips64/ip32/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips64/ip32/CVS/Entries
--- linux-2.4.20/include/asm-mips64/ip32/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/ip32/CVS/Entries	2005-01-06 23:06:53.000000000 -0600
@@ -0,0 +1,6 @@
+/crime.h/1.2.2.1/Thu Jun 27 14:21:24 2002/-ko/Tlinux_2_4_20
+/io.h/1.2/Wed Nov 28 07:39:28 2001/-ko/Tlinux_2_4_20
+/ip32_ints.h/1.1/Tue Sep  4 22:20:05 2001/-ko/Tlinux_2_4_20
+/mace.h/1.3.2.2/Mon Aug  5 23:53:39 2002/-ko/Tlinux_2_4_20
+/machine.h/1.1.2.1/Wed May 29 03:03:18 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-mips64/ip32/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips64/ip32/CVS/Repository
--- linux-2.4.20/include/asm-mips64/ip32/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/ip32/CVS/Repository	2005-01-06 23:06:53.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-mips64/ip32
diff -urNd -urNd linux-2.4.20/include/asm-mips64/ip32/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips64/ip32/CVS/Root
--- linux-2.4.20/include/asm-mips64/ip32/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/ip32/CVS/Root	2005-01-06 23:06:53.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-mips64/ip32/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips64/ip32/CVS/Tag
--- linux-2.4.20/include/asm-mips64/ip32/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/ip32/CVS/Tag	2005-01-06 23:06:53.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-mips64/irq.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/irq.h
--- linux-2.4.20/include/asm-mips64/irq.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/irq.h	2002-10-06 07:28:03.000000000 -0500
@@ -44,14 +44,9 @@
 
 struct irqaction;
 extern int i8259_setup_irq(int irq, struct irqaction * new);
-extern void disable_irq(unsigned int);
 
-#ifdef CONFIG_NEW_IRQ
+extern void disable_irq(unsigned int);
 extern void disable_irq_nosync(unsigned int);
-#else
-#define disable_irq_nosync	disable_irq
-#endif
-
 extern void enable_irq(unsigned int);
 
 /* Machine specific interrupt initialization  */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/m48t35.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/m48t35.h
--- linux-2.4.20/include/asm-mips64/m48t35.h	2000-02-25 00:53:35.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/m48t35.h	2002-11-26 05:03:17.000000000 -0600
@@ -1,32 +1,30 @@
 /*
  *  Registers for the SGS-Thomson M48T35 Timekeeper RAM chip
  */
-
 #ifndef _ASM_M48T35_H
 #define _ASM_M48T35_H
 
+#include <linux/spinlock.h>
+
+extern spinlock_t rtc_lock;
+
 struct m48t35_rtc {
-        volatile u8         pad[0x7ff8];    /* starts at 0x7ff8 */
-        volatile u8         control;
-        volatile u8         sec;
-        volatile u8         min;
-        volatile u8         hour;
-        volatile u8         day;
-        volatile u8         date;
-        volatile u8         month;
-        volatile u8         year;
+	volatile u8	pad[0x7ff8];    /* starts at 0x7ff8 */
+	volatile u8	control;
+	volatile u8	sec;
+	volatile u8	min;
+	volatile u8	hour;
+	volatile u8	day;
+	volatile u8	date;
+	volatile u8	month;
+	volatile u8	year;
 };
 
-#define M48T35_RTC_SET      0x80
-#define M48T35_RTC_STOPPED  0x80
-#define M48T35_RTC_READ     0x40
-
-#ifndef BCD_TO_BIN
-#define BCD_TO_BIN(x)   ((x)=((x)&15) + ((x)>>4)*10)
-#endif
+#define M48T35_RTC_SET		0x80
+#define M48T35_RTC_STOPPED	0x80
+#define M48T35_RTC_READ		0x40
 
-#ifndef BIN_TO_BCD
-#define BIN_TO_BCD(x)   ((x)=(((x)/10)<<4) + (x)%10)
-#endif
+#define BCD_TO_BIN(x)		((x)=((x)&15) + ((x)>>4)*10)
+#define BIN_TO_BCD(x)		((x)=(((x)/10)<<4) + (x)%10)
 
-#endif
+#endif /* _ASM_M48T35_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/mc146818rtc.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/mc146818rtc.h
--- linux-2.4.20/include/asm-mips64/mc146818rtc.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/mc146818rtc.h	2003-01-20 14:21:43.000000000 -0600
@@ -6,10 +6,13 @@
  * Machine dependent access functions for RTC registers.
  *
  * Copyright (C) 1996, 1997, 1998 Ralf Baechle
+ * Copyright (C) 2002  Maciej W. Rozycki
  */
 #ifndef _ASM_MC146818RTC_H
 #define _ASM_MC146818RTC_H
 
+#include <linux/config.h>
+
 #include <asm/io.h>
 
 
@@ -27,8 +30,11 @@
 extern struct rtc_ops *rtc_ops;
 
 /*
- * The yet supported machines all access the RTC index register via
- * an ISA port access but the way to access the date register differs ...
+ * Most supported machines access the RTC index register via an ISA
+ * port access but the way to access the date register differs ...
+ * The DECstation directly maps the RTC memory in the CPU's address
+ * space with the chipset generating necessary index write/data access
+ * cycles automagically.
  */
 #define CMOS_READ(addr) ({ \
 rtc_ops->rtc_read_data(addr); \
@@ -40,7 +46,15 @@
 rtc_ops->rtc_bcd_mode()
 
 
+#ifdef CONFIG_DECSTATION
+
+#include <asm/dec/rtc-dec.h>
+
+#else
+
 #define RTC_PORT(x)	(0x70 + (x))
 #define RTC_IRQ		8
 
+#endif
+
 #endif /* _ASM_MC146818RTC_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/mips-boards/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips64/mips-boards/CVS/Entries
--- linux-2.4.20/include/asm-mips64/mips-boards/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/mips-boards/CVS/Entries	2005-01-06 23:06:53.000000000 -0600
@@ -0,0 +1,15 @@
+/atlas.h/1.1.2.1/Mon Aug  5 23:53:39 2002/-ko/Tlinux_2_4_20
+/atlasint.h/1.1.2.1/Mon Aug  5 23:53:39 2002/-ko/Tlinux_2_4_20
+/bonito64.h/1.1.2.4/Mon Aug  5 23:53:39 2002/-ko/Tlinux_2_4_20
+/generic.h/1.1.2.1/Wed May  8 03:05:01 2002/-ko/Tlinux_2_4_20
+/gt64120.h/1.1.2.1/Mon Aug  5 23:53:39 2002/-ko/Tlinux_2_4_20
+/io.h/1.1/Fri Apr 27 13:19:19 2001/-ko/Tlinux_2_4_20
+/malta.h/1.1.2.3/Wed Dec 11 14:25:15 2002/-ko/Tlinux_2_4_20
+/maltaint.h/1.1/Fri Apr 27 13:19:19 2001/-ko/Tlinux_2_4_20
+/msc01_pci.h/1.1.2.2/Mon Aug  5 23:53:39 2002/-ko/Tlinux_2_4_20
+/piix4.h/1.1/Fri Apr 27 13:19:19 2001/-ko/Tlinux_2_4_20
+/prom.h/1.1/Fri Apr 27 13:19:19 2001/-ko/Tlinux_2_4_20
+/saa9730_uart.h/1.1/Fri Apr 27 13:19:19 2001/-ko/Tlinux_2_4_20
+/sead.h/1.1.2.2/Mon Aug  5 23:53:39 2002/-ko/Tlinux_2_4_20
+/seadint.h/1.1.2.1/Wed Jul 24 13:51:49 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-mips64/mips-boards/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips64/mips-boards/CVS/Repository
--- linux-2.4.20/include/asm-mips64/mips-boards/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/mips-boards/CVS/Repository	2005-01-06 23:06:53.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-mips64/mips-boards
diff -urNd -urNd linux-2.4.20/include/asm-mips64/mips-boards/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips64/mips-boards/CVS/Root
--- linux-2.4.20/include/asm-mips64/mips-boards/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/mips-boards/CVS/Root	2005-01-06 23:06:53.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-mips64/mips-boards/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips64/mips-boards/CVS/Tag
--- linux-2.4.20/include/asm-mips64/mips-boards/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/mips-boards/CVS/Tag	2005-01-06 23:06:53.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-mips64/mips-boards/malta.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/mips-boards/malta.h
--- linux-2.4.20/include/asm-mips64/mips-boards/malta.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/mips-boards/malta.h	2002-12-11 08:25:15.000000000 -0600
@@ -32,9 +32,23 @@
  * Malta I/O ports base address for the Galileo GT64120 and Algorithmics
  * Bonito system controllers.
  */
-#define MALTA_GT_PORT_BASE      (KSEG1ADDR(0x18000000))
+#define MALTA_GT_PORT_BASE      get_gt_port_base(GT_PCI0IOLD_OFS)
 #define MALTA_BONITO_PORT_BASE  (KSEG1ADDR(0x1fd00000))
-#define MALTA_MSC_PORT_BASE     (KSEG1ADDR(0x18000000))
+#define MALTA_MSC_PORT_BASE     get_msc_port_base(MSC01_PCI_SC2PIOBASL)
+
+static inline unsigned long get_gt_port_base(unsigned long reg)
+{
+	unsigned long addr;
+	GT_READ(reg, addr);
+	return KSEG1ADDR((addr & 0xffff) << 21);
+}
+
+static inline unsigned long get_msc_port_base(unsigned long reg)
+{
+	unsigned long addr;
+	MSC_READ(reg, addr);
+	return KSEG1ADDR(addr);
+}
 
 /*
  * Malta RTC-device indirect register access.
@@ -59,4 +73,6 @@
 
 #define SMSC_WRITE(x,a)     outb(x,a)
 
+#define MALTA_JMPRS_REG		(KSEG1ADDR(0x1f000210))
+
 #endif /* !(_MIPS_MALTA_H) */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/mipsregs.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/mipsregs.h
--- linux-2.4.20/include/asm-mips64/mipsregs.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/mipsregs.h	2003-01-28 08:31:33.000000000 -0600
@@ -8,6 +8,7 @@
  * Modified for further R[236]000 support by Paul M. Antoine, 1996.
  * Kevin D. Kissell, kevink@mips.com and Carsten Langgaard, carstenl@mips.com
  * Copyright (C) 2000 MIPS Technologies, Inc.  All rights reserved.
+ * Copyright (C) 2003  Maciej W. Rozycki
  */
 #ifndef _ASM_MIPSREGS_H
 #define _ASM_MIPSREGS_H
@@ -27,6 +28,15 @@
 #endif
 
 /*
+ *  Configure language
+ */
+#ifdef __ASSEMBLY__
+#define _ULCAST_
+#else
+#define _ULCAST_ (unsigned long)
+#endif
+
+/*
  * Coprocessor 0 register names
  */
 #define CP0_INDEX $0
@@ -190,26 +200,26 @@
 /*
  * R4x00 interrupt enable / cause bits
  */
-#define IE_SW0          (1<< 8)
-#define IE_SW1          (1<< 9)
-#define IE_IRQ0         (1<<10)
-#define IE_IRQ1         (1<<11)
-#define IE_IRQ2         (1<<12)
-#define IE_IRQ3         (1<<13)
-#define IE_IRQ4         (1<<14)
-#define IE_IRQ5         (1<<15)
+#define IE_SW0          (_ULCAST_(1) <<  8)
+#define IE_SW1          (_ULCAST_(1) <<  9)
+#define IE_IRQ0         (_ULCAST_(1) << 10)
+#define IE_IRQ1         (_ULCAST_(1) << 11)
+#define IE_IRQ2         (_ULCAST_(1) << 12)
+#define IE_IRQ3         (_ULCAST_(1) << 13)
+#define IE_IRQ4         (_ULCAST_(1) << 14)
+#define IE_IRQ5         (_ULCAST_(1) << 15)
 
 /*
  * R4x00 interrupt cause bits
  */
-#define C_SW0           (1<< 8)
-#define C_SW1           (1<< 9)
-#define C_IRQ0          (1<<10)
-#define C_IRQ1          (1<<11)
-#define C_IRQ2          (1<<12)
-#define C_IRQ3          (1<<13)
-#define C_IRQ4          (1<<14)
-#define C_IRQ5          (1<<15)
+#define C_SW0           (_ULCAST_(1) <<  8)
+#define C_SW1           (_ULCAST_(1) <<  9)
+#define C_IRQ0          (_ULCAST_(1) << 10)
+#define C_IRQ1          (_ULCAST_(1) << 11)
+#define C_IRQ2          (_ULCAST_(1) << 12)
+#define C_IRQ3          (_ULCAST_(1) << 13)
+#define C_IRQ4          (_ULCAST_(1) << 14)
+#define C_IRQ5          (_ULCAST_(1) << 15)
 
 /*
  * Bitfields in the R4xx0 cp0 status register
@@ -244,9 +254,9 @@
 /*
  * Bits specific to the R4640/R4650
  */
-#define ST0_UM                 (1   <<  4)
-#define ST0_IL                 (1   << 23)
-#define ST0_DL                 (1   << 24)
+#define ST0_UM			(_ULCAST_(1) <<  4)
+#define ST0_IL			(_ULCAST_(1) << 23)
+#define ST0_DL			(_ULCAST_(1) << 24)
 
 /*
  * Bitfields in the TX39 family CP0 Configuration Register 3
@@ -286,37 +296,37 @@
  */
 #define ST0_IM			0x0000ff00
 #define  STATUSB_IP0		8
-#define  STATUSF_IP0		(1   <<  8)
+#define  STATUSF_IP0		(_ULCAST_(1) <<  8)
 #define  STATUSB_IP1		9
-#define  STATUSF_IP1		(1   <<  9)
+#define  STATUSF_IP1		(_ULCAST_(1) <<  9)
 #define  STATUSB_IP2		10
-#define  STATUSF_IP2		(1   << 10)
+#define  STATUSF_IP2		(_ULCAST_(1) << 10)
 #define  STATUSB_IP3		11
-#define  STATUSF_IP3		(1   << 11)
+#define  STATUSF_IP3		(_ULCAST_(1) << 11)
 #define  STATUSB_IP4		12
-#define  STATUSF_IP4		(1   << 12)
+#define  STATUSF_IP4		(_ULCAST_(1) << 12)
 #define  STATUSB_IP5		13
-#define  STATUSF_IP5		(1   << 13)
+#define  STATUSF_IP5		(_ULCAST_(1) << 13)
 #define  STATUSB_IP6		14
-#define  STATUSF_IP6		(1   << 14)
+#define  STATUSF_IP6		(_ULCAST_(1) << 14)
 #define  STATUSB_IP7		15
-#define  STATUSF_IP7		(1   << 15)
+#define  STATUSF_IP7		(_ULCAST_(1) << 15)
 #define  STATUSB_IP8		0
-#define  STATUSF_IP8		(1   << 0)
+#define  STATUSF_IP8		(_ULCAST_(1) <<  0)
 #define  STATUSB_IP9		1
-#define  STATUSF_IP9		(1   << 1)
+#define  STATUSF_IP9		(_ULCAST_(1) <<  1)
 #define  STATUSB_IP10		2
-#define  STATUSF_IP10		(1   << 2)
+#define  STATUSF_IP10		(_ULCAST_(1) <<  2)
 #define  STATUSB_IP11		3
-#define  STATUSF_IP11		(1   << 3)
+#define  STATUSF_IP11		(_ULCAST_(1) <<  3)
 #define  STATUSB_IP12		4
-#define  STATUSF_IP12		(1   << 4)
+#define  STATUSF_IP12		(_ULCAST_(1) <<  4)
 #define  STATUSB_IP13		5
-#define  STATUSF_IP13		(1   << 5)
+#define  STATUSF_IP13		(_ULCAST_(1) <<  5)
 #define  STATUSB_IP14		6
-#define  STATUSF_IP14		(1   << 6)
+#define  STATUSF_IP14		(_ULCAST_(1) <<  6)
 #define  STATUSB_IP15		7
-#define  STATUSF_IP15		(1   << 7)
+#define  STATUSF_IP15		(_ULCAST_(1) <<  7)
 #define ST0_CH			0x00040000
 #define ST0_SR			0x00100000
 #define ST0_TS			0x00200000
@@ -336,31 +346,31 @@
  * Refer to your MIPS R4xx0 manual, chapter 5 for explanation.
  */
 #define  CAUSEB_EXCCODE		2
-#define  CAUSEF_EXCCODE		(31  <<  2)
+#define  CAUSEF_EXCCODE		(_ULCAST_(31)  <<  2)
 #define  CAUSEB_IP		8
-#define  CAUSEF_IP		(255 <<  8)
+#define  CAUSEF_IP		(_ULCAST_(255) <<  8)
 #define  CAUSEB_IP0		8
-#define  CAUSEF_IP0		(1   <<  8)
+#define  CAUSEF_IP0		(_ULCAST_(1)   <<  8)
 #define  CAUSEB_IP1		9
-#define  CAUSEF_IP1		(1   <<  9)
+#define  CAUSEF_IP1		(_ULCAST_(1)   <<  9)
 #define  CAUSEB_IP2		10
-#define  CAUSEF_IP2		(1   << 10)
+#define  CAUSEF_IP2		(_ULCAST_(1)   << 10)
 #define  CAUSEB_IP3		11
-#define  CAUSEF_IP3		(1   << 11)
+#define  CAUSEF_IP3		(_ULCAST_(1)   << 11)
 #define  CAUSEB_IP4		12
-#define  CAUSEF_IP4		(1   << 12)
+#define  CAUSEF_IP4		(_ULCAST_(1)   << 12)
 #define  CAUSEB_IP5		13
-#define  CAUSEF_IP5		(1   << 13)
+#define  CAUSEF_IP5		(_ULCAST_(1)   << 13)
 #define  CAUSEB_IP6		14
-#define  CAUSEF_IP6		(1   << 14)
+#define  CAUSEF_IP6		(_ULCAST_(1)   << 14)
 #define  CAUSEB_IP7		15
-#define  CAUSEF_IP7		(1   << 15)
+#define  CAUSEF_IP7		(_ULCAST_(1)   << 15)
 #define  CAUSEB_IV		23
-#define  CAUSEF_IV		(1   << 23)
+#define  CAUSEF_IV		(_ULCAST_(1)   << 23)
 #define  CAUSEB_CE		28
-#define  CAUSEF_CE		(3   << 28)
+#define  CAUSEF_CE		(_ULCAST_(3)   << 28)
 #define  CAUSEB_BD		31
-#define  CAUSEF_BD		(1   << 31)
+#define  CAUSEF_BD		(_ULCAST_(1)   << 31)
 
 /*
  * Bits in the coprozessor 0 config register.
@@ -374,21 +384,21 @@
 #define CONF_CM_CACHABLE_CUW		6
 #define CONF_CM_CACHABLE_ACCELERATED	7
 #define CONF_CM_CMASK			7
-#define CONF_CU				(1 <<  3)
-#define CONF_DB				(1 <<  4)
-#define CONF_IB				(1 <<  5)
-#define CONF_SE				(1 << 12)
-#define CONF_SC				(1 << 17)
-#define CONF_AC                         (1 << 23)
-#define CONF_HALT                       (1 << 25)
+#define CONF_CU			(_ULCAST_(1) <<  3)
+#define CONF_DB			(_ULCAST_(1) <<  4)
+#define CONF_IB			(_ULCAST_(1) <<  5)
+#define CONF_SE			(_ULCAST_(1) << 12)
+#define CONF_SC			(_ULCAST_(1) << 17)
+#define CONF_AC			(_ULCAST_(1) << 23)
+#define CONF_HALT		(_ULCAST_(1) << 25)
 
 /*
  * Bits in the TX49 coprozessor 0 config register.
  */
-#define TX49_CONF_DC			(1 << 16)
-#define TX49_CONF_IC			(1 << 17)  /* conflict with CONF_SC */
-#define TX49_CONF_HALT			(1 << 18)
-#define TX49_CONF_CWFON			(1 << 27)
+#define TX49_CONF_DC		(_ULCAST_(1) << 16)
+#define TX49_CONF_IC		(_ULCAST_(1) << 17)  /* conflict with CONF_SC */
+#define TX49_CONF_HALT		(_ULCAST_(1) << 18)
+#define TX49_CONF_CWFON		(_ULCAST_(1) << 27)
 
 /*
  * R10000 performance counter definitions.
@@ -478,447 +488,362 @@
 /*
  * Macros to access the system control coprocessor
  */
-#define read_32bit_cp0_register(source)                         \
-({ int __res;                                                   \
-        __asm__ __volatile__(                                   \
-        "mfc0\t%0,"STR(source)                                  \
-        : "=r" (__res));                                        \
-        __res;})
 
-#define read_64bit_cp0_register(source)                         \
-({ unsigned long __res;                                         \
-        __asm__ __volatile__(                                   \
-        ".set\tmips3\n\t"                                       \
-        "dmfc0\t%0,"STR(source)"\n\t"                           \
-        ".set\tmips0"                                           \
-        : "=r" (__res));                                        \
-        __res;})
-
-#define write_32bit_cp0_register(register,value)                \
-        __asm__ __volatile__(                                   \
-        "mtc0\t%0,"STR(register)                                \
-        : : "r" (value));
+#define __read_32bit_c0_register(source, sel)				\
+({ int __res;								\
+	if (sel == 0)							\
+		__asm__ __volatile__(					\
+			"mfc0\t%0, " #source "\n\t"			\
+			: "=r" (__res));				\
+	else								\
+		__asm__ __volatile__(					\
+			".set\tmips32\n\t"				\
+			"mfc0\t%0, " #source ", " #sel "\n\t"		\
+			".set\tmips0\n\t"				\
+			: "=r" (__res));				\
+	__res;								\
+})
 
-#define write_64bit_cp0_register(register,value)                \
-        __asm__ __volatile__(                                   \
-        ".set\tmips3\n\t"                                       \
-        "dmtc0\t%0,"STR(register)"\n\t"                         \
-        ".set\tmips0"                                           \
-        : : "r" (value))
+#define __read_64bit_c0_register(source, sel)				\
+({ unsigned long __res;							\
+	if (sel == 0)							\
+		__asm__ __volatile__(					\
+			".set\tmips3\n\t"				\
+			"dmfc0\t%0, " #source "\n\t"			\
+			".set\tmips0"					\
+			: "=r" (__res));				\
+	else								\
+		__asm__ __volatile__(					\
+			".set\tmips64\n\t"				\
+			"dmfc0\t%0, " #source ", " #sel "\n\t"		\
+			".set\tmips0"					\
+			: "=r" (__res));				\
+	__res;								\
+})
 
-/*
- * This should be changed when we get a compiler that support the MIPS32 ISA.
- */
-#define read_mips32_cp0_config1()                               \
-({ int __res;                                                   \
-        __asm__ __volatile__(                                   \
-	".set\tnoreorder\n\t"                                   \
-	".set\tnoat\n\t"                                        \
-	"#.set\tmips64\n\t"					\
-	"#mfc0\t$1, $16, 1\n\t"					\
-	"#.set\tmips0\n\t"					\
-     	".word\t0x40018001\n\t"                                 \
-	"move\t%0,$1\n\t"                                       \
-	".set\tat\n\t"                                          \
-	".set\treorder"                                         \
-	:"=r" (__res));                                         \
-        __res;})
+#define __write_32bit_c0_register(register, sel, value)			\
+do {									\
+	if (sel == 0)							\
+		__asm__ __volatile__(					\
+			"mtc0\t%z0, " #register "\n\t"			\
+			: : "Jr" (value));				\
+	else								\
+		__asm__ __volatile__(					\
+			".set\tmips32\n\t"				\
+			"mtc0\t%z0, " #register ", " #sel "\n\t"	\
+			".set\tmips0"					\
+			: : "Jr" (value));				\
+} while (0)
 
-/*
- * Macros to access the floating point coprocessor control registers
- */
-#define read_32bit_cp1_register(source)                         \
-({ int __res;                                                   \
-        __asm__ __volatile__(                                   \
-	".set\tpush\n\t"					\
-	".set\treorder\n\t"					\
-        "cfc1\t%0,"STR(source)"\n\t"                            \
-	".set\tpop"						\
-        : "=r" (__res));                                        \
-        __res;})
+#define __write_64bit_c0_register(register, sel, value)			\
+do {									\
+	if (sel == 0)							\
+		__asm__ __volatile__(					\
+			".set\tmips3\n\t"				\
+			"dmtc0\t%z0, " #register "\n\t"			\
+			".set\tmips0"					\
+			: : "Jr" (value));				\
+	else								\
+		__asm__ __volatile__(					\
+			".set\tmips64\n\t"				\
+			"dmtc0\t%z0, " #register ", " #sel "\n\t"	\
+			".set\tmips0"					\
+			: : "Jr" (value));				\
+} while (0)
 
-/* TLB operations. */
-static inline void tlb_probe(void)
-{
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		"tlbp\n\t"
-		".set reorder");
-}
+#define __read_ulong_c0_register(reg, sel)				\
+	((sizeof(unsigned long) == 4) ?					\
+	__read_32bit_c0_register(reg, sel) :				\
+	__read_64bit_c0_register(reg, sel))
 
-static inline void tlb_read(void)
-{
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		"tlbr\n\t"
-		".set reorder");
-}
+#define __write_ulong_c0_register(reg, sel, val)			\
+do {									\
+	if (sizeof(unsigned long) == 4)					\
+		__write_32bit_c0_register(reg, sel, val);		\
+	else								\
+		__write_64bit_c0_register(reg, sel, val);		\
+} while (0)
 
-static inline void tlb_write_indexed(void)
-{
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		"tlbwi\n\t"
-		".set reorder");
-}
+/*
+ * These versions are only needed for systems with more than 38 bits of
+ * physical address space running the 32-bit kernel.  That's none atm :-)
+ */
+#define __read_64bit_c0_split(source, sel)				\
+({									\
+	unsigned long long val;						\
+	unsigned long flags;						\
+									\
+	local_irq_save(flags);						\
+	if (sel == 0)							\
+		__asm__ __volatile__(					\
+			".set\tmips64\n\t"				\
+			"dmfc0\t%M0, " #source "\n\t"			\
+			"dsll\t%L0, %M0, 32\n\t"			\
+			"dsrl\t%M0, %M0, 32\n\t"			\
+			"dsrl\t%L0, %L0, 32\n\t"			\
+			".set\tmips0"					\
+			: "=r" (val));					\
+	else								\
+		__asm__ __volatile__(					\
+			".set\tmips64\n\t"				\
+			"dmfc0\t%M0, " #source ", " #sel "\n\t"		\
+			"dsll\t%L0, %M0, 32\n\t"			\
+			"dsrl\t%M0, %M0, 32\n\t"			\
+			"dsrl\t%L0, %L0, 32\n\t"			\
+			".set\tmips0"					\
+			: "=r" (val));					\
+	local_irq_restore(flags);					\
+									\
+	val;								\
+})
 
-static inline void tlb_write_random(void)
-{
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		"tlbwr\n\t"
-		".set reorder");
-}
+#define __write_64bit_c0_split(source, sel, val)			\
+do {									\
+	unsigned long flags;						\
+									\
+	local_irq_save(flags);						\
+	if (sel == 0)							\
+		__asm__ __volatile__(					\
+			".set\tmips64\n\t"				\
+			"dsll\t%L0, %L0, 32\n\t"			\
+			"dsrl\t%L0, %L0, 32\n\t"			\
+			"dsll\t%M0, %M0, 32\n\t"			\
+			"or\t%L0, %L0, %M0\n\t"				\
+			"dmtc0\t%L0, " #source "\n\t"			\
+			".set\tmips0"					\
+			: : "r" (val));					\
+	else								\
+		__asm__ __volatile__(					\
+			".set\tmips64\n\t"				\
+			"dsll\t%L0, %L0, 32\n\t"			\
+			"dsrl\t%L0, %L0, 32\n\t"			\
+			"dsll\t%M0, %M0, 32\n\t"			\
+			"or\t%L0, %L0, %M0\n\t"				\
+			"dmtc0\t%L0, " #source ", " #sel "\n\t"		\
+			".set\tmips0"					\
+			: : "r" (val));					\
+	local_irq_restore(flags);					\
+} while (0)
 
-/* Dealing with various CP0 mmu/cache related registers. */
+#define read_c0_index()		__read_32bit_c0_register($0, 0)
+#define write_c0_index(val)	__write_32bit_c0_register($0, 0, val)
 
-/* CP0_PAGEMASK register */
-static inline unsigned long get_pagemask(void)
-{
-	unsigned long val;
+#define read_c0_entrylo0()	__read_ulong_c0_register($2, 0)
+#define write_c0_entrylo0(val)	__write_ulong_c0_register($2, 0, val)
 
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		"mfc0 %0, $5\n\t"
-		".set reorder"
-		: "=r" (val));
-	return val;
-}
+#define read_c0_entrylo1()	__read_ulong_c0_register($3, 0)
+#define write_c0_entrylo1(val)	__write_ulong_c0_register($3, 0, val)
 
-static inline void set_pagemask(unsigned long val)
-{
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		"mtc0 %z0, $5\n\t"
-		".set reorder"
-		: : "Jr" (val));
-}
+#define read_c0_conf()		__read_32bit_c0_register($3, 0)
+#define write_c0_conf(val)	__write_32bit_c0_register($3, 0, val)
 
-/* CP0_ENTRYLO0 and CP0_ENTRYLO1 registers */
-static inline unsigned long get_entrylo0(void)
-{
-	unsigned long val;
+#define read_c0_context()	__read_ulong_c0_register($4, 0)
+#define write_c0_context(val)	__write_ulong_c0_register($4, 0, val)
 
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		"dmfc0 %0, $2\n\t"
-		".set reorder"
-		: "=r" (val));
-	return val;
-}
+#define read_c0_pagemask()	__read_32bit_c0_register($5, 0)
+#define write_c0_pagemask(val)	__write_32bit_c0_register($5, 0, val)
 
-static inline void set_entrylo0(unsigned long val)
-{
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		"dmtc0 %z0, $2\n\t"
-		".set reorder"
-		: : "Jr" (val));
-}
+#define read_c0_wired()		__read_32bit_c0_register($6, 0)
+#define write_c0_wired(val)	__write_32bit_c0_register($6, 0, val)
 
-static inline unsigned long get_entrylo1(void)
-{
-	unsigned long val;
+#define read_c0_info()		__read_32bit_c0_register($7, 0)
 
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		"dmfc0 %0, $3\n\t"
-		".set reorder" : "=r" (val));
+#define read_c0_cache()		__read_32bit_c0_register($7, 0)	/* TX39xx */
+#define write_c0_cache(val)	__write_32bit_c0_register($7, 0, val)
 
-	return val;
-}
+#define read_c0_count()		__read_32bit_c0_register($9, 0)
+#define write_c0_count(val)	__write_32bit_c0_register($9, 0, val)
 
-static inline void set_entrylo1(unsigned long val)
-{
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		"dmtc0 %z0, $3\n\t"
-		".set reorder"
-		: : "Jr" (val));
-}
+#define read_c0_entryhi()	__read_ulong_c0_register($10, 0)
+#define write_c0_entryhi(val)	__write_ulong_c0_register($10, 0, val)
 
-/* CP0_ENTRYHI register */
-static inline unsigned long get_entryhi(void)
-{
-	unsigned long val;
+#define read_c0_compare()	__read_32bit_c0_register($11, 0)
+#define write_c0_compare(val)	__write_32bit_c0_register($11, 0, val)
 
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		"dmfc0 %0, $10\n\t"
-		".set reorder"
-		: "=r" (val));
+#define read_c0_status()	__read_32bit_c0_register($12, 0)
+#define write_c0_status(val)	__write_32bit_c0_register($12, 0, val)
 
-	return val;
-}
+#define read_c0_cause()		__read_32bit_c0_register($13, 0)
+#define write_c0_cause(val)	__write_32bit_c0_register($13, 0, val)
 
-static inline void set_entryhi(unsigned long val)
-{
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		"dmtc0 %z0, $10\n\t"
-		".set reorder"
-		: : "Jr" (val));
-}
+#define read_c0_prid()		__read_32bit_c0_register($15, 0)
 
-/* CP0_INDEX register */
-static inline unsigned int get_index(void)
-{
-	unsigned long val;
+#define read_c0_config()	__read_32bit_c0_register($16, 0)
+#define read_c0_config1()	__read_32bit_c0_register($16, 1)
+#define read_c0_config2()	__read_32bit_c0_register($16, 2)
+#define read_c0_config3()	__read_32bit_c0_register($16, 3)
+#define write_c0_config(val)	__write_32bit_c0_register($16, 0, val)
+#define write_c0_config1(val)	__write_32bit_c0_register($16, 1, val)
+#define write_c0_config2(val)	__write_32bit_c0_register($16, 2, val)
+#define write_c0_config3(val)	__write_32bit_c0_register($16, 3, val)
 
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		"mfc0 %0, $0\n\t"
-		".set reorder"
-		: "=r" (val));
-	return val;
-}
+/*
+ * The WatchLo register.  There may be upto 8 of them.
+ */
+#define read_c0_watchlo0()	__read_ulong_c0_register($18, 0)
+#define read_c0_watchlo1()	__read_ulong_c0_register($18, 1)
+#define read_c0_watchlo2()	__read_ulong_c0_register($18, 2)
+#define read_c0_watchlo3()	__read_ulong_c0_register($18, 3)
+#define read_c0_watchlo4()	__read_ulong_c0_register($18, 4)
+#define read_c0_watchlo5()	__read_ulong_c0_register($18, 5)
+#define read_c0_watchlo6()	__read_ulong_c0_register($18, 6)
+#define read_c0_watchlo7()	__read_ulong_c0_register($18, 7)
+#define write_c0_watchlo0(val)	__write_ulong_c0_register($18, 0, val)
+#define write_c0_watchlo1(val)	__write_ulong_c0_register($18, 1, val)
+#define write_c0_watchlo2(val)	__write_ulong_c0_register($18, 2, val)
+#define write_c0_watchlo3(val)	__write_ulong_c0_register($18, 3, val)
+#define write_c0_watchlo4(val)	__write_ulong_c0_register($18, 4, val)
+#define write_c0_watchlo5(val)	__write_ulong_c0_register($18, 5, val)
+#define write_c0_watchlo6(val)	__write_ulong_c0_register($18, 6, val)
+#define write_c0_watchlo7(val)	__write_ulong_c0_register($18, 7, val)
 
-static inline void set_index(unsigned int val)
-{
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		"mtc0 %z0, $0\n\t"
-		".set reorder\n\t"
-		: : "Jr" (val));
-}
+/*
+ * The WatchHi register.  There may be upto 8 of them.
+ */
+#define read_c0_watchhi0()	__read_32bit_c0_register($19, 0)
+#define read_c0_watchhi1()	__read_32bit_c0_register($19, 1)
+#define read_c0_watchhi2()	__read_32bit_c0_register($19, 2)
+#define read_c0_watchhi3()	__read_32bit_c0_register($19, 3)
+#define read_c0_watchhi4()	__read_32bit_c0_register($19, 4)
+#define read_c0_watchhi5()	__read_32bit_c0_register($19, 5)
+#define read_c0_watchhi6()	__read_32bit_c0_register($19, 6)
+#define read_c0_watchhi7()	__read_32bit_c0_register($19, 7)
 
-/* CP0_WIRED register */
-static inline unsigned long get_wired(void)
-{
-	unsigned long val;
+#define write_c0_watchhi0(val)	__write_32bit_c0_register($19, 0, val)
+#define write_c0_watchhi1(val)	__write_32bit_c0_register($19, 1, val)
+#define write_c0_watchhi2(val)	__write_32bit_c0_register($19, 2, val)
+#define write_c0_watchhi3(val)	__write_32bit_c0_register($19, 3, val)
+#define write_c0_watchhi4(val)	__write_32bit_c0_register($19, 4, val)
+#define write_c0_watchhi5(val)	__write_32bit_c0_register($19, 5, val)
+#define write_c0_watchhi6(val)	__write_32bit_c0_register($19, 6, val)
+#define write_c0_watchhi7(val)	__write_32bit_c0_register($19, 7, val)
 
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		"mfc0 %0, $6\n\t"
-		".set reorder\n\t"
-		: "=r" (val));
-	return val;
-}
+#define read_c0_xcontext()	__read_ulong_c0_register($20, 0)
+#define write_c0_xcontext(val)	__write_ulong_c0_register($20, 0, val)
 
-static inline void set_wired(unsigned long val)
-{
-	__asm__ __volatile__(
-		"\n\t.set noreorder\n\t"
-		"mtc0 %z0, $6\n\t"
-		".set reorder"
-		: : "Jr" (val));
-}
+#define read_c0_intcontrol()	__read_32bit_c0_register($20, 1)
+#define write_c0_intcontrol(val) __write_32bit_c0_register($20, 1, val)
 
-static inline unsigned long get_info(void)
-{
-	unsigned long val;
+#define read_c0_framemask()	__read_32bit_c0_register($21, 0)
+#define write_c0_framemask(val)	__write_32bit_c0_register($21, 0, val)
 
-	__asm__(".set push\n\t"
-		".set reorder\n\t"
-		"mfc0 %0, $7\n\t"
-		".set pop"
-		: "=r" (val));
-	return val;
-}
+#define read_c0_debug()		__read_32bit_c0_register($23, 0)
+#define write_c0_debug(val)	__write_32bit_c0_register($23, 0, val)
 
-/* CP0_STATUS registers */
-static inline unsigned long get_status(void)
-{
-	unsigned long val;
+#define read_c0_depc()		__read_ulong_c0_register($24, 0)
+#define write_c0_depc(val)	__write_ulong_c0_register($24, 0, val)
 
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		"mfc0 %0, $12\n\t"
-		".set reorder"
-		: "=r" (val));
-	return val;
-}
+#define read_c0_ecc()		__read_32bit_c0_register($26, 0)
+#define write_c0_ecc(val)	__write_32bit_c0_register($26, 0, val)
 
-static inline void set_status(unsigned long val)
-{
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		"mtc0 %z0, $12\n\t"
-		".set reorder"
-		: : "Jr" (val));
-}
+#define read_c0_derraddr0()	__read_ulong_c0_register($26, 1)
+#define write_c0_derraddr0(val)	__write_ulong_c0_register($26, 1, val)
 
-/* CP0_TAGLO and CP0_TAGHI registers */
-static inline unsigned long get_taglo(void)
-{
-	unsigned long val;
+#define read_c0_cacheerr()	__read_32bit_c0_register($27, 0)
 
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		"mfc0 %0, $28\n\t"
-		".set reorder"
-		: "=r" (val));
-	return val;
-}
+#define read_c0_derraddr1()	__read_ulong_c0_register($27, 1)
+#define write_c0_derraddr1(val)	__write_ulong_c0_register($27, 1, val)
 
-static inline void set_taglo(unsigned long val)
-{
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		"mtc0 %z0, $28\n\t"
-		".set reorder"
-		: : "Jr" (val));
-}
+#define read_c0_taglo()		__read_32bit_c0_register($28, 0)
+#define write_c0_taglo(val)	__write_32bit_c0_register($28, 0, val)
 
-static inline unsigned long get_taghi(void)
-{
-	unsigned long val;
+#define read_c0_taghi()		__read_32bit_c0_register($29, 0)
+#define write_c0_taghi(val)	__write_32bit_c0_register($29, 0, val)
 
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		"mfc0 %0, $29\n\t"
-		".set reorder"
-		: "=r" (val));
-	return val;
-}
+#define read_c0_errorepc()	__read_ulong_c0_register($30, 0)
+#define write_c0_errorepc(val)	__write_ulong_c0_register($30, 0, val)
 
-static inline void set_taghi(unsigned long val)
-{
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		"mtc0 %z0, $29\n\t"
-		".set reorder"
-		: : "Jr" (val));
-}
+/*
+ * Macros to access the floating point coprocessor control registers
+ */
+#define read_32bit_cp1_register(source)                         \
+({ int __res;                                                   \
+	__asm__ __volatile__(                                   \
+	".set\tpush\n\t"					\
+	".set\treorder\n\t"					\
+        "cfc1\t%0,"STR(source)"\n\t"                            \
+	".set\tpop"						\
+        : "=r" (__res));                                        \
+        __res;})
 
-static inline unsigned long get_context(void)
+/* TLB operations. */
+static inline void tlb_probe(void)
 {
-	unsigned long val;
-
 	__asm__ __volatile__(
 		".set noreorder\n\t"
-		"dmfc0 %0, $4\n\t"
-		".set reorder"
-		: "=r" (val));
-
-	return val;
+		"tlbp\n\t"
+		".set reorder");
 }
 
-static inline void set_context(unsigned long val)
+static inline void tlb_read(void)
 {
 	__asm__ __volatile__(
 		".set noreorder\n\t"
-		"dmtc0 %z0, $4\n\t"
-		".set reorder"
-		: : "Jr" (val));
+		"tlbr\n\t"
+		".set reorder");
 }
 
-static inline unsigned long get_xcontext(void)
+static inline void tlb_write_indexed(void)
 {
-	unsigned long val;
-
 	__asm__ __volatile__(
 		".set noreorder\n\t"
-		"dmfc0 %0, $20\n\t"
-		".set reorder"
-		: "=r" (val));
-
-	return val;
+		"tlbwi\n\t"
+		".set reorder");
 }
 
-static inline void set_xcontext(unsigned long val)
+static inline void tlb_write_random(void)
 {
 	__asm__ __volatile__(
 		".set noreorder\n\t"
-		"dmtc0 %z0, $20\n\t"
-		".set reorder"
-		: : "Jr" (val));
-}
-
-static inline unsigned long get_errorepc(void)
-{
-	unsigned long val;
-
-	__asm__ __volatile__(
-		".set push\n\t"
-		".set reorder\n\t"
-		"dmfc0 %0, $30\n\t"
-		".set pop"
-		: "=r" (val));
-
-	return val;
-}
-
-static inline void set_errorepc(unsigned long val)
-{
-	__asm__ __volatile__(
-		".set push\n\t"
-		".set reorder\n\t"
-		"dmtc0 %z0, $30\n\t"
-		".set pop"
-		: : "Jr" (val));
+		"tlbwr\n\t"
+		".set reorder");
 }
 
 /*
- * Manipulate the status register.
- * Mostly used to access the interrupt bits.
+ * Manipulate bits in a c0 register.
  */
-#define __BUILD_SET_CP0(name,register)				\
+#define __BUILD_SET_C0(name,register)				\
 static inline unsigned int					\
-set_cp0_##name(unsigned int set)				\
+set_c0_##name(unsigned int set)					\
 {								\
 	unsigned int res;					\
 								\
-	res = read_32bit_cp0_register(register);		\
+	res = read_c0_##name();					\
 	res |= set;						\
-	write_32bit_cp0_register(register, res);		\
+	write_c0_##name(res);					\
 								\
 	return res;						\
 }								\
 								\
 static inline unsigned int					\
-clear_cp0_##name(unsigned int clear)				\
+clear_c0_##name(unsigned int clear)				\
 {								\
 	unsigned int res;					\
 								\
-	res = read_32bit_cp0_register(register);		\
+	res = read_c0_##name();					\
 	res &= ~clear;						\
-	write_32bit_cp0_register(register, res);		\
+	write_c0_##name(res);					\
 								\
 	return res;						\
 }								\
 								\
 static inline unsigned int					\
-change_cp0_##name(unsigned int change, unsigned int new)	\
+change_c0_##name(unsigned int change, unsigned int new)		\
 {								\
 	unsigned int res;					\
 								\
-	res = read_32bit_cp0_register(register);		\
+	res = read_c0_##name();					\
 	res &= ~change;						\
 	res |= (new & change);					\
-	if (change)						\
-		write_32bit_cp0_register(register, res);	\
+	write_c0_##name(res);					\
 								\
 	return res;						\
 }
 
-__BUILD_SET_CP0(status,CP0_STATUS)
-__BUILD_SET_CP0(cause,CP0_CAUSE)
-__BUILD_SET_CP0(config,CP0_CONFIG)
-
-#define __enable_fpu()							\
-do {									\
-	set_cp0_status(ST0_CU1);					\
-	asm("nop;nop;nop;nop");		/* max. hazard */		\
-} while (0)
-
-#define __disable_fpu()							\
-do {									\
-	clear_cp0_status(ST0_CU1);					\
-	/* We don't care about the cp0 hazard here  */			\
-} while (0)
-
-#define enable_fpu()							\
-do {									\
-	if (mips_cpu.options & MIPS_CPU_FPU)				\
-		__enable_fpu();						\
-} while (0)
+__BUILD_SET_C0(status,CP0_STATUS)
+__BUILD_SET_C0(cause,CP0_CAUSE)
+__BUILD_SET_C0(config,CP0_CONFIG)
 
-#define disable_fpu()							\
-do {									\
-	if (mips_cpu.options & MIPS_CPU_FPU)				\
-		__disable_fpu();					\
-} while (0)
 #endif /* !__ASSEMBLY__ */
 
 #endif /* _ASM_MIPSREGS_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/mmu_context.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/mmu_context.h
--- linux-2.4.20/include/asm-mips64/mmu_context.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/mmu_context.h	2003-02-14 05:04:04.000000000 -0600
@@ -27,16 +27,13 @@
 #define TLBMISS_HANDLER_SETUP_PGD(pgd) \
 	pgd_current[smp_processor_id()] = (unsigned long)(pgd)
 #define TLBMISS_HANDLER_SETUP() \
-	set_context(((long)(&pgd_current[smp_processor_id()])) << 23); \
+	write_c0_context(((long)(&pgd_current[smp_processor_id()])) << 23); \
 	TLBMISS_HANDLER_SETUP_PGD(swapper_pg_dir)
 extern unsigned long pgd_current[];
 
-#ifndef CONFIG_SMP
-#define CPU_CONTEXT(cpu, mm)	(mm)->context
-#else
-#define CPU_CONTEXT(cpu, mm)	(*((unsigned long *)((mm)->context) + cpu))
-#endif
-#define ASID_CACHE(cpu)		cpu_data[cpu].asid_cache
+#define cpu_context(cpu, mm)	((mm)->context[cpu])
+#define cpu_asid(cpu, mm)	(cpu_context((cpu), (mm)) & ASID_MASK)
+#define asid_cache(cpu)		(cpu_data[cpu].asid_cache)
 
 #define ASID_INC	0x1
 #define ASID_MASK	0xff
@@ -55,7 +52,7 @@
 static inline void
 get_new_mmu_context(struct mm_struct *mm, unsigned long cpu)
 {
-	unsigned long asid = ASID_CACHE(cpu);
+	unsigned long asid = asid_cache(cpu);
 
 	if (! ((asid += ASID_INC) & ASID_MASK) ) {
 		flush_icache_all();
@@ -63,7 +60,7 @@
 		if (!asid)		/* fix version if needed */
 			asid = ASID_FIRST_VERSION;
 	}
-	CPU_CONTEXT(cpu, mm) = ASID_CACHE(cpu) = asid;
+	cpu_context(cpu, mm) = asid_cache(cpu) = asid;
 }
 
 /*
@@ -73,31 +70,35 @@
 static inline int
 init_new_context(struct task_struct *tsk, struct mm_struct *mm)
 {
-#ifndef CONFIG_SMP
-	mm->context = 0;
-#else
-	mm->context = (unsigned long)kmalloc(smp_num_cpus *
-				sizeof(unsigned long), GFP_KERNEL);
-	/*
- 	 * Init the "context" values so that a tlbpid allocation
-	 * happens on the first switch.
- 	 */
-	if (mm->context == 0)
-		return -ENOMEM;
-	memset((void *)mm->context, 0, smp_num_cpus * sizeof(unsigned long));
-#endif
+	int i;
+
+	for (i = 0; i < smp_num_cpus; i++)
+		cpu_context(i, mm) = 0;
 	return 0;
 }
 
 static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
                              struct task_struct *tsk, unsigned cpu)
 {
+	unsigned long flags;
+
+	local_irq_save(flags);
+
 	/* Check if our ASID is of an older version and thus invalid */
-	if ((CPU_CONTEXT(cpu, next) ^ ASID_CACHE(cpu)) & ASID_VERSION_MASK)
+	if ((cpu_context(cpu, next) ^ asid_cache(cpu)) & ASID_VERSION_MASK)
 		get_new_mmu_context(next, cpu);
 
-	set_entryhi(CPU_CONTEXT(cpu, next));
+	write_c0_entryhi(cpu_context(cpu, next));
 	TLBMISS_HANDLER_SETUP_PGD(next->pgd);
+
+	/*
+	 * Mark current->active_mm as not "active" anymore.
+	 * We don't want to mislead possible IPI tlb flush routines.
+	 */
+	clear_bit(cpu, &prev->cpu_vm_mask);
+	set_bit(cpu, &next->cpu_vm_mask);
+
+	local_irq_restore(flags);
 }
 
 /*
@@ -106,10 +107,6 @@
  */
 static inline void destroy_context(struct mm_struct *mm)
 {
-#ifdef CONFIG_SMP
-	if (mm->context)
-		kfree((void *)mm->context);
-#endif
 }
 
 /*
@@ -119,11 +116,39 @@
 static inline void
 activate_mm(struct mm_struct *prev, struct mm_struct *next)
 {
+	unsigned long flags;
+
+	local_irq_save(flags);
+
 	/* Unconditionally get a new ASID.  */
 	get_new_mmu_context(next, smp_processor_id());
 
-	set_entryhi(CPU_CONTEXT(smp_processor_id(), next));
+	write_c0_entryhi(cpu_context(smp_processor_id(), next));
 	TLBMISS_HANDLER_SETUP_PGD(next->pgd);
+	
+	local_irq_restore(flags);
+}
+
+/*
+ * If mm is currently active_mm, we can't really drop it.  Instead,
+ * we will get a new one for it.
+ */
+static inline void
+drop_mmu_context(struct mm_struct *mm, unsigned cpu)
+{
+	unsigned long flags;
+
+	local_irq_save(flags);
+
+	if (test_bit(cpu, &mm->cpu_vm_mask))  {
+		get_new_mmu_context(mm, cpu);
+		write_c0_entryhi(cpu_asid(cpu, mm));
+	} else {
+		/* will get a new context next time */
+		cpu_context(cpu, mm) = 0;
+	}
+
+	local_irq_restore(flags);
 }
 
 #endif /* _ASM_MMU_CONTEXT_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/mmu.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/mmu.h
--- linux-2.4.20/include/asm-mips64/mmu.h	2000-12-29 16:07:23.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/mmu.h	2003-01-16 22:23:41.000000000 -0600
@@ -1,7 +1,6 @@
-#ifndef __MMU_H
-#define __MMU_H
+#ifndef __ASM_MMU_H
+#define __ASM_MMU_H
 
-/* Default "unsigned long" context */
-typedef unsigned long mm_context_t;
+typedef unsigned long mm_context_t[NR_CPUS];
 
-#endif
+#endif /* __ASM_MMU_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/module.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/module.h
--- linux-2.4.20/include/asm-mips64/module.h	2001-09-09 12:43:02.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/module.h	2002-11-06 19:47:46.000000000 -0600
@@ -56,8 +56,8 @@
 	extern const struct exception_table_entry __start___dbe_table[];
 	extern const struct exception_table_entry __stop___dbe_table[];
 	static struct archdata archdata = {
-		dbe_table_start:	__start___dbe_table,
-		dbe_table_end:		__stop___dbe_table,
+		.dbe_table_start	= __start___dbe_table,
+		.dbe_table_end		= __stop___dbe_table,
 	};
 
 	mod->archdata_start = (char *)&archdata;
diff -urNd -urNd linux-2.4.20/include/asm-mips64/page.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/page.h
--- linux-2.4.20/include/asm-mips64/page.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/page.h	2003-01-20 14:21:43.000000000 -0600
@@ -32,10 +32,28 @@
 
 extern void (*_clear_page)(void * page);
 extern void (*_copy_page)(void * to, void * from);
+
 extern void mips64_clear_page_dc(unsigned long page);
 extern void mips64_clear_page_sc(unsigned long page);
+void r4k_clear_page_d16(void * page);
+void r4k_clear_page_d32(void * page);
+void r4k_clear_page_r4600_v1(void * page);
+void r4k_clear_page_r4600_v2(void * page);
+void r4k_clear_page_s16(void * page);
+void r4k_clear_page_s32(void * page);
+void r4k_clear_page_s64(void * page);
+void r4k_clear_page_s128(void * page);
+
 extern void mips64_copy_page_dc(unsigned long to, unsigned long from);
 extern void mips64_copy_page_sc(unsigned long to, unsigned long from);
+void r4k_copy_page_d16(void * to, void * from);
+void r4k_copy_page_d32(void * to, void * from);
+void r4k_copy_page_r4600_v1(void * to, void * from);
+void r4k_copy_page_r4600_v2(void * to, void * from);
+void r4k_copy_page_s16(void * to, void * from);
+void r4k_copy_page_s32(void * to, void * from);
+void r4k_copy_page_s64(void * to, void * from);
+void r4k_copy_page_s128(void * to, void * from);
 
 #define clear_page(page)	_clear_page(page)
 #define copy_page(to, from)	_copy_page(to, from)
@@ -87,7 +105,8 @@
  * at XKPHYS with a suitable caching mode for kernels with more than that.
  */
 #if defined(CONFIG_SGI_IP22) || defined(CONFIG_MIPS_ATLAS) || \
-    defined(CONFIG_MIPS_MALTA)
+    defined(CONFIG_MIPS_MALTA) || defined(CONFIG_MIPS_SEAD) || \
+    defined(CONFIG_DECSTATION)
 #define PAGE_OFFSET	0xffffffff80000000UL
 #define UNCAC_BASE	0xffffffffa0000000UL
 #endif
@@ -97,7 +116,7 @@
 #endif
 #if defined(CONFIG_SGI_IP27)
 #define PAGE_OFFSET	0xa800000000000000UL
-#define UNCAC_BASE	0x9000000000000000UL
+#define UNCAC_BASE	0x9600000000000000UL
 #endif
 #if defined(CONFIG_SIBYTE_SB1250)
 #define PAGE_OFFSET	0xa800000000000000UL
diff -urNd -urNd linux-2.4.20/include/asm-mips64/param.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/param.h
--- linux-2.4.20/include/asm-mips64/param.h	2000-11-28 23:42:04.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/param.h	2003-01-20 14:21:43.000000000 -0600
@@ -10,13 +10,56 @@
 #define _ASM_PARAM_H
 
 #ifndef HZ
-#define HZ 100
-#  define HZ 100
+
 #ifdef __KERNEL__
-#  define hz_to_std(a) (a)
-#endif
+
+/* Safeguard against user stupidity  */
+#ifdef _SYS_PARAM_H
+#error Do not include <asm/param.h> with __KERNEL__ defined!
 #endif
 
+#include <linux/config.h>
+
+#ifdef CONFIG_DECSTATION
+   /*
+    * log2(HZ), change this here if you want another HZ value. This is also
+    * used in dec_time_init.  Minimum is 1, Maximum is 15.
+    */
+#  define LOG_2_HZ 7
+#  define HZ (1 << LOG_2_HZ)
+   /*
+    * Ye olde division-by-multiplication trick.
+    * This works only if 100 / HZ <= 1
+    */
+#  define QUOTIENT ((1UL << (64 - LOG_2_HZ)) * 100)
+#  define hz_to_std(a)				\
+   ({ unsigned long __res;			\
+      unsigned long __lo;			\
+	__asm__("dmultu\t%2,%3\n\t"		\
+		:"=h" (__res), "=l" (__lo)	\
+		:"r" (a), "r" (QUOTIENT));	\
+	(__typeof__(a)) __res;})
+
+#else /* Not a DECstation  */
+
+/* This is the internal value of HZ, that is the rate at which the jiffies
+   counter is increasing.  This value is independent from the external value
+   and can be changed in order to suit the hardware and application
+   requirements.  */
+#  define HZ 100
+#  define hz_to_std(a) (a)
+
+#endif /* Not a DECstation  */
+
+#else /* defined(__KERNEL__)  */
+
+/* This is the external value of HZ as seen by user programs.  Don't change
+   unless you know what you're doing - changing breaks binary compatibility.  */
+#define HZ 100
+
+#endif /* defined(__KERNEL__)  */
+#endif /* defined(HZ)  */
+
 #define EXEC_PAGESIZE	4096
 
 #ifndef NGROUPS
diff -urNd -urNd linux-2.4.20/include/asm-mips64/pci/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips64/pci/CVS/Entries
--- linux-2.4.20/include/asm-mips64/pci/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/pci/CVS/Entries	2005-01-06 23:06:54.000000000 -0600
@@ -0,0 +1,2 @@
+/bridge.h/1.5.2.2/Mon Aug  5 23:53:39 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-mips64/pci/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips64/pci/CVS/Repository
--- linux-2.4.20/include/asm-mips64/pci/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/pci/CVS/Repository	2005-01-06 23:06:53.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-mips64/pci
diff -urNd -urNd linux-2.4.20/include/asm-mips64/pci/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips64/pci/CVS/Root
--- linux-2.4.20/include/asm-mips64/pci/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/pci/CVS/Root	2005-01-06 23:06:53.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-mips64/pci/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips64/pci/CVS/Tag
--- linux-2.4.20/include/asm-mips64/pci/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/pci/CVS/Tag	2005-01-06 23:06:54.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-mips64/pci.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/pci.h
--- linux-2.4.20/include/asm-mips64/pci.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/pci.h	2002-10-01 06:14:37.000000000 -0500
@@ -100,7 +100,7 @@
 
 	dma_cache_wback_inv(addr, size);
 
-	return bus_to_baddr(hwdev->bus->number, __pa(ptr));
+	return bus_to_baddr(hwdev->bus, __pa(ptr));
 }
 
 /*
@@ -120,7 +120,7 @@
 	if (direction != PCI_DMA_TODEVICE) {
 		unsigned long addr;
 
-		addr = baddr_to_bus(hwdev, dma_addr) + PAGE_OFFSET;
+		addr = baddr_to_bus(hwdev->bus, dma_addr) + PAGE_OFFSET;
 		dma_cache_wback_inv(addr, size);
 	}
 }
@@ -141,7 +141,7 @@
 	addr = (unsigned long) page_address(page) + offset;
 	dma_cache_wback_inv(addr, size);
 
-	return bus_to_baddr(hwdev, page_to_phys(page) + offset);
+	return bus_to_baddr(hwdev->bus, page_to_phys(page) + offset);
 }
 
 static inline void pci_unmap_page(struct pci_dev *hwdev, dma_addr_t dma_address,
@@ -153,7 +153,7 @@
 	if (direction != PCI_DMA_TODEVICE) {
 		unsigned long addr;
 
-		addr = baddr_to_bus(hwdev, dma_address) + PAGE_OFFSET;
+		addr = baddr_to_bus(hwdev->bus, dma_address) + PAGE_OFFSET;
 		dma_cache_wback_inv(addr, size);
 	}
 }
@@ -199,10 +199,15 @@
 		if (sg->address) {
 			dma_cache_wback_inv((unsigned long)sg->address,
 			                    sg->length);
-			sg->dma_address = bus_to_baddr(hwdev, __pa(sg->address));
-		} else
+			sg->dma_address = bus_to_baddr(hwdev->bus,
+			                               __pa(sg->address));
+		} else {
 			sg->dma_address = page_to_bus(sg->page) +
 			                  sg->offset;
+			dma_cache_wback_inv((unsigned long)
+				(page_address(sg->page) + sg->offset),
+				sg->length);
+		}
 	}
 
 	return nents;
@@ -255,7 +260,7 @@
 	if (direction == PCI_DMA_NONE)
 		out_of_line_bug();
 
-	addr = baddr_to_bus(hwdev, dma_handle) + PAGE_OFFSET;
+	addr = baddr_to_bus(hwdev->bus, dma_handle) + PAGE_OFFSET;
 	dma_cache_wback_inv(addr, size);
 }
 
@@ -313,13 +318,13 @@
 {
 	dma64_addr_t addr = page_to_phys(page) + offset;
 
-	return (dma64_addr_t) bus_to_baddr(hwdev->bus->number, addr);
+	return (dma64_addr_t) bus_to_baddr(pdev->bus, addr);
 }
 
 static inline struct page *pci_dac_dma_to_page(struct pci_dev *pdev,
 	dma64_addr_t dma_addr)
 {
-	unsigned long poff = baddr_to_bus(hwdev, dma_addr) >> PAGE_SHIFT;
+	unsigned long poff = baddr_to_bus(pdev->bus, dma_addr) >> PAGE_SHIFT;
 
 	return mem_map + poff;
 }
@@ -338,7 +343,7 @@
 	if (direction == PCI_DMA_NONE)
 		BUG();
 
-	addr = baddr_to_bus(hwdev->bus->number, dma_addr) + PAGE_OFFSET;
+	addr = baddr_to_bus(pdev->bus, dma_addr) + PAGE_OFFSET;
 	dma_cache_wback_inv(addr, len);
 }
 
diff -urNd -urNd linux-2.4.20/include/asm-mips64/processor.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/processor.h
--- linux-2.4.20/include/asm-mips64/processor.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/processor.h	2003-02-20 13:46:34.000000000 -0600
@@ -71,10 +71,6 @@
  * XXX: Should go into mips_cpuinfo.
  */
 extern void (*cpu_wait)(void);
-extern void r3081_wait(void);
-extern void r39xx_wait(void);
-extern void r4k_wait(void);
-extern void au1k_wait(void);
 
 extern unsigned int vced_count, vcei_count;
 extern struct cpuinfo_mips cpu_data[];
@@ -103,17 +99,6 @@
 #define wp_works_ok 1
 #define wp_works_ok__is_a_macro /* for versions in ksyms.c */
 
-/* Lazy FPU handling on uni-processor */
-extern struct task_struct *last_task_used_math;
-
-#ifndef CONFIG_SMP
-#define IS_FPU_OWNER()		(last_task_used_math == current)
-#define CLEAR_FPU_OWNER()	last_task_used_math = NULL;
-#else
-#define IS_FPU_OWNER()		(current->flags & PF_USEDFPU)
-#define CLEAR_FPU_OWNER()	current->flags &= ~PF_USEDFPU;
-#endif
-
 /*
  * User space process size: 1TB. This is hardcoded into a few places,
  * so don't change it unless you know what you are doing.  TASK_SIZE
@@ -126,7 +111,7 @@
 /* This decides where the kernel will search for a free chunk of vm
  * space during mmap's.
  */
-#define TASK_UNMAPPED_BASE	((current->thread.mflags & MF_32BIT) ? \
+#define TASK_UNMAPPED_BASE	((current->thread.mflags & MF_32BIT_ADDR) ? \
 	(TASK_SIZE32 / 3) : (TASK_SIZE / 3))
 
 /*
@@ -187,15 +172,21 @@
 	unsigned long cp0_baduaddr;	/* Last kernel fault accessing USEG */
 	unsigned long error_code;
 	unsigned long trap_no;
-#define MF_FIXADE 1			/* Fix address errors in software */
-#define MF_LOGADE 2			/* Log address errors to syslog */
-#define MF_32BIT  4			/* Process is in 32-bit compat mode */
+#define MF_FIXADE	1		/* Fix address errors in software */
+#define MF_LOGADE	2		/* Log address errors to syslog */
+#define MF_32BIT_REGS	4		/* also implies 16/32 fprs */
+#define MF_32BIT_ADDR	8		/* 32-bit address space (o32/n32) */
 	unsigned long mflags;
 	mm_segment_t current_ds;
 	unsigned long irix_trampoline;  /* Wheee... */
 	unsigned long irix_oldctx;
 };
 
+#define MF_ABI_MASK	(MF_32BIT_REGS | MF_32BIT_ADDR)
+#define MF_O32		(MF_32BIT_REGS | MF_32BIT_ADDR)
+#define MF_N32		MF_32BIT_ADDR
+#define MF_N64		0
+
 #endif /* !__ASSEMBLY__ */
 
 #define INIT_THREAD  { \
@@ -219,7 +210,7 @@
 	/* \
 	 * For now the default is to fix address errors \
 	 */ \
-	MF_FIXADE, { 0 }, 0, 0 \
+	MF_FIXADE, KERNEL_DS, 0, 0 \
 }
 
 #ifdef __KERNEL__
@@ -256,26 +247,16 @@
 /*
  * Do necessary setup to start up a newly executed thread.
  */
-#define start_thread(regs, pc, sp) 					\
-do {									\
-	unsigned long __status;						\
-									\
-	/* New thread looses kernel privileges. */			\
-	__status = regs->cp0_status & ~(ST0_CU0|ST0_FR|ST0_KSU);	\
-	__status |= KSU_USER;						\
-	__status |= (current->thread.mflags & MF_32BIT) ? 0 : ST0_FR;	\
-	regs->cp0_status = __status;					\
-	regs->cp0_epc = pc;						\
-	regs->regs[29] = sp;						\
-	current->thread.current_ds = USER_DS;				\
-} while(0)
+extern void start_thread(struct pt_regs * regs, unsigned long pc, unsigned long sp);
 
+struct task_struct;
 unsigned long get_wchan(struct task_struct *p);
 
 #define __PT_REG(reg) ((long)&((struct pt_regs *)0)->reg - sizeof(struct pt_regs))
 #define __KSTK_TOS(tsk) ((unsigned long)(tsk) + KERNEL_STACK_SIZE - 32)
 #define KSTK_EIP(tsk) (*(unsigned long *)(__KSTK_TOS(tsk) + __PT_REG(cp0_epc)))
 #define KSTK_ESP(tsk) (*(unsigned long *)(__KSTK_TOS(tsk) + __PT_REG(regs[29])))
+#define KSTK_STATUS(tsk) (*(unsigned long *)(__KSTK_TOS(tsk) + __PT_REG(cp0_status)))
 
 /* Allocation and freeing of basic task resources. */
 /*
diff -urNd -urNd linux-2.4.20/include/asm-mips64/ptrace.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/ptrace.h
--- linux-2.4.20/include/asm-mips64/ptrace.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/ptrace.h	2002-12-19 21:26:02.000000000 -0600
@@ -76,6 +76,7 @@
 #ifndef __ASSEMBLY__
 #define instruction_pointer(regs) ((regs)->cp0_epc)
 
+extern void show_regs(struct pt_regs *);
 #endif /* !__ASSEMBLY__ */
 
 #endif
diff -urNd -urNd linux-2.4.20/include/asm-mips64/r10kcache.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/r10kcache.h
--- linux-2.4.20/include/asm-mips64/r10kcache.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/r10kcache.h	2002-12-01 18:24:54.000000000 -0600
@@ -28,14 +28,14 @@
 /* These are configuration dependant.  */
 #define scache_size()	({						\
 	unsigned long __res;						\
-	__res = (read_32bit_cp0_register(CP0_CONFIG) >> 16) & 3;	\
+	__res = (read_c0_config() >> 16) & 3;				\
 	__res = 1 << (__res + 19);					\
 	__res;								\
 })
 
 #define sc_lsize()	({						\
 	unsigned long __res;						\
-	__res = (read_32bit_cp0_register(CP0_CONFIG) >> 13) & 1;	\
+	__res = (read_c0_config() >> 13) & 1;				\
 	__res = 1 << (__res + 6);					\
 	__res;								\
 })
diff -urNd -urNd linux-2.4.20/include/asm-mips64/r4kcache.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/r4kcache.h
--- linux-2.4.20/include/asm-mips64/r4kcache.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/r4kcache.h	2002-10-03 21:39:52.000000000 -0500
@@ -6,93 +6,62 @@
  * Inline assembly cache operations.
  *
  * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
- *
- * FIXME: Handle split L2 caches.
+ * Copyright (C) 1997 - 2002 Ralf Baechle (ralf@gnu.org)
  */
-#ifndef _ASM_R4KCACHE_H
-#define _ASM_R4KCACHE_H
+#ifndef __ASM_R4KCACHE_H
+#define __ASM_R4KCACHE_H
 
 #include <asm/asm.h>
-#include <asm/r4kcacheops.h>
+#include <asm/cacheops.h>
+
+#define cache_op(op,addr)						\
+	__asm__ __volatile__(						\
+	"	.set	noreorder		\n"			\
+	"	.set	mips3\n\t		\n"			\
+	"	cache	%0, %1			\n"			\
+	"	.set	mips0			\n"			\
+	"	.set	reorder"					\
+	:								\
+	: "i" (op), "m" (*(unsigned char *)(addr)))
 
 static inline void flush_icache_line_indexed(unsigned long addr)
 {
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		"cache %1, (%0)\n\t"
-		".set reorder"
-		:
-		: "r" (addr), "i" (Index_Invalidate_I));
+	cache_op(Index_Invalidate_I, addr);
 }
 
 static inline void flush_dcache_line_indexed(unsigned long addr)
 {
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		"cache %1, (%0)\n\t"
-		".set reorder"
-		:
-		: "r" (addr), "i" (Index_Writeback_Inv_D));
+	cache_op(Index_Writeback_Inv_D, addr);
 }
 
 static inline void flush_scache_line_indexed(unsigned long addr)
 {
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		"cache %1, (%0)\n\t"
-		".set reorder"
-		:
-		: "r" (addr), "i" (Index_Writeback_Inv_SD));
+	cache_op(Index_Writeback_Inv_SD, addr);
 }
 
 static inline void flush_icache_line(unsigned long addr)
 {
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		"cache %1, (%0)\n\t"
-		".set reorder"
-		:
-		: "r" (addr), "i" (Hit_Invalidate_I));
+	cache_op(Hit_Invalidate_I, addr);
 }
 
 static inline void flush_dcache_line(unsigned long addr)
 {
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		"cache %1, (%0)\n\t"
-		".set reorder"
-		:
-		: "r" (addr), "i" (Hit_Writeback_Inv_D));
+	cache_op(Hit_Writeback_Inv_D, addr);
 }
 
 static inline void invalidate_dcache_line(unsigned long addr)
 {
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		"cache %1, (%0)\n\t"
-		".set reorder"
-		:
-		: "r" (addr), "i" (Hit_Invalidate_D));
+	cache_op(Hit_Invalidate_D, addr);
 }
 
 static inline void invalidate_scache_line(unsigned long addr)
 {
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		"cache %1, (%0)\n\t"
-		".set reorder"
-		:
-		: "r" (addr), "i" (Hit_Invalidate_SD));
+	cache_op(Hit_Invalidate_SD, addr);
 }
 
 static inline void flush_scache_line(unsigned long addr)
 {
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		"cache %1, (%0)\n\t"
-		".set reorder"
-		:
-		: "r" (addr), "i" (Hit_Writeback_Inv_SD));
+	cache_op(Hit_Writeback_Inv_SD, addr);
 }
 
 /*
@@ -102,31 +71,36 @@
 {
 	__asm__ __volatile__(
 		".set noreorder\n\t"
-		"1:\tcache %1,(%0)\n"
-		"2:\t.set reorder\n\t"
+		".set mips3\n"
+		"1:\tcache %0,(%1)\n"
+		"2:\t.set mips0\n\t"
+		".set reorder\n\t"
 		".section\t__ex_table,\"a\"\n\t"
-		".dword\t1b,2b\n\t"
+		STR(PTR)"\t1b,2b\n\t"
 		".previous"
 		:
-		: "r" (addr), "i" (Hit_Invalidate_I));
+		: "i" (Hit_Invalidate_I), "r" (addr));
 }
 
 static inline void protected_writeback_dcache_line(unsigned long addr)
 {
 	__asm__ __volatile__(
 		".set noreorder\n\t"
-		"1:\tcache %1,(%0)\n"
-		"2:\t.set reorder\n\t"
+		".set mips3\n"
+		"1:\tcache %0,(%1)\n"
+		"2:\t.set mips0\n\t"
+		".set reorder\n\t"
 		".section\t__ex_table,\"a\"\n\t"
-		".dword\t1b,2b\n\t"
+		STR(PTR)"\t1b,2b\n\t"
 		".previous"
 		:
-		: "r" (addr), "i" (Hit_Writeback_D));
+		: "i" (Hit_Writeback_D), "r" (addr));
 }
 
 #define cache16_unroll32(base,op)				\
 	__asm__ __volatile__("					\
 		.set noreorder;					\
+		.set mips3;					\
 		cache %1, 0x000(%0); cache %1, 0x010(%0);	\
 		cache %1, 0x020(%0); cache %1, 0x030(%0);	\
 		cache %1, 0x040(%0); cache %1, 0x050(%0);	\
@@ -143,6 +117,7 @@
 		cache %1, 0x1a0(%0); cache %1, 0x1b0(%0);	\
 		cache %1, 0x1c0(%0); cache %1, 0x1d0(%0);	\
 		cache %1, 0x1e0(%0); cache %1, 0x1f0(%0);	\
+		.set mips0;					\
 		.set reorder"					\
 		:						\
 		: "r" (base),					\
@@ -153,18 +128,32 @@
 	unsigned long start = KSEG0;
 	unsigned long end = (start + dcache_size);
 
-	while(start < end) {
+	while (start < end) {
 		cache16_unroll32(start,Index_Writeback_Inv_D);
 		start += 0x200;
 	}
 }
 
+static inline void blast_dcache16_wayLSB(void)
+{
+	unsigned long start = KSEG0;
+	unsigned long end = (start + mips_cpu.dcache.sets * mips_cpu.dcache.linesz);
+	int way;
+
+	while (start < end) {
+		/* LSB of VA select the way */
+		for (way = 0; way < mips_cpu.dcache.ways; way++)
+			cache16_unroll32(start|way,Index_Writeback_Inv_D);
+		start += 0x200;
+	}
+}
+
 static inline void blast_dcache16_page(unsigned long page)
 {
 	unsigned long start = page;
 	unsigned long end = (start + PAGE_SIZE);
 
-	while(start < end) {
+	while (start < end) {
 		cache16_unroll32(start,Hit_Writeback_Inv_D);
 		start += 0x200;
 	}
@@ -175,29 +164,57 @@
 	unsigned long start = page;
 	unsigned long end = (start + PAGE_SIZE);
 
-	while(start < end) {
+	while (start < end) {
 		cache16_unroll32(start,Index_Writeback_Inv_D);
 		start += 0x200;
 	}
 }
 
+static inline void blast_dcache16_page_indexed_wayLSB(unsigned long page)
+{
+	unsigned long start = page;
+	unsigned long end = (start + PAGE_SIZE);
+	int way;
+
+	while (start < end) {
+		/* LSB of VA select the way */
+		for (way = 0; way < mips_cpu.dcache.ways; way++)
+			cache16_unroll32(start|way,Index_Writeback_Inv_D);
+		start += 0x200;
+	}
+}
+
 static inline void blast_icache16(void)
 {
 	unsigned long start = KSEG0;
 	unsigned long end = (start + icache_size);
 
-	while(start < end) {
+	while (start < end) {
 		cache16_unroll32(start,Index_Invalidate_I);
 		start += 0x200;
 	}
 }
 
+static inline void blast_icache16_wayLSB(void)
+{
+	unsigned long start = KSEG0;
+	unsigned long end = (start + mips_cpu.icache.sets * mips_cpu.icache.linesz);
+	int way;
+
+	while (start < end) {
+		/* LSB of VA select the way */
+		for (way = 0; way < mips_cpu.icache.ways; way++)
+			cache16_unroll32(start|way,Index_Invalidate_I);
+		start += 0x200;
+	}
+}
+
 static inline void blast_icache16_page(unsigned long page)
 {
 	unsigned long start = page;
 	unsigned long end = (start + PAGE_SIZE);
 
-	while(start < end) {
+	while (start < end) {
 		cache16_unroll32(start,Hit_Invalidate_I);
 		start += 0x200;
 	}
@@ -208,7 +225,7 @@
 	unsigned long start = page;
 	unsigned long end = (start + PAGE_SIZE);
 
-	while(start < end) {
+	while (start < end) {
 		cache16_unroll32(start,Index_Invalidate_I);
 		start += 0x200;
 	}
@@ -219,7 +236,7 @@
 	unsigned long start = KSEG0;
 	unsigned long end = KSEG0 + scache_size;
 
-	while(start < end) {
+	while (start < end) {
 		cache16_unroll32(start,Index_Writeback_Inv_SD);
 		start += 0x200;
 	}
@@ -230,7 +247,7 @@
 	unsigned long start = page;
 	unsigned long end = page + PAGE_SIZE;
 
-	while(start < end) {
+	while (start < end) {
 		cache16_unroll32(start,Hit_Writeback_Inv_SD);
 		start += 0x200;
 	}
@@ -241,7 +258,7 @@
 	unsigned long start = page;
 	unsigned long end = page + PAGE_SIZE;
 
-	while(start < end) {
+	while (start < end) {
 		cache16_unroll32(start,Index_Writeback_Inv_SD);
 		start += 0x200;
 	}
@@ -250,6 +267,7 @@
 #define cache32_unroll32(base,op)				\
 	__asm__ __volatile__("					\
 		.set noreorder;					\
+		.set mips3;					\
 		cache %1, 0x000(%0); cache %1, 0x020(%0);	\
 		cache %1, 0x040(%0); cache %1, 0x060(%0);	\
 		cache %1, 0x080(%0); cache %1, 0x0a0(%0);	\
@@ -266,6 +284,7 @@
 		cache %1, 0x340(%0); cache %1, 0x360(%0);	\
 		cache %1, 0x380(%0); cache %1, 0x3a0(%0);	\
 		cache %1, 0x3c0(%0); cache %1, 0x3e0(%0);	\
+		.set mips0;					\
 		.set reorder"					\
 		:						\
 		: "r" (base),					\
@@ -276,12 +295,26 @@
 	unsigned long start = KSEG0;
 	unsigned long end = (start + dcache_size);
 
-	while(start < end) {
+	while (start < end) {
 		cache32_unroll32(start,Index_Writeback_Inv_D);
 		start += 0x400;
 	}
 }
 
+static inline void blast_dcache32_wayLSB(void)
+{
+	unsigned long start = KSEG0;
+	unsigned long end = (start + mips_cpu.dcache.sets * mips_cpu.dcache.linesz);
+	int way;
+
+	while (start < end) {
+		/* LSB of VA select the way */
+		for (way = 0; way < mips_cpu.dcache.ways; way++)
+			cache32_unroll32(start|way,Index_Writeback_Inv_D);
+		start += 0x400;
+	}
+}
+
 /*
  * Call this function only with interrupts disabled or R4600 V2.0 may blow
  * up on you.
@@ -305,7 +338,7 @@
 	*(volatile unsigned long *)KSEG1;
 
 	__asm__ __volatile__("nop;nop;nop;nop");
-	while(start < end) {
+	while (start < end) {
 		cache32_unroll32(start,Hit_Writeback_Inv_D);
 		start += 0x400;
 	}
@@ -316,29 +349,57 @@
 	unsigned long start = page;
 	unsigned long end = (start + PAGE_SIZE);
 
-	while(start < end) {
+	while (start < end) {
 		cache32_unroll32(start,Index_Writeback_Inv_D);
 		start += 0x400;
 	}
 }
 
+static inline void blast_dcache32_page_indexed_wayLSB(unsigned long page)
+{
+	unsigned long start = page;
+	unsigned long end = (start + PAGE_SIZE);
+	int way;
+
+	while (start < end) {
+		/* LSB of VA select the way */
+		for (way = 0; way < mips_cpu.dcache.ways; way++)
+			cache32_unroll32(start|way,Index_Writeback_Inv_D);
+		start += 0x400;
+	}
+}
+
 static inline void blast_icache32(void)
 {
 	unsigned long start = KSEG0;
 	unsigned long end = (start + icache_size);
 
-	while(start < end) {
+	while (start < end) {
 		cache32_unroll32(start,Index_Invalidate_I);
 		start += 0x400;
 	}
 }
 
+static inline void blast_icache32_wayLSB(void)
+{
+	unsigned long start = KSEG0;
+	unsigned long end = (start + mips_cpu.icache.sets * mips_cpu.icache.linesz);
+	int way;
+
+	while (start < end) {
+		/* LSB of VA select the way */
+		for (way = 0; way < mips_cpu.icache.ways; way++)
+			cache32_unroll32(start|way,Index_Invalidate_I);
+		start += 0x400;
+	}
+}
+
 static inline void blast_icache32_page(unsigned long page)
 {
 	unsigned long start = page;
 	unsigned long end = (start + PAGE_SIZE);
 
-	while(start < end) {
+	while (start < end) {
 		cache32_unroll32(start,Hit_Invalidate_I);
 		start += 0x400;
 	}
@@ -349,7 +410,7 @@
 	unsigned long start = page;
 	unsigned long end = (start + PAGE_SIZE);
 
-	while(start < end) {
+	while (start < end) {
 		cache32_unroll32(start,Index_Invalidate_I);
 		start += 0x400;
 	}
@@ -360,7 +421,7 @@
 	unsigned long start = KSEG0;
 	unsigned long end = KSEG0 + scache_size;
 
-	while(start < end) {
+	while (start < end) {
 		cache32_unroll32(start,Index_Writeback_Inv_SD);
 		start += 0x400;
 	}
@@ -371,7 +432,7 @@
 	unsigned long start = page;
 	unsigned long end = page + PAGE_SIZE;
 
-	while(start < end) {
+	while (start < end) {
 		cache32_unroll32(start,Hit_Writeback_Inv_SD);
 		start += 0x400;
 	}
@@ -382,7 +443,7 @@
 	unsigned long start = page;
 	unsigned long end = page + PAGE_SIZE;
 
-	while(start < end) {
+	while (start < end) {
 		cache32_unroll32(start,Index_Writeback_Inv_SD);
 		start += 0x400;
 	}
@@ -391,6 +452,7 @@
 #define cache64_unroll32(base,op)				\
 	__asm__ __volatile__("					\
 		.set noreorder;					\
+		.set mips3;					\
 		cache %1, 0x000(%0); cache %1, 0x040(%0);	\
 		cache %1, 0x080(%0); cache %1, 0x0c0(%0);	\
 		cache %1, 0x100(%0); cache %1, 0x140(%0);	\
@@ -407,6 +469,7 @@
 		cache %1, 0x680(%0); cache %1, 0x6c0(%0);	\
 		cache %1, 0x700(%0); cache %1, 0x740(%0);	\
 		cache %1, 0x780(%0); cache %1, 0x7c0(%0);	\
+		.set mips0;					\
 		.set reorder"					\
 		:						\
 		: "r" (base),					\
@@ -417,7 +480,7 @@
 	unsigned long start = KSEG0;
 	unsigned long end = KSEG0 + scache_size;
 
-	while(start < end) {
+	while (start < end) {
 		cache64_unroll32(start,Index_Writeback_Inv_SD);
 		start += 0x800;
 	}
@@ -428,7 +491,7 @@
 	unsigned long start = page;
 	unsigned long end = page + PAGE_SIZE;
 
-	while(start < end) {
+	while (start < end) {
 		cache64_unroll32(start,Hit_Writeback_Inv_SD);
 		start += 0x800;
 	}
@@ -439,7 +502,7 @@
 	unsigned long start = page;
 	unsigned long end = page + PAGE_SIZE;
 
-	while(start < end) {
+	while (start < end) {
 		cache64_unroll32(start,Index_Writeback_Inv_SD);
 		start += 0x800;
 	}
@@ -448,6 +511,7 @@
 #define cache128_unroll32(base,op)				\
 	__asm__ __volatile__("					\
 		.set noreorder;					\
+		.set mips3;					\
 		cache %1, 0x000(%0); cache %1, 0x080(%0);	\
 		cache %1, 0x100(%0); cache %1, 0x180(%0);	\
 		cache %1, 0x200(%0); cache %1, 0x280(%0);	\
@@ -464,6 +528,7 @@
 		cache %1, 0xd00(%0); cache %1, 0xd80(%0);	\
 		cache %1, 0xe00(%0); cache %1, 0xe80(%0);	\
 		cache %1, 0xf00(%0); cache %1, 0xf80(%0);	\
+		.set mips0;					\
 		.set reorder"					\
 		:						\
 		: "r" (base),					\
@@ -474,7 +539,7 @@
 	unsigned long start = KSEG0;
 	unsigned long end = KSEG0 + scache_size;
 
-	while(start < end) {
+	while (start < end) {
 		cache128_unroll32(start,Index_Writeback_Inv_SD);
 		start += 0x1000;
 	}
diff -urNd -urNd linux-2.4.20/include/asm-mips64/r4kcacheops.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/r4kcacheops.h
--- linux-2.4.20/include/asm-mips64/r4kcacheops.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/r4kcacheops.h	1969-12-31 18:00:00.000000000 -0600
@@ -1,48 +0,0 @@
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Cache operations for the cache instruction.
- *
- * (C) Copyright 1996, 1997, 1999 by Ralf Baechle
- */
-#ifndef	_ASM_R4kCACHEOPS_H
-#define	_ASM_R4kCACHEOPS_H
-
-/*
- * Cache Operations
- */
-#define Index_Invalidate_I      0x00
-#define Index_Writeback_Inv_D   0x01
-#define Index_Invalidate_SI     0x02
-#define Index_Writeback_Inv_SD  0x03
-#define Index_Load_Tag_I	0x04
-#define Index_Load_Tag_D	0x05
-#define Index_Load_Tag_SI	0x06
-#define Index_Load_Tag_SD	0x07
-#define Index_Store_Tag_I	0x08
-#define Index_Store_Tag_D	0x09
-#define Index_Store_Tag_SI	0x0A
-#define Index_Store_Tag_SD	0x0B
-#define Create_Dirty_Excl_D	0x0d
-#define Create_Dirty_Excl_SD	0x0f
-#define Hit_Invalidate_I	0x10
-#define Hit_Invalidate_D	0x11
-#define Hit_Invalidate_SI	0x12
-#define Hit_Invalidate_SD	0x13
-#define Fill			0x14
-#define Hit_Writeback_Inv_D	0x15
-					/* 0x16 is unused */
-#define Hit_Writeback_Inv_SD	0x17
-#define R5K_Page_Invalidate_S	0x17
-#define Hit_Writeback_I		0x18
-#define Hit_Writeback_D		0x19
-					/* 0x1a is unused */
-#define Hit_Writeback_SD	0x1b
-					/* 0x1c is unused */
-					/* 0x1e is unused */
-#define Hit_Set_Virtual_SI	0x1e
-#define Hit_Set_Virtual_SD	0x1f
-
-#endif	/* _ASM_R4kCACHEOPS_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/reg.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/reg.h
--- linux-2.4.20/include/asm-mips64/reg.h	2000-02-25 00:53:35.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/reg.h	2002-09-17 21:48:05.000000000 -0500
@@ -17,51 +17,51 @@
  * if the order here is changed, it needs to be updated in
  * include/asm-mips/stackframe.h
  */
-#define EF_REG0			8
-#define EF_REG1			9
-#define EF_REG2			10
-#define EF_REG3			11
-#define EF_REG4			12
-#define EF_REG5			13
-#define EF_REG6			14
-#define EF_REG7			15
-#define EF_REG8			16
-#define EF_REG9			17
-#define EF_REG10		18
-#define EF_REG11		19
-#define EF_REG12		20
-#define EF_REG13		21
-#define EF_REG14		22
-#define EF_REG15		23
-#define EF_REG16		24
-#define EF_REG17		25
-#define EF_REG18		26
-#define EF_REG19		27
-#define EF_REG20		28
-#define EF_REG21		29
-#define EF_REG22		30
-#define EF_REG23		31
-#define EF_REG24		32
-#define EF_REG25		33
+#define EF_REG0			 0
+#define EF_REG1			 1
+#define EF_REG2			 2
+#define EF_REG3			 3
+#define EF_REG4			 4
+#define EF_REG5			 5
+#define EF_REG6			 6
+#define EF_REG7			 7
+#define EF_REG8			 8
+#define EF_REG9			 9
+#define EF_REG10		10
+#define EF_REG11		11
+#define EF_REG12		12
+#define EF_REG13		13
+#define EF_REG14		14
+#define EF_REG15		15
+#define EF_REG16		16
+#define EF_REG17		17
+#define EF_REG18		18
+#define EF_REG19		19
+#define EF_REG20		20
+#define EF_REG21		21
+#define EF_REG22		22
+#define EF_REG23		23
+#define EF_REG24		24
+#define EF_REG25		25
 /*
  * k0/k1 unsaved
  */
-#define EF_REG28		36
-#define EF_REG29		37
-#define EF_REG30		38
-#define EF_REG31		39
+#define EF_REG28		28
+#define EF_REG29		29
+#define EF_REG30		30
+#define EF_REG31		31
 
 /*
  * Saved special registers
  */
-#define EF_LO			40
-#define EF_HI			41
+#define EF_LO			32
+#define EF_HI			33
 
-#define EF_CP0_EPC		42
-#define EF_CP0_BADVADDR		43
-#define EF_CP0_STATUS		44
-#define EF_CP0_CAUSE		45
+#define EF_CP0_EPC		34
+#define EF_CP0_BADVADDR		35
+#define EF_CP0_STATUS		36
+#define EF_CP0_CAUSE		37
 
-#define EF_SIZE			368	/* size in bytes */
+#define EF_SIZE			304	/* size in bytes */
 
 #endif /* _ASM_REG_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/scatterlist.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/scatterlist.h
--- linux-2.4.20/include/asm-mips64/scatterlist.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/scatterlist.h	2002-09-28 13:51:41.000000000 -0500
@@ -10,13 +10,6 @@
 	unsigned long length;
 };
 
-struct mmu_sglist {
-	char *addr;
-	char *__dont_touch;
-	unsigned long len;
-	dma_addr_t dvma_addr;
-};
-
 #define ISA_DMA_THRESHOLD (0x00ffffff)
 
 #endif /* __ASM_SCATTERLIST_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/semaphore-helper.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/semaphore-helper.h
--- linux-2.4.20/include/asm-mips64/semaphore-helper.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/semaphore-helper.h	2002-11-14 22:20:34.000000000 -0600
@@ -3,12 +3,14 @@
  *
  * (C) Copyright 1996 Linus Torvalds
  * (C) Copyright 1999 Andrea Arcangeli
- * (C) Copyright 1999, 2001 Ralf Baechle
+ * (C) Copyright 1999, 2001, 2002 Ralf Baechle
  * (C) Copyright 1999, 2001 Silicon Graphics, Inc.
  */
 #ifndef _ASM_SEMAPHORE_HELPER_H
 #define _ASM_SEMAPHORE_HELPER_H
 
+#include <linux/errno.h>
+
 /*
  * These two _must_ execute atomically wrt each other.
  */
@@ -64,8 +66,6 @@
 {
 	long ret, tmp;
 
-#ifdef __MIPSEB__
-
         __asm__ __volatile__(
 	".set\tpush\t\t\t# waking_non_zero_interruptible\n\t"
 	".set\tnoat\n\t"
@@ -86,38 +86,6 @@
 	: "=&r" (ret), "=&r" (tmp), "=m" (*sem)
 	: "r" (signal_pending(tsk)), "i" (-EINTR));
 
-#elif defined(__MIPSEL__)
-
-	__asm__ __volatile__(
-	".set\tpush\t\t\t# waking_non_zero_interruptible\n\t"
-	".set\t	noat\n"
-	"0:\tlld\t%1, %2\n\t"
-	"li\t%0, 0\n\t"
-	"blez\t%1, 1f\n\t"
-	"dli\t$1, 0x0000000100000000\n\t"
-	"dsubu\t%1, %1, $1\n\t"
-	"li\t%0, 1\n\t"
-	"b\t2f\n"
-	"1:\tbeqz\t%3, 2f\n\t"
-	"li\t%0, %4\n\t"
-	/*
-	 * It would be nice to assume that sem->count
-	 * is != -1, but we will guard against that case
-	 */
-	"daddiu\t$1, %1, 1\n\t"
-	"dsll32\t$1, $1, 0\n\t"
-	"dsrl32\t$1, $1, 0\n\t"
-	"dsrl32\t%1, %1, 0\n\t"
-	"dsll32\t%1, %1, 0\n\t"
-	"or\t%1, %1, $1\n"
-	"2:\tscd\t%1, %2\n\t"
-	"beqz\t	%1, 0b\n\t"
-	".set\tpop"
-	: "=&r" (ret), "=&r" (tmp), "=m" (*sem)
-	: "r" (signal_pending(tsk)), "i" (-EINTR));
-
-#endif
-
 	return ret;
 }
 
diff -urNd -urNd linux-2.4.20/include/asm-mips64/serial.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/serial.h
--- linux-2.4.20/include/asm-mips64/serial.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/serial.h	2002-11-06 19:47:46.000000000 -0600
@@ -109,18 +109,18 @@
 #endif
 
 #define IP32_SERIAL_PORT_DEFNS				\
-        { baud_base: BASE_BAUD,				\
-	  irq: MACEISA_SERIAL1_IRQ,			\
-          flags: STD_COM_FLAGS,				\
-          iomem_base: (u8*)MACE_BASE+MACEISA_SER1_BASE,	\
-          iomem_reg_shift: 8,				\
-          io_type: SERIAL_IO_MEM},                      \
-        { baud_base: BASE_BAUD,				\
-	  irq: MACEISA_SERIAL2_IRQ,			\
-          flags: STD_COM_FLAGS,				\
-          iomem_base: (u8*)MACE_BASE+MACEISA_SER2_BASE,	\
-          iomem_reg_shift: 8,				\
-          io_type: SERIAL_IO_MEM},
+        { .baud_base = BASE_BAUD,				\
+	  .irq = MACEISA_SERIAL1_IRQ,			\
+          .flags = STD_COM_FLAGS,				\
+          .iomem_base = (u8*)MACE_BASE+MACEISA_SER1_BASE,	\
+          .iomem_reg_shift = 8,				\
+          .io_type = SERIAL_IO_MEM},                      \
+        { .baud_base = BASE_BAUD,				\
+	  .irq = MACEISA_SERIAL2_IRQ,			\
+          .flags = STD_COM_FLAGS,				\
+          .iomem_base = (u8*)MACE_BASE+MACEISA_SER2_BASE,	\
+          .iomem_reg_shift = 8,				\
+          .io_type = SERIAL_IO_MEM},
 #else
 #define IP32_SERIAL_PORT_DEFNS
 #endif /* CONFIG_SGI_IP31 */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sgi/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips64/sgi/CVS/Entries
--- linux-2.4.20/include/asm-mips64/sgi/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sgi/CVS/Entries	2005-01-06 23:06:54.000000000 -0600
@@ -0,0 +1,7 @@
+/io.h/1.2/Mon Jul  9 00:25:38 2001/-ko/Tlinux_2_4_20
+/sgi.h/1.3/Mon Jul  9 00:25:38 2001/-ko/Tlinux_2_4_20
+/sgigio.h/1.1.2.3/Thu Jan  9 13:25:37 2003/-ko/Tlinux_2_4_20
+/sgihpc.h/1.4.2.3/Mon Aug  5 23:53:40 2002/-ko/Tlinux_2_4_20
+/sgimc.h/1.3.2.1/Tue Jan 28 05:36:27 2003/-ko/Tlinux_2_4_20
+/sgint23.h/1.6.2.3/Mon Aug  5 23:53:40 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sgi/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips64/sgi/CVS/Repository
--- linux-2.4.20/include/asm-mips64/sgi/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sgi/CVS/Repository	2005-01-06 23:06:54.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-mips64/sgi
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sgi/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips64/sgi/CVS/Root
--- linux-2.4.20/include/asm-mips64/sgi/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sgi/CVS/Root	2005-01-06 23:06:54.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sgi/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips64/sgi/CVS/Tag
--- linux-2.4.20/include/asm-mips64/sgi/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sgi/CVS/Tag	2005-01-06 23:06:54.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sgi/sgigio.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sgi/sgigio.h
--- linux-2.4.20/include/asm-mips64/sgi/sgigio.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sgi/sgigio.h	2003-01-09 07:25:37.000000000 -0600
@@ -12,6 +12,11 @@
 #define _ASM_SGI_SGIGIO_H
 
 /*
+ * GIO bus addresses
+ *
+ * The Indigo and Indy have two GIO bus connectors. Indigo2 (all models) have
+ * three physical connectors, but only two slots, GFX and EXP0.
+ * 
  * There is 10MB of GIO address space for GIO64 slot devices
  * slot#   slot type address range            size
  * -----   --------- ----------------------- -----
@@ -26,44 +31,56 @@
  * Following space is reserved and unused
  *   -     RESERVED  0x18000000 - 0x1effffff 112MB
  *
- * The GIO specification tends to use slot numbers while the MC specification
- * tends to use slot types.
+ * GIO bus IDs
+ *
+ * Each GIO bus device identifies itself to the system by answering a
+ * read with an "ID" value. IDs are either 8 or 32 bits long. IDs less
+ * than 128 are 8 bits long, with the most significant 24 bits read from
+ * the slot undefined.
+ *
+ * 32-bit IDs are divided into
+ *	bits 0:6        the product ID; ranges from 0x00 to 0x7F.
+ *	bit 7		0=GIO Product ID is 8 bits wide
+ *			1=GIO Product ID is 32 bits wide.
+ *	bits 8:15       manufacturer version for the product.
+ *	bit 16		0=GIO32 and GIO32-bis, 1=GIO64.
+ *	bit 17		0=no ROM present
+ *			1=ROM present on this board AND next three words
+ *			space define the ROM.
+ *	bits 18:31	up to manufacturer.
+ *
+ * IDs above 0x50/0xd0 are of 3rd party boards.
+ *
+ * 8-bit IDs
+ *	0x01		XPI low cost FDDI
+ *	0x02		GTR TokenRing
+ *	0x04		Synchronous ISDN
+ *	0x05		ATM board [*]
+ *	0x06		Canon Interface
+ *	0x07		16 bit SCSI Card [*]
+ *	0x08		JPEG (Double Wide)
+ *	0x09		JPEG (Single Wide)
+ *	0x0a		XPI mez. FDDI device 0
+ *	0x0b		XPI mez. FDDI device 1
+ *	0x0c		SMPTE 259M Video [*]
+ *	0x0d		Babblefish Compression [*]
+ *	0x0e		E-Plex 8-port Ethernet
+ *	0x30		Lyon Lamb IVAS
+ *	0xb8		GIO 100BaseTX Fast Ethernet (gfe)
+ *
+ * [*] Device provide 32-bit ID.
  *
- * slot0  - the "graphics" (GFX) slot but there is no requirement that
- *          a graphics dev may only use this slot
- * slot1  - this is the "expansion"-slot 0 (EXP0), do not confuse with
- *          slot 0 (GFX).
- * slot2  - this is the "expansion"-slot 1 (EXP1), do not confuse with
- *          slot 1 (EXP0).
  */
 
-#define GIO_SLOT_GFX	0
-#define GIO_SLOT_GIO1	1
-#define GIO_SLOT_GIO2	2
-#define GIO_NUM_SLOTS	3
-
-#define GIO_ANY_ID	0xff
-
-#define GIO_VALID_ID_ONLY	0x01
-#define GIO_IFACE_64		0x02
-#define GIO_HAS_ROM		0x04
-
-struct gio_dev {
-	unsigned char	device;
-	unsigned char	revision;
-	unsigned short	vendor;
-	unsigned char	flags;
-
-	unsigned char	slot_number;
-	unsigned long	base_addr;
-	unsigned int	map_size;
-
-	char		*name;
-	char		slot_name[5];
-};
-
-extern struct gio_dev* gio_find_device(unsigned char device, const struct gio_dev *from);
+#define GIO_ID(x)		(x & 0x7f)
+#define GIO_32BIT_ID		0x80
+#define GIO_REV(x)		((x >> 8) & 0xff)
+#define GIO_64BIT_IFACE		0x10000
+#define GIO_ROM_PRESENT		0x20000
+#define GIO_VENDOR_CODE(x)	((x >> 18) & 0x3fff)
 
-extern void sgigio_init(void);
+#define GIO_SLOT_GFX_BASE	0x1f000000
+#define GIO_SLOT_EXP0_BASE	0x1f400000
+#define GIO_SLOT_EXP1_BASE	0x1f600000
 
 #endif /* _ASM_SGI_SGIGIO_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sgi/sgimc.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sgi/sgimc.h
--- linux-2.4.20/include/asm-mips64/sgi/sgimc.h	2001-09-09 12:43:02.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sgi/sgimc.h	2003-01-27 23:36:27.000000000 -0600
@@ -125,13 +125,30 @@
 
 	/* Error address/status regs from GIO and CPU perspectives. */
 	u32 _unused21;
-	volatile u32 cerr;         /* Error address reg for CPU */
+	volatile u32 cerr;	/* Error address reg for CPU */
 	u32 _unused22;
-	volatile u32 cstat;        /* Status reg for CPU */
+	volatile u32 cstat;	/* Status reg for CPU */
+#define SGIMC_CSTAT_RD		0x00000100 /* read parity error */
+#define SGIMC_CSTAT_PAR		0x00000200 /* CPU parity error */
+#define SGIMC_CSTAT_ADDR	0x00000400 /* memory bus error bad addr */
+#define SGIMC_CSTAT_SYSAD_PAR	0x00000800 /* sysad parity error */
+#define SGIMC_CSTAT_SYSCMD_PAR	0x00001000 /* syscmd parity error */
+#define SGIMC_CSTAT_BAD_DATA	0x00002000 /* bad data identifier */
+#define SGIMC_CSTAT_PAR_MASK	0x00001f00 /* parity error mask */
+#define SGIMC_CSTAT_RD_PAR	(SGIMC_CSTAT_RD | SGIMC_CSTAT_PAR)
+
 	u32 _unused23;
-	volatile u32 gerr;         /* Error address reg for GIO */
+	volatile u32 gerr;	/* Error address reg for GIO */
 	u32 _unused24;
-	volatile u32 gstat;        /* Status reg for GIO */
+	volatile u32 gstat;	/* Status reg for GIO */
+#define SGIMC_GSTAT_RD		0x00000100 /* read parity error */
+#define SGIMC_GSTAT_WR		0x00000200 /* write parity error */
+#define SGIMC_GSTAT_TIME	0x00000400 /* GIO bus timed out */
+#define SGIMC_GSTAT_PROM	0x00000800 /* write to PROM when PROM_EN not set */
+#define SGIMC_GSTAT_ADDR	0x00001000 /* parity error on addr cycle */
+#define SGIMC_GSTAT_BC		0x00002000 /* parity error on byte count cycle */
+#define SGIMC_GSTAT_PIO_RD	0x00004000 /* read data parity on pio */
+#define SGIMC_GSTAT_PIO_WR	0x00008000 /* write data parity on pio */
 
 	/* Special hard bus locking registers. */
 	u32 _unused25;
@@ -199,7 +216,7 @@
 	u32 _unused7;
 	volatile u32 dmamode;     /* DMA mode config bit settings */
 	u32 _unused8;
-	volatile u32 dmacount;    /* Zoom and byte count for DMA */
+	volatile u32 dmaccount;    /* Zoom and byte count for DMA */
 	u32 _unused9;
 	volatile u32 dmastart;    /* Pedal to the metal. */
 	u32 _unused10;
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/64bit.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/64bit.h
--- linux-2.4.20/include/asm-mips64/sibyte/64bit.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/64bit.h	2003-02-19 15:06:52.000000000 -0600
@@ -32,47 +32,57 @@
  * without having access to 64-bit registers...  which doesn't work by default
  * in o32 format...grrr...
  */
+static inline void __out64(u64 val, unsigned long addr)
+{
+	u64 tmp;
+
+	__asm__ __volatile__ (
+		"	.set	mips3				\n"
+		"	dsll32	%L0, %L0, 0	# __out64	\n"
+		"	dsrl32	%L0, %L0, 0			\n"
+		"	dsll32	%M0, %M0, 0			\n"
+		"	or	%L0, %L0, %M0			\n"
+		"	sd	%L0, (%2)			\n"
+		"	.set	mips0				\n"
+		: "=r" (tmp)
+		: "0" (val), "r" (addr));
+}
+
 static inline void out64(u64 val, unsigned long addr)
 {
-	u32 low, high;
 	unsigned long flags;
-	high = val >> 32;
-	low = val & 0xffffffff;
-	// save_flags(flags);
-	__save_and_cli(flags);
+
+	local_irq_save(flags);
+	__out64(val, addr);
+	local_irq_restore(flags);
+}
+
+static inline u64 __in64(unsigned long addr)
+{
+	u64 res;
+
 	__asm__ __volatile__ (
-		".set push\n"
-		".set noreorder\n"
-		".set noat\n"
-		".set mips4\n"
-		"   dsll32 $2, %1, 0   \n"
-		"   dsll32 $1, %0, 0   \n"
-		"   dsrl32 $2, $2, 0   \n"
-		"   or     $1, $1, $2  \n"
-		"   sd $1, (%2)\n"
-		".set pop\n"
-		::"r" (high), "r" (low), "r" (addr)
-		:"$1", "$2");
-	__restore_flags(flags);
+		"	.set	mips3		# __in64	\n"
+		"	ld	%L0, (%1)			\n"
+		"	dsra32	%M0, %L0, 0			\n"
+		"	sll	%L0, %L0, 0			\n"
+		"	.set	mips0				\n"
+		: "=r" (res)
+		: "r" (addr));
+
+	return res;
 }
 
 static inline u64 in64(unsigned long addr)
 {
-	u32 low, high;
 	unsigned long flags;
-	__save_and_cli(flags);
-	__asm__ __volatile__ (
-		".set push\n"
-		".set noreorder\n"
-		".set noat     \n"
-		".set mips4    \n"
-		"  ld     %1, (%2)\n"
-		"  dsra32 %0, %1, 0\n"
-		"  sll    %1, %1, 0\n"
-		".set pop\n"
-		:"=r" (high), "=r" (low): "r" (addr));
-	__restore_flags(flags);
-	return (((u64)high) << 32) | low;
+	u64 res;
+
+	local_irq_save(flags);
+	res = __in64(addr);
+	local_irq_restore(flags);
+
+	return res;
 }
 
 #endif /* CONFIG_MIPS32 */
@@ -93,6 +103,9 @@
 	return *(volatile unsigned long *)addr;
 }
 
+#define __in64(a)	in64(a)
+#define __out64(v,a)	out64(v,a)
+
 #endif /* CONFIG_MIPS64 */
 
 /*
@@ -106,7 +119,7 @@
 #define __CSR_32_ADJUST 0
 #endif
 
-#define csr_out32(v,a) (*(u32 *)((unsigned long)(a) + __CSR_32_ADJUST) = (v))
-#define csr_in32(a)    (*(u32 *)((unsigned long)(a) + __CSR_32_ADJUST))
+#define csr_out32(v,a) (*(volatile u32 *)((unsigned long)(a) + __CSR_32_ADJUST) = (v))
+#define csr_in32(a)    (*(volatile u32 *)((unsigned long)(a) + __CSR_32_ADJUST))
 
 #endif /* __ASM_SIBYTE_64BIT_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/board.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/board.h
--- linux-2.4.20/include/asm-mips64/sibyte/board.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/board.h	2003-01-21 23:11:39.000000000 -0600
@@ -19,10 +19,50 @@
 #ifndef _SIBYTE_BOARD_H
 #define _SIBYTE_BOARD_H
 
-#if defined(CONFIG_SIBYTE_PTSWARM) || defined(CONFIG_SIBYTE_SWARM)
+#ifdef CONFIG_SIBYTE_BOARD
+
+#if defined(CONFIG_SIBYTE_SWARM) || defined(CONFIG_SIBYTE_PTSWARM) || \
+    defined(CONFIG_SIBYTE_CRHONE) || defined(CONFIG_SIBYTE_CRHINE)
 #include <asm/sibyte/swarm.h>
 #endif
 
+#if defined(CONFIG_SIBYTE_SENTOSA) || defined(CONFIG_SIBYTE_RHONE)
+#include <asm/sibyte/sentosa.h>
+#endif
+
+#ifdef CONFIG_SIBYTE_CARMEL
+#include <asm/sibyte/carmel.h>
 #endif
 
+#ifdef __ASSEMBLY__
+
+#ifdef LEDS_PHYS
+#define setleds(t0,t1,c0,c1,c2,c3) \
+	li	t0, (LEDS_PHYS|0xa0000000); \
+	li	t1, c0; \
+	sb	t1, 0x18(t0); \
+	li	t1, c1; \
+	sb	t1, 0x10(t0); \
+	li	t1, c2; \
+	sb	t1, 0x08(t0); \
+	li	t1, c3; \
+	sb	t1, 0x00(t0)
+#else
+#define setleds(t0,t1,c0,c1,c2,c3)
+#endif /* LEDS_PHYS */
+
+#else
 
+void swarm_setup(void);
+
+#ifdef LEDS_PHYS
+extern void setleds(char *str);
+#else
+#define setleds(s) do { } while (0)
+#endif /* LEDS_PHYS */
+
+#endif /* __ASSEMBLY__ */
+
+#endif /* CONFIG_SIBYTE_BOARD */
+
+#endif /* _SIBYTE_BOARD_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/carmel.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/carmel.h
--- linux-2.4.20/include/asm-mips64/sibyte/carmel.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/carmel.h	2003-01-21 23:11:39.000000000 -0600
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2002 Broadcom Corporation
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+#ifndef __ASM_SIBYTE_CARMEL_H
+#define __ASM_SIBYTE_CARMEL_H
+
+#include <asm/sibyte/sb1250.h>
+#include <asm/sibyte/sb1250_int.h>
+
+#define SIBYTE_BOARD_NAME "Carmel"
+
+#define GPIO_PHY_INTERRUPT      2 
+#define GPIO_NONMASKABLE_INT    3 
+#define GPIO_CF_INSERTED        6 
+#define GPIO_MONTEREY_RESET     7 
+#define GPIO_QUADUART_INT       8 
+#define GPIO_CF_INT             9 
+#define GPIO_FPGA_CCLK          10
+#define GPIO_FPGA_DOUT          11
+#define GPIO_FPGA_DIN           12
+#define GPIO_FPGA_PGM           13
+#define GPIO_FPGA_DONE          14
+#define GPIO_FPGA_INIT          15
+
+#define LEDS_CS                 2
+#define LEDS_PHYS               0x100C0000
+#define MLEDS_CS                3
+#define MLEDS_PHYS              0x100A0000
+#define UART_CS                 4
+#define UART_PHYS               0x100D0000
+#define ARAVALI_CS              5
+#define ARAVALI_PHYS            0x11000000
+#define IDE_CS                  6
+#define IDE_PHYS                0x100B0000
+#define ARAVALI2_CS             7
+#define ARAVALI2_PHYS           0x100E0000
+
+#if defined(CONFIG_SIBYTE_CARMEL)
+#define K_GPIO_GB_IDE   9
+#define K_INT_GB_IDE    (K_INT_GPIO_0 + K_GPIO_GB_IDE)
+#endif
+
+
+#endif /* __ASM_SIBYTE_CARMEL_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/CVS/Entries
--- linux-2.4.20/include/asm-mips64/sibyte/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/CVS/Entries	2005-01-06 23:06:54.000000000 -0600
@@ -0,0 +1,22 @@
+/64bit.h/1.1.2.6/Wed Feb 19 21:06:52 2003/-ko/Tlinux_2_4_20
+/board.h/1.1.2.3/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
+/carmel.h/1.1.2.1/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
+/io.h/1.1.2.2/Thu Oct  3 00:00:55 2002/-ko/Tlinux_2_4_20
+/sb1250.h/1.1.2.7/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
+/sb1250_defs.h/1.1.2.5/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
+/sb1250_dma.h/1.1.2.3/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
+/sb1250_genbus.h/1.1.2.4/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
+/sb1250_int.h/1.1.2.3/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
+/sb1250_l2c.h/1.1.2.3/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
+/sb1250_ldt.h/1.1.2.3/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
+/sb1250_mac.h/1.1.2.3/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
+/sb1250_mc.h/1.1.2.3/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
+/sb1250_regs.h/1.1.2.3/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
+/sb1250_scd.h/1.1.2.3/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
+/sb1250_smbus.h/1.1.2.3/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
+/sb1250_syncser.h/1.1.2.4/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
+/sb1250_uart.h/1.1.2.4/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
+/sentosa.h/1.1.2.1/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
+/swarm.h/1.1.2.4/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
+/trace_prof.h/1.1.2.1/Fri Feb  7 22:00:22 2003//Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/CVS/Repository
--- linux-2.4.20/include/asm-mips64/sibyte/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/CVS/Repository	2005-01-06 23:06:54.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-mips64/sibyte
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/CVS/Root
--- linux-2.4.20/include/asm-mips64/sibyte/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/CVS/Root	2005-01-06 23:06:54.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/CVS/Tag
--- linux-2.4.20/include/asm-mips64/sibyte/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/CVS/Tag	2005-01-06 23:06:54.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/io.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/io.h
--- linux-2.4.20/include/asm-mips64/sibyte/io.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/io.h	2002-10-02 19:00:55.000000000 -0500
@@ -6,8 +6,8 @@
  * Copyright (C) 2000 Ralf Baechle
  * Copyright (C) 2000 Silicon Graphics, Inc.
  */
-#ifndef _ASM_SGI_IO_H
-#define _ASM_SGI_IO_H
+#ifndef _ASM_SIBYTE_IO_H
+#define _ASM_SIBYTE_IO_H
 
 #include <asm/addrspace.h>
 
@@ -18,4 +18,4 @@
 
 /* XXX ISA specific functions go here here.  */
 
-#endif /* _ASM_SGI_IO_H */
+#endif /* _ASM_SIBYTE_IO_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/sb1250_defs.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_defs.h
--- linux-2.4.20/include/asm-mips64/sibyte/sb1250_defs.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_defs.h	2003-01-21 23:11:39.000000000 -0600
@@ -1,23 +1,23 @@
 /*  *********************************************************************
     *  SB1250 Board Support Package
-    *
-    *  Global constants and macros		File: sb1250_defs.h
-    *
+    *  
+    *  Global constants and macros		File: sb1250_defs.h	
+    *  
     *  This file contains macros and definitions used by the other
     *  include files.
     *
     *  SB1250 specification level:  User's manual 1/02/02
-    *
+    *  
     *  Author:  Mitch Lichtenberg (mpl@broadcom.com)
+    *  
+    *********************************************************************  
     *
-    *********************************************************************
-    *
-    *  Copyright 2000,2001
+    *  Copyright 2000,2001,2002,2003
     *  Broadcom Corporation. All rights reserved.
-    *
-    *  This program is free software; you can redistribute it and/or
-    *  modify it under the terms of the GNU General Public License as
-    *  published by the Free Software Foundation; either version 2 of
+    *  
+    *  This program is free software; you can redistribute it and/or 
+    *  modify it under the terms of the GNU General Public License as 
+    *  published by the Free Software Foundation; either version 2 of 
     *  the License, or (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
@@ -27,38 +27,154 @@
     *
     *  You should have received a copy of the GNU General Public License
     *  along with this program; if not, write to the Free Software
-    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
     *  MA 02111-1307 USA
     ********************************************************************* */
 
+#ifndef _SB1250_DEFS_H
+#define _SB1250_DEFS_H
+
+/*
+ * These headers require ANSI C89 string concatenation, and GCC or other
+ * 'long long' (64-bit integer) support.
+ */
+#if !defined(__STDC__) && !defined(_MSC_VER)
+#error SiByte headers require ANSI C89 support
+#endif
+
 
 /*  *********************************************************************
-    *  Naming schemes for constants in these files:
+    *  Macros for feature tests, used to enable include file features
+    *  for chip features only present in certain chip revisions.
     *
-    *  M_xxx           MASK constant (identifies bits in a register).
+    *  SIBYTE_HDR_FEATURES may be defined to be the mask value chip/revision
+    *  which is to be exposed by the headers.  If undefined, it defaults to
+    *  "all features."
+    *
+    *  Use like:
+    *
+    *    #define SIBYTE_HDR_FEATURES	SIBYTE_HDR_FMASK_112x_PASS1
+    *
+    *		Generate defines only for that revision of chip.
+    *
+    *    #if SIBYTE_HDR_FEATURE(chip,pass)
+    *
+    *		True if header features for that revision or later of
+    *	        that particular chip type are enabled in SIBYTE_HDR_FEATURES.
+    *	        (Use this to bracket #defines for features present in a given
+    *		revision and later.)
+    *
+    *		Note that there is no implied ordering between chip types.
+    *
+    *		Note also that 'chip' and 'pass' must textually exactly
+    *		match the defines below.  So, for example,
+    *		SIBYTE_HDR_FEATURE(112x, PASS1) is OK, but
+    *		SIBYTE_HDR_FEATURE(1120, pass1) is not (for two reasons).
+    *
+    *    #if SIBYTE_HDR_FEATURE_UP_TO(chip,pass)
+    *
+    *		Same as SIBYTE_HDR_FEATURE, but true for the named revision
+    *		and earlier revisions of the named chip type.
+    *
+    *    #if SIBYTE_HDR_FEATURE_EXACT(chip,pass)
+    *
+    *		Same as SIBYTE_HDR_FEATURE, but only true for the named
+    *		revision of the named chip type.  (Note that this CANNOT
+    *		be used to verify that you're compiling only for that
+    *		particular chip/revision.  It will be true any time this
+    *		chip/revision is included in SIBYTE_HDR_FEATURES.)
+    *
+    *    #if SIBYTE_HDR_FEATURE_CHIP(chip)
+    *
+    *		True if header features for (any revision of) that chip type
+    *		are enabled in SIBYTE_HDR_FEATURES.  (Use this to bracket
+    *		#defines for features specific to a given chip type.)
+    *
+    *  Mask values currently include room for additional revisions of each
+    *  chip type, but can be renumbered at will.  Note that they MUST fit
+    *  into 31 bits and may not include C type constructs, for safe use in
+    *  CPP conditionals.  Bit positions within chip types DO indicate
+    *  ordering, so be careful when adding support for new minor revs.
+    ********************************************************************* */
+
+#define	SIBYTE_HDR_FMASK_1250_ALL		0x00000ff
+#define	SIBYTE_HDR_FMASK_1250_PASS1		0x0000001
+#define	SIBYTE_HDR_FMASK_1250_PASS2		0x0000002
+
+#define	SIBYTE_HDR_FMASK_112x_ALL		0x0000f00
+#define	SIBYTE_HDR_FMASK_112x_PASS1		0x0000100
+#define SIBYTE_HDR_FMASK_112x_PASS3		0x0000200
+
+/* Bit mask for chip/revision.  (use _ALL for all revisions of a chip).  */ 
+#define	SIBYTE_HDR_FMASK(chip, pass)					\
+    (SIBYTE_HDR_FMASK_ ## chip ## _ ## pass)
+#define	SIBYTE_HDR_FMASK_ALLREVS(chip)					\
+    (SIBYTE_HDR_FMASK_ ## chip ## _ALL)
+
+#define	SIBYTE_HDR_FMASK_ALL						\
+    (SIBYTE_HDR_FMASK_1250_ALL | SIBYTE_HDR_FMASK_112x_ALL)
+
+#ifndef SIBYTE_HDR_FEATURES
+#define	SIBYTE_HDR_FEATURES			SIBYTE_HDR_FMASK_ALL
+#endif
+
+
+/* Bit mask for revisions of chip exclusively before the named revision.  */
+#define	SIBYTE_HDR_FMASK_BEFORE(chip, pass)				\
+    ((SIBYTE_HDR_FMASK(chip, pass) - 1) & SIBYTE_HDR_FMASK_ALLREVS(chip))
+
+/* Bit mask for revisions of chip exclusively after the named revision.  */
+#define	SIBYTE_HDR_FMASK_AFTER(chip, pass)				\
+    (~(SIBYTE_HDR_FMASK(chip, pass)					\
+     | (SIBYTE_HDR_FMASK(chip, pass) - 1)) & SIBYTE_HDR_FMASK_ALLREVS(chip))
+
+
+/* True if header features enabled for (any revision of) that chip type.  */
+#define SIBYTE_HDR_FEATURE_CHIP(chip)					\
+    (!! (SIBYTE_HDR_FMASK_ALLREVS(chip) & SIBYTE_HDR_FEATURES))
+
+/* True if header features enabled for that rev or later, inclusive.  */
+#define SIBYTE_HDR_FEATURE(chip, pass)					\
+    (!! ((SIBYTE_HDR_FMASK(chip, pass)					\
+	  | SIBYTE_HDR_FMASK_AFTER(chip, pass)) & SIBYTE_HDR_FEATURES))
+
+/* True if header features enabled for exactly that rev.  */
+#define SIBYTE_HDR_FEATURE_EXACT(chip, pass)				\
+    (!! (SIBYTE_HDR_FMASK(chip, pass) & SIBYTE_HDR_FEATURES))
+
+/* True if header features enabled for that rev or before, inclusive.  */
+#define SIBYTE_HDR_FEATURE_UP_TO(chip, pass)				\
+    (!! ((SIBYTE_HDR_FMASK(chip, pass)					\
+	 | SIBYTE_HDR_FMASK_BEFORE(chip, pass)) & SIBYTE_HDR_FEATURES))
+
+
+/*  *********************************************************************
+    *  Naming schemes for constants in these files:
+    *  
+    *  M_xxx           MASK constant (identifies bits in a register). 
     *                  For multi-bit fields, all bits in the field will
     *                  be set.
     *
     *  K_xxx           "Code" constant (value for data in a multi-bit
     *                  field).  The value is right justified.
     *
-    *  V_xxx           "Value" constant.  This is the same as the
+    *  V_xxx           "Value" constant.  This is the same as the 
     *                  corresponding "K_xxx" constant, except it is
     *                  shifted to the correct position in the register.
     *
     *  S_xxx           SHIFT constant.  This is the number of bits that
-    *                  a field value (code) needs to be shifted
+    *                  a field value (code) needs to be shifted 
     *                  (towards the left) to put the value in the right
     *                  position for the register.
     *
-    *  A_xxx           ADDRESS constant.  This will be a physical
+    *  A_xxx           ADDRESS constant.  This will be a physical 
     *                  address.  Use the PHYS_TO_K1 macro to generate
     *                  a K1SEG address.
     *
     *  R_xxx           RELATIVE offset constant.  This is an offset from
     *                  an A_xxx constant (usually the first register in
     *                  a group).
-    *
+    *  
     *  G_xxx(X)        GET value.  This macro obtains a multi-bit field
     *                  from a register, masks it, and shifts it to
     *                  the bottom of the register (retrieving a K_xxx
@@ -72,17 +188,14 @@
 
 
 
-#ifndef _SB1250_DEFS_H
-#define _SB1250_DEFS_H
-
 /*
- * Cast to 64-bit number.  Presumably the syntax is different in
+ * Cast to 64-bit number.  Presumably the syntax is different in 
  * assembly language.
  *
  * Note: you'll need to define uint32_t and uint64_t in your headers.
  */
 
-#if !defined(__ASSEMBLY__)
+#if !defined(__ASSEMBLER__)
 #define _SB_MAKE64(x) ((uint64_t)(x))
 #define _SB_MAKE32(x) ((uint32_t)(x))
 #else
@@ -121,9 +234,9 @@
  */
 
 
-#if !defined(__ASSEMBLY__)
+#if !defined(__ASSEMBLER__)
 #define SBWRITECSR(csr,val) *((volatile uint64_t *) PHYS_TO_K1(csr)) = (val)
 #define SBREADCSR(csr) (*((volatile uint64_t *) PHYS_TO_K1(csr)))
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #endif
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/sb1250_dma.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_dma.h
--- linux-2.4.20/include/asm-mips64/sibyte/sb1250_dma.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_dma.h	2003-01-21 23:11:39.000000000 -0600
@@ -1,24 +1,24 @@
 /*  *********************************************************************
     *  SB1250 Board Support Package
-    *
+    *  
     *  DMA definitions				File: sb1250_dma.h
-    *
+    *  
     *  This module contains constants and macros useful for
     *  programming the SB1250's DMA controllers, both the data mover
     *  and the Ethernet DMA.
-    *
+    *  
     *  SB1250 specification level:  User's manual 1/02/02
-    *
+    *  
     *  Author:  Mitch Lichtenberg (mpl@broadcom.com)
+    *  
+    *********************************************************************  
     *
-    *********************************************************************
-    *
-    *  Copyright 2000,2001
+    *  Copyright 2000,2001,2002,2003
     *  Broadcom Corporation. All rights reserved.
-    *
-    *  This program is free software; you can redistribute it and/or
-    *  modify it under the terms of the GNU General Public License as
-    *  published by the Free Software Foundation; either version 2 of
+    *  
+    *  This program is free software; you can redistribute it and/or 
+    *  modify it under the terms of the GNU General Public License as 
+    *  published by the Free Software Foundation; either version 2 of 
     *  the License, or (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
@@ -28,7 +28,7 @@
     *
     *  You should have received a copy of the GNU General Public License
     *  along with this program; if not, write to the Free Software
-    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
     *  MA 02111-1307 USA
     ********************************************************************* */
 
@@ -43,9 +43,9 @@
     *  DMA Registers
     ********************************************************************* */
 
-/*
+/* 
  * Ethernet and Serial DMA Configuration Register 0  (Table 7-4)
- * Registers: DMA_CONFIG0_MAC_x_RX_CH_0
+ * Registers: DMA_CONFIG0_MAC_x_RX_CH_0 
  * Registers: DMA_CONFIG0_MAC_x_TX_CH_0
  * Registers: DMA_CONFIG0_SER_x_RX
  * Registers: DMA_CONFIG0_SER_x_TX
@@ -53,8 +53,23 @@
 
 
 #define M_DMA_DROP                  _SB_MAKEMASK1(0)
+
 #define M_DMA_CHAIN_SEL             _SB_MAKEMASK1(1)
 #define M_DMA_RESERVED1             _SB_MAKEMASK1(2)
+
+#define S_DMA_DESC_TYPE		    _SB_MAKE64(1)
+#define M_DMA_DESC_TYPE		    _SB_MAKE64(2,S_DMA_DESC_TYPE)
+#define V_DMA_DESC_TYPE(x)          _SB_MAKEVALUE(x,S_DMA_DESC_TYPE)
+#define G_DMA_DESC_TYPE(x)          _SB_GETVALUE(x,S_DMA_DESC_TYPE,M_DMA_DESC_TYPE)
+
+#define K_DMA_DESC_TYPE_RING_AL		0
+#define K_DMA_DESC_TYPE_CHAIN_AL	1
+
+#if SIBYTE_HDR_FEATURE(112x, PASS3)
+#define K_DMA_DESC_TYPE_RING_UAL_WI	2
+#define K_DMA_DESC_TYPE_RING_UAL_RMW	3
+#endif
+
 #define M_DMA_EOP_INT_EN            _SB_MAKEMASK1(3)
 #define M_DMA_HWM_INT_EN            _SB_MAKEMASK1(4)
 #define M_DMA_LWM_INT_EN            _SB_MAKEMASK1(5)
@@ -82,8 +97,8 @@
 #define G_DMA_LOW_WATERMARK(x)      _SB_GETVALUE(x,S_DMA_LOW_WATERMARK,M_DMA_LOW_WATERMARK)
 
 /*
- * Ethernet and Serial DMA Configuration Register 2 (Table 7-5)
- * Registers: DMA_CONFIG1_MAC_x_RX_CH_0
+ * Ethernet and Serial DMA Configuration Register 1 (Table 7-5)
+ * Registers: DMA_CONFIG1_MAC_x_RX_CH_0 
  * Registers: DMA_CONFIG1_DMA_x_TX_CH_0
  * Registers: DMA_CONFIG1_SER_x_RX
  * Registers: DMA_CONFIG1_SER_x_TX
@@ -96,6 +111,12 @@
 #define M_DMA_NO_DSCR_UPDT          _SB_MAKEMASK1(4)
 #define M_DMA_L2CA		    _SB_MAKEMASK1(5)
 
+#if SIBYTE_HDR_FEATURE(112x, PASS3)
+#define M_DMA_RX_XTRA_STATUS	    _SB_MAKEMASK1(6)
+#define M_DMA_TX_CPU_PAUSE	    _SB_MAKEMASK1(6)
+#define M_DMA_TX_FC_PAUSE_EN	    _SB_MAKEMASK1(7)
+#endif
+
 #define M_DMA_MBZ1                  _SB_MAKEMASK(6,15)
 
 #define S_DMA_HDR_SIZE              _SB_MAKE64(21)
@@ -131,19 +152,36 @@
 /*
  * DMA Descriptor Count Registers (Table 7-8)
  */
-
+ 
 /* No bitfields */
 
 
-/*
+/* 
  * Current Descriptor Address Register (Table 7-11)
  */
 
 #define S_DMA_CURDSCR_ADDR          _SB_MAKE64(0)
 #define M_DMA_CURDSCR_ADDR          _SB_MAKEMASK(40,S_DMA_CURDSCR_ADDR)
-#define S_DMA_CURDSCR_COUNT         _SB_MAKE64(48)
+#define S_DMA_CURDSCR_COUNT         _SB_MAKE64(40)
 #define M_DMA_CURDSCR_COUNT         _SB_MAKEMASK(16,S_DMA_CURDSCR_COUNT)
 
+#if SIBYTE_HDR_FEATURE(112x, PASS3)
+#define M_DMA_TX_CH_PAUSE_ON	    _SB_MAKEMASK1(56)
+#endif
+
+/*
+ * Receive Packet Drop Registers
+ */
+#if SIBYTE_HDR_FEATURE(112x, PASS3)
+#define S_DMA_OODLOST_RX           _SB_MAKE64(0)
+#define M_DMA_OODLOST_RX           _SB_MAKEMASK(16,S_DMA_OODLOST_RX)
+#define G_DMA_OODLOST_RX(x)        _SB_GETVALUE(x,S_DMA_OODLOST_RX,M_DMA_OODLOST_RX)
+
+#define S_DMA_EOP_COUNT_RX         _SB_MAKE64(16)
+#define M_DMA_EOP_COUNT_RX         _SB_MAKEMASK(8,S_DMA_EOP_COUNT_RX)
+#define G_DMA_EOP_COUNT_RX(x)      _SB_GETVALUE(x,S_DMA_EOP_COUNT_RX,M_DMA_EOP_COUNT_RX)
+#endif
+
 /*  *********************************************************************
     *  DMA Descriptors
     ********************************************************************* */
@@ -154,6 +192,8 @@
 
 #define S_DMA_DSCRA_OFFSET          _SB_MAKE64(0)
 #define M_DMA_DSCRA_OFFSET          _SB_MAKEMASK(5,S_DMA_DSCRA_OFFSET)
+#define V_DMA_DSCRA_OFFSET(x)       _SB_MAKEVALUE(x,S_DMA_DSCRA_OFFSET)
+#define G_DMA_DSCRA_OFFSET(x)       _SB_GETVALUE(x,S_DMA_DSCRA_OFFSET,M_DMA_DSCRA_OFFSET)
 
 /* Note: Don't shift the address over, just mask it with the mask below */
 #define S_DMA_DSCRA_A_ADDR          _SB_MAKE64(5)
@@ -161,11 +201,22 @@
 
 #define M_DMA_DSCRA_A_ADDR_OFFSET   (M_DMA_DSCRA_OFFSET | M_DMA_DSCRA_A_ADDR)
 
+#if SIBYTE_HDR_FEATURE(112x, PASS3)
+#define S_DMA_DSCRA_A_ADDR_UA        _SB_MAKE64(0)
+#define M_DMA_DSCRA_A_ADDR_UA        _SB_MAKEMASK(40,S_DMA_DSCRA_A_ADDR_UA)
+#endif
+
 #define S_DMA_DSCRA_A_SIZE          _SB_MAKE64(40)
 #define M_DMA_DSCRA_A_SIZE          _SB_MAKEMASK(9,S_DMA_DSCRA_A_SIZE)
 #define V_DMA_DSCRA_A_SIZE(x)       _SB_MAKEVALUE(x,S_DMA_DSCRA_A_SIZE)
 #define G_DMA_DSCRA_A_SIZE(x)       _SB_GETVALUE(x,S_DMA_DSCRA_A_SIZE,M_DMA_DSCRA_A_SIZE)
 
+#if SIBYTE_HDR_FEATURE(112x, PASS3)
+#define S_DMA_DSCRA_DSCR_CNT	    _SB_MAKE64(40)
+#define M_DMA_DSCRA_DSCR_CNT	    _SB_MAKEMASK(8,S_DMA_DSCRA_DSCR_CNT)
+#define G_DMA_DSCRA_DSCR_CNT(x)	    _SB_GETVALUE(x,S_DMA_DSCRA_DSCR_CNT,M_DMA_DSCRA_DSCR_CNT)
+#endif
+
 #define M_DMA_DSCRA_INTERRUPT       _SB_MAKEMASK1(49)
 #define M_DMA_DSCRA_OFFSETB	    _SB_MAKEMASK1(50)
 
@@ -184,6 +235,13 @@
 #define V_DMA_DSCRB_OPTIONS(x)      _SB_MAKEVALUE(x,S_DMA_DSCRB_OPTIONS)
 #define G_DMA_DSCRB_OPTIONS(x)      _SB_GETVALUE(x,S_DMA_DSCRB_OPTIONS,M_DMA_DSCRB_OPTIONS)
 
+#if SIBYTE_HDR_FEATURE(112x, PASS3)
+#define S_DMA_DSCRB_A_SIZE        _SB_MAKE64(8)
+#define M_DMA_DSCRB_A_SIZE        _SB_MAKEMASK(14,S_DMA_DSCRB_A_SIZE)
+#define V_DMA_DSCRB_A_SIZE(x)     _SB_MAKEVALUE(x,S_DMA_DSCRB_A_SIZE)
+#define G_DMA_DSCRB_A_SIZE(x)     _SB_GETVALUE(x,S_DMA_DSCRB_A_SIZE,M_DMA_DSCRB_A_SIZE)
+#endif
+
 #define R_DMA_DSCRB_ADDR            _SB_MAKE64(0x10)
 
 /* Note: Don't shift the address over, just mask it with the mask below */
@@ -197,20 +255,42 @@
 
 #define M_DMA_DSCRB_B_VALID         _SB_MAKEMASK1(49)
 
+#if SIBYTE_HDR_FEATURE(112x, PASS3)
+#define S_DMA_DSCRB_PKT_SIZE_MSB    _SB_MAKE64(48)
+#define M_DMA_DSCRB_PKT_SIZE_MSB    _SB_MAKEMASK(2,S_DMA_DSCRB_PKT_SIZE_MSB)
+#define V_DMA_DSCRB_PKT_SIZE_MSB(x) _SB_MAKEVALUE(x,S_DMA_DSCRB_PKT_SIZE_MSB)
+#define G_DMA_DSCRB_PKT_SIZE_MSB(x) _SB_GETVALUE(x,S_DMA_DSCRB_PKT_SIZE_MSB,M_DMA_DSCRB_PKT_SIZE_MSB)
+#endif
+
 #define S_DMA_DSCRB_PKT_SIZE        _SB_MAKE64(50)
 #define M_DMA_DSCRB_PKT_SIZE        _SB_MAKEMASK(14,S_DMA_DSCRB_PKT_SIZE)
 #define V_DMA_DSCRB_PKT_SIZE(x)     _SB_MAKEVALUE(x,S_DMA_DSCRB_PKT_SIZE)
 #define G_DMA_DSCRB_PKT_SIZE(x)     _SB_GETVALUE(x,S_DMA_DSCRB_PKT_SIZE,M_DMA_DSCRB_PKT_SIZE)
 
 /*
+ * from pass2 some bits in dscr_b are also used for rx status
+ */
+#define S_DMA_DSCRB_STATUS          _SB_MAKE64(0)
+#define M_DMA_DSCRB_STATUS          _SB_MAKEMASK(1,S_DMA_DSCRB_STATUS)
+#define V_DMA_DSCRB_STATUS(x)       _SB_MAKEVALUE(x,S_DMA_DSCRB_STATUS)
+#define G_DMA_DSCRB_STATUS(x)       _SB_GETVALUE(x,S_DMA_DSCRB_STATUS,M_DMA_DSCRB_STATUS)
+
+/* 
  * Ethernet Descriptor Status Bits (Table 7-15)
  */
 
 #define M_DMA_ETHRX_BADIP4CS        _SB_MAKEMASK1(51)
 #define M_DMA_ETHRX_DSCRERR	    _SB_MAKEMASK1(52)
 
-/* Note: BADTCPCS is actually in DSCR_A */
-#define M_DMA_ETHRX_BADTCPCS	_SB_MAKEMASK1(0)	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1) 
+/* Note: BADTCPCS is actually in DSCR_B options field */
+#define M_DMA_ETHRX_BADTCPCS	_SB_MAKEMASK1(0)
+#endif /* 1250 PASS2 || 112x PASS1 */
+
+#if SIBYTE_HDR_FEATURE(112x, PASS3)
+#define M_DMA_ETH_VLAN_FLAG	_SB_MAKEMASK1(1)
+#define M_DMA_ETH_CRC_FLAG	_SB_MAKEMASK1(2)
+#endif
 
 #define S_DMA_ETHRX_RXCH            53
 #define M_DMA_ETHRX_RXCH            _SB_MAKEMASK(2,S_DMA_ETHRX_RXCH)
@@ -231,8 +311,8 @@
 #define K_DMA_ETHRX_PKTTYPE_USER2   6
 #define K_DMA_ETHRX_PKTTYPE_USER3   7
 
-#define M_DMA_ETHRX_MATCH_EXACT     _SB_MAKEMASK1(58)
-#define M_DMA_ETHRX_MATCH_HASH      _SB_MAKEMASK1(59)
+#define M_DMA_ETHRX_MATCH_HASH      _SB_MAKEMASK1(58)
+#define M_DMA_ETHRX_MATCH_EXACT     _SB_MAKEMASK1(59)
 #define M_DMA_ETHRX_BCAST           _SB_MAKEMASK1(60)
 #define M_DMA_ETHRX_MCAST           _SB_MAKEMASK1(61)
 #define M_DMA_ETHRX_BAD	            _SB_MAKEMASK1(62)
@@ -244,7 +324,7 @@
 
 #define M_DMA_ETHTX_SOP	    	    _SB_MAKEMASK1(63)
 
-/*
+/* 
  * Ethernet Transmit Options (Table 7-17)
  */
 
@@ -297,7 +377,7 @@
     *  Data Mover Registers
     ********************************************************************* */
 
-/*
+/* 
  * Data Mover Descriptor Base Address Register (Table 7-22)
  * Register: DM_DSCR_BASE_0
  * Register: DM_DSCR_BASE_1
@@ -334,7 +414,7 @@
 #define M_DM_DSCR_BASE_ABORT        _SB_MAKEMASK1(62)
 #define M_DM_DSCR_BASE_ENABL        _SB_MAKEMASK1(63)
 
-/*
+/* 
  * Data Mover Descriptor Count Register (Table 7-25)
  */
 
@@ -357,6 +437,83 @@
 #define G_DM_CUR_DSCR_DSCR_COUNT(r) _SB_GETVALUE(r,S_DM_CUR_DSCR_DSCR_COUNT,\
                                      M_DM_CUR_DSCR_DSCR_COUNT)
 
+
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+/*
+ * Data Mover Channel Partial Result Registers
+ * Register: DM_PARTIAL_0
+ * Register: DM_PARTIAL_1
+ * Register: DM_PARTIAL_2
+ * Register: DM_PARTIAL_3
+ */
+#define S_DM_PARTIAL_CRC_PARTIAL      _SB_MAKE64(0)
+#define M_DM_PARTIAL_CRC_PARTIAL      _SB_MAKEMASK(32,S_DM_PARTIAL_CRC_PARTIAL)
+#define V_DM_PARTIAL_CRC_PARTIAL(r)   _SB_MAKEVALUE(r,S_DM_PARTIAL_CRC_PARTIAL)
+#define G_DM_PARTIAL_CRC_PARTIAL(r)   _SB_GETVALUE(r,S_DM_PARTIAL_CRC_PARTIAL,\
+                                       M_DM_PARTIAL_CRC_PARTIAL)
+
+#define S_DM_PARTIAL_TCPCS_PARTIAL    _SB_MAKE64(32)
+#define M_DM_PARTIAL_TCPCS_PARTIAL    _SB_MAKEMASK(16,S_DM_PARTIAL_TCPCS_PARTIAL)
+#define V_DM_PARTIAL_TCPCS_PARTIAL(r) _SB_MAKEVALUE(r,S_DM_PARTIAL_TCPCS_PARTIAL)
+#define G_DM_PARTIAL_TCPCS_PARTIAL(r) _SB_GETVALUE(r,S_DM_PARTIAL_TCPCS_PARTIAL,\
+                                       M_DM_PARTIAL_TCPCS_PARTIAL)
+
+#define M_DM_PARTIAL_ODD_BYTE         _SB_MAKEMASK1(48)
+#endif /* 112x PASS1 */
+
+
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+/*
+ * Data Mover CRC Definition Registers
+ * Register: CRC_DEF_0
+ * Register: CRC_DEF_1
+ */
+#define S_CRC_DEF_CRC_INIT            _SB_MAKE64(0)
+#define M_CRC_DEF_CRC_INIT            _SB_MAKEMASK(32,S_CRC_DEF_CRC_INIT)
+#define V_CRC_DEF_CRC_INIT(r)         _SB_MAKEVALUE(r,S_CRC_DEF_CRC_INIT)
+#define G_CRC_DEF_CRC_INIT(r)         _SB_GETVALUE(r,S_CRC_DEF_CRC_INIT,\
+                                       M_CRC_DEF_CRC_INIT)
+
+#define S_CRC_DEF_CRC_POLY            _SB_MAKE64(32)
+#define M_CRC_DEF_CRC_POLY            _SB_MAKEMASK(32,S_CRC_DEF_CRC_POLY)
+#define V_CRC_DEF_CRC_POLY(r)         _SB_MAKEVALUE(r,S_CRC_DEF_CRC_POLY)
+#define G_CRC_DEF_CRC_POLY(r)         _SB_GETVALUE(r,S_CRC_DEF_CRC_POLY,\
+                                       M_CRC_DEF_CRC_POLY)
+#endif /* 112x PASS1 */
+
+
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+/*
+ * Data Mover CRC/Checksum Definition Registers
+ * Register: CTCP_DEF_0
+ * Register: CTCP_DEF_1
+ */
+#define S_CTCP_DEF_CRC_TXOR           _SB_MAKE64(0)
+#define M_CTCP_DEF_CRC_TXOR           _SB_MAKEMASK(32,S_CTCP_DEF_CRC_TXOR)
+#define V_CTCP_DEF_CRC_TXOR(r)        _SB_MAKEVALUE(r,S_CTCP_DEF_CRC_TXOR)
+#define G_CTCP_DEF_CRC_TXOR(r)        _SB_GETVALUE(r,S_CTCP_DEF_CRC_TXOR,\
+                                       M_CTCP_DEF_CRC_TXOR)
+
+#define S_CTCP_DEF_TCPCS_INIT         _SB_MAKE64(32)
+#define M_CTCP_DEF_TCPCS_INIT         _SB_MAKEMASK(16,S_CTCP_DEF_TCPCS_INIT)
+#define V_CTCP_DEF_TCPCS_INIT(r)      _SB_MAKEVALUE(r,S_CTCP_DEF_TCPCS_INIT)
+#define G_CTCP_DEF_TCPCS_INIT(r)      _SB_GETVALUE(r,S_CTCP_DEF_TCPCS_INIT,\
+                                       M_CTCP_DEF_TCPCS_INIT)
+
+#define S_CTCP_DEF_CRC_WIDTH          _SB_MAKE64(48)
+#define M_CTCP_DEF_CRC_WIDTH          _SB_MAKEMASK(2,S_CTCP_DEF_CRC_WIDTH)
+#define V_CTCP_DEF_CRC_WIDTH(r)       _SB_MAKEVALUE(r,S_CTCP_DEF_CRC_WIDTH)
+#define G_CTCP_DEF_CRC_WIDTH(r)       _SB_GETVALUE(r,S_CTCP_DEF_CRC_WIDTH,\
+                                       M_CTCP_DEF_CRC_WIDTH)
+
+#define K_CTCP_DEF_CRC_WIDTH_4        0
+#define K_CTCP_DEF_CRC_WIDTH_2        1
+#define K_CTCP_DEF_CRC_WIDTH_1        2
+
+#define M_CTCP_DEF_CRC_BIT_ORDER      _SB_MAKEMASK1(50)
+#endif /* 112x PASS1 */
+
+
 /*
  * Data Mover Descriptor Doubleword "A"  (Table 7-26)
  */
@@ -367,10 +524,9 @@
 #define M_DM_DSCRA_UN_DEST          _SB_MAKEMASK1(40)
 #define M_DM_DSCRA_UN_SRC           _SB_MAKEMASK1(41)
 #define M_DM_DSCRA_INTERRUPT        _SB_MAKEMASK1(42)
-/*#define M_DM_DSCRA_THROTTLE         _SB_MAKEMASK1(43) */ /* REMOVED PASS2 */
-
-#define M_DM_DSCRA_RD_BKOFF	    _SB_MAKEMASK1(52)		/* PASS2 */
-#define M_DM_DSCRA_WR_BKOFF	    _SB_MAKEMASK1(53)		/* PASS2 */
+#if SIBYTE_HDR_FEATURE_UP_TO(1250, PASS1)
+#define M_DM_DSCRA_THROTTLE         _SB_MAKEMASK1(43)
+#endif /* up to 1250 PASS1 */
 
 #define S_DM_DSCRA_DIR_DEST         _SB_MAKE64(44)
 #define M_DM_DSCRA_DIR_DEST         _SB_MAKEMASK(2,S_DM_DSCRA_DIR_DEST)
@@ -404,7 +560,23 @@
 #define M_DM_DSCRA_L2C_DEST         _SB_MAKEMASK1(50)
 #define M_DM_DSCRA_L2C_SRC          _SB_MAKEMASK1(51)
 
-#define M_DM_DSCRA_RESERVED2        _SB_MAKEMASK(10,54)
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_DM_DSCRA_RD_BKOFF	    _SB_MAKEMASK1(52)
+#define M_DM_DSCRA_WR_BKOFF	    _SB_MAKEMASK1(53)
+#endif /* 1250 PASS2 || 112x PASS1 */
+
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_DM_DSCRA_TCPCS_EN         _SB_MAKEMASK1(54)
+#define M_DM_DSCRA_TCPCS_RES        _SB_MAKEMASK1(55)
+#define M_DM_DSCRA_TCPCS_AP         _SB_MAKEMASK1(56)
+#define M_DM_DSCRA_CRC_EN           _SB_MAKEMASK1(57)
+#define M_DM_DSCRA_CRC_RES          _SB_MAKEMASK1(58)
+#define M_DM_DSCRA_CRC_AP           _SB_MAKEMASK1(59)
+#define M_DM_DSCRA_CRC_DFN          _SB_MAKEMASK1(60)
+#define M_DM_DSCRA_CRC_XBIT         _SB_MAKEMASK1(61)
+#endif /* 112x PASS1 */
+
+#define M_DM_DSCRA_RESERVED2        _SB_MAKEMASK(3,61)
 
 /*
  * Data Mover Descriptor Doubleword "B"  (Table 7-25)
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/sb1250_genbus.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_genbus.h
--- linux-2.4.20/include/asm-mips64/sibyte/sb1250_genbus.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_genbus.h	2003-01-21 23:11:39.000000000 -0600
@@ -1,23 +1,23 @@
 /*  *********************************************************************
     *  SB1250 Board Support Package
-    *
+    *  
     *  Generic Bus Constants                     File: sb1250_genbus.h
-    *
-    *  This module contains constants and macros useful for
+    *  
+    *  This module contains constants and macros useful for 
     *  manipulating the SB1250's Generic Bus interface
-    *
+    *  
     *  SB1250 specification level:  User's manual 1/02/02
-    *
+    *  
     *  Author:  Mitch Lichtenberg (mpl@broadcom.com)
+    *  
+    *********************************************************************  
     *
-    *********************************************************************
-    *
-    *  Copyright 2000,2001
+    *  Copyright 2000,2001,2002,2003
     *  Broadcom Corporation. All rights reserved.
-    *
-    *  This program is free software; you can redistribute it and/or
-    *  modify it under the terms of the GNU General Public License as
-    *  published by the Free Software Foundation; either version 2 of
+    *  
+    *  This program is free software; you can redistribute it and/or 
+    *  modify it under the terms of the GNU General Public License as 
+    *  published by the Free Software Foundation; either version 2 of 
     *  the License, or (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
@@ -27,7 +27,7 @@
     *
     *  You should have received a copy of the GNU General Public License
     *  along with this program; if not, write to the Free Software
-    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
     *  MA 02111-1307 USA
     ********************************************************************* */
 
@@ -41,22 +41,33 @@
  * Generic Bus Region Configuration Registers (Table 11-4)
  */
 
-#define M_IO_RDY_ACTIVE		_SB_MAKEMASK1(0)
-#define M_IO_ENA_RDY		_SB_MAKEMASK1(1)
+#define S_IO_RDY_ACTIVE         0
+#define M_IO_RDY_ACTIVE		_SB_MAKEMASK1(S_IO_RDY_ACTIVE)
+
+#define S_IO_ENA_RDY            1
+#define M_IO_ENA_RDY		_SB_MAKEMASK1(S_IO_ENA_RDY)
 
 #define S_IO_WIDTH_SEL		2
 #define M_IO_WIDTH_SEL		_SB_MAKEMASK(2,S_IO_WIDTH_SEL)
 #define K_IO_WIDTH_SEL_1	0
 #define K_IO_WIDTH_SEL_2	1
-#define K_IO_WIDTH_SEL_1L       2		/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define K_IO_WIDTH_SEL_1L       2
+#endif /* 1250 PASS2 || 112x PASS1 */
 #define K_IO_WIDTH_SEL_4	3
 #define V_IO_WIDTH_SEL(x)	_SB_MAKEVALUE(x,S_IO_WIDTH_SEL)
 #define G_IO_WIDTH_SEL(x)	_SB_GETVALUE(x,S_IO_WIDTH_SEL,M_IO_WIDTH_SEL)
 
-#define M_IO_PARITY_ENA		_SB_MAKEMASK1(4)
-#define M_IO_BURST_EN		_SB_MAKEMASK1(5)	/* PASS2 */
-#define M_IO_PARITY_ODD		_SB_MAKEMASK1(6)
-#define M_IO_NONMUX		_SB_MAKEMASK1(7)
+#define S_IO_PARITY_ENA		4
+#define M_IO_PARITY_ENA		_SB_MAKEMASK1(S_IO_PARITY_ENA)
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define S_IO_BURST_EN		5
+#define M_IO_BURST_EN		_SB_MAKEMASK1(S_IO_BURST_EN)
+#endif /* 1250 PASS2 || 112x PASS1 */
+#define S_IO_PARITY_ODD		6
+#define M_IO_PARITY_ODD		_SB_MAKEMASK1(S_IO_PARITY_ODD)
+#define S_IO_NONMUX		7
+#define M_IO_NONMUX		_SB_MAKEMASK1(S_IO_NONMUX)
 
 #define S_IO_TIMEOUT		8
 #define M_IO_TIMEOUT		_SB_MAKEMASK(8,S_IO_TIMEOUT)
@@ -94,17 +105,21 @@
 #define V_IO_ALE_WIDTH(x)	_SB_MAKEVALUE(x,S_IO_ALE_WIDTH)
 #define G_IO_ALE_WIDTH(x)	_SB_GETVALUE(x,S_IO_ALE_WIDTH,M_IO_ALE_WIDTH)
 
-#define M_IO_EARLY_CS	        _SB_MAKEMASK1(3)	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_IO_EARLY_CS	        _SB_MAKEMASK1(3)
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 #define S_IO_ALE_TO_CS		4
 #define M_IO_ALE_TO_CS		_SB_MAKEMASK(2,S_IO_ALE_TO_CS)
 #define V_IO_ALE_TO_CS(x)	_SB_MAKEVALUE(x,S_IO_ALE_TO_CS)
 #define G_IO_ALE_TO_CS(x)	_SB_GETVALUE(x,S_IO_ALE_TO_CS,M_IO_ALE_TO_CS)
 
-#define S_IO_BURST_WIDTH           _SB_MAKE64(6)			/* PASS2 */
-#define M_IO_BURST_WIDTH           _SB_MAKEMASK(2,S_IO_BURST_WIDTH)	/* PASS2 */
-#define V_IO_BURST_WIDTH(x)        _SB_MAKEVALUE(x,S_IO_BURST_WIDTH)	/* PASS2 */
-#define G_IO_BURST_WIDTH(x)        _SB_GETVALUE(x,S_IO_BURST_WIDTH,M_IO_BURST_WIDTH)	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define S_IO_BURST_WIDTH           _SB_MAKE64(6)
+#define M_IO_BURST_WIDTH           _SB_MAKEMASK(2,S_IO_BURST_WIDTH)
+#define V_IO_BURST_WIDTH(x)        _SB_MAKEVALUE(x,S_IO_BURST_WIDTH)
+#define G_IO_BURST_WIDTH(x)        _SB_GETVALUE(x,S_IO_BURST_WIDTH,M_IO_BURST_WIDTH)
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 #define S_IO_CS_WIDTH		8
 #define M_IO_CS_WIDTH		_SB_MAKEMASK(5,S_IO_CS_WIDTH)
@@ -126,7 +141,9 @@
 #define V_IO_ALE_TO_WRITE(x)	_SB_MAKEVALUE(x,S_IO_ALE_TO_WRITE)
 #define G_IO_ALE_TO_WRITE(x)	_SB_GETVALUE(x,S_IO_ALE_TO_WRITE,M_IO_ALE_TO_WRITE)
 
-#define M_IO_RDY_SYNC	        _SB_MAKEMASK1(3)	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_IO_RDY_SYNC	        _SB_MAKEMASK1(3)
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 #define S_IO_WRITE_WIDTH	4
 #define M_IO_WRITE_WIDTH	_SB_MAKEMASK(4,S_IO_WRITE_WIDTH)
@@ -166,7 +183,9 @@
 #define M_IO_TIMEOUT_INT	_SB_MAKEMASK1(10)
 #define M_IO_ILL_ADDR_INT	_SB_MAKEMASK1(11)
 #define M_IO_MULT_CS_INT	_SB_MAKEMASK1(12)
-#define M_IO_COH_ERR	        _SB_MAKEMASK1(14)	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_IO_COH_ERR	        _SB_MAKEMASK1(14)
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 /*
  * PCMCIA configuration register (Table 12-6)
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/sb1250.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250.h
--- linux-2.4.20/include/asm-mips64/sibyte/sb1250.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250.h	2003-01-21 23:11:39.000000000 -0600
@@ -19,21 +19,32 @@
 #ifndef _ASM_SIBYTE_SB1250_H
 #define _ASM_SIBYTE_SB1250_H
 
+#define SB1250_NR_IRQS 64
+
 #ifndef __ASSEMBLY__
 
 #include <asm/addrspace.h>
 
 /* For revision/pass information */
 #include <asm/sibyte/sb1250_scd.h>
-extern unsigned int sb1250_pass;
+extern unsigned int sb1_pass;
+extern unsigned int soc_pass;
+extern unsigned int soc_type;
 
 extern void sb1250_time_init(void);
 extern unsigned long sb1250_gettimeoffset(void);
 extern void sb1250_mask_irq(int cpu, int irq);
 extern void sb1250_unmask_irq(int cpu, int irq);
 extern void sb1250_smp_finish(void);
-#endif
 
-#define IO_SPACE_BASE KSEG1
+#define AT_spin \
+	__asm__ __volatile__ (		\
+		".set noat\n"		\
+		"li $at, 0\n"		\
+		"1: beqz $at, 1b\n"	\
+		".set at\n"		\
+		)
+
+#endif
 
 #endif
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/sb1250_int.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_int.h
--- linux-2.4.20/include/asm-mips64/sibyte/sb1250_int.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_int.h	2003-01-21 23:11:39.000000000 -0600
@@ -1,23 +1,23 @@
 /*  *********************************************************************
     *  SB1250 Board Support Package
-    *
+    *  
     *  Interrupt Mapper definitions		File: sb1250_int.h
-    *
+    *  
     *  This module contains constants for manipulating the SB1250's
     *  interrupt mapper and definitions for the interrupt sources.
-    *
+    *  
     *  SB1250 specification level:  User's manual 1/02/02
-    *
+    *  
     *  Author:  Mitch Lichtenberg (mpl@broadcom.com)
+    *  
+    *********************************************************************  
     *
-    *********************************************************************
-    *
-    *  Copyright 2000,2001
+    *  Copyright 2000,2001,2002,2003
     *  Broadcom Corporation. All rights reserved.
-    *
-    *  This program is free software; you can redistribute it and/or
-    *  modify it under the terms of the GNU General Public License as
-    *  published by the Free Software Foundation; either version 2 of
+    *  
+    *  This program is free software; you can redistribute it and/or 
+    *  modify it under the terms of the GNU General Public License as 
+    *  published by the Free Software Foundation; either version 2 of 
     *  the License, or (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
@@ -27,7 +27,7 @@
     *
     *  You should have received a copy of the GNU General Public License
     *  along with this program; if not, write to the Free Software
-    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
     *  MA 02111-1307 USA
     ********************************************************************* */
 
@@ -43,7 +43,7 @@
 
 /*
  * Interrupt sources (Table 4-8, UM 0.2)
- *
+ * 
  * First, the interrupt numbers.
  */
 
@@ -77,8 +77,10 @@
 #define K_INT_MBOX_1                27
 #define K_INT_MBOX_2                28
 #define K_INT_MBOX_3                29
-#define K_INT_CYCLE_CP0_INT	    30		/* PASS2 */
-#define K_INT_CYCLE_CP1_INT	    31		/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define K_INT_CYCLE_CP0_INT	    30
+#define K_INT_CYCLE_CP1_INT	    31
+#endif /* 1250 PASS2 || 112x PASS1 */
 #define K_INT_GPIO_0                32
 #define K_INT_GPIO_1                33
 #define K_INT_GPIO_2                34
@@ -108,9 +110,11 @@
 #define K_INT_PCI_INTC              58
 #define K_INT_PCI_INTD              59
 #define K_INT_SPARE_2               60
-#define K_INT_MAC_0_CH1		    61		/* PASS2 */
-#define K_INT_MAC_1_CH1		    62		/* PASS2 */
-#define K_INT_MAC_2_CH1		    63		/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define K_INT_MAC_0_CH1		    61
+#define K_INT_MAC_1_CH1		    62
+#define K_INT_MAC_2_CH1		    63
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 /*
  * Mask values for each interrupt
@@ -146,8 +150,10 @@
 #define M_INT_MBOX_1                _SB_MAKEMASK1(K_INT_MBOX_1)
 #define M_INT_MBOX_2                _SB_MAKEMASK1(K_INT_MBOX_2)
 #define M_INT_MBOX_3                _SB_MAKEMASK1(K_INT_MBOX_3)
-#define M_INT_CYCLE_CP0_INT	    _SB_MAKEMASK1(K_INT_CYCLE_CP0_INT)	/* PASS2 */
-#define M_INT_CYCLE_CP1_INT	    _SB_MAKEMASK1(K_INT_CYCLE_CP1_INT)	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_INT_CYCLE_CP0_INT	    _SB_MAKEMASK1(K_INT_CYCLE_CP0_INT)
+#define M_INT_CYCLE_CP1_INT	    _SB_MAKEMASK1(K_INT_CYCLE_CP1_INT)
+#endif /* 1250 PASS2 || 112x PASS1 */
 #define M_INT_GPIO_0                _SB_MAKEMASK1(K_INT_GPIO_0)
 #define M_INT_GPIO_1                _SB_MAKEMASK1(K_INT_GPIO_1)
 #define M_INT_GPIO_2                _SB_MAKEMASK1(K_INT_GPIO_2)
@@ -177,9 +183,11 @@
 #define M_INT_PCI_INTC              _SB_MAKEMASK1(K_INT_PCI_INTC)
 #define M_INT_PCI_INTD              _SB_MAKEMASK1(K_INT_PCI_INTD)
 #define M_INT_SPARE_2               _SB_MAKEMASK1(K_INT_SPARE_2)
-#define M_INT_MAC_0_CH1		    _SB_MAKEMASK1(K_INT_MAC_0_CH1)	/* PASS2 */
-#define M_INT_MAC_1_CH1		    _SB_MAKEMASK1(K_INT_MAC_1_CH1)	/* PASS2 */
-#define M_INT_MAC_2_CH1		    _SB_MAKEMASK1(K_INT_MAC_2_CH1)	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_INT_MAC_0_CH1		    _SB_MAKEMASK1(K_INT_MAC_0_CH1)
+#define M_INT_MAC_1_CH1		    _SB_MAKEMASK1(K_INT_MAC_1_CH1)
+#define M_INT_MAC_2_CH1		    _SB_MAKEMASK1(K_INT_MAC_2_CH1)
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 /*
  * Interrupt mappings
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/sb1250_l2c.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_l2c.h
--- linux-2.4.20/include/asm-mips64/sibyte/sb1250_l2c.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_l2c.h	2003-01-21 23:11:39.000000000 -0600
@@ -1,23 +1,23 @@
 /*  *********************************************************************
     *  SB1250 Board Support Package
-    *
+    *  
     *  L2 Cache constants and macros		File: sb1250_l2c.h
-    *
+    *  
     *  This module contains constants useful for manipulating the
     *  level 2 cache.
-    *
+    *  
     *  SB1250 specification level:  User's manual 1/02/02
-    *
+    *  
     *  Author:  Mitch Lichtenberg (mpl@broadcom.com)
+    *  
+    *********************************************************************  
     *
-    *********************************************************************
-    *
-    *  Copyright 2000,2001
+    *  Copyright 2000,2001,2002,2003
     *  Broadcom Corporation. All rights reserved.
-    *
-    *  This program is free software; you can redistribute it and/or
-    *  modify it under the terms of the GNU General Public License as
-    *  published by the Free Software Foundation; either version 2 of
+    *  
+    *  This program is free software; you can redistribute it and/or 
+    *  modify it under the terms of the GNU General Public License as 
+    *  published by the Free Software Foundation; either version 2 of 
     *  the License, or (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
@@ -27,7 +27,7 @@
     *
     *  You should have received a copy of the GNU General Public License
     *  along with this program; if not, write to the Free Software
-    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
     *  MA 02111-1307 USA
     ********************************************************************* */
 
@@ -102,4 +102,27 @@
 #define L2C_ENTRIES_PER_WAY       4096
 #define L2C_NUM_WAYS              4
 
+
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+/*
+ * L2 Read Misc. register (A_L2_READ_MISC)
+ */
+#define S_L2C_MISC_NO_WAY		10
+#define M_L2C_MISC_NO_WAY		_SB_MAKEMASK(4,S_L2C_MISC_NO_WAY)
+#define V_L2C_MISC_NO_WAY(x)		_SB_MAKEVALUE(x,S_L2C_MISC_NO_WAY)
+#define G_L2C_MISC_NO_WAY(x)		_SB_GETVALUE(x,S_L2C_MISC_NO_WAY,M_L2C_MISC_NO_WAY)
+
+#define M_L2C_MISC_ECC_CLEANUP_DIS	_SB_MAKEMASK1(9)
+#define M_L2C_MISC_MC_PRIO_LOW		_SB_MAKEMASK1(8)
+#define M_L2C_MISC_SOFT_DISABLE_T	_SB_MAKEMASK1(7)
+#define M_L2C_MISC_SOFT_DISABLE_B	_SB_MAKEMASK1(6)
+#define M_L2C_MISC_SOFT_DISABLE_R	_SB_MAKEMASK1(5)
+#define M_L2C_MISC_SOFT_DISABLE_L	_SB_MAKEMASK1(4)
+#define M_L2C_MISC_SCACHE_DISABLE_T	_SB_MAKEMASK1(3)
+#define M_L2C_MISC_SCACHE_DISABLE_B	_SB_MAKEMASK1(2)
+#define M_L2C_MISC_SCACHE_DISABLE_R	_SB_MAKEMASK1(1)
+#define M_L2C_MISC_SCACHE_DISABLE_L	_SB_MAKEMASK1(0)
+#endif /* 112x PASS1 */
+
+
 #endif
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/sb1250_ldt.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_ldt.h
--- linux-2.4.20/include/asm-mips64/sibyte/sb1250_ldt.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_ldt.h	2003-01-21 23:11:39.000000000 -0600
@@ -1,23 +1,23 @@
 /*  *********************************************************************
     *  SB1250 Board Support Package
-    *
+    *  
     *  LDT constants				File: sb1250_ldt.h
-    *
-    *  This module contains constants and macros to describe
-    *  the LDT interface on the SB1250.
-    *
+    *  
+    *  This module contains constants and macros to describe 
+    *  the LDT interface on the SB1250.  
+    *  
     *  SB1250 specification level:  User's manual 1/02/02
-    *
+    *  
     *  Author:  Mitch Lichtenberg (mpl@broadcom.com)
+    *  
+    *********************************************************************  
     *
-    *********************************************************************
-    *
-    *  Copyright 2000,2001
+    *  Copyright 2000,2001,2002,2003
     *  Broadcom Corporation. All rights reserved.
-    *
-    *  This program is free software; you can redistribute it and/or
-    *  modify it under the terms of the GNU General Public License as
-    *  published by the Free Software Foundation; either version 2 of
+    *  
+    *  This program is free software; you can redistribute it and/or 
+    *  modify it under the terms of the GNU General Public License as 
+    *  published by the Free Software Foundation; either version 2 of 
     *  the License, or (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
@@ -27,7 +27,7 @@
     *
     *  You should have received a copy of the GNU General Public License
     *  along with this program; if not, write to the Free Software
-    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
     *  MA 02111-1307 USA
     ********************************************************************* */
 
@@ -70,7 +70,9 @@
 #define R_LDT_TYPE1_SRIRXNUM	0x0058
 #define R_LDT_TYPE1_ERRSTATUS   0x0068
 #define R_LDT_TYPE1_SRICTRL	0x006C
-#define R_LDT_TYPE1_ADDSTATUS	0x0070		/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define R_LDT_TYPE1_ADDSTATUS	0x0070
+#endif /* 1250 PASS2 || 112x PASS1 */
 #define R_LDT_TYPE1_TXBUFCNT	0x00C8
 #define R_LDT_TYPE1_EXPCRC	0x00DC
 #define R_LDT_TYPE1_RXCRC	0x00F0
@@ -153,14 +155,16 @@
 
 /*
  * LDT Status Register (Table 8-14).  Note that these constants
- * assume you've read the command and status register
+ * assume you've read the command and status register 
  * together (32-bit read at offset 0x04)
  *
  * These bits also apply to the secondary status
  * register (Table 8-15), offset 0x1C
  */
 
-#define M_LDT_STATUS_VGAEN		_SB_MAKEMASK1_32(3)	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_LDT_STATUS_VGAEN		_SB_MAKEMASK1_32(3)
+#endif /* 1250 PASS2 || 112x PASS1 */
 #define M_LDT_STATUS_CAPLIST		_SB_MAKEMASK1_32(20)
 #define M_LDT_STATUS_66MHZCAP		_SB_MAKEMASK1_32(21)
 #define M_LDT_STATUS_RESERVED2		_SB_MAKEMASK1_32(22)
@@ -179,8 +183,8 @@
 #define M_LDT_STATUS_DETPARERR		_SB_MAKEMASK1_32(31)
 
 /*
- * Bridge Control Register (Table 8-16).  Note that these
- * constants assume you've read the register as a 32-bit
+ * Bridge Control Register (Table 8-16).  Note that these 
+ * constants assume you've read the register as a 32-bit 
  * read (offset 0x3C)
  */
 
@@ -281,9 +285,13 @@
 #define M_LDT_SRICMD_SIPREADY		_SB_MAKEMASK1_32(16)
 #define M_LDT_SRICMD_SYNCPTRCTL		_SB_MAKEMASK1_32(17)
 #define M_LDT_SRICMD_REDUCESYNCZERO	_SB_MAKEMASK1_32(18)
-/*#define M_LDT_SRICMD_DISSTARVATIONCNT	_SB_MAKEMASK1_32(19) */ /* PASS1 */
-#define M_LDT_SRICMD_DISMULTTXVLD	_SB_MAKEMASK1_32(19)	/* PASS2 */
-#define M_LDT_SRICMD_EXPENDIAN		_SB_MAKEMASK1_32(26)	/* PASS2 */
+#if SIBYTE_HDR_FEATURE_UP_TO(1250, PASS1)
+#define M_LDT_SRICMD_DISSTARVATIONCNT	_SB_MAKEMASK1_32(19)	/* PASS1 */
+#endif /* up to 1250 PASS1 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_LDT_SRICMD_DISMULTTXVLD	_SB_MAKEMASK1_32(19)
+#define M_LDT_SRICMD_EXPENDIAN		_SB_MAKEMASK1_32(26)
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 
 #define S_LDT_SRICMD_RXMARGIN		20
@@ -402,14 +410,16 @@
 #define V_LDT_TXBUFCNT_RDATA(x)		_SB_MAKEVALUE_32(x,S_LDT_TXBUFCNT_RDATA)
 #define G_LDT_TXBUFCNT_RDATA(x)		_SB_GETVALUE_32(x,S_LDT_TXBUFCNT_RDATA,M_LDT_TXBUFCNT_RDATA)
 
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
 /*
- * Additional Status Register (PASS2)
+ * Additional Status Register
  */
 
 #define S_LDT_ADDSTATUS_TGTDONE		0
 #define M_LDT_ADDSTATUS_TGTDONE		_SB_MAKEMASK_32(8,S_LDT_ADDSTATUS_TGTDONE)
 #define V_LDT_ADDSTATUS_TGTDONE(x)	_SB_MAKEVALUE_32(x,S_LDT_ADDSTATUS_TGTDONE)
 #define G_LDT_ADDSTATUS_TGTDONE(x)	_SB_GETVALUE_32(x,S_LDT_ADDSTATUS_TGTDONE,M_LDT_ADDSTATUS_TGTDONE)
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 #endif
 
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/sb1250_mac.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_mac.h
--- linux-2.4.20/include/asm-mips64/sibyte/sb1250_mac.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_mac.h	2003-01-21 23:11:39.000000000 -0600
@@ -1,23 +1,23 @@
 /*  *********************************************************************
     *  SB1250 Board Support Package
-    *
+    *  
     *  MAC constants and macros			File: sb1250_mac.h
-    *
+    *  
     *  This module contains constants and macros for the SB1250's
     *  ethernet controllers.
-    *
+    *  
     *  SB1250 specification level:  User's manual 1/02/02
-    *
+    *  
     *  Author:  Mitch Lichtenberg (mpl@broadcom.com)
+    *  
+    *********************************************************************  
     *
-    *********************************************************************
-    *
-    *  Copyright 2000,2001
+    *  Copyright 2000,2001,2002,2003
     *  Broadcom Corporation. All rights reserved.
-    *
-    *  This program is free software; you can redistribute it and/or
-    *  modify it under the terms of the GNU General Public License as
-    *  published by the Free Software Foundation; either version 2 of
+    *  
+    *  This program is free software; you can redistribute it and/or 
+    *  modify it under the terms of the GNU General Public License as 
+    *  published by the Free Software Foundation; either version 2 of 
     *  the License, or (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
@@ -27,7 +27,7 @@
     *
     *  You should have received a copy of the GNU General Public License
     *  along with this program; if not, write to the Free Software
-    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
     *  MA 02111-1307 USA
     ********************************************************************* */
 
@@ -128,7 +128,13 @@
 #define M_MAC_BYPASS_16             _SB_MAKEMASK1(42)
 #define M_MAC_BYPASS_FCS_CHK	    _SB_MAKEMASK1(43)
 
-#define M_MAC_RX_CH_SEL_MSB	    _SB_MAKEMASK1(44)		/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_MAC_RX_CH_SEL_MSB	    _SB_MAKEMASK1(44)
+#endif /* 1250 PASS2 || 112x PASS1 */
+
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_MAC_SPLIT_CH_SEL	    _SB_MAKEMASK1(45)
+#endif /* 112x PASS1 */
 
 #define S_MAC_BYPASS_IFG            _SB_MAKE64(46)
 #define M_MAC_BYPASS_IFG            _SB_MAKEMASK(8,S_MAC_BYPASS_IFG)
@@ -200,14 +206,24 @@
  */
 
 #define S_MAC_TX_WR_THRSH           _SB_MAKE64(0)
-/* #define M_MAC_TX_WR_THRSH           _SB_MAKEMASK(6,S_MAC_TX_WR_THRSH) */ /* PASS1 */
-#define M_MAC_TX_WR_THRSH           _SB_MAKEMASK(7,S_MAC_TX_WR_THRSH)	    /* PASS2 */
+#if SIBYTE_HDR_FEATURE_UP_TO(1250, PASS1)
+/* XXX: Can't enable, as it has the same name as a pass2+ define below.  */
+/* #define M_MAC_TX_WR_THRSH           _SB_MAKEMASK(6,S_MAC_TX_WR_THRSH) */
+#endif /* up to 1250 PASS1 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_MAC_TX_WR_THRSH           _SB_MAKEMASK(7,S_MAC_TX_WR_THRSH)
+#endif /* 1250 PASS2 || 112x PASS1 */
 #define V_MAC_TX_WR_THRSH(x)        _SB_MAKEVALUE(x,S_MAC_TX_WR_THRSH)
 #define G_MAC_TX_WR_THRSH(x)        _SB_GETVALUE(x,S_MAC_TX_WR_THRSH,M_MAC_TX_WR_THRSH)
 
 #define S_MAC_TX_RD_THRSH           _SB_MAKE64(8)
-/* #define M_MAC_TX_RD_THRSH           _SB_MAKEMASK(6,S_MAC_TX_RD_THRSH) */ /* PASS1 */
-#define M_MAC_TX_RD_THRSH           _SB_MAKEMASK(7,S_MAC_TX_RD_THRSH)	    /* PASS2 */
+#if SIBYTE_HDR_FEATURE_UP_TO(1250, PASS1)
+/* XXX: Can't enable, as it has the same name as a pass2+ define below.  */
+/* #define M_MAC_TX_RD_THRSH           _SB_MAKEMASK(6,S_MAC_TX_RD_THRSH) */
+#endif /* up to 1250 PASS1 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_MAC_TX_RD_THRSH           _SB_MAKEMASK(7,S_MAC_TX_RD_THRSH)
+#endif /* 1250 PASS2 || 112x PASS1 */
 #define V_MAC_TX_RD_THRSH(x)        _SB_MAKEVALUE(x,S_MAC_TX_RD_THRSH)
 #define G_MAC_TX_RD_THRSH(x)        _SB_GETVALUE(x,S_MAC_TX_RD_THRSH,M_MAC_TX_RD_THRSH)
 
@@ -231,10 +247,12 @@
 #define V_MAC_RX_RL_THRSH(x)        _SB_MAKEVALUE(x,S_MAC_RX_RL_THRSH)
 #define G_MAC_RX_RL_THRSH(x)        _SB_GETVALUE(x,S_MAC_RX_RL_THRSH,M_MAC_RX_RL_THRSH)
 
-#define S_MAC_ENC_FC_THRSH           _SB_MAKE64(56)			/* PASS2 */
-#define M_MAC_ENC_FC_THRSH           _SB_MAKEMASK(6,S_MAC_ENC_FC_THRSH)	/* PASS2 */
-#define V_MAC_ENC_FC_THRSH(x)        _SB_MAKEVALUE(x,S_MAC_ENC_FC_THRSH) /* PASS2 */
-#define G_MAC_ENC_FC_THRSH(x)        _SB_GETVALUE(x,S_MAC_ENC_FC_THRSH,M_MAC_ENC_FC_THRSH) /* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define S_MAC_ENC_FC_THRSH           _SB_MAKE64(56)
+#define M_MAC_ENC_FC_THRSH           _SB_MAKEMASK(6,S_MAC_ENC_FC_THRSH)
+#define V_MAC_ENC_FC_THRSH(x)        _SB_MAKEVALUE(x,S_MAC_ENC_FC_THRSH)
+#define G_MAC_ENC_FC_THRSH(x)        _SB_GETVALUE(x,S_MAC_ENC_FC_THRSH,M_MAC_ENC_FC_THRSH)
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 /*
  * MAC Frame Configuration Registers (Table 9-15)
@@ -243,11 +261,19 @@
  * Register: MAC_FRAME_CFG_2
  */
 
+/* XXXCGD: ??? Unused in pass2? */
 #define S_MAC_IFG_RX                _SB_MAKE64(0)
 #define M_MAC_IFG_RX                _SB_MAKEMASK(6,S_MAC_IFG_RX)
 #define V_MAC_IFG_RX(x)             _SB_MAKEVALUE(x,S_MAC_IFG_RX)
 #define G_MAC_IFG_RX(x)             _SB_GETVALUE(x,S_MAC_IFG_RX,M_MAC_IFG_RX)
 
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+#define S_MAC_PRE_LEN               _SB_MAKE64(0)
+#define M_MAC_PRE_LEN               _SB_MAKEMASK(6,S_MAC_PRE_LEN)
+#define V_MAC_PRE_LEN(x)            _SB_MAKEVALUE(x,S_MAC_PRE_LEN)
+#define G_MAC_PRE_LEN(x)            _SB_GETVALUE(x,S_MAC_PRE_LEN,M_MAC_PRE_LEN)
+#endif /* 112x PASS1 */
+
 #define S_MAC_IFG_TX                _SB_MAKE64(6)
 #define M_MAC_IFG_TX                _SB_MAKEMASK(6,S_MAC_IFG_TX)
 #define V_MAC_IFG_TX(x)             _SB_MAKEVALUE(x,S_MAC_IFG_TX)
@@ -285,7 +311,7 @@
 
 /*
  * These constants are used to configure the fields within the Frame
- * Configuration Register.
+ * Configuration Register.  
  */
 
 #define K_MAC_IFG_RX_10             _SB_MAKE64(0)	/* See table 176, not used */
@@ -320,10 +346,12 @@
 #define V_MAC_SLOT_SIZE_100    V_MAC_SLOT_SIZE(K_MAC_SLOT_SIZE_100)
 #define V_MAC_SLOT_SIZE_1000   V_MAC_SLOT_SIZE(K_MAC_SLOT_SIZE_1000)
 
+#define K_MAC_MIN_FRAMESZ_FIFO      _SB_MAKE64(9)
 #define K_MAC_MIN_FRAMESZ_DEFAULT   _SB_MAKE64(64)
 #define K_MAC_MAX_FRAMESZ_DEFAULT   _SB_MAKE64(1518)
 #define K_MAC_MAX_FRAMESZ_JUMBO     _SB_MAKE64(9216)
 
+#define V_MAC_MIN_FRAMESZ_FIFO      V_MAC_MIN_FRAMESZ(K_MAC_MIN_FRAMESZ_FIFO)
 #define V_MAC_MIN_FRAMESZ_DEFAULT   V_MAC_MIN_FRAMESZ(K_MAC_MIN_FRAMESZ_DEFAULT)
 #define V_MAC_MAX_FRAMESZ_DEFAULT   V_MAC_MAX_FRAMESZ(K_MAC_MAX_FRAMESZ_DEFAULT)
 #define V_MAC_MAX_FRAMESZ_JUMBO     V_MAC_MAX_FRAMESZ(K_MAC_MAX_FRAMESZ_JUMBO)
@@ -335,7 +363,24 @@
  * Register: MAC_VLANTAG_2
  */
 
-/* No bit fields: lower 32 bits of register are the tags */
+#define S_MAC_VLAN_TAG           _SB_MAKE64(0)
+#define M_MAC_VLAN_TAG           _SB_MAKEMASK(32,S_MAC_VLAN_TAG)
+#define V_MAC_VLAN_TAG(x)        _SB_MAKEVALUE(x,S_MAC_VLAN_TAG)
+#define G_MAC_VLAN_TAG(x)        _SB_GETVALUE(x,S_MAC_VLAN_TAG,M_MAC_VLAN_TAG)
+
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+#define S_MAC_TX_PKT_OFFSET      _SB_MAKE64(32)
+#define M_MAC_TX_PKT_OFFSET      _SB_MAKEMASK(8,S_MAC_TX_PKT_OFFSET)
+#define V_MAC_TX_PKT_OFFSET(x)   _SB_MAKEVALUE(x,S_MAC_TX_PKT_OFFSET)
+#define G_MAC_TX_PKT_OFFSET(x)   _SB_GETVALUE(x,S_MAC_TX_PKT_OFFSET,M_MAC_TX_PKT_OFFSET)
+
+#define S_MAC_TX_CRC_OFFSET      _SB_MAKE64(40)
+#define M_MAC_TX_CRC_OFFSET      _SB_MAKEMASK(8,S_MAC_TX_CRC_OFFSET)
+#define V_MAC_TX_CRC_OFFSET(x)   _SB_MAKEVALUE(x,S_MAC_TX_CRC_OFFSET)
+#define G_MAC_TX_CRC_OFFSET(x)   _SB_GETVALUE(x,S_MAC_TX_CRC_OFFSET,M_MAC_TX_CRC_OFFSET)
+
+#define M_MAC_CH_BASE_FC_EN      _SB_MAKEMASK1(48)
+#endif /* 112x PASS1 */
 
 /*
  * MAC Status Registers (Table 9-17)
@@ -348,7 +393,7 @@
  * Register: MAC_INT_MASK_2
  */
 
-/*
+/* 
  * Use these constants to shift the appropriate channel
  * into the CH0 position so the same tests can be used
  * on each channel.
@@ -376,6 +421,25 @@
 #define M_MAC_INT_DSCR              _SB_MAKEMASK1(5)
 #define M_MAC_INT_ERR               _SB_MAKEMASK1(6)
 #define M_MAC_INT_DZERO             _SB_MAKEMASK1(7)	/* only for TX channels */
+#define M_MAC_INT_DROP              _SB_MAKEMASK1(7)	/* only for RX channels */
+
+/*
+ * In the following definitions we use ch (0/1) and txrx (TX=1, RX=0, see
+ * also DMA_TX/DMA_RX in sb_regs.h).
+ */
+#define S_MAC_STATUS_CH_OFFSET(ch,txrx) _SB_MAKE64(((ch) + 2 * (txrx)) * S_MAC_CHANWIDTH)
+
+#define M_MAC_STATUS_CHANNEL(ch,txrx)   _SB_MAKEVALUE(_SB_MAKEMASK(8,0),S_MAC_STATUS_CH_OFFSET(ch,txrx))
+#define M_MAC_STATUS_EOP_COUNT(ch,txrx) _SB_MAKEVALUE(M_MAC_INT_EOP_COUNT,S_MAC_STATUS_CH_OFFSET(ch,txrx))
+#define M_MAC_STATUS_EOP_TIMER(ch,txrx) _SB_MAKEVALUE(M_MAC_INT_EOP_TIMER,S_MAC_STATUS_CH_OFFSET(ch,txrx))
+#define M_MAC_STATUS_EOP_SEEN(ch,txrx)  _SB_MAKEVALUE(M_MAC_INT_EOP_SEEN,S_MAC_STATUS_CH_OFFSET(ch,txrx))
+#define M_MAC_STATUS_HWM(ch,txrx)       _SB_MAKEVALUE(M_MAC_INT_HWM,S_MAC_STATUS_CH_OFFSET(ch,txrx))
+#define M_MAC_STATUS_LWM(ch,txrx)       _SB_MAKEVALUE(M_MAC_INT_LWM,S_MAC_STATUS_CH_OFFSET(ch,txrx))
+#define M_MAC_STATUS_DSCR(ch,txrx)      _SB_MAKEVALUE(M_MAC_INT_DSCR,S_MAC_STATUS_CH_OFFSET(ch,txrx))
+#define M_MAC_STATUS_ERR(ch,txrx)       _SB_MAKEVALUE(M_MAC_INT_ERR,S_MAC_STATUS_CH_OFFSET(ch,txrx))
+#define M_MAC_STATUS_DZERO(ch,txrx)     _SB_MAKEVALUE(M_MAC_INT_DZERO,S_MAC_STATUS_CH_OFFSET(ch,txrx))
+#define M_MAC_STATUS_DROP(ch,txrx)      _SB_MAKEVALUE(M_MAC_INT_DROP,S_MAC_STATUS_CH_OFFSET(ch,txrx))
+#define M_MAC_STATUS_OTHER_ERR          _SB_MAKEVALUE(_SB_MAKEMASK(7,0),40)
 
 
 #define M_MAC_RX_UNDRFL             _SB_MAKEMASK1(40)
@@ -385,13 +449,19 @@
 #define M_MAC_LTCOL_ERR             _SB_MAKEMASK1(44)
 #define M_MAC_EXCOL_ERR             _SB_MAKEMASK1(45)
 #define M_MAC_CNTR_OVRFL_ERR        _SB_MAKEMASK1(46)
-#define M_MAC_SPLIT_EN		    _SB_MAKEMASK1(47) 	/* interrupt mask only */ /* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_MAC_SPLIT_EN		    _SB_MAKEMASK1(47) 	/* interrupt mask only */
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 #define S_MAC_COUNTER_ADDR          _SB_MAKE64(47)
 #define M_MAC_COUNTER_ADDR          _SB_MAKEMASK(5,S_MAC_COUNTER_ADDR)
 #define V_MAC_COUNTER_ADDR(x)       _SB_MAKEVALUE(x,S_MAC_COUNTER_ADDR)
 #define G_MAC_COUNTER_ADDR(x)       _SB_GETVALUE(x,S_MAC_COUNTER_ADDR,M_MAC_COUNTER_ADDR)
 
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_MAC_TX_PAUSE_ON	    _SB_MAKEMASK1(52)
+#endif /* 112x PASS1 */
+
 /*
  * MAC Fifo Pointer Registers (Table 9-19)    [Debug register]
  * Register: MAC_FIFO_PTRS_0
@@ -446,6 +516,15 @@
 /* No bitfields */
 
 /*
+ * MAC Receive Address Filter Mask Registers
+ * Registers: MAC_ADDRMASK0_0 and MAC_ADDRMASK0_1
+ * Registers: MAC_ADDRMASK1_0 and MAC_ADDRMASK1_1
+ * Registers: MAC_ADDRMASK2_0 and MAC_ADDRMASK2_1
+ */
+
+/* No bitfields */
+
+/*
  * MAC Recieve Address Filter Hash Match Registers (Table 9-22)
  * Registers: MAC_HASH0_0 through MAC_HASH7_0
  * Registers: MAC_HASH0_1 through MAC_HASH7_1
@@ -506,13 +585,35 @@
 #define M_MAC_MCAST_INV         _SB_MAKEMASK1(4)
 #define M_MAC_BCAST_EN          _SB_MAKEMASK1(5)
 #define M_MAC_DIRECT_INV        _SB_MAKEMASK1(6)
-#define M_MAC_ALLMCAST_EN	_SB_MAKEMASK1(7)	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_MAC_ALLMCAST_EN	_SB_MAKEMASK1(7)
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 #define S_MAC_IPHDR_OFFSET      _SB_MAKE64(8)
 #define M_MAC_IPHDR_OFFSET      _SB_MAKEMASK(8,S_MAC_IPHDR_OFFSET)
 #define V_MAC_IPHDR_OFFSET(x)	_SB_MAKEVALUE(x,S_MAC_IPHDR_OFFSET)
 #define G_MAC_IPHDR_OFFSET(x)	_SB_GETVALUE(x,S_MAC_IPHDR_OFFSET,M_MAC_IPHDR_OFFSET)
 
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+#define S_MAC_RX_CRC_OFFSET     _SB_MAKE64(16)
+#define M_MAC_RX_CRC_OFFSET     _SB_MAKEMASK(8,S_MAC_RX_CRC_OFFSET)
+#define V_MAC_RX_CRC_OFFSET(x)	_SB_MAKEVALUE(x,S_MAC_RX_CRC_OFFSET)
+#define G_MAC_RX_CRC_OFFSET(x)	_SB_GETVALUE(x,S_MAC_RX_CRC_OFFSET,M_MAC_RX_CRC_OFFSET)
+
+#define S_MAC_RX_PKT_OFFSET     _SB_MAKE64(24)
+#define M_MAC_RX_PKT_OFFSET     _SB_MAKEMASK(8,S_MAC_RX_PKT_OFFSET)
+#define V_MAC_RX_PKT_OFFSET(x)	_SB_MAKEVALUE(x,S_MAC_RX_PKT_OFFSET)
+#define G_MAC_RX_PKT_OFFSET(x)	_SB_GETVALUE(x,S_MAC_RX_PKT_OFFSET,M_MAC_RX_PKT_OFFSET)
+
+#define M_MAC_FWDPAUSE_EN	_SB_MAKEMASK1(32)
+#define M_MAC_VLAN_DET_EN	_SB_MAKEMASK1(33)
+
+#define S_MAC_RX_CH_MSN_SEL     _SB_MAKE64(34)
+#define M_MAC_RX_CH_MSN_SEL     _SB_MAKEMASK(8,S_MAC_RX_CH_MSN_SEL)
+#define V_MAC_RX_CH_MSN_SEL(x)	_SB_MAKEVALUE(x,S_MAC_RX_CH_MSN_SEL)
+#define G_MAC_RX_CH_MSN_SEL(x)	_SB_GETVALUE(x,S_MAC_RX_CH_MSN_SEL,M_MAC_RX_CH_MSN_SEL)
+#endif /* 112x PASS1 */
+
 /*
  * MAC Receive Channel Select Registers (Table 9-25)
  */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/sb1250_mc.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_mc.h
--- linux-2.4.20/include/asm-mips64/sibyte/sb1250_mc.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_mc.h	2003-01-21 23:11:39.000000000 -0600
@@ -1,23 +1,23 @@
 /*  *********************************************************************
     *  SB1250 Board Support Package
-    *
-    *  Memory Controller constants              File: sb1250_mc.h
-    *
+    *  
+    *  Memory Controller constants              File: sb1250_mc.h       
+    *  
     *  This module contains constants and macros useful for
     *  programming the memory controller.
-    *
+    *  
     *  SB1250 specification level:  User's manual 1/02/02
-    *
+    *  
     *  Author:  Mitch Lichtenberg (mpl@broadcom.com)
+    *  
+    *********************************************************************  
     *
-    *********************************************************************
-    *
-    *  Copyright 2000,2001
+    *  Copyright 2000,2001,2002,2003
     *  Broadcom Corporation. All rights reserved.
-    *
-    *  This program is free software; you can redistribute it and/or
-    *  modify it under the terms of the GNU General Public License as
-    *  published by the Free Software Foundation; either version 2 of
+    *  
+    *  This program is free software; you can redistribute it and/or 
+    *  modify it under the terms of the GNU General Public License as 
+    *  published by the Free Software Foundation; either version 2 of 
     *  the License, or (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
@@ -27,7 +27,7 @@
     *
     *  You should have received a copy of the GNU General Public License
     *  along with this program; if not, write to the Free Software
-    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
     *  MA 02111-1307 USA
     ********************************************************************* */
 
@@ -166,7 +166,7 @@
 
 #define K_MC_REF_RATE_100MHz         0x62
 #define K_MC_REF_RATE_133MHz         0x81
-#define K_MC_REF_RATE_200MHz         0xC4
+#define K_MC_REF_RATE_200MHz         0xC4 
 
 #define V_MC_REF_RATE_100MHz         V_MC_REF_RATE(K_MC_REF_RATE_100MHz)
 #define V_MC_REF_RATE_133MHz         V_MC_REF_RATE(K_MC_REF_RATE_133MHz)
@@ -191,6 +191,10 @@
 #define G_MC_ADDR_DRIVE(x)           _SB_GETVALUE(x,S_MC_ADDR_DRIVE,M_MC_ADDR_DRIVE)
 #define V_MC_ADDR_DRIVE_DEFAULT      V_MC_ADDR_DRIVE(0x0)
 
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_MC_REF_DISABLE             _SB_MAKEMASK1(30)
+#endif /* 112x PASS1 */
+
 #define M_MC_DLL_BYPASS              _SB_MAKEMASK1(31)
 
 #define S_MC_DQI_SKEW               32
@@ -224,7 +228,7 @@
                                      V_MC_ADDR_DRIVE_DEFAULT | \
                                      V_MC_DATA_DRIVE_DEFAULT | \
                                      V_MC_CLOCK_DRIVE_DEFAULT | \
-                                     V_MC_REF_RATE_DEFAULT
+                                     V_MC_REF_RATE_DEFAULT 
 
 
 
@@ -291,6 +295,10 @@
 
 #define M_MC_EXTERNALDECODE	    _SB_MAKEMASK1(35)
 
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_MC_PRE_ON_A8              _SB_MAKEMASK1(36)
+#define M_MC_RAM_WITH_A13           _SB_MAKEMASK1(38)
+#endif /* 112x PASS1 */
 
 
 
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/sb1250_prof.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_prof.h
--- linux-2.4.20/include/asm-mips64/sibyte/sb1250_prof.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_prof.h	1969-12-31 18:00:00.000000000 -0600
@@ -1,133 +0,0 @@
-/*
- * Copyright (C) 2001 Broadcom Corporation
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- */
-
-/*
- *
- * Definitions for the sb1250_prof pseudo device.
- *
- */
-//#include <sys/param.h>
-//#include <sys/device.h>
-
-#ifndef SB1250_PROF_H
-#define SB1250_PROF_H 1
-
-#define MAXCPUS 1
-#define NEWPIDSIZE 160
-/* The two definitions below must match those in pgather.c */
-#define MAX_COUNTERS 4
-#define MAX_SLOTS 8
-
-#define STATS
-
-typedef struct {
-  u_int8_t  event;
-  u_int8_t  hwcode;     /* pcarch-specific bits identifying desired event */
-  u_int64_t period;     /* 40-bit sampling period during slot */
-} sbprof_mux_counter_t;
-
-typedef struct {
-  sbprof_mux_counter_t
-                counter[MAX_COUNTERS];	/* data for setting up counter */
-  u_int8_t	n;			/* number of counters to use in slot */
-} sbprof_mux_slot_t;
-
-typedef struct {
-  sbprof_mux_slot_t slots[MAX_SLOTS];
-} sbprof_mux_slots;
-
-typedef struct {
-  u_int64_t total;	/* total number of interrupts */
-  u_int64_t dropped;	/* total interrupts when buffers were full */
-  u_int64_t value;	/* initial counter value when slot next entered */
-  u_int32_t start_period_low;	/* counter val for starting a period */
-  u_int8_t  start_period_high;
-  u_int8_t  event;      /* pcarch-specific event_t */
-  u_int8_t  hwcode;	/* pcarch-specific code for event */
-  u_int8_t  inuse;	/* Is counter X slot actually used? */
-} event_counter_state_t;
-
-typedef struct {
-  u_int32_t total;	 /* total for current run of slot */
-  u_int32_t dropped;	 /* dropped for current run of slot */
-  u_int64_t start_period;/* counter value to start a full period */
-} active_counter_state_t;
-
-struct _cpudata1 {
-  /******* page-aligned boundary *********************************************/
-  u_int32_t last_pid;	/* Pid for last sample in buffer (-1 initially) */
-  u_int8_t  curbuf;	/* 2 -> both buffers full at end of last interrupt
-			   1 -> use buffer[1]
-			   0 -> use buffer[0] */
-  u_int8_t  nextbuf;	/* the index of the next buffer to be filled */
-  u_int8_t  nnewpid[2]; /* number of entries set in new_pid[i] */
-  u_int32_t next;       /* index of next free entry in curbuf */
-  int32_t   last_event; /* index of byte just past last event DP_D_EVENTS
-			   message in curbuf that needs the number of events
-			   filled in.  -1 means there is no such message and
-			   that such a message must be entered before
-			   adding event samples.
-			 */
-  /* 16-byte boundary */
-  volatile u_int32_t full[2];
-                        /* full[i] > 0 means buffer[i] needs emptying.
-			   0 to nonzero done by sbprofintr().
-			   nonzero to zero by sbprofioctl().
-			   When nonzero, full[i] is the number of bytes
-			   set in buffer[i].
-			*/
-  u_int32_t threshold;  /* when does the current multiplexing slot expire? */
-  u_int8_t slotid;      /* index into slots[] of current multiplexing slot */
-  u_int8_t nslots;	/* number of slots */
-  u_int8_t needs_scan;
-  u_int8_t pad[1];
-  /******* 32-byte boundary *********************************************/
-  active_counter_state_t cur_slot[MAX_COUNTERS];
-  /******* 32-byte boundary *********************************************/
-  event_counter_state_t event_counter_state[MAX_SLOTS][MAX_COUNTERS];
-  /******* 32-byte boundary *********************************************/
-  u_int32_t overshot[MAX_SLOTS];
-
-  u_int32_t newpid[2][NEWPIDSIZE];  /* new_pid[i][] contains indices of
-				       buffer[i][] where a new_pid message
-				       is encoded and needs to have the
-				       image_id, base addr, and num_inst
-				       fields set by the user-level daemon */
-#ifdef STATS
-  u_int64_t newpidlimit;
-  u_int64_t buflimit;
-#endif
-};
-
-#define SBPROF_BUFSIZE (32*1024 - (sizeof(struct _cpudata1)+1)/2)
-
-typedef struct _cpudata {
-  struct _cpudata1 x;
-  u_int8_t buffer[2][SBPROF_BUFSIZE];
-} cpudata_t;
-
-#define SBPROF_START    _IOW('S', 0x1, sbprof_mux_slots)
-#define SBPROF_STOP     _IO('S', 0x2)
-#define SBPROF_BUFFULL  _IOWR('S', 0x3, int)
-#define SBPROF_BUFEMPTY _IOW('S', 0x4, int)
-
-#if NEWPIDSIZE > 254
-#error "newpidsize too big"
-#endif
-
-#endif /* SB1250_PROF_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/sb1250_regs.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_regs.h
--- linux-2.4.20/include/asm-mips64/sibyte/sb1250_regs.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_regs.h	2003-01-21 23:11:39.000000000 -0600
@@ -1,23 +1,23 @@
 /*  *********************************************************************
     *  SB1250 Board Support Package
-    *
+    *  
     *  Register Definitions                     File: sb1250_regs.h
-    *
+    *  
     *  This module contains the addresses of the on-chip peripherals
     *  on the SB1250.
-    *
+    *  
     *  SB1250 specification level:  01/02/2002
-    *
+    *  
     *  Author:  Mitch Lichtenberg (mpl@broadcom.com)
+    *  
+    *********************************************************************  
     *
-    *********************************************************************
-    *
-    *  Copyright 2000,2001
+    *  Copyright 2000,2001,2002,2003
     *  Broadcom Corporation. All rights reserved.
-    *
-    *  This program is free software; you can redistribute it and/or
-    *  modify it under the terms of the GNU General Public License as
-    *  published by the Free Software Foundation; either version 2 of
+    *  
+    *  This program is free software; you can redistribute it and/or 
+    *  modify it under the terms of the GNU General Public License as 
+    *  published by the Free Software Foundation; either version 2 of 
     *  the License, or (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
@@ -27,7 +27,7 @@
     *
     *  You should have received a copy of the GNU General Public License
     *  along with this program; if not, write to the Free Software
-    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
     *  MA 02111-1307 USA
     ********************************************************************* */
 
@@ -40,23 +40,27 @@
 
 /*  *********************************************************************
     *  Some general notes:
-    *
+    *  
     *  For the most part, when there is more than one peripheral
     *  of the same type on the SOC, the constants below will be
     *  offsets from the base of each peripheral.  For example,
     *  the MAC registers are described as offsets from the first
     *  MAC register, and there will be a MAC_REGISTER() macro
-    *  to calculate the base address of a given MAC.
-    *
+    *  to calculate the base address of a given MAC.  
+    *  
     *  The information in this file is based on the SB1250 SOC
     *  manual version 0.2, July 2000.
     ********************************************************************* */
 
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * Memory Controller Registers
     ********************************************************************* */
 
+/*
+ * XXX: can't remove MC base 0 if 112x, since it's used by other macros,
+ * since there is one reg there (but it could get its addr/offset constant).
+ */
 #define A_MC_BASE_0                 0x0010051000
 #define A_MC_BASE_1                 0x0010052000
 #define MC_REGISTER_SPACING         0x1000
@@ -97,22 +101,32 @@
 #define R_MC_TEST_ECC               0x0000000420
 #define R_MC_MCLK_CFG               0x0000000500
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * L2 Cache Control Registers
     ********************************************************************* */
 
-#define A_L2_READ_ADDRESS           0x0010040018
-#define A_L2_EEC_ADDRESS            0x0010040038
+#define A_L2_READ_TAG               0x0010040018
+#define A_L2_ECC_TAG                0x0010040038
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+#define A_L2_READ_MISC              0x0010040058
+#endif /* 112x PASS1 */
 #define A_L2_WAY_DISABLE            0x0010041000
 #define A_L2_MAKEDISABLE(x)         (A_L2_WAY_DISABLE | (((~(x))&0x0F) << 8))
 #define A_L2_MGMT_TAG_BASE          0x00D0000000
 
-#define A_L2_CACHE_DISABLE	   0x0010042000	/* PASS2 */
-#define A_L2_MAKECACHEDISABLE(x)   (A_L2_CACHE_DISABLE | (((x)&0x0F) << 8))	/* PASS2 */
-#define A_L2_MISC_CONFIG	   0x0010043000	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define A_L2_CACHE_DISABLE	   0x0010042000
+#define A_L2_MAKECACHEDISABLE(x)   (A_L2_CACHE_DISABLE | (((x)&0x0F) << 8))
+#define A_L2_MISC_CONFIG	   0x0010043000
+#endif /* 1250 PASS2 || 112x PASS1 */
+
+/* Backward-compatibility definitions.  */
+/* XXX: discourage people from using these constants.  */
+#define A_L2_READ_ADDRESS           A_L2_READ_TAG
+#define A_L2_EEC_ADDRESS            A_L2_ECC_TAG
 
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * PCI Interface Registers
     ********************************************************************* */
 
@@ -120,13 +134,15 @@
 #define A_PCI_TYPE01_HEADER         0x00DE000800
 
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * Ethernet DMA and MACs
     ********************************************************************* */
 
 #define A_MAC_BASE_0                0x0010064000
 #define A_MAC_BASE_1                0x0010065000
+#if SIBYTE_HDR_FEATURE_CHIP(1250)
 #define A_MAC_BASE_2                0x0010066000
+#endif /* 1250 */
 
 #define MAC_SPACING                 0x1000
 #define MAC_DMA_TXRX_SPACING        0x0400
@@ -135,6 +151,7 @@
 #define DMA_TX                      1
 #define MAC_NUM_DMACHAN		    2		    /* channels per direction */
 
+/* XXX: not correct; depends on SOC type.  */
 #define MAC_NUM_PORTS               3
 
 #define A_MAC_CHANNEL_BASE(macnum)                  \
@@ -167,7 +184,7 @@
             (R_MAC_DMA_CHANNEL_BASE(txrx,chan) +    \
             (reg))
 
-/*
+/* 
  * DMA channel registers, relative to A_MAC_DMA_CHANNEL_BASE
  */
 
@@ -178,6 +195,9 @@
 #define R_MAC_DMA_CUR_DSCRA             0x00000020
 #define R_MAC_DMA_CUR_DSCRB             0x00000028
 #define R_MAC_DMA_CUR_DSCRADDR          0x00000030
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+#define R_MAC_DMA_OODPKTLOST_RX         0x00000038	/* rx only */
+#endif /* 112x PASS1 */
 
 /*
  * RMON Counters
@@ -216,6 +236,10 @@
 #define R_MAC_ADFILTER_CFG              0x00000200
 #define R_MAC_ETHERNET_ADDR             0x00000208
 #define R_MAC_PKT_TYPE                  0x00000210
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+#define R_MAC_ADMASK0			0x00000218
+#define R_MAC_ADMASK1			0x00000220
+#endif /* 112x PASS1 */
 #define R_MAC_HASH_BASE                 0x00000240
 #define R_MAC_ADDR_BASE                 0x00000280
 #define R_MAC_CHLO0_BASE                0x00000300
@@ -225,7 +249,9 @@
 #define R_MAC_INT_MASK                  0x00000410
 #define R_MAC_TXD_CTL                   0x00000420
 #define R_MAC_MDIO                      0x00000428
-#define R_MAC_STATUS1		        0x00000430	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define R_MAC_STATUS1		        0x00000430
+#endif /* 1250 PASS2 || 112x PASS1 */
 #define R_MAC_DEBUG_STATUS              0x00000448
 
 #define MAC_HASH_COUNT			8
@@ -233,7 +259,7 @@
 #define MAC_CHMAP_COUNT			4
 
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * DUART Registers
     ********************************************************************* */
 
@@ -256,9 +282,11 @@
 #define R_DUART_RX_HOLD             0x160
 #define R_DUART_TX_HOLD             0x170
 
-#define R_DUART_FULL_CTL	    0x140	/* PASS2 */
-#define R_DUART_OPCR_X		    0x180	/* PASS2 */
-#define R_DUART_AUXCTL_X	    0x190	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define R_DUART_FULL_CTL	    0x140
+#define R_DUART_OPCR_X		    0x180
+#define R_DUART_AUXCTL_X	    0x190
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 
 /*
@@ -285,6 +313,9 @@
 #define A_DUART_IMRREG(chan)	    (A_DUART + R_DUART_IMRREG(chan))
 #define A_DUART_ISRREG(chan)	    (A_DUART + R_DUART_ISRREG(chan))
 
+
+
+
 /*
  * These constants are the absolute addresses.
  */
@@ -321,16 +352,18 @@
 #define A_DUART_INPORT_CHNG_A       0x00100603D0
 #define A_DUART_INPORT_CHNG_B       0x00100603E0
 
-#define A_DUART_FULL_CTL_A	    0x0010060140	/* PASS2 */
-#define A_DUART_FULL_CTL_B	    0x0010060240	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define A_DUART_FULL_CTL_A	    0x0010060140
+#define A_DUART_FULL_CTL_B	    0x0010060240
 
-#define A_DUART_OPCR_A	  	    0x0010060180	/* PASS2 */
-#define A_DUART_OPCR_B	  	    0x0010060280	/* PASS2 */
+#define A_DUART_OPCR_A	  	    0x0010060180
+#define A_DUART_OPCR_B	  	    0x0010060280
 
-#define A_DUART_INPORT_CHNG_DEBUG   0x00100603F0	/* PASS2 */
+#define A_DUART_INPORT_CHNG_DEBUG   0x00100603F0
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * Synchronous Serial Registers
     ********************************************************************* */
 
@@ -364,7 +397,7 @@
             (reg))
 
 
-/*
+/* 
  * DMA channel registers, relative to A_SER_DMA_CHANNEL_BASE
  */
 
@@ -424,7 +457,7 @@
 #define R_SER_RMON_RX_ERRORS        0x000001F0
 #define R_SER_RMON_RX_BADADDR       0x000001F8
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * Generic Bus Registers
     ********************************************************************* */
 
@@ -464,6 +497,10 @@
 #define A_IO_DRIVE_1		    0x0010061308
 #define A_IO_DRIVE_2		    0x0010061310
 #define A_IO_DRIVE_3		    0x0010061318
+#define A_IO_DRIVE_BASE		    A_IO_DRIVE_0
+#define IO_DRIVE_REGISTER_SPACING   8
+#define R_IO_DRIVE(x)		    ((x)*IO_DRIVE_REGISTER_SPACING)
+#define A_IO_DRIVE(x)		    (A_IO_DRIVE_BASE + R_IO_DRIVE(x))
 
 #define R_IO_INTERRUPT_STATUS       0x0A00
 #define R_IO_INTERRUPT_DATA0        0x0A10
@@ -476,7 +513,7 @@
 #define R_IO_PCMCIA_CFG             0x0A60
 #define R_IO_PCMCIA_STATUS          0x0A70
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * GPIO Registers
     ********************************************************************* */
 
@@ -500,7 +537,7 @@
 #define R_GPIO_PIN_CLR              0x30
 #define R_GPIO_PIN_SET              0x38
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * SMBus Registers
     ********************************************************************* */
 
@@ -536,7 +573,7 @@
 #define R_SMB_CONTROL               0x0000000060
 #define R_SMB_PEC                   0x0000000070
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * Timer Registers
     ********************************************************************* */
 
@@ -595,21 +632,23 @@
 #define A_SCD_TIMER_CNT_3           0x0010020188
 #define A_SCD_TIMER_CFG_3           0x0010020198
 
-#define A_SCD_SCRATCH		   0x0010020C10		/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define A_SCD_SCRATCH		   0x0010020C10
 
-#define A_SCD_ZBBUS_CYCLE_COUNT	   0x0010030000		/* PASS2 */
-#define A_SCD_ZBBUS_CYCLE_CP0	   0x0010020C00		/* PASS2 */
-#define A_SCD_ZBBUS_CYCLE_CP1	   0x0010020C08		/* PASS2 */
+#define A_SCD_ZBBUS_CYCLE_COUNT	   0x0010030000
+#define A_SCD_ZBBUS_CYCLE_CP0	   0x0010020C00
+#define A_SCD_ZBBUS_CYCLE_CP1	   0x0010020C08
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * System Control Registers
     ********************************************************************* */
 
 #define A_SCD_SYSTEM_REVISION       0x0010020000
 #define A_SCD_SYSTEM_CFG            0x0010020008
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * System Address Trap Registers
     ********************************************************************* */
 
@@ -627,16 +666,19 @@
 #define A_ADDR_TRAP_CFG_1           0x0010020448
 #define A_ADDR_TRAP_CFG_2           0x0010020450
 #define A_ADDR_TRAP_CFG_3           0x0010020458
-#define A_ADDR_TRAP_REG_DEBUG	    0x0010020460	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define A_ADDR_TRAP_REG_DEBUG	    0x0010020460
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * System Interrupt Mapper Registers
     ********************************************************************* */
 
 #define A_IMR_CPU0_BASE                 0x0010020000
 #define A_IMR_CPU1_BASE                 0x0010022000
 #define IMR_REGISTER_SPACING            0x2000
+#define IMR_REGISTER_SPACING_SHIFT      13
 
 #define A_IMR_MAPPER(cpu) (A_IMR_CPU0_BASE+(cpu)*IMR_REGISTER_SPACING)
 #define A_IMR_REGISTER(cpu,reg) (A_IMR_MAPPER(cpu)+(reg))
@@ -658,7 +700,7 @@
 #define R_IMR_INTERRUPT_MAP_BASE        0x0200
 #define R_IMR_INTERRUPT_MAP_COUNT       64
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * System Performance Counter Registers
     ********************************************************************* */
 
@@ -668,12 +710,14 @@
 #define A_SCD_PERF_CNT_2            0x00100204E0
 #define A_SCD_PERF_CNT_3            0x00100204E8
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * System Bus Watcher Registers
     ********************************************************************* */
 
 #define A_SCD_BUS_ERR_STATUS        0x0010020880
-#define A_SCD_BUS_ERR_STATUS_DEBUG  0x00100208D0	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define A_SCD_BUS_ERR_STATUS_DEBUG  0x00100208D0
+#endif /* 1250 PASS2 || 112x PASS1 */
 #define A_BUS_ERR_DATA_0            0x00100208A0
 #define A_BUS_ERR_DATA_1            0x00100208A8
 #define A_BUS_ERR_DATA_2            0x00100208B0
@@ -681,13 +725,13 @@
 #define A_BUS_L2_ERRORS             0x00100208C0
 #define A_BUS_MEM_IO_ERRORS         0x00100208C8
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * System Debug Controller Registers
     ********************************************************************* */
 
 #define A_SCD_JTAG_BASE             0x0010000000
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * System Trace Buffer Registers
     ********************************************************************* */
 
@@ -710,7 +754,7 @@
 #define A_SCD_TRACE_SEQUENCE_6      0x0010020A90
 #define A_SCD_TRACE_SEQUENCE_7      0x0010020A98
 
-/*  *********************************************************************
+/*  ********************************************************************* 
     * System Generic DMA Registers
     ********************************************************************* */
 
@@ -728,6 +772,26 @@
 #define R_DM_CUR_DSCR_ADDR	    0x0000000010
 #define R_DM_DSCR_BASE_DEBUG	    0x0000000018
 
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+#define A_DM_PARTIAL_0		    0x0010020ba0
+#define A_DM_PARTIAL_1		    0x0010020ba8
+#define A_DM_PARTIAL_2		    0x0010020bb0
+#define A_DM_PARTIAL_3		    0x0010020bb8
+#define DM_PARTIAL_REGISTER_SPACING 0x8
+#define A_DM_PARTIAL(idx)	    (A_DM_PARTIAL_0 + ((idx) * DM_PARTIAL_REGISTER_SPACING))
+#endif /* 112x PASS1 */
+
+#if SIBYTE_HDR_FEATURE(112x, PASS1)
+#define A_DM_CRC_0		    0x0010020b80
+#define A_DM_CRC_1		    0x0010020b90
+#define DM_CRC_REGISTER_SPACING	    0x10
+#define DM_CRC_NUM_CHANNELS	    2
+#define A_DM_CRC_BASE(idx)	    (A_DM_CRC_0 + ((idx) * DM_CRC_REGISTER_SPACING))
+#define A_DM_CRC_REGISTER(idx,reg)  (A_DM_CRC_BASE(idx) + (reg))
+
+#define R_CRC_DEF_0		    0x00
+#define R_CTCP_DEF_0		    0x08
+#endif /* 112x PASS1 */
 
 /*  *********************************************************************
     *  Physical Address Map
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/sb1250_scd.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_scd.h
--- linux-2.4.20/include/asm-mips64/sibyte/sb1250_scd.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_scd.h	2003-01-21 23:11:39.000000000 -0600
@@ -1,23 +1,23 @@
 /*  *********************************************************************
     *  SB1250 Board Support Package
-    *
+    *  
     *  SCD Constants and Macros			File: sb1250_scd.h
-    *
+    *  
     *  This module contains constants and macros useful for
     *  manipulating the System Control and Debug module on the 1250.
-    *
+    *  
     *  SB1250 specification level:  User's manual 1/02/02
-    *
+    *  
     *  Author:  Mitch Lichtenberg (mpl@broadcom.com)
+    *  
+    *********************************************************************  
     *
-    *********************************************************************
-    *
-    *  Copyright 2000,2001
+    *  Copyright 2000,2001,2002,2003
     *  Broadcom Corporation. All rights reserved.
-    *
-    *  This program is free software; you can redistribute it and/or
-    *  modify it under the terms of the GNU General Public License as
-    *  published by the Free Software Foundation; either version 2 of
+    *  
+    *  This program is free software; you can redistribute it and/or 
+    *  modify it under the terms of the GNU General Public License as 
+    *  published by the Free Software Foundation; either version 2 of 
     *  the License, or (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
@@ -27,7 +27,7 @@
     *
     *  You should have received a copy of the GNU General Public License
     *  along with this program; if not, write to the Free Software
-    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
     *  MA 02111-1307 USA
     ********************************************************************* */
 
@@ -51,18 +51,73 @@
 #define V_SYS_REVISION(x)           _SB_MAKEVALUE(x,S_SYS_REVISION)
 #define G_SYS_REVISION(x)           _SB_GETVALUE(x,S_SYS_REVISION,M_SYS_REVISION)
 
-#define K_SYS_REVISION_PASS1	    1
-#define K_SYS_REVISION_PASS2	    3
-#define K_SYS_REVISION_PASS2_2	    16
-#define K_SYS_REVISION_PASS3	    32
+#if SIBYTE_HDR_FEATURE_CHIP(1250)
+#define K_SYS_REVISION_BCM1250_PASS1	1
+#define K_SYS_REVISION_BCM1250_PASS2	3
+#define K_SYS_REVISION_BCM1250_PASS2_2	16
+#define K_SYS_REVISION_BCM1250_PASS3	32
+
+/* XXX: discourage people from using these constants.  */
+#define K_SYS_REVISION_PASS1	    K_SYS_REVISION_BCM1250_PASS1
+#define K_SYS_REVISION_PASS2	    K_SYS_REVISION_BCM1250_PASS2
+#define K_SYS_REVISION_PASS2_2	    K_SYS_REVISION_BCM1250_PASS2_2
+#define K_SYS_REVISION_PASS3	    K_SYS_REVISION_BCM1250_PASS3
+#endif /* 1250 */
+
+#if SIBYTE_HDR_FEATURE_CHIP(112x)
+#define K_SYS_REVISION_BCM112x_A1	32
+#define K_SYS_REVISION_BCM112x_A2	33
+#endif /* 112x */
 
+/* XXX: discourage people from using these constants.  */
 #define S_SYS_PART                  _SB_MAKE64(16)
 #define M_SYS_PART                  _SB_MAKEMASK(16,S_SYS_PART)
 #define V_SYS_PART(x)               _SB_MAKEVALUE(x,S_SYS_PART)
 #define G_SYS_PART(x)               _SB_GETVALUE(x,S_SYS_PART,M_SYS_PART)
 
+/* XXX: discourage people from using these constants.  */
 #define K_SYS_PART_SB1250           0x1250
-#define K_SYS_PART_SB1125           0x1125
+#define K_SYS_PART_BCM1120          0x1121
+#define K_SYS_PART_BCM1125          0x1123
+#define K_SYS_PART_BCM1125H         0x1124
+
+/* The "peripheral set" (SOC type) is the low 4 bits of the "part" field.  */
+#define S_SYS_SOC_TYPE              _SB_MAKE64(16)
+#define M_SYS_SOC_TYPE              _SB_MAKEMASK(4,S_SYS_SOC_TYPE)
+#define V_SYS_SOC_TYPE(x)           _SB_MAKEVALUE(x,S_SYS_SOC_TYPE)
+#define G_SYS_SOC_TYPE(x)           _SB_GETVALUE(x,S_SYS_SOC_TYPE,M_SYS_SOC_TYPE)
+
+#define K_SYS_SOC_TYPE_BCM1250      0x0
+#define K_SYS_SOC_TYPE_BCM1120      0x1
+#define K_SYS_SOC_TYPE_BCM1250_ALT  0x2		/* 1250pass2 w/ 1/4 L2.  */
+#define K_SYS_SOC_TYPE_BCM1125      0x3
+#define K_SYS_SOC_TYPE_BCM1125H     0x4
+#define K_SYS_SOC_TYPE_BCM1250_ALT2 0x5		/* 1250pass2 w/ 1/2 L2.  */
+
+/*
+ * Calculate correct SOC type given a copy of system revision register.
+ *
+ * (For the assembler version, sysrev and dest may be the same register.
+ * Also, it clobbers AT.)
+ */
+#ifdef __ASSEMBLER__
+#define SYS_SOC_TYPE(dest, sysrev)					\
+	.set push ;							\
+	.set reorder ;							\
+	dsrl	dest, sysrev, S_SYS_SOC_TYPE ;				\
+	andi	dest, dest, (M_SYS_SOC_TYPE >> S_SYS_SOC_TYPE);		\
+	beq	dest, K_SYS_SOC_TYPE_BCM1250_ALT, 991f ;		\
+	beq	dest, K_SYS_SOC_TYPE_BCM1250_ALT2, 991f	 ;		\
+	b	992f ;							\
+991:	li	dest, K_SYS_SOC_TYPE_BCM1250 ;				\
+992:									\
+	.set pop
+#else
+#define SYS_SOC_TYPE(sysrev)						\
+	((G_SYS_SOC_TYPE(sysrev) == K_SYS_SOC_TYPE_BCM1250_ALT		\
+	  || G_SYS_SOC_TYPE(sysrev) == K_SYS_SOC_TYPE_BCM1250_ALT2)	\
+	 ? K_SYS_SOC_TYPE_BCM1250 : G_SYS_SOC_TYPE(sysrev))
+#endif
 
 #define S_SYS_WID                   _SB_MAKE64(32)
 #define M_SYS_WID                   _SB_MAKEMASK(32,S_SYS_WID)
@@ -154,7 +209,9 @@
 #define M_SYS_MISR_MODE             _SB_MAKEMASK1(61)
 #define M_SYS_MISR_RESET            _SB_MAKEMASK1(62)
 
-#define M_SYS_SW_FLAG		    _SB_MAKEMASK1(63)	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_SYS_SW_FLAG		    _SB_MAKEMASK1(63)
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 
 /*
@@ -179,10 +236,10 @@
 #define V_SCD_WDOG_FREQ             1000000
 
 #define S_SCD_WDOG_INIT             0
-#define M_SCD_WDOG_INIT             _SB_MAKEMASK(13,S_SCD_WDOG_INIT)
+#define M_SCD_WDOG_INIT             _SB_MAKEMASK(23,S_SCD_WDOG_INIT)
 
 #define S_SCD_WDOG_CNT              0
-#define M_SCD_WDOG_CNT              _SB_MAKEMASK(13,S_SCD_WDOG_CNT)
+#define M_SCD_WDOG_CNT              _SB_MAKEMASK(23,S_SCD_WDOG_CNT)
 
 #define M_SCD_WDOG_ENABLE           _SB_MAKEMASK1(0)
 
@@ -248,48 +305,48 @@
 #define V_SCD_BERR_RID(x)         _SB_MAKEVALUE(x,S_SCD_BERR_RID)
 #define G_SCD_BERR_RID(x)         _SB_GETVALUE(x,S_SCD_BERR_RID,M_SCD_BERR_RID)
 
-#define S_SCD_BERR_DCODE            22
-#define M_SCD_BERR_DCODE            _SB_MAKEMASK(3,S_SCD_BERR_DCODE)
-#define V_SCD_BERR_DCODE(x)         _SB_MAKEVALUE(x,S_SCD_BERR_DCODE)
-#define G_SCD_BERR_DCODE(x)         _SB_GETVALUE(x,S_SCD_BERR_DCODE,M_SCD_BERR_DCODE)
+#define S_SCD_BERR_DCODE          22
+#define M_SCD_BERR_DCODE          _SB_MAKEMASK(3,S_SCD_BERR_DCODE)
+#define V_SCD_BERR_DCODE(x)       _SB_MAKEVALUE(x,S_SCD_BERR_DCODE)
+#define G_SCD_BERR_DCODE(x)       _SB_GETVALUE(x,S_SCD_BERR_DCODE,M_SCD_BERR_DCODE)
 
-#define M_SCD_BERR_MULTERRS	_SB_MAKEMASK1(30)
+#define M_SCD_BERR_MULTERRS       _SB_MAKEMASK1(30)
 
 
-#define S_SCD_L2ECC_CORR_D            0
-#define M_SCD_L2ECC_CORR_D            _SB_MAKEMASK(8,S_SCD_L2ECC_CORR_D)
-#define V_SCD_L2ECC_CORR_D(x)         _SB_MAKEVALUE(x,S_SCD_L2ECC_CORR_D)
-#define G_SCD_L2ECC_CORR_D(x)         _SB_GETVALUE(x,S_SCD_L2ECC_CORR_D,M_SCD_L2ECC_CORR_D)
+#define S_SCD_L2ECC_CORR_D        0
+#define M_SCD_L2ECC_CORR_D        _SB_MAKEMASK(8,S_SCD_L2ECC_CORR_D)
+#define V_SCD_L2ECC_CORR_D(x)     _SB_MAKEVALUE(x,S_SCD_L2ECC_CORR_D)
+#define G_SCD_L2ECC_CORR_D(x)     _SB_GETVALUE(x,S_SCD_L2ECC_CORR_D,M_SCD_L2ECC_CORR_D)
 
-#define S_SCD_L2ECC_BAD_D            8
-#define M_SCD_L2ECC_BAD_D            _SB_MAKEMASK(8,S_SCD_L2ECC_BAD_D)
-#define V_SCD_L2ECC_BAD_D(x)         _SB_MAKEVALUE(x,S_SCD_L2ECC_BAD_D)
-#define G_SCD_L2ECC_BAD_D(x)         _SB_GETVALUE(x,S_SCD_L2ECC_BAD_D,M_SCD_L2ECC_BAD_D)
+#define S_SCD_L2ECC_BAD_D         8
+#define M_SCD_L2ECC_BAD_D         _SB_MAKEMASK(8,S_SCD_L2ECC_BAD_D)
+#define V_SCD_L2ECC_BAD_D(x)      _SB_MAKEVALUE(x,S_SCD_L2ECC_BAD_D)
+#define G_SCD_L2ECC_BAD_D(x)      _SB_GETVALUE(x,S_SCD_L2ECC_BAD_D,M_SCD_L2ECC_BAD_D)
 
-#define S_SCD_L2ECC_CORR_T            16
-#define M_SCD_L2ECC_CORR_T            _SB_MAKEMASK(8,S_SCD_L2ECC_CORR_T)
-#define V_SCD_L2ECC_CORR_T(x)         _SB_MAKEVALUE(x,S_SCD_L2ECC_CORR_T)
-#define G_SCD_L2ECC_CORR_T(x)         _SB_GETVALUE(x,S_SCD_L2ECC_CORR_T,M_SCD_L2ECC_CORR_T)
+#define S_SCD_L2ECC_CORR_T        16
+#define M_SCD_L2ECC_CORR_T        _SB_MAKEMASK(8,S_SCD_L2ECC_CORR_T)
+#define V_SCD_L2ECC_CORR_T(x)     _SB_MAKEVALUE(x,S_SCD_L2ECC_CORR_T)
+#define G_SCD_L2ECC_CORR_T(x)     _SB_GETVALUE(x,S_SCD_L2ECC_CORR_T,M_SCD_L2ECC_CORR_T)
 
-#define S_SCD_L2ECC_BAD_T            24
-#define M_SCD_L2ECC_BAD_T            _SB_MAKEMASK(8,S_SCD_L2ECC_BAD_T)
-#define V_SCD_L2ECC_BAD_T(x)         _SB_MAKEVALUE(x,S_SCD_L2ECC_BAD_T)
-#define G_SCD_L2ECC_BAD_T(x)         _SB_GETVALUE(x,S_SCD_L2ECC_BAD_T,M_SCD_L2ECC_BAD_T)
+#define S_SCD_L2ECC_BAD_T         24
+#define M_SCD_L2ECC_BAD_T         _SB_MAKEMASK(8,S_SCD_L2ECC_BAD_T)
+#define V_SCD_L2ECC_BAD_T(x)      _SB_MAKEVALUE(x,S_SCD_L2ECC_BAD_T)
+#define G_SCD_L2ECC_BAD_T(x)      _SB_GETVALUE(x,S_SCD_L2ECC_BAD_T,M_SCD_L2ECC_BAD_T)
 
-#define S_SCD_MEM_ECC_CORR            0
-#define M_SCD_MEM_ECC_CORR            _SB_MAKEMASK(8,S_SCD_MEM_ECC_CORR)
-#define V_SCD_MEM_ECC_CORR(x)         _SB_MAKEVALUE(x,S_SCD_MEM_ECC_CORR)
-#define G_SCD_MEM_ECC_CORR(x)         _SB_GETVALUE(x,S_SCD_MEM_ECC_CORR,M_SCD_MEM_ECC_CORR)
+#define S_SCD_MEM_ECC_CORR        0
+#define M_SCD_MEM_ECC_CORR        _SB_MAKEMASK(8,S_SCD_MEM_ECC_CORR)
+#define V_SCD_MEM_ECC_CORR(x)     _SB_MAKEVALUE(x,S_SCD_MEM_ECC_CORR)
+#define G_SCD_MEM_ECC_CORR(x)     _SB_GETVALUE(x,S_SCD_MEM_ECC_CORR,M_SCD_MEM_ECC_CORR)
 
-#define S_SCD_MEM_ECC_BAD            16
-#define M_SCD_MEM_ECC_BAD            _SB_MAKEMASK(8,S_SCD_MEM_ECC_BAD)
-#define V_SCD_MEM_ECC_BAD(x)         _SB_MAKEVALUE(x,S_SCD_MEM_ECC_BAD)
-#define G_SCD_MEM_ECC_BAD(x)         _SB_GETVALUE(x,S_SCD_MEM_ECC_BAD,M_SCD_MEM_ECC_BAD)
+#define S_SCD_MEM_ECC_BAD         8
+#define M_SCD_MEM_ECC_BAD         _SB_MAKEMASK(8,S_SCD_MEM_ECC_BAD)
+#define V_SCD_MEM_ECC_BAD(x)      _SB_MAKEVALUE(x,S_SCD_MEM_ECC_BAD)
+#define G_SCD_MEM_ECC_BAD(x)      _SB_GETVALUE(x,S_SCD_MEM_ECC_BAD,M_SCD_MEM_ECC_BAD)
 
-#define S_SCD_MEM_BUSERR            24
-#define M_SCD_MEM_BUSERR            _SB_MAKEMASK(8,S_SCD_MEM_BUSERR)
-#define V_SCD_MEM_BUSERR(x)         _SB_MAKEVALUE(x,S_SCD_MEM_BUSERR)
-#define G_SCD_MEM_BUSERR(x)         _SB_GETVALUE(x,S_SCD_MEM_BUSERR,M_SCD_MEM_BUSERR)
+#define S_SCD_MEM_BUSERR          16
+#define M_SCD_MEM_BUSERR          _SB_MAKEMASK(8,S_SCD_MEM_BUSERR)
+#define V_SCD_MEM_BUSERR(x)       _SB_MAKEVALUE(x,S_SCD_MEM_BUSERR)
+#define G_SCD_MEM_BUSERR(x)       _SB_GETVALUE(x,S_SCD_MEM_BUSERR,M_SCD_MEM_BUSERR)
 
 
 /*
@@ -350,7 +407,9 @@
 #define M_SCD_TRACE_CFG_FREEZE_FULL     _SB_MAKEMASK1(5)
 #define M_SCD_TRACE_CFG_DEBUG_FULL      _SB_MAKEMASK1(6)
 #define M_SCD_TRACE_CFG_FULL            _SB_MAKEMASK1(7)
-#define M_SCD_TRACE_CFG_FORCECNT        _SB_MAKEMASK1(8)	/* PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+#define M_SCD_TRACE_CFG_FORCECNT        _SB_MAKEMASK1(8)
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 #define S_SCD_TRACE_CFG_CUR_ADDR        10
 #define M_SCD_TRACE_CFG_CUR_ADDR        _SB_MAKEMASK(8,S_SCD_TRACE_CFG_CUR_ADDR)
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/sb1250_smbus.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_smbus.h
--- linux-2.4.20/include/asm-mips64/sibyte/sb1250_smbus.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_smbus.h	2003-01-21 23:11:39.000000000 -0600
@@ -1,23 +1,23 @@
 /*  *********************************************************************
     *  SB1250 Board Support Package
-    *
+    *  
     *  SMBUS Constants                          File: sb1250_smbus.h
-    *
-    *  This module contains constants and macros useful for
+    *  
+    *  This module contains constants and macros useful for 
     *  manipulating the SB1250's SMbus devices.
-    *
+    *  
     *  SB1250 specification level:  01/02/2002
-    *
+    *  
     *  Author:  Mitch Lichtenberg (mpl@broadcom.com)
+    *  
+    *********************************************************************  
     *
-    *********************************************************************
-    *
-    *  Copyright 2000,2001
+    *  Copyright 2000,2001,2002,2003
     *  Broadcom Corporation. All rights reserved.
-    *
-    *  This program is free software; you can redistribute it and/or
-    *  modify it under the terms of the GNU General Public License as
-    *  published by the Free Software Foundation; either version 2 of
+    *  
+    *  This program is free software; you can redistribute it and/or 
+    *  modify it under the terms of the GNU General Public License as 
+    *  published by the Free Software Foundation; either version 2 of 
     *  the License, or (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
@@ -27,7 +27,7 @@
     *
     *  You should have received a copy of the GNU General Public License
     *  along with this program; if not, write to the Free Software
-    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
     *  MA 02111-1307 USA
     ********************************************************************* */
 
@@ -132,11 +132,7 @@
 #define V_SPEC_MB(x)                _SB_MAKEVALUE(x,S_SPEC_PEC)
 
 
-/*  *********************************************************************
-    *  PASS2 Extensions to SMBus
-    ********************************************************************* */
-
-/* BEGIN PASS2 */
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
 
 #define S_SMB_CMDH                  8
 #define M_SMB_CMDH                  _SB_MAKEMASK(8,S_SMBH_CMD)
@@ -169,6 +165,6 @@
 #define V_SMB_DFMT_CMD5BYTE	    V_SMB_DFMT(K_SMB_DFMT_CMD5BYTE)
 #define V_SMB_DFMT_RESERVED	    V_SMB_DFMT(K_SMB_DFMT_RESERVED)
 
-/* END PASS2 */
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 #endif
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/sb1250_syncser.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_syncser.h
--- linux-2.4.20/include/asm-mips64/sibyte/sb1250_syncser.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_syncser.h	2003-01-21 23:11:39.000000000 -0600
@@ -7,17 +7,17 @@
     *  manipulating the SB1250's Synchronous Serial
     *
     *  SB1250 specification level:  User's manual 1/02/02
-    *
+    *  
     *  Author:  Mitch Lichtenberg (mpl@broadcom.com)
     *
     *********************************************************************
     *
-    *  Copyright 2000,2001
+    *  Copyright 2000,2001,2002,2003
     *  Broadcom Corporation. All rights reserved.
-    *
-    *  This program is free software; you can redistribute it and/or
-    *  modify it under the terms of the GNU General Public License as
-    *  published by the Free Software Foundation; either version 2 of
+    *  
+    *  This program is free software; you can redistribute it and/or 
+    *  modify it under the terms of the GNU General Public License as 
+    *  published by the Free Software Foundation; either version 2 of 
     *  the License, or (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
@@ -27,7 +27,7 @@
     *
     *  You should have received a copy of the GNU General Public License
     *  along with this program; if not, write to the Free Software
-    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
     *  MA 02111-1307 USA
     ********************************************************************* */
 
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/sb1250_uart.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_uart.h
--- linux-2.4.20/include/asm-mips64/sibyte/sb1250_uart.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_uart.h	2003-01-21 23:11:39.000000000 -0600
@@ -1,23 +1,23 @@
 /*  *********************************************************************
     *  SB1250 Board Support Package
-    *
+    *  
     *  UART Constants				File: sb1250_uart.h
-    *
-    *  This module contains constants and macros useful for
+    *  
+    *  This module contains constants and macros useful for 
     *  manipulating the SB1250's UARTs
     *
     *  SB1250 specification level:  User's manual 1/02/02
-    *
+    *  
     *  Author:  Mitch Lichtenberg (mpl@broadcom.com)
+    *  
+    *********************************************************************  
     *
-    *********************************************************************
-    *
-    *  Copyright 2000,2001
+    *  Copyright 2000,2001,2002,2003
     *  Broadcom Corporation. All rights reserved.
-    *
-    *  This program is free software; you can redistribute it and/or
-    *  modify it under the terms of the GNU General Public License as
-    *  published by the Free Software Foundation; either version 2 of
+    *  
+    *  This program is free software; you can redistribute it and/or 
+    *  modify it under the terms of the GNU General Public License as 
+    *  published by the Free Software Foundation; either version 2 of 
     *  the License, or (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
@@ -27,7 +27,7 @@
     *
     *  You should have received a copy of the GNU General Public License
     *  along with this program; if not, write to the Free Software
-    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
     *  MA 02111-1307 USA
     ********************************************************************* */
 
@@ -37,7 +37,7 @@
 
 #include "sb1250_defs.h"
 
-/* **********************************************************************
+/* ********************************************************************** 
    * DUART Registers
    ********************************************************************** */
 
@@ -97,6 +97,7 @@
 
 #define M_DUART_TX_CTS_ENA          _SB_MAKEMASK1(4)
 
+
 #define M_DUART_MODE_RESERVED2      _SB_MAKEMASK1(5)    /* must be zero */
 
 #define S_DUART_CHAN_MODE	    6
@@ -144,7 +145,7 @@
 #define V_DUART_MISC_CMD_START_BREAK     V_DUART_MISC_CMD(K_DUART_MISC_CMD_START_BREAK)
 #define V_DUART_MISC_CMD_STOP_BREAK      V_DUART_MISC_CMD(K_DUART_MISC_CMD_STOP_BREAK)
 
-#define M_DUART_CMD_RESERVED             _SB_MAKEMASK1(7)
+#define M_DUART_CMD_RESERVED             _SB_MAKEMASK1(7) 
 
 /*
  * DUART Status Register (Table 10-6)
@@ -164,7 +165,7 @@
 
 /*
  * DUART Baud Rate Register (Table 10-7)
- * Register: DUART_CLK_SEL_A
+ * Register: DUART_CLK_SEL_A 
  * Register: DUART_CLK_SEL_B
  */
 
@@ -207,6 +208,7 @@
 #define S_DUART_IN_PIN_CHNG         4
 #define M_DUART_IN_PIN_CHNG         _SB_MAKEMASK(4,S_DUART_IN_PIN_CHNG)
 
+
 /*
  * DUART Output port control register (Table 10-14)
  * Register: DUART_OPCR
@@ -329,8 +331,9 @@
 #define M_DUART_OUT_PIN_CLR(chan) \
     (chan == 0 ? M_DUART_OUT_PIN_CLR0 : M_DUART_OUT_PIN_CLR1)
 
-/*
- * Full Interrupt Control Register (PASS2)
+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
+/* 
+ * Full Interrupt Control Register
  */
 
 #define S_DUART_SIG_FULL           _SB_MAKE64(0)
@@ -342,6 +345,7 @@
 #define M_DUART_INT_TIME           _SB_MAKEMASK(4,S_DUART_INT_TIME)
 #define V_DUART_INT_TIME(x)        _SB_MAKEVALUE(x,S_DUART_INT_TIME)
 #define G_DUART_INT_TIME(x)        _SB_GETVALUE(x,S_DUART_INT_TIME,M_DUART_INT_TIME)
+#endif /* 1250 PASS2 || 112x PASS1 */
 
 
 /* ********************************************************************** */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/sentosa.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sentosa.h
--- linux-2.4.20/include/asm-mips64/sibyte/sentosa.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sentosa.h	2003-01-21 23:11:39.000000000 -0600
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2000, 2001 Broadcom Corporation
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+#ifndef __ASM_SIBYTE_SENTOSA_H
+#define __ASM_SIBYTE_SENTOSA_H
+
+#include <asm/sibyte/sb1250.h>
+#include <asm/sibyte/sb1250_int.h>
+
+#ifdef CONFIG_SIBYTE_SENTOSA
+#define SIBYTE_BOARD_NAME "BCM91250E (Sentosa)"
+#endif
+#ifdef CONFIG_SIBYTE_RHONE
+#define SIBYTE_BOARD_NAME "BCM91125E (Rhone)"
+#endif
+
+/* Generic bus chip selects */
+#ifdef CONFIG_SIBYTE_RHONE
+#define LEDS_CS         6
+#define LEDS_PHYS       0x1d0a0000
+#endif
+
+/* GPIOs */
+#define K_GPIO_DBG_LED  0
+
+#endif /* __ASM_SIBYTE_SENTOSA_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/swarm.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/swarm.h
--- linux-2.4.20/include/asm-mips64/sibyte/swarm.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/swarm.h	2003-01-21 23:11:39.000000000 -0600
@@ -21,46 +21,35 @@
 #include <asm/sibyte/sb1250.h>
 #include <asm/sibyte/sb1250_int.h>
 
-#define KERNEL_RESERVED_MEM 0x100000
-
-#define LEDS_CS         3
-
 #ifdef CONFIG_SIBYTE_SWARM
+#define SIBYTE_BOARD_NAME "BCM91250A (SWARM)"
+#endif
+#ifdef CONFIG_SIBYTE_PTSWARM
+#define SIBYTE_BOARD_NAME "PTSWARM"
+#endif
+#ifdef CONFIG_SIBYTE_CRHONE
+#define SIBYTE_BOARD_NAME "BCM91125C (CRhone)"
+#endif
+#ifdef CONFIG_SIBYTE_CRHINE
+#define SIBYTE_BOARD_NAME "BCM91120C (CRhine)"
+#endif
 
 /* Generic bus chip selects */
+#define LEDS_CS         3
+#define LEDS_PHYS       0x100a0000
+#if defined(CONFIG_SIBYTE_SWARM) || defined(CONFIG_SIBYTE_PTSWARM)
 #define IDE_CS          4
+#define IDE_PHYS        0x100b0000
 #define PCMCIA_CS       6
+#define PCMCIA_PHYS     0x11000000
+#endif
 
 /* GPIOs */
+#if defined(CONFIG_SIBYTE_SWARM) || defined(CONFIG_SIBYTE_PTSWARM)
 #define K_GPIO_GB_IDE   4
 #define K_INT_GB_IDE    (K_INT_GPIO_0 + K_GPIO_GB_IDE)
 #define K_GPIO_PC_READY 9
 #define K_INT_PC_READY  (K_INT_GPIO_0 + K_GPIO_PC_READY)
-
-#endif
-
-#ifdef __ASSEMBLY__
-#define setleds(t0,t1,c0,c1,c2,c3) \
-	li	t0, (LED_BASE_ADDR|0xa0000000); \
-	li	t1, c0; \
-	sb	t1, 0x18(t0); \
-	li	t1, c1; \
-	sb	t1, 0x10(t0); \
-	li	t1, c2; \
-	sb	t1, 0x08(t0); \
-	li	t1, c3; \
-	sb	t1, 0x00(t0)
-#else
-void swarm_setup(void);
-void setleds(char *str);
-
-#define AT_spin \
-	__asm__ __volatile__ (		\
-		".set noat\n"		\
-		"li $at, 0\n"		\
-		"1: beqz $at, 1b\n"	\
-		".set at\n"		\
-		)
 #endif
 
 #endif /* __ASM_SIBYTE_SWARM_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/swarm_ide.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/swarm_ide.h
--- linux-2.4.20/include/asm-mips64/sibyte/swarm_ide.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/swarm_ide.h	1969-12-31 18:00:00.000000000 -0600
@@ -1,109 +0,0 @@
-/*
- * Copyright (C) 2001 Broadcom Corporation
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- */
-
-#ifndef _SWARM_IDE_H
-#define _SWARM_IDE_H
-
-#include <asm/sibyte/sb1250_int.h>
-
-#define SWARM_IDE_BASE        (0xb00b0000-mips_io_port_base)
-#define SWARM_IDE_REG(pcaddr) (SWARM_IDE_BASE + ((pcaddr)<<5))
-#define SWARM_IDE_INT         (K_INT_GPIO_4)
-
-extern ide_ideproc_t swarm_ideproc;
-
-#define swarm_outb(val,port)							\
-do {									\
-	*(volatile u8 *)(mips_io_port_base + (port)) = val;	\
-} while(0)
-
-#define swarm_outw(val,port)							\
-do {									\
-	*(volatile u16 *)(mips_io_port_base + (port)) = val;	\
-} while(0)
-
-#define swarm_outl(val,port)							\
-do {									\
-	*(volatile u32 *)(mips_io_port_base + (port)) = val;\
-} while(0)
-
-static inline unsigned char swarm_inb(unsigned long port)
-{
-	return (*(volatile u8 *)(mips_io_port_base + port));
-}
-
-static inline unsigned short swarm_inw(unsigned long port)
-{
-	return (*(volatile u16 *)(mips_io_port_base + port));
-}
-
-static inline unsigned int swarm_inl(unsigned long port)
-{
-	return (*(volatile u32 *)(mips_io_port_base + port));
-}
-
-
-static inline void swarm_outsb(unsigned long port, void *addr, unsigned int count)
-{
-	while (count--) {
-		swarm_outb(*(u8 *)addr, port);
-		addr++;
-	}
-}
-
-static inline void swarm_insb(unsigned long port, void *addr, unsigned int count)
-{
-	while (count--) {
-		*(u8 *)addr = swarm_inb(port);
-		addr++;
-	}
-}
-
-static inline void swarm_outsw(unsigned long port, void *addr, unsigned int count)
-{
-	while (count--) {
-		swarm_outw(*(u16 *)addr, port);
-		addr += 2;
-	}
-}
-
-static inline void swarm_insw(unsigned long port, void *addr, unsigned int count)
-{
-	while (count--) {
-		*(u16 *)addr = swarm_inw(port);
-		addr += 2;
-	}
-}
-
-static inline void swarm_outsl(unsigned long port, void *addr, unsigned int count)
-{
-	while (count--) {
-		swarm_outl(*(u32 *)addr, port);
-		addr += 4;
-	}
-}
-
-static inline void swarm_insl(unsigned long port, void *addr, unsigned int count)
-{
-	while (count--) {
-		*(u32 *)addr = swarm_inl(port);
-		addr += 4;
-	}
-}
-
-#endif
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/trace_prof.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/trace_prof.h
--- linux-2.4.20/include/asm-mips64/sibyte/trace_prof.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/trace_prof.h	2003-02-07 16:00:22.000000000 -0600
@@ -0,0 +1,109 @@
+/*
+ * Copyright (C) 2001 Broadcom Corporation
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+#ifndef __ASM_SIBYTE_TRACE_PROF_H
+#define __ASM_SIBYTE_TRACE_PROF_H
+
+#if SBPROF_TB_DEBUG
+#define DBG(a) a
+#else
+#define DBG(a)
+#endif
+
+#define SBPROF_TB_MAJOR 240
+#define DEVNAME "bcm1250_tbprof"
+
+typedef u_int64_t tb_sample_t[6*256];
+
+struct sbprof_tb {
+	int          open;
+	tb_sample_t *sbprof_tbbuf;
+	int          next_tb_sample;
+
+	volatile int tb_enable;
+	volatile int tb_armed;
+
+	wait_queue_head_t tb_sync;
+	wait_queue_head_t tb_read;
+};
+
+#define MAX_SAMPLE_BYTES (24*1024*1024)
+#define MAX_TBSAMPLE_BYTES (12*1024*1024)
+
+#define MAX_SAMPLES (MAX_SAMPLE_BYTES/sizeof(u_int32_t))
+#define TB_SAMPLE_SIZE (sizeof(tb_sample_t))
+#define MAX_TB_SAMPLES (MAX_TBSAMPLE_BYTES/TB_SAMPLE_SIZE)
+
+/* IOCTLs */
+#define SBPROF_ZBSTART		_IOW('s', 0, int)
+#define SBPROF_ZBSTOP		_IOW('s', 1, int)
+#define SBPROF_ZBWAITFULL	_IOW('s', 2, int)
+
+/***************************************************************************
+ * Routines for gathering ZBbus profiles using trace buffer
+ ***************************************************************************/
+
+/* Requires: Already called zclk_timer_init with a value that won't
+	     saturate 40 bits.  No subsequent use of SCD performance counters
+	     or trace buffer.
+   Effect:   Starts gathering random ZBbus profiles using trace buffer. */
+static int sbprof_zbprof_start(struct file *filp);
+
+/* Effect: Stops collection of ZBbus profiles */
+static int sbprof_zbprof_stop(void);
+
+
+/***************************************************************************
+ * Routines for using 40-bit SCD cycle counter
+ *
+ * Client responsible for either handling interrupts or making sure
+ * the cycles counter never saturates, e.g., by doing
+ * zclk_timer_init(0) at least every 2^40 - 1 ZCLKs.
+ ***************************************************************************/
+
+/* Configures SCD counter 0 to count ZCLKs starting from val;
+   Configures SCD counters1,2,3 to count nothing.
+   Must not be called while gathering ZBbus profiles.
+
+unsigned long long val; */
+#define zclk_timer_init(val) \
+  __asm__ __volatile__ (".set push;" \
+			".set mips64;" \
+			"la   $8, 0xb00204c0;" /* SCD perf_cnt_cfg */ \
+			"sd   %0, 0x10($8);"   /* write val to counter0 */ \
+			"sd   %1, 0($8);"      /* config counter0 for zclks*/ \
+			".set pop" \
+			: /* no outputs */ \
+						     /* enable, counter0 */ \
+			: /* inputs */ "r"(val), "r" ((1ULL << 33) | 1ULL) \
+			: /* modifies */ "$8" )
+
+
+/* Reads SCD counter 0 and puts result in value
+   unsigned long long val; */
+#define zclk_get(val) \
+  __asm__ __volatile__ (".set push;" \
+			".set mips64;" \
+			"la   $8, 0xb00204c0;" /* SCD perf_cnt_cfg */ \
+			"ld   %0, 0x10($8);"   /* write val to counter0 */ \
+			".set pop" \
+			: /* outputs */ "=r"(val) \
+			: /* inputs */ \
+			: /* modifies */ "$8" )
+
+#endif /* __ASM_SIBYTE_TRACE_PROF_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sigcontext.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sigcontext.h
--- linux-2.4.20/include/asm-mips64/sigcontext.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sigcontext.h	2002-11-04 13:39:56.000000000 -0600
@@ -20,7 +20,6 @@
 	unsigned long long sc_mdlo;
 	unsigned long long sc_pc;
 	unsigned int       sc_status;
-	unsigned int       sc_ownedfp;
 	unsigned int       sc_fpc_csr;
 	unsigned int       sc_fpc_eir;
 	unsigned int       sc_used_math;
diff -urNd -urNd linux-2.4.20/include/asm-mips64/signal.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/signal.h
--- linux-2.4.20/include/asm-mips64/signal.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/signal.h	2003-01-27 13:19:13.000000000 -0600
@@ -16,9 +16,17 @@
 #define _NSIG_WORDS	(_NSIG / _NSIG_BPW)
 
 typedef struct {
-	long sig[_NSIG_WORDS];
+	unsigned long sig[_NSIG_WORDS];
 } sigset_t;
 
+#define _NSIG32		128
+#define _NSIG_BPW32	32
+#define _NSIG_WORDS32	(_NSIG32 / _NSIG_BPW32)
+
+typedef struct {
+	unsigned int sig[_NSIG_WORDS32];
+} sigset_t32;
+
 typedef unsigned long old_sigset_t;		/* at least 32 bits */
 typedef unsigned int old_sigset_t32;
 
@@ -87,7 +95,7 @@
 #define SA_ONESHOT	SA_RESETHAND
 #define SA_INTERRUPT	0x20000000	/* dummy -- ignored */
 
-#define SA_RESTORER	0x04000000
+#define SA_RESTORER	0x04000000	/* Only for o32 compat code */
 
 /*
  * sigaltstack controls
diff -urNd -urNd linux-2.4.20/include/asm-mips64/smp.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/smp.h
--- linux-2.4.20/include/asm-mips64/smp.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/smp.h	2002-11-28 18:11:36.000000000 -0600
@@ -1,20 +1,33 @@
 /*
- * This file is subject to the terms and conditions of the GNU General
- * Public License.  See the file "COPYING" in the main directory of this
- * archive for more details.
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  *
  * Copyright (C) 2000 - 2001 by Kanoj Sarcar (kanoj@sgi.com)
+ * Copyright (C) 2000, 2001, 2002 by Ralf Baechle
  * Copyright (C) 2000 - 2001 by Silicon Graphics, Inc.
+ * Copyright (C) 2000, 2001 Broadcom Corporation
  */
-#ifndef __ASM_SMP_H
-#define __ASM_SMP_H
+#ifndef _ASM_SMP_H
+#define _ASM_SMP_H
 
 #include <linux/config.h>
 
 #ifdef CONFIG_SMP
 
 #include <linux/threads.h>
-#include <linux/irq.h>
+#include <asm/atomic.h>
+#include <asm/current.h>
 
 #define smp_processor_id()	(current->processor)
 
@@ -29,8 +42,6 @@
 extern int __cpu_logical_map[NR_CPUS];
 #define cpu_logical_map(cpu)  __cpu_logical_map[cpu]
 
-#endif
-
 #define NO_PROC_ID	(-1)
 
 #define SMP_RESCHEDULE_YOURSELF	0x1	/* XXX braindead */
@@ -40,7 +51,7 @@
 
 typedef unsigned long   cpumask_t;
 
-#define CPUMASK_CLRALL(p)	(p) = 0
+#define CPUMASK_CLRALL(p)	do { (p) = 0; } while(0)
 #define CPUMASK_SETB(p, bit)	(p) |= 1UL << (bit)
 #define CPUMASK_CLRB(p, bit)	(p) &= ~(1UL << (bit))
 #define CPUMASK_TSTB(p, bit)	((p) & (1UL << (bit)))
@@ -82,4 +93,5 @@
 
 extern cpumask_t cpu_online_map;
 
-#endif /* __ASM_SMP_H */
+#endif /* CONFIG_SMP */
+#endif /* _ASM_SMP_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sn/addrs.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/addrs.h
--- linux-2.4.20/include/asm-mips64/sn/addrs.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/addrs.h	2002-11-28 17:13:48.000000000 -0600
@@ -254,14 +254,6 @@
  * for _x.
  */
 
-#ifdef _STANDALONE
-
-/* DO NOT USE THESE DIRECTLY IN THE KERNEL. SEE BELOW. */
-#define LOCAL_HUB(_x)		(HUBREG_CAST (IALIAS_BASE + (_x)))
-#define REMOTE_HUB(_n, _x)	(HUBREG_CAST (NODE_SWIN_BASE(_n, 1) +	\
-					      0x800000 + (_x)))
-#endif /* _STANDALONE */
-
 /*
  * WARNING:
  *	When certain Hub chip workaround are defined, it's not sufficient
@@ -328,20 +320,6 @@
 	PHYS_TO_K0(NODE_OFFSET(nasid) | ARCS_SPB_OFFSET)
 #define ARCS_SPB_SIZE		0x0400
 
-#ifdef _STANDALONE
-
-#define ARCS_TVECTOR_OFFSET	0x2800
-#define ARCS_PVECTOR_OFFSET	0x2c00
-
-/*
- * These addresses are used by the master CPU to install the transfer
- * and private vectors.  All others use the SPB to find them.
- */
-#define TVADDR	(NODE_CAC_BASE(get_nasid()) + ARCS_TVECTOR_OFFSET)
-#define PVADDR	(NODE_CAC_BASE(get_nasid()) + ARCS_PVECTOR_OFFSET)
-
-#endif /* _STANDALONE */
-
 #define KLDIR_OFFSET		0x2000
 #define KLDIR_ADDR(nasid)						\
 	TO_NODE_UNCAC((nasid), KLDIR_OFFSET)
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sn/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/CVS/Entries
--- linux-2.4.20/include/asm-mips64/sn/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/CVS/Entries	2005-01-06 23:08:09.000000000 -0600
@@ -0,0 +1,17 @@
+/addrs.h/1.6.4.2/Thu Nov 28 23:13:48 2002/-ko/Tlinux_2_4_20
+/agent.h/1.4/Wed Jul 12 00:23:43 2000/-ko/Tlinux_2_4_20
+/arch.h/1.8.2.1/Thu Jun 27 14:21:24 2002/-ko/Tlinux_2_4_20
+/gda.h/1.3.2.2/Mon Aug  5 23:53:40 2002/-ko/Tlinux_2_4_20
+/intr.h/1.3.4.2/Mon Aug  5 23:53:40 2002//Tlinux_2_4_20
+/intr_public.h/1.2.4.2/Mon Aug  5 23:53:40 2002//Tlinux_2_4_20
+/io.h/1.4.4.1/Mon Aug  5 23:53:40 2002/-ko/Tlinux_2_4_20
+/ioc3.h/1.3/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
+/klconfig.h/1.8.2.1/Mon Aug  5 23:53:40 2002/-ko/Tlinux_2_4_20
+/kldir.h/1.3.4.2/Mon Aug  5 23:53:40 2002/-ko/Tlinux_2_4_20
+/klkernvars.h/1.2.4.1/Thu Jun 27 14:21:24 2002//Tlinux_2_4_20
+/launch.h/1.4.2.2/Tue Nov 26 12:33:06 2002//Tlinux_2_4_20
+/mapped_kernel.h/1.6.4.1/Mon Aug  5 23:53:40 2002//Tlinux_2_4_20
+/nmi.h/1.2.4.2/Mon Aug  5 23:53:40 2002//Tlinux_2_4_20
+/sn_private.h/1.6/Tue Jun 13 01:13:50 2000//Tlinux_2_4_20
+/types.h/1.6/Mon Jul  9 00:25:38 2001/-ko/Tlinux_2_4_20
+D/sn0////
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sn/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/CVS/Repository
--- linux-2.4.20/include/asm-mips64/sn/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/CVS/Repository	2005-01-06 23:06:54.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-mips64/sn
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sn/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/CVS/Root
--- linux-2.4.20/include/asm-mips64/sn/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/CVS/Root	2005-01-06 23:06:54.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sn/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/CVS/Tag
--- linux-2.4.20/include/asm-mips64/sn/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/CVS/Tag	2005-01-06 23:06:55.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sn/launch.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/launch.h
--- linux-2.4.20/include/asm-mips64/sn/launch.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/launch.h	2002-11-26 06:33:06.000000000 -0600
@@ -102,21 +102,6 @@
 #define LAUNCH_FLASH	(*(void (*)(void)) \
 			 IP27PROM_FLASHLEDS)
 
-#ifdef _STANDALONE
-
-launch_t       *launch_get(int nasid, int cpu);
-launch_t       *launch_get_current(void);
-void		launch_loop(void);
-void		launch_slave(int nasid, int cpu,
-			     launch_proc_t call_addr,
-			     __int64_t call_parm,
-			     void *stack_addr,
-			     void *gp_addr);
-int		launch_wait(int nasid, int cpu, int timeout_msec);
-launch_state_t	launch_poll(int nasid, int cpu);
-
-#endif /* _STANDALONE */
-
 #endif /* !__ASSEMBLY__ */
 
 #endif /* _ASM_SN_LAUNCH_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sn/sn0/addrs.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/sn0/addrs.h
--- linux-2.4.20/include/asm-mips64/sn/sn0/addrs.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/sn0/addrs.h	2002-11-28 17:13:01.000000000 -0600
@@ -45,11 +45,11 @@
 #define HSPEC_BASE		0x9000000000000000
 #define IO_BASE			0x9200000000000000
 #define MSPEC_BASE		0x9400000000000000
-#define UNCAC_BASE		0x9600000000000000
+#define __UNCAC_BASE		0x9600000000000000
 
 #define TO_PHYS(x)		(	      ((x) & TO_PHYS_MASK))
 #define TO_CAC(x)		(CAC_BASE   | ((x) & TO_PHYS_MASK))
-#define TO_UNCAC(x)		(UNCAC_BASE | ((x) & TO_PHYS_MASK))
+#define TO_UNCAC(x)		(__UNCAC_BASE | ((x) & TO_PHYS_MASK))
 #define TO_MSPEC(x)		(MSPEC_BASE | ((x) & TO_PHYS_MASK))
 #define TO_HSPEC(x)		(HSPEC_BASE | ((x) & TO_PHYS_MASK))
 
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sn/sn0/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/sn0/CVS/Entries
--- linux-2.4.20/include/asm-mips64/sn/sn0/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/sn0/CVS/Entries	2005-01-06 23:06:55.000000000 -0600
@@ -0,0 +1,10 @@
+/addrs.h/1.2.2.2/Thu Nov 28 23:13:01 2002/-ko/Tlinux_2_4_20
+/arch.h/1.2.2.1/Mon Aug  5 23:53:40 2002/-ko/Tlinux_2_4_20
+/hub.h/1.2/Mon Jul  9 00:25:38 2001/-ko/Tlinux_2_4_20
+/hubio.h/1.2.2.3/Mon Sep  2 14:44:00 2002/-ko/Tlinux_2_4_20
+/hubmd.h/1.3.2.3/Tue Nov 26 12:28:46 2002/-ko/Tlinux_2_4_20
+/hubni.h/1.2.2.1/Thu Jun 27 14:21:24 2002/-ko/Tlinux_2_4_20
+/hubpi.h/1.2.2.2/Mon Aug  5 23:53:40 2002/-ko/Tlinux_2_4_20
+/ip27.h/1.9.2.1/Thu Jun 27 14:21:24 2002/-ko/Tlinux_2_4_20
+/sn0_fru.h/1.2.2.1/Mon Aug  5 23:53:40 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sn/sn0/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/sn0/CVS/Repository
--- linux-2.4.20/include/asm-mips64/sn/sn0/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/sn0/CVS/Repository	2005-01-06 23:06:55.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-mips64/sn/sn0
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sn/sn0/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/sn0/CVS/Root
--- linux-2.4.20/include/asm-mips64/sn/sn0/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/sn0/CVS/Root	2005-01-06 23:06:55.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sn/sn0/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/sn0/CVS/Tag
--- linux-2.4.20/include/asm-mips64/sn/sn0/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/sn0/CVS/Tag	2005-01-06 23:06:55.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-mips64/sn/sn0/hubmd.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/sn0/hubmd.h
--- linux-2.4.20/include/asm-mips64/sn/sn0/hubmd.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/sn0/hubmd.h	2002-11-26 06:28:46.000000000 -0600
@@ -425,7 +425,6 @@
  */
 
 #ifndef __ASSEMBLY__
-#ifndef _STANDALONE
 
 /*
  * LED register macros
@@ -538,8 +537,6 @@
 #define MD_SPROT_MIGMD_GET(value) ( \
 	((value) & MD_SPROT_MIGMD_MASK) >> MD_SPROT_MIGMD_SHFT)
 
-#endif /* _STANDALONE */
-
 /*
  * Format of dir_error, mem_error, protocol_error and misc_error registers
  */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/stackframe.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/stackframe.h
--- linux-2.4.20/include/asm-mips64/stackframe.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/stackframe.h	2003-01-28 08:31:33.000000000 -0600
@@ -135,11 +135,11 @@
 		sd	k0, PT_R29(sp)
 		sd	$3, PT_R3(sp)
 		sd	$0, PT_R0(sp)
-		dmfc0	v1, CP0_STATUS
+		mfc0	v1, CP0_STATUS
 		sd	$2, PT_R2(sp)
 		sd	v1, PT_STATUS(sp)
 		sd	$4, PT_R4(sp)
-		dmfc0	v1, CP0_CAUSE
+		mfc0	v1, CP0_CAUSE
 		sd	$5, PT_R5(sp)
 		sd	v1, PT_CAUSE(sp)
 		sd	$6, PT_R6(sp)
@@ -214,7 +214,7 @@
 		nor	v1, $0, v1
 		and	v0, v1
 		or	v0, t0
-		dmtc0	v0, CP0_STATUS
+		mtc0	v0, CP0_STATUS
 		ld	v1, PT_EPC(sp)
 		dmtc0	v1, CP0_EPC
 		ld	$31, PT_R31(sp)
diff -urNd -urNd linux-2.4.20/include/asm-mips64/stat.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/stat.h
--- linux-2.4.20/include/asm-mips64/stat.h	2000-11-28 23:42:04.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/stat.h	2002-11-21 06:38:57.000000000 -0600
@@ -11,23 +11,6 @@
 
 #include <linux/types.h>
 
-struct __old_kernel_stat {
-	unsigned int	st_dev;
-	unsigned int	st_ino;
-	unsigned int	st_mode;
-	unsigned int	st_nlink;
-	unsigned int	st_uid;
-	unsigned int	st_gid;
-	unsigned int	st_rdev;
-	long		st_size;
-	unsigned int	st_atime, st_res1;
-	unsigned int	st_mtime, st_res2;
-	unsigned int	st_ctime, st_res3;
-	unsigned int	st_blksize;
-	int		st_blocks;
-	unsigned int	st_unused[2];
-};
-
 struct stat32 {
 	__kernel_dev_t32    st_dev;
 	int		    st_pad1[3];
diff -urNd -urNd linux-2.4.20/include/asm-mips64/system.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/system.h
--- linux-2.4.20/include/asm-mips64/system.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/system.h	2002-11-04 13:39:56.000000000 -0600
@@ -222,25 +222,8 @@
 
 struct task_struct;
 
-extern asmlinkage void lazy_fpu_switch(void *, void *);
-extern asmlinkage void init_fpu(void);
-extern asmlinkage void save_fp(struct task_struct *);
-extern asmlinkage void restore_fp(struct task_struct *);
-
-#ifdef CONFIG_SMP
-#define SWITCH_DO_LAZY_FPU \
-	if (prev->flags & PF_USEDFPU) { \
-		lazy_fpu_switch(prev, 0); \
-		clear_cp0_status(ST0_CU1); \
-		prev->flags &= ~PF_USEDFPU; \
-	}
-#else /* CONFIG_SMP */
-#define SWITCH_DO_LAZY_FPU	do { } while(0)
-#endif /* CONFIG_SMP */
-
 #define switch_to(prev,next,last) \
 do { \
-	SWITCH_DO_LAZY_FPU; \
 	(last) = resume(prev, next); \
 } while(0)
 
diff -urNd -urNd linux-2.4.20/include/asm-mips64/timex.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/timex.h
--- linux-2.4.20/include/asm-mips64/timex.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/timex.h	2002-12-01 18:24:54.000000000 -0600
@@ -10,6 +10,8 @@
 #ifndef _ASM_TIMEX_H
 #define _ASM_TIMEX_H
 
+#include <asm/mipsregs.h>
+
 #define CLOCK_TICK_RATE	1193180 /* Underlying HZ */
 #define CLOCK_TICK_FACTOR	20	/* Factor of both 1000000 and CLOCK_TICK_RATE */
 #define FINETUNE ((((((long)LATCH * HZ - CLOCK_TICK_RATE) << SHIFT_HZ) * \
@@ -32,15 +34,7 @@
 
 static inline cycles_t get_cycles (void)
 {
-	cycles_t val;
-
-	__asm__ __volatile__(
-		".set noreorder\n\t"
-		"mfc0 %0, $9\n\t"
-		".set reorder"
-		: "=r" (val));
-
-	return val;
+	return read_c0_count();
 }
 
 #define vxtime_lock()		do {} while (0)
diff -urNd -urNd linux-2.4.20/include/asm-mips64/tlbdebug.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/tlbdebug.h
--- linux-2.4.20/include/asm-mips64/tlbdebug.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/tlbdebug.h	2002-09-15 18:32:24.000000000 -0500
@@ -0,0 +1,20 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * Copyright (C) 2002 by Ralf Baechle
+ */
+#ifndef __ASM_TLBDEBUG_H
+#define __ASM_TLBDEBUG_H
+
+/*
+ * TLB debugging functions:
+ */
+extern void dump_tlb(int first, int last);
+extern void dump_tlb_all(void);
+extern void dump_tlb_wired(void);
+extern void dump_tlb_addr(unsigned long addr);
+extern void dump_tlb_nonwired(void);
+
+#endif /* __ASM_TLBDEBUG_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/uaccess.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/uaccess.h
--- linux-2.4.20/include/asm-mips64/uaccess.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/uaccess.h	2002-12-09 15:24:13.000000000 -0600
@@ -22,8 +22,8 @@
  *
  * For historical reasons, these macros are grossly misnamed.
  */
-#define KERNEL_DS	((mm_segment_t) { (unsigned long) 0L })
-#define USER_DS		((mm_segment_t) { (unsigned long) -1L })
+#define KERNEL_DS	((mm_segment_t) { 0UL })
+#define USER_DS		((mm_segment_t) { -TASK_SIZE })
 
 #define VERIFY_READ    0
 #define VERIFY_WRITE   1
@@ -46,19 +46,19 @@
  *  - OR we are in kernel mode.
  */
 #define __ua_size(size)							\
-	(__builtin_constant_p(size) && (signed long) (size) > 0 ? 0 : (size))
+	((__builtin_constant_p(size) && (size)) > 0 ? 0 : (size))
 
-#define __access_ok(addr,size,mask)					\
-	(((signed long)((mask)&(addr | (addr + size) | __ua_size(size)))) >= 0)
+#define __access_ok(addr, size, mask)					\
+	(((mask) & ((addr) | ((addr) + (size)) | __ua_size(size))) == 0)
 
-#define __access_mask ((long)(get_fs().seg))
+#define __access_mask get_fs().seg
 
-#define access_ok(type,addr,size) \
-	__access_ok(((unsigned long)(addr)),(size),__access_mask)
+#define access_ok(type, addr, size)					\
+	__access_ok((unsigned long)(addr), (size), __access_mask)
 
 static inline int verify_area(int type, const void * addr, unsigned long size)
 {
-	return access_ok(type,addr,size) ? 0 : -EFAULT;
+	return access_ok(type, addr, size) ? 0 : -EFAULT;
 }
 
 /*
@@ -340,8 +340,8 @@
 ({								\
 	void * __cl_addr = (addr);				\
 	unsigned long __cl_size = (n);				\
-	if (__cl_size && __access_ok(VERIFY_WRITE,		\
-	       ((unsigned long)(__cl_addr)), __cl_size))	\
+	if (__cl_size && access_ok(VERIFY_WRITE,		\
+		((unsigned long)(__cl_addr)), __cl_size))	\
 		__cl_size = __clear_user(__cl_addr, __cl_size);	\
 	__cl_size;						\
 })
diff -urNd -urNd linux-2.4.20/include/asm-mips64/unaligned.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/unaligned.h
--- linux-2.4.20/include/asm-mips64/unaligned.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/unaligned.h	2002-10-02 08:23:43.000000000 -0500
@@ -55,7 +55,7 @@
 }
 
 /*
- * Store quad ununaligned.
+ * Store quad unaligned.
  */
 static inline void __stq_u(unsigned long __val, unsigned long * __addr)
 {
@@ -65,7 +65,7 @@
 }
 
 /*
- * Store long ununaligned.
+ * Store long unaligned.
  */
 static inline void __stl_u(unsigned long __val, unsigned int * __addr)
 {
@@ -75,7 +75,7 @@
 }
 
 /*
- * Store word ununaligned.
+ * Store word unaligned.
  */
 static inline void __stw_u(unsigned long __val, unsigned short * __addr)
 {
diff -urNd -urNd linux-2.4.20/include/asm-mips64/unistd.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/unistd.h
--- linux-2.4.20/include/asm-mips64/unistd.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/unistd.h	2002-11-06 15:00:09.000000000 -0600
@@ -15,497 +15,674 @@
 /*
  * Linux o32 style syscalls are in the range from 4000 to 4999.
  */
-#define __NR_Linux32			4000
-#define __NR_Linux32_syscall		(__NR_Linux32 +   0)
-#define __NR_Linux32_exit		(__NR_Linux32 +   1)
-#define __NR_Linux32_fork		(__NR_Linux32 +   2)
-#define __NR_Linux32_read		(__NR_Linux32 +   3)
-#define __NR_Linux32_write		(__NR_Linux32 +   4)
-#define __NR_Linux32_open		(__NR_Linux32 +   5)
-#define __NR_Linux32_close		(__NR_Linux32 +   6)
-#define __NR_Linux32_waitpid		(__NR_Linux32 +   7)
-#define __NR_Linux32_creat		(__NR_Linux32 +   8)
-#define __NR_Linux32_link		(__NR_Linux32 +   9)
-#define __NR_Linux32_unlink		(__NR_Linux32 +  10)
-#define __NR_Linux32_execve		(__NR_Linux32 +  11)
-#define __NR_Linux32_chdir		(__NR_Linux32 +  12)
-#define __NR_Linux32_time		(__NR_Linux32 +  13)
-#define __NR_Linux32_mknod		(__NR_Linux32 +  14)
-#define __NR_Linux32_chmod		(__NR_Linux32 +  15)
-#define __NR_Linux32_lchown		(__NR_Linux32 +  16)
-#define __NR_Linux32_break		(__NR_Linux32 +  17)
-#define __NR_Linux32_oldstat		(__NR_Linux32 +  18)
-#define __NR_Linux32_lseek		(__NR_Linux32 +  19)
-#define __NR_Linux32_getpid		(__NR_Linux32 +  20)
-#define __NR_Linux32_mount		(__NR_Linux32 +  21)
-#define __NR_Linux32_umount		(__NR_Linux32 +  22)
-#define __NR_Linux32_setuid		(__NR_Linux32 +  23)
-#define __NR_Linux32_getuid		(__NR_Linux32 +  24)
-#define __NR_Linux32_stime		(__NR_Linux32 +  25)
-#define __NR_Linux32_ptrace		(__NR_Linux32 +  26)
-#define __NR_Linux32_alarm		(__NR_Linux32 +  27)
-#define __NR_Linux32_oldfstat		(__NR_Linux32 +  28)
-#define __NR_Linux32_pause		(__NR_Linux32 +  29)
-#define __NR_Linux32_utime		(__NR_Linux32 +  30)
-#define __NR_Linux32_stty		(__NR_Linux32 +  31)
-#define __NR_Linux32_gtty		(__NR_Linux32 +  32)
-#define __NR_Linux32_access		(__NR_Linux32 +  33)
-#define __NR_Linux32_nice		(__NR_Linux32 +  34)
-#define __NR_Linux32_ftime		(__NR_Linux32 +  35)
-#define __NR_Linux32_sync		(__NR_Linux32 +  36)
-#define __NR_Linux32_kill		(__NR_Linux32 +  37)
-#define __NR_Linux32_rename		(__NR_Linux32 +  38)
-#define __NR_Linux32_mkdir		(__NR_Linux32 +  39)
-#define __NR_Linux32_rmdir		(__NR_Linux32 +  40)
-#define __NR_Linux32_dup		(__NR_Linux32 +  41)
-#define __NR_Linux32_pipe		(__NR_Linux32 +  42)
-#define __NR_Linux32_times		(__NR_Linux32 +  43)
-#define __NR_Linux32_prof		(__NR_Linux32 +  44)
-#define __NR_Linux32_brk		(__NR_Linux32 +  45)
-#define __NR_Linux32_setgid		(__NR_Linux32 +  46)
-#define __NR_Linux32_getgid		(__NR_Linux32 +  47)
-#define __NR_Linux32_signal		(__NR_Linux32 +  48)
-#define __NR_Linux32_geteuid		(__NR_Linux32 +  49)
-#define __NR_Linux32_getegid		(__NR_Linux32 +  50)
-#define __NR_Linux32_acct		(__NR_Linux32 +  51)
-#define __NR_Linux32_umount2		(__NR_Linux32 +  52)
-#define __NR_Linux32_lock		(__NR_Linux32 +  53)
-#define __NR_Linux32_ioctl		(__NR_Linux32 +  54)
-#define __NR_Linux32_fcntl		(__NR_Linux32 +  55)
-#define __NR_Linux32_mpx		(__NR_Linux32 +  56)
-#define __NR_Linux32_setpgid		(__NR_Linux32 +  57)
-#define __NR_Linux32_ulimit		(__NR_Linux32 +  58)
-#define __NR_Linux32_unused59		(__NR_Linux32 +  59)
-#define __NR_Linux32_umask		(__NR_Linux32 +  60)
-#define __NR_Linux32_chroot		(__NR_Linux32 +  61)
-#define __NR_Linux32_ustat		(__NR_Linux32 +  62)
-#define __NR_Linux32_dup2		(__NR_Linux32 +  63)
-#define __NR_Linux32_getppid		(__NR_Linux32 +  64)
-#define __NR_Linux32_getpgrp		(__NR_Linux32 +  65)
-#define __NR_Linux32_setsid		(__NR_Linux32 +  66)
-#define __NR_Linux32_sigaction		(__NR_Linux32 +  67)
-#define __NR_Linux32_sgetmask		(__NR_Linux32 +  68)
-#define __NR_Linux32_ssetmask		(__NR_Linux32 +  69)
-#define __NR_Linux32_setreuid		(__NR_Linux32 +  70)
-#define __NR_Linux32_setregid		(__NR_Linux32 +  71)
-#define __NR_Linux32_sigsuspend		(__NR_Linux32 +  72)
-#define __NR_Linux32_sigpending		(__NR_Linux32 +  73)
-#define __NR_Linux32_sethostname	(__NR_Linux32 +  74)
-#define __NR_Linux32_setrlimit		(__NR_Linux32 +  75)
-#define __NR_Linux32_getrlimit		(__NR_Linux32 +  76)
-#define __NR_Linux32_getrusage		(__NR_Linux32 +  77)
-#define __NR_Linux32_gettimeofday	(__NR_Linux32 +  78)
-#define __NR_Linux32_settimeofday	(__NR_Linux32 +  79)
-#define __NR_Linux32_getgroups		(__NR_Linux32 +  80)
-#define __NR_Linux32_setgroups		(__NR_Linux32 +  81)
-#define __NR_Linux32_reserved82		(__NR_Linux32 +  82)
-#define __NR_Linux32_symlink		(__NR_Linux32 +  83)
-#define __NR_Linux32_oldlstat		(__NR_Linux32 +  84)
-#define __NR_Linux32_readlink		(__NR_Linux32 +  85)
-#define __NR_Linux32_uselib		(__NR_Linux32 +  86)
-#define __NR_Linux32_swapon		(__NR_Linux32 +  87)
-#define __NR_Linux32_reboot		(__NR_Linux32 +  88)
-#define __NR_Linux32_readdir		(__NR_Linux32 +  89)
-#define __NR_Linux32_mmap		(__NR_Linux32 +  90)
-#define __NR_Linux32_munmap		(__NR_Linux32 +  91)
-#define __NR_Linux32_truncate		(__NR_Linux32 +  92)
-#define __NR_Linux32_ftruncate		(__NR_Linux32 +  93)
-#define __NR_Linux32_fchmod		(__NR_Linux32 +  94)
-#define __NR_Linux32_fchown		(__NR_Linux32 +  95)
-#define __NR_Linux32_getpriority	(__NR_Linux32 +  96)
-#define __NR_Linux32_setpriority	(__NR_Linux32 +  97)
-#define __NR_Linux32_profil		(__NR_Linux32 +  98)
-#define __NR_Linux32_statfs		(__NR_Linux32 +  99)
-#define __NR_Linux32_fstatfs		(__NR_Linux32 + 100)
-#define __NR_Linux32_ioperm		(__NR_Linux32 + 101)
-#define __NR_Linux32_socketcall		(__NR_Linux32 + 102)
-#define __NR_Linux32_syslog		(__NR_Linux32 + 103)
-#define __NR_Linux32_setitimer		(__NR_Linux32 + 104)
-#define __NR_Linux32_getitimer		(__NR_Linux32 + 105)
-#define __NR_Linux32_stat		(__NR_Linux32 + 106)
-#define __NR_Linux32_lstat		(__NR_Linux32 + 107)
-#define __NR_Linux32_fstat		(__NR_Linux32 + 108)
-#define __NR_Linux32_unused109		(__NR_Linux32 + 109)
-#define __NR_Linux32_iopl		(__NR_Linux32 + 110)
-#define __NR_Linux32_vhangup		(__NR_Linux32 + 111)
-#define __NR_Linux32_idle		(__NR_Linux32 + 112)
-#define __NR_Linux32_vm86		(__NR_Linux32 + 113)
-#define __NR_Linux32_wait4		(__NR_Linux32 + 114)
-#define __NR_Linux32_swapoff		(__NR_Linux32 + 115)
-#define __NR_Linux32_sysinfo		(__NR_Linux32 + 116)
-#define __NR_Linux32_ipc		(__NR_Linux32 + 117)
-#define __NR_Linux32_fsync		(__NR_Linux32 + 118)
-#define __NR_Linux32_sigreturn		(__NR_Linux32 + 119)
-#define __NR_Linux32_clone		(__NR_Linux32 + 120)
-#define __NR_Linux32_setdomainname	(__NR_Linux32 + 121)
-#define __NR_Linux32_uname		(__NR_Linux32 + 122)
-#define __NR_Linux32_modify_ldt		(__NR_Linux32 + 123)
-#define __NR_Linux32_adjtimex		(__NR_Linux32 + 124)
-#define __NR_Linux32_mprotect		(__NR_Linux32 + 125)
-#define __NR_Linux32_sigprocmask	(__NR_Linux32 + 126)
-#define __NR_Linux32_create_module	(__NR_Linux32 + 127)
-#define __NR_Linux32_init_module	(__NR_Linux32 + 128)
-#define __NR_Linux32_delete_module	(__NR_Linux32 + 129)
-#define __NR_Linux32_get_kernel_syms	(__NR_Linux32 + 130)
-#define __NR_Linux32_quotactl		(__NR_Linux32 + 131)
-#define __NR_Linux32_getpgid		(__NR_Linux32 + 132)
-#define __NR_Linux32_fchdir		(__NR_Linux32 + 133)
-#define __NR_Linux32_bdflush		(__NR_Linux32 + 134)
-#define __NR_Linux32_sysfs		(__NR_Linux32 + 135)
-#define __NR_Linux32_personality	(__NR_Linux32 + 136)
-#define __NR_Linux32_afs_syscall	(__NR_Linux32 + 137) /* Syscall for Andrew File System */
-#define __NR_Linux32_setfsuid		(__NR_Linux32 + 138)
-#define __NR_Linux32_setfsgid		(__NR_Linux32 + 139)
-#define __NR_Linux32__llseek		(__NR_Linux32 + 140)
-#define __NR_Linux32_getdents		(__NR_Linux32 + 141)
-#define __NR_Linux32__newselect		(__NR_Linux32 + 142)
-#define __NR_Linux32_flock		(__NR_Linux32 + 143)
-#define __NR_Linux32_msync		(__NR_Linux32 + 144)
-#define __NR_Linux32_readv		(__NR_Linux32 + 145)
-#define __NR_Linux32_writev		(__NR_Linux32 + 146)
-#define __NR_Linux32_cacheflush		(__NR_Linux32 + 147)
-#define __NR_Linux32_cachectl		(__NR_Linux32 + 148)
-#define __NR_Linux32_sysmips		(__NR_Linux32 + 149)
-#define __NR_Linux32_unused150		(__NR_Linux32 + 150)
-#define __NR_Linux32_getsid		(__NR_Linux32 + 151)
-#define __NR_Linux32_fdatasync		(__NR_Linux32 + 152)
-#define __NR_Linux32__sysctl		(__NR_Linux32 + 153)
-#define __NR_Linux32_mlock		(__NR_Linux32 + 154)
-#define __NR_Linux32_munlock		(__NR_Linux32 + 155)
-#define __NR_Linux32_mlockall		(__NR_Linux32 + 156)
-#define __NR_Linux32_munlockall		(__NR_Linux32 + 157)
-#define __NR_Linux32_sched_setparam	(__NR_Linux32 + 158)
-#define __NR_Linux32_sched_getparam	(__NR_Linux32 + 159)
-#define __NR_Linux32_sched_setscheduler	(__NR_Linux32 + 160)
-#define __NR_Linux32_sched_getscheduler	(__NR_Linux32 + 161)
-#define __NR_Linux32_sched_yield	(__NR_Linux32 + 162)
-#define __NR_Linux32_sched_get_priority_max	(__NR_Linux32 + 163)
-#define __NR_Linux32_sched_get_priority_min	(__NR_Linux32 + 164)
-#define __NR_Linux32_sched_rr_get_interval	(__NR_Linux32 + 165)
-#define __NR_Linux32_nanosleep		(__NR_Linux32 + 166)
-#define __NR_Linux32_mremap		(__NR_Linux32 + 167)
-#define __NR_Linux32_accept		(__NR_Linux32 + 168)
-#define __NR_Linux32_bind		(__NR_Linux32 + 169)
-#define __NR_Linux32_connect		(__NR_Linux32 + 170)
-#define __NR_Linux32_getpeername	(__NR_Linux32 + 171)
-#define __NR_Linux32_getsockname	(__NR_Linux32 + 172)
-#define __NR_Linux32_getsockopt		(__NR_Linux32 + 173)
-#define __NR_Linux32_listen		(__NR_Linux32 + 174)
-#define __NR_Linux32_recv		(__NR_Linux32 + 175)
-#define __NR_Linux32_recvfrom		(__NR_Linux32 + 176)
-#define __NR_Linux32_recvmsg		(__NR_Linux32 + 177)
-#define __NR_Linux32_send		(__NR_Linux32 + 178)
-#define __NR_Linux32_sendmsg		(__NR_Linux32 + 179)
-#define __NR_Linux32_sendto		(__NR_Linux32 + 180)
-#define __NR_Linux32_setsockopt		(__NR_Linux32 + 181)
-#define __NR_Linux32_shutdown		(__NR_Linux32 + 182)
-#define __NR_Linux32_socket		(__NR_Linux32 + 183)
-#define __NR_Linux32_socketpair		(__NR_Linux32 + 184)
-#define __NR_Linux32_setresuid		(__NR_Linux32 + 185)
-#define __NR_Linux32_getresuid		(__NR_Linux32 + 186)
-#define __NR_Linux32_query_module	(__NR_Linux32 + 187)
-#define __NR_Linux32_poll		(__NR_Linux32 + 188)
-#define __NR_Linux32_nfsservctl		(__NR_Linux32 + 189)
-#define __NR_Linux32_setresgid		(__NR_Linux32 + 190)
-#define __NR_Linux32_getresgid		(__NR_Linux32 + 191)
-#define __NR_Linux32_prctl		(__NR_Linux32 + 192)
-#define __NR_Linux32_rt_sigreturn	(__NR_Linux32 + 193)
-#define __NR_Linux32_rt_sigaction	(__NR_Linux32 + 194)
-#define __NR_Linux32_rt_sigprocmask	(__NR_Linux32 + 195)
-#define __NR_Linux32_rt_sigpending	(__NR_Linux32 + 196)
-#define __NR_Linux32_rt_sigtimedwait	(__NR_Linux32 + 197)
-#define __NR_Linux32_rt_sigqueueinfo	(__NR_Linux32 + 198)
-#define __NR_Linux32_rt_sigsuspend	(__NR_Linux32 + 199)
-#define __NR_Linux32_pread		(__NR_Linux32 + 200)
-#define __NR_Linux32_pwrite		(__NR_Linux32 + 201)
-#define __NR_Linux32_chown		(__NR_Linux32 + 202)
-#define __NR_Linux32_getcwd		(__NR_Linux32 + 203)
-#define __NR_Linux32_capget		(__NR_Linux32 + 204)
-#define __NR_Linux32_capset		(__NR_Linux32 + 205)
-#define __NR_Linux32_sigaltstack	(__NR_Linux32 + 206)
-#define __NR_Linux32_sendfile		(__NR_Linux32 + 207)
-#define __NR_Linux32_getpmsg		(__NR_Linux32 + 208)
-#define __NR_Linux32_putpmsg		(__NR_Linux32 + 209)
-#define __NR_Linux32_mmap2		(__NR_Linux32 + 210)
-#define __NR_Linux32_truncate64		(__NR_Linux32 + 211)
-#define __NR_Linux32_ftruncate64	(__NR_Linux32 + 212)
-#define __NR_Linux32_stat64		(__NR_Linux32 + 213)
-#define __NR_Linux32_lstat64		(__NR_Linux32 + 214)
-#define __NR_Linux32_fstat64		(__NR_Linux32 + 215)
-#define __NR_Linux32_root_pivot		(__NR_Linux32 + 216)
-#define __NR_Linux32_mincore		(__NR_Linux32 + 217)
-#define __NR_Linux32_madvise		(__NR_Linux32 + 218)
-#define __NR_Linux32_getdents64		(__NR_Linux32 + 219)
-#define __NR_Linux32_fcntl64		(__NR_Linux32 + 220)
-#define __NR_Linux32_security		(__NR_Linux32 + 221)
-#define __NR_Linux32_gettid		(__NR_Linux32 + 222)
-#define __NR_Linux32_readahead		(__NR_Linux32 + 223)
-#define __NR_Linux32_setxattr		(__NR_Linux32 + 224)
-#define __NR_Linux32_lsetxattr		(__NR_Linux32 + 225)
-#define __NR_Linux32_fsetxattr		(__NR_Linux32 + 226)
-#define __NR_Linux32_getxattr		(__NR_Linux32 + 227)
-#define __NR_Linux32_lgetxattr		(__NR_Linux32 + 228)
-#define __NR_Linux32_fgetxattr		(__NR_Linux32 + 229)
-#define __NR_Linux32_listxattr		(__NR_Linux32 + 230)
-#define __NR_Linux32_llistxattr		(__NR_Linux32 + 231)
-#define __NR_Linux32_flistxattr		(__NR_Linux32 + 232)
-#define __NR_Linux32_removexattr	(__NR_Linux32 + 233)
-#define __NR_Linux32_lremovexattr	(__NR_Linux32 + 234)
-#define __NR_Linux32_fremovexattr	(__NR_Linux32 + 235)
-#define __NR_Linux32_tkill		(__NR_Linux32 + 236)
-#define __NR_Linux32_sendfile64		(__NR_Linux32 + 237)
-#define __NR_Linux32_futex		(__NR_Linux32 + 238)
-#define __NR_Linux32_sched_setaffinity	(__NR_Linux32 + 239)
-#define __NR_Linux32_sched_getaffinity	(__NR_Linux32 + 240)
+#define __NR_O32_Linux			4000
+#define __NR_O32_syscall		(__NR_O32_Linux +   0)
+#define __NR_O32_exit			(__NR_O32_Linux +   1)
+#define __NR_O32_fork			(__NR_O32_Linux +   2)
+#define __NR_O32_read			(__NR_O32_Linux +   3)
+#define __NR_O32_write			(__NR_O32_Linux +   4)
+#define __NR_O32_open			(__NR_O32_Linux +   5)
+#define __NR_O32_close			(__NR_O32_Linux +   6)
+#define __NR_O32_waitpid		(__NR_O32_Linux +   7)
+#define __NR_O32_creat			(__NR_O32_Linux +   8)
+#define __NR_O32_link			(__NR_O32_Linux +   9)
+#define __NR_O32_unlink			(__NR_O32_Linux +  10)
+#define __NR_O32_execve			(__NR_O32_Linux +  11)
+#define __NR_O32_chdir			(__NR_O32_Linux +  12)
+#define __NR_O32_time			(__NR_O32_Linux +  13)
+#define __NR_O32_mknod			(__NR_O32_Linux +  14)
+#define __NR_O32_chmod			(__NR_O32_Linux +  15)
+#define __NR_O32_lchown			(__NR_O32_Linux +  16)
+#define __NR_O32_break			(__NR_O32_Linux +  17)
+#define __NR_O32_unused18		(__NR_O32_Linux +  18)
+#define __NR_O32_lseek			(__NR_O32_Linux +  19)
+#define __NR_O32_getpid			(__NR_O32_Linux +  20)
+#define __NR_O32_mount			(__NR_O32_Linux +  21)
+#define __NR_O32_umount			(__NR_O32_Linux +  22)
+#define __NR_O32_setuid			(__NR_O32_Linux +  23)
+#define __NR_O32_getuid			(__NR_O32_Linux +  24)
+#define __NR_O32_stime			(__NR_O32_Linux +  25)
+#define __NR_O32_ptrace			(__NR_O32_Linux +  26)
+#define __NR_O32_alarm			(__NR_O32_Linux +  27)
+#define __NR_O32_unused28		(__NR_O32_Linux +  28)
+#define __NR_O32_pause			(__NR_O32_Linux +  29)
+#define __NR_O32_utime			(__NR_O32_Linux +  30)
+#define __NR_O32_stty			(__NR_O32_Linux +  31)
+#define __NR_O32_gtty			(__NR_O32_Linux +  32)
+#define __NR_O32_access			(__NR_O32_Linux +  33)
+#define __NR_O32_nice			(__NR_O32_Linux +  34)
+#define __NR_O32_ftime			(__NR_O32_Linux +  35)
+#define __NR_O32_sync			(__NR_O32_Linux +  36)
+#define __NR_O32_kill			(__NR_O32_Linux +  37)
+#define __NR_O32_rename			(__NR_O32_Linux +  38)
+#define __NR_O32_mkdir			(__NR_O32_Linux +  39)
+#define __NR_O32_rmdir			(__NR_O32_Linux +  40)
+#define __NR_O32_dup			(__NR_O32_Linux +  41)
+#define __NR_O32_pipe			(__NR_O32_Linux +  42)
+#define __NR_O32_times			(__NR_O32_Linux +  43)
+#define __NR_O32_prof			(__NR_O32_Linux +  44)
+#define __NR_O32_brk			(__NR_O32_Linux +  45)
+#define __NR_O32_setgid			(__NR_O32_Linux +  46)
+#define __NR_O32_getgid			(__NR_O32_Linux +  47)
+#define __NR_O32_signal			(__NR_O32_Linux +  48)
+#define __NR_O32_geteuid		(__NR_O32_Linux +  49)
+#define __NR_O32_getegid		(__NR_O32_Linux +  50)
+#define __NR_O32_acct			(__NR_O32_Linux +  51)
+#define __NR_O32_umount2		(__NR_O32_Linux +  52)
+#define __NR_O32_lock			(__NR_O32_Linux +  53)
+#define __NR_O32_ioctl			(__NR_O32_Linux +  54)
+#define __NR_O32_fcntl			(__NR_O32_Linux +  55)
+#define __NR_O32_mpx			(__NR_O32_Linux +  56)
+#define __NR_O32_setpgid		(__NR_O32_Linux +  57)
+#define __NR_O32_ulimit			(__NR_O32_Linux +  58)
+#define __NR_O32_unused59		(__NR_O32_Linux +  59)
+#define __NR_O32_umask			(__NR_O32_Linux +  60)
+#define __NR_O32_chroot			(__NR_O32_Linux +  61)
+#define __NR_O32_ustat			(__NR_O32_Linux +  62)
+#define __NR_O32_dup2			(__NR_O32_Linux +  63)
+#define __NR_O32_getppid		(__NR_O32_Linux +  64)
+#define __NR_O32_getpgrp		(__NR_O32_Linux +  65)
+#define __NR_O32_setsid			(__NR_O32_Linux +  66)
+#define __NR_O32_sigaction		(__NR_O32_Linux +  67)
+#define __NR_O32_sgetmask		(__NR_O32_Linux +  68)
+#define __NR_O32_ssetmask		(__NR_O32_Linux +  69)
+#define __NR_O32_setreuid		(__NR_O32_Linux +  70)
+#define __NR_O32_setregid		(__NR_O32_Linux +  71)
+#define __NR_O32_sigsuspend		(__NR_O32_Linux +  72)
+#define __NR_O32_sigpending		(__NR_O32_Linux +  73)
+#define __NR_O32_sethostname		(__NR_O32_Linux +  74)
+#define __NR_O32_setrlimit		(__NR_O32_Linux +  75)
+#define __NR_O32_getrlimit		(__NR_O32_Linux +  76)
+#define __NR_O32_getrusage		(__NR_O32_Linux +  77)
+#define __NR_O32_gettimeofday		(__NR_O32_Linux +  78)
+#define __NR_O32_settimeofday		(__NR_O32_Linux +  79)
+#define __NR_O32_getgroups		(__NR_O32_Linux +  80)
+#define __NR_O32_setgroups		(__NR_O32_Linux +  81)
+#define __NR_O32_reserved82		(__NR_O32_Linux +  82)
+#define __NR_O32_symlink		(__NR_O32_Linux +  83)
+#define __NR_O32_unused84		(__NR_O32_Linux +  84)
+#define __NR_O32_readlink		(__NR_O32_Linux +  85)
+#define __NR_O32_uselib			(__NR_O32_Linux +  86)
+#define __NR_O32_swapon			(__NR_O32_Linux +  87)
+#define __NR_O32_reboot			(__NR_O32_Linux +  88)
+#define __NR_O32_readdir		(__NR_O32_Linux +  89)
+#define __NR_O32_mmap			(__NR_O32_Linux +  90)
+#define __NR_O32_munmap			(__NR_O32_Linux +  91)
+#define __NR_O32_truncate		(__NR_O32_Linux +  92)
+#define __NR_O32_ftruncate		(__NR_O32_Linux +  93)
+#define __NR_O32_fchmod			(__NR_O32_Linux +  94)
+#define __NR_O32_fchown			(__NR_O32_Linux +  95)
+#define __NR_O32_getpriority		(__NR_O32_Linux +  96)
+#define __NR_O32_setpriority		(__NR_O32_Linux +  97)
+#define __NR_O32_profil			(__NR_O32_Linux +  98)
+#define __NR_O32_statfs			(__NR_O32_Linux +  99)
+#define __NR_O32_fstatfs		(__NR_O32_Linux + 100)
+#define __NR_O32_ioperm			(__NR_O32_Linux + 101)
+#define __NR_O32_socketcall		(__NR_O32_Linux + 102)
+#define __NR_O32_syslog			(__NR_O32_Linux + 103)
+#define __NR_O32_setitimer		(__NR_O32_Linux + 104)
+#define __NR_O32_getitimer		(__NR_O32_Linux + 105)
+#define __NR_O32_stat			(__NR_O32_Linux + 106)
+#define __NR_O32_lstat			(__NR_O32_Linux + 107)
+#define __NR_O32_fstat			(__NR_O32_Linux + 108)
+#define __NR_O32_unused109		(__NR_O32_Linux + 109)
+#define __NR_O32_iopl			(__NR_O32_Linux + 110)
+#define __NR_O32_vhangup		(__NR_O32_Linux + 111)
+#define __NR_O32_idle			(__NR_O32_Linux + 112)
+#define __NR_O32_vm86			(__NR_O32_Linux + 113)
+#define __NR_O32_wait4			(__NR_O32_Linux + 114)
+#define __NR_O32_swapoff		(__NR_O32_Linux + 115)
+#define __NR_O32_sysinfo		(__NR_O32_Linux + 116)
+#define __NR_O32_ipc			(__NR_O32_Linux + 117)
+#define __NR_O32_fsync			(__NR_O32_Linux + 118)
+#define __NR_O32_sigreturn		(__NR_O32_Linux + 119)
+#define __NR_O32_clone			(__NR_O32_Linux + 120)
+#define __NR_O32_setdomainname		(__NR_O32_Linux + 121)
+#define __NR_O32_uname			(__NR_O32_Linux + 122)
+#define __NR_O32_modify_ldt		(__NR_O32_Linux + 123)
+#define __NR_O32_adjtimex		(__NR_O32_Linux + 124)
+#define __NR_O32_mprotect		(__NR_O32_Linux + 125)
+#define __NR_O32_sigprocmask		(__NR_O32_Linux + 126)
+#define __NR_O32_create_module		(__NR_O32_Linux + 127)
+#define __NR_O32_init_module		(__NR_O32_Linux + 128)
+#define __NR_O32_delete_module		(__NR_O32_Linux + 129)
+#define __NR_O32_get_kernel_syms	(__NR_O32_Linux + 130)
+#define __NR_O32_quotactl		(__NR_O32_Linux + 131)
+#define __NR_O32_getpgid		(__NR_O32_Linux + 132)
+#define __NR_O32_fchdir			(__NR_O32_Linux + 133)
+#define __NR_O32_bdflush		(__NR_O32_Linux + 134)
+#define __NR_O32_sysfs			(__NR_O32_Linux + 135)
+#define __NR_O32_personality		(__NR_O32_Linux + 136)
+#define __NR_O32_afs_syscall		(__NR_O32_Linux + 137) /* Syscall for Andrew File System */
+#define __NR_O32_setfsuid		(__NR_O32_Linux + 138)
+#define __NR_O32_setfsgid		(__NR_O32_Linux + 139)
+#define __NR_O32__llseek		(__NR_O32_Linux + 140)
+#define __NR_O32_getdents		(__NR_O32_Linux + 141)
+#define __NR_O32__newselect		(__NR_O32_Linux + 142)
+#define __NR_O32_flock			(__NR_O32_Linux + 143)
+#define __NR_O32_msync			(__NR_O32_Linux + 144)
+#define __NR_O32_readv			(__NR_O32_Linux + 145)
+#define __NR_O32_writev			(__NR_O32_Linux + 146)
+#define __NR_O32_cacheflush		(__NR_O32_Linux + 147)
+#define __NR_O32_cachectl		(__NR_O32_Linux + 148)
+#define __NR_O32_sysmips		(__NR_O32_Linux + 149)
+#define __NR_O32_unused150		(__NR_O32_Linux + 150)
+#define __NR_O32_getsid			(__NR_O32_Linux + 151)
+#define __NR_O32_fdatasync		(__NR_O32_Linux + 152)
+#define __NR_O32__sysctl		(__NR_O32_Linux + 153)
+#define __NR_O32_mlock			(__NR_O32_Linux + 154)
+#define __NR_O32_munlock		(__NR_O32_Linux + 155)
+#define __NR_O32_mlockall		(__NR_O32_Linux + 156)
+#define __NR_O32_munlockall		(__NR_O32_Linux + 157)
+#define __NR_O32_sched_setparam		(__NR_O32_Linux + 158)
+#define __NR_O32_sched_getparam		(__NR_O32_Linux + 159)
+#define __NR_O32_sched_setscheduler	(__NR_O32_Linux + 160)
+#define __NR_O32_sched_getscheduler	(__NR_O32_Linux + 161)
+#define __NR_O32_sched_yield		(__NR_O32_Linux + 162)
+#define __NR_O32_sched_get_priority_max	(__NR_O32_Linux + 163)
+#define __NR_O32_sched_get_priority_min	(__NR_O32_Linux + 164)
+#define __NR_O32_sched_rr_get_interval	(__NR_O32_Linux + 165)
+#define __NR_O32_nanosleep		(__NR_O32_Linux + 166)
+#define __NR_O32_mremap			(__NR_O32_Linux + 167)
+#define __NR_O32_accept			(__NR_O32_Linux + 168)
+#define __NR_O32_bind			(__NR_O32_Linux + 169)
+#define __NR_O32_connect		(__NR_O32_Linux + 170)
+#define __NR_O32_getpeername		(__NR_O32_Linux + 171)
+#define __NR_O32_getsockname		(__NR_O32_Linux + 172)
+#define __NR_O32_getsockopt		(__NR_O32_Linux + 173)
+#define __NR_O32_listen			(__NR_O32_Linux + 174)
+#define __NR_O32_recv			(__NR_O32_Linux + 175)
+#define __NR_O32_recvfrom		(__NR_O32_Linux + 176)
+#define __NR_O32_recvmsg		(__NR_O32_Linux + 177)
+#define __NR_O32_send			(__NR_O32_Linux + 178)
+#define __NR_O32_sendmsg		(__NR_O32_Linux + 179)
+#define __NR_O32_sendto			(__NR_O32_Linux + 180)
+#define __NR_O32_setsockopt		(__NR_O32_Linux + 181)
+#define __NR_O32_shutdown		(__NR_O32_Linux + 182)
+#define __NR_O32_socket			(__NR_O32_Linux + 183)
+#define __NR_O32_socketpair		(__NR_O32_Linux + 184)
+#define __NR_O32_setresuid		(__NR_O32_Linux + 185)
+#define __NR_O32_getresuid		(__NR_O32_Linux + 186)
+#define __NR_O32_query_module		(__NR_O32_Linux + 187)
+#define __NR_O32_poll			(__NR_O32_Linux + 188)
+#define __NR_O32_nfsservctl		(__NR_O32_Linux + 189)
+#define __NR_O32_setresgid		(__NR_O32_Linux + 190)
+#define __NR_O32_getresgid		(__NR_O32_Linux + 191)
+#define __NR_O32_prctl			(__NR_O32_Linux + 192)
+#define __NR_O32_rt_sigreturn		(__NR_O32_Linux + 193)
+#define __NR_O32_rt_sigaction		(__NR_O32_Linux + 194)
+#define __NR_O32_rt_sigprocmask		(__NR_O32_Linux + 195)
+#define __NR_O32_rt_sigpending		(__NR_O32_Linux + 196)
+#define __NR_O32_rt_sigtimedwait	(__NR_O32_Linux + 197)
+#define __NR_O32_rt_sigqueueinfo	(__NR_O32_Linux + 198)
+#define __NR_O32_rt_sigsuspend		(__NR_O32_Linux + 199)
+#define __NR_O32_pread			(__NR_O32_Linux + 200)
+#define __NR_O32_pwrite			(__NR_O32_Linux + 201)
+#define __NR_O32_chown			(__NR_O32_Linux + 202)
+#define __NR_O32_getcwd			(__NR_O32_Linux + 203)
+#define __NR_O32_capget			(__NR_O32_Linux + 204)
+#define __NR_O32_capset			(__NR_O32_Linux + 205)
+#define __NR_O32_sigaltstack		(__NR_O32_Linux + 206)
+#define __NR_O32_sendfile		(__NR_O32_Linux + 207)
+#define __NR_O32_getpmsg		(__NR_O32_Linux + 208)
+#define __NR_O32_putpmsg		(__NR_O32_Linux + 209)
+#define __NR_O32_mmap2			(__NR_O32_Linux + 210)
+#define __NR_O32_truncate64		(__NR_O32_Linux + 211)
+#define __NR_O32_ftruncate64		(__NR_O32_Linux + 212)
+#define __NR_O32_stat64			(__NR_O32_Linux + 213)
+#define __NR_O32_lstat64		(__NR_O32_Linux + 214)
+#define __NR_O32_fstat64		(__NR_O32_Linux + 215)
+#define __NR_O32_root_pivot		(__NR_O32_Linux + 216)
+#define __NR_O32_mincore		(__NR_O32_Linux + 217)
+#define __NR_O32_madvise		(__NR_O32_Linux + 218)
+#define __NR_O32_getdents64		(__NR_O32_Linux + 219)
+#define __NR_O32_fcntl64		(__NR_O32_Linux + 220)
+#define __NR_O32_security		(__NR_O32_Linux + 221)
+#define __NR_O32_gettid			(__NR_O32_Linux + 222)
+#define __NR_O32_readahead		(__NR_O32_Linux + 223)
+#define __NR_O32_setxattr		(__NR_O32_Linux + 224)
+#define __NR_O32_lsetxattr		(__NR_O32_Linux + 225)
+#define __NR_O32_fsetxattr		(__NR_O32_Linux + 226)
+#define __NR_O32_getxattr		(__NR_O32_Linux + 227)
+#define __NR_O32_lgetxattr		(__NR_O32_Linux + 228)
+#define __NR_O32_fgetxattr		(__NR_O32_Linux + 229)
+#define __NR_O32_listxattr		(__NR_O32_Linux + 230)
+#define __NR_O32_llistxattr		(__NR_O32_Linux + 231)
+#define __NR_O32_flistxattr		(__NR_O32_Linux + 232)
+#define __NR_O32_removexattr		(__NR_O32_Linux + 233)
+#define __NR_O32_lremovexattr		(__NR_O32_Linux + 234)
+#define __NR_O32_fremovexattr		(__NR_O32_Linux + 235)
+#define __NR_O32_tkill			(__NR_O32_Linux + 236)
+#define __NR_O32_sendfile64		(__NR_O32_Linux + 237)
+#define __NR_O32_futex			(__NR_O32_Linux + 238)
+#define __NR_O32_sched_setaffinity	(__NR_O32_Linux + 239)
+#define __NR_O32_sched_getaffinity	(__NR_O32_Linux + 240)
 
 /*
  * Offset of the last Linux o32 flavoured syscall
  */
-#define __NR_Linux32_syscalls		240
+#define __NR_O32_Linux_syscalls		240
+
 
 /*
  * Linux 64-bit syscalls are in the range from 5000 to 5999.
  */
 #define __NR_Linux			5000
-#define __NR_syscall			(__NR_Linux +   0)
-#define __NR_exit			(__NR_Linux +   1)
-#define __NR_fork			(__NR_Linux +   2)
-#define __NR_read			(__NR_Linux +   3)
-#define __NR_write			(__NR_Linux +   4)
-#define __NR_open			(__NR_Linux +   5)
-#define __NR_close			(__NR_Linux +   6)
-#define __NR_waitpid			(__NR_Linux +   7)
-#define __NR_creat			(__NR_Linux +   8)
-#define __NR_link			(__NR_Linux +   9)
-#define __NR_unlink			(__NR_Linux +  10)
-#define __NR_execve			(__NR_Linux +  11)
-#define __NR_chdir			(__NR_Linux +  12)
-#define __NR_time			(__NR_Linux +  13)
-#define __NR_mknod			(__NR_Linux +  14)
-#define __NR_chmod			(__NR_Linux +  15)
-#define __NR_lchown			(__NR_Linux +  16)
-#define __NR_break			(__NR_Linux +  17)
-#define __NR_oldstat			(__NR_Linux +  18)
-#define __NR_lseek			(__NR_Linux +  19)
-#define __NR_getpid			(__NR_Linux +  20)
-#define __NR_mount			(__NR_Linux +  21)
-#define __NR_umount			(__NR_Linux +  22)
-#define __NR_setuid			(__NR_Linux +  23)
-#define __NR_getuid			(__NR_Linux +  24)
-#define __NR_stime			(__NR_Linux +  25)
-#define __NR_ptrace			(__NR_Linux +  26)
-#define __NR_alarm			(__NR_Linux +  27)
-#define __NR_oldfstat			(__NR_Linux +  28)
-#define __NR_pause			(__NR_Linux +  29)
-#define __NR_utime			(__NR_Linux +  30)
-#define __NR_stty			(__NR_Linux +  31)
-#define __NR_gtty			(__NR_Linux +  32)
-#define __NR_access			(__NR_Linux +  33)
-#define __NR_nice			(__NR_Linux +  34)
-#define __NR_ftime			(__NR_Linux +  35)
-#define __NR_sync			(__NR_Linux +  36)
-#define __NR_kill			(__NR_Linux +  37)
-#define __NR_rename			(__NR_Linux +  38)
-#define __NR_mkdir			(__NR_Linux +  39)
-#define __NR_rmdir			(__NR_Linux +  40)
-#define __NR_dup			(__NR_Linux +  41)
-#define __NR_pipe			(__NR_Linux +  42)
-#define __NR_times			(__NR_Linux +  43)
-#define __NR_prof			(__NR_Linux +  44)
-#define __NR_brk			(__NR_Linux +  45)
-#define __NR_setgid			(__NR_Linux +  46)
-#define __NR_getgid			(__NR_Linux +  47)
-#define __NR_signal			(__NR_Linux +  48)
-#define __NR_geteuid			(__NR_Linux +  49)
-#define __NR_getegid			(__NR_Linux +  50)
-#define __NR_acct			(__NR_Linux +  51)
-#define __NR_umount2			(__NR_Linux +  52)
-#define __NR_lock			(__NR_Linux +  53)
-#define __NR_ioctl			(__NR_Linux +  54)
-#define __NR_fcntl			(__NR_Linux +  55)
-#define __NR_mpx			(__NR_Linux +  56)
-#define __NR_setpgid			(__NR_Linux +  57)
-#define __NR_ulimit			(__NR_Linux +  58)
-#define __NR_unused59			(__NR_Linux +  59)
-#define __NR_umask			(__NR_Linux +  60)
-#define __NR_chroot			(__NR_Linux +  61)
-#define __NR_ustat			(__NR_Linux +  62)
-#define __NR_dup2			(__NR_Linux +  63)
-#define __NR_getppid			(__NR_Linux +  64)
-#define __NR_getpgrp			(__NR_Linux +  65)
-#define __NR_setsid			(__NR_Linux +  66)
-#define __NR_sigaction			(__NR_Linux +  67)
-#define __NR_sgetmask			(__NR_Linux +  68)
-#define __NR_ssetmask			(__NR_Linux +  69)
-#define __NR_setreuid			(__NR_Linux +  70)
-#define __NR_setregid			(__NR_Linux +  71)
-#define __NR_sigsuspend			(__NR_Linux +  72)
-#define __NR_sigpending			(__NR_Linux +  73)
-#define __NR_sethostname		(__NR_Linux +  74)
-#define __NR_setrlimit			(__NR_Linux +  75)
-#define __NR_getrlimit			(__NR_Linux +  76)
-#define __NR_getrusage			(__NR_Linux +  77)
-#define __NR_gettimeofday		(__NR_Linux +  78)
-#define __NR_settimeofday		(__NR_Linux +  79)
-#define __NR_getgroups			(__NR_Linux +  80)
-#define __NR_setgroups			(__NR_Linux +  81)
-#define __NR_reserved82			(__NR_Linux +  82)
-#define __NR_symlink			(__NR_Linux +  83)
-#define __NR_oldlstat			(__NR_Linux +  84)
-#define __NR_readlink			(__NR_Linux +  85)
-#define __NR_uselib			(__NR_Linux +  86)
-#define __NR_swapon			(__NR_Linux +  87)
-#define __NR_reboot			(__NR_Linux +  88)
-#define __NR_readdir			(__NR_Linux +  89)
-#define __NR_mmap			(__NR_Linux +  90)
-#define __NR_munmap			(__NR_Linux +  91)
-#define __NR_truncate			(__NR_Linux +  92)
-#define __NR_ftruncate			(__NR_Linux +  93)
-#define __NR_fchmod			(__NR_Linux +  94)
-#define __NR_fchown			(__NR_Linux +  95)
-#define __NR_getpriority		(__NR_Linux +  96)
-#define __NR_setpriority		(__NR_Linux +  97)
-#define __NR_profil			(__NR_Linux +  98)
-#define __NR_statfs			(__NR_Linux +  99)
-#define __NR_fstatfs			(__NR_Linux + 100)
-#define __NR_ioperm			(__NR_Linux + 101)
-#define __NR_socketcall			(__NR_Linux + 102)
-#define __NR_syslog			(__NR_Linux + 103)
-#define __NR_setitimer			(__NR_Linux + 104)
-#define __NR_getitimer			(__NR_Linux + 105)
-#define __NR_stat			(__NR_Linux + 106)
-#define __NR_lstat			(__NR_Linux + 107)
-#define __NR_fstat			(__NR_Linux + 108)
-#define __NR_unused109			(__NR_Linux + 109)
-#define __NR_iopl			(__NR_Linux + 110)
-#define __NR_vhangup			(__NR_Linux + 111)
-#define __NR_idle			(__NR_Linux + 112)
-#define __NR_vm86			(__NR_Linux + 113)
-#define __NR_wait4			(__NR_Linux + 114)
-#define __NR_swapoff			(__NR_Linux + 115)
-#define __NR_sysinfo			(__NR_Linux + 116)
-#define __NR_ipc			(__NR_Linux + 117)
-#define __NR_fsync			(__NR_Linux + 118)
-#define __NR_sigreturn			(__NR_Linux + 119)
-#define __NR_clone			(__NR_Linux + 120)
-#define __NR_setdomainname		(__NR_Linux + 121)
-#define __NR_uname			(__NR_Linux + 122)
-#define __NR_modify_ldt			(__NR_Linux + 123)
-#define __NR_adjtimex			(__NR_Linux + 124)
-#define __NR_mprotect			(__NR_Linux + 125)
-#define __NR_sigprocmask		(__NR_Linux + 126)
-#define __NR_create_module		(__NR_Linux + 127)
-#define __NR_init_module		(__NR_Linux + 128)
-#define __NR_delete_module		(__NR_Linux + 129)
-#define __NR_get_kernel_syms		(__NR_Linux + 130)
-#define __NR_quotactl			(__NR_Linux + 131)
-#define __NR_getpgid			(__NR_Linux + 132)
-#define __NR_fchdir			(__NR_Linux + 133)
-#define __NR_bdflush			(__NR_Linux + 134)
-#define __NR_sysfs			(__NR_Linux + 135)
-#define __NR_personality		(__NR_Linux + 136)
-#define __NR_afs_syscall		(__NR_Linux + 137) /* Syscall for Andrew File System */
-#define __NR_setfsuid			(__NR_Linux + 138)
-#define __NR_setfsgid			(__NR_Linux + 139)
-#define __NR__llseek			(__NR_Linux + 140)
-#define __NR_getdents			(__NR_Linux + 141)
-#define __NR__newselect			(__NR_Linux + 142)
-#define __NR_flock			(__NR_Linux + 143)
-#define __NR_msync			(__NR_Linux + 144)
-#define __NR_readv			(__NR_Linux + 145)
-#define __NR_writev			(__NR_Linux + 146)
-#define __NR_cacheflush			(__NR_Linux + 147)
-#define __NR_cachectl			(__NR_Linux + 148)
-#define __NR_sysmips			(__NR_Linux + 149)
-#define __NR_unused150			(__NR_Linux + 150)
-#define __NR_getsid			(__NR_Linux + 151)
-#define __NR_fdatasync			(__NR_Linux + 152)
-#define __NR__sysctl			(__NR_Linux + 153)
-#define __NR_mlock			(__NR_Linux + 154)
-#define __NR_munlock			(__NR_Linux + 155)
-#define __NR_mlockall			(__NR_Linux + 156)
-#define __NR_munlockall			(__NR_Linux + 157)
-#define __NR_sched_setparam		(__NR_Linux + 158)
-#define __NR_sched_getparam		(__NR_Linux + 159)
-#define __NR_sched_setscheduler		(__NR_Linux + 160)
-#define __NR_sched_getscheduler		(__NR_Linux + 161)
-#define __NR_sched_yield		(__NR_Linux + 162)
-#define __NR_sched_get_priority_max	(__NR_Linux + 163)
-#define __NR_sched_get_priority_min	(__NR_Linux + 164)
-#define __NR_sched_rr_get_interval	(__NR_Linux + 165)
-#define __NR_nanosleep			(__NR_Linux + 166)
-#define __NR_mremap			(__NR_Linux + 167)
-#define __NR_accept			(__NR_Linux + 168)
-#define __NR_bind			(__NR_Linux + 169)
-#define __NR_connect			(__NR_Linux + 170)
-#define __NR_getpeername		(__NR_Linux + 171)
-#define __NR_getsockname		(__NR_Linux + 172)
-#define __NR_getsockopt			(__NR_Linux + 173)
-#define __NR_listen			(__NR_Linux + 174)
-#define __NR_recv			(__NR_Linux + 175)
-#define __NR_recvfrom			(__NR_Linux + 176)
-#define __NR_recvmsg			(__NR_Linux + 177)
-#define __NR_send			(__NR_Linux + 178)
-#define __NR_sendmsg			(__NR_Linux + 179)
-#define __NR_sendto			(__NR_Linux + 180)
-#define __NR_setsockopt			(__NR_Linux + 181)
-#define __NR_shutdown			(__NR_Linux + 182)
-#define __NR_socket			(__NR_Linux + 183)
-#define __NR_socketpair			(__NR_Linux + 184)
-#define __NR_setresuid			(__NR_Linux + 185)
-#define __NR_getresuid			(__NR_Linux + 186)
-#define __NR_query_module		(__NR_Linux + 187)
-#define __NR_poll			(__NR_Linux + 188)
-#define __NR_nfsservctl			(__NR_Linux + 189)
-#define __NR_setresgid			(__NR_Linux + 190)
-#define __NR_getresgid			(__NR_Linux + 191)
-#define __NR_prctl			(__NR_Linux + 192)
-#define __NR_rt_sigreturn		(__NR_Linux + 193)
-#define __NR_rt_sigaction		(__NR_Linux + 194)
-#define __NR_rt_sigprocmask		(__NR_Linux + 195)
-#define __NR_rt_sigpending		(__NR_Linux + 196)
-#define __NR_rt_sigtimedwait		(__NR_Linux + 197)
-#define __NR_rt_sigqueueinfo		(__NR_Linux + 198)
-#define __NR_rt_sigsuspend		(__NR_Linux + 199)
-#define __NR_pread			(__NR_Linux + 200)
-#define __NR_pwrite			(__NR_Linux + 201)
-#define __NR_chown			(__NR_Linux + 202)
-#define __NR_getcwd			(__NR_Linux + 203)
-#define __NR_capget			(__NR_Linux + 204)
-#define __NR_capset			(__NR_Linux + 205)
-#define __NR_sigaltstack		(__NR_Linux + 206)
-#define __NR_sendfile			(__NR_Linux + 207)
-#define __NR_getpmsg			(__NR_Linux + 208)
-#define __NR_putpmsg			(__NR_Linux + 209)
-#define __NR_root_pivot			(__NR_Linux + 210)
-#define __NR_mincore			(__NR_Linux + 211)
-#define __NR_madvise			(__NR_Linux + 212)
-#define __NR_getdents64			(__NR_Linux + 213)
-#define __NR__security			(__NR_Linux + 214)
-#define __NR__gettid			(__NR_Linux + 215)
-#define __NR__readahead			(__NR_Linux + 216)
-#define __NR_setxattr			(__NR_Linux + 217)
-#define __NR_lsetxattr			(__NR_Linux + 218)
-#define __NR_fsetxattr			(__NR_Linux + 219)
-#define __NR_getxattr			(__NR_Linux + 220)
-#define __NR_lgetxattr			(__NR_Linux + 221)
-#define __NR_fgetxattr			(__NR_Linux + 222)
-#define __NR_listxattr			(__NR_Linux + 223)
-#define __NR_llistxattr			(__NR_Linux + 224)
-#define __NR_flistxattr			(__NR_Linux + 225)
-#define __NR_removexattr		(__NR_Linux + 226)
-#define __NR_lremovexattr		(__NR_Linux + 227)
-#define __NR_fremovexattr		(__NR_Linux + 228)
-#define __NR_tkill			(__NR_Linux + 229)
-#define __NR_sendfile64			(__NR_Linux + 230)
-#define __NR_futex			(__NR_Linux + 231)
-#define __NR_sched_setaffinity		(__NR_Linux + 232)
-#define __NR_sched_getaffinity		(__NR_Linux + 233)
+#define __NR_read			(__NR_Linux +   0)
+#define __NR_write			(__NR_Linux +   1)
+#define __NR_open			(__NR_Linux +   2)
+#define __NR_close			(__NR_Linux +   3)
+#define __NR_stat			(__NR_Linux +   4)
+#define __NR_fstat			(__NR_Linux +   5)
+#define __NR_lstat			(__NR_Linux +   6)
+#define __NR_poll			(__NR_Linux +   7)
+#define __NR_lseek			(__NR_Linux +   8)
+#define __NR_mmap			(__NR_Linux +   9)
+#define __NR_mprotect			(__NR_Linux +  10)
+#define __NR_munmap			(__NR_Linux +  11)
+#define __NR_brk			(__NR_Linux +  12)
+#define __NR_rt_sigaction		(__NR_Linux +  13)
+#define __NR_rt_sigprocmask		(__NR_Linux +  14)
+#define __NR_ioctl			(__NR_Linux +  15)
+#define __NR_pread			(__NR_Linux +  16)
+#define __NR_pwrite			(__NR_Linux +  17)
+#define __NR_readv			(__NR_Linux +  18)
+#define __NR_writev			(__NR_Linux +  19)
+#define __NR_access			(__NR_Linux +  20)
+#define __NR_pipe			(__NR_Linux +  21)
+#define __NR__newselect			(__NR_Linux +  22)
+#define __NR_sched_yield		(__NR_Linux +  23)
+#define __NR_mremap			(__NR_Linux +  24)
+#define __NR_msync			(__NR_Linux +  25)
+#define __NR_mincore			(__NR_Linux +  26)
+#define __NR_madvise			(__NR_Linux +  27)
+#define __NR_shmget			(__NR_Linux +  28)
+#define __NR_shmat			(__NR_Linux +  29)
+#define __NR_shmctl			(__NR_Linux +  30)
+#define __NR_dup			(__NR_Linux +  31)
+#define __NR_dup2			(__NR_Linux +  32)
+#define __NR_pause			(__NR_Linux +  33)
+#define __NR_nanosleep			(__NR_Linux +  34)
+#define __NR_getitimer			(__NR_Linux +  35)
+#define __NR_setitimer			(__NR_Linux +  36)
+#define __NR_alarm			(__NR_Linux +  37)
+#define __NR_getpid			(__NR_Linux +  38)
+#define __NR_sendfile			(__NR_Linux +  39)
+#define __NR_socket			(__NR_Linux +  40)
+#define __NR_connect			(__NR_Linux +  41)
+#define __NR_accept			(__NR_Linux +  42)
+#define __NR_sendto			(__NR_Linux +  43)
+#define __NR_recvfrom			(__NR_Linux +  44)
+#define __NR_sendmsg			(__NR_Linux +  45)
+#define __NR_recvmsg			(__NR_Linux +  46)
+#define __NR_shutdown			(__NR_Linux +  47)
+#define __NR_bind			(__NR_Linux +  48)
+#define __NR_listen			(__NR_Linux +  49)
+#define __NR_getsockname		(__NR_Linux +  50)
+#define __NR_getpeername		(__NR_Linux +  51)
+#define __NR_socketpair			(__NR_Linux +  52)
+#define __NR_setsockopt			(__NR_Linux +  53)
+#define __NR_getsockopt			(__NR_Linux +  54)
+#define __NR_clone			(__NR_Linux +  55)
+#define __NR_fork			(__NR_Linux +  56)
+#define __NR_execve			(__NR_Linux +  57)
+#define __NR_exit			(__NR_Linux +  58)
+#define __NR_wait4			(__NR_Linux +  59)
+#define __NR_kill			(__NR_Linux +  60)
+#define __NR_uname			(__NR_Linux +  61)
+#define __NR_semget			(__NR_Linux +  62)
+#define __NR_semop			(__NR_Linux +  63)
+#define __NR_semctl			(__NR_Linux +  64)
+#define __NR_shmdt			(__NR_Linux +  65)
+#define __NR_msgget			(__NR_Linux +  66)
+#define __NR_msgsnd			(__NR_Linux +  67)
+#define __NR_msgrcv			(__NR_Linux +  68)
+#define __NR_msgctl			(__NR_Linux +  69)
+#define __NR_fcntl			(__NR_Linux +  70)
+#define __NR_flock			(__NR_Linux +  71)
+#define __NR_fsync			(__NR_Linux +  72)
+#define __NR_fdatasync			(__NR_Linux +  73)
+#define __NR_truncate			(__NR_Linux +  74)
+#define __NR_ftruncate			(__NR_Linux +  75)
+#define __NR_getdents			(__NR_Linux +  76)
+#define __NR_getcwd			(__NR_Linux +  77)
+#define __NR_chdir			(__NR_Linux +  78)
+#define __NR_fchdir			(__NR_Linux +  79)
+#define __NR_rename			(__NR_Linux +  80)
+#define __NR_mkdir			(__NR_Linux +  81)
+#define __NR_rmdir			(__NR_Linux +  82)
+#define __NR_creat			(__NR_Linux +  83)
+#define __NR_link			(__NR_Linux +  84)
+#define __NR_unlink			(__NR_Linux +  85)
+#define __NR_symlink			(__NR_Linux +  86)
+#define __NR_readlink			(__NR_Linux +  87)
+#define __NR_chmod			(__NR_Linux +  88)
+#define __NR_fchmod			(__NR_Linux +  89)
+#define __NR_chown			(__NR_Linux +  90)
+#define __NR_fchown			(__NR_Linux +  91)
+#define __NR_lchown			(__NR_Linux +  92)
+#define __NR_umask			(__NR_Linux +  93)
+#define __NR_gettimeofday		(__NR_Linux +  94)
+#define __NR_getrlimit			(__NR_Linux +  95)
+#define __NR_getrusage			(__NR_Linux +  96)
+#define __NR_sysinfo			(__NR_Linux +  97)
+#define __NR_times			(__NR_Linux +  98)
+#define __NR_ptrace			(__NR_Linux +  99)
+#define __NR_getuid			(__NR_Linux + 100)
+#define __NR_syslog			(__NR_Linux + 101)
+#define __NR_getgid			(__NR_Linux + 102)
+#define __NR_setuid			(__NR_Linux + 103)
+#define __NR_setgid			(__NR_Linux + 104)
+#define __NR_geteuid			(__NR_Linux + 105)
+#define __NR_getegid			(__NR_Linux + 106)
+#define __NR_setpgid			(__NR_Linux + 107)
+#define __NR_getppid			(__NR_Linux + 108)
+#define __NR_getpgrp			(__NR_Linux + 109)
+#define __NR_setsid			(__NR_Linux + 110)
+#define __NR_setreuid			(__NR_Linux + 111)
+#define __NR_setregid			(__NR_Linux + 112)
+#define __NR_getgroups			(__NR_Linux + 113)
+#define __NR_setgroups			(__NR_Linux + 114)
+#define __NR_setresuid			(__NR_Linux + 115)
+#define __NR_getresuid			(__NR_Linux + 116)
+#define __NR_setresgid			(__NR_Linux + 117)
+#define __NR_getresgid			(__NR_Linux + 118)
+#define __NR_getpgid			(__NR_Linux + 119)
+#define __NR_setfsuid			(__NR_Linux + 120)
+#define __NR_setfsgid			(__NR_Linux + 121)
+#define __NR_getsid			(__NR_Linux + 122)
+#define __NR_capget			(__NR_Linux + 123)
+#define __NR_capset			(__NR_Linux + 124)
+#define __NR_rt_sigpending		(__NR_Linux + 125)
+#define __NR_rt_sigtimedwait		(__NR_Linux + 126)
+#define __NR_rt_sigqueueinfo		(__NR_Linux + 127)
+#define __NR_rt_sigsuspend		(__NR_Linux + 128)
+#define __NR_sigaltstack		(__NR_Linux + 129)
+#define __NR_utime			(__NR_Linux + 130)
+#define __NR_mknod			(__NR_Linux + 131)
+#define __NR_personality		(__NR_Linux + 132)
+#define __NR_ustat			(__NR_Linux + 133)
+#define __NR_statfs			(__NR_Linux + 134)
+#define __NR_fstatfs			(__NR_Linux + 135)
+#define __NR_sysfs			(__NR_Linux + 136)
+#define __NR_getpriority		(__NR_Linux + 137)
+#define __NR_setpriority		(__NR_Linux + 138)
+#define __NR_sched_setparam		(__NR_Linux + 139)
+#define __NR_sched_getparam		(__NR_Linux + 140)
+#define __NR_sched_setscheduler		(__NR_Linux + 141)
+#define __NR_sched_getscheduler		(__NR_Linux + 142)
+#define __NR_sched_get_priority_max	(__NR_Linux + 143)
+#define __NR_sched_get_priority_min	(__NR_Linux + 144)
+#define __NR_sched_rr_get_interval	(__NR_Linux + 145)
+#define __NR_mlock			(__NR_Linux + 146)
+#define __NR_munlock			(__NR_Linux + 147)
+#define __NR_mlockall			(__NR_Linux + 148)
+#define __NR_munlockall			(__NR_Linux + 149)
+#define __NR_vhangup			(__NR_Linux + 150)
+#define __NR_pivot_root			(__NR_Linux + 151)
+#define __NR__sysctl			(__NR_Linux + 152)
+#define __NR_prctl			(__NR_Linux + 153)
+#define __NR_adjtimex			(__NR_Linux + 154)
+#define __NR_setrlimit			(__NR_Linux + 155)
+#define __NR_chroot			(__NR_Linux + 156)
+#define __NR_sync			(__NR_Linux + 157)
+#define __NR_acct			(__NR_Linux + 158)
+#define __NR_settimeofday		(__NR_Linux + 159)
+#define __NR_mount			(__NR_Linux + 160)
+#define __NR_umount2			(__NR_Linux + 161)
+#define __NR_swapon			(__NR_Linux + 162)
+#define __NR_swapoff			(__NR_Linux + 163)
+#define __NR_reboot			(__NR_Linux + 164)
+#define __NR_sethostname		(__NR_Linux + 165)
+#define __NR_setdomainname		(__NR_Linux + 166)
+#define __NR_create_module		(__NR_Linux + 167)
+#define __NR_init_module		(__NR_Linux + 168)
+#define __NR_delete_module		(__NR_Linux + 169)
+#define __NR_get_kernel_syms		(__NR_Linux + 170)
+#define __NR_query_module		(__NR_Linux + 171)
+#define __NR_quotactl			(__NR_Linux + 172)
+#define __NR_nfsservctl			(__NR_Linux + 173)
+#define __NR_getpmsg			(__NR_Linux + 174)
+#define __NR_putpmsg			(__NR_Linux + 175)
+#define __NR_afs_syscall		(__NR_Linux + 176)
+#define __NR_security			(__NR_Linux + 177)
+#define __NR_gettid			(__NR_Linux + 178)
+#define __NR_readahead			(__NR_Linux + 179)
+#define __NR_setxattr			(__NR_Linux + 180)
+#define __NR_lsetxattr			(__NR_Linux + 181)
+#define __NR_fsetxattr			(__NR_Linux + 182)
+#define __NR_getxattr			(__NR_Linux + 183)
+#define __NR_lgetxattr			(__NR_Linux + 184)
+#define __NR_fgetxattr			(__NR_Linux + 185)
+#define __NR_listxattr			(__NR_Linux + 186)
+#define __NR_llistxattr			(__NR_Linux + 187)
+#define __NR_flistxattr			(__NR_Linux + 188)
+#define __NR_removexattr		(__NR_Linux + 189)
+#define __NR_lremovexattr		(__NR_Linux + 190)
+#define __NR_fremovexattr		(__NR_Linux + 191)
+#define __NR_tkill			(__NR_Linux + 192)
+#define __NR_time			(__NR_Linux + 193)
+#define __NR_futex			(__NR_Linux + 194)
+#define __NR_sched_setaffinity		(__NR_Linux + 195)
+#define __NR_sched_getaffinity		(__NR_Linux + 196)
+#define __NR_cacheflush			(__NR_Linux + 197)
+#define __NR_cachectl			(__NR_Linux + 198)
+#define __NR_sysmips			(__NR_Linux + 199)
 
 /*
  * Offset of the last Linux flavoured syscall
  */
-#define __NR_Linux_syscalls		233
+#define __NR_Linux_syscalls		199
+
+/*
+ * Linux N32 syscalls are in the range from 6000 to 6999.
+ */
+#define __NR_N32_Linux			6000
+#define __NR_N32_read			(__NR_N32_Linux +   0)
+#define __NR_N32_write			(__NR_N32_Linux +   1)
+#define __NR_N32_open			(__NR_N32_Linux +   2)
+#define __NR_N32_close			(__NR_N32_Linux +   3)
+#define __NR_N32_stat			(__NR_N32_Linux +   4)
+#define __NR_N32_fstat			(__NR_N32_Linux +   5)
+#define __NR_N32_lstat			(__NR_N32_Linux +   6)
+#define __NR_N32_poll			(__NR_N32_Linux +   7)
+#define __NR_N32_lseek			(__NR_N32_Linux +   8)
+#define __NR_N32_mmap			(__NR_N32_Linux +   9)
+#define __NR_N32_mprotect		(__NR_N32_Linux +  10)
+#define __NR_N32_munmap			(__NR_N32_Linux +  11)
+#define __NR_N32_brk			(__NR_N32_Linux +  12)
+#define __NR_N32_rt_sigaction		(__NR_N32_Linux +  13)
+#define __NR_N32_rt_sigprocmask		(__NR_N32_Linux +  14)
+#define __NR_N32_ioctl			(__NR_N32_Linux +  15)
+#define __NR_N32_pread			(__NR_N32_Linux +  16)
+#define __NR_N32_pwrite			(__NR_N32_Linux +  17)
+#define __NR_N32_readv			(__NR_N32_Linux +  18)
+#define __NR_N32_writev			(__NR_N32_Linux +  19)
+#define __NR_N32_access			(__NR_N32_Linux +  20)
+#define __NR_N32_pipe			(__NR_N32_Linux +  21)
+#define __NR_N32__newselect		(__NR_N32_Linux +  22)
+#define __NR_N32_sched_yield		(__NR_N32_Linux +  23)
+#define __NR_N32_mremap			(__NR_N32_Linux +  24)
+#define __NR_N32_msync			(__NR_N32_Linux +  25)
+#define __NR_N32_mincore		(__NR_N32_Linux +  26)
+#define __NR_N32_madvise		(__NR_N32_Linux +  27)
+#define __NR_N32_shmget			(__NR_N32_Linux +  28)
+#define __NR_N32_shmat			(__NR_N32_Linux +  29)
+#define __NR_N32_shmctl			(__NR_N32_Linux +  30)
+#define __NR_N32_dup			(__NR_N32_Linux +  31)
+#define __NR_N32_dup2			(__NR_N32_Linux +  32)
+#define __NR_N32_pause			(__NR_N32_Linux +  33)
+#define __NR_N32_nanosleep		(__NR_N32_Linux +  34)
+#define __NR_N32_getitimer		(__NR_N32_Linux +  35)
+#define __NR_N32_setitimer		(__NR_N32_Linux +  36)
+#define __NR_N32_alarm			(__NR_N32_Linux +  37)
+#define __NR_N32_getpid			(__NR_N32_Linux +  38)
+#define __NR_N32_sendfile		(__NR_N32_Linux +  39)
+#define __NR_N32_socket			(__NR_N32_Linux +  40)
+#define __NR_N32_connect		(__NR_N32_Linux +  41)
+#define __NR_N32_accept			(__NR_N32_Linux +  42)
+#define __NR_N32_sendto			(__NR_N32_Linux +  43)
+#define __NR_N32_recvfrom		(__NR_N32_Linux +  44)
+#define __NR_N32_sendmsg		(__NR_N32_Linux +  45)
+#define __NR_N32_recvmsg		(__NR_N32_Linux +  46)
+#define __NR_N32_shutdown		(__NR_N32_Linux +  47)
+#define __NR_N32_bind			(__NR_N32_Linux +  48)
+#define __NR_N32_listen			(__NR_N32_Linux +  49)
+#define __NR_N32_getsockname		(__NR_N32_Linux +  50)
+#define __NR_N32_getpeername		(__NR_N32_Linux +  51)
+#define __NR_N32_socketpair		(__NR_N32_Linux +  52)
+#define __NR_N32_setsockopt		(__NR_N32_Linux +  53)
+#define __NR_N32_getsockopt		(__NR_N32_Linux +  54)
+#define __NR_N32_clone			(__NR_N32_Linux +  55)
+#define __NR_N32_fork			(__NR_N32_Linux +  56)
+#define __NR_N32_execve			(__NR_N32_Linux +  57)
+#define __NR_N32_exit			(__NR_N32_Linux +  58)
+#define __NR_N32_wait4			(__NR_N32_Linux +  59)
+#define __NR_N32_kill			(__NR_N32_Linux +  60)
+#define __NR_N32_uname			(__NR_N32_Linux +  61)
+#define __NR_N32_semget			(__NR_N32_Linux +  62)
+#define __NR_N32_semop			(__NR_N32_Linux +  63)
+#define __NR_N32_semctl			(__NR_N32_Linux +  64)
+#define __NR_N32_shmdt			(__NR_N32_Linux +  65)
+#define __NR_N32_msgget			(__NR_N32_Linux +  66)
+#define __NR_N32_msgsnd			(__NR_N32_Linux +  67)
+#define __NR_N32_msgrcv			(__NR_N32_Linux +  68)
+#define __NR_N32_msgctl			(__NR_N32_Linux +  69)
+#define __NR_N32_fcntl			(__NR_N32_Linux +  70)
+#define __NR_N32_flock			(__NR_N32_Linux +  71)
+#define __NR_N32_fsync			(__NR_N32_Linux +  72)
+#define __NR_N32_fdatasync		(__NR_N32_Linux +  73)
+#define __NR_N32_truncate		(__NR_N32_Linux +  74)
+#define __NR_N32_ftruncate		(__NR_N32_Linux +  75)
+#define __NR_N32_getdents		(__NR_N32_Linux +  76)
+#define __NR_N32_getcwd			(__NR_N32_Linux +  77)
+#define __NR_N32_chdir			(__NR_N32_Linux +  78)
+#define __NR_N32_fchdir			(__NR_N32_Linux +  79)
+#define __NR_N32_rename			(__NR_N32_Linux +  80)
+#define __NR_N32_mkdir			(__NR_N32_Linux +  81)
+#define __NR_N32_rmdir			(__NR_N32_Linux +  82)
+#define __NR_N32_creat			(__NR_N32_Linux +  83)
+#define __NR_N32_link			(__NR_N32_Linux +  84)
+#define __NR_N32_unlink			(__NR_N32_Linux +  85)
+#define __NR_N32_symlink		(__NR_N32_Linux +  86)
+#define __NR_N32_readlink		(__NR_N32_Linux +  87)
+#define __NR_N32_chmod			(__NR_N32_Linux +  88)
+#define __NR_N32_fchmod			(__NR_N32_Linux +  89)
+#define __NR_N32_chown			(__NR_N32_Linux +  90)
+#define __NR_N32_fchown			(__NR_N32_Linux +  91)
+#define __NR_N32_lchown			(__NR_N32_Linux +  92)
+#define __NR_N32_umask			(__NR_N32_Linux +  93)
+#define __NR_N32_gettimeofday		(__NR_N32_Linux +  94)
+#define __NR_N32_getrlimit		(__NR_N32_Linux +  95)
+#define __NR_N32_getrusage		(__NR_N32_Linux +  96)
+#define __NR_N32_sysinfo		(__NR_N32_Linux +  97)
+#define __NR_N32_times			(__NR_N32_Linux +  98)
+#define __NR_N32_ptrace			(__NR_N32_Linux +  99)
+#define __NR_N32_getuid			(__NR_N32_Linux + 100)
+#define __NR_N32_syslog			(__NR_N32_Linux + 101)
+#define __NR_N32_getgid			(__NR_N32_Linux + 102)
+#define __NR_N32_setuid			(__NR_N32_Linux + 103)
+#define __NR_N32_setgid			(__NR_N32_Linux + 104)
+#define __NR_N32_geteuid		(__NR_N32_Linux + 105)
+#define __NR_N32_getegid		(__NR_N32_Linux + 106)
+#define __NR_N32_setpgid		(__NR_N32_Linux + 107)
+#define __NR_N32_getppid		(__NR_N32_Linux + 108)
+#define __NR_N32_getpgrp		(__NR_N32_Linux + 109)
+#define __NR_N32_setsid			(__NR_N32_Linux + 110)
+#define __NR_N32_setreuid		(__NR_N32_Linux + 111)
+#define __NR_N32_setregid		(__NR_N32_Linux + 112)
+#define __NR_N32_getgroups		(__NR_N32_Linux + 113)
+#define __NR_N32_setgroups		(__NR_N32_Linux + 114)
+#define __NR_N32_setresuid		(__NR_N32_Linux + 115)
+#define __NR_N32_getresuid		(__NR_N32_Linux + 116)
+#define __NR_N32_setresgid		(__NR_N32_Linux + 117)
+#define __NR_N32_getresgid		(__NR_N32_Linux + 118)
+#define __NR_N32_getpgid		(__NR_N32_Linux + 119)
+#define __NR_N32_setfsuid		(__NR_N32_Linux + 120)
+#define __NR_N32_setfsgid		(__NR_N32_Linux + 121)
+#define __NR_N32_getsid			(__NR_N32_Linux + 122)
+#define __NR_N32_capget			(__NR_N32_Linux + 123)
+#define __NR_N32_capset			(__NR_N32_Linux + 124)
+#define __NR_N32_rt_sigpending		(__NR_N32_Linux + 125)
+#define __NR_N32_rt_sigtimedwait	(__NR_N32_Linux + 126)
+#define __NR_N32_rt_sigqueueinfo	(__NR_N32_Linux + 127)
+#define __NR_N32_rt_sigsuspend		(__NR_N32_Linux + 128)
+#define __NR_N32_sigaltstack		(__NR_N32_Linux + 129)
+#define __NR_N32_utime			(__NR_N32_Linux + 130)
+#define __NR_N32_mknod			(__NR_N32_Linux + 131)
+#define __NR_N32_personality		(__NR_N32_Linux + 132)
+#define __NR_N32_ustat			(__NR_N32_Linux + 133)
+#define __NR_N32_statfs			(__NR_N32_Linux + 134)
+#define __NR_N32_fstatfs		(__NR_N32_Linux + 135)
+#define __NR_N32_sysfs			(__NR_N32_Linux + 136)
+#define __NR_N32_getpriority		(__NR_N32_Linux + 137)
+#define __NR_N32_setpriority		(__NR_N32_Linux + 138)
+#define __NR_N32_sched_setparam		(__NR_N32_Linux + 139)
+#define __NR_N32_sched_getparam		(__NR_N32_Linux + 140)
+#define __NR_N32_sched_setscheduler	(__NR_N32_Linux + 141)
+#define __NR_N32_sched_getscheduler	(__NR_N32_Linux + 142)
+#define __NR_N32_sched_get_priority_max	(__NR_N32_Linux + 143)
+#define __NR_N32_sched_get_priority_min	(__NR_N32_Linux + 144)
+#define __NR_N32_sched_rr_get_interval	(__NR_N32_Linux + 145)
+#define __NR_N32_mlock			(__NR_N32_Linux + 146)
+#define __NR_N32_munlock		(__NR_N32_Linux + 147)
+#define __NR_N32_mlockall		(__NR_N32_Linux + 148)
+#define __NR_N32_munlockall		(__NR_N32_Linux + 149)
+#define __NR_N32_vhangup		(__NR_N32_Linux + 150)
+#define __NR_N32_pivot_root		(__NR_N32_Linux + 151)
+#define __NR_N32__sysctl		(__NR_N32_Linux + 152)
+#define __NR_N32_prctl			(__NR_N32_Linux + 153)
+#define __NR_N32_adjtimex		(__NR_N32_Linux + 154)
+#define __NR_N32_setrlimit		(__NR_N32_Linux + 155)
+#define __NR_N32_chroot			(__NR_N32_Linux + 156)
+#define __NR_N32_sync			(__NR_N32_Linux + 157)
+#define __NR_N32_acct			(__NR_N32_Linux + 158)
+#define __NR_N32_settimeofday		(__NR_N32_Linux + 159)
+#define __NR_N32_mount			(__NR_N32_Linux + 160)
+#define __NR_N32_umount2		(__NR_N32_Linux + 161)
+#define __NR_N32_swapon			(__NR_N32_Linux + 162)
+#define __NR_N32_swapoff		(__NR_N32_Linux + 163)
+#define __NR_N32_reboot			(__NR_N32_Linux + 164)
+#define __NR_N32_sethostname		(__NR_N32_Linux + 165)
+#define __NR_N32_setdomainname		(__NR_N32_Linux + 166)
+#define __NR_N32_create_module		(__NR_N32_Linux + 167)
+#define __NR_N32_init_module		(__NR_N32_Linux + 168)
+#define __NR_N32_delete_module		(__NR_N32_Linux + 169)
+#define __NR_N32_get_kernel_syms	(__NR_N32_Linux + 170)
+#define __NR_N32_query_module		(__NR_N32_Linux + 171)
+#define __NR_N32_quotactl		(__NR_N32_Linux + 172)
+#define __NR_N32_nfsservctl		(__NR_N32_Linux + 173)
+#define __NR_N32_getpmsg		(__NR_N32_Linux + 174)
+#define __NR_N32_putpmsg		(__NR_N32_Linux + 175)
+#define __NR_N32_afs_syscall		(__NR_N32_Linux + 176)
+#define __NR_N32_security		(__NR_N32_Linux + 177)
+#define __NR_N32_gettid			(__NR_N32_Linux + 178)
+#define __NR_N32_readahead		(__NR_N32_Linux + 179)
+#define __NR_N32_setxattr		(__NR_N32_Linux + 180)
+#define __NR_N32_lsetxattr		(__NR_N32_Linux + 181)
+#define __NR_N32_fsetxattr		(__NR_N32_Linux + 182)
+#define __NR_N32_getxattr		(__NR_N32_Linux + 183)
+#define __NR_N32_lgetxattr		(__NR_N32_Linux + 184)
+#define __NR_N32_fgetxattr		(__NR_N32_Linux + 185)
+#define __NR_N32_listxattr		(__NR_N32_Linux + 186)
+#define __NR_N32_llistxattr		(__NR_N32_Linux + 187)
+#define __NR_N32_flistxattr		(__NR_N32_Linux + 188)
+#define __NR_N32_removexattr		(__NR_N32_Linux + 189)
+#define __NR_N32_lremovexattr		(__NR_N32_Linux + 190)
+#define __NR_N32_fremovexattr		(__NR_N32_Linux + 191)
+#define __NR_N32_tkill			(__NR_N32_Linux + 192)
+#define __NR_N32_time			(__NR_N32_Linux + 193)
+#define __NR_N32_futex			(__NR_N32_Linux + 194)
+#define __NR_N32_sched_setaffinity	(__NR_N32_Linux + 195)
+#define __NR_N32_sched_getaffinity	(__NR_N32_Linux + 196)
+#define __NR_N32_cacheflush		(__NR_N32_Linux + 197)
+#define __NR_N32_cachectl		(__NR_N32_Linux + 198)
+#define __NR_N32_sysmips		(__NR_N32_Linux + 199)
+
+/*
+ * Offset of the last N32 flavoured syscall
+ */
+#define __NR_N32_Linux_syscalls		199
 
 #ifndef __ASSEMBLY__
 
@@ -845,12 +1022,17 @@
 static inline _syscall3(int,open,const char *,file,int,flag,int,mode)
 static inline _syscall1(int,close,int,fd)
 static inline _syscall1(int,_exit,int,exitcode)
-static inline _syscall3(pid_t,waitpid,pid_t,pid,int *,wait_stat,int,options)
+static inline _syscall4(pid_t,wait4,pid_t,pid,int *,stat_addr,int,options,struct rusage *,ru)
 static inline _syscall1(int,delete_module,const char *,name)
 
+static inline pid_t waitpid(int pid, int * wait_stat, int flags)
+{
+	return wait4(pid, wait_stat, flags, NULL);
+}
+
 static inline pid_t wait(int * wait_stat)
 {
-	return waitpid(-1,wait_stat,0);
+	return waitpid(-1, wait_stat, 0);
 }
 
 #endif /* __KERNEL_SYSCALLS__ */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/user.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/user.h
--- linux-2.4.20/include/asm-mips64/user.h	2001-09-09 12:43:02.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/user.h	2003-01-17 07:56:24.000000000 -0600
@@ -37,7 +37,7 @@
  *	to write an integer number of pages.
  */
 struct user {
-	unsigned long	regs[EF_SIZE/4+64];	/* integer and fp regs */
+	unsigned long	regs[EF_SIZE/8+64];	/* integer and fp regs */
 	size_t		u_tsize;		/* text size (pages) */
 	size_t		u_dsize;		/* data size (pages) */
 	size_t		u_ssize;		/* stack size (pages) */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/war.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/war.h
--- linux-2.4.20/include/asm-mips64/war.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/war.h	2003-01-29 10:39:00.000000000 -0600
@@ -67,4 +67,21 @@
 
 #endif
 
+#if defined(CONFIG_SB1_PASS_1_WORKAROUNDS) || \
+    defined(CONFIG_SB1_PASS_2_WORKAROUNDS)
+
+/*
+ * Workaround for the Sibyte M3 errata the text of which can be found at
+ *
+ *   http://sibyte.broadcom.com/hw/bcm1250/docs/pass2errata.txt
+ *
+ * This will enable the use of a special TLB refill handler which does a
+ * consistency check on the information in c0_badvaddr and c0_entryhi and
+ * will just return and take the exception again if the information was
+ * found to be inconsistent.
+ */
+#define BCM1250_M3_WAR
+
+#endif
+
 #endif /* _ASM_WAR_H */
diff -urNd -urNd linux-2.4.20/include/asm-mips64/xtalk/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips64/xtalk/CVS/Entries
--- linux-2.4.20/include/asm-mips64/xtalk/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/xtalk/CVS/Entries	2005-01-06 23:06:55.000000000 -0600
@@ -0,0 +1,3 @@
+/xtalk.h/1.2.2.1/Thu Jun 27 14:21:24 2002/-ko/Tlinux_2_4_20
+/xwidget.h/1.2.2.1/Thu Jun 27 14:21:24 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-mips64/xtalk/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips64/xtalk/CVS/Repository
--- linux-2.4.20/include/asm-mips64/xtalk/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/xtalk/CVS/Repository	2005-01-06 23:06:55.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-mips64/xtalk
diff -urNd -urNd linux-2.4.20/include/asm-mips64/xtalk/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips64/xtalk/CVS/Root
--- linux-2.4.20/include/asm-mips64/xtalk/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/xtalk/CVS/Root	2005-01-06 23:06:55.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-mips64/xtalk/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips64/xtalk/CVS/Tag
--- linux-2.4.20/include/asm-mips64/xtalk/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/xtalk/CVS/Tag	2005-01-06 23:06:55.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-parisc/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-parisc/CVS/Entries
--- linux-2.4.20/include/asm-parisc/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-parisc/CVS/Entries	2005-01-06 23:06:56.000000000 -0600
@@ -0,0 +1,99 @@
+/a.out.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/asmregs.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/assembly.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/atomic.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/bitops.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/bugs.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/byteorder.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/cache.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/checksum.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/current.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/delay.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/div64.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/dma.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/eisa_bus.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/eisa_eeprom.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/elf.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/errno.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/fcntl.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/fixmap.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/floppy.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/grfioctl.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/gsc.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/hardirq.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/hardware.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/hdreg.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/hw_irq.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/ide.h/1.1.2.2/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/io.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
+/ioctl.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/ioctls.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
+/iosapic.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
+/ipcbuf.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
+/irq.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
+/keyboard.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
+/led.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
+/linux_logo.h/1.2/Wed Aug 22 03:25:05 2001/-ko/Tlinux_2_4_20
+/machdep.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/mc146818rtc.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/mman.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/mmu.h/1.2.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
+/mmu_context.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
+/mmzone.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
+/module.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
+/msgbuf.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
+/namei.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/page.h/1.1.2.2/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
+/param.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/parport.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/parport_gsc.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/pci.h/1.3.2.2/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
+/pdc.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
+/perf.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
+/pgalloc.h/1.2.2.2/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
+/pgtable.h/1.2.2.2/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
+/poll.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/posix_types.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
+/processor.h/1.4.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
+/psw.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
+/ptrace.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
+/resource.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/rmap.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
+/rt_sigframe.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
+/runway.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/scatterlist.h/1.2.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
+/segment.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/semaphore.h/1.2.2.2/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
+/sembuf.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
+/serial.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/setup.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/shmbuf.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
+/shmparam.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
+/sigcontext.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/siginfo.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
+/signal.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/smp.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
+/smplock.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
+/socket.h/1.3.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
+/sockios.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/softirq.h/1.1.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
+/som.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/spinlock.h/1.1.2.2/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
+/stat.h/1.1.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
+/statfs.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/string.h/1.1.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
+/superio.h/1.1.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
+/system.h/1.1.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
+/termbits.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/termios.h/1.3.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
+/timex.h/1.1.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
+/tlb.h/1.1.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
+/traps.h/1.1.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
+/types.h/1.1.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
+/uaccess.h/1.1.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
+/ucontext.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/unaligned.h/1.1.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
+/unistd.h/1.1.2.2/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
+/user.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/xor.h/1.1.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-parisc/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-parisc/CVS/Repository
--- linux-2.4.20/include/asm-parisc/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-parisc/CVS/Repository	2005-01-06 23:06:55.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-parisc
diff -urNd -urNd linux-2.4.20/include/asm-parisc/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-parisc/CVS/Root
--- linux-2.4.20/include/asm-parisc/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-parisc/CVS/Root	2005-01-06 23:06:55.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-parisc/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-parisc/CVS/Tag
--- linux-2.4.20/include/asm-parisc/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-parisc/CVS/Tag	2005-01-06 23:06:56.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-ppc/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-ppc/CVS/Entries
--- linux-2.4.20/include/asm-ppc/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ppc/CVS/Entries	2005-01-06 23:08:09.000000000 -0600
@@ -0,0 +1,135 @@
+/8xx_immap.h/1.4/Thu Jun 14 04:24:20 2001/-ko/Tlinux_2_4_20
+/a.out.h/1.2/Thu Jun 14 04:24:20 2001/-ko/Tlinux_2_4_20
+/amigahw.h/1.4/Thu Jun 14 04:24:20 2001/-ko/Tlinux_2_4_20
+/amigaints.h/1.4.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
+/amigappc.h/1.6/Thu Jun 14 04:24:20 2001/-ko/Tlinux_2_4_20
+/amigayle.h/1.3/Thu Jun 14 04:24:20 2001/-ko/Tlinux_2_4_20
+/amipcmcia.h/1.3/Thu Jun 14 04:24:20 2001/-ko/Tlinux_2_4_20
+/ans-lcd.h/1.1.2.1/Tue Feb 26 06:00:26 2002/-ko/Tlinux_2_4_20
+/atomic.h/1.10/Tue Nov  6 07:56:13 2001/-ko/Tlinux_2_4_20
+/backlight.h/1.4/Thu Jun 14 04:24:20 2001/-ko/Tlinux_2_4_20
+/bitops.h/1.16/Wed Aug 22 03:25:05 2001/-ko/Tlinux_2_4_20
+/bootinfo.h/1.7.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
+/bootx.h/1.5/Thu Jun 14 04:24:20 2001/-ko/Tlinux_2_4_20
+/btext.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
+/bugs.h/1.3/Thu Jun 14 04:24:20 2001/-ko/Tlinux_2_4_20
+/byteorder.h/1.13/Tue Nov  6 07:56:13 2001/-ko/Tlinux_2_4_20
+/cache.h/1.14/Tue Nov  6 07:56:13 2001/-ko/Tlinux_2_4_20
+/checksum.h/1.7/Thu Jun 14 04:24:20 2001/-ko/Tlinux_2_4_20
+/commproc.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
+/cpm_8260.h/1.6/Thu Jun 14 04:24:20 2001/-ko/Tlinux_2_4_20
+/cputable.h/1.1.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/current.h/1.5/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
+/dbdma.h/1.3.2.1/Tue Feb 26 06:00:26 2002/-ko/Tlinux_2_4_20
+/delay.h/1.7/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
+/div64.h/1.2/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
+/dma.h/1.15/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
+/elf.h/1.14/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
+/errno.h/1.3/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
+/fcntl.h/1.8/Tue Nov  6 07:56:13 2001/-ko/Tlinux_2_4_20
+/floppy.h/1.7.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
+/gg2.h/1.2.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/hardirq.h/1.16.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/hdreg.h/1.2/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
+/heathrow.h/1.5.2.2/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
+/highmem.h/1.5/Wed Aug 22 03:25:05 2001/-ko/Tlinux_2_4_20
+/hw_irq.h/1.6.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
+/hydra.h/1.4/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
+/i8259.h/1.2.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
+/ide.h/1.22.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
+/immap_8260.h/1.5/Thu Aug 23 22:24:47 2001/-ko/Tlinux_2_4_20
+/io.h/1.23/Tue Nov  6 07:56:13 2001/-ko/Tlinux_2_4_20
+/ioctl.h/1.3/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
+/ioctls.h/1.8/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
+/ipc.h/1.3/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
+/ipcbuf.h/1.3/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
+/irq.h/1.20.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
+/keyboard.h/1.16.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
+/keylargo.h/1.4.2.1/Tue Feb 26 06:00:26 2002/-ko/Tlinux_2_4_20
+/kgdb.h/1.3/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
+/kmap_types.h/1.5.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
+/linux_logo.h/1.10/Wed Aug 22 03:25:05 2001/-ko/Tlinux_2_4_20
+/m48t35.h/1.3/Tue Nov  6 07:56:13 2001/-ko/Tlinux_2_4_20
+/machdep.h/1.18.2.3/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/mc146818rtc.h/1.7/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
+/md.h/1.4/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
+/mediabay.h/1.5.2.1/Tue Feb 26 06:00:26 2002/-ko/Tlinux_2_4_20
+/mk48t59.h/1.2/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
+/mman.h/1.5/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
+/mmu.h/1.14/Wed Aug 22 03:25:05 2001/-ko/Tlinux_2_4_20
+/mmu_context.h/1.17/Mon Nov  5 20:16:26 2001/-ko/Tlinux_2_4_20
+/module.h/1.3/Tue Aug 21 12:19:08 2001/-ko/Tlinux_2_4_20
+/mpc8260.h/1.3.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
+/mpc8xx.h/1.7.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
+/msgbuf.h/1.3/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
+/namei.h/1.6/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
+/nvram.h/1.7/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
+/ohare.h/1.5.2.1/Tue Feb 26 06:00:26 2002/-ko/Tlinux_2_4_20
+/open_pic.h/1.2.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
+/page.h/1.17.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
+/param.h/1.7/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
+/parport.h/1.2/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
+/pci-bridge.h/1.8.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
+/pci.h/1.13.2.2/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
+/pgalloc.h/1.6/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
+/pgtable.h/1.36.2.2/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
+/pmac_feature.h/1.1.2.3/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/pnp.h/1.4/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
+/poll.h/1.2/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
+/posix_types.h/1.9/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
+/ppc4xx.h/1.1.2.1/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/ppc4xx_pic.h/1.1.2.1/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/ppc4xx_serial.h/1.1/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
+/ppc_asm.h/1.2.2.1/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/ppcboot.h/1.3/Tue Nov  6 07:56:13 2001/-ko/Tlinux_2_4_20
+/prep_nvram.h/1.4/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
+/processor.h/1.34.2.4/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/prom.h/1.16.2.3/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/ptrace.h/1.12.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
+/raven.h/1.4/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
+/residual.h/1.6/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
+/resource.h/1.8/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
+/rwsem.h/1.1.2.1/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/scatterlist.h/1.6/Tue Nov  6 00:55:27 2001/-ko/Tlinux_2_4_20
+/sections.h/1.1/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
+/segment.h/1.3/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
+/semaphore.h/1.12.2.1/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/sembuf.h/1.3/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
+/serial.h/1.8.2.1/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/setup.h/1.3/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
+/shmbuf.h/1.3/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
+/shmparam.h/1.4/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
+/sigcontext.h/1.2/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
+/siginfo.h/1.9.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
+/signal.h/1.6/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
+/smp.h/1.18.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
+/smplock.h/1.7/Tue Nov  6 07:56:13 2001/-ko/Tlinux_2_4_20
+/socket.h/1.11.2.1/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/sockios.h/1.2/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
+/softirq.h/1.17/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
+/spinlock.h/1.14.2.1/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/stat.h/1.8/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
+/statfs.h/1.2/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
+/string.h/1.7/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
+/system.h/1.24.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
+/termbits.h/1.8/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
+/termios.h/1.11.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/time.h/1.8/Tue Nov  6 07:56:13 2001/-ko/Tlinux_2_4_20
+/timex.h/1.6.2.1/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/tlb.h/1.2/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
+/todc.h/1.1.2.1/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/traps.h/1.2/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
+/types.h/1.13/Tue Nov  6 00:55:27 2001/-ko/Tlinux_2_4_20
+/uaccess.h/1.13.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
+/ucontext.h/1.3/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
+/unaligned.h/1.3/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
+/uninorth.h/1.5/Tue Nov  6 07:56:13 2001/-ko/Tlinux_2_4_20
+/unistd.h/1.20.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/user.h/1.3/Thu Jun 14 04:24:26 2001/-ko/Tlinux_2_4_20
+/vc_ioctl.h/1.2/Thu Jun 14 04:24:26 2001/-ko/Tlinux_2_4_20
+/vga.h/1.8/Thu Jun 14 04:24:26 2001/-ko/Tlinux_2_4_20
+/walnut.h/1.4/Mon Nov  5 20:16:27 2001/-ko/Tlinux_2_4_20
+/xics.h/1.1.2.1/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/xor.h/1.2/Thu Jun 14 04:24:26 2001/-ko/Tlinux_2_4_20
+/zorro.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-ppc/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-ppc/CVS/Repository
--- linux-2.4.20/include/asm-ppc/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ppc/CVS/Repository	2005-01-06 23:06:56.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-ppc
diff -urNd -urNd linux-2.4.20/include/asm-ppc/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-ppc/CVS/Root
--- linux-2.4.20/include/asm-ppc/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ppc/CVS/Root	2005-01-06 23:06:56.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-ppc/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-ppc/CVS/Tag
--- linux-2.4.20/include/asm-ppc/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ppc/CVS/Tag	2005-01-06 23:06:58.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-ppc/param.h linux-2.4.20-mipscvs-20050106/include/asm-ppc/param.h
--- linux-2.4.20/include/asm-ppc/param.h	2001-08-28 08:58:33.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/asm-ppc/param.h	2001-10-18 20:25:01.000000000 -0500
@@ -6,6 +6,9 @@
 
 #ifndef HZ
 #define HZ 100
+#ifdef __KERNEL__
+#define hz_to_std(a) (a)
+#endif
 #endif
 
 #define EXEC_PAGESIZE	4096
diff -urNd -urNd linux-2.4.20/include/asm-ppc64/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-ppc64/CVS/Entries
--- linux-2.4.20/include/asm-ppc64/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ppc64/CVS/Entries	2005-01-06 23:08:09.000000000 -0600
@@ -0,0 +1,110 @@
+/a.out.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
+/abs_addr.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
+/atomic.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
+/bitops.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
+/bootinfo.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
+/bugs.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
+/byteorder.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/cache.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
+/checksum.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
+/current.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
+/delay.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/div64.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
+/dma.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
+/dump.h/1.1.2.1/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/eeh.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/elf.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
+/errno.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
+/fcntl.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/flight_recorder.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
+/floppy.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/hardirq.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
+/hdreg.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
+/hvcall.h/1.1.2.1/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/hw_irq.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
+/ide.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
+/init.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
+/io.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/ioctl.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
+/ioctls.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
+/ipc.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
+/ipcbuf.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
+/irq.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
+/keyboard.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
+/kgdb.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
+/linux_logo.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
+/lmb.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/machdep.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/mc146818rtc.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
+/md.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
+/memory.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
+/mman.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
+/mmu.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/mmu_context.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
+/module.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
+/msgbuf.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
+/naca.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/namei.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
+/nvram.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
+/paca.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/page.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/param.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
+/parport.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
+/pci-bridge.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
+/pci.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/pci_dma.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
+/perfmon.h/1.1.2.1/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/pgalloc.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
+/pgtable.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/pmc.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/poll.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
+/posix_types.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
+/ppc32.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
+/ppc_asm.tmpl/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
+/ppcdebug.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/proc_fs.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
+/proc_pmc.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
+/processor.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/prom.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/ptrace.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
+/resource.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
+/rtas.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/rwsem.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
+/scatterlist.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
+/segment.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
+/semaphore.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/sembuf.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
+/serial.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
+/setup.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
+/shmbuf.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
+/shmparam.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
+/sigcontext.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
+/siginfo.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/signal.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
+/smp.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
+/smplock.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/socket.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
+/sockios.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
+/softirq.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/spinlock.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
+/stat.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
+/statfs.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
+/string.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
+/system.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/termbits.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
+/termios.h/1.1.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/time.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/timex.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/tlb.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
+/types.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/uaccess.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/ucontext.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
+/udbg.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/unaligned.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
+/unistd.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
+/user.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
+/user_exports.h/1.1.2.1/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
+/vc_ioctl.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
+/vga.h/1.1.2.2/Wed Sep 11 12:45:34 2002/-ko/Tlinux_2_4_20
+/xor.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
+D/iSeries////
diff -urNd -urNd linux-2.4.20/include/asm-ppc64/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-ppc64/CVS/Repository
--- linux-2.4.20/include/asm-ppc64/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ppc64/CVS/Repository	2005-01-06 23:06:58.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-ppc64
diff -urNd -urNd linux-2.4.20/include/asm-ppc64/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-ppc64/CVS/Root
--- linux-2.4.20/include/asm-ppc64/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ppc64/CVS/Root	2005-01-06 23:06:58.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-ppc64/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-ppc64/CVS/Tag
--- linux-2.4.20/include/asm-ppc64/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ppc64/CVS/Tag	2005-01-06 23:07:00.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-ppc64/iSeries/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-ppc64/iSeries/CVS/Entries
--- linux-2.4.20/include/asm-ppc64/iSeries/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ppc64/iSeries/CVS/Entries	2005-01-06 23:07:00.000000000 -0600
@@ -0,0 +1,37 @@
+/HvCall.h/1.1.2.2/Wed Sep 11 12:45:34 2002/-ko/Tlinux_2_4_20
+/HvCallCfg.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
+/HvCallEvent.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
+/HvCallHpt.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
+/HvCallPci.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
+/HvCallSc.h/1.1.2.2/Wed Sep 11 12:45:34 2002/-ko/Tlinux_2_4_20
+/HvCallSm.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
+/HvCallXm.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
+/HvLpConfig.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
+/HvLpEvent.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
+/HvReleaseData.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
+/HvTypes.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
+/IoHriMainStore.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
+/IoHriProcessorVpd.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
+/ItExtVpdPanel.h/1.1.2.1/Wed Sep 11 12:45:35 2002/-ko/Tlinux_2_4_20
+/ItIplParmsReal.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
+/ItLpNaca.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
+/ItLpPaca.h/1.1.2.1/Wed Jun 26 22:36:42 2002/-ko/Tlinux_2_4_20
+/ItLpQueue.h/1.1.2.1/Wed Jun 26 22:36:42 2002/-ko/Tlinux_2_4_20
+/ItLpRegSave.h/1.1.2.1/Wed Jun 26 22:36:42 2002/-ko/Tlinux_2_4_20
+/ItSpCommArea.h/1.1.2.1/Wed Jun 26 22:36:42 2002/-ko/Tlinux_2_4_20
+/ItVpdAreas.h/1.1.2.1/Wed Jun 26 22:36:42 2002/-ko/Tlinux_2_4_20
+/LparData.h/1.1.2.2/Wed Sep 11 12:45:35 2002/-ko/Tlinux_2_4_20
+/LparMap.h/1.1.2.1/Wed Jun 26 22:36:42 2002/-ko/Tlinux_2_4_20
+/XmPciLpEvent.h/1.1.2.1/Wed Jun 26 22:36:42 2002/-ko/Tlinux_2_4_20
+/iSeries_FlightRecorder.h/1.1.2.1/Wed Jun 26 22:36:42 2002/-ko/Tlinux_2_4_20
+/iSeries_VpdInfo.h/1.1.2.1/Wed Jun 26 22:36:42 2002/-ko/Tlinux_2_4_20
+/iSeries_dma.h/1.1.2.1/Wed Jun 26 22:36:42 2002/-ko/Tlinux_2_4_20
+/iSeries_fixup.h/1.1.2.1/Wed Jun 26 22:36:43 2002/-ko/Tlinux_2_4_20
+/iSeries_io.h/1.1.2.1/Wed Jun 26 22:36:43 2002/-ko/Tlinux_2_4_20
+/iSeries_irq.h/1.1.2.1/Wed Jun 26 22:36:43 2002/-ko/Tlinux_2_4_20
+/iSeries_pci.h/1.1.2.2/Wed Sep 11 12:45:35 2002/-ko/Tlinux_2_4_20
+/iSeries_proc.h/1.1.2.1/Wed Jun 26 22:36:43 2002/-ko/Tlinux_2_4_20
+/mf.h/1.1.2.1/Wed Jun 26 22:36:43 2002/-ko/Tlinux_2_4_20
+/mf_proc.h/1.1.2.1/Wed Jun 26 22:36:43 2002/-ko/Tlinux_2_4_20
+/veth-proc.h/1.1.2.1/Wed Jun 26 22:36:43 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-ppc64/iSeries/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-ppc64/iSeries/CVS/Repository
--- linux-2.4.20/include/asm-ppc64/iSeries/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ppc64/iSeries/CVS/Repository	2005-01-06 23:07:00.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-ppc64/iSeries
diff -urNd -urNd linux-2.4.20/include/asm-ppc64/iSeries/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-ppc64/iSeries/CVS/Root
--- linux-2.4.20/include/asm-ppc64/iSeries/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ppc64/iSeries/CVS/Root	2005-01-06 23:07:00.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-ppc64/iSeries/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-ppc64/iSeries/CVS/Tag
--- linux-2.4.20/include/asm-ppc64/iSeries/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-ppc64/iSeries/CVS/Tag	2005-01-06 23:07:00.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-s390/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-s390/CVS/Entries
--- linux-2.4.20/include/asm-s390/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-s390/CVS/Entries	2005-01-06 23:07:03.000000000 -0600
@@ -0,0 +1,92 @@
+/a.out.h/1.2/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
+/atomic.h/1.7.2.1/Wed Jun 26 22:36:43 2002/-ko/Tlinux_2_4_20
+/bitops.h/1.7.2.1/Wed Jun 26 22:36:43 2002/-ko/Tlinux_2_4_20
+/bugs.h/1.2/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
+/byteorder.h/1.3/Fri Aug 24 03:38:53 2001/-ko/Tlinux_2_4_20
+/cache.h/1.3/Fri Aug 24 03:38:53 2001/-ko/Tlinux_2_4_20
+/ccwcache.h/1.3/Wed Jun 13 17:28:13 2001/-ko/Tlinux_2_4_20
+/chandev.h/1.5/Tue Nov  6 00:55:27 2001/-ko/Tlinux_2_4_20
+/checksum.h/1.5/Fri Aug 24 03:38:53 2001/-ko/Tlinux_2_4_20
+/cpcmd.h/1.1/Wed Jun 13 17:28:13 2001/-ko/Tlinux_2_4_20
+/current.h/1.5/Tue Nov  6 00:55:27 2001/-ko/Tlinux_2_4_20
+/dasd.h/1.4/Tue Nov  6 00:55:27 2001/-ko/Tlinux_2_4_20
+/debug.h/1.4.2.1/Wed Jun 26 22:36:43 2002/-ko/Tlinux_2_4_20
+/delay.h/1.4/Wed Jun 13 17:28:13 2001/-ko/Tlinux_2_4_20
+/div64.h/1.3/Fri Aug 24 03:38:53 2001/-ko/Tlinux_2_4_20
+/dma.h/1.3/Fri Mar  9 20:34:48 2001/-ko/Tlinux_2_4_20
+/ebcdic.h/1.5.2.1/Wed Jun 26 22:36:43 2002/-ko/Tlinux_2_4_20
+/elf.h/1.6/Wed Jun 13 17:28:13 2001/-ko/Tlinux_2_4_20
+/errno.h/1.2/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
+/fcntl.h/1.6/Sun Dec  2 11:34:58 2001/-ko/Tlinux_2_4_20
+/gdb-stub.h/1.4/Sun Dec  2 11:34:58 2001/-ko/Tlinux_2_4_20
+/hardirq.h/1.5/Fri Aug 24 03:38:53 2001/-ko/Tlinux_2_4_20
+/hdreg.h/1.1/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
+/idals.h/1.2.2.1/Tue Feb 26 06:00:26 2002/-ko/Tlinux_2_4_20
+/ide.h/1.1.4.1/Wed Jun 26 22:36:43 2002/-ko/Tlinux_2_4_20
+/init.h/1.3/Fri Aug 24 03:38:53 2001/-ko/Tlinux_2_4_20
+/io.h/1.4/Fri Aug 24 03:38:53 2001/-ko/Tlinux_2_4_20
+/ioctl.h/1.2/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
+/ioctls.h/1.3/Fri Mar  9 20:34:48 2001/-ko/Tlinux_2_4_20
+/ipc.h/1.2/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
+/ipcbuf.h/1.1/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
+/irq.h/1.7.2.2/Wed Sep 11 12:45:35 2002/-ko/Tlinux_2_4_20
+/lowcore.h/1.7.2.2/Wed Jun 26 22:36:43 2002/-ko/Tlinux_2_4_20
+/mathemu.h/1.4/Wed Jun 13 17:28:13 2001/-ko/Tlinux_2_4_20
+/mman.h/1.2/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
+/mmu.h/1.1/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
+/mmu_context.h/1.4/Fri Mar  9 20:34:48 2001/-ko/Tlinux_2_4_20
+/module.h/1.2/Tue Aug 21 12:19:08 2001/-ko/Tlinux_2_4_20
+/msgbuf.h/1.1/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
+/namei.h/1.3/Fri Mar  9 20:34:48 2001/-ko/Tlinux_2_4_20
+/page.h/1.6.2.1/Wed Jun 26 22:36:43 2002/-ko/Tlinux_2_4_20
+/param.h/1.5/Fri Mar  9 20:34:48 2001/-ko/Tlinux_2_4_20
+/pci.h/1.1/Thu Aug 23 22:24:47 2001/-ko/Tlinux_2_4_20
+/pgalloc.h/1.4/Tue Nov  6 00:55:27 2001/-ko/Tlinux_2_4_20
+/pgtable.h/1.10.2.2/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/poll.h/1.2/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
+/posix_types.h/1.2/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
+/processor.h/1.8.2.2/Wed Jun 26 22:36:43 2002/-ko/Tlinux_2_4_20
+/ptrace.h/1.6.2.2/Wed Jun 26 22:36:43 2002/-ko/Tlinux_2_4_20
+/queue.h/1.5/Fri Aug 24 03:38:53 2001/-ko/Tlinux_2_4_20
+/resource.h/1.4/Fri Mar  9 20:34:48 2001/-ko/Tlinux_2_4_20
+/rwsem.h/1.1.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
+/s390_ext.h/1.1.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/s390dyn.h/1.4/Fri Aug 24 03:38:53 2001/-ko/Tlinux_2_4_20
+/s390io.h/1.3.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/s390mach.h/1.2.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/scatterlist.h/1.2.2.1/Tue Feb 26 06:00:26 2002/-ko/Tlinux_2_4_20
+/segment.h/1.2/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
+/semaphore.h/1.4.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/sembuf.h/1.1/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
+/setup.h/1.5.2.1/Tue Feb 26 06:00:26 2002/-ko/Tlinux_2_4_20
+/sfp-machine.h/1.1/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
+/shmbuf.h/1.1/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
+/shmparam.h/1.2/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
+/sigcontext.h/1.4/Sun Dec  2 11:34:58 2001/-ko/Tlinux_2_4_20
+/siginfo.h/1.3.2.2/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
+/signal.h/1.3/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
+/sigp.h/1.5.2.2/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/smp.h/1.5.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/smplock.h/1.3/Fri Mar  9 20:34:48 2001/-ko/Tlinux_2_4_20
+/socket.h/1.6.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/sockios.h/1.2/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
+/softirq.h/1.7/Tue Nov  6 00:55:27 2001/-ko/Tlinux_2_4_20
+/spinlock.h/1.5.2.2/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
+/stat.h/1.4/Fri Mar  9 20:34:48 2001/-ko/Tlinux_2_4_20
+/statfs.h/1.2/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
+/string.h/1.3/Fri Mar  9 20:34:48 2001/-ko/Tlinux_2_4_20
+/system.h/1.6.2.2/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/termbits.h/1.2/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
+/termios.h/1.4/Wed Aug 22 03:25:06 2001/-ko/Tlinux_2_4_20
+/timex.h/1.2.4.3/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/tlb.h/1.1/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
+/todclk.h/1.2/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
+/types.h/1.3/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
+/uaccess.h/1.7.2.3/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
+/ucontext.h/1.4/Tue Nov  6 00:55:27 2001/-ko/Tlinux_2_4_20
+/unaligned.h/1.2/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
+/unistd.h/1.5.2.2/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
+/user.h/1.2/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
+/vtoc.h/1.4/Sun Dec  2 11:34:58 2001/-ko/Tlinux_2_4_20
+/xor.h/1.1/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-s390/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-s390/CVS/Repository
--- linux-2.4.20/include/asm-s390/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-s390/CVS/Repository	2005-01-06 23:07:00.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-s390
diff -urNd -urNd linux-2.4.20/include/asm-s390/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-s390/CVS/Root
--- linux-2.4.20/include/asm-s390/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-s390/CVS/Root	2005-01-06 23:07:00.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-s390/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-s390/CVS/Tag
--- linux-2.4.20/include/asm-s390/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-s390/CVS/Tag	2005-01-06 23:07:03.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-s390/param.h linux-2.4.20-mipscvs-20050106/include/asm-s390/param.h
--- linux-2.4.20/include/asm-s390/param.h	2001-02-13 16:13:44.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-s390/param.h	2001-03-09 14:34:48.000000000 -0600
@@ -11,6 +11,9 @@
 
 #ifndef HZ
 #define HZ 100
+#ifdef __KERNEL__
+#define hz_to_std(a) (a)
+#endif
 #endif
 
 #define EXEC_PAGESIZE	4096
diff -urNd -urNd linux-2.4.20/include/asm-s390x/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-s390x/CVS/Entries
--- linux-2.4.20/include/asm-s390x/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-s390x/CVS/Entries	2005-01-06 23:07:05.000000000 -0600
@@ -0,0 +1,90 @@
+/a.out.h/1.1/Fri Mar  9 20:34:48 2001/-ko/Tlinux_2_4_20
+/atomic.h/1.5.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
+/bitops.h/1.2.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
+/bugs.h/1.1/Fri Mar  9 20:34:48 2001/-ko/Tlinux_2_4_20
+/byteorder.h/1.2/Thu Aug 23 22:24:47 2001/-ko/Tlinux_2_4_20
+/cache.h/1.2/Fri Aug 24 03:38:54 2001/-ko/Tlinux_2_4_20
+/ccwcache.h/1.3/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
+/chandev.h/1.4/Tue Nov  6 00:55:28 2001/-ko/Tlinux_2_4_20
+/checksum.h/1.2/Fri Aug 24 03:38:54 2001/-ko/Tlinux_2_4_20
+/cpcmd.h/1.1/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
+/current.h/1.3/Tue Nov  6 00:55:28 2001/-ko/Tlinux_2_4_20
+/dasd.h/1.5/Tue Nov  6 00:55:28 2001/-ko/Tlinux_2_4_20
+/debug.h/1.4.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
+/delay.h/1.2/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
+/div64.h/1.1/Fri Mar  9 20:34:48 2001/-ko/Tlinux_2_4_20
+/dma.h/1.1/Fri Mar  9 20:34:48 2001/-ko/Tlinux_2_4_20
+/ebcdic.h/1.3.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
+/elf.h/1.2.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/errno.h/1.1/Fri Mar  9 20:34:48 2001/-ko/Tlinux_2_4_20
+/fcntl.h/1.2/Sun Dec  2 11:34:58 2001/-ko/Tlinux_2_4_20
+/gdb-stub.h/1.1/Fri Mar  9 20:34:48 2001/-ko/Tlinux_2_4_20
+/hardirq.h/1.2/Fri Aug 24 03:38:54 2001/-ko/Tlinux_2_4_20
+/hdreg.h/1.1/Fri Mar  9 20:34:48 2001/-ko/Tlinux_2_4_20
+/idals.h/1.2/Fri Aug 24 03:38:54 2001/-ko/Tlinux_2_4_20
+/ide.h/1.1.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
+/init.h/1.2/Fri Aug 24 03:38:54 2001/-ko/Tlinux_2_4_20
+/io.h/1.2/Fri Aug 24 03:38:54 2001/-ko/Tlinux_2_4_20
+/ioctl.h/1.1/Fri Mar  9 20:34:48 2001/-ko/Tlinux_2_4_20
+/ioctls.h/1.1/Fri Mar  9 20:34:48 2001/-ko/Tlinux_2_4_20
+/ipc.h/1.1/Fri Mar  9 20:34:48 2001/-ko/Tlinux_2_4_20
+/ipcbuf.h/1.1/Fri Mar  9 20:34:48 2001/-ko/Tlinux_2_4_20
+/irq.h/1.5.2.2/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/lowcore.h/1.4.2.3/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/mman.h/1.1/Fri Mar  9 20:34:52 2001/-ko/Tlinux_2_4_20
+/mmu.h/1.1/Fri Mar  9 20:34:52 2001/-ko/Tlinux_2_4_20
+/mmu_context.h/1.1/Fri Mar  9 20:34:52 2001/-ko/Tlinux_2_4_20
+/module.h/1.2/Tue Aug 21 12:19:08 2001/-ko/Tlinux_2_4_20
+/msgbuf.h/1.1/Fri Mar  9 20:34:52 2001/-ko/Tlinux_2_4_20
+/namei.h/1.1/Fri Mar  9 20:34:52 2001/-ko/Tlinux_2_4_20
+/page.h/1.4.2.2/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/param.h/1.2/Tue Nov  6 00:55:28 2001/-ko/Tlinux_2_4_20
+/pci.h/1.1/Fri Aug 24 03:38:54 2001/-ko/Tlinux_2_4_20
+/pgalloc.h/1.3.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/pgtable.h/1.4.2.2/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/poll.h/1.1/Fri Mar  9 20:34:52 2001/-ko/Tlinux_2_4_20
+/posix_types.h/1.1/Fri Mar  9 20:34:52 2001/-ko/Tlinux_2_4_20
+/processor.h/1.4.2.3/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/ptrace.h/1.2.2.2/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
+/queue.h/1.3/Fri Aug 24 03:38:54 2001/-ko/Tlinux_2_4_20
+/resource.h/1.1/Fri Mar  9 20:34:52 2001/-ko/Tlinux_2_4_20
+/rwsem.h/1.1.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
+/s390_ext.h/1.1.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/s390dyn.h/1.3/Fri Aug 24 03:38:54 2001/-ko/Tlinux_2_4_20
+/s390io.h/1.2.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/s390mach.h/1.1.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/scatterlist.h/1.2.2.1/Tue Feb 26 06:00:27 2002/-ko/Tlinux_2_4_20
+/segment.h/1.1/Fri Mar  9 20:34:52 2001/-ko/Tlinux_2_4_20
+/semaphore.h/1.2.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/sembuf.h/1.1/Fri Mar  9 20:34:52 2001/-ko/Tlinux_2_4_20
+/setup.h/1.3.2.2/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/shmbuf.h/1.1/Fri Mar  9 20:34:52 2001/-ko/Tlinux_2_4_20
+/shmparam.h/1.1/Fri Mar  9 20:34:52 2001/-ko/Tlinux_2_4_20
+/sigcontext.h/1.2/Sun Dec  2 11:34:58 2001/-ko/Tlinux_2_4_20
+/siginfo.h/1.1.2.2/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
+/signal.h/1.3/Fri Aug 24 03:38:54 2001/-ko/Tlinux_2_4_20
+/sigp.h/1.3.2.2/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/smp.h/1.3.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/smplock.h/1.1/Fri Mar  9 20:34:52 2001/-ko/Tlinux_2_4_20
+/socket.h/1.3/Wed Aug 22 03:25:06 2001/-ko/Tlinux_2_4_20
+/sockios.h/1.1/Fri Mar  9 20:34:52 2001/-ko/Tlinux_2_4_20
+/softirq.h/1.5/Tue Nov  6 00:55:28 2001/-ko/Tlinux_2_4_20
+/spinlock.h/1.4.2.3/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/stat.h/1.1/Fri Mar  9 20:34:52 2001/-ko/Tlinux_2_4_20
+/statfs.h/1.1/Fri Mar  9 20:34:52 2001/-ko/Tlinux_2_4_20
+/string.h/1.2/Thu Aug 23 22:24:47 2001/-ko/Tlinux_2_4_20
+/system.h/1.3.2.2/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/termbits.h/1.1/Fri Mar  9 20:34:52 2001/-ko/Tlinux_2_4_20
+/termios.h/1.4/Fri Aug 24 03:38:54 2001/-ko/Tlinux_2_4_20
+/timex.h/1.1.2.3/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/tlb.h/1.1/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
+/todclk.h/1.2/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
+/types.h/1.2/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
+/uaccess.h/1.3.2.2/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
+/ucontext.h/1.2/Tue Nov  6 00:55:28 2001/-ko/Tlinux_2_4_20
+/unaligned.h/1.1/Fri Mar  9 20:34:52 2001/-ko/Tlinux_2_4_20
+/unistd.h/1.4.2.2/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
+/user.h/1.1/Fri Mar  9 20:34:52 2001/-ko/Tlinux_2_4_20
+/vtoc.h/1.3/Sun Dec  2 11:34:58 2001/-ko/Tlinux_2_4_20
+/xor.h/1.1/Fri Mar  9 20:34:52 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-s390x/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-s390x/CVS/Repository
--- linux-2.4.20/include/asm-s390x/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-s390x/CVS/Repository	2005-01-06 23:07:03.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-s390x
diff -urNd -urNd linux-2.4.20/include/asm-s390x/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-s390x/CVS/Root
--- linux-2.4.20/include/asm-s390x/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-s390x/CVS/Root	2005-01-06 23:07:03.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-s390x/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-s390x/CVS/Tag
--- linux-2.4.20/include/asm-s390x/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-s390x/CVS/Tag	2005-01-06 23:07:05.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-sh/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-sh/CVS/Entries
--- linux-2.4.20/include/asm-sh/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-sh/CVS/Entries	2005-01-06 23:08:09.000000000 -0600
@@ -0,0 +1,107 @@
+/a.out.h/1.1/Sat Oct  9 00:01:43 1999/-ko/Tlinux_2_4_20
+/addrspace.h/1.2/Thu Jan 27 01:05:38 2000/-ko/Tlinux_2_4_20
+/atomic.h/1.5/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
+/bigsur.h/1.1/Wed Aug 22 03:25:06 2001/-ko/Tlinux_2_4_20
+/bitops.h/1.8/Wed Aug 22 03:25:06 2001/-ko/Tlinux_2_4_20
+/bugs.h/1.6/Wed Aug 22 03:25:06 2001/-ko/Tlinux_2_4_20
+/byteorder.h/1.3/Wed Apr 19 04:00:20 2000/-ko/Tlinux_2_4_20
+/cache.h/1.5/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
+/checksum.h/1.9/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
+/current.h/1.4/Wed Jan 31 22:22:34 2001/-ko/Tlinux_2_4_20
+/dc_sysasic.h/1.1/Wed Aug 22 03:25:06 2001/-ko/Tlinux_2_4_20
+/delay.h/1.7/Thu Jan 11 04:02:45 2001/-ko/Tlinux_2_4_20
+/div64.h/1.1/Sun Mar 12 23:15:51 2000/-ko/Tlinux_2_4_20
+/dma.h/1.6/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
+/ec3104.h/1.1/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
+/elf.h/1.6/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
+/errno.h/1.1/Sat Oct  9 00:01:43 1999/-ko/Tlinux_2_4_20
+/fcntl.h/1.3/Thu Oct  5 01:19:02 2000/-ko/Tlinux_2_4_20
+/hardirq.h/1.8/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
+/hd64461.h/1.5/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
+/hd64465.h/1.1/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
+/hd64465_gpio.h/1.3/Wed Aug 22 03:25:06 2001/-ko/Tlinux_2_4_20
+/hdreg.h/1.2/Sun Mar 12 23:15:51 2000/-ko/Tlinux_2_4_20
+/hitachi_7751se.h/1.1/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
+/hitachi_se.h/1.3/Wed Aug 22 03:25:06 2001/-ko/Tlinux_2_4_20
+/hw_irq.h/1.1/Sat Oct  9 00:01:43 1999/-ko/Tlinux_2_4_20
+/ide.h/1.9.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
+/init.h/1.1/Sat Oct  9 00:01:43 1999/-ko/Tlinux_2_4_20
+/io.h/1.11/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
+/io_7751se.h/1.1/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
+/io_adx.h/1.1/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
+/io_bigsur.h/1.1/Wed Aug 22 03:25:06 2001/-ko/Tlinux_2_4_20
+/io_cat68701.h/1.1/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
+/io_dc.h/1.1/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
+/io_ec3104.h/1.1/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
+/io_generic.h/1.2/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
+/io_hd64461.h/1.3/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
+/io_hd64465.h/1.1/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
+/io_se.h/1.2/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
+/io_sh2000.h/1.1/Wed Aug 22 03:25:06 2001/-ko/Tlinux_2_4_20
+/io_unknown.h/1.2/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
+/ioctl.h/1.3/Tue Nov  6 00:55:28 2001/-ko/Tlinux_2_4_20
+/ioctls.h/1.3/Sat Jan 29 01:42:29 2000/-ko/Tlinux_2_4_20
+/ipc.h/1.1/Sat Oct  9 00:01:43 1999/-ko/Tlinux_2_4_20
+/ipcbuf.h/1.1/Sun Mar 12 23:15:51 2000/-ko/Tlinux_2_4_20
+/irq.h/1.11/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
+/keyboard-ec3104.h/1.1/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
+/keyboard.h/1.5/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
+/linux_logo.h/1.3/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
+/machvec.h/1.4/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
+/machvec_init.h/1.2/Mon Aug 28 22:00:25 2000/-ko/Tlinux_2_4_20
+/mc146818rtc.h/1.1/Wed Aug 22 03:25:06 2001/-ko/Tlinux_2_4_20
+/mman.h/1.2/Wed Apr 19 04:00:20 2000/-ko/Tlinux_2_4_20
+/mmu.h/1.1/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
+/mmu_context.h/1.11/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
+/module.h/1.2/Tue Aug 21 12:19:08 2001/-ko/Tlinux_2_4_20
+/msgbuf.h/1.1/Sun Mar 12 23:15:51 2000/-ko/Tlinux_2_4_20
+/namei.h/1.4/Tue Nov  6 00:55:28 2001/-ko/Tlinux_2_4_20
+/page.h/1.11/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
+/param.h/1.4/Thu Jan 11 04:02:45 2001/-ko/Tlinux_2_4_20
+/pci-sh7751.h/1.1/Wed Aug 22 03:25:06 2001/-ko/Tlinux_2_4_20
+/pci.h/1.10.2.1/Tue Feb 26 06:00:27 2002/-ko/Tlinux_2_4_20
+/pgalloc.h/1.5/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
+/pgtable-2level.h/1.7.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/pgtable.h/1.22.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
+/poll.h/1.1/Sat Oct  9 00:01:43 1999/-ko/Tlinux_2_4_20
+/posix_types.h/1.2/Sun Mar 12 23:15:51 2000/-ko/Tlinux_2_4_20
+/processor.h/1.15/Mon Nov  5 20:16:27 2001/-ko/Tlinux_2_4_20
+/ptrace.h/1.7/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
+/resource.h/1.5/Thu Oct  5 01:19:02 2000/-ko/Tlinux_2_4_20
+/rtc.h/1.2/Wed Aug 22 03:25:06 2001/-ko/Tlinux_2_4_20
+/scatterlist.h/1.2/Tue Nov  6 00:55:28 2001/-ko/Tlinux_2_4_20
+/semaphore-helper.h/1.2/Sun Mar 12 23:15:51 2000/-ko/Tlinux_2_4_20
+/semaphore.h/1.5.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/sembuf.h/1.1/Sun Mar 12 23:15:51 2000/-ko/Tlinux_2_4_20
+/serial-bigsur.h/1.1/Wed Aug 22 03:25:06 2001/-ko/Tlinux_2_4_20
+/serial-ec3104.h/1.1/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
+/serial.h/1.4/Wed Aug 22 03:25:06 2001/-ko/Tlinux_2_4_20
+/sh_bios.h/1.3/Wed Jan 31 22:22:34 2001/-ko/Tlinux_2_4_20
+/shmbuf.h/1.1/Sun Mar 12 23:15:51 2000/-ko/Tlinux_2_4_20
+/shmparam.h/1.3/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
+/sigcontext.h/1.5/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
+/siginfo.h/1.4.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
+/signal.h/1.3/Fri Feb  4 07:40:53 2000/-ko/Tlinux_2_4_20
+/smc37c93x.h/1.1/Thu Jun 15 01:56:04 2000/-ko/Tlinux_2_4_20
+/smp.h/1.1/Sat Oct  9 00:01:43 1999/-ko/Tlinux_2_4_20
+/smplock.h/1.3/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
+/socket.h/1.7.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/sockios.h/1.1/Sat Oct  9 00:01:43 1999/-ko/Tlinux_2_4_20
+/softirq.h/1.9/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
+/spinlock.h/1.3/Sat Jan 29 01:42:29 2000/-ko/Tlinux_2_4_20
+/stat.h/1.2.4.1/Tue Feb 26 06:00:27 2002/-ko/Tlinux_2_4_20
+/statfs.h/1.1/Sat Oct  9 00:01:43 1999/-ko/Tlinux_2_4_20
+/string.h/1.8/Sun Dec  2 11:34:58 2001/-ko/Tlinux_2_4_20
+/system.h/1.11/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
+/termbits.h/1.2/Thu Jan 27 01:05:38 2000/-ko/Tlinux_2_4_20
+/termios.h/1.6.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/timex.h/1.3.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/tlb.h/1.1/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
+/types.h/1.3/Sun Mar 12 23:15:51 2000/-ko/Tlinux_2_4_20
+/uaccess.h/1.10.2.1/Tue Feb 26 06:00:27 2002/-ko/Tlinux_2_4_20
+/ucontext.h/1.1/Sat Oct  9 00:01:43 1999/-ko/Tlinux_2_4_20
+/unaligned.h/1.1/Sat Oct  9 00:01:43 1999/-ko/Tlinux_2_4_20
+/unistd.h/1.8.4.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
+/user.h/1.4/Wed Aug 22 03:25:07 2001/-ko/Tlinux_2_4_20
+/xor.h/1.1/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-sh/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-sh/CVS/Repository
--- linux-2.4.20/include/asm-sh/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-sh/CVS/Repository	2005-01-06 23:07:05.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-sh
diff -urNd -urNd linux-2.4.20/include/asm-sh/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-sh/CVS/Root
--- linux-2.4.20/include/asm-sh/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-sh/CVS/Root	2005-01-06 23:07:05.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-sh/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-sh/CVS/Tag
--- linux-2.4.20/include/asm-sh/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-sh/CVS/Tag	2005-01-06 23:07:07.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-sh/param.h linux-2.4.20-mipscvs-20050106/include/asm-sh/param.h
--- linux-2.4.20/include/asm-sh/param.h	2001-01-04 15:19:13.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-sh/param.h	2001-01-10 22:02:45.000000000 -0600
@@ -3,6 +3,9 @@
 
 #ifndef HZ
 #define HZ 100
+#ifdef __KERNEL__
+#define hz_to_std(a) (a)
+#endif
 #endif
 
 #define EXEC_PAGESIZE	4096
diff -urNd -urNd linux-2.4.20/include/asm-sparc/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-sparc/CVS/Entries
--- linux-2.4.20/include/asm-sparc/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-sparc/CVS/Entries	2005-01-06 23:08:09.000000000 -0600
@@ -0,0 +1,142 @@
+/a.out.h/1.4/Wed Feb 16 01:07:49 2000/-ko/Tlinux_2_4_20
+/apc.h/1.1.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
+/asi.h/1.4/Thu May  7 03:03:04 1998/-ko/Tlinux_2_4_20
+/asmmacro.h/1.4/Wed Feb 16 01:07:49 2000/-ko/Tlinux_2_4_20
+/atomic.h/1.8/Tue Nov  6 07:56:13 2001/-ko/Tlinux_2_4_20
+/audioio.h/1.10/Wed Aug 22 03:25:07 2001/-ko/Tlinux_2_4_20
+/auxio.h/1.3/Tue Mar 17 22:16:30 1998/-ko/Tlinux_2_4_20
+/bitops.h/1.18.2.1/Sat Dec 29 05:38:20 2001/-ko/Tlinux_2_4_20
+/bpp.h/1.2/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
+/bsderrno.h/1.2/Mon Dec  1 18:00:48 1997/-ko/Tlinux_2_4_20
+/btfixup.h/1.1.6.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/bugs.h/1.2/Mon Dec  1 18:00:49 1997/-ko/Tlinux_2_4_20
+/byteorder.h/1.6/Tue Mar 17 22:16:31 1998/-ko/Tlinux_2_4_20
+/cache.h/1.4/Sat Oct  9 00:01:44 1999/-ko/Tlinux_2_4_20
+/checksum.h/1.7.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
+/contregs.h/1.5/Thu Jan 11 04:02:45 2001/-ko/Tlinux_2_4_20
+/cprefix.h/1.1.1.1/Sun Jun  1 03:16:55 1997/-ko/Tlinux_2_4_20
+/current.h/1.1.1.1/Sun Jun  1 03:16:55 1997/-ko/Tlinux_2_4_20
+/cypress.h/1.2/Mon Dec  1 18:00:51 1997/-ko/Tlinux_2_4_20
+/delay.h/1.4/Thu Jan 11 04:02:45 2001/-ko/Tlinux_2_4_20
+/div64.h/1.1/Sat Feb  5 06:47:37 2000/-ko/Tlinux_2_4_20
+/dma.h/1.8/Sat Feb  5 06:47:37 2000/-ko/Tlinux_2_4_20
+/ebus.h/1.2/Sat Feb  5 06:47:37 2000/-ko/Tlinux_2_4_20
+/ecc.h/1.2/Mon Dec  1 18:00:52 1997/-ko/Tlinux_2_4_20
+/elf.h/1.11/Sat Jul 15 03:32:28 2000/-ko/Tlinux_2_4_20
+/errno.h/1.2/Mon Dec  1 18:00:53 1997/-ko/Tlinux_2_4_20
+/fbio.h/1.5/Sat Oct  9 00:01:44 1999/-ko/Tlinux_2_4_20
+/fcntl.h/1.11/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
+/floppy.h/1.9.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/hardirq.h/1.12/Thu Aug 23 22:24:47 2001/-ko/Tlinux_2_4_20
+/hdreg.h/1.2/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
+/head.h/1.7/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
+/highmem.h/1.5.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/hw_irq.h/1.1/Sat Sep 22 12:49:40 2001/-ko/Tlinux_2_4_20
+/ide.h/1.6.4.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
+/idprom.h/1.2/Mon Dec  1 18:00:55 1997/-ko/Tlinux_2_4_20
+/init.h/1.3/Sat Oct  9 00:01:44 1999/-ko/Tlinux_2_4_20
+/io-unit.h/1.6/Sat Feb  5 06:47:37 2000/-ko/Tlinux_2_4_20
+/io.h/1.12.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/ioctl.h/1.3/Sat Feb  5 06:47:37 2000/-ko/Tlinux_2_4_20
+/ioctls.h/1.5.6.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
+/iommu.h/1.1.1.1/Sun Jun  1 03:16:57 1997/-ko/Tlinux_2_4_20
+/ipc.h/1.2/Sat Feb  5 06:47:37 2000/-ko/Tlinux_2_4_20
+/ipcbuf.h/1.1/Wed Feb 16 01:07:49 2000/-ko/Tlinux_2_4_20
+/irq.h/1.15/Thu Oct  5 01:19:02 2000/-ko/Tlinux_2_4_20
+/jsflash.h/1.2/Fri Apr 28 01:09:54 2000/-ko/Tlinux_2_4_20
+/kbio.h/1.1.1.1/Sun Jun  1 03:16:55 1997/-ko/Tlinux_2_4_20
+/kdebug.h/1.4/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
+/keyboard.h/1.5.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
+/kgdb.h/1.3/Tue Mar 17 22:16:33 1998/-ko/Tlinux_2_4_20
+/kmap_types.h/1.3.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/linux_logo.h/1.5/Wed Aug 22 03:25:07 2001/-ko/Tlinux_2_4_20
+/machines.h/1.2/Mon Dec  1 18:00:58 1997/-ko/Tlinux_2_4_20
+/mbus.h/1.3/Mon Dec  1 18:00:58 1997/-ko/Tlinux_2_4_20
+/mc146818rtc.h/1.2/Sat Jul 15 03:07:32 2000/-ko/Tlinux_2_4_20
+/memreg.h/1.2/Mon Dec  1 18:00:59 1997/-ko/Tlinux_2_4_20
+/mman.h/1.3/Thu Mar 23 02:26:01 2000/-ko/Tlinux_2_4_20
+/mmu.h/1.1/Wed Jan 10 17:18:05 2001/-ko/Tlinux_2_4_20
+/mmu_context.h/1.7/Mon Aug 28 22:00:25 2000/-ko/Tlinux_2_4_20
+/module.h/1.2/Tue Aug 21 12:19:08 2001/-ko/Tlinux_2_4_20
+/mostek.h/1.6/Wed Jan 31 22:22:35 2001/-ko/Tlinux_2_4_20
+/mpmbox.h/1.2/Mon Dec  1 18:01:01 1997/-ko/Tlinux_2_4_20
+/msgbuf.h/1.1/Wed Feb 16 01:07:49 2000/-ko/Tlinux_2_4_20
+/msi.h/1.2/Mon Dec  1 18:01:02 1997/-ko/Tlinux_2_4_20
+/mxcc.h/1.2/Mon Dec  1 18:01:02 1997/-ko/Tlinux_2_4_20
+/namei.h/1.13/Fri Apr 28 01:09:54 2000/-ko/Tlinux_2_4_20
+/obio.h/1.2/Thu May  7 03:03:09 1998/-ko/Tlinux_2_4_20
+/openprom.h/1.4/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
+/openpromio.h/1.3/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
+/oplib.h/1.7.4.1/Tue Feb 26 06:00:27 2002/-ko/Tlinux_2_4_20
+/page.h/1.19.4.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
+/param.h/1.7/Thu Nov 23 02:00:56 2000/-ko/Tlinux_2_4_20
+/pbm.h/1.2/Sat Feb  5 06:47:37 2000/-ko/Tlinux_2_4_20
+/pci.h/1.9.2.2/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/pcic.h/1.3/Sat Feb  5 06:47:37 2000/-ko/Tlinux_2_4_20
+/pconf.h/1.2.8.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/perfctr.h/1.2/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
+/pgalloc.h/1.12.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
+/pgtable.h/1.28.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
+/pgtsrmmu.h/1.5/Fri Jul 21 22:01:01 2000/-ko/Tlinux_2_4_20
+/pgtsun4.h/1.5/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
+/pgtsun4c.h/1.5/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
+/poll.h/1.2/Sat Feb  5 06:47:37 2000/-ko/Tlinux_2_4_20
+/posix_types.h/1.4/Wed Feb 16 01:07:49 2000/-ko/Tlinux_2_4_20
+/processor.h/1.20/Mon Nov  5 21:57:13 2001/-ko/Tlinux_2_4_20
+/psr.h/1.3/Tue Mar 17 22:16:35 1998/-ko/Tlinux_2_4_20
+/ptrace.h/1.2/Mon Dec  1 18:01:07 1997/-ko/Tlinux_2_4_20
+/reg.h/1.1.1.1/Sun Jun  1 03:16:55 1997/-ko/Tlinux_2_4_20
+/resource.h/1.8/Thu Nov 23 02:00:56 2000/-ko/Tlinux_2_4_20
+/ross.h/1.3/Tue Mar 17 22:16:36 1998/-ko/Tlinux_2_4_20
+/rtc.h/1.2/Mon Dec  1 18:01:08 1997/-ko/Tlinux_2_4_20
+/sbi.h/1.2/Thu May  7 03:03:12 1998/-ko/Tlinux_2_4_20
+/sbus.h/1.10.4.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
+/scatterlist.h/1.6/Tue Nov  6 07:56:13 2001/-ko/Tlinux_2_4_20
+/segment.h/1.1.1.1/Sun Jun  1 03:16:55 1997/-ko/Tlinux_2_4_20
+/semaphore.h/1.11.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/sembuf.h/1.2/Fri Feb 18 00:24:49 2000/-ko/Tlinux_2_4_20
+/sfp-machine.h/1.3/Fri May 12 21:06:47 2000/-ko/Tlinux_2_4_20
+/shmbuf.h/1.1/Wed Feb 16 01:07:49 2000/-ko/Tlinux_2_4_20
+/shmparam.h/1.5/Sat Feb  5 06:47:37 2000/-ko/Tlinux_2_4_20
+/sigcontext.h/1.4/Sat Oct  9 00:01:44 1999/-ko/Tlinux_2_4_20
+/siginfo.h/1.10.4.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
+/signal.h/1.5/Sat Oct  9 00:01:44 1999/-ko/Tlinux_2_4_20
+/smp.h/1.14/Sun Dec  2 11:34:58 2001/-ko/Tlinux_2_4_20
+/smplock.h/1.3/Mon Mar 27 23:54:41 2000/-ko/Tlinux_2_4_20
+/smpprim.h/1.2/Mon Dec  1 18:01:10 1997/-ko/Tlinux_2_4_20
+/socket.h/1.10.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/sockios.h/1.1.1.1/Sun Jun  1 03:16:57 1997/-ko/Tlinux_2_4_20
+/softirq.h/1.15/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
+/solerrno.h/1.2/Mon Dec  1 18:01:11 1997/-ko/Tlinux_2_4_20
+/spinlock.h/1.12/Tue Nov  6 07:56:13 2001/-ko/Tlinux_2_4_20
+/stat.h/1.8/Tue Aug  8 18:54:51 2000/-ko/Tlinux_2_4_20
+/statfs.h/1.2/Mon Dec  1 18:01:12 1997/-ko/Tlinux_2_4_20
+/string.h/1.6.4.1/Tue Feb 26 06:00:27 2002/-ko/Tlinux_2_4_20
+/sun4paddr.h/1.2/Tue Aug 25 09:22:23 1998/-ko/Tlinux_2_4_20
+/sun4prom.h/1.1/Thu May  7 03:03:14 1998/-ko/Tlinux_2_4_20
+/sunbpp.h/1.1/Sat Oct  9 00:01:44 1999/-ko/Tlinux_2_4_20
+/svr4.h/1.3/Tue Aug 25 09:22:24 1998/-ko/Tlinux_2_4_20
+/swift.h/1.1.1.1/Sun Jun  1 03:16:56 1997/-ko/Tlinux_2_4_20
+/sysen.h/1.2/Mon Dec  1 18:01:13 1997/-ko/Tlinux_2_4_20
+/system.h/1.15/Tue Nov  6 07:56:14 2001/-ko/Tlinux_2_4_20
+/termbits.h/1.4.4.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/termios.h/1.11/Wed Aug 22 03:25:10 2001/-ko/Tlinux_2_4_20
+/timer.h/1.7/Sun Jun 13 16:36:14 1999/-ko/Tlinux_2_4_20
+/timex.h/1.2.6.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/tlb.h/1.1/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
+/traps.h/1.3/Thu May  7 03:03:15 1998/-ko/Tlinux_2_4_20
+/tsunami.h/1.2/Mon Dec  1 18:01:14 1997/-ko/Tlinux_2_4_20
+/turbosparc.h/1.4/Sat Oct  9 00:01:44 1999/-ko/Tlinux_2_4_20
+/types.h/1.4.4.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/uaccess.h/1.13/Tue Nov  6 07:56:14 2001/-ko/Tlinux_2_4_20
+/unaligned.h/1.2/Tue Mar 17 22:16:39 1998/-ko/Tlinux_2_4_20
+/unistd.h/1.17.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
+/user.h/1.3/Thu May  7 03:03:16 1998/-ko/Tlinux_2_4_20
+/vac-ops.h/1.3.6.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
+/vaddrs.h/1.8.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/vfc_ioctls.h/1.1.1.1/Sun Jun  1 03:16:56 1997/-ko/Tlinux_2_4_20
+/viking.h/1.2/Mon Dec  1 18:01:18 1997/-ko/Tlinux_2_4_20
+/vuid_event.h/1.1.1.1/Sun Jun  1 03:16:56 1997/-ko/Tlinux_2_4_20
+/winmacro.h/1.6/Thu Jun 15 01:56:04 2000/-ko/Tlinux_2_4_20
+/xor.h/1.2/Tue Nov  6 07:56:14 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-sparc/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-sparc/CVS/Repository
--- linux-2.4.20/include/asm-sparc/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-sparc/CVS/Repository	2005-01-06 23:07:07.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-sparc
diff -urNd -urNd linux-2.4.20/include/asm-sparc/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-sparc/CVS/Root
--- linux-2.4.20/include/asm-sparc/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-sparc/CVS/Root	2005-01-06 23:07:07.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-sparc/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-sparc/CVS/Tag
--- linux-2.4.20/include/asm-sparc/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-sparc/CVS/Tag	2005-01-06 23:07:10.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-sparc/param.h linux-2.4.20-mipscvs-20050106/include/asm-sparc/param.h
--- linux-2.4.20/include/asm-sparc/param.h	2000-10-30 16:34:12.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-sparc/param.h	2000-11-22 20:00:56.000000000 -0600
@@ -4,6 +4,9 @@
 
 #ifndef HZ
 #define HZ 100
+#ifdef __KERNEL__
+#define hz_to_std(a) (a)
+#endif
 #endif
 
 #define EXEC_PAGESIZE	8192    /* Thanks for sun4's we carry baggage... */
diff -urNd -urNd linux-2.4.20/include/asm-sparc64/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-sparc64/CVS/Entries
--- linux-2.4.20/include/asm-sparc64/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-sparc64/CVS/Entries	2005-01-06 23:07:13.000000000 -0600
@@ -0,0 +1,132 @@
+/a.out.h/1.4/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
+/apb.h/1.1/Thu May  7 03:03:17 1998/-ko/Tlinux_2_4_20
+/asi.h/1.4.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/atomic.h/1.9/Thu Aug 23 22:24:48 2001/-ko/Tlinux_2_4_20
+/audioio.h/1.9/Wed Aug 22 03:25:10 2001/-ko/Tlinux_2_4_20
+/auxio.h/1.4/Wed Aug 22 03:25:10 2001/-ko/Tlinux_2_4_20
+/bbc.h/1.2/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
+/bitops.h/1.16.2.1/Sat Dec 29 05:38:20 2001/-ko/Tlinux_2_4_20
+/bpp.h/1.2/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
+/bsderrno.h/1.2/Mon Dec  1 18:01:22 1997/-ko/Tlinux_2_4_20
+/bugs.h/1.2/Mon Dec  1 18:01:22 1997/-ko/Tlinux_2_4_20
+/byteorder.h/1.7/Tue Mar 17 22:16:41 1998/-ko/Tlinux_2_4_20
+/cache.h/1.5/Tue Nov  6 00:55:28 2001/-ko/Tlinux_2_4_20
+/chafsr.h/1.1/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
+/checksum.h/1.12.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
+/chmctrl.h/1.1/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
+/current.h/1.1.1.1/Sun Jun  1 03:17:16 1997/-ko/Tlinux_2_4_20
+/dcr.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/dcu.h/1.1/Thu Apr  5 04:58:54 2001/-ko/Tlinux_2_4_20
+/delay.h/1.10.2.1/Tue Feb 26 06:00:27 2002/-ko/Tlinux_2_4_20
+/display7seg.h/1.1/Tue Aug  8 18:54:51 2000/-ko/Tlinux_2_4_20
+/div64.h/1.1/Sat Feb  5 06:47:38 2000/-ko/Tlinux_2_4_20
+/dma.h/1.9/Fri Feb 18 22:06:20 2000/-ko/Tlinux_2_4_20
+/ebus.h/1.6/Thu Apr  5 04:58:54 2001/-ko/Tlinux_2_4_20
+/elf.h/1.17.2.3/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/envctrl.h/1.3/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
+/errno.h/1.2/Mon Dec  1 18:01:24 1997/-ko/Tlinux_2_4_20
+/estate.h/1.1/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
+/fbio.h/1.5/Sat Oct  9 00:01:44 1999/-ko/Tlinux_2_4_20
+/fcntl.h/1.11/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
+/fhc.h/1.3.4.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
+/floppy.h/1.20/Tue Nov  6 07:56:14 2001/-ko/Tlinux_2_4_20
+/fpumacro.h/1.6/Thu Jun 17 13:30:48 1999/-ko/Tlinux_2_4_20
+/hardirq.h/1.16/Tue Nov  6 00:55:28 2001/-ko/Tlinux_2_4_20
+/hdreg.h/1.1/Thu Jun 17 14:09:01 1999/-ko/Tlinux_2_4_20
+/head.h/1.6.8.2/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/hw_irq.h/1.1/Sat Sep 22 12:49:40 2001/-ko/Tlinux_2_4_20
+/ide.h/1.13.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/idprom.h/1.2/Mon Dec  1 18:01:26 1997/-ko/Tlinux_2_4_20
+/init.h/1.3/Sat Oct  9 00:01:44 1999/-ko/Tlinux_2_4_20
+/io.h/1.20.2.1/Tue Feb 26 06:00:28 2002/-ko/Tlinux_2_4_20
+/ioctl.h/1.3/Mon Jan  4 16:09:52 1999/-ko/Tlinux_2_4_20
+/ioctls.h/1.7.6.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/iommu.h/1.6/Thu Apr  5 04:58:54 2001/-ko/Tlinux_2_4_20
+/ipc.h/1.2/Sat Feb  5 06:47:38 2000/-ko/Tlinux_2_4_20
+/ipcbuf.h/1.1/Wed Feb 16 01:07:49 2000/-ko/Tlinux_2_4_20
+/irq.h/1.13.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/isa.h/1.1/Thu Jun 14 04:24:26 2001/-ko/Tlinux_2_4_20
+/kbio.h/1.1.1.1/Sun Jun  1 03:17:15 1997/-ko/Tlinux_2_4_20
+/kdebug.h/1.4/Mon Aug 28 22:00:25 2000/-ko/Tlinux_2_4_20
+/keyboard.h/1.5.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/linux_logo.h/1.5/Wed Aug 22 03:25:10 2001/-ko/Tlinux_2_4_20
+/lsu.h/1.2/Mon Dec  1 18:01:29 1997/-ko/Tlinux_2_4_20
+/mc146818rtc.h/1.4/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
+/mman.h/1.3/Thu Mar 23 02:26:01 2000/-ko/Tlinux_2_4_20
+/mmu.h/1.1/Wed Jan 10 17:18:05 2001/-ko/Tlinux_2_4_20
+/mmu_context.h/1.20/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
+/module.h/1.2/Tue Aug 21 12:19:08 2001/-ko/Tlinux_2_4_20
+/mostek.h/1.4/Wed Jan 31 22:22:35 2001/-ko/Tlinux_2_4_20
+/msgbuf.h/1.1/Wed Feb 16 01:07:49 2000/-ko/Tlinux_2_4_20
+/namei.h/1.13/Fri Apr 28 01:09:54 2000/-ko/Tlinux_2_4_20
+/ns87303.h/1.3/Wed Feb 16 01:07:49 2000/-ko/Tlinux_2_4_20
+/openprom.h/1.6/Thu Apr  5 04:58:54 2001/-ko/Tlinux_2_4_20
+/openpromio.h/1.3/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
+/oplib.h/1.9.4.2/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/page.h/1.17.4.2/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/param.h/1.6/Thu Nov 23 02:00:56 2000/-ko/Tlinux_2_4_20
+/parport.h/1.8/Thu Jun 14 04:24:26 2001/-ko/Tlinux_2_4_20
+/pbm.h/1.14/Sat Sep 22 12:49:41 2001/-ko/Tlinux_2_4_20
+/pci.h/1.10.2.1/Tue Feb 26 06:00:28 2002/-ko/Tlinux_2_4_20
+/pconf.h/1.2.8.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/perfctr.h/1.2/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
+/pgalloc.h/1.16.2.2/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/pgtable.h/1.36.2.2/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/pil.h/1.1.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/poll.h/1.2/Sat Feb  5 06:47:38 2000/-ko/Tlinux_2_4_20
+/posix_types.h/1.9/Thu Nov 23 02:00:56 2000/-ko/Tlinux_2_4_20
+/processor.h/1.29.2.3/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/psrcompat.h/1.5/Mon Jan  4 16:09:55 1999/-ko/Tlinux_2_4_20
+/pstate.h/1.4/Mon Dec  1 18:01:34 1997/-ko/Tlinux_2_4_20
+/ptrace.h/1.5/Tue Mar 17 22:16:48 1998/-ko/Tlinux_2_4_20
+/reg.h/1.5/Sat Oct  9 00:01:44 1999/-ko/Tlinux_2_4_20
+/resource.h/1.9/Thu Nov 23 02:00:56 2000/-ko/Tlinux_2_4_20
+/rtc.h/1.2/Mon Dec  1 18:01:35 1997/-ko/Tlinux_2_4_20
+/rwsem.h/1.1.2.2/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/sab82532.h/1.5/Wed Aug 22 03:25:11 2001/-ko/Tlinux_2_4_20
+/sbus.h/1.10.4.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/scatterlist.h/1.6/Tue Nov  6 00:55:28 2001/-ko/Tlinux_2_4_20
+/segment.h/1.1.1.1/Sun Jun  1 03:17:16 1997/-ko/Tlinux_2_4_20
+/semaphore.h/1.13.2.2/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/sembuf.h/1.1/Wed Feb 16 01:07:49 2000/-ko/Tlinux_2_4_20
+/sfp-machine.h/1.2/Sat Feb  5 06:47:38 2000/-ko/Tlinux_2_4_20
+/shmbuf.h/1.1/Wed Feb 16 01:07:49 2000/-ko/Tlinux_2_4_20
+/shmparam.h/1.7/Mon Nov  5 20:16:27 2001/-ko/Tlinux_2_4_20
+/sigcontext.h/1.7/Sat Oct  9 00:01:44 1999/-ko/Tlinux_2_4_20
+/siginfo.h/1.8.4.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/signal.h/1.5/Sat Oct  9 00:01:44 1999/-ko/Tlinux_2_4_20
+/smp.h/1.16.2.2/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/smplock.h/1.4.4.1/Sat Dec 29 05:38:20 2001/-ko/Tlinux_2_4_20
+/socket.h/1.10.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/sockios.h/1.1.1.1/Sun Jun  1 03:17:17 1997/-ko/Tlinux_2_4_20
+/softirq.h/1.17/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
+/solerrno.h/1.2/Mon Dec  1 18:01:37 1997/-ko/Tlinux_2_4_20
+/spinlock.h/1.15.2.1/Sat Dec 29 05:38:20 2001/-ko/Tlinux_2_4_20
+/spitfire.h/1.7.2.2/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/starfire.h/1.3/Thu Aug 23 22:24:48 2001/-ko/Tlinux_2_4_20
+/stat.h/1.7/Tue Aug  8 18:54:51 2000/-ko/Tlinux_2_4_20
+/statfs.h/1.2/Mon Dec  1 18:01:39 1997/-ko/Tlinux_2_4_20
+/string.h/1.13/Mon Nov  5 20:16:27 2001/-ko/Tlinux_2_4_20
+/sunbpp.h/1.1/Sat Oct  9 00:01:44 1999/-ko/Tlinux_2_4_20
+/svr4.h/1.4/Tue Aug 25 09:22:36 1998/-ko/Tlinux_2_4_20
+/system.h/1.22.2.2/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/termbits.h/1.5.4.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/termios.h/1.11/Wed Aug 22 03:25:11 2001/-ko/Tlinux_2_4_20
+/timer.h/1.5/Thu Jun 15 01:56:04 2000/-ko/Tlinux_2_4_20
+/timex.h/1.3.2.2/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/tlb.h/1.1/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
+/ttable.h/1.10.2.1/Sat Dec 29 05:38:20 2001/-ko/Tlinux_2_4_20
+/types.h/1.6/Tue Nov  6 00:55:29 2001/-ko/Tlinux_2_4_20
+/uaccess.h/1.14/Mon Nov  5 20:16:27 2001/-ko/Tlinux_2_4_20
+/uctx.h/1.3/Sat Oct  9 00:01:44 1999/-ko/Tlinux_2_4_20
+/unaligned.h/1.2/Tue Mar 17 22:16:52 1998/-ko/Tlinux_2_4_20
+/unistd.h/1.20.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/upa.h/1.3/Sat Feb  5 06:47:38 2000/-ko/Tlinux_2_4_20
+/user.h/1.2/Mon Dec  1 18:01:42 1997/-ko/Tlinux_2_4_20
+/utrap.h/1.1/Tue Mar 17 22:16:52 1998/-ko/Tlinux_2_4_20
+/vga.h/1.3/Fri Apr 28 01:09:54 2000/-ko/Tlinux_2_4_20
+/visasm.h/1.4/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
+/vuid_event.h/1.2/Tue Jun 17 13:29:04 1997/-ko/Tlinux_2_4_20
+/watchdog.h/1.1/Wed Jan 31 22:22:35 2001/-ko/Tlinux_2_4_20
+/xor.h/1.2.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-sparc64/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-sparc64/CVS/Repository
--- linux-2.4.20/include/asm-sparc64/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-sparc64/CVS/Repository	2005-01-06 23:07:10.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-sparc64
diff -urNd -urNd linux-2.4.20/include/asm-sparc64/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-sparc64/CVS/Root
--- linux-2.4.20/include/asm-sparc64/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-sparc64/CVS/Root	2005-01-06 23:07:10.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-sparc64/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-sparc64/CVS/Tag
--- linux-2.4.20/include/asm-sparc64/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-sparc64/CVS/Tag	2005-01-06 23:07:13.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/asm-sparc64/param.h linux-2.4.20-mipscvs-20050106/include/asm-sparc64/param.h
--- linux-2.4.20/include/asm-sparc64/param.h	2000-10-30 16:34:12.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-sparc64/param.h	2000-11-22 20:00:56.000000000 -0600
@@ -4,6 +4,9 @@
 
 #ifndef HZ
 #define HZ 100
+#ifdef __KERNEL__
+#define hz_to_std(a) (a)
+#endif
 #endif
 
 #define EXEC_PAGESIZE	8192    /* Thanks for sun4's we carry baggage... */
diff -urNd -urNd linux-2.4.20/include/asm-x86_64/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-x86_64/CVS/Entries
--- linux-2.4.20/include/asm-x86_64/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-x86_64/CVS/Entries	2005-01-06 23:07:15.000000000 -0600
@@ -0,0 +1,116 @@
+/a.out.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/apic.h/1.2.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/apicdef.h/1.2.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/asm-macros.i/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/atomic.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/bitops.h/1.3.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/boot.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/bootsetup.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/bugs.h/1.2.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/byteorder.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/cache.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/calling.h/1.2.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/checksum.h/1.2.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/cpufeature.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/current.h/1.2.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/debugreg.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/delay.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/desc.h/1.2.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/div64.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/dma.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/e820.h/1.1.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/elf.h/1.2.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/errno.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/fcntl.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/fixmap.h/1.2.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/floppy.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/fpu32.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/hardirq.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/hdreg.h/1.1.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/hw_irq.h/1.2.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/i387.h/1.2.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/ia32.h/1.2.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/ia32_unistd.h/1.2.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/ide.h/1.4.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/init.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/io.h/1.2.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/io_apic.h/1.2.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/ioctl.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/ioctl32.h/1.1.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/ioctls.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/ipc.h/1.2.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/ipcbuf.h/1.1.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/irq.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/kdebug.h/1.2.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/keyboard.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/kmap_types.h/1.1.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/ldt.h/1.2.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/linux_logo.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/locks.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/mc146818rtc.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/mman.h/1.2.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/mmu.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/mmu_context.h/1.3.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/mmx.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/mmzone.h/1.1.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/module.h/1.2.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
+/mpspec.h/1.2.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/msgbuf.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
+/msr.h/1.2.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
+/mtrr.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
+/namei.h/1.1.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/page.h/1.3.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/param.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
+/parport.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
+/pci-direct.h/1.1.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/pci.h/1.1.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/pda.h/1.3.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
+/pgalloc.h/1.3.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/pgtable.h/1.3.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/poll.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
+/posix_types.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
+/prctl.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
+/processor.h/1.3.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
+/proto.h/1.1.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/ptrace.h/1.2.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
+/resource.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
+/rwlock.h/1.2.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
+/rwsem.h/1.3.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/scatterlist.h/1.1.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/segment.h/1.2.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
+/semaphore.h/1.2.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/sembuf.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
+/serial.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
+/setup.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
+/shmbuf.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
+/shmparam.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
+/sigcontext.h/1.2.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
+/sigcontext32.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
+/siginfo.h/1.2.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
+/signal.h/1.1.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/smp.h/1.2.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
+/smplock.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
+/socket.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
+/socket32.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
+/sockios.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
+/softirq.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
+/spinlock.h/1.1.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/stat.h/1.1.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/statfs.h/1.1.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/string.h/1.1.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/system.h/1.3.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/termbits.h/1.1.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/termios.h/1.1.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/timex.h/1.2.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/tlb.h/1.1.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/types.h/1.2.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/uaccess.h/1.1.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/ucontext.h/1.1.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/unaligned.h/1.1.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/unistd.h/1.4.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/user.h/1.2.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/user32.h/1.2.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/vga.h/1.1.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/vsyscall.h/1.2.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/xor.h/1.1.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/asm-x86_64/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-x86_64/CVS/Repository
--- linux-2.4.20/include/asm-x86_64/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-x86_64/CVS/Repository	2005-01-06 23:07:13.000000000 -0600
@@ -0,0 +1 @@
+linux/include/asm-x86_64
diff -urNd -urNd linux-2.4.20/include/asm-x86_64/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-x86_64/CVS/Root
--- linux-2.4.20/include/asm-x86_64/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-x86_64/CVS/Root	2005-01-06 23:07:13.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/asm-x86_64/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-x86_64/CVS/Tag
--- linux-2.4.20/include/asm-x86_64/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/asm-x86_64/CVS/Tag	2005-01-06 23:07:15.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/CVS/Entries linux-2.4.20-mipscvs-20050106/include/CVS/Entries
--- linux-2.4.20/include/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/CVS/Entries	2005-01-06 23:08:09.000000000 -0600
@@ -0,0 +1,25 @@
+/.cvsignore/1.1/Tue Mar 17 22:26:50 1998/-ko/Tlinux_2_4_20
+D/asm-alpha////
+D/asm-arm////
+D/asm-cris////
+D/asm-generic////
+D/asm-i386////
+D/asm-ia64////
+D/asm-m68k////
+D/asm-mips////
+D/asm-mips64////
+D/asm-parisc////
+D/asm-ppc////
+D/asm-ppc64////
+D/asm-s390////
+D/asm-s390x////
+D/asm-sh////
+D/asm-sparc////
+D/asm-sparc64////
+D/asm-x86_64////
+D/linux////
+D/math-emu////
+D/net////
+D/pcmcia////
+D/scsi////
+D/video////
diff -urNd -urNd linux-2.4.20/include/CVS/Repository linux-2.4.20-mipscvs-20050106/include/CVS/Repository
--- linux-2.4.20/include/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/CVS/Repository	2005-01-06 23:06:29.000000000 -0600
@@ -0,0 +1 @@
+linux/include
diff -urNd -urNd linux-2.4.20/include/CVS/Root linux-2.4.20-mipscvs-20050106/include/CVS/Root
--- linux-2.4.20/include/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/CVS/Root	2005-01-06 23:06:29.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/CVS/Tag linux-2.4.20-mipscvs-20050106/include/CVS/Tag
--- linux-2.4.20/include/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/CVS/Tag	2005-01-06 23:06:29.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/.cvsignore linux-2.4.20-mipscvs-20050106/include/.cvsignore
--- linux-2.4.20/include/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/.cvsignore	1998-03-17 16:26:50.000000000 -0600
@@ -0,0 +1 @@
+config
diff -urNd -urNd linux-2.4.20/include/linux/byteorder/CVS/Entries linux-2.4.20-mipscvs-20050106/include/linux/byteorder/CVS/Entries
--- linux-2.4.20/include/linux/byteorder/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/byteorder/CVS/Entries	2005-01-06 23:07:33.000000000 -0600
@@ -0,0 +1,7 @@
+/big_endian.h/1.3.4.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/generic.h/1.4.4.1/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
+/little_endian.h/1.3.4.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/pdp_endian.h/1.3/Thu Nov 23 02:00:56 2000/-ko/Tlinux_2_4_20
+/swab.h/1.6.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/swabb.h/1.6/Fri Aug 24 03:38:56 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/linux/byteorder/CVS/Repository linux-2.4.20-mipscvs-20050106/include/linux/byteorder/CVS/Repository
--- linux-2.4.20/include/linux/byteorder/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/byteorder/CVS/Repository	2005-01-06 23:07:33.000000000 -0600
@@ -0,0 +1 @@
+linux/include/linux/byteorder
diff -urNd -urNd linux-2.4.20/include/linux/byteorder/CVS/Root linux-2.4.20-mipscvs-20050106/include/linux/byteorder/CVS/Root
--- linux-2.4.20/include/linux/byteorder/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/byteorder/CVS/Root	2005-01-06 23:07:33.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/linux/byteorder/CVS/Tag linux-2.4.20-mipscvs-20050106/include/linux/byteorder/CVS/Tag
--- linux-2.4.20/include/linux/byteorder/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/byteorder/CVS/Tag	2005-01-06 23:07:33.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/linux/CVS/Entries linux-2.4.20-mipscvs-20050106/include/linux/CVS/Entries
--- linux-2.4.20/include/linux/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/CVS/Entries	2005-01-06 23:08:09.000000000 -0600
@@ -0,0 +1,542 @@
+/.cvsignore/1.3/Thu Jul 24 01:44:54 1997/-ko/Tlinux_2_4_20
+/802_11.h/1.2/Thu Apr  5 04:59:15 2001/-ko/Tlinux_2_4_20
+/a.out.h/1.2/Fri Sep 12 01:34:06 1997/-ko/Tlinux_2_4_20
+/ac97_codec.h/1.14/Sun Dec  2 11:34:58 2001/-ko/Tlinux_2_4_20
+/acct.h/1.3/Mon Jan  4 16:10:00 1999/-ko/Tlinux_2_4_20
+/acpi.h/1.17/Fri Oct 19 01:25:03 2001/-ko/Tlinux_2_4_20
+/adb.h/1.2/Thu Oct  5 01:19:02 2000/-ko/Tlinux_2_4_20
+/adb_mouse.h/1.1/Fri Jan 21 22:34:07 2000/-ko/Tlinux_2_4_20
+/adfs_fs.h/1.6/Thu Oct  5 01:19:02 2000/-ko/Tlinux_2_4_20
+/adfs_fs_i.h/1.3/Thu Feb 24 00:13:20 2000/-ko/Tlinux_2_4_20
+/adfs_fs_sb.h/1.3/Wed Feb 23 00:41:40 2000/-ko/Tlinux_2_4_20
+/affs_fs.h/1.14/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
+/affs_fs_i.h/1.3/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
+/affs_fs_sb.h/1.4/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
+/affs_hardblocks.h/1.1.1.1/Sun Jun  1 03:17:05 1997/-ko/Tlinux_2_4_20
+/agp_backend.h/1.13.2.3/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/agpgart.h/1.3/Wed Jan 10 05:27:36 2001/-ko/Tlinux_2_4_20
+/amifd.h/1.1/Tue Aug 25 09:22:39 1998/-ko/Tlinux_2_4_20
+/amifdreg.h/1.1/Tue Aug 25 09:22:39 1998/-ko/Tlinux_2_4_20
+/amigaffs.h/1.5.2.1/Tue Feb 26 06:00:29 2002/-ko/Tlinux_2_4_20
+/apm_bios.h/1.12/Sat Sep 22 12:49:41 2001/-ko/Tlinux_2_4_20
+/arcdevice.h/1.11/Thu Oct  5 01:19:02 2000/-ko/Tlinux_2_4_20
+/atalk.h/1.8/Thu Oct  5 01:19:02 2000/-ko/Tlinux_2_4_20
+/atari_rootsec.h/1.1/Tue Aug 25 09:22:40 1998/-ko/Tlinux_2_4_20
+/atm.h/1.3/Sun Dec  2 11:34:59 2001/-ko/Tlinux_2_4_20
+/atm_eni.h/1.2/Wed Feb 23 00:41:40 2000/-ko/Tlinux_2_4_20
+/atm_idt77105.h/1.2/Mon Mar 27 23:54:41 2000/-ko/Tlinux_2_4_20
+/atm_nicstar.h/1.2/Wed Feb 23 00:41:40 2000/-ko/Tlinux_2_4_20
+/atm_suni.h/1.2/Mon Mar 27 23:54:41 2000/-ko/Tlinux_2_4_20
+/atm_tcp.h/1.3/Wed Jan 10 17:18:05 2001/-ko/Tlinux_2_4_20
+/atm_zatm.h/1.2/Wed Feb 23 00:41:40 2000/-ko/Tlinux_2_4_20
+/atmapi.h/1.2/Sun Dec  2 11:34:59 2001/-ko/Tlinux_2_4_20
+/atmarp.h/1.2/Wed Feb 23 00:41:40 2000/-ko/Tlinux_2_4_20
+/atmbr2684.h/1.1.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/atmclip.h/1.1/Sat Oct  9 00:01:44 1999/-ko/Tlinux_2_4_20
+/atmdev.h/1.8.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/atmioc.h/1.3/Sun Dec  2 11:34:59 2001/-ko/Tlinux_2_4_20
+/atmlec.h/1.2/Wed Feb 23 00:41:40 2000/-ko/Tlinux_2_4_20
+/atmmpc.h/1.2/Wed Feb 23 00:41:40 2000/-ko/Tlinux_2_4_20
+/atmppp.h/1.1/Sun Dec  2 11:34:59 2001/-ko/Tlinux_2_4_20
+/atmsap.h/1.2/Wed Feb 23 00:41:40 2000/-ko/Tlinux_2_4_20
+/atmsvc.h/1.2/Wed Feb 23 00:41:40 2000/-ko/Tlinux_2_4_20
+/auto_fs.h/1.6.4.2/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/auto_fs4.h/1.2/Thu Nov 23 02:00:56 2000/-ko/Tlinux_2_4_20
+/awe_voice.h/1.6/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
+/ax25.h/1.4/Thu Feb 24 00:13:20 2000/-ko/Tlinux_2_4_20
+/b1lli.h/1.8/Tue Nov  6 00:55:29 2001/-ko/Tlinux_2_4_20
+/b1pcmcia.h/1.4/Tue Nov  6 00:55:29 2001/-ko/Tlinux_2_4_20
+/baycom.h/1.3/Tue Mar 17 22:16:55 1998/-ko/Tlinux_2_4_20
+/bfs_fs.h/1.5/Wed Jan 10 05:27:36 2001/-ko/Tlinux_2_4_20
+/bfs_fs_i.h/1.2/Wed Jan 10 05:27:36 2001/-ko/Tlinux_2_4_20
+/bfs_fs_sb.h/1.3/Wed Jan 10 05:27:36 2001/-ko/Tlinux_2_4_20
+/binfmts.h/1.13/Tue Aug  8 12:37:19 2000/-ko/Tlinux_2_4_20
+/bitops.h/1.2/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
+/blk.h/1.28.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/blkdev.h/1.33.2.3/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/blkpg.h/1.1/Thu Jun 17 14:09:01 1999/-ko/Tlinux_2_4_20
+/bootmem.h/1.6.4.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/bpqether.h/1.2/Tue Aug 25 09:22:41 1998/-ko/Tlinux_2_4_20
+/brlock.h/1.5.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/brlvger.h/1.1.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/cache.h/1.2.2.1/Sat Dec 29 05:38:21 2001/-ko/Tlinux_2_4_20
+/capability.h/1.11/Sun Dec  2 11:34:59 2001/-ko/Tlinux_2_4_20
+/capi.h/1.5.2.1/Tue Feb 26 06:00:29 2002/-ko/Tlinux_2_4_20
+/cciss_ioctl.h/1.2.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/cd1400.h/1.3/Sat Oct  9 00:01:44 1999/-ko/Tlinux_2_4_20
+/cdk.h/1.3/Sat Oct  9 00:01:44 1999/-ko/Tlinux_2_4_20
+/cdrom.h/1.21/Tue Nov  6 07:56:14 2001/-ko/Tlinux_2_4_20
+/circ_buf.h/1.1/Mon Mar 27 23:54:41 2000/-ko/Tlinux_2_4_20
+/cobalt-nvram.h/1.1.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/coda.h/1.12/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
+/coda_cache.h/1.6/Wed Aug 22 03:25:11 2001/-ko/Tlinux_2_4_20
+/coda_fs_i.h/1.8.2.2/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/coda_linux.h/1.16.2.2/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/coda_proc.h/1.5/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
+/coda_psdev.h/1.11.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/coff.h/1.2/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
+/com20020.h/1.3/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
+/compatmac.h/1.2/Wed Jan 10 05:27:36 2001/-ko/Tlinux_2_4_20
+/compiler.h/1.3/Fri Oct 19 01:25:03 2001/-ko/Tlinux_2_4_20
+/completion.h/1.1/Thu Aug 23 22:24:48 2001/-ko/Tlinux_2_4_20
+/comstats.h/1.3/Sat Oct  9 00:01:44 1999/-ko/Tlinux_2_4_20
+/concap.h/1.4/Mon Nov  5 20:16:28 2001/-ko/Tlinux_2_4_20
+/config.h/1.2/Tue Mar 17 22:17:00 1998/-ko/Tlinux_2_4_20
+/console.h/1.13.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/console_struct.h/1.6/Tue Nov  6 00:55:29 2001/-ko/Tlinux_2_4_20
+/consolemap.h/1.3/Mon Feb 15 02:22:27 1999/-ko/Tlinux_2_4_20
+/cramfs_fs.h/1.1.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/cramfs_fs_sb.h/1.1/Thu Aug 23 22:24:48 2001/-ko/Tlinux_2_4_20
+/crc32.h/1.1.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/ctype.h/1.2/Tue Mar 17 22:17:00 1998/-ko/Tlinux_2_4_20
+/cuda.h/1.2/Thu Oct  5 01:19:02 2000/-ko/Tlinux_2_4_20
+/cyclades.h/1.15.4.1/Tue Feb 26 06:00:30 2002/-ko/Tlinux_2_4_20
+/cyclomx.h/1.7/Sat Sep 22 12:49:41 2001/-ko/Tlinux_2_4_20
+/cycx_cfm.h/1.2/Wed Feb 16 01:07:49 2000/-ko/Tlinux_2_4_20
+/cycx_drv.h/1.5/Wed Feb 16 01:07:49 2000/-ko/Tlinux_2_4_20
+/cycx_x25.h/1.3/Wed Apr 19 04:00:20 2000/-ko/Tlinux_2_4_20
+/dcache.h/1.34.2.2/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/delay.h/1.4/Thu Jan 11 04:02:45 2001/-ko/Tlinux_2_4_20
+/devfs_fs.h/1.2.2.1/Sat Dec 29 05:38:21 2001/-ko/Tlinux_2_4_20
+/devfs_fs_kernel.h/1.8.2.2/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/devpts_fs.h/1.3/Thu Oct  5 01:19:02 2000/-ko/Tlinux_2_4_20
+/dio.h/1.1.6.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/dirent.h/1.2/Mon Aug 28 22:00:25 2000/-ko/Tlinux_2_4_20
+/divert.h/1.2/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
+/dn.h/1.3/Wed Jan 31 22:22:35 2001/-ko/Tlinux_2_4_20
+/dnotify.h/1.1.4.2/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/dp83840.h/1.1/Fri Aug 24 03:38:55 2001/-ko/Tlinux_2_4_20
+/dtlk.h/1.2/Wed Jan 10 17:18:05 2001/-ko/Tlinux_2_4_20
+/eeprom.h/1.1.2.1/Sat Dec 29 05:38:21 2001/-ko/Tlinux_2_4_20
+/efi.h/1.1.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/efs_dir.h/1.2/Mon Apr 12 09:11:01 1999/-ko/Tlinux_2_4_20
+/efs_fs.h/1.18/Sun Mar 19 01:28:58 2000/-ko/Tlinux_2_4_20
+/efs_fs_i.h/1.8/Thu Jun 17 13:30:54 1999/-ko/Tlinux_2_4_20
+/efs_fs_sb.h/1.7/Thu Jun 17 13:30:55 1999/-ko/Tlinux_2_4_20
+/efs_vh.h/1.2/Mon Apr 12 09:11:02 1999/-ko/Tlinux_2_4_20
+/elevator.h/1.7.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/elf.h/1.16.2.3/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/elfcore.h/1.4/Sun Jun 25 01:20:06 2000/-ko/Tlinux_2_4_20
+/errno.h/1.2/Wed Apr 19 04:00:20 2000/-ko/Tlinux_2_4_20
+/errqueue.h/1.2/Sat Feb  5 06:47:38 2000/-ko/Tlinux_2_4_20
+/etherdevice.h/1.8/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
+/ethtool.h/1.7.2.2/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/ext2_fs.h/1.28/Tue Nov  6 00:55:29 2001/-ko/Tlinux_2_4_20
+/ext2_fs_i.h/1.5.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/ext2_fs_sb.h/1.5/Wed Jan 10 17:18:05 2001/-ko/Tlinux_2_4_20
+/ext3_fs.h/1.1.2.3/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/ext3_fs_i.h/1.1/Sun Dec  2 11:34:59 2001/-ko/Tlinux_2_4_20
+/ext3_fs_sb.h/1.1.2.1/Tue Feb 26 06:00:30 2002/-ko/Tlinux_2_4_20
+/ext3_jbd.h/1.1.2.1/Sat Dec 29 05:38:21 2001/-ko/Tlinux_2_4_20
+/fat_cvf.h/1.3/Thu Oct  5 01:19:02 2000/-ko/Tlinux_2_4_20
+/fb.h/1.23.4.2/Sun Dec 29 20:08:23 2002/-ko/Tlinux_2_4_20
+/fcdevice.h/1.3/Thu Apr  5 04:59:15 2001/-ko/Tlinux_2_4_20
+/fcntl.h/1.3/Fri Oct 19 01:25:03 2001/-ko/Tlinux_2_4_20
+/fd.h/1.5.4.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/fd1772.h/1.1/Tue Jun 22 23:07:51 1999/-ko/Tlinux_2_4_20
+/fddidevice.h/1.4/Thu Apr  5 04:59:15 2001/-ko/Tlinux_2_4_20
+/fdreg.h/1.1.1.1/Sun Jun  1 03:17:01 1997/-ko/Tlinux_2_4_20
+/file.h/1.16.4.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/filter.h/1.4/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
+/fs.h/1.78.2.6/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/fs_struct.h/1.5/Thu Aug 23 22:24:48 2001/-ko/Tlinux_2_4_20
+/fsfilter.h/1.1.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/ftape-header-segment.h/1.1/Sat Dec  6 23:55:57 1997/-ko/Tlinux_2_4_20
+/ftape-vendors.h/1.1/Sat Dec  6 23:55:57 1997/-ko/Tlinux_2_4_20
+/ftape.h/1.5/Fri Feb  4 07:40:54 2000/-ko/Tlinux_2_4_20
+/gameport.h/1.4.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/generic_serial.h/1.3.2.1/Tue Feb 26 06:00:30 2002/-ko/Tlinux_2_4_20
+/genhd.h/1.19.2.3/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/ghash.h/1.1/Sun Jul 20 15:01:07 1997/-ko/Tlinux_2_4_20
+/hayesesp.h/1.2/Thu Jun 17 13:30:57 1999/-ko/Tlinux_2_4_20
+/hcdp_serial.h/1.1.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/hdlc.h/1.2/Fri Aug 24 03:38:55 2001/-ko/Tlinux_2_4_20
+/hdlcdrv.h/1.10/Wed Jan 10 05:27:36 2001/-ko/Tlinux_2_4_20
+/hdreg.h/1.19.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/hdsmart.h/1.3/Thu Jun 15 01:56:04 2000/-ko/Tlinux_2_4_20
+/hfs_fs.h/1.9/Fri Mar  9 20:34:53 2001/-ko/Tlinux_2_4_20
+/hfs_fs_i.h/1.5/Fri Mar  9 20:34:53 2001/-ko/Tlinux_2_4_20
+/hfs_fs_sb.h/1.3/Fri Mar  9 20:34:53 2001/-ko/Tlinux_2_4_20
+/hfs_sysdep.h/1.8/Fri Mar  9 20:34:53 2001/-ko/Tlinux_2_4_20
+/hiddev.h/1.1.2.2/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/highmem.h/1.14.2.4/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/highuid.h/1.3/Wed Jan 10 05:27:36 2001/-ko/Tlinux_2_4_20
+/hil.h/1.1.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/hil_mlc.h/1.1.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/hippidevice.h/1.5/Thu Apr  5 04:59:15 2001/-ko/Tlinux_2_4_20
+/hp_sdc.h/1.1.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/hpfs_fs.h/1.2/Sun Mar 19 01:28:59 2000/-ko/Tlinux_2_4_20
+/hpfs_fs_i.h/1.4/Wed Feb 23 00:41:40 2000/-ko/Tlinux_2_4_20
+/hpfs_fs_sb.h/1.2/Thu Jun 17 13:30:59 1999/-ko/Tlinux_2_4_20
+/hysdn_if.h/1.4/Mon Nov  5 20:16:29 2001/-ko/Tlinux_2_4_20
+/i2c-algo-bit.h/1.1/Sat Feb  5 06:47:38 2000/-ko/Tlinux_2_4_20
+/i2c-algo-ite.h/1.1/Fri Mar 16 12:44:20 2001/-ko/Tlinux_2_4_20
+/i2c-algo-pcf.h/1.2/Thu Mar 23 02:26:01 2000/-ko/Tlinux_2_4_20
+/i2c-dev.h/1.6/Tue Nov  6 00:55:29 2001/-ko/Tlinux_2_4_20
+/i2c-elektor.h/1.3/Tue Nov  6 00:55:29 2001/-ko/Tlinux_2_4_20
+/i2c-id.h/1.9/Tue Nov  6 00:55:29 2001/-ko/Tlinux_2_4_20
+/i2c-old.h/1.1/Sat Feb  5 06:47:38 2000/-ko/Tlinux_2_4_20
+/i2c-proc.h/1.1/Tue Nov  6 00:55:29 2001/-ko/Tlinux_2_4_20
+/i2c.h/1.14/Tue Nov  6 00:55:29 2001/-ko/Tlinux_2_4_20
+/i2o-dev.h/1.2/Tue Nov  6 00:55:29 2001/-ko/Tlinux_2_4_20
+/i2o.h/1.13.2.2/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/i8k.h/1.1.2.1/Sat Dec 29 05:38:21 2001/-ko/Tlinux_2_4_20
+/ibmtr.h/1.4/Fri Aug 24 03:38:55 2001/-ko/Tlinux_2_4_20
+/icmp.h/1.5/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
+/icmpv6.h/1.4/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
+/ide.h/1.25.2.2/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/if.h/1.8/Tue Nov  6 07:56:14 2001/-ko/Tlinux_2_4_20
+/if_arcnet.h/1.2/Sat Feb  5 06:47:45 2000/-ko/Tlinux_2_4_20
+/if_arp.h/1.17.2.1/Tue Feb 26 06:00:30 2002/-ko/Tlinux_2_4_20
+/if_bonding.h/1.3.2.2/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/if_bridge.h/1.1/Thu Feb 24 00:13:20 2000/-ko/Tlinux_2_4_20
+/if_cablemodem.h/1.2/Sat Oct  9 00:01:44 1999/-ko/Tlinux_2_4_20
+/if_ec.h/1.3/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
+/if_eql.h/1.4/Thu Apr  5 04:59:16 2001/-ko/Tlinux_2_4_20
+/if_ether.h/1.10.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/if_fc.h/1.2/Sat Oct  9 00:01:44 1999/-ko/Tlinux_2_4_20
+/if_fddi.h/1.3/Thu Jun 17 13:31:00 1999/-ko/Tlinux_2_4_20
+/if_frad.h/1.5/Thu Apr  5 04:59:16 2001/-ko/Tlinux_2_4_20
+/if_hippi.h/1.3/Wed Aug 22 03:25:11 2001/-ko/Tlinux_2_4_20
+/if_ltalk.h/1.2/Sat Oct  9 00:01:44 1999/-ko/Tlinux_2_4_20
+/if_packet.h/1.7/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
+/if_plip.h/1.1.1.1/Sun Jun  1 03:17:04 1997/-ko/Tlinux_2_4_20
+/if_ppp.h/1.10/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
+/if_pppox.h/1.4.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/if_pppvar.h/1.11/Wed Jul 12 01:43:10 2000/-ko/Tlinux_2_4_20
+/if_shaper.h/1.6/Sat Oct  9 00:01:44 1999/-ko/Tlinux_2_4_20
+/if_slip.h/1.2/Tue Mar 17 22:17:08 1998/-ko/Tlinux_2_4_20
+/if_strip.h/1.1.1.1/Sun Jun  1 03:17:05 1997/-ko/Tlinux_2_4_20
+/if_tr.h/1.3/Tue Aug 25 09:22:51 1998/-ko/Tlinux_2_4_20
+/if_tun.h/1.2/Wed Aug 22 03:25:11 2001/-ko/Tlinux_2_4_20
+/if_tunnel.h/1.1/Tue Dec 16 06:06:49 1997/-ko/Tlinux_2_4_20
+/if_vlan.h/1.1.2.2/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/if_wanpipe.h/1.1/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
+/if_wanpipe_common.h/1.1/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
+/igmp.h/1.6.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/in.h/1.6/Thu Nov 23 02:00:56 2000/-ko/Tlinux_2_4_20
+/in6.h/1.10/Mon Aug 28 22:00:25 2000/-ko/Tlinux_2_4_20
+/in_route.h/1.3/Tue Aug 25 09:22:52 1998/-ko/Tlinux_2_4_20
+/in_systm.h/1.1.1.1/Sun Jun  1 03:17:05 1997/-ko/Tlinux_2_4_20
+/inet.h/1.4.4.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/inetdevice.h/1.7.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
+/init.h/1.13.2.1/Sat Dec 29 05:38:22 2001/-ko/Tlinux_2_4_20
+/input.h/1.13.2.2/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/intermezzo_fs.h/1.1.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/intermezzo_idl.h/1.1.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/intermezzo_journal.h/1.1/Sun Dec  2 11:34:59 2001/-ko/Tlinux_2_4_20
+/intermezzo_kml.h/1.1/Sun Dec  2 11:34:59 2001/-ko/Tlinux_2_4_20
+/intermezzo_lib.h/1.1.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/intermezzo_psdev.h/1.1.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/intermezzo_upcall.h/1.1/Sun Dec  2 11:34:59 2001/-ko/Tlinux_2_4_20
+/interrupt.h/1.19/Fri Oct 19 01:25:03 2001/-ko/Tlinux_2_4_20
+/iobuf.h/1.5.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/ioctl.h/1.1.1.1/Sun Jun  1 03:17:02 1997/-ko/Tlinux_2_4_20
+/ioport.h/1.7.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/ip.h/1.4/Sat Feb  5 06:47:45 2000/-ko/Tlinux_2_4_20
+/ipc.h/1.7/Wed Feb 16 01:07:50 2000/-ko/Tlinux_2_4_20
+/ipsec.h/1.2/Fri Aug 24 03:38:55 2001/-ko/Tlinux_2_4_20
+/ipv6.h/1.3/Sat Sep 19 19:19:49 1998/-ko/Tlinux_2_4_20
+/ipv6_route.h/1.5/Sat Sep 19 19:19:49 1998/-ko/Tlinux_2_4_20
+/ipx.h/1.5/Mon Feb 15 02:22:32 1999/-ko/Tlinux_2_4_20
+/irda.h/1.7.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/irq.h/1.9.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
+/irq_cpustat.h/1.4/Thu Aug 23 22:24:49 2001/-ko/Tlinux_2_4_20
+/isapnp.h/1.9/Sun Dec  2 11:34:59 2001/-ko/Tlinux_2_4_20
+/isdn.h/1.27.2.1/Sat Dec 29 05:38:22 2001/-ko/Tlinux_2_4_20
+/isdn_divertif.h/1.4.2.1/Sat Dec 29 05:38:23 2001/-ko/Tlinux_2_4_20
+/isdn_lzscomp.h/1.2.2.1/Sat Dec 29 05:38:23 2001/-ko/Tlinux_2_4_20
+/isdn_ppp.h/1.12/Mon Nov  5 20:16:29 2001/-ko/Tlinux_2_4_20
+/isdnif.h/1.17.2.1/Sat Dec 29 05:38:23 2001/-ko/Tlinux_2_4_20
+/isicom.h/1.4/Fri Aug 24 03:38:55 2001/-ko/Tlinux_2_4_20
+/iso_fs.h/1.15.2.1/Tue Feb 26 06:00:30 2002/-ko/Tlinux_2_4_20
+/iso_fs_i.h/1.4/Tue Nov  6 07:56:14 2001/-ko/Tlinux_2_4_20
+/iso_fs_sb.h/1.7/Tue Nov  6 07:56:14 2001/-ko/Tlinux_2_4_20
+/istallion.h/1.4/Sat Oct  9 00:01:45 1999/-ko/Tlinux_2_4_20
+/ite_gpio.h/1.1/Fri Mar 16 12:44:20 2001/-ko/Tlinux_2_4_20
+/ixjuser.h/1.4/Fri Oct 19 01:25:03 2001/-ko/Tlinux_2_4_20
+/jbd.h/1.1.2.5/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/jffs.h/1.4/Mon Nov  5 20:16:29 2001/-ko/Tlinux_2_4_20
+/jffs2.h/1.1.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
+/jffs2_fs_i.h/1.1/Fri Oct 19 01:25:03 2001/-ko/Tlinux_2_4_20
+/jffs2_fs_sb.h/1.2.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
+/journal-head.h/1.1/Sun Dec  2 11:34:59 2001/-ko/Tlinux_2_4_20
+/joystick.h/1.13/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
+/kbd_diacr.h/1.1/Tue Jun 17 13:30:33 1997/-ko/Tlinux_2_4_20
+/kbd_kern.h/1.7.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
+/kbd_ll.h/1.4/Sun Jun 13 16:36:36 1999/-ko/Tlinux_2_4_20
+/kd.h/1.2.6.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
+/kdev_t.h/1.3.2.3/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
+/kernel.h/1.25.2.3/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/kernel_stat.h/1.8.2.2/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/kernelcapi.h/1.11.2.1/Tue Feb 26 06:00:30 2002/-ko/Tlinux_2_4_20
+/keyboard.h/1.3.4.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
+/kmod.h/1.8/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
+/lapb.h/1.2/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
+/limits.h/1.3.4.2/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/linkage.h/1.11/Thu Nov 23 02:00:56 2000/-ko/Tlinux_2_4_20
+/linux_logo.h/1.3/Wed Aug 22 03:25:11 2001/-ko/Tlinux_2_4_20
+/list.h/1.11.2.3/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/locks.h/1.7/Tue Nov  6 00:55:29 2001/-ko/Tlinux_2_4_20
+/logibusmouse.h/1.1/Sat Oct  9 00:01:45 1999/-ko/Tlinux_2_4_20
+/loop.h/1.6/Fri Oct 19 01:25:03 2001/-ko/Tlinux_2_4_20
+/lp.h/1.13/Tue Nov  6 07:56:14 2001/-ko/Tlinux_2_4_20
+/lvm.h/1.10.2.2/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/major.h/1.27.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
+/malloc.h/1.2/Sun Dec  2 11:34:59 2001/-ko/Tlinux_2_4_20
+/matroxfb.h/1.2/Sat Jul  8 00:53:08 2000/-ko/Tlinux_2_4_20
+/mc146818rtc.h/1.8.2.1/Mon Sep  2 13:55:56 2002/-ko/Tlinux_2_4_20
+/mc6821.h/1.1/Sat Oct  9 00:01:45 1999/-ko/Tlinux_2_4_20
+/mca.h/1.5/Mon Aug 28 22:00:25 2000/-ko/Tlinux_2_4_20
+/meye.h/1.1/Thu Aug 23 22:24:49 2001/-ko/Tlinux_2_4_20
+/mii.h/1.3.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/minix_fs.h/1.19/Fri Oct 19 01:25:03 2001/-ko/Tlinux_2_4_20
+/minix_fs_i.h/1.1.1.1/Sun Jun  1 03:17:02 1997/-ko/Tlinux_2_4_20
+/minix_fs_sb.h/1.3/Tue Aug 25 09:22:58 1998/-ko/Tlinux_2_4_20
+/miscdevice.h/1.19.2.2/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
+/mm.h/1.63.2.3/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
+/mman.h/1.2/Fri Feb  4 07:40:54 2000/-ko/Tlinux_2_4_20
+/mmzone.h/1.15.2.3/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/modsetver.h/1.1.1.1/Sun Jun  1 03:17:04 1997/-ko/Tlinux_2_4_20
+/module.h/1.23.2.1/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
+/mount.h/1.20/Mon Nov  5 20:16:29 2001/-ko/Tlinux_2_4_20
+/mpp.h/1.1.1.1/Sun Jun  1 03:17:05 1997/-ko/Tlinux_2_4_20
+/mroute.h/1.5/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
+/msdos_fs.h/1.22/Tue Nov  6 00:55:29 2001/-ko/Tlinux_2_4_20
+/msdos_fs_i.h/1.8/Wed Feb 23 00:41:40 2000/-ko/Tlinux_2_4_20
+/msdos_fs_sb.h/1.12/Tue Nov  6 00:55:30 2001/-ko/Tlinux_2_4_20
+/msg.h/1.9/Wed Feb 16 01:07:55 2000/-ko/Tlinux_2_4_20
+/mtio.h/1.6/Sun Dec  2 11:34:59 2001/-ko/Tlinux_2_4_20
+/n_r3964.h/1.2/Thu Apr  5 04:59:16 2001/-ko/Tlinux_2_4_20
+/namespace.h/1.1.2.2/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
+/nbd.h/1.11.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
+/ncp.h/1.4/Sat Dec  4 03:59:13 1999/-ko/Tlinux_2_4_20
+/ncp_fs.h/1.16/Fri Mar  9 20:34:57 2001/-ko/Tlinux_2_4_20
+/ncp_fs_i.h/1.5/Mon Jul  3 21:46:09 2000/-ko/Tlinux_2_4_20
+/ncp_fs_sb.h/1.9/Sat Jul  8 00:53:08 2000/-ko/Tlinux_2_4_20
+/ncp_mount.h/1.5/Wed Feb 16 01:07:58 2000/-ko/Tlinux_2_4_20
+/ncp_no.h/1.1/Sat Dec  4 03:59:13 1999/-ko/Tlinux_2_4_20
+/net.h/1.11/Wed Jun 13 17:28:16 2001/-ko/Tlinux_2_4_20
+/netbeui.h/1.1.1.1/Sun Jun  1 03:17:01 1997/-ko/Tlinux_2_4_20
+/netdevice.h/1.34.2.4/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/netfilter.h/1.7/Wed Jun 13 17:28:16 2001/-ko/Tlinux_2_4_20
+/netfilter_arp.h/1.1.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
+/netfilter_bridge.h/1.1/Wed Aug 22 03:25:11 2001/-ko/Tlinux_2_4_20
+/netfilter_ddp.h/1.1/Sat Oct  9 00:01:45 1999/-ko/Tlinux_2_4_20
+/netfilter_decnet.h/1.3/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
+/netfilter_ipv4.h/1.4.4.1/Tue Feb 26 06:00:31 2002/-ko/Tlinux_2_4_20
+/netfilter_ipv6.h/1.3/Thu Jan 11 04:02:45 2001/-ko/Tlinux_2_4_20
+/netfilter_ipx.h/1.1/Sat Oct  9 00:01:45 1999/-ko/Tlinux_2_4_20
+/netfilter_x25.h/1.1/Sat Oct  9 00:01:45 1999/-ko/Tlinux_2_4_20
+/netlink.h/1.9.2.3/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/netrom.h/1.3/Tue Dec 16 05:36:59 1997/-ko/Tlinux_2_4_20
+/nfs.h/1.9/Wed Apr 19 04:00:20 2000/-ko/Tlinux_2_4_20
+/nfs2.h/1.1/Wed Apr 19 04:00:20 2000/-ko/Tlinux_2_4_20
+/nfs3.h/1.3/Wed Apr 19 04:00:20 2000/-ko/Tlinux_2_4_20
+/nfs_flushd.h/1.3.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
+/nfs_fs.h/1.26.2.3/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/nfs_fs_i.h/1.12.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
+/nfs_fs_sb.h/1.6/Sun Dec  2 11:34:59 2001/-ko/Tlinux_2_4_20
+/nfs_mount.h/1.4/Thu Oct  5 01:19:02 2000/-ko/Tlinux_2_4_20
+/nfs_page.h/1.6.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
+/nfs_xdr.h/1.5.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/nfsiod.h/1.2/Thu Jun 17 13:31:09 1999/-ko/Tlinux_2_4_20
+/nls.h/1.7.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
+/nmi.h/1.1/Fri Oct 19 01:25:03 2001/-ko/Tlinux_2_4_20
+/notifier.h/1.4.4.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/ntfs_fs.h/1.4/Tue Nov  6 07:56:14 2001/-ko/Tlinux_2_4_20
+/ntfs_fs_i.h/1.7/Fri Oct 19 01:25:03 2001/-ko/Tlinux_2_4_20
+/ntfs_fs_sb.h/1.6/Fri Oct 19 01:25:03 2001/-ko/Tlinux_2_4_20
+/nubus.h/1.4.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/nvram.h/1.2.4.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/openprom_fs.h/1.1/Sat Feb  5 06:47:45 2000/-ko/Tlinux_2_4_20
+/pagemap.h/1.26.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/param.h/1.1.1.1/Sun Jun  1 03:17:01 1997/-ko/Tlinux_2_4_20
+/parport.h/1.27.2.2/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/parport_pc.h/1.11/Wed Aug 22 03:25:11 2001/-ko/Tlinux_2_4_20
+/pc_keyb.h/1.6/Mon Aug 27 09:39:12 2001/-ko/Tlinux_2_4_20
+/pci.h/1.50.2.3/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/pci_gameport.h/1.1.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/pci_ids.h/1.50.2.9/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/personality.h/1.7.2.1/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
+/pg.h/1.2/Thu Apr  5 04:59:16 2001/-ko/Tlinux_2_4_20
+/phonedev.h/1.1/Sat Feb  5 06:47:45 2000/-ko/Tlinux_2_4_20
+/pipe_fs_i.h/1.9/Wed Jun 13 17:28:16 2001/-ko/Tlinux_2_4_20
+/pkt_cls.h/1.3/Sat Feb  5 06:47:45 2000/-ko/Tlinux_2_4_20
+/pkt_sched.h/1.6.4.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/pm.h/1.8.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
+/pmu.h/1.4.2.2/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
+/poll.h/1.13/Fri Aug 24 03:38:56 2001/-ko/Tlinux_2_4_20
+/posix_types.h/1.3/Wed Feb 16 01:07:58 2000/-ko/Tlinux_2_4_20
+/ppdev.h/1.2/Thu Jun 14 04:24:27 2001/-ko/Tlinux_2_4_20
+/ppp-comp.h/1.6/Sat Oct  9 00:01:45 1999/-ko/Tlinux_2_4_20
+/ppp.h/1.1.1.1/Sun Jun  1 03:17:00 1997/-ko/Tlinux_2_4_20
+/ppp_channel.h/1.8/Wed Jun 13 17:28:16 2001/-ko/Tlinux_2_4_20
+/ppp_defs.h/1.5/Sun Mar 19 01:28:59 2000/-ko/Tlinux_2_4_20
+/prctl.h/1.6.2.1/Tue Feb 26 06:00:31 2002/-ko/Tlinux_2_4_20
+/prefetch.h/1.1/Fri Oct 19 01:25:03 2001/-ko/Tlinux_2_4_20
+/proc_fs.h/1.39.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
+/proc_fs_i.h/1.2/Wed Apr 19 04:00:21 2000/-ko/Tlinux_2_4_20
+/ps2esdi.h/1.1.1.1/Sun Jun  1 03:17:02 1997/-ko/Tlinux_2_4_20
+/ptrace.h/1.1.1.1/Sun Jun  1 03:17:00 1997/-ko/Tlinux_2_4_20
+/qic117.h/1.1/Sat Dec  6 23:56:11 1997/-ko/Tlinux_2_4_20
+/qnx4_fs.h/1.11/Mon Jul  3 21:46:09 2000/-ko/Tlinux_2_4_20
+/qnx4_fs_i.h/1.4/Wed Feb 23 00:41:40 2000/-ko/Tlinux_2_4_20
+/qnx4_fs_sb.h/1.3/Wed Feb 16 01:07:58 2000/-ko/Tlinux_2_4_20
+/qnxtypes.h/1.3/Wed Feb 16 01:07:58 2000/-ko/Tlinux_2_4_20
+/quota.h/1.11/Sun Dec  2 11:34:59 2001/-ko/Tlinux_2_4_20
+/quotaops.h/1.10.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
+/random.h/1.6/Fri Feb 18 00:24:49 2000/-ko/Tlinux_2_4_20
+/raw.h/1.2/Wed Jun 13 17:28:16 2001/-ko/Tlinux_2_4_20
+/rbtree.h/1.1/Fri Oct 19 01:25:03 2001/-ko/Tlinux_2_4_20
+/reboot.h/1.3/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
+/reiserfs_fs.h/1.11.2.5/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/reiserfs_fs_i.h/1.4.2.3/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/reiserfs_fs_sb.h/1.5.2.5/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/resource.h/1.3/Fri Feb  4 07:40:54 2000/-ko/Tlinux_2_4_20
+/rocket.h/1.1/Tue Jul 29 04:00:13 1997/-ko/Tlinux_2_4_20
+/romfs_fs.h/1.2/Sun Mar 19 01:28:59 2000/-ko/Tlinux_2_4_20
+/romfs_fs_i.h/1.1.1.1/Sun Jun  1 03:17:05 1997/-ko/Tlinux_2_4_20
+/romfs_fs_sb.h/1.1.1.1/Sun Jun  1 03:17:04 1997/-ko/Tlinux_2_4_20
+/rose.h/1.6/Mon Jan  4 16:10:14 1999/-ko/Tlinux_2_4_20
+/route.h/1.3/Tue Mar 17 22:17:23 1998/-ko/Tlinux_2_4_20
+/rpcsock.h/1.2/Thu Jun 17 13:31:13 1999/-ko/Tlinux_2_4_20
+/rtc.h/1.6/Wed Jan 31 22:22:35 2001/-ko/Tlinux_2_4_20
+/rtnetlink.h/1.15.2.4/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/rwsem-spinlock.h/1.2.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/rwsem.h/1.2.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/sc26198.h/1.2/Tue Mar 17 22:17:24 1998/-ko/Tlinux_2_4_20
+/scc.h/1.7/Wed Jun 13 17:28:16 2001/-ko/Tlinux_2_4_20
+/sched.h/1.60.2.4/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/sdla.h/1.1.1.1/Sun Jun  1 03:17:02 1997/-ko/Tlinux_2_4_20
+/sdla_asy.h/1.1/Wed Jun 13 17:28:16 2001/-ko/Tlinux_2_4_20
+/sdla_chdlc.h/1.2/Wed Jun 13 17:28:16 2001/-ko/Tlinux_2_4_20
+/sdla_fr.h/1.5/Wed Jun 13 17:28:16 2001/-ko/Tlinux_2_4_20
+/sdla_ppp.h/1.3/Wed Jun 13 17:28:16 2001/-ko/Tlinux_2_4_20
+/sdla_x25.h/1.5/Wed Jun 13 17:28:16 2001/-ko/Tlinux_2_4_20
+/sdladrv.h/1.4/Wed Jun 13 17:28:16 2001/-ko/Tlinux_2_4_20
+/sdlapci.h/1.2/Wed Jun 13 17:28:16 2001/-ko/Tlinux_2_4_20
+/sdlasfm.h/1.2/Fri Feb 18 00:24:49 2000/-ko/Tlinux_2_4_20
+/securebits.h/1.1/Thu May  7 03:03:39 1998/-ko/Tlinux_2_4_20
+/selection.h/1.7/Sun Jun 13 16:36:43 1999/-ko/Tlinux_2_4_20
+/sem.h/1.7/Mon Nov  5 20:16:30 2001/-ko/Tlinux_2_4_20
+/seq_file.h/1.1.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
+/serial.h/1.19.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
+/serial167.h/1.2/Thu Jun 17 13:31:14 1999/-ko/Tlinux_2_4_20
+/serialP.h/1.15.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
+/serial_reg.h/1.6/Thu Jun 14 04:24:27 2001/-ko/Tlinux_2_4_20
+/serio.h/1.3.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/shm.h/1.13/Wed Jan 10 17:18:06 2001/-ko/Tlinux_2_4_20
+/shmem_fs.h/1.3.2.1/Sat Dec 29 05:38:23 2001/-ko/Tlinux_2_4_20
+/signal.h/1.6/Wed Jan 10 05:27:36 2001/-ko/Tlinux_2_4_20
+/sisfb.h/1.3.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/skbuff.h/1.27.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
+/slab.h/1.20.2.3/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/smb.h/1.6/Thu Jun 14 04:24:29 2001/-ko/Tlinux_2_4_20
+/smb_fs.h/1.21/Mon Nov  5 20:16:30 2001/-ko/Tlinux_2_4_20
+/smb_fs_i.h/1.9/Wed Aug 22 03:25:12 2001/-ko/Tlinux_2_4_20
+/smb_fs_sb.h/1.8/Thu Jun 14 04:24:29 2001/-ko/Tlinux_2_4_20
+/smb_mount.h/1.5.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/smbno.h/1.4/Mon Nov  5 20:16:30 2001/-ko/Tlinux_2_4_20
+/smp.h/1.13/Thu Oct  5 01:19:02 2000/-ko/Tlinux_2_4_20
+/smp_lock.h/1.4/Fri Apr 28 01:09:55 2000/-ko/Tlinux_2_4_20
+/socket.h/1.21.2.1/Sat Dec 29 05:38:23 2001/-ko/Tlinux_2_4_20
+/sockios.h/1.12/Sun Dec  2 11:34:59 2001/-ko/Tlinux_2_4_20
+/som.h/1.1.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/sonet.h/1.3/Mon Mar 27 23:54:41 2000/-ko/Tlinux_2_4_20
+/sonypi.h/1.3.2.2/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/sound.h/1.4/Mon Aug 28 22:00:25 2000/-ko/Tlinux_2_4_20
+/soundcard.h/1.11/Sun Dec  2 11:34:59 2001/-ko/Tlinux_2_4_20
+/soundmodem.h/1.2/Tue Mar 17 22:17:28 1998/-ko/Tlinux_2_4_20
+/spinlock.h/1.11.2.4/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/stallion.h/1.5/Wed Jan 10 05:27:36 2001/-ko/Tlinux_2_4_20
+/stat.h/1.2/Tue Aug 25 09:23:07 1998/-ko/Tlinux_2_4_20
+/stddef.h/1.2/Wed Feb 16 01:07:58 2000/-ko/Tlinux_2_4_20
+/string.h/1.9/Wed Jun 13 17:28:16 2001/-ko/Tlinux_2_4_20
+/stringify.h/1.1.2.1/Tue Feb 26 06:00:31 2002/-ko/Tlinux_2_4_20
+/swap.h/1.46.2.3/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/swapctl.h/1.7/Fri Oct 19 01:25:04 2001/-ko/Tlinux_2_4_20
+/synclink.h/1.6.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/sys.h/1.1.1.1/Sun Jun  1 03:17:02 1997/-ko/Tlinux_2_4_20
+/sysctl.h/1.44.2.3/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/sysrq.h/1.7.2.2/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
+/sysv_fs.h/1.23/Sun Dec  2 11:34:59 2001/-ko/Tlinux_2_4_20
+/sysv_fs_i.h/1.4/Sun Dec  2 11:34:59 2001/-ko/Tlinux_2_4_20
+/sysv_fs_sb.h/1.5/Sun Dec  2 11:34:59 2001/-ko/Tlinux_2_4_20
+/tcp.h/1.10/Tue Nov  6 07:56:14 2001/-ko/Tlinux_2_4_20
+/tcp_diag.h/1.1.2.1/Sat Dec 29 05:38:23 2001/-ko/Tlinux_2_4_20
+/telephony.h/1.6.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
+/termios.h/1.1.1.1/Sun Jun  1 03:17:06 1997/-ko/Tlinux_2_4_20
+/threads.h/1.4.2.1/Tue Feb 26 06:00:31 2002/-ko/Tlinux_2_4_20
+/ticable.h/1.1.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/time.h/1.6.4.1/Tue Feb 26 06:00:31 2002/-ko/Tlinux_2_4_20
+/timer.h/1.20/Tue Nov  6 07:56:14 2001/-ko/Tlinux_2_4_20
+/times.h/1.1.1.1/Sun Jun  1 03:17:05 1997/-ko/Tlinux_2_4_20
+/timex.h/1.5/Thu Aug 23 22:24:50 2001/-ko/Tlinux_2_4_20
+/toshiba.h/1.1/Thu Oct  5 01:19:02 2000/-ko/Tlinux_2_4_20
+/tpqic02.h/1.4/Wed Jun 13 17:28:16 2001/-ko/Tlinux_2_4_20
+/tqueue.h/1.11/Thu Apr  5 04:59:16 2001/-ko/Tlinux_2_4_20
+/trdevice.h/1.5.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
+/tty.h/1.27.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/tty_driver.h/1.6/Thu Feb 24 00:13:20 2000/-ko/Tlinux_2_4_20
+/tty_flip.h/1.3/Fri Aug 24 03:38:56 2001/-ko/Tlinux_2_4_20
+/tty_ldisc.h/1.6/Sun Aug 26 14:26:08 2001/-ko/Tlinux_2_4_20
+/types.h/1.7.4.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
+/udf_fs.h/1.11.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
+/udf_fs_i.h/1.4.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
+/udf_fs_sb.h/1.6.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
+/udp.h/1.2/Fri Sep 12 01:34:17 1997/-ko/Tlinux_2_4_20
+/ufs_fs.h/1.25/Sun Dec  2 11:34:59 2001/-ko/Tlinux_2_4_20
+/ufs_fs_i.h/1.7/Sun Dec  2 11:34:59 2001/-ko/Tlinux_2_4_20
+/ufs_fs_sb.h/1.8/Sun Dec  2 11:34:59 2001/-ko/Tlinux_2_4_20
+/uio.h/1.1.1.1/Sun Jun  1 03:17:03 1997/-ko/Tlinux_2_4_20
+/ultrasound.h/1.1.1.1/Sun Jun  1 03:17:01 1997/-ko/Tlinux_2_4_20
+/umem.h/1.1.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
+/umsdos_fs.h/1.12/Sun Mar 19 01:28:59 2000/-ko/Tlinux_2_4_20
+/umsdos_fs.p/1.15/Tue Aug  8 18:02:02 2000/-ko/Tlinux_2_4_20
+/umsdos_fs_i.h/1.7/Sat Jul  8 02:59:04 2000/-ko/Tlinux_2_4_20
+/un.h/1.1.1.1/Sun Jun  1 03:17:00 1997/-ko/Tlinux_2_4_20
+/unistd.h/1.1.1.1/Sun Jun  1 03:17:01 1997/-ko/Tlinux_2_4_20
+/usb.h/1.23.2.5/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/usbdev_fs_i.h/1.1/Wed Feb 16 01:07:58 2000/-ko/Tlinux_2_4_20
+/usbdev_fs_sb.h/1.2/Thu Jun 14 04:24:30 2001/-ko/Tlinux_2_4_20
+/usbdevice_fs.h/1.6/Thu Aug 23 22:24:50 2001/-ko/Tlinux_2_4_20
+/user.h/1.1.1.1/Sun Jun  1 03:17:01 1997/-ko/Tlinux_2_4_20
+/utime.h/1.1.1.1/Sun Jun  1 03:17:04 1997/-ko/Tlinux_2_4_20
+/uts.h/1.1/Tue Mar 17 22:17:32 1998/-ko/Tlinux_2_4_20
+/utsname.h/1.3/Fri Feb 18 00:24:49 2000/-ko/Tlinux_2_4_20
+/vfs.h/1.1.1.1/Sun Jun  1 03:17:03 1997/-ko/Tlinux_2_4_20
+/video_decoder.h/1.2/Tue Sep 28 22:27:26 1999/-ko/Tlinux_2_4_20
+/video_encoder.h/1.2/Tue Sep 28 22:27:26 1999/-ko/Tlinux_2_4_20
+/videodev.h/1.27.2.1/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
+/videotext.h/1.2/Tue Aug 25 09:23:12 1998/-ko/Tlinux_2_4_20
+/vmalloc.h/1.11.4.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/vt.h/1.1.1.1/Sun Jun  1 03:17:00 1997/-ko/Tlinux_2_4_20
+/vt_buffer.h/1.6/Tue Nov  6 00:55:30 2001/-ko/Tlinux_2_4_20
+/vt_kern.h/1.7.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/wait.h/1.13/Sun Dec  2 11:34:59 2001/-ko/Tlinux_2_4_20
+/wanpipe.h/1.8/Sat Sep 22 12:49:41 2001/-ko/Tlinux_2_4_20
+/wanrouter.h/1.13.2.1/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
+/watchdog.h/1.3.2.2/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/wavefront.h/1.4/Wed Jun 13 17:28:16 2001/-ko/Tlinux_2_4_20
+/wireless.h/1.8.2.2/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/wrapper.h/1.10/Tue Nov 28 03:59:04 2000/-ko/Tlinux_2_4_20
+/x25.h/1.4/Fri Apr 28 01:09:55 2000/-ko/Tlinux_2_4_20
+/xattr.h/1.1.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/yam.h/1.2/Sat Oct  9 00:01:45 1999/-ko/Tlinux_2_4_20
+/zconf.h/1.1.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/zftape.h/1.2/Thu Oct  5 01:19:02 2000/-ko/Tlinux_2_4_20
+/zlib.h/1.1.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/zorro.h/1.9.2.1/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
+/zorro_ids.h/1.2/Thu Jan 11 04:02:45 2001/-ko/Tlinux_2_4_20
+/zutil.h/1.1.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+D/byteorder////
+D/isdn////
+D/lockd////
+D/mtd////
+D/netfilter_arp////
+D/netfilter_ipv4////
+D/netfilter_ipv6////
+D/nfsd////
+D/raid////
+D/sunrpc////
diff -urNd -urNd linux-2.4.20/include/linux/CVS/Repository linux-2.4.20-mipscvs-20050106/include/linux/CVS/Repository
--- linux-2.4.20/include/linux/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/CVS/Repository	2005-01-06 23:07:15.000000000 -0600
@@ -0,0 +1 @@
+linux/include/linux
diff -urNd -urNd linux-2.4.20/include/linux/CVS/Root linux-2.4.20-mipscvs-20050106/include/linux/CVS/Root
--- linux-2.4.20/include/linux/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/CVS/Root	2005-01-06 23:07:15.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/linux/CVS/Tag linux-2.4.20-mipscvs-20050106/include/linux/CVS/Tag
--- linux-2.4.20/include/linux/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/CVS/Tag	2005-01-06 23:07:33.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/linux/.cvsignore linux-2.4.20-mipscvs-20050106/include/linux/.cvsignore
--- linux-2.4.20/include/linux/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/.cvsignore	1997-07-23 20:44:54.000000000 -0500
@@ -0,0 +1,5 @@
+autoconf.h
+version.h
+compile.h
+modules
+modversions.h
diff -urNd -urNd linux-2.4.20/include/linux/elf.h linux-2.4.20-mipscvs-20050106/include/linux/elf.h
--- linux-2.4.20/include/linux/elf.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/elf.h	2002-09-11 07:45:39.000000000 -0500
@@ -32,11 +32,16 @@
 #define PT_LOPROC  0x70000000
 #define PT_HIPROC  0x7fffffff
 #define PT_MIPS_REGINFO		0x70000000
+#define PT_MIPS_OPTIONS		0x70000001
 
 /* Flags in the e_flags field of the header */
 #define EF_MIPS_NOREORDER 0x00000001
 #define EF_MIPS_PIC       0x00000002
 #define EF_MIPS_CPIC      0x00000004
+#define EF_MIPS_ABI2      0x00000020
+#define EF_MIPS_OPTIONS_FIRST 0x00000080
+#define EF_MIPS_32BITMODE 0x00000100
+#define EF_MIPS_ABI       0x0000f000
 #define EF_MIPS_ARCH      0xf0000000
 
 /* These constants define the different elf file types */
@@ -60,7 +65,7 @@
 
 #define EM_MIPS		8	/* MIPS R3000 (officially, big-endian only) */
 
-#define EM_MIPS_RS4_BE 10	/* MIPS R4000 big-endian */
+#define EM_MIPS_RS3_LE 10	/* MIPS R3000 little-endian */
 
 #define EM_PARISC      15	/* HPPA */
 
diff -urNd -urNd linux-2.4.20/include/linux/fb.h linux-2.4.20-mipscvs-20050106/include/linux/fb.h
--- linux-2.4.20/include/linux/fb.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/linux/fb.h	2002-12-29 14:08:23.000000000 -0600
@@ -95,6 +95,7 @@
 #define FB_ACCEL_SIS_GLAMOUR    36	/* SiS 300/630/540              */
 #define FB_ACCEL_3DLABS_PERMEDIA3 37	/* 3Dlabs Permedia 3		*/
 #define FB_ACCEL_ATI_RADEON	38	/* ATI Radeon family		*/
+#define FB_ACCEL_EPSON_SED1356  39     /* Epson SED1356                */
 
 
 #define FB_ACCEL_NEOMAGIC_NM2070 90	/* NeoMagic NM2070              */
diff -urNd -urNd linux-2.4.20/include/linux/isdn/CVS/Entries linux-2.4.20-mipscvs-20050106/include/linux/isdn/CVS/Entries
--- linux-2.4.20/include/linux/isdn/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/isdn/CVS/Entries	2005-01-06 23:07:33.000000000 -0600
@@ -0,0 +1,2 @@
+/tpam.h/1.1.2.1/Sat Dec 29 05:38:24 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/linux/isdn/CVS/Repository linux-2.4.20-mipscvs-20050106/include/linux/isdn/CVS/Repository
--- linux-2.4.20/include/linux/isdn/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/isdn/CVS/Repository	2005-01-06 23:07:33.000000000 -0600
@@ -0,0 +1 @@
+linux/include/linux/isdn
diff -urNd -urNd linux-2.4.20/include/linux/isdn/CVS/Root linux-2.4.20-mipscvs-20050106/include/linux/isdn/CVS/Root
--- linux-2.4.20/include/linux/isdn/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/isdn/CVS/Root	2005-01-06 23:07:33.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/linux/isdn/CVS/Tag linux-2.4.20-mipscvs-20050106/include/linux/isdn/CVS/Tag
--- linux-2.4.20/include/linux/isdn/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/isdn/CVS/Tag	2005-01-06 23:07:33.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/linux/lockd/CVS/Entries linux-2.4.20-mipscvs-20050106/include/linux/lockd/CVS/Entries
--- linux-2.4.20/include/linux/lockd/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/lockd/CVS/Entries	2005-01-06 23:07:33.000000000 -0600
@@ -0,0 +1,9 @@
+/bind.h/1.2/Mon Mar 13 20:55:41 2000/-ko/Tlinux_2_4_20
+/debug.h/1.2/Thu Feb 24 00:13:21 2000/-ko/Tlinux_2_4_20
+/lockd.h/1.9/Mon Nov  5 20:16:30 2001/-ko/Tlinux_2_4_20
+/nlm.h/1.4/Mon Nov  5 20:16:30 2001/-ko/Tlinux_2_4_20
+/share.h/1.1.1.1/Sun Jun  1 03:17:07 1997/-ko/Tlinux_2_4_20
+/sm_inter.h/1.1.1.1/Sun Jun  1 03:17:08 1997/-ko/Tlinux_2_4_20
+/xdr.h/1.4/Fri Oct 19 01:25:05 2001/-ko/Tlinux_2_4_20
+/xdr4.h/1.2/Mon Mar 13 20:55:41 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/linux/lockd/CVS/Repository linux-2.4.20-mipscvs-20050106/include/linux/lockd/CVS/Repository
--- linux-2.4.20/include/linux/lockd/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/lockd/CVS/Repository	2005-01-06 23:07:33.000000000 -0600
@@ -0,0 +1 @@
+linux/include/linux/lockd
diff -urNd -urNd linux-2.4.20/include/linux/lockd/CVS/Root linux-2.4.20-mipscvs-20050106/include/linux/lockd/CVS/Root
--- linux-2.4.20/include/linux/lockd/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/lockd/CVS/Root	2005-01-06 23:07:33.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/linux/lockd/CVS/Tag linux-2.4.20-mipscvs-20050106/include/linux/lockd/CVS/Tag
--- linux-2.4.20/include/linux/lockd/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/lockd/CVS/Tag	2005-01-06 23:07:33.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/linux/mc146818rtc.h linux-2.4.20-mipscvs-20050106/include/linux/mc146818rtc.h
--- linux-2.4.20/include/linux/mc146818rtc.h	2001-11-22 13:46:58.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/mc146818rtc.h	2002-09-02 08:55:56.000000000 -0500
@@ -98,4 +98,12 @@
 #define BIN_TO_BCD(val) ((val)=(((val)/10)<<4) + (val)%10)
 #endif
 
+#ifndef RTC_IO_EXTENT
+#define RTC_IO_EXTENT	0x10	/* Only really two ports, but...	*/
+#endif
+
+#ifndef RTC_IOMAPPED
+#define RTC_IOMAPPED	1	/* Default to I/O mapping. */
+#endif
+
 #endif /* _MC146818RTC_H */
diff -urNd -urNd linux-2.4.20/include/linux/miscdevice.h linux-2.4.20-mipscvs-20050106/include/linux/miscdevice.h
--- linux-2.4.20/include/linux/miscdevice.h	2002-08-02 19:39:45.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/linux/miscdevice.h	2002-06-26 17:36:46.000000000 -0500
@@ -22,8 +22,9 @@
 #define NVRAM_MINOR 144
 #define I2O_MINOR 166
 #define MICROCODE_MINOR		184
-#define MWAVE_MINOR	219		/* ACP/Mwave Modem */
-#define MPT_MINOR	220
+#define GPIO_MINOR             185  
+#define MWAVE_MINOR		219	/* ACP/Mwave Modem */
+#define MPT_MINOR		220
 #define MISC_DYNAMIC_MINOR 255
 
 #define SGI_GRAPHICS_MINOR   146
@@ -36,6 +37,8 @@
 
 #define TUN_MINOR	     200
 
+#define LCD_MINOR	     140	/* Inofficial Linux/MIPS only alloc */
+
 extern int misc_init(void);
 
 struct miscdevice 
diff -urNd -urNd linux-2.4.20/include/linux/mtd/CVS/Entries linux-2.4.20-mipscvs-20050106/include/linux/mtd/CVS/Entries
--- linux-2.4.20/include/linux/mtd/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/mtd/CVS/Entries	2005-01-06 23:07:34.000000000 -0600
@@ -0,0 +1,19 @@
+/cfi.h/1.7/Mon Nov  5 20:16:30 2001/-ko/Tlinux_2_4_20
+/cfi_endian.h/1.2/Mon Nov  5 20:16:30 2001/-ko/Tlinux_2_4_20
+/compatmac.h/1.1.4.1/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
+/concat.h/1.1.2.1/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
+/doc2000.h/1.6/Mon Nov  5 20:16:30 2001/-ko/Tlinux_2_4_20
+/flashchip.h/1.2/Wed Aug 22 03:25:12 2001/-ko/Tlinux_2_4_20
+/ftl.h/1.3.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/gen_probe.h/1.1/Mon Nov  5 20:16:30 2001/-ko/Tlinux_2_4_20
+/iflash.h/1.2/Mon Nov  5 20:16:30 2001/-ko/Tlinux_2_4_20
+/jedec.h/1.2/Sun Dec  2 11:35:00 2001/-ko/Tlinux_2_4_20
+/map.h/1.7/Mon Nov  5 20:16:30 2001/-ko/Tlinux_2_4_20
+/mtd.h/1.4/Wed Aug 22 03:25:12 2001/-ko/Tlinux_2_4_20
+/nand.h/1.2/Wed Jan 10 05:27:36 2001/-ko/Tlinux_2_4_20
+/nand_ecc.h/1.1/Wed Aug 22 03:25:12 2001/-ko/Tlinux_2_4_20
+/nand_ids.h/1.1/Wed Jan 10 05:27:36 2001/-ko/Tlinux_2_4_20
+/nftl.h/1.3/Wed Aug 22 03:25:12 2001/-ko/Tlinux_2_4_20
+/partitions.h/1.2.2.1/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
+/pmc551.h/1.3/Mon Nov  5 20:16:30 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/linux/mtd/CVS/Repository linux-2.4.20-mipscvs-20050106/include/linux/mtd/CVS/Repository
--- linux-2.4.20/include/linux/mtd/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/mtd/CVS/Repository	2005-01-06 23:07:33.000000000 -0600
@@ -0,0 +1 @@
+linux/include/linux/mtd
diff -urNd -urNd linux-2.4.20/include/linux/mtd/CVS/Root linux-2.4.20-mipscvs-20050106/include/linux/mtd/CVS/Root
--- linux-2.4.20/include/linux/mtd/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/mtd/CVS/Root	2005-01-06 23:07:33.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/linux/mtd/CVS/Tag linux-2.4.20-mipscvs-20050106/include/linux/mtd/CVS/Tag
--- linux-2.4.20/include/linux/mtd/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/mtd/CVS/Tag	2005-01-06 23:07:34.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/linux/netfilter_arp/CVS/Entries linux-2.4.20-mipscvs-20050106/include/linux/netfilter_arp/CVS/Entries
--- linux-2.4.20/include/linux/netfilter_arp/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/netfilter_arp/CVS/Entries	2005-01-06 23:07:34.000000000 -0600
@@ -0,0 +1,2 @@
+/arp_tables.h/1.1.2.1/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/linux/netfilter_arp/CVS/Repository linux-2.4.20-mipscvs-20050106/include/linux/netfilter_arp/CVS/Repository
--- linux-2.4.20/include/linux/netfilter_arp/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/netfilter_arp/CVS/Repository	2005-01-06 23:07:34.000000000 -0600
@@ -0,0 +1 @@
+linux/include/linux/netfilter_arp
diff -urNd -urNd linux-2.4.20/include/linux/netfilter_arp/CVS/Root linux-2.4.20-mipscvs-20050106/include/linux/netfilter_arp/CVS/Root
--- linux-2.4.20/include/linux/netfilter_arp/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/netfilter_arp/CVS/Root	2005-01-06 23:07:34.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/linux/netfilter_arp/CVS/Tag linux-2.4.20-mipscvs-20050106/include/linux/netfilter_arp/CVS/Tag
--- linux-2.4.20/include/linux/netfilter_arp/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/netfilter_arp/CVS/Tag	2005-01-06 23:07:34.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/linux/netfilter_ipv4/CVS/Entries linux-2.4.20-mipscvs-20050106/include/linux/netfilter_ipv4/CVS/Entries
--- linux-2.4.20/include/linux/netfilter_ipv4/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/netfilter_ipv4/CVS/Entries	2005-01-06 23:07:34.000000000 -0600
@@ -0,0 +1,47 @@
+/compat_firewall.h/1.1/Thu Mar 23 02:26:01 2000/-ko/Tlinux_2_4_20
+/ip_conntrack.h/1.8.2.3/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/ip_conntrack_core.h/1.4.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/ip_conntrack_ftp.h/1.3.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/ip_conntrack_helper.h/1.2.4.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/ip_conntrack_icmp.h/1.1/Wed Jun 13 17:28:17 2001/-ko/Tlinux_2_4_20
+/ip_conntrack_irc.h/1.1.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/ip_conntrack_protocol.h/1.3.2.2/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/ip_conntrack_tcp.h/1.1.4.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/ip_conntrack_tuple.h/1.5.2.1/Tue Feb 26 06:00:32 2002/-ko/Tlinux_2_4_20
+/ip_nat.h/1.2.2.2/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/ip_nat_core.h/1.2/Sat Jul 15 03:32:28 2000/-ko/Tlinux_2_4_20
+/ip_nat_helper.h/1.3.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/ip_nat_protocol.h/1.1/Thu Mar 23 02:26:01 2000/-ko/Tlinux_2_4_20
+/ip_nat_rule.h/1.1.4.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/ip_queue.h/1.3/Mon Aug 28 22:00:25 2000/-ko/Tlinux_2_4_20
+/ip_tables.h/1.6.2.1/Tue Feb 26 06:00:32 2002/-ko/Tlinux_2_4_20
+/ipchains_core.h/1.1/Thu Mar 23 02:26:01 2000/-ko/Tlinux_2_4_20
+/ipfwadm_core.h/1.1/Thu Mar 23 02:26:01 2000/-ko/Tlinux_2_4_20
+/ipt_DSCP.h/1.1.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/ipt_ECN.h/1.1.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/ipt_LOG.h/1.1/Thu Mar 23 02:26:01 2000/-ko/Tlinux_2_4_20
+/ipt_MARK.h/1.1/Thu Mar 23 02:26:01 2000/-ko/Tlinux_2_4_20
+/ipt_REJECT.h/1.3/Sat Jul 15 03:32:28 2000/-ko/Tlinux_2_4_20
+/ipt_TCPMSS.h/1.1/Thu Apr  5 04:59:16 2001/-ko/Tlinux_2_4_20
+/ipt_TOS.h/1.1/Thu Mar 23 02:26:01 2000/-ko/Tlinux_2_4_20
+/ipt_ULOG.h/1.1.2.1/Tue Feb 26 06:00:32 2002/-ko/Tlinux_2_4_20
+/ipt_ah.h/1.1.2.1/Tue Feb 26 06:00:32 2002/-ko/Tlinux_2_4_20
+/ipt_conntrack.h/1.1.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/ipt_dscp.h/1.1.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/ipt_ecn.h/1.1.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/ipt_esp.h/1.1.2.1/Tue Feb 26 06:00:32 2002/-ko/Tlinux_2_4_20
+/ipt_helper.h/1.1.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
+/ipt_length.h/1.1/Tue Nov  6 07:56:15 2001/-ko/Tlinux_2_4_20
+/ipt_limit.h/1.1/Thu Mar 23 02:26:01 2000/-ko/Tlinux_2_4_20
+/ipt_mac.h/1.1/Thu Mar 23 02:26:01 2000/-ko/Tlinux_2_4_20
+/ipt_mark.h/1.1/Thu Mar 23 02:26:01 2000/-ko/Tlinux_2_4_20
+/ipt_multiport.h/1.1/Thu Mar 23 02:26:01 2000/-ko/Tlinux_2_4_20
+/ipt_owner.h/1.1.4.1/Wed Sep 11 12:45:41 2002/-ko/Tlinux_2_4_20
+/ipt_pkttype.h/1.1.2.1/Wed Sep 11 12:45:41 2002/-ko/Tlinux_2_4_20
+/ipt_state.h/1.2/Fri Apr 28 01:09:57 2000/-ko/Tlinux_2_4_20
+/ipt_tcpmss.h/1.1/Thu Apr  5 04:59:16 2001/-ko/Tlinux_2_4_20
+/ipt_tos.h/1.1/Thu Mar 23 02:26:01 2000/-ko/Tlinux_2_4_20
+/ipt_ttl.h/1.1/Tue Nov  6 07:56:15 2001/-ko/Tlinux_2_4_20
+/listhelp.h/1.2/Fri Aug 24 03:38:56 2001/-ko/Tlinux_2_4_20
+/lockhelp.h/1.2/Thu Jan 11 04:02:45 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/linux/netfilter_ipv4/CVS/Repository linux-2.4.20-mipscvs-20050106/include/linux/netfilter_ipv4/CVS/Repository
--- linux-2.4.20/include/linux/netfilter_ipv4/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/netfilter_ipv4/CVS/Repository	2005-01-06 23:07:34.000000000 -0600
@@ -0,0 +1 @@
+linux/include/linux/netfilter_ipv4
diff -urNd -urNd linux-2.4.20/include/linux/netfilter_ipv4/CVS/Root linux-2.4.20-mipscvs-20050106/include/linux/netfilter_ipv4/CVS/Root
--- linux-2.4.20/include/linux/netfilter_ipv4/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/netfilter_ipv4/CVS/Root	2005-01-06 23:07:34.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/linux/netfilter_ipv4/CVS/Tag linux-2.4.20-mipscvs-20050106/include/linux/netfilter_ipv4/CVS/Tag
--- linux-2.4.20/include/linux/netfilter_ipv4/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/netfilter_ipv4/CVS/Tag	2005-01-06 23:07:34.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/linux/netfilter_ipv6/CVS/Entries linux-2.4.20-mipscvs-20050106/include/linux/netfilter_ipv6/CVS/Entries
--- linux-2.4.20/include/linux/netfilter_ipv6/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/netfilter_ipv6/CVS/Entries	2005-01-06 23:07:34.000000000 -0600
@@ -0,0 +1,11 @@
+/ip6_tables.h/1.3.2.1/Tue Feb 26 06:00:32 2002/-ko/Tlinux_2_4_20
+/ip6t_LOG.h/1.1/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
+/ip6t_MARK.h/1.1/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
+/ip6t_REJECT.h/1.1/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
+/ip6t_length.h/1.1.2.1/Wed Sep 11 12:45:41 2002/-ko/Tlinux_2_4_20
+/ip6t_limit.h/1.1/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
+/ip6t_mac.h/1.1/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
+/ip6t_mark.h/1.1/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
+/ip6t_multiport.h/1.1/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
+/ip6t_owner.h/1.1/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/linux/netfilter_ipv6/CVS/Repository linux-2.4.20-mipscvs-20050106/include/linux/netfilter_ipv6/CVS/Repository
--- linux-2.4.20/include/linux/netfilter_ipv6/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/netfilter_ipv6/CVS/Repository	2005-01-06 23:07:34.000000000 -0600
@@ -0,0 +1 @@
+linux/include/linux/netfilter_ipv6
diff -urNd -urNd linux-2.4.20/include/linux/netfilter_ipv6/CVS/Root linux-2.4.20-mipscvs-20050106/include/linux/netfilter_ipv6/CVS/Root
--- linux-2.4.20/include/linux/netfilter_ipv6/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/netfilter_ipv6/CVS/Root	2005-01-06 23:07:34.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/linux/netfilter_ipv6/CVS/Tag linux-2.4.20-mipscvs-20050106/include/linux/netfilter_ipv6/CVS/Tag
--- linux-2.4.20/include/linux/netfilter_ipv6/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/netfilter_ipv6/CVS/Tag	2005-01-06 23:07:34.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/linux/nfsd/CVS/Entries linux-2.4.20-mipscvs-20050106/include/linux/nfsd/CVS/Entries
--- linux-2.4.20/include/linux/nfsd/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/nfsd/CVS/Entries	2005-01-06 23:07:35.000000000 -0600
@@ -0,0 +1,13 @@
+/auth.h/1.1.1.1/Sun Jun  1 03:17:07 1997/-ko/Tlinux_2_4_20
+/cache.h/1.2/Mon Jul  3 21:46:10 2000/-ko/Tlinux_2_4_20
+/const.h/1.3/Wed Apr 19 04:00:21 2000/-ko/Tlinux_2_4_20
+/debug.h/1.1.1.1/Sun Jun  1 03:17:07 1997/-ko/Tlinux_2_4_20
+/export.h/1.11.4.2/Wed Sep 11 12:45:41 2002/-ko/Tlinux_2_4_20
+/interface.h/1.1.4.1/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
+/nfsd.h/1.17.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/nfsfh.h/1.19/Fri Aug 24 03:38:57 2001/-ko/Tlinux_2_4_20
+/stats.h/1.5/Fri Jul 21 22:01:01 2000/-ko/Tlinux_2_4_20
+/syscall.h/1.9/Sun Jun 25 01:20:06 2000/-ko/Tlinux_2_4_20
+/xdr.h/1.5/Sat Sep 22 12:49:42 2001/-ko/Tlinux_2_4_20
+/xdr3.h/1.5/Sat Sep 22 12:49:42 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/linux/nfsd/CVS/Repository linux-2.4.20-mipscvs-20050106/include/linux/nfsd/CVS/Repository
--- linux-2.4.20/include/linux/nfsd/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/nfsd/CVS/Repository	2005-01-06 23:07:34.000000000 -0600
@@ -0,0 +1 @@
+linux/include/linux/nfsd
diff -urNd -urNd linux-2.4.20/include/linux/nfsd/CVS/Root linux-2.4.20-mipscvs-20050106/include/linux/nfsd/CVS/Root
--- linux-2.4.20/include/linux/nfsd/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/nfsd/CVS/Root	2005-01-06 23:07:34.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/linux/nfsd/CVS/Tag linux-2.4.20-mipscvs-20050106/include/linux/nfsd/CVS/Tag
--- linux-2.4.20/include/linux/nfsd/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/nfsd/CVS/Tag	2005-01-06 23:07:35.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/linux/pci_ids.h linux-2.4.20-mipscvs-20050106/include/linux/pci_ids.h
--- linux-2.4.20/include/linux/pci_ids.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/pci_ids.h	2003-01-11 11:53:18.000000000 -0600
@@ -448,6 +448,7 @@
 #define PCI_DEVICE_ID_NEC_PCX2		0x0046
 #define PCI_DEVICE_ID_NEC_NILE4		0x005a
 #define PCI_DEVICE_ID_NEC_VRC5476       0x009b
+#define PCI_DEVICE_ID_NEC_VRC4173	0x00a5
 #define PCI_DEVICE_ID_NEC_VRC5477_AC97  0x00a6
 
 #define PCI_VENDOR_ID_FD		0x1036
diff -urNd -urNd linux-2.4.20/include/linux/raid/CVS/Entries linux-2.4.20-mipscvs-20050106/include/linux/raid/CVS/Entries
--- linux-2.4.20/include/linux/raid/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/raid/CVS/Entries	2005-01-06 23:07:35.000000000 -0600
@@ -0,0 +1,12 @@
+/linear.h/1.2/Fri Aug 25 05:30:01 2000/-ko/Tlinux_2_4_20
+/md.h/1.11/Fri Oct 19 01:25:05 2001/-ko/Tlinux_2_4_20
+/md_compatible.h/1.5.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/md_k.h/1.15.2.2/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/md_p.h/1.3/Tue Nov 28 03:59:04 2000/-ko/Tlinux_2_4_20
+/md_u.h/1.6/Fri Oct 19 01:25:05 2001/-ko/Tlinux_2_4_20
+/multipath.h/1.2/Sun Dec  2 11:35:00 2001/-ko/Tlinux_2_4_20
+/raid0.h/1.3/Wed Jan 10 05:27:36 2001/-ko/Tlinux_2_4_20
+/raid1.h/1.5/Sat Sep 22 12:49:42 2001/-ko/Tlinux_2_4_20
+/raid5.h/1.5/Wed Aug 22 03:25:13 2001/-ko/Tlinux_2_4_20
+/xor.h/1.2/Tue Nov 28 03:59:04 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/linux/raid/CVS/Repository linux-2.4.20-mipscvs-20050106/include/linux/raid/CVS/Repository
--- linux-2.4.20/include/linux/raid/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/raid/CVS/Repository	2005-01-06 23:07:35.000000000 -0600
@@ -0,0 +1 @@
+linux/include/linux/raid
diff -urNd -urNd linux-2.4.20/include/linux/raid/CVS/Root linux-2.4.20-mipscvs-20050106/include/linux/raid/CVS/Root
--- linux-2.4.20/include/linux/raid/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/raid/CVS/Root	2005-01-06 23:07:35.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/linux/raid/CVS/Tag linux-2.4.20-mipscvs-20050106/include/linux/raid/CVS/Tag
--- linux-2.4.20/include/linux/raid/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/raid/CVS/Tag	2005-01-06 23:07:35.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/linux/sched.h linux-2.4.20-mipscvs-20050106/include/linux/sched.h
--- linux-2.4.20/include/linux/sched.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/sched.h	2002-09-11 07:45:40.000000000 -0500
@@ -616,6 +616,10 @@
 extern int in_group_p(gid_t);
 extern int in_egroup_p(gid_t);
 
+extern ATTRIB_NORET void cpu_idle(void);
+
+extern void release_task(struct task_struct * p);
+
 extern void proc_caches_init(void);
 extern void flush_signals(struct task_struct *);
 extern void flush_signal_handlers(struct task_struct *);
diff -urNd -urNd linux-2.4.20/include/linux/spinlock.h linux-2.4.20-mipscvs-20050106/include/linux/spinlock.h
--- linux-2.4.20/include/linux/spinlock.h	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/spinlock.h	2003-01-11 11:53:18.000000000 -0600
@@ -3,6 +3,8 @@
 
 #include <linux/config.h>
 
+#include <asm/system.h>
+
 /*
  * These are the generic versions of the spinlocks and read-write
  * locks..
diff -urNd -urNd linux-2.4.20/include/linux/sunrpc/CVS/Entries linux-2.4.20-mipscvs-20050106/include/linux/sunrpc/CVS/Entries
--- linux-2.4.20/include/linux/sunrpc/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/sunrpc/CVS/Entries	2005-01-06 23:07:35.000000000 -0600
@@ -0,0 +1,14 @@
+/auth.h/1.6/Sat Sep 22 12:49:42 2001/-ko/Tlinux_2_4_20
+/clnt.h/1.9.2.2/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/debug.h/1.3/Tue Nov 28 03:59:04 2000/-ko/Tlinux_2_4_20
+/msg_prot.h/1.1.1.1/Sun Jun  1 03:17:07 1997/-ko/Tlinux_2_4_20
+/sched.h/1.14.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/stats.h/1.4/Fri Aug 24 03:38:57 2001/-ko/Tlinux_2_4_20
+/svc.h/1.5.4.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/svcauth.h/1.1.1.1/Sun Jun  1 03:17:07 1997/-ko/Tlinux_2_4_20
+/svcsock.h/1.5.4.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/timer.h/1.1.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/types.h/1.3.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/xdr.h/1.4.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/xprt.h/1.11.2.2/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/linux/sunrpc/CVS/Repository linux-2.4.20-mipscvs-20050106/include/linux/sunrpc/CVS/Repository
--- linux-2.4.20/include/linux/sunrpc/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/sunrpc/CVS/Repository	2005-01-06 23:07:35.000000000 -0600
@@ -0,0 +1 @@
+linux/include/linux/sunrpc
diff -urNd -urNd linux-2.4.20/include/linux/sunrpc/CVS/Root linux-2.4.20-mipscvs-20050106/include/linux/sunrpc/CVS/Root
--- linux-2.4.20/include/linux/sunrpc/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/sunrpc/CVS/Root	2005-01-06 23:07:35.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/linux/sunrpc/CVS/Tag linux-2.4.20-mipscvs-20050106/include/linux/sunrpc/CVS/Tag
--- linux-2.4.20/include/linux/sunrpc/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/sunrpc/CVS/Tag	2005-01-06 23:07:35.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/linux/threads.h linux-2.4.20-mipscvs-20050106/include/linux/threads.h
--- linux-2.4.20/include/linux/threads.h	2002-02-25 13:38:13.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/linux/threads.h	2002-02-26 00:00:31.000000000 -0600
@@ -9,7 +9,11 @@
  */
  
 #ifdef CONFIG_SMP
-#define NR_CPUS	32		/* Max processors that can be running in SMP */
+#ifdef __mips__
+#define NR_CPUS _MIPS_SZLONG
+#else
+#define NR_CPUS	64		/* Max processors that can be running in SMP */
+#endif
 #else
 #define NR_CPUS 1
 #endif
diff -urNd -urNd linux-2.4.20/include/math-emu/CVS/Entries linux-2.4.20-mipscvs-20050106/include/math-emu/CVS/Entries
--- linux-2.4.20/include/math-emu/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/math-emu/CVS/Entries	2005-01-06 23:07:36.000000000 -0600
@@ -0,0 +1,11 @@
+/double.h/1.2.4.1/Tue Feb 26 06:00:32 2002/-ko/Tlinux_2_4_20
+/extended.h/1.2.4.1/Tue Feb 26 06:00:32 2002/-ko/Tlinux_2_4_20
+/op-1.h/1.2.4.2/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
+/op-2.h/1.3.2.2/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
+/op-4.h/1.1.4.3/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/op-8.h/1.1.4.1/Tue Feb 26 06:00:32 2002/-ko/Tlinux_2_4_20
+/op-common.h/1.2.4.2/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
+/quad.h/1.2.4.1/Tue Feb 26 06:00:32 2002/-ko/Tlinux_2_4_20
+/single.h/1.2.4.1/Tue Feb 26 06:00:32 2002/-ko/Tlinux_2_4_20
+/soft-fp.h/1.2.4.2/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/math-emu/CVS/Repository linux-2.4.20-mipscvs-20050106/include/math-emu/CVS/Repository
--- linux-2.4.20/include/math-emu/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/math-emu/CVS/Repository	2005-01-06 23:07:35.000000000 -0600
@@ -0,0 +1 @@
+linux/include/math-emu
diff -urNd -urNd linux-2.4.20/include/math-emu/CVS/Root linux-2.4.20-mipscvs-20050106/include/math-emu/CVS/Root
--- linux-2.4.20/include/math-emu/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/math-emu/CVS/Root	2005-01-06 23:07:35.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/math-emu/CVS/Tag linux-2.4.20-mipscvs-20050106/include/math-emu/CVS/Tag
--- linux-2.4.20/include/math-emu/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/math-emu/CVS/Tag	2005-01-06 23:07:36.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/net/bluetooth/CVS/Entries linux-2.4.20-mipscvs-20050106/include/net/bluetooth/CVS/Entries
--- linux-2.4.20/include/net/bluetooth/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/net/bluetooth/CVS/Entries	2005-01-06 23:07:38.000000000 -0600
@@ -0,0 +1,6 @@
+/bluetooth.h/1.2.2.2/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
+/hci.h/1.2.2.2/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/hci_core.h/1.2.2.3/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/l2cap.h/1.2.2.1/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
+/sco.h/1.1.2.1/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/net/bluetooth/CVS/Repository linux-2.4.20-mipscvs-20050106/include/net/bluetooth/CVS/Repository
--- linux-2.4.20/include/net/bluetooth/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/net/bluetooth/CVS/Repository	2005-01-06 23:07:37.000000000 -0600
@@ -0,0 +1 @@
+linux/include/net/bluetooth
diff -urNd -urNd linux-2.4.20/include/net/bluetooth/CVS/Root linux-2.4.20-mipscvs-20050106/include/net/bluetooth/CVS/Root
--- linux-2.4.20/include/net/bluetooth/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/net/bluetooth/CVS/Root	2005-01-06 23:07:37.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/net/bluetooth/CVS/Tag linux-2.4.20-mipscvs-20050106/include/net/bluetooth/CVS/Tag
--- linux-2.4.20/include/net/bluetooth/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/net/bluetooth/CVS/Tag	2005-01-06 23:07:38.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/net/CVS/Entries linux-2.4.20-mipscvs-20050106/include/net/CVS/Entries
--- linux-2.4.20/include/net/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/net/CVS/Entries	2005-01-06 23:08:09.000000000 -0600
@@ -0,0 +1,62 @@
+/addrconf.h/1.10/Fri Aug 24 03:38:57 2001/-ko/Tlinux_2_4_20
+/af_unix.h/1.3/Fri Apr 28 01:09:57 2000/-ko/Tlinux_2_4_20
+/arp.h/1.3/Sat Oct  9 00:01:45 1999/-ko/Tlinux_2_4_20
+/atmclip.h/1.4/Fri May 12 21:06:50 2000/-ko/Tlinux_2_4_20
+/ax25.h/1.9/Wed Jan 10 17:18:09 2001/-ko/Tlinux_2_4_20
+/checksum.h/1.8/Wed Jan 10 05:27:36 2001/-ko/Tlinux_2_4_20
+/datalink.h/1.2/Sat Oct  9 00:01:45 1999/-ko/Tlinux_2_4_20
+/dn.h/1.7/Sun Dec  2 11:35:00 2001/-ko/Tlinux_2_4_20
+/dn_dev.h/1.3/Wed Feb 16 01:07:58 2000/-ko/Tlinux_2_4_20
+/dn_fib.h/1.4.4.1/Sat Dec 29 05:38:24 2001/-ko/Tlinux_2_4_20
+/dn_neigh.h/1.3/Tue Mar  7 15:45:43 2000/-ko/Tlinux_2_4_20
+/dn_nsp.h/1.4/Wed Jan 31 22:22:35 2001/-ko/Tlinux_2_4_20
+/dn_route.h/1.4/Thu Oct  5 01:19:03 2000/-ko/Tlinux_2_4_20
+/dsfield.h/1.3.4.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/dst.h/1.12/Thu Oct  5 01:19:03 2000/-ko/Tlinux_2_4_20
+/flow.h/1.4/Sun Jun 13 16:36:51 1999/-ko/Tlinux_2_4_20
+/icmp.h/1.6/Wed Jun 13 17:28:17 2001/-ko/Tlinux_2_4_20
+/if_inet6.h/1.7/Thu Oct  5 01:19:03 2000/-ko/Tlinux_2_4_20
+/inet_common.h/1.4/Sat Oct  9 00:01:45 1999/-ko/Tlinux_2_4_20
+/inet_ecn.h/1.2/Tue Nov  6 07:56:15 2001/-ko/Tlinux_2_4_20
+/inetpeer.h/1.1.4.1/Tue Feb 26 06:00:32 2002/-ko/Tlinux_2_4_20
+/ip.h/1.20/Wed Jun 13 17:28:17 2001/-ko/Tlinux_2_4_20
+/ip6_fib.h/1.7/Thu Oct  5 01:19:03 2000/-ko/Tlinux_2_4_20
+/ip6_fw.h/1.1.1.1/Sun Jun  1 03:16:54 1997/-ko/Tlinux_2_4_20
+/ip6_route.h/1.8/Thu Oct  5 01:19:03 2000/-ko/Tlinux_2_4_20
+/ip_fib.h/1.10/Fri Mar  9 20:34:57 2001/-ko/Tlinux_2_4_20
+/ipconfig.h/1.3/Thu Jun 14 04:24:30 2001/-ko/Tlinux_2_4_20
+/ipip.h/1.5/Wed Jun 13 17:28:17 2001/-ko/Tlinux_2_4_20
+/ipv6.h/1.15/Wed Jun 13 17:28:17 2001/-ko/Tlinux_2_4_20
+/ipx.h/1.9/Thu Apr  5 04:59:16 2001/-ko/Tlinux_2_4_20
+/iw_handler.h/1.1.2.2/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/lapb.h/1.2/Sun Jul 20 15:01:28 1997/-ko/Tlinux_2_4_20
+/llc.h/1.3/Sat Oct  9 00:01:45 1999/-ko/Tlinux_2_4_20
+/llc_frame.h/1.1.1.1/Sun Jun  1 03:16:54 1997/-ko/Tlinux_2_4_20
+/llc_name.h/1.1.1.1/Sun Jun  1 03:16:53 1997/-ko/Tlinux_2_4_20
+/llc_state.h/1.1.1.1/Sun Jun  1 03:16:53 1997/-ko/Tlinux_2_4_20
+/ndisc.h/1.8.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/neighbour.h/1.8/Thu Oct  5 01:19:03 2000/-ko/Tlinux_2_4_20
+/netrom.h/1.7/Thu Nov 23 02:00:56 2000/-ko/Tlinux_2_4_20
+/p8022.h/1.2/Sat Oct  9 00:01:45 1999/-ko/Tlinux_2_4_20
+/pkt_cls.h/1.4/Thu Oct  5 01:19:03 2000/-ko/Tlinux_2_4_20
+/pkt_sched.h/1.11.4.1/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
+/profile.h/1.3/Thu Oct  5 01:19:03 2000/-ko/Tlinux_2_4_20
+/protocol.h/1.9/Wed Aug 22 03:25:13 2001/-ko/Tlinux_2_4_20
+/psnap.h/1.2/Sat Oct  9 00:01:45 1999/-ko/Tlinux_2_4_20
+/raw.h/1.4/Wed Jun 13 17:28:17 2001/-ko/Tlinux_2_4_20
+/rawv6.h/1.4/Wed Jun 13 17:28:17 2001/-ko/Tlinux_2_4_20
+/rose.h/1.9/Thu Nov 23 02:00:56 2000/-ko/Tlinux_2_4_20
+/route.h/1.16.2.2/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
+/scm.h/1.4/Fri Mar  9 20:34:57 2001/-ko/Tlinux_2_4_20
+/slhc_vj.h/1.4/Sat Jul  8 02:59:04 2000/-ko/Tlinux_2_4_20
+/snmp.h/1.13/Wed Aug 22 03:25:13 2001/-ko/Tlinux_2_4_20
+/sock.h/1.38.2.2/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
+/spx.h/1.2/Thu May  7 03:03:49 1998/-ko/Tlinux_2_4_20
+/syncppp.h/1.2/Thu Jun 14 04:24:30 2001/-ko/Tlinux_2_4_20
+/tcp.h/1.37.2.2/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/tcp_ecn.h/1.3/Tue Nov  6 07:56:15 2001/-ko/Tlinux_2_4_20
+/transp_v6.h/1.4/Sun Jun 13 16:36:54 1999/-ko/Tlinux_2_4_20
+/udp.h/1.7/Wed Jun 13 17:28:17 2001/-ko/Tlinux_2_4_20
+/x25.h/1.12/Wed Jan 31 22:22:35 2001/-ko/Tlinux_2_4_20
+D/bluetooth////
+D/irda////
diff -urNd -urNd linux-2.4.20/include/net/CVS/Repository linux-2.4.20-mipscvs-20050106/include/net/CVS/Repository
--- linux-2.4.20/include/net/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/net/CVS/Repository	2005-01-06 23:07:36.000000000 -0600
@@ -0,0 +1 @@
+linux/include/net
diff -urNd -urNd linux-2.4.20/include/net/CVS/Root linux-2.4.20-mipscvs-20050106/include/net/CVS/Root
--- linux-2.4.20/include/net/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/net/CVS/Root	2005-01-06 23:07:36.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/net/CVS/Tag linux-2.4.20-mipscvs-20050106/include/net/CVS/Tag
--- linux-2.4.20/include/net/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/net/CVS/Tag	2005-01-06 23:07:37.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/net/irda/CVS/Entries linux-2.4.20-mipscvs-20050106/include/net/irda/CVS/Entries
--- linux-2.4.20/include/net/irda/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/net/irda/CVS/Entries	2005-01-06 23:07:38.000000000 -0600
@@ -0,0 +1,45 @@
+/ali-ircc.h/1.1/Thu Aug 23 22:24:50 2001/-ko/Tlinux_2_4_20
+/au1000_ircc.h/1.1/Wed Oct 31 04:49:04 2001/-ko/Tlinux_2_4_20
+/crc.h/1.2/Thu Jun 17 13:31:25 1999/-ko/Tlinux_2_4_20
+/discovery.h/1.4.4.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/ircomm_core.h/1.4/Tue Nov 28 03:59:04 2000/-ko/Tlinux_2_4_20
+/ircomm_event.h/1.1/Sat Oct  9 00:01:46 1999/-ko/Tlinux_2_4_20
+/ircomm_lmp.h/1.1/Sat Oct  9 00:01:46 1999/-ko/Tlinux_2_4_20
+/ircomm_param.h/1.1/Sat Oct  9 00:01:46 1999/-ko/Tlinux_2_4_20
+/ircomm_ttp.h/1.1/Sat Oct  9 00:01:46 1999/-ko/Tlinux_2_4_20
+/ircomm_tty.h/1.6.4.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/ircomm_tty_attach.h/1.2/Sat Feb  5 06:47:46 2000/-ko/Tlinux_2_4_20
+/irda-usb.h/1.4/Sun Dec  2 11:35:00 2001/-ko/Tlinux_2_4_20
+/irda.h/1.13/Sun Dec  2 11:35:00 2001/-ko/Tlinux_2_4_20
+/irda_device.h/1.11/Fri Mar  9 20:34:57 2001/-ko/Tlinux_2_4_20
+/iriap.h/1.8/Tue Nov 28 03:59:04 2000/-ko/Tlinux_2_4_20
+/iriap_event.h/1.2/Sat Jan 29 01:42:31 2000/-ko/Tlinux_2_4_20
+/irias_object.h/1.7/Fri Oct 19 01:25:05 2001/-ko/Tlinux_2_4_20
+/irlan_client.h/1.2.4.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/irlan_common.h/1.9/Tue Nov 28 03:59:04 2000/-ko/Tlinux_2_4_20
+/irlan_eth.h/1.5/Wed Jul 12 01:43:10 2000/-ko/Tlinux_2_4_20
+/irlan_event.h/1.2/Sun Jun 13 16:36:58 1999/-ko/Tlinux_2_4_20
+/irlan_filter.h/1.1/Sun Jun 13 16:36:58 1999/-ko/Tlinux_2_4_20
+/irlan_provider.h/1.2/Thu Jun 17 13:31:27 1999/-ko/Tlinux_2_4_20
+/irlap.h/1.11.2.1/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
+/irlap_event.h/1.5.2.1/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
+/irlap_frame.h/1.5/Fri Mar  9 20:34:57 2001/-ko/Tlinux_2_4_20
+/irlmp.h/1.10.2.2/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/irlmp_event.h/1.4/Sun Dec  2 11:35:00 2001/-ko/Tlinux_2_4_20
+/irlmp_frame.h/1.3/Sat Feb  5 06:47:46 2000/-ko/Tlinux_2_4_20
+/irmod.h/1.10/Sun Dec  2 11:35:00 2001/-ko/Tlinux_2_4_20
+/irport.h/1.8/Fri Feb 18 22:06:20 2000/-ko/Tlinux_2_4_20
+/irqueue.h/1.6/Tue Nov 28 03:59:04 2000/-ko/Tlinux_2_4_20
+/irttp.h/1.7.4.1/Sat Dec 29 05:38:24 2001/-ko/Tlinux_2_4_20
+/irtty.h/1.9/Tue Nov 28 03:59:04 2000/-ko/Tlinux_2_4_20
+/nsc-ircc.h/1.2/Wed Feb 23 00:41:41 2000/-ko/Tlinux_2_4_20
+/parameters.h/1.4/Sun Dec  2 11:35:00 2001/-ko/Tlinux_2_4_20
+/qos.h/1.7/Thu Aug 23 22:24:50 2001/-ko/Tlinux_2_4_20
+/smc-ircc.h/1.6/Sat Sep 22 12:49:42 2001/-ko/Tlinux_2_4_20
+/timer.h/1.6/Sun Dec  2 11:35:00 2001/-ko/Tlinux_2_4_20
+/toshoboe.h/1.5/Fri Feb 18 22:06:20 2000/-ko/Tlinux_2_4_20
+/vlsi_ir.h/1.2/Mon Nov  5 20:16:30 2001/-ko/Tlinux_2_4_20
+/w83977af.h/1.2/Sat Feb  5 06:47:46 2000/-ko/Tlinux_2_4_20
+/w83977af_ir.h/1.5/Fri Feb 18 22:06:20 2000/-ko/Tlinux_2_4_20
+/wrapper.h/1.7/Fri Feb 18 22:06:20 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/net/irda/CVS/Repository linux-2.4.20-mipscvs-20050106/include/net/irda/CVS/Repository
--- linux-2.4.20/include/net/irda/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/net/irda/CVS/Repository	2005-01-06 23:07:38.000000000 -0600
@@ -0,0 +1 @@
+linux/include/net/irda
diff -urNd -urNd linux-2.4.20/include/net/irda/CVS/Root linux-2.4.20-mipscvs-20050106/include/net/irda/CVS/Root
--- linux-2.4.20/include/net/irda/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/net/irda/CVS/Root	2005-01-06 23:07:38.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/net/irda/CVS/Tag linux-2.4.20-mipscvs-20050106/include/net/irda/CVS/Tag
--- linux-2.4.20/include/net/irda/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/net/irda/CVS/Tag	2005-01-06 23:07:38.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/pcmcia/cs_types.h linux-2.4.20-mipscvs-20050106/include/pcmcia/cs_types.h
--- linux-2.4.20/include/pcmcia/cs_types.h	2001-10-11 11:43:29.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/include/pcmcia/cs_types.h	2002-02-15 13:54:43.000000000 -0600
@@ -36,7 +36,7 @@
 #include <sys/types.h>
 #endif
 
-#ifdef __arm__
+#if defined(__arm__) || defined(__mips__)
 typedef u_int   ioaddr_t;
 #else
 typedef u_short	ioaddr_t;
diff -urNd -urNd linux-2.4.20/include/pcmcia/CVS/Entries linux-2.4.20-mipscvs-20050106/include/pcmcia/CVS/Entries
--- linux-2.4.20/include/pcmcia/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/pcmcia/CVS/Entries	2005-01-06 23:07:38.000000000 -0600
@@ -0,0 +1,15 @@
+/bulkmem.h/1.6/Fri Mar  9 20:34:58 2001/-ko/Tlinux_2_4_20
+/bus_ops.h/1.5/Fri Mar  9 20:34:58 2001/-ko/Tlinux_2_4_20
+/ciscode.h/1.6.2.1/Sat Dec 29 05:38:24 2001/-ko/Tlinux_2_4_20
+/cisreg.h/1.5/Fri Mar  9 20:34:58 2001/-ko/Tlinux_2_4_20
+/cistpl.h/1.6/Fri Mar  9 20:34:58 2001/-ko/Tlinux_2_4_20
+/cs.h/1.8.2.1/Sat Dec 29 05:38:24 2001/-ko/Tlinux_2_4_20
+/cs_types.h/1.7.2.1/Fri Feb 15 19:54:43 2002/-ko/Tlinux_2_4_20
+/driver_ops.h/1.5/Fri Mar  9 20:34:58 2001/-ko/Tlinux_2_4_20
+/ds.h/1.5/Fri Mar  9 20:34:58 2001/-ko/Tlinux_2_4_20
+/ftl.h/1.4/Fri Mar  9 20:34:58 2001/-ko/Tlinux_2_4_20
+/mem_op.h/1.4/Fri Mar  9 20:34:58 2001/-ko/Tlinux_2_4_20
+/memory.h/1.4/Fri Mar  9 20:34:58 2001/-ko/Tlinux_2_4_20
+/ss.h/1.7.2.1/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
+/version.h/1.7/Thu Nov 23 02:00:56 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/pcmcia/CVS/Repository linux-2.4.20-mipscvs-20050106/include/pcmcia/CVS/Repository
--- linux-2.4.20/include/pcmcia/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/pcmcia/CVS/Repository	2005-01-06 23:07:38.000000000 -0600
@@ -0,0 +1 @@
+linux/include/pcmcia
diff -urNd -urNd linux-2.4.20/include/pcmcia/CVS/Root linux-2.4.20-mipscvs-20050106/include/pcmcia/CVS/Root
--- linux-2.4.20/include/pcmcia/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/pcmcia/CVS/Root	2005-01-06 23:07:38.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/pcmcia/CVS/Tag linux-2.4.20-mipscvs-20050106/include/pcmcia/CVS/Tag
--- linux-2.4.20/include/pcmcia/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/pcmcia/CVS/Tag	2005-01-06 23:07:38.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/scsi/CVS/Entries linux-2.4.20-mipscvs-20050106/include/scsi/CVS/Entries
--- linux-2.4.20/include/scsi/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/scsi/CVS/Entries	2005-01-06 23:07:38.000000000 -0600
@@ -0,0 +1,5 @@
+/scsi.h/1.8.2.2/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/scsi_ioctl.h/1.4/Thu Oct  5 01:19:03 2000/-ko/Tlinux_2_4_20
+/scsicam.h/1.2/Thu Jun 17 13:31:31 1999/-ko/Tlinux_2_4_20
+/sg.h/1.13.2.3/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/scsi/CVS/Repository linux-2.4.20-mipscvs-20050106/include/scsi/CVS/Repository
--- linux-2.4.20/include/scsi/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/scsi/CVS/Repository	2005-01-06 23:07:38.000000000 -0600
@@ -0,0 +1 @@
+linux/include/scsi
diff -urNd -urNd linux-2.4.20/include/scsi/CVS/Root linux-2.4.20-mipscvs-20050106/include/scsi/CVS/Root
--- linux-2.4.20/include/scsi/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/scsi/CVS/Root	2005-01-06 23:07:38.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/scsi/CVS/Tag linux-2.4.20-mipscvs-20050106/include/scsi/CVS/Tag
--- linux-2.4.20/include/scsi/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/scsi/CVS/Tag	2005-01-06 23:07:38.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/video/CVS/Entries linux-2.4.20-mipscvs-20050106/include/video/CVS/Entries
--- linux-2.4.20/include/video/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/video/CVS/Entries	2005-01-06 23:07:39.000000000 -0600
@@ -0,0 +1,24 @@
+/e1356fb.h/1.1.2.1/Sun Dec 29 20:08:23 2002//Tlinux_2_4_20
+/fbcon-afb.h/1.1/Mon Jan  4 16:10:30 1999/-ko/Tlinux_2_4_20
+/fbcon-cfb16.h/1.1/Mon Jan  4 16:10:30 1999/-ko/Tlinux_2_4_20
+/fbcon-cfb2.h/1.1/Mon Jan  4 16:10:30 1999/-ko/Tlinux_2_4_20
+/fbcon-cfb24.h/1.1/Mon Jan  4 16:10:31 1999/-ko/Tlinux_2_4_20
+/fbcon-cfb32.h/1.1/Mon Jan  4 16:10:31 1999/-ko/Tlinux_2_4_20
+/fbcon-cfb4.h/1.1/Mon Jan  4 16:10:31 1999/-ko/Tlinux_2_4_20
+/fbcon-cfb8.h/1.1/Mon Jan  4 16:10:31 1999/-ko/Tlinux_2_4_20
+/fbcon-hga.h/1.1/Sun Mar 12 23:15:53 2000/-ko/Tlinux_2_4_20
+/fbcon-ilbm.h/1.1/Mon Jan  4 16:10:32 1999/-ko/Tlinux_2_4_20
+/fbcon-iplan2p2.h/1.1/Mon Jan  4 16:10:32 1999/-ko/Tlinux_2_4_20
+/fbcon-iplan2p4.h/1.1/Mon Jan  4 16:10:32 1999/-ko/Tlinux_2_4_20
+/fbcon-iplan2p8.h/1.1/Mon Jan  4 16:10:32 1999/-ko/Tlinux_2_4_20
+/fbcon-mac.h/1.1/Mon Jan  4 16:10:33 1999/-ko/Tlinux_2_4_20
+/fbcon-mfb.h/1.1/Mon Jan  4 16:10:33 1999/-ko/Tlinux_2_4_20
+/fbcon-vga-planes.h/1.1/Thu Jun 17 14:09:07 1999/-ko/Tlinux_2_4_20
+/fbcon-vga.h/1.1/Mon Jan  4 16:10:33 1999/-ko/Tlinux_2_4_20
+/fbcon.h/1.11.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/font.h/1.2/Mon Feb 15 02:22:58 1999/-ko/Tlinux_2_4_20
+/macmodes.h/1.4/Wed Aug 22 03:25:17 2001/-ko/Tlinux_2_4_20
+/newport.h/1.3/Sat Feb 10 01:01:27 2001/-ko/Tlinux_2_4_20
+/s3blit.h/1.1/Mon Jan  4 16:10:34 1999/-ko/Tlinux_2_4_20
+/sbusfb.h/1.4/Sat Feb  5 06:47:46 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/include/video/CVS/Repository linux-2.4.20-mipscvs-20050106/include/video/CVS/Repository
--- linux-2.4.20/include/video/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/video/CVS/Repository	2005-01-06 23:07:38.000000000 -0600
@@ -0,0 +1 @@
+linux/include/video
diff -urNd -urNd linux-2.4.20/include/video/CVS/Root linux-2.4.20-mipscvs-20050106/include/video/CVS/Root
--- linux-2.4.20/include/video/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/video/CVS/Root	2005-01-06 23:07:38.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/include/video/CVS/Tag linux-2.4.20-mipscvs-20050106/include/video/CVS/Tag
--- linux-2.4.20/include/video/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/video/CVS/Tag	2005-01-06 23:07:39.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/include/video/e1356fb.h linux-2.4.20-mipscvs-20050106/include/video/e1356fb.h
--- linux-2.4.20/include/video/e1356fb.h	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/include/video/e1356fb.h	2002-12-29 14:08:23.000000000 -0600
@@ -0,0 +1,73 @@
+/*
+ *      e1356fb.h  --  Epson SED1356 Framebuffer Driver IOCTL Interface
+ *
+ * Copyright 2001 MontaVista Software Inc.
+ * Author: MontaVista Software, Inc.
+ *         	stevel@mvista.com or source@mvista.com
+ *
+ *  This program is free software; you can redistribute  it and/or modify it
+ *  under  the terms of  the GNU General  Public License as published by the
+ *  Free Software Foundation;  either version 2 of the  License, or (at your
+ *  option) any later version.
+ *
+ *  THIS  SOFTWARE  IS PROVIDED   ``AS  IS'' AND   ANY  EXPRESS OR IMPLIED
+ *  WARRANTIES,   INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
+ *  NO  EVENT  SHALL   THE AUTHOR  BE    LIABLE FOR ANY   DIRECT, INDIRECT,
+ *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ *  NOT LIMITED   TO, PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS OF
+ *  USE, DATA,  OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ *  ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *  You should have received a copy of the  GNU General Public License along
+ *  with this program; if not, write  to the Free Software Foundation, Inc.,
+ *  675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+/*
+ * IOCTLs to SED1356 fb driver. 0x45 is 'E' for Epson.
+ */
+#define FBIO_SED1356_BITBLT 0x4500
+
+typedef struct {
+	int   operation;
+	int   rop;
+	int   src_y;
+	int   src_x;
+	int   src_width;
+	int   src_height;
+	int   dst_y;
+	int   dst_x;
+	int   dst_width;
+	int   dst_height;
+	int   pattern_x;
+	int   pattern_y;
+	int   attribute;
+	unsigned int bg_color;
+	unsigned int fg_color;
+	unsigned short* src;
+	int   srcsize;
+	int   srcstride;
+} blt_info_t;
+
+enum blt_attribute_t {
+	BLT_ATTR_TRANSPARENT = 1
+};
+
+enum blt_operation_t {
+	BLT_WRITE_ROP = 0,
+	BLT_READ,
+	BLT_MOVE_POS_ROP,
+	BLT_MOVE_NEG_ROP,
+	BLT_WRITE_TRANSP,
+	BLT_MOVE_POS_TRANSP,
+	BLT_PAT_FILL_ROP,
+	BLT_PAT_FILL_TRANSP,
+	BLT_COLOR_EXP,
+	BLT_COLOR_EXP_TRANSP,
+	BLT_MOVE_COLOR_EXP,
+	BLT_MOVE_COLOR_EXP_TRANSP,
+	BLT_SOLID_FILL
+};
diff -urNd -urNd linux-2.4.20/init/CVS/Entries linux-2.4.20-mipscvs-20050106/init/CVS/Entries
--- linux-2.4.20/init/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/init/CVS/Entries	2005-01-06 23:07:39.000000000 -0600
@@ -0,0 +1,4 @@
+/do_mounts.c/1.1.2.4/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/main.c/1.69.2.4/Wed Jun 26 22:36:48 2002/-ko/Tlinux_2_4_20
+/version.c/1.4/Sun Dec  2 11:35:00 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/init/CVS/Repository linux-2.4.20-mipscvs-20050106/init/CVS/Repository
--- linux-2.4.20/init/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/init/CVS/Repository	2005-01-06 23:07:39.000000000 -0600
@@ -0,0 +1 @@
+linux/init
diff -urNd -urNd linux-2.4.20/init/CVS/Root linux-2.4.20-mipscvs-20050106/init/CVS/Root
--- linux-2.4.20/init/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/init/CVS/Root	2005-01-06 23:07:39.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/init/CVS/Tag linux-2.4.20-mipscvs-20050106/init/CVS/Tag
--- linux-2.4.20/init/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/init/CVS/Tag	2005-01-06 23:07:39.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/init/main.c linux-2.4.20-mipscvs-20050106/init/main.c
--- linux-2.4.20/init/main.c	2002-08-02 19:39:46.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/init/main.c	2002-06-26 17:36:48.000000000 -0500
@@ -286,7 +286,6 @@
 
 
 extern void setup_arch(char **);
-extern void cpu_idle(void);
 
 unsigned long wait_init_idle;
 
diff -urNd -urNd linux-2.4.20/ipc/CVS/Entries linux-2.4.20-mipscvs-20050106/ipc/CVS/Entries
--- linux-2.4.20/ipc/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/ipc/CVS/Entries	2005-01-06 23:07:39.000000000 -0600
@@ -0,0 +1,8 @@
+/.cvsignore/1.2/Tue Mar 17 22:17:47 1998/-ko/Tlinux_2_4_20
+/Makefile/1.3/Wed Jan 10 17:18:09 2001/-ko/Tlinux_2_4_20
+/msg.c/1.15.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/sem.c/1.18.2.2/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/shm.c/1.56.2.3/Tue Sep 10 15:32:56 2002/-ko/Tlinux_2_4_20
+/util.c/1.23.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/util.h/1.6.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/ipc/CVS/Repository linux-2.4.20-mipscvs-20050106/ipc/CVS/Repository
--- linux-2.4.20/ipc/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/ipc/CVS/Repository	2005-01-06 23:07:39.000000000 -0600
@@ -0,0 +1 @@
+linux/ipc
diff -urNd -urNd linux-2.4.20/ipc/CVS/Root linux-2.4.20-mipscvs-20050106/ipc/CVS/Root
--- linux-2.4.20/ipc/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/ipc/CVS/Root	2005-01-06 23:07:39.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/ipc/CVS/Tag linux-2.4.20-mipscvs-20050106/ipc/CVS/Tag
--- linux-2.4.20/ipc/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/ipc/CVS/Tag	2005-01-06 23:07:39.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/ipc/.cvsignore linux-2.4.20-mipscvs-20050106/ipc/.cvsignore
--- linux-2.4.20/ipc/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/ipc/.cvsignore	1998-03-17 16:17:47.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/kernel/CVS/Entries
--- linux-2.4.20/kernel/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/kernel/CVS/Entries	2005-01-06 23:08:09.000000000 -0600
@@ -0,0 +1,29 @@
+/.cvsignore/1.2/Tue Mar 17 22:17:48 1998/-ko/Tlinux_2_4_20
+/Makefile/1.18/Fri Oct 19 01:25:05 2001/-ko/Tlinux_2_4_20
+/acct.c/1.22.2.1/Wed Jun 26 22:36:48 2002/-ko/Tlinux_2_4_20
+/capability.c/1.7/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
+/context.c/1.5/Tue Nov  6 00:55:31 2001/-ko/Tlinux_2_4_20
+/dma.c/1.9/Fri Mar  9 20:34:58 2001/-ko/Tlinux_2_4_20
+/exec_domain.c/1.16.2.2/Tue Feb 26 06:00:33 2002/-ko/Tlinux_2_4_20
+/exit.c/1.51.2.3/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/fork.c/1.58.2.3/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/info.c/1.5/Wed Jun 13 17:28:17 2001/-ko/Tlinux_2_4_20
+/itimer.c/1.6/Mon Jul  3 21:46:10 2000/-ko/Tlinux_2_4_20
+/kmod.c/1.24.2.1/Wed Jun 26 22:36:48 2002/-ko/Tlinux_2_4_20
+/ksyms.c/1.76.2.6/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/module.c/1.30/Sun Dec  2 11:35:00 2001/-ko/Tlinux_2_4_20
+/panic.c/1.20.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/pm.c/1.8.2.2/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/printk.c/1.24.2.5/Wed Jun 26 22:36:48 2002/-ko/Tlinux_2_4_20
+/ptrace.c/1.17.2.3/Wed Jun 26 22:36:48 2002/-ko/Tlinux_2_4_20
+/resource.c/1.13.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/sched.c/1.64.2.5/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/signal.c/1.32.2.1/Wed Jun 26 22:36:48 2002/-ko/Tlinux_2_4_20
+/softirq.c/1.17.2.2/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/sys.c/1.40.2.2/Wed Jun 26 22:36:48 2002/-ko/Tlinux_2_4_20
+/sysctl.c/1.46.2.4/Tue Sep 10 15:32:56 2002/-ko/Tlinux_2_4_20
+/time.c/1.14.4.4/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/timer.c/1.22.2.3/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/uid16.c/1.1/Wed Feb 16 01:07:59 2000/-ko/Tlinux_2_4_20
+/user.c/1.4/Wed Jan 10 05:27:36 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/kernel/CVS/Repository
--- linux-2.4.20/kernel/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/kernel/CVS/Repository	2005-01-06 23:07:39.000000000 -0600
@@ -0,0 +1 @@
+linux/kernel
diff -urNd -urNd linux-2.4.20/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/kernel/CVS/Root
--- linux-2.4.20/kernel/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/kernel/CVS/Root	2005-01-06 23:07:39.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/kernel/CVS/Tag
--- linux-2.4.20/kernel/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/kernel/CVS/Tag	2005-01-06 23:07:40.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/kernel/.cvsignore linux-2.4.20-mipscvs-20050106/kernel/.cvsignore
--- linux-2.4.20/kernel/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/kernel/.cvsignore	1998-03-17 16:17:48.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/kernel/exit.c linux-2.4.20-mipscvs-20050106/kernel/exit.c
--- linux-2.4.20/kernel/exit.c	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/kernel/exit.c	2003-01-11 11:53:18.000000000 -0600
@@ -26,7 +26,7 @@
 
 int getrusage(struct task_struct *, int, struct rusage *);
 
-static void release_task(struct task_struct * p)
+void release_task(struct task_struct * p)
 {
 	if (p != current) {
 #ifdef CONFIG_SMP
diff -urNd -urNd linux-2.4.20/kernel/printk.c linux-2.4.20-mipscvs-20050106/kernel/printk.c
--- linux-2.4.20/kernel/printk.c	2002-08-02 19:39:46.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/kernel/printk.c	2002-06-26 17:36:48.000000000 -0500
@@ -99,7 +99,7 @@
 /*
  *	Setup a list of consoles. Called from init/main.c
  */
-static int __init console_setup(char *str)
+int __init console_setup(char *str)
 {
 	struct console_cmdline *c;
 	char name[sizeof(c->name)];
diff -urNd -urNd linux-2.4.20/kernel/sched.c linux-2.4.20-mipscvs-20050106/kernel/sched.c
--- linux-2.4.20/kernel/sched.c	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/kernel/sched.c	2002-09-11 07:45:42.000000000 -0500
@@ -116,7 +116,7 @@
 
 #define idle_task(cpu) (init_tasks[cpu_number_map(cpu)])
 #define can_schedule(p,cpu) \
-	((p)->cpus_runnable & (p)->cpus_allowed & (1 << cpu))
+	((p)->cpus_runnable & (p)->cpus_allowed & (1UL << cpu))
 
 #else
 
diff -urNd -urNd linux-2.4.20/kernel/signal.c linux-2.4.20-mipscvs-20050106/kernel/signal.c
--- linux-2.4.20/kernel/signal.c	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/kernel/signal.c	2002-06-26 17:36:48.000000000 -0500
@@ -14,12 +14,21 @@
 #include <linux/init.h>
 #include <linux/sched.h>
 
+#include <asm/param.h>
 #include <asm/uaccess.h>
 
 /*
  * SLAB caches for signal bits.
  */
 
+#define DEBUG_SIG 0
+
+#if DEBUG_SIG
+#define SIG_SLAB_DEBUG	(SLAB_DEBUG_FREE | SLAB_RED_ZONE /* | SLAB_POISON */)
+#else
+#define SIG_SLAB_DEBUG	0
+#endif
+
 static kmem_cache_t *sigqueue_cachep;
 
 atomic_t nr_queued_signals;
@@ -31,7 +40,7 @@
 		kmem_cache_create("sigqueue",
 				  sizeof(struct sigqueue),
 				  __alignof__(struct sigqueue),
-				  0, NULL, NULL);
+				  SIG_SLAB_DEBUG, NULL, NULL);
 	if (!sigqueue_cachep)
 		panic("signals_init(): cannot create sigqueue SLAB cache");
 }
@@ -257,6 +266,11 @@
 {
 	int sig = 0;
 
+#if DEBUG_SIG
+printk("SIG dequeue (%s:%d): %d ", current->comm, current->pid,
+	signal_pending(current));
+#endif
+
 	sig = next_signal(current, mask);
 	if (sig) {
 		if (current->notifier) {
@@ -276,6 +290,10 @@
 	}
 	recalc_sigpending(current);
 
+#if DEBUG_SIG
+printk(" %d -> %d\n", signal_pending(current), sig);
+#endif
+
 	return sig;
 }
 
@@ -518,6 +536,11 @@
 	unsigned long flags;
 	int ret;
 
+
+#if DEBUG_SIG
+printk("SIG queue (%s:%d): %d ", t->comm, t->pid, sig);
+#endif
+
 	ret = -EINVAL;
 	if (sig < 0 || sig > _NSIG)
 		goto out_nolock;
@@ -552,6 +575,9 @@
 out:
 	spin_unlock_irqrestore(&t->sigmask_lock, flags);
 out_nolock:
+#if DEBUG_SIG
+printk(" %d -> %d\n", signal_pending(t), ret);
+#endif
 
 	return ret;
 }
@@ -753,8 +779,8 @@
 	info.si_uid = tsk->uid;
 
 	/* FIXME: find out whether or not this is supposed to be c*time. */
-	info.si_utime = tsk->times.tms_utime;
-	info.si_stime = tsk->times.tms_stime;
+	info.si_utime = hz_to_std(tsk->times.tms_utime);
+	info.si_stime = hz_to_std(tsk->times.tms_stime);
 
 	status = tsk->exit_code & 0x7f;
 	why = SI_KERNEL;	/* shouldn't happen */
diff -urNd -urNd linux-2.4.20/kernel/sys.c linux-2.4.20-mipscvs-20050106/kernel/sys.c
--- linux-2.4.20/kernel/sys.c	2002-08-02 19:39:46.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/kernel/sys.c	2002-06-26 17:36:48.000000000 -0500
@@ -791,16 +791,23 @@
 
 asmlinkage long sys_times(struct tms * tbuf)
 {
+	struct tms temp;
+
 	/*
 	 *	In the SMP world we might just be unlucky and have one of
 	 *	the times increment as we use it. Since the value is an
 	 *	atomically safe type this is just fine. Conceptually its
 	 *	as if the syscall took an instant longer to occur.
 	 */
-	if (tbuf)
-		if (copy_to_user(tbuf, &current->times, sizeof(struct tms)))
+	if (tbuf) {
+		temp.tms_utime = hz_to_std(current->times.tms_utime);
+		temp.tms_stime = hz_to_std(current->times.tms_stime);
+		temp.tms_cutime = hz_to_std(current->times.tms_cutime);
+		temp.tms_cstime = hz_to_std(current->times.tms_cstime);
+		if (copy_to_user(tbuf, &temp, sizeof(struct tms)))
 			return -EFAULT;
-	return jiffies;
+	}
+	return hz_to_std(jiffies);
 }
 
 /*
diff -urNd -urNd linux-2.4.20/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/lib/CVS/Entries
--- linux-2.4.20/lib/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/lib/CVS/Entries	2005-01-06 23:08:09.000000000 -0600
@@ -0,0 +1,18 @@
+/.cvsignore/1.2/Tue Mar 17 22:17:54 1998/-ko/Tlinux_2_4_20
+/Config.in/1.2.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/Makefile/1.7.2.2/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/brlock.c/1.4/Sun Dec  2 11:35:00 2001/-ko/Tlinux_2_4_20
+/bust_spinlocks.c/1.1/Fri Oct 19 01:25:06 2001/-ko/Tlinux_2_4_20
+/cmdline.c/1.3/Wed Jun 13 17:28:17 2001/-ko/Tlinux_2_4_20
+/ctype.c/1.1.1.1/Sun Jun  1 03:16:23 1997/-ko/Tlinux_2_4_20
+/dec_and_lock.c/1.3/Mon Nov  5 20:16:32 2001/-ko/Tlinux_2_4_20
+/dump_stack.c/1.1.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/errno.c/1.1.1.1/Sun Jun  1 03:16:23 1997/-ko/Tlinux_2_4_20
+/inflate.c/1.5.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/rbtree.c/1.1.2.1/Wed Jun 26 22:36:48 2002/-ko/Tlinux_2_4_20
+/rwsem-spinlock.c/1.1.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/rwsem.c/1.2/Thu Aug 23 22:24:51 2001/-ko/Tlinux_2_4_20
+/string.c/1.14.2.1/Wed Jun 26 22:36:48 2002/-ko/Tlinux_2_4_20
+/vsprintf.c/1.16/Tue Nov  6 00:55:31 2001/-ko/Tlinux_2_4_20
+D/zlib_deflate////
+D/zlib_inflate////
diff -urNd -urNd linux-2.4.20/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/lib/CVS/Repository
--- linux-2.4.20/lib/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/lib/CVS/Repository	2005-01-06 23:07:40.000000000 -0600
@@ -0,0 +1 @@
+linux/lib
diff -urNd -urNd linux-2.4.20/lib/CVS/Root linux-2.4.20-mipscvs-20050106/lib/CVS/Root
--- linux-2.4.20/lib/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/lib/CVS/Root	2005-01-06 23:07:40.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/lib/CVS/Tag
--- linux-2.4.20/lib/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/lib/CVS/Tag	2005-01-06 23:07:40.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/lib/.cvsignore linux-2.4.20-mipscvs-20050106/lib/.cvsignore
--- linux-2.4.20/lib/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/lib/.cvsignore	1998-03-17 16:17:54.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/lib/string.c linux-2.4.20-mipscvs-20050106/lib/string.c
--- linux-2.4.20/lib/string.c	2002-08-02 19:39:46.000000000 -0500
+++ linux-2.4.20-mipscvs-20050106/lib/string.c	2002-06-26 17:36:48.000000000 -0500
@@ -356,7 +356,7 @@
  *
  * Do not use memset() to access IO space, use memset_io() instead.
  */
-void * memset(void * s,int c,size_t count)
+void * memset(void * s,int c, size_t count)
 {
 	char *xs = (char *) s;
 
@@ -474,14 +474,15 @@
 void * memscan(void * addr, int c, size_t size)
 {
 	unsigned char * p = (unsigned char *) addr;
+	unsigned char * e = p + size;
 
-	while (size) {
-		if (*p == c)
+	while (p != e) {
+		if (*p == (unsigned char)c)
 			return (void *) p;
 		p++;
-		size--;
 	}
-  	return (void *) p;
+
+	return (void *) p;
 }
 #endif
 
diff -urNd -urNd linux-2.4.20/lib/zlib_deflate/CVS/Entries linux-2.4.20-mipscvs-20050106/lib/zlib_deflate/CVS/Entries
--- linux-2.4.20/lib/zlib_deflate/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/lib/zlib_deflate/CVS/Entries	2005-01-06 23:07:40.000000000 -0600
@@ -0,0 +1,7 @@
+/.cvsignore/1.1.2.1/Wed Sep 11 13:00:33 2002/-ko/Tlinux_2_4_20
+/Makefile/1.2.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/deflate.c/1.1.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/deflate_syms.c/1.1.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/deftree.c/1.1.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+/defutil.h/1.1.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/lib/zlib_deflate/CVS/Repository linux-2.4.20-mipscvs-20050106/lib/zlib_deflate/CVS/Repository
--- linux-2.4.20/lib/zlib_deflate/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/lib/zlib_deflate/CVS/Repository	2005-01-06 23:07:40.000000000 -0600
@@ -0,0 +1 @@
+linux/lib/zlib_deflate
diff -urNd -urNd linux-2.4.20/lib/zlib_deflate/CVS/Root linux-2.4.20-mipscvs-20050106/lib/zlib_deflate/CVS/Root
--- linux-2.4.20/lib/zlib_deflate/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/lib/zlib_deflate/CVS/Root	2005-01-06 23:07:40.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/lib/zlib_deflate/CVS/Tag linux-2.4.20-mipscvs-20050106/lib/zlib_deflate/CVS/Tag
--- linux-2.4.20/lib/zlib_deflate/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/lib/zlib_deflate/CVS/Tag	2005-01-06 23:07:40.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/lib/zlib_deflate/.cvsignore linux-2.4.20-mipscvs-20050106/lib/zlib_deflate/.cvsignore
--- linux-2.4.20/lib/zlib_deflate/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/lib/zlib_deflate/.cvsignore	2002-09-11 08:00:33.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/lib/zlib_inflate/CVS/Entries linux-2.4.20-mipscvs-20050106/lib/zlib_inflate/CVS/Entries
--- linux-2.4.20/lib/zlib_inflate/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/lib/zlib_inflate/CVS/Entries	2005-01-06 23:07:41.000000000 -0600
@@ -0,0 +1,16 @@
+/.cvsignore/1.1.2.1/Wed Sep 11 13:00:33 2002/-ko/Tlinux_2_4_20
+/Makefile/1.2.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/infblock.c/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/infblock.h/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/infcodes.c/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/infcodes.h/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/inffast.c/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/inffast.h/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/inffixed.h/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/inflate.c/1.3.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/inflate_syms.c/1.2.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/inftrees.c/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/inftrees.h/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/infutil.c/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/infutil.h/1.2.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/lib/zlib_inflate/CVS/Repository linux-2.4.20-mipscvs-20050106/lib/zlib_inflate/CVS/Repository
--- linux-2.4.20/lib/zlib_inflate/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/lib/zlib_inflate/CVS/Repository	2005-01-06 23:07:40.000000000 -0600
@@ -0,0 +1 @@
+linux/lib/zlib_inflate
diff -urNd -urNd linux-2.4.20/lib/zlib_inflate/CVS/Root linux-2.4.20-mipscvs-20050106/lib/zlib_inflate/CVS/Root
--- linux-2.4.20/lib/zlib_inflate/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/lib/zlib_inflate/CVS/Root	2005-01-06 23:07:40.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/lib/zlib_inflate/CVS/Tag linux-2.4.20-mipscvs-20050106/lib/zlib_inflate/CVS/Tag
--- linux-2.4.20/lib/zlib_inflate/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/lib/zlib_inflate/CVS/Tag	2005-01-06 23:07:41.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/lib/zlib_inflate/.cvsignore linux-2.4.20-mipscvs-20050106/lib/zlib_inflate/.cvsignore
--- linux-2.4.20/lib/zlib_inflate/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/lib/zlib_inflate/.cvsignore	2002-09-11 08:00:33.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/MAINTAINERS linux-2.4.20-mipscvs-20050106/MAINTAINERS
--- linux-2.4.20/MAINTAINERS	2002-11-28 17:53:08.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/MAINTAINERS	2003-01-20 12:19:34.000000000 -0600
@@ -810,7 +810,7 @@
 
 IOC3 DRIVER
 P:	Ralf Baechle
-M:	ralf@oss.sgi.com
+M:	ralf@linux-mips.org
 L:	linux-mips@linux-mips.org
 S:	Maintained
 
@@ -1021,7 +1021,7 @@
 
 MIPS
 P:	Ralf Baechle
-M:	ralf@gnu.org
+M:	ralf@linux-mips.org
 W:	http://oss.sgi.com/mips/mips-howto.html
 L:	linux-mips@linux-mips.org
 S:	Maintained
diff -urNd -urNd linux-2.4.20/Makefile linux-2.4.20-mipscvs-20050106/Makefile
--- linux-2.4.20/Makefile	2002-11-28 17:53:16.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Makefile	2005-01-06 23:08:28.000000000 -0600
@@ -1,11 +1,11 @@
 VERSION = 2
 PATCHLEVEL = 4
 SUBLEVEL = 20
-EXTRAVERSION =
+EXTRAVERSION = -mipscvs-20050106
 
 KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
 
-ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)
+ARCH = mips
 KERNELPATH=kernel-$(shell echo $(KERNELRELEASE) | sed -e "s/-//g")
 
 CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
@@ -216,6 +216,7 @@
 	drivers/scsi/aic7xxx/aicasm/aicdb.h \
 	drivers/scsi/aic7xxx/aicasm/y.tab.h \
 	drivers/scsi/53c700_d.h \
+	drivers/tc/lk201-map.c \
 	net/khttpd/make_times_h \
 	net/khttpd/times.h \
 	submenu*
@@ -455,10 +456,11 @@
 	$(MAKE) -C Documentation/DocBook mrproper
 
 distclean: mrproper
-	rm -f core `find . \( -not -type d \) -and \
-		\( -name '*.orig' -o -name '*.rej' -o -name '*~' \
-		-o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
-		-o -name '.*.rej' -o -name '.SUMS' -o -size 0 \) -type f -print` TAGS tags
+	find . \( -not -type d \) -and \
+		\( -name core -o -name '*.orig' -o -name '*.rej' \
+		-o -name '*~' -o -name '*.bak' -o -name '#*#' \
+		-o -name '.*.rej' -o -name '.SUMS' -o -size 0 \
+		-o -name TAGS -o -name tags \) -print | env -i xargs rm -f
 
 backup: mrproper
 	cd .. && tar cf - linux/ | gzip -9 > backup.gz
@@ -485,11 +487,11 @@
 	$(MAKE) -C Documentation/DocBook man
 
 sums:
-	find . -type f -print | sort | xargs sum > .SUMS
+	find . -type f -print | sort | env -i xargs sum > .SUMS
 
 dep-files: scripts/mkdep archdep include/linux/version.h
 	scripts/mkdep -- init/*.c > .depend
-	scripts/mkdep -- `find $(FINDHPATH) \( -name SCCS -o -name .svn \) -prune -o -follow -name \*.h ! -name modversions.h -print` > .hdepend
+	find $(FINDHPATH) \( -name SCCS -o -name .svn \) -prune -o -follow -name \*.h ! -name modversions.h -print | env -i PATH="$(PATH)" HPATH="$(HPATH)" xargs scripts/mkdep -- > .hdepend
 	$(MAKE) $(patsubst %,_sfdep_%,$(SUBDIRS)) _FASTDEP_ALL_SUB_DIRS="$(SUBDIRS)"
 ifdef CONFIG_MODVERSIONS
 	$(MAKE) update-modverfile
diff -urNd -urNd linux-2.4.20/Makefile.old linux-2.4.20-mipscvs-20050106/Makefile.old
--- linux-2.4.20/Makefile.old	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/Makefile.old	2003-01-11 11:53:08.000000000 -0600
@@ -0,0 +1,575 @@
+VERSION = 2
+PATCHLEVEL = 4
+SUBLEVEL = 20
+EXTRAVERSION =
+
+KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
+
+ARCH = mips
+KERNELPATH=kernel-$(shell echo $(KERNELRELEASE) | sed -e "s/-//g")
+
+CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
+	  else if [ -x /bin/bash ]; then echo /bin/bash; \
+	  else echo sh; fi ; fi)
+TOPDIR	:= $(shell /bin/pwd)
+
+HPATH   	= $(TOPDIR)/include
+FINDHPATH	= $(HPATH)/asm $(HPATH)/linux $(HPATH)/scsi $(HPATH)/net $(HPATH)/math-emu
+
+HOSTCC  	= gcc
+HOSTCFLAGS	= -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
+
+CROSS_COMPILE 	=
+
+#
+# Include the make variables (CC, etc...)
+#
+
+AS		= $(CROSS_COMPILE)as
+LD		= $(CROSS_COMPILE)ld
+CC		= $(CROSS_COMPILE)gcc
+CPP		= $(CC) -E
+AR		= $(CROSS_COMPILE)ar
+NM		= $(CROSS_COMPILE)nm
+STRIP		= $(CROSS_COMPILE)strip
+OBJCOPY		= $(CROSS_COMPILE)objcopy
+OBJDUMP		= $(CROSS_COMPILE)objdump
+MAKEFILES	= $(TOPDIR)/.config
+GENKSYMS	= /sbin/genksyms
+DEPMOD		= /sbin/depmod
+MODFLAGS	= -DMODULE
+CFLAGS_KERNEL	=
+PERL		= perl
+
+export	VERSION PATCHLEVEL SUBLEVEL EXTRAVERSION KERNELRELEASE ARCH \
+	CONFIG_SHELL TOPDIR HPATH HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC \
+	CPP AR NM STRIP OBJCOPY OBJDUMP MAKE MAKEFILES GENKSYMS MODFLAGS PERL
+
+all:	do-it-all
+
+#
+# Make "config" the default target if there is no configuration file or
+# "depend" the target if there is no top-level dependency information.
+#
+
+ifeq (.config,$(wildcard .config))
+include .config
+ifeq (.depend,$(wildcard .depend))
+include .depend
+do-it-all:	Version vmlinux
+else
+CONFIGURATION = depend
+do-it-all:	depend
+endif
+else
+CONFIGURATION = config
+do-it-all:	config
+endif
+
+#
+# INSTALL_PATH specifies where to place the updated kernel and system map
+# images.  Uncomment if you want to place them anywhere other than root.
+#
+
+#export	INSTALL_PATH=/boot
+
+#
+# INSTALL_MOD_PATH specifies a prefix to MODLIB for module directory
+# relocations required by build roots.  This is not defined in the
+# makefile but the arguement can be passed to make if needed.
+#
+
+MODLIB	:= $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE)
+export MODLIB
+
+#
+# standard CFLAGS
+#
+
+CPPFLAGS := -D__KERNEL__ -I$(HPATH)
+
+CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wno-trigraphs -O2 \
+	  -fno-strict-aliasing -fno-common
+ifndef CONFIG_FRAME_POINTER
+CFLAGS += -fomit-frame-pointer
+endif
+AFLAGS := -D__ASSEMBLY__ $(CPPFLAGS)
+
+#
+# ROOT_DEV specifies the default root-device when making the image.
+# This can be either FLOPPY, CURRENT, /dev/xxxx or empty, in which case
+# the default of FLOPPY is used by 'build'.
+# This is i386 specific.
+#
+
+export ROOT_DEV = CURRENT
+
+#
+# If you want to preset the SVGA mode, uncomment the next line and
+# set SVGA_MODE to whatever number you want.
+# Set it to -DSVGA_MODE=NORMAL_VGA if you just want the EGA/VGA mode.
+# The number is the same as you would ordinarily press at bootup.
+# This is i386 specific.
+#
+
+export SVGA_MODE = -DSVGA_MODE=NORMAL_VGA
+
+#
+# If you want the RAM disk device, define this to be the size in blocks.
+# This is i386 specific.
+#
+
+#export RAMDISK = -DRAMDISK=512
+
+CORE_FILES	=kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o
+NETWORKS	=net/network.o
+
+LIBS		=$(TOPDIR)/lib/lib.a
+SUBDIRS		=kernel drivers mm fs net ipc lib
+
+DRIVERS-n :=
+DRIVERS-y :=
+DRIVERS-m :=
+DRIVERS-  :=
+
+DRIVERS-$(CONFIG_ACPI) += drivers/acpi/acpi.o
+DRIVERS-$(CONFIG_PARPORT) += drivers/parport/driver.o
+DRIVERS-y += drivers/char/char.o \
+	drivers/block/block.o \
+	drivers/misc/misc.o \
+	drivers/net/net.o \
+	drivers/media/media.o
+DRIVERS-$(CONFIG_AGP) += drivers/char/agp/agp.o
+DRIVERS-$(CONFIG_DRM_NEW) += drivers/char/drm/drm.o
+DRIVERS-$(CONFIG_DRM_OLD) += drivers/char/drm-4.0/drm.o
+DRIVERS-$(CONFIG_NUBUS) += drivers/nubus/nubus.a
+DRIVERS-$(CONFIG_NET_FC) += drivers/net/fc/fc.o
+DRIVERS-$(CONFIG_DEV_APPLETALK) += drivers/net/appletalk/appletalk.o
+DRIVERS-$(CONFIG_TR) += drivers/net/tokenring/tr.o
+DRIVERS-$(CONFIG_WAN) += drivers/net/wan/wan.o
+DRIVERS-$(CONFIG_ARCNET) += drivers/net/arcnet/arcnetdrv.o
+DRIVERS-$(CONFIG_ATM) += drivers/atm/atm.o
+DRIVERS-$(CONFIG_IDE) += drivers/ide/idedriver.o
+DRIVERS-$(CONFIG_FC4) += drivers/fc4/fc4.a
+DRIVERS-$(CONFIG_SCSI) += drivers/scsi/scsidrv.o
+DRIVERS-$(CONFIG_FUSION_BOOT) += drivers/message/fusion/fusion.o
+DRIVERS-$(CONFIG_IEEE1394) += drivers/ieee1394/ieee1394drv.o
+
+ifneq ($(CONFIG_CD_NO_IDESCSI)$(CONFIG_BLK_DEV_IDECD)$(CONFIG_BLK_DEV_SR)$(CONFIG_PARIDE_PCD),)
+DRIVERS-y += drivers/cdrom/driver.o
+endif
+
+DRIVERS-$(CONFIG_SOUND) += drivers/sound/sounddrivers.o
+DRIVERS-$(CONFIG_PCI) += drivers/pci/driver.o
+DRIVERS-$(CONFIG_MTD) += drivers/mtd/mtdlink.o
+DRIVERS-$(CONFIG_PCMCIA) += drivers/pcmcia/pcmcia.o
+DRIVERS-$(CONFIG_NET_PCMCIA) += drivers/net/pcmcia/pcmcia_net.o
+DRIVERS-$(CONFIG_NET_WIRELESS) += drivers/net/wireless/wireless_net.o
+DRIVERS-$(CONFIG_PCMCIA_CHRDEV) += drivers/char/pcmcia/pcmcia_char.o
+DRIVERS-$(CONFIG_DIO) += drivers/dio/dio.a
+DRIVERS-$(CONFIG_SBUS) += drivers/sbus/sbus_all.o
+DRIVERS-$(CONFIG_ZORRO) += drivers/zorro/driver.o
+DRIVERS-$(CONFIG_FC4) += drivers/fc4/fc4.a
+DRIVERS-$(CONFIG_PPC32) += drivers/macintosh/macintosh.o
+DRIVERS-$(CONFIG_MAC) += drivers/macintosh/macintosh.o
+DRIVERS-$(CONFIG_ISAPNP) += drivers/pnp/pnp.o
+DRIVERS-$(CONFIG_SGI_IP22) += drivers/sgi/sgi.a
+DRIVERS-$(CONFIG_VT) += drivers/video/video.o
+DRIVERS-$(CONFIG_PARIDE) += drivers/block/paride/paride.a
+DRIVERS-$(CONFIG_HAMRADIO) += drivers/net/hamradio/hamradio.o
+DRIVERS-$(CONFIG_TC) += drivers/tc/tc.a
+DRIVERS-$(CONFIG_USB) += drivers/usb/usbdrv.o
+DRIVERS-$(CONFIG_INPUT) += drivers/input/inputdrv.o
+DRIVERS-$(CONFIG_HIL) += drivers/hil/hil.o
+DRIVERS-$(CONFIG_I2O) += drivers/message/i2o/i2o.o
+DRIVERS-$(CONFIG_IRDA) += drivers/net/irda/irda.o
+DRIVERS-$(CONFIG_I2C) += drivers/i2c/i2c.o
+DRIVERS-$(CONFIG_PHONE) += drivers/telephony/telephony.o
+DRIVERS-$(CONFIG_MD) += drivers/md/mddev.o
+DRIVERS-$(CONFIG_GSC) += drivers/gsc/gscbus.o
+DRIVERS-$(CONFIG_BLUEZ) += drivers/bluetooth/bluetooth.o
+DRIVERS-$(CONFIG_HOTPLUG_PCI) += drivers/hotplug/vmlinux-obj.o
+DRIVERS-$(CONFIG_ISDN_BOOL) += drivers/isdn/vmlinux-obj.o
+
+DRIVERS := $(DRIVERS-y)
+
+
+# files removed with 'make clean'
+CLEAN_FILES = \
+	kernel/ksyms.lst include/linux/compile.h \
+	vmlinux System.map \
+	.tmp* \
+	drivers/char/consolemap_deftbl.c drivers/video/promcon_tbl.c \
+	drivers/char/conmakehash \
+	drivers/char/drm/*-mod.c \
+	drivers/pci/devlist.h drivers/pci/classlist.h drivers/pci/gen-devlist \
+	drivers/zorro/devlist.h drivers/zorro/gen-devlist \
+	drivers/sound/bin2hex drivers/sound/hex2hex \
+	drivers/atm/fore200e_mkfirm drivers/atm/{pca,sba}*{.bin,.bin1,.bin2} \
+	drivers/scsi/aic7xxx/aicasm/aicasm \
+	drivers/scsi/aic7xxx/aicasm/aicasm_gram.c \
+	drivers/scsi/aic7xxx/aicasm/aicasm_gram.h \
+	drivers/scsi/aic7xxx/aicasm/aicasm_macro_gram.c \
+	drivers/scsi/aic7xxx/aicasm/aicasm_macro_gram.h \
+	drivers/scsi/aic7xxx/aicasm/aicasm_macro_scan.c \
+	drivers/scsi/aic7xxx/aicasm/aicasm_scan.c \
+	drivers/scsi/aic7xxx/aicasm/aicdb.h \
+	drivers/scsi/aic7xxx/aicasm/y.tab.h \
+	drivers/scsi/53c700_d.h \
+	drivers/tc/lk201-map.c \
+	net/khttpd/make_times_h \
+	net/khttpd/times.h \
+	submenu*
+# directories removed with 'make clean'
+CLEAN_DIRS = \
+	modules
+
+# files removed with 'make mrproper'
+MRPROPER_FILES = \
+	include/linux/autoconf.h include/linux/version.h \
+	drivers/net/hamradio/soundmodem/sm_tbl_{afsk1200,afsk2666,fsk9600}.h \
+	drivers/net/hamradio/soundmodem/sm_tbl_{hapn4800,psk4800}.h \
+	drivers/net/hamradio/soundmodem/sm_tbl_{afsk2400_7,afsk2400_8}.h \
+	drivers/net/hamradio/soundmodem/gentbl \
+	drivers/sound/*_boot.h drivers/sound/.*.boot \
+	drivers/sound/msndinit.c \
+	drivers/sound/msndperm.c \
+	drivers/sound/pndsperm.c \
+	drivers/sound/pndspini.c \
+	drivers/atm/fore200e_*_fw.c drivers/atm/.fore200e_*.fw \
+	.version .config* config.in config.old \
+	scripts/tkparse scripts/kconfig.tk scripts/kconfig.tmp \
+	scripts/lxdialog/*.o scripts/lxdialog/lxdialog \
+	.menuconfig.log \
+	include/asm \
+	.hdepend scripts/mkdep scripts/split-include scripts/docproc \
+	$(TOPDIR)/include/linux/modversions.h \
+	kernel.spec
+
+# directories removed with 'make mrproper'
+MRPROPER_DIRS = \
+	include/config \
+	$(TOPDIR)/include/linux/modules
+
+
+include arch/$(ARCH)/Makefile
+
+# Extra cflags for kbuild 2.4.  The default is to forbid includes by kernel code
+# from user space headers.  Some UML code requires user space headers, in the
+# UML Makefiles add 'kbuild_2_4_nostdinc :=' before include Rules.make.  No
+# other kernel code should include user space headers, if you need
+# 'kbuild_2_4_nostdinc :=' or -I/usr/include for kernel code and you are not UML
+# then your code is broken!  KAO.
+
+kbuild_2_4_nostdinc	:= -nostdinc -iwithprefix include
+export kbuild_2_4_nostdinc
+
+export	CPPFLAGS CFLAGS CFLAGS_KERNEL AFLAGS AFLAGS_KERNEL
+
+export	NETWORKS DRIVERS LIBS HEAD LDFLAGS LINKFLAGS MAKEBOOT ASFLAGS
+
+.S.s:
+	$(CPP) $(AFLAGS) $(AFLAGS_KERNEL) -traditional -o $*.s $<
+.S.o:
+	$(CC) $(AFLAGS) $(AFLAGS_KERNEL) -traditional -c -o $*.o $<
+
+Version: dummy
+	@rm -f include/linux/compile.h
+
+boot: vmlinux
+	@$(MAKE) CFLAGS="$(CFLAGS) $(CFLAGS_KERNEL)" -C arch/$(ARCH)/boot
+
+vmlinux: include/linux/version.h $(CONFIGURATION) init/main.o init/version.o init/do_mounts.o linuxsubdirs
+	$(LD) $(LINKFLAGS) $(HEAD) init/main.o init/version.o init/do_mounts.o \
+		--start-group \
+		$(CORE_FILES) \
+		$(DRIVERS) \
+		$(NETWORKS) \
+		$(LIBS) \
+		--end-group \
+		-o vmlinux
+	$(NM) vmlinux | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | sort > System.map
+
+symlinks:
+	rm -f include/asm
+	( cd include ; ln -sf asm-$(ARCH) asm)
+	@if [ ! -d include/linux/modules ]; then \
+		mkdir include/linux/modules; \
+	fi
+
+oldconfig: symlinks
+	$(CONFIG_SHELL) scripts/Configure -d arch/$(ARCH)/config.in
+
+xconfig: symlinks
+	$(MAKE) -C scripts kconfig.tk
+	wish -f scripts/kconfig.tk
+
+menuconfig: include/linux/version.h symlinks
+	$(MAKE) -C scripts/lxdialog all
+	$(CONFIG_SHELL) scripts/Menuconfig arch/$(ARCH)/config.in
+
+config: symlinks
+	$(CONFIG_SHELL) scripts/Configure arch/$(ARCH)/config.in
+
+include/config/MARKER: scripts/split-include include/linux/autoconf.h
+	scripts/split-include include/linux/autoconf.h include/config
+	@ touch include/config/MARKER
+
+linuxsubdirs: $(patsubst %, _dir_%, $(SUBDIRS))
+
+$(patsubst %, _dir_%, $(SUBDIRS)) : dummy include/linux/version.h include/config/MARKER
+	$(MAKE) CFLAGS="$(CFLAGS) $(CFLAGS_KERNEL)" -C $(patsubst _dir_%, %, $@)
+
+$(TOPDIR)/include/linux/version.h: include/linux/version.h
+$(TOPDIR)/include/linux/compile.h: include/linux/compile.h
+
+newversion:
+	. scripts/mkversion > .tmpversion
+	@mv -f .tmpversion .version
+
+uts_len		:= 64
+uts_truncate	:= sed -e 's/\(.\{1,$(uts_len)\}\).*/\1/'
+
+include/linux/compile.h: $(CONFIGURATION) include/linux/version.h newversion
+	@echo -n \#`cat .version` > .ver1
+	@if [ -n "$(CONFIG_SMP)" ] ; then echo -n " SMP" >> .ver1; fi
+	@if [ -f .name ]; then  echo -n \-`cat .name` >> .ver1; fi
+	@LANG=C echo ' '`date` >> .ver1
+	@echo \#define UTS_VERSION \"`cat .ver1 | $(uts_truncate)`\" > .ver
+	@LANG=C echo \#define LINUX_COMPILE_TIME \"`date +%T`\" >> .ver
+	@echo \#define LINUX_COMPILE_BY \"`whoami`\" >> .ver
+	@echo \#define LINUX_COMPILE_HOST \"`hostname | $(uts_truncate)`\" >> .ver
+	@([ -x /bin/dnsdomainname ] && /bin/dnsdomainname > .ver1) || \
+	 ([ -x /bin/domainname ] && /bin/domainname > .ver1) || \
+	 echo > .ver1
+	@echo \#define LINUX_COMPILE_DOMAIN \"`cat .ver1 | $(uts_truncate)`\" >> .ver
+	@echo \#define LINUX_COMPILER \"`$(CC) $(CFLAGS) -v 2>&1 | tail -1`\" >> .ver
+	@mv -f .ver $@
+	@rm -f .ver1
+
+include/linux/version.h: ./Makefile
+	@expr length "$(KERNELRELEASE)" \<= $(uts_len) > /dev/null || \
+	  (echo KERNELRELEASE \"$(KERNELRELEASE)\" exceeds $(uts_len) characters >&2; false)
+	@echo \#define UTS_RELEASE \"$(KERNELRELEASE)\" > .ver
+	@echo \#define LINUX_VERSION_CODE `expr $(VERSION) \\* 65536 + $(PATCHLEVEL) \\* 256 + $(SUBLEVEL)` >> .ver
+	@echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))' >>.ver
+	@mv -f .ver $@
+
+comma	:= ,
+
+init/version.o: init/version.c include/linux/compile.h include/config/MARKER
+	$(CC) $(CFLAGS) $(CFLAGS_KERNEL) -DUTS_MACHINE='"$(ARCH)"' -DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) -c -o init/version.o init/version.c
+
+init/main.o: init/main.c include/config/MARKER
+	$(CC) $(CFLAGS) $(CFLAGS_KERNEL) $(PROFILING) -DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) -c -o $@ $<
+
+init/do_mounts.o: init/do_mounts.c include/config/MARKER
+	$(CC) $(CFLAGS) $(CFLAGS_KERNEL) $(PROFILING) -DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) -c -o $@ $<
+
+fs lib mm ipc kernel drivers net: dummy
+	$(MAKE) CFLAGS="$(CFLAGS) $(CFLAGS_KERNEL)" $(subst $@, _dir_$@, $@)
+
+TAGS: dummy
+	{ find include/asm-${ARCH} -name '*.h' -print ; \
+	find include -type d \( -name "asm-*" -o -name config \) -prune -o -name '*.h' -print ; \
+	find $(SUBDIRS) init arch/${ARCH} -name '*.[chS]' ; } | grep -v SCCS | grep -v '\.svn' | etags -
+
+# Exuberant ctags works better with -I
+tags: dummy
+	CTAGSF=`ctags --version | grep -i exuberant >/dev/null && echo "-I __initdata,__exitdata,EXPORT_SYMBOL,EXPORT_SYMBOL_NOVERS"`; \
+	ctags $$CTAGSF `find include/asm-$(ARCH) -name '*.h'` && \
+	find include -type d \( -name "asm-*" -o -name config \) -prune -o -name '*.h' -print | xargs ctags $$CTAGSF -a && \
+	find $(SUBDIRS) init -name '*.[ch]' | xargs ctags $$CTAGSF -a
+
+ifdef CONFIG_MODULES
+ifdef CONFIG_MODVERSIONS
+MODFLAGS += -DMODVERSIONS -include $(HPATH)/linux/modversions.h
+endif
+
+.PHONY: modules
+modules: $(patsubst %, _mod_%, $(SUBDIRS))
+
+.PHONY: $(patsubst %, _mod_%, $(SUBDIRS))
+$(patsubst %, _mod_%, $(SUBDIRS)) : include/linux/version.h include/config/MARKER
+	$(MAKE) -C $(patsubst _mod_%, %, $@) CFLAGS="$(CFLAGS) $(MODFLAGS)" MAKING_MODULES=1 modules
+
+.PHONY: modules_install
+modules_install: _modinst_ $(patsubst %, _modinst_%, $(SUBDIRS)) _modinst_post
+
+.PHONY: _modinst_
+_modinst_:
+	@rm -rf $(MODLIB)/kernel
+	@rm -f $(MODLIB)/build
+	@mkdir -p $(MODLIB)/kernel
+	@ln -s $(TOPDIR) $(MODLIB)/build
+
+# If System.map exists, run depmod.  This deliberately does not have a
+# dependency on System.map since that would run the dependency tree on
+# vmlinux.  This depmod is only for convenience to give the initial
+# boot a modules.dep even before / is mounted read-write.  However the
+# boot script depmod is the master version.
+ifeq "$(strip $(INSTALL_MOD_PATH))" ""
+depmod_opts	:=
+else
+depmod_opts	:= -b $(INSTALL_MOD_PATH) -r
+endif
+.PHONY: _modinst_post
+_modinst_post: _modinst_post_pcmcia
+	if [ -r System.map ]; then $(DEPMOD) -ae -F System.map $(depmod_opts) $(KERNELRELEASE); fi
+
+# Backwards compatibilty symlinks for people still using old versions
+# of pcmcia-cs with hard coded pathnames on insmod.  Remove
+# _modinst_post_pcmcia for kernel 2.4.1.
+.PHONY: _modinst_post_pcmcia
+_modinst_post_pcmcia:
+	cd $(MODLIB); \
+	mkdir -p pcmcia; \
+	find kernel -path '*/pcmcia/*' -name '*.o' | xargs -i -r ln -sf ../{} pcmcia
+
+.PHONY: $(patsubst %, _modinst_%, $(SUBDIRS))
+$(patsubst %, _modinst_%, $(SUBDIRS)) :
+	$(MAKE) -C $(patsubst _modinst_%, %, $@) modules_install
+
+# modules disabled....
+
+else
+modules modules_install: dummy
+	@echo
+	@echo "The present kernel configuration has modules disabled."
+	@echo "Type 'make config' and enable loadable module support."
+	@echo "Then build a kernel with module support enabled."
+	@echo
+	@exit 1
+endif
+
+clean:	archclean
+	find . \( -name '*.[oas]' -o -name core -o -name '.*.flags' \) -type f -print \
+		| grep -v lxdialog/ | xargs rm -f
+	rm -f $(CLEAN_FILES)
+	rm -rf $(CLEAN_DIRS)
+	$(MAKE) -C Documentation/DocBook clean
+
+mrproper: clean archmrproper
+	find . \( -size 0 -o -name .depend \) -type f -print | xargs rm -f
+	rm -f $(MRPROPER_FILES)
+	rm -rf $(MRPROPER_DIRS)
+	$(MAKE) -C Documentation/DocBook mrproper
+
+distclean: mrproper
+	find . \( -not -type d \) -and \
+		\( -name core -o -name '*.orig' -o -name '*.rej' \
+		-o -name '*~' -o -name '*.bak' -o -name '#*#' \
+		-o -name '.*.rej' -o -name '.SUMS' -o -size 0 \
+		-o -name TAGS -o -name tags \) -print | env -i xargs rm -f
+
+backup: mrproper
+	cd .. && tar cf - linux/ | gzip -9 > backup.gz
+	sync
+
+sgmldocs: 
+	chmod 755 $(TOPDIR)/scripts/docgen
+	chmod 755 $(TOPDIR)/scripts/gen-all-syms
+	chmod 755 $(TOPDIR)/scripts/kernel-doc
+	$(MAKE) -C $(TOPDIR)/Documentation/DocBook books
+
+psdocs: sgmldocs
+	$(MAKE) -C Documentation/DocBook ps
+
+pdfdocs: sgmldocs
+	$(MAKE) -C Documentation/DocBook pdf
+
+htmldocs: sgmldocs
+	$(MAKE) -C Documentation/DocBook html
+
+mandocs:
+	chmod 755 $(TOPDIR)/scripts/kernel-doc
+	chmod 755 $(TOPDIR)/scripts/split-man
+	$(MAKE) -C Documentation/DocBook man
+
+sums:
+	find . -type f -print | sort | env -i xargs sum > .SUMS
+
+dep-files: scripts/mkdep archdep include/linux/version.h
+	scripts/mkdep -- init/*.c > .depend
+	find $(FINDHPATH) \( -name SCCS -o -name .svn \) -prune -o -follow -name \*.h ! -name modversions.h -print | env -i PATH="$(PATH)" HPATH="$(HPATH)" xargs scripts/mkdep -- > .hdepend
+	$(MAKE) $(patsubst %,_sfdep_%,$(SUBDIRS)) _FASTDEP_ALL_SUB_DIRS="$(SUBDIRS)"
+ifdef CONFIG_MODVERSIONS
+	$(MAKE) update-modverfile
+endif
+
+ifdef CONFIG_MODVERSIONS
+MODVERFILE := $(TOPDIR)/include/linux/modversions.h
+else
+MODVERFILE :=
+endif
+export	MODVERFILE
+
+depend dep: dep-files
+
+checkconfig:
+	find * -name '*.[hcS]' -type f -print | sort | xargs $(PERL) -w scripts/checkconfig.pl
+
+checkhelp:
+	find * -name [cC]onfig.in -print | sort | xargs $(PERL) -w scripts/checkhelp.pl
+
+checkincludes:
+	find * -name '*.[hcS]' -type f -print | sort | xargs $(PERL) -w scripts/checkincludes.pl
+
+ifdef CONFIGURATION
+..$(CONFIGURATION):
+	@echo
+	@echo "You have a bad or nonexistent" .$(CONFIGURATION) ": running 'make" $(CONFIGURATION)"'"
+	@echo
+	$(MAKE) $(CONFIGURATION)
+	@echo
+	@echo "Successful. Try re-making (ignore the error that follows)"
+	@echo
+	exit 1
+
+#dummy: ..$(CONFIGURATION)
+dummy:
+
+else
+
+dummy:
+
+endif
+
+include Rules.make
+
+#
+# This generates dependencies for the .h files.
+#
+
+scripts/mkdep: scripts/mkdep.c
+	$(HOSTCC) $(HOSTCFLAGS) -o scripts/mkdep scripts/mkdep.c
+
+scripts/split-include: scripts/split-include.c
+	$(HOSTCC) $(HOSTCFLAGS) -o scripts/split-include scripts/split-include.c
+
+#
+# RPM target
+#
+#	If you do a make spec before packing the tarball you can rpm -ta it
+#
+spec:
+	. scripts/mkspec >kernel.spec
+
+#
+#	Build a tar ball, generate an rpm from it and pack the result
+#	There arw two bits of magic here
+#	1) The use of /. to avoid tar packing just the symlink
+#	2) Removing the .dep files as they have source paths in them that
+#	   will become invalid
+#
+rpm:	clean spec
+	find . \( -size 0 -o -name .depend -o -name .hdepend \) -type f -print | xargs rm -f
+	set -e; \
+	cd $(TOPDIR)/.. ; \
+	ln -sf $(TOPDIR) $(KERNELPATH) ; \
+	tar -cvz --exclude CVS -f $(KERNELPATH).tar.gz $(KERNELPATH)/. ; \
+	rm $(KERNELPATH) ; \
+	cd $(TOPDIR) ; \
+	. scripts/mkversion > .version ; \
+	rpm -ta $(TOPDIR)/../$(KERNELPATH).tar.gz ; \
+	rm $(TOPDIR)/../$(KERNELPATH).tar.gz
diff -urNd -urNd linux-2.4.20/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/mm/CVS/Entries
--- linux-2.4.20/mm/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/mm/CVS/Entries	2005-01-06 23:07:43.000000000 -0600
@@ -0,0 +1,22 @@
+/.cvsignore/1.2/Tue Mar 17 22:17:54 1998/-ko/Tlinux_2_4_20
+/Makefile/1.10.2.1/Wed Jun 26 22:36:48 2002/-ko/Tlinux_2_4_20
+/bootmem.c/1.14.2.3/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/filemap.c/1.74.2.6/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/highmem.c/1.26.2.3/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/memory.c/1.59.2.6/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/mlock.c/1.20/Fri Oct 19 01:25:06 2001/-ko/Tlinux_2_4_20
+/mmap.c/1.49.2.4/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/mprotect.c/1.21.2.1/Wed Jun 26 22:36:48 2002/-ko/Tlinux_2_4_20
+/mremap.c/1.26/Fri Oct 19 01:25:06 2001/-ko/Tlinux_2_4_20
+/numa.c/1.8/Fri Oct 19 01:25:06 2001/-ko/Tlinux_2_4_20
+/oom_kill.c/1.8.2.2/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/page_alloc.c/1.61.2.4/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/page_io.c/1.25.2.2/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/shmem.c/1.13.2.6/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/slab.c/1.41.2.3/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/swap.c/1.18.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/swap_state.c/1.40.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/swapfile.c/1.48.2.3/Wed Jun 26 22:36:48 2002/-ko/Tlinux_2_4_20
+/vmalloc.c/1.28.2.3/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/vmscan.c/1.70.2.5/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/mm/CVS/Repository
--- linux-2.4.20/mm/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/mm/CVS/Repository	2005-01-06 23:07:41.000000000 -0600
@@ -0,0 +1 @@
+linux/mm
diff -urNd -urNd linux-2.4.20/mm/CVS/Root linux-2.4.20-mipscvs-20050106/mm/CVS/Root
--- linux-2.4.20/mm/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/mm/CVS/Root	2005-01-06 23:07:41.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/mm/CVS/Tag
--- linux-2.4.20/mm/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/mm/CVS/Tag	2005-01-06 23:07:43.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/mm/.cvsignore linux-2.4.20-mipscvs-20050106/mm/.cvsignore
--- linux-2.4.20/mm/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/mm/.cvsignore	1998-03-17 16:17:54.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/mm/memory.c linux-2.4.20-mipscvs-20050106/mm/memory.c
--- linux-2.4.20/mm/memory.c	2002-11-28 17:53:15.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/mm/memory.c	2003-01-11 11:53:18.000000000 -0600
@@ -923,6 +923,7 @@
 	flush_page_to_ram(new_page);
 	flush_cache_page(vma, address);
 	establish_pte(vma, address, page_table, pte_mkwrite(pte_mkdirty(mk_pte(new_page, vma->vm_page_prot))));
+	flush_icache_page(vma, new_page);
 }
 
 /*
diff -urNd -urNd linux-2.4.20/net/802/CVS/Entries linux-2.4.20-mipscvs-20050106/net/802/CVS/Entries
--- linux-2.4.20/net/802/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/802/CVS/Entries	2005-01-06 23:08:09.000000000 -0600
@@ -0,0 +1,18 @@
+/.cvsignore/1.4/Mon Dec  6 23:13:21 1999/-ko/Tlinux_2_4_20
+/Makefile/1.7.2.1/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
+/TODO/1.2/Wed Jun 13 17:28:18 2001/-ko/Tlinux_2_4_20
+/cl2llc.c/1.4/Wed Jun 13 17:28:18 2001/-ko/Tlinux_2_4_20
+/cl2llc.pre/1.4.2.1/Tue Sep 10 15:32:56 2002/-ko/Tlinux_2_4_20
+/fc.c/1.4/Fri Feb  4 07:41:04 2000/-ko/Tlinux_2_4_20
+/fddi.c/1.6/Wed Jan 10 05:27:36 2001/-ko/Tlinux_2_4_20
+/hippi.c/1.4/Wed Aug 22 03:25:17 2001/-ko/Tlinux_2_4_20
+/llc_macinit.c/1.7/Fri Mar  9 20:34:58 2001/-ko/Tlinux_2_4_20
+/llc_sendpdu.c/1.5/Wed Jun 13 17:28:18 2001/-ko/Tlinux_2_4_20
+/llc_utility.c/1.1.1.1/Sun Jun  1 03:16:24 1997/-ko/Tlinux_2_4_20
+/p8022.c/1.6/Thu Nov 23 02:00:58 2000/-ko/Tlinux_2_4_20
+/p8023.c/1.3/Fri Jul 21 22:01:01 2000/-ko/Tlinux_2_4_20
+/psnap.c/1.6/Thu Nov 23 02:00:58 2000/-ko/Tlinux_2_4_20
+/sysctl_net_802.c/1.2/Wed Mar 18 17:19:49 1998/-ko/Tlinux_2_4_20
+/tr.c/1.15.4.1/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
+D/pseudo////
+D/transit////
diff -urNd -urNd linux-2.4.20/net/802/CVS/Repository linux-2.4.20-mipscvs-20050106/net/802/CVS/Repository
--- linux-2.4.20/net/802/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/802/CVS/Repository	2005-01-06 23:07:43.000000000 -0600
@@ -0,0 +1 @@
+linux/net/802
diff -urNd -urNd linux-2.4.20/net/802/CVS/Root linux-2.4.20-mipscvs-20050106/net/802/CVS/Root
--- linux-2.4.20/net/802/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/802/CVS/Root	2005-01-06 23:07:43.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/802/CVS/Tag linux-2.4.20-mipscvs-20050106/net/802/CVS/Tag
--- linux-2.4.20/net/802/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/802/CVS/Tag	2005-01-06 23:07:44.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/802/.cvsignore linux-2.4.20-mipscvs-20050106/net/802/.cvsignore
--- linux-2.4.20/net/802/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/802/.cvsignore	1999-12-06 17:13:21.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/net/802/pseudo/CVS/Entries linux-2.4.20-mipscvs-20050106/net/802/pseudo/CVS/Entries
--- linux-2.4.20/net/802/pseudo/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/802/pseudo/CVS/Entries	2005-01-06 23:07:44.000000000 -0600
@@ -0,0 +1,10 @@
+/Makefile/1.1.1.1/Sun Jun  1 03:16:24 1997/-ko/Tlinux_2_4_20
+/actionnm.awk/1.1.1.1/Sun Jun  1 03:16:24 1997/-ko/Tlinux_2_4_20
+/actionnm.h/1.1.1.1/Sun Jun  1 03:16:24 1997/-ko/Tlinux_2_4_20
+/compile.awk/1.1.1.1/Sun Jun  1 03:16:24 1997/-ko/Tlinux_2_4_20
+/opcd2num.sed/1.1.1.1/Sun Jun  1 03:16:24 1997/-ko/Tlinux_2_4_20
+/opcodes/1.1.1.1/Sun Jun  1 03:16:24 1997/-ko/Tlinux_2_4_20
+/opcodesnm.h/1.1.1.1/Sun Jun  1 03:16:24 1997/-ko/Tlinux_2_4_20
+/pseudocode/1.2/Wed Jun 13 17:28:18 2001/-ko/Tlinux_2_4_20
+/pseudocode.h/1.1.1.1/Sun Jun  1 03:16:24 1997/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/net/802/pseudo/CVS/Repository linux-2.4.20-mipscvs-20050106/net/802/pseudo/CVS/Repository
--- linux-2.4.20/net/802/pseudo/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/802/pseudo/CVS/Repository	2005-01-06 23:07:44.000000000 -0600
@@ -0,0 +1 @@
+linux/net/802/pseudo
diff -urNd -urNd linux-2.4.20/net/802/pseudo/CVS/Root linux-2.4.20-mipscvs-20050106/net/802/pseudo/CVS/Root
--- linux-2.4.20/net/802/pseudo/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/802/pseudo/CVS/Root	2005-01-06 23:07:44.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/802/pseudo/CVS/Tag linux-2.4.20-mipscvs-20050106/net/802/pseudo/CVS/Tag
--- linux-2.4.20/net/802/pseudo/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/802/pseudo/CVS/Tag	2005-01-06 23:07:44.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/802/transit/CVS/Entries linux-2.4.20-mipscvs-20050106/net/802/transit/CVS/Entries
--- linux-2.4.20/net/802/transit/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/802/transit/CVS/Entries	2005-01-06 23:07:44.000000000 -0600
@@ -0,0 +1,7 @@
+/Makefile/1.2/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
+/compile.awk/1.1.1.1/Sun Jun  1 03:16:24 1997/-ko/Tlinux_2_4_20
+/pdutr.h/1.2/Tue Mar 17 22:18:05 1998/-ko/Tlinux_2_4_20
+/pdutr.pre/1.2/Wed Jun 13 17:28:18 2001/-ko/Tlinux_2_4_20
+/timertr.h/1.2/Tue Mar 17 22:18:05 1998/-ko/Tlinux_2_4_20
+/timertr.pre/1.1.1.1/Sun Jun  1 03:16:24 1997/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/net/802/transit/CVS/Repository linux-2.4.20-mipscvs-20050106/net/802/transit/CVS/Repository
--- linux-2.4.20/net/802/transit/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/802/transit/CVS/Repository	2005-01-06 23:07:44.000000000 -0600
@@ -0,0 +1 @@
+linux/net/802/transit
diff -urNd -urNd linux-2.4.20/net/802/transit/CVS/Root linux-2.4.20-mipscvs-20050106/net/802/transit/CVS/Root
--- linux-2.4.20/net/802/transit/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/802/transit/CVS/Root	2005-01-06 23:07:44.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/802/transit/CVS/Tag linux-2.4.20-mipscvs-20050106/net/802/transit/CVS/Tag
--- linux-2.4.20/net/802/transit/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/802/transit/CVS/Tag	2005-01-06 23:07:44.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/8021q/CVS/Entries linux-2.4.20-mipscvs-20050106/net/8021q/CVS/Entries
--- linux-2.4.20/net/8021q/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/8021q/CVS/Entries	2005-01-06 23:07:44.000000000 -0600
@@ -0,0 +1,8 @@
+/.cvsignore/1.1/Thu Nov 15 16:02:31 2001/-ko/Tlinux_2_4_20
+/Makefile/1.1/Tue Nov  6 07:56:16 2001/-ko/Tlinux_2_4_20
+/vlan.c/1.1.2.4/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/vlan.h/1.1.2.1/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
+/vlan_dev.c/1.1.2.4/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/vlanproc.c/1.2.2.3/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/vlanproc.h/1.1/Tue Nov  6 07:56:16 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/net/8021q/CVS/Repository linux-2.4.20-mipscvs-20050106/net/8021q/CVS/Repository
--- linux-2.4.20/net/8021q/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/8021q/CVS/Repository	2005-01-06 23:07:44.000000000 -0600
@@ -0,0 +1 @@
+linux/net/8021q
diff -urNd -urNd linux-2.4.20/net/8021q/CVS/Root linux-2.4.20-mipscvs-20050106/net/8021q/CVS/Root
--- linux-2.4.20/net/8021q/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/8021q/CVS/Root	2005-01-06 23:07:44.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/8021q/CVS/Tag linux-2.4.20-mipscvs-20050106/net/8021q/CVS/Tag
--- linux-2.4.20/net/8021q/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/8021q/CVS/Tag	2005-01-06 23:07:44.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/8021q/.cvsignore linux-2.4.20-mipscvs-20050106/net/8021q/.cvsignore
--- linux-2.4.20/net/8021q/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/8021q/.cvsignore	2001-11-15 10:02:31.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/net/appletalk/CVS/Entries linux-2.4.20-mipscvs-20050106/net/appletalk/CVS/Entries
--- linux-2.4.20/net/appletalk/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/appletalk/CVS/Entries	2005-01-06 23:07:44.000000000 -0600
@@ -0,0 +1,6 @@
+/.cvsignore/1.4/Mon Dec  6 23:13:21 1999/-ko/Tlinux_2_4_20
+/Makefile/1.4/Fri Mar  9 20:34:58 2001/-ko/Tlinux_2_4_20
+/aarp.c/1.18/Mon Nov  5 20:16:33 2001/-ko/Tlinux_2_4_20
+/ddp.c/1.30/Fri Oct 19 01:25:07 2001/-ko/Tlinux_2_4_20
+/sysctl_net_atalk.c/1.5/Tue Aug 25 09:23:41 1998/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/net/appletalk/CVS/Repository linux-2.4.20-mipscvs-20050106/net/appletalk/CVS/Repository
--- linux-2.4.20/net/appletalk/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/appletalk/CVS/Repository	2005-01-06 23:07:44.000000000 -0600
@@ -0,0 +1 @@
+linux/net/appletalk
diff -urNd -urNd linux-2.4.20/net/appletalk/CVS/Root linux-2.4.20-mipscvs-20050106/net/appletalk/CVS/Root
--- linux-2.4.20/net/appletalk/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/appletalk/CVS/Root	2005-01-06 23:07:44.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/appletalk/CVS/Tag linux-2.4.20-mipscvs-20050106/net/appletalk/CVS/Tag
--- linux-2.4.20/net/appletalk/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/appletalk/CVS/Tag	2005-01-06 23:07:44.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/appletalk/.cvsignore linux-2.4.20-mipscvs-20050106/net/appletalk/.cvsignore
--- linux-2.4.20/net/appletalk/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/appletalk/.cvsignore	1999-12-06 17:13:21.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/net/atm/CVS/Entries linux-2.4.20-mipscvs-20050106/net/atm/CVS/Entries
--- linux-2.4.20/net/atm/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/atm/CVS/Entries	2005-01-06 23:07:45.000000000 -0600
@@ -0,0 +1,30 @@
+/.cvsignore/1.1/Mon Dec  6 23:13:21 1999/-ko/Tlinux_2_4_20
+/Makefile/1.8.2.1/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
+/addr.c/1.4/Wed Jun 13 17:28:18 2001/-ko/Tlinux_2_4_20
+/addr.h/1.3/Wed Jun 13 17:28:18 2001/-ko/Tlinux_2_4_20
+/atm_misc.c/1.3/Mon Mar 27 23:54:43 2000/-ko/Tlinux_2_4_20
+/br2684.c/1.1.2.1/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
+/clip.c/1.10/Wed Aug 22 03:25:18 2001/-ko/Tlinux_2_4_20
+/common.c/1.14.2.1/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
+/common.h/1.3/Sun Jul  9 02:54:56 2000/-ko/Tlinux_2_4_20
+/ipcommon.c/1.3/Sun Jul  9 02:54:56 2000/-ko/Tlinux_2_4_20
+/ipcommon.h/1.3/Sun Jul  9 02:54:56 2000/-ko/Tlinux_2_4_20
+/lec.c/1.13/Mon Nov  5 20:16:33 2001/-ko/Tlinux_2_4_20
+/lec.h/1.5/Fri Mar  9 20:34:58 2001/-ko/Tlinux_2_4_20
+/lec_arpc.h/1.1/Sat Oct  9 00:01:50 1999/-ko/Tlinux_2_4_20
+/mpc.c/1.8/Mon Nov  5 20:16:33 2001/-ko/Tlinux_2_4_20
+/mpc.h/1.1/Sat Oct  9 00:01:50 1999/-ko/Tlinux_2_4_20
+/mpoa_caches.c/1.3/Fri Apr 28 01:09:59 2000/-ko/Tlinux_2_4_20
+/mpoa_caches.h/1.2/Fri Apr 28 01:09:59 2000/-ko/Tlinux_2_4_20
+/mpoa_proc.c/1.9/Thu Aug 23 22:24:51 2001/-ko/Tlinux_2_4_20
+/pppoatm.c/1.1.2.1/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
+/proc.c/1.11.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/protocols.h/1.1/Sat Oct  9 00:01:50 1999/-ko/Tlinux_2_4_20
+/pvc.c/1.6/Wed Jun 13 17:28:18 2001/-ko/Tlinux_2_4_20
+/raw.c/1.5/Fri Apr 28 01:09:59 2000/-ko/Tlinux_2_4_20
+/resources.c/1.5.2.2/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/resources.h/1.2/Fri Feb  4 07:41:04 2000/-ko/Tlinux_2_4_20
+/signaling.c/1.7/Wed Aug 22 03:25:18 2001/-ko/Tlinux_2_4_20
+/signaling.h/1.4/Sun Jul  9 02:54:56 2000/-ko/Tlinux_2_4_20
+/svc.c/1.8/Wed Jun 13 17:28:18 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/net/atm/CVS/Repository linux-2.4.20-mipscvs-20050106/net/atm/CVS/Repository
--- linux-2.4.20/net/atm/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/atm/CVS/Repository	2005-01-06 23:07:44.000000000 -0600
@@ -0,0 +1 @@
+linux/net/atm
diff -urNd -urNd linux-2.4.20/net/atm/CVS/Root linux-2.4.20-mipscvs-20050106/net/atm/CVS/Root
--- linux-2.4.20/net/atm/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/atm/CVS/Root	2005-01-06 23:07:44.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/atm/CVS/Tag linux-2.4.20-mipscvs-20050106/net/atm/CVS/Tag
--- linux-2.4.20/net/atm/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/atm/CVS/Tag	2005-01-06 23:07:45.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/atm/.cvsignore linux-2.4.20-mipscvs-20050106/net/atm/.cvsignore
--- linux-2.4.20/net/atm/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/atm/.cvsignore	1999-12-06 17:13:21.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/net/ax25/CVS/Entries linux-2.4.20-mipscvs-20050106/net/ax25/CVS/Entries
--- linux-2.4.20/net/ax25/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ax25/CVS/Entries	2005-01-06 23:07:46.000000000 -0600
@@ -0,0 +1,22 @@
+/.cvsignore/1.4/Mon Dec  6 23:13:21 1999/-ko/Tlinux_2_4_20
+/Config.in/1.4/Thu Nov 23 02:00:58 2000/-ko/Tlinux_2_4_20
+/Makefile/1.3/Fri Mar  9 20:34:58 2001/-ko/Tlinux_2_4_20
+/af_ax25.c/1.33.2.2/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
+/ax25_addr.c/1.5/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
+/ax25_dev.c/1.5/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
+/ax25_ds_in.c/1.6/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
+/ax25_ds_subr.c/1.7/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
+/ax25_ds_timer.c/1.5/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
+/ax25_iface.c/1.5/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
+/ax25_in.c/1.12/Fri Oct 19 01:25:07 2001/-ko/Tlinux_2_4_20
+/ax25_ip.c/1.13/Tue Nov  6 00:55:32 2001/-ko/Tlinux_2_4_20
+/ax25_out.c/1.12/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
+/ax25_route.c/1.11/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
+/ax25_std_in.c/1.5/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
+/ax25_std_subr.c/1.4/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
+/ax25_std_timer.c/1.4/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
+/ax25_subr.c/1.10/Wed Aug 22 03:25:18 2001/-ko/Tlinux_2_4_20
+/ax25_timer.c/1.7/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
+/ax25_uid.c/1.7/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
+/sysctl_net_ax25.c/1.6/Fri Mar  9 20:34:58 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/net/ax25/CVS/Repository linux-2.4.20-mipscvs-20050106/net/ax25/CVS/Repository
--- linux-2.4.20/net/ax25/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ax25/CVS/Repository	2005-01-06 23:07:45.000000000 -0600
@@ -0,0 +1 @@
+linux/net/ax25
diff -urNd -urNd linux-2.4.20/net/ax25/CVS/Root linux-2.4.20-mipscvs-20050106/net/ax25/CVS/Root
--- linux-2.4.20/net/ax25/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ax25/CVS/Root	2005-01-06 23:07:45.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/ax25/CVS/Tag linux-2.4.20-mipscvs-20050106/net/ax25/CVS/Tag
--- linux-2.4.20/net/ax25/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ax25/CVS/Tag	2005-01-06 23:07:46.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/ax25/.cvsignore linux-2.4.20-mipscvs-20050106/net/ax25/.cvsignore
--- linux-2.4.20/net/ax25/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ax25/.cvsignore	1999-12-06 17:13:21.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/net/bluetooth/bnep/CVS/Entries linux-2.4.20-mipscvs-20050106/net/bluetooth/bnep/CVS/Entries
--- linux-2.4.20/net/bluetooth/bnep/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/bluetooth/bnep/CVS/Entries	2005-01-06 23:07:46.000000000 -0600
@@ -0,0 +1,10 @@
+/.cvsignore/1.1.2.1/Wed Sep 11 13:00:34 2002/-ko/Tlinux_2_4_20
+/Config.in/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/bnep.h/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/core.c/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/crc32.c/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/crc32.h/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/netdev.c/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/sock.c/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/net/bluetooth/bnep/CVS/Repository linux-2.4.20-mipscvs-20050106/net/bluetooth/bnep/CVS/Repository
--- linux-2.4.20/net/bluetooth/bnep/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/bluetooth/bnep/CVS/Repository	2005-01-06 23:07:46.000000000 -0600
@@ -0,0 +1 @@
+linux/net/bluetooth/bnep
diff -urNd -urNd linux-2.4.20/net/bluetooth/bnep/CVS/Root linux-2.4.20-mipscvs-20050106/net/bluetooth/bnep/CVS/Root
--- linux-2.4.20/net/bluetooth/bnep/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/bluetooth/bnep/CVS/Root	2005-01-06 23:07:46.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/bluetooth/bnep/CVS/Tag linux-2.4.20-mipscvs-20050106/net/bluetooth/bnep/CVS/Tag
--- linux-2.4.20/net/bluetooth/bnep/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/bluetooth/bnep/CVS/Tag	2005-01-06 23:07:46.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/bluetooth/bnep/.cvsignore linux-2.4.20-mipscvs-20050106/net/bluetooth/bnep/.cvsignore
--- linux-2.4.20/net/bluetooth/bnep/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/bluetooth/bnep/.cvsignore	2002-09-11 08:00:34.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/net/bluetooth/CVS/Entries linux-2.4.20-mipscvs-20050106/net/bluetooth/CVS/Entries
--- linux-2.4.20/net/bluetooth/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/bluetooth/CVS/Entries	2005-01-06 23:08:09.000000000 -0600
@@ -0,0 +1,13 @@
+/.cvsignore/1.1.2.1/Mon Dec 31 03:33:20 2001/-ko/Tlinux_2_4_20
+/Config.in/1.1.2.2/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/Makefile/1.1.2.2/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/af_bluetooth.c/1.2.2.3/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/hci_conn.c/1.1.2.3/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/hci_core.c/1.4.2.4/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/hci_event.c/1.1.2.2/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/hci_sock.c/1.2.2.2/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/l2cap.c/1.1.2.3/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/lib.c/1.2.2.2/Tue Sep 10 15:32:56 2002/-ko/Tlinux_2_4_20
+/sco.c/1.1.2.2/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/syms.c/1.2.2.1/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
+D/bnep////
diff -urNd -urNd linux-2.4.20/net/bluetooth/CVS/Repository linux-2.4.20-mipscvs-20050106/net/bluetooth/CVS/Repository
--- linux-2.4.20/net/bluetooth/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/bluetooth/CVS/Repository	2005-01-06 23:07:46.000000000 -0600
@@ -0,0 +1 @@
+linux/net/bluetooth
diff -urNd -urNd linux-2.4.20/net/bluetooth/CVS/Root linux-2.4.20-mipscvs-20050106/net/bluetooth/CVS/Root
--- linux-2.4.20/net/bluetooth/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/bluetooth/CVS/Root	2005-01-06 23:07:46.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/bluetooth/CVS/Tag linux-2.4.20-mipscvs-20050106/net/bluetooth/CVS/Tag
--- linux-2.4.20/net/bluetooth/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/bluetooth/CVS/Tag	2005-01-06 23:07:46.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/bluetooth/.cvsignore linux-2.4.20-mipscvs-20050106/net/bluetooth/.cvsignore
--- linux-2.4.20/net/bluetooth/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/bluetooth/.cvsignore	2001-12-30 21:33:20.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/net/bridge/CVS/Entries linux-2.4.20-mipscvs-20050106/net/bridge/CVS/Entries
--- linux-2.4.20/net/bridge/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/bridge/CVS/Entries	2005-01-06 23:08:09.000000000 -0600
@@ -0,0 +1,18 @@
+/.cvsignore/1.4/Mon Dec  6 23:13:22 1999/-ko/Tlinux_2_4_20
+/Makefile/1.4/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
+/br.c/1.20.2.2/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/br_device.c/1.5.2.1/Tue Feb 26 06:00:35 2002/-ko/Tlinux_2_4_20
+/br_fdb.c/1.3.4.1/Tue Feb 26 06:00:35 2002/-ko/Tlinux_2_4_20
+/br_forward.c/1.4.2.1/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
+/br_if.c/1.5.4.3/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/br_input.c/1.8.2.2/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
+/br_ioctl.c/1.4/Tue Nov 28 03:59:04 2000/-ko/Tlinux_2_4_20
+/br_notify.c/1.2/Thu Mar  2 02:37:14 2000/-ko/Tlinux_2_4_20
+/br_private.h/1.6.2.1/Tue Feb 26 06:00:35 2002/-ko/Tlinux_2_4_20
+/br_private_stp.h/1.3/Fri Mar  9 20:34:58 2001/-ko/Tlinux_2_4_20
+/br_private_timer.h/1.1/Thu Feb 24 00:13:22 2000/-ko/Tlinux_2_4_20
+/br_stp.c/1.4.4.1/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/br_stp_bpdu.c/1.3/Sun Dec  2 11:35:00 2001/-ko/Tlinux_2_4_20
+/br_stp_if.c/1.4/Wed Jun 13 17:28:18 2001/-ko/Tlinux_2_4_20
+/br_stp_timer.c/1.3/Fri May 12 21:06:53 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/net/bridge/CVS/Repository linux-2.4.20-mipscvs-20050106/net/bridge/CVS/Repository
--- linux-2.4.20/net/bridge/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/bridge/CVS/Repository	2005-01-06 23:07:46.000000000 -0600
@@ -0,0 +1 @@
+linux/net/bridge
diff -urNd -urNd linux-2.4.20/net/bridge/CVS/Root linux-2.4.20-mipscvs-20050106/net/bridge/CVS/Root
--- linux-2.4.20/net/bridge/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/bridge/CVS/Root	2005-01-06 23:07:46.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/bridge/CVS/Tag linux-2.4.20-mipscvs-20050106/net/bridge/CVS/Tag
--- linux-2.4.20/net/bridge/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/bridge/CVS/Tag	2005-01-06 23:07:46.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/bridge/.cvsignore linux-2.4.20-mipscvs-20050106/net/bridge/.cvsignore
--- linux-2.4.20/net/bridge/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/bridge/.cvsignore	1999-12-06 17:13:22.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/net/core/CVS/Entries linux-2.4.20-mipscvs-20050106/net/core/CVS/Entries
--- linux-2.4.20/net/core/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/core/CVS/Entries	2005-01-06 23:07:48.000000000 -0600
@@ -0,0 +1,21 @@
+/.cvsignore/1.4/Mon Dec  6 23:13:22 1999/-ko/Tlinux_2_4_20
+/Makefile/1.9.2.1/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
+/datagram.c/1.14.2.1/Sat Dec 29 05:38:26 2001/-ko/Tlinux_2_4_20
+/dev.c/1.48.2.4/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/dev_mcast.c/1.10/Thu Nov 23 02:01:01 2000/-ko/Tlinux_2_4_20
+/dst.c/1.10.2.1/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
+/dv.c/1.5/Tue Nov  6 07:56:16 2001/-ko/Tlinux_2_4_20
+/filter.c/1.8/Thu Jun 14 04:24:31 2001/-ko/Tlinux_2_4_20
+/iovec.c/1.17/Fri Oct 19 01:25:07 2001/-ko/Tlinux_2_4_20
+/neighbour.c/1.18.2.2/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
+/netfilter.c/1.12.2.2/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
+/pktgen.c/1.1.2.2/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
+/profile.c/1.6/Sun Jun 25 01:20:06 2000/-ko/Tlinux_2_4_20
+/rtnetlink.c/1.12.2.3/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
+/scm.c/1.13.4.1/Sat Dec 29 05:38:26 2001/-ko/Tlinux_2_4_20
+/skbuff.c/1.27.2.2/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
+/sock.c/1.33.2.2/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
+/sysctl_net_core.c/1.8.4.1/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
+/utils.c/1.2/Sat Oct  9 00:01:51 1999/-ko/Tlinux_2_4_20
+/wireless.c/1.1.2.2/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/net/core/CVS/Repository linux-2.4.20-mipscvs-20050106/net/core/CVS/Repository
--- linux-2.4.20/net/core/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/core/CVS/Repository	2005-01-06 23:07:46.000000000 -0600
@@ -0,0 +1 @@
+linux/net/core
diff -urNd -urNd linux-2.4.20/net/core/CVS/Root linux-2.4.20-mipscvs-20050106/net/core/CVS/Root
--- linux-2.4.20/net/core/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/core/CVS/Root	2005-01-06 23:07:46.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/core/CVS/Tag linux-2.4.20-mipscvs-20050106/net/core/CVS/Tag
--- linux-2.4.20/net/core/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/core/CVS/Tag	2005-01-06 23:07:48.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/core/.cvsignore linux-2.4.20-mipscvs-20050106/net/core/.cvsignore
--- linux-2.4.20/net/core/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/core/.cvsignore	1999-12-06 17:13:22.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/net/CVS/Entries linux-2.4.20-mipscvs-20050106/net/CVS/Entries
--- linux-2.4.20/net/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/CVS/Entries	2005-01-06 23:08:09.000000000 -0600
@@ -0,0 +1,34 @@
+/.cvsignore/1.5/Sat Mar 25 22:41:21 2000/-ko/Tlinux_2_4_20
+/Config.in/1.28.2.3/Wed Jun 26 22:36:48 2002/-ko/Tlinux_2_4_20
+/Makefile/1.21.2.3/Wed Jun 26 22:36:48 2002/-ko/Tlinux_2_4_20
+/README/1.12.2.1/Sat Dec 29 05:38:25 2001/-ko/Tlinux_2_4_20
+/TUNABLE/1.4/Sun Jun 13 16:37:16 1999/-ko/Tlinux_2_4_20
+/netsyms.c/1.53.2.5/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
+/socket.c/1.46.2.3/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
+/sysctl_net.c/1.9/Wed Jun 13 17:28:18 2001/-ko/Tlinux_2_4_20
+D/802////
+D/8021q////
+D/appletalk////
+D/atm////
+D/ax25////
+D/bluetooth////
+D/bridge////
+D/core////
+D/decnet////
+D/econet////
+D/ethernet////
+D/ipv4////
+D/ipv6////
+D/ipx////
+D/irda////
+D/khttpd////
+D/lapb////
+D/netlink////
+D/netrom////
+D/packet////
+D/rose////
+D/sched////
+D/sunrpc////
+D/unix////
+D/wanrouter////
+D/x25////
diff -urNd -urNd linux-2.4.20/net/CVS/Repository linux-2.4.20-mipscvs-20050106/net/CVS/Repository
--- linux-2.4.20/net/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/CVS/Repository	2005-01-06 23:07:43.000000000 -0600
@@ -0,0 +1 @@
+linux/net
diff -urNd -urNd linux-2.4.20/net/CVS/Root linux-2.4.20-mipscvs-20050106/net/CVS/Root
--- linux-2.4.20/net/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/CVS/Root	2005-01-06 23:07:43.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/CVS/Tag linux-2.4.20-mipscvs-20050106/net/CVS/Tag
--- linux-2.4.20/net/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/CVS/Tag	2005-01-06 23:07:43.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/.cvsignore linux-2.4.20-mipscvs-20050106/net/.cvsignore
--- linux-2.4.20/net/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/.cvsignore	2000-03-25 16:41:21.000000000 -0600
@@ -0,0 +1,10 @@
+! RCS     SCCS    CVS     CVS.adm
+RCSLOG  cvslog.*
+tags    TAGS
+.make.state     .nse_depinfo
+*~      #*      .#*     ,*      _$*     *$
+*.old   *.bak   *.BAK   *.orig  *.rej   .del-*
+*.a     *.olb   *.o     *.obj   *.so    *.exe
+*.Z     *.elc   *.ln
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/net/decnet/CVS/Entries linux-2.4.20-mipscvs-20050106/net/decnet/CVS/Entries
--- linux-2.4.20/net/decnet/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/decnet/CVS/Entries	2005-01-06 23:08:09.000000000 -0600
@@ -0,0 +1,17 @@
+/.cvsignore/1.1/Mon Dec  6 23:13:22 1999/-ko/Tlinux_2_4_20
+/Config.in/1.7/Tue Nov 28 03:59:04 2000/-ko/Tlinux_2_4_20
+/Makefile/1.7/Wed Jan 31 22:22:35 2001/-ko/Tlinux_2_4_20
+/README/1.4.4.1/Sat Dec 29 05:38:26 2001/-ko/Tlinux_2_4_20
+/TODO/1.8/Wed Jan 31 22:22:35 2001/-ko/Tlinux_2_4_20
+/af_decnet.c/1.23.2.2/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
+/dn_dev.c/1.12.2.1/Sat Dec 29 05:38:26 2001/-ko/Tlinux_2_4_20
+/dn_fib.c/1.7.2.1/Sat Dec 29 05:38:26 2001/-ko/Tlinux_2_4_20
+/dn_neigh.c/1.8/Wed Jan 31 22:22:35 2001/-ko/Tlinux_2_4_20
+/dn_nsp_in.c/1.13/Sun Dec  2 11:35:01 2001/-ko/Tlinux_2_4_20
+/dn_nsp_out.c/1.9/Wed Jan 31 22:22:35 2001/-ko/Tlinux_2_4_20
+/dn_route.c/1.18.2.2/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
+/dn_rules.c/1.2.2.1/Sat Dec 29 05:38:26 2001/-ko/Tlinux_2_4_20
+/dn_table.c/1.5.2.1/Sat Dec 29 05:38:26 2001/-ko/Tlinux_2_4_20
+/dn_timer.c/1.5/Wed Jan 31 22:22:35 2001/-ko/Tlinux_2_4_20
+/sysctl_net_decnet.c/1.10/Sun Dec  2 11:35:01 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/net/decnet/CVS/Repository linux-2.4.20-mipscvs-20050106/net/decnet/CVS/Repository
--- linux-2.4.20/net/decnet/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/decnet/CVS/Repository	2005-01-06 23:07:48.000000000 -0600
@@ -0,0 +1 @@
+linux/net/decnet
diff -urNd -urNd linux-2.4.20/net/decnet/CVS/Root linux-2.4.20-mipscvs-20050106/net/decnet/CVS/Root
--- linux-2.4.20/net/decnet/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/decnet/CVS/Root	2005-01-06 23:07:48.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/decnet/CVS/Tag linux-2.4.20-mipscvs-20050106/net/decnet/CVS/Tag
--- linux-2.4.20/net/decnet/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/decnet/CVS/Tag	2005-01-06 23:07:49.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/decnet/.cvsignore linux-2.4.20-mipscvs-20050106/net/decnet/.cvsignore
--- linux-2.4.20/net/decnet/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/decnet/.cvsignore	1999-12-06 17:13:22.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/net/econet/CVS/Entries linux-2.4.20-mipscvs-20050106/net/econet/CVS/Entries
--- linux-2.4.20/net/econet/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/econet/CVS/Entries	2005-01-06 23:07:49.000000000 -0600
@@ -0,0 +1,4 @@
+/.cvsignore/1.3/Mon Dec  6 23:13:22 1999/-ko/Tlinux_2_4_20
+/Makefile/1.5/Wed Jun 13 17:28:19 2001/-ko/Tlinux_2_4_20
+/af_econet.c/1.8.2.1/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/net/econet/CVS/Repository linux-2.4.20-mipscvs-20050106/net/econet/CVS/Repository
--- linux-2.4.20/net/econet/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/econet/CVS/Repository	2005-01-06 23:07:49.000000000 -0600
@@ -0,0 +1 @@
+linux/net/econet
diff -urNd -urNd linux-2.4.20/net/econet/CVS/Root linux-2.4.20-mipscvs-20050106/net/econet/CVS/Root
--- linux-2.4.20/net/econet/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/econet/CVS/Root	2005-01-06 23:07:49.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/econet/CVS/Tag linux-2.4.20-mipscvs-20050106/net/econet/CVS/Tag
--- linux-2.4.20/net/econet/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/econet/CVS/Tag	2005-01-06 23:07:49.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/econet/.cvsignore linux-2.4.20-mipscvs-20050106/net/econet/.cvsignore
--- linux-2.4.20/net/econet/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/econet/.cvsignore	1999-12-06 17:13:22.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/net/ethernet/CVS/Entries linux-2.4.20-mipscvs-20050106/net/ethernet/CVS/Entries
--- linux-2.4.20/net/ethernet/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ethernet/CVS/Entries	2005-01-06 23:07:49.000000000 -0600
@@ -0,0 +1,6 @@
+/.cvsignore/1.4/Mon Dec  6 23:13:22 1999/-ko/Tlinux_2_4_20
+/Makefile/1.4/Tue Nov  6 07:56:16 2001/-ko/Tlinux_2_4_20
+/eth.c/1.9/Thu Apr  5 04:59:16 2001/-ko/Tlinux_2_4_20
+/pe2.c/1.4/Fri Jul 21 22:01:02 2000/-ko/Tlinux_2_4_20
+/sysctl_net_ether.c/1.1.1.1/Sun Jun  1 03:16:29 1997/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/net/ethernet/CVS/Repository linux-2.4.20-mipscvs-20050106/net/ethernet/CVS/Repository
--- linux-2.4.20/net/ethernet/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ethernet/CVS/Repository	2005-01-06 23:07:49.000000000 -0600
@@ -0,0 +1 @@
+linux/net/ethernet
diff -urNd -urNd linux-2.4.20/net/ethernet/CVS/Root linux-2.4.20-mipscvs-20050106/net/ethernet/CVS/Root
--- linux-2.4.20/net/ethernet/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ethernet/CVS/Root	2005-01-06 23:07:49.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/ethernet/CVS/Tag linux-2.4.20-mipscvs-20050106/net/ethernet/CVS/Tag
--- linux-2.4.20/net/ethernet/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ethernet/CVS/Tag	2005-01-06 23:07:49.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/ethernet/.cvsignore linux-2.4.20-mipscvs-20050106/net/ethernet/.cvsignore
--- linux-2.4.20/net/ethernet/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ethernet/.cvsignore	1999-12-06 17:13:22.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/net/ipv4/CVS/Entries linux-2.4.20-mipscvs-20050106/net/ipv4/CVS/Entries
--- linux-2.4.20/net/ipv4/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ipv4/CVS/Entries	2005-01-06 23:08:09.000000000 -0600
@@ -0,0 +1,40 @@
+/.cvsignore/1.4/Mon Dec  6 23:13:22 1999/-ko/Tlinux_2_4_20
+/Config.in/1.16.2.1/Sat Dec 29 05:38:26 2001/-ko/Tlinux_2_4_20
+/Makefile/1.13.2.1/Sat Dec 29 05:38:26 2001/-ko/Tlinux_2_4_20
+/af_inet.c/1.38.2.2/Wed Jun 26 22:36:50 2002/-ko/Tlinux_2_4_20
+/arp.c/1.26.2.2/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/devinet.c/1.22.2.2/Wed Jun 26 22:36:50 2002/-ko/Tlinux_2_4_20
+/fib_frontend.c/1.16.2.2/Wed Jun 26 22:36:50 2002/-ko/Tlinux_2_4_20
+/fib_hash.c/1.9.4.1/Sat Dec 29 05:38:27 2001/-ko/Tlinux_2_4_20
+/fib_rules.c/1.12.2.1/Sat Dec 29 05:38:27 2001/-ko/Tlinux_2_4_20
+/fib_semantics.c/1.12.4.3/Wed Jun 26 22:36:50 2002/-ko/Tlinux_2_4_20
+/icmp.c/1.30.2.2/Wed Jun 26 22:36:50 2002/-ko/Tlinux_2_4_20
+/igmp.c/1.22.2.2/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/inetpeer.c/1.6/Mon Nov  5 20:16:33 2001/-ko/Tlinux_2_4_20
+/ip_forward.c/1.13/Wed Jun 13 17:28:19 2001/-ko/Tlinux_2_4_20
+/ip_fragment.c/1.26.2.1/Tue Feb 26 06:00:35 2002/-ko/Tlinux_2_4_20
+/ip_gre.c/1.21.2.2/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/ip_input.c/1.20.2.2/Wed Jun 26 22:36:50 2002/-ko/Tlinux_2_4_20
+/ip_nat_dumb.c/1.10/Wed Jun 13 17:28:19 2001/-ko/Tlinux_2_4_20
+/ip_options.c/1.13.2.1/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/ip_output.c/1.33.2.3/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/ip_sockglue.c/1.25/Tue Nov  6 07:56:16 2001/-ko/Tlinux_2_4_20
+/ipconfig.c/1.32.2.5/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/ipip.c/1.27.2.2/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/ipmr.c/1.25.2.2/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/proc.c/1.21.2.1/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/protocol.c/1.8/Thu Jun 14 04:24:31 2001/-ko/Tlinux_2_4_20
+/raw.c/1.27.2.1/Wed Jun 26 22:36:50 2002/-ko/Tlinux_2_4_20
+/route.c/1.35.2.6/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/syncookies.c/1.19.2.1/Wed Jun 26 22:36:50 2002/-ko/Tlinux_2_4_20
+/sysctl_net_ipv4.c/1.23.2.1/Wed Jun 26 22:36:50 2002/-ko/Tlinux_2_4_20
+/tcp.c/1.45.2.3/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
+/tcp_diag.c/1.1.2.3/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/tcp_input.c/1.45.2.5/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/tcp_ipv4.c/1.48.2.4/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/tcp_minisocks.c/1.8.2.2/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/tcp_output.c/1.34.2.3/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
+/tcp_timer.c/1.33/Mon Nov  5 20:16:34 2001/-ko/Tlinux_2_4_20
+/udp.c/1.35.2.2/Wed Jun 26 22:36:50 2002/-ko/Tlinux_2_4_20
+/utils.c/1.8.4.1/Wed Jun 26 22:36:50 2002/-ko/Tlinux_2_4_20
+D/netfilter////
diff -urNd -urNd linux-2.4.20/net/ipv4/CVS/Repository linux-2.4.20-mipscvs-20050106/net/ipv4/CVS/Repository
--- linux-2.4.20/net/ipv4/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ipv4/CVS/Repository	2005-01-06 23:07:49.000000000 -0600
@@ -0,0 +1 @@
+linux/net/ipv4
diff -urNd -urNd linux-2.4.20/net/ipv4/CVS/Root linux-2.4.20-mipscvs-20050106/net/ipv4/CVS/Root
--- linux-2.4.20/net/ipv4/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ipv4/CVS/Root	2005-01-06 23:07:49.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/ipv4/CVS/Tag linux-2.4.20-mipscvs-20050106/net/ipv4/CVS/Tag
--- linux-2.4.20/net/ipv4/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ipv4/CVS/Tag	2005-01-06 23:07:54.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/ipv4/.cvsignore linux-2.4.20-mipscvs-20050106/net/ipv4/.cvsignore
--- linux-2.4.20/net/ipv4/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ipv4/.cvsignore	1999-12-06 17:13:22.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/net/ipv4/netfilter/CVS/Entries linux-2.4.20-mipscvs-20050106/net/ipv4/netfilter/CVS/Entries
--- linux-2.4.20/net/ipv4/netfilter/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ipv4/netfilter/CVS/Entries	2005-01-06 23:07:56.000000000 -0600
@@ -0,0 +1,63 @@
+/.cvsignore/1.1/Wed Apr 19 04:00:25 2000/-ko/Tlinux_2_4_20
+/Config.in/1.5.2.4/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
+/Makefile/1.11.2.3/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
+/arp_tables.c/1.1.2.1/Wed Jun 26 22:36:50 2002/-ko/Tlinux_2_4_20
+/arptable_filter.c/1.1.2.1/Wed Jun 26 22:36:50 2002/-ko/Tlinux_2_4_20
+/ip_conntrack_core.c/1.13.2.4/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/ip_conntrack_ftp.c/1.10.2.1/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
+/ip_conntrack_irc.c/1.1.2.3/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
+/ip_conntrack_proto_generic.c/1.4.2.2/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
+/ip_conntrack_proto_icmp.c/1.4.2.2/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
+/ip_conntrack_proto_tcp.c/1.7.2.3/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/ip_conntrack_proto_udp.c/1.6.2.2/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
+/ip_conntrack_standalone.c/1.11.2.4/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/ip_fw_compat.c/1.10.2.1/Sat Dec 29 05:38:29 2001/-ko/Tlinux_2_4_20
+/ip_fw_compat_masq.c/1.7.2.2/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
+/ip_fw_compat_redir.c/1.2.4.3/Wed Jun 26 22:36:50 2002/-ko/Tlinux_2_4_20
+/ip_nat_core.c/1.9.2.4/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/ip_nat_ftp.c/1.9.2.1/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
+/ip_nat_helper.c/1.2.2.2/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
+/ip_nat_irc.c/1.1.2.2/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
+/ip_nat_proto_icmp.c/1.1/Thu Mar 23 02:26:02 2000/-ko/Tlinux_2_4_20
+/ip_nat_proto_tcp.c/1.2.2.1/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
+/ip_nat_proto_udp.c/1.2/Tue Aug  8 18:28:31 2000/-ko/Tlinux_2_4_20
+/ip_nat_proto_unknown.c/1.1.4.1/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
+/ip_nat_rule.c/1.4.2.3/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
+/ip_nat_snmp_basic.c/1.1.2.2/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/ip_nat_standalone.c/1.12.2.4/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/ip_queue.c/1.15.2.3/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
+/ip_tables.c/1.14.2.2/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
+/ipchains_core.c/1.7.2.4/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/ipfwadm_core.c/1.8.2.1/Tue Feb 26 06:00:37 2002/-ko/Tlinux_2_4_20
+/ipt_DSCP.c/1.1.2.1/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
+/ipt_ECN.c/1.1.2.1/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
+/ipt_LOG.c/1.8.2.1/Tue Feb 26 06:00:37 2002/-ko/Tlinux_2_4_20
+/ipt_MARK.c/1.4/Mon Nov  5 20:16:34 2001/-ko/Tlinux_2_4_20
+/ipt_MASQUERADE.c/1.9/Mon Nov  5 20:16:34 2001/-ko/Tlinux_2_4_20
+/ipt_MIRROR.c/1.7.2.1/Sat Dec 29 05:38:30 2001/-ko/Tlinux_2_4_20
+/ipt_REDIRECT.c/1.5.2.1/Tue Feb 26 06:00:37 2002/-ko/Tlinux_2_4_20
+/ipt_REJECT.c/1.13.2.2/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
+/ipt_TCPMSS.c/1.2.2.1/Sat Dec 29 05:38:30 2001/-ko/Tlinux_2_4_20
+/ipt_TOS.c/1.5.2.1/Sat Dec 29 05:38:30 2001/-ko/Tlinux_2_4_20
+/ipt_ULOG.c/1.1.2.4/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/ipt_ah.c/1.1.2.2/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
+/ipt_conntrack.c/1.1.2.1/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
+/ipt_dscp.c/1.1.2.1/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
+/ipt_ecn.c/1.1.2.1/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
+/ipt_esp.c/1.1.2.1/Tue Feb 26 06:00:37 2002/-ko/Tlinux_2_4_20
+/ipt_helper.c/1.1.2.1/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
+/ipt_length.c/1.1/Tue Nov  6 07:56:17 2001/-ko/Tlinux_2_4_20
+/ipt_limit.c/1.5/Mon Nov  5 20:16:34 2001/-ko/Tlinux_2_4_20
+/ipt_mac.c/1.5/Mon Nov  5 20:16:34 2001/-ko/Tlinux_2_4_20
+/ipt_mark.c/1.4/Mon Nov  5 20:16:34 2001/-ko/Tlinux_2_4_20
+/ipt_multiport.c/1.5/Mon Nov  5 20:16:34 2001/-ko/Tlinux_2_4_20
+/ipt_owner.c/1.6.2.1/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
+/ipt_pkttype.c/1.1.2.1/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
+/ipt_state.c/1.4/Mon Nov  5 20:16:34 2001/-ko/Tlinux_2_4_20
+/ipt_tcpmss.c/1.2/Mon Nov  5 20:16:34 2001/-ko/Tlinux_2_4_20
+/ipt_tos.c/1.4/Mon Nov  5 20:16:34 2001/-ko/Tlinux_2_4_20
+/ipt_ttl.c/1.1/Tue Nov  6 07:56:17 2001/-ko/Tlinux_2_4_20
+/ipt_unclean.c/1.6.2.2/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/iptable_filter.c/1.4.2.1/Tue Feb 26 06:00:37 2002/-ko/Tlinux_2_4_20
+/iptable_mangle.c/1.6.2.1/Tue Feb 26 06:00:37 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/net/ipv4/netfilter/CVS/Repository linux-2.4.20-mipscvs-20050106/net/ipv4/netfilter/CVS/Repository
--- linux-2.4.20/net/ipv4/netfilter/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ipv4/netfilter/CVS/Repository	2005-01-06 23:07:54.000000000 -0600
@@ -0,0 +1 @@
+linux/net/ipv4/netfilter
diff -urNd -urNd linux-2.4.20/net/ipv4/netfilter/CVS/Root linux-2.4.20-mipscvs-20050106/net/ipv4/netfilter/CVS/Root
--- linux-2.4.20/net/ipv4/netfilter/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ipv4/netfilter/CVS/Root	2005-01-06 23:07:54.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/ipv4/netfilter/CVS/Tag linux-2.4.20-mipscvs-20050106/net/ipv4/netfilter/CVS/Tag
--- linux-2.4.20/net/ipv4/netfilter/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ipv4/netfilter/CVS/Tag	2005-01-06 23:07:56.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/ipv4/netfilter/.cvsignore linux-2.4.20-mipscvs-20050106/net/ipv4/netfilter/.cvsignore
--- linux-2.4.20/net/ipv4/netfilter/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ipv4/netfilter/.cvsignore	2000-04-18 23:00:25.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/net/ipv6/CVS/Entries linux-2.4.20-mipscvs-20050106/net/ipv6/CVS/Entries
--- linux-2.4.20/net/ipv6/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ipv6/CVS/Entries	2005-01-06 23:08:09.000000000 -0600
@@ -0,0 +1,27 @@
+/.cvsignore/1.4/Mon Dec  6 23:13:22 1999/-ko/Tlinux_2_4_20
+/Config.in/1.6.2.1/Sat Dec 29 05:38:30 2001/-ko/Tlinux_2_4_20
+/Makefile/1.4/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
+/README/1.2/Sat Jan 29 01:42:33 2000/-ko/Tlinux_2_4_20
+/addrconf.c/1.29.2.3/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/af_inet6.c/1.32/Tue Nov  6 00:55:32 2001/-ko/Tlinux_2_4_20
+/datagram.c/1.13.2.1/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/exthdrs.c/1.11/Wed Aug 22 03:25:19 2001/-ko/Tlinux_2_4_20
+/icmp.c/1.24.2.1/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/ip6_fib.c/1.17.2.2/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/ip6_flowlabel.c/1.4/Tue Aug  8 19:48:21 2000/-ko/Tlinux_2_4_20
+/ip6_fw.c/1.9.4.1/Sat Dec 29 05:38:30 2001/-ko/Tlinux_2_4_20
+/ip6_input.c/1.14/Wed Jun 13 17:28:20 2001/-ko/Tlinux_2_4_20
+/ip6_output.c/1.20.2.1/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/ipv6_sockglue.c/1.20/Fri Oct 19 01:25:08 2001/-ko/Tlinux_2_4_20
+/mcast.c/1.22/Sat Sep 22 12:49:43 2001/-ko/Tlinux_2_4_20
+/ndisc.c/1.22.2.4/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/proc.c/1.13.4.1/Tue Feb 26 06:00:37 2002/-ko/Tlinux_2_4_20
+/protocol.c/1.8/Thu Jun 14 04:24:32 2001/-ko/Tlinux_2_4_20
+/raw.c/1.29.2.1/Wed Jun 26 22:36:50 2002/-ko/Tlinux_2_4_20
+/reassembly.c/1.16.2.1/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/route.c/1.29.2.2/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/sit.c/1.23.2.2/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/sysctl_net_ipv6.c/1.2/Tue Mar 17 22:18:43 1998/-ko/Tlinux_2_4_20
+/tcp_ipv6.c/1.39.2.4/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/udp.c/1.29.2.2/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+D/netfilter////
diff -urNd -urNd linux-2.4.20/net/ipv6/CVS/Repository linux-2.4.20-mipscvs-20050106/net/ipv6/CVS/Repository
--- linux-2.4.20/net/ipv6/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ipv6/CVS/Repository	2005-01-06 23:07:56.000000000 -0600
@@ -0,0 +1 @@
+linux/net/ipv6
diff -urNd -urNd linux-2.4.20/net/ipv6/CVS/Root linux-2.4.20-mipscvs-20050106/net/ipv6/CVS/Root
--- linux-2.4.20/net/ipv6/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ipv6/CVS/Root	2005-01-06 23:07:56.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/ipv6/CVS/Tag linux-2.4.20-mipscvs-20050106/net/ipv6/CVS/Tag
--- linux-2.4.20/net/ipv6/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ipv6/CVS/Tag	2005-01-06 23:07:58.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/ipv6/.cvsignore linux-2.4.20-mipscvs-20050106/net/ipv6/.cvsignore
--- linux-2.4.20/net/ipv6/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ipv6/.cvsignore	1999-12-06 17:13:22.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/net/ipv6/netfilter/CVS/Entries linux-2.4.20-mipscvs-20050106/net/ipv6/netfilter/CVS/Entries
--- linux-2.4.20/net/ipv6/netfilter/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ipv6/netfilter/CVS/Entries	2005-01-06 23:07:58.000000000 -0600
@@ -0,0 +1,17 @@
+/.cvsignore/1.1/Wed Jul  5 01:33:35 2000/-ko/Tlinux_2_4_20
+/Config.in/1.3.2.3/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
+/Makefile/1.7.2.2/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
+/ip6_queue.c/1.1.2.4/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/ip6_tables.c/1.9.2.4/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/ip6t_LOG.c/1.1.2.1/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/ip6t_MARK.c/1.3.2.1/Tue Feb 26 06:00:37 2002/-ko/Tlinux_2_4_20
+/ip6t_eui64.c/1.1.2.1/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
+/ip6t_length.c/1.1.2.1/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
+/ip6t_limit.c/1.3/Tue Nov  6 07:56:17 2001/-ko/Tlinux_2_4_20
+/ip6t_mac.c/1.3.2.1/Wed Jun 26 22:36:51 2002/-ko/Tlinux_2_4_20
+/ip6t_mark.c/1.3/Mon Nov  5 20:16:35 2001/-ko/Tlinux_2_4_20
+/ip6t_multiport.c/1.2/Tue Nov  6 07:56:17 2001/-ko/Tlinux_2_4_20
+/ip6t_owner.c/1.1/Tue Nov  6 07:56:17 2001/-ko/Tlinux_2_4_20
+/ip6table_filter.c/1.3.2.1/Tue Feb 26 06:00:37 2002/-ko/Tlinux_2_4_20
+/ip6table_mangle.c/1.2.2.1/Tue Feb 26 06:00:37 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/net/ipv6/netfilter/CVS/Repository linux-2.4.20-mipscvs-20050106/net/ipv6/netfilter/CVS/Repository
--- linux-2.4.20/net/ipv6/netfilter/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ipv6/netfilter/CVS/Repository	2005-01-06 23:07:58.000000000 -0600
@@ -0,0 +1 @@
+linux/net/ipv6/netfilter
diff -urNd -urNd linux-2.4.20/net/ipv6/netfilter/CVS/Root linux-2.4.20-mipscvs-20050106/net/ipv6/netfilter/CVS/Root
--- linux-2.4.20/net/ipv6/netfilter/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ipv6/netfilter/CVS/Root	2005-01-06 23:07:58.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/ipv6/netfilter/CVS/Tag linux-2.4.20-mipscvs-20050106/net/ipv6/netfilter/CVS/Tag
--- linux-2.4.20/net/ipv6/netfilter/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ipv6/netfilter/CVS/Tag	2005-01-06 23:07:58.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/ipv6/netfilter/.cvsignore linux-2.4.20-mipscvs-20050106/net/ipv6/netfilter/.cvsignore
--- linux-2.4.20/net/ipv6/netfilter/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ipv6/netfilter/.cvsignore	2000-07-04 20:33:35.000000000 -0500
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/net/ipx/CVS/Entries linux-2.4.20-mipscvs-20050106/net/ipx/CVS/Entries
--- linux-2.4.20/net/ipx/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ipx/CVS/Entries	2005-01-06 23:07:58.000000000 -0600
@@ -0,0 +1,7 @@
+/.cvsignore/1.4/Mon Dec  6 23:13:22 1999/-ko/Tlinux_2_4_20
+/Config.in/1.4/Tue Nov 28 03:59:04 2000/-ko/Tlinux_2_4_20
+/Makefile/1.6/Tue Nov  6 07:56:17 2001/-ko/Tlinux_2_4_20
+/af_ipx.c/1.32/Mon Nov  5 20:16:35 2001/-ko/Tlinux_2_4_20
+/af_spx.c/1.15/Fri Oct 19 01:25:09 2001/-ko/Tlinux_2_4_20
+/sysctl_net_ipx.c/1.4/Thu Jun 14 04:24:32 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/net/ipx/CVS/Repository linux-2.4.20-mipscvs-20050106/net/ipx/CVS/Repository
--- linux-2.4.20/net/ipx/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ipx/CVS/Repository	2005-01-06 23:07:58.000000000 -0600
@@ -0,0 +1 @@
+linux/net/ipx
diff -urNd -urNd linux-2.4.20/net/ipx/CVS/Root linux-2.4.20-mipscvs-20050106/net/ipx/CVS/Root
--- linux-2.4.20/net/ipx/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ipx/CVS/Root	2005-01-06 23:07:58.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/ipx/CVS/Tag linux-2.4.20-mipscvs-20050106/net/ipx/CVS/Tag
--- linux-2.4.20/net/ipx/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ipx/CVS/Tag	2005-01-06 23:07:58.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/ipx/.cvsignore linux-2.4.20-mipscvs-20050106/net/ipx/.cvsignore
--- linux-2.4.20/net/ipx/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/ipx/.cvsignore	1999-12-06 17:13:22.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/net/irda/compressors/CVS/Entries linux-2.4.20-mipscvs-20050106/net/irda/compressors/CVS/Entries
--- linux-2.4.20/net/irda/compressors/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/irda/compressors/CVS/Entries	2005-01-06 23:07:59.000000000 -0600
@@ -0,0 +1,2 @@
+/.cvsignore/1.3/Mon Dec  6 23:13:22 1999/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/net/irda/compressors/CVS/Repository linux-2.4.20-mipscvs-20050106/net/irda/compressors/CVS/Repository
--- linux-2.4.20/net/irda/compressors/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/irda/compressors/CVS/Repository	2005-01-06 23:07:59.000000000 -0600
@@ -0,0 +1 @@
+linux/net/irda/compressors
diff -urNd -urNd linux-2.4.20/net/irda/compressors/CVS/Root linux-2.4.20-mipscvs-20050106/net/irda/compressors/CVS/Root
--- linux-2.4.20/net/irda/compressors/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/irda/compressors/CVS/Root	2005-01-06 23:07:59.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/irda/compressors/CVS/Tag linux-2.4.20-mipscvs-20050106/net/irda/compressors/CVS/Tag
--- linux-2.4.20/net/irda/compressors/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/irda/compressors/CVS/Tag	2005-01-06 23:07:59.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/irda/compressors/.cvsignore linux-2.4.20-mipscvs-20050106/net/irda/compressors/.cvsignore
--- linux-2.4.20/net/irda/compressors/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/irda/compressors/.cvsignore	1999-12-06 17:13:22.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/net/irda/CVS/Entries linux-2.4.20-mipscvs-20050106/net/irda/CVS/Entries
--- linux-2.4.20/net/irda/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/irda/CVS/Entries	2005-01-06 23:08:09.000000000 -0600
@@ -0,0 +1,29 @@
+/.cvsignore/1.3/Mon Dec  6 23:13:22 1999/-ko/Tlinux_2_4_20
+/Config.in/1.7.4.1/Tue Feb 26 06:00:38 2002/-ko/Tlinux_2_4_20
+/Makefile/1.8/Tue Nov  6 07:56:17 2001/-ko/Tlinux_2_4_20
+/af_irda.c/1.21.2.3/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
+/crc.c/1.2/Thu Jun 17 13:32:04 1999/-ko/Tlinux_2_4_20
+/discovery.c/1.7.4.1/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
+/irda_device.c/1.16.2.1/Tue Feb 26 06:00:38 2002/-ko/Tlinux_2_4_20
+/iriap.c/1.11.2.3/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
+/iriap_event.c/1.7.4.1/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
+/irias_object.c/1.11/Mon Nov  5 20:16:35 2001/-ko/Tlinux_2_4_20
+/irlap.c/1.13.2.4/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
+/irlap_event.c/1.15.2.4/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
+/irlap_frame.c/1.11.2.1/Wed Jun 26 22:36:51 2002/-ko/Tlinux_2_4_20
+/irlmp.c/1.14.2.2/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
+/irlmp_event.c/1.9.2.3/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
+/irlmp_frame.c/1.10.2.1/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
+/irproc.c/1.8/Thu Aug 23 22:24:52 2001/-ko/Tlinux_2_4_20
+/irqueue.c/1.8/Thu Aug 23 22:24:52 2001/-ko/Tlinux_2_4_20
+/irsyms.c/1.3.2.2/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
+/irsysctl.c/1.7.2.2/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
+/irttp.c/1.13/Sun Dec  2 11:35:01 2001/-ko/Tlinux_2_4_20
+/parameters.c/1.8/Sun Dec  2 11:35:01 2001/-ko/Tlinux_2_4_20
+/qos.c/1.13.2.2/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
+/timer.c/1.7/Sun Dec  2 11:35:01 2001/-ko/Tlinux_2_4_20
+/wrapper.c/1.10/Thu Jun 14 04:24:32 2001/-ko/Tlinux_2_4_20
+D/compressors////
+D/ircomm////
+D/irlan////
+D/irnet////
diff -urNd -urNd linux-2.4.20/net/irda/CVS/Repository linux-2.4.20-mipscvs-20050106/net/irda/CVS/Repository
--- linux-2.4.20/net/irda/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/irda/CVS/Repository	2005-01-06 23:07:58.000000000 -0600
@@ -0,0 +1 @@
+linux/net/irda
diff -urNd -urNd linux-2.4.20/net/irda/CVS/Root linux-2.4.20-mipscvs-20050106/net/irda/CVS/Root
--- linux-2.4.20/net/irda/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/irda/CVS/Root	2005-01-06 23:07:58.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/irda/CVS/Tag linux-2.4.20-mipscvs-20050106/net/irda/CVS/Tag
--- linux-2.4.20/net/irda/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/irda/CVS/Tag	2005-01-06 23:07:59.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/irda/.cvsignore linux-2.4.20-mipscvs-20050106/net/irda/.cvsignore
--- linux-2.4.20/net/irda/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/irda/.cvsignore	1999-12-06 17:13:22.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/net/irda/ircomm/CVS/Entries linux-2.4.20-mipscvs-20050106/net/irda/ircomm/CVS/Entries
--- linux-2.4.20/net/irda/ircomm/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/irda/ircomm/CVS/Entries	2005-01-06 23:08:00.000000000 -0600
@@ -0,0 +1,12 @@
+/.cvsignore/1.3/Mon Dec  6 23:13:22 1999/-ko/Tlinux_2_4_20
+/Config.in/1.2/Sat Oct  9 00:01:53 1999/-ko/Tlinux_2_4_20
+/Makefile/1.5/Thu Apr  5 04:59:37 2001/-ko/Tlinux_2_4_20
+/ircomm_core.c/1.9.2.1/Tue Feb 26 06:00:38 2002/-ko/Tlinux_2_4_20
+/ircomm_event.c/1.4/Thu Apr  5 04:59:37 2001/-ko/Tlinux_2_4_20
+/ircomm_lmp.c/1.4.2.1/Tue Feb 26 06:00:38 2002/-ko/Tlinux_2_4_20
+/ircomm_param.c/1.6/Sun Dec  2 11:35:01 2001/-ko/Tlinux_2_4_20
+/ircomm_ttp.c/1.4/Thu Apr  5 04:59:37 2001/-ko/Tlinux_2_4_20
+/ircomm_tty.c/1.11.2.1/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
+/ircomm_tty_attach.c/1.6.2.1/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
+/ircomm_tty_ioctl.c/1.4.2.1/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/net/irda/ircomm/CVS/Repository linux-2.4.20-mipscvs-20050106/net/irda/ircomm/CVS/Repository
--- linux-2.4.20/net/irda/ircomm/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/irda/ircomm/CVS/Repository	2005-01-06 23:07:59.000000000 -0600
@@ -0,0 +1 @@
+linux/net/irda/ircomm
diff -urNd -urNd linux-2.4.20/net/irda/ircomm/CVS/Root linux-2.4.20-mipscvs-20050106/net/irda/ircomm/CVS/Root
--- linux-2.4.20/net/irda/ircomm/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/irda/ircomm/CVS/Root	2005-01-06 23:07:59.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/irda/ircomm/CVS/Tag linux-2.4.20-mipscvs-20050106/net/irda/ircomm/CVS/Tag
--- linux-2.4.20/net/irda/ircomm/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/irda/ircomm/CVS/Tag	2005-01-06 23:08:00.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/irda/ircomm/.cvsignore linux-2.4.20-mipscvs-20050106/net/irda/ircomm/.cvsignore
--- linux-2.4.20/net/irda/ircomm/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/irda/ircomm/.cvsignore	1999-12-06 17:13:22.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/net/irda/irlan/CVS/Entries linux-2.4.20-mipscvs-20050106/net/irda/irlan/CVS/Entries
--- linux-2.4.20/net/irda/irlan/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/irda/irlan/CVS/Entries	2005-01-06 23:08:00.000000000 -0600
@@ -0,0 +1,12 @@
+/.cvsignore/1.3/Mon Dec  6 23:13:22 1999/-ko/Tlinux_2_4_20
+/Config.in/1.3/Sat Oct  9 00:01:53 1999/-ko/Tlinux_2_4_20
+/Makefile/1.4/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
+/irlan_client.c/1.9.2.1/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
+/irlan_client_event.c/1.6/Wed Jan 10 05:27:37 2001/-ko/Tlinux_2_4_20
+/irlan_common.c/1.13.2.1/Tue Feb 26 06:00:38 2002/-ko/Tlinux_2_4_20
+/irlan_eth.c/1.12.2.1/Tue Feb 26 06:00:38 2002/-ko/Tlinux_2_4_20
+/irlan_event.c/1.4/Sat Jan 29 01:42:35 2000/-ko/Tlinux_2_4_20
+/irlan_filter.c/1.3/Sat Jan 29 01:42:35 2000/-ko/Tlinux_2_4_20
+/irlan_provider.c/1.6/Thu Apr  5 04:59:37 2001/-ko/Tlinux_2_4_20
+/irlan_provider_event.c/1.3/Sat Jan 29 01:42:35 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/net/irda/irlan/CVS/Repository linux-2.4.20-mipscvs-20050106/net/irda/irlan/CVS/Repository
--- linux-2.4.20/net/irda/irlan/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/irda/irlan/CVS/Repository	2005-01-06 23:08:00.000000000 -0600
@@ -0,0 +1 @@
+linux/net/irda/irlan
diff -urNd -urNd linux-2.4.20/net/irda/irlan/CVS/Root linux-2.4.20-mipscvs-20050106/net/irda/irlan/CVS/Root
--- linux-2.4.20/net/irda/irlan/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/irda/irlan/CVS/Root	2005-01-06 23:08:00.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/irda/irlan/CVS/Tag linux-2.4.20-mipscvs-20050106/net/irda/irlan/CVS/Tag
--- linux-2.4.20/net/irda/irlan/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/irda/irlan/CVS/Tag	2005-01-06 23:08:00.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/irda/irlan/.cvsignore linux-2.4.20-mipscvs-20050106/net/irda/irlan/.cvsignore
--- linux-2.4.20/net/irda/irlan/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/irda/irlan/.cvsignore	1999-12-06 17:13:22.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/net/irda/irnet/CVS/Entries linux-2.4.20-mipscvs-20050106/net/irda/irnet/CVS/Entries
--- linux-2.4.20/net/irda/irnet/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/irda/irnet/CVS/Entries	2005-01-06 23:08:01.000000000 -0600
@@ -0,0 +1,9 @@
+/.cvsignore/1.1/Sat Dec  9 23:37:46 2000/-ko/Tlinux_2_4_20
+/Config.in/1.2/Thu Apr  5 04:59:37 2001/-ko/Tlinux_2_4_20
+/Makefile/1.2/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
+/irnet.h/1.6.2.3/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
+/irnet_irda.c/1.7.2.3/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
+/irnet_irda.h/1.3.2.1/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
+/irnet_ppp.c/1.7/Sun Dec  2 11:35:02 2001/-ko/Tlinux_2_4_20
+/irnet_ppp.h/1.3/Wed Aug 22 03:25:20 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/net/irda/irnet/CVS/Repository linux-2.4.20-mipscvs-20050106/net/irda/irnet/CVS/Repository
--- linux-2.4.20/net/irda/irnet/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/irda/irnet/CVS/Repository	2005-01-06 23:08:00.000000000 -0600
@@ -0,0 +1 @@
+linux/net/irda/irnet
diff -urNd -urNd linux-2.4.20/net/irda/irnet/CVS/Root linux-2.4.20-mipscvs-20050106/net/irda/irnet/CVS/Root
--- linux-2.4.20/net/irda/irnet/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/irda/irnet/CVS/Root	2005-01-06 23:08:00.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/irda/irnet/CVS/Tag linux-2.4.20-mipscvs-20050106/net/irda/irnet/CVS/Tag
--- linux-2.4.20/net/irda/irnet/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/irda/irnet/CVS/Tag	2005-01-06 23:08:01.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/irda/irnet/.cvsignore linux-2.4.20-mipscvs-20050106/net/irda/irnet/.cvsignore
--- linux-2.4.20/net/irda/irnet/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/irda/irnet/.cvsignore	2000-12-09 17:37:46.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/net/khttpd/CVS/Entries linux-2.4.20-mipscvs-20050106/net/khttpd/CVS/Entries
--- linux-2.4.20/net/khttpd/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/khttpd/CVS/Entries	2005-01-06 23:08:01.000000000 -0600
@@ -0,0 +1,22 @@
+/.cvsignore/1.1/Mon Dec  6 23:13:22 1999/-ko/Tlinux_2_4_20
+/Config.in/1.2/Fri Jan 21 22:34:11 2000/-ko/Tlinux_2_4_20
+/Makefile/1.3/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
+/README/1.2.4.1/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
+/accept.c/1.2/Fri Feb 18 00:24:51 2000/-ko/Tlinux_2_4_20
+/datasending.c/1.7/Fri Oct 19 01:25:09 2001/-ko/Tlinux_2_4_20
+/logging.c/1.1/Sat Oct  9 00:01:53 1999/-ko/Tlinux_2_4_20
+/main.c/1.6.2.2/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
+/make_times_h.c/1.1/Sat Oct  9 00:01:53 1999/-ko/Tlinux_2_4_20
+/misc.c/1.2/Fri Mar  9 20:34:59 2001/-ko/Tlinux_2_4_20
+/prototypes.h/1.2/Sat Sep 22 12:49:44 2001/-ko/Tlinux_2_4_20
+/rfc.c/1.5/Fri Oct 19 01:25:09 2001/-ko/Tlinux_2_4_20
+/rfc_time.c/1.2/Fri Mar  9 20:35:02 2001/-ko/Tlinux_2_4_20
+/security.c/1.7.2.1/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
+/security.h/1.2/Wed Aug 22 03:25:20 2001/-ko/Tlinux_2_4_20
+/sockets.c/1.4.4.1/Wed Jun 26 22:36:51 2002/-ko/Tlinux_2_4_20
+/structure.h/1.2/Wed Feb 23 00:41:45 2000/-ko/Tlinux_2_4_20
+/sysctl.c/1.2.2.1/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
+/sysctl.h/1.1.4.1/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
+/userspace.c/1.4/Fri Mar  9 20:35:02 2001/-ko/Tlinux_2_4_20
+/waitheaders.c/1.5.2.1/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/net/khttpd/CVS/Repository linux-2.4.20-mipscvs-20050106/net/khttpd/CVS/Repository
--- linux-2.4.20/net/khttpd/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/khttpd/CVS/Repository	2005-01-06 23:08:01.000000000 -0600
@@ -0,0 +1 @@
+linux/net/khttpd
diff -urNd -urNd linux-2.4.20/net/khttpd/CVS/Root linux-2.4.20-mipscvs-20050106/net/khttpd/CVS/Root
--- linux-2.4.20/net/khttpd/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/khttpd/CVS/Root	2005-01-06 23:08:01.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/khttpd/CVS/Tag linux-2.4.20-mipscvs-20050106/net/khttpd/CVS/Tag
--- linux-2.4.20/net/khttpd/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/khttpd/CVS/Tag	2005-01-06 23:08:01.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/khttpd/.cvsignore linux-2.4.20-mipscvs-20050106/net/khttpd/.cvsignore
--- linux-2.4.20/net/khttpd/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/khttpd/.cvsignore	1999-12-06 17:13:22.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/net/lapb/CVS/Entries linux-2.4.20-mipscvs-20050106/net/lapb/CVS/Entries
--- linux-2.4.20/net/lapb/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/lapb/CVS/Entries	2005-01-06 23:08:01.000000000 -0600
@@ -0,0 +1,8 @@
+/.cvsignore/1.4/Mon Dec  6 23:13:22 1999/-ko/Tlinux_2_4_20
+/Makefile/1.3/Fri Mar  9 20:35:02 2001/-ko/Tlinux_2_4_20
+/lapb_iface.c/1.11.2.1/Wed Jun 26 22:36:51 2002/-ko/Tlinux_2_4_20
+/lapb_in.c/1.5/Fri Mar  9 20:35:02 2001/-ko/Tlinux_2_4_20
+/lapb_out.c/1.4/Fri Mar  9 20:35:02 2001/-ko/Tlinux_2_4_20
+/lapb_subr.c/1.5/Wed Aug 22 03:25:20 2001/-ko/Tlinux_2_4_20
+/lapb_timer.c/1.4/Fri Mar  9 20:35:02 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/net/lapb/CVS/Repository linux-2.4.20-mipscvs-20050106/net/lapb/CVS/Repository
--- linux-2.4.20/net/lapb/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/lapb/CVS/Repository	2005-01-06 23:08:01.000000000 -0600
@@ -0,0 +1 @@
+linux/net/lapb
diff -urNd -urNd linux-2.4.20/net/lapb/CVS/Root linux-2.4.20-mipscvs-20050106/net/lapb/CVS/Root
--- linux-2.4.20/net/lapb/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/lapb/CVS/Root	2005-01-06 23:08:01.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/lapb/CVS/Tag linux-2.4.20-mipscvs-20050106/net/lapb/CVS/Tag
--- linux-2.4.20/net/lapb/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/lapb/CVS/Tag	2005-01-06 23:08:01.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/lapb/.cvsignore linux-2.4.20-mipscvs-20050106/net/lapb/.cvsignore
--- linux-2.4.20/net/lapb/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/lapb/.cvsignore	1999-12-06 17:13:22.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/net/netlink/CVS/Entries linux-2.4.20-mipscvs-20050106/net/netlink/CVS/Entries
--- linux-2.4.20/net/netlink/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/netlink/CVS/Entries	2005-01-06 23:08:01.000000000 -0600
@@ -0,0 +1,5 @@
+/.cvsignore/1.4/Mon Dec  6 23:13:22 1999/-ko/Tlinux_2_4_20
+/Makefile/1.3/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
+/af_netlink.c/1.19.2.2/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
+/netlink_dev.c/1.15.2.2/Wed Jun 26 22:36:51 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/net/netlink/CVS/Repository linux-2.4.20-mipscvs-20050106/net/netlink/CVS/Repository
--- linux-2.4.20/net/netlink/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/netlink/CVS/Repository	2005-01-06 23:08:01.000000000 -0600
@@ -0,0 +1 @@
+linux/net/netlink
diff -urNd -urNd linux-2.4.20/net/netlink/CVS/Root linux-2.4.20-mipscvs-20050106/net/netlink/CVS/Root
--- linux-2.4.20/net/netlink/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/netlink/CVS/Root	2005-01-06 23:08:01.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/netlink/CVS/Tag linux-2.4.20-mipscvs-20050106/net/netlink/CVS/Tag
--- linux-2.4.20/net/netlink/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/netlink/CVS/Tag	2005-01-06 23:08:01.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/netlink/.cvsignore linux-2.4.20-mipscvs-20050106/net/netlink/.cvsignore
--- linux-2.4.20/net/netlink/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/netlink/.cvsignore	1999-12-06 17:13:22.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/net/netrom/CVS/Entries linux-2.4.20-mipscvs-20050106/net/netrom/CVS/Entries
--- linux-2.4.20/net/netrom/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/netrom/CVS/Entries	2005-01-06 23:08:02.000000000 -0600
@@ -0,0 +1,12 @@
+/.cvsignore/1.4/Mon Dec  6 23:13:22 1999/-ko/Tlinux_2_4_20
+/Makefile/1.4/Fri Mar  9 20:35:02 2001/-ko/Tlinux_2_4_20
+/af_netrom.c/1.27.2.2/Wed Jun 26 22:36:51 2002/-ko/Tlinux_2_4_20
+/nr_dev.c/1.11/Wed Aug 22 03:25:20 2001/-ko/Tlinux_2_4_20
+/nr_in.c/1.6/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
+/nr_loopback.c/1.7.2.1/Wed Jun 26 22:36:51 2002/-ko/Tlinux_2_4_20
+/nr_out.c/1.6/Wed Jun 13 17:28:20 2001/-ko/Tlinux_2_4_20
+/nr_route.c/1.10.2.1/Wed Jun 26 22:36:51 2002/-ko/Tlinux_2_4_20
+/nr_subr.c/1.7/Wed Aug 22 03:25:20 2001/-ko/Tlinux_2_4_20
+/nr_timer.c/1.5/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
+/sysctl_net_netrom.c/1.3/Sat Oct  9 00:01:55 1999/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/net/netrom/CVS/Repository linux-2.4.20-mipscvs-20050106/net/netrom/CVS/Repository
--- linux-2.4.20/net/netrom/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/netrom/CVS/Repository	2005-01-06 23:08:01.000000000 -0600
@@ -0,0 +1 @@
+linux/net/netrom
diff -urNd -urNd linux-2.4.20/net/netrom/CVS/Root linux-2.4.20-mipscvs-20050106/net/netrom/CVS/Root
--- linux-2.4.20/net/netrom/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/netrom/CVS/Root	2005-01-06 23:08:01.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/netrom/CVS/Tag linux-2.4.20-mipscvs-20050106/net/netrom/CVS/Tag
--- linux-2.4.20/net/netrom/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/netrom/CVS/Tag	2005-01-06 23:08:02.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/netrom/.cvsignore linux-2.4.20-mipscvs-20050106/net/netrom/.cvsignore
--- linux-2.4.20/net/netrom/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/netrom/.cvsignore	1999-12-06 17:13:22.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/net/packet/CVS/Entries linux-2.4.20-mipscvs-20050106/net/packet/CVS/Entries
--- linux-2.4.20/net/packet/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/packet/CVS/Entries	2005-01-06 23:08:02.000000000 -0600
@@ -0,0 +1,4 @@
+/.cvsignore/1.4/Mon Dec  6 23:13:22 1999/-ko/Tlinux_2_4_20
+/Makefile/1.3/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
+/af_packet.c/1.36.2.2/Wed Jun 26 22:36:51 2002/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/net/packet/CVS/Repository linux-2.4.20-mipscvs-20050106/net/packet/CVS/Repository
--- linux-2.4.20/net/packet/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/packet/CVS/Repository	2005-01-06 23:08:02.000000000 -0600
@@ -0,0 +1 @@
+linux/net/packet
diff -urNd -urNd linux-2.4.20/net/packet/CVS/Root linux-2.4.20-mipscvs-20050106/net/packet/CVS/Root
--- linux-2.4.20/net/packet/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/packet/CVS/Root	2005-01-06 23:08:02.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/packet/CVS/Tag linux-2.4.20-mipscvs-20050106/net/packet/CVS/Tag
--- linux-2.4.20/net/packet/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/packet/CVS/Tag	2005-01-06 23:08:02.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/packet/.cvsignore linux-2.4.20-mipscvs-20050106/net/packet/.cvsignore
--- linux-2.4.20/net/packet/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/packet/.cvsignore	1999-12-06 17:13:22.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/net/rose/CVS/Entries linux-2.4.20-mipscvs-20050106/net/rose/CVS/Entries
--- linux-2.4.20/net/rose/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/rose/CVS/Entries	2005-01-06 23:08:03.000000000 -0600
@@ -0,0 +1,13 @@
+/.cvsignore/1.4/Mon Dec  6 23:13:23 1999/-ko/Tlinux_2_4_20
+/Makefile/1.4/Fri Mar  9 20:35:02 2001/-ko/Tlinux_2_4_20
+/af_rose.c/1.29.2.3/Tue Sep 10 15:32:56 2002/-ko/Tlinux_2_4_20
+/rose_dev.c/1.12/Wed Aug 22 03:25:20 2001/-ko/Tlinux_2_4_20
+/rose_in.c/1.6/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
+/rose_link.c/1.9.2.1/Tue Feb 26 06:00:39 2002/-ko/Tlinux_2_4_20
+/rose_loopback.c/1.5/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
+/rose_out.c/1.5/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
+/rose_route.c/1.12/Wed Aug 22 03:25:20 2001/-ko/Tlinux_2_4_20
+/rose_subr.c/1.8.2.1/Tue Feb 26 06:00:39 2002/-ko/Tlinux_2_4_20
+/rose_timer.c/1.4/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
+/sysctl_net_rose.c/1.4/Sat Oct  9 00:01:55 1999/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/net/rose/CVS/Repository linux-2.4.20-mipscvs-20050106/net/rose/CVS/Repository
--- linux-2.4.20/net/rose/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/rose/CVS/Repository	2005-01-06 23:08:02.000000000 -0600
@@ -0,0 +1 @@
+linux/net/rose
diff -urNd -urNd linux-2.4.20/net/rose/CVS/Root linux-2.4.20-mipscvs-20050106/net/rose/CVS/Root
--- linux-2.4.20/net/rose/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/rose/CVS/Root	2005-01-06 23:08:02.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/rose/CVS/Tag linux-2.4.20-mipscvs-20050106/net/rose/CVS/Tag
--- linux-2.4.20/net/rose/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/rose/CVS/Tag	2005-01-06 23:08:03.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/rose/.cvsignore linux-2.4.20-mipscvs-20050106/net/rose/.cvsignore
--- linux-2.4.20/net/rose/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/rose/.cvsignore	1999-12-06 17:13:23.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/net/sched/CVS/Entries linux-2.4.20-mipscvs-20050106/net/sched/CVS/Entries
--- linux-2.4.20/net/sched/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/sched/CVS/Entries	2005-01-06 23:08:06.000000000 -0600
@@ -0,0 +1,29 @@
+/.cvsignore/1.4/Mon Dec  6 23:13:23 1999/-ko/Tlinux_2_4_20
+/Config.in/1.8.4.2/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
+/Makefile/1.7.2.1/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
+/cls_api.c/1.7.4.1/Sat Dec 29 05:38:30 2001/-ko/Tlinux_2_4_20
+/cls_fw.c/1.7.2.1/Sat Dec 29 05:38:30 2001/-ko/Tlinux_2_4_20
+/cls_route.c/1.6.2.1/Sat Dec 29 05:38:31 2001/-ko/Tlinux_2_4_20
+/cls_rsvp.c/1.2/Mon Nov  5 20:16:36 2001/-ko/Tlinux_2_4_20
+/cls_rsvp.h/1.5.4.1/Sat Dec 29 05:38:31 2001/-ko/Tlinux_2_4_20
+/cls_rsvp6.c/1.2/Mon Nov  5 20:16:36 2001/-ko/Tlinux_2_4_20
+/cls_tcindex.c/1.5.2.1/Sat Dec 29 05:38:31 2001/-ko/Tlinux_2_4_20
+/cls_u32.c/1.8.2.1/Sat Dec 29 05:38:31 2001/-ko/Tlinux_2_4_20
+/estimator.c/1.4/Thu Jun 17 13:32:20 1999/-ko/Tlinux_2_4_20
+/police.c/1.4.4.1/Sat Dec 29 05:38:31 2001/-ko/Tlinux_2_4_20
+/sch_api.c/1.13.2.3/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
+/sch_atm.c/1.5.2.1/Sat Dec 29 05:38:31 2001/-ko/Tlinux_2_4_20
+/sch_cbq.c/1.15.2.1/Sat Dec 29 05:38:31 2001/-ko/Tlinux_2_4_20
+/sch_csz.c/1.9.2.1/Sat Dec 29 05:38:31 2001/-ko/Tlinux_2_4_20
+/sch_dsmark.c/1.7.2.1/Sat Dec 29 05:38:31 2001/-ko/Tlinux_2_4_20
+/sch_fifo.c/1.5.4.1/Sat Dec 29 05:38:31 2001/-ko/Tlinux_2_4_20
+/sch_generic.c/1.13.4.2/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
+/sch_gred.c/1.7.2.2/Wed Jun 26 22:36:51 2002/-ko/Tlinux_2_4_20
+/sch_htb.c/1.1.2.2/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/sch_ingress.c/1.6.2.3/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
+/sch_prio.c/1.7.2.2/Wed Jun 26 22:36:51 2002/-ko/Tlinux_2_4_20
+/sch_red.c/1.12.2.1/Sat Dec 29 05:38:31 2001/-ko/Tlinux_2_4_20
+/sch_sfq.c/1.8.2.2/Wed Jun 26 22:36:51 2002/-ko/Tlinux_2_4_20
+/sch_tbf.c/1.14.2.1/Sat Dec 29 05:38:31 2001/-ko/Tlinux_2_4_20
+/sch_teql.c/1.11/Mon Nov  5 20:16:36 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/net/sched/CVS/Repository linux-2.4.20-mipscvs-20050106/net/sched/CVS/Repository
--- linux-2.4.20/net/sched/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/sched/CVS/Repository	2005-01-06 23:08:03.000000000 -0600
@@ -0,0 +1 @@
+linux/net/sched
diff -urNd -urNd linux-2.4.20/net/sched/CVS/Root linux-2.4.20-mipscvs-20050106/net/sched/CVS/Root
--- linux-2.4.20/net/sched/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/sched/CVS/Root	2005-01-06 23:08:03.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/sched/CVS/Tag linux-2.4.20-mipscvs-20050106/net/sched/CVS/Tag
--- linux-2.4.20/net/sched/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/sched/CVS/Tag	2005-01-06 23:08:06.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/sched/.cvsignore linux-2.4.20-mipscvs-20050106/net/sched/.cvsignore
--- linux-2.4.20/net/sched/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/sched/.cvsignore	1999-12-06 17:13:23.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/net/sunrpc/CVS/Entries linux-2.4.20-mipscvs-20050106/net/sunrpc/CVS/Entries
--- linux-2.4.20/net/sunrpc/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/sunrpc/CVS/Entries	2005-01-06 23:08:09.000000000 -0600
@@ -0,0 +1,19 @@
+/.cvsignore/1.4/Mon Dec  6 23:13:23 1999/-ko/Tlinux_2_4_20
+/Makefile/1.3.2.1/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
+/auth.c/1.12/Fri Oct 19 01:25:09 2001/-ko/Tlinux_2_4_20
+/auth_null.c/1.6/Sat Sep 22 12:49:44 2001/-ko/Tlinux_2_4_20
+/auth_unix.c/1.10/Sat Sep 22 12:49:44 2001/-ko/Tlinux_2_4_20
+/clnt.c/1.21.2.1/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
+/pmap_clnt.c/1.6.2.1/Wed Jun 26 22:36:51 2002/-ko/Tlinux_2_4_20
+/sched.c/1.30.2.3/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
+/stats.c/1.6.2.2/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
+/sunrpc_syms.c/1.13.2.1/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
+/svc.c/1.13.2.1/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
+/svcauth.c/1.2/Fri May 12 21:06:57 2000/-ko/Tlinux_2_4_20
+/svcauth_des.c/1.1.1.1/Sun Jun  1 03:16:29 1997/-ko/Tlinux_2_4_20
+/svcsock.c/1.25.2.1/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
+/sysctl.c/1.9/Wed Jun 13 17:28:21 2001/-ko/Tlinux_2_4_20
+/timer.c/1.1.2.1/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
+/xdr.c/1.4.2.2/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+/xprt.c/1.30.2.4/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/net/sunrpc/CVS/Repository linux-2.4.20-mipscvs-20050106/net/sunrpc/CVS/Repository
--- linux-2.4.20/net/sunrpc/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/sunrpc/CVS/Repository	2005-01-06 23:08:06.000000000 -0600
@@ -0,0 +1 @@
+linux/net/sunrpc
diff -urNd -urNd linux-2.4.20/net/sunrpc/CVS/Root linux-2.4.20-mipscvs-20050106/net/sunrpc/CVS/Root
--- linux-2.4.20/net/sunrpc/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/sunrpc/CVS/Root	2005-01-06 23:08:06.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/sunrpc/CVS/Tag linux-2.4.20-mipscvs-20050106/net/sunrpc/CVS/Tag
--- linux-2.4.20/net/sunrpc/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/sunrpc/CVS/Tag	2005-01-06 23:08:06.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/sunrpc/.cvsignore linux-2.4.20-mipscvs-20050106/net/sunrpc/.cvsignore
--- linux-2.4.20/net/sunrpc/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/sunrpc/.cvsignore	1999-12-06 17:13:23.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/net/unix/CVS/Entries linux-2.4.20-mipscvs-20050106/net/unix/CVS/Entries
--- linux-2.4.20/net/unix/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/unix/CVS/Entries	2005-01-06 23:08:07.000000000 -0600
@@ -0,0 +1,6 @@
+/.cvsignore/1.4/Mon Dec  6 23:13:23 1999/-ko/Tlinux_2_4_20
+/Makefile/1.5/Wed Jan 31 22:22:36 2001/-ko/Tlinux_2_4_20
+/af_unix.c/1.51.2.4/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
+/garbage.c/1.15.2.1/Tue Feb 26 06:00:40 2002/-ko/Tlinux_2_4_20
+/sysctl_net_unix.c/1.9/Wed Jan 31 22:22:36 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/net/unix/CVS/Repository linux-2.4.20-mipscvs-20050106/net/unix/CVS/Repository
--- linux-2.4.20/net/unix/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/unix/CVS/Repository	2005-01-06 23:08:06.000000000 -0600
@@ -0,0 +1 @@
+linux/net/unix
diff -urNd -urNd linux-2.4.20/net/unix/CVS/Root linux-2.4.20-mipscvs-20050106/net/unix/CVS/Root
--- linux-2.4.20/net/unix/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/unix/CVS/Root	2005-01-06 23:08:06.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/unix/CVS/Tag linux-2.4.20-mipscvs-20050106/net/unix/CVS/Tag
--- linux-2.4.20/net/unix/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/unix/CVS/Tag	2005-01-06 23:08:07.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/unix/.cvsignore linux-2.4.20-mipscvs-20050106/net/unix/.cvsignore
--- linux-2.4.20/net/unix/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/unix/.cvsignore	1999-12-06 17:13:23.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/net/wanrouter/CVS/Entries linux-2.4.20-mipscvs-20050106/net/wanrouter/CVS/Entries
--- linux-2.4.20/net/wanrouter/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/wanrouter/CVS/Entries	2005-01-06 23:08:07.000000000 -0600
@@ -0,0 +1,7 @@
+/.cvsignore/1.4/Mon Dec  6 23:13:23 1999/-ko/Tlinux_2_4_20
+/Makefile/1.5/Thu Jun 14 04:24:32 2001/-ko/Tlinux_2_4_20
+/af_wanpipe.c/1.3.2.1/Wed Jun 26 22:36:52 2002/-ko/Tlinux_2_4_20
+/patchlevel/1.4/Wed Jun 13 17:28:21 2001/-ko/Tlinux_2_4_20
+/wanmain.c/1.17/Sat Sep 22 12:49:44 2001/-ko/Tlinux_2_4_20
+/wanproc.c/1.21/Fri Oct 19 01:25:10 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/net/wanrouter/CVS/Repository linux-2.4.20-mipscvs-20050106/net/wanrouter/CVS/Repository
--- linux-2.4.20/net/wanrouter/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/wanrouter/CVS/Repository	2005-01-06 23:08:07.000000000 -0600
@@ -0,0 +1 @@
+linux/net/wanrouter
diff -urNd -urNd linux-2.4.20/net/wanrouter/CVS/Root linux-2.4.20-mipscvs-20050106/net/wanrouter/CVS/Root
--- linux-2.4.20/net/wanrouter/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/wanrouter/CVS/Root	2005-01-06 23:08:07.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/wanrouter/CVS/Tag linux-2.4.20-mipscvs-20050106/net/wanrouter/CVS/Tag
--- linux-2.4.20/net/wanrouter/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/wanrouter/CVS/Tag	2005-01-06 23:08:07.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/wanrouter/.cvsignore linux-2.4.20-mipscvs-20050106/net/wanrouter/.cvsignore
--- linux-2.4.20/net/wanrouter/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/wanrouter/.cvsignore	1999-12-06 17:13:23.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/net/x25/CVS/Entries linux-2.4.20-mipscvs-20050106/net/x25/CVS/Entries
--- linux-2.4.20/net/x25/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/x25/CVS/Entries	2005-01-06 23:08:07.000000000 -0600
@@ -0,0 +1,13 @@
+/.cvsignore/1.4/Mon Dec  6 23:13:23 1999/-ko/Tlinux_2_4_20
+/Makefile/1.4/Wed Jan 31 22:22:36 2001/-ko/Tlinux_2_4_20
+/af_x25.c/1.30.2.1/Wed Jun 26 22:36:52 2002/-ko/Tlinux_2_4_20
+/sysctl_net_x25.c/1.3/Sat Oct  9 00:01:56 1999/-ko/Tlinux_2_4_20
+/x25_dev.c/1.10/Wed Jan 31 22:22:36 2001/-ko/Tlinux_2_4_20
+/x25_facilities.c/1.5/Wed Jan 31 22:22:36 2001/-ko/Tlinux_2_4_20
+/x25_in.c/1.12/Wed Jan 31 22:22:36 2001/-ko/Tlinux_2_4_20
+/x25_link.c/1.11/Wed Aug 22 03:25:23 2001/-ko/Tlinux_2_4_20
+/x25_out.c/1.8/Wed Jun 13 17:28:21 2001/-ko/Tlinux_2_4_20
+/x25_route.c/1.6/Wed Jan 31 22:22:36 2001/-ko/Tlinux_2_4_20
+/x25_subr.c/1.8/Wed Aug 22 03:25:23 2001/-ko/Tlinux_2_4_20
+/x25_timer.c/1.4/Wed Jan 31 22:22:36 2001/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/net/x25/CVS/Repository linux-2.4.20-mipscvs-20050106/net/x25/CVS/Repository
--- linux-2.4.20/net/x25/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/x25/CVS/Repository	2005-01-06 23:08:07.000000000 -0600
@@ -0,0 +1 @@
+linux/net/x25
diff -urNd -urNd linux-2.4.20/net/x25/CVS/Root linux-2.4.20-mipscvs-20050106/net/x25/CVS/Root
--- linux-2.4.20/net/x25/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/x25/CVS/Root	2005-01-06 23:08:07.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/net/x25/CVS/Tag linux-2.4.20-mipscvs-20050106/net/x25/CVS/Tag
--- linux-2.4.20/net/x25/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/x25/CVS/Tag	2005-01-06 23:08:07.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/net/x25/.cvsignore linux-2.4.20-mipscvs-20050106/net/x25/.cvsignore
--- linux-2.4.20/net/x25/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/net/x25/.cvsignore	1999-12-06 17:13:23.000000000 -0600
@@ -0,0 +1,2 @@
+.depend
+.*.flags
diff -urNd -urNd linux-2.4.20/scripts/CVS/Entries linux-2.4.20-mipscvs-20050106/scripts/CVS/Entries
--- linux-2.4.20/scripts/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/scripts/CVS/Entries	2005-01-06 23:08:09.000000000 -0600
@@ -0,0 +1,31 @@
+/.cvsignore/1.2.6.1/Tue Aug 27 23:00:29 2002/-ko/Tlinux_2_4_20
+/Configure/1.19/Wed Aug 22 03:25:23 2001/-ko/Tlinux_2_4_20
+/Lindent/1.2/Sun Dec  2 11:35:02 2001/-ko/Tlinux_2_4_20
+/MAKEDEV.ide/1.2/Sat Oct  9 00:01:56 1999/-ko/Tlinux_2_4_20
+/Makefile/1.5/Thu Mar 23 02:26:03 2000/-ko/Tlinux_2_4_20
+/Menuconfig/1.18.2.1/Wed Jun 26 22:36:52 2002/-ko/Tlinux_2_4_20
+/README.Menuconfig/1.2/Tue Mar 17 22:19:12 1998/-ko/Tlinux_2_4_20
+/checkconfig.pl/1.4/Thu Jun 14 04:24:32 2001/-ko/Tlinux_2_4_20
+/checkhelp.pl/1.1/Mon Feb 15 02:23:56 1999/-ko/Tlinux_2_4_20
+/checkincludes.pl/1.1/Wed Apr 19 04:00:25 2000/-ko/Tlinux_2_4_20
+/docgen/1.2/Wed Aug 22 03:25:23 2001/-ko/Tlinux_2_4_20
+/docproc.c/1.4/Wed Aug 22 03:25:23 2001/-ko/Tlinux_2_4_20
+/gen-all-syms/1.2/Wed Apr 19 04:00:25 2000/-ko/Tlinux_2_4_20
+/header.tk/1.12/Wed Aug 22 03:25:23 2001/-ko/Tlinux_2_4_20
+/kernel-doc/1.11.2.2/Tue Sep 10 15:32:56 2002/-ko/Tlinux_2_4_20
+/makelst/1.2/Fri Mar  9 20:35:03 2001/-ko/Tlinux_2_4_20
+/mkdep.c/1.17/Fri Oct 19 01:25:10 2001/-ko/Tlinux_2_4_20
+/mkspec/1.1.2.2/Wed Jun 26 22:36:52 2002/-ko/Tlinux_2_4_20
+/mkversion/1.1/Fri Oct 19 01:25:10 2001/-ko/Tlinux_2_4_20
+/patch-kernel/1.4.2.1/Wed Jun 26 22:36:52 2002/-ko/Tlinux_2_4_20
+/pathdown.sh/1.1.1.1/Sun Jun  1 03:16:52 1997/-ko/Tlinux_2_4_20
+/split-include.c/1.3/Mon Nov  5 20:16:37 2001/-ko/Tlinux_2_4_20
+/split-man/1.1.2.1/Wed Jun 26 22:36:52 2002/-ko/Tlinux_2_4_20
+/tail.tk/1.6/Mon Jun 19 22:46:00 2000/-ko/Tlinux_2_4_20
+/tkcond.c/1.7/Thu Feb 24 00:13:24 2000/-ko/Tlinux_2_4_20
+/tkgen.c/1.11.2.1/Wed Jun 26 22:36:52 2002/-ko/Tlinux_2_4_20
+/tkparse.c/1.10.4.1/Wed Jun 26 22:36:52 2002/-ko/Tlinux_2_4_20
+/tkparse.h/1.7.4.1/Wed Jun 26 22:36:52 2002/-ko/Tlinux_2_4_20
+/ver_linux/1.9.2.1/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
+D/ksymoops////
+D/lxdialog////
diff -urNd -urNd linux-2.4.20/scripts/CVS/Repository linux-2.4.20-mipscvs-20050106/scripts/CVS/Repository
--- linux-2.4.20/scripts/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/scripts/CVS/Repository	2005-01-06 23:08:07.000000000 -0600
@@ -0,0 +1 @@
+linux/scripts
diff -urNd -urNd linux-2.4.20/scripts/CVS/Root linux-2.4.20-mipscvs-20050106/scripts/CVS/Root
--- linux-2.4.20/scripts/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/scripts/CVS/Root	2005-01-06 23:08:07.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/scripts/CVS/Tag linux-2.4.20-mipscvs-20050106/scripts/CVS/Tag
--- linux-2.4.20/scripts/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/scripts/CVS/Tag	2005-01-06 23:08:08.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/scripts/.cvsignore linux-2.4.20-mipscvs-20050106/scripts/.cvsignore
--- linux-2.4.20/scripts/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/scripts/.cvsignore	2002-08-27 18:00:29.000000000 -0500
@@ -0,0 +1,4 @@
+mkdep
+split-include
+kconfig.tk
+tkparse
diff -urNd -urNd linux-2.4.20/scripts/ksymoops/CVS/Entries linux-2.4.20-mipscvs-20050106/scripts/ksymoops/CVS/Entries
--- linux-2.4.20/scripts/ksymoops/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/scripts/ksymoops/CVS/Entries	2005-01-06 23:08:08.000000000 -0600
@@ -0,0 +1,2 @@
+/README/1.4/Thu Oct  5 01:19:04 2000/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/scripts/ksymoops/CVS/Repository linux-2.4.20-mipscvs-20050106/scripts/ksymoops/CVS/Repository
--- linux-2.4.20/scripts/ksymoops/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/scripts/ksymoops/CVS/Repository	2005-01-06 23:08:08.000000000 -0600
@@ -0,0 +1 @@
+linux/scripts/ksymoops
diff -urNd -urNd linux-2.4.20/scripts/ksymoops/CVS/Root linux-2.4.20-mipscvs-20050106/scripts/ksymoops/CVS/Root
--- linux-2.4.20/scripts/ksymoops/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/scripts/ksymoops/CVS/Root	2005-01-06 23:08:08.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/scripts/ksymoops/CVS/Tag linux-2.4.20-mipscvs-20050106/scripts/ksymoops/CVS/Tag
--- linux-2.4.20/scripts/ksymoops/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/scripts/ksymoops/CVS/Tag	2005-01-06 23:08:08.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/scripts/lxdialog/CVS/Entries linux-2.4.20-mipscvs-20050106/scripts/lxdialog/CVS/Entries
--- linux-2.4.20/scripts/lxdialog/CVS/Entries	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/scripts/lxdialog/CVS/Entries	2005-01-06 23:08:09.000000000 -0600
@@ -0,0 +1,14 @@
+/.cvsignore/1.1/Sat Mar 25 22:41:21 2000/-ko/Tlinux_2_4_20
+/BIG.FAT.WARNING/1.1.1.1/Sun Jun  1 03:16:52 1997/-ko/Tlinux_2_4_20
+/Makefile/1.4/Mon Jun 19 22:46:00 2000/-ko/Tlinux_2_4_20
+/checklist.c/1.5/Wed Jun 13 17:28:21 2001/-ko/Tlinux_2_4_20
+/colors.h/1.1.1.1/Sun Jun  1 03:16:52 1997/-ko/Tlinux_2_4_20
+/dialog.h/1.2/Mon Jan  4 16:11:27 1999/-ko/Tlinux_2_4_20
+/inputbox.c/1.2/Sun Jun 13 16:38:16 1999/-ko/Tlinux_2_4_20
+/lxdialog.c/1.3/Mon Jan  4 16:11:27 1999/-ko/Tlinux_2_4_20
+/menubox.c/1.6/Fri Mar  9 20:35:03 2001/-ko/Tlinux_2_4_20
+/msgbox.c/1.2/Sun Jun 13 16:38:17 1999/-ko/Tlinux_2_4_20
+/textbox.c/1.3/Sun Jun 13 16:38:17 1999/-ko/Tlinux_2_4_20
+/util.c/1.1.1.1/Sun Jun  1 03:16:52 1997/-ko/Tlinux_2_4_20
+/yesno.c/1.2/Sun Jun 13 16:38:17 1999/-ko/Tlinux_2_4_20
+D
diff -urNd -urNd linux-2.4.20/scripts/lxdialog/CVS/Repository linux-2.4.20-mipscvs-20050106/scripts/lxdialog/CVS/Repository
--- linux-2.4.20/scripts/lxdialog/CVS/Repository	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/scripts/lxdialog/CVS/Repository	2005-01-06 23:08:08.000000000 -0600
@@ -0,0 +1 @@
+linux/scripts/lxdialog
diff -urNd -urNd linux-2.4.20/scripts/lxdialog/CVS/Root linux-2.4.20-mipscvs-20050106/scripts/lxdialog/CVS/Root
--- linux-2.4.20/scripts/lxdialog/CVS/Root	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/scripts/lxdialog/CVS/Root	2005-01-06 23:08:08.000000000 -0600
@@ -0,0 +1 @@
+:pserver:cvs@ftp.linux-mips.org:/home/cvs
diff -urNd -urNd linux-2.4.20/scripts/lxdialog/CVS/Tag linux-2.4.20-mipscvs-20050106/scripts/lxdialog/CVS/Tag
--- linux-2.4.20/scripts/lxdialog/CVS/Tag	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/scripts/lxdialog/CVS/Tag	2005-01-06 23:08:09.000000000 -0600
@@ -0,0 +1 @@
+Nlinux_2_4_20
diff -urNd -urNd linux-2.4.20/scripts/lxdialog/.cvsignore linux-2.4.20-mipscvs-20050106/scripts/lxdialog/.cvsignore
--- linux-2.4.20/scripts/lxdialog/.cvsignore	1969-12-31 18:00:00.000000000 -0600
+++ linux-2.4.20-mipscvs-20050106/scripts/lxdialog/.cvsignore	2000-03-25 16:41:21.000000000 -0600
@@ -0,0 +1 @@
+lxdialog