下载
中文
注册

dcmi_get_device_ecc_info接口原型

函数原型

int dcmi_get_device_ecc_info(int card_id, int device_id, enum dcmi_device_type input_type, struct dcmi_ecc_info *device_ecc_info)

功能说明

获取ECC信息。

参数说明

参数名称

输入/输出

类型

描述

card_id

输入

int

指定NPU管理单元的ID,当前实际支持的ID通过dcmi_get_card_list接口获取。

device_id

输入

int

指定设备编号,通过dcmi_get_device_id_in_card接口获取。取值范围如下:

NPU芯片:[0, device_id_max-1]。

device_type

输入

enum dcmi_device_type

组件类型

enum dcmi_device_type {

DCMI_DEVICE_TYPE_DDR,

DCMI_DEVICE_TYPE_SRAM,

DCMI_DEVICE_TYPE_HBM,

DCMI_DEVICE_TYPE_NPU,

DCMI_HBM_RECORDED_SINGLE_ADDR,

DCMI_HBM_RECORDED_MULTI_ADDR,

DCMI_DEVICE_TYPE_NONE = 0xff

};

目前支持DCMI_DEVICE_TYPE_DDR//ddr类型内存。

device_ecc_info

输出

struct dcmi_ecc_info *

返回ECC结构体信息:

struct dcmi_ecc_info {

int enable_flag;

unsigned int single_bit_error_cnt; //单bit错误数量

unsigned int double_bit_error_cnt; //多bit错误数量

unsigned int total_single_bit_error_cnt; // 生命周期内所有单bit ecc错误统计

unsigned int total_double_bit_error_cnt; // 生命周期内所有多bit ecc错误统计

unsigned int single_bit_isolated_pages_cnt; //单bit错误隔离内存页数量

unsigned int double_bit_isolated_pages_cnt; //多bit错误隔离内存页数量

};

其中,enable_flag输出0,表示ecc检测未使能;enable_flag输出1,表示ecc检测使能。

返回值

类型

描述

int

处理结果:

  • 成功:返回0。
  • 失败:返回码请参见返回码

异常处理

无。

约束说明

表1 部署场景

Linux物理机

Linux物理机容器

root用户

运行用户组(非root用户)

root用户

Y

Y

N

调用示例

… 
int ret = 0;
int card_id = 1;
int device_id = 0;
struct dcmi_ecc_info device_ecc_info = {0};
ret = dcmi_get_device_ecc_info(card_id, device_id, DCMI_DEVICE_TYPE_DDR, &device_ecc_info);
if (ret != 0){
    //todo:记录日志
    return ret;
}
…