/** NVT update handling api @file nvt_ivot_fw_update_utils.c @ingroup @note Copyright Novatek Microelectronics Corp. 2019. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include #include #include #include #include static char *get_dfu_alt_system(char *interface, char *devstr) { return env_get("dfu_alt_system"); } static char *get_dfu_alt_boot(char *interface, char *devstr) { char *alt_boot; #if (defined(CONFIG_CMD_DFU) && defined(CONFIG_DFU_RAM)) if (strncmp(interface, "ram", 3) == 0) { alt_boot = DFU_ALT_INFO_RAM; } else { alt_boot = DFU_ALT_INFO; } #else alt_boot = DFU_ALT_INFO; #endif return alt_boot; } void set_dfu_alt_info(char *interface, char *devstr) { size_t buf_size = CONFIG_SET_DFU_ALT_BUF_LEN; ALLOC_CACHE_ALIGN_BUFFER(char, buf, buf_size); char *alt_info = "Settings not found!"; char *status = "error!\n"; char *alt_setting; char *alt_sep; int offset = 0; puts("DFU alt info setting: "); alt_setting = get_dfu_alt_boot(interface, devstr); if (alt_setting) { env_set("dfu_alt_boot", alt_setting); offset = snprintf(buf, buf_size, "%s", alt_setting); } alt_setting = get_dfu_alt_system(interface, devstr); if (alt_setting) { if (offset) alt_sep = ";"; else alt_sep = ""; offset += snprintf(buf + offset, buf_size - offset, "%s%s", alt_sep, alt_setting); } if (offset) { alt_info = buf; status = "done\n"; } env_set("dfu_alt_info", alt_info); puts(status); }