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 #if XCHAL_HAVE_WINDOWED 46 movi a0, 0 47 wsr a0, windowbase 48 rsync 49 movi a0, 1 50 wsr a0, windowstart 51 rsync 52 #endif 53 movi a0, 0x1F 54 wsr a0, ps 55 rsync 56 57 #ifndef CONFIG_INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 58 initialize_mmu 59 #endif 60 61 rsil a0, XCHAL_DEBUGLEVEL-1 62 rsync 63 reset: 64 #if defined(CONFIG_INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX) && \ 65 XCHAL_HAVE_PTP_MMU && XCHAL_HAVE_SPANNING_WAY 66 movi a0, CONFIG_KERNEL_LOAD_ADDRESS 67 #else 68 movi a0, KERNELOFFSET 69 #endif 70 #ifdef CONFIG_PARSE_BOOTPARAM 71 movi a2, _bootparam 72 #else 73 movi a2, 0 74 #endif 75 movi a3, 0 76 movi a4, 0 77 jx a0 78 79 .end no-absolute-literals
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.