root/arch/xtensa/boot/boot-elf/bootstrap.S

/* [<][>][^][v][top][bottom][index][help] */
   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
  61 reset:
  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

/* [<][>][^][v][top][bottom][index][help] */