Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
320516b7
cloud-kernel
项目概览
openanolis
/
cloud-kernel
大约 1 年 前同步成功
通知
158
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
320516b7
编写于
11月 26, 2007
作者:
H
Haavard Skinnemoen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[AVR32] Implement irqflags trace and lockdep support
Signed-off-by:
N
Haavard Skinnemoen
<
hskinnemoen@atmel.com
>
上级
2f026037
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
43 addition
and
19 deletion
+43
-19
arch/avr32/Kconfig
arch/avr32/Kconfig
+6
-0
arch/avr32/kernel/entry-avr32b.S
arch/avr32/kernel/entry-avr32b.S
+35
-19
include/asm-avr32/sysreg.h
include/asm-avr32/sysreg.h
+2
-0
未找到文件。
arch/avr32/Kconfig
浏览文件 @
320516b7
...
...
@@ -27,6 +27,12 @@ config GENERIC_HARDIRQS
config STACKTRACE_SUPPORT
def_bool y
config LOCKDEP_SUPPORT
def_bool y
config TRACE_IRQFLAGS_SUPPORT
def_bool y
config HARDIRQS_SW_RESEND
def_bool y
...
...
arch/avr32/kernel/entry-avr32b.S
浏览文件 @
320516b7
...
...
@@ -527,15 +527,14 @@ fault_exit_work:
/
*
If
we
get
a
debug
trap
from
privileged
context
we
end
up
here
*/
handle_debug_priv
:
/
*
Fix
up
LR
and
SP
in
regs
.
r11
contains
the
mode
we
came
from
*/
mfsr
r8
,
SYSREG_SR
mov
r9
,
r8
andh
r8
,
hi
(
~
MODE_MASK
)
or
r8
,
r11
mtsr
SYSREG_SR
,
r8
/
*
Fix
up
LR
and
SP
in
regs
.
r1
contains
the
mode
we
came
from
*/
mfsr
r2
,
SYSREG_SR
mov
r3
,
r2
bfins
r2
,
r1
,
SYSREG_MODE_OFFSET
,
SYSREG_MODE_SIZE
mtsr
SYSREG_SR
,
r2
sub
pc
,
-
2
stdsp
sp
[
REG_LR
],
lr
mtsr
SYSREG_SR
,
r
9
mtsr
SYSREG_SR
,
r
3
sub
pc
,
-
2
sub
r10
,
sp
,
-
FRAME_SIZE_FULL
stdsp
sp
[
REG_SP
],
r10
...
...
@@ -547,15 +546,19 @@ handle_debug_priv:
popm
r10
,
r11
mtsr
SYSREG_RAR_DBG
,
r10
mtsr
SYSREG_RSR_DBG
,
r11
mfsr
r8
,
SYSREG_SR
mov
r9
,
r8
andh
r8
,
hi
(
~
MODE_MASK
)
andh
r11
,
hi
(
MODE_MASK
)
or
r8
,
r11
mtsr
SYSREG_SR
,
r8
#ifdef CONFIG_TRACE_IRQFLAGS
bld
r11
,
SYSREG_GM_OFFSET
brcc
1
f
rcall
trace_hardirqs_on
1
:
#endif
mfsr
r2
,
SYSREG_SR
mov
r3
,
r2
bfins
r2
,
r1
,
SYSREG_MODE_OFFSET
,
SYSREG_MODE_SIZE
mtsr
SYSREG_SR
,
r2
sub
pc
,
-
2
popm
lr
mtsr
SYSREG_SR
,
r
9
mtsr
SYSREG_SR
,
r
3
sub
pc
,
-
2
sub
sp
,
-
4
/*
skip
SP
*/
popm
r0
-
r12
...
...
@@ -572,11 +575,14 @@ handle_debug_priv:
handle_debug
:
sub
sp
,
4
/*
r12_orig
*/
stmts
--
sp
,
r0
-
lr
mfsr
r10
,
SYSREG_RAR_DBG
mfsr
r11
,
SYSREG_RSR_DBG
mfsr
r0
,
SYSREG_RAR_DBG
mfsr
r1
,
SYSREG_RSR_DBG
#ifdef CONFIG_TRACE_IRQFLAGS
rcall
trace_hardirqs_off
#endif
unmask_exceptions
pushm
r10
,
r1
1
andh
r11
,
(
MODE_MASK
>>
16
),
COH
stm
--
sp
,
r0
,
r
1
bfextu
r1
,
r1
,
SYSREG_MODE_OFFSET
,
SYSREG_MODE_SIZE
brne
handle_debug_priv
mov
r12
,
sp
...
...
@@ -591,6 +597,12 @@ debug_restore_all:
mask_exceptions
mtsr
SYSREG_RSR_DBG
,
r11
mtsr
SYSREG_RAR_DBG
,
r10
#ifdef CONFIG_TRACE_IRQFLAGS
bld
r11
,
SYSREG_GM_OFFSET
brcc
1
f
rcall
trace_hardirqs_on
1
:
#endif
ldmts
sp
++,
r0
-
lr
sub
sp
,
-
4
retd
...
...
@@ -675,7 +687,11 @@ irq_level\level:
andl
r1
,
_TIF_WORK_MASK
,
COH
brne
irq_exit_work
1
:
popm
r8
-
r9
1
:
#ifdef CONFIG_TRACE_IRQFLAGS
rcall
trace_hardirqs_on
#endif
popm
r8
-
r9
mtsr
rar_int
\
level
,
r8
mtsr
rsr_int
\
level
,
r9
ldmts
sp
++,
r0
-
lr
...
...
include/asm-avr32/sysreg.h
浏览文件 @
320516b7
...
...
@@ -93,6 +93,8 @@
#define SYSREG_I3M_SIZE 1
#define SYSREG_EM_OFFSET 21
#define SYSREG_EM_SIZE 1
#define SYSREG_MODE_OFFSET 22
#define SYSREG_MODE_SIZE 3
#define SYSREG_M0_OFFSET 22
#define SYSREG_M0_SIZE 1
#define SYSREG_M1_OFFSET 23
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录