Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
37b69cf9
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
160
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看板
提交
37b69cf9
编写于
8月 27, 2010
作者:
M
Mauro Carvalho Chehab
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
i7300_edac: Properly detect channel on CE errors
Signed-off-by:
N
Mauro Carvalho Chehab
<
mchehab@redhat.com
>
上级
32f94726
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
14 addition
and
5 deletion
+14
-5
drivers/edac/i7300_edac.c
drivers/edac/i7300_edac.c
+14
-5
未找到文件。
drivers/edac/i7300_edac.c
浏览文件 @
37b69cf9
...
@@ -101,7 +101,6 @@
...
@@ -101,7 +101,6 @@
#define IS_SINGLE_MODE(mca) ((mca) & (1 << 14))
#define IS_SINGLE_MODE(mca) ((mca) & (1 << 14))
#define TOLM 0x6C
#define TOLM 0x6C
#define REDMEMB 0x7C
#define MIR0 0x80
#define MIR0 0x80
#define MIR1 0x84
#define MIR1 0x84
...
@@ -279,6 +278,9 @@ static const char *ferr_global_lo_name[] = {
...
@@ -279,6 +278,9 @@ static const char *ferr_global_lo_name[] = {
#define REDMEMA 0xdc
#define REDMEMA 0xdc
#define REDMEMB 0x7c
#define IS_SECOND_CH(v) ((v) * (1 << 17))
#define RECMEMA 0xe0
#define RECMEMA 0xe0
#define RECMEMA_BANK(v) (((v) >> 12) & 7)
#define RECMEMA_BANK(v) (((v) >> 12) & 7)
#define RECMEMA_RANK(v) (((v) >> 8) & 15)
#define RECMEMA_RANK(v) (((v) >> 8) & 15)
...
@@ -414,7 +416,7 @@ static void i7300_process_fbd_error(struct mem_ctl_info *mci)
...
@@ -414,7 +416,7 @@ static void i7300_process_fbd_error(struct mem_ctl_info *mci)
struct
i7300_pvt
*
pvt
;
struct
i7300_pvt
*
pvt
;
u32
errnum
,
value
;
u32
errnum
,
value
;
u16
val16
;
u16
val16
;
unsigned
branch
,
bank
,
rank
,
cas
,
ras
;
unsigned
branch
,
channel
,
bank
,
rank
,
cas
,
ras
;
u32
syndrome
;
u32
syndrome
;
unsigned
long
errors
;
unsigned
long
errors
;
...
@@ -488,12 +490,19 @@ static void i7300_process_fbd_error(struct mem_ctl_info *mci)
...
@@ -488,12 +490,19 @@ static void i7300_process_fbd_error(struct mem_ctl_info *mci)
cas
=
RECMEMB_CAS
(
value
);
cas
=
RECMEMB_CAS
(
value
);
ras
=
RECMEMB_RAS
(
value
);
ras
=
RECMEMB_RAS
(
value
);
pci_read_config_dword
(
pvt
->
pci_dev_16_1_fsb_addr_map
,
REDMEMB
,
&
value
);
channel
=
(
branch
<<
1
);
if
(
IS_SECOND_CH
(
value
))
channel
++
;
/* Form out message */
/* Form out message */
snprintf
(
pvt
->
tmp_prt_buffer
,
PAGE_SIZE
,
snprintf
(
pvt
->
tmp_prt_buffer
,
PAGE_SIZE
,
"Corrected error (Branch=%d
(channel %d or
%d), "
"Corrected error (Branch=%d
, Channel
%d), "
" DRAM-Bank=%d %s "
" DRAM-Bank=%d %s "
"RAS=%d CAS=%d, CE Err=0x%lx, Syndrome=0x%08x(%s))"
,
"RAS=%d CAS=%d, CE Err=0x%lx, Syndrome=0x%08x(%s))"
,
branch
,
branch
<<
1
,
(
branch
<<
1
)
+
1
,
branch
,
channel
,
bank
,
bank
,
is_wr
?
"RDWR"
:
"RD"
,
is_wr
?
"RDWR"
:
"RD"
,
ras
,
cas
,
ras
,
cas
,
...
@@ -505,7 +514,7 @@ static void i7300_process_fbd_error(struct mem_ctl_info *mci)
...
@@ -505,7 +514,7 @@ static void i7300_process_fbd_error(struct mem_ctl_info *mci)
* Currently, we don't know how to identify the right
* Currently, we don't know how to identify the right
* channel.
* channel.
*/
*/
edac_mc_handle_fbd_ce
(
mci
,
rank
,
branch
<<
1
,
edac_mc_handle_fbd_ce
(
mci
,
rank
,
channel
,
pvt
->
tmp_prt_buffer
);
pvt
->
tmp_prt_buffer
);
}
}
return
;
return
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录