Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
560be613
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
560be613
编写于
3月 17, 2014
作者:
R
Russell King
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ARM: l2c: add warnings for stuff modifying aux_ctrl register values
Signed-off-by:
N
Russell King
<
rmk+kernel@arm.linux.org.uk
>
上级
314e47b7
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
22 addition
and
3 deletion
+22
-3
arch/arm/mm/cache-l2x0.c
arch/arm/mm/cache-l2x0.c
+22
-3
未找到文件。
arch/arm/mm/cache-l2x0.c
浏览文件 @
560be613
...
...
@@ -755,13 +755,24 @@ static void __init __l2c_init(const struct l2c_init_data *data,
{
struct
outer_cache_fns
fns
;
unsigned
way_size_bits
,
ways
;
u32
aux
;
u32
aux
,
old_aux
;
aux
=
readl_relaxed
(
l2x0_base
+
L2X0_AUX_CTRL
);
/*
* Sanity check the aux values. aux_mask is the bits we preserve
* from reading the hardware register, and aux_val is the bits we
* set.
*/
if
(
aux_val
&
aux_mask
)
pr_alert
(
"L2C: platform provided aux values permit register corruption.
\n
"
);
old_aux
=
aux
=
readl_relaxed
(
l2x0_base
+
L2X0_AUX_CTRL
);
aux
&=
aux_mask
;
aux
|=
aux_val
;
if
(
old_aux
!=
aux
)
pr_warn
(
"L2C: DT/platform modifies aux control register: 0x%08x -> 0x%08x
\n
"
,
old_aux
,
aux
);
/* Determine the number of ways */
switch
(
cache_id
&
L2X0_CACHE_ID_PART_MASK
)
{
case
L2X0_CACHE_ID_PART_L310
:
...
...
@@ -1392,7 +1403,7 @@ int __init l2x0_of_init(u32 aux_val, u32 aux_mask)
const
struct
l2c_init_data
*
data
;
struct
device_node
*
np
;
struct
resource
res
;
u32
cache_id
;
u32
cache_id
,
old_aux
;
np
=
of_find_matching_node
(
NULL
,
l2x0_ids
);
if
(
!
np
)
...
...
@@ -1409,6 +1420,14 @@ int __init l2x0_of_init(u32 aux_val, u32 aux_mask)
data
=
of_match_node
(
l2x0_ids
,
np
)
->
data
;
old_aux
=
readl_relaxed
(
l2x0_base
+
L2X0_AUX_CTRL
);
if
(
old_aux
!=
((
old_aux
&
aux_mask
)
|
aux_val
))
{
pr_warn
(
"L2C: platform modifies aux control register: 0x%08x -> 0x%08x
\n
"
,
old_aux
,
(
old_aux
&
aux_mask
)
|
aux_val
);
}
else
if
(
aux_mask
!=
~
0U
&&
aux_val
!=
0
)
{
pr_alert
(
"L2C: platform provided aux values match the hardware, so have no effect. Please remove them.
\n
"
);
}
/* All L2 caches are unified, so this property should be specified */
if
(
!
of_property_read_bool
(
np
,
"cache-unified"
))
pr_err
(
"L2C: device tree omits to specify unified cache
\n
"
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录