/* * arch/xtensa/boot/boot-elf/bootstrap.S * * Low-level exception handling * * 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) 2004 - 2013 by Tensilica Inc. * * Chris Zankel * Marc Gauthier * Piet Delaney */ #include #include #include #include #include #include #include #include .section .ResetVector.text, "ax" .global _ResetVector .global reset _ResetVector: _j _SetupMMU .begin no-absolute-literals .literal_position .align 4 RomInitAddr: #if defined(CONFIG_INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX) && \ XCHAL_HAVE_PTP_MMU && XCHAL_HAVE_SPANNING_WAY .word CONFIG_KERNEL_LOAD_ADDRESS #else .word KERNELOFFSET #endif RomBootParam: .word _bootparam _bootparam: .short BP_TAG_FIRST .short 4 .long BP_VERSION .short BP_TAG_LAST .short 0 .long 0 .align 4 _SetupMMU: movi a0, 0 wsr a0, windowbase rsync movi a0, 1 wsr a0, windowstart rsync movi a0, 0x1F wsr a0, ps rsync #ifndef CONFIG_INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX initialize_mmu #endif .end no-absolute-literals rsil a0, XCHAL_DEBUGLEVEL-1 rsync reset: l32r a0, RomInitAddr l32r a2, RomBootParam movi a3, 0 movi a4, 0 jx a0