昇腾社区首页
中文
注册

dcmi_get_device_component_list接口原型

函数原型

int dcmi_get_device_component_list(int card_id, int device_id, enum dcmi_component_type *component_table, unsigned int component_count)

功能说明

获取可升级组件列表。

参数说明

参数名称

输入/输出

类型

描述

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]。

component_table

输出

enum dcmi_component_type *

返回可升级组件列表,具体值如下:

enum dcmi_component_type {

DCMI_COMPONENT_TYPE_NVE,

DCMI_COMPONENT_TYPE_XLOADER,

DCMI_COMPONENT_TYPE_M3FW,

DCMI_COMPONENT_TYPE_UEFI,

DCMI_COMPONENT_TYPE_TEE,

DCMI_COMPONENT_TYPE_KERNEL,

DCMI_COMPONENT_TYPE_DTB,

DCMI_COMPONENT_TYPE_ROOTFS,

DCMI_COMPONENT_TYPE_IMU,

DCMI_COMPONENT_TYPE_IMP,

DCMI_COMPONENT_TYPE_AICPU,

DCMI_COMPONENT_TYPE_HBOOT1_A,

DCMI_COMPONENT_TYPE_HBOOT1_B,

DCMI_COMPONENT_TYPE_HBOOT2,

DCMI_COMPONENT_TYPE_DDR,

DCMI_COMPONENT_TYPE_LP,

DCMI_COMPONENT_TYPE_HSM,

DCMI_COMPONENT_TYPE_SAFETY_ISLAND,

DCMI_COMPONENT_TYPE_HILINK,

DCMI_COMPONENT_TYPE_RAWDATA,

DCMI_COMPONENT_TYPE_SYSDRV,

DCMI_COMPONENT_TYPE_ADSAPP,

DCMI_COMPONENT_TYPE_COMISOLATOR,

DCMI_COMPONENT_TYPE_CLUSTER,

DCMI_COMPONENT_TYPE_CUSTOMIZED,

DCMI_COMPONENT_TYPE_SYS_BASE_CONFIG,

DCMI_COMPONENT_TYPE_RECOVERY,

DCMI_COMPONENT_TYPE_HILINK2,

DCMI_COMPONENT_TYPE_LOGIC_BIST,

DCMI_COMPONENT_TYPE_MEMORY_BIST,

DCMI_COMPONENT_TYPE_ATF,

DCMI_COMPONENT_TYPE_USER_BASE_CONFIG,

DCMI_COMPONENT_TYPE_BOOTROM,

DCMI_COMPONENT_TYPE_MAX,

DCMI_UPGRADE_AND_RESET_ALL_COMPONENT = 0xFFFFFFF7,

DCMI_UPGRADE_ALL_IMAGE_COMPONENT = 0xFFFFFFFD,

DCMI_UPGRADE_ALL_FIRMWARE_COMPONENT = 0xFFFFFFFE,

DCMI_UPGRADE_ALL_COMPONENT = 0xFFFFFFFF

};

当前仅支持:

DCMI_COMPONENT_TYPE_AICPU,

DCMI_COMPONENT_TYPE_HBOOT1_A,

DCMI_COMPONENT_TYPE_HBOOT1_B,

DCMI_COMPONENT_TYPE_HBOOT2,

DCMI_COMPONENT_TYPE_HSM,

DCMI_COMPONENT_TYPE_HILINK, DCMI_COMPONENT_TYPE_SYS_BASE_CONFIG, DCMI_COMPONENT_TYPE_ATF, DCMI_COMPONENT_TYPE_USER_BASE_CONFIG

component_count

输入

unsigned int

“component_table”数组的长度。

返回值

类型

描述

int

处理结果:

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

异常处理

无。

约束说明

表1 部署场景

Linux物理机

Linux物理机容器

root用户

运行用户组(非root用户)

root用户

Y

N

Y

调用示例

…
int ret = 0;
int card_id = 0;
int device_id = 0;
unsigned int component_num = 0;
enum dcmi_component_type *component_table = NULL;

ret = dcmi_get_device_component_count(card_id, device_id, &component_num);
if (ret != 0) {
    // todo:记录日志
    return ret;
}

component_table = (enum dcmi_component_type *)malloc(sizeof(enum dcmi_component_type) * component_num);
if (component_table == NULL) {
    // todo:记录日志
    return ret;
}

ret = dcmi_get_device_component_list(card_id, device_id, component_table, component_num);
if (ret != 0) {
    // todo:记录日志
    free(component_table);
    return ret;
}
…