linux-cvs-patches
[Top] [All Lists]

CVS Update@linux-mips.org: linux

To: linux-cvs-patches@linux-mips.org
Subject: CVS Update@linux-mips.org: linux
From: ralf@linux-mips.org
Date: Thu, 14 Jul 2005 10:42:48 +0100
Reply-to: linux-mips@linux-mips.org
Sender: linux-cvs-patches-bounce@linux-mips.org
CVSROOT:        /home/cvs
Module name:    linux
Changes by:     ralf@ftp.linux-mips.org 05/07/14 10:42:35

Modified files:
        arch/mips/kernel: head.S 
Added files:
        include/asm-mips/mach-generic: kernel-entry-init.h 
        include/asm-mips/mach-ip27: kernel-entry-init.h 

Log message:
        Move Origin crapola into a machine-specific header file.

diff -urN linux/arch/mips/kernel/head.S linux/arch/mips/kernel/head.S
--- linux/arch/mips/kernel/head.S       2005/07/11 11:53:44     1.68
+++ linux/arch/mips/kernel/head.S       2005/07/14 09:42:32     1.69
@@ -22,11 +22,8 @@
 #include <asm/page.h>
 #include <asm/mipsregs.h>
 #include <asm/stackframe.h>
-#ifdef CONFIG_SGI_IP27
-#include <asm/sn/addrs.h>
-#include <asm/sn/sn0/hubni.h>
-#include <asm/sn/klkernvars.h>
-#endif
+
+#include <kernel-entry-init.h>
 
        .macro  ARC64_TWIDDLE_PC
 #if defined(CONFIG_ARC64) || defined(CONFIG_MAPPED_KERNEL)
@@ -38,18 +35,6 @@
 #endif
        .endm
 
-#ifdef CONFIG_SGI_IP27
-       /*
-        * outputs the local nasid into res.  IP27 stuff.
-        */
-       .macro GET_NASID_ASM res
-       dli     \res, LOCAL_HUB_ADDR(NI_STATUS_REV_ID)
-       ld      \res, (\res)
-       and     \res, NSRI_NODEID_MASK
-       dsrl    \res, NSRI_NODEID_SHFT
-       .endm
-#endif /* CONFIG_SGI_IP27 */
-
        /*
         * inputs are the text nasid in t1, data nasid in t2.
         */
@@ -136,13 +121,10 @@
 #endif
 
 NESTED(kernel_entry, 16, sp)                   # kernel entry point
-       setup_c0_status_pri
 
-#ifdef CONFIG_SGI_IP27
-       GET_NASID_ASM   t1
-       move    t2, t1                          # text and data are here
-       MAPPED_KERNEL_SETUP_TLB
-#endif /* IP27 */
+       kernel_entry_setup                      # cpu specific setup
+
+       setup_c0_status_pri
 
        ARC64_TWIDDLE_PC
 
@@ -179,20 +161,7 @@
  */
 NESTED(smp_bootstrap, 16, sp)
        setup_c0_status_sec
-
-#ifdef CONFIG_SGI_IP27
-       GET_NASID_ASM   t1
-       dli     t0, KLDIR_OFFSET + (KLI_KERN_VARS * KLDIR_ENT_SIZE) + \
-                   KLDIR_OFF_POINTER + CAC_BASE
-       dsll    t1, NASID_SHFT
-       or      t0, t0, t1
-       ld      t0, 0(t0)                       # t0 points to kern_vars struct
-       lh      t1, KV_RO_NASID_OFFSET(t0)
-       lh      t2, KV_RW_NASID_OFFSET(t0)
-       MAPPED_KERNEL_SETUP_TLB
-       ARC64_TWIDDLE_PC
-#endif /* CONFIG_SGI_IP27 */
-
+       smp_slave_setup
        j       start_secondary
        END(smp_bootstrap)
 #endif /* CONFIG_SMP */
diff -urN linux/include/asm-mips/mach-generic/kernel-entry-init.h 
linux/include/asm-mips/mach-generic/kernel-entry-init.h
--- linux/include/asm-mips/mach-generic/kernel-entry-init.h     1970/01/01 
00:00:00
+++ linux/include/asm-mips/mach-generic/kernel-entry-init.h     2005-07-14 
10:42:34.689336000 +0100     1.1
@@ -0,0 +1,17 @@
+/*
+ * 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) 2005 Embedded Alley Solutions, Inc
+ */
+#ifndef __ASM_MACH_GENERIC_KERNEL_ENTRY_H
+#define __ASM_MACH_GENERIC_KERNEL_ENTRY_H
+
+/* Intentionally empty macro, used in head.S. Override in 
+ * arch/mips/mach-xxx/kernel-entry-init.h when necessary.
+ */
+.macro kernel_entry_setup
+.endm
+
+#endif /* __ASM_MACH_GENERIC_KERNEL_ENTRY_H */
diff -urN linux/include/asm-mips/mach-ip27/kernel-entry-init.h 
linux/include/asm-mips/mach-ip27/kernel-entry-init.h
--- linux/include/asm-mips/mach-ip27/kernel-entry-init.h        1970/01/01 
00:00:00
+++ linux/include/asm-mips/mach-ip27/kernel-entry-init.h        2005-07-14 
10:42:35.233309000 +0100     1.1
@@ -0,0 +1,52 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * Copyright (C) 2000 Silicon Graphics, Inc.
+ * Copyright (C) 2005 Ralf Baechle <ralf@linux-mips.org>
+ */
+#ifndef __ASM_MACH_IP27_KERNEL_ENTRY_H
+#define __ASM_MACH_IP27_KERNEL_ENTRY_H
+
+#include <asm/sn/addrs.h>
+#include <asm/sn/sn0/hubni.h>
+#include <asm/sn/klkernvars.h>
+
+/*
+ * Returns the local nasid into res.
+ */
+       .macro GET_NASID_ASM res
+       dli     \res, LOCAL_HUB_ADDR(NI_STATUS_REV_ID)
+       ld      \res, (\res)
+       and     \res, NSRI_NODEID_MASK
+       dsrl    \res, NSRI_NODEID_SHFT
+       .endm
+
+/*
+ * Intentionally empty macro, used in head.S. Override in 
+ * arch/mips/mach-xxx/kernel-entry-init.h when necessary.
+ */
+       .macro  kernel_entry_setup
+       GET_NASID_ASM   t1
+       move            t2, t1                  # text and data are here
+       MAPPED_KERNEL_SETUP_TLB
+       .endm
+
+/*
+ * Do SMP slave processor setup necessary before we can savely execute C code.
+ */
+       .macro  smp_slave_setup
+       GET_NASID_ASM   t1
+       dli     t0, KLDIR_OFFSET + (KLI_KERN_VARS * KLDIR_ENT_SIZE) + \
+                   KLDIR_OFF_POINTER + CAC_BASE
+       dsll    t1, NASID_SHFT
+       or      t0, t0, t1
+       ld      t0, 0(t0)                       # t0 points to kern_vars struct
+       lh      t1, KV_RO_NASID_OFFSET(t0)
+       lh      t2, KV_RW_NASID_OFFSET(t0)
+       MAPPED_KERNEL_SETUP_TLB
+       ARC64_TWIDDLE_PC
+       .endm
+
+#endif /* __ASM_MACH_IP27_KERNEL_ENTRY_H */

<Prev in Thread] Current Thread [Next in Thread>