Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
8199d8cc
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
161
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看板
提交
8199d8cc
编写于
8月 27, 2010
作者:
M
Mauro Carvalho Chehab
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
i7300_edac: enrich FBD error info for fatal errors
Signed-off-by:
N
Mauro Carvalho Chehab
<
mchehab@redhat.com
>
上级
85580ea4
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
39 addition
and
4 deletion
+39
-4
drivers/edac/i7300_edac.c
drivers/edac/i7300_edac.c
+39
-4
未找到文件。
drivers/edac/i7300_edac.c
浏览文件 @
8199d8cc
...
...
@@ -268,6 +268,16 @@ static const char *ferr_global_lo_name[] = {
};
#define ferr_global_lo_is_fatal(errno) ((errno < 16) ? 0 : 1)
#define NRECMEMA 0xbe
#define NRECMEMA_BANK(v) (((v) >> 12) & 7)
#define NRECMEMA_RANK(v) (((v) >> 8) & 15)
#define NRECMEMB 0xc0
#define NRECMEMB_IS_WR(v) ((v) & (1 << 31))
#define NRECMEMB_CAS(v) (((v) >> 16) & 0x1fff)
#define NRECMEMB_RAS(v) ((v) & 0xffff)
/* Device name and register DID (Device ID) */
struct
i7300_dev_info
{
const
char
*
ctl_name
;
/* name for this device */
...
...
@@ -392,10 +402,11 @@ static void i7300_process_fbd_error(struct mem_ctl_info *mci)
{
struct
i7300_pvt
*
pvt
;
u32
errnum
,
value
;
int
branch
;
u16
val16
;
int
branch
,
bank
,
rank
,
cas
,
ras
;
unsigned
long
errors
;
const
char
*
specific
;
bool
is_fatal
;
bool
is_fatal
,
is_wr
;
pvt
=
mci
->
pvt_info
;
...
...
@@ -410,8 +421,31 @@ static void i7300_process_fbd_error(struct mem_ctl_info *mci)
is_fatal
=
1
;
branch
=
(
GET_FBD_FAT_IDX
(
value
)
==
2
)
?
1
:
0
;
goto
error_fbd
;
pci_read_config_word
(
pvt
->
pci_dev_16_1_fsb_addr_map
,
NRECMEMA
,
&
val16
);
bank
=
NRECMEMA_BANK
(
val16
);
rank
=
NRECMEMA_RANK
(
val16
);
pci_read_config_dword
(
pvt
->
pci_dev_16_1_fsb_addr_map
,
NRECMEMB
,
&
value
);
is_wr
=
NRECMEMB_IS_WR
(
value
);
cas
=
NRECMEMB_CAS
(
value
);
ras
=
NRECMEMB_RAS
(
value
);
snprintf
(
pvt
->
tmp_prt_buffer
,
PAGE_SIZE
,
"FATAL (Branch=%d DRAM-Bank=%d %s "
"RAS=%d CAS=%d Err=0x%lx (%s))"
,
branch
>>
1
,
bank
,
is_wr
?
"RDWR"
:
"RD"
,
ras
,
cas
,
errors
,
specific
);
/* Call the helper to output message */
edac_mc_handle_fbd_ue
(
mci
,
rank
,
branch
<<
1
,
(
branch
<<
1
)
+
1
,
pvt
->
tmp_prt_buffer
);
return
;
}
/* read in the 1st NON-FATAL error register */
...
...
@@ -433,6 +467,7 @@ static void i7300_process_fbd_error(struct mem_ctl_info *mci)
return
;
error_fbd:
i7300_mc_printk
(
mci
,
KERN_EMERG
,
"%s FBD error on branch %d: %s
\n
"
,
is_fatal
?
"Fatal"
:
"NOT fatal"
,
branch
,
specific
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录