下载
中文
注册

dcmi_get_multi_ecc_record_info接口原型

函数原型

int dcmi_get_multi_ecc_record_info(int card_id, unsigned int *ecc_count, unsigned char read_type,unsigned char module_type, struct dcmi_ecc_common_data *ecc_common_data_s)

功能说明

查询片上内存 ECC详细地址信息。

参数说明

参数名称

输入/输出

类型

描述

card_id

输入

int

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

ecc_count

输出

unsigned int

片上内存 ECC错误个数。

read_type

输入

unsigned char

enum ECC_INFO_READ {

MULTI_ECC_TIMES_READ = 0, //获取多bit错误次数记录

SINGLE_ECC_INFO_READ, //获取单bit错误信息

MULTI_ECC_INFO_READ, //获取多bit错误信息

ECC_ADDRESS_COUNT_READ, //ecc错误地址计数

ECC_MAX_READ_CMD

};

仅支持SINGLE_ECC_INFO_READ和MULTI_ECC_INFO_READ。

module_type

输入

unsigned char

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_HBM //片上内存类型内存

ecc_common_data_s

输出

struct dcmi_ecc_common_data

struct dcmi_ecc_common_data {

unsigned long long physical_addr; //物理地址

unsigned int stack_pc_id; //hbmc_id

unsigned int reg_addr_h; //寄存器的行和列信息

unsigned int reg_addr_l; //sid bank信息

unsigned int ecc_count; //ecc数量

int timestamp; //ecc发生时间

};

返回值

类型

描述

int

处理结果:

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

异常处理

无。

约束说明

表1 部署场景

Linux物理机

Linux物理机容器

root用户

运行用户组(非root用户)

root用户

N

N

N

调用示例

…
int ret = 0;
int dev_id=0;
unsigned int ecc_count = 0;
unsigned char read_type = SINGLE_ECC_INFO_READ;
unsigned char module_type = DCMI_DEVICE_TYPE_HBM;
struct dcmi_ecc_common_data ecc_common_data_s[MAX_RECORD_ECC_ADDR_COUNT] = {0};
ret = dcmi_get_multi_ecc_record_info(dev_id, &ecc_count, read_type, module_type, ecc_common_data_s);
if (ret != 0){
    //todo:记录日志
    return ret;
}
…