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 |
处理结果:
|
异常处理
无。
约束说明
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; } …