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 -#include -#include - -/* - * 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 +#include +#include + +/* + * 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 #include -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 #elif defined(CONFIG_MIPS_PB1100) #include +#elif defined(CONFIG_MIPS_DB1000) +#include +#elif defined(CONFIG_MIPS_DB1100) +#include +#elif defined(CONFIG_MIPS_DB1500) +#include #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< 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 #include #include -#ifdef CONFIG_AU1000_SERIAL_CONSOLE +#ifdef CONFIG_AU1X00_SERIAL_CONSOLE #include #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 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include + +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 + +#ifdef CONFIG_PCI + +#include +#include +#include +#include + +#include +#include + +#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 + +#ifdef CONFIG_PCI + +#include +#include +#include +#include + +#include +#include +#include + +#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<> 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 +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#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<> 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 #include #include +#include #include #include @@ -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 #include #include - + .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<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 #include 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 #include #include -#include +#include #include 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 -#include - -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 [-a]\n"); + "usage: elf2ecoff [-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 #include @@ -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 - * Sony Software Development Center Europe (SDCE), Brussels - */ -#include -#include -#include -#include - -/* 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 - * Sony Software Development Center Europe (SDCE), Brussels - */ -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - - -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 - * Sony Software Development Center Europe (SDCE), Brussels - */ -#include -#include - -#include - - -/* - * 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 - * Albert Dorofeev - * Sony Software Development Center Europe (SDCE), Brussels - */ -#include -#include -#include -#include -#include -#include - -#include - - -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 - * Sony Software Development Center Europe (SDCE), Brussels - */ -#include -#include -#include -#include - -#include -#include - - -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 - * Sony Software Development Center Europe (SDCE), Brussels - */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -#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 - * Sony Software Development Center Europe (SDCE), Brussels - */ -#include -#include - -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 #include #include +#include /* * 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 +#include + +/* 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 #include #include +#include #include - -#include "prom.h" +#include #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 #include +#include #include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include #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 #include +#include +#include + #include #include -#include "prom.h" +#include -/* - * 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 #include +#include #include #include #include +#include #include -#include - #include - #include +#include +#include -#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 #include -extern int (*prom_getchar) (void); -extern int (*prom_printf) (char *,...); +#include 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 +#include + +#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 +#include #include 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 #include #include +#include #include #include @@ -28,15 +29,15 @@ #include #include +#include +#include +#include #include #include #include #include #include #include -#include -#include -#include 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 #include #include #include @@ -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 #include #include #include @@ -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 #include -#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 #include #include +#include #include #include #include @@ -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 @@ -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 #include #include #include @@ -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 #include #include +#include #include #include #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 #include #include #include @@ -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 #include #include #include #include #include -#include #include #include #include @@ -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 #include #include #include #include #include -#include #include #include #include @@ -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 #include -#include #include #include #include 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 #include #include @@ -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 #include #include +#include /* * 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 #include #include #include 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 * * This program is free software; you can redistribute it and/or modify it @@ -37,7 +37,6 @@ #include #include #include -#include #include #include @@ -45,13 +44,13 @@ #include 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 #include #include +#include /* 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 #include #include +#include #include /* @@ -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 /* + * [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 #include #include +#include +#include #include #include @@ -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 -#include -#include -#include -#include - -/* - * 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 -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -/* - * 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 #include +#include #include #include #include @@ -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 #include #include +#include /* * 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 +#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 #include @@ -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 #include #include +#include #include #include #include @@ -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 #include #include +#include #include #include @@ -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 #include #include +#include #include #include #include @@ -32,21 +33,13 @@ #include #include #include +#include #include #include #include #include #include -/* - * 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 -#include - -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 + * + */ +#include +#include +#include +#include +#include + +#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 + * + */ + +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 + * + */ +#include +#include +#include +#include + +#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 + * + */ +#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 + + .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 +# + +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 +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +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 + * 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 +#include +#include +#include +#include +#include +#include +#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 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 + +#include +#include +#include +#include + + .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 +#include +#include +#include +#include + +#include +#include +#include + +#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 + * + */ +#include +#include +#include +#include +#include +#include +#include +#include + +#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 + * + */ +#include + +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 + * + */ +#include +#include +#include +#include + +#include +#include + +#include + +#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) { + 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; iread_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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "at93c.h" +#include +#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 + * 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 +#include +#include +#include +#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 + * Copyright (C) 2000 LASAT Networks A/S. + * + * Brian Murphy + * + * ######################################################################## + * + * 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 +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include + +#include +#include +#include + +#if CONFIG_PICVUE +#include +#endif + +#include "ds1603.h" +#include "at93c.h" +#include +#include +#include + +#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 + * 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 +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#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 +#include + +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 #include #include -#include #include -#include +#include #include -#include +#ifdef CONFIG_MIPS_ATLAS + +#include -#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 -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 #include #include -#include #include 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 +#include + +/* 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 +#include +#include +#include +#include + +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 +#include + +#include +#include +#include +#include +#include + + .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 #include @@ -20,9 +15,9 @@ #include #include +#include #include #include -#include #include #include #include @@ -31,17 +26,15 @@ #include /* 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 #include -#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 . */ - __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 . */ + 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 /* 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 #include #include +#include #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 #include @@ -23,11 +25,19 @@ #include #include +#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]\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]\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 #include -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 +#include +#include +#include +#include +#include +#include +#include +#include +#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 + +#if defined(CONFIG_REMOTE_DEBUG) + +#include /* 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 + * + * 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 +#include +#include +#include +#include +#include +#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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +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 +#include +#include +#include +#include +#include +#include +#include +#include +#include + +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 + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the 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 +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#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 + * + * 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 +#include +#include +#include +#include +#include + + +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 + * + * 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 +#include +#include +#include +#include + +#include +#include +#include + +#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 + */ +#include +#include +#include +#include +#include +#include +#include +#include + +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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#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 +#include +#include +#include +#include +#include +#include +#include +#include +#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 #include #include #include @@ -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 @@ -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 #include #include #include @@ -18,6 +19,7 @@ #include #include #include +#include #include 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 #include -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 -#include -#include -#include -#include - -#include -#include -#include - -#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 #include #include - -extern void dump_tlb_addr(unsigned long addr); -extern void dump_tlb_all(void); +#include 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 #include #include #include +#include +#include #include #include #include #include #include -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 @@ -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 #include #include +#include -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 +#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 +#include + +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 +#include +#include +#include + +#include + +#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 -#include - -/* 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 #include #include -#include "bcm1250_tbprof.h" +#include -#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 +#include +#include +#include +#include + +#include +#include +#include +#include +#include + + +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 +#include + +#include + +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= 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 -#include - -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 -#include -#include -#include - - .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 #include @@ -48,56 +41,74 @@ #include #include -#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 +#include +#include + +#include +#include +#include #include #include #include #include +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 +#include + +#include +#include + +#include +#include +#include +#include + + +/* 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 #include #include -#include +#include 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 - -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 #include #include +#include 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 Sun, 24 Feb 2002 + * - Added CASIO CASSIOPEIA E-55/65 support. + */ +#include +#include +#include +#include +#include +#include + +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 +#include +#include +#include + +#include + +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 +#include +#include +#include +#include + +#include +#include +#include + +#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 +#include +#include +#include +#include +#include +#include + +#include +#include + +MODULE_DESCRIPTION("NEC VRC4173 driver for NEC VR4122/4131"); +MODULE_AUTHOR("Yoichi Yuasa "); +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 Sun, 24 Feb 2002 + * - Added IBM WorkPad z50 support. + */ +#include +#include +#include +#include +#include +#include + +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 +#include +#include +#include + +#include + +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 +#include +#include +#include +#include + +#include +#include +#include + +#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 #include -#ifdef CONFIG_VRC4173 #include -#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 + +#ifdef CONFIG_PCI +#include +#include +#include + +#include +#include +#include + +#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 +#include +#include +#include + +#include +#include +#include +#include + +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 +#include +#include + +#include + +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 +#include +#include +#include +#include + +#include +#include +#include +#include + +#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 Fri, 23 Aug 2002 + * - Added Victor MP-C303/304 support. + */ +#include +#include +#include +#include +#include +#include + +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 +#include +#include +#include + +#include +#include +#include +#include + +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 +#include +#include + +#include +#include + +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 +#include +#include +#include +#include + +#include +#include +#include +#include + +#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 -#include -#include -#include - -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 +#include +#include +#include + +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 +#include +#include +#include + +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 #include +#include #include + #include #include +#include #include +#include /* * 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 ." +#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 ." +#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 ." +#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 #include #include +#include #include #include #include @@ -31,6 +33,7 @@ #include #include #include +#include #include #include @@ -38,11 +41,17 @@ #undef __KERNEL__ /* This file was born to be ugly ... */ #include #define __KERNEL__ +#include + #include #include #include +#ifdef CONFIG_SIBYTE_TBPROF +#include +#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 #include #include -#include #include #include #include @@ -32,6 +31,7 @@ #include #include #include +#include #include #include @@ -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 #include #include +#include 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 #include +#include #include #include #include @@ -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 #include #include -#include +#include 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 #include -#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 +#include +#include +#include +#include +#include +#include +#include + +/* This duplicates the definition from */ +#define PT_TRACESYS 0x00000002 /* tracing system calls */ + +/* This duplicates the definition from */ +#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 #include #include +#include #include #include #include @@ -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 #include #include +#include #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 #include #include +#include #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 #include #include +#include #include #include @@ -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 #include #include +#include #include #include #include #include #include #include +#include #include #include #include @@ -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 #include #include #include +#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 +#include + +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 -#include -#include -#include -#include -#include -#include -#include -#include - -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 +#include +#include +#include +#include +#include +#include +#include +#include + +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 +#include + +/* 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 +#include +#include +#include +#include + +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 +#include + +#include +#include +#include +#include +#include + + .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 +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* 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 +#include + +/* + * 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 . */ + 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 . */ + 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 +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * 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 +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include + +#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 -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -/* 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 -#include - -#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 #include +#include #include #include #include #include -#include /* 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 +#include +#include +#include +#include +#include +#include +#include +#include + +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 +#include +#include +#include +#include +#include + + .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 #include +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 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 . + 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 . + 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 . + 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 @@ . 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 . 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#undef DEBUG +#include + +#include +#include +#include +#include +#include + +#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; iep_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; iread_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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#undef DEBUG +#include + +#include +#include +#include +#include +#include + + +/* 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; iep_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 #include #include -#include -#include #include #include #include #include -#include -#include -#include -#include -#include - #include #include + #include +#include +#include +#include +#include +#include +#include +#include +#include #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 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 -#include #include #include #include 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 #include #include #include 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 #include #include #include @@ -43,13 +43,14 @@ #include #include #include +#include #include #include #include -#include #include #include #include +#include #include /* 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"); -#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 , * Juergen Beisert , * Theodore Ts'o + * + * 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 + +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 -#include #include -#include -#include -#include #include -#include -#include -#include -#include -#include -#include #include -/* 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 + * + */ + +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include + +#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 +#include +#include +#include +#include +#include +#include +#include +#include + +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 "); +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 + +#ifndef __mips__ +#error This driver only works with MIPS architectures! +#endif + + #include #include #include @@ -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; ipriv != 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 * * 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 -#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 #include #include +#include #include #include @@ -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 #include #include +#include /* 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 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 @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include "cs_internal.h" + +#include +#include +#include + +#include +#include + +#include + +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 + * + * Copyright (C) 2002, 2003 Maciej W. Rozycki */ #include @@ -26,56 +28,48 @@ #include #include #include +#include #include -#include "scsi.h" -#include "hosts.h" -#include "NCR53C9x.h" -#include "dec_esp.h" - -#include -#include -#include #include - +#include #include +#include -#include #include +#include #include #include #include +#include + +#include "scsi.h" +#include "hosts.h" +#include "NCR53C9x.h" +#include "dec_esp.h" -#include -/* - * 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 -#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 - * Copyright (C) 2001, 2002 Maciej W. Rozycki + * Copyright (C) 2001, 2002, 2003 Maciej W. Rozycki */ #include @@ -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 " - "\n"); + "\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 #include #include +#include #include #include #include @@ -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 #include #include -#ifdef CONFIG_SERIAL_CONSOLE +#ifdef CONFIG_SERIAL_DEC_CONSOLE #include #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 -#include +#include