linux/arch/mips/include/asm/mach-malta/kernel-entry-init.h
<<
>>
Prefs
   1/*
   2 * This file is subject to the terms and conditions of the GNU General Public
   3 * License.  See the file "COPYING" in the main directory of this archive
   4 * for more details.
   5 *
   6 * Chris Dearman (chris@mips.com)
   7 * Copyright (C) 2007 Mips Technologies, Inc.
   8 */
   9#ifndef __ASM_MACH_MIPS_KERNEL_ENTRY_INIT_H
  10#define __ASM_MACH_MIPS_KERNEL_ENTRY_INIT_H
  11
  12        .macro  kernel_entry_setup
  13#ifdef CONFIG_MIPS_MT_SMTC
  14        mfc0    t0, CP0_CONFIG
  15        bgez    t0, 9f
  16        mfc0    t0, CP0_CONFIG, 1
  17        bgez    t0, 9f
  18        mfc0    t0, CP0_CONFIG, 2
  19        bgez    t0, 9f
  20        mfc0    t0, CP0_CONFIG, 3
  21        and     t0, 1<<2
  22        bnez    t0, 0f
  239:
  24        /* Assume we came from YAMON... */
  25        PTR_LA  v0, 0x9fc00534  /* YAMON print */
  26        lw      v0, (v0)
  27        move    a0, zero
  28        PTR_LA  a1, nonmt_processor
  29        jal     v0
  30
  31        PTR_LA  v0, 0x9fc00520  /* YAMON exit */
  32        lw      v0, (v0)
  33        li      a0, 1
  34        jal     v0
  35
  361:      b       1b
  37
  38        __INITDATA
  39nonmt_processor:
  40        .asciz  "SMTC kernel requires the MT ASE to run\n"
  41        __FINIT
  420:
  43#endif
  44        .endm
  45
  46/*
  47 * Do SMP slave processor setup necessary before we can safely execute C code.
  48 */
  49        .macro  smp_slave_setup
  50        .endm
  51
  52#endif /* __ASM_MACH_MIPS_KERNEL_ENTRY_INIT_H */
  53