diff options
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.patch | 119169 |
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 *)®s->reg0, 32*4, 0); ++ ptr += 32*8; ++ hex2mem(ptr, (char *)®s->cp0_status, 6*4, 0); ++ ptr += 6*8; ++ hex2mem(ptr, (char *)®s->fpr0, 32*4, 0); ++ ptr += 32*8; ++ hex2mem(ptr, (char *)®s->cp1_fsr, 2*4, 0); ++ ptr += 2*8; ++ hex2mem(ptr, (char *)®s->frame_ptr, 2*4, 0); ++ ptr += 2*8; ++ hex2mem(ptr, (char *)®s->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, ¤t->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], ¤t->thread.fpu, sizeof(current->thread.fpu)); ++ memcpy(r, ¤t->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 = ¤t->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 = ¤t->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, ¤t->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, ¤t->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 = ®s->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 = ®s->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 = ®s->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 = ®s->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 = ®s->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, ++ ®ptr, &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, ®s, 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(¤t->mm->mmap_sem); ++ error = do_mmap_pgoff(file, addr, len, prot, flags, pgoff); ++ up_write(¤t->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(¤t->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, ®s); + 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, ¤t->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], ¤t->thread.fpu, +- sizeof(current->thread.fpu)); ++ memcpy(r, ¤t->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 = ¤t->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 = ¤t->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(¤t->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(¤t->blocked, ¤t->blocked, &these); ++ recalc_sigpending(current); ++ spin_unlock_irq(¤t->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(¤t->sigmask_lock); ++ sig = dequeue_signal(&these, &info); ++ current->blocked = oldblocked; ++ recalc_sigpending(current); ++ } ++ spin_unlock_irq(¤t->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(®s); +- uset = (sigset_t *) regs.regs[4]; +- if (copy_from_user(&newset, uset, sizeof(sigset_t))) +- return -EFAULT; +- sigdelsetmask(&newset, ~_BLOCKABLE); +- +- spin_lock_irq(¤t->sigmask_lock); +- saveset = current->blocked; +- current->blocked = newset; +- recalc_sigpending(current); +- spin_unlock_irq(¤t->sigmask_lock); +- +- regs.regs[2] = EINTR; +- regs.regs[7] = 1; +- while (1) { +- current->state = TASK_INTERRUPTIBLE; +- schedule(); +- if (do_signal(&saveset, ®s)) +- 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 = ¤t->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 = ¤t->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(¤t->sigmask_lock); +- current->blocked = blocked; +- recalc_sigpending(current); +- spin_unlock_irq(¤t->sigmask_lock); +- +- if (restore_sigcontext(®s, &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" (®s)); +- /* 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(¤t->sigmask_lock); +- current->blocked = set; +- recalc_sigpending(current); +- spin_unlock_irq(¤t->sigmask_lock); +- +- if (restore_sigcontext(®s, &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" (®s)); +- /* 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, ¤t->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, ¤t->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 = ®s->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 = ®s->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 = ®s->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 = ®s->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 = ®s->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, ++ ®ptr, &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, ¤t->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 |