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