linux/arch/xtensa/boot/boot-elf/bootstrap.S
<<
>>
Prefs
   1/*
   2 * arch/xtensa/boot/boot-elf/bootstrap.S
   3 *
   4 * Low-level exception handling
   5 *
   6 * This file is subject to the terms and conditions of the GNU General Public
   7 * License.  See the file "COPYING" in the main directory of this archive
   8 * for more details.
   9 *
  10 * Copyright (C) 2004 - 2013 by Tensilica Inc.
  11 *
  12 * Chris Zankel <chris@zankel.net>
  13 * Marc Gauthier <marc@tensilica.com>
  14 * Piet Delaney <piet@tensilica.com>
  15 */
  16
  17#include <asm/bootparam.h>
  18#include <asm/initialize_mmu.h>
  19#include <asm/vectors.h>
  20#include <linux/linkage.h>
  21
  22        .section        .ResetVector.text, "ax"
  23        .global         _ResetVector
  24        .global         reset
  25
  26_ResetVector:
  27        _j _SetupMMU
  28
  29        .begin  no-absolute-literals
  30        .literal_position
  31
  32#ifdef CONFIG_PARSE_BOOTPARAM
  33        .align 4
  34_bootparam:
  35        .short  BP_TAG_FIRST
  36        .short  4
  37        .long   BP_VERSION
  38        .short  BP_TAG_LAST
  39        .short  0
  40        .long   0
  41#endif
  42
  43        .align  4
  44_SetupMMU:
  45        movi    a0, 0
  46        wsr     a0, windowbase
  47        rsync
  48        movi    a0, 1
  49        wsr     a0, windowstart
  50        rsync
  51        movi    a0, 0x1F
  52        wsr     a0, ps
  53        rsync
  54
  55#ifndef CONFIG_INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX
  56        initialize_mmu
  57#endif
  58
  59        rsil    a0, XCHAL_DEBUGLEVEL-1
  60        rsync
  61reset:
  62#if defined(CONFIG_INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX) && \
  63        XCHAL_HAVE_PTP_MMU && XCHAL_HAVE_SPANNING_WAY
  64        movi    a0, CONFIG_KERNEL_LOAD_ADDRESS
  65#else
  66        movi    a0, KERNELOFFSET
  67#endif
  68#ifdef CONFIG_PARSE_BOOTPARAM
  69        movi    a2, _bootparam
  70#else
  71        movi    a2, 0
  72#endif
  73        movi    a3, 0
  74        movi    a4, 0
  75        jx      a0
  76
  77        .end    no-absolute-literals
  78