Move Origin crapola into a machine-specific header file.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
a0c3a5b5a8
commit
7e35952baa
|
@ -22,11 +22,8 @@
|
||||||
#include <asm/page.h>
|
#include <asm/page.h>
|
||||||
#include <asm/mipsregs.h>
|
#include <asm/mipsregs.h>
|
||||||
#include <asm/stackframe.h>
|
#include <asm/stackframe.h>
|
||||||
#ifdef CONFIG_SGI_IP27
|
|
||||||
#include <asm/sn/addrs.h>
|
#include <kernel-entry-init.h>
|
||||||
#include <asm/sn/sn0/hubni.h>
|
|
||||||
#include <asm/sn/klkernvars.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
.macro ARC64_TWIDDLE_PC
|
.macro ARC64_TWIDDLE_PC
|
||||||
#if defined(CONFIG_ARC64) || defined(CONFIG_MAPPED_KERNEL)
|
#if defined(CONFIG_ARC64) || defined(CONFIG_MAPPED_KERNEL)
|
||||||
|
@ -38,18 +35,6 @@
|
||||||
#endif
|
#endif
|
||||||
.endm
|
.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.
|
* inputs are the text nasid in t1, data nasid in t2.
|
||||||
*/
|
*/
|
||||||
|
@ -142,13 +127,10 @@ EXPORT(_stext)
|
||||||
__INIT
|
__INIT
|
||||||
|
|
||||||
NESTED(kernel_entry, 16, sp) # kernel entry point
|
NESTED(kernel_entry, 16, sp) # kernel entry point
|
||||||
setup_c0_status_pri
|
|
||||||
|
|
||||||
#ifdef CONFIG_SGI_IP27
|
kernel_entry_setup # cpu specific setup
|
||||||
GET_NASID_ASM t1
|
|
||||||
move t2, t1 # text and data are here
|
setup_c0_status_pri
|
||||||
MAPPED_KERNEL_SETUP_TLB
|
|
||||||
#endif /* IP27 */
|
|
||||||
|
|
||||||
ARC64_TWIDDLE_PC
|
ARC64_TWIDDLE_PC
|
||||||
|
|
||||||
|
@ -185,20 +167,7 @@ NESTED(kernel_entry, 16, sp) # kernel entry point
|
||||||
*/
|
*/
|
||||||
NESTED(smp_bootstrap, 16, sp)
|
NESTED(smp_bootstrap, 16, sp)
|
||||||
setup_c0_status_sec
|
setup_c0_status_sec
|
||||||
|
smp_slave_setup
|
||||||
#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 */
|
|
||||||
|
|
||||||
j start_secondary
|
j start_secondary
|
||||||
END(smp_bootstrap)
|
END(smp_bootstrap)
|
||||||
#endif /* CONFIG_SMP */
|
#endif /* CONFIG_SMP */
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
/*
|
||||||
|
* 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
|
||||||
|
* Copyright (C) 2005 Ralf Baechle (ralf@linux-mips.org)
|
||||||
|
*/
|
||||||
|
#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
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Do SMP slave processor setup necessary before we can savely execute C code.
|
||||||
|
*/
|
||||||
|
.macro smp_slave_setup
|
||||||
|
.endm
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* __ASM_MACH_GENERIC_KERNEL_ENTRY_H */
|
|
@ -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 */
|
Loading…
Reference in New Issue