/*1* Non-board-specific low-level startup code2*3* Copyright (C) 2004-2006 Atmel Corporation4*5* This program is free software; you can redistribute it and/or modify6* it under the terms of the GNU General Public License version 2 as7* published by the Free Software Foundation.8*/9#include <linux/linkage.h>1011#include <asm/page.h>12#include <asm/thread_info.h>13#include <asm/sysreg.h>1415.section .init.text,"ax"16.global kernel_entry17kernel_entry:18/* Initialize status register */19lddpc r0, init_sr20mtsr SYSREG_SR, r02122/* Set initial stack pointer */23lddpc sp, stack_addr24sub sp, -THREAD_SIZE2526#ifdef CONFIG_FRAME_POINTER27/* Mark last stack frame */28mov lr, 029mov r7, 030#endif3132/* Start the show */33lddpc pc, kernel_start_addr3435.align 236init_sr:37.long 0x007f0000 /* Supervisor mode, everything masked */38stack_addr:39.long init_thread_union40kernel_start_addr:41.long start_kernel424344