summaryrefslogtreecommitdiffstats
path: root/recipes/linux/linux-wrt-2.4.20/linux-2.4.20-mipscvs.patch
diff options
context:
space:
mode:
authorDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
committerDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
commit709c4d66e0b107ca606941b988bad717c0b45d9b (patch)
tree37ee08b1eb308f3b2b6426d5793545c38396b838 /recipes/linux/linux-wrt-2.4.20/linux-2.4.20-mipscvs.patch
parentfa6cd5a3b993f16c27de4ff82b42684516d433ba (diff)
downloadopenembedded-709c4d66e0b107ca606941b988bad717c0b45d9b.tar.gz
rename packages/ to recipes/ per earlier agreement
See links below for more details: http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326 http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816 Signed-off-by: Denys Dmytriyenko <denis@denix.org> Acked-by: Mike Westerhof <mwester@dls.net> Acked-by: Philip Balister <philip@balister.org> Acked-by: Khem Raj <raj.khem@gmail.com> Acked-by: Marcin Juszkiewicz <hrw@openembedded.org> Acked-by: Koen Kooi <koen@openembedded.org> Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'recipes/linux/linux-wrt-2.4.20/linux-2.4.20-mipscvs.patch')
-rw-r--r--recipes/linux/linux-wrt-2.4.20/linux-2.4.20-mipscvs.patch119169
1 files changed, 119169 insertions, 0 deletions
diff --git a/recipes/linux/linux-wrt-2.4.20/linux-2.4.20-mipscvs.patch b/recipes/linux/linux-wrt-2.4.20/linux-2.4.20-mipscvs.patch
new file mode 100644
index 0000000000..45cfe20894
--- /dev/null
+++ b/recipes/linux/linux-wrt-2.4.20/linux-2.4.20-mipscvs.patch
@@ -0,0 +1,119169 @@
+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