Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/avr32/kernel/head.S
10817 views
1
/*
2
* Non-board-specific low-level startup code
3
*
4
* Copyright (C) 2004-2006 Atmel Corporation
5
*
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License version 2 as
8
* published by the Free Software Foundation.
9
*/
10
#include <linux/linkage.h>
11
12
#include <asm/page.h>
13
#include <asm/thread_info.h>
14
#include <asm/sysreg.h>
15
16
.section .init.text,"ax"
17
.global kernel_entry
18
kernel_entry:
19
/* Initialize status register */
20
lddpc r0, init_sr
21
mtsr SYSREG_SR, r0
22
23
/* Set initial stack pointer */
24
lddpc sp, stack_addr
25
sub sp, -THREAD_SIZE
26
27
#ifdef CONFIG_FRAME_POINTER
28
/* Mark last stack frame */
29
mov lr, 0
30
mov r7, 0
31
#endif
32
33
/* Start the show */
34
lddpc pc, kernel_start_addr
35
36
.align 2
37
init_sr:
38
.long 0x007f0000 /* Supervisor mode, everything masked */
39
stack_addr:
40
.long init_thread_union
41
kernel_start_addr:
42
.long start_kernel
43
44